libidn-1.28/0000755000000000000000000000000012167253755007671 500000000000000libidn-1.28/po/0000755000000000000000000000000012167253751010303 500000000000000libidn-1.28/po/POTFILES.in0000664000000000000000000000037012153706572012001 00000000000000# List of source files containing translatable strings for GNU Libidn. # Copyright (C) 2004, 2005, 2006, 2007 by Simon Josefsson lib/strerror-idna.c lib/strerror-pr29.c lib/strerror-punycode.c lib/strerror-stringprep.c lib/strerror-tld.c src/idn.c libidn-1.28/po/cs.gmo0000644000000000000000000002111212167253751011331 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rtaaoId%2J-(#B;f7.- \7)#78<;u>())<S* 8\T0. 2 !Q s ! $    !&!6!G=!,!/!8!"9"76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-04-28 20:24+0200 Last-Translator: Petr Pisar Language-Team: Czech Language: cs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --allow-unassigned Přepne příznak IDNA AllowUnassigned (implicitně vypnut) --usestd3asciirules Přepne příznak IDNA UseSTD3ASCIIRules (implicitně vypnut) --debug Vypíše ladicí informace --quiet Pracuje potichu --no-tld Nekontroluje řetězec podle pravidel dané TLD. Jen u --idna-to-ascii a --idna-to-unicode -h, --help Vypíše nápovědu a skončí -V, --version Vypíše verzi a skončí -n, --nfkc Normalizuje řetězec podle Unicode v3.2 NFKC -p, --profile=ŘETĚZEC Použije zadaný stringprep profil. Platné stringprep profily jsou: „Nameprep“, „iSCSI“, „Nodeprep“, „Resourceprep“, „trace“ a „SASLprep“ -s, --stringprep Připraví řetězec podle nameprep profilu -d, --punycode-decode Dekóduje Punycode -e, --punycode-encode Kóduje do Punycode -a, --idna-to-ascii Převede do ACE podle IDNA (implicitní režim) -u, --idna-to-unicode Převede z ACE podle IDNA Nelze vyhradit paměťZnaková sada „%s“. Ordinární čísla zakázaná vrcholovou doménouRozhraní ke knihovně internacionalizovaných (s národními znaky) doménových jmen pro prostředí příkazového řádku. Všechny řetězce jsou očekávány ve znakové sadě upřednostňované vaším národním prostředím. Která sada to je, zjistíte přepínačem „--debug“. Jinou znakovou sadu můžete vnutit nastavením proměnné prostředí CHARSET. Je-li třeba pracovat s řetězcem začínající znakem „-“ (např. „-foo“), použijte „--“ pro označení konce všech parametrů (např. „idn --quiet -a -- -foo“). Povinné argumenty dlouhých přepínačů jsou rovněž povinné u odpovídajících krátkých přepínačů. Na vstupu rozporné příkazy pro směr textuChyba v definici profilu pro stringprepPříznak neslučitelný s profilemZakázaný úvodní nebo závěrečný spojovník („-“)Na vstupu zakázaná nepřiřazená ordinární číslaVstup již obsahuje předponu ACE („xn--“)Vstup nezačíná předponou ACE („xn--“)IDN (internacionalizovaná doménová jména) převádí ŘETĚZCE nebo standardní vstup. Neplatný vstupChybně utvořený obousměrný řetězecPostrádám vstupVe vstupu chybí vrcholová doménaZnak jiný než číslice/písmeno/spojovník na vstupuVýstup by byl příliš dlouhý nebo příliš krátkýVýstup by se nevešel do poskytnuté vyrovnávací pamětiNa vstupu zakázaná ordinární čísla pro obousměrný textNa vstupu zakázaná ordinární číslaPunycode selhalŘetězec není po ToASCII idempotentníŘetězec není po unicodové NFKC normalizaci idempotentníPříprava řetězce selhalaOmezení délky řetězce bylo překonánoÚspěchSelhalo volání systému dlopenSelhal systémový iconvDalší informace získáte příkazem „%s --help“. Pište po jednom vstupním řetězci na jednom řádku zakončeným znakem nového řádku. Unicodová normalizace selhala (vnitřní chyba)Neznámá chybaNeznámý profilPoužití: %s [PŘEPÍNAČ]… [ŘETĚZEC]… nelze převést z %s do UTF-8nelze převést z UCS-4 do UTF-8nelze převést z UTF-8 do %snelze převést z UTF-8 do UCS-4nebylo možné znormalizovat do NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %schyba na vstupumallocPouze jeden přepínač z -s, -e, -d, -a, -u nebo -n smí být zadán.punycode_decode (dekódování Punycodu): %spunycode_encode (zakódování do Punycodu): %sstringprep_profile (profil pro přípravu řetězce): %stld_check_4z (pozice %lu): %stld_check_4z: %slibidn-1.28/po/Makevars0000664000000000000000000000342211746453142011720 00000000000000# Makefile variables for PO directory in any package using GNU gettext. # Usually the message domain is the same as the package name. DOMAIN = $(PACKAGE) # These two variables depend on the location of this directory. subdir = po top_builddir = .. # These options get passed to xgettext. XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ # This is the copyright holder that gets inserted into the header of the # $(DOMAIN).pot file. Set this to the copyright holder of the surrounding # package. (Note that the msgstr strings, extracted from the package's # sources, belong to the copyright holder of the package.) Translators are # expected to transfer the copyright for their translations to this person # or entity, or to disclaim their copyright. The empty string stands for # the public domain; in this case the translators are expected to disclaim # their copyright. COPYRIGHT_HOLDER = Simon Josefsson # This is the email address or URL to which the translators shall report # bugs in the untranslated strings: # - Strings which are not entire sentences, see the maintainer guidelines # in the GNU gettext documentation, section 'Preparing Strings'. # - Strings which use unclear terms or require additional context to be # understood. # - Strings which make invalid assumptions about notation of date, time or # money. # - Pluralisation problems. # - Incorrect English spelling. # - Incorrect formatting. # It can be your email address, or a mailing list address where translators # can write to without being subscribed, or the URL of a web page through # which the translators can contact you. MSGID_BUGS_ADDRESS = bug-libidn@gnu.org # This is the list of locale categories, beyond LC_MESSAGES, for which the # message catalogs shall be used. It is usually empty. EXTRA_LOCALE_CATEGORIES = libidn-1.28/po/en@boldquot.po0000644000000000000000000002741612167253750013050 00000000000000# English translations for libidn package. # Copyright (C) 2013 Simon Josefsson # This file is distributed under the same license as the libidn package. # Automatically generated, 2013. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # msgid "" msgstr "" "Project-Id-Version: libidn 1.28\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2013-07-10 13:54+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en@boldquot\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Success" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "String preparation failed" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode failed" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Non-digit/letter/hyphen in input" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Forbidden leading or trailing minus sign (‘-’)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Output would be too large or too small" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Input does not start with ACE prefix (‘xn--’)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "String not idempotent under ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Input already contain ACE prefix (‘xn--’)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "System iconv failed" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Cannot allocate memory" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "System dlopen failed" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Unknown error" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "String not idempotent under Unicode NFKC normalization" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Invalid input" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Output would exceed the buffer space provided" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "String size limit exceeded" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Forbidden unassigned code points in input" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Prohibited code points in input" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Conflicting bidirectional properties in input" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Malformed bidirectional string" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Prohibited bidirectional code points in input" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Error in stringprep profile definition" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Flag conflict with profile" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Unknown profile" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicode normalization failed (internal error)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Code points prohibited by top-level domain" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Missing input" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "No top-level domain found in input" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Try ‘%s --help’ for more information.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Usage: %s [OPTION]... [STRINGS]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use ‘--debug’ to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with ‘-’, for example ‘-foo’, " "use ‘--’\n" "to signal the end of parameters, as in ‘idn --quiet -a -- -foo’.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: ‘Nameprep’,\n" " ‘iSCSI’, ‘Nodeprep’, " "‘Resourceprep’, \n" " ‘trace’, ‘SASLprep’\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Print debugging information\n" " --quiet Silent operation\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "only one of -s, -e, -d, -a, -u or -n can be specified" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Charset ‘%s’.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Type each input string on a line by itself, terminated by a newline " "character.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "input error" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "could not convert from %s to UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "could not convert from UTF-8 to UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "could not convert from UTF-8 to %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "could not convert from UCS-4 to UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "could not do NFKC normalization" libidn-1.28/po/da.gmo0000644000000000000000000001577612167253751011333 000000000000001C,8c9aKK'Hp*- &  . )L )v - I  & E "S v & - -  : #J 6n      & O2 -  #  &?Sg~voiLP'K ,X&14422gM#'(K3t<$% 0,E?r#2 ! 4.UK2  #AVu ".  !&%0'($* +)/1,-# --debug Print debugging information --quiet Silent operation -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... idna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %spunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.9 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-01-03 17:38+0100 Last-Translator: Morten Bo Johansen Language-Team: Danish Language: da MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1) X-Generator: Jed w/po-mode (http://jedsoft.org) --debug Udskriv fejlsøgnings-information --quiet Ingen uddata under udførelse -h, --help Udskriv hjælp og afslut -V, --version Udskriv version og afslut -n, --nfkc Normalisér tekststreng i.h.t. Unicode v3.2 NFKC -p, --profile=STRENG Brug angivet stringprep-profil i stedet Gyldige stringprep-profiler: "Nameprep", "iSCSI", "Nodeprep", "Resourceprep", "trace", "SASLprep" -s, --stringprep Forbered tekststreng ifølge nameprep-profil -d, --punycode-decode Afkod Punycode -e, --punycode-encode Indkod Punycode -a, --idna-to-ascii Omdan til ACE ifølge IDNA (standardtilstand) -u, --idna-to-unicode Omdan fra ACE ifølge IDNA Kan ikke tildele hukommelseTegnsæt "%s". Kodepunkter ikke tilladt af top-domæneKommandolinje-brugerflade til IDN-programbiblioteket. Alle tekststrenge forventes at være indkodet i det foretrukne tegnsæt, der følger af dine lokaliseringsindstillnger. Brug "--debug" for at finde ud af hvilket tegnsæt det er. Du kan tilsidesætte dette tegnsæt ved at sætte miljøvariablen CHARSET. For at behandle en tekststreng der begynder med "-", f.eks. "-foo", så brug "--" for at signalere at der ikke følger flere parametre, som i "idn --quiet -a -- -foo". Obligatoriske parametre som gælder for langforms-tilvalg er ligeledes obligatoriske for kortforms-tilvalg. Konflikter mellem tovejsegenskaber i inddataFejl i definition af stringprep-profilKonflikt mellem flag og profilMå ikke begynde eller slutte med minustegn ("-")Der er forbudte, ikke-tildelte kodepunkter i inddataInddata indeholder allerede et ACE-præfiks ("xn--")Inddata begynder ikke med et ACE-præfiks ("xn--")Internationalized Domain Name (IDN) - omdan STRENGE, eller standardinddata. Ugyldige inddataMisdannet tovejstekststrengManglende inddataFandt ikke et top-domæne i inddataIkke-ciffer/bogstav/bindestreg i inddataMængden af uddata ville blive for stor eller lilleStørrelse på uddata ville overstige tildelt plads i bufferForbudte tovejskodepunkter i inddataDer er forbudte kodepunkter i inddataPunycode mislykkedesTekststreng er ikke idempotent under ToASCIITekststreng er ikke idempotent under Unicode NFKC-normaliseringDannelse af tekststreng mislykkedesGrænse for størrelse på tekststreng overskredetLykkedesSystemkald til dlopen mislykkedesSystemkald til iconv mislykkedesPrøv "%s --help" for yderligere information. Indtast hver streng på en særskilt linje, afsluttet med et nylinje-tegn. Normalisering af unicode mislykkedes (intern fejl)Ukendt fejlUkendt profilBrug: %s [TILVALG]... [STRENGE]... idna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %spunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %slibidn-1.28/po/nl.gmo0000644000000000000000000002063012167253751011341 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rRkMwO`9 /1?*,W-n2,30-$;-'i2<"$Q<g&3%:$`&L4.=(N&w)&)% ? !Y { L !+!D!!`!!76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn-1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-04-28 11:27+0200 Last-Translator: Benno Schulenberg Language-Team: Dutch Language: nl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.0 Plural-Forms: nplurals=2; plural=(n != 1); --allow-unassigned de IDNA-vlag 'AllowUnassigned' inschakelen --usestd3asciirules de IDNA-vlag 'UseSTD3ASCIIRules' inschakelen --debug debug-informatie weergeven --quiet geen meldingen produceren --no-tld tekst niet aan TLD-specifieke regels toetsen; alleen bij '--idna-to-ascii' en '--idna-to-unicode' -h, --help deze hulptekst tonen en stoppen -V, --version programmaversie tonen en stoppen -n, --nfkc tekenreeks normaliseren volgens Unicode-NFKC ver3.2 -p, --profile=NAAM dit tekenreeks-voorbewerkingsprofiel gebruiken; geldige profielnamen zijn: 'Nameprep', 'iSCSI', 'Nodeprep', 'Resourceprep', 'trace', 'SASLprep' -s, --stringprep tekenreeks volgens 'Nameprep'-profiel voorbewerken -d, --punycode-decode uit 'Punycode' decoderen -e, --punycode-encode naar 'Punycode' coderen -a, --idna-to-ascii naar ACE omzetten volgens IDNA (standaardmodus) -u, --idna-to-unicode uit ACE omzetten volgens IDNA Onvoldoende geheugen beschikbaarTekenset '%s'. Ongeoorloofde tekencodes voor gegeven topdomeinAlle tekenreeksen worden verwacht in de voorkeurstekenset van uw taalregio; gebruik '--debug' om te zien welke tekenset dit is. U kunt een andere tekenset afdwingen door de omgevingsvariabele CHARSET in te stellen. Om een tekenreeks die begint met '-' om te zetten, gebruikt u '--' om het einde van de opties aan te geven. Bijvoorbeeld: 'idn --quiet -a -- -foo'. (Een verplicht argument bij een lange optie geldt ook voor de korte vorm.) Tegenstrijdige eigenschappen voor tweerichtingentekst in invoerFout in profieldefinitie voor 'stringprep'Vlag botst met profielOngeoorloofd minteken ('-') aan begin of eindOngeoorloofde niet-toegewezen tekencodes in invoerInvoer bevat al een ACE-voorvoegsel ('xn--')Invoer begint niet met een ACE-voorvoegsel ('xn--') De gegeven TEKENREEKS (of standaardinvoer) omzetten volgens de regels die gelden voor geïnternationaliseerde domeinnamen (IDN). Ongeldige invoerOngeldige tekenreeks voor tweerichtingentekstOntbrekende invoerGeen topdomein gevonden in de invoerIets anders dan cijfer/letter/verbindingsstreepje in invoerUitvoer zou te groot of te klein wordenUitvoer zou niet in toegewezen bufferruimte passenOngeoorloofde tekencodes (bij tweerichtingentekst) in invoerOngeoorloofde tekencodes in invoerPunycodering is misluktTekenreeks is niet hetzelfde na retourconversie (van ASCII naar Unicode en terug)Tekenreeks is problematisch bij normalisering volgens Unicode-NFKC: er zijn verschillende mogelijkhedenVoorbewerken van tekenreeks is misluktTekenreeks is te langGeluktDe dlopen()-systeemfunctie is misluktDe iconv()-systeemfunctie is misluktTyp '%s --help' voor meer informatie. Typ elke invoertekenreeks op een afzonderlijke regel, afgesloten met Enter. Normalisatie van Unicode is mislukt (*interne fout*)Onbekende foutOnbekend profielGebruik: %s [OPTIE]... [TEKENREEKS]... conversie van %s naar UTF-8 is misluktconversie van UCS-4 naar UTF-8 is misluktconversie van UTF-8 naar %s is misluktconversie van UTF-8 naar UCS-4 is misluktkan NFKC-normalisering niet uitvoeren## idna_to_ascii_4z(): %s## idna_to_unicode_8z4z (TLD): %s## idna_to_unicode_8z4z(): %sinvoerfoutonvoldoende geheugen beschikbaarslechts één van de opties '-s', '-e', '-d', '-a', '-u' of '-n' is mogelijk## punycode_decode(): %s## punycode_encode(): %s## stringprep_profile(): %s## tld_check_4z (positie %lu): %s## tld_check_4z(): %slibidn-1.28/po/Rules-quot0000644000000000000000000000341112167244627012227 00000000000000# Special Makefile rules for English message catalogs with quotation marks. DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot .SUFFIXES: .insert-header .po-update-en en@quot.po-create: $(MAKE) en@quot.po-update en@boldquot.po-create: $(MAKE) en@boldquot.po-update en@quot.po-update: en@quot.po-update-en en@boldquot.po-update: en@boldquot.po-update-en .insert-header.po-update-en: @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ ll=`echo $$lang | sed -e 's/@.*//'`; \ LC_ALL=C; export LC_ALL; \ cd $(srcdir); \ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$lang -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) $(SED) -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "creation of $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi en@quot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header en@boldquot.insert-header: insert-header.sin sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header mostlyclean: mostlyclean-quot mostlyclean-quot: rm -f *.insert-header libidn-1.28/po/fi.po0000644000000000000000000003020412167253750011157 00000000000000# translation of libidn-1.9.pot to Finnish # Copyright © 2008, 2009, 2011 Free Software Foundation, Inc. # Copyright © 2007 Simon Josefsson # This file is distributed under the same license as the libidn package. # Jorma Karvonen , 2008. # Jorma Karvonen , 2009-2011. # msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-04-30 15:25+0200\n" "Last-Translator: Jorma Karvonen \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: KBabel 1.11.4\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Onnistui" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Merkkijonon valmistelu ei onnistunut" # Wikipedia: Punycode is a computer programming encoding syntax by which a Unicode string of characters can be translated into the more-limited character set permitted in network host names. #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode-koodaus ei onnistunut" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Syötteessä on merkki, joka ei ole numero/kirjain/tavuviiva" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Ei saa alkaa tai loppua miinusmerkillä (”-”)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Tuloste olisi liian suuri tai liian pieni" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Syöte ei ala ACE-prefiksillä (”xn--”)" # Yksinkertaisesti selitettynä idempotentti on matemaattinen termi, joka tarkoittaa, että jonkun toiminnon tulos on aina sama kun toiminto toistetaan kahdesti (tai useammin). #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Merkkijono ei ole idempotentti ToASCII-toiminnon aikana" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Syöte jo sisältää ACE-prefiksin (”xn--”)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Järjestelmän iconv-käsky ei onnistunut" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Ei voida varata muistia" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Järjestelmän dlopen-käsky ei onnistunut" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Tuntematon virhe" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Merkkijono ei ole idempotentti Unicode NFKC-normeerauksen aikana" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Virheellinen syöte" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Tuloste ylittäisi varatun puskurin tilan" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Merkkijonon koko ylitettiin" # Code point is any value in the Unicode codespace; that is, the range of integers from 0 to hexadecimal 10FFFF. #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Kiellettyjä määräämättömiä code points-skalaariarvoja syötteessä" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Kiellettyjä code points-skalaariarvoja syötteessä" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Ristiriitaisia kaksisuuntaisia ominaisuuksia syötteessä" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Väärän muotoinen kaksisuuntainen merkkijono" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Kiellettyjä kaksisuuntaisia code points-skalaariarvoja syötteessä" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Virhe strngprep-profiilimäärittelyssä" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Lippu ristiriidassa profiilin kanssa" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Tuntematon profiili" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicode-normeeraus ei onnistunut (sisäinen virhe)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Code points-skalaariarvot kiellettyjä ylätason toimialueessa" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Syöte puuttuu" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Syötteestä ei löytynyt ylätason toimialuetta" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Lisätietoja käskyllä ”%s --help”.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Käyttö: %s [VALITSIN]... [MERKKIJONOT]...\n" # convert -> converts ? #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Kansainvälistetty verkkotunnus (IDN) muuntaa MERKKIJONOT tai vakiosyötteen.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Komentorivirajapinta kansainvälistettyyn verkkotunnuskirjastoon.\n" "\n" "Kaikki merkkijonot on otaksuttu koodatun parhaimpana pidetyllä merkistöllä,\n" "jota locale-asetuksesi käyttää. Käyttämällä valitsinta ”--debug” saat\n" "selville, mikä merkistö se on. Voit korvata käytetyn merkistön asettamalla\n" "ympäristömuuttujan CHARSET.\n" "\n" "Merkillä ”-” alkava merkkijono, esimerkiksi ”-foo”, prosessoidaan " "käyttämällä\n" "”--”-merkkejä signaloimaan parametrien loppumista, kuten käskyssä\n" "”idn --quiet -a -- -foo”.\n" "\n" "Pakolliset argumentit pitkille valitsimille ovat pakollisia myös lyhyille\n" "valitsimille.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Tulosta ohje ja poistu\n" " -V, --version Tulosta versio ja poistu\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Valmistele merkkijono ”nameprep”-profiilin " "mukaisesti\n" " -d, --punycode-decode Pura Punycode-koodaus\n" " -e, --punycode-encode Koodaa Punycode-koodauksella\n" " -a, --idna-to-ascii Muunna ACE-koodiksi IDNA-koodista (oletustila)\n" " -u, --idna-to-unicode Muunna ACE-koodista IDNA-koodiksi\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Vaihda ”IDNA AllowUnassigned”-lipun tilaa (oletus " "off)\n" " --usestd3asciirules Vaihda ”IDNA UseSTD3ASCIIRules”-lipun tilaa " "(oletus off)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Älä etsi merkkijonosta TLD-kohtaisia sääntöjä\n" " Vain valitsimille ”--idna-to-ascii” ja ”--idna-" "to-unicode”\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normeeraa merkkijono ”Unicode v3.2 NFKC”-" "koodauksen mukaisesti\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=MERKKIJONO Käytä määritellyn ”stringprep”-profiilin sijasta\n" " Voimassa olevat ”stringprep”-profiilit: " "”Nameprep”,\n" " ”iSCSI”, ”Nodeprep”, ”Resourceprep”, \n" " ”trace”, ”SASLprep”\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Tulosta virheenjäljitystiedot\n" " --quiet Hiljainen toiminta\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "vain yksi valitsimista -s, -e, -d, -a, -u tai -n voidaan määritellä" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Merkistö ”%s”\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Kirjoita jokainen merkkijono omalle rivilleen ja lopeta rivi " "rivinvaihdolla.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "syötevirhe" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "ei voitu muuntaa %s-merkistöstä UTF-8-merkistöön" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "ei voitu muuntaa UTF-8-merkistöstä UCS-4-merkistöön" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "ei voitu muuntaa UTF-8-merkistöstä %s-merkistöön." #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc-käsky" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "ei voitu muuntaa UCS-4-merkistöstä UTF-8-merkistöön." #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (sijainti %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "ei voitu tehdä NFKC-normeerausta." #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Ilmoita virheistä osoitteeseen <%s>.\n" #~ "Ilmoita käännösvirheistä osoitteeseen .\n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "syöte[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "tuloste[%lu] = U+%04x\n" #~ msgid "tld[%lu] = U+%04x\n" #~ msgstr "tld[%lu] = U+%04x\n" libidn-1.28/po/eo.po0000644000000000000000000002601612167253750011172 00000000000000# Esperanto translations for GNU libidn. # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # Tradukoj kiuj komencas per "##" estas mesaĝoj por erarspurado; # ili devus malesti en ĉi tiu dosiero. # # Edmund GRIMLEY EVANS , 2004, 2005, 2007, 2008. # Benno Schulenberg , 2012. msgid "" msgstr "" "Project-Id-Version: libidn 1.25\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2012-12-17 16:42+0100\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Esperanto \n" "Language: eo\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 1.0\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Sukceso" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Malsukcesis pretigo de signoĉeno" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Malsukcesis 'Punycode'" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Litero/necifero/streketo en enigo" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Malpermesita minuso ('-') ĉe komenco aŭ fino" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Eligo estus tro granda aŭ tro malgranda" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Enigo ne komenciĝas per ACE-prefikso ('xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Ĉeno ŝanĝiĝas ĉe dua apliko de 'ToASCII'" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Enigo jam havas ACE-prefikson ('xn--')" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Malsukcesis sistemfunkcio 'iconv()'" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Mankas sufiĉa memoro" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Malsukcesis sistemfunkcio 'dlopen()'" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Nekonata eraro" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Ĉeno ŝanĝiĝas ĉe dua apliko de Unikoda NFKC-normigo" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Nevalida enigo" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Eligo estus tro granda por donita bufro" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Limo de signoĉena grando transpasiĝis" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Malpermesita neatribuita kodero en enigo" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Malpermesita kodero en enigo" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Malkongruaj dudirektaj trajtoj en enigo" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Misformita dudirekta ĉeno" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Malpermesita dudirekta kodero en enigo" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Eraro en difino de ĉenopretig-profilo" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Flaga malkongruo kun profilo" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Nekonata profilo" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Malsukcesis Unikoda normigo (**interna programeraro**)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Koderoj kiuj malpermesiĝas de supera retregiono" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Mankanta enigo" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Neniu supera retregiono troviĝis en enigo" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Tajpu '%s --help' por pli da informoj.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Uzmaniero: %s [OPCIO...] [ĈENO...]\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Konvertas ĈENO(j)n (aŭ ĉefenigujon) laŭ la internaciigitaj retnomaj " "reguloj.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Komandlinia interfaco al la biblioteko por internaciigitaj retnomoj.\n" "\n" "Ĉiuj ĉenoj estu koditaj per la preferata signaro de via lokaĵaro.\n" "Uzu '--debug' por eltrovi kiu ĝi estas. Vi povas indiki alian\n" "signaron per la media variablo CHARSET.\n" "\n" "Por trakti ĉenon kiu komenciĝas per '-' (ekzemple '-foo'), uzu '--' por\n" "indiki la finon de la parametroj, kiel en «idn --quiet -a -- -foo».\n" "\n" "(Endaj argumentoj por longaj opcioj ankaŭ endas por la mallongaj.)\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help montri ĉi tiun helpon kaj eliri\n" " -V, --version montri programversion kaj eliri\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep pretigi ĉenon laŭ la profilo 'Nameprep'\n" " -d, --punycode-decode malkodi 'Punycode'\n" " -e, --punycode-encode kodi 'Punycode'\n" " -a, --idna-to-ascii konverti al ACE laŭ IDNA (la implicita reĝimo)\n" " -u, --idna-to-unicode konverti de ACE laŭ IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned enŝalti la IDNA-flagon 'AllowUnassigned'\n" " --usestd3asciirules enŝalti la IDNA-flagon 'UseSTD3ASCIIRules'\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld ne kontroli ĉenon pri TLD-specifaj reguloj;\n" " nur por '--idna-to-ascii' kaj '--idna-to-" "unicode'\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr " -n, --nfkc normigi signoĉenon laŭ Unikodo v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=NOMO uzi ĉi tiun ĉenopretig-profilon anstataŭe;\n" " validaj ĉenopretig-profiloj estas:\n" " 'Nameprep', 'iSCSI', 'Nodeprep',\n" " 'Resourceprep', 'trace', 'SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug montri informojn por helpi al erarspurado\n" " --quiet funkcii silente\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "nur unu el la opcioj '-s', '-e', '-d', '-a', '-u' aŭ '-n' povas esti indikata" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Signaro '%s'.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Tajpu ĉiun enigan ĉenon en propra linio, kun linifina signo ĉe la fino.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "enig-eraro" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "malsukcesis konverti de %s al UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "malsukcesis konverti de UTF-8 al UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "## stringprep_profile(): %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "malsukcesis konverti de UTF-8 al %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "## punycode_encode(): %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "mankas sufiĉa memoro" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "## punycode_decode(): %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "malsukcesis konverti de UCS-4 al UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "## idna_to_ascii_4z(): %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "## idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "## tld_check_4z (pozicio %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "## tld_check_4z(): %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "## idna_to_unicode_8z4z(): %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "malsukcesis fari NFKC-normigon" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Raportu programmisojn al <%s>.\n" #~ "Raportu tradukerarojn al .\n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "enigo[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "eligo[%lu] = U+%04x\n" libidn-1.28/po/fr.gmo0000644000000000000000000002150712167253751011343 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rMlJrs '! : G@/?(oAA8;U2&C9R+)B2%X$k5', # = 3V G 4 !!,&!(S!+|!(!+!!" 4"U"p""D""""!#4#76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: GNU libidn-1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-06-28 00:12+0200 Last-Translator: Jean-Philippe Guérard Language-Team: French Language: fr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n > 1); --allow-unassigned Bascule le drapeau AllowUnassigned d'IDNA (désactivé par défaut). --usestd3asciirules Bascule le drapeau UseSTD3ASCIIRules d'IDNA (désactivé par défaut). --debug Affiche des informations de débogage --quiet Mode silencieux --no-tld Ne pas vérifier les règles spécifiques aux domaines de premier niveau (TLD). Uniquement valable pour --idna-to-ascii et --idna-to-unicode -h, --help Imprime l'aide et s'arrête -V, --version Imprime la version et s'arrête -n, --nfkc Applique à la chaîne la normalisation NFKC d'Unicode 3.2 -p, --profile=CHAÎNE Utilise à la place le profil stringprep indiqué Les profils valides sont : « Nameprep », « iSCSI », « Nodeprep », « Resourceprep », « trace », « SASLprep » -s, --stringprep Prépare la chaîne selon le profil nameprep -d, --punycode-decode Décode le Punycode -e, --punycode-encode Code en Punycode -a, --idna-to-ascii Conversion IDNA vers un codage ACE -u, --idna-to-unicode Conversion IDNA depuis un codage ACE Impossible d'allouer la mémoireJeu de caractères « %s ». Le domaine de premier niveau prohibe ces codes caractèresInterface en ligne de commande de la bibliothèque libidn (noms de domaines internationalisés). Toutes les chaînes sont supposées être codées avec le jeu de caractère principal de vos paramètres régionaux (les « locales »). Utilisez « --debug » pour identifier le jeu de caractères en question. Vous pouvez modifier le jeu de caractère utilisé en définissant la variable d'environnement CHARSET. Pour traiter une chaîne commençant par « - », comme « -foo », utilisez « -- » pour indiquer la fin des options. Par exemple : « idn --quiet -a -- -foo ». Les arguments obligatoires des options longues sont également obligatoires pour les options courtes. L'entrée contient des propriétés bidirectionnelles en conflitErreur dans la définition de profil stringprepLe drapeau est en conflit avec le profilSigne de négation (« - ») interdit comme préfixe ou suffixeL'entrée contient des codes caractères non attribués interditsL'entrée contient déjà un préfixe ACE (« xn-- »)L'entrée ne débute pas par le préfixe ACE (« xn-- »)IDN converti des CHAÎNES ou l'entrée standard. Entrée invalideChaîne bidirectionnelle mal composéeEntrée manquanteAucun domaine de premier niveau n'a été identifié dans l'entréeUn non chiffre, lettre ou tiret a été fourni en entréeLa sortie serait trop grande ou trop petiteLa sortie dépasse l'espace tampon fourniL'entrée contient des codes caractères bidirectionnels prohibésL'entrée contient des codes caractères prohibésÉchec du PunycodeChaîne non idempotente avec ToASCIIChaîne non idempotente en normalisation NFKC UnicodeÉchec de la préparation de la chaîneLa taille limite des chaînes est dépasséeSuccèsÉchec du dlopen systèmeÉchec du iconv systèmeEssayez « %s --help » pour plus d'information. Saisissez une chaîne par ligne, terminée par un passage à la ligne. La normalisation Unicode a échoué (erreur interne)Erreur inconnueProfil inconnuUtilisation : %s [OPTION]... [CHAÎNES]... Conversion impossible en UTF-8 depuis %sConversion impossible en UTF-8 depuis UCS-4Conversion impossible en %s depuis UTF-8Conversion impossible en UCS-4 depuis UTF-8Échec de la normalisation NFKCidna_to_ascii_4z : %sidna_to_unicode_8z4z (TLD) : %sidna_to_unicode_8z4z : %sentrée erronéemallocUne seule option parmi -s, -e, -d, -a, -u et -n peut être indiquéepunycode_decode : %spunycode_encode : %sstringprep_profile : %stld_check_4z (position %lu) : %stld_check_4z : %slibidn-1.28/po/it.po0000644000000000000000000002520312167253750011200 00000000000000# Italian messages for libidn. # Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Marco Colombo , 2004, 2007, 2008, 2011. msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-12-05 17:30+0000\n" "Last-Translator: Marco Colombo \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=iso-8859-1\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Successo" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Preparazione della stringa non riuscita" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode non riuscito" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Non-numero/lettera/trattino nell'input" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Segno meno (\"-\") iniziale o finale proibito" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "L'output sarebbe troppo grande o troppo piccolo" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "L'input non comincia con il prefisso ACE (\"xn--\")" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "La stringa non idempotente per ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "L'input contiene gi il prefisso ACE (\"xn--\")" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Chiamata di sistema iconv non riuscita" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Impossibile allocare memoria" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Chiamata di sistema dlopen non riuscita" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Errore sconosciuto" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "La stringa non idempotente per la normalizzazione Unicode NFKC" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Input non valido" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "L'output eccederebbe il buffer fornito" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Limite di grandezza della stringa superato" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Codepoints non assegnati proibiti nell'input" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Codepoints proibiti nell'input" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Propriet bidirezionali in conflitto nell'input" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Stringa bidirezionale malformata" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Codepoints bidirezionali proibiti nell'input" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Errore nella definizione del profilo stringprep" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Flag in conflitto con il profilo" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Profilo sconosciuto" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Normalizzazione Unicode non riuscita (errore interno)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Codepoints proibiti dal dominio di primo livello" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Input mancante" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nessun dominio di primo livello trovato nell'input" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Usare \"%s --help\" per maggiori informazioni.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Uso: %s [OPZIONI]... [STRINGHE]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Converte STRINGHE (o lo standard input) in nomi di dominio " "internazionalizzato (IDN).\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Interfaccia per la libreria di nomi di dominio internazionalizzati.\n" "\n" "Si assume che tutte le stringhe siano codificate nel set di caratteri\n" "della localizzazione in uso. Usare \"--debug\" per scoprire quale sia tale " "set.\n" "Il set di caratteri in uso pu essere cambiato impostando la variabile\n" "d'ambiente CHARSET.\n" "\n" "Per elaborare una stringa cha comincia con \"-\", per esempio \"-foo\", " "usare \"--\"\n" "per segnalare la fine dei parametri, come in \"idn --quiet -a -- -foo\".\n" "\n" "Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle " "corte.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Stampa questo aiuto ed esce\n" " -V, --version Stampa la versione ed esce\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Prepara la stringa secondo il profilo nameprep\n" " -d, --punycode-decode Decodifica Punycode\n" " -e, --punycode-encode Codifica Punycode\n" " -a, --idna-to-ascii Converti in ACE secondo IDNA (modalit " "predefinita)\n" " -u, --idna-to-unicode Converti da ACE secondo IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Attiva l'opzione IDNA AllowUnassigned\n" " --usestd3asciirules Attiva l'opzione IDNA UseSTD3ASCIIRules\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Non controllare le regole per TLD nelle stringhe\n" " Solo per --idna-to-ascii e --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalizza la stringa come Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=STRINGA Usa il profilo stringprep indicato\n" " Validi profili stringprep sono: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Stampa le informazioni di debug\n" " --quiet Opera silenziosamente\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "pu essere indicato solo uno tra -s, -e, -d, -a, -u e -n" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Set di caratteri \"%s\".\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Scrivere ogni stringa di input in una riga a s, terminata da un carattere " "di newline.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "errore di input" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "impossibile convertire da %s a UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "impossibile convertire da UTF-8 a UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "impossibile convertire da UTF-8 a %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "impossibile convertire da UCS-4 a UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (posizione %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "impossibile effettuare la normalizzazione Unicode NFKC" libidn-1.28/po/nl.po0000644000000000000000000002623112167253750011177 00000000000000# Dutch translations for GNU libidn. # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # De vertalingen die beginnen met "## " zijn debug-tekstjes # die eigenlijk niet in dit bestand thuishoren. # # Benno Schulenberg , 2005, 2007, 2008, 2011. # Elros Cyriatan , 2004. msgid "" msgstr "" "Project-Id-Version: libidn-1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-04-28 11:27+0200\n" "Last-Translator: Benno Schulenberg \n" "Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Gelukt" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Voorbewerken van tekenreeks is mislukt" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycodering is mislukt" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Iets anders dan cijfer/letter/verbindingsstreepje in invoer" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Ongeoorloofd minteken ('-') aan begin of eind" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Uitvoer zou te groot of te klein worden" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Invoer begint niet met een ACE-voorvoegsel ('xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "" "Tekenreeks is niet hetzelfde na retourconversie (van ASCII naar Unicode en " "terug)" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Invoer bevat al een ACE-voorvoegsel ('xn--')" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "De iconv()-systeemfunctie is mislukt" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Onvoldoende geheugen beschikbaar" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "De dlopen()-systeemfunctie is mislukt" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Onbekende fout" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" "Tekenreeks is problematisch bij normalisering volgens Unicode-NFKC:\n" "er zijn verschillende mogelijkheden" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ongeldige invoer" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Uitvoer zou niet in toegewezen bufferruimte passen" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Tekenreeks is te lang" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Ongeoorloofde niet-toegewezen tekencodes in invoer" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Ongeoorloofde tekencodes in invoer" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Tegenstrijdige eigenschappen voor tweerichtingentekst in invoer" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Ongeldige tekenreeks voor tweerichtingentekst" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Ongeoorloofde tekencodes (bij tweerichtingentekst) in invoer" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Fout in profieldefinitie voor 'stringprep'" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Vlag botst met profiel" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Onbekend profiel" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Normalisatie van Unicode is mislukt (*interne fout*)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Ongeoorloofde tekencodes voor gegeven topdomein" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Ontbrekende invoer" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Geen topdomein gevonden in de invoer" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Typ '%s --help' voor meer informatie.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Gebruik: %s [OPTIE]... [TEKENREEKS]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" " \n" "De gegeven TEKENREEKS (of standaardinvoer) omzetten volgens de regels\n" "die gelden voor geïnternationaliseerde domeinnamen (IDN).\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Alle tekenreeksen worden verwacht in de voorkeurstekenset van uw taalregio;\n" "gebruik '--debug' om te zien welke tekenset dit is. U kunt een andere\n" "tekenset afdwingen door de omgevingsvariabele CHARSET in te stellen.\n" "\n" "Om een tekenreeks die begint met '-' om te zetten, gebruikt u '--' om het\n" "einde van de opties aan te geven. Bijvoorbeeld: 'idn --quiet -a -- -foo'.\n" "\n" "(Een verplicht argument bij een lange optie geldt ook voor de korte vorm.)\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help deze hulptekst tonen en stoppen\n" " -V, --version programmaversie tonen en stoppen\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep tekenreeks volgens 'Nameprep'-profiel " "voorbewerken\n" " -d, --punycode-decode uit 'Punycode' decoderen\n" " -e, --punycode-encode naar 'Punycode' coderen\n" " -a, --idna-to-ascii naar ACE omzetten volgens IDNA (standaardmodus)\n" " -u, --idna-to-unicode uit ACE omzetten volgens IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned de IDNA-vlag 'AllowUnassigned' inschakelen\n" " --usestd3asciirules de IDNA-vlag 'UseSTD3ASCIIRules' inschakelen\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld tekst niet aan TLD-specifieke regels toetsen;\n" " alleen bij '--idna-to-ascii' en '--idna-to-" "unicode'\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc tekenreeks normaliseren volgens Unicode-NFKC " "ver3.2\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=NAAM dit tekenreeks-voorbewerkingsprofiel gebruiken;\n" " geldige profielnamen zijn: 'Nameprep', " "'iSCSI',\n" " 'Nodeprep', 'Resourceprep', 'trace', " "'SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug debug-informatie weergeven\n" " --quiet geen meldingen produceren\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "slechts één van de opties '-s', '-e', '-d', '-a', '-u' of '-n' is mogelijk" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Tekenset '%s'.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Typ elke invoertekenreeks op een afzonderlijke regel, afgesloten met Enter.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "invoerfout" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "conversie van %s naar UTF-8 is mislukt" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "conversie van UTF-8 naar UCS-4 is mislukt" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "## stringprep_profile(): %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "conversie van UTF-8 naar %s is mislukt" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "## punycode_encode(): %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "onvoldoende geheugen beschikbaar" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "## punycode_decode(): %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "conversie van UCS-4 naar UTF-8 is mislukt" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "## idna_to_ascii_4z(): %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "## idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "## tld_check_4z (positie %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "## tld_check_4z(): %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "## idna_to_unicode_8z4z(): %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "kan NFKC-normalisering niet uitvoeren" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Rapporteer gebreken in het programma aan <%s>;\n" #~ "meld fouten in de vertaling aan .\n" libidn-1.28/po/id.po0000644000000000000000000002511612167253750011163 00000000000000# Indonesian translations for libidn package. # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Andhika Padmawan , 2008-2012. # msgid "" msgstr "" "Project-Id-Version: libidn 1.24\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2012-05-18 17:42+0700\n" "Last-Translator: Andhika Padmawan \n" "Language-Team: Indonesian \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Sukses" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Penyiapan benang gagal" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode gagal" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Non-digit/huruf/sambung di masukan" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Tanda minus awalan atau akhiran terlarang (`-')" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Keluaran akan terlalu besar atau terlalu kecil" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Masukan tidak diawali dengan prefiks ACE (`xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Benar tidak idempoten di bawah ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Masukan telah berisi prefiks ACE (`xn--')" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Sistem iconv gagal" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Tak dapat alokasi memori" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Sistem dlopen gagal" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Galat tak dikenal" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Benang tak idempoten di bawah normalisasi Unicode NFKC" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Masukan tidak sah" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Keluaran akan melebihi ruang penyangga yang disediakan" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Batas ruang benang tercapai" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Titik kode tak ditugaskan terlarang di masukan" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Titik kode terlarang di masukan" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Properti dwiarah konflik di masukan" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Benang dwiarah salah bentuk" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Titik kode dwiarah terlarang di masukan" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Galat di definisi profil stringprep" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Bendera konflik dengan profil" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Profil tak diketahui" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Normalisasi unicode gagal (galat internal)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Titik kode dilarang oleh ranah level atas" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Masukan hilang" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Tak ada ranah level atas yang ditemukan di masukan" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Coba `'%s -- help' untuk informasi lebih lanjut.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Penggunaan: %s [OPSI]... [BENANG]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "BENANG konversi Internationalized Domain Name (IDN), atau masukan standar.\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Antarmuka baris perintah ke pustaka nama ranah internasionalisasi.\n" "\n" "Semua benang diharapkan tersandi dalam set karakter kesukaan yang dipakai\n" "oleh lokal anda. Gunakan `--debug' untuk mencari tahu apakah set karakter " "ini.\n" "Anda dapat menimpa set karakter yang digunakan oleh pengaturan variabel " "lingkungan CHARSET.\n" "\n" "Untuk memproses benang yang dimulai dengan `-', misalnya `-foo', gunakan\n" "`--' untuk menandai akhir parameter, seperti dalam `idn --quiet -a -- -" "foo'.\n" "\n" "Argumen mandatori untuk opsi panjang merupakan mandatori untuk opsi pendek " "juga.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Cetak bantuan lalu keluar\n" " -V, --version Cetak versi lalu keluar\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Siapkan benang berdasarkan profil nameprep\n" " -d, --punycode-decode Awasandi Punycode\n" " -e, --punycode-encode Sandi Punycode\n" " -a, --idna-to-ascii Konversi ke ACE menurut IDNA (mode standar)\n" " -u, --idna-to-unicode Konversi dari ACE menurut IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Ubah bendera AllowUnassigned IDNA (standar mati)\n" " --usestd3asciirules Ubah bendera UseSTD3ASCIIRules IDNA (standar " "mati)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Jangan cek benang untuk peraturan spesifik TLD\n" " Hanya untuk --idna-to-ascii dan --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalisasi benang berdasarkan Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=BENANG Gunakan profil stringprep ketimbang\n" " Profil stringprep yang sah: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Cetak informasi awakutu\n" " --quiet Operasi diam\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "Hanya salah satu dari -s, -e, -d, -a, -u, atau -n yang dapat ditentukan" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Set karakter `%s'.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Ketik tiap benang masukan pada baris itu sendiri, diakhiri oleh karakter " "newline.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "galat masukan" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "tak dapat konversi dari %s ke UTF-8." #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "tak dapat konversi dari UTF-8 ke UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "tak dapat konversi dari UTF-8 ke %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "tak dapat konversi dari UCS-4 ke UTF-8." #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (posisi %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "tak dapat melakukan normalisasi NFKC" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Laporkan kutu ke <%s>.\n" libidn-1.28/po/eo.gmo0000644000000000000000000002023412167253751011333 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rfpdwFt 0 ;'&-T.q(&.Rr*!('!&Ip-8! '-U$]#'K6Q`%q#&#&-L!f N / H !d  76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.25 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2012-12-17 16:42+0100 Last-Translator: Benno Schulenberg Language-Team: Esperanto Language: eo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); X-Generator: Lokalize 1.0 --allow-unassigned enŝalti la IDNA-flagon 'AllowUnassigned' --usestd3asciirules enŝalti la IDNA-flagon 'UseSTD3ASCIIRules' --debug montri informojn por helpi al erarspurado --quiet funkcii silente --no-tld ne kontroli ĉenon pri TLD-specifaj reguloj; nur por '--idna-to-ascii' kaj '--idna-to-unicode' -h, --help montri ĉi tiun helpon kaj eliri -V, --version montri programversion kaj eliri -n, --nfkc normigi signoĉenon laŭ Unikodo v3.2 NFKC -p, --profile=NOMO uzi ĉi tiun ĉenopretig-profilon anstataŭe; validaj ĉenopretig-profiloj estas: 'Nameprep', 'iSCSI', 'Nodeprep', 'Resourceprep', 'trace', 'SASLprep' -s, --stringprep pretigi ĉenon laŭ la profilo 'Nameprep' -d, --punycode-decode malkodi 'Punycode' -e, --punycode-encode kodi 'Punycode' -a, --idna-to-ascii konverti al ACE laŭ IDNA (la implicita reĝimo) -u, --idna-to-unicode konverti de ACE laŭ IDNA Mankas sufiĉa memoroSignaro '%s'. Koderoj kiuj malpermesiĝas de supera retregionoKomandlinia interfaco al la biblioteko por internaciigitaj retnomoj. Ĉiuj ĉenoj estu koditaj per la preferata signaro de via lokaĵaro. Uzu '--debug' por eltrovi kiu ĝi estas. Vi povas indiki alian signaron per la media variablo CHARSET. Por trakti ĉenon kiu komenciĝas per '-' (ekzemple '-foo'), uzu '--' por indiki la finon de la parametroj, kiel en «idn --quiet -a -- -foo». (Endaj argumentoj por longaj opcioj ankaŭ endas por la mallongaj.) Malkongruaj dudirektaj trajtoj en enigoEraro en difino de ĉenopretig-profiloFlaga malkongruo kun profiloMalpermesita minuso ('-') ĉe komenco aŭ finoMalpermesita neatribuita kodero en enigoEnigo jam havas ACE-prefikson ('xn--')Enigo ne komenciĝas per ACE-prefikso ('xn--')Konvertas ĈENO(j)n (aŭ ĉefenigujon) laŭ la internaciigitaj retnomaj reguloj. Nevalida enigoMisformita dudirekta ĉenoMankanta enigoNeniu supera retregiono troviĝis en enigoLitero/necifero/streketo en enigoEligo estus tro granda aŭ tro malgrandaEligo estus tro granda por donita bufroMalpermesita dudirekta kodero en enigoMalpermesita kodero en enigoMalsukcesis 'Punycode'Ĉeno ŝanĝiĝas ĉe dua apliko de 'ToASCII'Ĉeno ŝanĝiĝas ĉe dua apliko de Unikoda NFKC-normigoMalsukcesis pretigo de signoĉenoLimo de signoĉena grando transpasiĝisSukcesoMalsukcesis sistemfunkcio 'dlopen()'Malsukcesis sistemfunkcio 'iconv()'Tajpu '%s --help' por pli da informoj. Tajpu ĉiun enigan ĉenon en propra linio, kun linifina signo ĉe la fino. Malsukcesis Unikoda normigo (**interna programeraro**)Nekonata eraroNekonata profiloUzmaniero: %s [OPCIO...] [ĈENO...] malsukcesis konverti de %s al UTF-8malsukcesis konverti de UCS-4 al UTF-8malsukcesis konverti de UTF-8 al %smalsukcesis konverti de UTF-8 al UCS-4malsukcesis fari NFKC-normigon## idna_to_ascii_4z(): %s## idna_to_unicode_8z4z (TLD): %s## idna_to_unicode_8z4z(): %senig-eraromankas sufiĉa memoronur unu el la opcioj '-s', '-e', '-d', '-a', '-u' aŭ '-n' povas esti indikata## punycode_decode(): %s## punycode_encode(): %s## stringprep_profile(): %s## tld_check_4z (pozicio %lu): %s## tld_check_4z(): %slibidn-1.28/po/stamp-po0000644000000000000000000000001212167245605011676 00000000000000timestamp libidn-1.28/po/fr.po0000644000000000000000000002646312167253750011204 00000000000000# Messages français pour GNU concernant libidn. # Copyright © 1996 Free Software Foundation, Inc. # This file is distributed under the same licence as the libidn package. # Marc Veillet , 2008. # Jean-Philippe Guérard , 2011. # msgid "" msgstr "" "Project-Id-Version: GNU libidn-1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-06-28 00:12+0200\n" "Last-Translator: Jean-Philippe Guérard \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Succès" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Échec de la préparation de la chaîne" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Échec du Punycode" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Un non chiffre, lettre ou tiret a été fourni en entrée" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Signe de négation (« - ») interdit comme préfixe ou suffixe" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "La sortie serait trop grande ou trop petite" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "L'entrée ne débute pas par le préfixe ACE (« xn-- »)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Chaîne non idempotente avec ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "L'entrée contient déjà un préfixe ACE (« xn-- »)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Échec du iconv système" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Impossible d'allouer la mémoire" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Échec du dlopen système" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Erreur inconnue" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Chaîne non idempotente en normalisation NFKC Unicode" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Entrée invalide" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "La sortie dépasse l'espace tampon fourni" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "La taille limite des chaînes est dépassée" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "L'entrée contient des codes caractères non attribués interdits" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "L'entrée contient des codes caractères prohibés" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "L'entrée contient des propriétés bidirectionnelles en conflit" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Chaîne bidirectionnelle mal composée" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "L'entrée contient des codes caractères bidirectionnels prohibés" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Erreur dans la définition de profil stringprep" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Le drapeau est en conflit avec le profil" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Profil inconnu" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "La normalisation Unicode a échoué (erreur interne)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Le domaine de premier niveau prohibe ces codes caractères" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Entrée manquante" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Aucun domaine de premier niveau n'a été identifié dans l'entrée" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Essayez « %s --help » pour plus d'information.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Utilisation : %s [OPTION]... [CHAÎNES]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "IDN converti des CHAÎNES ou l'entrée standard.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Interface en ligne de commande de la bibliothèque libidn (noms de\n" "domaines internationalisés).\n" "\n" "Toutes les chaînes sont supposées être codées avec le jeu de\n" "caractère principal de vos paramètres régionaux (les « locales »).\n" "Utilisez « --debug » pour identifier le jeu de caractères en\n" "question. Vous pouvez modifier le jeu de caractère utilisé en\n" "définissant la variable d'environnement CHARSET.\n" "\n" "Pour traiter une chaîne commençant par « - », comme « -foo »,\n" "utilisez « -- » pour indiquer la fin des options. Par exemple :\n" "« idn --quiet -a -- -foo ».\n" "\n" "Les arguments obligatoires des options longues sont également\n" "obligatoires pour les options courtes.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Imprime l'aide et s'arrête\n" " -V, --version Imprime la version et s'arrête\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Prépare la chaîne selon le profil nameprep\n" " -d, --punycode-decode Décode le Punycode\n" " -e, --punycode-encode Code en Punycode\n" " -a, --idna-to-ascii Conversion IDNA vers un codage ACE\n" " -u, --idna-to-unicode Conversion IDNA depuis un codage ACE\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Bascule le drapeau AllowUnassigned d'IDNA\n" " (désactivé par défaut).\n" " --usestd3asciirules Bascule le drapeau UseSTD3ASCIIRules d'IDNA\n" " (désactivé par défaut).\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Ne pas vérifier les règles spécifiques aux " "domaines\n" " de premier niveau (TLD). Uniquement valable " "pour\n" " --idna-to-ascii et --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Applique à la chaîne la normalisation NFKC\n" " d'Unicode 3.2\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=CHAÎNE Utilise à la place le profil stringprep indiqué\n" " Les profils valides sont :\n" " « Nameprep », « iSCSI », « Nodeprep »,\n" " « Resourceprep », « trace », « SASLprep »\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Affiche des informations de débogage\n" " --quiet Mode silencieux\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Une seule option parmi -s, -e, -d, -a, -u et -n peut être indiquée" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Jeu de caractères « %s ».\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "Saisissez une chaîne par ligne, terminée par un passage à la ligne.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "entrée erronée" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "Conversion impossible en UTF-8 depuis %s" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "Conversion impossible en UCS-4 depuis UTF-8" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile : %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "Conversion impossible en %s depuis UTF-8" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode : %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode : %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "Conversion impossible en UTF-8 depuis UCS-4" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z : %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD) : %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu) : %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z : %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z : %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "Échec de la normalisation NFKC" libidn-1.28/po/en@boldquot.gmo0000644000000000000000000002016012167253751013202 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rrcaKDQ'*'-C&q:)59NI  "  0&Q-x-#6(_y2O-H v#"%"%$Jj 5  ( ? _ 76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.28 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2013-07-10 13:54+0200 Last-Translator: Automatically generated Language-Team: none Language: en@boldquot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: ‘Nameprep’, ‘iSCSI’, ‘Nodeprep’, ‘Resourceprep’, ‘trace’, ‘SASLprep’ -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset ‘%s’. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use ‘--debug’ to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with ‘-’, for example ‘-foo’, use ‘--’ to signal the end of parameters, as in ‘idn --quiet -a -- -foo’. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (‘-’)Forbidden unassigned code points in inputInput already contain ACE prefix (‘xn--’)Input does not start with ACE prefix (‘xn--’)Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry ‘%s --help’ for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %slibidn-1.28/po/sr.gmo0000644000000000000000000002411312167253751011354 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[r{#Cr1d 2"SgL FV-WO#?sA &  H 4+!=`!S!I!6<""s"<"b"16#Hh##/#-#G$f$X$G%g%7%?%?%9=&?w&F&&'2'K'e'Q''''%(:(76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn-1.24 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2012-01-15 00:30+0200 Last-Translator: Мирослав Николић Language-Team: Serbian Language: sr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --allow-unassigned Пребацује опцију ИДНА Дозволи недодељене (унапред искључено) --usestd3asciirules Пребацује опцију ИДНА КористиСТД3АСКРИ правила (унапред искључено) --debug Исписује податке за уклањање грешака --quiet Нечујна операција --no-tld Не проверава ниску за ТЛД посебним правилима Само за --idna-to-ascii и --idna-to-unicode -h, --help Исписује помоћ и излази -V, --version Исписује издање и излази -n, --nfkc Нормализује ниску у складу са Уникодом в3.2 НФКЦ -p, --profile=НИСКА Уместо тога користи одређени профил стрингпрепа Исправни стрингпреп профили: „Nameprep“, „iSCSI“, „Nodeprep“, „Resourceprep“, „trace“, „SASLprep“ -s, --stringprep Припрема ниску у складу са профилом нејмпреп -d, --punycode-decode Декодира Паникод -e, --punycode-encode Кодира Паникод -a, --idna-to-ascii Претвара у АЦЕ у складу са ИДНА-ом (основни режим) -u, --idna-to-unicode Претвара из АЦЕ-а у складу са ИДНА-ом Не могу да доделим меморијуСкуп знакова „%s“. Кодне тачке забрањене доменом највишег нивоаСучеље линије наредби за библиотеку интернационализованог назива домена. Очекује се да су све ниске кодиране у жељеном скупу знакова коришћеном вашим локалитетом. Употребите „--debug“ да сазнате који је то скуп знакова. Можете да препишете коришћени скуп знакова подешавајући променљиву окружења СКУПЗНАКОВА. Да обрадите ниску која почиње са „-“, на пример „-foo“, употребите „--“ да назначите крај параметара, као у „idn --quiet -a -- -foo“. Обавезни аргументи за дуге опције су такође обавезни и за кратке опције. Сукобљавајућа двосмерна својства у улазуГрешка у одредници профила стрингпрепСукоб опција са профиломНедозвољени водећи или завршни знак минус („-“)Недозвољене недодељене кодне тачке у улазуУлаз већ садржи АЦЕ префикс („xn--“)Улаз не почиње АЦЕ префиксом („xn--“)Интернационализовани назив домена (IDN) претвара НИСКЕ, или стандардни улаз. Неисправан улазЛоша двосмерна нискаНедостаје улазДомен највишег нивоа није нађен у улазуНецифра/слово/цртица у улазуИзлаз би био превелик или премалиИзлаз би премашио предвиђену величину бафераЗабрањене двосмерне кодне тачке у улазуЗабрањене кодне тачке у улазуПаникод није успеоНиска није истомоћна под ТоАСКРИНиска није истомоћна под нормализацијом Уникода НФКЦНије успела припрема нискеПремашено је ограничење величине нискеУспешноДлопен система није успеоИконв система није успеоПробајте „%s --help“ за више информација. Куцајте улазну ниску на засебној линији, завршавајући знаком за нови ред. Неуспех Уникод нормализације (унутрашња грешка)Непозната грешкаНепознат профилУпотреба: %s [ОПЦИЈА]... [НИСКЕ]... не могу да претворим из „%s“ у УТФ-8не могу да претворим из УЦС-4 у УТФ-8не могу да претворим из УТФ-8 у %sне могу да претворим из УТФ-8 у УЦС-4не могу да урадим нормализацију НФКЦ-аidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sулазна грешкадодела меморијеможе бити задато само једно од: -s, -e, -d, -a или -upunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (положај %lu): %stld_check_4z: %slibidn-1.28/po/zh_CN.po0000644000000000000000000002505212167253751011570 00000000000000# Simplified Chinese translation for libidn # Copyright (C) 2008 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Meng Jie , 2005. # Ji ZhengYu , 2011, 2012 msgid "" msgstr "" "Project-Id-Version: libidn 1.24\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2012-02-14 20:25+0800\n" "Last-Translator: Ji ZhengYu \n" "Language-Team: Chinese (simplified) \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "成功" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "预备字符串失败" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode 失败" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "输入中出现非数字/字母/连字符" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "不能使用‘-’作为起始或终止符" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "输出太大或太小" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "输入未以 ACE 前缀(‘xn--’)开头" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "ToASCII 中字符串不是幂等的" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "输入已经包含 ACE前缀(‘xn--’)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "系统 iconv 失败" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "无法分配内存" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "系统 dlopen 失败" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "未知错误" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Unicode NFKC 正规化过程中字符串不是幂等的" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "无效输入" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "输入将溢出所提供的缓冲区" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "字符串大小越界" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "输入中不能出现未赋值的代码点" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "输入中不能出现代码点" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "输入中出现相互冲突的双向属性" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "双向字符串格式错误" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "输入中不能出现双向的代码点" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Stringpref 配置文件定义出错" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "标识与配置文件冲突" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "未知的配置文件" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicode 正规化失败(内部错误)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "顶级域不接受代码点" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "输入缺失" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "输入中未发现顶级域" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "尝试用‘%s --help’获取更多信息。\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "用法: %s [选项]... [字符串]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "字符串或是标准输入的国际化域名(IDN)转化。\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "国际化域名库的命令行界面。.\n" "\n" "所有的字符串都将以您所在区域的最合适的字符集进行编码。\n" "使用‘--debug’可以找出这个字符集。\n" "您可通过设置环境变量 CHARSET 来重设这一字符集。\n" "\n" "要想处理以‘-’开始的字符串,如‘-foo’,请使用‘--’来标识\n" "参数结束,例如‘idn --quiet -a -- -foo’。\n" "\n" "长选项所必需的参数对于短选项来说也是必需的。\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help 打印此帮助并退出\n" " -V, --version 打印程序版本并退出\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep 按 nameprep 配置文件 准备字符串\n" " -d, --punycode-decode 解码 Punycode\n" " -e, --punycode-encode 编码 Punycode\n" " -a, --idna-to-ascii 按 IDNA 转换为 ACE (默认方式)\n" " -u, --idna-to-unicode 按 IDNA 从 ACE 转换\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned 切换 IDNA AllowUnassigned 标识(默认关闭)\n" " --usestd3asciirules 切换 IDNA UseSTD3ASCIIRules 标识(默认关闭)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld 不按 TLD 指定的规则检查字符串\n" " 仅对 --idna-to-ascii 和 --idna-to-unicode 有效\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr " -n, --nfkc 按 Unicode v3.2 NFKC 正规化字符串\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=STRING 使用指定的 stringprep 配置文件 代替\n" " 有效的 stringprep 配置文件: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug 打印调试信息\n" " --quiet 处理时不显示信息\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "只能指定 -s, -e, -d, -a, -u 或是 -n 中的一个" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "字符集‘%s’。\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "输入时,每个字符串单占一行。\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "输入错误" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "无法将 %s 转为 UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "无法将 UTF-8 转为 UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile:%s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "无法将 UTF-8 转为 %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode:%s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "无法将 UCS-4 转为 UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z:%s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD):%s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (位置 %lu):%s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z:%s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z:%s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "不能进行 NFKC 标准化" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "发送错误报告至 <%s>。发送翻译错误至 Chinese (simplified) \n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "输入[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "输出[%lu] = U+%04x\n" #~ msgid "tld[%lu] = U+%04x\n" #~ msgstr "tld[%lu] = U+%04x\n" libidn-1.28/po/quot.sed0000644000000000000000000000023112167244627011706 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g libidn-1.28/po/da.po0000644000000000000000000002574412167253750011162 00000000000000# Danish translation of the libidn gettext message catalogue # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Morten Bo Johansen , 2004-2011 msgid "" msgstr "" "Project-Id-Version: libidn 1.9\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-01-03 17:38+0100\n" "Last-Translator: Morten Bo Johansen \n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" "X-Generator: Jed w/po-mode (http://jedsoft.org)\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Lykkedes" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Dannelse af tekststreng mislykkedes" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode mislykkedes" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Ikke-ciffer/bogstav/bindestreg i inddata" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Må ikke begynde eller slutte med minustegn (\"-\")" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Mængden af uddata ville blive for stor eller lille" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Inddata begynder ikke med et ACE-præfiks (\"xn--\")" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Tekststreng er ikke idempotent under ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Inddata indeholder allerede et ACE-præfiks (\"xn--\")" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Systemkald til iconv mislykkedes" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Kan ikke tildele hukommelse" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Systemkald til dlopen mislykkedes" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Ukendt fejl" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Tekststreng er ikke idempotent under Unicode NFKC-normalisering" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ugyldige inddata" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Størrelse på uddata ville overstige tildelt plads i buffer" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Grænse for størrelse på tekststreng overskredet" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Der er forbudte, ikke-tildelte kodepunkter i inddata" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Der er forbudte kodepunkter i inddata" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Konflikter mellem tovejsegenskaber i inddata" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Misdannet tovejstekststreng" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Forbudte tovejskodepunkter i inddata" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Fejl i definition af stringprep-profil" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Konflikt mellem flag og profil" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Ukendt profil" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Normalisering af unicode mislykkedes (intern fejl)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Kodepunkter ikke tilladt af top-domæne" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Manglende inddata" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Fandt ikke et top-domæne i inddata" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Prøv \"%s --help\" for yderligere information.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Brug: %s [TILVALG]... [STRENGE]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationalized Domain Name (IDN) - omdan STRENGE, eller standardinddata.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Kommandolinje-brugerflade til IDN-programbiblioteket.\n" "\n" "Alle tekststrenge forventes at være indkodet i det foretrukne tegnsæt,\n" "der følger af dine lokaliseringsindstillnger. Brug \"--debug\" for at\n" "finde ud af hvilket tegnsæt det er. Du kan tilsidesætte dette tegnsæt\n" "ved at sætte miljøvariablen CHARSET.\n" "\n" "For at behandle en tekststreng der begynder med \"-\", f.eks. \"-foo\", så\n" "brug \"--\" for at signalere at der ikke følger flere parametre, som i\n" "\"idn --quiet -a -- -foo\".\n" "\n" "Obligatoriske parametre som gælder for langforms-tilvalg er ligeledes\n" "obligatoriske for kortforms-tilvalg.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Udskriv hjælp og afslut\n" " -V, --version Udskriv version og afslut\n" # ACE = ASCII Compatible Encoding # IDNA = Internationalizing Domain Names in Applications #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Forbered tekststreng ifølge nameprep-profil\n" " -d, --punycode-decode Afkod Punycode\n" " -e, --punycode-encode Indkod Punycode\n" " -a, --idna-to-ascii Omdan til ACE ifølge IDNA (standardtilstand)\n" " -u, --idna-to-unicode Omdan fra ACE ifølge IDNA\n" #: src/idn.c:99 #, fuzzy msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Slå IDNA AllowUnassigned til/fra\n" " --usestd3asciirules Slå IDNA UseSTD3ASCIIRules til/fra\n" #: src/idn.c:103 #, fuzzy msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " -t, --tld Kontrollér tekststring for TLD-specifikke regler\n" " Gælder kun --idna-to-ascii og --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalisér tekststreng i.h.t. Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=STRENG Brug angivet stringprep-profil i stedet\n" " Gyldige stringprep-profiler: \"Nameprep\",\n" " \"iSCSI\", \"Nodeprep\", \"Resourceprep\", \n" " \"trace\", \"SASLprep\"\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Udskriv fejlsøgnings-information\n" " --quiet Ingen uddata under udførelse\n" #: src/idn.c:172 #, fuzzy, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Kun ét af argumenterne -s, -e, -d, -a, -u eller -n kan angives." #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Tegnsæt \"%s\".\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Indtast hver streng på en særskilt linje, afsluttet med et nylinje-tegn.\n" #: src/idn.c:202 #, fuzzy, c-format msgid "input error" msgstr "Fejl i inddata" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, fuzzy, c-format msgid "could not convert from %s to UTF-8" msgstr "Kunne ikke omdanne fra %s til UTF-8." #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, fuzzy, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "Kunne ikke omdanne fra UTF-8 til UCS-4." #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, fuzzy, c-format msgid "could not convert from UTF-8 to %s" msgstr "Kunne ikke omdanne fra UTF-8 til %s." #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, fuzzy, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "Kunne ikke omdanne fra UCS-4 til UTF-8." #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, fuzzy, c-format msgid "could not do NFKC normalization" msgstr "Kunne ikke udføre NFKC-normalisering." #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Send fejlrapporter til <%s>.\n" libidn-1.28/po/sr.po0000644000000000000000000003134412167253751011214 00000000000000# Serbian translation of libidn. # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Aleksandar Jelenak , 2004, 2005. # Мирослав Николић , 2012. msgid "" msgstr "" "Project-Id-Version: libidn-1.24\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2012-01-15 00:30+0200\n" "Last-Translator: Мирослав Николић \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Успешно" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Није успела припрема ниске" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Паникод није успео" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Нецифра/слово/цртица у улазу" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Недозвољени водећи или завршни знак минус („-“)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Излаз би био превелик или премали" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Улаз не почиње АЦЕ префиксом („xn--“)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Ниска није истомоћна под ТоАСКРИ" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Улаз већ садржи АЦЕ префикс („xn--“)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Иконв система није успео" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Не могу да доделим меморију" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Длопен система није успео" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Непозната грешка" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Ниска није истомоћна под нормализацијом Уникода НФКЦ" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Неисправан улаз" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Излаз би премашио предвиђену величину бафера" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Премашено је ограничење величине ниске" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Недозвољене недодељене кодне тачке у улазу" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Забрањене кодне тачке у улазу" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Сукобљавајућа двосмерна својства у улазу" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Лоша двосмерна ниска" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Забрањене двосмерне кодне тачке у улазу" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Грешка у одредници профила стрингпреп" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Сукоб опција са профилом" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Непознат профил" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Неуспех Уникод нормализације (унутрашња грешка)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Кодне тачке забрањене доменом највишег нивоа" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Недостаје улаз" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Домен највишег нивоа није нађен у улазу" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Пробајте „%s --help“ за више информација.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Употреба: %s [ОПЦИЈА]... [НИСКЕ]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Интернационализовани назив домена (IDN) претвара НИСКЕ, или стандардни " "улаз.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Сучеље линије наредби за библиотеку интернационализованог назива домена.\n" "\n" "Очекује се да су све ниске кодиране у жељеном скупу знакова коришћеном\n" "вашим локалитетом. Употребите „--debug“ да сазнате који је то скуп " "знакова.\n" "Можете да препишете коришћени скуп знакова подешавајући променљиву окружења " "СКУПЗНАКОВА.\n" "\n" "Да обрадите ниску која почиње са „-“, на пример „-foo“, употребите „--“\n" "да назначите крај параметара, као у „idn --quiet -a -- -foo“.\n" "\n" "Обавезни аргументи за дуге опције су такође обавезни и за кратке опције.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Исписује помоћ и излази\n" " -V, --version Исписује издање и излази\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Припрема ниску у складу са профилом нејмпреп\n" " -d, --punycode-decode Декодира Паникод\n" " -e, --punycode-encode Кодира Паникод\n" " -a, --idna-to-ascii Претвара у АЦЕ у складу са ИДНА-ом (основни " "режим)\n" " -u, --idna-to-unicode Претвара из АЦЕ-а у складу са ИДНА-ом\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Пребацује опцију ИДНА Дозволи недодељене (унапред " "искључено)\n" " --usestd3asciirules Пребацује опцију ИДНА КористиСТД3АСКРИ правила " "(унапред искључено)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Не проверава ниску за ТЛД посебним правилима\n" " Само за --idna-to-ascii и --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Нормализује ниску у складу са Уникодом в3.2 НФКЦ\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=НИСКА Уместо тога користи одређени профил стрингпрепа\n" " Исправни стрингпреп профили: „Nameprep“,\n" " „iSCSI“, „Nodeprep“, „Resourceprep“, \n" " „trace“, „SASLprep“\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Исписује податке за уклањање грешака\n" " --quiet Нечујна операција\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "може бити задато само једно од: -s, -e, -d, -a или -u" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Скуп знакова „%s“.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Куцајте улазну ниску на засебној линији, завршавајући знаком за нови ред.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "улазна грешка" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "не могу да претворим из „%s“ у УТФ-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "не могу да претворим из УТФ-8 у УЦС-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "не могу да претворим из УТФ-8 у %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "додела меморије" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "не могу да претворим из УЦС-4 у УТФ-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (положај %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "не могу да урадим нормализацију НФКЦ-а" #~ msgid "input[%d] = U+%04x\n" #~ msgstr "улаз[%d] = U+%04x\n" #~ msgid "output[%d] = U+%04x\n" #~ msgstr "излаз[%d] = U+%04x\n" #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" libidn-1.28/po/vi.po0000644000000000000000000002716412167253751011213 00000000000000# Vietnamese Translation for LibIDN # Copyright © 2013 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Clytie Siddall , 2005-2008. # Trần Ngọc Quân , 2012-2013. # msgid "" msgstr "" "Project-Id-Version: libidn-1.27\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2013-06-10 09:07+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 1.5.5\n" "X-Poedit-SourceCharset: UTF-8\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Thành công" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Chuẩn bị chuỗi gặp lỗi" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "punycode (mã yếu đuối) gặp lỗi" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Dữ liệu nhập chứa ký tự khác chữ số/chữ/dấu gạch nối" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Không cho phép dấu gạch nối (`-') đi trước hay theo sau" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Dữ liệu xuất sẽ quá lớn hay quá nhỏ" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Dữ liệu nhập không bắt đầu bằng tiền tố ACE (`xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Chuỗi không tránh nhân lên dưới ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Dữ liệu nhập đã sẵn chứa tiền tố ACE (`xn--')" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Lỗi iconv hệ thống" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Không thể cấp phát bộ nhớ" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Lỗi dlopen hệ thống" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Lỗi không rõ" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" "Chuỗi không không thay đổi giá trị (sau khi tự nó nhân lên) dưới sự tiêu " "chuẩn hoá NFKC Unicode" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Dữ liệu nhập không hợp lệ" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Dữ liệu xuất sẽ vượt quá dung lượng bộ nhớ đệm đã cung cấp" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Giới hạn kích cỡ chuỗi bị vượt quá" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Cấm gán điểm mã trong dữ liệu nhập" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Dữ liệu nhập chứa điểm mã cấm" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Dữ liệu nhập chứa tài sản hai hướng xung đột" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Chuỗi thuận nghịch có dạng sai" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Dữ liệu nhập chứa điểm mã hai hướng cấm" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Lỗi trong định nghĩa hồ sơ stringprep (chuẩn bị chuỗi)" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Cờ xung dột với hồ sơ" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Hồ sơ lạ" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Lỗi tiêu chuẩn hoá Unicode (lỗi nội bộ)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Điểm mã bị cấm bởi miền cấp đầu" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Thiếu dữ liệu nhập" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Không tìm thấy miền cấp đầu trong dữ liệu nhập" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Thử lệnh `%s --help' để xem thêm thông tin.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Cách dùng: %s [TÙY_CHỌN]... [CHUỖI]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Chuyển đổi các CHUỖI sang IDN (tên miền đã quốc tế hoá), hay đầu vào tiêu " "chuẩn.\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Giao diện dòng lệnh với thư viện tên miền đã quốc tế hoá.\n" "\n" "Mọi chuỗi nên được mã hoá theo bộ ký tự đã thích trong miền địa phương\n" "của bạn. Hãy dùng tùy chọn \"--debug\" (gỡ lỗi) để tìm biết bộ ký tự nào.\n" "Bạn cũng có thể ghi đè lên bộ ký tự này bằng cách đặt biến môi trường\n" "CHARSET.\n" "\n" "Để xử lý một chuỗi bắt đầu với \"-\", v.d. \"-foo\", dùng \"--\" để\n" "để ra tín hiệu kết thúc đối số, như trong \"idn --quiet -a -- -foo\".\n" "\n" "Mọi đối số bắt buộc phải sử dụng với tùy chọn dài thì cũng cũng bắt buộc với " "tùy chọn ngắn.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help In ra trợ giúp rồi thoát\n" " -V, --version In ra số thứ tự phiên bản rồi thoát\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Chuẩn bị chuỗi tùy theo hồ sơ nameprep\n" " -d, --punycode-decode Giải mã Punycode\n" " -e, --punycode-encode Mã hoá Punycode\n" " -a, --idna-to-ascii Chuyển đổi sang ACE tùy theo IDNA (chế độ mặc " "định)\n" " -u, --idna-to-unicode Chuyển đổi từ ACE tùy theo IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Bật/tắt cờ IDNA AllowUnassigned (mặc định là " "tắt)\n" " --usestd3asciirules Bật/tắt cờ IDNA UseSTD3ASCIIRules (mặc định là " "tắt)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " -t, --no-tld Không kiểm tra chuỗi cho quy tắc đặc trưng TLD\n" " Chỉ dành cho \"--idna-to-ascii\" và \"--idna-to-" "unicode\"\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Tiêu chuẩn hoá chuỗi tùy theo Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=CHUỖI Dùng hồ sơ stringprep đã chỉ định thay vào đó\n" " Các hồ sơ stringprep hợp lệ: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug In ra thông tin gỡ lỗi\n" " --quiet Không xuất thông điệp\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "chỉ có thể chỉ ra một trong số các đối số -s, -e, -d, -a, -u hay -n" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Bộ ký tự \"%s\".\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Gõ mỗi chuỗi nhập trên một đường riêng, kết thúc bằng ký tự dòng mới.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "lỗi đầu vào" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "không thể chuyển đổi từ %s sang UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "không thể chuyển đổi từ UTF-8 sang UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "không thể chuyển đổi từ UTF-8 sang %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "không thể chuyển đổi từ UCS-4 sang UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (vị trí %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "không thể tiêu chuẩn hoá kiểu NFKC" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Thông báo lỗi cho <%s>.\n" libidn-1.28/po/en@quot.gmo0000644000000000000000000001775412167253751012360 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rnc aKM'b*-& 42O)-1I  Vd " &--*Xx#6 5*IOt- #"4%W"}% 3?5F|76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.28 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2013-07-10 13:54+0200 Last-Translator: Automatically generated Language-Team: none Language: en@quot MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: ‘Nameprep’, ‘iSCSI’, ‘Nodeprep’, ‘Resourceprep’, ‘trace’, ‘SASLprep’ -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset ‘%s’. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use ‘--debug’ to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with ‘-’, for example ‘-foo’, use ‘--’ to signal the end of parameters, as in ‘idn --quiet -a -- -foo’. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (‘-’)Forbidden unassigned code points in inputInput already contain ACE prefix (‘xn--’)Input does not start with ACE prefix (‘xn--’)Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry ‘%s --help’ for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %slibidn-1.28/po/id.gmo0000644000000000000000000002012112167253751011317 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[r*[!hL$qj)"##'K/i.)1K$p2".62'i&65QXl1R*/A%V$|'#&$9Nm G " @ 76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.24 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2012-05-18 17:42+0700 Last-Translator: Andhika Padmawan Language-Team: Indonesian Language: id MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit --allow-unassigned Ubah bendera AllowUnassigned IDNA (standar mati) --usestd3asciirules Ubah bendera UseSTD3ASCIIRules IDNA (standar mati) --debug Cetak informasi awakutu --quiet Operasi diam --no-tld Jangan cek benang untuk peraturan spesifik TLD Hanya untuk --idna-to-ascii dan --idna-to-unicode -h, --help Cetak bantuan lalu keluar -V, --version Cetak versi lalu keluar -n, --nfkc Normalisasi benang berdasarkan Unicode v3.2 NFKC -p, --profile=BENANG Gunakan profil stringprep ketimbang Profil stringprep yang sah: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Siapkan benang berdasarkan profil nameprep -d, --punycode-decode Awasandi Punycode -e, --punycode-encode Sandi Punycode -a, --idna-to-ascii Konversi ke ACE menurut IDNA (mode standar) -u, --idna-to-unicode Konversi dari ACE menurut IDNA Tak dapat alokasi memoriSet karakter `%s'. Titik kode dilarang oleh ranah level atasAntarmuka baris perintah ke pustaka nama ranah internasionalisasi. Semua benang diharapkan tersandi dalam set karakter kesukaan yang dipakai oleh lokal anda. Gunakan `--debug' untuk mencari tahu apakah set karakter ini. Anda dapat menimpa set karakter yang digunakan oleh pengaturan variabel lingkungan CHARSET. Untuk memproses benang yang dimulai dengan `-', misalnya `-foo', gunakan `--' untuk menandai akhir parameter, seperti dalam `idn --quiet -a -- -foo'. Argumen mandatori untuk opsi panjang merupakan mandatori untuk opsi pendek juga. Properti dwiarah konflik di masukanGalat di definisi profil stringprepBendera konflik dengan profilTanda minus awalan atau akhiran terlarang (`-')Titik kode tak ditugaskan terlarang di masukanMasukan telah berisi prefiks ACE (`xn--')Masukan tidak diawali dengan prefiks ACE (`xn--')BENANG konversi Internationalized Domain Name (IDN), atau masukan standar. Masukan tidak sahBenang dwiarah salah bentukMasukan hilangTak ada ranah level atas yang ditemukan di masukanNon-digit/huruf/sambung di masukanKeluaran akan terlalu besar atau terlalu kecilKeluaran akan melebihi ruang penyangga yang disediakanTitik kode dwiarah terlarang di masukanTitik kode terlarang di masukanPunycode gagalBenar tidak idempoten di bawah ToASCIIBenang tak idempoten di bawah normalisasi Unicode NFKCPenyiapan benang gagalBatas ruang benang tercapaiSuksesSistem dlopen gagalSistem iconv gagalCoba `'%s -- help' untuk informasi lebih lanjut. Ketik tiap benang masukan pada baris itu sendiri, diakhiri oleh karakter newline. Normalisasi unicode gagal (galat internal)Galat tak dikenalProfil tak diketahuiPenggunaan: %s [OPSI]... [BENANG]... tak dapat konversi dari %s ke UTF-8.tak dapat konversi dari UCS-4 ke UTF-8.tak dapat konversi dari UTF-8 ke %stak dapat konversi dari UTF-8 ke UCS-4tak dapat melakukan normalisasi NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sgalat masukanmallocHanya salah satu dari -s, -e, -d, -a, -u, atau -n yang dapat ditentukanpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (posisi %lu): %stld_check_4z: %slibidn-1.28/po/ro.gmo0000644000000000000000000000132412167253751011347 000000000000004L`aOplX{Charset `%s'. Type each input string on a line by itself, terminated by a newline character. Project-Id-Version: libidn 0.4.1 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2004-04-23 12:00-0500 Last-Translator: Laurentiu Buzdugan Language-Team: Romanian Language: ro MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=(n != 1); Charset `%s'. Scriei fiecare ir de intrare pe o singur linie, terminat cu un caracter linie-nou. libidn-1.28/po/hr.gmo0000644000000000000000000002032212167253751011337 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rhZhVI 8S'k&'0..*]-S 4%Ci"4+ +#?6c(1JJ4$ #2 V#w$  ># b v    76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.25 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2012-09-27 23:16+0200 Last-Translator: Tomislav Krznar Language-Team: Croatian Language: hr MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2); X-Generator: Lokalize 1.4 --allow-unassigned Promijeni IDNA AllowUnassigned zastavicu (početno isključeno) --usestd3asciirules Promijeni IDNA UseSTD3ASCIIRules zastavicu (početno isključeno) --debug Ispiši informacije za debugiranje --quiet Rad bez ispisa --no-tld Ne provjeravaj TLD specifična pravila u nizu Samo za --idna-to-ascii i --idna-to-unicode -h, --help Ispiši pomoć i izađi -V, --version Ispiši inačicu i izađi -n, --nfkc Normaliziraj niz u skladu s Unicode v3.2 NFKC -p, --profile=NIZ Koristi navedeni stringprep profil Ispravni stringprep profili: „Nameprep”, „iSCSI”, „Nodeprep”, „Resourceprep”, „trace”, „SASLprep” -s, --stringprep Pripremi niz prema nameprep profilu -d, --punycode-decode Dekodiraj Punycode -e, --punycode-encode Kodiraj Punycode -a, --idna-to-ascii Pretvori u ACE u skladu s IDNA (zadani način) -u, --idna-to-unicode Pretvori iz ACE u skladu s IDNA Ne mogu alocirati memorijuSkup znakova „%s”. Kodne točke zabranjene vršnom domenomSučelje naredbenog retka za biblioteku internacionaliziranih imena domena. Svi znakovni nizovi bi trebali biti kodirani u skupu znakova određenom vašim lokalom. Koristite „--debug” kako biste ga otkrili. Možete ga promijeniti postavljanjem varijable okoline CHARSET. Za obradu niza koji počinje s „-”, npr. „-foo”, koristite „--” za označavanje kraja popisa parametara, npr. „idn --quiet -a -- -foo”. Obavezni argumenti dugačkih opcija također su obavezni i za kratke opcije. Konfliktna dvosmjerna svojstva u ulazuGreška u stringprep definiciji profilaKonflikt zastavice s profilomZabranjeni početni ili završni minus („-”)Zabranjene nedodijeljene kodne točke na ulazuUlaz već sadrži ACE prefiks („xn--”)Ulaz ne počinje s ACE prefiksom („xn--”)Pretvaranje NIZOVA ili standardnog ulaza u internacionalizirano ime domene (IDN). Neispravan ulazIzobličen dvosmjerni nizNedostaje ulazNije pronađena vršna domena u ulazuNe-broj/slovo/crtica u ulazuIzlaz bi bio prevelik ili premalenIzlaz bi prekoračio dostupan prostor međuspremnikaZabranjene dvosmjerne kodne točke na ulazuZabranjene kodne točke na ulazuPunycode nije uspioNiz nije idempotentan prema ToASCIINiz nije idempotentan prema Unicode NFKC normalizacijiPriprema niza nije uspjelaPrekoračeno ograničenje veličine nizaUspjehdlopen sustava nije uspioiconv sustava nije uspioPokušajte „%s --help” za više informacija. Unesite svaki ulazni niz u zasebnom retku, završenom znakom novog retka. Unicode normalizacija nije uspjela (interna greška)Nepoznata greškaNepoznat profilUporaba: %s [OPCIJA]... [NIZOVI]... ne mogu pretvoriti iz %s u UTF-8ne mogu pretvoriti iz UCS-4 u UTF-8ne mogu pretvoriti iz UTF-8 u %sne mogu pretvoriti iz UTF-8 u UCS-4ne mogu izvršiti NFKC normalizacijuidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sulazna greškamallocsmijete navesti samo jednu od opcija -s, -e, -d, -a, -u ili -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (položaj %lu): %stld_check_4z: %slibidn-1.28/po/boldquot.sed0000644000000000000000000000033112167244627012550 00000000000000s/"\([^"]*\)"/“\1”/g s/`\([^`']*\)'/‘\1’/g s/ '\([^`']*\)' / ‘\1’ /g s/ '\([^`']*\)'$/ ‘\1’/g s/^'\([^`']*\)' /‘\1’ /g s/“”/""/g s/“/“/g s/”/”/g s/‘/‘/g s/’/’/g libidn-1.28/po/pl.po0000644000000000000000000002537112167253750011205 00000000000000# Polish translation for libidn. # Copyright (C) 2004, 2007, 2008, 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Jakub Bogusz , 2004-2011. # msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-04-28 20:02+0200\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Sukces" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Przygotowanie acucha nie powiodo si" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode zawiodo" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Znak nie bdcy cyfr, liter ani kresk na wejciu" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Zabroniony wiodcy lub koczcy znak minus (`-')" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Wyjcie moe by zbyt due lub zbyt mae" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Wejcie nie zaczyna si przedrostkiem ACE (`xn--')" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "acuch nie idempotentny wzgldem ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Wejcie ju zawiera przedrostek ACE (`xn--')" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Systemowa funkcja iconv nie powioda si" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Nie mona przydzieli pamici" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Systemowa funkcja dlopen nie powioda si" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Nieznany bd" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "acuch nie idempotentny wzgldem normalizacji Unikodu NFKC" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Bdne wejcie" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Wyjcie przekroczyoby dostarczone miejsce w buforze" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Przekroczony limit rozmiaru acucha" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Zabronione nieprzypisane znaki na wejciu" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Zabronione znaki na wejciu" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Konfliktowe wasnoci dwukierunkowego pisma na wejciu" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "le sformuowany acuch dwukierunkowy" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Zabronione znaki dwukierunkowe na wejciu" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Bd w definicji profilu stringprep" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Konflikt flag z profilem" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Nieznany profil" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Normalizacja Unikodu nie powioda si (bd wewntrzny)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Znaki zabronione przez domen najwyszego poziomu" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Brak wejcia" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nie znaleziono domeny najwyszego poziomu na wejciu" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Polecenie `%s --help' pozwoli uzyska wicej informacji.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Skadnia: %s [OPCJA]... [ACUCHY]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Program konwertuje ACUCHY lub standardowe wyjcie z kodowania waciwego\n" "dla umidzynarodowionych nazw domen (IDN - Internationalized Domain Name).\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Jest to interfejs linii polece do biblioteki umidzynarodowionych nazw " "domen.\n" "\n" "Wszystkie acuchy powinny by zakodowane w zestawie znakw waciwym dla\n" "uywanej lokalizacji. Opcja `--debug' pozwoli okreli, jaki to jest zestaw\n" "znakw. Mona wymusi uywany zestaw znakw zmienn rodowiskow CHARSET.\n" "\n" "Aby przetworzy acuchy zaczynajce si od `-', np. `-foo', naley uy\n" "`--', aby zasygnalizowa koniec parametrw, np. `idn --quiet -a -- -foo'.\n" "\n" "Argumenty obowizkowe dla dugich opcji s rwnie obowizkowe dla " "odpowiednich\n" "krtkich opcji.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Wypisanie opisu i zakoczenie\n" " -V, --version Wypisanie wersji i zakoczenie\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Przygotowanie acucha zgodnie z profilem " "nameprep\n" " -d, --punycode-decode Dekodowanie Punycode\n" " -e, --punycode-encode Kodowanie Punycode\n" " -a, --idna-to-ascii Konwersja do ACE zgodnie z IDNA (tryb domylny)\n" " -u, --idna-to-unicode Konwersja z ACE zgodnie z IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Wczenie flagi IDNA AllowUnassigned\n" " --usestd3asciirules Wczenie flagi IDNA UseSTD3ASCIIRules\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Niesprawdzenie acucha pod ktem regu " "specyficznych\n" " dla TLD;\n" " tylko dla --idna-to-ascii and --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalizacja acucha zgodnie z Unicode v3.2 " "NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=ACUCH Uycie okrelonego profilu stringprep\n" " Poprawne profile stringprep: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep',\n" " `trace', `SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Wypisywanie informacji diagnostycznych\n" " --quiet Dziaenie po cichu\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Mona poda tylko jedno z -s, -e, -d, -a, -u lub -n" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Zestaw znakw `%s'.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Naley poda kady acuch w osobnej linii, zakoczony znakiem nowej linii.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "bd wejcia" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "nie mona przekonwertowa z %s na UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "nie mona przekonwertowa z UTF-8 na UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "nie mona przekonwertowa z UTF-8 na %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "nie mona przekonwertowa z UCS-4 na UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (pozycja %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "normalizacja NFKC nie powioda si" libidn-1.28/po/LINGUAS0000664000000000000000000000011212167253744011246 00000000000000en@boldquot en@quot cs da de eo fi fr hr id it ja nl pl ro sr uk vi zh_CN libidn-1.28/po/libidn.pot0000644000000000000000000001600512167245604012210 00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR Simon Josefsson # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: libidn 1.28\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" #: src/idn.c:202 #, c-format msgid "input error" msgstr "" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "" libidn-1.28/po/en@quot.header0000644000000000000000000000226312167244627013015 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # libidn-1.28/po/de.po0000644000000000000000000003043412167253750011156 00000000000000# German translation of libidn. # Copyright (C) 2004 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Roland Illig , 2004. # Roland Illig , 2009. # Roland Illig , 2011. # msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-05-02 18:51+0100\n" "Last-Translator: Roland Illig \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Erfolg" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "String-Vorbereitung fehlgeschlagen" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode fehlgeschlagen" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Unerlaubtes Zeichen in der Eingabe" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Verbotenes Minuszeichen am Anfang oder am Ende" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Ergebnis wäre zu groß oder zu klein" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Eingabe beginnt nicht mit dem ACE-Präfix (»xn--«)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "String verändert sich durch ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Eingabe enthält bereits das ACE-Präfix (»xn--«)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "System-iconv fehlgeschlagen" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Nicht genug Speicher" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "System-dlopen fehlgeschlagen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Unbekannter Fehler" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "String verändert sich durch Unicode-NFKC-Normalisierung" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Ungültige Eingabe" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Ausgabe würde den vorhandenen Pufferspeicher überfluten" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "String-Größenbegrenzung überschritten" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Verbotene unzugeordnete Codepunkte in der Eingabe" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Verbotene Codepunkte in der Eingabe" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Widersprüchliche bidirektional-Eigenschaften in der Eingabe" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Ungültiger Bidirektional-String" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Verbotene bidirektionale Codepunkte in der Eingabe" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Fehler in der Stringprep-Profildefinition" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Flag-Konflikt mit dem Profil" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Unbekanntes Profil" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicode-Normalisierung fehlgeschlagen (Interner Fehler)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Codepunkte sind von der Top-Level-Domain verboten" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Fehlende Eingabe" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Keine Top-Level-Domain in der Eingabe gefunden" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Versuchen Sie »%s --help« für mehr Informationen.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Aufruf: %s [OPTION]... [STRINGS]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationalized Domain Name (IDN) konvertiert STRINGS oder die " "Standardeingabe.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Kommandozeilenprogramm für die Bibliothek für internationalisierte " "Domainnamen.\n" "\n" "Alle Strings werden so codiert erwartet, wie es der Zeichensatz der Locale\n" "angibt. Benutzen Sie »--debug« um den aktuellen Zeichensatz herauszufinden.\n" "Sie können einen Zeichensatz explizit mit der Umgebungsvariable CHARSET\n" "festlegen.\n" "\n" "Um einen String zu verarbeiten, der mit »-« beginnt (zum Beispiel »-foo«),\n" "können Sie das Ende der Optionen mit »--« kennzeichnen.\n" "Zum Beispiel: »idn --quiet -a -- -foo«.\n" "\n" "Notwendige Argumente für die langen Optionen gelten genau so für die\n" "kurzen Optionen.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Hilfe ausgeben und beenden\n" " -V, --version Version ausgeben und beenden\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep String gemäß nameprep-Profil vorbereiten\n" " -d, --punycode-decode Punycode decodieren\n" " -e, --punycode-encode Punycode codieren\n" " -a, --idna-to-ascii Gemäß IDNA in ACE konvertieren (Standardmodus)\n" " -u, --idna-to-unicode Gemäß IDNA aus ACE heraus konvertieren\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Option \"IDNA AllowUnassigned\" umschalten " "(Vorgabe: aus)\n" " --usestd3asciirules Option \"IDNA UseSTD3ASCIIRules\" umschalten " "(Vorgabe: aus)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld String nicht auf TLD-spezifische Regeln " "überprüfen\n" " Nur für --idna-to-ascii und --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc String gemäß Unicode v3.2 NFKC normalisieren\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=STRING Angegebenes stringprep-Profil benutzen\n" " Gültige stringprep-Profile: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Debugging-Informationen ausgeben\n" " --quiet Ruhig arbeiten\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "Nur eins von »-s«, »-e«, »-d«, »-a«, »-u« oder »-n« kann angegeben werden." #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Zeichensatz »%s«.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Geben Sie jede Eingabezeichenkette in einer eigenen Zeile ein, durch einen " "Zeilenumbruch abgeschlossen.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "Eingabefehler" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "Konnte nicht von %s nach UTF-8 konvertieren." #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "Konnte nicht von UTF-8 nach UCS-4 konvertieren." #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "Konnte nicht von UTF-8 nach %s konvertieren." #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "Konnte nicht von UCS-4 nach UTF-8 konvertieren." #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "Konnte die NFKC-Normalisierung nicht ausführen." #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Melden Sie Fehler an <%s>.\n" #~ "Melden Sie Übersetzungsfehler an .\n" #~ msgid "%s: fgets() failed: " #~ msgstr "%s: fgets() fehlgeschlagen: " #~ msgid "input[%d] = U+%04x\n" #~ msgstr "input[%d] = U+%04x\n" #~ msgid "%s: stringprep_profile() failed with error %d.\n" #~ msgstr "%s: stringprep_profile() mit Fehler %d fehlgeschlagen.\n" #~ msgid "output[%d] = U+%04x\n" #~ msgstr "output[%d] = U+%04x\n" #~ msgid "%s: punycode_encode() failed with error %d.\n" #~ msgstr "%s: punycode_encode() mit Fehler %d fehlgeschlagen.\n" #~ msgid "%s: malloc() failed: " #~ msgstr "%s: malloc() fehlgeschlagen: " #~ msgid "%s: punycode_decode() failed with error %d.\n" #~ msgstr "%s: punycode_decode() mit Fehler %d fehlgeschlagen.\n" #~ msgid "%s: idna_to_ascii_4z() failed with error %d.\n" #~ msgstr "%s: idna_to_ascii_4z() mit Fehler %d fehlgeschlagen.\n" #~ msgid "%s: TLD idna_to_unicode_8z8z() failed with error %d.\n" #~ msgstr "%s: TLD idna_to_unicode_8z8z() mit Fehler %d fehlgeschlagen.\n" #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" #~ msgid "%s: string rejected by TLD test (Unicode position %d)\n" #~ msgstr "" #~ "%s: Zeichenkette beim TLD-Test zurückgewiesen (Unicode position %d)\n" #~ msgid "%s: tld_check_4z failed with error %d.\n" #~ msgstr "%s: tld_check_4z mit Fehler %d fehlgeschlagen.\n" libidn-1.28/po/en@boldquot.header0000644000000000000000000000247112167244627013657 00000000000000# All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # # This catalog furthermore displays the text between the quotation marks in # bold face, assuming the VT100/XTerm escape sequences. # libidn-1.28/po/en@quot.po0000644000000000000000000002677612167253750012217 00000000000000# English translations for libidn package. # Copyright (C) 2013 Simon Josefsson # This file is distributed under the same license as the libidn package. # Automatically generated, 2013. # # All this catalog "translates" are quotation characters. # The msgids must be ASCII and therefore cannot contain real quotation # characters, only substitutes like grave accent (0x60), apostrophe (0x27) # and double quote (0x22). These substitutes look strange; see # http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html # # This catalog translates grave accent (0x60) and apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019). # It also translates pairs of apostrophe (0x27) to # left single quotation mark (U+2018) and right single quotation mark (U+2019) # and pairs of quotation mark (0x22) to # left double quotation mark (U+201C) and right double quotation mark (U+201D). # # When output to an UTF-8 terminal, the quotation characters appear perfectly. # When output to an ISO-8859-1 terminal, the single quotation marks are # transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to # grave/acute accent (by libiconv), and the double quotation marks are # transliterated to 0x22. # When output to an ASCII terminal, the single quotation marks are # transliterated to apostrophes, and the double quotation marks are # transliterated to 0x22. # msgid "" msgstr "" "Project-Id-Version: libidn 1.28\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2013-07-10 13:54+0200\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: en@quot\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Success" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "String preparation failed" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode failed" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Non-digit/letter/hyphen in input" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Forbidden leading or trailing minus sign (‘-’)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Output would be too large or too small" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Input does not start with ACE prefix (‘xn--’)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "String not idempotent under ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Input already contain ACE prefix (‘xn--’)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "System iconv failed" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Cannot allocate memory" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "System dlopen failed" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Unknown error" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "String not idempotent under Unicode NFKC normalization" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Invalid input" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Output would exceed the buffer space provided" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "String size limit exceeded" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Forbidden unassigned code points in input" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Prohibited code points in input" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Conflicting bidirectional properties in input" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Malformed bidirectional string" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Prohibited bidirectional code points in input" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Error in stringprep profile definition" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Flag conflict with profile" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Unknown profile" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicode normalization failed (internal error)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Code points prohibited by top-level domain" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Missing input" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "No top-level domain found in input" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Try ‘%s --help’ for more information.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Usage: %s [OPTION]... [STRINGS]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use ‘--debug’ to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with ‘-’, for example ‘-foo’, use ‘--’\n" "to signal the end of parameters, as in ‘idn --quiet -a -- -foo’.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: ‘Nameprep’,\n" " ‘iSCSI’, ‘Nodeprep’, ‘Resourceprep’, \n" " ‘trace’, ‘SASLprep’\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Print debugging information\n" " --quiet Silent operation\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "only one of -s, -e, -d, -a, -u or -n can be specified" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Charset ‘%s’.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Type each input string on a line by itself, terminated by a newline " "character.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "input error" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "could not convert from %s to UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "could not convert from UTF-8 to UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "could not convert from UTF-8 to %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "could not convert from UCS-4 to UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (position %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "could not do NFKC normalization" libidn-1.28/po/insert-header.sin0000644000000000000000000000124012167244627013467 00000000000000# Sed script that inserts the file called HEADER before the header entry. # # At each occurrence of a line starting with "msgid ", we execute the following # commands. At the first occurrence, insert the file. At the following # occurrences, do nothing. The distinction between the first and the following # occurrences is achieved by looking at the hold space. /^msgid /{ x # Test if the hold space is empty. s/m/m/ ta # Yes it was empty. First occurrence. Read the file. r HEADER # Output the file's contents by reading the next line. But don't lose the # current line while doing this. g N bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } libidn-1.28/po/it.gmo0000644000000000000000000002032712167253751011347 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[re lmHI-Es0//& V+w,-1W0 2&/#&S,z(@'F*n'&-W5w#$'$E'j6 & 8- f z   76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-12-05 17:30+0000 Last-Translator: Marco Colombo Language-Team: Italian Language: it MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit --allow-unassigned Attiva l'opzione IDNA AllowUnassigned --usestd3asciirules Attiva l'opzione IDNA UseSTD3ASCIIRules --debug Stampa le informazioni di debug --quiet Opera silenziosamente --no-tld Non controllare le regole per TLD nelle stringhe Solo per --idna-to-ascii e --idna-to-unicode -h, --help Stampa questo aiuto ed esce -V, --version Stampa la versione ed esce -n, --nfkc Normalizza la stringa come Unicode v3.2 NFKC -p, --profile=STRINGA Usa il profilo stringprep indicato Validi profili stringprep sono: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepara la stringa secondo il profilo nameprep -d, --punycode-decode Decodifica Punycode -e, --punycode-encode Codifica Punycode -a, --idna-to-ascii Converti in ACE secondo IDNA (modalit predefinita) -u, --idna-to-unicode Converti da ACE secondo IDNA Impossibile allocare memoriaSet di caratteri "%s". Codepoints proibiti dal dominio di primo livelloInterfaccia per la libreria di nomi di dominio internazionalizzati. Si assume che tutte le stringhe siano codificate nel set di caratteri della localizzazione in uso. Usare "--debug" per scoprire quale sia tale set. Il set di caratteri in uso pu essere cambiato impostando la variabile d'ambiente CHARSET. Per elaborare una stringa cha comincia con "-", per esempio "-foo", usare "--" per segnalare la fine dei parametri, come in "idn --quiet -a -- -foo". Gli argomenti obbligatori per le opzioni lunghe lo sono anche per quelle corte. Propriet bidirezionali in conflitto nell'inputErrore nella definizione del profilo stringprepFlag in conflitto con il profiloSegno meno ("-") iniziale o finale proibitoCodepoints non assegnati proibiti nell'inputL'input contiene gi il prefisso ACE ("xn--")L'input non comincia con il prefisso ACE ("xn--")Converte STRINGHE (o lo standard input) in nomi di dominio internazionalizzato (IDN). Input non validoStringa bidirezionale malformataInput mancanteNessun dominio di primo livello trovato nell'inputNon-numero/lettera/trattino nell'inputL'output sarebbe troppo grande o troppo piccoloL'output eccederebbe il buffer fornitoCodepoints bidirezionali proibiti nell'inputCodepoints proibiti nell'inputPunycode non riuscitoLa stringa non idempotente per ToASCIILa stringa non idempotente per la normalizzazione Unicode NFKCPreparazione della stringa non riuscitaLimite di grandezza della stringa superatoSuccessoChiamata di sistema dlopen non riuscitaChiamata di sistema iconv non riuscitaUsare "%s --help" per maggiori informazioni. Scrivere ogni stringa di input in una riga a s, terminata da un carattere di newline. Normalizzazione Unicode non riuscita (errore interno)Errore sconosciutoProfilo sconosciutoUso: %s [OPZIONI]... [STRINGHE]... impossibile convertire da %s a UTF-8impossibile convertire da UCS-4 a UTF-8impossibile convertire da UTF-8 a %simpossibile convertire da UTF-8 a UCS-4impossibile effettuare la normalizzazione Unicode NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %serrore di inputmallocpu essere indicato solo uno tra -s, -e, -d, -a, -u e -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (posizione %lu): %stld_check_4z: %slibidn-1.28/po/ro.po0000644000000000000000000002146112167253750011206 00000000000000# Mesajele n limba romn pentru libidn. # Copyright (C) 2003 Free Software Foundation, Inc. # Acest fiier este distribuit sub aceeai licen ca i pachetul libidn. # Laurentiu Buzdugan , 2003. # # # msgid "" msgstr "" "Project-Id-Version: libidn 0.4.1\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2004-04-23 12:00-0500\n" "Last-Translator: Laurentiu Buzdugan \n" "Language-Team: Romanian \n" "Language: ro\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=ISO-8859-2\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" #: src/idn.c:172 #, fuzzy, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "" "%s: Numai una din opiunile -s, -e, -d, -a sau -u poate fi specificat.\n" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Charset `%s'.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Scriei fiecare ir de intrare pe o singur linie, terminat cu un caracter " "linie-nou.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, fuzzy, c-format msgid "could not convert from %s to UTF-8" msgstr "%s: nu am putut transforma din %s n UTF-8.\n" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, fuzzy, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "%s: nu am putut transforma din UTF-8 n UCS-4.\n" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, fuzzy, c-format msgid "could not convert from UTF-8 to %s" msgstr "%s: nu am putut transforma din UTF-8 n %s.\n" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, fuzzy, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "%s: nu am putut transforma din UCS-4 n UTF-8.\n" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "" #: src/idn.c:395 #, fuzzy, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "%s: idna_to_unicode_8z4z() a euat cu eroarea %d.\n" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "" #: src/idn.c:461 #, fuzzy, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "%s: idna_to_unicode_8z4z() a euat cu eroarea %d.\n" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "" #~ msgid "%s: fgets() failed: " #~ msgstr "%s: fgets() a euat: " #~ msgid "input[%d] = U+%04x\n" #~ msgstr "intrare[%d] = U+%04x\n" #~ msgid "%s: stringprep_profile() failed with error %d.\n" #~ msgstr "%s: stringprep_profile() a euat cu eroarea %d.\n" #~ msgid "output[%d] = U+%04x\n" #~ msgstr "ieire[%d] = U+%04x\n" #~ msgid "%s: punycode_encode() failed with error %d.\n" #~ msgstr "%s: punycode_encode() a euat cu eroarea %d.\n" #~ msgid "%s: malloc() failed: " #~ msgstr "%s: malloc() a euat: " #~ msgid "%s: punycode_decode() failed with error %d.\n" #~ msgstr "%s: punycode_decode() a euat cu eroarea %d.\n" #~ msgid "%s: idna_to_ascii_4z() failed with error %d.\n" #~ msgstr "%s: idna_to_ascii_4z() a euat cu eroarea %d.\n" #~ msgid "%s: TLD idna_to_unicode_8z8z() failed with error %d.\n" #~ msgstr "%s: TLD idna_to_unicode_8z8z() a euat cu eroarea %d.\n" #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" #~ msgid "%s: string rejected by TLD test (Unicode position %d)\n" #~ msgstr "%s: ir refuzat de testul TLD (poziia Unicode %d)\n" #~ msgid "%s: tld_check_4z failed with error %d.\n" #~ msgstr "%s: tld_check_4z a euat cu eroarea %d.\n" libidn-1.28/po/uk.gmo0000644000000000000000000002553612167253751011361 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[r[z$y`b4p$Ta>f;Va8 I T 9!*!T "-_"W"q"lW#d#`)$I$$8$^%%M%F%&**&)U&Y&&ni''!'C(S^(V(S )V])B)) *+*+D*p*pw***+%'+M+76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-04-30 13:44+0300 Last-Translator: Yuri Chornoivan Language-Team: Ukrainian Language: uk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Generator: Lokalize 1.2 Plural-Forms: nplurals=1; plural=0; --allow-unassigned увімкнути або вимкнути прапорець AllowUnassigned IDNA (типово вимкнено) --usestd3asciirules увімкнути або вимкнути прапорець UseSTD3ASCIIRules IDNA (типово вимкнено) --debug вивести діагностичні дані --quiet обробка без додаткових повідомлень --no-tld не перевіряти рядок на використання специфічних правил TLD Лише для параметрів --idna-to-ascii і --idna-to-unicode -h, --help вивести довідкові дані і завершити роботу -V, --version вивести дані щодо версії і завершити роботу -n, --nfkc нормалізувати рядок відповідно до NFKC Unicode версії 3.2 -p, --profile=РЯДОК використовувати вказаний профіль stringprep profile instead Можливі значення профілів stringprep: «Nameprep», «iSCSI», «Nodeprep», «Resourceprep», «trace», «SASLprep» -s, --stringprep обробити рядок відповідно до профілю nameprep -d, --punycode-decode декодувати Punycode -e, --punycode-encode закодувати у Punycode -a, --idna-to-ascii перетворити на ACE відповідно до IDNA (типовий режим) -u, --idna-to-unicode перетворити з ACE відповідно до IDNA Не вдалося виділити пам’ятьНабір символів «%s». Символи коду, заборонені доменом вищого рівняІнтерфейс командного рядка до бібліотеки інтернаціоналізованих назв доменів. Програма вважає, що кодуванням всіх рядків є основне кодування вашої локалі. Скористайтеся параметром «--debug», щоб переглянути дані щодо кодування. Змінити набір символів можна за допомогою змінної середовища CHARSET. Для обробки рядка, що починається з «-», наприклад, «-foo» додайте у команду «--» для позначення завершення параметрів. Приклад: «idn --quiet -a -- -foo». Обов’язкові аргументи для параметрів у розгорнутому записів є обов’язковими і для скорочених форм запису. Суперечливі двонапрямні властивості у вхідних данихПомилка у визначені профілю stringprepПрапорець конфліктує з профілемНекоректний початковий або кінцевий дефіс («-»)Некоректні непов’язані символи коду у вхідних данихВхідні дані вже містять префікс ACE («xn--»)Вхідні дані не починаються з префікса ACE («xn--»)Перетворення Internationalized Domain Name (IDN) РЯДКІВ або даних зі стандартного джерела вхідних даних. Некоректні вхідні даніПомилка у форматуванні двонаправленого рядкаНе вказано вхідних данихУ вхідних даних не знайдено домену вищого рівняСимвол, відмінний від цифри, літери або дефіса у вхідних данихВиведені дані будуть занадто об’ємними або занадто малимиОб’єм виведених даних перевищує наданий об’єм буфераНекоректні двонапрямні символи коду у вхідних данихНекоректні символи коду у вхідних данихПомилка punycodeРядок не є ідемпотентним у ToASCIIРядок не є ідемпотентним після NFKC-нормалізації UnicodeПомилка під час спроби приготування рядкаПеревищено обмеження на довжину рядкаВиконаноПомилка системного dlopenПомилка системного iconvВиконайте команду «%s --help», щоб дізнатися більше. Виводити кожен рядок у окремому рядку, розділяти рядки символом нового рядка. Помилка під час спроби нормалізації Unicode (внутрішня помилка)Невідома помилкаНевідомий профільВикористання: %s [ПАРАМЕТР]... [РЯДКИ]... не вдалося перетворити дані з формату %s на UTF-8не вдалося перетворити дані з формату UCS-4 на UTF-8не вдалося перетворити дані з формату UTF-8 на %sне вдалося перетворити дані з формату UTF-8 на UCS-4не вдалося виконати NFKC-нормалізаціюidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sпомилка у вхідних данихmallocможна використовувати лише один з параметрів -s, -e, -d, -a, -u або -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (позиція %lu): %stld_check_4z: %slibidn-1.28/po/ja.gmo0000644000000000000000000000712512167253751011326 00000000000000(\5pq*-&.2)a)-  " A&b--#69pO-& Tbr|  4 / " $= 7b 6 ) ) % !0 R ,c $  * 7 "5 X -m 5      ;5 q      -D " (#%$& ' !Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainConflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedType each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %smallocpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z: %sProject-Id-Version: libidn 0.5.16 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2006-03-21 11:20+0900 Last-Translator: GOTO Masanori Language-Team: Japanese Language: ja MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-JP Content-Transfer-Encoding: 8bit ݤ˼ʸå`%s'. ȥåץ٥ɥᥤˤäƶػߤ줿ɥݥ(bidirectional)ǾͤƤޤstringprepץեǥ顼ե饰ץեȾͤƤޤƬޤˤޥʥ(`-')ϵƤޤƤʤ̤ƤΥɥݥȤϤˤޤϤϴACEƬ(`xn--')ޤǤޤϤACEƬ(`xn--')ǻϤޤäƤޤ(bidirectional)ʸϤޤȥåץ٥ɥᥤȯǤޤ˿/ʸ/ϥեʳ¸Ϥ礭뤫ϤͿ줿Хåե֤˼ޤޤػ(bidirectional)ɥݥȤϤˤޤػߥɥݥȤϤˤޤPunycodeǼToASCIIˤʸޤUnicodeNFKCˤʸޤʸǼʸĹθ³ۤޤƥؿdlopenǼƥؿiconvǼʸǽü줿ʸ1ԤĥפƤ. Unicode˼(顼)̤ΤΥ顼̤ΤΥץեidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %smallocpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z: %slibidn-1.28/po/cs.po0000644000000000000000000002665012167253750011200 00000000000000# Czech translation for libidn. # Copyright (C) 2007 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # Petr Pisar , 2007, 2008, 2011. # msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-04-28 20:24+0200\n" "Last-Translator: Petr Pisar \n" "Language-Team: Czech \n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Úspěch" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Příprava řetězce selhala" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode selhal" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Znak jiný než číslice/písmeno/spojovník na vstupu" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Zakázaný úvodní nebo závěrečný spojovník („-“)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Výstup by byl příliš dlouhý nebo příliš krátký" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Vstup nezačíná předponou ACE („xn--“)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Řetězec není po ToASCII idempotentní" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Vstup již obsahuje předponu ACE („xn--“)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Selhal systémový iconv" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Nelze vyhradit paměť" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Selhalo volání systému dlopen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Neznámá chyba" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Řetězec není po unicodové NFKC normalizaci idempotentní" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Neplatný vstup" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Výstup by se nevešel do poskytnuté vyrovnávací paměti" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Omezení délky řetězce bylo překonáno" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Na vstupu zakázaná nepřiřazená ordinární čísla" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Na vstupu zakázaná ordinární čísla" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Na vstupu rozporné příkazy pro směr textu" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Chybně utvořený obousměrný řetězec" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Na vstupu zakázaná ordinární čísla pro obousměrný text" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Chyba v definici profilu pro stringprep" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Příznak neslučitelný s profilem" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Neznámý profil" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicodová normalizace selhala (vnitřní chyba)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Ordinární čísla zakázaná vrcholovou doménou" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Postrádám vstup" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Ve vstupu chybí vrcholová doména" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Další informace získáte příkazem „%s --help“.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Použití: %s [PŘEPÍNAČ]… [ŘETĚZEC]…\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "IDN (internacionalizovaná doménová jména) převádí ŘETĚZCE nebo standardní " "vstup.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Rozhraní ke knihovně internacionalizovaných (s národními znaky) doménových\n" "jmen pro prostředí příkazového řádku.\n" "\n" "Všechny řetězce jsou očekávány ve znakové sadě upřednostňované vaším\n" "národním prostředím. Která sada to je, zjistíte přepínačem „--debug“. Jinou\n" "znakovou sadu můžete vnutit nastavením proměnné prostředí CHARSET.\n" "\n" "Je-li třeba pracovat s řetězcem začínající znakem „-“ (např. „-foo“), " "použijte\n" "„--“ pro označení konce všech parametrů (např. „idn --quiet -a -- -foo“).\n" "\n" "Povinné argumenty dlouhých přepínačů jsou rovněž povinné u odpovídajících\n" "krátkých přepínačů.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Vypíše nápovědu a skončí\n" " -V, --version Vypíše verzi a skončí\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Připraví řetězec podle nameprep profilu\n" " -d, --punycode-decode Dekóduje Punycode\n" " -e, --punycode-encode Kóduje do Punycode\n" " -a, --idna-to-ascii Převede do ACE podle IDNA (implicitní režim)\n" " -u, --idna-to-unicode Převede z ACE podle IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Přepne příznak IDNA AllowUnassigned (implicitně\n" " vypnut)\n" " --usestd3asciirules Přepne příznak IDNA UseSTD3ASCIIRules " "(implicitně\n" " vypnut)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Nekontroluje řetězec podle pravidel dané TLD.\n" " Jen u --idna-to-ascii a --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normalizuje řetězec podle Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=ŘETĚZEC Použije zadaný stringprep profil.\n" " Platné stringprep profily jsou: „Nameprep“,\n" " „iSCSI“, „Nodeprep“, „Resourceprep“, „trace“ a \n" " „SASLprep“\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Vypíše ladicí informace\n" " --quiet Pracuje potichu\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "Pouze jeden přepínač z -s, -e, -d, -a, -u nebo -n smí být zadán." #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Znaková sada „%s“.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Pište po jednom vstupním řetězci na jednom řádku zakončeným znakem nového " "řádku.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "chyba na vstupu" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "nelze převést z %s do UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "nelze převést z UTF-8 do UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile (profil pro přípravu řetězce): %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "nelze převést z UTF-8 do %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode (zakódování do Punycodu): %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode (dekódování Punycodu): %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "nelze převést z UCS-4 do UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (pozice %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "nebylo možné znormalizovat do NFKC" #~ msgid "" #~ "\n" #~ "Report bugs to <%s>.\n" #~ msgstr "" #~ "\n" #~ "Chyby programu hlaste na <%s> (pouze anglicky),\n" #~ "chyby překladu na (česky).\n" #~ msgid "input[%lu] = U+%04x\n" #~ msgstr "vstup[%lu] = U+%04x\n" #~ msgid "output[%lu] = U+%04x\n" #~ msgstr "výstup[%lu] = U+%04x\n" #~ msgid "tld[%lu] = U+%04x\n" #~ msgstr "vrcholová_doména[%lu] = U+%04x\n" #~ msgid "nfkc: %s" #~ msgstr "nfkc: %s" libidn-1.28/po/pl.gmo0000644000000000000000000002053312167253751011345 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[r}!psMN11%.6T#0),#2P&* Q4^3(4)%Ok)};'$ 0)7(a9L7 IW&g'*'* "4 W l   3  !!+!J!76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-04-28 20:02+0200 Last-Translator: Jakub Bogusz Language-Team: Polish Language: pl MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 8bit --allow-unassigned Wczenie flagi IDNA AllowUnassigned --usestd3asciirules Wczenie flagi IDNA UseSTD3ASCIIRules --debug Wypisywanie informacji diagnostycznych --quiet Dziaenie po cichu --no-tld Niesprawdzenie acucha pod ktem regu specyficznych dla TLD; tylko dla --idna-to-ascii and --idna-to-unicode -h, --help Wypisanie opisu i zakoczenie -V, --version Wypisanie wersji i zakoczenie -n, --nfkc Normalizacja acucha zgodnie z Unicode v3.2 NFKC -p, --profile=ACUCH Uycie okrelonego profilu stringprep Poprawne profile stringprep: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Przygotowanie acucha zgodnie z profilem nameprep -d, --punycode-decode Dekodowanie Punycode -e, --punycode-encode Kodowanie Punycode -a, --idna-to-ascii Konwersja do ACE zgodnie z IDNA (tryb domylny) -u, --idna-to-unicode Konwersja z ACE zgodnie z IDNA Nie mona przydzieli pamiciZestaw znakw `%s'. Znaki zabronione przez domen najwyszego poziomuJest to interfejs linii polece do biblioteki umidzynarodowionych nazw domen. Wszystkie acuchy powinny by zakodowane w zestawie znakw waciwym dla uywanej lokalizacji. Opcja `--debug' pozwoli okreli, jaki to jest zestaw znakw. Mona wymusi uywany zestaw znakw zmienn rodowiskow CHARSET. Aby przetworzy acuchy zaczynajce si od `-', np. `-foo', naley uy `--', aby zasygnalizowa koniec parametrw, np. `idn --quiet -a -- -foo'. Argumenty obowizkowe dla dugich opcji s rwnie obowizkowe dla odpowiednich krtkich opcji. Konfliktowe wasnoci dwukierunkowego pisma na wejciuBd w definicji profilu stringprepKonflikt flag z profilemZabroniony wiodcy lub koczcy znak minus (`-')Zabronione nieprzypisane znaki na wejciuWejcie ju zawiera przedrostek ACE (`xn--')Wejcie nie zaczyna si przedrostkiem ACE (`xn--')Program konwertuje ACUCHY lub standardowe wyjcie z kodowania waciwego dla umidzynarodowionych nazw domen (IDN - Internationalized Domain Name). Bdne wejciele sformuowany acuch dwukierunkowyBrak wejciaNie znaleziono domeny najwyszego poziomu na wejciuZnak nie bdcy cyfr, liter ani kresk na wejciuWyjcie moe by zbyt due lub zbyt maeWyjcie przekroczyoby dostarczone miejsce w buforzeZabronione znaki dwukierunkowe na wejciuZabronione znaki na wejciuPunycode zawiodoacuch nie idempotentny wzgldem ToASCIIacuch nie idempotentny wzgldem normalizacji Unikodu NFKCPrzygotowanie acucha nie powiodo siPrzekroczony limit rozmiaru acuchaSukcesSystemowa funkcja dlopen nie powioda siSystemowa funkcja iconv nie powioda siPolecenie `%s --help' pozwoli uzyska wicej informacji. Naley poda kady acuch w osobnej linii, zakoczony znakiem nowej linii. Normalizacja Unikodu nie powioda si (bd wewntrzny)Nieznany bdNieznany profilSkadnia: %s [OPCJA]... [ACUCHY]... nie mona przekonwertowa z %s na UTF-8nie mona przekonwertowa z UCS-4 na UTF-8nie mona przekonwertowa z UTF-8 na %snie mona przekonwertowa z UTF-8 na UCS-4normalizacja NFKC nie powioda siidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sbd wejciamallocMona poda tylko jedno z -s, -e, -d, -a, -u lub -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (pozycja %lu): %stld_check_4z: %slibidn-1.28/po/zh_CN.gmo0000644000000000000000000001737612167253751011746 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rubkD al|*#+*(E)n=   )(R$h'#7@Vls.+% *&@g' AN6U76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.24 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2012-02-14 20:25+0800 Last-Translator: Ji ZhengYu Language-Team: Chinese (simplified) Language: zh_CN MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit --allow-unassigned 切换 IDNA AllowUnassigned 标识(默认关闭) --usestd3asciirules 切换 IDNA UseSTD3ASCIIRules 标识(默认关闭) --debug 打印调试信息 --quiet 处理时不显示信息 --no-tld 不按 TLD 指定的规则检查字符串 仅对 --idna-to-ascii 和 --idna-to-unicode 有效 -h, --help 打印此帮助并退出 -V, --version 打印程序版本并退出 -n, --nfkc 按 Unicode v3.2 NFKC 正规化字符串 -p, --profile=STRING 使用指定的 stringprep 配置文件 代替 有效的 stringprep 配置文件: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep 按 nameprep 配置文件 准备字符串 -d, --punycode-decode 解码 Punycode -e, --punycode-encode 编码 Punycode -a, --idna-to-ascii 按 IDNA 转换为 ACE (默认方式) -u, --idna-to-unicode 按 IDNA 从 ACE 转换 无法分配内存字符集‘%s’。 顶级域不接受代码点国际化域名库的命令行界面。. 所有的字符串都将以您所在区域的最合适的字符集进行编码。 使用‘--debug’可以找出这个字符集。 您可通过设置环境变量 CHARSET 来重设这一字符集。 要想处理以‘-’开始的字符串,如‘-foo’,请使用‘--’来标识 参数结束,例如‘idn --quiet -a -- -foo’。 长选项所必需的参数对于短选项来说也是必需的。 输入中出现相互冲突的双向属性Stringpref 配置文件定义出错标识与配置文件冲突不能使用‘-’作为起始或终止符输入中不能出现未赋值的代码点输入已经包含 ACE前缀(‘xn--’)输入未以 ACE 前缀(‘xn--’)开头字符串或是标准输入的国际化域名(IDN)转化。 无效输入双向字符串格式错误输入缺失输入中未发现顶级域输入中出现非数字/字母/连字符输出太大或太小输入将溢出所提供的缓冲区输入中不能出现双向的代码点输入中不能出现代码点Punycode 失败ToASCII 中字符串不是幂等的Unicode NFKC 正规化过程中字符串不是幂等的预备字符串失败字符串大小越界成功系统 dlopen 失败系统 iconv 失败尝试用‘%s --help’获取更多信息。 输入时,每个字符串单占一行。 Unicode 正规化失败(内部错误)未知错误未知的配置文件用法: %s [选项]... [字符串]... 无法将 %s 转为 UTF-8无法将 UCS-4 转为 UTF-8无法将 UTF-8 转为 %s无法将 UTF-8 转为 UCS-4不能进行 NFKC 标准化idna_to_ascii_4z:%sidna_to_unicode_8z4z (TLD):%sidna_to_unicode_8z4z:%s输入错误malloc只能指定 -s, -e, -d, -a, -u 或是 -n 中的一个punycode_decode: %spunycode_encode:%sstringprep_profile:%stld_check_4z (位置 %lu):%stld_check_4z:%slibidn-1.28/po/uk.po0000644000000000000000000003237512167253751011214 00000000000000# Ukrainian translation of libidn. # Copyright (C) 2011 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # Yuri Chornoivan , 2011. msgid "" msgstr "" "Project-Id-Version: libidn 1.21\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2011-04-30 13:44+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=1; plural=0;\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Виконано" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Помилка під час спроби приготування рядка" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Помилка punycode" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Символ, відмінний від цифри, літери або дефіса у вхідних даних" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Некоректний початковий або кінцевий дефіс («-»)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Виведені дані будуть занадто об’ємними або занадто малими" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Вхідні дані не починаються з префікса ACE («xn--»)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Рядок не є ідемпотентним у ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Вхідні дані вже містять префікс ACE («xn--»)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "Помилка системного iconv" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Не вдалося виділити пам’ять" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "Помилка системного dlopen" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Невідома помилка" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Рядок не є ідемпотентним після NFKC-нормалізації Unicode" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Некоректні вхідні дані" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Об’єм виведених даних перевищує наданий об’єм буфера" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Перевищено обмеження на довжину рядка" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Некоректні непов’язані символи коду у вхідних даних" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Некоректні символи коду у вхідних даних" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Суперечливі двонапрямні властивості у вхідних даних" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Помилка у форматуванні двонаправленого рядка" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Некоректні двонапрямні символи коду у вхідних даних" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Помилка у визначені профілю stringprep" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Прапорець конфліктує з профілем" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Невідомий профіль" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Помилка під час спроби нормалізації Unicode (внутрішня помилка)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Символи коду, заборонені доменом вищого рівня" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Не вказано вхідних даних" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "У вхідних даних не знайдено домену вищого рівня" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Виконайте команду «%s --help», щоб дізнатися більше.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Використання: %s [ПАРАМЕТР]... [РЯДКИ]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Перетворення Internationalized Domain Name (IDN) РЯДКІВ або даних зі " "стандартного джерела вхідних даних.\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Інтерфейс командного рядка до бібліотеки інтернаціоналізованих назв " "доменів.\n" "\n" "Програма вважає, що кодуванням всіх рядків є основне кодування вашої\n" "локалі. Скористайтеся параметром «--debug», щоб переглянути дані щодо " "кодування.\n" "Змінити набір символів можна за допомогою змінної середовища CHARSET.\n" "\n" "Для обробки рядка, що починається з «-», наприклад, «-foo» додайте у команду " "«--»\n" "для позначення завершення параметрів. Приклад: «idn --quiet -a -- -foo».\n" "\n" "Обов’язкові аргументи для параметрів у розгорнутому записів є обов’язковими " "і для\n" "скорочених форм запису.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help вивести довідкові дані і завершити роботу\n" " -V, --version вивести дані щодо версії і завершити роботу\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep обробити рядок відповідно до профілю nameprep\n" " -d, --punycode-decode декодувати Punycode\n" " -e, --punycode-encode закодувати у Punycode\n" " -a, --idna-to-ascii перетворити на ACE відповідно до IDNA (типовий " "режим)\n" " -u, --idna-to-unicode перетворити з ACE відповідно до IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned увімкнути або вимкнути прапорець AllowUnassigned " "IDNA (типово вимкнено)\n" " --usestd3asciirules увімкнути або вимкнути прапорець " "UseSTD3ASCIIRules IDNA (типово вимкнено)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld не перевіряти рядок на використання специфічних " "правил TLD\n" " Лише для параметрів --idna-to-ascii і --idna-to-" "unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc нормалізувати рядок відповідно до NFKC Unicode " "версії 3.2\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=РЯДОК використовувати вказаний профіль stringprep " "profile instead\n" " Можливі значення профілів stringprep: " "«Nameprep»,\n" " «iSCSI», «Nodeprep», «Resourceprep», \n" " «trace», «SASLprep»\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug вивести діагностичні дані\n" " --quiet обробка без додаткових повідомлень\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "можна використовувати лише один з параметрів -s, -e, -d, -a, -u або -n" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Набір символів «%s».\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Виводити кожен рядок у окремому рядку, розділяти рядки символом нового " "рядка.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "помилка у вхідних даних" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "не вдалося перетворити дані з формату %s на UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "не вдалося перетворити дані з формату UTF-8 на UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "не вдалося перетворити дані з формату UTF-8 на %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "не вдалося перетворити дані з формату UCS-4 на UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (позиція %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "не вдалося виконати NFKC-нормалізацію" libidn-1.28/po/hr.po0000644000000000000000000002513312167253750011177 00000000000000# Translation of libidn to Croatian. # Copyright (C) 2012 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # # Tomislav Krznar , 2012. msgid "" msgstr "" "Project-Id-Version: libidn 1.25\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2012-09-27 23:16+0200\n" "Last-Translator: Tomislav Krznar \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 1.4\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "Uspjeh" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "Priprema niza nije uspjela" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "Punycode nije uspio" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "Ne-broj/slovo/crtica u ulazu" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Zabranjeni početni ili završni minus („-”)" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Izlaz bi bio prevelik ili premalen" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "Ulaz ne počinje s ACE prefiksom („xn--”)" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "Niz nije idempotentan prema ToASCII" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "Ulaz već sadrži ACE prefiks („xn--”)" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "iconv sustava nije uspio" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "Ne mogu alocirati memoriju" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "dlopen sustava nije uspio" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "Nepoznata greška" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "Niz nije idempotentan prema Unicode NFKC normalizaciji" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "Neispravan ulaz" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "Izlaz bi prekoračio dostupan prostor međuspremnika" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "Prekoračeno ograničenje veličine niza" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Zabranjene nedodijeljene kodne točke na ulazu" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "Zabranjene kodne točke na ulazu" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "Konfliktna dvosmjerna svojstva u ulazu" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "Izobličen dvosmjerni niz" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "Zabranjene dvosmjerne kodne točke na ulazu" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "Greška u stringprep definiciji profila" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "Konflikt zastavice s profilom" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "Nepoznat profil" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicode normalizacija nije uspjela (interna greška)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "Kodne točke zabranjene vršnom domenom" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Nedostaje ulaz" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "Nije pronađena vršna domena u ulazu" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "Pokušajte „%s --help” za više informacija.\n" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "Uporaba: %s [OPCIJA]... [NIZOVI]...\n" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" "Pretvaranje NIZOVA ili standardnog ulaza u internacionalizirano ime domene " "(IDN).\n" "\n" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" "Sučelje naredbenog retka za biblioteku internacionaliziranih imena domena.\n" "\n" "Svi znakovni nizovi bi trebali biti kodirani u skupu znakova određenom\n" "vašim lokalom. Koristite „--debug” kako biste ga otkrili. Možete ga\n" "promijeniti postavljanjem varijable okoline CHARSET.\n" "\n" "Za obradu niza koji počinje s „-”, npr. „-foo”, koristite „--” za\n" "označavanje kraja popisa parametara, npr. „idn --quiet -a -- -foo”.\n" "\n" "Obavezni argumenti dugačkih opcija također su obavezni i za kratke opcije.\n" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" " -h, --help Ispiši pomoć i izađi\n" " -V, --version Ispiši inačicu i izađi\n" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" " -s, --stringprep Pripremi niz prema nameprep profilu\n" " -d, --punycode-decode Dekodiraj Punycode\n" " -e, --punycode-encode Kodiraj Punycode\n" " -a, --idna-to-ascii Pretvori u ACE u skladu s IDNA (zadani način)\n" " -u, --idna-to-unicode Pretvori iz ACE u skladu s IDNA\n" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" " --allow-unassigned Promijeni IDNA AllowUnassigned zastavicu (početno " "isključeno)\n" " --usestd3asciirules Promijeni IDNA UseSTD3ASCIIRules zastavicu " "(početno isključeno)\n" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" " --no-tld Ne provjeravaj TLD specifična pravila u nizu\n" " Samo za --idna-to-ascii i --idna-to-unicode\n" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" " -n, --nfkc Normaliziraj niz u skladu s Unicode v3.2 NFKC\n" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" " -p, --profile=NIZ Koristi navedeni stringprep profil\n" " Ispravni stringprep profili: „Nameprep”,\n" " „iSCSI”, „Nodeprep”, „Resourceprep”,\n" " „trace”, „SASLprep”\n" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" " --debug Ispiši informacije za debugiranje\n" " --quiet Rad bez ispisa\n" #: src/idn.c:172 #, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "smijete navesti samo jednu od opcija -s, -e, -d, -a, -u ili -n" #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "Skup znakova „%s”.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "" "Unesite svaki ulazni niz u zasebnom retku, završenom znakom novog retka.\n" #: src/idn.c:202 #, c-format msgid "input error" msgstr "ulazna greška" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, c-format msgid "could not convert from %s to UTF-8" msgstr "ne mogu pretvoriti iz %s u UTF-8" #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "ne mogu pretvoriti iz UTF-8 u UCS-4" #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, c-format msgid "could not convert from UTF-8 to %s" msgstr "ne mogu pretvoriti iz UTF-8 u %s" #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "ne mogu pretvoriti iz UCS-4 u UTF-8" #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z (položaj %lu): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, c-format msgid "could not do NFKC normalization" msgstr "ne mogu izvršiti NFKC normalizaciju" libidn-1.28/po/vi.gmo0000644000000000000000000002205212167253751011346 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[ro;WR0JL#0=E*CI/=FjB$'?LU1T8)+b(0w ` 1   5 `)!3!! !.!/ "2<"/o"2"+""#2#K#]#Td#### #$76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn-1.27 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2013-06-10 09:07+0700 Last-Translator: Trần Ngọc Quân Language-Team: Vietnamese Language: vi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=1; plural=0; X-Generator: Poedit 1.5.5 X-Poedit-SourceCharset: UTF-8 --allow-unassigned Bật/tắt cờ IDNA AllowUnassigned (mặc định là tắt) --usestd3asciirules Bật/tắt cờ IDNA UseSTD3ASCIIRules (mặc định là tắt) --debug In ra thông tin gỡ lỗi --quiet Không xuất thông điệp -t, --no-tld Không kiểm tra chuỗi cho quy tắc đặc trưng TLD Chỉ dành cho "--idna-to-ascii" và "--idna-to-unicode" -h, --help In ra trợ giúp rồi thoát -V, --version In ra số thứ tự phiên bản rồi thoát -n, --nfkc Tiêu chuẩn hoá chuỗi tùy theo Unicode v3.2 NFKC -p, --profile=CHUỖI Dùng hồ sơ stringprep đã chỉ định thay vào đó Các hồ sơ stringprep hợp lệ: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Chuẩn bị chuỗi tùy theo hồ sơ nameprep -d, --punycode-decode Giải mã Punycode -e, --punycode-encode Mã hoá Punycode -a, --idna-to-ascii Chuyển đổi sang ACE tùy theo IDNA (chế độ mặc định) -u, --idna-to-unicode Chuyển đổi từ ACE tùy theo IDNA Không thể cấp phát bộ nhớBộ ký tự "%s". Điểm mã bị cấm bởi miền cấp đầuGiao diện dòng lệnh với thư viện tên miền đã quốc tế hoá. Mọi chuỗi nên được mã hoá theo bộ ký tự đã thích trong miền địa phương của bạn. Hãy dùng tùy chọn "--debug" (gỡ lỗi) để tìm biết bộ ký tự nào. Bạn cũng có thể ghi đè lên bộ ký tự này bằng cách đặt biến môi trường CHARSET. Để xử lý một chuỗi bắt đầu với "-", v.d. "-foo", dùng "--" để để ra tín hiệu kết thúc đối số, như trong "idn --quiet -a -- -foo". Mọi đối số bắt buộc phải sử dụng với tùy chọn dài thì cũng cũng bắt buộc với tùy chọn ngắn. Dữ liệu nhập chứa tài sản hai hướng xung độtLỗi trong định nghĩa hồ sơ stringprep (chuẩn bị chuỗi)Cờ xung dột với hồ sơKhông cho phép dấu gạch nối (`-') đi trước hay theo sauCấm gán điểm mã trong dữ liệu nhậpDữ liệu nhập đã sẵn chứa tiền tố ACE (`xn--')Dữ liệu nhập không bắt đầu bằng tiền tố ACE (`xn--')Chuyển đổi các CHUỖI sang IDN (tên miền đã quốc tế hoá), hay đầu vào tiêu chuẩn. Dữ liệu nhập không hợp lệChuỗi thuận nghịch có dạng saiThiếu dữ liệu nhậpKhông tìm thấy miền cấp đầu trong dữ liệu nhậpDữ liệu nhập chứa ký tự khác chữ số/chữ/dấu gạch nốiDữ liệu xuất sẽ quá lớn hay quá nhỏDữ liệu xuất sẽ vượt quá dung lượng bộ nhớ đệm đã cung cấpDữ liệu nhập chứa điểm mã hai hướng cấmDữ liệu nhập chứa điểm mã cấmpunycode (mã yếu đuối) gặp lỗiChuỗi không tránh nhân lên dưới ToASCIIChuỗi không không thay đổi giá trị (sau khi tự nó nhân lên) dưới sự tiêu chuẩn hoá NFKC UnicodeChuẩn bị chuỗi gặp lỗiGiới hạn kích cỡ chuỗi bị vượt quáThành côngLỗi dlopen hệ thốngLỗi iconv hệ thốngThử lệnh `%s --help' để xem thêm thông tin. Gõ mỗi chuỗi nhập trên một đường riêng, kết thúc bằng ký tự dòng mới. Lỗi tiêu chuẩn hoá Unicode (lỗi nội bộ)Lỗi không rõHồ sơ lạCách dùng: %s [TÙY_CHỌN]... [CHUỖI]... không thể chuyển đổi từ %s sang UTF-8không thể chuyển đổi từ UCS-4 sang UTF-8không thể chuyển đổi từ UTF-8 sang %skhông thể chuyển đổi từ UTF-8 sang UCS-4không thể tiêu chuẩn hoá kiểu NFKCidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %slỗi đầu vàomallocchỉ có thể chỉ ra một trong số các đối số -s, -e, -d, -a, -u hay -npunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (vị trí %lu): %stld_check_4z: %slibidn-1.28/po/ja.po0000644000000000000000000002136112167253750011157 00000000000000# Japanese messages for libidn. # Copyright (C) 2006 Free Software Foundation, Inc. # This file is distributed under the same license as the libidn package. # GOTO Masanori , 2006. # msgid "" msgstr "" "Project-Id-Version: libidn 0.5.16\n" "Report-Msgid-Bugs-To: bug-libidn@gnu.org\n" "POT-Creation-Date: 2013-07-10 13:54+0200\n" "PO-Revision-Date: 2006-03-21 11:20+0900\n" "Last-Translator: GOTO Masanori \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=EUC-JP\n" "Content-Transfer-Encoding: 8bit\n" #: lib/strerror-idna.c:82 lib/strerror-pr29.c:66 lib/strerror-punycode.c:66 #: lib/strerror-stringprep.c:86 lib/strerror-tld.c:68 msgid "Success" msgstr "" #: lib/strerror-idna.c:86 lib/strerror-pr29.c:74 msgid "String preparation failed" msgstr "ʸǼ" #: lib/strerror-idna.c:90 msgid "Punycode failed" msgstr "PunycodeǼ" #: lib/strerror-idna.c:94 msgid "Non-digit/letter/hyphen in input" msgstr "˿/ʸ/ϥեʳ¸" #: lib/strerror-idna.c:98 msgid "Forbidden leading or trailing minus sign (`-')" msgstr "Ƭޤˤޥʥ(`-')ϵƤޤ" #: lib/strerror-idna.c:102 msgid "Output would be too large or too small" msgstr "Ϥ礭뤫" #: lib/strerror-idna.c:106 msgid "Input does not start with ACE prefix (`xn--')" msgstr "ϤACEƬ(`xn--')ǻϤޤäƤޤ" #: lib/strerror-idna.c:110 msgid "String not idempotent under ToASCII" msgstr "ToASCIIˤʸޤ" #: lib/strerror-idna.c:114 msgid "Input already contain ACE prefix (`xn--')" msgstr "ϤϴACEƬ(`xn--')ޤǤޤ" #: lib/strerror-idna.c:118 lib/strerror-tld.c:84 msgid "System iconv failed" msgstr "ƥؿiconvǼ" #: lib/strerror-idna.c:122 lib/strerror-stringprep.c:130 lib/strerror-tld.c:80 msgid "Cannot allocate memory" msgstr "ݤ˼" #: lib/strerror-idna.c:126 msgid "System dlopen failed" msgstr "ƥؿdlopenǼ" #: lib/strerror-idna.c:130 lib/strerror-pr29.c:78 lib/strerror-punycode.c:82 #: lib/strerror-stringprep.c:134 lib/strerror-tld.c:92 msgid "Unknown error" msgstr "̤ΤΥ顼" #: lib/strerror-pr29.c:70 msgid "String not idempotent under Unicode NFKC normalization" msgstr "UnicodeNFKCˤʸޤ" #: lib/strerror-punycode.c:70 msgid "Invalid input" msgstr "" #: lib/strerror-punycode.c:74 lib/strerror-stringprep.c:110 msgid "Output would exceed the buffer space provided" msgstr "ϤͿ줿Хåե֤˼ޤޤ" #: lib/strerror-punycode.c:78 msgid "String size limit exceeded" msgstr "ʸĹθ³ۤޤ" #: lib/strerror-stringprep.c:90 msgid "Forbidden unassigned code points in input" msgstr "Ƥʤ̤ƤΥɥݥȤϤˤޤ" #: lib/strerror-stringprep.c:94 msgid "Prohibited code points in input" msgstr "ػߥɥݥȤϤˤޤ" #: lib/strerror-stringprep.c:98 msgid "Conflicting bidirectional properties in input" msgstr "(bidirectional)ǾͤƤޤ" #: lib/strerror-stringprep.c:102 msgid "Malformed bidirectional string" msgstr "(bidirectional)ʸ" #: lib/strerror-stringprep.c:106 msgid "Prohibited bidirectional code points in input" msgstr "ػ(bidirectional)ɥݥȤϤˤޤ" #: lib/strerror-stringprep.c:114 msgid "Error in stringprep profile definition" msgstr "stringprepץեǥ顼" #: lib/strerror-stringprep.c:118 msgid "Flag conflict with profile" msgstr "ե饰ץեȾͤƤޤ" #: lib/strerror-stringprep.c:122 msgid "Unknown profile" msgstr "̤ΤΥץե" #: lib/strerror-stringprep.c:126 msgid "Unicode normalization failed (internal error)" msgstr "Unicode˼(顼)" #: lib/strerror-tld.c:72 msgid "Code points prohibited by top-level domain" msgstr "ȥåץ٥ɥᥤˤäƶػߤ줿ɥݥ" #: lib/strerror-tld.c:76 msgid "Missing input" msgstr "Ϥޤ" #: lib/strerror-tld.c:88 msgid "No top-level domain found in input" msgstr "ȥåץ٥ɥᥤȯǤޤ" #: src/idn.c:65 #, c-format msgid "Try `%s --help' for more information.\n" msgstr "" #: src/idn.c:69 #, c-format msgid "Usage: %s [OPTION]... [STRINGS]...\n" msgstr "" #: src/idn.c:72 msgid "" "Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n" "\n" msgstr "" #: src/idn.c:76 msgid "" "Command line interface to the internationalized domain name library.\n" "\n" "All strings are expected to be encoded in the preferred charset used\n" "by your locale. Use `--debug' to find out what this charset is. You\n" "can override the charset used by setting environment variable CHARSET.\n" "\n" "To process a string that starts with `-', for example `-foo', use `--'\n" "to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n" "\n" "Mandatory arguments to long options are mandatory for short options too.\n" msgstr "" #: src/idn.c:88 msgid "" " -h, --help Print help and exit\n" " -V, --version Print version and exit\n" msgstr "" #: src/idn.c:92 msgid "" " -s, --stringprep Prepare string according to nameprep profile\n" " -d, --punycode-decode Decode Punycode\n" " -e, --punycode-encode Encode Punycode\n" " -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n" " -u, --idna-to-unicode Convert from ACE according to IDNA\n" msgstr "" #: src/idn.c:99 msgid "" " --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n" " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n" msgstr "" #: src/idn.c:103 msgid "" " --no-tld Don't check string for TLD specific rules\n" " Only for --idna-to-ascii and --idna-to-unicode\n" msgstr "" #: src/idn.c:107 msgid "" " -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n" msgstr "" #: src/idn.c:110 msgid "" " -p, --profile=STRING Use specified stringprep profile instead\n" " Valid stringprep profiles: `Nameprep',\n" " `iSCSI', `Nodeprep', `Resourceprep', \n" " `trace', `SASLprep'\n" msgstr "" #: src/idn.c:116 msgid "" " --debug Print debugging information\n" " --quiet Silent operation\n" msgstr "" #: src/idn.c:172 #, fuzzy, c-format msgid "only one of -s, -e, -d, -a, -u or -n can be specified" msgstr "-s, -e, -d, -a, -uΤ줫1ĤǤޤ." #: src/idn.c:182 #, c-format msgid "Charset `%s'.\n" msgstr "ʸå`%s'.\n" #: src/idn.c:187 #, c-format msgid "" "Type each input string on a line by itself, terminated by a newline " "character.\n" msgstr "ʸǽü줿ʸ1ԤĥפƤ.\n" #: src/idn.c:202 #, fuzzy, c-format msgid "input error" msgstr "ϥ顼" #: src/idn.c:212 src/idn.c:274 src/idn.c:357 src/idn.c:434 src/idn.c:515 #, fuzzy, c-format msgid "could not convert from %s to UTF-8" msgstr "%sUTF-8ѴǤޤǤ." #: src/idn.c:220 src/idn.c:245 src/idn.c:281 src/idn.c:498 src/idn.c:527 #: src/idn.c:551 #, fuzzy, c-format msgid "could not convert from UTF-8 to UCS-4" msgstr "UTF-8UCS-4ѴǤޤǤ." #: src/idn.c:237 #, c-format msgid "stringprep_profile: %s" msgstr "stringprep_profile: %s" #: src/idn.c:260 src/idn.c:302 src/idn.c:345 src/idn.c:503 src/idn.c:564 #, fuzzy, c-format msgid "could not convert from UTF-8 to %s" msgstr "UTF-8%sѴǤޤǤ." #: src/idn.c:295 #, c-format msgid "punycode_encode: %s" msgstr "punycode_encode: %s" #: src/idn.c:317 #, c-format msgid "malloc" msgstr "malloc" #: src/idn.c:323 #, c-format msgid "punycode_decode: %s" msgstr "punycode_decode: %s" #: src/idn.c:340 src/idn.c:364 src/idn.c:442 #, fuzzy, c-format msgid "could not convert from UCS-4 to UTF-8" msgstr "UCS-4UTF-8ѴǤޤǤ." #: src/idn.c:381 #, c-format msgid "idna_to_ascii_4z: %s" msgstr "idna_to_ascii_4z: %s" #: src/idn.c:395 #, c-format msgid "idna_to_unicode_8z4z (TLD): %s" msgstr "idna_to_unicode_8z4z (TLD): %s" #: src/idn.c:409 src/idn.c:482 #, fuzzy, c-format msgid "tld_check_4z (position %lu): %s" msgstr "tld_check_4z ( %d): %s" #: src/idn.c:412 src/idn.c:488 #, c-format msgid "tld_check_4z: %s" msgstr "tld_check_4z: %s" #: src/idn.c:461 #, c-format msgid "idna_to_unicode_8z4z: %s" msgstr "idna_to_unicode_8z4z: %s" #: src/idn.c:540 #, fuzzy, c-format msgid "could not do NFKC normalization" msgstr "UnicodeNFKCˤʸޤ" #~ msgid "input[%d] = U+%04x\n" #~ msgstr "[%d] = U+%04x\n" #~ msgid "output[%d] = U+%04x\n" #~ msgstr "[%d] = U+%04x\n" #~ msgid "tld[%d] = U+%04x\n" #~ msgstr "tld[%d] = U+%04x\n" libidn-1.28/po/de.gmo0000644000000000000000000002060512167253751011322 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rwf+nJ721N<]).13B4vS 3.D"s%92#)M$e8"(35Oh7&9$L,q/,/0+ \ q   V !)!=!T!t!76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-05-02 18:51+0100 Last-Translator: Roland Illig Language-Team: German Language: de MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit --allow-unassigned Option "IDNA AllowUnassigned" umschalten (Vorgabe: aus) --usestd3asciirules Option "IDNA UseSTD3ASCIIRules" umschalten (Vorgabe: aus) --debug Debugging-Informationen ausgeben --quiet Ruhig arbeiten --no-tld String nicht auf TLD-spezifische Regeln überprüfen Nur für --idna-to-ascii und --idna-to-unicode -h, --help Hilfe ausgeben und beenden -V, --version Version ausgeben und beenden -n, --nfkc String gemäß Unicode v3.2 NFKC normalisieren -p, --profile=STRING Angegebenes stringprep-Profil benutzen Gültige stringprep-Profile: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep String gemäß nameprep-Profil vorbereiten -d, --punycode-decode Punycode decodieren -e, --punycode-encode Punycode codieren -a, --idna-to-ascii Gemäß IDNA in ACE konvertieren (Standardmodus) -u, --idna-to-unicode Gemäß IDNA aus ACE heraus konvertieren Nicht genug SpeicherZeichensatz »%s«. Codepunkte sind von der Top-Level-Domain verbotenKommandozeilenprogramm für die Bibliothek für internationalisierte Domainnamen. Alle Strings werden so codiert erwartet, wie es der Zeichensatz der Locale angibt. Benutzen Sie »--debug« um den aktuellen Zeichensatz herauszufinden. Sie können einen Zeichensatz explizit mit der Umgebungsvariable CHARSET festlegen. Um einen String zu verarbeiten, der mit »-« beginnt (zum Beispiel »-foo«), können Sie das Ende der Optionen mit »--« kennzeichnen. Zum Beispiel: »idn --quiet -a -- -foo«. Notwendige Argumente für die langen Optionen gelten genau so für die kurzen Optionen. Widersprüchliche bidirektional-Eigenschaften in der EingabeFehler in der Stringprep-ProfildefinitionFlag-Konflikt mit dem ProfilVerbotenes Minuszeichen am Anfang oder am EndeVerbotene unzugeordnete Codepunkte in der EingabeEingabe enthält bereits das ACE-Präfix (»xn--«)Eingabe beginnt nicht mit dem ACE-Präfix (»xn--«)Internationalized Domain Name (IDN) konvertiert STRINGS oder die Standardeingabe. Ungültige EingabeUngültiger Bidirektional-StringFehlende EingabeKeine Top-Level-Domain in der Eingabe gefundenUnerlaubtes Zeichen in der EingabeErgebnis wäre zu groß oder zu kleinAusgabe würde den vorhandenen Pufferspeicher überflutenVerbotene bidirektionale Codepunkte in der EingabeVerbotene Codepunkte in der EingabePunycode fehlgeschlagenString verändert sich durch ToASCIIString verändert sich durch Unicode-NFKC-NormalisierungString-Vorbereitung fehlgeschlagenString-Größenbegrenzung überschrittenErfolgSystem-dlopen fehlgeschlagenSystem-iconv fehlgeschlagenVersuchen Sie »%s --help« für mehr Informationen. Geben Sie jede Eingabezeichenkette in einer eigenen Zeile ein, durch einen Zeilenumbruch abgeschlossen. Unicode-Normalisierung fehlgeschlagen (Interner Fehler)Unbekannter FehlerUnbekanntes ProfilAufruf: %s [OPTION]... [STRINGS]... Konnte nicht von %s nach UTF-8 konvertieren.Konnte nicht von UCS-4 nach UTF-8 konvertieren.Konnte nicht von UTF-8 nach %s konvertieren.Konnte nicht von UTF-8 nach UCS-4 konvertieren.Konnte die NFKC-Normalisierung nicht ausführen.idna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sEingabefehlermallocNur eins von »-s«, »-e«, »-d«, »-a«, »-u« oder »-n« kann angegeben werden.punycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %slibidn-1.28/po/fi.gmo0000644000000000000000000002133312167253751011327 00000000000000;O caKD'Ai  *  - &  . )E )o - I   > "L o & - - 3#C6g&O+-{ #"%"4%W} 53G[rghf/^5E+q>m9J($1J0O+O.?0N<))D4U7@$"Gc*l))M29 l } , 4 8 5,!7b!"!!!! " "F$"k"""""76)-&(*8 1;" $94 3+25/:! 0#% ,' . --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --debug Print debugging information --quiet Silent operation --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -h, --help Print help and exit -V, --version Print version and exit -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA Cannot allocate memoryCharset `%s'. Code points prohibited by top-level domainCommand line interface to the internationalized domain name library. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. Mandatory arguments to long options are mandatory for short options too. Conflicting bidirectional properties in inputError in stringprep profile definitionFlag conflict with profileForbidden leading or trailing minus sign (`-')Forbidden unassigned code points in inputInput already contain ACE prefix (`xn--')Input does not start with ACE prefix (`xn--')Internationalized Domain Name (IDN) convert STRINGS, or standard input. Invalid inputMalformed bidirectional stringMissing inputNo top-level domain found in inputNon-digit/letter/hyphen in inputOutput would be too large or too smallOutput would exceed the buffer space providedProhibited bidirectional code points in inputProhibited code points in inputPunycode failedString not idempotent under ToASCIIString not idempotent under Unicode NFKC normalizationString preparation failedString size limit exceededSuccessSystem dlopen failedSystem iconv failedTry `%s --help' for more information. Type each input string on a line by itself, terminated by a newline character. Unicode normalization failed (internal error)Unknown errorUnknown profileUsage: %s [OPTION]... [STRINGS]... could not convert from %s to UTF-8could not convert from UCS-4 to UTF-8could not convert from UTF-8 to %scould not convert from UTF-8 to UCS-4could not do NFKC normalizationidna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %sinput errormalloconly one of -s, -e, -d, -a, -u or -n can be specifiedpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (position %lu): %stld_check_4z: %sProject-Id-Version: libidn 1.21 Report-Msgid-Bugs-To: bug-libidn@gnu.org POT-Creation-Date: 2013-07-10 13:54+0200 PO-Revision-Date: 2011-04-30 15:25+0200 Last-Translator: Jorma Karvonen Language-Team: Finnish Language: fi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Plural-Forms: nplurals=2; plural=n != 1; X-Generator: KBabel 1.11.4 --allow-unassigned Vaihda ”IDNA AllowUnassigned”-lipun tilaa (oletus off) --usestd3asciirules Vaihda ”IDNA UseSTD3ASCIIRules”-lipun tilaa (oletus off) --debug Tulosta virheenjäljitystiedot --quiet Hiljainen toiminta --no-tld Älä etsi merkkijonosta TLD-kohtaisia sääntöjä Vain valitsimille ”--idna-to-ascii” ja ”--idna-to-unicode” -h, --help Tulosta ohje ja poistu -V, --version Tulosta versio ja poistu -n, --nfkc Normeeraa merkkijono ”Unicode v3.2 NFKC”-koodauksen mukaisesti -p, --profile=MERKKIJONO Käytä määritellyn ”stringprep”-profiilin sijasta Voimassa olevat ”stringprep”-profiilit: ”Nameprep”, ”iSCSI”, ”Nodeprep”, ”Resourceprep”, ”trace”, ”SASLprep” -s, --stringprep Valmistele merkkijono ”nameprep”-profiilin mukaisesti -d, --punycode-decode Pura Punycode-koodaus -e, --punycode-encode Koodaa Punycode-koodauksella -a, --idna-to-ascii Muunna ACE-koodiksi IDNA-koodista (oletustila) -u, --idna-to-unicode Muunna ACE-koodista IDNA-koodiksi Ei voida varata muistiaMerkistö ”%s” Code points-skalaariarvot kiellettyjä ylätason toimialueessaKomentorivirajapinta kansainvälistettyyn verkkotunnuskirjastoon. Kaikki merkkijonot on otaksuttu koodatun parhaimpana pidetyllä merkistöllä, jota locale-asetuksesi käyttää. Käyttämällä valitsinta ”--debug” saat selville, mikä merkistö se on. Voit korvata käytetyn merkistön asettamalla ympäristömuuttujan CHARSET. Merkillä ”-” alkava merkkijono, esimerkiksi ”-foo”, prosessoidaan käyttämällä ”--”-merkkejä signaloimaan parametrien loppumista, kuten käskyssä ”idn --quiet -a -- -foo”. Pakolliset argumentit pitkille valitsimille ovat pakollisia myös lyhyille valitsimille. Ristiriitaisia kaksisuuntaisia ominaisuuksia syötteessäVirhe strngprep-profiilimäärittelyssäLippu ristiriidassa profiilin kanssaEi saa alkaa tai loppua miinusmerkillä (”-”)Kiellettyjä määräämättömiä code points-skalaariarvoja syötteessäSyöte jo sisältää ACE-prefiksin (”xn--”)Syöte ei ala ACE-prefiksillä (”xn--”)Kansainvälistetty verkkotunnus (IDN) muuntaa MERKKIJONOT tai vakiosyötteen. Virheellinen syöteVäärän muotoinen kaksisuuntainen merkkijonoSyöte puuttuuSyötteestä ei löytynyt ylätason toimialuettaSyötteessä on merkki, joka ei ole numero/kirjain/tavuviivaTuloste olisi liian suuri tai liian pieniTuloste ylittäisi varatun puskurin tilanKiellettyjä kaksisuuntaisia code points-skalaariarvoja syötteessäKiellettyjä code points-skalaariarvoja syötteessäPunycode-koodaus ei onnistunutMerkkijono ei ole idempotentti ToASCII-toiminnon aikanaMerkkijono ei ole idempotentti Unicode NFKC-normeerauksen aikanaMerkkijonon valmistelu ei onnistunutMerkkijonon koko ylitettiinOnnistuiJärjestelmän dlopen-käsky ei onnistunutJärjestelmän iconv-käsky ei onnistunutLisätietoja käskyllä ”%s --help”. Kirjoita jokainen merkkijono omalle rivilleen ja lopeta rivi rivinvaihdolla. Unicode-normeeraus ei onnistunut (sisäinen virhe)Tuntematon virheTuntematon profiiliKäyttö: %s [VALITSIN]... [MERKKIJONOT]... ei voitu muuntaa %s-merkistöstä UTF-8-merkistöönei voitu muuntaa UCS-4-merkistöstä UTF-8-merkistöön.ei voitu muuntaa UTF-8-merkistöstä %s-merkistöön.ei voitu muuntaa UTF-8-merkistöstä UCS-4-merkistöönei voitu tehdä NFKC-normeerausta.idna_to_ascii_4z: %sidna_to_unicode_8z4z (TLD): %sidna_to_unicode_8z4z: %ssyötevirhemalloc-käskyvain yksi valitsimista -s, -e, -d, -a, -u tai -n voidaan määritelläpunycode_decode: %spunycode_encode: %sstringprep_profile: %stld_check_4z (sijainti %lu): %stld_check_4z: %slibidn-1.28/po/remove-potcdate.sin0000644000000000000000000000066012167244627014040 00000000000000# Sed script that remove the POT-Creation-Date line in the header entry # from a POT file. # # The distinction between the first and the following occurrences of the # pattern is achieved by looking at the hold space. /^"POT-Creation-Date: .*"$/{ x # Test if the hold space is empty. s/P/P/ ta # Yes it was empty. First occurrence. Remove the line. g d bb :a # The hold space was nonempty. Following occurrences. Do nothing. x :b } libidn-1.28/po/Makefile.in.in0000644000000000000000000004042312167244627012702 00000000000000# Makefile for PO directory in any package using GNU gettext. # Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper # # This file can be copied and used freely without restrictions. It can # be used in projects which are not available under the GNU General Public # License but which still want to provide support for the GNU gettext # functionality. # Please note that the actual code of GNU gettext is covered by the GNU # General Public License and is *not* in the public domain. # # Origin: gettext-0.18.3 GETTEXT_MACRO_VERSION = 0.18 PACKAGE = @PACKAGE@ VERSION = @VERSION@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ SED = @SED@ SHELL = /bin/sh @SET_MAKE@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ datadir = @datadir@ localedir = @localedir@ gettextsrcdir = $(datadir)/gettext/po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ # We use $(mkdir_p). # In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as # "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions, # @install_sh@ does not start with $(SHELL), so we add it. # In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined # either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake # versions, $(mkinstalldirs) and $(install_sh) are unused. mkinstalldirs = $(SHELL) @install_sh@ -d install_sh = $(SHELL) @install_sh@ MKDIR_P = @MKDIR_P@ mkdir_p = @mkdir_p@ GMSGFMT_ = @GMSGFMT@ GMSGFMT_no = @GMSGFMT@ GMSGFMT_yes = @GMSGFMT_015@ GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT)) MSGFMT_ = @MSGFMT@ MSGFMT_no = @MSGFMT@ MSGFMT_yes = @MSGFMT_015@ MSGFMT = $(MSGFMT_$(USE_MSGCTXT)) XGETTEXT_ = @XGETTEXT@ XGETTEXT_no = @XGETTEXT@ XGETTEXT_yes = @XGETTEXT_015@ XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT)) MSGMERGE = msgmerge MSGMERGE_UPDATE = @MSGMERGE@ --update MSGINIT = msginit MSGCONV = msgconv MSGFILTER = msgfilter POFILES = @POFILES@ GMOFILES = @GMOFILES@ UPDATEPOFILES = @UPDATEPOFILES@ DUMMYPOFILES = @DUMMYPOFILES@ DISTFILES.common = Makefile.in.in remove-potcdate.sin \ $(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3) DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \ $(POFILES) $(GMOFILES) \ $(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3) POTFILES = \ CATALOGS = @CATALOGS@ # Makevars gets inserted here. (Don't remove this line!) .SUFFIXES: .SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update .po.mo: @echo "$(MSGFMT) -c -o $@ $<"; \ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@ .po.gmo: @lang=`echo $* | sed -e 's,.*/,,'`; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo .sin.sed: sed -e '/^#/d' $< > t-$@ mv t-$@ $@ all: all-@USE_NLS@ all-yes: stamp-po all-no: # Ensure that the gettext macros and this Makefile.in.in are in sync. CHECK_MACRO_VERSION = \ test "$(GETTEXT_MACRO_VERSION)" = "@GETTEXT_MACRO_VERSION@" \ || { echo "*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version $(GETTEXT_MACRO_VERSION) but the autoconf macros are from gettext version @GETTEXT_MACRO_VERSION@" 1>&2; \ exit 1; \ } # $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because # we don't want to bother translators with empty POT files). We assume that # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty. # In this case, stamp-po is a nop (i.e. a phony target). # stamp-po is a timestamp denoting the last time at which the CATALOGS have # been loosely updated. Its purpose is that when a developer or translator # checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS, # "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent # invocations of "make" will do nothing. This timestamp would not be necessary # if updating the $(CATALOGS) would always touch them; however, the rule for # $(POFILES) has been designed to not touch files that don't need to be # changed. stamp-po: $(srcdir)/$(DOMAIN).pot @$(CHECK_MACRO_VERSION) test ! -f $(srcdir)/$(DOMAIN).pot || \ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES) @test ! -f $(srcdir)/$(DOMAIN).pot || { \ echo "touch stamp-po" && \ echo timestamp > stamp-poT && \ mv stamp-poT stamp-po; \ } # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update', # otherwise packages like GCC can not be built if only parts of the source # have been downloaded. # This target rebuilds $(DOMAIN).pot; it is an expensive operation. # Note that $(DOMAIN).pot is not touched if it doesn't need to be changed. # The determination of whether the package xyz is a GNU one is based on the # heuristic whether some file in the top level directory mentions "GNU xyz". # If GNU 'find' is available, we avoid grepping through monster files. $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \ LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \ else \ LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \ fi; \ } | grep -v 'libtool:' >/dev/null; then \ package_gnu='GNU '; \ else \ package_gnu=''; \ fi; \ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \ else \ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \ fi; \ case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ *) \ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \ --files-from=$(srcdir)/POTFILES.in \ --copyright-holder='$(COPYRIGHT_HOLDER)' \ --package-name="$${package_gnu}@PACKAGE@" \ --package-version='@VERSION@' \ --msgid-bugs-address="$$msgid_bugs_address" \ ;; \ esac test ! -f $(DOMAIN).po || { \ if test -f $(srcdir)/$(DOMAIN).pot; then \ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \ else \ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ else \ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \ fi; \ } # This rule has no dependencies: we don't need to update $(DOMAIN).pot at # every "make" invocation, only create it when it is missing. # Only "make $(DOMAIN).pot-update" or "make dist" will force an update. $(srcdir)/$(DOMAIN).pot: $(MAKE) $(DOMAIN).pot-update # This target rebuilds a PO file if $(DOMAIN).pot has changed. # Note that a PO file is not touched if it doesn't need to be changed. $(POFILES): $(srcdir)/$(DOMAIN).pot @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \ if test -f "$(srcdir)/$${lang}.po"; then \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ $(MAKE) $${lang}.po-create; \ fi install: install-exec install-data install-exec: install-data: install-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ for file in $(DISTFILES.common) Makevars.template; do \ $(INSTALL_DATA) $(srcdir)/$$file \ $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ for file in Makevars; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi install-data-no: all install-data-yes: all @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \ fi; \ done; \ done install-strip: install installdirs: installdirs-exec installdirs-data installdirs-exec: installdirs-data: installdirs-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \ else \ : ; \ fi installdirs-data-no: installdirs-data-yes: @catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ dir=$(localedir)/$$lang/LC_MESSAGES; \ $(mkdir_p) $(DESTDIR)$$dir; \ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \ if test -n "$$lc"; then \ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \ for file in *; do \ if test -f $$file; then \ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \ fi; \ done); \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \ else \ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \ :; \ else \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \ fi; \ fi; \ fi; \ done; \ done # Define this as empty until I found a useful application. installcheck: uninstall: uninstall-exec uninstall-data uninstall-exec: uninstall-data: uninstall-data-@USE_NLS@ if test "$(PACKAGE)" = "gettext-tools"; then \ for file in $(DISTFILES.common) Makevars.template; do \ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \ done; \ else \ : ; \ fi uninstall-data-no: uninstall-data-yes: catalogs='$(CATALOGS)'; \ for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \ done; \ done check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po rm -fr *.o clean: mostlyclean distclean: clean rm -f Makefile Makefile.in POTFILES *.mo maintainer-clean: distclean @echo "This command is intended for maintainers to use;" @echo "it deletes files that may require special tools to rebuild." rm -f stamp-po $(GMOFILES) distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir) dist distdir: $(MAKE) update-po @$(MAKE) dist2 # This is a separate target because 'update-po' must be executed before. dist2: stamp-po $(DISTFILES) dists="$(DISTFILES)"; \ if test "$(PACKAGE)" = "gettext-tools"; then \ dists="$$dists Makevars.template"; \ fi; \ if test -f $(srcdir)/$(DOMAIN).pot; then \ dists="$$dists $(DOMAIN).pot stamp-po"; \ fi; \ if test -f $(srcdir)/ChangeLog; then \ dists="$$dists ChangeLog"; \ fi; \ for i in 0 1 2 3 4 5 6 7 8 9; do \ if test -f $(srcdir)/ChangeLog.$$i; then \ dists="$$dists ChangeLog.$$i"; \ fi; \ done; \ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \ for file in $$dists; do \ if test -f $$file; then \ cp -p $$file $(distdir) || exit 1; \ else \ cp -p $(srcdir)/$$file $(distdir) || exit 1; \ fi; \ done update-po: Makefile $(MAKE) $(DOMAIN).pot-update test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES) $(MAKE) update-gmo # General rule for creating PO files. .nop.po-create: @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \ exit 1 # General rule for updating PO files. .nop.po-update: @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \ tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ rm -f $$tmpdir/$$lang.new.po; \ else \ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \ :; \ else \ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \ exit 1; \ fi; \ fi; \ else \ echo "msgmerge for $$lang.po failed!" 1>&2; \ rm -f $$tmpdir/$$lang.new.po; \ fi $(DUMMYPOFILES): update-gmo: Makefile $(GMOFILES) @: # Recreate Makefile by invoking config.status. Explicitly invoke the shell, # because execution permission bits may not work on the current file system. # Use @SHELL@, which is the shell determined by autoconf for the use by its # scripts, not $(SHELL) which is hardwired to /bin/sh and may be deficient. Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@ cd $(top_builddir) \ && @SHELL@ ./config.status $(subdir)/$@.in po-directories force: # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/NEWS0000644000000000000000000014162412167244576010321 00000000000000Libidn NEWS -- History of user-visible changes. -*- outline -*- Copyright (C) 2002-2013 Simon Josefsson See the end for copying conditions. * Version 1.28 (released 2013-07-10) [stable] ** idn: Don't crash when string conversion from UTF-8 to locale fails. Reported by Jeffrey Frey . ** java: Fix build failures. ** java: TestIDNA -a and -u logic was reversed, now fixed. ** API and ABI is backwards compatible with the previous version. * Version 1.27 (released 2013-06-05) [stable] ** Java library can be built using Maven. Speed improvements. Thanks to several patches from Stefan Larsson. Testing indicate 70-90 times faster node/name/resource-prep. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Version 1.26 (released 2012-12-11) [stable] ** libidn, idna_to_ascii: Propagate error on malloc failure. Reported by Sarat Chandra Addepalli . ** libidn, tld_get_4: Fix out of bounds read access violation. ** i18n: Added Croatian translation. Updated Vietnamese translation. Thanks to Tomislav Krznar and Trần Ngọc Quân. ** java: Permit usage by Apache projects. Thanks to Oliver Hitz and Angus Turner. ** tests: Improve tld self-tests. ** API and ABI is backwards compatible with the previous version. * Version 1.25 (released 2012-05-23) [stable] ** MSVC: Build fixes related to _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE. Reported by Bartosz Brachaczek . ** examples: Fix compiler warning about ignoring return value from fgets. ** tests: Ship with a valgrind suppressions file for the strlen issue. See tests/libidn.supp and bottom of HACKING for discussion. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Version 1.24 (released 2012-01-10) [stable] ** Libraries are re-licensed from LGPLv2+ to dual-GPLv2+|LGPLv3+. ** build: Fix parallel Windows builds. Reported by René Berber . ** libidn: Fix potential infloop in pr29 code. Reported by Jon Nelson in . ** libidn: Add 'const' keyword to 'stringprep_ucs4_nfkc_normalize' function. ** Sync glib NFKC code and improve copyright/license statements. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Version 1.23 (released 2011-11-25) [stable] ** stringprep.h: Now #include's sys/types.h instead of unistd.h for ssize_t. Some systems (e.g., Mingw with MSVC 9) does not have unistd.h. ** idn-free.h: Protect prototypes with 'extern "C"' marker. Reported by Bittner Ede . ** doc: Update link to experimental TLD tables. The new link is . ** Update gnulib files and translations. ** QA: Improved cyclo output. Update GTK-DOC files. Various bugfixes. ** API and ABI is backwards compatible with the previous version. * Version 1.22 (released 2011-05-04) [stable] ** libidn: Add -liconv as static library requirement in libidn.pc, for MinGW. Reported by Volker Grabsch . ** libidn: Fix memory leak in idna_to_ascii_4z when idna_to_ascii_4i fails. Reported by and tiny patch from Olga Limburg . ** libidn: Ran clang-analyze on the code. Fixed some dead assignments/initializations. ** build: Really distribute win32/libidn4win.mk. ** API and ABI is backwards compatible with the previous version. * Version 1.21 (released 2011-04-24) [stable] ** build/gettext: Demand gettext >= 0.18.1 in order to get newer M4 files. The old M4 files associated with 0.17 caused problems on Solaris, hopefully now fixed. Reported by Dagobert Michelsen in . ** build: Improve MinGW cross-compile makefile, see win32/libidn4win.mk. ** build: Visual Studio files fixed to define LIBIDN_BUILDING. Tiny patch from Waqas Hussain . ** API and ABI is backwards compatible with the previous version. * Version 1.20 (released 2011-03-01) [stable] ** libidn: Fix bug in ToUnicode to compare 'xn--' case-insensitively. The problem is typically noticed when an upper ACE case string is converted to Unicode. Before, this would return the input rather than converting the ACE form to Unicode. Reported by Stepan Golosunov in . ** tests: Added self-test tst_idna3 to catch any regression of problem above. ** idn: Only print copyright and license blurb when used interactively. Reported by "Andrew O. Shadoura" and Roman Mamedov in and respectively. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Version 1.19 (released 2010-05-22) [stable] ** doc: Typo fixes. Added PDF version of API reference manual. See doc/reference/libidn.pdf. ** build: Update gnulib files. ** build: Use valgrind -q to reduce verbosity. ** API and ABI is backwards compatible with the previous version. * Version 1.18 (released 2010-02-15) [stable] ** libidn: Put forgotten symbols under old namespace. Reverts one unnecessary change introduced in 1.17. Suggested by Marco d'Itri . ** API and ABI is backwards compatible with the previous version. * Version 1.17 (released 2010-02-05) [alpha] ** libidn: Fix symbol export problem for a few variables. Applications (that use these rarely used variables) built against versions before 1.13 did not work with libidn versions 1.13 to 1.16. Symbol versioning was introduced in version 1.13 but by accident some symbols that were visible before that release were not exported, and the consequence was that those symbols were not available in version 1.13 to 1.16. This release fixes the problem, so the symbols are visible again, making this release backwards compatible with all earlier releases. The affected symbols are the following variables: stringprep_iscsi_prohibit, stringprep_rfc3454_A_1, stringprep_rfc3454_B_1, stringprep_rfc3454_B_2, stringprep_rfc3454_B_3, stringprep_rfc3454_C_1_1, stringprep_rfc3454_C_1_2, stringprep_rfc3454_C_2_1, stringprep_rfc3454_C_2_2, stringprep_rfc3454_C_3, stringprep_rfc3454_C_4, stringprep_rfc3454_C_5, stringprep_rfc3454_C_6, stringprep_rfc3454_C_7, stringprep_rfc3454_C_8, stringprep_rfc3454_C_9, stringprep_rfc3454_D_1, stringprep_rfc3454_D_2, stringprep_saslprep_space_map. Thanks to Marco d'Itri for reporting that led to discovering this problem. ** Really fix the link error of self-tests on MinGW. ** API and ABI is backwards compatible with the previous version. * Version 1.16 (released 2010-01-12) ** java: Add a Maven pom.xml project file. Contributed by Guus der Kinderen . ** Fix a link error on MinGW. ** API and ABI is backwards compatible with the previous version. * Version 1.15 (released 2009-06-08) ** libidn: Use c_strcasecmp instead of strcasecmp. For portability to NetWare CLIB. The specification requires a ASCII comparison, so it is also more appropriate to use c_strcasecmp. Reported by Guenter Knauf . ** java: Fix some Java compiler warnings. ** doc: Improved sections for the info manual. We now follow the advice given by the texinfo manual on which directory categories to use. In particular, libidn moved from the 'GNU Libraries' section to the 'Software libraries' and 'Invoking idn' moved from 'GNU utilities' to 'Localization'. ** New configure parameters to set packaging specific information. The parameters are --with-packager, --with-packager-version, and --with-packager-bug-reports. See for more details. ** API and ABI is backwards compatible with the previous version. * Version 1.14 (released 2009-04-03) ** libidn: Install a libidn-*.def file when building under MinGW. The file is useful if you develop programs in Visual Studio that links to libidn. ** tests/tst_toutf8: Don't crash if stringprep_utf8_to_locale returns NULL. Reported by Dagobert Michelsen in . ** API and ABI is backwards compatible with the previous version. * Version 1.13 (released 2009-03-06) ** libidn: Use a LD version script on platforms where it is supported. Currently only GNU LD and the Solaris linker supports it. This helps Debian package tools to produce better dependencies. Before we used Libtool -export-symbols-regex that created an anonymous version tag. Libidn uses -export-symbols-regex if the system does not support LD version scripts, but that only affect symbol visibility. ** libidn: Compiled with -fvisibility=hidden by default if supported. Currently only GCC supports it for ELF targets. This hides internal symbols and has other advantages, see . ** libidn: Compiled with warning flags only when GCC is used. This avoids the problem that some flags confuse non-GCC compilers, for example -fdiagnostics-show-option. Reported by jens.rehsack@bayerbbs.com. ** doc: The idn_free function is now documented. Suggested by "Sisyphus" . ** API and ABI is backwards compatible with the previous version. * Version 1.12 (released 2009-01-23) ** idn: New parameter --no-tld to deprecate the old parameter --tld. The new parameter --no-tld disable TLD checking of the input string. The --tld parameter was broken; it behaved opposite to its documented behaviour. To avoid confusion over what --tld means, we decided to deprecate it. Now --tld is not printed in the idn --help output, but will continue to work as before. ** doc: Modernize doxygen configuration. ** doc: Change license on the manual to GFDLv1.3+. ** doc: Improve JavaDoc output. ** Update gnulib files and translations. ** Build with more warnings. ** API and ABI is backwards compatible with the previous version. * Version 1.11 (released 2008-10-28) ** libidn: New WARN_CFLAGS configure variable. It is used internally to add -Werror and other warnings flags, to catch coding mistakes before releases. ** Win32: Perl is no longer required to build Libidn in Visual Studio. ** Win32: Functions in idna.h are also exported. Reported by Adam Strzelecki . ** doc: Included cyclomatic code complexity charts of the library code. See doc/cyclo/. ** tests: Add more self-tests to get more self-test code coverage. ** tests: New 'make coverage' command to generate code coverage reports. The output is created in doc/coverage/. Requires the LCOV tools. See http://www.gnu.org/software/libidn/coverage/ for a pre-generated copy. ** Clarify copyright and license for gdoc, man pages, and C# port. ** Update gnulib files and translations. ** API and ABI is backwards compatible with the previous version. * Version 1.10 (released 2008-08-27) ** idn: accept -n as short form for --nfkc. Before '-k' was used as the short form, but all documentation has said '-n'. We now accept both short forms, and -n remains the documented short form. Reported by John McGowan in . ** Fix compiler warnings. ** Update gnulib files. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Version 1.9 (released 2008-07-01) ** idn: fix error message when NFKC fails, and some other translation fixes. Reported by Benno Schulenberg . ** C# Libidn.dll: Work around bug that cause a failure during C# compilation. See . ** Remove more non-free text from doc/specifications/rfc3454.txt. The remaining data tables are not copyrightable. ** Update gnulib files, and include gnulib self-tests. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Version 1.8 (released 2008-04-23) ** Translations files not stored directly in git to avoid merge conflicts. This allows us to avoid use of --no-location which makes the translation teams happier. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 1.7 (released 2008-04-10) ** idn: new parameter --nfkc to process string with Unicode v3.2 NFKC. ** Minor build fix for native Win32 builds. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 1.6 (released 2008-03-19) ** Add native Windows Visual Studio project files. Contributed by Adam Strzelecki . ** Remove non-free portions of RFC 3454 in doc/specifications/rfc3454.txt. ** Update gnulib files. ** Doc fixes in IDNA to clarify that some functions operate on ** just one domain labels and some operate on domain name (which ** can contain several domain labels). ** API and ABI is backwards compatible with the previous version. * Version 1.5 (released 2008-02-19) ** Don't include wchar.h in idn-int.h. Fixes problems on uClibc systems which lack a wchar.h. Reported by Mike Frysinger , see . ** Added appendix 'On Label Separators' to the manual. Thanks to Erik van der Poel for bringing the issue to our attention and for discussing the matter. See . ** Improved rendering of non-ASCII in the info manual. Done by adding a @documentencoding UTF-8. This affect how the examples are encoded, the files examples/*.c are now encoded using UTF-8 instead of a mix of ISO-8859-1 and ISO-8859-15. ** Fix non-portable use of brace expansion in makefiles. ** Update translations. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 1.4 (released 2008-01-09) ** Fixes to make the C# port compile under Mono. ** Update gnulib files. ** Improve idn --version and --help output to conform to GNU standards. This also enables translations of --help output. ** Update translations. Added Finish translation, thanks to Jorma Karvonen. Updated Dutch and Vietnamese. ** API and ABI is backwards compatible with the previous version. * Version 1.3 (released 2007-12-11) ** Some hints on Windows installation in the manual. ** Update translations. Added Czech translation, thanks to Petr Pisar. ** Use gettext 0.17. ** Update gnulib files. Top-level gnulib files are now distributed under GPLv3+. (The gnulib files used by the core library are still under LGPLv2.1+.) ** API and ABI is backwards compatible with the previous version. * Version 1.2 (released 2007-10-01) ** Development git tree moved to savannah. See . ** Update gnulib files. Including mono detection fixes. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Version 1.1 (released 2007-09-01) ** Fix compilation error in idn-int.h. The error would typically be 'error: no include path in which to search for stdint.h'. Reported by Remko van der Vossen , see and . ** Declare external variables with __declspec(import) for Windows. Apparently this is required for variables in DLL's on Windows. This is enabled if __DECLSPEC_SUPPORTED is defined (MinGW), or if _MSC_VER and_DLL is defined (MSVC). ** Update gnulib files. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Version 1.0 (released 2007-07-31) ** Command-line tools, examples, etc are now licensed under GPL version 3. The library is still licensed under LGPL v2.1 for compatibility reasons (it is included in glibc). ** Updated documentation as per license change. ** Update gnulib files. ** Update translations. ** API and ABI is backwards compatible with the previous version. * Version 0.6.14 (released 2007-05-31) ** Libidn is now developed using Git instead of CVS. A public git mirror is available from . If you have pulled from this repository before this release, you need to erase your clone because it has been re-generated from scratch. ** API and ABI is backwards compatible with the previous version. * Version 0.6.13 (released 2007-05-31) ** Documentation fixes. Clarify that the C# and Java libraries are licensed under the LGPL. Earlier, some places incorrectly said that these were licensed under the GPL. If you encounter other places that still suggest that GPL applies to the C# and Java library, please let me know. ** Updated Polish and Vietnamese translations. Thanks to Jakub Bogusz and Clytie Siddall . ** Install images for the manual in $infodir. This fixes the broken image in the info manual. Image files will be called libidn-*.png to avoid namespace collisions with images from other info manuals. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 0.6.12 (released 2007-04-25) ** Use AM_JAVACFLAGS instead of JAVACFLAGS in java/misc/Makefile.am. Reported by Petteri Räty . ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 0.6.11 (released 2007-03-13) ** Update of the C# Libidn port, by Alexander Gnauck. The code has been refactored and the namespace has been modified to comply with .NET naming conventions. An IDNA bug was fixed. ** Update gnulib files. We now use the "striconv" module instead of the "iconvme", which causes a slight increase of code size (from 303kb to 319kb with debugging symbols on i386). The reason is the use of a new locale independent strcasecmp, which may cause faster operation in some locales where, e.g., "ASCII" and "ascii" are not treated as the same. ** API and ABI is backwards compatible with the previous version. * Version 0.6.10 (released 2007-01-04) ** Corrected year in copyright notices. ** Update gnulib files. Including the code to convert strings between different encodings (noted in case this introduces problems). ** API and ABI is backwards compatible with the previous version. * Version 0.6.9 (released 2006-11-30) ** The Java code is fixed to properly translate any non-ASCII dot into '.'. Reported and fixed by "Stephane Mikaty" . ** Update gnulib files. ** Bump tool versions to autoconf 2.61, automake 1.10, and gettext 0.16. ** Old versions of iconv.m4, codeset.m4 and lib-link.m4 removed from m4/. Modern versions are part of gnulib. ** API and ABI is backwards compatible with the previous version. * Version 0.6.8 (released 2006-10-18) ** The gnulib directory is separated into two directories. One gnulib directory (lib/gl/) for the LGPL library in lib/, and one gnulib directory (gl/) for the GPL tools in src/. This allows the GPL'd tools to use more gnulib modules than before, since earlier all gnulib files had to be LGPL. ** Update gnulib files. ** Some minor cleanups, like assuming locale.h and setlocale(). ** API and ABI is backwards compatible with the previous version. * Version 0.6.7 (released 2006-09-13) ** Fix build failure of idn-int.h on C99 platforms. Reported by Paul Howarth . ** The manual includes the GPL license, for the command-line tools. ** The function, variable and concept index is moved to the end of the manual. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 0.6.6 (released 2006-08-23) ** Instead of AX_CREATE_STDINT_H, use the stdint gnulib module, for idn-int.h. This solves building on some HPPA systems. Note that the generated idn-int.h is specific to the build environment that libidn was built under, and is not generally usable by any other compiler (if any) on the host. This was true before too. ** Update gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 0.6.5 (released 2006-06-07) ** Link the library with external libintl, for gettext. This fixes building on FreeBSD, reported by Kirill Ponomarew . ** Update doxygen config file to version 1.4.7. ** API and ABI is backwards compatible with the previous version. * Version 0.6.4 (released 2006-06-07) ** Fix translation of error messages. Thanks to Joe Orton . ** Fix warnings on 64-bit platforms. Thanks to Joe Orton . ** The tests are run under valgrind, if it is installed. Use --disable-valgrind-tests to unconditionally disable this. It is disabled by default for cross compiles. ** API and ABI is backwards compatible with the previous version. * Version 0.6.3 (released 2006-03-08) ** Fixes for the build environment. ** API and ABI is backwards compatible with the previous version. * Version 0.6.2 (released 2006-02-07) ** Fix objdir != srcdir builds for the Java documentation. Thanks to Bernard Leak . ** Update of gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 0.6.1 (released 2006-01-20) ** Make it possible to cross-compile to mingw32. You can build Libidn for Windows by invoking `./configure --host=i586-mingw32msvc' (or similar). ** Minor changes in how the C# code is built. ** Update of gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 0.6.0 (released 2005-12-03) ** A C# port of Libidn has been contributed by Alexander Gnauck. The port resides in the csharp/ directory. Configure will build it if a working C# compiler can be found. Mono's "mcs" compiler is known to work (available in Debian in the "mono-mcs" package), but PNET's "cscc" compiler should also work (available in Debian in the "pnet" package). The port is licensed under the GPL. Some Microsoft Visual Studio project files are also present in the csharp/ directory, which may be useful when building the port under Windows. The C# API is currently not documented, improvements are gratefully accepted. ** Support shared libraries on Cygwin and Mingw32, thanks to Yaakov S. ** Fix memory leak. ** API and ABI is backwards compatible with the previous version. * Version 0.5.20 (released 2005-10-23) ** The header file pr29.h is now installed by 'make install'. ** Translation updates. ** Update of gnulib files. ** API and ABI is backwards compatible with the previous version. * Version 0.5.19 (released 2005-09-19) ** The test for setlocale and nl_langinfo has now been separated. The autoconf script now test for locale.h, setlocale and nl_langinfo(CODESET) independently. ** Gnulib updates, fixes for getopt. ** Java manuals in doc/java/ are now generated by Gjdoc from GNU Classpath. ** Kaffe is used to link the pre-built libidn-*.jar file. ** Translation updates. ** API and ABI is backwards compatible with the previous version. * Version 0.5.18 (released 2005-07-16) ** The macro AX_CREATE_STDINT_H that is used to create idn-int.h ** has been updated. ** Fix use of 'head -1' in configure script (should be 'head -n -1'), ** thanks to Carsten Lohrke. ** Announce the help-libidn mailing list in documentation and README. ** Translation updates. ** API and ABI is backwards compatible with the previous version. * Version 0.5.17 (released 2005-05-26) ** The gnulib portability files were updated. ** The license template in files were updated with the new address. ** Translation updated. ** API and ABI is backwards compatible with the previous version. * Version 0.5.16 (released 2005-05-06) ** Mark static PR29 data tables as 'const', thanks to Joe Orton. ** Kinyarwanda translations added, thanks to Steve Murphy. ** API and ABI is backwards compatible with the previous version. * Version 0.5.15 (released 2005-03-19) ** Improvements to code to convert data between character sets. The license template was changed to the LGPL, from the GPL template that was mistakenly used in the previous two releases. Document here that cleaning up this code has solved memory allocation and arithmetic overflow problems. ** API and ABI is backwards compatible with the previous version. * Version 0.5.14 (released 2005-03-19) ** Building for srcdir != objdir from CVS now work, thanks to Linus Nordberg. ** Simplified Chinese translations added, thanks to Meng Jie. ** Vietnamese translation added, thanks to Clytie Siddall. ** API and ABI is backwards compatible with the previous version. * Version 0.5.13 (released 2005-01-29) ** The code to convert data between character encodings have been cleaned up. The stringprep_convert function has been added to gnulib, under the name iconv_string, and is now used by libidn. This should not have any user-visible consequences, though. ** It is now possible to bootstrap with unmodified Automake installations. ** Italian translation added, thanks to Marco Colombo. ** Swedish translation updated. ** API and ABI is backwards compatible with the previous version. * Version 0.5.12 (released 2004-12-04) ** Java code now support the XMPP NodePrep and ResourcePrep profiles. ** Bug fixes and improvements to Java code. The allowUnassigned flag is now respected properly. The prohibited code points check now works. Arguments are now checked. Convenience method with allowUnassigned set to false was added. ** Update getopt from gnulib. ** API and ABI is backwards compatible with the previous version. * Version 0.5.11 (released 2004-11-21) ** Fix formatting of man pages, based on warnings from Doclifter. ** Update of gnulib files to fix potential getopt problem on ELF systems. ** API and ABI is backwards compatible with the previous version. * Version 0.5.10 (released 2004-11-08) ** Libtool's -export-symbols-regex is now used to only export official APIs. Before, applications might accidentally access internal functions. Note that this is not supported on all platforms, so you must still make sure you are not using undocumented symbols in Libidn. ** API and ABI is backwards compatible with the previous version. * Version 0.5.9 (released 2004-11-07) ** Align GTK-DOC build infrastructure with GTK-DOC official recommendations. This mean that you can now browse the Libidn API manual using Devhelp. ** Update of gnulib files to fix potential problem in getopt on BSD. ** Documentation improvements. ** API and ABI is backwards compatible with the previous version. * Version 0.5.8 (released 2004-10-12) ** BidiMirroring-3.2.0.txt is now included, not only the generated source code. This allow builds to succeed after 'make realclean'. ** Generated files now have consistent 'DO NOT EDIT!' comments. ** API and ABI is backwards compatible with the previous version. * Version 0.5.7 (released 2004-10-12) ** Shared library version incremented, because new APIs were added. This was forgotten in the last release. ** French translation updated. ** Minor bug fixes. ** API and ABI is backwards compatible with the previous version. * Version 0.5.6 (released 2004-10-02) ** Added functions to convert return codes to human readable text. ** Now using GNULib in command line front end (src/) for portability code. See for more information on GNULib. This should make the code easier to read and maintain. ** API and ABI is backwards compatible with the previous version. idna_strerror: ADD. pr29_strerror: ADD. punycode_strerror: ADD. stringprep_strerror: ADD. tld_strerror: ADD. TLD_NO_TLD: ADD. Replaces TLD_NOTLD. TLD_NOTLD: DEPRECATED. Use TLD_NO_TLD instead. * Version 0.5.5 (released 2004-09-13) ** Hide accidentally exported variable g_utf8_skip, by marking it as static. ** Various fixes. ** API and ABI is backwards compatible with the previous version. g_utf8_skip: REMOVED. (But never meant to be used.) * Version 0.5.4 (released 2004-08-08) ** Translation updates. ** API and ABI is backwards compatible with the previous version. * Version 0.5.3 (released 2004-08-05) ** Fix crash in `idn --tld' command line tool. ** API and ABI is backwards compatible with the previous version. * Version 0.5.2 (released 2004-07-14) ** Java "make install" rules are now DESTDIR compatible. ** API and ABI is backwards compatible with the previous version. * Version 0.5.1 (released 2004-07-09) ** Cross compile builds should work. It should work for any sane cross compile target, but the only tested platform is uClibc/uClinux on Motorola Coldfire. ** The example programs now correctly invoke `setlocale (LC_ALL, "")'. ** API and ABI is backwards compatible with the previous version. * Version 0.5.0 (released 2004-06-26) ** Functions to detect "normalization problem sequences" as per PR-29 added. See the new chapter "PR29 Functions" in the manual (doc/libidn.{ps,pdf,html}) for more information and the background story. An external link that discuss the problem is . ** More translations. Added Esperanto (by Edmund GRIMLEY EVANS). ** API and ABI is backwards compatible with the previous version. pr29.h: ADD. Prototypes for PR29 types and functions. pr29_4, pr29_4z, pr29_8z: ADD. New API entry points for PR29 functions. Pr29_rc: ADD. New error code enum type for PR29 functions. * Version 0.4.9 (released 2004-06-11) ** The Java library (java/libidn-*.jar) is included in the distribution. ** JavaDoc manuals (doc/javadoc/) are included. ** API and ABI is backwards compatible with the previous version. * Version 0.4.8 (released 2004-06-01) ** The Java source code is actually included in the distribution. ** API and ABI is backwards compatible with the previous version. * Version 0.4.7 (released 2004-05-31) ** The Java port should now be functional, contributed by Oliver Hitz. See the new section "Java API" in the manual for more information. ** API and ABI is backwards compatible with the previous version. * Version 0.4.6 (released 2004-05-24) ** The header file idn-free.h is actually installed by 'make install'. ** API and ABI is backwards compatible with the previous version. * Version 0.4.5 (released 2004-05-21) ** In IDNA ToUnicode, a `free' on a stale pointer fixed by Ulrich Drepper. ** Several memory leaks fixed by Ulrich Drepper. ** Added more SASLPrep and NFKC test vectors. ** Automake 1.8.4 is used. ** API and ABI is backwards compatible with the previous version. idn_free: ADD. Wrapper around system `free'. idn-free.h: ADD. Prototype for `idn_free'. See idn-free.h for discussion. The interface is currently not documented. Comments and feedback is appreciated. * Version 0.4.4 (released 2004-04-29) ** Fixed two bugs in iSCSI definition, syncing with newly published RFC 3722. The first bug was an omission of prohibiting the characters in C.1.1, C.1.2 and C.7 (space characters and characters that are inappropriate for canonical representation). The second was a bug in the definition of the table, causing the entire table to be skipped, of the special prohibited output character table defined in RFC 3722 (see section 6, the characters in the table are various ASCII characters and U+3002). ** A few test vectors for iSCSI were added. ** The self tests are linked with libtool -no-install to avoid wrapper script. ** Separated self test utilities into a separate library, shared by all tests. ** More translations. Added Romanian (by Laurentiu Buzdugan). ** API and ABI is backwards compatible with the previous version. * Version 0.4.3 (released 2004-04-22) ** Fixed a bug in table processing code to prohibit control characters. The problem was that the code used a code point of 0 to indicate end of table, but if (as for table C.2.1) a range starts with 0, this logic would fail. The end-of-table test is now that both the start and end code points of the range is 0. Table C.2.1 is responsible for prohibiting non-ASCII control characters, i.e. ASCII 0-31 and 127. Before, libidn silently accepted such strings without complaining. ** A few test vectors for SASLprep were added. ** The pkg-config script no longer include a -R parameter. ** More translations. Added Dutch (by Elros Cyriatan), and German (by Roland Illig). ** API and ABI is backwards compatible with the previous version. * Version 0.4.2 (released 2004-03-20) ** A Punycode implementation in Java was added, by Oliver Hitz. Eventually hopefully a StringPrep, Nameprep and IDNA implementation will be added as well. Currently you need to specify --enable-java to enable the Java interface. The Java sources (below java/) are compiled into byte-code (not native code) into a JAR library. ** More translations. Added Danish (by Morten Bo Johansen), French (by Michel Robitaille), Polish (by Jakub Bogusz), and Serbian (by Aleksandar Jelenak). ** Norwegian TLD table added, by Thomas Jacob. ** API and ABI is backwards compatible with the previous version. * Version 0.4.1 (released 2004-03-08) ** The user messages from the command line utility are now translated. Currently English and Swedish is supported. ** Logic of stringprep_locale_charset modified. Future versions will use, in order, $CHARSET iff defined, nl_langinfo (CODESET) iff working, or fall back to returning "ASCII". Earlier it attempted to guess the system locale, in contrast with the current application's locale, via some setlocale save/set/reset magic. This change may require you to invoke setlocale() in your application, which is (should be) required for non-ASCII to work anyway. Based on discussion with Ulrich Drepper. ** The command-line utility now invoke setlocale (LC_ALL, "") at startup. ** Fixed SASLprep tables to prohibit non-ASCII space in output. Non-ASCII space has always been mapped to ASCII space, so it is not clear this really have any effect, but the specification require it. ** Building Libidn as part of GLIBC has been updated. Refer to libc/README for more information. Incidentally, GLIBC in CVS now include a copy of Libidn. ** API and ABI is backwards compatible with the previous version. IDNA_DLOPEN_ERROR: ADD. Only used internally by Libidn in libc. * Version 0.4.0 (released 2004-02-28) ** Support for TLD restrictions on IDN strings, contributed by Thomas Jacob. Many TLDs restrict the set of characters that can be used, from the full Unicode 3.2 range that is normally available. This contribution make it possible for you to test strings for TLD conformance locally. The code can be disabled by --disable-tld. If enabled (the default), the new API "tld.h" is installed which can be used to check a string for conformance to TLD specific rules. This add a new self test, and a new chapter in the manual. People responsible for maintaining TLD tables are hereby encouraged to contribute them (under reasonable licensing terms) for inclusion in future versions of Libidn. Be warned that the API for TLD checking may change throughout the 0.4.x series as we get feedback on it. ** Kerberos 5 stringprep profile macro is no longer documented. The macro itself will probably be removed in the future, if the specification is dropped from the Kerberos WG agenda. ** API and ABI is backwards compatible with the previous version. stringprep_kerberos5: DEPRECATED. Tld_table_element: Tld_table: Tld_rc: ADD. New data types. tld_get_4: tld_get_4z: tld_get_z: ADD. New functions to extract TLD from string. tld_get_table: tld_default_table: ADD. New functions to get TLD table from TLD name. tld_check_4t: tld_check_4tz: ADD. New function to provide core TLD operations. tld_check_4: tld_check_4z: tld_check_8z: tld_check_lz: ADD. New functions that combine all TLD operations in one call. * Version 0.3.7 (released 2004-01-22) ** The command line parameter '--' idiom is documented. ** The iSCSI stringprep profile now recognized as "iSCSI". The earlier name "ISCSIprep" is still recognized, for backwards compatibility. ** DocBook manuals no longer included (the tools are too unstable). ** API and ABI is backwards compatible with the previous version. * Version 0.3.6 (released 2004-01-06) ** The manual now contain a troubleshooting section for the command line tool. ** The PHP interface pass the string directly on the command line. ** The macro that create 'idn-int.h' has been updated to latest version. ** API and ABI is backwards compatible with the previous version. * Version 0.3.5 (released 2003-12-15) ** The program 'idn' accepts input strings directly on the command line. ** The program 'idn' defaults to --idna-to-ascii if no parameter is given. ** The program 'idn' now print user instructions before waiting for input. ** DocBook HTML output not included any longer. The reason is that the filenames generated by docbook2html appear to be rather random, so it is difficult to maintain the Makefile.am rules for them. ** Autoconf 2.59, automake 1.8 and libtool from CVS is used. ** API and ABI is backwards compatible with the previous version. IDNA_CONTAINS_NON_LDH: ADD. Same integer value as IDNA_CONTAINS_LDH. IDNA_CONTAINS_LDH: DEPRECATED. LDH (letter-digits-hyphens) characters are not an error, but non-LDH characters are, when IDNA_USE_STD3_ASCII_RULES is used. The logic of the mnemonic name of this error constant was reversed. * Version 0.3.4 (released 2003-11-09) ** DocBook manuals in XML, PDF, PostScript, ASCII and HTML formats included. * Version 0.3.3 (released 2003-10-18) ** Fixed list of Stringprep profiles in 'idn --help' and 'idn.php'. ** Fixed debug information in 'idn'. ** Internal improvements. Leads to reduced heap memory usage. Simplified inter-dependency among files in lib/* to make it easier to copy them into your project. ** Debugging stringprep profile 'generic' removed. ** Punycode implementation updated to rfc3492bis-00. ** API and ABI is backwards compatible with the previous version. stringprep_4i: NEW. stringprep_4zi: NEW. stringprep: CHANGED. 'profile' is marked as 'const'. stringprep_profile: CHANGED. 'profile' is marked as 'const'. stringprep_generic: REMOVED. Never meant for public use. * Version 0.3.2 (released 2003-10-07) ** SASL ANONYMOUS stringprep profile "trace" added. It is equivalent to the already supported "plain" SASL ANONYMOUS stringprep profile, except for the name. ** API and ABI is backwards compatible with the previous version. The 'in' parameter to stringprep_profile was changed from 'char*' to 'const char*'. * Version 0.3.1 (released 2003-10-02) ** Fixed handling of implicit and explicit zero-length root labels in ToASCII. ** Fixed support for Hangul Syllables during Unicode NFKC normalization. ** Fixed Unicode NFKC normalization of (some) BMP code points. This was done by syncing the NFKC code with latest GLIB, and may have fixed other bugs in the earlier versions of the updated functions. ** Added more IDNA test vectors. ** Emacs Lisp IDNA implementation now set the UseSTD3ASCIIRules flag. This is the appropriate setting for mail-related uses of IDNA. ** API and ABI is backwards compatible with the previous version. * Version 0.3.0 (released 2003-09-23) ** Ported to Mac OS X. ** Gnulib code removed, we now assume a C89 compatible environment. ** Building libidn as a libc add-on now works again. ** Man pages for all public API functions are included. ** Fixed bug in SASLprep profile. ** API and ABI is NOT backwards compatible with the previous version. All previously labeled (since 0.1.x) obsolete functions have been dropped. The use of 'enum' types instead of 'int' added in 0.2.3 reverted, it confused documentation generators and wasn't all that common practice. * Version 0.2.3 (released 2003-08-26) ** Example 4 was the same as example 3, now changed to demo ToUnicode. ** Documentation improvements. ** Prototype cleanups. The proper enum types (Stringprep_rc, Idna_rc, etc) are now used in several places where plain int where used before. String lengths are handled by (s)size_t instead of int. ** API and ABI is backwards compatible with the previous version. * Version 0.2.2 (released 2003-08-13) ** Fixed problem with strings longer than 4GB in punycode functions. The punycode code cannot handle strings longer than 4GB. The code now return PUNYCODE_BAD_INPUT on too long input, instead of failing in an unknown way. ** The "idn --idna-to-unicode" command now output locale encoded strings. ** Build fixes, bug fixes. ** API and ABI is backwards compatible with the previous version. * Version 0.2.1 (released 2003-07-04) ** Don't reject zero-length trailing labels as in, e.g., "www.example.org.". The IDNA RFC is not clear on this topic, zero-length labels in general are forbidden by the ToASCII algorithm in section 4.1 step 8, but the terminology section define, inside a parenthesis, that the zero-length root label is in fact not considered a label at all in IDNA. ** Bug fixes. ** API and ABI is backwards compatible with the previous version. * Version 0.2.0 (released 2003-06-19) ** Unicode code point data is now uint32_t, defined in "idn-int.h". A header file "idn-int.h" is generated and installed to make sure the "uint32_t" data type is available on all platforms. The reason for this change is that on 64-bit platforms, the application was required to convert 32 bit integers (which is how Unicode code points are typically represented) into 64 bit integers before calling libidn functions. ** New idna_*() functions have improved flags handling. The allowunassigned and usestd3asciirules parameters were collapsed into a flags parameter, that can take on the IDNA_ALLOW_UNASSIGNED and IDNA_USE_STD3_ASCII_RULES values. This allows for easier extensions to support, e.g., Unicode 4.0 or RFC 952 ASCII rules checking. Note that the old entry points are unmodified (in this regard), and new entry points with this modification were added. ** The manual was moved into a separate directory doc/. ** Bugfixes. ** API and ABI is not backwards compatible. In punycode.h and stringprep.h the "unsigned long" data type was changed into "uint32_t", which cause a API and ABI missmatch. For idna.h, the old entry points that used "unsigned long" still exist, and new entry points that uses "uint32_t" was added. To update your application, you probably only need to change "unsigned long" to "uint32_t". As a result of these changes, the shared object version has been increased. * Version 0.1.15 (released 2003-06-07) ** Bugfixes. ** API and ABI is backwards compatible with the previous version. * Version 0.1.14 (released 2003-05-10) ** Experimental documentation generation in contrib/doxygen/. Simply invoke "doxygen" in that directory and it should build the documentation. ** Lisp API bug fixes. ** API and ABI is backwards compatible with the previous version. * Version 0.1.13 (released 2003-03-13) ** Unfinished Java *.class files implementing the libidn API. See the contrib/java/ directory. It is implemented using the Java Native Interface, and light initial testing indicate interoperability between GCJ, IBM's JDK and Sun's JDK. ** Building is now silent when gengetopt is not present. ** Bug fixes. ** API and ABI is backwards compatible with the previous version. * Version 0.1.12 (released 2003-03-06) ** Building libidn doesn't require gengetopt. Warnings are still printed though. Gengetopt will be replaced by argp eventually. ** Command line tool "idn" supports stringprep too. ** New stringprep API entry point: stringprep_profile(). It takes a name of the stringprep profile as an argument instead of the stringprep table structure. ** stringprep_*.h are deprecated and will be removed in the future. All symbols have been moved to stringprep.h. The reasons are that (1) the files typically only defined one CPP macro and exported one symbol definition, which is wasteful as it generates too much work in the manual, and (2) using one header file for all profiles allows easier access to all stringprep profiles during runtime. Note that the files are still installed, but they only #include stringprep.h now, for backwards compatibility. ** GNU Libc add-on build instructions updated to GNU Libc 2.3.2. ** SASLprep stringprep profile added. ** An online interface to libidn written in PHP added to contrib/web/. ** API and ABI is backwards compatible with the previous version. * Version 0.1.11 (released 2003-02-26) ** Command line application "idn" is included. A simple wrapper around the library that allows you to invoke punycode encoding/decoding and IDNA ToASCII/ToUnicode on the command line. ** Emacs Lisp interface for punycode and IDNA included. See punycode.el and idna.el. ** API and ABI is backwards compatible with the previous version. * Version 0.1.10 (released 2003-02-21) ** idna_*_to_ace() and idna_*ace_to_*() are deprecated in favor of ** idna_to_ascii_from_*() and idna_to_unicode_*_from_*() respectively. The reason was that the old interfaces did not accept the AllowUnassigned and UseSTD3ASCIIRules flags. Note that the old functions are not removed, but will be in the future. ** IPS iSCSI stringprep profile added. ** A new contrib/ directory added. Currently it contains a Python interface to Libidn, contributed by Stephane Bortzmeyer. ** idna.h and punycode.h are now installed by "make install". ** API and ABI is backwards compatible with the previous version. * Version 0.1.9 (released 2003-02-20) ** SASL ANONYMOUS "plain" stringprep profile added. ** XMPP nodeprep profile fixed. ** API and ABI is backwards compatible with the previous version. For future releases, the NEWS entry will specifically mention whether the C header API or library ABI backwards compatibility is affected. * Version 0.1.8 (released 2003-02-14) ** Portability fixes. This includes not building the API Reference Manual with GTK-DOC by default, if you want it use configure parameter --enable-gtk-doc after making sure your gtkdoc-mkdb accept the --tmpl-dir parameter. ** The type for string length variables is now (s)size_t. Unfortunately this means binary shared library binary backwards compatible is lost. ** New nameprep test vectors. * Version 0.1.7 (released 2003-02-12) ** Uses official IDNA ACE prefix. * Version 0.1.6 (released 2003-02-11) ** Uses tentative IDNA ACE prefix. ** Added XMPP Node/Resource Identifiers stringprep profiles. ** Fixed prohibited character checks for bidi. * Version 0.1.5 (released 2003-01-28) ** The library can now be built as part of GNU Libc. This is experimental and only tested against GNU Libc version 2.3.1. See the libc/ directory, and libc/README in particular. ** Bug fixes. * Version 0.1.4 (released 2003-01-15) ** Documentation fixes. ** Portability fixes. ** Bug fixes. * Version 0.1.3 (released 2003-01-15) ** Added texinfo manual. * Version 0.1.2 (released 2003-01-08) ** Added high-level IDNA API. ** Added example3.c and example4.c demonstrating the high-level IDNA API. * Version 0.1.1 (released 2003-01-08) ** Added documentation using GTK-DOC. ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed. By accident it was never removed in 0.1.0. * Version 0.1.0 (released 2003-01-05) ** Official GNU project. ** Renamed from libstringprep to libidn. ** Supports punycode and IDNA. Caveat emptor: I don't use it myself. ** Uses "unsigned long" for Unicode code points instead of "long". Long is guaranteed to be at least 32 bits by C standards so it is always sufficiently large, no need to use uint32_t and the like. ** The obsolete stringprep_utf8_to_ucs4_fast API entry point was removed. * Version 0.0.8 (released 2002-12-13) ** Portability fixes (now works under Cygwin on Windows 2000). ** Bug fixes. * Version 0.0.7 (released 2002-12-09) ** Apply all tables to entire strings, not just first hit. ** Fix bidi infloop. * Version 0.0.5 (released 2002-12-07) ** Fix prohibited characters handling. ** Fix bidi. ** Renamed type (struct) stringprep_table_element to Stringprep_table_element. ** Renamed type stringprep_profile to Stringprep_profile. ** Renamed type (struct) stringprep_table to Stringprep_table. ** Added more self-tests. * Version 0.0.4 (released 2002-12-06) ** Add unassigned code point handling, including self test cases. ** Portability fixes. * Version 0.0.3 (released 2002-11-30) ** Exported utility function `stringprep_utf8_to_unichar', complementary to existing `stringprep_unichar_to_utf8'. ** Renamed `stringprep_utf8_to_ucs4_fast' to `stringprep_utf8_to_ucs4' to clean up API. The old entry point is maintained for binary backwards compatibility though. ** The distribution is from now on signed using GnuPG. ** Bug fixes. * Version 0.0.2 (released 2002-11-07) ** NFKC self test. ** Bug fixes. * Version 0.0.1 (released 2002-11-06) ** Add utility functions stringprep_locale_charset(), stringprep_convert() and stringprep_locale_to_utf8 () that can be used to convert text from system's locale into UTF-8, which should be done before invoking stringprep(). The functions requires iconv() in the operating system. ** An example program (example.c) that illustrates how libstringprep can be used is included. ** The pkg-config --libs output should now include necessary -R options. * Version 0.0.0 (released 2002-11-05) ** Initial release ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/COPYING0000664000000000000000000000234712153706725010647 00000000000000Libidn COPYING -- Explanation of licensing conditions. Copyright (C) 2002-2013 Simon Josefsson See the end for copying conditions. The source code for the C library (libidn.a or libidn.so), the C# library (Libidn.dll) and the Java library (libidn-*.jar) are licensed under the terms of either the GNU General Public License version 2.0 or later (see the file COPYINGv2) or the GNU Lesser General Public License version 3.0 or later (see the file COPYING.LESSERv3), or both in parallel as here. The author of the Java library has agreed to also distribute it under the Apache License Version 2.0 (see the file java/LICENSE-2.0). The manual is licensed under the GNU Free Documentation License, Version 1.3 or any later. The command line tool, self tests, examples, and other auxilliary files, are licensed under the GNU General Public License version 3.0 or later. Other files are licensed as indicated in each file. There may be exceptions to these general rules, see each file for precise information. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/configure0000755000000000000000000375701412167244655011540 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for GNU Libidn 1.28. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-libidn@gnu.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU Libidn' PACKAGE_TARNAME='libidn' PACKAGE_VERSION='1.28' PACKAGE_STRING='GNU Libidn 1.28' PACKAGE_BUGREPORT='bug-libidn@gnu.org' PACKAGE_URL='http://www.gnu.org/software/libidn/' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" gl_use_threads_default= gt_needs= gl_getopt_required=POSIX ac_header_list= gl_getopt_required=POSIX ac_func_list= ac_subst_vars='lgltests_LTLIBOBJS lgltests_LIBOBJS lgl_LTLIBOBJS lgl_LIBOBJS gltests_LTLIBOBJS gltests_LIBOBJS gl_LTLIBOBJS gl_LIBOBJS CONFIG_INCLUDE am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS WARN_CFLAGS WSTACK_CFLAGS WERROR_CFLAGS CSHARP_FALSE CSHARP_TRUE HAVE_CLIX HAVE_MONO HAVE_ILRUN CLIX_PATH CLIX_PATH_VAR MONO_PATH_SEPARATOR MONO_PATH HAVE_CLIX_IN_PATH HAVE_MONO_IN_PATH HAVE_ILRUN_IN_PATH JAVA_FALSE JAVA_TRUE GJDOC JAR am__fastdepGCJ_FALSE am__fastdepGCJ_TRUE GCJDEPMODE GCJFLAGS ac_ct_GCJ GCJ GTK_DOC_USE_REBASE_FALSE GTK_DOC_USE_REBASE_TRUE GTK_DOC_USE_LIBTOOL_FALSE GTK_DOC_USE_LIBTOOL_TRUE GTK_DOC_BUILD_PDF_FALSE GTK_DOC_BUILD_PDF_TRUE GTK_DOC_BUILD_HTML_FALSE GTK_DOC_BUILD_HTML_TRUE ENABLE_GTK_DOC_FALSE ENABLE_GTK_DOC_TRUE HTML_DIR GTKDOC_MKPDF GTKDOC_REBASE GTKDOC_CHECK PKG_CONFIG TLD_FALSE TLD_TRUE YIELD_LIB LOCALE_ZH_CN LOCALE_JA LOCALE_FR_UTF8 LTLIBMULTITHREAD LIBMULTITHREAD LTLIBTHREAD LIBTHREAD LIBPTH_PREFIX LTLIBPTH LIBPTH NEXT_AS_FIRST_DIRECTIVE_LOCALE_H NEXT_LOCALE_H HAVE_XLOCALE_H REPLACE_STRUCT_LCONV REPLACE_DUPLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV HAVE_DUPLOCALE GNULIB_DUPLOCALE GNULIB_SETLOCALE GNULIB_LOCALECONV LOCALE_TR_UTF8 LOCALE_FR lgltests_WITNESS LIBUNISTRING_UNITYPES_H LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE LIBUNISTRING_UNISTR_H HAVE_VISIBILITY CFLAG_VISIBILITY HAVE_LD_VERSION_SCRIPT_FALSE HAVE_LD_VERSION_SCRIPT_TRUE HAVE_LD_OUTPUT_DEF_FALSE HAVE_LD_OUTPUT_DEF_TRUE NEXT_AS_FIRST_DIRECTIVE_ICONV_H NEXT_ICONV_H LIBTESTS_LIBDEPS HAVE_WINT_T HAVE_FEATURES_H NEXT_AS_FIRST_DIRECTIVE_WCHAR_H NEXT_WCHAR_H REPLACE_WCSWIDTH REPLACE_WCWIDTH REPLACE_WCSNRTOMBS REPLACE_WCSRTOMBS REPLACE_WCRTOMB REPLACE_MBSNRTOWCS REPLACE_MBSRTOWCS REPLACE_MBRLEN REPLACE_MBRTOWC REPLACE_MBSINIT REPLACE_WCTOB REPLACE_BTOWC REPLACE_MBSTATE_T HAVE_DECL_WCWIDTH HAVE_DECL_WCTOB HAVE_WCSWIDTH HAVE_WCSTOK HAVE_WCSSTR HAVE_WCSPBRK HAVE_WCSSPN HAVE_WCSCSPN HAVE_WCSRCHR HAVE_WCSCHR HAVE_WCSDUP HAVE_WCSXFRM HAVE_WCSCOLL HAVE_WCSNCASECMP HAVE_WCSCASECMP HAVE_WCSNCMP HAVE_WCSCMP HAVE_WCSNCAT HAVE_WCSCAT HAVE_WCPNCPY HAVE_WCSNCPY HAVE_WCPCPY HAVE_WCSCPY HAVE_WCSNLEN HAVE_WCSLEN HAVE_WMEMSET HAVE_WMEMMOVE HAVE_WMEMCPY HAVE_WMEMCMP HAVE_WMEMCHR HAVE_WCSNRTOMBS HAVE_WCSRTOMBS HAVE_WCRTOMB HAVE_MBSNRTOWCS HAVE_MBSRTOWCS HAVE_MBRLEN HAVE_MBRTOWC HAVE_MBSINIT HAVE_BTOWC GNULIB_WCSWIDTH GNULIB_WCSTOK GNULIB_WCSSTR GNULIB_WCSPBRK GNULIB_WCSSPN GNULIB_WCSCSPN GNULIB_WCSRCHR GNULIB_WCSCHR GNULIB_WCSDUP GNULIB_WCSXFRM GNULIB_WCSCOLL GNULIB_WCSNCASECMP GNULIB_WCSCASECMP GNULIB_WCSNCMP GNULIB_WCSCMP GNULIB_WCSNCAT GNULIB_WCSCAT GNULIB_WCPNCPY GNULIB_WCSNCPY GNULIB_WCPCPY GNULIB_WCSCPY GNULIB_WCSNLEN GNULIB_WCSLEN GNULIB_WMEMSET GNULIB_WMEMMOVE GNULIB_WMEMCPY GNULIB_WMEMCMP GNULIB_WMEMCHR GNULIB_WCWIDTH GNULIB_WCSNRTOMBS GNULIB_WCSRTOMBS GNULIB_WCRTOMB GNULIB_MBSNRTOWCS GNULIB_MBSRTOWCS GNULIB_MBRLEN GNULIB_MBRTOWC GNULIB_MBSINIT GNULIB_WCTOB GNULIB_BTOWC abs_aux_dir PTHREAD_H_DEFINES_STRUCT_TIMESPEC SYS_TIME_H_DEFINES_STRUCT_TIMESPEC TIME_H_DEFINES_STRUCT_TIMESPEC NEXT_AS_FIRST_DIRECTIVE_TIME_H NEXT_TIME_H REPLACE_TIMEGM REPLACE_NANOSLEEP REPLACE_MKTIME REPLACE_LOCALTIME_R HAVE_TIMEGM HAVE_STRPTIME HAVE_NANOSLEEP HAVE_DECL_LOCALTIME_R GNULIB_TIME_R GNULIB_TIMEGM GNULIB_STRPTIME GNULIB_NANOSLEEP GNULIB_MKTIME NEXT_AS_FIRST_DIRECTIVE_STDLIB_H NEXT_STDLIB_H NEXT_AS_FIRST_DIRECTIVE_STDIO_H NEXT_STDIO_H HAVE__BOOL GL_GENERATE_STDBOOL_H_FALSE GL_GENERATE_STDBOOL_H_TRUE STDBOOL_H REPLACE_WCTOMB REPLACE_UNSETENV REPLACE_STRTOD REPLACE_SETENV REPLACE_REALPATH REPLACE_REALLOC REPLACE_RANDOM_R REPLACE_PUTENV REPLACE_PTSNAME_R REPLACE_PTSNAME REPLACE_MKSTEMP REPLACE_MBTOWC REPLACE_MALLOC REPLACE_CANONICALIZE_FILE_NAME REPLACE_CALLOC HAVE_DECL_UNSETENV HAVE_UNLOCKPT HAVE_SYS_LOADAVG_H HAVE_STRUCT_RANDOM_DATA HAVE_STRTOULL HAVE_STRTOLL HAVE_STRTOD HAVE_DECL_SETENV HAVE_SETENV HAVE_SECURE_GETENV HAVE_RPMATCH HAVE_REALPATH HAVE_RANDOM_R HAVE_RANDOM_H HAVE_RANDOM HAVE_PTSNAME_R HAVE_PTSNAME HAVE_POSIX_OPENPT HAVE_MKSTEMPS HAVE_MKSTEMP HAVE_MKOSTEMPS HAVE_MKOSTEMP HAVE_MKDTEMP HAVE_GRANTPT HAVE_GETSUBOPT HAVE_DECL_GETLOADAVG HAVE_CANONICALIZE_FILE_NAME HAVE_ATOLL HAVE__EXIT GNULIB_WCTOMB GNULIB_UNSETENV GNULIB_UNLOCKPT GNULIB_SYSTEM_POSIX GNULIB_STRTOULL GNULIB_STRTOLL GNULIB_STRTOD GNULIB_SETENV GNULIB_SECURE_GETENV GNULIB_RPMATCH GNULIB_REALPATH GNULIB_REALLOC_POSIX GNULIB_RANDOM_R GNULIB_RANDOM GNULIB_PUTENV GNULIB_PTSNAME_R GNULIB_PTSNAME GNULIB_POSIX_OPENPT GNULIB_MKSTEMPS GNULIB_MKSTEMP GNULIB_MKOSTEMPS GNULIB_MKOSTEMP GNULIB_MKDTEMP GNULIB_MBTOWC GNULIB_MALLOC_POSIX GNULIB_GRANTPT GNULIB_GETSUBOPT GNULIB_GETLOADAVG GNULIB_CANONICALIZE_FILE_NAME GNULIB_CALLOC_POSIX GNULIB_ATOLL GNULIB__EXIT NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H NEXT_INTTYPES_H UINT64_MAX_EQ_ULONG_MAX UINT32_MAX_LT_UINTMAX_MAX PRIPTR_PREFIX PRI_MACROS_BROKEN INT64_MAX_EQ_LONG_MAX INT32_MAX_LT_INTMAX_MAX REPLACE_STRTOIMAX HAVE_DECL_STRTOUMAX HAVE_DECL_STRTOIMAX HAVE_DECL_IMAXDIV HAVE_DECL_IMAXABS GNULIB_STRTOUMAX GNULIB_STRTOIMAX GNULIB_IMAXDIV GNULIB_IMAXABS GL_GENERATE_STDINT_H_FALSE GL_GENERATE_STDINT_H_TRUE STDINT_H WINT_T_SUFFIX WCHAR_T_SUFFIX SIG_ATOMIC_T_SUFFIX SIZE_T_SUFFIX PTRDIFF_T_SUFFIX HAVE_SIGNED_WINT_T HAVE_SIGNED_WCHAR_T HAVE_SIGNED_SIG_ATOMIC_T BITSIZEOF_WINT_T BITSIZEOF_WCHAR_T BITSIZEOF_SIG_ATOMIC_T BITSIZEOF_SIZE_T BITSIZEOF_PTRDIFF_T APPLE_UNIVERSAL_BUILD HAVE_SYS_BITYPES_H HAVE_SYS_INTTYPES_H HAVE_STDINT_H NEXT_AS_FIRST_DIRECTIVE_STDINT_H NEXT_STDINT_H HAVE_SYS_TYPES_H HAVE_INTTYPES_H HAVE_WCHAR_H HAVE_UNSIGNED_LONG_LONG_INT HAVE_LONG_LONG_INT WINDOWS_64_BIT_ST_SIZE NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H NEXT_SYS_STAT_H REPLACE_UTIMENSAT REPLACE_STAT REPLACE_MKNOD REPLACE_MKFIFO REPLACE_MKDIR REPLACE_LSTAT REPLACE_FUTIMENS REPLACE_FSTATAT REPLACE_FSTAT HAVE_UTIMENSAT HAVE_MKNODAT HAVE_MKNOD HAVE_MKFIFOAT HAVE_MKFIFO HAVE_MKDIRAT HAVE_LSTAT HAVE_LCHMOD HAVE_FUTIMENS HAVE_FSTATAT HAVE_FCHMODAT GNULIB_UTIMENSAT GNULIB_STAT GNULIB_MKNODAT GNULIB_MKNOD GNULIB_MKFIFOAT GNULIB_MKFIFO GNULIB_MKDIRAT GNULIB_LSTAT GNULIB_LCHMOD GNULIB_FUTIMENS GNULIB_FSTATAT GNULIB_FSTAT GNULIB_FCHMODAT REPLACE_VSPRINTF REPLACE_VSNPRINTF REPLACE_VPRINTF REPLACE_VFPRINTF REPLACE_VDPRINTF REPLACE_VASPRINTF REPLACE_TMPFILE REPLACE_STDIO_WRITE_FUNCS REPLACE_STDIO_READ_FUNCS REPLACE_SPRINTF REPLACE_SNPRINTF REPLACE_RENAMEAT REPLACE_RENAME REPLACE_REMOVE REPLACE_PRINTF REPLACE_POPEN REPLACE_PERROR REPLACE_OBSTACK_PRINTF REPLACE_GETLINE REPLACE_GETDELIM REPLACE_FTELLO REPLACE_FTELL REPLACE_FSEEKO REPLACE_FSEEK REPLACE_FREOPEN REPLACE_FPURGE REPLACE_FPRINTF REPLACE_FOPEN REPLACE_FFLUSH REPLACE_FDOPEN REPLACE_FCLOSE REPLACE_DPRINTF HAVE_VDPRINTF HAVE_VASPRINTF HAVE_RENAMEAT HAVE_POPEN HAVE_PCLOSE HAVE_FTELLO HAVE_FSEEKO HAVE_DPRINTF HAVE_DECL_VSNPRINTF HAVE_DECL_SNPRINTF HAVE_DECL_OBSTACK_PRINTF HAVE_DECL_GETLINE HAVE_DECL_GETDELIM HAVE_DECL_FTELLO HAVE_DECL_FSEEKO HAVE_DECL_FPURGE GNULIB_VSPRINTF_POSIX GNULIB_VSNPRINTF GNULIB_VPRINTF_POSIX GNULIB_VPRINTF GNULIB_VFPRINTF_POSIX GNULIB_VFPRINTF GNULIB_VDPRINTF GNULIB_VSCANF GNULIB_VFSCANF GNULIB_VASPRINTF GNULIB_TMPFILE GNULIB_STDIO_H_SIGPIPE GNULIB_STDIO_H_NONBLOCKING GNULIB_SPRINTF_POSIX GNULIB_SNPRINTF GNULIB_SCANF GNULIB_RENAMEAT GNULIB_RENAME GNULIB_REMOVE GNULIB_PUTS GNULIB_PUTCHAR GNULIB_PUTC GNULIB_PRINTF_POSIX GNULIB_PRINTF GNULIB_POPEN GNULIB_PERROR GNULIB_PCLOSE GNULIB_OBSTACK_PRINTF_POSIX GNULIB_OBSTACK_PRINTF GNULIB_GETLINE GNULIB_GETDELIM GNULIB_GETCHAR GNULIB_GETC GNULIB_FWRITE GNULIB_FTELLO GNULIB_FTELL GNULIB_FSEEKO GNULIB_FSEEK GNULIB_FSCANF GNULIB_FREOPEN GNULIB_FREAD GNULIB_FPUTS GNULIB_FPUTC GNULIB_FPURGE GNULIB_FPRINTF_POSIX GNULIB_FPRINTF GNULIB_FOPEN GNULIB_FGETS GNULIB_FGETC GNULIB_FFLUSH GNULIB_FDOPEN GNULIB_FCLOSE GNULIB_DPRINTF NEXT_AS_FIRST_DIRECTIVE_FCNTL_H NEXT_FCNTL_H REPLACE_OPENAT REPLACE_OPEN REPLACE_FCNTL HAVE_OPENAT HAVE_FCNTL GNULIB_OPENAT GNULIB_OPEN GNULIB_NONBLOCKING GNULIB_FCNTL GL_GENERATE_ALLOCA_H_FALSE GL_GENERATE_ALLOCA_H_TRUE ALLOCA_H ALLOCA gltests_WITNESS VALGRIND HAVE_UNISTD_H NEXT_AS_FIRST_DIRECTIVE_UNISTD_H NEXT_UNISTD_H WINDOWS_64_BIT_OFF_T NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H NEXT_SYS_TYPES_H NEXT_AS_FIRST_DIRECTIVE_STRING_H NEXT_STRING_H HAVE_WINSOCK2_H UNDEFINE_STRTOK_R REPLACE_STRTOK_R REPLACE_STRSIGNAL REPLACE_STRNLEN REPLACE_STRNDUP REPLACE_STRNCAT REPLACE_STRERROR_R REPLACE_STRERROR REPLACE_STRCHRNUL REPLACE_STRCASESTR REPLACE_STRSTR REPLACE_STRDUP REPLACE_STPNCPY REPLACE_MEMMEM REPLACE_MEMCHR HAVE_STRVERSCMP HAVE_DECL_STRSIGNAL HAVE_DECL_STRERROR_R HAVE_DECL_STRTOK_R HAVE_STRCASESTR HAVE_STRSEP HAVE_STRPBRK HAVE_DECL_STRNLEN HAVE_DECL_STRNDUP HAVE_DECL_STRDUP HAVE_STRCHRNUL HAVE_STPNCPY HAVE_STPCPY HAVE_RAWMEMCHR HAVE_DECL_MEMRCHR HAVE_MEMPCPY HAVE_DECL_MEMMEM HAVE_MEMCHR HAVE_FFSLL HAVE_FFSL HAVE_MBSLEN GNULIB_STRVERSCMP GNULIB_STRSIGNAL GNULIB_STRERROR_R GNULIB_STRERROR GNULIB_MBSTOK_R GNULIB_MBSSEP GNULIB_MBSSPN GNULIB_MBSPBRK GNULIB_MBSCSPN GNULIB_MBSCASESTR GNULIB_MBSPCASECMP GNULIB_MBSNCASECMP GNULIB_MBSCASECMP GNULIB_MBSSTR GNULIB_MBSRCHR GNULIB_MBSCHR GNULIB_MBSNLEN GNULIB_MBSLEN GNULIB_STRTOK_R GNULIB_STRCASESTR GNULIB_STRSTR GNULIB_STRSEP GNULIB_STRPBRK GNULIB_STRNLEN GNULIB_STRNDUP GNULIB_STRNCAT GNULIB_STRDUP GNULIB_STRCHRNUL GNULIB_STPNCPY GNULIB_STPCPY GNULIB_RAWMEMCHR GNULIB_MEMRCHR GNULIB_MEMPCPY GNULIB_MEMMEM GNULIB_MEMCHR GNULIB_FFSLL GNULIB_FFSL NEXT_AS_FIRST_DIRECTIVE_STDDEF_H NEXT_STDDEF_H GL_GENERATE_STDDEF_H_FALSE GL_GENERATE_STDDEF_H_TRUE STDDEF_H HAVE_WCHAR_T REPLACE_NULL GL_GENERATE_STDARG_H_FALSE GL_GENERATE_STDARG_H_TRUE STDARG_H NEXT_AS_FIRST_DIRECTIVE_STDARG_H NEXT_STDARG_H PMCCABE HAVE_MSVC_INVALID_PARAMETER_HANDLER GNULIB_GL_UNISTD_H_GETOPT GETOPT_H HAVE_GETOPT_H NEXT_AS_FIRST_DIRECTIVE_GETOPT_H NEXT_GETOPT_H UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS UNISTD_H_HAVE_WINSOCK2_H REPLACE_WRITE REPLACE_USLEEP REPLACE_UNLINKAT REPLACE_UNLINK REPLACE_TTYNAME_R REPLACE_SYMLINK REPLACE_SLEEP REPLACE_RMDIR REPLACE_READLINK REPLACE_READ REPLACE_PWRITE REPLACE_PREAD REPLACE_LSEEK REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R REPLACE_GETDOMAINNAME REPLACE_GETCWD REPLACE_FTRUNCATE REPLACE_FCHOWNAT REPLACE_DUP2 REPLACE_DUP REPLACE_CLOSE REPLACE_CHOWN HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE HAVE_DECL_GETLOGIN_R HAVE_DECL_GETDOMAINNAME HAVE_DECL_FDATASYNC HAVE_DECL_FCHDIR HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP HAVE_SETHOSTNAME HAVE_READLINKAT HAVE_READLINK HAVE_PWRITE HAVE_PREAD HAVE_PIPE2 HAVE_PIPE HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME HAVE_GETGROUPS HAVE_GETDTABLESIZE HAVE_FTRUNCATE HAVE_FSYNC HAVE_FDATASYNC HAVE_FCHOWNAT HAVE_FCHDIR HAVE_FACCESSAT HAVE_EUIDACCESS HAVE_DUP3 HAVE_DUP2 HAVE_CHOWN GNULIB_WRITE GNULIB_USLEEP GNULIB_UNLINKAT GNULIB_UNLINK GNULIB_UNISTD_H_SIGPIPE GNULIB_UNISTD_H_NONBLOCKING GNULIB_TTYNAME_R GNULIB_SYMLINKAT GNULIB_SYMLINK GNULIB_SLEEP GNULIB_SETHOSTNAME GNULIB_RMDIR GNULIB_READLINKAT GNULIB_READLINK GNULIB_READ GNULIB_PWRITE GNULIB_PREAD GNULIB_PIPE2 GNULIB_PIPE GNULIB_LSEEK GNULIB_LINKAT GNULIB_LINK GNULIB_LCHOWN GNULIB_ISATTY GNULIB_GROUP_MEMBER GNULIB_GETUSERSHELL GNULIB_GETPAGESIZE GNULIB_GETLOGIN_R GNULIB_GETLOGIN GNULIB_GETHOSTNAME GNULIB_GETGROUPS GNULIB_GETDTABLESIZE GNULIB_GETDOMAINNAME GNULIB_GETCWD GNULIB_FTRUNCATE GNULIB_FSYNC GNULIB_FDATASYNC GNULIB_FCHOWNAT GNULIB_FCHDIR GNULIB_FACCESSAT GNULIB_EUIDACCESS GNULIB_ENVIRON GNULIB_DUP3 GNULIB_DUP2 GNULIB_DUP GNULIB_CLOSE GNULIB_CHOWN GNULIB_CHDIR EOVERFLOW_VALUE EOVERFLOW_HIDDEN ENOLINK_VALUE ENOLINK_HIDDEN EMULTIHOP_VALUE EMULTIHOP_HIDDEN GL_GENERATE_ERRNO_H_FALSE GL_GENERATE_ERRNO_H_TRUE ERRNO_H NEXT_AS_FIRST_DIRECTIVE_ERRNO_H NEXT_ERRNO_H PRAGMA_COLUMNS PRAGMA_SYSTEM_HEADER INCLUDE_NEXT_AS_FIRST_DIRECTIVE INCLUDE_NEXT CSHARPCOMPFLAGS HAVE_CSC HAVE_MCS HAVE_CSCC HAVE_CSC_IN_PATH HAVE_MCS_IN_PATH HAVE_CSCC_IN_PATH CSHARP_CHOICE GL_COND_LIBTOOL_FALSE GL_COND_LIBTOOL_TRUE lispdir EMACSLOADPATH EMACS GL_GENERATE_ICONV_H_FALSE GL_GENERATE_ICONV_H_TRUE ICONV_H REPLACE_ICONV_UTF REPLACE_ICONV_OPEN REPLACE_ICONV ICONV_CONST GNULIB_ICONV POSUB LTLIBINTL LIBINTL INTLLIBS LTLIBICONV LIBICONV INTL_MACOSX_LIBS XGETTEXT_EXTRA_OPTIONS MSGMERGE XGETTEXT_015 XGETTEXT GMSGFMT_015 MSGFMT_015 GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS HELP2MAN PERL OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP SED LIBTOOL ac_ct_AR OBJDUMP DLLTOOL AS DLL_VERSION host_os host_vendor host_cpu host build_os build_vendor build_cpu build RANLIB ARFLAGS AR EGREP GREP CPP am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC LT_AGE LT_REVISION LT_CURRENT AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_dependency_tracking enable_largefile enable_threads enable_shared enable_static with_pic enable_fast_install with_gnu_ld with_sysroot enable_libtool_lock enable_nls enable_rpath with_libiconv_prefix with_libintl_prefix with_lispdir enable_csharp enable_valgrind_tests with_packager with_packager_version with_packager_bug_reports enable_ld_version_script with_libpth_prefix enable_tld with_html_dir enable_gtk_doc enable_gtk_doc_html enable_gtk_doc_pdf enable_java enable_gcc_warnings ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP EMACS EMACSLOADPATH PKG_CONFIG' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures GNU Libidn 1.28 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/libidn] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of GNU Libidn 1.28:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-largefile omit support for large files --enable-threads={posix|solaris|pth|windows} specify multithreading API --disable-threads build without multithread safety --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --disable-nls do not use Native Language Support --disable-rpath do not hardcode runtime library paths --enable-csharp[=IMPL] choose preferred C# implementation (pnet or mono) --enable-valgrind-tests run self tests under valgrind --enable-ld-version-script enable linker version script (default is enabled when possible) --disable-tld disable TLD code --enable-gtk-doc use gtk-doc to build documentation [[default=no]] --enable-gtk-doc-html build documentation in html format [[default=yes]] --enable-gtk-doc-pdf build documentation in pdf format [[default=no]] --enable-java enable Java API --enable-gcc-warnings turn on lots of GCC warnings (for developers) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib --without-libiconv-prefix don't search for libiconv in includedir and libdir --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib --without-libintl-prefix don't search for libintl in includedir and libdir --with-lispdir override the default lisp directory --with-packager String identifying the packager of this software --with-packager-version Packager-specific version information --with-packager-bug-reports Packager info for bug reports (URL/e-mail/...) --with-libpth-prefix[=DIR] search for libpth in DIR/include and DIR/lib --without-libpth-prefix don't search for libpth in includedir and libdir --with-html-dir=PATH path to installed docs Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor EMACS the Emacs editor command EMACSLOADPATH the Emacs library search path PKG_CONFIG path to pkg-config utility Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . GNU Libidn home page: . General help using GNU software: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF GNU Libidn configure 1.28 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------- ## ## Report this to bug-libidn@gnu.org ## ## --------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid; break else as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_lo=$ac_mid; break else as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done else ac_lo= ac_hi= fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_hi=$ac_mid else as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval () { return $2; } static unsigned long int ulongval () { return $2; } #include #include int main () { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : echo >>conftest.val; read $3 &5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_check_type LINENO TYPE VAR INCLUDES # ------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_c_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by GNU Libidn $as_me 1.28, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi gt_needs="$gt_needs " gl_getopt_required=GNU as_fn_append ac_header_list " getopt.h" as_fn_append ac_func_list " _set_invalid_parameter_handler" as_fn_append ac_header_list " sys/socket.h" as_fn_append ac_header_list " unistd.h" as_fn_append ac_func_list " symlink" as_fn_append ac_header_list " sys/stat.h" as_fn_append ac_func_list " getdtablesize" as_fn_append ac_header_list " wchar.h" as_fn_append ac_header_list " stdint.h" as_fn_append ac_header_list " inttypes.h" as_fn_append ac_func_list " lstat" as_fn_append ac_header_list " sys/param.h" as_fn_append ac_func_list " setenv" as_fn_append ac_header_list " sys/time.h" as_fn_append ac_header_list " features.h" as_fn_append ac_header_list " iconv.h" as_fn_append ac_header_list " xlocale.h" as_fn_append ac_func_list " newlocale" # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in build-aux "$srcdir"/build-aux; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. ac_config_headers="$ac_config_headers config.h" am__api_version='1.14' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=1;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='libidn' VERSION='1.28' cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 fi fi # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : enableval=$enable_silent_rules; fi case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=0;; esac am_make=${MAKE-make} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 $as_echo_n "checking whether $am_make supports nested variables... " >&6; } if ${am_cv_make_support_nested_variables+:} false; then : $as_echo_n "(cached) " >&6 else if $as_echo 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 $as_echo "$am_cv_make_support_nested_variables" >&6; } if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AM_BACKSLASH='\' # Library code modified: REVISION++ # Interfaces changed/added/removed: CURRENT++ REVISION=0 # Interfaces added: AGE++ # Interfaces removed: AGE=0 LT_CURRENT=17 LT_REVISION=11 LT_AGE=6 ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 $as_echo_n "checking whether $CC understands -c and -o together... " >&6; } if ${am_cv_prog_cc_c_o+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 $as_echo "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CC_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5 $as_echo_n "checking for Minix Amsterdam compiler... " >&6; } if ${gl_cv_c_amsterdam_compiler+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ACK__ Amsterdam #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Amsterdam" >/dev/null 2>&1; then : gl_cv_c_amsterdam_compiler=yes else gl_cv_c_amsterdam_compiler=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5 $as_echo "$gl_cv_c_amsterdam_compiler" >&6; } if test -z "$AR"; then if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="ar" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi else if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi fi fi # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" if test "x$ac_cv_header_minix_config_h" = xyes; then : MINIX=yes else MINIX= fi if test "$MINIX" = yes; then $as_echo "#define _POSIX_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h $as_echo "#define _MINIX 1" >>confdefs.h $as_echo "#define _NETBSD_SOURCE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 $as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } if ${ac_cv_safe_to_define___extensions__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # define __EXTENSIONS__ 1 $ac_includes_default int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_safe_to_define___extensions__=yes else ac_cv_safe_to_define___extensions__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 $as_echo "$ac_cv_safe_to_define___extensions__" >&6; } test $ac_cv_safe_to_define___extensions__ = yes && $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h $as_echo "#define _ALL_SOURCE 1" >>confdefs.h $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h $as_echo "#define _GNU_SOURCE 1" >>confdefs.h $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5 $as_echo_n "checking whether _XOPEN_SOURCE should be defined... " >&6; } if ${ac_cv_should_define__xopen_source+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_should_define__xopen_source=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 500 #include mbstate_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_should_define__xopen_source=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5 $as_echo "$ac_cv_should_define__xopen_source" >&6; } test $ac_cv_should_define__xopen_source = yes && $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h # Check whether --enable-largefile was given. if test "${enable_largefile+set}" = set; then : enableval=$enable_largefile; fi if test "$enable_largefile" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 $as_echo_n "checking for special C compiler options needed for large files... " >&6; } if ${ac_cv_sys_largefile_CC+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : break fi rm -f core conftest.err conftest.$ac_objext CC="$CC -n32" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_largefile_CC=' -n32'; break fi rm -f core conftest.err conftest.$ac_objext break done CC=$ac_save_CC rm -f conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 $as_echo "$ac_cv_sys_largefile_CC" >&6; } if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } if ${ac_cv_sys_file_offset_bits+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _FILE_OFFSET_BITS 64 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_file_offset_bits=64; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_file_offset_bits=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 $as_echo "$ac_cv_sys_file_offset_bits" >&6; } case $ac_cv_sys_file_offset_bits in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits _ACEOF ;; esac rm -rf conftest* if test $ac_cv_sys_file_offset_bits = unknown; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } if ${ac_cv_sys_large_files+:} false; then : $as_echo_n "(cached) " >&6 else while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=no; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _LARGE_FILES 1 #include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_sys_large_files=1; break fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_sys_large_files=unknown break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 $as_echo "$ac_cv_sys_large_files" >&6; } case $ac_cv_sys_large_files in #( no | unknown) ;; *) cat >>confdefs.h <<_ACEOF #define _LARGE_FILES $ac_cv_sys_large_files _ACEOF ;; esac rm -rf conftest* fi $as_echo "#define _DARWIN_USE_64_BIT_INODE 1" >>confdefs.h fi case $ac_cv_prog_cc_stdc in #( no) : ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 else ac_cv_prog_cc_stdc=no fi fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 $as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } if ${ac_cv_prog_cc_stdc+:} false; then : $as_echo_n "(cached) " >&6 fi case $ac_cv_prog_cc_stdc in #( no) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; #( '') : { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; #( *) : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 $as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; esac # Code from module alloca-opt: # Code from module alloca-opt-tests: # Code from module autobuild: if test -z "$AB_PACKAGE"; then AB_PACKAGE=${PACKAGE_NAME:-$PACKAGE} fi { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild project... $AB_PACKAGE" >&5 $as_echo "$as_me: autobuild project... $AB_PACKAGE" >&6;} if test -z "$AB_VERSION"; then AB_VERSION=${PACKAGE_VERSION:-$VERSION} fi { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild revision... $AB_VERSION" >&5 $as_echo "$as_me: autobuild revision... $AB_VERSION" >&6;} hostname=`hostname` if test "$hostname"; then { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild hostname... $hostname" >&5 $as_echo "$as_me: autobuild hostname... $hostname" >&6;} fi date=`TZ=UTC0 date +%Y%m%dT%H%M%SZ` if test "$?" != 0; then date=`date` fi if test "$date"; then { $as_echo "$as_me:${as_lineno-$LINENO}: autobuild timestamp... $date" >&5 $as_echo "$as_me: autobuild timestamp... $date" >&6;} fi # Code from module binary-io: # Code from module binary-io-tests: # Code from module close: # Code from module close-tests: # Code from module csharpcomp-script: # Code from module csharpexec-script: # Code from module dosname: # Code from module dup2: # Code from module dup2-tests: # Code from module environ: # Code from module environ-tests: # Code from module errno: # Code from module errno-tests: # Code from module error: # Code from module extensions: # Code from module extern-inline: # Code from module fcntl-h: # Code from module fd-hook: # Code from module fdl-1.3: # Code from module fdopen: # Code from module fdopen-tests: # Code from module fgetc-tests: # Code from module fputc-tests: # Code from module fread-tests: # Code from module fstat: # Code from module fstat-tests: # Code from module fwrite-tests: # Code from module gendocs: # Code from module getcwd-lgpl: # Code from module getcwd-lgpl-tests: # Code from module getdtablesize: # Code from module getdtablesize-tests: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module getopt-posix-tests: # Code from module gettext-h: # Code from module gnumakefile: # Code from module gnupload: # Code from module ignore-value: # Code from module ignore-value-tests: # Code from module include_next: # Code from module intprops: # Code from module intprops-tests: # Code from module inttypes: # Code from module inttypes-incomplete: # Code from module inttypes-tests: # Code from module largefile: # Code from module lstat: # Code from module lstat-tests: # Code from module maintainer-makefile: # Code from module malloc-posix: # Code from module malloca: # Code from module malloca-tests: # Code from module manywarnings: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nocrash: # Code from module open: # Code from module open-tests: # Code from module pathmax: # Code from module pathmax-tests: # Code from module pmccabe2html: # Code from module progname: # Code from module putenv: # Code from module same-inode: # Code from module setenv: # Code from module setenv-tests: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stat: # Code from module stat-tests: # Code from module stdarg: # Code from module stdbool: # Code from module stdbool-tests: # Code from module stddef: # Code from module stddef-tests: # Code from module stdint: # Code from module stdint-tests: # Code from module stdio: # Code from module stdio-tests: # Code from module stdlib: # Code from module strerror: # Code from module strerror-override: # Code from module strerror-tests: # Code from module string: # Code from module symlink: # Code from module symlink-tests: # Code from module sys_stat: # Code from module sys_types: # Code from module sys_types-tests: # Code from module test-framework-sh: # Code from module test-framework-sh-tests: # Code from module time: # Code from module unistd: # Code from module unsetenv: # Code from module unsetenv-tests: # Code from module update-copyright: # Code from module useless-if-before-free: # Code from module valgrind-tests: # Code from module vc-list-files: # Code from module vc-list-files-tests: # Code from module verify: # Code from module verify-tests: # Code from module version-etc: # Code from module version-etc-fsf: # Code from module version-etc-tests: # Code from module warnings: # Code from module wchar: # Check whether --enable-threads was given. if test "${enable_threads+set}" = set; then : enableval=$enable_threads; gl_use_threads=$enableval else if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else case "$host_os" in osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac fi fi if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using : case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks . cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in . case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi # Code from module alloca-opt: # Code from module alloca-opt-tests: # Code from module c-ctype: # Code from module c-ctype-tests: # Code from module c-strcase: # Code from module c-strcase-tests: # Code from module environ: # Code from module environ-tests: # Code from module extensions: # Code from module extern-inline: # Code from module gettext-h: # Code from module gperf: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module iconv-tests: # Code from module iconv_open: # Code from module include_next: # Code from module inline: # Code from module intprops: # Code from module intprops-tests: # Code from module inttypes: # Code from module inttypes-incomplete: # Code from module inttypes-tests: # Code from module lib-msvc-compat: # Code from module lib-symbol-versions: # Code from module lib-symbol-visibility: # Code from module locale: # Code from module locale-tests: # Code from module localename: # Code from module localename-tests: # Code from module lock: # Code from module lock-tests: # Code from module malloc-posix: # Code from module malloca: # Code from module malloca-tests: # Code from module multiarch: # Code from module putenv: # Code from module setenv: # Code from module setenv-tests: # Code from module setlocale: # Code from module setlocale-tests: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stdbool: # Code from module stdbool-tests: # Code from module stddef: # Code from module stddef-tests: # Code from module stdint: # Code from module stdint-tests: # Code from module stdlib: # Code from module stdlib-tests: # Code from module striconv: # Code from module striconv-tests: # Code from module string: # Code from module strverscmp: # Code from module strverscmp-tests: # Code from module sys_types: # Code from module sys_types-tests: # Code from module test-framework-sh: # Code from module test-framework-sh-tests: # Code from module thread: # Code from module thread-tests: # Code from module threadlib: # Code from module unistd: # Code from module unistd-tests: # Code from module unistr/base: # Code from module unistr/u8-mbtoucr: # Code from module unistr/u8-mbtoucr-tests: # Code from module unistr/u8-uctomb: # Code from module unistr/u8-uctomb-tests: # Code from module unitypes: # Code from module unsetenv: # Code from module unsetenv-tests: # Code from module verify: # Code from module verify-tests: # Code from module wchar: # Code from module yield: # For DEF file. DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}` # We can't replace this with LT_INIT([win32-dll]) yet. For example, # the Ubuntu 8.04 LTS is still shipping a libtool version that doesn't # have it. enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AS=$ac_cv_prog_AS if test -n "$AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 $as_echo "$AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 $as_echo "$ac_ct_AS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump if test -n "$ac_tool_prefix"; then for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar lib "link -lib" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} { $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 $as_echo_n "checking the archiver ($AR) interface... " >&6; } if ${am_cv_ar_interface+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am_cv_ar_interface=ar cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int some_variable = 0; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 (eval $am_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 $as_echo "$am_cv_ar_interface" >&6; } case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) as_fn_error $? "could not determine $AR interface" "$LINENO" 5 ;; esac case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.2' macro_revision='1.3337' ltmain="$ac_aux_dir/ltmain.sh" # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case "$ECHO" in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n $lt_cv_sys_max_cmd_len ; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 $as_echo "$xsi_shell" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; } lt_shell_append=no ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 $as_echo "$lt_shell_append" >&6; } if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 $as_echo "${with_sysroot}" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[012]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac else pic_mode=default fi test -z "$pic_mode" && pic_mode=default # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac else enable_fast_install=yes fi # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/${ac_tool_prefix}file; then lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/file; then lt_cv_path_MAGIC_CMD="$ac_dir/file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac fi MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC="$CC" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test "$GCC" = yes; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test x"$lt_cv_prog_compiler_pic_works" = xyes; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test x"$lt_cv_prog_compiler_static_works" = xyes; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='${wl}--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' ${wl}-bernotok' allow_undefined_flag=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test x"$lt_cv_prog_compiler__b" = xyes; then archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' export_dynamic_flag_spec='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-R$libdir' ;; *) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='${wl}-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='${wl}-z,text' allow_undefined_flag='${wl}-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='${wl}-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test "$ld_shlibs" = no && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([A-Za-z]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[89] | openbsd2.[89].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test "X$hardcode_automatic" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && test "$hardcode_minus_L" != no; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test "$hardcode_action" = relink || test "$inherit_rpath" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen="shl_load" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen="dlopen" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" fi fi fi fi fi fi ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report which library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC="$lt_save_CC" ac_config_commands="$ac_config_commands libtool" # Only expand once: # Checks for programs. PERL=${PERL-"${am_missing_run}perl"} HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"} { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 $as_echo_n "checking whether NLS is requested... " >&6; } # Check whether --enable-nls was given. if test "${enable_nls+set}" = set; then : enableval=$enable_nls; USE_NLS=$enableval else USE_NLS=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } GETTEXT_MACRO_VERSION=0.18 # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgfmt", so it can be a program name with args. set dummy msgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGFMT" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" ;; esac fi MSGFMT="$ac_cv_path_MSGFMT" if test "$MSGFMT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 $as_echo "$MSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Extract the first word of "gmsgfmt", so it can be a program name with args. set dummy gmsgfmt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GMSGFMT+:} false; then : $as_echo_n "(cached) " >&6 else case $GMSGFMT in [\\/]* | ?:[\\/]*) ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" ;; esac fi GMSGFMT=$ac_cv_path_GMSGFMT if test -n "$GMSGFMT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 $as_echo "$GMSGFMT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "xgettext", so it can be a program name with args. set dummy xgettext; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_XGETTEXT+:} false; then : $as_echo_n "(cached) " >&6 else case "$XGETTEXT" in [\\/]* | ?:[\\/]*) ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" ;; esac fi XGETTEXT="$ac_cv_path_XGETTEXT" if test "$XGETTEXT" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 $as_echo "$XGETTEXT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi rm -f messages.po case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "msgmerge", so it can be a program name with args. set dummy msgmerge; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_MSGMERGE+:} false; then : $as_echo_n "(cached) " >&6 else case "$MSGMERGE" in [\\/]* | ?:[\\/]*) ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&5 if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" ;; esac fi MSGMERGE="$ac_cv_path_MSGMERGE" if test "$MSGMERGE" != ":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 $as_echo "$MSGMERGE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$localedir" || localedir='${datadir}/locale' test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= ac_config_commands="$ac_config_commands po-directories" if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes else with_gnu_ld=no fi # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${acl_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${acl_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$acl_cv_prog_gnu_ld" >&6; } with_gnu_ld=$acl_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 $as_echo_n "checking for shared library run path origin... " >&6; } if ${acl_cv_rpath+:} false; then : $as_echo_n "(cached) " >&6 else CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 $as_echo "$acl_cv_rpath" >&6; } wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" # Check whether --enable-rpath was given. if test "${enable_rpath+set}" = set; then : enableval=$enable_rpath; : else enable_rpath=yes fi acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 sixtyfour bits #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "sixtyfour bits" >/dev/null 2>&1; then : gl_cv_solaris_64bit=yes else gl_cv_solaris_64bit=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5 $as_echo "$gl_cv_solaris_64bit" >&6; } if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix was given. if test "${with_libiconv_prefix+set}" = set; then : withval=$with_libiconv_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBICONV= LTLIBICONV= INCICONV= LIBICONV_PREFIX= HAVE_LIBICONV= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='iconv ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" else LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'iconv'; then LIBICONV_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBICONV; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" ;; esac done fi else LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFPreferencesCopyAppValue(NULL, NULL) ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFPreferencesCopyAppValue=yes else gt_cv_func_CFPreferencesCopyAppValue=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 $as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then $as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 $as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { CFLocaleCopyCurrent(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_func_CFLocaleCopyCurrent=yes else gt_cv_func_CFLocaleCopyCurrent=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gt_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } if test $gt_cv_func_CFLocaleCopyCurrent = yes; then $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi LIBINTL= LTLIBINTL= POSUB= case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 $as_echo_n "checking for GNU gettext in libc... " >&6; } if eval \${$gt_func_gnugettext_libc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libc=yes" else eval "$gt_func_gnugettext_libc=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$gt_func_gnugettext_libc { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libintl-prefix was given. if test "${with_libintl_prefix+set}" = set; then : withval=$with_libintl_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBINTL= LTLIBINTL= INCINTL= LIBINTL_PREFIX= HAVE_LIBINTL= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='intl ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" else LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'intl'; then LIBINTL_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBINTL; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" ;; esac done fi else LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 $as_echo_n "checking for GNU gettext in libintl... " >&6; } if eval \${$gt_func_gnugettext_libintl+:} false; then : $as_echo_n "(cached) " >&6 else gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$gt_func_gnugettext_libintl=yes" else eval "$gt_func_gnugettext_libintl=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); int main () { bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS" fi eval ac_res=\$$gt_func_gnugettext_libintl { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else LIBINTL= LTLIBINTL= INCINTL= fi if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then $as_echo "#define ENABLE_NLS 1" >>confdefs.h else USE_NLS=no fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 $as_echo_n "checking whether to use NLS... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 $as_echo "$USE_NLS" >&6; } if test "$USE_NLS" = "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 $as_echo_n "checking where the gettext function comes from... " >&6; } if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 $as_echo "$gt_source" >&6; } fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 $as_echo_n "checking how to link with libintl... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 $as_echo "$LIBINTL" >&6; } for element in $INCINTL; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done fi $as_echo "#define HAVE_GETTEXT 1" >>confdefs.h $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h fi POSUB=po fi INTLLIBS="$LIBINTL" GNULIB_ICONV=0; ICONV_CONST=; REPLACE_ICONV=0; REPLACE_ICONV_OPEN=0; REPLACE_ICONV_UTF=0; ICONV_H=''; if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' else GL_GENERATE_ICONV_H_TRUE='#' GL_GENERATE_ICONV_H_FALSE= fi am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 $as_echo_n "checking for iconv... " >&6; } if ${am_cv_func_iconv+:} false; then : $as_echo_n "(cached) " >&6 else am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_lib_iconv=yes am_cv_func_iconv=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$am_save_LIBS" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 $as_echo "$am_cv_func_iconv" >&6; } if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 $as_echo_n "checking for working iconv... " >&6; } if ${am_cv_func_iconv_works+:} false; then : $as_echo_n "(cached) " >&6 else am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi if test "$cross_compiling" = yes; then : case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : am_cv_func_iconv_works=yes else am_cv_func_iconv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi LIBS="$am_save_LIBS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 $as_echo "$am_cv_func_iconv_works" >&6; } case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then $as_echo "#define HAVE_ICONV 1" >>confdefs.h fi if test "$am_cv_lib_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 $as_echo_n "checking how to link with libiconv... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 $as_echo "$LIBICONV" >&6; } else CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi if test "$am_cv_func_iconv" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5 $as_echo_n "checking for iconv declaration... " >&6; } if ${am_cv_proto_iconv+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : am_cv_proto_iconv_arg1="" else am_cv_proto_iconv_arg1="const" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);" fi am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_proto_iconv" >&5 $as_echo " $am_cv_proto_iconv" >&6; } cat >>confdefs.h <<_ACEOF #define ICONV_CONST $am_cv_proto_iconv_arg1 _ACEOF if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi fi # If set to t, that means we are running in a shell under Emacs. # If you have an Emacs named "t", then use the full path. test x"$EMACS" = xt && EMACS= for ac_prog in emacs xemacs do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_EMACS+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$EMACS"; then ac_cv_prog_EMACS="$EMACS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_EMACS="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi EMACS=$ac_cv_prog_EMACS if test -n "$EMACS"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EMACS" >&5 $as_echo "$EMACS" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$EMACS" && break done test -n "$EMACS" || EMACS="no" # Check whether --with-lispdir was given. if test "${with_lispdir+set}" = set; then : withval=$with_lispdir; lispdir="$withval" { $as_echo "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 $as_echo_n "checking where .elc files should go... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lispdir" >&5 $as_echo "$lispdir" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking where .elc files should go" >&5 $as_echo_n "checking where .elc files should go... " >&6; } if ${am_cv_lispdir+:} false; then : $as_echo_n "(cached) " >&6 else if test $EMACS != "no"; then if test x${lispdir+set} != xset; then # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly # Some emacsen will start up in interactive mode, requiring C-x C-c to exit, # which is non-obvious for non-emacs users. # Redirecting /dev/null should help a bit; pity we can't detect "broken" # emacsen earlier and avoid running this altogether. { { $as_echo "$as_me:${as_lineno-$LINENO}: \$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) \"\\n\")) (setq load-path (cdr load-path)))' conftest.out"; } >&5 ($EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } am_cv_lispdir=`sed -n \ -e 's,/$,,' \ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \ conftest.out` rm conftest.out fi fi test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_lispdir" >&5 $as_echo "$am_cv_lispdir" >&6; } lispdir="$am_cv_lispdir" fi if test "$am_cv_func_iconv" != "yes"; then { $as_echo "$as_me:${as_lineno-$LINENO}: *** Your system does not have iconv(). The iconv() function is not strictly required by the source code. However, that may change in the future, unless you report that this may be a problem for you. Please report this to $PACKAGE_BUGREPORT. ***" >&5 $as_echo "$as_me: *** Your system does not have iconv(). The iconv() function is not strictly required by the source code. However, that may change in the future, unless you report that this may be a problem for you. Please report this to $PACKAGE_BUGREPORT. ***" >&6;} fi # Checks for header files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # For gnulib stuff in gl/. LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for preferred C# implementation" >&5 $as_echo_n "checking for preferred C# implementation... " >&6; } # Check whether --enable-csharp was given. if test "${enable_csharp+set}" = set; then : enableval=$enable_csharp; CSHARP_CHOICE="$enableval" else CSHARP_CHOICE=any fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CSHARP_CHOICE" >&5 $as_echo "$CSHARP_CHOICE" >&6; } case "$CSHARP_CHOICE" in pnet) $as_echo "#define CSHARP_CHOICE_PNET 1" >>confdefs.h ;; mono) $as_echo "#define CSHARP_CHOICE_MONO 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C# compiler" >&5 $as_echo_n "checking for C# compiler... " >&6; } HAVE_CSHARPCOMP=1 # Extract the first word of "cscc", so it can be a program name with args. set dummy cscc; ac_word=$2 : if ${ac_cv_prog_HAVE_CSCC_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CSCC_IN_PATH"; then ac_cv_prog_HAVE_CSCC_IN_PATH="$HAVE_CSCC_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_CSCC_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_CSCC_IN_PATH=$ac_cv_prog_HAVE_CSCC_IN_PATH if test -n "$HAVE_CSCC_IN_PATH"; then : else : fi # Extract the first word of "mcs", so it can be a program name with args. set dummy mcs; ac_word=$2 : if ${ac_cv_prog_HAVE_MCS_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_MCS_IN_PATH"; then ac_cv_prog_HAVE_MCS_IN_PATH="$HAVE_MCS_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_MCS_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_MCS_IN_PATH=$ac_cv_prog_HAVE_MCS_IN_PATH if test -n "$HAVE_MCS_IN_PATH"; then : else : fi # Extract the first word of "csc", so it can be a program name with args. set dummy csc; ac_word=$2 : if ${ac_cv_prog_HAVE_CSC_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CSC_IN_PATH"; then ac_cv_prog_HAVE_CSC_IN_PATH="$HAVE_CSC_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_CSC_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_CSC_IN_PATH=$ac_cv_prog_HAVE_CSC_IN_PATH if test -n "$HAVE_CSC_IN_PATH"; then : else : fi for impl in "$CSHARP_CHOICE" pnet mono sscli no; do case "$impl" in pnet) if test -n "$HAVE_CSCC_IN_PATH" \ && cscc --version >/dev/null 2>/dev/null \ && ( # See if pnetlib is well installed. echo 'class ConfTest { static void Main() { } }' > conftest.cs cscc -o conftest.exe conftest.cs 2>/dev/null error=$? rm -f conftest.cs conftest.exe exit $error ); then HAVE_CSCC=1 ac_result="cscc" break fi ;; mono) if test -n "$HAVE_MCS_IN_PATH" \ && mcs --version >/dev/null 2>/dev/null \ && mcs --version 2>/dev/null | grep Mono >/dev/null; then HAVE_MCS=1 ac_result="mcs" break fi ;; sscli) if test -n "$HAVE_CSC_IN_PATH" \ && csc -help >/dev/null 2>/dev/null \ && { if csc -help 2>/dev/null | grep -i chicken > /dev/null; then false; else true; fi; }; then HAVE_CSC=1 ac_result="csc" break fi ;; no) HAVE_CSHARPCOMP= ac_result="no" break ;; esac done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_result" >&5 $as_echo "$ac_result" >&6; } if test -z "${CSHARPCOMPFLAGS+set}"; then CSHARPCOMPFLAGS="-O -g" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5 $as_echo_n "checking whether the preprocessor supports include_next... " >&6; } if ${gl_cv_have_include_next+:} false; then : $as_echo_n "(cached) " >&6 else rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 cat < conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=yes else CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_have_include_next=buggy else gl_cv_have_include_next=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_include_next" >&5 $as_echo "$gl_cv_have_include_next" >&6; } PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5 $as_echo_n "checking whether system header files limit the line length... " >&6; } if ${gl_cv_pragma_columns+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __TANDEM choke me #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "choke me" >/dev/null 2>&1; then : gl_cv_pragma_columns=yes else gl_cv_pragma_columns=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5 $as_echo "$gl_cv_pragma_columns" >&6; } if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5 $as_echo_n "checking for complete errno.h... " >&6; } if ${gl_cv_header_errno_h_complete+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "booboo" >/dev/null 2>&1; then : gl_cv_header_errno_h_complete=no else gl_cv_header_errno_h_complete=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_complete" >&5 $as_echo "$gl_cv_header_errno_h_complete" >&6; } if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else if test $gl_cv_have_include_next = yes; then gl_cv_next_errno_h='<'errno.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_errno_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'errno.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_errno_h" >&5 $as_echo "$gl_cv_next_errno_h" >&6; } fi NEXT_ERRNO_H=$gl_cv_next_errno_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'errno.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_errno_h fi NEXT_AS_FIRST_DIRECTIVE_ERRNO_H=$gl_next_as_first_directive ERRNO_H='errno.h' fi if test -n "$ERRNO_H"; then GL_GENERATE_ERRNO_H_TRUE= GL_GENERATE_ERRNO_H_FALSE='#' else GL_GENERATE_ERRNO_H_TRUE='#' GL_GENERATE_ERRNO_H_FALSE= fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5 $as_echo_n "checking for EMULTIHOP value... " >&6; } if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=yes else gl_cv_header_errno_h_EMULTIHOP=no fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EMULTIHOP yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EMULTIHOP=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EMULTIHOP" >&5 $as_echo "$gl_cv_header_errno_h_EMULTIHOP" >&6; } case $gl_cv_header_errno_h_EMULTIHOP in yes | no) EMULTIHOP_HIDDEN=0; EMULTIHOP_VALUE= ;; *) EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5 $as_echo_n "checking for ENOLINK value... " >&6; } if ${gl_cv_header_errno_h_ENOLINK+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=yes else gl_cv_header_errno_h_ENOLINK=no fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef ENOLINK yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_ENOLINK=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_ENOLINK = hidden; then if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_ENOLINK" >&5 $as_echo "$gl_cv_header_errno_h_ENOLINK" >&6; } case $gl_cv_header_errno_h_ENOLINK in yes | no) ENOLINK_HIDDEN=0; ENOLINK_VALUE= ;; *) ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK" ;; esac fi if test -n "$ERRNO_H"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5 $as_echo_n "checking for EOVERFLOW value... " >&6; } if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=yes else gl_cv_header_errno_h_EOVERFLOW=no fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef EOVERFLOW yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : gl_cv_header_errno_h_EOVERFLOW=hidden fi rm -f conftest* if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" " #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include "; then : fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_errno_h_EOVERFLOW" >&5 $as_echo "$gl_cv_header_errno_h_EOVERFLOW" >&6; } case $gl_cv_header_errno_h_EOVERFLOW in yes | no) EOVERFLOW_HIDDEN=0; EOVERFLOW_VALUE= ;; *) EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW" ;; esac fi ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" if test "x$ac_cv_have_decl_strerror_r" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_STRERROR_R $ac_have_decl _ACEOF for ac_func in strerror_r do : ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r" if test "x$ac_cv_func_strerror_r" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRERROR_R 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5 $as_echo_n "checking whether strerror_r returns char *... " >&6; } if ${ac_cv_func_strerror_r_char_p+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_func_strerror_r_char_p=no if test $ac_cv_have_decl_strerror_r = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); char *p = strerror_r (0, buf, sizeof buf); return !p || x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else # strerror_r is not declared. Choose between # systems that have relatively inaccessible declarations for the # function. BeOS and DEC UNIX 4.0 fall in this category, but the # former has a strerror_r that returns char*, while the latter # has a strerror_r that returns `int'. # This test should segfault on the DEC system. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default extern char *strerror_r (); int main () { char buf[100]; char x = *strerror_r (0, buf, sizeof buf); return ! isalpha (x); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_strerror_r_char_p=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5 $as_echo "$ac_cv_func_strerror_r_char_p" >&6; } if test $ac_cv_func_strerror_r_char_p = yes; then $as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h fi XGETTEXT_EXTRA_OPTIONS= GNULIB_CHDIR=0; GNULIB_CHOWN=0; GNULIB_CLOSE=0; GNULIB_DUP=0; GNULIB_DUP2=0; GNULIB_DUP3=0; GNULIB_ENVIRON=0; GNULIB_EUIDACCESS=0; GNULIB_FACCESSAT=0; GNULIB_FCHDIR=0; GNULIB_FCHOWNAT=0; GNULIB_FDATASYNC=0; GNULIB_FSYNC=0; GNULIB_FTRUNCATE=0; GNULIB_GETCWD=0; GNULIB_GETDOMAINNAME=0; GNULIB_GETDTABLESIZE=0; GNULIB_GETGROUPS=0; GNULIB_GETHOSTNAME=0; GNULIB_GETLOGIN=0; GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; GNULIB_GETUSERSHELL=0; GNULIB_GROUP_MEMBER=0; GNULIB_ISATTY=0; GNULIB_LCHOWN=0; GNULIB_LINK=0; GNULIB_LINKAT=0; GNULIB_LSEEK=0; GNULIB_PIPE=0; GNULIB_PIPE2=0; GNULIB_PREAD=0; GNULIB_PWRITE=0; GNULIB_READ=0; GNULIB_READLINK=0; GNULIB_READLINKAT=0; GNULIB_RMDIR=0; GNULIB_SETHOSTNAME=0; GNULIB_SLEEP=0; GNULIB_SYMLINK=0; GNULIB_SYMLINKAT=0; GNULIB_TTYNAME_R=0; GNULIB_UNISTD_H_NONBLOCKING=0; GNULIB_UNISTD_H_SIGPIPE=0; GNULIB_UNLINK=0; GNULIB_UNLINKAT=0; GNULIB_USLEEP=0; GNULIB_WRITE=0; HAVE_CHOWN=1; HAVE_DUP2=1; HAVE_DUP3=1; HAVE_EUIDACCESS=1; HAVE_FACCESSAT=1; HAVE_FCHDIR=1; HAVE_FCHOWNAT=1; HAVE_FDATASYNC=1; HAVE_FSYNC=1; HAVE_FTRUNCATE=1; HAVE_GETDTABLESIZE=1; HAVE_GETGROUPS=1; HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; HAVE_LINKAT=1; HAVE_PIPE=1; HAVE_PIPE2=1; HAVE_PREAD=1; HAVE_PWRITE=1; HAVE_READLINK=1; HAVE_READLINKAT=1; HAVE_SETHOSTNAME=1; HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; HAVE_DECL_FCHDIR=1; HAVE_DECL_FDATASYNC=1; HAVE_DECL_GETDOMAINNAME=1; HAVE_DECL_GETLOGIN_R=1; HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; REPLACE_CHOWN=0; REPLACE_CLOSE=0; REPLACE_DUP=0; REPLACE_DUP2=0; REPLACE_FCHOWNAT=0; REPLACE_FTRUNCATE=0; REPLACE_GETCWD=0; REPLACE_GETDOMAINNAME=0; REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; REPLACE_LINKAT=0; REPLACE_LSEEK=0; REPLACE_PREAD=0; REPLACE_PWRITE=0; REPLACE_READ=0; REPLACE_READLINK=0; REPLACE_RMDIR=0; REPLACE_SLEEP=0; REPLACE_SYMLINK=0; REPLACE_TTYNAME_R=0; REPLACE_UNLINK=0; REPLACE_UNLINKAT=0; REPLACE_USLEEP=0; REPLACE_WRITE=0; UNISTD_H_HAVE_WINSOCK2_H=0; UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; for ac_header in $ac_header_list do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $gl_cv_have_include_next = yes; then gl_cv_next_getopt_h='<'getopt.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_getopt_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_getopt_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'getopt.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_getopt_h='<'getopt.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_getopt_h" >&5 $as_echo "$gl_cv_next_getopt_h" >&6; } fi NEXT_GETOPT_H=$gl_cv_next_getopt_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'getopt.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_getopt_h fi NEXT_AS_FIRST_DIRECTIVE_GETOPT_H=$gl_next_as_first_directive if test $ac_cv_header_getopt_h = yes; then HAVE_GETOPT_H=1 else HAVE_GETOPT_H=0 fi gl_replace_getopt= if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_header in getopt.h do : ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default" if test "x$ac_cv_header_getopt_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_H 1 _ACEOF else gl_replace_getopt=yes fi done fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then for ac_func in getopt_long_only do : ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only" if test "x$ac_cv_func_getopt_long_only" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_GETOPT_LONG_ONLY 1 _ACEOF else gl_replace_getopt=yes fi done fi if test -z "$gl_replace_getopt"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5 $as_echo_n "checking whether getopt is POSIX compatible... " >&6; } if ${gl_cv_func_getopt_posix+:} false; then : $as_echo_n "(cached) " >&6 else if test $cross_compiling = no; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static char program[] = "program"; static char a[] = "-a"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, a, foo, bar, NULL }; int c; c = getopt (4, argv, "ab"); if (!(c == 'a')) return 1; c = getopt (4, argv, "ab"); if (!(c == -1)) return 2; if (!(optind == 2)) return 3; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=maybe else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi if test $gl_cv_func_getopt_posix = maybe; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static char program[] = "program"; static char donald[] = "donald"; static char p[] = "-p"; static char billy[] = "billy"; static char duck[] = "duck"; static char a[] = "-a"; static char bar[] = "bar"; char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; int c; c = getopt (7, argv, "+abp:q:"); if (!(c == -1)) return 4; if (!(strcmp (argv[0], "program") == 0)) return 5; if (!(strcmp (argv[1], "donald") == 0)) return 6; if (!(strcmp (argv[2], "-p") == 0)) return 7; if (!(strcmp (argv[3], "billy") == 0)) return 8; if (!(strcmp (argv[4], "duck") == 0)) return 9; if (!(strcmp (argv[5], "-a") == 0)) return 10; if (!(strcmp (argv[6], "bar") == 0)) return 11; if (!(optind == 1)) return 12; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=maybe else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi if test $gl_cv_func_getopt_posix = maybe; then if test "$cross_compiling" = yes; then : { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run test program while cross compiling See \`config.log' for more details" "$LINENO" 5; } else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static char program[] = "program"; static char ab[] = "-ab"; char *argv[3] = { program, ab, NULL }; if (getopt (2, argv, "ab:") != 'a') return 13; if (getopt (2, argv, "ab:") != '?') return 14; if (optopt != 'b') return 15; if (optind != 2) return 16; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_posix=yes else gl_cv_func_getopt_posix=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi else case "$host_os" in darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; *) gl_cv_func_getopt_posix="guessing yes";; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_posix" >&5 $as_echo "$gl_cv_func_getopt_posix" >&6; } case "$gl_cv_func_getopt_posix" in *no) gl_replace_getopt=yes ;; esac fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5 $as_echo_n "checking for working GNU getopt function... " >&6; } if ${gl_cv_func_getopt_gnu+:} false; then : $as_echo_n "(cached) " >&6 else # Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the # optstring is necessary for programs like m4 that have POSIX-mandated # semantics for supporting options interspersed with files. # Also, since getopt_long is a GNU extension, we require optind=0. # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; # so take care to revert to the correct (non-)export state. gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include #include #include #include #include #include /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include #include static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif int main () { int result = 0; nocrash_init(); /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10. */ { static char conftest[] = "conftest"; static char plus[] = "-+"; char *argv[3] = { conftest, plus, NULL }; opterr = 0; if (getopt (2, argv, "+a") != '?') result |= 1; } /* This code succeeds on glibc 2.8, mingw, and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ { static char program[] = "program"; static char p[] = "-p"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, p, foo, bar, NULL }; optind = 1; if (getopt (4, argv, "p::") != 'p') result |= 2; else if (optarg != NULL) result |= 4; else if (getopt (4, argv, "p::") != -1) result |= 6; else if (optind != 2) result |= 8; } /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ { static char program[] = "program"; static char foo[] = "foo"; static char p[] = "-p"; char *argv[] = { program, foo, p, NULL }; optind = 0; if (getopt (3, argv, "-p") != 1) result |= 16; else if (getopt (3, argv, "-p") != 'p') result |= 16; } /* This code fails on glibc 2.11. */ { static char program[] = "program"; static char b[] = "-b"; static char a[] = "-a"; char *argv[] = { program, b, a, NULL }; optind = opterr = 0; if (getopt (3, argv, "+:a:b") != 'b') result |= 32; else if (getopt (3, argv, "+:a:b") != ':') result |= 32; } /* This code dumps core on glibc 2.14. */ { static char program[] = "program"; static char w[] = "-W"; static char dummy[] = "dummy"; char *argv[] = { program, w, dummy, NULL }; optind = opterr = 1; if (getopt (3, argv, "W;") != 'W') result |= 64; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_gnu=yes else gl_cv_func_getopt_gnu=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi case $gl_had_POSIXLY_CORRECT in exported) ;; yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;; *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_gnu" >&5 $as_echo "$gl_cv_func_getopt_gnu" >&6; } if test "$gl_cv_func_getopt_gnu" != yes; then gl_replace_getopt=yes else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working GNU getopt_long function" >&5 $as_echo_n "checking for working GNU getopt_long function... " >&6; } if ${gl_cv_func_getopt_long_gnu+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; *) gl_cv_func_getopt_long_gnu="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { static const struct option long_options[] = { { "xtremely-",no_argument, NULL, 1003 }, { "xtra", no_argument, NULL, 1001 }, { "xtreme", no_argument, NULL, 1002 }, { "xtremely", no_argument, NULL, 1003 }, { NULL, 0, NULL, 0 } }; /* This code fails on OpenBSD 5.0. */ { static char program[] = "program"; static char xtremel[] = "--xtremel"; char *argv[] = { program, xtremel, NULL }; int option_index; optind = 1; opterr = 0; if (getopt_long (2, argv, "", long_options, &option_index) != 1003) return 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getopt_long_gnu=yes else gl_cv_func_getopt_long_gnu=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getopt_long_gnu" >&5 $as_echo "$gl_cv_func_getopt_long_gnu" >&6; } case "$gl_cv_func_getopt_long_gnu" in *yes) ;; *) gl_replace_getopt=yes ;; esac fi fi REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi if test $REPLACE_GETOPT = 1; then GETOPT_H=getopt.h $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h fi ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default" if test "x$ac_cv_have_decl_getenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_GETENV $ac_have_decl _ACEOF for ac_func in $ac_func_list do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done REPLACE_NULL=0; HAVE_WCHAR_T=1; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5 $as_echo_n "checking for wchar_t... " >&6; } if ${gt_cv_c_wchar_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include wchar_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wchar_t=yes else gt_cv_c_wchar_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5 $as_echo "$gt_cv_c_wchar_t" >&6; } if test $gt_cv_c_wchar_t = yes; then $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h fi GNULIB_FFSL=0; GNULIB_FFSLL=0; GNULIB_MEMCHR=0; GNULIB_MEMMEM=0; GNULIB_MEMPCPY=0; GNULIB_MEMRCHR=0; GNULIB_RAWMEMCHR=0; GNULIB_STPCPY=0; GNULIB_STPNCPY=0; GNULIB_STRCHRNUL=0; GNULIB_STRDUP=0; GNULIB_STRNCAT=0; GNULIB_STRNDUP=0; GNULIB_STRNLEN=0; GNULIB_STRPBRK=0; GNULIB_STRSEP=0; GNULIB_STRSTR=0; GNULIB_STRCASESTR=0; GNULIB_STRTOK_R=0; GNULIB_MBSLEN=0; GNULIB_MBSNLEN=0; GNULIB_MBSCHR=0; GNULIB_MBSRCHR=0; GNULIB_MBSSTR=0; GNULIB_MBSCASECMP=0; GNULIB_MBSNCASECMP=0; GNULIB_MBSPCASECMP=0; GNULIB_MBSCASESTR=0; GNULIB_MBSCSPN=0; GNULIB_MBSPBRK=0; GNULIB_MBSSPN=0; GNULIB_MBSSEP=0; GNULIB_MBSTOK_R=0; GNULIB_STRERROR=0; GNULIB_STRERROR_R=0; GNULIB_STRSIGNAL=0; GNULIB_STRVERSCMP=0; HAVE_MBSLEN=0; HAVE_FFSL=1; HAVE_FFSLL=1; HAVE_MEMCHR=1; HAVE_DECL_MEMMEM=1; HAVE_MEMPCPY=1; HAVE_DECL_MEMRCHR=1; HAVE_RAWMEMCHR=1; HAVE_STPCPY=1; HAVE_STPNCPY=1; HAVE_STRCHRNUL=1; HAVE_DECL_STRDUP=1; HAVE_DECL_STRNDUP=1; HAVE_DECL_STRNLEN=1; HAVE_STRPBRK=1; HAVE_STRSEP=1; HAVE_STRCASESTR=1; HAVE_DECL_STRTOK_R=1; HAVE_DECL_STRERROR_R=1; HAVE_DECL_STRSIGNAL=1; HAVE_STRVERSCMP=1; REPLACE_MEMCHR=0; REPLACE_MEMMEM=0; REPLACE_STPNCPY=0; REPLACE_STRDUP=0; REPLACE_STRSTR=0; REPLACE_STRCASESTR=0; REPLACE_STRCHRNUL=0; REPLACE_STRERROR=0; REPLACE_STRERROR_R=0; REPLACE_STRNCAT=0; REPLACE_STRNDUP=0; REPLACE_STRNLEN=0; REPLACE_STRSIGNAL=0; REPLACE_STRTOK_R=0; UNDEFINE_STRTOK_R=0; REPLACE_STRERROR_0=0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5 $as_echo_n "checking whether strerror(0) succeeds... " >&6; } if ${gl_cv_func_strerror_0_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_strerror_0_works=yes else gl_cv_func_strerror_0_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5 $as_echo "$gl_cv_func_strerror_0_works" >&6; } case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 $as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 $as_echo_n "checking for C/C++ restrict keyword... " >&6; } if ${ac_cv_c_restrict+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int * int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; } int main () { int s[1]; int * $ac_kw t = s; t[0] = 0; return foo(t) ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_restrict=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_restrict" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 $as_echo "$ac_cv_c_restrict" >&6; } case $ac_cv_c_restrict in restrict) ;; no) $as_echo "#define restrict /**/" >>confdefs.h ;; *) cat >>confdefs.h <<_ACEOF #define restrict $ac_cv_c_restrict _ACEOF ;; esac if test $gl_cv_have_include_next = yes; then gl_cv_next_string_h='<'string.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_string_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'string.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_string_h" >&5 $as_echo "$gl_cv_next_string_h" >&6; } fi NEXT_STRING_H=$gl_cv_next_string_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'string.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_string_h fi NEXT_AS_FIRST_DIRECTIVE_STRING_H=$gl_next_as_first_directive for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" if test "x$ac_cv_type_pid_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define pid_t int _ACEOF fi ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default" if test "x$ac_cv_type_mode_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define mode_t int _ACEOF fi case "$host_os" in mingw*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit off_t" >&5 $as_echo_n "checking for 64-bit off_t... " >&6; } if ${gl_cv_type_off_t_64+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_type_off_t_64=yes else gl_cv_type_off_t_64=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_off_t_64" >&5 $as_echo "$gl_cv_type_off_t_64" >&6; } if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi WINDOWS_64_BIT_ST_SIZE=1 ;; *) WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_types_h='<'sys/types.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_types_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/types.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5 $as_echo "$gl_cv_next_sys_types_h" >&6; } fi NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/types.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_types_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 $as_echo_n "checking for working alloca.h... " >&6; } if ${ac_cv_working_alloca_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_working_alloca_h=yes else ac_cv_working_alloca_h=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 $as_echo "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then $as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 $as_echo_n "checking for alloca... " >&6; } if ${ac_cv_func_alloca_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # define alloca __builtin_alloca #else # ifdef _MSC_VER # include # define alloca _alloca # else # ifdef HAVE_ALLOCA_H # include # else # ifdef _AIX #pragma alloca # else # ifndef alloca /* predefined by HP cc +Olibcalls */ void *alloca (size_t); # endif # endif # endif # endif #endif int main () { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_func_alloca_works=yes else ac_cv_func_alloca_works=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 $as_echo "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext $as_echo "#define C_ALLOCA 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5 $as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; } if ${ac_cv_os_cray+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "webecray" >/dev/null 2>&1; then : ac_cv_os_cray=yes else ac_cv_os_cray=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5 $as_echo "$ac_cv_os_cray" >&6; } if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define CRAY_STACKSEG_END $ac_func _ACEOF break fi done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 $as_echo_n "checking stack direction for C alloca... " >&6; } if ${ac_cv_c_stack_direction+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : ac_cv_c_stack_direction=0 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_c_stack_direction=1 else ac_cv_c_stack_direction=-1 fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 $as_echo "$ac_cv_c_stack_direction" >&6; } cat >>confdefs.h <<_ACEOF #define STACK_DIRECTION $ac_cv_c_stack_direction _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5 $as_echo_n "checking if environ is properly declared... " >&6; } if ${gt_cv_var_environ_declaration+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H #include #endif /* mingw, BeOS, Haiku declare environ in , not in . */ #include extern struct { int foo; } environ; int main () { environ.foo = 1; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_var_environ_declaration=no else gt_cv_var_environ_declaration=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_var_environ_declaration" >&5 $as_echo "$gt_cv_var_environ_declaration" >&6; } if test $gt_cv_var_environ_declaration = yes; then $as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h fi if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi GNULIB_FCNTL=0; GNULIB_NONBLOCKING=0; GNULIB_OPEN=0; GNULIB_OPENAT=0; HAVE_FCNTL=1; HAVE_OPENAT=1; REPLACE_FCNTL=0; REPLACE_OPEN=0; REPLACE_OPENAT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5 $as_echo_n "checking for working fcntl.h... " >&6; } if ${gl_cv_header_working_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : gl_cv_header_working_fcntl_h=cross-compiling else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_UNISTD_H # include #else /* on Windows with MSVC */ # include # include # defined sleep(n) _sleep ((n) * 1000) #endif #include #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; int main () { int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_fcntl_h=yes else case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_fcntl_h" >&5 $as_echo "$gl_cv_header_working_fcntl_h" >&6; } case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOATIME $ac_val _ACEOF case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac cat >>confdefs.h <<_ACEOF #define HAVE_WORKING_O_NOFOLLOW $ac_val _ACEOF GNULIB_DPRINTF=0; GNULIB_FCLOSE=0; GNULIB_FDOPEN=0; GNULIB_FFLUSH=0; GNULIB_FGETC=0; GNULIB_FGETS=0; GNULIB_FOPEN=0; GNULIB_FPRINTF=0; GNULIB_FPRINTF_POSIX=0; GNULIB_FPURGE=0; GNULIB_FPUTC=0; GNULIB_FPUTS=0; GNULIB_FREAD=0; GNULIB_FREOPEN=0; GNULIB_FSCANF=0; GNULIB_FSEEK=0; GNULIB_FSEEKO=0; GNULIB_FTELL=0; GNULIB_FTELLO=0; GNULIB_FWRITE=0; GNULIB_GETC=0; GNULIB_GETCHAR=0; GNULIB_GETDELIM=0; GNULIB_GETLINE=0; GNULIB_OBSTACK_PRINTF=0; GNULIB_OBSTACK_PRINTF_POSIX=0; GNULIB_PCLOSE=0; GNULIB_PERROR=0; GNULIB_POPEN=0; GNULIB_PRINTF=0; GNULIB_PRINTF_POSIX=0; GNULIB_PUTC=0; GNULIB_PUTCHAR=0; GNULIB_PUTS=0; GNULIB_REMOVE=0; GNULIB_RENAME=0; GNULIB_RENAMEAT=0; GNULIB_SCANF=0; GNULIB_SNPRINTF=0; GNULIB_SPRINTF_POSIX=0; GNULIB_STDIO_H_NONBLOCKING=0; GNULIB_STDIO_H_SIGPIPE=0; GNULIB_TMPFILE=0; GNULIB_VASPRINTF=0; GNULIB_VFSCANF=0; GNULIB_VSCANF=0; GNULIB_VDPRINTF=0; GNULIB_VFPRINTF=0; GNULIB_VFPRINTF_POSIX=0; GNULIB_VPRINTF=0; GNULIB_VPRINTF_POSIX=0; GNULIB_VSNPRINTF=0; GNULIB_VSPRINTF_POSIX=0; HAVE_DECL_FPURGE=1; HAVE_DECL_FSEEKO=1; HAVE_DECL_FTELLO=1; HAVE_DECL_GETDELIM=1; HAVE_DECL_GETLINE=1; HAVE_DECL_OBSTACK_PRINTF=1; HAVE_DECL_SNPRINTF=1; HAVE_DECL_VSNPRINTF=1; HAVE_DPRINTF=1; HAVE_FSEEKO=1; HAVE_FTELLO=1; HAVE_PCLOSE=1; HAVE_POPEN=1; HAVE_RENAMEAT=1; HAVE_VASPRINTF=1; HAVE_VDPRINTF=1; REPLACE_DPRINTF=0; REPLACE_FCLOSE=0; REPLACE_FDOPEN=0; REPLACE_FFLUSH=0; REPLACE_FOPEN=0; REPLACE_FPRINTF=0; REPLACE_FPURGE=0; REPLACE_FREOPEN=0; REPLACE_FSEEK=0; REPLACE_FSEEKO=0; REPLACE_FTELL=0; REPLACE_FTELLO=0; REPLACE_GETDELIM=0; REPLACE_GETLINE=0; REPLACE_OBSTACK_PRINTF=0; REPLACE_PERROR=0; REPLACE_POPEN=0; REPLACE_PRINTF=0; REPLACE_REMOVE=0; REPLACE_RENAME=0; REPLACE_RENAMEAT=0; REPLACE_SNPRINTF=0; REPLACE_SPRINTF=0; REPLACE_STDIO_READ_FUNCS=0; REPLACE_STDIO_WRITE_FUNCS=0; REPLACE_TMPFILE=0; REPLACE_VASPRINTF=0; REPLACE_VDPRINTF=0; REPLACE_VFPRINTF=0; REPLACE_VPRINTF=0; REPLACE_VSNPRINTF=0; REPLACE_VSPRINTF=0; GNULIB_FCHMODAT=0; GNULIB_FSTAT=0; GNULIB_FSTATAT=0; GNULIB_FUTIMENS=0; GNULIB_LCHMOD=0; GNULIB_LSTAT=0; GNULIB_MKDIRAT=0; GNULIB_MKFIFO=0; GNULIB_MKFIFOAT=0; GNULIB_MKNOD=0; GNULIB_MKNODAT=0; GNULIB_STAT=0; GNULIB_UTIMENSAT=0; HAVE_FCHMODAT=1; HAVE_FSTATAT=1; HAVE_FUTIMENS=1; HAVE_LCHMOD=1; HAVE_LSTAT=1; HAVE_MKDIRAT=1; HAVE_MKFIFO=1; HAVE_MKFIFOAT=1; HAVE_MKNOD=1; HAVE_MKNODAT=1; HAVE_UTIMENSAT=1; REPLACE_FSTAT=0; REPLACE_FSTATAT=0; REPLACE_FUTIMENS=0; REPLACE_LSTAT=0; REPLACE_MKDIR=0; REPLACE_MKFIFO=0; REPLACE_MKNOD=0; REPLACE_STAT=0; REPLACE_UTIMENSAT=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5 $as_echo_n "checking whether stat file-mode macros are broken... " >&6; } if ${ac_cv_header_stat_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if defined S_ISBLK && defined S_IFDIR extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1]; #endif #if defined S_ISBLK && defined S_IFCHR extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1]; #endif #if defined S_ISLNK && defined S_IFREG extern char c3[S_ISLNK (S_IFREG) ? -1 : 1]; #endif #if defined S_ISSOCK && defined S_IFREG extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1]; #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stat_broken=no else ac_cv_header_stat_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stat_broken" >&5 $as_echo "$ac_cv_header_stat_broken" >&6; } if test $ac_cv_header_stat_broken = yes; then $as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h fi if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive if test $WINDOWS_64_BIT_ST_SIZE = 1; then $as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd (NULL, 0) allocates memory for result" >&5 $as_echo_n "checking whether getcwd (NULL, 0) allocates memory for result... " >&6; } if ${gl_cv_func_getcwd_null+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_getcwd_null="guessing no";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ # if HAVE_UNISTD_H # include # else /* on Windows with MSVC */ # include # endif # ifndef getcwd char *getcwd (); # endif int main () { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but getcwd does allocate. However, mingw fails to honor non-zero size. */ #else if (chdir ("/") != 0) return 1; else { char *f = getcwd (NULL, 0); if (! f) return 2; if (f[0] != '/') return 3; if (f[1] != '\0') return 4; return 0; } #endif ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_getcwd_null=yes else gl_cv_func_getcwd_null=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5 $as_echo "$gl_cv_func_getcwd_null" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5 $as_echo_n "checking for getcwd with POSIX signature... " >&6; } if ${gl_cv_func_getcwd_posix_signature+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { extern #ifdef __cplusplus "C" #endif char *getcwd (char *, size_t); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_getcwd_posix_signature=yes else gl_cv_func_getcwd_posix_signature=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5 $as_echo "$gl_cv_func_getcwd_posix_signature" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long int" >&5 $as_echo_n "checking for unsigned long long int... " >&6; } if ${ac_cv_type_unsigned_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63; int main () { /* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull)); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : else ac_cv_type_unsigned_long_long_int=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long_int" >&5 $as_echo "$ac_cv_type_unsigned_long_long_int" >&6; } if test $ac_cv_type_unsigned_long_long_int = yes; then $as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5 $as_echo_n "checking for long long int... " >&6; } if ${ac_cv_type_long_long_int+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef LLONG_MAX # define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) # define LLONG_MAX (HALF - 1 + HALF) #endif int main () { long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_type_long_long_int=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long_int" >&5 $as_echo "$ac_cv_type_long_long_int" >&6; } if test $ac_cv_type_long_long_int = yes; then $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h fi gl_cv_c_multiarch=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; _ACEOF if ac_fn_c_try_compile "$LINENO"; then : arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_stdint_h='<'stdint.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_stdint_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdint.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_stdint_h='<'stdint.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdint_h" >&5 $as_echo "$gl_cv_next_stdint_h" >&6; } fi NEXT_STDINT_H=$gl_cv_next_stdint_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdint.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdint_h fi NEXT_AS_FIRST_DIRECTIVE_STDINT_H=$gl_next_as_first_directive if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi if test $ac_cv_header_stdint_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5 $as_echo_n "checking whether stdint.h conforms to C99... " >&6; } if ${gl_cv_header_working_stdint_h+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_working_stdint_h=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in " #endif /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : if test "$cross_compiling" = yes; then : gl_cv_header_working_stdint_h=yes else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include #include #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; int main () { const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_header_working_stdint_h=yes fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdint_h" >&5 $as_echo "$gl_cv_header_working_stdint_h" >&6; } fi if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= else for ac_header in sys/inttypes.h sys/bitypes.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 else HAVE_SYS_INTTYPES_H=0 fi if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 else HAVE_SYS_BITYPES_H=0 fi if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5 $as_echo_n "checking for bit size of $gltype... " >&6; } if eval \${gl_cv_bitsizeof_${gltype}+:} false; then : $as_echo_n "(cached) " >&6 else if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" " /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif #include "; then : else result=unknown fi eval gl_cv_bitsizeof_${gltype}=\$result fi eval ac_res=\$gl_cv_bitsizeof_${gltype} { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` cat >>confdefs.h <<_ACEOF #define BITSIZEOF_${GLTYPE} $result _ACEOF eval BITSIZEOF_${GLTYPE}=\$result done for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5 $as_echo_n "checking whether $gltype is signed... " >&6; } if eval \${gl_cv_type_${gltype}_signed+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif int verify[2 * (($gltype) -1 < ($gltype) 0) - 1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : result=yes else result=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval gl_cv_type_${gltype}_signed=\$result fi eval ac_res=\$gl_cv_type_${gltype}_signed { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then cat >>confdefs.h <<_ACEOF #define HAVE_SIGNED_${GLTYPE} 1 _ACEOF eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then for gltype in ptrdiff_t size_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done fi for gltype in sig_atomic_t wchar_t wint_t ; do { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5 $as_echo_n "checking for $gltype integer literal suffix... " >&6; } if eval \${gl_cv_type_${gltype}_suffix+:} false; then : $as_echo_n "(cached) " >&6 else eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif extern $gltype foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval gl_cv_type_${gltype}_suffix=\$glsuf fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done fi eval ac_res=\$gl_cv_type_${gltype}_suffix { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result cat >>confdefs.h <<_ACEOF #define ${GLTYPE}_SUFFIX $result _ACEOF done if test $BITSIZEOF_WINT_T -lt 32; then BITSIZEOF_WINT_T=32 fi STDINT_H=stdint.h fi if test -n "$STDINT_H"; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' else GL_GENERATE_STDINT_H_TRUE='#' GL_GENERATE_STDINT_H_FALSE= fi GNULIB_IMAXABS=0; GNULIB_IMAXDIV=0; GNULIB_STRTOIMAX=0; GNULIB_STRTOUMAX=0; HAVE_DECL_IMAXABS=1; HAVE_DECL_IMAXDIV=1; HAVE_DECL_STRTOIMAX=1; HAVE_DECL_STRTOUMAX=1; REPLACE_STRTOIMAX=0; INT32_MAX_LT_INTMAX_MAX=1; INT64_MAX_EQ_LONG_MAX='defined _LP64'; PRI_MACROS_BROKEN=0; PRIPTR_PREFIX=__PRIPTR_PREFIX; UINT32_MAX_LT_UINTMAX_MAX=1; UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; if test $gl_cv_have_include_next = yes; then gl_cv_next_inttypes_h='<'inttypes.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_inttypes_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_inttypes_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'inttypes.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_inttypes_h='<'inttypes.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_inttypes_h" >&5 $as_echo "$gl_cv_next_inttypes_h" >&6; } fi NEXT_INTTYPES_H=$gl_cv_next_inttypes_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'inttypes.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_inttypes_h fi NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H=$gl_next_as_first_directive for gl_func in imaxabs imaxdiv strtoimax strtoumax; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done for ac_header in inttypes.h do : ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default" if test "x$ac_cv_header_inttypes_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_INTTYPES_H 1 _ACEOF fi done if test $ac_cv_header_inttypes_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5 $as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; } if ${gt_cv_inttypes_pri_broken+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef PRId32 char *p = PRId32; #endif int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_inttypes_pri_broken=no else gt_cv_inttypes_pri_broken=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5 $as_echo "$gt_cv_inttypes_pri_broken" >&6; } fi if test "$gt_cv_inttypes_pri_broken" = yes; then cat >>confdefs.h <<_ACEOF #define PRI_MACROS_BROKEN 1 _ACEOF PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5 $as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; } if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; then : $as_echo_n "(cached) " >&6 else rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_lstat_dereferences_slashed_symlink=yes else gl_cv_func_lstat_dereferences_slashed_symlink=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi else # If the 'ln -s' command failed, then we probably don't even # have an lstat function. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" fi rm -f conftest.sym conftest.file fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5 $as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; } case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) cat >>confdefs.h <<_ACEOF #define LSTAT_FOLLOWS_SLASHED_SYMLINK 1 _ACEOF ;; esac GNULIB__EXIT=0; GNULIB_ATOLL=0; GNULIB_CALLOC_POSIX=0; GNULIB_CANONICALIZE_FILE_NAME=0; GNULIB_GETLOADAVG=0; GNULIB_GETSUBOPT=0; GNULIB_GRANTPT=0; GNULIB_MALLOC_POSIX=0; GNULIB_MBTOWC=0; GNULIB_MKDTEMP=0; GNULIB_MKOSTEMP=0; GNULIB_MKOSTEMPS=0; GNULIB_MKSTEMP=0; GNULIB_MKSTEMPS=0; GNULIB_POSIX_OPENPT=0; GNULIB_PTSNAME=0; GNULIB_PTSNAME_R=0; GNULIB_PUTENV=0; GNULIB_RANDOM=0; GNULIB_RANDOM_R=0; GNULIB_REALLOC_POSIX=0; GNULIB_REALPATH=0; GNULIB_RPMATCH=0; GNULIB_SECURE_GETENV=0; GNULIB_SETENV=0; GNULIB_STRTOD=0; GNULIB_STRTOLL=0; GNULIB_STRTOULL=0; GNULIB_SYSTEM_POSIX=0; GNULIB_UNLOCKPT=0; GNULIB_UNSETENV=0; GNULIB_WCTOMB=0; HAVE__EXIT=1; HAVE_ATOLL=1; HAVE_CANONICALIZE_FILE_NAME=1; HAVE_DECL_GETLOADAVG=1; HAVE_GETSUBOPT=1; HAVE_GRANTPT=1; HAVE_MKDTEMP=1; HAVE_MKOSTEMP=1; HAVE_MKOSTEMPS=1; HAVE_MKSTEMP=1; HAVE_MKSTEMPS=1; HAVE_POSIX_OPENPT=1; HAVE_PTSNAME=1; HAVE_PTSNAME_R=1; HAVE_RANDOM=1; HAVE_RANDOM_H=1; HAVE_RANDOM_R=1; HAVE_REALPATH=1; HAVE_RPMATCH=1; HAVE_SECURE_GETENV=1; HAVE_SETENV=1; HAVE_DECL_SETENV=1; HAVE_STRTOD=1; HAVE_STRTOLL=1; HAVE_STRTOULL=1; HAVE_STRUCT_RANDOM_DATA=1; HAVE_SYS_LOADAVG_H=0; HAVE_UNLOCKPT=1; HAVE_DECL_UNSETENV=1; REPLACE_CALLOC=0; REPLACE_CANONICALIZE_FILE_NAME=0; REPLACE_MALLOC=0; REPLACE_MBTOWC=0; REPLACE_MKSTEMP=0; REPLACE_PTSNAME=0; REPLACE_PTSNAME_R=0; REPLACE_PUTENV=0; REPLACE_RANDOM_R=0; REPLACE_REALLOC=0; REPLACE_REALPATH=0; REPLACE_SETENV=0; REPLACE_STRTOD=0; REPLACE_UNSETENV=0; REPLACE_WCTOMB=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5 $as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; } if ${gl_cv_func_malloc_posix+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_malloc_posix=yes else gl_cv_func_malloc_posix=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5 $as_echo "$gl_cv_func_malloc_posix" >&6; } for ac_header in stdlib.h do : ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STDLIB_H 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5 $as_echo_n "checking for GNU libc compatible malloc... " >&6; } if ${ac_cv_func_malloc_0_nonnull+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif int main () { return ! malloc (0); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : ac_cv_func_malloc_0_nonnull=yes else ac_cv_func_malloc_0_nonnull=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5 $as_echo "$ac_cv_func_malloc_0_nonnull" >&6; } if test $ac_cv_func_malloc_0_nonnull = yes; then : gl_cv_func_malloc_0_nonnull=1 else gl_cv_func_malloc_0_nonnull=0 fi cat >>confdefs.h <<_ACEOF #define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5 $as_echo_n "checking for promoted mode_t type... " >&6; } if ${gl_cv_promoted_mode_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_promoted_mode_t='int' else gl_cv_promoted_mode_t='mode_t' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_promoted_mode_t" >&5 $as_echo "$gl_cv_promoted_mode_t" >&6; } cat >>confdefs.h <<_ACEOF #define PROMOTED_MODE_T $gl_cv_promoted_mode_t _ACEOF ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default" if test "x$ac_cv_have_decl_setenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_SETENV $ac_have_decl _ACEOF if test $ac_cv_have_decl_setenv = no; then HAVE_DECL_SETENV=0 fi for ac_header in search.h do : ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default" if test "x$ac_cv_header_search_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SEARCH_H 1 _ACEOF fi done for ac_func in tsearch do : ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch" if test "x$ac_cv_func_tsearch" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_TSEARCH 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5 $as_echo_n "checking for wint_t... " >&6; } if ${gt_cv_c_wint_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include wint_t foo = (wchar_t)'\0'; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_c_wint_t=yes else gt_cv_c_wint_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5 $as_echo "$gt_cv_c_wint_t" >&6; } if test $gt_cv_c_wint_t = yes; then $as_echo "#define HAVE_WINT_T 1" >>confdefs.h fi GNULIB_MKTIME=0; GNULIB_NANOSLEEP=0; GNULIB_STRPTIME=0; GNULIB_TIMEGM=0; GNULIB_TIME_R=0; HAVE_DECL_LOCALTIME_R=1; HAVE_NANOSLEEP=1; HAVE_STRPTIME=1; HAVE_TIMEGM=1; REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; REPLACE_MKTIME=GNULIB_PORTCHECK; REPLACE_NANOSLEEP=GNULIB_PORTCHECK; REPLACE_TIMEGM=GNULIB_PORTCHECK; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_time_h=yes else gl_cv_sys_struct_timespec_in_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_time_h" >&6; } TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_sys_time_h=yes else gl_cv_sys_struct_timespec_in_sys_time_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_sys_time_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_sys_time_h" >&6; } if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in " >&5 $as_echo_n "checking for struct timespec in ... " >&6; } if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { static struct timespec x; x.tv_sec = x.tv_nsec; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_timespec_in_pthread_h=yes else gl_cv_sys_struct_timespec_in_pthread_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5 $as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; } if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_time_h='<'time.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_time_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'time.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_time_h" >&5 $as_echo "$gl_cv_next_time_h" >&6; } fi NEXT_TIME_H=$gl_cv_next_time_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'time.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_time_h fi NEXT_AS_FIRST_DIRECTIVE_TIME_H=$gl_next_as_first_directive ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default" if test "x$ac_cv_have_decl_unsetenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_UNSETENV $ac_have_decl _ACEOF GNULIB_BTOWC=0; GNULIB_WCTOB=0; GNULIB_MBSINIT=0; GNULIB_MBRTOWC=0; GNULIB_MBRLEN=0; GNULIB_MBSRTOWCS=0; GNULIB_MBSNRTOWCS=0; GNULIB_WCRTOMB=0; GNULIB_WCSRTOMBS=0; GNULIB_WCSNRTOMBS=0; GNULIB_WCWIDTH=0; GNULIB_WMEMCHR=0; GNULIB_WMEMCMP=0; GNULIB_WMEMCPY=0; GNULIB_WMEMMOVE=0; GNULIB_WMEMSET=0; GNULIB_WCSLEN=0; GNULIB_WCSNLEN=0; GNULIB_WCSCPY=0; GNULIB_WCPCPY=0; GNULIB_WCSNCPY=0; GNULIB_WCPNCPY=0; GNULIB_WCSCAT=0; GNULIB_WCSNCAT=0; GNULIB_WCSCMP=0; GNULIB_WCSNCMP=0; GNULIB_WCSCASECMP=0; GNULIB_WCSNCASECMP=0; GNULIB_WCSCOLL=0; GNULIB_WCSXFRM=0; GNULIB_WCSDUP=0; GNULIB_WCSCHR=0; GNULIB_WCSRCHR=0; GNULIB_WCSCSPN=0; GNULIB_WCSSPN=0; GNULIB_WCSPBRK=0; GNULIB_WCSSTR=0; GNULIB_WCSTOK=0; GNULIB_WCSWIDTH=0; HAVE_BTOWC=1; HAVE_MBSINIT=1; HAVE_MBRTOWC=1; HAVE_MBRLEN=1; HAVE_MBSRTOWCS=1; HAVE_MBSNRTOWCS=1; HAVE_WCRTOMB=1; HAVE_WCSRTOMBS=1; HAVE_WCSNRTOMBS=1; HAVE_WMEMCHR=1; HAVE_WMEMCMP=1; HAVE_WMEMCPY=1; HAVE_WMEMMOVE=1; HAVE_WMEMSET=1; HAVE_WCSLEN=1; HAVE_WCSNLEN=1; HAVE_WCSCPY=1; HAVE_WCPCPY=1; HAVE_WCSNCPY=1; HAVE_WCPNCPY=1; HAVE_WCSCAT=1; HAVE_WCSNCAT=1; HAVE_WCSCMP=1; HAVE_WCSNCMP=1; HAVE_WCSCASECMP=1; HAVE_WCSNCASECMP=1; HAVE_WCSCOLL=1; HAVE_WCSXFRM=1; HAVE_WCSDUP=1; HAVE_WCSCHR=1; HAVE_WCSRCHR=1; HAVE_WCSCSPN=1; HAVE_WCSSPN=1; HAVE_WCSPBRK=1; HAVE_WCSSTR=1; HAVE_WCSTOK=1; HAVE_WCSWIDTH=1; HAVE_DECL_WCTOB=1; HAVE_DECL_WCWIDTH=1; REPLACE_MBSTATE_T=0; REPLACE_BTOWC=0; REPLACE_WCTOB=0; REPLACE_MBSINIT=0; REPLACE_MBRTOWC=0; REPLACE_MBRLEN=0; REPLACE_MBSRTOWCS=0; REPLACE_MBSNRTOWCS=0; REPLACE_WCRTOMB=0; REPLACE_WCSRTOMBS=0; REPLACE_WCSNRTOMBS=0; REPLACE_WCWIDTH=0; REPLACE_WCSWIDTH=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether uses 'inline' correctly" >&5 $as_echo_n "checking whether uses 'inline' correctly... " >&6; } if ${gl_cv_header_wchar_h_correct_inline+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_header_wchar_h_correct_inline=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include extern int zero (void); int main () { return zero(); } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then mv conftest.$ac_objext conftest1.$ac_objext cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int zero (void) { return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then mv conftest.$ac_objext conftest2.$ac_objext if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&5 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 $as_echo "$gl_cv_header_wchar_h_correct_inline" >&6; } if test $gl_cv_header_wchar_h_correct_inline = no; then as_fn_error $? " cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted." "$LINENO" 5 fi if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi if true; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=true gl_m4_base='gl/m4' gl_source_base='gl' ac_config_files="$ac_config_files csharpcomp.sh:build-aux/csharpcomp.sh.in" # You need to invoke gt_CSHARPEXEC yourself, possibly with arguments. ac_config_files="$ac_config_files csharpexec.sh:build-aux/csharpexec.sh.in" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5 $as_echo_n "checking for error_at_line... " >&6; } if ${ac_cv_lib_error_at_line+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { error_at_line (0, 0, "", 0, "an error occurred"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_error_at_line=yes else ac_cv_lib_error_at_line=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5 $as_echo "$ac_cv_lib_error_at_line" >&6; } if test $ac_cv_lib_error_at_line = no; then gl_LIBOBJS="$gl_LIBOBJS error.$ac_objext" : fi XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error:3:c-format" XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=error_at_line:5:c-format" if test $REPLACE_GETOPT = 1; then gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" GNULIB_GL_UNISTD_H_GETOPT=1 fi $as_echo "#define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi if test $REPLACE_GETOPT = 1; then GETOPT_H=getopt.h $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h fi if test $REPLACE_GETOPT = 1; then gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext" gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext" GNULIB_GL_UNISTD_H_GETOPT=1 fi # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile ac_config_links="$ac_config_links $GNUmakefile:$GNUmakefile" if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 $as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext" fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext" fi # Extract the first word of "pmccabe", so it can be a program name with args. set dummy pmccabe; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PMCCABE+:} false; then : $as_echo_n "(cached) " >&6 else case $PMCCABE in [\\/]* | ?:[\\/]*) ac_cv_path_PMCCABE="$PMCCABE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PMCCABE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PMCCABE" && ac_cv_path_PMCCABE="false" ;; esac fi PMCCABE=$ac_cv_path_PMCCABE if test -n "$PMCCABE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PMCCABE" >&5 $as_echo "$PMCCABE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include " if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl _ACEOF ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include " if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl _ACEOF { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_ssize_t=yes else gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 $as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then $as_echo "#define ssize_t int" >>confdefs.h fi STDARG_H='' NEXT_STDARG_H='' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5 $as_echo_n "checking for va_copy... " >&6; } if ${gl_cv_func_va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef va_copy void (*func) (va_list, va_list) = va_copy; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func_va_copy=yes else gl_cv_func_va_copy=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_va_copy" >&5 $as_echo "$gl_cv_func_va_copy" >&6; } if test $gl_cv_func_va_copy = no; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _AIX && !defined __GNUC__ AIX vaccine #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "vaccine" >/dev/null 2>&1; then : gl_aixcc=yes else gl_aixcc=no fi rm -f conftest* if test $gl_aixcc = yes; then STDARG_H=stdarg.h if test $gl_cv_have_include_next = yes; then gl_cv_next_stdarg_h='<'stdarg.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdarg_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdarg.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdarg_h" >&5 $as_echo "$gl_cv_next_stdarg_h" >&6; } fi NEXT_STDARG_H=$gl_cv_next_stdarg_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdarg.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdarg_h fi NEXT_AS_FIRST_DIRECTIVE_STDARG_H=$gl_next_as_first_directive if test "$gl_cv_next_stdarg_h" = '""'; then gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' NEXT_STDARG_H="$gl_cv_next_stdarg_h" fi else saved_as_echo_n="$as_echo_n" as_echo_n=':' if ${gl_cv_func___va_copy+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #ifndef __va_copy error, bail out #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_func___va_copy=yes else gl_cv_func___va_copy=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi as_echo_n="$saved_as_echo_n" if test $gl_cv_func___va_copy = yes; then $as_echo "#define va_copy __va_copy" >>confdefs.h else $as_echo "#define va_copy gl_va_copy" >>confdefs.h fi fi fi if test -n "$STDARG_H"; then GL_GENERATE_STDARG_H_TRUE= GL_GENERATE_STDARG_H_FALSE='#' else GL_GENERATE_STDARG_H_TRUE='#' GL_GENERATE_STDARG_H_FALSE= fi STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5 $as_echo_n "checking for working strerror function... " >&6; } if ${gl_cv_func_working_strerror+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { if (!*strerror (-2)) return 1; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_working_strerror=yes else gl_cv_func_working_strerror=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5 $as_echo "$gl_cv_func_working_strerror" >&6; } case "$gl_cv_func_working_strerror" in *yes) ;; *) REPLACE_STRERROR=1 ;; esac else REPLACE_STRERROR=1 fi if test $REPLACE_STRERROR = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext" fi cat >>confdefs.h <<_ACEOF #define GNULIB_STRERROR 1 _ACEOF GNULIB_STRERROR=1 $as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext" if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi fi if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_unistd_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'unistd.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_unistd_h='<'unistd.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 $as_echo "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'unistd.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_unistd_h fi NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H # include #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # endif #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done # Check whether --enable-valgrind-tests was given. if test "${enable_valgrind_tests+set}" = set; then : enableval=$enable_valgrind_tests; opt_valgrind_tests=$enableval else opt_valgrind_tests=yes fi # Run self-tests under valgrind? if test "$opt_valgrind_tests" = "yes" && test "$cross_compiling" = no; then for ac_prog in valgrind do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_VALGRIND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$VALGRIND"; then ac_cv_prog_VALGRIND="$VALGRIND" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_VALGRIND="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi VALGRIND=$ac_cv_prog_VALGRIND if test -n "$VALGRIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5 $as_echo "$VALGRIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$VALGRIND" && break done fi OPTS="-q --error-exitcode=1 --leak-check=full" if test -n "$VALGRIND" \ && $VALGRIND $OPTS $SHELL -c 'exit 0' > /dev/null 2>&1; then opt_valgrind_tests=yes VALGRIND="$VALGRIND $OPTS" else opt_valgrind_tests=no VALGRIND= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether self tests are run under valgrind" >&5 $as_echo_n "checking whether self tests are run under valgrind... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opt_valgrind_tests" >&5 $as_echo "$opt_valgrind_tests" >&6; } # Check whether --with-packager was given. if test "${with_packager+set}" = set; then : withval=$with_packager; case $withval in yes|no) ;; *) cat >>confdefs.h <<_ACEOF #define PACKAGE_PACKAGER "$withval" _ACEOF ;; esac fi # Check whether --with-packager-version was given. if test "${with_packager_version+set}" = set; then : withval=$with_packager_version; case $withval in yes|no) ;; *) cat >>confdefs.h <<_ACEOF #define PACKAGE_PACKAGER_VERSION "$withval" _ACEOF ;; esac fi # Check whether --with-packager-bug-reports was given. if test "${with_packager_bug_reports+set}" = set; then : withval=$with_packager_bug_reports; case $withval in yes|no) ;; *) cat >>confdefs.h <<_ACEOF #define PACKAGE_PACKAGER_BUG_REPORTS "$withval" _ACEOF ;; esac fi if test "X$with_packager" = "X" && \ test "X$with_packager_version$with_packager_bug_reports" != "X" then as_fn_error $? "The --with-packager-{bug-reports,version} options require --with-packager" "$LINENO" 5 fi # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='gltests' gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$gltests_WITNESS if test $ac_cv_func_alloca_works = no; then : fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } if ${gl_cv_rpl_alloca+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Need own alloca" >/dev/null 2>&1; then : gl_cv_rpl_alloca=yes else gl_cv_rpl_alloca=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 $as_echo "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h ALLOCA_H=alloca.h else ALLOCA_H= fi else ALLOCA_H=alloca.h fi if test -n "$ALLOCA_H"; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi if test $ac_cv_header_sys_socket_h != yes; then for ac_header in winsock2.h do : ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" if test "x$ac_cv_header_winsock2_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_WINSOCK2_H 1 _ACEOF fi done fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then REPLACE_CLOSE=1 fi if test $REPLACE_CLOSE = 1; then gltests_LIBOBJS="$gltests_LIBOBJS close.$ac_objext" fi if test "$GNULIB_CLOSE" != 1; then if test "$GNULIB_CLOSE" = 0; then GNULIB_CLOSE=$gl_module_indicator_condition else GNULIB_CLOSE="($GNULIB_CLOSE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h $as_echo "#define HAVE_DUP2 1" >>confdefs.h if test $HAVE_DUP2 = 1; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5 $as_echo_n "checking whether dup2 works... " >&6; } if ${gl_cv_func_dup2_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a # closed fd may yield -EBADF instead of -1 / errno=EBADF. gl_cv_func_dup2_works="guessing no" ;; freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int result = 0; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) == 0) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, 1000000) == -1 && errno != EBADF) result |= 16; /* Flush out a cygwin core dump. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_dup2_works=yes else gl_cv_func_dup2_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_dup2_works" >&5 $as_echo "$gl_cv_func_dup2_works" >&6; } case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 ;; esac fi if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then gltests_LIBOBJS="$gltests_LIBOBJS dup2.$ac_objext" fi if test "$GNULIB_DUP2" != 1; then if test "$GNULIB_DUP2" = 0; then GNULIB_DUP2=$gl_module_indicator_condition else GNULIB_DUP2="($GNULIB_DUP2 || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h if test "$GNULIB_ENVIRON" != 1; then if test "$GNULIB_ENVIRON" = 0; then GNULIB_ENVIRON=$gl_module_indicator_condition else GNULIB_ENVIRON="($GNULIB_ENVIRON || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_fcntl_h='<'fcntl.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_fcntl_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'fcntl.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fcntl_h" >&5 $as_echo "$gl_cv_next_fcntl_h" >&6; } fi NEXT_FCNTL_H=$gl_cv_next_fcntl_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'fcntl.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_fcntl_h fi NEXT_AS_FIRST_DIRECTIVE_FCNTL_H=$gl_next_as_first_directive for gl_func in fcntl openat; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FDOPEN=1 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopen sets errno" >&5 $as_echo_n "checking whether fdopen sets errno... " >&6; } if ${gl_cv_func_fdopen_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in mingw*) gl_cv_func_fdopen_works="guessing no" ;; *) gl_cv_func_fdopen_works="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main (void) { FILE *fp; errno = 0; fp = fdopen (-1, "r"); if (fp == NULL && errno == 0) return 1; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_fdopen_works=yes else gl_cv_func_fdopen_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fdopen_works" >&5 $as_echo "$gl_cv_func_fdopen_works" >&6; } case "$gl_cv_func_fdopen_works" in *no) REPLACE_FDOPEN=1 ;; esac fi if test $REPLACE_FDOPEN = 1; then gltests_LIBOBJS="$gltests_LIBOBJS fdopen.$ac_objext" fi if test "$GNULIB_FDOPEN" != 1; then if test "$GNULIB_FDOPEN" = 0; then GNULIB_FDOPEN=$gl_module_indicator_condition else GNULIB_FDOPEN="($GNULIB_FDOPEN || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_FDOPEN 1" >>confdefs.h if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FSTAT=1 fi if test $WINDOWS_64_BIT_ST_SIZE = 1; then REPLACE_FSTAT=1 fi if test $REPLACE_FSTAT = 1; then gltests_LIBOBJS="$gltests_LIBOBJS fstat.$ac_objext" : fi if test "$GNULIB_FSTAT" != 1; then if test "$GNULIB_FSTAT" = 0; then GNULIB_FSTAT=$gl_module_indicator_condition else GNULIB_FSTAT="($GNULIB_FSTAT || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in *yes,yes) ;; *) REPLACE_GETCWD=1 ;; esac if test $REPLACE_GETCWD = 1; then gltests_LIBOBJS="$gltests_LIBOBJS getcwd-lgpl.$ac_objext" fi if test "$GNULIB_GETCWD" != 1; then if test "$GNULIB_GETCWD" = 0; then GNULIB_GETCWD=$gl_module_indicator_condition else GNULIB_GETCWD="($GNULIB_GETCWD || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h if test $ac_cv_func_getdtablesize != yes; then HAVE_GETDTABLESIZE=0 fi if test $HAVE_GETDTABLESIZE = 0; then gltests_LIBOBJS="$gltests_LIBOBJS getdtablesize.$ac_objext" : fi if test "$GNULIB_GETDTABLESIZE" != 1; then if test "$GNULIB_GETDTABLESIZE" = 0; then GNULIB_GETDTABLESIZE=$gl_module_indicator_condition else GNULIB_GETDTABLESIZE="($GNULIB_GETDTABLESIZE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h PRIPTR_PREFIX= if test -n "$STDINT_H"; then PRIPTR_PREFIX='"l"' else for glpfx in '' l ll I64; do case $glpfx in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; I64) gltype1='__int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern intptr_t foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : PRIPTR_PREFIX='"'$glpfx'"' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test -n "$PRIPTR_PREFIX" && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5 $as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; } if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined INT32_MAX && defined INTMAX_MAX #define CONDITION (INT32_MAX < INTMAX_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (int) < sizeof (long long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes else gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5 $as_echo "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; } if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then INT32_MAX_LT_INTMAX_MAX=1; else INT32_MAX_LT_INTMAX_MAX=0; fi if test $APPLE_UNIVERSAL_BUILD = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5 $as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; } if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined INT64_MAX #define CONDITION (INT64_MAX == LONG_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (long long int) == sizeof (long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes else gl_cv_test_INT64_MAX_EQ_LONG_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5 $as_echo "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; } if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then INT64_MAX_EQ_LONG_MAX=1; else INT64_MAX_EQ_LONG_MAX=0; fi else INT64_MAX_EQ_LONG_MAX=-1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5 $as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; } if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined UINT32_MAX && defined UINTMAX_MAX #define CONDITION (UINT32_MAX < UINTMAX_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes else gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5 $as_echo "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; } if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then UINT32_MAX_LT_UINTMAX_MAX=1; else UINT32_MAX_LT_UINTMAX_MAX=0; fi if test $APPLE_UNIVERSAL_BUILD = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5 $as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; } if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined UINT64_MAX #define CONDITION (UINT64_MAX == ULONG_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes else gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5 $as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; } if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then UINT64_MAX_EQ_ULONG_MAX=1; else UINT64_MAX_EQ_ULONG_MAX=0; fi else UINT64_MAX_EQ_ULONG_MAX=-1 fi if test $ac_cv_func_lstat = yes; then case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi if test $REPLACE_LSTAT = 1; then gltests_LIBOBJS="$gltests_LIBOBJS lstat.$ac_objext" : fi if test "$GNULIB_LSTAT" != 1; then if test "$GNULIB_LSTAT" = 0; then GNULIB_LSTAT=$gl_module_indicator_condition else GNULIB_LSTAT="($GNULIB_LSTAT || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_LSTAT 1" >>confdefs.h if test $gl_cv_func_malloc_posix = yes; then $as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h else REPLACE_MALLOC=1 fi if test $REPLACE_MALLOC = 1; then gltests_LIBOBJS="$gltests_LIBOBJS malloc.$ac_objext" fi if test "$GNULIB_MALLOC_POSIX" != 1; then if test "$GNULIB_MALLOC_POSIX" = 0; then GNULIB_MALLOC_POSIX=$gl_module_indicator_condition else GNULIB_MALLOC_POSIX="($GNULIB_MALLOC_POSIX || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5 $as_echo_n "checking whether open recognizes a trailing slash... " >&6; } if ${gl_cv_func_open_slash+:} false; then : $as_echo_n "(cached) " >&6 else # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_UNISTD_H # include #endif int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_open_slash=yes else gl_cv_func_open_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.sl conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5 $as_echo "$gl_cv_func_open_slash" >&6; } case "$gl_cv_func_open_slash" in *no) $as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h REPLACE_OPEN=1 ;; esac ;; esac if test $REPLACE_OPEN = 1; then gltests_LIBOBJS="$gltests_LIBOBJS open.$ac_objext" : fi if test "$GNULIB_OPEN" != 1; then if test "$GNULIB_OPEN" = 0; then GNULIB_OPEN=$gl_module_indicator_condition else GNULIB_OPEN="($GNULIB_OPEN || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5 $as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; } if ${gl_cv_func_svid_putenv+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_svid_putenv="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Put it in env. */ if (putenv ("CONFTEST_putenv=val")) return 1; /* Try to remove it. */ if (putenv ("CONFTEST_putenv")) return 2; /* Make sure it was deleted. */ if (getenv ("CONFTEST_putenv") != 0) return 3; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_svid_putenv=yes else gl_cv_func_svid_putenv=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5 $as_echo "$gl_cv_func_svid_putenv" >&6; } case "$gl_cv_func_svid_putenv" in *yes) ;; *) REPLACE_PUTENV=1 ;; esac if test $REPLACE_PUTENV = 1; then gltests_LIBOBJS="$gltests_LIBOBJS putenv.$ac_objext" ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default" if test "x$ac_cv_have_decl__putenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__PUTENV $ac_have_decl _ACEOF fi if test "$GNULIB_PUTENV" != 1; then if test "$GNULIB_PUTENV" = 0; then GNULIB_PUTENV=$gl_module_indicator_condition else GNULIB_PUTENV="($GNULIB_PUTENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_PUTENV 1" >>confdefs.h if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5 $as_echo_n "checking whether setenv validates arguments... " >&6; } if ${gl_cv_func_setenv_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_setenv_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int result = 0; { if (setenv ("", "", 0) != -1) result |= 1; else if (errno != EINVAL) result |= 2; } { if (setenv ("a", "=", 1) != 0) result |= 4; else if (strcmp (getenv ("a"), "=") != 0) result |= 8; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_setenv_works=yes else gl_cv_func_setenv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5 $as_echo "$gl_cv_func_setenv_works" >&6; } case "$gl_cv_func_setenv_works" in *yes) ;; *) REPLACE_SETENV=1 ;; esac fi if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then gltests_LIBOBJS="$gltests_LIBOBJS setenv.$ac_objext" fi if test "$GNULIB_SETENV" != 1; then if test "$GNULIB_SETENV" = 0; then GNULIB_SETENV=$gl_module_indicator_condition else GNULIB_SETENV="($GNULIB_SETENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5 $as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; } if ${gl_cv_func_stat_dir_slash+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case $host_os in mingw*) gl_cv_func_stat_dir_slash="guessing no";; *) gl_cv_func_stat_dir_slash="guessing yes";; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { struct stat st; return stat (".", &st) != stat ("./", &st); ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_dir_slash=yes else gl_cv_func_stat_dir_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_dir_slash" >&5 $as_echo "$gl_cv_func_stat_dir_slash" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5 $as_echo_n "checking whether stat handles trailing slashes on files... " >&6; } if ${gl_cv_func_stat_file_slash+:} false; then : $as_echo_n "(cached) " >&6 else touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_stat_file_slash=yes else gl_cv_func_stat_file_slash=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.tmp conftest.lnk fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_file_slash" >&5 $as_echo "$gl_cv_func_stat_file_slash" >&6; } case $gl_cv_func_stat_dir_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_DIR 1" >>confdefs.h ;; esac case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h ;; esac if test $REPLACE_STAT = 1; then gltests_LIBOBJS="$gltests_LIBOBJS stat.$ac_objext" : fi if test "$GNULIB_STAT" != 1; then if test "$GNULIB_STAT" = 0; then GNULIB_STAT=$gl_module_indicator_condition else GNULIB_STAT="($GNULIB_STAT || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi if test -n "$STDBOOL_H"; then GL_GENERATE_STDBOOL_H_TRUE= GL_GENERATE_STDBOOL_H_FALSE='#' else GL_GENERATE_STDBOOL_H_TRUE='#' GL_GENERATE_STDBOOL_H_FALSE= fi if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_stdio_h='<'stdio.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdio_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdio.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdio_h" >&5 $as_echo "$gl_cv_next_stdio_h" >&6; } fi NEXT_STDIO_H=$gl_cv_next_stdio_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdio.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdio_h fi NEXT_AS_FIRST_DIRECTIVE_STDIO_H=$gl_next_as_first_directive GNULIB_FSCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_FSCANF $gl_module_indicator_condition _ACEOF GNULIB_SCANF=1 cat >>confdefs.h <<_ACEOF #define GNULIB_SCANF $gl_module_indicator_condition _ACEOF GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 for gl_func in dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdlib_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdlib.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 $as_echo "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdlib.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdlib_h fi NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_SYS_LOADAVG_H # include #endif #if HAVE_RANDOM_H # include #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $ac_cv_func_symlink = no; then HAVE_SYMLINK=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5 $as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; } if ${gl_cv_func_symlink_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_symlink_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_symlink_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int result = 0; if (!symlink ("a", "conftest.link/")) result |= 1; if (symlink ("conftest.f", "conftest.lnk2")) result |= 2; else if (!symlink ("a", "conftest.lnk2/")) result |= 4; return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_symlink_works=yes else gl_cv_func_symlink_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f conftest.f conftest.link conftest.lnk2 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_symlink_works" >&5 $as_echo "$gl_cv_func_symlink_works" >&6; } case "$gl_cv_func_symlink_works" in *yes) ;; *) REPLACE_SYMLINK=1 ;; esac fi if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then gltests_LIBOBJS="$gltests_LIBOBJS symlink.$ac_objext" fi if test "$GNULIB_SYMLINK" != 1; then if test "$GNULIB_SYMLINK" = 0; then GNULIB_SYMLINK=$gl_module_indicator_condition else GNULIB_SYMLINK="($GNULIB_SYMLINK || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SYMLINK 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_sys_stat_h='<'sys/stat.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_sys_stat_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_sys_stat_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'sys/stat.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_sys_stat_h='<'sys/stat.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_stat_h" >&5 $as_echo "$gl_cv_next_sys_stat_h" >&6; } fi NEXT_SYS_STAT_H=$gl_cv_next_sys_stat_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'sys/stat.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_sys_stat_h fi NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H=$gl_next_as_first_directive if test $WINDOWS_64_BIT_ST_SIZE = 1; then $as_echo "#define _GL_WINDOWS_64_BIT_ST_SIZE 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include #include " if test "x$ac_cv_type_nlink_t" = xyes; then : else $as_echo "#define nlink_t int" >>confdefs.h fi for gl_func in fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $ac_cv_have_decl_unsetenv = no; then HAVE_DECL_UNSETENV=0 fi for ac_func in unsetenv do : ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv" if test "x$ac_cv_func_unsetenv" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNSETENV 1 _ACEOF fi done if test $ac_cv_func_unsetenv = no; then HAVE_UNSETENV=0 else HAVE_UNSETENV=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5 $as_echo_n "checking for unsetenv() return type... " >&6; } if ${gt_cv_func_unsetenv_ret+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef _BSD #define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ #include extern #ifdef __cplusplus "C" #endif int unsetenv (const char *name); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_func_unsetenv_ret='int' else gt_cv_func_unsetenv_ret='void' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5 $as_echo "$gt_cv_func_unsetenv_ret" >&6; } if test $gt_cv_func_unsetenv_ret = 'void'; then $as_echo "#define VOID_UNSETENV 1" >>confdefs.h REPLACE_UNSETENV=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5 $as_echo_n "checking whether unsetenv obeys POSIX... " >&6; } if ${gl_cv_func_unsetenv_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unsetenv_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern char **environ; int main () { char entry1[] = "a=1"; char entry2[] = "b=2"; char *env[] = { entry1, entry2, NULL }; if (putenv ((char *) "a=1")) return 1; if (putenv (entry2)) return 2; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 3; if (!unsetenv ("") || errno != EINVAL) return 4; entry2[0] = 'b'; environ = env; if (!getenv ("a")) return 5; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 6; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_unsetenv_works=yes else gl_cv_func_unsetenv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5 $as_echo "$gl_cv_func_unsetenv_works" >&6; } case "$gl_cv_func_unsetenv_works" in *yes) ;; *) REPLACE_UNSETENV=1 ;; esac fi if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then gltests_LIBOBJS="$gltests_LIBOBJS unsetenv.$ac_objext" fi if test "$GNULIB_UNSETENV" != 1; then if test "$GNULIB_UNSETENV" = 0; then GNULIB_UNSETENV=$gl_module_indicator_condition else GNULIB_UNSETENV="($GNULIB_UNSETENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h # Check whether --enable-valgrind-tests was given. if test "${enable_valgrind_tests+set}" = set; then : enableval=$enable_valgrind_tests; opt_valgrind_tests=$enableval else opt_valgrind_tests=yes fi # Run self-tests under valgrind? if test "$opt_valgrind_tests" = "yes" && test "$cross_compiling" = no; then for ac_prog in valgrind do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_VALGRIND+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$VALGRIND"; then ac_cv_prog_VALGRIND="$VALGRIND" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_VALGRIND="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi VALGRIND=$ac_cv_prog_VALGRIND if test -n "$VALGRIND"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND" >&5 $as_echo "$VALGRIND" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$VALGRIND" && break done fi OPTS="-q --error-exitcode=1 --leak-check=full" if test -n "$VALGRIND" \ && $VALGRIND $OPTS $SHELL -c 'exit 0' > /dev/null 2>&1; then opt_valgrind_tests=yes VALGRIND="$VALGRIND $OPTS" else opt_valgrind_tests=no VALGRIND= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether self tests are run under valgrind" >&5 $as_echo_n "checking whether self tests are run under valgrind... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $opt_valgrind_tests" >&5 $as_echo "$opt_valgrind_tests" >&6; } abs_aux_dir=`cd "$ac_aux_dir"; pwd` if test $gl_cv_have_include_next = yes; then gl_cv_next_wchar_h='<'wchar.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_wchar_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wchar_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wchar.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_wchar_h='<'wchar.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 $as_echo "$gl_cv_next_wchar_h" >&6; } fi NEXT_WCHAR_H=$gl_cv_next_wchar_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wchar.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wchar_h fi NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done LIBTESTS_LIBDEPS="$gltests_libdeps" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi GNULIB_LOCALECONV=0; GNULIB_SETLOCALE=0; GNULIB_DUPLOCALE=0; HAVE_DUPLOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; REPLACE_DUPLOCALE=0; REPLACE_STRUCT_LCONV=0; { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5 $as_echo_n "checking for LC_MESSAGES... " >&6; } if ${gt_cv_val_LC_MESSAGES+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { return LC_MESSAGES ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gt_cv_val_LC_MESSAGES=yes else gt_cv_val_LC_MESSAGES=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_val_LC_MESSAGES" >&5 $as_echo "$gt_cv_val_LC_MESSAGES" >&6; } if test $gt_cv_val_LC_MESSAGES = yes; then $as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h fi gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether imported symbols can be declared weak" >&5 $as_echo_n "checking whether imported symbols can be declared weak... " >&6; } if ${gl_cv_have_weak+:} false; then : $as_echo_n "(cached) " >&6 else gl_cv_have_weak=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern void xyzzy (); #pragma weak xyzzy int main () { xyzzy(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_have_weak=maybe fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test $gl_cv_have_weak = maybe; then if test "$cross_compiling" = yes; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __ELF__ Extensible Linking Format #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Extensible Linking Format" >/dev/null 2>&1; then : gl_cv_have_weak="guessing yes" else gl_cv_have_weak="guessing no" fi rm -f conftest* else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #pragma weak fputs int main () { return (fputs == NULL); } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_have_weak=yes else gl_cv_have_weak=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have_weak" >&5 $as_echo "$gl_cv_have_weak" >&6; } if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks . It's added above, in gl_THREADLIB_EARLY_BODY. ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" if test "x$ac_cv_header_pthread_h" = xyes; then : gl_have_pthread_h=yes else gl_have_pthread_h=no fi if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pthread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) $as_echo "#define PTHREAD_IN_USE_DETECTION_HARD 1" >>confdefs.h esac fi else # Some library is needed. Try libpthread and libc_r. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lpthread" >&5 $as_echo_n "checking for pthread_kill in -lpthread... " >&6; } if ${ac_cv_lib_pthread_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_pthread_pthread_kill=yes else ac_cv_lib_pthread_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_kill" >&5 $as_echo "$ac_cv_lib_pthread_pthread_kill" >&6; } if test "x$ac_cv_lib_pthread_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread fi if test -z "$gl_have_pthread"; then # For FreeBSD 4. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_kill in -lc_r" >&5 $as_echo_n "checking for pthread_kill in -lc_r... " >&6; } if ${ac_cv_lib_c_r_pthread_kill+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lc_r $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_kill (); int main () { return pthread_kill (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_c_r_pthread_kill=yes else ac_cv_lib_c_r_pthread_kill=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_r_pthread_kill" >&5 $as_echo "$ac_cv_lib_c_r_pthread_kill" >&6; } if test "x$ac_cv_lib_c_r_pthread_kill" = xyes; then : gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r fi fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix $as_echo "#define USE_POSIX_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_POSIX_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include int main () { thr_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_solaristhread=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_SOLARIS_THREADS 1" >>confdefs.h if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_SOLARIS_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libpth" >&5 $as_echo_n "checking how to link with libpth... " >&6; } if ${ac_cv_libpth_libs+:} false; then : $as_echo_n "(cached) " >&6 else use_additional=yes acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" # Check whether --with-libpth-prefix was given. if test "${with_libpth_prefix+set}" = set; then : withval=$with_libpth_prefix; if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi fi LIBPTH= LTLIBPTH= INCPTH= LIBPTH_PREFIX= HAVE_LIBPTH= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='pth ' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIBPTH="${LIBPTH}${LIBPTH:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$value" else : fi else found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi if test "$acl_hardcode_direct" = yes; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_so" else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then LIBPTH="${LIBPTH}${LIBPTH:+ }$found_a" else LIBPTH="${LIBPTH}${LIBPTH:+ }-L$found_dir -l$name" fi fi additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = 'pth'; then LIBPTH_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INCPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then INCPTH="${INCPTH}${INCPTH:+ }-I$additional_includedir" fi fi fi fi fi if test -n "$found_la"; then save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LIBPTH="${LIBPTH}${LIBPTH:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIBPTH; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) LIBPTH="${LIBPTH}${LIBPTH:+ }$dep" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }$dep" ;; esac done fi else LIBPTH="${LIBPTH}${LIBPTH:+ }-l$name" LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" else for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIBPTH="${LIBPTH}${LIBPTH:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then for found_dir in $ltrpathdirs; do LTLIBPTH="${LTLIBPTH}${LTLIBPTH:+ }-R$found_dir" done fi ac_cv_libpth_libs="$LIBPTH" ac_cv_libpth_ltlibs="$LTLIBPTH" ac_cv_libpth_cppflags="$INCPTH" ac_cv_libpth_prefix="$LIBPTH_PREFIX" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libpth_libs" >&5 $as_echo "$ac_cv_libpth_libs" >&6; } LIBPTH="$ac_cv_libpth_libs" LTLIBPTH="$ac_cv_libpth_ltlibs" INCPTH="$ac_cv_libpth_cppflags" LIBPTH_PREFIX="$ac_cv_libpth_prefix" for element in $INCPTH; do haveit= for x in $CPPFLAGS; do acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" eval x=\"$x\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" fi done HAVE_LIBPTH=yes gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pth_self(); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_have_pth=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" $as_echo "#define USE_PTH_THREADS 1" >>confdefs.h if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then $as_echo "#define USE_PTH_THREADS_WEAK 1" >>confdefs.h LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows $as_echo "#define USE_WINDOWS_THREADS 1" >>confdefs.h fi ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for multithread API to use" >&5 $as_echo_n "checking for multithread API to use... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_threads_api" >&5 $as_echo "$gl_threads_api" >&6; } if true; then GL_COND_LIBTOOL_TRUE= GL_COND_LIBTOOL_FALSE='#' else GL_COND_LIBTOOL_TRUE='#' GL_COND_LIBTOOL_FALSE= fi gl_cond_libtool=true gl_m4_base='lib/gl/m4' gl_source_base='lib/gl' GNULIB_ICONV=1 if test $gl_cv_have_include_next = yes; then gl_cv_next_iconv_h='<'iconv.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_iconv_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_iconv_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'iconv.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_iconv_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_iconv_h='<'iconv.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_iconv_h" >&5 $as_echo "$gl_cv_next_iconv_h" >&6; } fi NEXT_ICONV_H=$gl_cv_next_iconv_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'iconv.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_iconv_h fi NEXT_AS_FIRST_DIRECTIVE_ICONV_H=$gl_next_as_first_directive if test "$am_cv_func_iconv" = yes; then ICONV_H='iconv.h' if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' else GL_GENERATE_ICONV_H_TRUE='#' GL_GENERATE_ICONV_H_FALSE= fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__) gnu_iconv #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "gnu_iconv" >/dev/null 2>&1; then : gl_func_iconv_gnu=yes else gl_func_iconv_gnu=no fi rm -f conftest* if test $gl_func_iconv_gnu = no; then iconv_flavor= case "$host_os" in aix*) iconv_flavor=ICONV_FLAVOR_AIX ;; irix*) iconv_flavor=ICONV_FLAVOR_IRIX ;; hpux*) iconv_flavor=ICONV_FLAVOR_HPUX ;; osf*) iconv_flavor=ICONV_FLAVOR_OSF ;; solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;; esac if test -n "$iconv_flavor"; then cat >>confdefs.h <<_ACEOF #define ICONV_FLAVOR $iconv_flavor _ACEOF ICONV_H='iconv.h' if test -n "$ICONV_H"; then GL_GENERATE_ICONV_H_TRUE= GL_GENERATE_ICONV_H_FALSE='#' else GL_GENERATE_ICONV_H_TRUE='#' GL_GENERATE_ICONV_H_FALSE= fi REPLACE_ICONV_OPEN=1 fi fi fi if test $REPLACE_ICONV_OPEN = 1; then lgl_LIBOBJS="$lgl_LIBOBJS iconv_open.$ac_objext" fi if test $REPLACE_ICONV = 1; then lgl_LIBOBJS="$lgl_LIBOBJS iconv.$ac_objext" lgl_LIBOBJS="$lgl_LIBOBJS iconv_close.$ac_objext" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5 $as_echo_n "checking whether the compiler generally respects inline... " >&6; } if ${gl_cv_c_inline_effective+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_c_inline = no; then gl_cv_c_inline_effective=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifdef __NO_INLINE__ #error "inline is not effective" #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_c_inline_effective=yes else gl_cv_c_inline_effective=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_inline_effective" >&5 $as_echo "$gl_cv_c_inline_effective" >&6; } if test $gl_cv_c_inline_effective = yes; then $as_echo "#define HAVE_INLINE 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc/ld supports -Wl,--output-def" >&5 $as_echo_n "checking if gcc/ld supports -Wl,--output-def... " >&6; } if ${gl_cv_ld_output_def+:} false; then : $as_echo_n "(cached) " >&6 else if test "$enable_shared" = no; then gl_cv_ld_output_def="not needed, shared libraries are disabled" else gl_ldflags_save=$LDFLAGS LDFLAGS="-Wl,--output-def,conftest.def" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : gl_cv_ld_output_def=yes else gl_cv_ld_output_def=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext rm -f conftest.def LDFLAGS="$gl_ldflags_save" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_ld_output_def" >&5 $as_echo "$gl_cv_ld_output_def" >&6; } if test "x$gl_cv_ld_output_def" = "xyes"; then HAVE_LD_OUTPUT_DEF_TRUE= HAVE_LD_OUTPUT_DEF_FALSE='#' else HAVE_LD_OUTPUT_DEF_TRUE='#' HAVE_LD_OUTPUT_DEF_FALSE= fi # Check whether --enable-ld-version-script was given. if test "${enable_ld_version_script+set}" = set; then : enableval=$enable_ld_version_script; have_ld_version_script=$enableval fi if test -z "$have_ld_version_script"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if LD -Wl,--version-script works" >&5 $as_echo_n "checking if LD -Wl,--version-script works... " >&6; } save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" cat > conftest.map <conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : accepts_syntax_errors=yes else accepts_syntax_errors=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "$accepts_syntax_errors" = no; then cat > conftest.map <conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : have_ld_version_script=yes else have_ld_version_script=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext else have_ld_version_script=no fi rm -f conftest.map LDFLAGS="$save_LDFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_ld_version_script" >&5 $as_echo "$have_ld_version_script" >&6; } fi if test "$have_ld_version_script" = "yes"; then HAVE_LD_VERSION_SCRIPT_TRUE= HAVE_LD_VERSION_SCRIPT_FALSE='#' else HAVE_LD_VERSION_SCRIPT_TRUE='#' HAVE_LD_VERSION_SCRIPT_FALSE= fi CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the -Werror option is usable" >&5 $as_echo_n "checking whether the -Werror option is usable... " >&6; } if ${gl_cv_cc_vis_werror+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_vis_werror=yes else gl_cv_cc_vis_werror=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_vis_werror" >&5 $as_echo "$gl_cv_cc_vis_werror" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for simple visibility declarations" >&5 $as_echo_n "checking for simple visibility declarations... " >&6; } if ${gl_cv_cc_visibility+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void) {} int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_visibility=yes else gl_cv_cc_visibility=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_visibility" >&5 $as_echo "$gl_cv_cc_visibility" >&6; } if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi cat >>confdefs.h <<_ACEOF #define HAVE_VISIBILITY $HAVE_VISIBILITY _ACEOF # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi if test -n "$STDBOOL_H"; then GL_GENERATE_STDBOOL_H_TRUE= GL_GENERATE_STDBOOL_H_FALSE='#' else GL_GENERATE_STDBOOL_H_TRUE='#' GL_GENERATE_STDBOOL_H_FALSE= fi if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NULL can be used in arbitrary expressions" >&5 $as_echo_n "checking whether NULL can be used in arbitrary expressions... " >&6; } if ${gl_cv_decl_null_works+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int test[2 * (sizeof NULL == sizeof (void *)) -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_decl_null_works=yes else gl_cv_decl_null_works=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_null_works" >&5 $as_echo "$gl_cv_decl_null_works" >&6; } if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' else GL_GENERATE_STDDEF_H_TRUE='#' GL_GENERATE_STDDEF_H_FALSE= fi if test -n "$STDDEF_H"; then if test $gl_cv_have_include_next = yes; then gl_cv_next_stddef_h='<'stddef.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stddef_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stddef.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stddef_h" >&5 $as_echo "$gl_cv_next_stddef_h" >&6; } fi NEXT_STDDEF_H=$gl_cv_next_stddef_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stddef.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stddef_h fi NEXT_AS_FIRST_DIRECTIVE_STDDEF_H=$gl_next_as_first_directive fi if test $gl_cond_libtool = false; then gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV" gl_libdeps="$gl_libdeps $LIBICONV" fi for ac_func in strverscmp do : ac_fn_c_check_func "$LINENO" "strverscmp" "ac_cv_func_strverscmp" if test "x$ac_cv_func_strverscmp" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_STRVERSCMP 1 _ACEOF fi done if test $ac_cv_func_strverscmp = no; then HAVE_STRVERSCMP=0 fi if test $HAVE_STRVERSCMP = 0; then lgl_LIBOBJS="$lgl_LIBOBJS strverscmp.$ac_objext" : fi GNULIB_STRVERSCMP=1 $as_echo "#define GNULIB_TEST_STRVERSCMP 1" >>confdefs.h if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 2 } } } } }; then LIBUNISTRING_UNISTR_H='unistr.h' else LIBUNISTRING_UNISTR_H= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_MBTOUCR 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE= fi cat >>confdefs.h <<_ACEOF #define GNULIB_UNISTR_U8_UCTOMB 1 _ACEOF if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE= LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE='#' else LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE='#' LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE= fi if { test "$HAVE_LIBUNISTRING" != yes \ || { test $LIBUNISTRING_VERSION_MAJOR -lt 0 \ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0 } } } } }; then LIBUNISTRING_UNITYPES_H='unitypes.h' else LIBUNISTRING_UNITYPES_H= fi # End of code from modules gltests_libdeps= gltests_ltlibdeps= gl_source_base='lib/gltests' lgltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS gl_module_indicator_condition=$lgltests_WITNESS if test $ac_cv_func_alloca_works = no; then : fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5 $as_echo_n "checking for alloca as a compiler built-in... " >&6; } if ${gl_cv_rpl_alloca+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "Need own alloca" >/dev/null 2>&1; then : gl_cv_rpl_alloca=yes else gl_cv_rpl_alloca=no fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5 $as_echo "$gl_cv_rpl_alloca" >&6; } if test $gl_cv_rpl_alloca = yes; then $as_echo "#define HAVE_ALLOCA 1" >>confdefs.h ALLOCA_H=alloca.h else ALLOCA_H= fi else ALLOCA_H=alloca.h fi if test -n "$ALLOCA_H"; then GL_GENERATE_ALLOCA_H_TRUE= GL_GENERATE_ALLOCA_H_FALSE='#' else GL_GENERATE_ALLOCA_H_TRUE='#' GL_GENERATE_ALLOCA_H_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a turkish Unicode locale" >&5 $as_echo_n "checking for a turkish Unicode locale... " >&6; } if ${gt_cv_locale_tr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. But BeOS does not implement the Turkish upper-/lowercase mappings. Therefore, let this program return 1 on BeOS. */ /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the eighth month, the second character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f) return 1; /* Check whether the upper-/lowercase mappings are as expected for Turkish. */ if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i' || towupper(0x0131) != 'I' || towlower ('I') != 0x0131) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=Turkish_Turkey.65001 else # None found. gt_cv_locale_tr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr.UTF-8 else # None found. gt_cv_locale_tr_utf8=none fi fi fi ;; esac else gt_cv_locale_tr_utf8=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_tr_utf8" >&5 $as_echo "$gt_cv_locale_tr_utf8" >&6; } LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8 if test "$GNULIB_ENVIRON" != 1; then if test "$GNULIB_ENVIRON" = 0; then GNULIB_ENVIRON=$gl_module_indicator_condition else GNULIB_ENVIRON="($GNULIB_ENVIRON || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h PRIPTR_PREFIX= if test -n "$STDINT_H"; then PRIPTR_PREFIX='"l"' else for glpfx in '' l ll I64; do case $glpfx in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; I64) gltype1='__int64';; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include extern intptr_t foo; extern $gltype1 foo; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : PRIPTR_PREFIX='"'$glpfx'"' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test -n "$PRIPTR_PREFIX" && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5 $as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; } if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined INT32_MAX && defined INTMAX_MAX #define CONDITION (INT32_MAX < INTMAX_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (int) < sizeof (long long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes else gl_cv_test_INT32_MAX_LT_INTMAX_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&5 $as_echo "$gl_cv_test_INT32_MAX_LT_INTMAX_MAX" >&6; } if test $gl_cv_test_INT32_MAX_LT_INTMAX_MAX = yes; then INT32_MAX_LT_INTMAX_MAX=1; else INT32_MAX_LT_INTMAX_MAX=0; fi if test $APPLE_UNIVERSAL_BUILD = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5 $as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; } if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined INT64_MAX #define CONDITION (INT64_MAX == LONG_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (long long int) == sizeof (long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes else gl_cv_test_INT64_MAX_EQ_LONG_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&5 $as_echo "$gl_cv_test_INT64_MAX_EQ_LONG_MAX" >&6; } if test $gl_cv_test_INT64_MAX_EQ_LONG_MAX = yes; then INT64_MAX_EQ_LONG_MAX=1; else INT64_MAX_EQ_LONG_MAX=0; fi else INT64_MAX_EQ_LONG_MAX=-1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5 $as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; } if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined UINT32_MAX && defined UINTMAX_MAX #define CONDITION (UINT32_MAX < UINTMAX_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (unsigned int) < sizeof (unsigned long long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes else gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&5 $as_echo "$gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX" >&6; } if test $gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX = yes; then UINT32_MAX_LT_UINTMAX_MAX=1; else UINT32_MAX_LT_UINTMAX_MAX=0; fi if test $APPLE_UNIVERSAL_BUILD = 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5 $as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; } if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if defined UINT64_MAX #define CONDITION (UINT64_MAX == ULONG_MAX) #elif HAVE_LONG_LONG_INT #define CONDITION (sizeof (unsigned long long int) == sizeof (unsigned long int)) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1]; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes else gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&5 $as_echo "$gl_cv_test_UINT64_MAX_EQ_ULONG_MAX" >&6; } if test $gl_cv_test_UINT64_MAX_EQ_ULONG_MAX = yes; then UINT64_MAX_EQ_ULONG_MAX=1; else UINT64_MAX_EQ_ULONG_MAX=0; fi else UINT64_MAX_EQ_ULONG_MAX=-1 fi case "$host_os" in solaris*) $as_echo "#define _LCONV_C99 1" >>confdefs.h ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h conforms to POSIX:2001" >&5 $as_echo_n "checking whether locale.h conforms to POSIX:2001... " >&6; } if ${gl_cv_header_locale_h_posix2001+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_h_posix2001=yes else gl_cv_header_locale_h_posix2001=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_h_posix2001" >&5 $as_echo "$gl_cv_header_locale_h_posix2001" >&6; } if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether locale.h defines locale_t" >&5 $as_echo_n "checking whether locale.h defines locale_t... " >&6; } if ${gl_cv_header_locale_has_locale_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include locale_t x; int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_header_locale_has_locale_t=yes else gl_cv_header_locale_has_locale_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_locale_has_locale_t" >&5 $as_echo "$gl_cv_header_locale_has_locale_t" >&6; } if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct lconv is properly defined" >&5 $as_echo_n "checking whether struct lconv is properly defined... " >&6; } if ${gl_cv_sys_struct_lconv_ok+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_sys_struct_lconv_ok=yes else gl_cv_sys_struct_lconv_ok=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_lconv_ok" >&5 $as_echo "$gl_cv_sys_struct_lconv_ok" >&6; } if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi if test $gl_cv_have_include_next = yes; then gl_cv_next_locale_h='<'locale.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_locale_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'locale.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_locale_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_locale_h" >&5 $as_echo "$gl_cv_next_locale_h" >&6; } fi NEXT_LOCALE_H=$gl_cv_next_locale_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'locale.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_locale_h fi NEXT_AS_FIRST_DIRECTIVE_LOCALE_H=$gl_next_as_first_directive for gl_func in setlocale duplocale; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done for ac_func in setlocale uselocale do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. ac_fn_c_check_type "$LINENO" "pthread_rwlock_t" "ac_cv_type_pthread_rwlock_t" "#include " if test "x$ac_cv_type_pthread_rwlock_t" = xyes; then : $as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h fi # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : $as_echo "#define HAVE_PTHREAD_MUTEX_RECURSIVE 1" >>confdefs.h fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi : cat >>confdefs.h <<_ACEOF #define GNULIB_LOCK $gl_module_indicator_condition _ACEOF if test $gl_cv_func_malloc_posix = yes; then $as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h else REPLACE_MALLOC=1 fi if test $REPLACE_MALLOC = 1; then lgltests_LIBOBJS="$lgltests_LIBOBJS malloc.$ac_objext" fi if test "$GNULIB_MALLOC_POSIX" != 1; then if test "$GNULIB_MALLOC_POSIX" = 0; then GNULIB_MALLOC_POSIX=$gl_module_indicator_condition else GNULIB_MALLOC_POSIX="($GNULIB_MALLOC_POSIX || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for putenv compatible with GNU and SVID" >&5 $as_echo_n "checking for putenv compatible with GNU and SVID... " >&6; } if ${gl_cv_func_svid_putenv+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_svid_putenv="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main () { /* Put it in env. */ if (putenv ("CONFTEST_putenv=val")) return 1; /* Try to remove it. */ if (putenv ("CONFTEST_putenv")) return 2; /* Make sure it was deleted. */ if (getenv ("CONFTEST_putenv") != 0) return 3; return 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_svid_putenv=yes else gl_cv_func_svid_putenv=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_svid_putenv" >&5 $as_echo "$gl_cv_func_svid_putenv" >&6; } case "$gl_cv_func_svid_putenv" in *yes) ;; *) REPLACE_PUTENV=1 ;; esac if test $REPLACE_PUTENV = 1; then lgltests_LIBOBJS="$lgltests_LIBOBJS putenv.$ac_objext" ac_fn_c_check_decl "$LINENO" "_putenv" "ac_cv_have_decl__putenv" "$ac_includes_default" if test "x$ac_cv_have_decl__putenv" = xyes; then : ac_have_decl=1 else ac_have_decl=0 fi cat >>confdefs.h <<_ACEOF #define HAVE_DECL__PUTENV $ac_have_decl _ACEOF fi if test "$GNULIB_PUTENV" != 1; then if test "$GNULIB_PUTENV" = 0; then GNULIB_PUTENV=$gl_module_indicator_condition else GNULIB_PUTENV="($GNULIB_PUTENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_PUTENV 1" >>confdefs.h if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5 $as_echo_n "checking whether setenv validates arguments... " >&6; } if ${gl_cv_func_setenv_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_setenv_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include int main () { int result = 0; { if (setenv ("", "", 0) != -1) result |= 1; else if (errno != EINVAL) result |= 2; } { if (setenv ("a", "=", 1) != 0) result |= 4; else if (strcmp (getenv ("a"), "=") != 0) result |= 8; } return result; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_setenv_works=yes else gl_cv_func_setenv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_setenv_works" >&5 $as_echo "$gl_cv_func_setenv_works" >&6; } case "$gl_cv_func_setenv_works" in *yes) ;; *) REPLACE_SETENV=1 ;; esac fi if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then lgltests_LIBOBJS="$lgltests_LIBOBJS setenv.$ac_objext" fi if test "$GNULIB_SETENV" != 1; then if test "$GNULIB_SETENV" = 0; then GNULIB_SETENV=$gl_module_indicator_condition else GNULIB_SETENV="($GNULIB_SETENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h case "$host_os" in mingw*) REPLACE_SETLOCALE=1 ;; cygwin*) case `uname -r` in 1.5.*) REPLACE_SETLOCALE=1 ;; esac ;; esac if test $REPLACE_SETLOCALE = 1; then lgltests_LIBOBJS="$lgltests_LIBOBJS setlocale.$ac_objext" : fi if test "$GNULIB_SETLOCALE" != 1; then if test "$GNULIB_SETLOCALE" = 0; then GNULIB_SETLOCALE=$gl_module_indicator_condition else GNULIB_SETLOCALE="($GNULIB_SETLOCALE || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_SETLOCALE 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5 $as_echo_n "checking for a traditional french locale... " >&6; } if ${gt_cv_locale_fr+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5 $as_echo "$gt_cv_locale_fr" >&6; } LOCALE_FR=$gt_cv_locale_fr { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5 $as_echo_n "checking for a french Unicode locale... " >&6; } if ${gt_cv_locale_fr_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr_utf8" >&5 $as_echo "$gt_cv_locale_fr_utf8" >&6; } LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5 $as_echo_n "checking for a traditional japanese locale... " >&6; } if ${gt_cv_locale_ja+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5 $as_echo "$gt_cv_locale_ja" >&6; } LOCALE_JA=$gt_cv_locale_ja { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5 $as_echo_n "checking for a transitional chinese locale... " >&6; } if ${gt_cv_locale_zh_CN+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; } _ACEOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_zh_CN" >&5 $as_echo "$gt_cv_locale_zh_CN" >&6; } LOCALE_ZH_CN=$gt_cv_locale_zh_CN { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5 $as_echo_n "checking for ssize_t... " >&6; } if ${gt_cv_ssize_t+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_ssize_t=yes else gt_cv_ssize_t=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5 $as_echo "$gt_cv_ssize_t" >&6; } if test $gt_cv_ssize_t = no; then $as_echo "#define ssize_t int" >>confdefs.h fi if test $gl_cv_have_include_next = yes; then gl_cv_next_stdlib_h='<'stdlib.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_stdlib_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'stdlib.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_stdlib_h" >&5 $as_echo "$gl_cv_next_stdlib_h" >&6; } fi NEXT_STDLIB_H=$gl_cv_next_stdlib_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'stdlib.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_stdlib_h fi NEXT_AS_FIRST_DIRECTIVE_STDLIB_H=$gl_next_as_first_directive for gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #if HAVE_SYS_LOADAVG_H # include #endif #if HAVE_RANDOM_H # include #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $gl_threads_api = posix; then gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" for ac_func in pthread_atfork do : ac_fn_c_check_func "$LINENO" "pthread_atfork" "ac_cv_func_pthread_atfork" if test "x$ac_cv_func_pthread_atfork" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_PTHREAD_ATFORK 1 _ACEOF fi done LIBS="$gl_save_LIBS" fi if test $gl_cv_have_include_next = yes; then gl_cv_next_unistd_h='<'unistd.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_unistd_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_unistd_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'unistd.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_unistd_h='<'unistd.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_unistd_h" >&5 $as_echo "$gl_cv_next_unistd_h" >&6; } fi NEXT_UNISTD_H=$gl_cv_next_unistd_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'unistd.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_unistd_h fi NEXT_AS_FIRST_DIRECTIVE_UNISTD_H=$gl_next_as_first_directive if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H # include #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # endif #endif int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done if test $ac_cv_have_decl_unsetenv = no; then HAVE_DECL_UNSETENV=0 fi for ac_func in unsetenv do : ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv" if test "x$ac_cv_func_unsetenv" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNSETENV 1 _ACEOF fi done if test $ac_cv_func_unsetenv = no; then HAVE_UNSETENV=0 else HAVE_UNSETENV=1 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5 $as_echo_n "checking for unsetenv() return type... " >&6; } if ${gt_cv_func_unsetenv_ret+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #undef _BSD #define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ #include extern #ifdef __cplusplus "C" #endif int unsetenv (const char *name); int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gt_cv_func_unsetenv_ret='int' else gt_cv_func_unsetenv_ret='void' fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_unsetenv_ret" >&5 $as_echo "$gt_cv_func_unsetenv_ret" >&6; } if test $gt_cv_func_unsetenv_ret = 'void'; then $as_echo "#define VOID_UNSETENV 1" >>confdefs.h REPLACE_UNSETENV=1 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5 $as_echo_n "checking whether unsetenv obeys POSIX... " >&6; } if ${gl_cv_func_unsetenv_works+:} false; then : $as_echo_n "(cached) " >&6 else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unsetenv_works="guessing no" ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include extern char **environ; int main () { char entry1[] = "a=1"; char entry2[] = "b=2"; char *env[] = { entry1, entry2, NULL }; if (putenv ((char *) "a=1")) return 1; if (putenv (entry2)) return 2; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 3; if (!unsetenv ("") || errno != EINVAL) return 4; entry2[0] = 'b'; environ = env; if (!getenv ("a")) return 5; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 6; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : gl_cv_func_unsetenv_works=yes else gl_cv_func_unsetenv_works=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_unsetenv_works" >&5 $as_echo "$gl_cv_func_unsetenv_works" >&6; } case "$gl_cv_func_unsetenv_works" in *yes) ;; *) REPLACE_UNSETENV=1 ;; esac fi if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then lgltests_LIBOBJS="$lgltests_LIBOBJS unsetenv.$ac_objext" fi if test "$GNULIB_UNSETENV" != 1; then if test "$GNULIB_UNSETENV" = 0; then GNULIB_UNSETENV=$gl_module_indicator_condition else GNULIB_UNSETENV="($GNULIB_UNSETENV || $gl_module_indicator_condition)" fi fi $as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h if test $gl_cv_have_include_next = yes; then gl_cv_next_wchar_h='<'wchar.h'>' else { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of " >&5 $as_echo_n "checking absolute name of ... " >&6; } if ${gl_cv_next_wchar_h+:} false; then : $as_echo_n "(cached) " >&6 else if test $ac_cv_header_wchar_h = yes; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac case "$host_os" in mingw*) gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' gl_header_literal_regex=`echo 'wchar.h' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ s|^/[^/]|//&| p q }' gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | sed -n "$gl_absolute_header_sed"`'"' else gl_cv_next_wchar_h='<'wchar.h'>' fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_wchar_h" >&5 $as_echo "$gl_cv_next_wchar_h" >&6; } fi NEXT_WCHAR_H=$gl_cv_next_wchar_h if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'wchar.h'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=$gl_cv_next_wchar_h fi NEXT_AS_FIRST_DIRECTIVE_WCHAR_H=$gl_next_as_first_directive if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi for gl_func in btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gl_func is declared without a macro" >&5 $as_echo_n "checking whether $gl_func is declared without a macro... " >&6; } if eval \${$as_gl_Symbol+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include int main () { #undef $gl_func (void) $gl_func; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Symbol=yes" else eval "$as_gl_Symbol=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$as_gl_Symbol { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Symbol"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_RAW_DECL_$gl_func" | $as_tr_cpp` 1 _ACEOF eval ac_cv_have_decl_$gl_func=yes fi done YIELD_LIB= if test $gl_threads_api = posix; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lrt" >&5 $as_echo_n "checking for sched_yield in -lrt... " >&6; } if ${ac_cv_lib_rt_sched_yield+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lrt $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sched_yield (); int main () { return sched_yield (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_rt_sched_yield=yes else ac_cv_lib_rt_sched_yield=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_sched_yield" >&5 $as_echo "$ac_cv_lib_rt_sched_yield" >&6; } if test "x$ac_cv_lib_rt_sched_yield" = xyes; then : YIELD_LIB=-lrt else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_yield in -lposix4" >&5 $as_echo_n "checking for sched_yield in -lposix4... " >&6; } if ${ac_cv_lib_posix4_sched_yield+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lposix4 $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sched_yield (); int main () { return sched_yield (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_posix4_sched_yield=yes else ac_cv_lib_posix4_sched_yield=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix4_sched_yield" >&5 $as_echo "$ac_cv_lib_posix4_sched_yield" >&6; } if test "x$ac_cv_lib_posix4_sched_yield" = xyes; then : YIELD_LIB=-lposix4 fi fi fi LIBTESTS_LIBDEPS="$gltests_libdeps" # Check if locale stuff works { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5 $as_echo_n "checking for nl_langinfo and CODESET... " >&6; } if ${am_cv_langinfo_codeset+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { char* cs = nl_langinfo(CODESET); return !cs; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_langinfo_codeset=yes else am_cv_langinfo_codeset=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5 $as_echo "$am_cv_langinfo_codeset" >&6; } if test $am_cv_langinfo_codeset = yes; then $as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h fi # Make it possible to disable TLD code. # Check whether --enable-tld was given. if test "${enable_tld+set}" = set; then : enableval=$enable_tld; enable_tld=$enableval else enable_tld=yes fi if test "$enable_tld" != "no"; then TLD_TRUE= TLD_FALSE='#' else TLD_TRUE='#' TLD_FALSE= fi if test "$enable_tld" != "no"; then $as_echo "#define WITH_TLD 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if TLD API for specific TLD rules should be built" >&5 $as_echo_n "checking if TLD API for specific TLD rules should be built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_tld" >&5 $as_echo "$enable_tld" >&6; } # Check for gtk-doc. if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PKG_CONFIG=$ac_cv_path_PKG_CONFIG if test -n "$PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 $as_echo "$PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_path_PKG_CONFIG"; then ac_pt_PKG_CONFIG=$PKG_CONFIG # Extract the first word of "pkg-config", so it can be a program name with args. set dummy pkg-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else case $ac_pt_PKG_CONFIG in [\\/]* | ?:[\\/]*) ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG if test -n "$ac_pt_PKG_CONFIG"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 $as_echo "$ac_pt_PKG_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_pt_PKG_CONFIG" = x; then PKG_CONFIG="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac PKG_CONFIG=$ac_pt_PKG_CONFIG fi else PKG_CONFIG="$ac_cv_path_PKG_CONFIG" fi fi if test -n "$PKG_CONFIG"; then _pkg_min_version=0.9.0 { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 $as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } PKG_CONFIG="" fi fi # Extract the first word of "gtkdoc-check", so it can be a program name with args. set dummy gtkdoc-check; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_CHECK+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_CHECK in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK if test -n "$GTKDOC_CHECK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 $as_echo "$GTKDOC_CHECK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi for ac_prog in gtkdoc-rebase do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_REBASE+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_REBASE in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_REBASE="$GTKDOC_REBASE" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_REBASE="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_REBASE=$ac_cv_path_GTKDOC_REBASE if test -n "$GTKDOC_REBASE"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_REBASE" >&5 $as_echo "$GTKDOC_REBASE" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$GTKDOC_REBASE" && break done test -n "$GTKDOC_REBASE" || GTKDOC_REBASE="true" # Extract the first word of "gtkdoc-mkpdf", so it can be a program name with args. set dummy gtkdoc-mkpdf; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_GTKDOC_MKPDF+:} false; then : $as_echo_n "(cached) " >&6 else case $GTKDOC_MKPDF in [\\/]* | ?:[\\/]*) ac_cv_path_GTKDOC_MKPDF="$GTKDOC_MKPDF" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_GTKDOC_MKPDF="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi GTKDOC_MKPDF=$ac_cv_path_GTKDOC_MKPDF if test -n "$GTKDOC_MKPDF"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_MKPDF" >&5 $as_echo "$GTKDOC_MKPDF" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # Check whether --with-html-dir was given. if test "${with_html_dir+set}" = set; then : withval=$with_html_dir; else with_html_dir='${datadir}/gtk-doc/html' fi HTML_DIR="$with_html_dir" # Check whether --enable-gtk-doc was given. if test "${enable_gtk_doc+set}" = set; then : enableval=$enable_gtk_doc; else enable_gtk_doc=no fi if test x$enable_gtk_doc = xyes; then if test -n "$PKG_CONFIG" && \ { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.1\""; } >&5 ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.1") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : else as_fn_error $? "You need to have gtk-doc >= 1.1 installed to build $PACKAGE_NAME" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 $as_echo_n "checking whether to build gtk-doc documentation... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 $as_echo "$enable_gtk_doc" >&6; } # Check whether --enable-gtk-doc-html was given. if test "${enable_gtk_doc_html+set}" = set; then : enableval=$enable_gtk_doc_html; else enable_gtk_doc_html=yes fi # Check whether --enable-gtk-doc-pdf was given. if test "${enable_gtk_doc_pdf+set}" = set; then : enableval=$enable_gtk_doc_pdf; else enable_gtk_doc_pdf=no fi if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi if test x$enable_gtk_doc = xyes; then ENABLE_GTK_DOC_TRUE= ENABLE_GTK_DOC_FALSE='#' else ENABLE_GTK_DOC_TRUE='#' ENABLE_GTK_DOC_FALSE= fi if test x$enable_gtk_doc_html = xyes; then GTK_DOC_BUILD_HTML_TRUE= GTK_DOC_BUILD_HTML_FALSE='#' else GTK_DOC_BUILD_HTML_TRUE='#' GTK_DOC_BUILD_HTML_FALSE= fi if test x$enable_gtk_doc_pdf = xyes; then GTK_DOC_BUILD_PDF_TRUE= GTK_DOC_BUILD_PDF_FALSE='#' else GTK_DOC_BUILD_PDF_TRUE='#' GTK_DOC_BUILD_PDF_FALSE= fi if test -n "$LIBTOOL"; then GTK_DOC_USE_LIBTOOL_TRUE= GTK_DOC_USE_LIBTOOL_FALSE='#' else GTK_DOC_USE_LIBTOOL_TRUE='#' GTK_DOC_USE_LIBTOOL_FALSE= fi if test -n "$GTKDOC_REBASE"; then GTK_DOC_USE_REBASE_TRUE= GTK_DOC_USE_REBASE_FALSE='#' else GTK_DOC_USE_REBASE_TRUE='#' GTK_DOC_USE_REBASE_FALSE= fi # Check for java # Check whether --enable-java was given. if test "${enable_java+set}" = set; then : enableval=$enable_java; else enable_java=no fi if test -n "$ac_tool_prefix"; then for ac_prog in gcj do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GCJ"; then ac_cv_prog_GCJ="$GCJ" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GCJ="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GCJ=$ac_cv_prog_GCJ if test -n "$GCJ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCJ" >&5 $as_echo "$GCJ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$GCJ" && break done fi if test -z "$GCJ"; then ac_ct_GCJ=$GCJ for ac_prog in gcj do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_GCJ"; then ac_cv_prog_ac_ct_GCJ="$ac_ct_GCJ" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_GCJ="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_GCJ=$ac_cv_prog_ac_ct_GCJ if test -n "$ac_ct_GCJ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCJ" >&5 $as_echo "$ac_ct_GCJ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_GCJ" && break done if test "x$ac_ct_GCJ" = x; then GCJ="gcj" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac GCJ=$ac_ct_GCJ fi fi test -z "$GCJ" && as_fn_error $? "no acceptable gcj found in \$PATH" "$LINENO" 5 if test "x${GCJFLAGS-unset}" = xunset; then GCJFLAGS="-g -O2" fi depcc="$GCJ" am_compiler_list='gcc3 gcc' { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_GCJ_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_GCJ_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_GCJ_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_GCJ_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_GCJ_dependencies_compiler_type" >&5 $as_echo "$am_cv_GCJ_dependencies_compiler_type" >&6; } GCJDEPMODE=depmode=$am_cv_GCJ_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_GCJ_dependencies_compiler_type" = gcc3; then am__fastdepGCJ_TRUE= am__fastdepGCJ_FALSE='#' else am__fastdepGCJ_TRUE='#' am__fastdepGCJ_FALSE= fi if test -n "$ac_tool_prefix"; then for ac_prog in gcj do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$GCJ"; then ac_cv_prog_GCJ="$GCJ" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_GCJ="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi GCJ=$ac_cv_prog_GCJ if test -n "$GCJ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCJ" >&5 $as_echo "$GCJ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$GCJ" && break done fi if test -z "$GCJ"; then ac_ct_GCJ=$GCJ for ac_prog in gcj do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_GCJ"; then ac_cv_prog_ac_ct_GCJ="$ac_ct_GCJ" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_GCJ="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_GCJ=$ac_cv_prog_ac_ct_GCJ if test -n "$ac_ct_GCJ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCJ" >&5 $as_echo "$ac_ct_GCJ" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_GCJ" && break done if test "x$ac_ct_GCJ" = x; then GCJ="gcj" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac GCJ=$ac_ct_GCJ fi fi test -z "$GCJ" && as_fn_error $? "no acceptable gcj found in \$PATH" "$LINENO" 5 if test "x${GCJFLAGS-unset}" = xunset; then GCJFLAGS="-g -O2" fi depcc="$GCJ" am_compiler_list='gcc3 gcc' { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_GCJ_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_GCJ_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_GCJ_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_GCJ_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_GCJ_dependencies_compiler_type" >&5 $as_echo "$am_cv_GCJ_dependencies_compiler_type" >&6; } GCJDEPMODE=depmode=$am_cv_GCJ_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_GCJ_dependencies_compiler_type" = gcc3; then am__fastdepGCJ_TRUE= am__fastdepGCJ_FALSE='#' else am__fastdepGCJ_TRUE='#' am__fastdepGCJ_FALSE= fi # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o objext_GCJ=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC compiler_GCJ=$CC LD_GCJ="$LD" for cc_temp in $compiler""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` # GCJ did not exist at the time GCC didn't implicitly link libc in. archive_cmds_need_lc_GCJ=no old_archive_cmds_GCJ=$old_archive_cmds reload_flag_GCJ=$reload_flag reload_cmds_GCJ=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag_GCJ= if test "$GCC" = yes; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag_GCJ=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl_GCJ= lt_prog_compiler_pic_GCJ= lt_prog_compiler_static_GCJ= if test "$GCC" = yes; then lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_static_GCJ='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_GCJ='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_GCJ='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_GCJ= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared_GCJ=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_GCJ='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_GCJ=-Kconform_pic fi ;; *) lt_prog_compiler_pic_GCJ='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl_GCJ='-Xlinker ' if test -n "$lt_prog_compiler_pic_GCJ"; then lt_prog_compiler_pic_GCJ="-Xcompiler $lt_prog_compiler_pic_GCJ" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_GCJ='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_GCJ='-Bstatic' else lt_prog_compiler_static_GCJ='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_GCJ='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_GCJ='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_GCJ='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_GCJ='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fPIC' lt_prog_compiler_static_GCJ='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='--shared' lt_prog_compiler_static_GCJ='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl_GCJ='-Wl,-Wl,,' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; ccc*) lt_prog_compiler_wl_GCJ='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-qpic' lt_prog_compiler_static_GCJ='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' lt_prog_compiler_wl_GCJ='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fPIC' lt_prog_compiler_static_GCJ='-static' ;; *Portland\ Group*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-fpic' lt_prog_compiler_static_GCJ='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_GCJ='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_GCJ='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_GCJ='-non_shared' ;; rdos*) lt_prog_compiler_static_GCJ='-non_shared' ;; solaris*) lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl_GCJ='-Qoption ld ';; *) lt_prog_compiler_wl_GCJ='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_GCJ='-Qoption ld ' lt_prog_compiler_pic_GCJ='-PIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then lt_prog_compiler_pic_GCJ='-Kconform_pic' lt_prog_compiler_static_GCJ='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_pic_GCJ='-KPIC' lt_prog_compiler_static_GCJ='-Bstatic' ;; unicos*) lt_prog_compiler_wl_GCJ='-Wl,' lt_prog_compiler_can_build_shared_GCJ=no ;; uts4*) lt_prog_compiler_pic_GCJ='-pic' lt_prog_compiler_static_GCJ='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_GCJ=no ;; esac fi case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_GCJ= ;; *) lt_prog_compiler_pic_GCJ="$lt_prog_compiler_pic_GCJ" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_GCJ=$lt_prog_compiler_pic_GCJ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_GCJ" >&5 $as_echo "$lt_cv_prog_compiler_pic_GCJ" >&6; } lt_prog_compiler_pic_GCJ=$lt_cv_prog_compiler_pic_GCJ # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_GCJ"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; } if ${lt_cv_prog_compiler_pic_works_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_GCJ=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_GCJ" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_GCJ=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_GCJ" >&6; } if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then case $lt_prog_compiler_pic_GCJ in "" | " "*) ;; *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; esac else lt_prog_compiler_pic_GCJ= lt_prog_compiler_can_build_shared_GCJ=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_GCJ=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_GCJ=yes fi else lt_cv_prog_compiler_static_works_GCJ=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_GCJ" >&5 $as_echo "$lt_cv_prog_compiler_static_works_GCJ" >&6; } if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then : else lt_prog_compiler_static_GCJ= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_GCJ=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 $as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_GCJ=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_GCJ=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_GCJ" >&5 $as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; } hard_links="nottested" if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test "$hard_links" = no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_GCJ= always_export_symbols_GCJ=no archive_cmds_GCJ= archive_expsym_cmds_GCJ= compiler_needs_object_GCJ=no enable_shared_with_static_runtimes_GCJ=no export_dynamic_flag_spec_GCJ= export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic_GCJ=no hardcode_direct_GCJ=no hardcode_direct_absolute_GCJ=no hardcode_libdir_flag_spec_GCJ= hardcode_libdir_separator_GCJ= hardcode_minus_L_GCJ=no hardcode_shlibpath_var_GCJ=unsupported inherit_rpath_GCJ=no link_all_deplibs_GCJ=unknown module_cmds_GCJ= module_expsym_cmds_GCJ= old_archive_from_new_cmds_GCJ= old_archive_from_expsyms_cmds_GCJ= thread_safe_flag_spec_GCJ= whole_archive_flag_spec_GCJ= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_GCJ= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs_GCJ=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_GCJ="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else whole_archive_flag_spec_GCJ= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='' ;; m68k) archive_cmds_GCJ='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_GCJ=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_GCJ='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else ld_shlibs_GCJ=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, GCJ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_GCJ='-L$libdir' export_dynamic_flag_spec_GCJ='${wl}--export-all-symbols' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=no enable_shared_with_static_runtimes_GCJ=yes export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_GCJ='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_GCJ=no fi ;; haiku*) archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_GCJ=yes ;; interix[3-9]*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_GCJ= tmp_sharedflag='--shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec_GCJ='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_GCJ=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' compiler_needs_object_GCJ=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_GCJ='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec_GCJ='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' archive_cmds_GCJ='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then archive_expsym_cmds_GCJ='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs_GCJ=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_GCJ=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac ;; sunos4*) archive_cmds_GCJ='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_GCJ=no fi ;; esac if test "$ld_shlibs_GCJ" = no; then runpath_var= hardcode_libdir_flag_spec_GCJ= export_dynamic_flag_spec_GCJ= whole_archive_flag_spec_GCJ= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes archive_expsym_cmds_GCJ='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L_GCJ=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_GCJ=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_GCJ='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_GCJ='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_GCJ='' hardcode_direct_GCJ=yes hardcode_direct_absolute_GCJ=yes hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes file_list_spec_GCJ='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_GCJ=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_GCJ=yes hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_libdir_separator_GCJ= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi export_dynamic_flag_spec_GCJ='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols_GCJ=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_GCJ='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__GCJ+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__GCJ=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__GCJ"; then lt_cv_aix_libpath__GCJ=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__GCJ"; then lt_cv_aix_libpath__GCJ="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__GCJ fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_GCJ='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec_GCJ='${wl}-R $libdir:/usr/lib:/lib' allow_undefined_flag_GCJ="-z nodefs" archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__GCJ+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__GCJ=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__GCJ"; then lt_cv_aix_libpath__GCJ=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__GCJ"; then lt_cv_aix_libpath__GCJ="/usr/lib:/lib" fi fi aix_libpath=$lt_cv_aix_libpath__GCJ fi hardcode_libdir_flag_spec_GCJ='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_GCJ=' ${wl}-bernotok' allow_undefined_flag_GCJ=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_GCJ='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_GCJ='$convenience' fi archive_cmds_need_lc_GCJ=yes # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_GCJ="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' archive_expsym_cmds_GCJ='' ;; m68k) archive_cmds_GCJ='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec_GCJ=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported always_export_symbols_GCJ=yes file_list_spec_GCJ='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' archive_expsym_cmds_GCJ='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, GCJ)='true' enable_shared_with_static_runtimes_GCJ=yes exclude_expsyms_GCJ='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds_GCJ='chmod 644 $oldlib' postlink_cmds_GCJ='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec_GCJ=' ' allow_undefined_flag_GCJ=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. archive_cmds_GCJ='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds_GCJ='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes_GCJ=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_GCJ=no hardcode_direct_GCJ=no hardcode_automatic_GCJ=yes hardcode_shlibpath_var_GCJ=unsupported if test "$lt_cv_ld_force_load" = "yes"; then whole_archive_flag_spec_GCJ='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_GCJ='' fi link_all_deplibs_GCJ=yes allow_undefined_flag_GCJ="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" else ld_shlibs_GCJ=no fi ;; dgux*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; hpux9*) if test "$GCC" = yes; then archive_cmds_GCJ='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else archive_cmds_GCJ='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then archive_cmds_GCJ='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_direct_GCJ=yes hardcode_direct_absolute_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_GCJ='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec_GCJ='${wl}+b ${wl}$libdir' hardcode_libdir_separator_GCJ=: case $host_cpu in hppa*64*|ia64*) hardcode_direct_GCJ=no hardcode_shlibpath_var_GCJ=no ;; *) hardcode_direct_GCJ=yes hardcode_direct_absolute_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_GCJ=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS="$save_LDFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test "$lt_cv_irix_exported_symbol" = yes; then archive_expsym_cmds_GCJ='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc_GCJ='no' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: inherit_rpath_GCJ=yes link_all_deplibs_GCJ=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_GCJ='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; newsos6) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: hardcode_shlibpath_var_GCJ=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_GCJ=yes hardcode_shlibpath_var_GCJ=no hardcode_direct_absolute_GCJ=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' export_dynamic_flag_spec_GCJ='${wl}-E' else case $host_os in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-R$libdir' ;; *) archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs_GCJ=no fi ;; os2*) hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_minus_L_GCJ=yes allow_undefined_flag_GCJ=unsupported archive_cmds_GCJ='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' old_archive_from_new_cmds_GCJ='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi archive_cmds_need_lc_GCJ='no' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator_GCJ=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then allow_undefined_flag_GCJ=' ${wl}-expect_unresolved ${wl}\*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' hardcode_libdir_flag_spec_GCJ='${wl}-rpath ${wl}$libdir' else allow_undefined_flag_GCJ=' -expect_unresolved \*' archive_cmds_GCJ='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' archive_expsym_cmds_GCJ='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec_GCJ='-rpath $libdir' fi archive_cmds_need_lc_GCJ='no' hardcode_libdir_separator_GCJ=: ;; solaris*) no_undefined_flag_GCJ=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' archive_cmds_GCJ='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds_GCJ='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_GCJ='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' archive_cmds_GCJ='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec_GCJ='-R$libdir' hardcode_shlibpath_var_GCJ=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_GCJ=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_GCJ='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_direct_GCJ=yes hardcode_minus_L_GCJ=yes hardcode_shlibpath_var_GCJ=no ;; sysv4) case $host_vendor in sni) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_GCJ='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_GCJ='$CC -r -o $output$reload_objs' hardcode_direct_GCJ=no ;; motorola) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_GCJ=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_GCJ=no ;; sysv4.3*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no export_dynamic_flag_spec_GCJ='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_GCJ=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_GCJ=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_GCJ='${wl}-z,text' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_GCJ='${wl}-z,text' allow_undefined_flag_GCJ='${wl}-z,nodefs' archive_cmds_need_lc_GCJ=no hardcode_shlibpath_var_GCJ=no hardcode_libdir_flag_spec_GCJ='${wl}-R,$libdir' hardcode_libdir_separator_GCJ=':' link_all_deplibs_GCJ=yes export_dynamic_flag_spec_GCJ='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then archive_cmds_GCJ='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_GCJ='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_GCJ='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_GCJ='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_GCJ='-L$libdir' hardcode_shlibpath_var_GCJ=no ;; *) ld_shlibs_GCJ=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec_GCJ='${wl}-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_GCJ" >&5 $as_echo "$ld_shlibs_GCJ" >&6; } test "$ld_shlibs_GCJ" = no && can_build_shared=no with_gnu_ld_GCJ=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_GCJ" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_GCJ=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $archive_cmds_GCJ in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_GCJ+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_GCJ pic_flag=$lt_prog_compiler_pic_GCJ compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_GCJ allow_undefined_flag_GCJ= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_GCJ 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_GCJ 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_GCJ=no else lt_cv_archive_cmds_need_lc_GCJ=yes fi allow_undefined_flag_GCJ=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_GCJ" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_GCJ" >&6; } archive_cmds_need_lc_GCJ=$lt_cv_archive_cmds_need_lc_GCJ ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_GCJ= if test -n "$hardcode_libdir_flag_spec_GCJ" || test -n "$runpath_var_GCJ" || test "X$hardcode_automatic_GCJ" = "Xyes" ; then # We can hardcode non-existent directories. if test "$hardcode_direct_GCJ" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, GCJ)" != no && test "$hardcode_minus_L_GCJ" != no; then # Linking always hardcodes the temporary library directory. hardcode_action_GCJ=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_GCJ=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_GCJ=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_GCJ" >&5 $as_echo "$hardcode_action_GCJ" >&6; } if test "$hardcode_action_GCJ" = relink || test "$inherit_rpath_GCJ" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS if test "$enable_java" != "no"; then if test "x$JAVAPREFIX" = x; then test "x$JAR" = x && for ac_prog in jar$EXEEXT do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAR"; then ac_cv_prog_JAR="$JAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAR=$ac_cv_prog_JAR if test -n "$JAR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAR" >&5 $as_echo "$JAR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAR" && break done else test "x$JAR" = x && for ac_prog in jar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_JAR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$JAR"; then ac_cv_prog_JAR="$JAR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_JAR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi JAR=$ac_cv_prog_JAR if test -n "$JAR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAR" >&5 $as_echo "$JAR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$JAR" && break done test -n "$JAR" || JAR="$JAVAPREFIX" fi test "x$JAR" = x && as_fn_error $? "no acceptable jar program found in \$PATH" "$LINENO" 5 GJDOC=${GJDOC-"${am_missing_run}gjdoc"} fi if test "$enable_java" != "no"; then JAVA_TRUE= JAVA_FALSE='#' else JAVA_TRUE='#' JAVA_FALSE= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if implementation in Java should be built" >&5 $as_echo_n "checking if implementation in Java should be built... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_java" >&5 $as_echo "$enable_java" >&6; } # Check for C# if test -n "$HAVE_CSHARPCOMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C# program execution engine" >&5 $as_echo_n "checking for C# program execution engine... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ yes #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "yes" >/dev/null 2>&1; then : MONO_PATH_SEPARATOR=';' else MONO_PATH_SEPARATOR=':' fi rm -f conftest* HAVE_CSHARPEXEC=1 # Extract the first word of "ilrun", so it can be a program name with args. set dummy ilrun; ac_word=$2 : if ${ac_cv_prog_HAVE_ILRUN_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_ILRUN_IN_PATH"; then ac_cv_prog_HAVE_ILRUN_IN_PATH="$HAVE_ILRUN_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_ILRUN_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_ILRUN_IN_PATH=$ac_cv_prog_HAVE_ILRUN_IN_PATH if test -n "$HAVE_ILRUN_IN_PATH"; then : else : fi # Extract the first word of "mono", so it can be a program name with args. set dummy mono; ac_word=$2 : if ${ac_cv_prog_HAVE_MONO_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_MONO_IN_PATH"; then ac_cv_prog_HAVE_MONO_IN_PATH="$HAVE_MONO_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_MONO_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_MONO_IN_PATH=$ac_cv_prog_HAVE_MONO_IN_PATH if test -n "$HAVE_MONO_IN_PATH"; then : else : fi # Extract the first word of "clix", so it can be a program name with args. set dummy clix; ac_word=$2 : if ${ac_cv_prog_HAVE_CLIX_IN_PATH+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$HAVE_CLIX_IN_PATH"; then ac_cv_prog_HAVE_CLIX_IN_PATH="$HAVE_CLIX_IN_PATH" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAVE_CLIX_IN_PATH="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi HAVE_CLIX_IN_PATH=$ac_cv_prog_HAVE_CLIX_IN_PATH if test -n "$HAVE_CLIX_IN_PATH"; then : else : fi for impl in "$CSHARP_CHOICE" pnet mono no; do case "$impl" in pnet) if test -n "$HAVE_ILRUN_IN_PATH" \ && ilrun --version >/dev/null 2>/dev/null \ ; then HAVE_ILRUN=1 ac_result="ilrun" break fi ;; mono) if test -n "$HAVE_MONO_IN_PATH" \ && mono --version >/dev/null 2>/dev/null \ ; then HAVE_MONO=1 ac_result="mono" break fi ;; sscli) if test -n "$HAVE_CLIX_IN_PATH" \ ; then HAVE_CLIX=1 case $host_os in cygwin* | mingw* | pw32*) CLIX_PATH_VAR=PATH ;; darwin* | rhapsody*) CLIX_PATH_VAR=DYLD_LIBRARY_PATH ;; *) CLIX_PATH_VAR=LD_LIBRARY_PATH ;; esac eval CLIX_PATH=\"\$CLIX_PATH_VAR\" ac_result="clix" break fi ;; no) HAVE_CSHARPEXEC= ac_result="no" break ;; esac done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_result" >&5 $as_echo "$ac_result" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if implementation in C# should be built" >&5 $as_echo_n "checking if implementation in C# should be built... " >&6; } if test -n "$HAVE_CSHARPCOMP" && test -n "$HAVE_CSHARPEXEC"; then enable_csharp=yes else enable_csharp=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_csharp" >&5 $as_echo "$enable_csharp" >&6; } if test "$enable_csharp" = yes; then CSHARP_TRUE= CSHARP_FALSE='#' else CSHARP_TRUE='#' CSHARP_FALSE= fi # Update version number in lib/libtasn1.h. if ! sed 's/_VERSION ".*"/_VERSION "'$PACKAGE_VERSION'"/' $srcdir/lib/stringprep.h > fixhdr.tmp; then as_fn_error $? "*** Failed to update version number in $srcdir/lib/stringprep.h..." "$LINENO" 5 fi if cmp -s $srcdir/lib/stringprep.h fixhdr.tmp 2>/dev/null; then rm -f fixhdr.tmp elif ! mv fixhdr.tmp $srcdir/lib/stringprep.h; then as_fn_error $? "*** Failed to move fixhdr.tmp to $srcdir/lib/stringprep.h..." "$LINENO" 5 fi # Check whether --enable-gcc-warnings was given. if test "${enable_gcc_warnings+set}" = set; then : enableval=$enable_gcc_warnings; case $enableval in yes|no) ;; *) as_fn_error $? "bad value $enableval for gcc-warnings option" "$LINENO" 5 ;; esac gl_gcc_warnings=$enableval else gl_gcc_warnings=no fi if test "$gl_gcc_warnings" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror -Wunknown-warning-option" >&5 $as_echo_n "checking whether C compiler handles -Werror -Wunknown-warning-option... " >&6; } if ${gl_cv_warn_c__Werror__Wunknown_warning_option+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror -Wunknown-warning-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_warn_c__Werror__Wunknown_warning_option=yes else gl_cv_warn_c__Werror__Wunknown_warning_option=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror__Wunknown_warning_option" >&5 $as_echo "$gl_cv_warn_c__Werror__Wunknown_warning_option" >&6; } if test "x$gl_cv_warn_c__Werror__Wunknown_warning_option" = xyes; then : gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror' else gl_unknown_warnings_are_errors= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Werror" >&5 $as_echo_n "checking whether C compiler handles -Werror... " >&6; } if ${gl_cv_warn_c__Werror+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_warn_c__Werror=yes else gl_cv_warn_c__Werror=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Werror" >&5 $as_echo "$gl_cv_warn_c__Werror" >&6; } if test "x$gl_cv_warn_c__Werror" = xyes; then : as_fn_append WERROR_CFLAGS " -Werror" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wframe-larger-than=112" >&5 $as_echo_n "checking whether C compiler handles -Wframe-larger-than=112... " >&6; } if ${gl_cv_warn_c__Wframe_larger_than_112+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wframe-larger-than=112" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_warn_c__Wframe_larger_than_112=yes else gl_cv_warn_c__Wframe_larger_than_112=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wframe_larger_than_112" >&5 $as_echo "$gl_cv_warn_c__Wframe_larger_than_112" >&6; } if test "x$gl_cv_warn_c__Wframe_larger_than_112" = xyes; then : as_fn_append WSTACK_CFLAGS " -Wframe-larger-than=112" fi nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings nw="$nw -Wpadded" # Struct in src/idn_cmd.h is not padded nw="$nw -Wformat" # Self tests and examples print size_t as %d nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers nw="$nw -Woverlength-strings" # Some of our strings are too large nw="$nw -Wsign-conversion" # Too many warnings for now nw="$nw -Wconversion" # Too many warnings for now nw="$nw -Wtraditional" # Warns on #elif which we use often nw="$nw -Wtraditional-conversion" # Too many warnings for now nw="$nw -Wmissing-noreturn" # Too many warnings for now nw="$nw -Wunreachable-code" # Too many false positives nw="$nw -Wlogical-op" # Too many false positives nw="$nw -Wsuggest-attribute=pure" # Is it worth using attributes? nw="$nw -Wsuggest-attribute=const" # Is it worth using attributes? if test -n "$GCC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is supported" >&5 $as_echo_n "checking whether -Wno-missing-field-initializers is supported... " >&6; } if ${gl_cv_cc_nomfi_supported+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_nomfi_supported=yes else gl_cv_cc_nomfi_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5 $as_echo "$gl_cv_cc_nomfi_supported" >&6; } if test "$gl_cv_cc_nomfi_supported" = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wno-missing-field-initializers is needed" >&5 $as_echo_n "checking whether -Wno-missing-field-initializers is needed... " >&6; } if ${gl_cv_cc_nomfi_needed+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -W -Werror" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ void f (void) { typedef struct { int a; int b; } s_t; s_t s1 = { 0, }; } int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_nomfi_needed=no else gl_cv_cc_nomfi_needed=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5 $as_echo "$gl_cv_cc_nomfi_needed" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -Wuninitialized is supported" >&5 $as_echo_n "checking whether -Wuninitialized is supported... " >&6; } if ${gl_cv_cc_uninitialized_supported+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wuninitialized" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_cc_uninitialized_supported=yes else gl_cv_cc_uninitialized_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_CFLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5 $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } fi # List all gcc warning categories. gl_manywarn_set= for gl_manywarn_item in \ -W \ -Wabi \ -Waddress \ -Waggressive-loop-optimizations \ -Wall \ -Warray-bounds \ -Wattributes \ -Wbad-function-cast \ -Wbuiltin-macro-redefined \ -Wcast-align \ -Wchar-subscripts \ -Wclobbered \ -Wcomment \ -Wcomments \ -Wcoverage-mismatch \ -Wcpp \ -Wdeprecated \ -Wdeprecated-declarations \ -Wdisabled-optimization \ -Wdiv-by-zero \ -Wdouble-promotion \ -Wempty-body \ -Wendif-labels \ -Wenum-compare \ -Wextra \ -Wformat-contains-nul \ -Wformat-extra-args \ -Wformat-nonliteral \ -Wformat-security \ -Wformat-y2k \ -Wformat-zero-length \ -Wfree-nonheap-object \ -Wignored-qualifiers \ -Wimplicit \ -Wimplicit-function-declaration \ -Wimplicit-int \ -Winit-self \ -Winline \ -Wint-to-pointer-cast \ -Winvalid-memory-model \ -Winvalid-pch \ -Wjump-misses-init \ -Wlogical-op \ -Wmain \ -Wmaybe-uninitialized \ -Wmissing-braces \ -Wmissing-declarations \ -Wmissing-field-initializers \ -Wmissing-include-dirs \ -Wmissing-parameter-type \ -Wmissing-prototypes \ -Wmudflap \ -Wmultichar \ -Wnarrowing \ -Wnested-externs \ -Wnonnull \ -Wnormalized=nfc \ -Wold-style-declaration \ -Wold-style-definition \ -Woverflow \ -Woverlength-strings \ -Woverride-init \ -Wpacked \ -Wpacked-bitfield-compat \ -Wparentheses \ -Wpointer-arith \ -Wpointer-sign \ -Wpointer-to-int-cast \ -Wpragmas \ -Wreturn-local-addr \ -Wreturn-type \ -Wsequence-point \ -Wshadow \ -Wsizeof-pointer-memaccess \ -Wstack-protector \ -Wstrict-aliasing \ -Wstrict-overflow \ -Wstrict-prototypes \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wswitch \ -Wswitch-default \ -Wsync-nand \ -Wsystem-headers \ -Wtrampolines \ -Wtrigraphs \ -Wtype-limits \ -Wuninitialized \ -Wunknown-pragmas \ -Wunsafe-loop-optimizations \ -Wunused \ -Wunused-but-set-parameter \ -Wunused-but-set-variable \ -Wunused-function \ -Wunused-label \ -Wunused-local-typedefs \ -Wunused-macros \ -Wunused-parameter \ -Wunused-result \ -Wunused-value \ -Wunused-variable \ -Wvarargs \ -Wvariadic-macros \ -Wvector-operation-performance \ -Wvla \ -Wvolatile-register-var \ -Wwrite-strings \ \ ; do gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item" done # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers" fi if test "$gl_cv_cc_uninitialized_supported" = no; then gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized" fi ws=$gl_manywarn_set gl_warn_set= set x $ws; shift for gl_warn_item do case " $nw " in *" $gl_warn_item "*) ;; *) gl_warn_set="$gl_warn_set $gl_warn_item" ;; esac done ws=$gl_warn_set for w in $ws; do as_gl_Warn=`$as_echo "gl_cv_warn_c_$w" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles $w" >&5 $as_echo_n "checking whether C compiler handles $w... " >&6; } if eval \${$as_gl_Warn+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors $w" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$as_gl_Warn=yes" else eval "$as_gl_Warn=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi eval ac_res=\$$as_gl_Warn { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_gl_Warn"\" = x"yes"; then : as_fn_append WARN_CFLAGS " $w" fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -fdiagnostics-show-option" >&5 $as_echo_n "checking whether C compiler handles -fdiagnostics-show-option... " >&6; } if ${gl_cv_warn_c__fdiagnostics_show_option+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -fdiagnostics-show-option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_warn_c__fdiagnostics_show_option=yes else gl_cv_warn_c__fdiagnostics_show_option=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__fdiagnostics_show_option" >&5 $as_echo "$gl_cv_warn_c__fdiagnostics_show_option" >&6; } if test "x$gl_cv_warn_c__fdiagnostics_show_option" = xyes; then : as_fn_append WARN_CFLAGS " -fdiagnostics-show-option" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-missing-field-initializers" >&5 $as_echo_n "checking whether C compiler handles -Wno-missing-field-initializers... " >&6; } if ${gl_cv_warn_c__Wno_missing_field_initializers+:} false; then : $as_echo_n "(cached) " >&6 else gl_save_compiler_FLAGS="$CFLAGS" as_fn_append CFLAGS " $gl_unknown_warnings_are_errors -Wno-missing-field-initializers" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : gl_cv_warn_c__Wno_missing_field_initializers=yes else gl_cv_warn_c__Wno_missing_field_initializers=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS="$gl_save_compiler_FLAGS" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_warn_c__Wno_missing_field_initializers" >&5 $as_echo "$gl_cv_warn_c__Wno_missing_field_initializers" >&6; } if test "x$gl_cv_warn_c__Wno_missing_field_initializers" = xyes; then : as_fn_append WARN_CFLAGS " -Wno-missing-field-initializers" fi # Rely on missing field = 0. fi ac_config_files="$ac_config_files Makefile contrib/doxygen/Doxyfile csharp/Makefile doc/Makefile doc/cyclo/Makefile doc/java/Makefile doc/reference/Makefile doc/reference/version.xml doc/specifications/Makefile doc/tld/Makefile examples/Makefile gl/Makefile gltests/Makefile java/Makefile java/pom.xml java/src/Makefile java/src/main/Makefile java/src/main/java/Makefile java/src/main/java/gnu/Makefile java/src/main/java/gnu/inet/Makefile java/src/main/java/gnu/inet/encoding/Makefile java/src/util/Makefile java/src/util/java/Makefile java/src/test/Makefile java/src/test/java/Makefile lib/Makefile lib/gl/Makefile lib/gltests/Makefile libidn.pc po/Makefile.in src/Makefile tests/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi CONFIG_INCLUDE=config.h if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi gl_LIBOBJS=$gl_libobjs gl_LTLIBOBJS=$gl_ltlibobjs if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi gltests_LIBOBJS=$gltests_libobjs gltests_LTLIBOBJS=$gltests_ltlibobjs if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_ICONV_H_TRUE}" && test -z "${GL_GENERATE_ICONV_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ICONV_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LD_OUTPUT_DEF_TRUE}" && test -z "${HAVE_LD_OUTPUT_DEF_FALSE}"; then as_fn_error $? "conditional \"HAVE_LD_OUTPUT_DEF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_FALSE}"; then as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi lgl_libobjs= lgl_ltlibobjs= if test -n "$lgl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgl_libobjs="$lgl_libobjs $i.$ac_objext" lgl_ltlibobjs="$lgl_ltlibobjs $i.lo" done fi lgl_LIBOBJS=$lgl_libobjs lgl_LTLIBOBJS=$lgl_ltlibobjs if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi lgltests_libobjs= lgltests_ltlibobjs= if test -n "$lgltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgltests_libobjs="$lgltests_libobjs $i.$ac_objext" lgltests_ltlibobjs="$lgltests_ltlibobjs $i.lo" done fi lgltests_LIBOBJS=$lgltests_libobjs lgltests_LTLIBOBJS=$lgltests_ltlibobjs if test -z "${TLD_TRUE}" && test -z "${TLD_FALSE}"; then as_fn_error $? "conditional \"TLD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_HTML_TRUE}" && test -z "${GTK_DOC_BUILD_HTML_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_BUILD_HTML\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_BUILD_PDF_TRUE}" && test -z "${GTK_DOC_BUILD_PDF_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_BUILD_PDF\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${GTK_DOC_USE_REBASE_TRUE}" && test -z "${GTK_DOC_USE_REBASE_FALSE}"; then as_fn_error $? "conditional \"GTK_DOC_USE_REBASE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepGCJ_TRUE}" && test -z "${am__fastdepGCJ_FALSE}"; then as_fn_error $? "conditional \"am__fastdepGCJ\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepGCJ_TRUE}" && test -z "${am__fastdepGCJ_FALSE}"; then as_fn_error $? "conditional \"am__fastdepGCJ\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${JAVA_TRUE}" && test -z "${JAVA_FALSE}"; then as_fn_error $? "conditional \"JAVA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${CSHARP_TRUE}" && test -z "${CSHARP_FALSE}"; then as_fn_error $? "conditional \"CSHARP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by GNU Libidn $as_me 1.28, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_links="$ac_config_links" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration links: $config_links Configuration commands: $config_commands Report bugs to . GNU Libidn home page: . General help using GNU software: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ GNU Libidn config.status 1.28 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LD_GCJ='`$ECHO "$LD_GCJ" | $SED "$delay_single_quote_subst"`' reload_flag_GCJ='`$ECHO "$reload_flag_GCJ" | $SED "$delay_single_quote_subst"`' reload_cmds_GCJ='`$ECHO "$reload_cmds_GCJ" | $SED "$delay_single_quote_subst"`' old_archive_cmds_GCJ='`$ECHO "$old_archive_cmds_GCJ" | $SED "$delay_single_quote_subst"`' compiler_GCJ='`$ECHO "$compiler_GCJ" | $SED "$delay_single_quote_subst"`' GCC_GCJ='`$ECHO "$GCC_GCJ" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_GCJ='`$ECHO "$lt_prog_compiler_no_builtin_flag_GCJ" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_GCJ='`$ECHO "$lt_prog_compiler_pic_GCJ" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_GCJ='`$ECHO "$lt_prog_compiler_wl_GCJ" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_GCJ='`$ECHO "$lt_prog_compiler_static_GCJ" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_GCJ='`$ECHO "$lt_cv_prog_compiler_c_o_GCJ" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_GCJ='`$ECHO "$archive_cmds_need_lc_GCJ" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_GCJ='`$ECHO "$enable_shared_with_static_runtimes_GCJ" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_GCJ='`$ECHO "$export_dynamic_flag_spec_GCJ" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_GCJ='`$ECHO "$whole_archive_flag_spec_GCJ" | $SED "$delay_single_quote_subst"`' compiler_needs_object_GCJ='`$ECHO "$compiler_needs_object_GCJ" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_GCJ='`$ECHO "$old_archive_from_new_cmds_GCJ" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_GCJ='`$ECHO "$old_archive_from_expsyms_cmds_GCJ" | $SED "$delay_single_quote_subst"`' archive_cmds_GCJ='`$ECHO "$archive_cmds_GCJ" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_GCJ='`$ECHO "$archive_expsym_cmds_GCJ" | $SED "$delay_single_quote_subst"`' module_cmds_GCJ='`$ECHO "$module_cmds_GCJ" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_GCJ='`$ECHO "$module_expsym_cmds_GCJ" | $SED "$delay_single_quote_subst"`' with_gnu_ld_GCJ='`$ECHO "$with_gnu_ld_GCJ" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_GCJ='`$ECHO "$allow_undefined_flag_GCJ" | $SED "$delay_single_quote_subst"`' no_undefined_flag_GCJ='`$ECHO "$no_undefined_flag_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_GCJ='`$ECHO "$hardcode_libdir_flag_spec_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_GCJ='`$ECHO "$hardcode_libdir_separator_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_direct_GCJ='`$ECHO "$hardcode_direct_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_GCJ='`$ECHO "$hardcode_direct_absolute_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_GCJ='`$ECHO "$hardcode_minus_L_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_GCJ='`$ECHO "$hardcode_shlibpath_var_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_automatic_GCJ='`$ECHO "$hardcode_automatic_GCJ" | $SED "$delay_single_quote_subst"`' inherit_rpath_GCJ='`$ECHO "$inherit_rpath_GCJ" | $SED "$delay_single_quote_subst"`' link_all_deplibs_GCJ='`$ECHO "$link_all_deplibs_GCJ" | $SED "$delay_single_quote_subst"`' always_export_symbols_GCJ='`$ECHO "$always_export_symbols_GCJ" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_GCJ='`$ECHO "$export_symbols_cmds_GCJ" | $SED "$delay_single_quote_subst"`' exclude_expsyms_GCJ='`$ECHO "$exclude_expsyms_GCJ" | $SED "$delay_single_quote_subst"`' include_expsyms_GCJ='`$ECHO "$include_expsyms_GCJ" | $SED "$delay_single_quote_subst"`' prelink_cmds_GCJ='`$ECHO "$prelink_cmds_GCJ" | $SED "$delay_single_quote_subst"`' postlink_cmds_GCJ='`$ECHO "$postlink_cmds_GCJ" | $SED "$delay_single_quote_subst"`' file_list_spec_GCJ='`$ECHO "$file_list_spec_GCJ" | $SED "$delay_single_quote_subst"`' hardcode_action_GCJ='`$ECHO "$hardcode_action_GCJ" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ nm_file_list_spec \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ LD_GCJ \ reload_flag_GCJ \ compiler_GCJ \ lt_prog_compiler_no_builtin_flag_GCJ \ lt_prog_compiler_pic_GCJ \ lt_prog_compiler_wl_GCJ \ lt_prog_compiler_static_GCJ \ lt_cv_prog_compiler_c_o_GCJ \ export_dynamic_flag_spec_GCJ \ whole_archive_flag_spec_GCJ \ compiler_needs_object_GCJ \ with_gnu_ld_GCJ \ allow_undefined_flag_GCJ \ no_undefined_flag_GCJ \ hardcode_libdir_flag_spec_GCJ \ hardcode_libdir_separator_GCJ \ exclude_expsyms_GCJ \ include_expsyms_GCJ \ file_list_spec_GCJ; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ sys_lib_dlsearch_path_spec \ reload_cmds_GCJ \ old_archive_cmds_GCJ \ old_archive_from_new_cmds_GCJ \ old_archive_from_expsyms_cmds_GCJ \ archive_cmds_GCJ \ archive_expsym_cmds_GCJ \ module_cmds_GCJ \ module_expsym_cmds_GCJ \ export_symbols_cmds_GCJ \ prelink_cmds_GCJ \ postlink_cmds_GCJ; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' xsi_shell='$xsi_shell' lt_shell_append='$lt_shell_append' # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile' # Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" GNUmakefile=$GNUmakefile _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; "csharpcomp.sh") CONFIG_FILES="$CONFIG_FILES csharpcomp.sh:build-aux/csharpcomp.sh.in" ;; "csharpexec.sh") CONFIG_FILES="$CONFIG_FILES csharpexec.sh:build-aux/csharpexec.sh.in" ;; "$GNUmakefile") CONFIG_LINKS="$CONFIG_LINKS $GNUmakefile:$GNUmakefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "contrib/doxygen/Doxyfile") CONFIG_FILES="$CONFIG_FILES contrib/doxygen/Doxyfile" ;; "csharp/Makefile") CONFIG_FILES="$CONFIG_FILES csharp/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/cyclo/Makefile") CONFIG_FILES="$CONFIG_FILES doc/cyclo/Makefile" ;; "doc/java/Makefile") CONFIG_FILES="$CONFIG_FILES doc/java/Makefile" ;; "doc/reference/Makefile") CONFIG_FILES="$CONFIG_FILES doc/reference/Makefile" ;; "doc/reference/version.xml") CONFIG_FILES="$CONFIG_FILES doc/reference/version.xml" ;; "doc/specifications/Makefile") CONFIG_FILES="$CONFIG_FILES doc/specifications/Makefile" ;; "doc/tld/Makefile") CONFIG_FILES="$CONFIG_FILES doc/tld/Makefile" ;; "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;; "gl/Makefile") CONFIG_FILES="$CONFIG_FILES gl/Makefile" ;; "gltests/Makefile") CONFIG_FILES="$CONFIG_FILES gltests/Makefile" ;; "java/Makefile") CONFIG_FILES="$CONFIG_FILES java/Makefile" ;; "java/pom.xml") CONFIG_FILES="$CONFIG_FILES java/pom.xml" ;; "java/src/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/Makefile" ;; "java/src/main/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/Makefile" ;; "java/src/main/java/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/Makefile" ;; "java/src/main/java/gnu/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/gnu/Makefile" ;; "java/src/main/java/gnu/inet/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/gnu/inet/Makefile" ;; "java/src/main/java/gnu/inet/encoding/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/main/java/gnu/inet/encoding/Makefile" ;; "java/src/util/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/util/Makefile" ;; "java/src/util/java/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/util/java/Makefile" ;; "java/src/test/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/test/Makefile" ;; "java/src/test/java/Makefile") CONFIG_FILES="$CONFIG_FILES java/src/test/java/Makefile" ;; "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; "lib/gl/Makefile") CONFIG_FILES="$CONFIG_FILES lib/gl/Makefile" ;; "lib/gltests/Makefile") CONFIG_FILES="$CONFIG_FILES lib/gltests/Makefile" ;; "libidn.pc") CONFIG_FILES="$CONFIG_FILES libidn.pc" ;; "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :L) # # CONFIG_LINK # if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then : else # Prefer the file from the source tree if names are identical. if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then ac_source=$srcdir/$ac_source fi { $as_echo "$as_me:${as_lineno-$LINENO}: linking $ac_source to $ac_file" >&5 $as_echo "$as_me: linking $ac_source to $ac_file" >&6;} if test ! -r "$ac_source"; then as_fn_error $? "$ac_source: file not found" "$LINENO" 5 fi rm -f "$ac_file" # Try a relative symlink, then a hard link, then a copy. case $ac_source in [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;; *) ac_rel_source=$ac_top_build_prefix$ac_source ;; esac ln -s "$ac_rel_source" "$ac_file" 2>/dev/null || ln "$ac_source" "$ac_file" 2>/dev/null || cp -p "$ac_source" "$ac_file" || as_fn_error $? "cannot link or copy $ac_source to $ac_file" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; "libtool":C) # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # The names of the tagged configurations supported by this script. available_tags="GCJ " # ### BEGIN LIBTOOL CONFIG # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and in which our libraries should be installed. lt_sysroot=$lt_sysroot # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain="$ac_aux_dir/ltmain.sh" # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) if test x"$xsi_shell" = xyes; then sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ func_dirname ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ } # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_basename ()$/,/^} # func_basename /c\ func_basename ()\ {\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ func_dirname_and_basename ()\ {\ \ case ${1} in\ \ */*) func_dirname_result="${1%/*}${2}" ;;\ \ * ) func_dirname_result="${3}" ;;\ \ esac\ \ func_basename_result="${1##*/}"\ } # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ func_stripname ()\ {\ \ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ \ # positional parameters, so assign one to ordinary parameter first.\ \ func_stripname_result=${3}\ \ func_stripname_result=${func_stripname_result#"${1}"}\ \ func_stripname_result=${func_stripname_result%"${2}"}\ } # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ func_split_long_opt ()\ {\ \ func_split_long_opt_name=${1%%=*}\ \ func_split_long_opt_arg=${1#*=}\ } # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ func_split_short_opt ()\ {\ \ func_split_short_opt_arg=${1#??}\ \ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ } # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ func_lo2o ()\ {\ \ case ${1} in\ \ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ \ *) func_lo2o_result=${1} ;;\ \ esac\ } # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_xform ()$/,/^} # func_xform /c\ func_xform ()\ {\ func_xform_result=${1%.*}.lo\ } # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_arith ()$/,/^} # func_arith /c\ func_arith ()\ {\ func_arith_result=$(( $* ))\ } # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_len ()$/,/^} # func_len /c\ func_len ()\ {\ func_len_result=${#1}\ } # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$lt_shell_append" = xyes; then sed -e '/^func_append ()$/,/^} # func_append /c\ func_append ()\ {\ eval "${1}+=\\${2}"\ } # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ func_append_quoted ()\ {\ \ func_quote_for_eval "${2}"\ \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ } # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 $as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} fi mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: GCJ # The linker used to build libraries. LD=$lt_LD_GCJ # How to create reloadable object files. reload_flag=$lt_reload_flag_GCJ reload_cmds=$lt_reload_cmds_GCJ # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_GCJ # A language specific compiler. CC=$lt_compiler_GCJ # Is the compiler the GNU compiler? with_gcc=$GCC_GCJ # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_GCJ # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_GCJ # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_GCJ # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_GCJ # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_GCJ # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_GCJ # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_GCJ # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_GCJ # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_GCJ # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_GCJ # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_GCJ # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_GCJ # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_GCJ archive_expsym_cmds=$lt_archive_expsym_cmds_GCJ # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_GCJ module_expsym_cmds=$lt_module_expsym_cmds_GCJ # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_GCJ # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_GCJ # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_GCJ # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_GCJ # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_GCJ # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_GCJ # Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \${shlibpath_var} if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_GCJ # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_GCJ # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_GCJ # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_GCJ # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_GCJ # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_GCJ # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_GCJ # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_GCJ # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_GCJ # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_GCJ # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_GCJ # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_GCJ # Specify filename containing input files. file_list_spec=$lt_file_list_spec_GCJ # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_GCJ # ### END LIBTOOL TAG CONFIG: GCJ _LT_EOF ;; "po-directories":C) for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi { $as_echo "$as_me:${as_lineno-$LINENO}: summary of build options: version: ${VERSION} shared $LT_CURRENT:$LT_REVISION:$LT_AGE Host type: ${host} Install prefix: ${prefix} Compiler: ${CC} Warning flags: ${WARN_CFLAGS} Library types: Shared=${enable_shared}, Static=${enable_static} Libiconv: $am_cv_func_iconv Valgrind: ${VALGRIND} Version script: $have_ld_version_script TLD code: $enable_tld Build Java port: $enable_java Build C# port: $enable_csharp " >&5 $as_echo "$as_me: summary of build options: version: ${VERSION} shared $LT_CURRENT:$LT_REVISION:$LT_AGE Host type: ${host} Install prefix: ${prefix} Compiler: ${CC} Warning flags: ${WARN_CFLAGS} Library types: Shared=${enable_shared}, Static=${enable_static} Libiconv: $am_cv_func_iconv Valgrind: ${VALGRIND} Version script: $have_ld_version_script TLD code: $enable_tld Build Java port: $enable_java Build C# port: $enable_csharp " >&6;} libidn-1.28/doc/0000755000000000000000000000000012167253754010435 500000000000000libidn-1.28/doc/stamp-vti0000644000000000000000000000013312167245611012212 00000000000000@set UPDATED 10 July 2013 @set UPDATED-MONTH July 2013 @set EDITION 1.28 @set VERSION 1.28 libidn-1.28/doc/tld/0000755000000000000000000000000012167253753011217 500000000000000libidn-1.28/doc/tld/README0000644000000000000000000000426612153706572012024 00000000000000Libidn doc/tld/README -- Notes and definition of the TLD tables. Copyright (C) 2004-2013 Simon Josefsson Copyright (C) 2004 Free Software Foundation, Inc See the end for copying conditions. This directory contain tables that specify which characters are valid for each TLD. Each table is stored in a file XX.tld where XX doesn't really matter, but is recommended to be the TLD name. For example, the TLD table for .FR is stored in the file "fr.tld". The library finds all files matching *.tld automatically, so if you install a file you only need to remove lib/tlds.c and type 'make' and it will be incorporated in the library. Experimental tables for various TLDs can be found at . The format for the files are as follows. Empty lines or those starting with '#' are ignored. It is highly recommended to discuss matters in a comment; to give the URL to the source of the table, mention the copyright and copying conditions of the tables, etc. Normal lines consist of valid Unicode code points for the TLD, expressed as single numbers (like 123, 0xff, 0100) or inclusive intervals (112-344 0xff-0100) using the usual C decimal, octal or hex notations. Each TLD file must contain one line on the format 'tld XX'. The XX should be the TLD name that the file defines. This is the string that is used in the generated C source code. If definitions are shared among several TLDs or are constructed from standard Unicode blocks, put the building blocks in a file of its own and include it using 'include FILENAME' on a line by itself. All files, even included files, MUST contain a line 'version FOO' where FOO is a human readable string that should be possible to use in a string comparison to detect when the table has changed. The version number must be changed whenever a backwards incompatible change is made to the file. Don't change the version number just because the comments are changed, or there is a new release of the library. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/doc/tld/no.tld0000644000000000000000000000361612153706572012263 00000000000000# Copyright (C) 2003-2013 Free Software Foundation, Inc. # Author: Thomas Jacob, Internet24.de. # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice, this notice and the source URL list below are preserved. # See http://www.norid.no/domeneregistrering/idn/idn_nyetegn.html # http://www.norid.no/regelverk/forslag/idn-2003/index.en.html # http://www.norid.no/regelverk/forslag/idn-2003/2003-02-18.en.html # --- snip --- # # From Hilde.Thunem at uninett.no Tue Mar 9 14:12:49 2004 # Message-Id: <200403091312.i29DClR3028354 at valgrind.uninett.no> # Subject: Re: NI2004012700128 Copyright of IDN character set tables # # Hi. # # You may use the character list freely. The only thing we would ask of you is # that you give some reference as to where you have found it. This is to ensure # that people that want to see the latest updated list know where to go (it may # change if the languages changes - although I doubt that will happen). It also # gives the opportunity for those interested in the background for why those # characters have been chosen (e.g. that the language councils of Norway has # been involved) to read about the process. # # Kind regards, # Hilde Thunem # NORID # # --- snap --- version "1.0" tld no U+00E1 # a med akutt aksent / á 00E1 U+00E0 # a med gravis-aksent / à 00E0 U+00E4 # a med omlyd / ä 00E4 U+010D # c med caron U+00E7 # c med cedille / ç 00E7 U+0111 # d med strek U+00E9 # e med akutt aksent / é U+00E8 # e med gravis-aksent / è U+00EA # e med circumflex-aksent / ê U+014B # eng U+0144 # n med akutt aksent U+00F1 # n med tilde / ñ U+00F3 # o med akutt aksent / ó U+00F2 # o med gravis-aksent / ò U+00F4 # o med circumflex-aksent / ô U+00F6 # o med omlyd / ö U+0161 # s med caron U+0167 # t med strek U+00FC # u med omlyd / ü U+017E # z med caron U+00E6 # æ U+00F8 # ø U+00E5 # å libidn-1.28/doc/tld/Makefile.am0000644000000000000000000000153512153706572013174 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson. # Copyright (C) 2004 Free Software Foundation, Inc # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . EXTRA_DIST = README fr.tld no.tld libidn-1.28/doc/tld/fr.tld0000644000000000000000000000376212153706572012260 00000000000000# Copyright (C) 2004-2013 Simon Josefsson # Copyright (C) 2003 Stephane Bortzmeyer / AFNIC # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright # notice and this notice are preserved. version "1.0" tld fr # Variant table for the French language # See Internet-Draft draft-hoffman-idn-reg-00 # # Designed at AFNIC # This table is built by starting from the characters that are # actually used in French. # a-z # a and its variants : à â # á (a acute) does not seem to exist in French: for further study (town names?) # a with ring above does not exist in french but in picard # U+0061|U+00E0:U+00E2 U+0062 # c and ç U+0063|U+00E7 U+0064 # e and its variants : è é ê ë U+0065|U+00E8:U+00E9:U+00EA:U+00EB U+0066 U+0067 U+0068 # i and its variants : î ï U+0069|U+00EE:U+00EF U+006A U+006B U+006C U+006D # n # ñ does not exist in french but in breton # # or in basque. U+006E # o and its variants : ô. ö exists in French? No word uses # it. # ò does not exist in french but in occitan # U+006F|U+00F4 U+0070 U+0071 U+0072 U+0073 U+0074 # u and its variants : ù û ü # ú (u acute) does not seem to exist in French: for further study U+0075|U+00F9:U+00FB:U+00FC U+0076 U+0077 U+0078 # y. ÿ only in names? (L'Haÿ-les-Roses) U+0079|U+00FF U+007A # 0-9 U+0030 U+0031 U+0032 U+0033 U+0034 U+0035 U+0036 U+0037 U+0038 U+0039 # - (hyphen) U+002D # Ligature ae (æ). Only in names like Lætitia? U+00E6|U+0061U+0065 # Ligature oe (not in Latin-1) U+0153|U+006FU+0065 # Some references: # http://www.sdv.fr/orthonet/pages/informations_p6.html # regional languages # http://www.ouest-france.fr/dossiershtm/cours-de-breton/lecture.htm # http://occitanet.free.fr/fr/index.html # http://www.picard.free.fr/lgpic/a-e.htm libidn-1.28/doc/tld/Makefile.in0000644000000000000000000012126512167244660013210 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson. # Copyright (C) 2004 Free Software Foundation, Inc # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/tld DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README fr.tld no.tld all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/tld/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/tld/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/doc/texinfo.css0000664000000000000000000000134611746453142012544 00000000000000body { margin: 2%; padding: 0 5%; background: #ffffff; } h1,h2,h3,h4,h5 { font-weight: bold; padding: 5px 5px 5px 5px; background-color: #c2e0ff; color: #336699; } h1 { padding: 2em 2em 2em 5%; color: white; background: #336699; text-align: center; letter-spacing: 3px; } h2 { text-decoration: underline; } pre { margin: 0 5%; padding: 0.5em; } pre.example { border: solid 1px; background: #eeeeff; padding-bottom: 1em; } pre.verbatim { border: solid 1px gray; background: white; padding-bottom: 1em; } div.node { margin: 0 -5% 0 -2%; padding: 0.5em 0.5em; margin-top: 0.5em; margin-bottom: 0.5em; font-weight: bold; } dd, li { padding-top: 0.1em; padding-bottom: 0.1em; } libidn-1.28/doc/components.fig0000664000000000000000000000553611746453142013237 00000000000000#FIG 3.2 Landscape Center Metric A4 100.00 Single -2 1200 2 6 3285 1845 4680 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 4669 2295 4669 1845 3295 1845 3295 2295 4669 2295 4 0 0 50 -1 16 11 0.0000 4 165 765 3600 2107 Nameprep\001 -6 6 2610 1845 3195 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 3186 2295 3186 1845 2618 1845 2618 2295 3186 2295 4 0 0 50 -1 16 11 0.0000 4 120 405 2700 2130 iSCSI\001 -6 6 1935 1845 2520 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 2512 2295 2512 1845 1943 1845 1943 2295 2512 2295 4 0 0 50 -1 16 11 0.0000 4 120 405 2025 2130 SASL\001 -6 6 1260 1845 1845 2295 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 1837 2295 1837 1845 1268 1845 1268 2295 1837 2295 4 0 0 50 -1 16 11 0.0000 4 120 450 1327 2130 XMPP\001 -6 6 810 4545 6795 5175 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 6795 5159 810 5159 810 4560 6795 4560 6795 5159 4 0 0 50 -1 18 11 0.0000 4 150 1305 3150 4905 GNU IDN Library\001 -6 6 4005 2835 5850 3510 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 5850 3508 5850 2837 4005 2837 4005 3508 5850 3508 4 0 0 50 -1 16 10 0.0000 4 105 360 4751 3227 IDNA\001 -6 6 4050 900 5580 1440 2 4 0 1 0 7 50 -1 -1 0.000 0 0 4 0 0 5 5580 1398 5580 900 4050 900 4050 1398 5580 1398 4 0 0 50 -1 16 11 0.0000 4 150 705 4455 1215 Punycode\001 -6 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2880 1398 2880 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 3690 1395 3690 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2880 2298 2880 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2160 2298 2160 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 1530 2298 1530 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 1035 1398 1035 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 1530 1398 1530 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 2205 1398 2205 1848 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 3555 2298 3555 4573 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 4905 3506 4905 4573 2 4 2 1 0 7 50 -1 -1 3.000 0 0 4 0 0 5 6795 6419 810 6419 810 5820 6795 5820 6795 6419 2 1 2 1 0 7 50 -1 -1 3.000 0 0 -1 1 1 2 1 0 1.00 60.00 120.00 1 0 1.00 60.00 120.00 3735 5175 3735 5805 2 4 0 1 0 7 50 -1 -1 0.000 0 0 5 0 0 5 3916 1398 3916 900 765 900 765 1398 3916 1398 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 4365 2277 4365 2835 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 4860 1395 4860 2863 2 4 0 1 0 7 50 -1 -1 0.000 0 0 3 0 0 5 6795 1395 6795 900 5670 900 5670 1395 6795 1395 2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 1 1 1.00 31.59 63.18 6165 1398 6165 4573 4 0 0 50 -1 16 11 0.0000 4 165 765 3345 6157 Application\001 4 0 0 50 -1 16 11 0.0000 4 165 765 1935 1215 StringPrep\001 4 0 0 50 -1 16 11 0.0000 4 120 315 6075 1170 TLD\001 libidn-1.28/doc/libidn-components.png0000644000000000000000000002255612167245614014515 00000000000000PNG  IHDR# 6iCCPdefault_rgb.iccxgP} tXz*eIK,K!b"4ER$VDY$(1ETP;}~=;眙@@ERR|?{NHh!n ( V}](1<X|^:_f ]VTR9 ,~HhrXq_}XQ_}X?@}Q( 1XAN$?bqspbc9*AL!-}?!.^F/{ ؾj]RT0 _3(H&%؂7@(lC !aA 샃P-.yxK:DED A.b8!D qH*#;Ar # db( e:rQ; @ףqh{*=vW(*D_ `T)as0,c[bkڱ^l 9#c88]%2p[q \w7}rx f|'~?O  JH$l&: ÄIH&HXD&$^"HT"ɈL # HVEiD%-h&rKC"/Q(+J%REi\SRTe9՗@NޠNP?i4Z8-vvNmat}/~A)'&-MVKdD5Pc1603;9QhVZsc bL1C1oRVb3Dquq'hBcW'S1w2טS,KJd~f %%%$r%j%.H[NfO?IKIHl\*$͑vN/-T'-+#sD̜,KR'[,{Z*-'Yܠ܂||U9BBEYEbb%ŗ 'S+)*e)5( )-)k(*(w(?UpUbU*TTUUTUTոjj5ԃwwhHiiiik5m4345kZIZj&ڵwtPS:ëWj\5KӵmӝcyuW߯? ٠aaFF¾}?Q.VW>y@WoVW:$VW\_3Zk_Q'Wnp#GK?M8QXMAM?qjii.i|<߉Vֲ6-mdɻ?;Ӯ(9N%=Ni?vY܅tm s?kޯ+ q"bŕKy._weocߓ!W]vvnX8[[ݷMow vf[P;=w8b3r];: ñ13yxqxSѧ5{Txaqb'Wd\[ìԍ-/BlUX8XsX6uc-\~櫜ie*ʟldV1V?E jUIW=Džzy2t*UMSMVjl{!>1TV^HzWscGS.Doρ:tu8#8@-> 9O‡<&904{6o&kmӔgqox w{!-PMVas(]AqGqGqGqGqGqGqGqGqGqGqGqn =**!Z>4rGz"Yz Y#q.͇HkZف~.4zM.vwht*[}sUfkMfP<œ}.c|U}9e_*YjG1WVh)s#8#8#릇>)ol=pOVuRUg^`zذNo:z^{gV4[Ȭ`[uܸBƗ67 Pg3[ Y}Y|cu\[OW}>%Zl(KV^HrTy9AwuYɁ^]ѫWfyjq~Snl i[v:Ay⣼jcϺOKիK^Ў8pꊪUf_{N*N# C!ɝ,rv Vv ,)Ot|Tj(@<]SkxW 1A#-V'.?`Ϯ$zlNN>eC)֓vʷ SXK[CYUo$gJqGqGqG1ofș|BUeMjלRB 7q[uU(\cʻwg!6H{8᷺V~\ṛ*{qGqGqGqGqGqGqGqGqGqGqGqGqGqGqG_b > #KuVi2|@G+txUTY󒟳 ֨ٵJ[p|\IuUڲ;.r}Z-6ׇ*.zLqGqGqGqGqGqGqGqG1 wWɷ >8^W!fd_Mhϭ*\U>~=&xqXB=&|EP[f8'|pi\k @G1jrnkJW@|@|@|@|@|@|@|@|\{f|\;6Ks%wj sŝf> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |]׍~U5^JZya Z|WEXf`\N\;hj;kac eh$\Ӕgyv>vJB'ݲ>k ]70۟gG > > > > > > ÅȈ3,Q<2O?]Hy.#'r2x,ꐖյn%[ u>L[̞$B-wPpˤu-a-G_=;WÅOgsmz(:!_ο+,vON'7K7)ח&5- t\)U&{l=ʭ]0rJLlC= K-VncH9]] K(mdZ|$zGqGqGqGqGqGq U!./]~oc<@c|@GURh6GQ| 1> GqU9A q8#-0> *c|@qhqUcqCq*jp"G=c9tu{yG#GQ[9 > |4Bqt8Z|@n?=~xuf_}kOgٯ!n;.{՝6mhq11121 ;78nqtu8nRh/8{Q{KXN`fC+̴-Vxҏ&>3\ǼOb].cyWiލW\εeZ3.tEOX+VqxnhuoAu‡%{Աr3lp!CbۆfrDZhHu{YUiB\1> 1> 1[] @c|@-> q8e3>|-Mm|/?Ea,f/,ٯg_]{74`N"IENDB`PNG  IHDR# 6iCCPdefault_rgb.iccxgP} tXz*eIK,K!b"4ER$VDY$(1ETP;}~=;眙@@ERR|?{NHh!n ( V}](1<X|^:_f ]VTR9 ,~HhrXq_}XQ_}X?@}Q( 1XAN$?bqspbc9*AL!-}?!.^F/{ ؾj]RT0 _3(H&%؂7@(lC !aA 샃P-.yxK:DED A.b8!D qH*#;Ar # db( e:rQ; @ףqh{*=vW(*D_ `T)as0,c[bkڱ^l 9#c88]%2p[q \w7}rx f|'~?O  JH$l&: ÄIH&HXD&$^"HT"ɈL # HVEiD%-h&rKC"/Q(+J%REi\SRTe9՗@NޠNP?i4Z8-vvNmat}/~A)'&-MVKdD5Pc1603;9QhVZsc bL1C1oRVb3Dquq'hBcW'S1w2טS,KJd~f %%%$r%j%.H[NfO?IKIHl\*$͑vN/-T'-+#sD̜,KR'[,{Z*-'Yܠ܂||U9BBEYEbb%ŗ 'S+)*e)5( )-)k(*(w(?UpUbU*TTUUTUTոjj5ԃwwhHiiiik5m4345kZIZj&ڵwtPS:ëWj\5KӵmӝcyuW߯? ٠aaFF¾}?Q.VW>y@WoVW:$VW\_3Zk_Q'Wnp#GK?M8QXMAM?qjii.i|<߉Vֲ6-mdɻ?;Ӯ(9N%=Ni?vY܅tm s?kޯ+ q"bŕKy._weocߓ!W]vvnX8[[ݷMow vf[P;=w8b3r];: ñ13yxqxSѧ5{Txaqb'Wd r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> LʷIENDB`libidn-1.28/doc/fdl-1.3.texi0000644000000000000000000005561012061006072012301 00000000000000@c The GNU Free Documentation License. @center Version 1.3, 3 November 2008 @c This file is intended to be included within another document, @c hence no sectioning command or @node. @display Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @end display @enumerate 0 @item PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document @dfn{free} in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of ``copyleft'', which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. @item APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The ``Document'', below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as ``you''. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A ``Modified Version'' of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A ``Secondary Section'' is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The ``Invariant Sections'' are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The ``Cover Texts'' are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A ``Transparent'' copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not ``Transparent'' is called ``Opaque''. Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, La@TeX{} input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG@. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The ``Title Page'' means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, ``Title Page'' means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The ``publisher'' means any person or entity that distributes copies of the Document to the public. A section ``Entitled XYZ'' means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as ``Acknowledgements'', ``Dedications'', ``Endorsements'', or ``History''.) To ``Preserve the Title'' of such a section when you modify the Document means that it remains a section ``Entitled XYZ'' according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. @item VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. @item COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. @item MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: @enumerate A @item Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. @item List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. @item State on the Title page the name of the publisher of the Modified Version, as the publisher. @item Preserve all the copyright notices of the Document. @item Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. @item Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. @item Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. @item Include an unaltered copy of this License. @item Preserve the section Entitled ``History'', Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled ``History'' in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. @item Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the ``History'' section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. @item For any section Entitled ``Acknowledgements'' or ``Dedications'', Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. @item Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. @item Delete any section Entitled ``Endorsements''. Such a section may not be included in the Modified Version. @item Do not retitle any existing section to be Entitled ``Endorsements'' or to conflict in title with any Invariant Section. @item Preserve any Warranty Disclaimers. @end enumerate If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled ``Endorsements'', provided it contains nothing but endorsements of your Modified Version by various parties---for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. @item COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled ``History'' in the various original documents, forming one section Entitled ``History''; likewise combine any sections Entitled ``Acknowledgements'', and any sections Entitled ``Dedications''. You must delete all sections Entitled ``Endorsements.'' @item COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. @item AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an ``aggregate'' if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. @item TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled ``Acknowledgements'', ``Dedications'', or ``History'', the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. @item TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. @item FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See @uref{http://www.gnu.org/copyleft/}. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License ``or any later version'' applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. @item RELICENSING ``Massive Multiauthor Collaboration Site'' (or ``MMC Site'') means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A ``Massive Multiauthor Collaboration'' (or ``MMC'') contained in the site means any set of copyrightable works thus published on the MMC site. ``CC-BY-SA'' means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. ``Incorporate'' means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is ``eligible for relicensing'' if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. @end enumerate @page @heading ADDENDUM: How to use this License for your documents To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: @smallexample @group Copyright (C) @var{year} @var{your name}. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end group @end smallexample If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the ``with@dots{}Texts.''@: line with this: @smallexample @group with the Invariant Sections being @var{list their titles}, with the Front-Cover Texts being @var{list}, and with the Back-Cover Texts being @var{list}. @end group @end smallexample If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software. @c Local Variables: @c ispell-local-pdict: "ispell-dict" @c End: libidn-1.28/doc/cyclo/0000755000000000000000000000000012167253754011546 500000000000000libidn-1.28/doc/cyclo/Makefile.am0000644000000000000000000000234712153706572013524 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2008-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . EXTRA_DIST = cyclo-$(PACKAGE).html vcurl = "http://git.savannah.gnu.org/gitweb/?p=$(PACKAGE).git;a=blob;f=lib/%FILENAME%;hb=HEAD" cyclo-$(PACKAGE).html: (cd ${top_srcdir}/lib && \ $(PMCCABE) *.[ch] \ | sort -nr \ | LANG=C $(AWK) -f ${abs_top_srcdir}/build-aux/pmccabe2html \ -v lang=html -v name="$(PACKAGE_STRING)" \ -v vcurl=$(vcurl) \ -v url="http://www.gnu.org/software/$(PACKAGE)/" \ -v css=${abs_top_srcdir}/build-aux/pmccabe.css) \ > tmp mv tmp $@ libidn-1.28/doc/cyclo/cyclo-libidn.html0000644000000000000000000017737112167253754014744 00000000000000 Cyclomatic Complexity report for GNU Libidn 1.28 Back to GNU Libidn 1.28 Homepage

GNU Libidn 1.28 Cyclomatic Complexity Report

Report generated at: Wed Jul 10 14:47:39 CEST 2013

Summary
Total number of functions 72
Number of low risk functions 61
Number of moderate risk functions 6
Number of high risk functions 5
Number of untestable functions 0

Details for all functions
  Cyclomatic Complexity Risk Evaluation
  0 - 10 Simple module, without much risk
  11 - 20 More complex module, moderate risk
  21 - 50 Complex module, high risk
  greater than 50 Untestable module, very high risk

Function Name Modified Cyclo Number of
Statements
Number of
Lines
Source File
idna_to_ascii_4i 38 94 194 idna.c
stringprep_4i 30 76 137 stringprep.c
_g_utf8_normalize_wc 30 76 135 nfkc.c
punycode_encode 22 57 111 punycode.c
punycode_decode 21 59 101 punycode.c
idna_to_ascii_4z 15 48 87 idna.c
tld_get_4 14 24 37 tld.c
idna_to_unicode_internal 12 47 118 idna.c
combine 12 21 54 nfkc.c
g_utf8_to_ucs4_fast 11 38 75 nfkc.c
_tld_checkchar 11 15 28 tld.c
  find_decomposition 10 21 41 nfkc.c
  combine_hangul 10 11 23 nfkc.c
  g_ucs4_to_utf8 9 26 42 nfkc.c
  stringprep_profile 9 24 38 stringprep.c
  g_utf8_strlen 9 16 37 nfkc.c
  g_unichar_to_utf8 8 28 51 nfkc.c
  idna_to_unicode_4z4z 7 37 61 idna.c
  g_unicode_canonical_ordering 7 24 36 nfkc.c
  pr29_4 7 15 27 pr29.c
  stringprep_find_character_in_table 6 8 21 stringprep.c
  stringprep 6 30 53 stringprep.c
  tld_get_table 5 9 14 tld.c
  stringprep_locale_charset 5 7 17 toutf8.c
  stringprep_apply_table_to_string 5 13 27 stringprep.c
  tld_check_4t 5 13 24 tld.c
  tld_default_table 4 8 16 tld.c
  decode_digit 4 4 6 punycode.c
  tld_check_4 4 13 28 tld.c
  idna_to_unicode_44i 4 12 24 idna.c
  decompose_hangul 4 10 21 nfkc.c
  stringprep_find_string_in_table 4 10 19 stringprep.c
  first_column 4 10 12 pr29.c
  adapt 3 9 16 punycode.c
  stringprep_4zi_1 3 8 18 stringprep.c
  combinationclass 3 7 11 pr29.c
  in_last_column_row 3 7 11 pr29.c
  tld_check_4z 3 6 14 tld.c
  stringprep_4zi 3 6 12 stringprep.c
  tld_check_4tz 3 6 13 tld.c
  tld_get_4z 3 6 13 tld.c
  stringprep_check_version 3 3 8 version.c
  tld_get_z 3 14 22 tld.c
  tld_check_8z 3 11 21 tld.c
  tld_check_lz 3 10 20 tld.c
  tld_strerror 2 17 40 strerror-tld.c
  punycode_strerror 2 13 32 strerror-punycode.c
  pr29_strerror 2 11 28 strerror-pr29.c
  idna_to_unicode_8z4z 2 9 16 idna.c
  idna_to_ascii_8z 2 9 18 idna.c
  idna_to_unicode_lzlz 2 8 15 idna.c
  idna_to_unicode_8zlz 2 8 15 idna.c
  idna_to_unicode_8z8z 2 8 15 idna.c
  idna_to_ascii_lz 2 8 16 idna.c
  g_utf8_get_char 2 8 14 nfkc.c
  pr29_8z 2 8 16 pr29.c
  stringprep_convert 2 7 16 toutf8.c
  pr29_4z 2 6 10 pr29.c
  encode_basic 2 2 6 punycode.c
  stringprep_strerror 2 29 64 strerror-stringprep.c
  idna_strerror 2 29 64 strerror-idna.c
  stringprep_ucs4_nfkc_normalize 1 6 12 nfkc.c
  g_utf8_normalize 1 5 11 nfkc.c
  stringprep_unichar_to_utf8 1 1 5 nfkc.c
  stringprep_utf8_to_unichar 1 1 5 nfkc.c
  idn_free 1 1 5 idn-free.c
  stringprep_utf8_to_locale 1 1 5 toutf8.c
  stringprep_locale_to_utf8 1 1 5 toutf8.c
  stringprep_utf8_nfkc_normalize 1 1 5 nfkc.c
  encode_digit 1 1 7 punycode.c
  stringprep_ucs4_to_utf8 1 1 7 nfkc.c
  stringprep_utf8_to_ucs4 1 1 5 nfkc.c

Copyright (c) 2007, 2008 Free Software Foundation, Inc. libidn-1.28/doc/cyclo/Makefile.in0000644000000000000000000012207512167244660013536 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2008-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/cyclo DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = cyclo-$(PACKAGE).html vcurl = "http://git.savannah.gnu.org/gitweb/?p=$(PACKAGE).git;a=blob;f=lib/%FILENAME%;hb=HEAD" all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/cyclo/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/cyclo/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am cyclo-$(PACKAGE).html: (cd ${top_srcdir}/lib && \ $(PMCCABE) *.[ch] \ | sort -nr \ | LANG=C $(AWK) -f ${abs_top_srcdir}/build-aux/pmccabe2html \ -v lang=html -v name="$(PACKAGE_STRING)" \ -v vcurl=$(vcurl) \ -v url="http://www.gnu.org/software/$(PACKAGE)/" \ -v css=${abs_top_srcdir}/build-aux/pmccabe.css) \ > tmp mv tmp $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/doc/texi/0000755000000000000000000000000012167253753011405 500000000000000libidn-1.28/doc/texi/tld_check_4z.texi0000644000000000000000000000230112167245613014545 00000000000000@subheading tld_check_4z @anchor{tld_check_4z} @deftypefun {int} {tld_check_4z} (const uint32_t * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated array of unicode code points to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.28/doc/texi/tld_check_4.texi0000644000000000000000000000242412167245613014361 00000000000000@subheading tld_check_4 @anchor{tld_check_4} @deftypefun {int} {tld_check_4} (const uint32_t * @var{in}, size_t @var{inlen}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.28/doc/texi/pr29_8z.texi0000644000000000000000000000120012167245612013421 00000000000000@subheading pr29_8z @anchor{pr29_8z} @deftypefun {int} {pr29_8z} (const char * @var{in}) @var{in}: zero terminated input UTF-8 string. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. @strong{Return value:} Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or @code{PR29_STRINGPREP_ERROR} if there was a problem converting the string from UTF-8 to UCS-4. @end deftypefun libidn-1.28/doc/texi/idna.c.texi0000644000000000000000000002162212167245612013352 00000000000000@subheading idna_to_ascii_4i @anchor{idna_to_ascii_4i} @deftypefun {int} {idna_to_ascii_4i} (const uint32_t * @var{in}, size_t @var{inlen}, char * @var{out}, int @var{flags}) @var{in}: input array with unicode code points. @var{inlen}: length of input array with unicode code points. @var{out}: output zero terminated string that must have room for at least 63 characters plus the terminating zero. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels. It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific. The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition. ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once. @strong{Return value:} Returns 0 on success, or an @code{Idna_rc} error code. @end deftypefun @subheading idna_to_unicode_44i @anchor{idna_to_unicode_44i} @deftypefun {int} {idna_to_unicode_44i} (const uint32_t * @var{in}, size_t @var{inlen}, uint32_t * @var{out}, size_t * @var{outlen}, int @var{flags}) @var{in}: input array with unicode code points. @var{inlen}: length of input array with unicode code points. @var{out}: output array with unicode code points. @var{outlen}: on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered. ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step. The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used. The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points. @strong{Return value:} Returns @code{Idna_rc} error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard. @end deftypefun @subheading idna_to_ascii_4z @anchor{idna_to_ascii_4z} @deftypefun {int} {idna_to_ascii_4z} (const uint32_t * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input Unicode string. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun @subheading idna_to_ascii_8z @anchor{idna_to_ascii_8z} @deftypefun {int} {idna_to_ascii_8z} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input UTF-8 string. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun @subheading idna_to_ascii_lz @anchor{idna_to_ascii_lz} @deftypefun {int} {idna_to_ascii_lz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input string encoded in the current locale's character set. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun @subheading idna_to_unicode_4z4z @anchor{idna_to_unicode_4z4z} @deftypefun {int} {idna_to_unicode_4z4z} (const uint32_t * @var{input}, uint32_t ** @var{output}, int @var{flags}) @var{input}: zero-terminated Unicode string. @var{output}: pointer to newly allocated output Unicode string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun @subheading idna_to_unicode_8z4z @anchor{idna_to_unicode_8z4z} @deftypefun {int} {idna_to_unicode_8z4z} (const char * @var{input}, uint32_t ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output Unicode string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun @subheading idna_to_unicode_8z8z @anchor{idna_to_unicode_8z8z} @deftypefun {int} {idna_to_unicode_8z8z} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output UTF-8 string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun @subheading idna_to_unicode_8zlz @anchor{idna_to_unicode_8zlz} @deftypefun {int} {idna_to_unicode_8zlz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output string encoded in the current locale's character set. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun @subheading idna_to_unicode_lzlz @anchor{idna_to_unicode_lzlz} @deftypefun {int} {idna_to_unicode_lzlz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated string encoded in the current locale's character set. @var{output}: pointer to newly allocated output string encoded in the current locale's character set. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/tld_strerror.texi0000644000000000000000000000157112167245613014745 00000000000000@subheading tld_strerror @anchor{tld_strerror} @deftypefun {const char *} {tld_strerror} (Tld_rc @var{rc}) @var{rc}: tld return code Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{TLD_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{TLD_INVALID:} Invalid character found. @strong{TLD_NODATA:} No input data was provided. @strong{TLD_MALLOC_ERROR:} Error during memory allocation. @strong{TLD_ICONV_ERROR:} Error during iconv string conversion. @strong{TLD_NO_TLD:} No top-level domain found in domain string. @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/version.c.texi0000644000000000000000000000125512167245613014125 00000000000000@subheading stringprep_check_version @anchor{stringprep_check_version} @deftypefun {const char *} {stringprep_check_version} (const char * @var{req_version}) @var{req_version}: Required version number, or NULL. Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned. See @code{STRINGPREP_VERSION} for a suitable @code{req_version} string. @strong{Return value:} Version string of run-time library, or NULL if the run-time library does not meet the required version number. @end deftypefun libidn-1.28/doc/texi/idna_to_unicode_44i.texi0000644000000000000000000000353012167245612016017 00000000000000@subheading idna_to_unicode_44i @anchor{idna_to_unicode_44i} @deftypefun {int} {idna_to_unicode_44i} (const uint32_t * @var{in}, size_t @var{inlen}, uint32_t * @var{out}, size_t * @var{outlen}, int @var{flags}) @var{in}: input array with unicode code points. @var{inlen}: length of input array with unicode code points. @var{out}: output array with unicode code points. @var{outlen}: on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered. ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step. The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used. The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points. @strong{Return value:} Returns @code{Idna_rc} error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard. @end deftypefun libidn-1.28/doc/texi/tld_check_8z.texi0000644000000000000000000000243412167245613014560 00000000000000@subheading tld_check_8z @anchor{tld_check_8z} @deftypefun {int} {tld_check_8z} (const char * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated UTF8 string to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. Note that the error position refers to the decoded character offset rather than the byte position in the string. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all characters are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.28/doc/texi/punycode_strerror.texi0000644000000000000000000000150712167245613016007 00000000000000@subheading punycode_strerror @anchor{punycode_strerror} @deftypefun {const char *} {punycode_strerror} (Punycode_status @var{rc}) @var{rc}: an @code{Punycode_status} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{PUNYCODE_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{PUNYCODE_BAD_INPUT:} Input is invalid. @strong{PUNYCODE_BIG_OUTPUT:} Output would exceed the space provided. @strong{PUNYCODE_OVERFLOW:} Input needs wider integers to process. @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/idna_to_unicode_8z8z.texi0000644000000000000000000000125312167245612016242 00000000000000@subheading idna_to_unicode_8z8z @anchor{idna_to_unicode_8z8z} @deftypefun {int} {idna_to_unicode_8z8z} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output UTF-8 string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/idn-free.c.texi0000644000000000000000000000111612167245613014125 00000000000000@subheading idn_free @anchor{idn_free} @deftypefun {void} {idn_free} (void * @var{ptr}) @var{ptr}: memory region to deallocate, or @code{NULL}. Deallocates memory region by calling @code{free()}. If @code{ptr} is @code{NULL} no operation is performed. Normally applications de-allocate strings allocated by libidn by calling @code{free()} directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible. @end deftypefun libidn-1.28/doc/texi/stringprep_utf8_nfkc_normalize.texi0000644000000000000000000000211712167245612020440 00000000000000@subheading stringprep_utf8_nfkc_normalize @anchor{stringprep_utf8_nfkc_normalize} @deftypefun {char *} {stringprep_utf8_nfkc_normalize} (const char * @var{str}, ssize_t @var{len}) @var{str}: a UTF-8 encoded string. @var{len}: length of @code{str}, in bytes, or -1 if @code{str} is nul-terminated. Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form. @strong{Return value:} a newly allocated string, that is the NFKC normalized form of @code{str}. @end deftypefun libidn-1.28/doc/texi/tld_default_table.texi0000644000000000000000000000130512167245613015651 00000000000000@subheading tld_default_table @anchor{tld_default_table} @deftypefun {const Tld_table *} {tld_default_table} (const char * @var{tld}, const Tld_table ** @var{overrides}) @var{tld}: TLD name (e.g. "com") as zero terminated ASCII byte string. @var{overrides}: Additional zero terminated array of @code{Tld_table} info-structures for TLDs, or @code{NULL} to only use library deault tables. Get the TLD table for a named TLD, using the internal defaults, possibly overrided by the (optional) supplied tables. @strong{Return value:} Return structure corresponding to TLD @code{tld_str}, first looking through @code{overrides} then thru built-in list, or @code{NULL} if no such structure found. @end deftypefun libidn-1.28/doc/texi/punycode_decode.texi0000644000000000000000000000403212167245612015343 00000000000000@subheading punycode_decode @anchor{punycode_decode} @deftypefun {int} {punycode_decode} (size_t @var{input_length}, const char [] @var{input}, size_t * @var{output_length}, punycode_uint [] @var{output}, unsigned char [] @var{case_flags}) @var{input_length}: The number of ASCII code points in the @code{input} array. @var{input}: An array of ASCII code points (0..7F). @var{output_length}: The caller passes in the maximum number of code points that it can receive into the @code{output} array (which is also the maximum number of flags that it can receive into the @code{case_flags} array, if @code{case_flags} is not a @code{NULL} pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied @code{output_length} is greater than that. @var{output}: An array of code points like the input argument of @code{punycode_encode()} (see above). @var{case_flags}: A @code{NULL} pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the @code{output} array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. Converts Punycode to a sequence of code points (presumed to be Unicode code points). @strong{Return value:} The return value can be any of the @code{Punycode_status} values defined above. If not @code{PUNYCODE_SUCCESS}, then @code{output_length}, @code{output}, and @code{case_flags} might contain garbage. @end deftypefun libidn-1.28/doc/texi/stringprep_check_version.texi0000644000000000000000000000125512167245613017316 00000000000000@subheading stringprep_check_version @anchor{stringprep_check_version} @deftypefun {const char *} {stringprep_check_version} (const char * @var{req_version}) @var{req_version}: Required version number, or NULL. Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned. See @code{STRINGPREP_VERSION} for a suitable @code{req_version} string. @strong{Return value:} Version string of run-time library, or NULL if the run-time library does not meet the required version number. @end deftypefun libidn-1.28/doc/texi/pr29_4.texi0000644000000000000000000000115712167245612013236 00000000000000@subheading pr29_4 @anchor{pr29_4} @deftypefun {int} {pr29_4} (const uint32_t * @var{in}, size_t @var{len}) @var{in}: input array with unicode code points. @var{len}: length of input array with unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. @strong{Return value:} Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). @end deftypefun libidn-1.28/doc/texi/pr29_4z.texi0000644000000000000000000000105412167245612013424 00000000000000@subheading pr29_4z @anchor{pr29_4z} @deftypefun {int} {pr29_4z} (const uint32_t * @var{in}) @var{in}: zero terminated array of Unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. @strong{Return value:} Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). @end deftypefun libidn-1.28/doc/texi/idna_to_ascii_8z.texi0000644000000000000000000000117412167245612015424 00000000000000@subheading idna_to_ascii_8z @anchor{idna_to_ascii_8z} @deftypefun {int} {idna_to_ascii_8z} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input UTF-8 string. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/tld_get_table.texi0000644000000000000000000000106412167245613015006 00000000000000@subheading tld_get_table @anchor{tld_get_table} @deftypefun {const Tld_table *} {tld_get_table} (const char * @var{tld}, const Tld_table ** @var{tables}) @var{tld}: TLD name (e.g. "com") as zero terminated ASCII byte string. @var{tables}: Zero terminated array of @code{Tld_table} info-structures for TLDs. Get the TLD table for a named TLD by searching through the given TLD table array. @strong{Return value:} Return structure corresponding to TLD @code{tld} by going thru @code{tables}, or return @code{NULL} if no such structure is found. @end deftypefun libidn-1.28/doc/texi/stringprep.texi0000644000000000000000000000246412167245612014416 00000000000000@subheading stringprep @anchor{stringprep} @deftypefun {int} {stringprep} (char * @var{in}, size_t @var{maxlen}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see @code{stringprep_locale_to_utf8()}. Since the stringprep operation can expand the string, @code{maxlen} indicate how large the buffer holding the string is. This function will not read or write to characters outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an error code. @end deftypefun libidn-1.28/doc/texi/tld_get_4.texi0000644000000000000000000000105312167245613014060 00000000000000@subheading tld_get_4 @anchor{tld_get_4} @deftypefun {int} {tld_get_4} (const uint32_t * @var{in}, size_t @var{inlen}, char ** @var{out}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out}. @strong{Return value:} Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun libidn-1.28/doc/texi/stringprep_utf8_to_unichar.texi0000644000000000000000000000065612167245612017600 00000000000000@subheading stringprep_utf8_to_unichar @anchor{stringprep_utf8_to_unichar} @deftypefun {uint32_t} {stringprep_utf8_to_unichar} (const char * @var{p}) @var{p}: a pointer to Unicode character encoded as UTF-8 Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If @code{p} does not point to a valid UTF-8 encoded character, results are undefined. @strong{Return value:} the resulting character. @end deftypefun libidn-1.28/doc/texi/stringprep_ucs4_nfkc_normalize.texi0000644000000000000000000000102312167245612020423 00000000000000@subheading stringprep_ucs4_nfkc_normalize @anchor{stringprep_ucs4_nfkc_normalize} @deftypefun {uint32_t *} {stringprep_ucs4_nfkc_normalize} (const uint32_t * @var{str}, ssize_t @var{len}) @var{str}: a Unicode string. @var{len}: length of @code{str} array, or -1 if @code{str} is nul-terminated. Converts a UCS4 string into canonical form, see @code{stringprep_utf8_nfkc_normalize()} for more information. @strong{Return value:} a newly allocated Unicode string, that is the NFKC normalized form of @code{str}. @end deftypefun libidn-1.28/doc/texi/punycode_encode.texi0000644000000000000000000000420312167245612015355 00000000000000@subheading punycode_encode @anchor{punycode_encode} @deftypefun {int} {punycode_encode} (size_t @var{input_length}, const punycode_uint [] @var{input}, const unsigned char [] @var{case_flags}, size_t * @var{output_length}, char [] @var{output}) @var{input_length}: The number of code points in the @code{input} array and the number of flags in the @code{case_flags} array. @var{input}: An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. @var{case_flags}: A @code{NULL} pointer or an array of boolean values parallel to the @code{input} array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If @code{case_flags} is a @code{NULL} pointer then ASCII letters are left as they are, and other code points are treated as unflagged. @var{output_length}: The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. @var{output}: An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the @code{input} contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) Converts a sequence of code points (presumed to be Unicode code points) to Punycode. @strong{Return value:} The return value can be any of the @code{Punycode_status} values defined above except @code{PUNYCODE_BAD_INPUT}. If not @code{PUNYCODE_SUCCESS}, then @code{output_size} and @code{output} might contain garbage. @end deftypefun libidn-1.28/doc/texi/tld.c.texi0000644000000000000000000002315612167245612013226 00000000000000@subheading tld_get_table @anchor{tld_get_table} @deftypefun {const Tld_table *} {tld_get_table} (const char * @var{tld}, const Tld_table ** @var{tables}) @var{tld}: TLD name (e.g. "com") as zero terminated ASCII byte string. @var{tables}: Zero terminated array of @code{Tld_table} info-structures for TLDs. Get the TLD table for a named TLD by searching through the given TLD table array. @strong{Return value:} Return structure corresponding to TLD @code{tld} by going thru @code{tables}, or return @code{NULL} if no such structure is found. @end deftypefun @subheading tld_default_table @anchor{tld_default_table} @deftypefun {const Tld_table *} {tld_default_table} (const char * @var{tld}, const Tld_table ** @var{overrides}) @var{tld}: TLD name (e.g. "com") as zero terminated ASCII byte string. @var{overrides}: Additional zero terminated array of @code{Tld_table} info-structures for TLDs, or @code{NULL} to only use library deault tables. Get the TLD table for a named TLD, using the internal defaults, possibly overrided by the (optional) supplied tables. @strong{Return value:} Return structure corresponding to TLD @code{tld_str}, first looking through @code{overrides} then thru built-in list, or @code{NULL} if no such structure found. @end deftypefun @subheading tld_get_4 @anchor{tld_get_4} @deftypefun {int} {tld_get_4} (const uint32_t * @var{in}, size_t @var{inlen}, char ** @var{out}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out}. @strong{Return value:} Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun @subheading tld_get_4z @anchor{tld_get_4z} @deftypefun {int} {tld_get_4z} (const uint32_t * @var{in}, char ** @var{out}) @var{in}: Zero terminated array of unicode code points to process. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out}. @strong{Return value:} Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun @subheading tld_get_z @anchor{tld_get_z} @deftypefun {int} {tld_get_z} (const char * @var{in}, char ** @var{out}) @var{in}: Zero terminated character array to process. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out}. The input string @code{in} may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding. @strong{Return value:} Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun @subheading tld_check_4t @anchor{tld_check_4t} @deftypefun {int} {tld_check_4t} (const uint32_t * @var{in}, size_t @var{inlen}, size_t * @var{errpos}, const Tld_table * @var{tld}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{errpos}: Position of offending character is returned here. @var{tld}: A @code{Tld_table} data structure representing the restrictions for which the input should be tested. Test each of the code points in @code{in} for whether or not they are allowed by the data structure in @code{tld}, return the position of the first character for which this is not the case in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun @subheading tld_check_4tz @anchor{tld_check_4tz} @deftypefun {int} {tld_check_4tz} (const uint32_t * @var{in}, size_t * @var{errpos}, const Tld_table * @var{tld}) @var{in}: Zero terminated array of unicode code points to process. @var{errpos}: Position of offending character is returned here. @var{tld}: A @code{Tld_table} data structure representing the restrictions for which the input should be tested. Test each of the code points in @code{in} for whether or not they are allowed by the data structure in @code{tld}, return the position of the first character for which this is not the case in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun @subheading tld_check_4 @anchor{tld_check_4} @deftypefun {int} {tld_check_4} (const uint32_t * @var{in}, size_t @var{inlen}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun @subheading tld_check_4z @anchor{tld_check_4z} @deftypefun {int} {tld_check_4z} (const uint32_t * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated array of unicode code points to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun @subheading tld_check_8z @anchor{tld_check_8z} @deftypefun {int} {tld_check_8z} (const char * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated UTF8 string to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. Note that the error position refers to the decoded character offset rather than the byte position in the string. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all characters are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun @subheading tld_check_lz @anchor{tld_check_lz} @deftypefun {int} {tld_check_lz} (const char * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated string in the current locales encoding to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. Note that the error position refers to the decoded character offset rather than the byte position in the string. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all characters are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.28/doc/texi/strerror-stringprep.c.texi0000644000000000000000000000363512167245613016521 00000000000000@subheading stringprep_strerror @anchor{stringprep_strerror} @deftypefun {const char *} {stringprep_strerror} (Stringprep_rc @var{rc}) @var{rc}: a @code{Stringprep_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{STRINGPREP_OK:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{STRINGPREP_CONTAINS_UNASSIGNED:} String contain unassigned Unicode code points, which is forbidden by the profile. @strong{STRINGPREP_CONTAINS_PROHIBITED:} String contain code points prohibited by the profile. @strong{STRINGPREP_BIDI_BOTH_L_AND_RAL:} String contain code points with conflicting bidirection category. @strong{STRINGPREP_BIDI_LEADTRAIL_NOT_RAL:} Leading and trailing character in string not of proper bidirectional category. @strong{STRINGPREP_BIDI_CONTAINS_PROHIBITED:} Contains prohibited code points detected by bidirectional code. @strong{STRINGPREP_TOO_SMALL_BUFFER:} Buffer handed to function was too small. This usually indicate a problem in the calling application. @strong{STRINGPREP_PROFILE_ERROR:} The stringprep profile was inconsistent. This usually indicate an internal error in the library. @strong{STRINGPREP_FLAG_ERROR:} The supplied flag conflicted with profile. This usually indicate a problem in the calling application. @strong{STRINGPREP_UNKNOWN_PROFILE:} The supplied profile name was not known to the library. @strong{STRINGPREP_NFKC_FAILED:} The Unicode NFKC operation failed. This usually indicate an internal error in the library. @strong{STRINGPREP_MALLOC_ERROR:} The @code{malloc()} was out of memory. This is usually a fatal error. @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/strerror-tld.c.texi0000644000000000000000000000157112167245613015104 00000000000000@subheading tld_strerror @anchor{tld_strerror} @deftypefun {const char *} {tld_strerror} (Tld_rc @var{rc}) @var{rc}: tld return code Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{TLD_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{TLD_INVALID:} Invalid character found. @strong{TLD_NODATA:} No input data was provided. @strong{TLD_MALLOC_ERROR:} Error during memory allocation. @strong{TLD_ICONV_ERROR:} Error during iconv string conversion. @strong{TLD_NO_TLD:} No top-level domain found in domain string. @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/tld_check_lz.texi0000644000000000000000000000246712167245613014652 00000000000000@subheading tld_check_lz @anchor{tld_check_lz} @deftypefun {int} {tld_check_lz} (const char * @var{in}, size_t * @var{errpos}, const Tld_table ** @var{overrides}) @var{in}: Zero-terminated string in the current locales encoding to process. @var{errpos}: Position of offending character is returned here. @var{overrides}: A @code{Tld_table} array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in @code{in} for whether or not they are allowed by the information in @code{overrides} or by the built-in TLD restriction data. When data for the same TLD is available both internally and in @code{overrides}, the information in @code{overrides} takes precedence. If several entries for a specific TLD are found, the first one is used. If @code{overrides} is @code{NULL}, only the built-in information is used. The position of the first offending character is returned in @code{errpos}. Note that the error position refers to the decoded character offset rather than the byte position in the string. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all characters are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.28/doc/texi/tld_get_4z.texi0000644000000000000000000000073012167245613014253 00000000000000@subheading tld_get_4z @anchor{tld_get_4z} @deftypefun {int} {tld_get_4z} (const uint32_t * @var{in}, char ** @var{out}) @var{in}: Zero terminated array of unicode code points to process. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out}. @strong{Return value:} Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun libidn-1.28/doc/texi/nfkc.c.texi0000644000000000000000000001010412167245612013351 00000000000000@subheading stringprep_utf8_to_unichar @anchor{stringprep_utf8_to_unichar} @deftypefun {uint32_t} {stringprep_utf8_to_unichar} (const char * @var{p}) @var{p}: a pointer to Unicode character encoded as UTF-8 Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If @code{p} does not point to a valid UTF-8 encoded character, results are undefined. @strong{Return value:} the resulting character. @end deftypefun @subheading stringprep_unichar_to_utf8 @anchor{stringprep_unichar_to_utf8} @deftypefun {int} {stringprep_unichar_to_utf8} (uint32_t @var{c}, char * @var{outbuf}) @var{c}: a ISO10646 character code @var{outbuf}: output buffer, must have at least 6 bytes of space. If @code{NULL}, the length will be computed and returned and nothing will be written to @code{outbuf}. Converts a single character to UTF-8. @strong{Return value:} number of bytes written. @end deftypefun @subheading stringprep_utf8_to_ucs4 @anchor{stringprep_utf8_to_ucs4} @deftypefun {uint32_t *} {stringprep_utf8_to_ucs4} (const char * @var{str}, ssize_t @var{len}, size_t * @var{items_written}) @var{str}: a UTF-8 encoded string @var{len}: the maximum length of @code{str} to use. If @code{len} < 0, then the string is nul-terminated. @var{items_written}: location to store the number of characters in the result, or @code{NULL}. Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4, assuming valid UTF-8 input. This function does no error checking on the input. @strong{Return value:} a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller. @end deftypefun @subheading stringprep_ucs4_to_utf8 @anchor{stringprep_ucs4_to_utf8} @deftypefun {char *} {stringprep_ucs4_to_utf8} (const uint32_t * @var{str}, ssize_t @var{len}, size_t * @var{items_read}, size_t * @var{items_written}) @var{str}: a UCS-4 encoded string @var{len}: the maximum length of @code{str} to use. If @code{len} < 0, then the string is terminated with a 0 character. @var{items_read}: location to store number of characters read read, or @code{NULL}. @var{items_written}: location to store number of bytes written or @code{NULL}. The value here stored does not include the trailing 0 byte. Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte. @strong{Return value:} a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, @code{NULL} will be returned. @end deftypefun @subheading stringprep_utf8_nfkc_normalize @anchor{stringprep_utf8_nfkc_normalize} @deftypefun {char *} {stringprep_utf8_nfkc_normalize} (const char * @var{str}, ssize_t @var{len}) @var{str}: a UTF-8 encoded string. @var{len}: length of @code{str}, in bytes, or -1 if @code{str} is nul-terminated. Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form. @strong{Return value:} a newly allocated string, that is the NFKC normalized form of @code{str}. @end deftypefun @subheading stringprep_ucs4_nfkc_normalize @anchor{stringprep_ucs4_nfkc_normalize} @deftypefun {uint32_t *} {stringprep_ucs4_nfkc_normalize} (const uint32_t * @var{str}, ssize_t @var{len}) @var{str}: a Unicode string. @var{len}: length of @code{str} array, or -1 if @code{str} is nul-terminated. Converts a UCS4 string into canonical form, see @code{stringprep_utf8_nfkc_normalize()} for more information. @strong{Return value:} a newly allocated Unicode string, that is the NFKC normalized form of @code{str}. @end deftypefun libidn-1.28/doc/texi/idna_to_unicode_4z4z.texi0000644000000000000000000000126712167245612016237 00000000000000@subheading idna_to_unicode_4z4z @anchor{idna_to_unicode_4z4z} @deftypefun {int} {idna_to_unicode_4z4z} (const uint32_t * @var{input}, uint32_t ** @var{output}, int @var{flags}) @var{input}: zero-terminated Unicode string. @var{output}: pointer to newly allocated output Unicode string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/stringprep_strerror.texi0000644000000000000000000000363512167245613016362 00000000000000@subheading stringprep_strerror @anchor{stringprep_strerror} @deftypefun {const char *} {stringprep_strerror} (Stringprep_rc @var{rc}) @var{rc}: a @code{Stringprep_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{STRINGPREP_OK:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{STRINGPREP_CONTAINS_UNASSIGNED:} String contain unassigned Unicode code points, which is forbidden by the profile. @strong{STRINGPREP_CONTAINS_PROHIBITED:} String contain code points prohibited by the profile. @strong{STRINGPREP_BIDI_BOTH_L_AND_RAL:} String contain code points with conflicting bidirection category. @strong{STRINGPREP_BIDI_LEADTRAIL_NOT_RAL:} Leading and trailing character in string not of proper bidirectional category. @strong{STRINGPREP_BIDI_CONTAINS_PROHIBITED:} Contains prohibited code points detected by bidirectional code. @strong{STRINGPREP_TOO_SMALL_BUFFER:} Buffer handed to function was too small. This usually indicate a problem in the calling application. @strong{STRINGPREP_PROFILE_ERROR:} The stringprep profile was inconsistent. This usually indicate an internal error in the library. @strong{STRINGPREP_FLAG_ERROR:} The supplied flag conflicted with profile. This usually indicate a problem in the calling application. @strong{STRINGPREP_UNKNOWN_PROFILE:} The supplied profile name was not known to the library. @strong{STRINGPREP_NFKC_FAILED:} The Unicode NFKC operation failed. This usually indicate an internal error in the library. @strong{STRINGPREP_MALLOC_ERROR:} The @code{malloc()} was out of memory. This is usually a fatal error. @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/stringprep_ucs4_to_utf8.texi0000644000000000000000000000161412167245612017020 00000000000000@subheading stringprep_ucs4_to_utf8 @anchor{stringprep_ucs4_to_utf8} @deftypefun {char *} {stringprep_ucs4_to_utf8} (const uint32_t * @var{str}, ssize_t @var{len}, size_t * @var{items_read}, size_t * @var{items_written}) @var{str}: a UCS-4 encoded string @var{len}: the maximum length of @code{str} to use. If @code{len} < 0, then the string is terminated with a 0 character. @var{items_read}: location to store number of characters read read, or @code{NULL}. @var{items_written}: location to store number of bytes written or @code{NULL}. The value here stored does not include the trailing 0 byte. Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte. @strong{Return value:} a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, @code{NULL} will be returned. @end deftypefun libidn-1.28/doc/texi/strerror-punycode.c.texi0000644000000000000000000000150712167245613016146 00000000000000@subheading punycode_strerror @anchor{punycode_strerror} @deftypefun {const char *} {punycode_strerror} (Punycode_status @var{rc}) @var{rc}: an @code{Punycode_status} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{PUNYCODE_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{PUNYCODE_BAD_INPUT:} Input is invalid. @strong{PUNYCODE_BIG_OUTPUT:} Output would exceed the space provided. @strong{PUNYCODE_OVERFLOW:} Input needs wider integers to process. @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/strerror-pr29.c.texi0000644000000000000000000000141212167245613015107 00000000000000@subheading pr29_strerror @anchor{pr29_strerror} @deftypefun {const char *} {pr29_strerror} (Pr29_rc @var{rc}) @var{rc}: an @code{Pr29_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{PR29_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{PR29_PROBLEM:} A problem sequence was encountered. @strong{PR29_STRINGPREP_ERROR:} The character set conversion failed (only for @code{pr29_8z()}). @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/stringprep_utf8_to_locale.texi0000644000000000000000000000067312167245613017406 00000000000000@subheading stringprep_utf8_to_locale @anchor{stringprep_utf8_to_locale} @deftypefun {char *} {stringprep_utf8_to_locale} (const char * @var{str}) @var{str}: input zero terminated string. Convert string encoded in UTF-8 into the locale's character set by using @code{stringprep_convert()}. @strong{Return value:} Returns newly allocated zero-terminated string which is @code{str} transcoded into the locale's character set. @end deftypefun libidn-1.28/doc/texi/stringprep_4zi.texi0000644000000000000000000000235212167245612015200 00000000000000@subheading stringprep_4zi @anchor{stringprep_4zi} @deftypefun {int} {stringprep_4zi} (uint32_t * @var{ucs4}, size_t @var{maxucs4len}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{ucs4}: input/output array with zero terminated string to prepare. @var{maxucs4len}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string. Since the stringprep operation can expand the string, @code{maxucs4len} indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an @code{Stringprep_rc} error code. @end deftypefun libidn-1.28/doc/texi/pr29.c.texi0000644000000000000000000000343312167245612013233 00000000000000@subheading pr29_4 @anchor{pr29_4} @deftypefun {int} {pr29_4} (const uint32_t * @var{in}, size_t @var{len}) @var{in}: input array with unicode code points. @var{len}: length of input array with unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. @strong{Return value:} Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). @end deftypefun @subheading pr29_4z @anchor{pr29_4z} @deftypefun {int} {pr29_4z} (const uint32_t * @var{in}) @var{in}: zero terminated array of Unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. @strong{Return value:} Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). @end deftypefun @subheading pr29_8z @anchor{pr29_8z} @deftypefun {int} {pr29_8z} (const char * @var{in}) @var{in}: zero terminated input UTF-8 string. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. @strong{Return value:} Returns the @code{Pr29_rc} value @code{PR29_SUCCESS} on success, and @code{PR29_PROBLEM} if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or @code{PR29_STRINGPREP_ERROR} if there was a problem converting the string from UTF-8 to UCS-4. @end deftypefun libidn-1.28/doc/texi/stringprep_locale_charset.texi0000644000000000000000000000200412167245613017435 00000000000000@subheading stringprep_locale_charset @anchor{stringprep_locale_charset} @deftypefun {const char *} {stringprep_locale_charset} ( @var{void}) Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything. Note that this function return the application's locale's preferred charset (or thread's locale's preffered charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding. @strong{Return value:} Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback. @end deftypefun libidn-1.28/doc/texi/idn_free.texi0000644000000000000000000000111612167245613013766 00000000000000@subheading idn_free @anchor{idn_free} @deftypefun {void} {idn_free} (void * @var{ptr}) @var{ptr}: memory region to deallocate, or @code{NULL}. Deallocates memory region by calling @code{free()}. If @code{ptr} is @code{NULL} no operation is performed. Normally applications de-allocate strings allocated by libidn by calling @code{free()} directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible. @end deftypefun libidn-1.28/doc/texi/tld_check_4t.texi0000644000000000000000000000167412167245613014553 00000000000000@subheading tld_check_4t @anchor{tld_check_4t} @deftypefun {int} {tld_check_4t} (const uint32_t * @var{in}, size_t @var{inlen}, size_t * @var{errpos}, const Tld_table * @var{tld}) @var{in}: Array of unicode code points to process. Does not need to be zero terminated. @var{inlen}: Number of unicode code points. @var{errpos}: Position of offending character is returned here. @var{tld}: A @code{Tld_table} data structure representing the restrictions for which the input should be tested. Test each of the code points in @code{in} for whether or not they are allowed by the data structure in @code{tld}, return the position of the first character for which this is not the case in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.28/doc/texi/stringprep_unichar_to_utf8.texi0000644000000000000000000000073012167245612017571 00000000000000@subheading stringprep_unichar_to_utf8 @anchor{stringprep_unichar_to_utf8} @deftypefun {int} {stringprep_unichar_to_utf8} (uint32_t @var{c}, char * @var{outbuf}) @var{c}: a ISO10646 character code @var{outbuf}: output buffer, must have at least 6 bytes of space. If @code{NULL}, the length will be computed and returned and nothing will be written to @code{outbuf}. Converts a single character to UTF-8. @strong{Return value:} number of bytes written. @end deftypefun libidn-1.28/doc/texi/stringprep.c.texi0000644000000000000000000001231312167245612014631 00000000000000@subheading stringprep_4i @anchor{stringprep_4i} @deftypefun {int} {stringprep_4i} (uint32_t * @var{ucs4}, size_t * @var{len}, size_t @var{maxucs4len}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{ucs4}: input/output array with string to prepare. @var{len}: on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points. @var{maxucs4len}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated (@code{ucs4}[@code{len}] = 0). The output will not be zero terminated unless @code{ucs4}[@code{len}] = 0. Instead, see @code{stringprep_4zi()} if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, @code{maxucs4len} indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an @code{Stringprep_rc} error code. @end deftypefun @subheading stringprep_4zi @anchor{stringprep_4zi} @deftypefun {int} {stringprep_4zi} (uint32_t * @var{ucs4}, size_t @var{maxucs4len}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{ucs4}: input/output array with zero terminated string to prepare. @var{maxucs4len}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string. Since the stringprep operation can expand the string, @code{maxucs4len} indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an @code{Stringprep_rc} error code. @end deftypefun @subheading stringprep @anchor{stringprep} @deftypefun {int} {stringprep} (char * @var{in}, size_t @var{maxlen}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see @code{stringprep_locale_to_utf8()}. Since the stringprep operation can expand the string, @code{maxlen} indicate how large the buffer holding the string is. This function will not read or write to characters outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an error code. @end deftypefun @subheading stringprep_profile @anchor{stringprep_profile} @deftypefun {int} {stringprep_profile} (const char * @var{in}, char ** @var{out}, const char * @var{profile}, Stringprep_profile_flags @var{flags}) @var{in}: input array with UTF-8 string to prepare. @var{out}: output variable with pointer to newly allocate string. @var{profile}: name of stringprep profile to use. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see @code{stringprep_locale_to_utf8()}. The output @code{out} variable must be deallocated by the caller. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an error code. @end deftypefun libidn-1.28/doc/texi/strerror-idna.c.texi0000644000000000000000000000317612167245613015237 00000000000000@subheading idna_strerror @anchor{idna_strerror} @deftypefun {const char *} {idna_strerror} (Idna_rc @var{rc}) @var{rc}: an @code{Idna_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{IDNA_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{IDNA_STRINGPREP_ERROR:} Error during string preparation. @strong{IDNA_PUNYCODE_ERROR:} Error during punycode operation. @strong{IDNA_CONTAINS_NON_LDH:} For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters. @strong{IDNA_CONTAINS_MINUS:} For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D). @strong{IDNA_INVALID_LENGTH:} The final output string is not within the (inclusive) range 1 to 63 characters. @strong{IDNA_NO_ACE_PREFIX:} The string does not contain the ACE prefix (for ToUnicode). @strong{IDNA_ROUNDTRIP_VERIFY_ERROR:} The ToASCII operation on output string does not equal the input. @strong{IDNA_CONTAINS_ACE_PREFIX:} The input contains the ACE prefix (for ToASCII). @strong{IDNA_ICONV_ERROR:} Could not convert string in locale encoding. @strong{IDNA_MALLOC_ERROR:} Could not allocate buffer (this is typically a fatal error). @strong{IDNA_DLOPEN_ERROR:} Could not dlopen the libcidn DSO (only used internally in libc). @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/idna_to_ascii_lz.texi0000644000000000000000000000126712167245612015513 00000000000000@subheading idna_to_ascii_lz @anchor{idna_to_ascii_lz} @deftypefun {int} {idna_to_ascii_lz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input string encoded in the current locale's character set. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/tld_get_z.texi0000644000000000000000000000104512167245613014167 00000000000000@subheading tld_get_z @anchor{tld_get_z} @deftypefun {int} {tld_get_z} (const char * @var{in}, char ** @var{out}) @var{in}: Zero terminated character array to process. @var{out}: Zero terminated ascii result string pointer. Isolate the top-level domain of @code{in} and return it as an ASCII string in @code{out}. The input string @code{in} may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding. @strong{Return value:} Return @code{TLD_SUCCESS} on success, or the corresponding @code{Tld_rc} error code otherwise. @end deftypefun libidn-1.28/doc/texi/stringprep_locale_to_utf8.texi0000644000000000000000000000064612167245613017406 00000000000000@subheading stringprep_locale_to_utf8 @anchor{stringprep_locale_to_utf8} @deftypefun {char *} {stringprep_locale_to_utf8} (const char * @var{str}) @var{str}: input zero terminated string. Convert string encoded in the locale's character set into UTF-8 by using @code{stringprep_convert()}. @strong{Return value:} Returns newly allocated zero-terminated string which is @code{str} transcoded into UTF-8. @end deftypefun libidn-1.28/doc/texi/idna_to_ascii_4i.texi0000644000000000000000000000310712167245612015375 00000000000000@subheading idna_to_ascii_4i @anchor{idna_to_ascii_4i} @deftypefun {int} {idna_to_ascii_4i} (const uint32_t * @var{in}, size_t @var{inlen}, char * @var{out}, int @var{flags}) @var{in}: input array with unicode code points. @var{inlen}: length of input array with unicode code points. @var{out}: output zero terminated string that must have room for at least 63 characters plus the terminating zero. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels. It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific. The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition. ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once. @strong{Return value:} Returns 0 on success, or an @code{Idna_rc} error code. @end deftypefun libidn-1.28/doc/texi/idna_to_unicode_lzlz.texi0000644000000000000000000000146012167245612016412 00000000000000@subheading idna_to_unicode_lzlz @anchor{idna_to_unicode_lzlz} @deftypefun {int} {idna_to_unicode_lzlz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated string encoded in the current locale's character set. @var{output}: pointer to newly allocated output string encoded in the current locale's character set. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/stringprep_utf8_to_ucs4.texi0000644000000000000000000000132012167245612017012 00000000000000@subheading stringprep_utf8_to_ucs4 @anchor{stringprep_utf8_to_ucs4} @deftypefun {uint32_t *} {stringprep_utf8_to_ucs4} (const char * @var{str}, ssize_t @var{len}, size_t * @var{items_written}) @var{str}: a UTF-8 encoded string @var{len}: the maximum length of @code{str} to use. If @code{len} < 0, then the string is nul-terminated. @var{items_written}: location to store the number of characters in the result, or @code{NULL}. Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4, assuming valid UTF-8 input. This function does no error checking on the input. @strong{Return value:} a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller. @end deftypefun libidn-1.28/doc/texi/idna_to_unicode_8z4z.texi0000644000000000000000000000126112167245612016235 00000000000000@subheading idna_to_unicode_8z4z @anchor{idna_to_unicode_8z4z} @deftypefun {int} {idna_to_unicode_8z4z} (const char * @var{input}, uint32_t ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output Unicode string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/stringprep_convert.texi0000644000000000000000000000112112167245613016144 00000000000000@subheading stringprep_convert @anchor{stringprep_convert} @deftypefun {char *} {stringprep_convert} (const char * @var{str}, const char * @var{to_codeset}, const char * @var{from_codeset}) @var{str}: input zero-terminated string. @var{to_codeset}: name of destination character set. @var{from_codeset}: name of origin character set, as used by @code{str}. Convert the string from one character set to another using the system's @code{iconv()} function. @strong{Return value:} Returns newly allocated zero-terminated string which is @code{str} transcoded into to_codeset. @end deftypefun libidn-1.28/doc/texi/pr29_strerror.texi0000644000000000000000000000141212167245613014750 00000000000000@subheading pr29_strerror @anchor{pr29_strerror} @deftypefun {const char *} {pr29_strerror} (Pr29_rc @var{rc}) @var{rc}: an @code{Pr29_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{PR29_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{PR29_PROBLEM:} A problem sequence was encountered. @strong{PR29_STRINGPREP_ERROR:} The character set conversion failed (only for @code{pr29_8z()}). @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/idna_to_ascii_4z.texi0000644000000000000000000000120212167245612015410 00000000000000@subheading idna_to_ascii_4z @anchor{idna_to_ascii_4z} @deftypefun {int} {idna_to_ascii_4z} (const uint32_t * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero terminated input Unicode string. @var{output}: pointer to newly allocated output string. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/stringprep_profile.texi0000644000000000000000000000212012167245612016123 00000000000000@subheading stringprep_profile @anchor{stringprep_profile} @deftypefun {int} {stringprep_profile} (const char * @var{in}, char ** @var{out}, const char * @var{profile}, Stringprep_profile_flags @var{flags}) @var{in}: input array with UTF-8 string to prepare. @var{out}: output variable with pointer to newly allocate string. @var{profile}: name of stringprep profile to use. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see @code{stringprep_locale_to_utf8()}. The output @code{out} variable must be deallocated by the caller. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an error code. @end deftypefun libidn-1.28/doc/texi/punycode.c.texi0000644000000000000000000001023512167245612014263 00000000000000@subheading punycode_encode @anchor{punycode_encode} @deftypefun {int} {punycode_encode} (size_t @var{input_length}, const punycode_uint [] @var{input}, const unsigned char [] @var{case_flags}, size_t * @var{output_length}, char [] @var{output}) @var{input_length}: The number of code points in the @code{input} array and the number of flags in the @code{case_flags} array. @var{input}: An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. @var{case_flags}: A @code{NULL} pointer or an array of boolean values parallel to the @code{input} array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If @code{case_flags} is a @code{NULL} pointer then ASCII letters are left as they are, and other code points are treated as unflagged. @var{output_length}: The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. @var{output}: An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the @code{input} contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) Converts a sequence of code points (presumed to be Unicode code points) to Punycode. @strong{Return value:} The return value can be any of the @code{Punycode_status} values defined above except @code{PUNYCODE_BAD_INPUT}. If not @code{PUNYCODE_SUCCESS}, then @code{output_size} and @code{output} might contain garbage. @end deftypefun @subheading punycode_decode @anchor{punycode_decode} @deftypefun {int} {punycode_decode} (size_t @var{input_length}, const char [] @var{input}, size_t * @var{output_length}, punycode_uint [] @var{output}, unsigned char [] @var{case_flags}) @var{input_length}: The number of ASCII code points in the @code{input} array. @var{input}: An array of ASCII code points (0..7F). @var{output_length}: The caller passes in the maximum number of code points that it can receive into the @code{output} array (which is also the maximum number of flags that it can receive into the @code{case_flags} array, if @code{case_flags} is not a @code{NULL} pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied @code{output_length} is greater than that. @var{output}: An array of code points like the input argument of @code{punycode_encode()} (see above). @var{case_flags}: A @code{NULL} pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the @code{output} array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. Converts Punycode to a sequence of code points (presumed to be Unicode code points). @strong{Return value:} The return value can be any of the @code{Punycode_status} values defined above. If not @code{PUNYCODE_SUCCESS}, then @code{output_length}, @code{output}, and @code{case_flags} might contain garbage. @end deftypefun libidn-1.28/doc/texi/idna_to_unicode_8zlz.texi0000644000000000000000000000137312167245612016331 00000000000000@subheading idna_to_unicode_8zlz @anchor{idna_to_unicode_8zlz} @deftypefun {int} {idna_to_unicode_8zlz} (const char * @var{input}, char ** @var{output}, int @var{flags}) @var{input}: zero-terminated UTF-8 string. @var{output}: pointer to newly allocated output string encoded in the current locale's character set. @var{flags}: an @code{Idna_flags} value, e.g., @code{IDNA_ALLOW_UNASSIGNED} or @code{IDNA_USE_STD3_ASCII_RULES}. Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. @strong{Return value:} Returns @code{IDNA_SUCCESS} on success, or error code. @end deftypefun libidn-1.28/doc/texi/stringprep_4i.texi0000644000000000000000000000313512167245612015006 00000000000000@subheading stringprep_4i @anchor{stringprep_4i} @deftypefun {int} {stringprep_4i} (uint32_t * @var{ucs4}, size_t * @var{len}, size_t @var{maxucs4len}, Stringprep_profile_flags @var{flags}, const Stringprep_profile * @var{profile}) @var{ucs4}: input/output array with string to prepare. @var{len}: on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points. @var{maxucs4len}: maximum length of input/output array. @var{flags}: a @code{Stringprep_profile_flags} value, or 0. @var{profile}: pointer to @code{Stringprep_profile} to use. Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated (@code{ucs4}[@code{len}] = 0). The output will not be zero terminated unless @code{ucs4}[@code{len}] = 0. Instead, see @code{stringprep_4zi()} if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, @code{maxucs4len} indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The @code{flags} are one of @code{Stringprep_profile_flags} values, or 0. The @code{profile} contain the @code{Stringprep_profile} instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. @strong{Return value:} Returns @code{STRINGPREP_OK} iff successful, or an @code{Stringprep_rc} error code. @end deftypefun libidn-1.28/doc/texi/idna_strerror.texi0000644000000000000000000000317612167245613015100 00000000000000@subheading idna_strerror @anchor{idna_strerror} @deftypefun {const char *} {idna_strerror} (Idna_rc @var{rc}) @var{rc}: an @code{Idna_rc} return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. @strong{IDNA_SUCCESS:} Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. @strong{IDNA_STRINGPREP_ERROR:} Error during string preparation. @strong{IDNA_PUNYCODE_ERROR:} Error during punycode operation. @strong{IDNA_CONTAINS_NON_LDH:} For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters. @strong{IDNA_CONTAINS_MINUS:} For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D). @strong{IDNA_INVALID_LENGTH:} The final output string is not within the (inclusive) range 1 to 63 characters. @strong{IDNA_NO_ACE_PREFIX:} The string does not contain the ACE prefix (for ToUnicode). @strong{IDNA_ROUNDTRIP_VERIFY_ERROR:} The ToASCII operation on output string does not equal the input. @strong{IDNA_CONTAINS_ACE_PREFIX:} The input contains the ACE prefix (for ToASCII). @strong{IDNA_ICONV_ERROR:} Could not convert string in locale encoding. @strong{IDNA_MALLOC_ERROR:} Could not allocate buffer (this is typically a fatal error). @strong{IDNA_DLOPEN_ERROR:} Could not dlopen the libcidn DSO (only used internally in libc). @strong{Return value:} Returns a pointer to a statically allocated string containing a description of the error with the return code @code{rc}. @end deftypefun libidn-1.28/doc/texi/toutf8.c.texi0000644000000000000000000000466612167245613013702 00000000000000@subheading stringprep_locale_charset @anchor{stringprep_locale_charset} @deftypefun {const char *} {stringprep_locale_charset} ( @var{void}) Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything. Note that this function return the application's locale's preferred charset (or thread's locale's preffered charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding. @strong{Return value:} Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback. @end deftypefun @subheading stringprep_convert @anchor{stringprep_convert} @deftypefun {char *} {stringprep_convert} (const char * @var{str}, const char * @var{to_codeset}, const char * @var{from_codeset}) @var{str}: input zero-terminated string. @var{to_codeset}: name of destination character set. @var{from_codeset}: name of origin character set, as used by @code{str}. Convert the string from one character set to another using the system's @code{iconv()} function. @strong{Return value:} Returns newly allocated zero-terminated string which is @code{str} transcoded into to_codeset. @end deftypefun @subheading stringprep_locale_to_utf8 @anchor{stringprep_locale_to_utf8} @deftypefun {char *} {stringprep_locale_to_utf8} (const char * @var{str}) @var{str}: input zero terminated string. Convert string encoded in the locale's character set into UTF-8 by using @code{stringprep_convert()}. @strong{Return value:} Returns newly allocated zero-terminated string which is @code{str} transcoded into UTF-8. @end deftypefun @subheading stringprep_utf8_to_locale @anchor{stringprep_utf8_to_locale} @deftypefun {char *} {stringprep_utf8_to_locale} (const char * @var{str}) @var{str}: input zero terminated string. Convert string encoded in UTF-8 into the locale's character set by using @code{stringprep_convert()}. @strong{Return value:} Returns newly allocated zero-terminated string which is @code{str} transcoded into the locale's character set. @end deftypefun libidn-1.28/doc/texi/tld_check_4tz.texi0000644000000000000000000000155112167245613014737 00000000000000@subheading tld_check_4tz @anchor{tld_check_4tz} @deftypefun {int} {tld_check_4tz} (const uint32_t * @var{in}, size_t * @var{errpos}, const Tld_table * @var{tld}) @var{in}: Zero terminated array of unicode code points to process. @var{errpos}: Position of offending character is returned here. @var{tld}: A @code{Tld_table} data structure representing the restrictions for which the input should be tested. Test each of the code points in @code{in} for whether or not they are allowed by the data structure in @code{tld}, return the position of the first character for which this is not the case in @code{errpos}. @strong{Return value:} Returns the @code{Tld_rc} value @code{TLD_SUCCESS} if all code points are valid or when @code{tld} is null, @code{TLD_INVALID} if a character is not allowed, or additional error codes on general failure conditions. @end deftypefun libidn-1.28/doc/reference/0000755000000000000000000000000012167253754012373 500000000000000libidn-1.28/doc/reference/libidn-docs.sgml0000664000000000000000000000705711746453142015374 00000000000000 ]> GNU Libidn API Reference Manual for GNU Libidn &version;. The latest version of this documentation can be found on-line at https://www.gnu.org/software/libidn/reference/. GNU Libidn API Reference Manual GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries. The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included. The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call. The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing. Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included. Also included is a command line tool, several self tests, code examples, and more. The internal layout of the library, and how your application interact with the various parts of the library, are shown in .
Components of Libidn
API Index
libidn-1.28/doc/reference/libidn.pdf0000644000000000000000000063605212167253754014263 00000000000000%PDF-1.5 % 37 0 obj << /Length 231 /Filter /FlateDecode >> stream xڝ;O@SݳUD""@<*JbYJ,PjV31Xlf(ywp| VkI_>Lݵmmݦu^5Wc2G1Vu6FcȩRZ3[N_Nl5dl y͑3 $K^s3y 9P4TZJ;XGa:!(&Lb endstream endobj 47 0 obj << /Length 966 /Filter /FlateDecode >> stream xřMo@{%vf-Uj+o8H&S6Ύm+QH*AUM9>TՅ8<ˋv~;QlwsrrA럷l@TϠ:۬5w֢ 6!_x-9f3̷NOOG٨HzXV&02+d5񐒗)J"vY bw`W;X'غRrCBSp/>W,X]ZDFV1D0FCA[3ڜӛrN[pWKn%ma.pYzCFW0 OEQdA >Y+atJ,|'bFuV餟ي=d;'6wkk~U[Mx=||ﰕ|m쁁O3˃vwy5x|fP8=F0(`$4߉UÄ1|'|uM<G\ HYg^JklfsoGV"&F? HABD ]e 9.쫀)-vA0:ET&}0:E%DgLFR{v@> stream xKo@s}Ѩ (b'M{&~д2"vlwzƃY:O..}(# .jW /`>|YLU_W:\MY/~\l2 vg4eUU핒y-Q|A=Y']2E(541VBIڱɧ# @!9~қzWֻ O)iL(D<& X"5t,lXIw6T70V 2jݿ"[LX?_L!ՑS083aݟkzmm&'${:S6/Sf=.UaLc30n(T86ž^Yc?[3jJ>Ll0wwA^h;ԏ WuQ`tdHF42;E endstream endobj 67 0 obj << /Length 293 /Filter /FlateDecode >> stream xR=O0+nL\ώsG@$*0UJD7"&{# eCQA6:L%kcIԬ;/o5<́:?EN+wz endstream endobj 75 0 obj << /Length 1855 /Filter /FlateDecode >> stream xڝ]s6~3}(7GNƍ/mf< i Ү8|n3}j{W`uQ'y<4X`S7?.ϓN7W|B}ǻ7˯/^,(sZΫb,{E_,^m-b aA%4 v+ j8{hUl,fQ7WA\DY3@(Y((ILAD)+ γ,Z A,cNFŢ&I9j`ip܏M` jlFX=N p;hm{-3›JD;bx2 ܙ^T cIhyF"Y^fYHo52Bb܅ OZ.);q9X{rZ&YͪL3Z:-_& H#wk) :*S q*KDJ_dg#r+:egНT[ZY4+_+Wu۫3>COnnrZ߬~B rakQDYŏ%@q^^^]!R=qa'#Ѓȓv7K],b"eǭ&H(*@LfL}_yj@PK3n- PK /LN; fkvik z(w"&3N'DaM8HMS,} ̧=ڑTonvH<,8(2؀v8$H3b8rDGHZ/lbl5Xت{^fܩsG= UΓ.@\/d᫖W$ҵ4=aoa`펤?p.^iOc;?kJQD{1]#z;]H_lz8YjxdsOܙg [o<8B>92?,n+5fN;l}it4ڶx0mv8<ݢ A$t/_E6@ÛEƑKX+:@J#x endstream endobj 80 0 obj << /Length 675 /Filter /FlateDecode >> stream xڭUn@}WKfx*mR !'XJb'BکM(]s&h: ςD[dULIH[X5ELKb7W2),Nywd⮲0*`f]F0  (7w- v֠r$%q5.R_0PF1! ʀ8 #BUUȅh$'$ah o$]Xa)H'(df\*T%1]Om8ͅKeZ*M.\)j, MOXB[)ᢣqtq5L?%$n3 rhO\W YDIk!08{uXhd}+Ӈ$ l_=kbc<+gݶ&LqVlyL'{Wݫ]3)kVx En?aW-Bp_'9|Exo'd endstream endobj 72 0 obj << /Type /XObject /Subtype /Image /Width 424 /Height 388 /BitsPerComponent 8 /ColorSpace /DeviceRGB /Length 3383 /Filter /FlateDecode >> stream xIv8@AESD@ WU.d r|Io9>&peI;= N?-!8oy:#Ubo/\=qO;zVgܓ=I$q{={Ľ}ln~m{z;s{hlq+]|ζ+좝{ޔs֫7w3{>j+ `>}&6}6(?am2yAϽ[lw^[Ż{>f8~YGݫB(Μ{}^ xI6?G{ť{[^*ݛ>Ž+Gt;{57vCA1{闷W龮=soArOVIz,vo uk]-x{Ζ{={=qO'q{ݞ$q{=Xx'T>WNWI;ux~>viL@`,xgm s0pC!j"p{m.{8p67#=gm s069 {ơ:kឃq@`,xgm s0pC!j"p{'{9jgS@ ls{p=gm S8T@7=b [#2)ହ{&YɃ謹WDi9q0oq{uvu0Oad̐{ >nWcr{㞸=zJ6Iq{37qpܸ=qܸ=q{=qÃ|kdp{wۑnޥ;>{^c6tæ~(O[Bw_/ j3{Ss5; >(^/*9zj|p+tmKxbV ǽ܋v/ȟ޻{(7ɘju/wuGs?߲=މT to>7p ǽ;qvk1|b{'>Pw[TܛG݋ҋG;|]?]/Wįu u^e@W楍{]}]c{ q{]jC-a?~X=x־_c=M{̍{s037q{37q{=q{= :V1r{ lr{Q`޳WNޚװ'_-;!ZmsSaV}>^(zkX<ܳgX<㞁X!g=q@gq{㞣=Ygr)p{.gr)p{.,,]hX/[CYZ6_ܓֹ'Iܓ$I${=I$qO'Iܓ$I${WBI?I|_$IR'X$iV'{4M.$qOv}'Is=I;$-~'I$I\I$I$I6y~O$I$I7I$I$I=Iܓ$I$}$qO$Iw~o$@$qO&vz'Is=Iܓou%I$n*7}soG?z]毬on L.i:C$J$$I+@I$$I+@I$QN'I$W:6-?,s$i,|; Tҟv-x7/$=)Sޤ/\;܋ WpORܢ'\ݩurŽs%uxt5>{_@9t)Tb INܓ$I%IN$I%{(g'I$W$Iru'I$n_I~$xxOs^|sKҿ endstream endobj 90 0 obj << /Length 1316 /Filter /FlateDecode >> stream xYn6}WCE*X\Enc-TYIT8khޑHْ#o(}/9&tq9:Ul<5 GWQ4ݳ^I='m> m2QFS,iѩ&Hf皅VXJ9+=fq5(|L#BIJ0hC C$)atR?XqO`I$Lz oyn.ByOܪ{SHlB8-b`SXFHiW:ZkYt╉t 5VZ|= n}k X1 ]Gba:|!rj%, `+@t8qv=QZEn8FNm-9VFoBWHWIUA_EۺDt+#} ,DcS(7D5:=u_ }' )@hD|1ډ|L0^7 Pwα]|-y<4)a.u9tҷ_rAy6<+h!`Y^p䟳21@&Ì İ#t]YښGo$憕X4nKzk+,\G? }w<9k20{ Q`EhM}mi2Z:vR?-r"}7DaFkGzӛAe{n=. 4 hbyvo{Yj˅[{Νc}x|p!Jz0ha77c\cBc u6;y}[#˟He͑3vڢHo8b9L%u-)im( ZkwϿWhxvqr$_HpweHL[u-jm3" Vщ?s0z7W'3ƞYtQ#0U+16#[5 Qm/2!Wx順]Tޞ~6׮YXkZ:+!"3ēj*nTGYk@ޗ6`pIZ~&fyg"I^&M`G $e ue+,GA}H礉MϤDrJx^KAʣ2>idsbCM]0tK2'yk?ݺЏ endstream endobj 116 0 obj << /Length 2503 /Filter /FlateDecode >> stream xڽ[Ys~ࣔ`$HpSyplіGr$y--Q6+21N*=2 lt46^ l<\e~u}zOb8NG';_ nwgV~ǣȤvOIMmAN#=|f#ށ;oFb</z~K~#l_۵| 9vE3QǓPxB/pHIG+ !>[Fyl [-H0҆=xiC!^\~GG1~&:n*l^Lk5֕3tM>}凶6L>/}~G;3{6ԫ?y-I7~gfP5=O7AFbwD3g OvNwP=- N箶LC/:JJ.dnz) 4w@wf5@y+׬vF/'mF|bwD+qf9[QFYDQ$IK<Ȼh*q+J+N;3{)smȩ7- ݁.~~G;3{dW+»pӸ!_n|B\*(Ke#IkQBQk\P 0߃ςU`aK,O"yWAo^,2BzR/ Ye.gL1#; ɘfI&B>HIΣe&Sbȗ*H¾I{ aI.4hԘN P]Ow-J(dn:Z48cYnCN}7_,dc|[q(JZ ݞ=n9OϜ94'ywGlU(+fpoA jpfuz\!AyW}ۑFq˸3p7γm\f8Jaَai%|B U$X(|ꜿbZ&GUU4V vngLNk౭vFcS^H-i+Y*|d5Tat2`T"F iG|jmlj*x1G;mc='k ,lJ8eW;y81;QgA "0CXq}{[-ǂ> g+SlY^BIF/_8f 敆m,rteY~z7U7(jBյ+~) TJ YѢX@ñVʒnW!}J(xyrnmJ ~qE[+5܍IŎ3 ҔrqrpcD= ;1SWկ+{j(~y޼tU߿/Aӣ]m (Np)AEVw`_JF\UĩAFıTY ^T ˮ?7H!vbNܦڦ(7ᅏڄzBM gx}UkZEzo*K*QDq)};[wa endstream endobj 2 0 obj << /Type /ObjStm /N 100 /First 794 /Length 1554 /Filter /FlateDecode >> stream xYn7}Wy030'6HR Gޤj]ɐe |Htvg.!ir%UW':G (;*^%x8c(nSW &2]40Ua9)^YN1.R03|Tr, R@Uj(&̨pPu̖yVgdlyaK->4N459d,!C^LO\4|O==r~zt잼9toO{d|yr~8Mƞ%`:/`h|ڟru89A : t*iگlWO/PG~po]w0<6{wݛ{6Km1 K7w,U !_rB~QXr!V7<;;VDb[sfK HXqǐt2|,u/3w#mD2&CZ[e(mMaYQ䃇+='wd )^4 *fg]D^97]~tO'~:'a?L!4|U+)gij4$MCKx%l[" I"C"ZI+>߱d5mwO/t0OI6k[H 9sRaB7< W\3=}An*{roV۽\ۃ:AR-}²mxoŹ>O a~7= l=yB]ZeN8{~!dT" vVA;&{'hOFɄd" [\Gvޓo sY2}} 4IVȸIjmH)۴m0IeX)mP*6ibqFMPbTI >JTX\9@I'ivwҟmʗ-ΥF$ۥ74Jv!qvQ /*?8ñTowl|?٭ns|cԆ(Ⱥ22VClCn$@QnPUiU۰^ZMcmX%ohJmH\}f(x*mHV5-hXhbz endstream endobj 166 0 obj << /Length 2650 /Filter /FlateDecode >> stream xZr}WJO[v'4Ij%JbBZ^2t^$z-Y*lF},S[kvw[/#pMWn`i^Oiӥ~7 .cSL}eDhQsVa2i[|Z=7-XW(u`q1^|` 7|ۋ2%71r94B;&0_ݞÌ& qa -MXzQq&"K0N z DR,0Ny?6QzJN阳ߛ&3H8,G_ [p|7'Zb`lU*ьKtan1͹f% &NM[,N'Uk=B4"ӵ,%eF]0e3m诟hT-2 ֐,U`Gh_` bs+&k|SfiȖtx GT0LG__ۿ͇$~D* 96hD]e_?YbH[V)Aws%\h=ۋSЅ]~Oe4d44|j4mAl+^Zքƚپ iPӄ45LΪdٗK"8b0ֱ"@d0H))c <(`8ZuRӀzFAy)%IR8yz|Zý2wbp)bc@,\$~ZIf@ ĝߪ"lJRc[fڔm̮$y|!? , |I־@ S1>Z݅@8ZVɮ<*\n&֪> BEѳ1㝾Q ˄N_QBY4QTthR2*ydl+"$}31i"fa5P1|}!)k].mmk ߓY\fX܎ ,Jp~ۻLXa½.(wkpfkyZ~paH1꧛˞~u9f.B;UTQ\vRPU9&Z2ç{Ǜ fP]PT4ϻ5 d9 2`K9k͸8C86R=~f @\˰l ۖIGz7Np!wGW8)p}9o]s$~vCU`?{n` * ž3 ˟{X;iX&μniƙ.Ͱ t7$i$7pʊ^$jytH@V*&y#iJ2ۊbI% ӥTvֶ$9,ɡ$V(k.[>< e%' }g4 Vv(hX׺QTE-j7<^ǂiŀ鍅A@ncɣJJplTj(}k$hN5 6 S)-(HQ~c?/B٠R0NyVP?KQF;ˮBh\t.mR@ŠJ\//*-b QG?paX:==y6Rku|yhY2E G#d2o#&9~"?f~e Bx?=t(fSe8x=/{߽-h] ȕ.uօUEZ{7Z[hc= =S#:{ ;)QMx?3{=-9=M|ass|g]gl n֔"ga췠Y`̒at}s\O.mj*2DY`&ogj4~A ~ dJ >vp}U{zVD/h ST3 J?Whk8U֮Zy N|oU+vaZ9A9ݲ ;J ˀvs>n~TaXz8WSORi嗞>_6% endstream endobj 194 0 obj << /Length 2100 /Filter /FlateDecode >> stream xZMs6WԖ! 7'3ě$%f-E*%h*Exf \ b/F1'ܛ,='b MgttEXJEn?ޙƃ\RsinH&F?O! ,s,@Q@a^mp̅ꍋ/B!(̛.>x x0=r1 B93o|@8 84@`Eɬ.fI5OY)`a +@1S&c$E"=Ab#(b޲km$D,ncCw;z m[$jgJLS$Vq׆7xp@`{j 'yWL9)SPwbF^k`ٿ-D³e@W "6ްx J*@Q|~Ե?Г="d8DD@BGll8c8 ("k0¾} WaMݡmSwhȦС2LM9|#!93w: HTV*( ;R m p&QRadKÍz1E5e)sZ 6%M_o8NthT7 $Ai h"-~ { G7:Jf FQ}OR!4cS@ tBBb6Jفy&O&;=>ȦyPǧtIH"(=?zr6(Fo!O%tƆ4׳?`!MDs<*# DQ+5H:U9Q'aH2+411?ѯ,Moǎk sRޕ5l5'UV;ɵ5}mTB#7 ge0ZHӻ4NBs;~Pkb.y\D57ˢ\HޛU=v̚ZVdFPi@暯$`bvܳ!yQw18Jo%dOe溺fM [N+70`Ŷ"PLw[m8r$4gԜ)YQNuo}h:XRZEҕuނٿ`@?6[8zp3@vVNVQJƐ; Ծk&լXOVr]] ϡ1D.b<>цY=: Km1e]9+Д i5%sU[|aoNM{KWzޤ{ *i%k?CWRFk uC/sLz&a]^gYWebKZ?w2+a_3kOs ;}@F_PKҵ <d endstream endobj 226 0 obj << /Length 1825 /Filter /FlateDecode >> stream xZKs6W7!x8m-izH2dN%壉x^dZD\,w~3ss{7 G QMC`/`3Oɀ&qj\ɍ\4iO>`'Sy3ЫfB;`y2N}>:q8_5q Fy0;ޟ=l$kx{.AZ (nm/ZD93p#UdQ-B<lj(`yYwXI<0gIZZkQ-)-9Jd5+a uͰ{g@`#uv5*5hQPV"C-b:gņPqu8mF3Ln.z'me3j=Q~W٘D3D>antrzu5pxyq}~,Qxx>޳rrsq|u>\_р27t%qjBGk^%=4N$KU ߞP,&v\TenBf6eH͒tfHU~Rwٷá%ꗦ*3Y 3RgF ,mVzeМT1BeFv\Ijw湌JC240XoCq׊{%4 g"E8gaOҸjt `&+_ɰeiКUzxyi+]D%3xeC&N3*<[ԌVQZrt'MTҌJ5e(.0ntE+EE+LflDl. Rv9VŊn=EwcwGj7eEppt݅ \@.>X,wLѣrs7d ,L,[:O0E:`ƒfUpAي+\+X WR WVO\A ƣ\ `W+oq5+#x)\awDGTqD*6T<UPPUP PŊnEwcwG/wB**VwLѡR"-Xd>_*TA19\0yXu2r8ahHU}ʶ Jp IIIWsSbPjZQ,/jh5H $H -aIhbڰV#Ğ[:#8h$lE.B endstream endobj 154 0 obj << /Type /ObjStm /N 100 /First 878 /Length 1752 /Filter /FlateDecode >> stream xYn7}W}řeX_RnD6z1:j4 ڿiWqcYbg=;< )#QMuZEBЊch XLNᲓd⤦EbKђK6L%B? %Go 0Wd0P M`1W)8ar!& m_%€Ly5wƧdt0+*0QE \Q3Rk,|Cx-lXXG9FIaJv16 nx%Zs慇b¼8:6x8fc  %шR m !T !*V?83le*D9aȫKiu)M ?3& A0EUr-cvA.h.W)U0`$ +t@Q ad:YM;P(ؤjC5g3*RVc:l$F{{ɡ L/no;{,wFOlB>Fl"/kV,Ut-.`EWba`&l>bZm| ~h Q7aE&l^s/%>^oޞcAˏ۠OJVm>"Y(Y|ɋtv.ᱛuA{of7JG2/뷗O cjmW&@/(_kkW3jkkW3h2}z089\tg@9?X31`˥ɳa!;y=__}o^})|%-^>won0 4$"oq|z/ɳG?쿘>/^hn^ӣPӃӣ#sCjY}BZC s؄qOOVg'C"eI}hz|'ό){;GhQqCRqS[NJhiCDpM R~TI`)B+3T%mFoEx6B.(dBYIVl&*@>ʨ^Q ]U#U#Z#sss@3x\Iqy rϪ;X bff:4S/2EqpŢVCֆ+ZvPFRvqH4#*ws;=C.LmXAa#F,cǗ؆ER)5aToGmXˬ 1܆-4a kV!VlP#V|Ԅq f! @WۤcFcݗ?Y0߻> stream xYo6_!`DOYd)4m@[Mgdɓv_(ڒ4vdCy_;'cYq.u.r}x><=⌧·uO^o،`f*UDwa ާۣS ]%s!-J d<9:q쐍)I&ɢvRP.A0̅q:tpu{T2A>7 OU<$S ?R/X8kʐ1/ 󂸈PKI3XV>r$kDS*J].\S0:f0, a+ɫᤐZg=('b*/P.L(u'IS u $\lᇇt ĤS!Uްj|% {t?06vtb.C a|2 x=0 +*?$f"וOcv `v<΢6kC;}(C~zI$q]>^wd&o{ Nf .hpS2M<68\(Cogǧ}i$]]3G,[A &:RNLH}pIRQ%A'paDZuaףExgPzzTX7A_RLFፊWb sm~)L<3\yv ]jϴ ̮SFz[s+?xj(d84P N5Wo{kY%ה*M'OJu&, ?p8ӾObv 3D7܇ߞpE~s7ԫ7ey|o xi`ѯY֢ 죥f=ҵ'ڷlZG`j(<B H ^}\sDB*HEj$6XjiR۩.d +eTh K>Ri,cHe2g. D]#GІj6$.ܨkytj8 h/_6n,d6SqIūEm( ۔}/ղ1#іNS7`i7tSXjVamac<* iEق纍d~Щ/¿"U7PhzϠ~{ ¡s܇TKu [V|L^\An> stream xX[o6~ dRO-bk0NؒKm_CJh$Z<:߹}$t5ztq 2LKÐ2T]O73A(oiխUxkg٪?j?^i,̵š0mW{d1zyDA `J5X$h {h\ A Θ="{G10)A1l4w;Y%!gۺhVx@˘軕+ۥճrn'y~twE]5᱊ Š~n76JuE+1,&dY %@6{ o X{=p,&ϱ0X)4,PvT@#SZI),21q̢$lq7b]S&g#iMvPa8WB3[c_NhKw9PW֗><tj0xjJA Ջd(?M[*Ͳ)N(.e ,TRy+)κF<(2z!_rERȶrn.l(j#_$ڨ&ʛrii> bq"1o ؾ) FXsvʾcsT4%<%,s);Cjci!S-"1mi&E>|}bs1U]Boa%'P/Pc?Hfr 2-S{ +h&Ӟ]$1v[ur̋Xl7ݗU@d{\-,Vs&+E K :8"kxO!4q1)B=ӔtD I@2M>(A#b 'oҦa8TgCyٰt׮ cťN %L{3`cѐ)\\?ʡ2>or{m د^VE~?n+(A(7Ng mh]1mjK}`Wߩ^ڻ !cM湆omZxthԸeEv[V(n?%S*j0yFw<eR|-濢P endstream endobj 280 0 obj << /Length 1941 /Filter /FlateDecode >> stream xZmo6_!t_laI( iyY"Pm9*K^e"Ka!Ε+w| * u<qsdr<~}ny08H |yJbGd*LR$y+xO +1!k]E;'#K[5rpucb7'ICZ&'gZ;|zR#+arQEfr$=D JC/}' EC)C>!Z0Qm(k(Д%O}{e+ƀ1dJD|_S榚bGyhq7k7p\h+l2+鎣Y'ɣ@CMq3jzVل'4>\`逇;g>̣ty{e7,1sRܬBp$lrV8QpVY:?_ʓ흶PĉdB  F.jUs= p$GH f/vbl{U\"{pzl;fKE1ҖoɈ=$lz sy/aӤ}.8d>m[+0tϏ^݃==Po˷ZIXߝ_\I63Hᒱ|Kl3|ה? \.qP/̕H|e[vňDQAdi3▫y 'RzNDSm)eW㞋NTR4[qgP@;r[Ǫat:ؒZ,M"f?XX 2*ړ^Um`f|" Q4۩VJigDZѬZ_elBkjS*3yce<-Xy=Jq]*J=ǽ|Wlc#\9u Vt= ߂ӆ( (4 jtrс\Ԑon h$nMqE)JgI X& 2KtT)]4]B_YATa weyt+:u"`6KE' 8AZnmŌ[%ɛڀ}6CQn;UퟳQ)AF0?|KFR7=w(DL WȷZLWFJёo;bzd?goA>(WȷDZЇ0:: z֛m$X+ XV9tI8;?}}h /gJv+۟{mG<,*o R?B]RoF$Mwf*kQ&0ˋ_i-Nz2elP3vf5GT('A+YӺ(ۨVjFC;_}7. ;oh endstream endobj 321 0 obj << /Length 2282 /Filter /FlateDecode >> stream xڵ[s8~_Gɖ=e!u[)Lp-جm.Zdlc3Ȳ_w%+X{Ѱvwu]E[b\C]Xi?{w@7qo<c^k?åx_z}`ɖ$SGGq`L(!vzGwY+mFXaj߱wjQ^;$p+,懋ty#zXӻi12PRJEUD4 9Fj`x IQEB @98><念o-X2lc%I֨&T/&"Lq[J/$$5a_̡ 0&ftBGgף'X $|:U<<~ ;tDY>O^O8 ٘j DVm ZGj_V_{*3'r.֪yȩȗEYruf2VR#e~|4-DwGGY"!`[PbƂpcVW:u/mծ":|EmV 46ȴ!}bBck:q'A>D@kp붌Q/Wd\ Mȉ}M9yL-;yP{ ڐ5 Ggy@a[CvCE`@]5 ٖf]7<Ãњ,_ervnT -i:[CmMͳΨ(WBTr`d&_gd+ Y#X.; vv i_~ ^DaCgdv}gI(r$^ьT^<=X\fO?h~.í[9fg$+ (uݺ3d4g9hxSݝ4T+r  iw;޵3+_'.z}:TYڧۘʯݰPȂ*fc]b~j>.AckW|WAuz0vVگ3(Wd@ 8ұYs{a2}}w1iˀs(Wd@lG6N.v52^~;a1 gc@:ox> ;? Kz␕2Z '."u@ :`M\a?RUėfO@l!\ǚzy˸ wft%~,۠k߾nAż6#@2 G؃M^#I# We~J\Ir cdtU@e`8ƥPmP@7 4zV],g5g~}aEw05B_tb" oeyLi /dwD[0 ldO'+Q %Xz[nAoC9O B.o%a$0Cc0-eia*g ^ \j o2 #/\uJ3\դ;I&o 4z(~[f&z,2W}V9X/l:؀/a 4Ύj `MDerH Y-\hȰ#=|<7i=+?YUmn 4M3<{w"ab:c0{`9 l_'Z$h6[LA!9@5:,A 2fW]>oP8}fahep|Aw.8;r J+I1b1VGRA$6uQmг6xB!Bɳl- cU43kRQÉYU?d;rE:+1x2X ^x[LІ?>XW&xT<O^WXWւ.ރ@69~ܑ֔׉bdW j,."z;Q:[1F_rMEkh)ÉX:NͥBNdC"l ( `IVnي[F܁L;PaVt2Ɲ7b Ѳiubѡ]VYPB~OFI endstream endobj 243 0 obj << /Type /ObjStm /N 100 /First 888 /Length 1622 /Filter /FlateDecode >> stream xڽXn[7߯]Q?RnD60p%5J̕8! x8<9oLcr)(쨠E%.ŕVXǛ3&GJq#!̑NR堫Tt`" 00dL/Uj]Q#rSbĠsAaH fU[0[ 8lajQ &tߥQb*[4^qPN 3bb許ZGr"o%%|夫7 Keɱ sp,jsS;\?:?%XY`׆Pq_kcM! :P]"1x-q;;?&AftϲOm5pbߏbA|-;uOݸ bwf:ӻzvq>/ӗgܩR]!5V;[G[dzO죔4,ۼj˪v%M>˖nOu3t1{狗,Sѽ אJ+ tX4hL\d~yd{}_nJx=_au2Mx4O )V5I`>mr?:XOk =Q"ZXk4V"*(#.ܚkDz~D#$$> WBe²ٰP%'% K7ܯ,nmÊeŤ 1!p&lOh8C,gĭbrkjZ|߳N|[뇇 %|R',ײ od],TZ~@H,&,2Vr&l <v><(8RYe J>FJ؜oWѿ|v7/v\=/o" l!Q6|TlXI^6嘍SN& 2b|Xl|]h¦A/R" nS)'U;dM 7> stream x[KsWH<1!I\lG[ pXӃHf+:F?鶱wa_W2O'JOxSשY;6Q#L0~xy4g(RDwkTKs~/hGvLx/[o?z@y5'FNmiIx n$Xqzͣ S'I>JZ(۞ I=$\jsA|D ( T呷i6tG\)Øh==B|akg֑ڑ\; -x'm6iyy73IQժ< >< Ǣ2@0m8?'ڼEX`Cۗ \uH/1aKLM8w:#BZc {1$ fg ߊC b1(/oA z>`thabbD6X_ő>-^.]#1ZSD٫Kya$mqIO(`|ž!xh5uf7<:7vjx3q{~K'+?c--*$uDcIـ?8cz M>?*뺡R>ano]*kg(ӰjT fVYnnˬǻSI=34S!K2\&*)|%nغ}ٓ@fUfq_ɯS"&QnrNksiE[$[I(ze-h喠*j+n尩Ug"2O\ R.h{a>(EUnTe~C aq$g(hvE-u .j@D4}8]ǫ)s@AJ䶯rJMrbbPCN<+tƩkhRڀ|s]Ta$|2J> p0+,iU ЁA!3 IM32Ye4"Kbsgb}_jgIovFp>X~B?֠U4P erQz@0ޞZ䘮C (aZ? L t R S؎ǹ! DZï.xf \G/6$mV"^&KL*SZKQj8׭0 Wh2lMIqI U1˫*!3תj6˛kgqFP{S8~ zy!PJߡР ]]2*٩[]:ؚ]ig _ 'LQjPӕ}uoNneSyWVR=]Lk0uVI$tJW,֥JURaBr_Ie먬tȣݭY%'_{V) \XTIϭDyC!B]_Xè:Nu=Nu= %HGtVUmV1F{:p]!!!XjUvs뷇GHxn Rl~QgDAƉ=#=6ZS<'6Fu q )]#2ZS2g Gg*Ġzpb.+8#`>g FOa.w5QnKJ_nkCvm̎do, w^/.ǁ7q!(yHG1U'Fll1CӜ۠xg%:Q_*M|8fH0uNTv-(tQ_SwEg\<7_r'uG1-{o\\,!iTmZ)ԏZ MZ\=tyr.5kU$aKC f?jt!{C j HlDL4 C*CEܙa4c^CĉFuWuћkyu10mLݶ:E响\ FA_>< ).ժyf񄎟xI9ߵ%~s=70 70TW=]?149 34:ֆj3CӦfp8yaD3(A endstream endobj 413 0 obj << /Length 2279 /Filter /FlateDecode >> stream xZs6~_o, ^2I&\:Ng:ICSũD$oA QdV{HHIb߇oA!^\ B2B" v|~rJYnIiIj>'7_)(,E(1J\hxy{18 [_A&du7xU FI_.~xl "n<2e2g,0#SEBԗמ !HE Q"e;> ;H(&0=־]}е%QD` $ɻ@"lӔ`z)=1]; ]ƀ pH)ABFƭ3"SAg&X $ ǐ  a!%La7{-;%_jDilP0ERҷ?Ξ 4|nuY̳ez7_q0=!FgCȳ?Ξ8 yu ajw 9hĕWN,\!N"'9>c(;B!cAc0 x3?6#]b<# 5+ñ+(tX{e=02.J&כ~K,tf>|aͭ >N³33t^skk83SfY㿙i`U$Dc6f>g'z%ꯊuZuVfhۛɟ_= v+R{_K}B #`fYvEqI䫙xjЏL/)lz$4#fcsUr*9.Z#I$j&O̪4`e˥ˋ![$rQYR7ceU6kY;,A "yHV[Qmk+4uvڽPf`0dv{?*fGܤUu mF+;e cߍUǙC%XJx| F` ͋rbXM~R fP^/5k5L?9K  QN< U`JN7fvBAZ-jSCe :Y|:BCa|ŏnOS쾌K)&6 'L UYM۵A=45 6͉i׺~z[ qg4hmskm62~t+U/n]qcm*aME 4ᔀkTg[Fhڬ,ir[@ #h m b')/qAOw?>SrmOG~tt6%&-[>PȎewWZwq&7e>(utȎ'y~PT .$IZU҃5Ώ^2&-KgK+dס{69 DEh@TYeG!Ÿ>Ck;{%-#"rrc,@%"DNڶ]jJ5t> Bށ@P؞Rb@Г r^xS[ܶ56拦rtU!a v((r#<~ofND;?#d۷֟75dtYYuUFLiH~olΤsxhU9Emݯrtl1ؙQ=I_O9+UZ;jVHG2ԞE엗7nbY~JAҕRoy̕Ij9~Cu- l,ʛ%KoY`A&߬Vrw>tL<]z@DŽ 4d/.7VήaViZE X4|R77| ѴR5qfǫ]{؁/T* Jȁ! [E>j})GSў| (NZ}oC[w3;ߛ$HG;{ ceڇ)-e .GAq$X׃館>HXqҞ$U*HۣfkZߴ&8pP9/ĵ^KZMGs 1!OXS-U;Vjov1>|Z+Nk]ka 2{zެVIEq |Uu:6*󁎁?,laѧUk5H||"Km:*W *؁U1u畦̽hO! endstream endobj 433 0 obj << /Length 1924 /Filter /FlateDecode >> stream xZKs6WpCNG{J8u&MX>%MA'wĎL=x.d߻|,J$! ! E <#M޻ח1U~O 3~ ʙTȤy#-ba,()1#1&JX` n< PX{t# l˖w|o ^z> ػ+>a<»5Ŵ%)(I#IUY)ʫ‡?I">^$/₈@󂆄c$OIo֒Km6!Lq--¡M+$ KV \]]"Gg?h3/i*gy!wiǺq;ۀ~Vy_tq駅,v0yp1JDl~} X(Us;ȋպ686CcS3NT.{*Y yzżTBјSz|وXgzLcK*妲r t.99~;}+mQNx:pGcߘAm“r2U*7ûope\y/!1:s=%x@b*@0_F. }.g@-랚+G'0 G~ ?Ju-ՈJ<C?|bCk2~4? v/Z(=Z-z y_#FD:/2K*tS5bX]<>"G<= ;Fwz<= uG%ƷYYT oDH(C!Zz?;AL :m+="0ޖtaٷ( ggy1AF ZAd_ac(\Mvz.:/ d]5?{{|b^xX6nIU^/$:>^cZtRDYܛu%+3*WɋY.:<#an.mٔZrujUZNmavnjyNt~xvqz~CSgP<xh  Z*DJM1Px_!IxDn+e-QnhCNYc<6Ҟ]Bi՝)M=J/ҵӃk}d]fe>`ͱ p:"T>a8 #GEYō`X5rV=BҞ,&u~l>fd&s4-:nuj>Ti9H0W[ڃ2T!,-:8 󼑅T¼A3,8/5t)fhl;k9CRزL]-)_0&+Y;J M~ُm2DrNPս'.lk<=tGG~*\fjiS>PnoqTN w {pr#53ޭD<7~ wwģ~ViQuL;S#l_.*%1GƁ* `iGK@=eݛpK6n C8 [3O-Н~~;SNFF"FEؽid#k' 66It DӅлղ+w/X%_.!_ u5 endstream endobj 457 0 obj << /Length 1740 /Filter /FlateDecode >> stream xZo6_!`/P3ݚf0Et"@w>P=xػ2Ч7{G~ȼ g@8x뫷vqJt(-dy\bOf\R$}+D| gAC'72#k,LxgwFf7퓤) E:NZ-h"+(T>ab <.:x 0&^]Q=BzZy_77 XH>CvhQH`+*iduN~b?Yac[0(\&$Z㮽bkcnCOhv `%&3{nvz ! db1am=1c>KC"&$_v* BD+o6nDaueχzH$(YtdƉ-r•fҙYA!"NH/6˺3F]:׉Ѿ d^ 2)j[d_2CAIlZ,:1 s2+`G?*)+bQ|ehJ̩tP 'j&4ggV^3ʼ:e-ve:-,5\=3Z#n~Wdwe1GU[jRGfjdqqhIXPY-ԊPPQMYN&%JܽρYolD$x4 [3Kժ=%4]dwlpg]B$;"vB韽6LDYYRMcS坳6Sv#y[-rI,g~[yd=\TeWC)SG~1Zy o][*GmhPwu Z7g ZBZvCZ`vDŽp̧#;=~t"2E-SEҘп)ٖ9i"8؆gL\~sum6mqT#a1t"!0?YG߯a7HkMޜ>ѽӧatl/vA[U%-Z$) endstream endobj 366 0 obj << /Type /ObjStm /N 100 /First 878 /Length 1880 /Filter /FlateDecode >> stream xYQo~_A< gHFljRM"HFF* q$lyc!<Hg3p%אr)Ԋ @J`Js`sI+Z4֐?fRP;8`Ԃ+B1^B+g5wZ .u&% Q0L!>KɁZ2ESbRgqL XN @>P*6FU oPT o/ f7bGS`5ͤA8IUAOP2fdWmsuA+&W4I|v2& _kN%d̈́F!7.CkJ1NPCY&MנgK b1t`WLB_ :_a-2z͝po\,w컄(Ϣ=̰f3 N?f,C6,q,_bV Xc9K4YSs8%OM:P;ȐafEݛ.e hlM8h00~v"VuEw/g_}1,(Ӆ҅ ЅMUb}2i4 Kֻܢǎ.,QЃJr 0YLOe$968\r,{khnx Osb8V?bpG3Wݞ18|3jf{(5v#VNXC0QQaQTkIs廂8tObfơ>dli+˾yAصvK1y=t܅EBީi +HZ>O_ H?ٽnPv@RFVP7FT><^ɯ>6m:-=)-ifLmI =FRRRdmV}MiM8) rz)2VmczǷga 2oBm7^ "i"suZ{w!$0!0X끢 ]KbԺ^0zЅeE Qexik+uB>g`~;Zg!ː/e<ŞxYam6"cW KEl6\4zf6Xb3/Q<ˋ.6ra/?|B1R"=JTNI,N~mKfڇ5WCjӃSo&X8vΛcO{?P~nAT ? ٠ܴ4> stream xrL0lK9#Qg `D|}׍ME$/ ʰ~hVqϘ- ׳P~όf^LoGc$KO^R:Y&E :Z~< {!;(`!99`-.pPF9m,`gö00΍2ƒڸ9賟eVFlF5"r"j Ey/iV%{4QS]*"Vh,mӲ;@G;uC]&>輮uEҘƛ,U?Wݷ 23f A<]_N/^}_}mq 6)*3$v4)Y]3Z i:*"`$E(5N<! 3$E\6Q,QBʳq&$D}u.,x'qࡹ ڷWiimTeѱm]l2)%cXQ(v:yzssy1=`h58qU@)-YT*JvPpJl{tS"4n@"q$=`ʋ$jxm2OQˏ37H45]4i*`\b;;D .j/?_?^!JtjߠEMhCZ7FUsI8R!/~<4~nr2[3'I`e TE< 5%=0 Nط^ ޓtx}ݖtW ^%z2h@T#qk:xF,07N&vnϮ6?KL{฼9$s:#Y\%-UyN&ZK>#r\94[r)I:\@ߩ\kRnG J痓5 b<8n-hrC' lL**u RI;5SF6bf15EVR*P-XwEԚ)2E"JF.hhъVZ֫dd:5]y<9ɓw乃N)])&㾒'j)~GӮl?dr|GEk5v߳-AczD_>GaB4^p{d8ͥ2]' Y֬`1+ד Jh;IGt W7, X`Afmj61WjGklRvHݶfJ-0$&9̑|Z͉"VY}7fry܁PHsvȦaBs3+>Q Js!vY/AYirDN{EfStKU&>UZwQ]#l ,ѲCA P-)ps |y<[ϳ3ISyط0I6QX>kcX2<3Vr.c٭{v>Nq}fXT#q4/FYv4 In:IdS΋$ZZpcy;)}K=iUWZ?PpC;C|Y(.UЯ_ >Cl+2ɪ}8OP/k8h\^Wzpf÷7zVrӤԛ{̟B{I]S^0 k_Dޔ I6(zy2%j??b@UzD5;y[VMɟ՛;2߭RJmeѢeއd2t|ϰŃ6j#0:G19S100%c`EIS#9y7/QreL:h- Tz4@~]фMno׫1wL秠qR5$'ʐ@w]ӟ&qTˊdv `ީOCڨzɨwq](CK\'};fׯHl5?7)o endstream endobj 500 0 obj << /Length 2336 /Filter /FlateDecode >> stream xZKsW*ea $cOivEQԈc=3>)eZyT fnE|v7Wt$>>ڀ8}v2ELg:^yF1Lp3yÛ+}Oif"A1 ꕳٯgdCvw٧g?81)-u8z>\oiYQIf,)(U&~N|D s(B:yZ6v >rF1Q_ں|$ ώjDzc@>qؓzOS) h@[U<U ѻ272dAdm (Caf@M(gvIΔ K#| cK2E{L 59z퓧8,Z~&q^MS@o +87efT\^~LxEe`_zڂ$fn>3([{͛R3@+=,8bᖂL=,ńbSF?sUaE֡1N1=~"MBU sPqF1Lݙ KRG1i3=>jrmrmt?$>--^ZCӥ^tӬ\CX!aB }Tf庅 <)8mO{`rb`^ku|`-oN zVpd>>ɴ.`U37>mM۬e<``]Qc8u~,߆pME _ z] r$n ;7Z>gINXx.vFM奔3؛=]u{G{eB2K_2Cd{ :i$xIyzL ogyܮ`(%^ e-18W\%EQQvָhBrmEQ IUjZy\@B`-\t.BoEۣO .BC*Ԫef` Y/,sڐ0C}pQX&ݵUN_տ.̕:No.>ͥ =dzfiweRs2UZ3/0rX ZT*|n8K[׋Yk%MLi18݂}˖GQuȶgN9Y$]/Ԭt[oXsո ]P~}jK$$$v@GmS{0ʑz|Z5Q{SNVWjTؔXOҕAWs 7ֺGS1<6wVw}^8 ]v,tWAh(fpU^y`f^nh{A4Tܞf_J<*L;6櫹]ƏYQgEtisPs ;Zg~ CuIX6?:{ { A-߬QGR}Z˜uIλX!{>3$&Jlf M*PqBV, n87nH=f(j" }~@̈́G:Hr^Wfwjves@9rSt*J>j uҹ]c!0b}^!w(ڇ8Gw lB>Hr1X,ⲆV v6(6wOp4;X4@QpmF|SmDrDw=> stream xX[o6~ y^Ei}ڭEjѩGruiPؙ4AI~d0dILP|MtHXpr7,x?=+W/I6g#F"JYEFDsF !gоPt:5B$U]fնeSe],<[9 '%{4 [L Kj"FjU ٍkR4bRZ`k?z{nT̝}{w=f"`[+X`X5 042>MR,kAebac%P ]N5"X4Wdc4Cki*#2N:ѱ+@Slaa 8&Dп\u$ |UC1 5EjS?9Y8{Qy8'ږs:_H)k$0 DS9~fh yEm)XSoǹA[GЂN.-@j;UA? )=;7yj2&rQ8[ۉ1#[eaO?M{%vl60|w=X{,0&s^ٺ)jQ@\ꓡ~Q߁GFم  BIVE|.s0 XPB:4x*4*tokԶݾpIH:(Q!;POO : rlEQ@ |\|Ch[$UQ}c^CZ&kgg{RיԎej g=״vlhVպٜ@5%Wۖe7(8L qI [oMӤ,l~۹sѹ=BwCָ.!LhyL qw XYO 8Z@Bєs&W?`L~0&A&W1V 6WpN6<l$&S6s1wlcCYL4tlc͡/2ft>bt ev]et1: >Vjݜ1M(ĩ^pwmr7E@pԽw alftMF&/UVMȧ`ki io/;A2tsf[˪NzO=r&(Z4ߔT_v c3T`cx"ͽ<هį((J N2ƴY(C#޶5a4y]:6`Tv$We31}ss`1uwI<2NG4Ϝ$pFvGJO+UnzZح~Bh]+ 0ocE̚ endstream endobj 541 0 obj << /Length 2777 /Filter /FlateDecode >> stream xڽZYs~`U^CI$ٹ[I&S.JdV(RcT{/Qd`:ku>_twSO|n0:km~:#̝|2n.WHB?5J(~uBSI q* '.~0up |H\|:KqCI8 Pon[;00a=Q,x[Y*/Af(N #n'Rsr+)8Fqa6[n m9ȣR,3\U{)Uo3BaRbfe(o/V,GzKqMgݣЬ6<AUGi)ePC$Eυ?Ef)x1649f/K_ ="a]iVU"+om%zPhH@ RR9҃| R$`; cso"mNG.(NtmH(ʅ}<ל)͠v othjv%M3ɀ~*,7IQfq˶ʷY!4>ZyPm.U8Ptb Yr{8;,eZrŋB;r.,MFa `֏x)^];`1}WLC'#-k][k3"F1nE=@/ztZ4!;[3{| Bv={ oo<ߠ*D5=Dj60#lAk|l""K#QY~6jf@ Ix6ӡ\O/#=0쉲z"ɖ#{5^{S#>!i->'>̚uԻ4?>7lx$^ c#qAA9|uK45;8/tNu5_t:iAcJp}3 Df4EW(_P4Gmd c ֪m@0jʹi)YAJks'%Cs%5!:j1+ 9ZwD*c5n j:SLVfaFߖvi9}KJuHWMNjLETj+wfiꃫfl}6c іԭW֕v^T)x^{"EmueJ6k|M܋Wb&7w<BN z#]׹Jh0w !s}b6C ѱ3<"NҦDOqȴ)w}<fh #Oৣ~L{12 9EP }>!%U怣Yis̞̟{ߪ IH=Y*r )Ywe㭳6%Ť}d7{=7x1ϙyPk4I4$6|rk(JmϹZ,\nsx.00w[gjf5ו&1 7YeBij QD.mJOQ tR A@XO }=tR h%߯O (w (mOLT ycpTÂ6RyƍZB7?0=o|ޭqzZɩ syhb)8G&Zvѭ$t5^> stream xYMoGϯcrpOWWUDD"bA 88,]kB~}^ͮqRV̾~]U]mNI  #('b &Cƨ0&U;Ixǐ 04]N3pKXM]RÐ+머jr8  fuY:"sv0Q2Xrś-[Uu pWVƮb!+"+a"׈ v$T|%L3& - XTb4@NͱS}QPL0ho.r$c5njj@JP$a0a PD 9*h`L f inQhĖB5a$ FPFȊLkl`!U#- NӬB!Q cV&jĄû6iXade,2$ U#YLO ըjzR0=)P~ }" $S籠K Mj0Bz㢐,¡HI')0 HpnwC3ap]۫7?B˳݃IJ]a/܆M|mXF6JmXMД|H܈-®MX(Wȗ7 wo5b٧[u>78891op~`)۠' 9%c`8 +w1rx>C0_]8;bp1/ѣ^gFĽUkv5|1%;Q7cڌy3x(g秧w]h<#;c-^-)*F|Th\X8?ߛ¡Wf/]ETxR&)Vp"^KЂ |r)`5@̓L.\ޔw;J:g5[ʎ}V !}iC={{f['$&0gqblE"402\/ІBסi|(J.1&*^ӄ HAFl@iH+J\9iJcM(_S>;L22X};9%[6szk$ozӇroIJ~<:^cNj_rE>D;zQ_ EEZoF32¢"S#vHچ՜QFl ҆Mgn(k"I4c3|E Z6l˙6, 7r2F&,1 ?m _5d ͵GϜI4vUժOajէӭV}zG>nէKQ4ִؘh{p錒]ӭGٌf̛qݲ}zBk?tCrxq2 sثǣBbX a\ݟE."#"$kNi .vaw`QݯuG.IP)SSo A1Rq)0'I\ibuAG0Ά5ST^>{';{{OfY"^KFmX4<&l*iBjڥa Kn (Lڸ8m|/6[0çv@M Rs B`aᑩ/#e endstream endobj 576 0 obj << /Length 2858 /Filter /FlateDecode >> stream xڽZ[s6~ԩ}J;N6N{wvҎ(3e9&*u4A\ 6 \r{JALbvDȘ*b*4{n#:{=dܶ_:-|$ylJ@dQ!LüFhHaҳ.ty,w P"b|6#wA( 6xO^fH,&&teY{X\Nӈ(#7#=9QTG`3zb$ B8(`Sl(mpPtX G+e($Xn ^3}oP*;;*'`4=?z5JQ U_ ,767hُ|?3U.$̥Fȫ]F@sRش^';Q|?Ӆg+RIOaW&OW^>&#*_oMޖ1#Z}O#`R  "&^0I7c8χZ)њ?>wZ erLȱ~>)J JAFףXF jʫ" :E+Kv{4.$T ҉}Vԅ>wyֽ:b@_A)S/h0G) XxH`qG>:f$s{10J{z3T2~c[-L8'NQ~#ԟD5,Z2}S !(<􋉂X/\]zT5bun"Wq-ϏdT.U?Xx#g'cZYe QeNLp5#mS C4|Qҋ:r/JZa>nf*.nd nL*=gךR۪ˢ<+; zJOx6k 1I)!^ MmLaWj-2^dWܔneS>GDD YVvLmiݕo"V㼎ϓ|4KiԪeq]ʬ=u`jc2n=D 'C&а77xK3z58b>+L܉hVG!4 B(YLC0Gt.8ճwEWZu٤B:dߤ+nQ5p_ՕW,-Tpزƒ-J@} +0diٺ(Cp`o$[N8RCpQ>U=lS\AP93@ X#@BLnX1:mx\Zb+sW\2 { Ұ(䳗_]_[֐v>$rɊ]&Yam lag˹r2ywG۴9h !tZ>!&i{d#f ウ<]\GL0й]rGTJHm~6@I؀fL֎N {H N:( ++w垆1Ph F{W7/sݎϓ- 72G.&NիˏO}G"㩮DDzHFդDIt:}hRchdc=9|H6hqvU_DH=y\iYI$8Gp&v$S=#)4|畃 S' Mg'7KEyٕo~v} 9+)d~3= Cݔ^AjA/zpjcVGQ7RUl򢪳MsYΣw 5cy $/Ka-Jv-׶ Ǥ{~lk{ '[56[/n{ !c:X ep/͇jb׀GXlM|aVjn > Y}RfU}SϨ2QpOvsiX'aE<*mɛ3f;4@Ko\.lx)AhyP퓥gɥe1ʴ[ NWoopsgC +v[&c=雋cD~>1ɿi' !ൌpUO_py~bmhf Q{*eG:[4?gOmq>f9C&iP!46Ӻ|1 1"y#1=IEDKB]a_>/]ޟ'TdL4[30vpIy ذݞy|:vXNE_n!=D9\dD[.)]Gb!=SQt Ђt2 endstream endobj 603 0 obj << /Length 1912 /Filter /FlateDecode >> stream xڽYo6_!^CS$[McsҧX(6gK$w=7I[RlG[LÙP8zpt3~tFH#8_F"Ff$_Do2R?"sܾu/34)ɶjopE([3_v~Lj ^XD4_~G >ˆk})ב Q*k)e Hssoʴ5K )-, L YKG@t&ۮ'SmAbU,vdiVMS X21Y Ӗ}_<8È8!əczF -UNzb9mX{/`e2ISCB׏SϩlCb:?:))x#.x/p[< H@, ! Ij˪0E8S^q!s1ߩ ePF#!`_C*nΔ"Ti;tro@-!xAhGQ{sF,#O+{F 1GiDơls;'Kn:f1Jlw2>ј#ӐF' wN&_0J!)u/hry_Y=o j`]:~?}%\oKn`e{lTdiem /WWwwFׅ@No~˅.?p9p -J0lCbʎ*߱{%6E2~ĥc[wm@L /<}Csa:XOV. goήo_f?N-W-Vl\]_/!, ?6h/#""V2Z4R}*`U8ҀN1=F+M3_v8x@ύp ;k@DH*ʥ0ն2|aJk 擆6mPvpg!h2eҟ*jbHۤHT{&+-|2(LɳmMY&`s 2f@IȦ ZnW|crY 6K@EZ][ Kkah`Ud\=¬4x()S VGe"[|}Jaye?d6hI}@o&/靱wr"c4~_ܟoXW\p> stream xYs8~_^RI,1C=v L/} ^{P{KO2J;cYˋڦd$֓U J P%|E| 7l, P^ny˙ Zzkwگ m[ y8[̯<2q''Uh ׄ wIZj{7fSڜv{8v*xg(bu0|~Z_2ö BmIk50I{>ٮсO۱2"^^O(--F5Ba'u2Tc{c؆K7 eHYmrT]y^q'ǿuYBGT&pO5ڹ^3onjW0 8c"6 [ފخB:'vƒ=. Y;ڡg>UPcA^4a_LYJ/4*wU5ym ACJ@dBԑrvUȮ 둵űO*8յZEN  3$ZeaΆduXDZ)0|I3d_/2R6ت3ז>r1DG|bҝ"U$+ SHpu\K6qB]K- ]*Ax<ߏ."RG = |oTp~KIO2Oy}HHncO779f=f qMBfmf [?˷L'N^NN/&6n{8q ]m~g_ƈHus5E˟}56ڕay(Z݄ 6y){$JR?D_(=(wvw"@7udx/ CTv`kh+|Cg@zw*j|#u*A^M gpɻEդ]uRl"GݛҺ 6ˆ2]YQ&oDW;A*0K9"ZQ$A<=6_/@ye a'*dn'sˤĺjD wG D] 74 Ǿ,$bU7)M݄Z s1%ұD짨\BŞEv~rI ͭ*+ Ⱥ1UѰ ~ܒ9iH 9[Cs3#C2s+SǏe)H2ʋdQ!„sunZ]䯅M+ү;E5·5ib-c-T: Z`1Px>cmB%bxӢ&[*Ŀ߯|Er endstream endobj 648 0 obj << /Length 1689 /Filter /FlateDecode >> stream xZ[o6~&(%i!MPm:H$h-9TqWŒI\<8s:e<8x##\v3Żpw<"{ۙsh߷~oHQ#I$7J(r^2 NƃƸ^RL> ~u\Ĕt#]Ds=}VSU11ܔ4xԓl8\w/B[@ kLH2 HBƫ#%SiIrVވ $ KQZI u>Zq1Aٟ.ǯ % ִ.-0z2=B#ϻK0Y"*.r?,$~??cρf~Y%㕎3`bF 魟X]1u K4R1 % athvm#Bxm͝_Y!TH):-$Ov |UoּBY!)eG,ޛƽg6:54)6sDJ7%ߺ,@/BoVcF7q$xBNPj}K8n9&MK#ʸ ^7%JhtYG&\ݙRު0V S2…VSZQN̡T"pj ̱fAJ*'μRDԅ5>Oₔ `o5eECUedžUH ,M> stream xڽY[oT7~_!^cBH$D!4! eQ.KH>{3<3C $bP+H8di\r^|UR(B<Ʌ `@&E&_@W|k b*aUK2-\`P+`,X!$WHn>flEI)XTA2Y256\2ĖVXD.\ G0qimb ,UL[XĕlDAg#3L ް HʐL\!!&p1,I!ɠ"%qxE؎т:g)ІR@# bxKVLJp1߲y0k]` sgXu/k  k :'2ѱ e7S݅,Co`M3xe(ty1wn48Ux]!!UP4g$[!r*~ o )\q8o 0_[n7oZ/]X.fKyx LˏTwn%G88  'GVoS?gp}w=xdR V;:?:9Y@Ryiy/u g2ݿ|x~t{qv~:0IoOMwixp4q "sHc?Z1 h~>],,ˋWϟhoWWFhe=RlJ$5}`i")sL@+c|ls\5 BÒ Sz;W/^|ֳ{6'O4|NYM3jQ9sj0Z%Z[Dơ"t&D!*x qH!EvabBtV8aqjRꔋ׺ |Q `Pt&"N~֐B֥XD5t/UETꄺzԀ>vn*cq-wz du88e4 T8YD6}8嶥L\T+ wSor _h$Ixxp/lIhk/ozZ*k.cQrb>=_(N޿vaċAR^>,XMԐR_Bjg6*ȭWd endstream endobj 680 0 obj << /Length 2260 /Filter /FlateDecode >> stream xZ[s6~ࣴ!>y4kwmv<4EJq}nII6%F>xsKg;{c1%,ɘa ! чO xt=dܶh7jJ>d1?F8@dZ2(H0?4֟;18 ,!A<;#G 2 Ep{3և"8;7PIBU\vYlsTm= %+Xc"F_-d7Ä@l?_^^ss}B1y˲(u_l{ElbQIȼ-h]_:#+UyUEr*^7+Ví\S ,bd.,f:z~mWs_-"u,]Dhpz0Gҕ}Zz,wEV9zʪcֆJEܷ K3&GAOAQ.U abU>trC!x-CsD"Jx@QAY3iݞ0XD*&|Д%o,q3,o8 D ǘAMլ۲MӪXO- 1vmQ-w@D{PKW=1 Bz<,:pc@@A0^1asQ]b, 1W '~3CGGGxZ3S\cx06xg'D`UY*F;1AJAB:7@, ٛ~$=`{ 1.a2^Vٟ꾧y|7Fm'3G[@s {97^{,߈Uhhm6!F aR䞒:áe65i+9-;m޶([%h3N)l>ḻҴ ܛmhT͕Hk=Ѭlnc;n"]!Nb i`J`;Q^8| ƟSR:D҄Ǔڎx#!aa^NkP-vuIi ~k]ꭳE5ܼ&bKd'i[Fmr;YFEwLWU)&̸B f`^2e>4IVcX=#jf-j=6*C8f:U 'ś?ߦ))Io$f`=G˾q)3iH=էˡ\Lw~RU2WsR>] `}w4(uR{-:vJ:)E!=/乭umiY O\sZ. ۤ+JO:rI}mQJ;m޸l;1DGm[B^3&a:8=/;X-T*aNi-L@ g{YN2q MGtjdR3nm2S4OQtgSoJ~剤u0NhD ZٿJSuL_~إ0TZ$2Fve'ۨnݵjł\VE徢\fuY }qŵҬ4)YNFjRL=?=jFb0,Ib0<5ޑ?̏=!Rߙӄa.mOf {rw4x6 ;FNIi5+2*ۢ2T&rЪGe28JeRT&PQi:h4LxTRy34ܿt(∿\x$x{l:nF[ج34ł'yɚ2xy4Y!ߖ!q0?͑K6g?rEܫ2 endstream endobj 718 0 obj << /Length 2225 /Filter /FlateDecode >> stream x[[s6~ׯࣴ!>L:nMݙM;,NeKRɸ7$[2NA<87wl6ד߇qXR\/!Y Ip~ͩӫ|gmmSKU"UǤ$ٯ?>A%ӒyDQD"X}X2z 98 []C&nWd0C೙ye vᮝs*UIU}Y;ջNa^M"D&/ebTE+]%U6ymj6U27}!H0'1J4lI0S~IL6w'G:iZ,ikJTlSJժhZ4vsʲt^`z^oƪܬni*u eΉҚDbonDDx#9_Y̍_tT'Lz󔀫oo޿ߕ§*3ӑ]e^4NϤRvحg_Dw^`IL0Tx۔칇žrdYtycޛ&|SF>M`0g2F8 f9%ԦV $^ϼa⇴/ ܪBU~rF|,#tN9qF]~j9+(vÛ ~ تݢ-C!'RP8D>nu QbJړwwN _ &zXHw1+teIC6W֧,)k.x]$9G\xW5c{ `7+F[}jm@/Fo)Ń8@, :bű %|ԗ?2F+{D&1cH`kwIXYg U 7ق֗?2h=%h"Mt<"p=/W_!_c4d4ه1 84Lpre7N otBa2X ]wZ0 fvdoH.>hGq!Ҍya[[=iV̀mr/f/Hk?czvPX ӤnIB*U]3Qp = Y$pϊh,GsQU KuI9`RUCNne浖We (B/B(j́@/zc"Df9#<+{<;QGcǻ-9搚UΗH}#i',H9|Aʞ4!As1w ̹Fdud8;,COq2r:L@I(dOdNI$-I$RȰK͒d9$бx7VK88[z R4β /6n]_Rqqn0 A(3T`ۿ5fl;m˸QnW=url^tD+ci6[M,([?N(7p[1/ezsȦk#屹Mּ~o?\]XNmV2&6L\jžr@]Q$8p*%"]!_C, W0qHOc%").4mI5g]bnhjެƶ~ijͽ`*k 8sW;`[ӊԓ.zsoI'^=e , wIlldR֓z-8lW5iJĆ ̫8m5yb8 >`[([Dqc^USSKAinÉX*n%}9+u endstream endobj 750 0 obj << /Length 2513 /Filter /FlateDecode >> stream x[[o~ I.\8C}rklc]8ФK̍") @Crx88{wyȋP$HD " wx'7Χu:K܌/~2r!KϥG7qvoo? A`JRBA8yk~h^9g`ug^~0g>z`Dqݞ [pN}5F4jwBbpZUk|"GŴcǵLs>}ͨ400˪B5zO)ޔ(YL媨Fg>}f^Ti6Ţ|y>_e<;eZRM; /X3D[U|D1 3M|<>O&wYr_dzLڇqYOz=8I x܌Kzݴh ) l#͋ -LM~ԇkVݣyH+m!28'~5t/F Hri0l;JRշ>n*cGG4s9. v߃@ ω@FQ^Jo-'=iw7  ]&jMwph ʺ.auFJ(qHj)&vA߇*M)*٪TLp]Qqa_ D0:N욥؇OD}G&DL0,8Jz Xq!Amʨ8Y 4c P :āI3{ eUCsA* )"ceBCyR:"ϗf)t9χR% 셻iPՃɓ2J ܘ= b譊SNq軑 ֙YnYx .|A$>p}F uΧɿBlovҫ;U(-И2~N=oVK;1˞ ?)b_sv@̧k{پvYm {ƵBzQ ŒQ>J mBNܑIA!(8]zG+GwADHO/wDNc (Uұ> mmU(~tTk섹X7-ҙ()jmri@؋)r߬VY^W{ђ yI0#swqzKI-߁XՐB"FYwk z(f1; oGT0u; ^O{^1!:ј>Hk(n 54,qiHJkkaz!APy `\ a6NFV`xA sE:M=NoVȊzeY4˱%#Dwd5buG o̚rϲv1eB :0u)閹P[s0r|XdhbЍ WWvw4 xA:C+ktbtP3ɏ>&bN %yI#[73yxݟ 'Yi`aR41dEP{}UYpi b5:'g i`EbӞmܖ}x::`zpX0  uhV| Gзσ/,4y:^`P-G/˖hWfr;9/mk!Nyu^v : ۼd;q5OS镡4&O^:[0{><$CClJz XV9zzǏ06{v)u^-gfcu endstream endobj 774 0 obj << /Length 2122 /Filter /FlateDecode >> stream xZKsW$VwJraz3kGֲLx؛/F\I[r e>Sg?IZR8 ō$U:{'iH-FJhԓs/` ^˨%ܣHIKmxtHH10^},}.}}8iHQ st%b%yے4@2Ll+ bln ~C ؙM(=XiB+чj1A AWFl'^kad|΍tÍ>0DG誘lX[ akmӱ{ #|r`/ԉߌX/'.>VZ2O?pO@%[Hgkߢw__Z^3A%WlH2v$z'IAN 9S 9W6q>=-c#WbH1v2?΁T(%8`6`@0_SU*|SJ!*qRlJq.Xtk⁡J-8NWRSZ܄s5.bGyU֖z5Vݟ'(rtu;R z\,݅S6$VI.dL峝(ذ'j *((m]Jz8# e KG?!!^BWKI7<(/6%;倇o|$/(È7) Qx9~ Qc"Si{[b..?n.LVh9Ji &ϯ̒peDy !-$ױ\'NԨ~\<9M|Z9 HyV63_5 Ul|IUok Smص]]G1p8 48 bRXn(}mHyiWlbkWlN 2 ̤<S97~Vy|czJeA*m Dd hp {uͰ$bY1J-X"]' Y՜Vċ˨Hu?7Q%U?Ufku8svJIF1#>9 ? je endstream endobj 668 0 obj << /Type /ObjStm /N 100 /First 887 /Length 1848 /Filter /FlateDecode >> stream xY[o\5~_Gx3بTRBU5QzY!D4Y%"V>;gy!7mA0 qF dua0c (s2ìbpp0!8m.\`]+A3fghn؁`)347`M١\MZP:)p@keؤ&\O %%_gFG`P *8ɻT}p2ϸ[ZoM p -"^Y<. eX x05 hsTVV7 ֲ͍)5DANf_qVQ8-³_8y7[D}l6Ѧ>=8 !9>a5q5it-^^<^]Ӱ|0,OV^2']-Xru~4X>[x{rfiիߞ}g8undNaP&x:%!Ih=Rk!_,߾~;}rBΖ-/Niq/Y̓[' VRN=o/N.N'?}un;A,'5z8|#ׯ]=zu(4EBJ"R)lpI/' gQ`m;;>9&D FEE>'?>rs.IDMulHv9z .0ͻ{-3|o=-`>UE-=*T"h@9E4LgޫfيaN264M77U7H/)uAҎʦj`m,L6(IoC1lmvߑt44Vxoc2IΨČk_eo1 dHV\ ^ͤz 4͙ WEeHțo_4ѡɖ}Kڻ:qYt_Nt:ciy7u{iyߦ]]t}]ݖ7t1sy3fl|ۤLh4BiI5VR)Sg\ڎawMjDӽAlٿ܆fMآ1˛"$&cRXV1`V8 ^DYgns_̾z ݸ*[fwI,!TR #e+Dbl޾p$ Tm[@uz៳ὌubR.$KldEg݆Z:% idgAk%K76sn7fxW35L2]p3 1̞h VƼSu !U#6F߲G5xNK'}7dgw '?9yP$QJ`收9o f% endstream endobj 795 0 obj << /Length 460 /Filter /FlateDecode >> stream xڥTMo0 W=d}7t Zlֺ, 9Q8I |,|pCŦ37@U6h| S5,Dj^|j76ȇP._?/۟]u99M#*[WLs>p^԰z`;kv w+e>ei輁~>> z=utv;gsyzWW(F> stream xڵQs6zgzD ģ&ozknn&a>&\k>}!wqX`,]mF7kP`2 ,p'h;o}l1o.b#c~CM_\s"3&ڜp#j'͠njme5#P`#lGgGM3p "F:56]~EQj;zF@4 y"ě|;4+Zq ̘r;u,M]< ˫矎iđ[\,o,twyf fG;Ѷ|;H=` #e%}F:2NMg{!3ea9쐧qe3;7|l N0 dbn' (1]`@ʦJH7B.zrv^ t : sJa#dQC$A;u7Qawʺ@@U*@ Ϲl$Ҽ2ýWf7ʓ4CG\ P 鍫+*Zm!˴_Zy-q +,Jo4jVQ&,E56ՆĶ1Z/7o_fg^:[ *56vBg0;,m.YfQڞ uC[;ϐ:L6돆3D`YrYD v "^(2`q|,t|-&wQ>ate853>TDT\3Œ nZP:Y'Oj~;Z&ץ!*:܈*EYd<߉NʒGn#A %0Fܠ $%bSw!vVTp00P#2G3=-Z+ br-ҧ_Ѭ'.?* endstream endobj 792 0 obj << /Type /ObjStm /N 100 /First 894 /Length 2534 /Filter /FlateDecode >> stream xڽ[]o}y9_08vp !r[(R @{f/%}w2 D^w|nZTR=hj$ƺ5JJ%S&sǵ*Z^=d9%/ܰ%y>5YX7 ƆEȰ2%94X>Q]&c1q1b)9 ȵ&|E̺Q/sCcSI a'6 ;xܦ27:8[u .춸\!|ܡ^+Z/O7*%lR}@T``|)Z?T@tq܀fXnU o~Rc:.rxp|x?^p->-]K4V/aiñ:۞Ǐ2t&߽|ݛ_>}(LJ%wHr]a/<Ğ%¥(ž]~//'䢟ЈlHag6o?,jM t?Qy.߿f9rئ0]Gxn9Ħܲ7ݴ<{[m/7/施ʜy^؏o hc-Q6le+YQ#6UͪmޖE~7w?G,_z~5=ǚr#~C]T/y p=IM7o/xy:.ߘx)]]}@-Zn۫HNݏo9-ܟyW#/BӲ3 Y>Zʌը|}TDmm{E3Ѧ䀾 65mx {+(SW:;A_ r7k6u\۸3XJ:ѐGC y4ѐGCyE3|#I A5HQ ySibfD!qJ8I &E2t'樘JȘ1pE (T8 LQBZR)biuEY0 8@ ;$bG=U *գީ@T9N`؈7їizp!q$3WI6 fNC@rN60z/됀QHK9"1(u9%NodN?DS4:tXkc멚@**/oέjaL#_)R z*VZf\?N̉&6-k$1mM55_5em~=/+!9\—{&2F6չZpsPP4b3pOyjXK($Lkxh-C}])T_"YG/WsA XO.6ƞ!^%ZpS:& )rYάz A8-0줇F@/J/x7U0 2ah3AT-ejp^>5/ nuI֧6D1/l endstream endobj 897 0 obj << /Length1 1428 /Length2 5932 /Length3 0 /Length 6897 /Filter /FlateDecode >> stream xڍwT}?RP i7FtwH66K.%U[JIARiPQ:"vh}[q(#DK$~X 76sMA@o1 /q`KoK\DܯUgHNIJ!  R(I}u{N[O"YSIr#Zӄ ^7uB Zʋ3ohk.K0QbuDAu]C@W|wo4}ǫ@߸Cq=j̧\S乑ռ|?`yik_bMgDhg!=zQ%0EV׭5oOCh}U',D?9>4n`W0~igOPƿʓ2tqeMZYI:7*N n H-5$Z|=I(d C4aj7=&XM5,"Z徰[`*{Ahr2a4Jȕt528Y1Ŏ]XbG;LoPM$ i:&P<}E|II' „w wePxxcO%[ !{˃KJ~—^|h(Iy~!'m˅b@*[O?en;ng_j:|Sa7ϟ;zwv:ҥڬ5] apb>ϦVW#Z j~ߨ:$]jR]v[T| miyoq)u'hf rIViIrbRTxxq9tI׶Wv1p*Ror\BV? PsXG\sl} T ; ]GMIs-j*zѨLd- ﵪlL^D ,-1Sfܤʝ,kӁjd$NH-y2ހ>$ ^9o]@ o42թJ-ctxCj徹x8Z7cmCvkQ#(w+D>amϻˬ܈c>P&GЏ_r_D oz-n-SP j݉)"dh!̝q=xfd Vu_ZsɯrY2`ٓx1B)q3W5},a4fl_`E3`U4tA*-_ɏB IԦFҐÎTHsfb\EKy$w/.>@X!(YG1Nf&wcy:VtdKU}j>Ҽxn"D~DE=<9w{wa2l,U6JLDZbH , '_EӖkW/A(9SYO^ӉpSd#AIz'Òx ]_Bb7Z|sR„d鸎ӊUeK阸g) 2on,cO;¸մԵbq$a9)ƭc%4}%$D{iÎ?nN bL[NIno=ʩO: 9Sd:vy%?GVNgN!c =^lh x$*'Vz*LVrRyjPq 9yv}~@hd'z]{M=) >ޘW$3WķMD޵eCvWkK]RY|V޷mic6SYiA}+ACi9|"LIb {})͟r(=״rEUR@s@_ڔGZ\dDiHܭzpvjV#p$faVee!a2Nw}v47E@[ךW;.DQ<(y6]clV z1% 5NKuf!g(@maXFV"e}O <0/i*U׷wO@t"jngZ1$sWg)Jpsˈ 7n4[k_ )}Rb|se jiH܁ꁷH\(~hݨ.eM. qC6Xʏy``T}9Wa(!Rvy]fޜ}<6=1WъGK2TPV<oCnR> Q㛰_byOOKMǸ7kbh0mf^}ؖ B>}2 s5D?jVF\҄4SM8ujjTw]U̻<_ft+Z*ZI/bbcLKh-UվlrH)LRY]fu= 8^džx_QS*kLTqh)W'oTʖ~8"sM{kfGOcM)ًꯟ}uִۃpJqnؚ_.H\V̳5~唞$F15hOcnER+b&%V\Z] cdX:%]s N7.? * MJ>q=]\JDe ^~ls&}zFWw#knIgٍȏJ!גkԨGnH^xlKΑc^.I\u{y;&?VBY(MӛNR߰={;CN*nC{- ^"w)`آS_0@M?^-FG?__<8S9/ܸu4Vbȇڣ=Y]tm9<lqݘp~.T^`oƷ]lK K鍋aiV)xؽ|qZ{-B R\ 2͋3NT{zkT i$/k̎1Oq\]knt4BtvZ]ū7+{I@^.QmM%lZ,Y7Ȥs F5- P)UNrgLܝw!?}Q_1Ŵrm*w@כ󪏗Jx;t?SmU ]ڙEߍI\o+hYQ2 %{)%ogMz-nW $uܫ{ (ti& Q}9R]q]{9OV)堇I9 9ႜ35'H4yC+#\w*-RFA_'_e[ =N݁}L ry[HQ'{W4vRDM^Ph)@w"R6lxk9Tٯ5ޖVH.s3KRL.J+(ZVxCnp8zݢF<4 rOm?OB":Y=J+x/LGRR%DXiiwnnj 0= A窦\$S,GZ+\-7=rݜ 4;™?44|%FwJғ-; ȋVж5Lm7?+2aկQO.R+{]7_eRK-qY`(%N{XmLJ,8V4\Ce/$E+\ӣ#ީ6%J' 1{R烠@Nް"Q3 ®v lt%{f=ǣ%RBM#r(1fUm+o5+<lL [E/f 40' s߫V"At3-<V^6:kp띎k:mbBh2y̑Wa/#׷oѥk~;˓eƖ1PwhjLz :c-xخ25Us9.FˢLRI$xZ B꜒f95*qÊXFKkc39exW3zeKWOx[?ېfg endstream endobj 899 0 obj << /Length1 1406 /Length2 5979 /Length3 0 /Length 6938 /Filter /FlateDecode >> stream xڍxTS6ҤW{I B$t^7A)QtA4i_xZ߷~gywڜl&H'z&V" D89Mah8o;9 C"dqDcljh Px1@DBFDRDA 鿁H/@ wSsqEc} yiiIဲ vDzhW" 0)x\hOaa___!GEW]c q~Q=  q0_$08 A0!gh_`ݿDDOD0`G0!\(  4t~h G!1>0{뎀a DP0/¿`Yᬊ (_SyAs\w C8Cp6CyC`0&\ h@$-!!.@?f @O'ЀàQ !HDpр wvka'~}ugQ37w5ULM PSE J @DDD_'7VCG؟GFm HEsz ?c >goy~+*ޑ7;z={1L⿡Z o63#En ne4`~gCn"Q_L_>1e]d:t5?F8(UgoB$`8PѯƊ˜(/Er#= 3uC ~0,,^Wps oe;.j VQ.~='7GWEO1}URXW9,vdp|N9Ո׆;b2JWlҫnԖe1 XqG'Qzd{jM\a?%t&_IyUC:'Tw GӆiR۪-`5鈓W#1Hfˮܽo(% :o=Ʌ3!EݚJbdŦoMu dCgI.J~$*) 4yxMS2y oRE t]*oZR.U%疋T~SU޿[Musrc5<.g:dk.$3/NqF4e#5-ilu;OZ z_C[N؜n@I=%-D/K:8Ir~zalqTӖ<}+c=Ϊn.SB/O&c$@yR/A$t|Wd-Dz< 1h[AVSm0<Ħ}#̳[7SGX=sj٣_65*8R~4- 'kl˓?HTG#̑| ?)6ff7ȏS\^%3nxj|n+=錒@h>Y;%m}nh]ݘ㻐KU=>?dP3^5b">,2y¦Mfz'{|s>o EPdJivbqRhߨ<&̀7$9q40R"811t'0fҎB݉FI`NΚJ\ŋB([y~S%[0TzAwk: (͙i >c#$cȆ]dG[\ GR6ȗ)kkvl$ث a]&ŲۙvX&qDG9*K%>u'9 QSgUTxc!SJE3Yra׮㞈$UX]9Qߪw C=U'ۊGNbxz+DOX^ <׍)&>Ƴ6/ΗeY=>,IZi joׁt7}ICHyNAel YceƆz;ܕ~k~̙oQ(0%)8f1ahT%C.ċDqz6>OWMλB .3:ʊQNrTjQ]1rO4LVM*Kɜ7XRDXED[4[טV nqo\_1Y$a+_^}J'ہyD g^}MoN$ؿ*(=yч3" fpқg 8iz{o2p. M;>[H mER^$dml~Y׬K@-krWyzne6D~ز0gve ٷUgK |ʼz/ycg@;-KJzB3lo2GRYWSa9糗8Bqb*WRkPg ز.3{,O:1M9C;W÷fӋd`}Zyqp:qqִ3/'eIw|;5XM J]h/e<[x#Sf Â.&bmrT$ol1x* rP:K9<yЎF%#p($ m- !ve!5 }٘<:lRoX i<"VfDӣb~rPZ6M聭"P]{ΞL\LevJF'ծ{&GXW^,OnƏg)M<yjX`dHd:# /}>w67|O; ;YY;!\6~uJwc9pO^B讱vU oK(-,< v)si{<,|XG&ˈ8'ywr$e]B僟Mepgڶ1tzd!-&%Ze- rg*쒘R/JXdk7/ɭ>d=J7ZI#y|in))\i==*7?K|AO-0%=x&O!m⮳V!twiO/X!gPVja/.zj" Xp}z7ݓ )ޏ|{\ކYzzD͍$}ZFTW6ZtQށsO*`~EaX.e$P[cKF1gbf0$uU)Pc nq^VRՅ=jY쀹6Wά[%)]-yq-F/YShnLgi~uɆC <ۣ_ ;&є93?ŽƳ::aQ7,PDޜw3$^;zž%]% a|` DV(٠*][ oDAݟExoX9^8 J m5BB _ N7_c!亁c_tCxӱ[c+*7u>5ȏK []o3KGR)^v y/"z.CTߑH84+9@>yr"i^V]^ ehh؆fF7޵;Ɋw).N#gV],ZToLPNCb}#fؾkō6kɛQXS&֔ɤ8wnr??x竿Y87_1܈Sų,MmN}sCUd1sDϪ|@9BPᙖغR-As#[_A_n S,S'%ǩ~پ˙4ZsgPOWju% yκXgjóg|hRv6J~f̞^؉A<Ѻ3U5|1<%_[hyhno;,vdb>Cky>uL-|.6M[/FA 艹n] H.ϊ?t6V3"B0vC"n_6 ߯dYr*NUp6.JU1o>g:.uyoȞr}0Dæ$ԔHniMmsƕMd~XcN|U\&S:L: VOdg謹rt7ӫ]R/#lxHc?'s>ﶰ‹jD4szT7uC[[NFNMEn@ =C=r}N!*[gsi y=:$/`RiѩVaطz,E\}Jg]zΨ\y7??AiW~O2fN]eqĈF|pU[GP>3F`J:X)4m##~ W<^m1/LT; H\gКL-\Xj )O~y=3oT8?/M([I[ß~ XOyTp:#&_.,fv?m 56a D旽nWV(qw%Mt^\['cqlUEw#6H;D4 WWk -{eI { v*r^tD9KGJ+S-:1xjt eWlbt>5Qkq mTIDtI٥'3I˻Q[ҼJЀV_u8 Y#I9~ ൗ5򢎤WAv endstream endobj 901 0 obj << /Length1 1606 /Length2 10232 /Length3 0 /Length 11057 /Filter /FlateDecode >> stream xڭteTݒ5wC4и. n@Џ3sgo~ZOٵvC^EE(mvf`e(L] ,7' h K8@s$ CH;x@@VzM5m&&zJzg }q;o@ *rJ2z%M  T\LmAfdXC0f`s_9a9LN@31399@NK m/o~ 9@2bo`*NNf3୪?x:[8U [eۛ߱7 p;U099ؚx~s[34`ް?Ml=>mwq9;m-XQ88j9նQZ9=~s!ax#abn-PؔJw*D7Ho"M]}Whi[[%x{a ޘ/d?dk6 '9g1-ߤ`ge$ rͬ&o3ۯ 6BlA`/1 + #+7yͦ".Y*o;kx8> C\`Poڊ&;[7?-ٛ%&`/_a3MϿ[i@; eyL :5#͹ gp\so7`CIFa*.Mr ֆIc]yƽn|[dy*|56^=6H9 8Z{[jOdm\;T_q;1Kkl®)8>M8M?248u߳K”L#`Bt>rSon3jy6MY:)t^NG1֢LBE! VZ1q{Crz54s࢑|";4IO:%w5ꑧ+b!O=CXUmn\P~R PvGOH7^tc{ٔ\3C䠂1v.GX!e5_цY{nnSO.~l$CVv"_AmU6uwW ӄIJLbFsVz's[Rh<9 Qni WyAFC&5mRR 8xzWEQ,,jQ!w-H(7V`HL>}wjɞS&mLYC|6kx=twZm1p 2gFXTm87> W`$&.d%U¡~8E_o'KZ?7'G6t[<B?]>J|pzIB&HG+" 9QOyBݤL'l?wL;-S[or}?2 S#oo1JY1θ9F2sĆe5::lÏxJyQ[3|P)E>LRކeXbKf۴92ֵ֔x ^ëZ9~ }P4O{l>Ng-NЕi-6xP^-PR)؝;b۱țe`;']-m0k?ྺY'iIE?>"cDYp*uևqNBCfH RGt/TSY"j |8Lh)#mbض.[@P '4U2yzdʣʌ[zʖg_ꤶ- b[j$L|y/ӕŀ}&vL"n<N)ql퐰^Ʉ/ _O!5 iQd vݧ=R$toePԁT@`mf{Rh~$^7rC-[3\k$ s /&9$w`Z0 Sw$Gm CY\E8upZȋ"E/bQ'G̫T/wH%ǪGo4vs>N-T>%\\zx#6,V-Zˮ ;ީjf/8'hVnOeZ? ZA'QIȋ1(={K:>9Ω4sYֆ|1l/g1:PY ]Rqd>X ekybd˼MDM(uEԯ&sgghL 1 Ņȉ~|cِrt ͚:+JX>8O*nb[hʄ.<3?qD+%~YN&n+Y˾$rj]_Z&:2\Sn] 6]ašu+] AtQ}t%5; {.s~~!zoli)7G~ ]ѓl$Fo-@ ZO-Hm)3z1/+M z ՓW=鋑 s{WgGN?jav,*c!X- >tE|`_&`ȳ=YxG ~5  9Ge N"eFUB5WuNF Rk+9žK%e\Bs= _pSjrPeӇ CܳN_ *ɫiR#+/Tݮ BUQ+*#>BwӬ{sEe ]h%ԧկ(kf @7J{l3lyđ.k*=pCj% 9|X|Qc=EpVļa?Ϲ/RO4rh37(x>E:Mœ[#)Dk&3c?Yx,Deh։vCm \^?iKD@}Vqx@ϻ)qyôK?MW,<>24ttZE>Fa" z*rpXL{DHDȸ iq C !f.TR"8\5و9}ʓ_&cghr=o&3uiBX2h.Ě:iŘ0# 2>( 'sf#~(.mma>s!:` ~;`j!QV.J6669Bg"$t悯+u+&Ȓ[K96 /?HWW?\swVK7XHEh=E`xQf9w6R ,ccױ\!( 'Ln6!uumMEؚpR)0͘"<ګo*n0 'epR<+e⵲cu9jIRf*[Fe$zC'3 %jT0 +Ifx݇6Ae%kƦnlB8lah/3E6 1*c[)knVIVT;#.Eyx9&wVfV![aa_jsp陟6)=mkmd!JqtƦeKA_,F:[``Γω&ooR>EҾ6]TXv)T˶4i 8~X0vl%dtlaj<)$9+fep1 AZu8oϲGBEel*KxPۧD,<޶6w^/Oi41X=% _: vc.jE˪C"sڕK5{|>G׸@-e&oT`,IWTIh `~~s Vw : К!e41 qgT#b?*K>w3Y/ȞcYCX9 a] ɬyfIdϚ] NSOpoS ܨZׂdѝs%T .G:6䃟Ί2 k|*n]u+;p#ĩ>@U|w0îxxxgr{ݝ<ן>)k5 >tb$GE+!Bkv;`֓.cVd5d42j T0WN)K癷5_s <|Msmw/ ~ǂŲbZ~Xd1ZWAkbWON|tpL{DJra};@6#Ae1VJ:Dg&kAiBGT9 3܏Q9i[u؊/fUtĘ~A aUiz17йglf;\%} EN!br^[= RR8 [xֵ0(([[RH]hzOd5O,C^^ߒR"Dm{Oѣ/343IO9- ~_PA A+7K;_ŜUe{E*%'2g?r-D Ia20_ ѽ/e~q5Uvjj}Bm7+RÇ]rC /̈́WQ{PBdA`餜;WyF569Ž0[{xsёS\Ok pYYdEHr^s;O8Xz7#:b9|,cy|dHQ;Z7 !xuY߃sD"4`L*^ 6QkEz^lK=M}ig]gBvoQ'S܉G~pay/R8!m\)N<3}+M~mpViqN9mh;T?""$#u(^h:T]C>LB*{o S]ma =XrT*^HYK#[?^n>!?@IVI`OWIb%*5eե] |f∑OeFH'P#>Ǽ`84`N$Piz>A=^jxjtZ]$Ta蘑׉n R{hpWm`e|K9}j>?Fj/cءHGְe?5,*Ͱ:FC(fOZMz(4/o)ru|3#\V \sG$տؑ j#>\_JW„4sxG`a7e. !{e<*T qT2Tv.5:7$LS{YaSX:'[ %WQSɎ}mؤP4=Bh$XdʯޫŘG;F<`Ki"{ɷ(ɅdꀧvBx &%T.d24KVM ̧ qH~Uq%4`vENJEbN5,dz|Wz5^NGMT{kng[a'0݃jyBDq.b_$?fm":^+Kj񸯓S EUe|UXB[FM>WP6ո+YӬ9_[2Ba. mnQNuK]r݊3U;ݺ$[sM[WD 7/w2+8{D}N~C3# 7] N %/ЍX6~JVd 38^CiHv"rӷm6B6Y5l}AI ~Nb|zT~Kr ;+ϟ~bc[0˦w[*]R#hkkRyBCڕqۯ+s;HβS UgGߞOA:;F/RQ(cb D#!\wj6Gl8`p#`/kE WP,'ʧ;(ݮ }iY6|tF}=7wvO5擰ߝw3-hƬ{r!-PZUQ/bSPKoIk-OsHg IA6E o۳8"lȷ<1P۫#Uj_A *@WV.Ic4Mw̚mCd+5|Ț#шNd2@T?;q ݋i'-:}+:R|o-#i3I]BKp濍eIemF‡KG.\9S] Eap+/p~ɏFl Mг:r!]UwtFG/t3LApl^=5ŬJП~y +wd5R70΅jn#@Q׀G-uxd ExiUI#Do+u|&(>M1 J{5 S8Ը޾eo/O 7V%bgjw4 IKXdqiFII?v(}'NYV 5.ğ2]lH>Z-)Zc ՆjHѕ]V&Kgx3 KtBes)QmbgiwSŸϻޕpxIF5#6 -鐎{bC e`NNmyFT&ԕ*sQRbNrKV5FaV|B^b@${Hkg^,,8һ 6ڗ )1-zmu jH"+m[;\tkǞґv _1m·dWj?1yٱjr(Ix ΰXU㤋!mTh*ܝpI"pbE;F'ԏ&coQZ_770v?.V#)i9F# hTT.?9XxY3A9u빙fF9_!t5ӢoǣAcђ3+mTUC?'ޟs}QlF3]<|~C|dm2c=ZޑaTu{Mn#[4)]{te85g]MaOSu6 4|f^XiS-tpĮC mDp.uQĒc颩{fE?DDh?΅a^@#k"8N0Y]xoWc?{p$m]Or9q(,MWvU 54HepIf`"7| xj5e;cXM{¹`r:;"ESQ8Q#s@R(:SLkr\,:"$&s'aK݁hZvyx E5GVom? bB6s#&xae#P?Mp_Qvk FX]ɽD̿Jn3Nrx/܈Es T[@1#rѡ73Ֆ h~d gb< *IudiyDDЩ J#`k}[$oNw yCjtЬ}]q1s:–g٘ɖ@BK|==x.H&n\|Էqsj1oѣy|23$eV3ROH6t["H׋76l0W]Ef+Rj yޫhϚZoڞ{RZ"D7M Zz1 1! 77$WL>,7[>IJDbLh+8vejMBd[?=qpw\#ߖl WU`:|9_ S/RFkzqi(jɗ1BMBbGo𸈧ǓbrfY# ӭTK_[Pd9/š8h^c2ncߢl})^ 0(Mx"LJˑծdŎkcmw L endstream endobj 903 0 obj << /Length1 1624 /Length2 7848 /Length3 0 /Length 8679 /Filter /FlateDecode >> stream xڭteX}.! ]40twIH#0C %1H8t HR !!|w_ٟy?\΢oħA0@jS\{ή!p <*{0@HRR w::!\&O? _Ƚ'\!0=  LSWkP  })= 8=. {8 S'='tC ?/ @= 8 wI^+!7=vODx{@*jp!ý%n{{</O,; tsǾ's' xGyOs;ߪ r"!DH! eT}[H:юTә/ /|6&PZw,ԞzqA"CT-L+Gbj8j{f7Z|rm qM =k+#6#&)$~pmG)"Eț1_u59Fb:9^w/Hj%7ՉrrF!AvEfm~3kf8=`?GEl}mJ -饑/3P ՟c~Pi !!,.ge)k&Lz 7yаQl`o lv(N☇nq=!HݬG\Ml biC^a@\`3waFn73P䔵c{V>埜TvfaUoхxc<0>zupˈƣZIY3]i v 4 dzqZ]p&ӿ[ƶ+iZ(Z.:/c교2Ԗɴ|LBHwVxX0%fLnoh~M%T1œS ϒd?sn~7upcO8 T9 3g'u>FhKr2s쉫4D;t7LǕE,Z]Y~(0WD oN4*3T!8KNVԳX?[I+\(t+TCعfWv{@e2 ᔫٗJ`Mпr-'#x'_KBK.u>ޚQLw\kgB &.nGH7YܭLp+<ʑE]O_cfr#OWŜ6ǛWby3ocd2v(_j?  ?PGx&=ޜ柩iz%^LVux~ ^MDa)p Z㸭( 0})?id0~q~QL<oߺ?73\ f&w>=٨‹.htGX=vI;\) /RROђ [ 9oO?֍ϭ-H_e|a X @\j-3-EaXktlzcmu 9nqXiPC9_ ʂ}4SLXWG::L֨ϫ2}Շۥ6nSG;m2O '{BR﹙y4F"&}! ̝RFbhy¯X.9o,_vŃ6w_|F_-p[)+4x} lFysmk͒ruHIxR{fށS-V̾-[ց${HRO)i>:Uhs>+{/W٫cɫS/ZQք)Ӿ$\(ؼ'տ{^_J$Hyy% TQ^1SXYen{CmQ9a[:S(79tښ3<@0Zmr- |vOnpO>\]ixRB| VqLO}^>X82KzCihalRqwn3rj\"=X3z-%cXiaM:Z:ƒU! ~s}|shee57mq< kT+k ѳˆJC*-pڽ=iN3ͨq?=28Ш8,1Ωu'nd\jd|{~&t\iJjgn0bV6D]ͦieuc;6ߒsF=̜\ٟۿlnT>e1ml4~TNjB1U%JnF&0=I~fµZq•/r#\V2.'PDHQP 1V\TT #xICHKt|9|x畹Wp ⌛~GI.]4XM(7sbm3`-oSZaQl$֘Bռs6ß9s-91,e5Xa@g <rt  MDB>[lt`^vA-5{BOE 'Uc,|6|=7Mw=,XC|V,5_;'ނ[ƩzrX4!x8gShIfe&~ h$/IRNqN'.dK@}WId1W[>$&Ldx2W!UaC50>쌅CiTY!DcBˑ^귦_ 'tm~d_KL$u E#>H|#sЈSmB%.[$TM e ۗ꯽KƼ"t~%-ռCrƉmV'{L 3g'w", N$[3TdOEc&!bA7'Уe3Q9 xh6?F!  K6,&w4u(uɠ ol qf,ͺct۪ud3$vGo1 G'Q- a᫝|W~jG幌gC:v졮P=*1G#TM(BSRB0yʏ!˺JWOBȳoɘ;~M =N&Z󐖔plymZ,i 2E{ͱzK^-V_@[Rٍ>.s_^يj/%;P/SD{D p[&P-iSC&jz_DD.U5 `7X^pVblo9ګ*5MHQj<7Ӷb&̧ QL!TA*3Ojmʳ'2|rwMT6cE:}=e\P։~:U-&NaQޏ¥|f2*1qz~4v6y#JuϖLa[D?DMhY4a]͡`ȇ\dBeCwFrC'zV}~&YGL5jLs~iLHƬMtPu@C\Uyu6(M: fl`s'& BDɬszd'H} &nUXAga*ýzȕ3e/la6ȅ,'nۀ~@݌<@20#ENZ":ūSdDݒEBBSOW iͽۿ5Iy$ے~(k.NEV,xpy:^L{kÈeϏ '1HVcf03ۜK늘j?U6g%1T E`,-V$,5g`/gVޘroYO+ߏЃn(8L =pL+K7~G?i]J{{oĴ,w ׮ h|w+~W[#0`;iQK|S_kTogoW =ѧDʰw*e !Lwٛm\J128Y)K/W,PQ-UvArgr|+1.-'r򀣒c/9yg )7-P4n56SN=1oy~$X9= Jﱽ"*` " uq1 VO:m?-Wj(\ >a+? 9 J0Z$aQls꺻0__۟0U瓗47f#W\@>G9`P[cF H-`._@: 8F?Izc ǥYS8 mg· vߵցؕmp]kJ-\NRkcTz`5:if?fL6ߛ ѿBN0`]Fv쟩^{ qᄂG\ZL%PK䑑>)|B/*k{ͥJVW:~tEjiZxz]66p3SkdZ>+E1VM؃^3i?%xJ[le&$owRW3Tρ>Ȳ@fl@~fI<?Yk ?|U\fIuӌ(r C"t$;t>x?>ZY}&wmZ&Yی䪥n; 婀 5 0t2~jb&eK+Qz=!5l:pB}Fb o<Ozzk}LcV62Y;#qs7/:bΎ9RuF"YVɫLn965 h?5sa,USGҒe[۳^ 5EPk-΅p㵹2O> ?_9/&4*-qqx"WH 7$p@~Ec+v?Kb-[sʌY?'6nQT?.B{2W'''9B\%pF/ae< +{%Mn @I>Q2E *Fjg=}H|=/3u&Tw$\oؾ1rsDh~N= ?-FSEe]\2z;%3N}R QU"OVEXɱn;疣[}# ڳ}Ip+%Vk<pHT(sTayV_ %gӃL̽F?$s~Ggӳr6($dKN~4:Iw!eI2[Tr7]DCRW[f?-95r}L܀+G,KNՁZ#af$FVIHיi,@DwǢF:eD*xV%Z IBrFˢ~0k5ME 6C}' x=nWoNZs{.'yY%5R͍cϡC̈6!1Ryx7L,_80e:޿+=h F*u F]67JU{eȉhcbgK6'OFէY`#$ z]K#BBޜ#o1=޸Buk|ut|ly&] 'd.ITdѰ;ڸ>#''9Jʆ{"9_%L endstream endobj 905 0 obj << /Length1 1612 /Length2 16783 /Length3 0 /Length 17619 /Filter /FlateDecode >> stream xڬePͲ% Ӹ;wwwwwg8;4޸;403w3s숧2V̕UɈUL퍁vtLyK[c'9{;Y:e ௑ Lhlio'j hM@33 bhin TS֠O?!cdin w9ި-3K @DAQKJ^@)!l.6&YK `f`bogjOiNF'm@w?.Z7 `hdK;ۿ`NN&΀YEN{&./_^g#K;'3\@-E?F6@'0 ߪ7rpnE/N@3zX&9M6egPL8Q33TIxLf S(TA[j_]lll/ 玱1rZx6@ IH9m_Amtt*Z:X̌lv_v5;Sj&T-,Mi=ۿ]@;JHΠ"!,*B_E)Y/YZ!,l{Y8r21y ?rFΎ%32ϕ37gVTL26qqtN߂cA݁&K&: Ǣw"5'<=R @a$%9{:7|Br("Uџ'Fy:^k 5y p4[a* :b0.7Qod\?4Q48mCfAoG5.E ޴Kp_G@gݕ3 :9K&%ꚶzre6hdhaB^^l?8t8z`Ch 3"ii)_-}qh2T>sg9JٳX4kV{y$n4WڄC*5 hgYm?#IÊ5pId&S B=WBxG+81%jL|睼o@ާؓ3u&dzx \\+jh%SV4c^ w8pIsR︔8MG URZ` E>;&J8})VJBz>+rhu(UEAΩ,Qpջ?J.iO0**:z>ғ 3U{|H~̲x N*ih蘒1 #R>Ȩ.ܺ&L yjW,g HKɥΉA< ЩIoO,pFrfZs,gVUzKP fph a, q|ʢ 8k84<>p/Z.2z(_+B#UkTl-U:L{RϘ/Csʚ9zFԽ. EW%<Ӄ>)O!"j]VAsb@qXw·fM6=G{m:0 p:2*Z`DvaoMgTsMUx{*K?|ZuXiRn aL,CoAN*ݲ7=bHI-%~K&j3XCs7ԒWiDGeˈȧq=`).UEYT MJtnjI9 &SR1&qY˗ĝ@Z磲Lv9ZryT(^XsW82WJ\J7sT 67 ȇ=Zb⒍,̥P; $?KZK%"co NYD)nϐ4Uypsa?EpqOahV^o;/W}[a2AB['2ASTb 2@Ât -{۔\NXM=PɯxL?{zuSc G>qk+{ t]zsU9LzoJdS"5 gh2 `yC&(E^ {4ͭ AdB!I&:"KНCq`LEUv~p"o# 0keqL %`&#m~ 7J@n'!$t*7gU7dAkuf7yUB*o@JUm ckRSat{yZ$DwU- !%pfQJ`ARY8w֠+2NU vLeO5 kr fE#~Y.I&hxzF-xV{p>Cj6~&*<^w#-"'>)ktM4[,M+Al)෗٭ %.dg(?N&}ہRݺ+L2~1\U|k_5%B O#?s V`=I>!G9t,`kh 3\5 Nw ދ_:9|Ǭ٧v܃`-{&Ҝn۱s?K/b L8yn<9Tv;MT;,d=btNw|C}Z aFWG+Z%|d>+i"TR<[qn20XоfW8レBU8g՛e( Wk*iCYTTxZfHOMc['MG>|ciVc70oDu婏`CUEĤR?l"&=|ҮR_Ih(jbf5 zCgK}&ܝQi}Eg(E\;V+WצP{V&|1fTO|CV#wgZ-ԍ^\ R+[vV+RE:WdK_7.+Cl,`Mʺ=*4 _WR oKjxc?Y%f;!+N_/>ܬM8R'wAmZiJHzuINEN!RkБ_X?BVs/пCECoЮ%mS[ i`Ge0Ec4R;r0:KuncRoB 6L͟$/Te }T/hF$-ߪPL#($V^ ~!%1ro y8(%!*':C @!6c|A?.ba[+FFR[ ܏j3S4U M/-!)hTe}y~Vxȃ#~5A<4ڧKelؒ ޗQ΀~têh"~11,io'Y/KGY{(]r zأsF'!E<)^׍!JBFG"*&㘯}% ֯DFe_-fdzji@CO'܉2-Lqgp d9tsYZ,PGmk6Ţ~@jB4xJQk/舍qd短y",5#TATܛ6fGʅI\Zxۗg|P-@O)26'JJWp?t1`FW1 òo]wY-PvK#/负z8ZgjLjnz(875o0QY%4pDp~ԥ·#\c"8) [4XKs~t t[͒\ /x$7>bֺ]l-GԍVVcT~nZxLP11\YVR ! 6If{.5e=Hlb2P2pBdq0qƃyڨᇠ[{y$̘O[PYf%A _ef#P Ͻmd),ڷʉrIX4qxiuf6xQΈb:ɴ=Pup2ǯ>B5??Jg6;h$W1}&[!iY䟴8#)Ave]B[u k}w`«QzS\]vCj٥k;.GC{6&ƠKK:ȿ/סFx:UCQbEzAwӾFϪB?L`|0R2;v=7΃OLqhɗY!]&nWI)eYEkk  jѮC]x|_>jYP0tK;ttYʄ}T֤Gp4X}>;p_1#cI((Mi8ڧ k`j'O ά]K²#S 2H  ȓnk˽!֫ ;^ڤo ϽOV2v{ R1PM'\!ZX>wmiY|kϊU۸#8bncxbvxB^G8i! ohPBs7Zdy yv]PCr|Xȹ)vS.%-QD2Q,uht6o]6C)VeEHBuoX|cgx́cT"ꆣuW;b-%ڴ3U==)w1Ê8- @R{B0m >$k`@i1g7_Ն+swہ[=0}ڦZl=${)A;sQh,J,qEnȓ7w1_芷u3%vie*]--avH!REqcV>S| 7R{^&j[+n>–8{xbۊw.Z鞵'0`3fnŒ뫷T i} КC7ъ }zxTI%nte5A,WNWϦdV7@ە sUbV|/a ۹%O9?ɼCB^[R2f5~70R+\ϫL/(>ΙItf/orxm =/B~q*h rTR=)w0MV"s]t!%NցSZ9[zKeV-O f)АH2܁ZbRo4|xޝwŎV$1I3^Cl OczXpę/|;(6LUَ'G &ȭ`6|Po74igwjGIw|_P^f6x#ՠ_Ї9Ū[8zc.X=\|;H Q,捫~C-qdzueU &DeӮȸIh6D?ھ=x4cȁFNl7M77L I_u06)v 7z CNWq~ Dfj C77OFw$/%ˁi7eC#ZbK< W`*l塹t•^m E1TMbPgۦF$3hSnǵfWsq_{Q #bC#&DžvidƦ( #qŶ.*6\yLb gz,ߌ*ZX0 ^?. "?}͏ĚLƐܝuvo3߲J/(8kVYM]tȿ \w:;2944WϾ甲s Wy>OM4 :uu'{#/SX 1ȉnjѵ$V2=DGU/v-jďK'3mO~&Xn+=+dLہH"nY>Z$'G񋘌xB89x8y mUnH6ES]\WRn}OL&~$. Cb5\AMޞ qA:eT|}!qC4N"o퍐lA$ _{QYoAǏ+ U'$ț!N0nIzudRɘat 3:Ӿuw W>)J7 ixfo]|x';9=~՟Υv4Aq^:*dGʍESѮ NI'qā EٞZ  csXowh18<޷'7f fji-13H&%5E*Krtb0ثrW)IJ(Err}87E`eKTvb.mh0O^"Hf?o# "&}tOO el*9|}n*w z'i_rT\oԕ|$oL_vesUGUc:2^ٖNy*)<5w9^?*M+ SzզH Xa9=(5PckXowY(=oO-nVtRVf'm:0 S?3ƏguݝQ\N 8B̽ Sv {,ų_w A|Na8 M+'E"mpTk'H6~i?bk]ؚ Df146MM>!>-!Zwk i$sE~6c y L2b" anlbI2)n%n 5.Mř~>h0usQܣ,v$4%&>c/`tO .£by<csfGu밹:^s苳9g c?Ws+l:[ e%)JK>_I,I_η< ~xۅK[cK@.$p|.e,P.k:pA} U.UӨЫGg.}ue;"np >x+p p"A7>uЙ~mt 50.ֽ7[O7u=m~eC Յ>_̰5BAH0C:Dʒ IfA !*?O?=N85h JUM-½C 7mB `Ad( '6Q+[(kCo`u<-# ?CAbԨd|yZ^c~D03$ōkpĢ?UU@^\t' 򧺒G'k,+brz&#pvM 1ޡ|TZ(]Ns0UƢ}Z/y  }ô?Ñn:p9Cգ;AF: 0F3iQQ"Sb2 ~jSYS=0椯wBI!(hx%G,JrN˗61'4 prVݖ4[HA j9ߔ2[@Q*T*׸P6BcLT2,q́ӷ3XMY\_{$TC:R{)ĵ呮10?Uݎ7M=hCiu7TxEhO+1#+/м5ǧ҈FiYudLUϭ.s k[ >ǥ Su!p?%,Qp[%>Ļb5~䳪S6|>Bg"BAONmwp >!414M6B`ί~h(oVyoE54djۣkñr /7[1l8.6mB\e%oθ&ēl1r5Х^չ ]sS@=SI~UmX @JESBz00>ĘU;k ݫ^A& pRT;tX8:LH#wjvQ Bi^aO&aYGXk׾ڙ}/[nv%F+(V$yh陾.q~c`˚m뵢QY=¤-ZF,9Ũ.~Ne@^ܦַZ (?$d!7qw*%"d C'iucX&SmTLN\ ptWlϑrTFjTyM/RUj \͖k9e{n"ii*u{tj hdX/P҃P2W*բGIf.#I|dʋ`hQ&E?4@54~F$Xl:Ԅ޺xnj1kD}+!gQ?KV_*o'ٗZa8D XxASo/7),o`9ĬZE|'>^'clKN4Yؼ 睆 7@. }dop*7=O5W?D/B+ x^^SHZ RjeXyUF.h|*"'sD` qW7/ZhÞNǯ8bu!M}\ 7nm@l(R0G1zoKF`"Oҍ8Rp?oUG݀ҬxnGNT5q܀ )N%spxFMҳT˟&DDX:H:sGM9C3}׷rR@Ƶ/U1Q)7Hz2>WCTLuhBǁ& уMEXA؝j0H-k{}Ĺ$KN]3Ī Tr>W3֓>G!ja;>W,"PͻV@LvoFJ`XmaL h͈jt RRJ9vUx̚ &5]i8{ >BIHwRLybfi*F0tKk֟A#a^˘.:@2Q Q6DJCɼ"764Xt&2nEQhZG4"huEK vyG$>#ʼnYgaéٳ!Kp5P:9dESS?}qgc jrLH+ h'/|Z8e2зv=Eߊf|9_7SsՄ6YFqVx4d1 ?0vZ`Q]9 LBX Ah&]Ө7o8fu b}b<( F 4&=Tm`$_F2]6INo*e'SVntW2tJNBu1RuFӵaF#Y <7RDj*ɂr֥C҅yk23DJ88OJi(?gw|4c2m!P [0;d& ;~IÛw.rF}v:KTO}JOPŒ1~UN|He}$zjtIύ5R<-szZ)kVZwYc٘bt~["4Y(Y_,9d,Oɗ TϯV!Mȷ䦐|a u(%AXީ+9f2HDOp=^E#CE% X )KQxaÛ)nTtTM;|[$xuJo\ޫg}*TK)胿¶j6Zqv/p1rDO}{eje1L% ZHu l+1 x]V~uZ9Og3<~ߪLZ`i3([YCJsK9qS)+,*.&3؉>뱸L1\lp ?6ˠxOj543Esq1[{!njztTǪ'Cp Tx< ݕQ\O5%}bږrY(&ڱw)d F[:.`|YM8 c3|ƠD*q,yEO؁2Q4rZg F}jU;B8Q6NԞ0l5}n!8)w `I` a#/a dex~s{OIZHkb]~k?εa,*[s|@s;~|xGqt1x Ǒ[rؒ7M o܇"dJÒ ̺Re)ITxOWm w}f56.ŢFue.8i%ICIăkTrR,e ʖ~FMЁ0+*ɷs_Iس**9N8 0׸C6*l{8A5{Aˑ]͉^kmDUuW""!`uũc#eGm_׻uY 'X0hWA-O|M{=%펡 G+Bц0¦m WbGD8v.L|r@tŶ~aOYIb77g6i8FbBɸ?Fū{v9r#;7`fILgJ6(3±?QK0GXNcL8_7,W E~?(t!Ɖ;5JMxeAHdCG<'w3['^e "3DD%h\PΗp5%!t8`I\z+̡Eov)DJc._IzWQ(E`@KW5jsM։ $nH1z 9aT,޽BsT]B@IO oF0v&e,цf5#t5l3Iy&a;*vb\Vc8>24$H5Ai&*j%qD[JZ5gD>_ڸTAu#sKb9&ӻ5\G <ڐ=X!5;.5+*o^J.5Dٸ@tN~iC#KMV XK fx_w"dB ^C |1ON=;w-r$&':߸WIrH+s'|A_; D "%gW[UaQ$#)D*wos eW;pЗSB,x34{8+8)pQI%DPu9L?#+ yjysK>Ln:![_J7 "%dMC_Q▅V_@ocS4|i`(rJL5g2^Ur(p?^v$f=pΠd`Yb^cZ),`>j:*נZ ӳ^S&lk| i`q鉀^,PZϐr>F@Ǻ('pSj;!kpFS X~'s I{ߡNhM?_8,ItWt6<{[Pf'z|%Kj{()j8SqdUPA_ owz#>|X.];H#bUx<\"-c3dKipoX|"a>t~*]U礫d C>j>׊sirwL_19pC~! n#;+@QFx?!HVhxHx2>p(<ɧH,'"Ue':PS;_=H49\0iuwXW={G+x\Ÿ&$K&*d?没9(!d zT9"`fs.s!tL|@g_=D̀7l(P,|VJ  o:(C>NC~B#D 'vAN0_f;}m;CM`Byװ j1S[cf0LjRecDዦ |}9MTҭU"cLA_PNa/߅pʿLUI9< <+@Ccll(ɏ|F[hL5]g2f&F!Ƚl\PJ9bw;THUUkE9ܠRҝذ,^d2hW!_.(k=E^9&ǨRž%\5yMo\=&iE;*ĥi` YzSko5b‡"2?\|=Zn |sUnnNUIDpE N-.شa%Pa.Ӥ[mt_ (c7YYg7<L~[tlX*1_x6rE,{% endstream endobj 907 0 obj << /Length1 1630 /Length2 9311 /Length3 0 /Length 10152 /Filter /FlateDecode >> stream xڭxUX\m5(ݝ'! ܂C鋪{}ދCK*iʁ\ lB5g+wU C J%(d.. -@vtYe`{}:\.Wu6N@_\b X`% Jg:ߺtuu+?kplP8^sZC^s9YE[o?0O 1",m@.N>- S?'@yoF%N-f_2[Pg,?w tvpQw"u(.v°rrqmvpsh8@N3ˮb;9_kA;Xu#uU/OMF_d))7prYvsqpp^hd]A66Gbbl4=Wz_( kpǴjQ.N:JPgPZԺ`cU[sܾӶ`}g 8,{ ]+?N(Y1z~ɬƨY#›Vn0 c0g^0͵+Fujm"~V=Nu_7C}g߷I$" [~ڧLX/묟=65ða!'}$Bhӧ4Bjgp S}c8꾵k8/pG!H(i#Uv\":K%9Hc;OYDd.T?`})~WO}8#$Xͷ|RO 4yN8ioGE2,3ed2$ )a<˕kT9^;,2}zEe ~wǷi (udA7Fp]`VJgj?R|c4f1hNoHLA ӐJEf IUrH*{^TGd1Lӣó|%ԑj3NQT`<`d'%vF)%Gj?@k)x7 ReƃݣϖZKb3;4fޞƹTk&:Ro Ĕ,`&_~)3 mhs᳻ı4M5v}eB]KWE F;w[GO43Ui?K</a ᡍN`eC dV.Gftvڅ Z}0~D;Ɲ4>u6sE^ ՐF> ?%aB d,YuD!(L;=9:/{XރǁJ+kRw#y@ZƱۗr2b:@Fޒnề6zE5 aWmtMdQ+lwV=)/٦GTzkGd;Hnw\z>b!]G'RIm}ž#w^Ct\k҈4 LU  }$bLpQpKmOsaWMÃ}?~ycn { 7&Ɛhg36=B|YN nv&cQk$kJxf>* !tQòeTTT:Ilwk)T}pT^֣ jזVfnߣUY_gN9 P0JF ?;ڰ9|!%$ʫi*`R^RoH%~+w$яԍ֯m1M*1ˇ0$ A DB>gF m>”簢SAv R1{mZ,V81VM\7OS7#Bb5] 7~tȱ^6VC0)LD7[;CY gC&o!O%[_~:9~Ad~I[*/ 0IDDQ{HZZ[מ~eEC~RFq2 ,AOon\6I2ܕ(<(;&1(jGV" (nftpޭCizg0_"ewﯤ)' L*Xy[g)lp&}p s0Ԑ L/[o tGFAbhk!}OvS|%Lt/n1=]u@jxMiLjX 0E\nHs@HpEjƈk3(@ISX5d#Y+??A^Шq;7ErM d`܋on"+HSV1wtvjަ#9Ln<7sG1-_5ь{AM7ZCjP \E4JYsUHHxX fǜ);a~h2 |wZTDZTv!m+ļVѴ71ACxqؕ@(qGҢJ4uY|6F1r0FwҌ+2$Qmo21 l\XQ04Ð7-6`52O)?rɋ偰ڭ8U7]m['yxI[B)'I|`Bjs.BUUq v^ P\F&g%q0:x)pnXtBTܨc] Fn?*Caҝ+j` !,%Hr|"LA*wdXU!MI9 ;4^8ȣ\KsDo; w /vpjAמ *>8n&7Y$"ʹQo)YO ŬbnU)1?{p͖z:|2 ˰῝\e2B *;b*EÛS^KGӊWO}5fTm]èZoB5Cl)'fqN\r">9` DF˱(۪}oy6♼ӆ)RAJuN,Y7(nZdPhu#qc)Q6DȬ&hyVh{qŶj3:$٨EI ~*?V=FGP0mqh/M mQUNTi.*ŒD]0aAC]AhCd.i s#<_qQ9myKQT2:WrN4I(3"rޑosm~W64AgOHcmI؁Ե1jbh<X6?wm+ - jd%RQ#nX<4Ҫ.s|*#qW%ڭX #W[_}y ֙D~S==! 67<իmw':N~fB߀:ku.^~>}x M4rF\BRg3B!OQHE ȵm.ˉ9E& g4sroYooS 6l g2;DLgOQV"GeKooԹCݴհE' 2#&Wi5" z% X_L/a($?zBEVK #*bK*IEurgI,Apb+q& zLO $aZ"ͥ'g!%{$p9JS|zvWm1FX-3rP$kHu*X}d a|4bW͌ШT87M`(흝Vu+.< 睔,mGSykY3Q ⻫︽+-=M!ev Pr[Z0"lMnƨ6R4O!omK%H5Fޛ"*p3*f fSm J 9l6'_āGʎ`lO~Qc!Qvb GFOa 5H(0ʨ>B@{IYi 4{z).G_ KO ҥGpt)'eIǹݿ~`I)hArE~uɸ._lH! c&(ďXunҰ)3>:X# _5*7:ǾJv[ [' }W!5=Tv>If\; "!H{)'[Ul14H[T6ְDLJe^| {?nPLUKH6\я1fQ4a/^dwR%{iMp0~?"mhJYi:BCI`{ eZrĺ*zfHJ |RbtWo lܝQ9꡺[L'^X%$S6`Tيq-4n;K򠖲Wc!]1-1#o]TE8&"2\7w<}9NƖ4DG9-ߡ}e=AOVap$Ҹzw3KqIw+4"y"i=#h?v|+#MȬ9b:chv/IJbw?8_+F}e 9ݤ\M+W3j3Kʉ." g\R~2خR4>4RjjZh9j/i "e,$^rD}?Aηfqܾ4uɥPvf+"jT(| hv*@\?H=g~nUI ȁF%Z@Cy$)͍=A#\8놮B_SAǻWJ(Ua6NzbXS)2.繀S ?e5)Ne9*Ϳc`G5:Sarbe>Zke;םZ+vT둏r 87,hMw2Gkc-sJg$2<.\шjVkcc6~2{m Mn& 9*z|izMenw[~Յ[ow/S{KI  q p[LR{Oz3}Le\2 _%i1j[+F>9ke GT~CSy4:;%+/O e5S{+jf;+򢸫)BV7ˈ:KJB(Tlڽ(*U c_} cq $iArlK9\:Hf0U8cRGWFB Jq/q6]Z>U.g ) 0}DEp .fY?@]3z9+{AmUL`rx?Q?q^oIlZc5D7Y]Jw9~'s6uYTPz@ "aϹ%ͮWIHE?+Vcx ^2c+HM&{IP8[}4aIf*= īx" IDڇvdʌ0YWǦ;sksJ1Xo]Ä:7v~>2IQ&*sջ:\U)/Z1=ĘgvGaga: lKR\fϪ& |C_P̍:j'|fTO9q@R=#zR:KYbg)m\ު bO7d/,FSJ:#%z*,z;WPGAG#UcDEGΟ0 ' w[CR}6$.\*P ":<cQKJg}>`N*ȅ vnsAZLnB]kfASh*Zwd״"𕗥hpU5EJ-Ūt_f9G he^p{A'XjenA3;gEf81QB#6oWG4ڕs,3:ԡci1 mֽ)̓> stream xڭveTݒ5N htC7$H'8 }Y_3dzsUYNS5rprANn0  b``-\A+P` , s0iW?=/;a [0qv]_ u@`rd54̊zE phY:j + d@,V5`/Xo` hz:b8N l`חB _^6 9C!/N/0Mf9^j)_a7bi r}/0/^W pz-^r9CApdm-֎@Nݐt}ikP6?nsBn_3BvXm0!/);9}"$o&j<+00;p9zh D o/Rpsr)<֚ W+;K끭PGmpOd"`e"߼5(kmwꮺ^/Z!#|pq 6n>o ZBA㗢y.?LFlkNt\-/_VnP苢s@+9X}jFk iNqw'b'zUa"՟8EZ~;?Va$qd <Σg_alb z_v`dVm ƨ6>(^_;Y50&f~-;Â/i.zYoQ%iΪ{5fk7vǦ|kV~;{*ԵnqC CMFBRK@!?R N! (Qd­W'm} ى~i|TzULNnf @L &09p,-잝֑yϥk֣Tg Mc_zz5KufPXSe?kW3fbݦ7smx GwȀҏYDCM{53d#^ n&>ŶqI'-o HgDt缼rf.\璜D%~Qo"R"ڄp[Pd5T>c b0Z-5\FnbGM>Vr1ؠRiؤp&L Td n3ۧ0> UfJpHk_yJKB&{\iv!.1u9qI(0JوE󛾇|w?`d]~(hc>XϫT't@bOCE<`b2xD0s<TZߐKHR:-mtR&BW&t}Dϵp(hiZtS|4Xj 5zqڭmC&ᩬm_|ΰψ/]Xxے'j KIN WJ8F {<"5v@Z71ܽyAodc担)E.< 1os} OzINq6yN'> 񢹦>3|yqԫU涄ѱ7- %X>]p[3T"LwHYr}{2@ ENu&[GQJzt㎋5xI}w55fNp-a/֡f{ӂhuN"/Ze{2XmQ_K2Z;L̖w&[Ozc~>|pm6= #E[s,iW_͛2J>3d3`(O!,#*8fvj=r y}±X}[CNz@W^כrE3GL{_Ddѳ@m궤jLaGx$42$7&\0&=FPЛ`v)-wN w#=` юٴvkP`cS 7Kq"]q蠒~s*Ԭ\$=n#JHk'DcEQb( q^wWK,dP?!ߨP'.p-w=Y1 d4t VdnI6 2C vn`J .ooEV0ذ͐1(eÑ#aV|O YEVk~"v-I_Aҫ~ :*NxdteJL[_{UR'l8akPY ZAG :?fVk:LZ͊A LWߐEw9~ߛ.ҖY(qXq`4ߞPbJH0f>J42#- *9k cYwX>-Mj/I:& NNI;Hsu|}x!צ `a[/" %%sr譗\+cxׯN AV+`K zX;D}zbqYV)kezq8tw`%E)IV.{I|Wr8}r5'Etx&Yc˷^;m<ȿ!'~sLz3A]ړ-:k] w6C^8Ơх p J%a"6^'1Z;(Z\!iYf3F._+%B/R,h\SyߴW?H|7\, Ygn8Ԃ({לTYrG Y3V]5-정F]e2&y/u&:.M2JA.:ԼN~"pvKD9&(qʕ:2veiL,q$s:6$݉n? .ڞ䦱Q(!Z㡫$uWi>X\mTBژ慐}ERc40S?|l΃uc,{; у勣ݲ>W5:MS[}I i@mW:#Ĕ9u(h&ڡX,4 =jޮHwVB҃+[9z-F Cڑv&r) Ư]D>RpU=yRNߪAM:eҤg׍A;(rcB-MUmѣO&H{h_KoG@A'2"G1/z9|%"L$]~XAT~.CcOn{L6}H|SZNw7a휕L3ü^Ւx5AYL\8&WT}f='JɶQųMNjN:&s^k/U5d}ʉN$!jBeC2Q;I gXP*JKkLYtumx_Ոϣt+^ـڲBXg%~_ѿ& }wh g!iEӠ4^1G3^JK~3V7̔4)QJDA!Hp0:%Ck\9th, c>!fu_`b9VйA6SՑJ <Ј //M2]iApR Iȭ"eMھhYr/%{.ںn3| 8z'>+V_tGkkZ_Hqܢ4*>G+$74J E b9Np7Oi+ZVy0Akf6,9n*(<NXITkY_[ACVGtbs^"'M49|u^,oOH!(i$!J 91oZ_վqs Yjmn7+OkG^ <0`hHlW_ݿƢ'{.+mX ~IAiꁴ-:4*pF!4eLz (2Pީ?L-q8=|oy?~aTYK;5&?j=Q Bwo6CE-?fޓ]@?Su Ģɍo@Y+B UZ#Khia<w+jKTb\g@].O17SB?(ɆRp# |Iu CyS+=c,ciiIBhH/ŧ ?,7tVq\p^nFө<6b6uOa RzGsHedR},f<ĩ&u'+/z\SQ LH4XuI 1L"l{?ȝur0[fsL@{ )Bңĭ/rb]$:S*DžP H+/Ý5|nBN~".8Pl6껻ނ+=;ԦɣAcng-}ˍ V>n%rJ;WsX਻OǺK,fPDvFtwл?[ :PGЫ'GŲ5.+EĄdZؚ+ Hu݋ky$Hz-}k>xI]mG1n5 cU2Fk%Jr7!VJ(Un*`SSP 3~@ɤNٰӐaljvQ::O,q[SOjgH0eڃ[]ϯ]\hr$FJ*>uDYg1:$ih˝qv cO:&`Ϩ@Y^ꀒ?kf +&e!Fc:_ma=='-vFM\ +c!9|#j I}']h퍢,K*'|Eo d^{kbZ2M (0{o#uɇQ=ƹ|'})S'ꫥYhUnΧvdߙ+DEȦͩ+nr7]OZZtU!d -8hsf[DќaA*CO~Íf (fn1/m%'_:Q;| KS{ d9ՌDސD+; <7f |JW4󏜢\dU󔫐<[^EM7Mx =rs[[ j9E,RHg4Bd~jHl0[NHB2jx~Q(\Vtq|d躊=_wgpyWHeLD]B9hU.`OxuڜyX&)_,L60'_??r&FۉuIB.S7i7n|3"jMƙ= S%DP+Q ڛowk>)քM<)2!{آ47ؙzjЪ(oΜs?x;-p|c0tzVtZ"Z>yҷ CY;*ꑜ>ht8&е>{Db <t=7"ef=V8tEacjv1.ky1~*L'r9b tzŢ\ZZa^䩡EM0_zpW`gq|Kun6 (2)kLS ZMeНGX0XuSm<]oϮY23OhҬ;J{2p y?Ƅa e;+k=\x/rmyؼ2tkmFH"gbe*{fUAvM.;EWQA}[|SήVVQ~ Dpl2>f b~Ch}9Ǵ~ݙ*HO۞u/SӵcIe9m{Jކ1r.]W~C'} Gx*4=/;џD*|nԄ[[Y~im\yߎ?{Һ}k~hDX~4eX٦q Klgd)ݡ>F|ih;73Y8%ܓ6q=J+mp6yfE 0#TR"JKR[ty8hS+Qt^6)ݼSj,{7TOj?G|"C])&o&0=gyNu1Zo %M%7N67#K_eyxnmmLwm]Lф,Y0''fG*O&]ۤrƀ!=bz4u˔ %̝uv/o0N!G꟟Jze=Hi$r=O)EZGJ`{ڗڝӴP O٘"Q}.m:q!:)3ūFiLp:7u Q8\2j+=rG69tyE9nQ!7O=Qzge㲬\8αPZbDKh5Cd3?X|ODf Ԕj%wQ25.@v"da)}cP2%CRa`ҽovr;UoVwHM <qоj$4"7^C,7{ !Z|17ANEe YԖAj 0q NsC-@}=.P]CVrU{;sÆ+KPj$NLcW_;4ugE$I7X E,0QmF۝ 6*FO[f)rzCJ:\E+SAr,-·m.:k3qy2dq-0烓搑vue%Ȍƨ6gg8mjѺ觫d'*镥}/_@" !Խcn žr-F~ O=t/P[= W΁#[9r4wk ;XP|wfD{,bZՆBcmR>itj^;e7x9 սgk ked:3Do,C5fi}O[djŽƹB!qG"g%@Jg!D$+ 5fx^;`Wָ|L*Rڛ8>[WufjPێTU"y}5e&.4Norxb~߷ SGkWV^f kQPݖr" ˻S{_aB*n,%u8 _io4_)$2;Gk(kR[KUxr{xc9Efj|\<# pi`?JS ߊI%&K\JXmQ$!3.FshRAğfUu2nW{ͮU0!1eIsT!'Wړqg+m_H7-+;Nzl$*qՓWd2X,<&%zM'xH#uvEݴ<elp(lv(nؘ. }R٣y>.O wly/}}ûSfHHh$QJF?KHJ*%(1xR!!{A$qQ&t 42Q )9AʼneYu%{qzOtk@&L~n}։SKiܽUؠ{Q / 8 endstream endobj 911 0 obj << /Length1 1166 /Length2 6703 /Length3 0 /Length 7472 /Filter /FlateDecode >> stream xuSu\ۺE@@:gn%AZPJBZ %Dw}>?]oznu }X'7@ C! A:` nFl:ϪYbg `1degX{3a\~WzHvղʃ ػrs–Ш3H;fr8a(/ p c$ 3XY 1;+@G~ {s. A~>.0-Al?l p|/;l^^b =\`{u+ 02Pw VTSQSczOX)E_Z}Rs Gln7OTZu)lHX_LlV\U1ķ|X 64cMtw>h!:f}P9)Hz]R6홛ib Z+KTcFcbbs*ߡl(vbغ$2EJZm$N$9'5 eQ)_Wa\o*꥚Ư1ΚP9KeSP5`|NGsVyڅ#Z|n݆zt ۵Ij,G! HgmOU,ORwTHj}% RnwYADUүo]!',GJyL&M-ѣ @}73]g͟c+8@Y/!!@}QŞ_m/dA!k0 & w*b!mB7)9 N3ѩEO_#ɝ_'5(0k"\TN1aG{*QI&Sc0Mը{Ť:Ǔ rq% m3mF8hŀoױuMNhֳ(ec(30xf@*dJM]xmefaMB^T*l?{Il]2cG}=x/. ,K%SMsσ)3N裾&f5?$7r]Zd0QjǫIĦa%3.B|qm3pA~3zk5㧼I{DŽኯ*ۦ3ʒBn:ZBT1q 12ޞq B/cxK)6 -']+{3^G0I)Cu)1x !.Pq~|je rKrmR=JY-OS ,"99:5of͠esj|򵂏 %Zu ̀TϾfE_NkZ9L^ z]QԡX>+XBM{(•ehzn$;l)\Iײ< .:Cvc}ۊxTNUR9[ᣂ z{:g( B0Y:Xrl26PUJTZ( p+=mX)\\7Y[5d,Y< 3|oFrl" "}|;)L}@∵0myE'|G,ߐ Gй_=6p*C5[+9=H]xlvT#ex ]$9xREŊ@E[q}k(pbf['y߯F^sٙsUYFiz羧 YlU@jJTMdaY# ":X*0jVt \˴r} m^:y;GSN]z~*Bts +2W/$:*.{ \XM eDZu n{Xܫ/9Y%48* وu1z<@9LIhv=ls,Dc&'c;lS}L=^c 3+.(dޟS8ݯgiiR(=Ĭڕ+ж,eQlegl{XP|h2!Klܮ=aF\ZշYg6p=쥡O]ީ@ե|wgYÐ`ݣL ),㫔6 2u|": P&d|?To[+̳MR.[X +`uI\DbѿL53<= Em,ĻO_A٦5V?i|(TZS TVNwN_|{]v MdzmϭHUȳ2cJ%45m%)"7Š[3V>F6t:\bos@*pK!sFKT`8=cZY.yJ~#Lo r:ēޟ ޴r);/O"ˏvIW\֌-oQn '7SIs [Rshk(u6^d:ݠ.u1Ļ !{M AP9R&, p}-.'UЙ:T9}Q#eC5rs{cX̱ 5`ҭ.zDϘ>bW+W@䳅\S{M΄]빨bQ={bBVAwjeE#{~)0N*[ ]ؖnDF;}mcYVŌ]ITp6U޶FXbuN\#)"(WpJ~eN;"ʦԐ`Q[XF-.r ϷM|WVStjrבwʅF7`Hhn2?`-t5=QuwgI?+:$o9 =뾒(TuBk'o3FżT>} ~Ak>Wh2nEQXdhoU~\cD\(+(lu1p"3T~BӋ)ֻvRvՆ!*\ m半XFZ+_&n^NZ톕<ͽ@o%x^ҺLOY(5ʁ ybPIoq4_sꨗT# lhcdK *> &-) ƈHDo|!N}yS;B,-Հ*_K? >)yE@\Ɋ{D݀4bg}+<9.2ҰR[!Ds\_O\RDa-Ntq%φg !iƺYidIEm_>c{C8Z]$SJ_zfa 8wegKQB3qFP~6:ָS=Sl h bǣG`**Vx-uuk ]/t/v~:/q ߃VKڟH,3c) D1jIpX :by2vpIm꡼/DYܳނއy]Tû*+؟cQr}G} rdbb6-qIi.vb3%uAҀejtOV4]Md1 l{ >(ɯYoEiE%{AihO M8뼗4,a/EH .:DO+ءcD"ձVB"lLl6"k:8zl/ɯ;Y>/ 잦=0x;{tǓUJ"V!H ٕS5k|E b锟Aꂃ+Y > stream xmSy99ϑۍqT3As"#[(JvcTK `ZXn99'х@,"L/ D!t43bOG"Ib) "0 S"(@;d"z?gL$/PtvpQRQQeAP(;'dgNl |1>X3 Nƞ F_7n$C8 c[=YNs]iby>CZvo@1( [q|d.!UuJkqQzݷMx6*ti"tENc>D nJݬ[k-Vn3^L)U\P|ݭ<. {ɻ]LQuSp_WwX͈ptʻ&X&UXEI՚+4z }yM$Xf1+3^nkGq8;ťRV!oa`#$8NL1ʔG,Pʹ#hbe]C&WUsגQ&UBUIKzo"6xġTzxp#W`("{QC]P@O?=ɬJOWːhZ0~TuUmM|[oD78y"m6kLCr$)jcW;~+(s,|׃6xJc[d,ӽh"ZlGޢX}k%[?r=J{z‘mpO0xޤKf1ea|–_UW?I0V?Z:-5ݚT&=ث=1Ad֩SoVz{>N6 ^^e.=gu 9L$.8DI|々ϥØbt$eYȕr r&eί#Hl3 w;3Vl2<0ej w[ea ]6%#su̳'L aѯiH33a[>*ţ9(toD*12ȼKWw+Gt?+ɬPhnӜpӒQeLnt1ʧzq.O⣍% *e`gYJ `PpKK \smj i.4r‚ѭm)XZfQfBOW-{]P5~(|: M1e͏&u&9:TL#2I8cٛWh߽UL qjMރiŮ(!s՟w9n뒊cKD-%)kM`0ׅjYLD#G#pelhMՠQr[Ͻs/ۗ<6M_ylyޥ؂tm7ƈxQ,%J+r 61n6gKju[iF/ &Rmf:Qrmkcn8*/yTݜ}&JtW% \08Gcrup>, W|j0챴~N3aSs}aѼe7㢦tR4k s-$TϺ%7 euƥx'VPxzt No%spu8|fs檜;`JhЭk&UЫ5(ih"3777YH) vg& w >ɼZx"~bH4D*A!m֜<eL{ȍ7!Kd`¢ ' :zSݵ)4Iό:)i.׭fz)( O~ۋ>s\y¨CkyzEE1\Ir6R+)mqWRf%𮹸9P[.ۤv|$Wt1Ӧc;֕E^UWUͩ+OM%(X h, _"5W&e\VF,yG9p6!Zk-36ëgZ:ףm)j39ħ?1Ш>k]'5[`'5f?׾i۫)y46$)"EWk~=u UW0R|/7\3 %zO&\ g}8lw<စ˃Ml YBe%tҼȩW޿!F%7B[~^;w ؟ћ}fܣK^;Y|g)hH2[H_hzpS[.͛Lgxbi)7X?LĻ endstream endobj 915 0 obj << /Length1 1626 /Length2 8766 /Length3 0 /Length 9608 /Filter /FlateDecode >> stream xڭveTZ-N -Hphw  <%X!8'#7y}?z>%vծs4u8 y(čGvtwՆ:Cj k0.$ Y9 7(5 x@ @ ڹX_s'`LW-uvAܞ!׉: ;J u=Y84-VU b@aǿ+(5Wg,iWd~NyY8 ; Y@ܞg!V/3hE j_?022P//'_= %Y ?W0 VP?kf~޴2q[`u_;y0fVbaYn5r=]% o׀\u㢏3[l?H_tX [p`g]uHGi= x+? 5kGA3NUڗ86:8}_;O(sЙ,HRݼaVȷpz_ݝd[2l*{+ gΝRCLbdܫw>+ 5Pg}BՋﺎwC}1!#]_Qζ'-R@W >o?[KZf_tD 3}Op-Q Nic_յιLU. Y#H]%$~5x_f)J:TtE_x+Y5hA:^%jpa[$A4J5rOhRQWTbvsJ <!0A#H2uQiDw. hsu+|asS vj׈r,qZӀQgGn;pI5 J1]Uuf=2E.5- V7=B7]Owx4Qn *W233増rr{K-~ zsTr;dn EB_v|fZ9_Nm:*2/j/O8u([wV~at(xy=-^ 9ԩG/j`׋RM2:{9%t@o3+854x(d9;P,ܘ lfY)GkNqq4ħ4;7PO]A'^{ T[[cDlm؉9jv89A|=jGV#\Vd A'QOd*ڵ ?X|QFkC1/!FHB|1!am!m¬'ZG4m>O:?LEvn@XITQ<\djCDC@ښnT*dW=4lU]|,72.DIy@ݷ\k!,1QDػ{lxm 4?{5B> /33~ؘś^u5~)KZ󽿥yccgMA/#uLwc4;LH%ƈI0֧Khp;g1yh un^XEutô:xR١u6zx.2YLFuMT9{:Bdv8Oq)b*?NVo#¢SasBoC@x 1#z[ ;̖U,ְp-;)O,df}d9HaƁS_UsC=̋WYFCpyHXCA~yntoL ղWcE.(yo5f֝&\Dǁ+V \QiOR':5?YTzo |ӆ "\,_h^ v͸AF+ $lNʟ48JY2 qaаxQs iuS^3)pQAyT/aoJj 8‹9z C8 v'|V5.}pm֊~ea\]HoP@8.Fе1Jނ˒|Ӵafe榯. )>ē4SΎs԰iREo.b#wv8otOa}-[kF?k?|jc}䬫͖>}R/RUc.PUMMߴClnFݓh^¼+Y߼XpeLe~`O9aa̗ ?(ZVLyG-1N$&EZА얲Q7]Cv1RqI8xpZ@}?9cc/L#6?; 6:﹔Emw! bsz7=Xe^IxÎ'lsHIDZ[4;Cil|^-d|`:s^ISNIwF`~m33ɮO"axL!_Y,lw #A5:lΫhWPMs.{5_ђu}%˒𖜣h M·툶L=nvg猛I]>= _pv!Џn$Wa{Bu" ?J9;N59\p, cGu~DxW&_+Ow {ᡧ,HY -cRH}!q†f9K Y41%ƞb,}HtgBLKWf+a]`k[Aܸr$ȴxvOe?%m5j D5wB; haQe;P$Uw=7. 5pK1DG#>ٛM_;&tRO%-mɃO[ا*2d9xer}H$-b[FٲPZ:V˨i_Qj4Y)'~jґ}n$u46$-A[]5gx}Rw>EAZLrфu:6J$h^x'r0iZL -87WсV<kbYuЈ`#? he_lybhR7Bl18!#>:ދ-JD4`2|f.^>[_: Z!ێT߮Mwzv@DĤWӔEb1x}|6' 1jbjI׌aG .xw;76?rU`_0~ *ژ+XY_9+75)o|m4RUE}ba E)-ZL溵lfwBUp͏s/KN&jҮH C/j]&dy[:F£%QSTmF޵1Έ,67e+JhR9}%?fGumO@zIi!Y7$[;dSB%E{ӡLW)*[&ytT"s+'cKsO~gH/@8OҙX\%q/m!ݥuHT\~C8(|a!jc腍7SCdޏ2WbN)nS!(`#oAD{8bYi{nR#)8h5u8๥m{z.<}-; 1?f1?Ai~Lxf}zvVxܮDZx$Ps: e6܋Q2XɔEe|#y/}Q7(qI:<ZQ cZɔDP)a1*1ǫ16#EK?TY  RcH76W!@ų$ь[6ΣyOGI-erlgWyWDcgīƒ)0C>4 \n&S.)qc?fj\ زn ͹Uζgc^'Gs+/èA2ݯ2nGYBw\{)'."M ~U~m Jkbj}u|p͓Tr+rNojjAkw~נ.-,o['>~\Gd-M+n?]q,FTW5>ͫeiT6Db3jT|6fXqjqQ>! W a<1~:n$+>Sm]vQ% HW@O us;.a:&U}=rCxTעX*P5}jǐ5q^Tcq}1[b7o$BR.qi-;LbYhxh%1v(*ʬ0<k~]b+bfb=)(I/& }/*Qkʄ<}+m_6LqB:z-޻l)lK# ?< ib4(N%18v?s%qś} BeZ(CZ[E`6 ; R3& TnzpwPjX.d/Px,? ȒP۝<$MB?Fvg܋b?m<;_{@Gqi@@VWHRdhgd؈ˍM49?>Fz\5JǟEF::\&knT<,*J_߯ec?Ja[t(9}K'EVWJޣ%-k C%$fa0i |ne_mNR!PW$W}׍G!:B{mR& Ym2=ᣰ%=JiLD_SkAQlR9cQ>cn c)ČpgRI.0"$,i5]ׂӔB RhYqCZlղV} ZvRD\)V# >t:6EX,w"Pr1'IR0c`?G>Gŧy(X ؁t "Ġ&KūN"L嫡)6'˽×4Eu΁ d P/MPgy#[b·yuQ5{3\(g:tzFmI~MK<\._yB0!¾ŗ5lh廓jN ܨS00_AegKDLQi7&߉݂ ?eH:]6oL(!^'H0*pY C'yO@~CߔYX3-i+SlTuzBKBM*,6ұ~<_@}U}ݓ/H 3_5۾"Op%׊r U*;zضDo Y] VHZs;J|&&?s虡W\۹P]fU _/+.u9 6w <$gf0t8Ь]б xgwڌR{ʙ.rL'/f_AGh -]ɗ[]|;F`h{I p٭W{GvlP`݅z7۫zʵi-2!|1=0iG~p2Z;C[,ih`:GEϴ4_E[</"V(*mwYdѨĨ쨠BGC|_dRjCcL+BLF4Ӕ߯u8\tEzMle!J൘ܺ*Zp3hd`.٣k$$@3AC'G*R"uSȿ*q$W Bb/YT_2Қ~ NkM-O:SoSR| qg8oje6ΠSZ! 1]Gj/t%p/#դGdb^8l/f;mT/.7PFɞ[|B2Q1}?Z۰'$/.+E7k7>H L9fc *Yu!K+E|Nt1CS"%oZLi-/+8wP}}N&[SiMCFpQbuW4^ p:nesP ViY .+4B8/|S⇀mFS;TEh(mbHű'VpgV9ڕ0)6Ծ8ʝ~cX99[U_*f#y>_h8I,@g>(V[%fGH8JDVaTi`s Vg.6`o B;cb{01[W41.°D̝|VQHc9xR:-_D 2XVWs䇤LhcrE:I-l.}&eLpl4뉤VheGކy" P 7NmC/m2O6} K/GZ `h?3+IJ59A2kkqiEҹ]7qlHlN|&QU.eΫeB6cPø,#Rzl0'b|_·nZI'Mt6 "__HǧUgaIu"|Sߧ}~Cџ $tdY6D` =VUQmǖV22!ԒEV(2 RٳQ@UHD1=ot9 endstream endobj 917 0 obj << /Length1 1642 /Length2 5441 /Length3 0 /Length 6281 /Filter /FlateDecode >> stream xڭtgXk.Ҥ { M:H@H JޥwM7D@PIr|:g\3=3=pE ({: ԇ{z\Q"zP\ F  QHU0zhU@II,rA0@~S#3!!-]>BpG$E\H h 1NP U @Z@~ }S Ecy#@]Ph !RnP86 u ݠhW:H 0( .kFa=\ x8n 6+HU:1N`p, D`X,Ñ@ ;={!>X274OpPG0zx`iܿo>{O4׿kc<(@BG~ϋJex \  0ؔ@ʢ9GG}VD kbw P{x v#|zA*Z_ UGD⎨_f: 1N@?vS$FP$. ĝ ()_LE%l? D`L|ܠL72'"-EDJ6PVV(+};g=0 ZK}=B0~h4V? :PrYZTz$_G6WңVd+]D6ݻjr\a@u?-.#*f[Jm;RZ;C#ے "v)4@-n;qhk yn y=ؽOػ""Gřy>lp"gHcnBg|:* j/3[H}i -5[;uR%= _Uo -7ta\DCK,+0yRu X>_fNMkLAem'>ȭ6~uD%@ii-jFpO&h jX:yΑj| ӖU{s5v1BEVA je`j:,?TlهGԱC9iB`13V^;sߗ3d)]oO:oovϛ8t].>V+\'/TzCV"l-tG]n[$J .QZ3 NMR \5^L7' \LFso&3fr>dx RE XRrRgYC]J?o,B~8?1IjEDiQ !Yĥ+:*RrV1iA5e ?tM'z @hnb H}^.D0ͅj򖏰}4z^`b5_.T'r;osFr6Fg[ގ ~1"0*̣%9gj=Ń$ڈ]C3Aɶ#TbFQ<'nw ]4 0{ҩG1cxP/LWZGHƒaRo5z/nT~5)FayDj@̀c_حc1gX "G}h,*$>EBCa|T@"O ̈́'4kgM6c6B* nWX$r>+:FJ>@mJ^f?$[)()L"w绿r]o\?Ș J~$^T63ڟG\[&H6wrdgO}0_ngYBF5@[9yyڐZ[F{0>Czjc옸Y=w8Ғ\w]78Xs@(PWv渻<3-gcU1W'aHqn:\}[A*xIMtzzypO~. IL)?N#El\U4Ӵ]Fc9δgW] )~=rJ1mRNì/o5hb| ȸQ1!/Vv|Qs-Ü͠55ҭxj/;:&/GZxXu.WKj_3C2J |R<;y85jhN!Z׭o'ࠑq:tB爌൱˗PBU~Wu g2ID_FEsr8Dއ~QwآRR"؟)nfǏR&%hd6|ViOrM]wRNkƺf5d=QRҨSx GYʝ /&-^=ÿ́Cnab4."`8 r0 TXxVN9iXJ>F6PE- Wc|9rÇ.!b4BBLIs؎ޟ^(e>䂭YHOYs^Z*|[Ʋ~1;] ]Xtol4nDSt.MEo[kq`{W-Qs}𽧐Hh;晗2sVrAO:۷1I; Ulo\Hy~@=&Ċ NO $!&[[B zG -O2]ķ?Nhɨ{yJ]6=#MԺH iR<%PoewʝVR1wl$ֳ؏E qtI`S}yKR RY%kCٍ#6AC!Th2g e<?·??;ɑf#Fgd[Z4,n5w\Te ^Tfl.+{;>[ZP~f*ߑѫ$#l[w beAX%_B-m3.ch\ gmň ޏĭCElb(g_>9KRK&S|:7=v9^VɌiΞ>5 گE3ͦ~x`޳+b^{ۥNc p]z \7#6b9cܮhOq[$09qrb՚ T⧠ө6R98aL"A-JS' Ž,rLBib>1?I(cڧ V6֬w `aNKg7|`b#E[~6`~G3?;?,WYsi8Ir5.ΎO>J9+uI('&w/n#>wwLػdFo8侓Z~RO{qÌ2ZX,a4=J[ˆ噼P`4Fgڨ iۿv}Dd"9zIq^rt,{W٪Pk5?r=maM &ZBN+Kl)94́bG\ ^DIYj?uNTIKMsmL xQr`L6.>w!HkmrI_&p5vFD-Փ_$j; 千o9Q;Ir?mq9Vu.(.䗕QyhY<㭈_-0DQ*$" @0SzӦ'xō˿@,AaN 4h|!~򾑝k)@JlPa2'=iѴ =ݶ9טP/0zإm?c/ٴvQLE)8,V $Fmjg9L^2›xvթ=`ڶHݲͬ$RP(=۴a>K_y3խ7&/KyZmbSBg-?cX%< &xnm%cWtZ1|R|{$u`uqYg6I<+gWE:BsesuO.޿)c濮):&][2z%5P4q+g.{',>:u]ϦXz؞ގw4b"G-*{f9j1b :9f"[qݲ4f ]u덷*_L.Qkgy,*bָ'rI3MXGsx=*,l~q=J+z\t~%]INcOyVV9U]j;dp@8O|tQ@t]Xb>4>XK]}kOռ ޖXZ0i銎,}fcoZeoY\HJm(|ysDխ?p6s┪KS[p6nWs~7=?' m3Q ~v%&b!k&R]LnhJaʌsfC NF[iI Pi-&.s6Y4pe<;ulUkӪYZnGbJ~7<۟r %;܎[9 t\Qy{L1d JBRbl)u$D4$| ibP4tyW.;6 hϿۓ endstream endobj 919 0 obj << /Length1 1630 /Length2 18361 /Length3 0 /Length 19201 /Filter /FlateDecode >> stream xڬct]&vv*mWlVPIvlv*NŶm۶sNu{{M\\sENB/ 54qgf`ț[:;*Zr+:E mm y@ Gsw075sP)kPhz:(~[Y8?vT168Ḽ ZR*Iy5@ kndlhL 0uX0S#_,aG?*:o#ol6FV+7WBv-)::999FUwNfNv4ؚ9Sҿtaj mNnN24 f`4mL+:/__u m/ʄoL#Mm)[3ӿ@gй;AT $ 6V ߐ3ߑ'?top7;1Kwd,+[k; ߶ۘBsG s7co%W;X_m3317?$[el_3 / G5r<#"bgгp1fa_ ?N F8N Q9;8%_ oq,Y9`gMa +W-M .^0pj/Ms0҃eEٝl|KMJݛAI{Wvy5/~3WE8sDGAhcRفVzFpH90:<4}ٻO KktJՅӱb!Y 5Amљ!f9킕KtIh0V24> ^xLtZUZcQlcN'2};!rQ2}UJ|v/wu&.4%-HiNZ&!!-GWR]><,I١HhƘNjW=rWP @7lhy]&KxbڥpTMC qDA}g4e:҄kG0{΍5\}\}SK,w]i ۃrqI_ɮ$$ZriLScWf>gV`h9bTE :)Щ(_j(4nk,K+E]) $-^W()VnbRV먎h* hDC(xj TUȯ@T_<+T_ٰ:۸cD Ʈ Z +0}TB⃎ff/h˷R"IՓb*=2kn-\mJn}N^=dk*cHJq5> tb8>p1hVanK"mS =z8񘢮*e,OdQcͻ^oz}u#tZAV%|(%r_j=@$glnJs>j]Ҹ U\yޡ}/f b.GN)H_:;4qp "Ơ@';"th{sx?AWYxL{;BEcTvX (]k㥌 ja~;/Cbt,Ec(B?"OAz$oEG$Ww5}{!o >#\6)S&;wxrTSO~)S~+ݫifj4;r&AG|$Tm.÷go^?SwCU~af_'M/ț/IK#NCJAF$L RQÌ1'喐/9sgױŲZgHHΟβ7p6o^i))fvti멚Ƙf2G_ Z!G 8 r L"Q˺"s::L6>X%j[l_ŝljtHNL~LAkV?7OIڼi"w1W$fW,\Ŭ.*Zmo)@'|x=vuu[U+#%kפ:U`5VGs<7pXn =o]e-ڨ-hQu_30bm;Y_3}JRe}4zuVB)4-OyD2ȍa{6(\/ ~(^y:lD@>vRs0*nk Ꙡ|[y*C؇rNDL/*'j^Fg624"ҧwtQʩ/;f.ʩϠX8E0nlSc;^MȏSxé7I je Ʈ5x~˵$,(p.} ${'#M pa2@:JF.u⥙nϣ0QDŽE7{:t_ϛ Dy![÷ Tr v*.Y%2sqRt).um):{_U^J b.imX79KC`o"^kKQcBV͗ywM DR>NHby jH`눓‚U HJPk|߇ zDڅy]BrU-t_H<ה&=f).f.Go%xTnnvXH._8<Å&1Za Q%[؜Lԧap4S⬽Ӫ?x$9E46RÕ1XV'5@ǚ hjұl"ȵO& DeXСi׋LBrpr }xR8*o0'-S3j,IVO,gb}  ܹ L:(Rԍ{|| uhQ A 9Ɯk;Q݌Y_ IJ'-L5jH{$)شFs::|\p*iZtZu:_2-i`piqFDBd &"' DKEޓXY⺧ Cޭ#S2bC|#`.&N44]F7,+A#Jۘ\*EATǓ@ RB4w89聦hQ 5o#s{"h@Wˆ/y)Zrmlܖ{HLf-@{qH/-uT,ZqB:q6_j,ʶhC%8aF*H)6t{cĊTqwz85f,ݹsS%TxxIo,fmVU)bH.YYG"_غwa 8*2"1⏱ .$,SREffl-#%#ǫ1E4>.4%)lE۴LZP׸spKָix_͢j̣vd*[-&lJPlZu" t63ަߋ]ϡi ڪ/{#}DSDRa׎zUQMhO{EخtϓѲIvH<pB΍|*M#[Zd4;]a=nX-;al\C|wAf r>Gu6E!$/>QX5\,,fP>X(hu j~~uX 慙FI+q㔱u>uBP/P=fG.T'ut Pe8?*U)j֜{𑘉:'Pj˹lI\whi C=FCU: p/bc\Ij`۳/-_ST^f ѡ(+eA v3*ySx: ]Ȋls9;Rg㌊T]20w֟q[o7K2d-m8MQ֩|Z^(ZOt{◷kL0`U+K", ÷Q/^]@XҮt (0z6:l42OmoOFfUQDkGO]]5͔ttC(VB~ Bl{(ّ{]ɱbd&N> 1CĉbE1YE,Oش氼[[I\kqOgJ{\^25O*aY߱S8 $Hm$%EH}i.=9>Nh'N#wo'%w}Ujq "k!;>d~+ }Xy:8P&"'Z~-FNE|vp0gPT;;UaTtӧ)7 #t0bx-TYM7 W v+z1Ucl7j64m;&{_s|pQK٥6asvQipݎЬDy" 9p4 杖 E0 H'\Y/gKuzE%d+Q89r{19rRTTm.G2:;m z&A^0JM:=RY!'DUq K:bQBNkϊ@.WA *VKbaz#`]rLfQb|XY-*khg]ڍbhVp|,0IljkΙФz_i8@qNEY.!e9='5;!Wk%\';׵fvqCUrЍ/~᧌cKF9\ L']8K8 ia;7s'VWz0-~^'zm"nlɄ]R2|L~հ*|=b\W&Q NQY*o`$WnelMS{⻢ɻ W:oXa2Pj'xɥxfFN [gqeS#PS5:+#8X1oN"hs' ^'  P /Jǟ 8FkE?a"uFcE˺Ck:=|FWJ $g}xt!0L q->!oSV0@fI9Q>ZZTls(/t)ufXM߰r$0|cFަcE r-;& Yit}$sj#2Ѱfl$4O<89j!Ae,QVpB.T WC/SB:t-:f,:IEPʫxȸɁf3[\zl m Wf3zߩ36]}xK9R$J]>YLY3}&N+UkY+x U-'Q;pXB [VVAZ'Y4"+oOblJ|%}}^GɇށZyAI#@ S_W̺|-u)fEL1_nw]&A?H+S4(X0!izp se>] yP˖tT)Wrd|Y ;Cz-`r`bM{Ee0ںcqS#ʛ?)3˔A}4 Z(ԹZ}- q;!PUINS >ӥ؟ ѽL LK >ߥ>ld_K|-^i/si(qӏخt. N #Q|⒂.Zx(<,ec۩xYB( !N}9%fKZ)Q2@{dV\{>yR:r!=W,0{-ҕ+s<-L4pES,K$ɭ̩ߑ* .?ǽM56ل/ [9}H m|ʔ^ۦ- VY'Qׅ 2]$A›Ȳ 9un:\4CƟKg!!ܚWFQYCV=xjxk7] 5, *?l߾:Wr'!3(Y* PQDIN7cbWk,$YT&kzԜLA`;!wz |D;5ѶW 2V p|ܿOt| ǻ5=i|dr6M|2k##s*b$- '%?Fs凬f.E#Z)I?< H70+4:UP ]QܪԖɎ82 h5"d x0!9ylT֡Ou_y H:j M_s?ޛ7 ءÇCXDUZ IOJI ^ $o0[两r: QpfdK 'LhZsղIqᑥJH^";Vger|%"f^/<t$L9fUS'P $g,r#՚eN HqI؂ ElЧ*KZO$NA4 6T<A|?a@!㳚`vT9>؂ ?nW}u]],e"BQVQ{MNAyB,}PvⶓAJɦkj2ɪQ y*O#XjՓP𭱨HCS,>eAr8J>ŔfMkQÿ\n)^XGdyREs@,)DvZgׇ*TrMv8;Xn%49*j .$y\(Nf)\&QHªMx{ظ o+U1nHsua;fC"wl8n 8i[kEv1HɃ>qwF񹟒BBȡ[HRCu@HYERH' S^}G`uO#^8*,yڃ9$o1k/M;Ϗܦ/ǧD ,,;✼> ~XgyHSEx?. Q0 la.E}Em/׿lV8iTRk x0v!#f3ˮhIeA2h Cj@wYCϪPOX *޻U}v^>a-"z.Zw'[@g~eMjw55KnꢝviS&S[N0}~Pզ{ b\1ώR}. Œ$r @"4o?ԵDRrf0|?T dxroi>R{pܻ))')G APy܏%~ -hJx5&;fu>49GU#7\nS,?^oݢPp2*J HB+. tX `Χ'o3M7[W4?WuIYO?vun7M`ۛ2{&RͰ#.v[I};7死Q^+(zG6 ZgtymVW$&^7S1ڂvxRE;nO~Tf ~ c (mF-I5_D:2pd.f`;ʻ5")R~5Z0JꢄO˒t^Z6,$>cv#&dV+BMT"/^ ֠ttLxy)DӇZk2f~? fKԁh :a3TK!Bxuq*Vf?@}Xɥ`)x(P'[;EBEU ^ Pqwa&bxdCT;0ۍu;5vhJ!@ݸ$irDSSA {u\ۻe~8Z1:ԶfU/iV\# x/,s]k%?|B>{i+F>h*.;fFTRLq̯e }]p7fQӞ?\rJքFFC^soNs/ҁbygݠc1RweR U?:WE;8g@<`Z|a{"s#D1M݄ 91Þ~xyoQ]*èuJX !bV%TC568Q: $.ܡ=vvz~hxG^WsLn ɵI;w\m"(^[] \?te"=Sa?H@sFx]\\;e1J`Q "۱v E{suaD#eL/rB`p1zSX`a@_׵P놉>7=GN+lQ(ksۻXt ѠmSkwmIoƼu)EܚH6vBe Sm_h-˕^{]'7uO1;\dnH茢}Cv?KV,]ŋ$a:Kf  \[O>k{gX<Pi"U>a?! ~ )( fRVWͭ Jpw49jsu\] +еoD8BCm6g˗{uB9Pe螸mUa0GA`?i{^~D5VȐWJkZ]FsrAnk~h Ac| k\7+e)!$@@i›N Cۢ"9|s\H',UU~CL4ױD%vn|PJnC{P=}"ot `:x<-brbpjb4t.3n5WEc\^5O5 X/6b %=6N:oMy=4ibG-g?٧ ls&={ GR96f(Y^p @Q,?қ&Iޠ//sd4V@I &+6bm|-L[nZy28X ?:])4PNܪq_)H%a:xK#^cAe6X6B]F,Ȅ-FeD ]st Q[Zֽ4A61?U@vvCC遰ɩ5\+J6e^J;jݩǔXM'Bcs#q)C̙Mtup~RQg'ϴᰳG ܙ@Bo`G"gYzd2# @w!I+!6sd,M W`l^uZh:RxɅDY!,0T5C:b8Gj1svc$#$EVݼHײsR&B1"Q%OgN,9u *Q;d%ˣ4BǔG N 2wՋ#(&zIںf\~TeySö gsU'`pE/DG\:hE^#HtqLMh8-`N_[ n‘{G orz0*(R |EU;G D6Z\1_W"MhZ Hxx~H͉%H5BYz \ i]Is𹬪4 0 V"]{>kvKP_ō $yүh|b3}sK=B-aT#,<W@΢,a@I_ aɆq"e`*0d'}E+ZGs]4fO,_gn=6Ak3W?3HkIʲ^6 ~_VWDIƑWO7AUʬkbi"W@Ui#I'qI+,_^|3!Fl7[֮Pwױ$.7zh?d,e '/POPA(Pqy.2<hֺ rBP/8Fe4ZM͸oZp\7g21J;.dr7HSnR%'7E4,KEjzp*jG]ij֩vBlk|dBOL'=- KW1Ѩna * q~Ӗi+WYD+ƌ2ӌ nWgq *wFܥ;h R3|7جKRշTPJY1["nwʤn*4W^eR䡆::25ʄ ͨMr/Q>ģ_r%*Ο𣋯I(,x7-^@!Ԗ G@I/XB"pR,!JH*4p͡|otG-)bӬZ ! ׶*sF^0PRGޠ:˙&@곣 9eJN=q{j{ ~fdoB EE-ծ댧n-%wٙyU. J|އ{D=jrIfR嘤xDXc$*+[ad_!w-Pzc c$sb[bJz׈jax@R׀otɘ Ƃ|TϋBkgvU\"\e%|Gg 7+Ds}4rv~QJ~&rchE[:]uFQfKb&{W!F?]/NTT!b^*M@yֻU:MԓIyCt&zx&!i QP!C\D c(~LWm͝ k&+Iv,rM鍃^- $:X8>.Þk%s3ߓbT*oIriP} ;?]2h## W0K6b.GrDD ~5;up^ɅPT'W#iE4hq[05nS"1S57: ATv0˒C8p'.$SBZ|AZ's>N 0IS%@fӰkdr^+lTfW/Pv3\qGT8$[NWy^̬?Wv&8*G:y2} 3ƣWi*JDU.Pq%{Bbʫ,$@YP5Se[$UCuG!X *^r+R Q֗veb2΂LDm5UG[1gnW]lvn`sk]& %8/c;Db7Z)<&K5x;c/U4XP7+mUrp0G"s-]!^}'cF'6 gֵ nWy)Ke("ީd_ԝ`*|| XA_ki(:=26ǁ7լi0P)kk #^F(XF;45&ҫNrP'"dzNsq$!%ԉIs)\3Ԁ\!noF u#_IJbó EyͺkxFs[ӚT=x2 D>qlV:/8YHm[ޭEd}16Lңz:?|*}IJU2/DQ#)-Ħnn7/fR!!<lŧˆTebx@5J NȦeM0d&-/Rp#|MH3iv\u]2z\a\ʳth*[[.0X3Mͯg8D>/sp5M0lO9nH2SJ7e=yBz.O6&4r$~)غMG}CBø Y! Uc?QzZ=qH̀!UEh#" W!ml J.H :C/qIbݹECa:iaPE R|*FQ| C0dxwo5'mIu6r63SHD,M֓uvj׵1Mcr#0{p]X1Ŵ|mUVH#wPդ|OlAT5YɗVK: m_%k)δu`ծ^δ0()t@o [o ?ط=mR" r~ Uw}n >wȶ<a?F+h-ㅇe#,TIwE97^׳=Q4d1D6/P͌?yΈg.)E(S4ܰ?||h):tU$a܆btN^#? tM;N3KxL!CLxY33Wt> stream x\[s8~c|$wVɖh"KKeSyPl֎,y$9ןn@bϜS\BF HDZш0wQ)#f4E$e$%U y0#! ? T@ЈI|5h<(> @"&&h#mHD 64ij "b<FFLSaIhU"`AKL"#A:H(4$L Ch$GR' 2 H1DJX" i JQ]0h-JyV.Ќe"*BD"IH& E}EQ@K #IOHTEPo(E%$bv 8d H`@AExH#0@fP7wQ  p;] t4zd(2H g @& - rT@B` . aH(΀5 d Pa22֐XkĆ}pQ)ؑᰆb(J&H5uAo\.m XCsZ2VyF ,%dr/GCŝr='`(>Yo7Gb?ŗ6T7s1MBk'D_'(Djnav<#K(!SU$m"(LI(^P J[m P 7mHH#(zH`"i+[IE;RH[.61`/ jKxHv)iKPU m%tmP ҏ& %)Ն(B(76naPڌ ָeEdeM;b|\,>51 ن #X0Krk)ӲI=m|Lp*x^]OR01^OoJg̷';fT^B)ص3 xgx1(x؇8jA& ?|Y9^4F _7*?ۯGJVT^\f<i<4K{/Ҫ㩤U<%KCIc<fI袒YpVpxwUd w rOA{%aUD7K*h>OżXh/uPw}iɵ}fvh a/2{G D]E6!kw'"<;tz]pvgոӋ>In"qE[F-t2I8X,\p8Og| 4iFk$]L[(~⌀(zn}Lk8R>5[ֻ/at${:dkg8_V6"*~&Ə[L&'2} A0^tMJx2ǃh~ j Y<\&6]7׳)ra13u|YX1|r.]k~ϝccux2EgC0[Ke<pmzyaI׫j |3o˂G^C@<%MOFA5~'ag{``n|azfq6lo]ů>{xTcьh >hZD8w /]/[>윾T,SPz7S' '=eR[JOc*@ I]/fMbn6n[#lΖ׫6%MZpvX*,YZCكZР4 Eߚm|ev8 @^DrdTz=Cy7F~_k#"H}k!Nf~Y{UQ{"t~ܛ7[L4Hx0>l6O2o{buU5hU ,;?zb{UxM9#% Ю\LּKI7=Up˼vǡf5J<ċ$¾]-_% Wu7MIjK(w!*X] :g'2uȡ̓%pCļ-ӹ÷A ϧ5rОVda8 )X쳪QP{VVJ]ez{v}G؆"jruzz6)\p.ku&~jpV0&qE.44r/p-y|>?Ȟ \Zzt28i[Z.̪[2OE'.jq[Ϣ*,#~*C+ epAQP;4gikmk6^]3NF׭A3.;wLY. ҟ9ԪSi\بn`;@uiI4oVk2-OÖ5s׶"&h7蜗(L۸%;e}]t[םK?TޜzA;$$ rN [15&ɠF8NI= L< qb7@tJ4_(8ZUwj;#*Rypn-<| Hsop`~X|"Q7VD idlӇ F# RQq`TlDeny; zmXE箙&OYHRH"5!VPOvRQ-\i8#-nmUNinM&fNU%A($/X-A//WIoiL:^-ۿ߮/ԛcGٮzC}]3->1 ~II#i$Tz\m[ijH՞ya}1u-N32cMdmɍaBɋv& Z9[ܮWy\/a~ /"^0}e)fA!2#WV#U5NcSЕœ=4&=-(ݛ2GLjר{PBiLDYqlଉ+Dp)!\}Y6Em?$E%MXPEؙCkBe9=ŽIIad 6t;` Z2dQ0 I8S:c)GY'Pp}OWpIq g0r,1 )K <>ƎHIA(ŁD]Nc$VNb$t-Ǟ/GeZw>^I0f8ERз$H>Α^4%H:k}!Jq"%4B "fSǁyp<  ıCIa0L%S  Qr0-? g+dIxvEKW}j}$cqT^2 #*%Li +v`@]^R"Xz)JpR0@%YQ<+}>sw>Qr0jzIcWI> endobj 957 0 obj << /Type /ObjStm /N 69 /First 661 /Length 3020 /Filter /FlateDecode >> stream xڕZKo9W1^@qUd-`l6$ ExȒ!Ƀ*X6͏(Hb0ΚHy;`t чI|ge(t&zPBdeH%!v Ižɒh:{ml uG| :0tޘ0=g$u>x2Af|dSyL%?N~\⻐<"LЁMf)vVJD d)hY- rTx?xƨ!q!5(swd2K& Cvߤ6-i4ܩI8 z3{jv~q??^arnK{E#Ј؝![#a$hh mFh=#_fVe%evs,1'xdWB̋+4q`R}F] *b LS +J$ m)#J P dTa¶朆pSn  -j2,z{Bz B^C#AC<#!&1S13MjHbʽ #|N QeķU-$rxZdޫw*ĽA|T!7Z%uUw T~LϩS19w\y15Rcf^eƣҫ#GVXY+\R8\`vNRܷQi^CQ!&+ "vĪ/RMbD +d❨XF8FxFELdVi}̈v amMY m2ڀdυZdein dʔt6#uv.#J||Z'+<Q|Sى<<4Ztjcbyxzx<(1,5DdH9^}5.BZ} q(],3hc2ČBBH5I .cFPC`43b5$0Z}"T 1i|2 a`5C+NVR-^A2,!O^Cd4OVC؃e%$g<]~JRA9G41PvT$DB# e,_ARPbGA4Tf+QvQ⼉Vx*^c=Af+4Fj}l 2 D 1L0POA&@:K r6Jx9%Mr 2E@ Φ 9 ( 3(= JFATzLbJ썆XFĪY$ EdFe;29@&_T"bJTX̮$͠  bQITamJBkSC+g/+&14WbQ$X&`YQ3&1XIXED%ݏ2^C%0%rDlcl^VRMbɉrNBgQz2G%C2]S3rd/+1+Fa2Ur(3*NJbKA20j~Mb.:7ݐ̴qKMKܳcʩ p;\§2KONlFNZOU:ѽ⍥6 }phFi ;eݣc=y+] Ӓ?_J8գS%HDvGvi7!æ )y#~};[jyשc9/5XBw7N*vnx7?=zZGx1=PWn?UJ-/>ԝZK4Ϳ; =qO` @/vGZ]簝?%^ِOt!~ \jwFe[~[c&ڱ7߾/ŎVՏ+>V[qHm}Y.i5'roU>yTyGxLܖ׫q}?>|o?~7w>Fsb,uXR^, .o{ e aiPl+X}X.c,oE>3<*dkuuOsC%rcy.k!,O0t\aܭq^B:w6]8-|MUCe Re\(`q+Ēc PMΧF+8~2~^LnZO'0V9rKZ%(`?w|rY4*<1 %}’f`󞣾9=-J(GXcLS'V9drXxKY,[Gp<}M)s,+7/gBoy^ÏobɎz_z{7@iC)n撼[? 6fcm)|:^]ǧ͍777_ȁkɼ[H endstream endobj 1027 0 obj << /Type /XRef /Index [0 1028] /Size 1028 /W [1 3 1] /Root 1025 0 R /Info 1026 0 R /ID [<235BE354F8AE77F7D8885897607E484E> <235BE354F8AE77F7D8885897607E484E>] /Length 2261 /Filter /FlateDecode >> stream x%7%I7;ݬ}wv[;@@z Dr: $R d'*8K$S3u/]7Bn?k)>K#0m uN[S(=v 9VzY0c7=v;:\V|`ipy>eu1,>~CXph VX `=FXm`VX `Sf|d l}=t߷'~'C7mu?{B퉽Ў햎QC7vډmghf p.eW}kwm7F6mw܇cxO<^kxo]Qffc ɨ8glZ aA.%rP\Ʊz޻LoQHQHQHQHQHQ9q$7|'>NFMZ,R)EBНߎ|bxdrhhhhhh,Uҋ7@ ~d?ُf|ԗwfU}-IJJJJJ2X{rMUUU7MUvMSeQeQeQeQQQ+Cm{KIdA@e2XC!****ˣʢʢʢʢʢʢʢʢr^9Wk%yr^9ƹ_W+*:m޷'TWUWxG @QQQQQQQQQQQQQQ9 ?d `(z?f, s`.̃tۖ`,%r X `5ݰ0t?mo-06f0[aLv;a<~A82L}vhGpN8 r.%GNU/9\ ݏ&> 6܁px iWSQDQDQDQDQD9 (((((- B|嚰 ?MEEEEEEE E E E TWdQdQdQZ첃a' hױ]΁0i/ a,1Xa ,eVZXa6lcpNXOcl-$lvn{aCpXm\p N8  g;\p hEL%0Hkm܇cxO<^kxoAɖSa4 FAIIBr8J#Z{JJJ,SV:¼oSS :H:H:H:H:H:H:H:H:H:H:H:H:Hwn<;0h>ބ'YwQpA03 p6́v#;B BFp-!lk[uS= p<x 9 ^x ^z ]r7Badl- {z{DsX ퟓ/mee>iKBW~- !- AnK`Ӷ> -wҖ6і&W_e[KOhOhOT!'orDDQ=Q}+܅K}f+le2[lB ͼeMh6LYf+le2[Vf+l.2llB &4lB3Mh6لfMh6لfMh6لfMh6لfMh6Lh6لfMh6لfMh&>#;uv x; endstream endobj startxref 209488 %%EOF libidn-1.28/doc/reference/libidn.types0000644000000000000000000000000012167253754014630 00000000000000libidn-1.28/doc/reference/libidn-overrides.txt0000644000000000000000000000000012167245616016301 00000000000000libidn-1.28/doc/reference/html/0000755000000000000000000000000012167253754013337 500000000000000libidn-1.28/doc/reference/html/index.sgml0000644000000000000000000003251712167253754015262 00000000000000 libidn-1.28/doc/reference/html/home.png0000644000000000000000000000121612167253754014715 00000000000000PNG  IHDRw=bKGD pHYs  ~tIME1KvIDATxՕkq?rCp ~CnpCAAJ .B-\'G]:ܠC -(8 Ԁ!fDғklbRoyxwpðIJ<of_-@RHf֟t^ښ$Q|pgv;X^^&s(bwwZF9&3඙ ^IRZUE.0Z]]U PYM8HGIekqqҀ! $۬3n e{-/seeeÌXOͷ$8==USQRR'9-s+B^ Cەs+%<7W :2IENDB`libidn-1.28/doc/reference/html/intro.html0000644000000000000000000001143112167253754015300 00000000000000 GNU Libidn API Reference Manual

GNU Libidn API Reference Manual

GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries.

The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included.

The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call.

The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing.

Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included.

Also included is a command line tool, several self tests, code examples, and more.

The internal layout of the library, and how your application interact with the various parts of the library, are shown in Figure 1, “Components of Libidn”.

Figure 1. Components of Libidn

Components of Libidn

libidn-1.28/doc/reference/html/api-index-full.html0000644000000000000000000004411612167253754016771 00000000000000 API Index

API Index

stringprep, function in stringprep

4

stringprep_4i, function in stringprep
stringprep_4zi, function in stringprep

C

stringprep_check_version, function in stringprep
stringprep_convert, function in stringprep

I

IDNAPI, macro in tld
IDNA_ACE_PREFIX, macro in idna
Idna_flags, enum in idna
Idna_rc, enum in idna
idna_strerror, function in idna
idna_to_ascii_4i, function in idna
idna_to_ascii_4z, function in idna
idna_to_ascii_8z, function in idna
idna_to_ascii_lz, function in idna
idna_to_unicode_44i, function in idna
idna_to_unicode_4z4z, function in idna
idna_to_unicode_8z4z, function in idna
idna_to_unicode_8z8z, function in idna
idna_to_unicode_8zlz, function in idna
idna_to_unicode_lzlz, function in idna
stringprep_iscsi, macro in stringprep

K

stringprep_kerberos5, macro in stringprep

L

stringprep_locale_charset, function in stringprep
stringprep_locale_to_utf8, function in stringprep

M

STRINGPREP_MAX_MAP_CHARS, macro in stringprep

N

stringprep_nameprep, macro in stringprep
stringprep_nameprep_no_unassigned, macro in stringprep

P

stringprep_plain, macro in stringprep
pr29_4, function in pr29
pr29_4z, function in pr29
pr29_8z, function in pr29
Pr29_rc, enum in pr29
pr29_strerror, function in pr29
Stringprep_profile, typedef in stringprep
stringprep_profile, function in stringprep
Stringprep_profiles, typedef in stringprep
Stringprep_profile_flags, enum in stringprep
Stringprep_profile_steps, enum in stringprep
punycode_decode, function in punycode
punycode_encode, function in punycode
Punycode_status, enum in punycode
punycode_strerror, function in punycode
punycode_uint, typedef in punycode

R

Stringprep_rc, enum in stringprep

S

stringprep_strerror, function in stringprep

T

Stringprep_table_element, typedef in stringprep
tld_check_4, function in tld
tld_check_4t, function in tld
tld_check_4tz, function in tld
tld_check_4z, function in tld
tld_check_8z, function in tld
tld_check_lz, function in tld
tld_default_table, function in tld
tld_get_4, function in tld
tld_get_4z, function in tld
tld_get_table, function in tld
tld_get_z, function in tld
Tld_rc, enum in tld
tld_strerror, function in tld
Tld_table, typedef in tld
Tld_table_element, typedef in tld

U

stringprep_ucs4_nfkc_normalize, function in stringprep
stringprep_ucs4_to_utf8, function in stringprep
stringprep_unichar_to_utf8, function in stringprep
stringprep_utf8_nfkc_normalize, function in stringprep
stringprep_utf8_to_locale, function in stringprep
stringprep_utf8_to_ucs4, function in stringprep
stringprep_utf8_to_unichar, function in stringprep

V

STRINGPREP_VERSION, macro in stringprep

X

stringprep_xmpp_nodeprep, macro in stringprep
stringprep_xmpp_resourceprep, macro in stringprep
libidn-1.28/doc/reference/html/libidn-components.png0000644000000000000000000002255612167253754017423 00000000000000PNG  IHDR# 6iCCPdefault_rgb.iccxgP} tXz*eIK,K!b"4ER$VDY$(1ETP;}~=;眙@@ERR|?{NHh!n ( V}](1<X|^:_f ]VTR9 ,~HhrXq_}XQ_}X?@}Q( 1XAN$?bqspbc9*AL!-}?!.^F/{ ؾj]RT0 _3(H&%؂7@(lC !aA 샃P-.yxK:DED A.b8!D qH*#;Ar # db( e:rQ; @ףqh{*=vW(*D_ `T)as0,c[bkڱ^l 9#c88]%2p[q \w7}rx f|'~?O  JH$l&: ÄIH&HXD&$^"HT"ɈL # HVEiD%-h&rKC"/Q(+J%REi\SRTe9՗@NޠNP?i4Z8-vvNmat}/~A)'&-MVKdD5Pc1603;9QhVZsc bL1C1oRVb3Dquq'hBcW'S1w2טS,KJd~f %%%$r%j%.H[NfO?IKIHl\*$͑vN/-T'-+#sD̜,KR'[,{Z*-'Yܠ܂||U9BBEYEbb%ŗ 'S+)*e)5( )-)k(*(w(?UpUbU*TTUUTUTոjj5ԃwwhHiiiik5m4345kZIZj&ڵwtPS:ëWj\5KӵmӝcyuW߯? ٠aaFF¾}?Q.VW>y@WoVW:$VW\_3Zk_Q'Wnp#GK?M8QXMAM?qjii.i|<߉Vֲ6-mdɻ?;Ӯ(9N%=Ni?vY܅tm s?kޯ+ q"bŕKy._weocߓ!W]vvnX8[[ݷMow vf[P;=w8b3r];: ñ13yxqxSѧ5{Txaqb'Wd\[ìԍ-/BlUX8XsX6uc-\~櫜ie*ʟldV1V?E jUIW=Džzy2t*UMSMVjl{!>1TV^HzWscGS.Doρ:tu8#8@-> 9O‡<&904{6o&kmӔgqox w{!-PMVas(]AqGqGqGqGqGqGqGqGqGqGqGqn =**!Z>4rGz"Yz Y#q.͇HkZف~.4zM.vwht*[}sUfkMfP<œ}.c|U}9e_*YjG1WVh)s#8#8#릇>)ol=pOVuRUg^`zذNo:z^{gV4[Ȭ`[uܸBƗ67 Pg3[ Y}Y|cu\[OW}>%Zl(KV^HrTy9AwuYɁ^]ѫWfyjq~Snl i[v:Ay⣼jcϺOKիK^Ў8pꊪUf_{N*N# C!ɝ,rv Vv ,)Ot|Tj(@<]SkxW 1A#-V'.?`Ϯ$zlNN>eC)֓vʷ SXK[CYUo$gJqGqGqG1ofș|BUeMjלRB 7q[uU(\cʻwg!6H{8᷺V~\ṛ*{qGqGqGqGqGqGqGqGqGqGqGqGqGqGqG_b > #KuVi2|@G+txUTY󒟳 ֨ٵJ[p|\IuUڲ;.r}Z-6ׇ*.zLqGqGqGqGqGqGqGqG1 wWɷ >8^W!fd_Mhϭ*\U>~=&xqXB=&|EP[f8'|pi\k @G1jrnkJW@|@|@|@|@|@|@|@|\{f|\;6Ks%wj sŝf> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |]׍~U5^JZya Z|WEXf`\N\;hj;kac eh$\Ӕgyv>vJB'ݲ>k ]70۟gG > > > > > > ÅȈ3,Q<2O?]Hy.#'r2x,ꐖյn%[ u>L[̞$B-wPpˤu-a-G_=;WÅOgsmz(:!_ο+,vON'7K7)ח&5- t\)U&{l=ʭ]0rJLlC= K-VncH9]] K(mdZ|$zGqGqGqGqGqGq U!./]~oc<@c|@GURh6GQ| 1> GqU9A q8#-0> *c|@qhqUcqCq*jp"G=c9tu{yG#GQ[9 > |4Bqt8Z|@n?=~xuf_}kOgٯ!n;.{՝6mhq11121 ;78nqtu8nRh/8{Q{KXN`fC+̴-Vxҏ&>3\ǼOb].cyWiލW\εeZ3.tEOX+VqxnhuoAu‡%{Աr3lp!CbۆfrDZhHu{YUiB\1> 1> 1[] @c|@-> q8e3>|-Mm|/?Ea,f/,ٯg_]{74`N"IENDB`PNG  IHDR# 6iCCPdefault_rgb.iccxgP} tXz*eIK,K!b"4ER$VDY$(1ETP;}~=;眙@@ERR|?{NHh!n ( V}](1<X|^:_f ]VTR9 ,~HhrXq_}XQ_}X?@}Q( 1XAN$?bqspbc9*AL!-}?!.^F/{ ؾj]RT0 _3(H&%؂7@(lC !aA 샃P-.yxK:DED A.b8!D qH*#;Ar # db( e:rQ; @ףqh{*=vW(*D_ `T)as0,c[bkڱ^l 9#c88]%2p[q \w7}rx f|'~?O  JH$l&: ÄIH&HXD&$^"HT"ɈL # HVEiD%-h&rKC"/Q(+J%REi\SRTe9՗@NޠNP?i4Z8-vvNmat}/~A)'&-MVKdD5Pc1603;9QhVZsc bL1C1oRVb3Dquq'hBcW'S1w2טS,KJd~f %%%$r%j%.H[NfO?IKIHl\*$͑vN/-T'-+#sD̜,KR'[,{Z*-'Yܠ܂||U9BBEYEbb%ŗ 'S+)*e)5( )-)k(*(w(?UpUbU*TTUUTUTոjj5ԃwwhHiiiik5m4345kZIZj&ڵwtPS:ëWj\5KӵmӝcyuW߯? ٠aaFF¾}?Q.VW>y@WoVW:$VW\_3Zk_Q'Wnp#GK?M8QXMAM?qjii.i|<߉Vֲ6-mdɻ?;Ӯ(9N%=Ni?vY܅tm s?kޯ+ q"bŕKy._weocߓ!W]vvnX8[[ݷMow vf[P;=w8b3r];: ñ13yxqxSѧ5{Txaqb'Wd r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> r1> LʷIENDB`libidn-1.28/doc/reference/html/up.png0000644000000000000000000000062612167253754014415 00000000000000PNG  IHDRw=bKGD pHYs  ~tIME2.E#IDATx=J@Fo] !+2[Z<@/9|t$D9nnBjBRIsI:H8UPN1fcsN95M㧖ɵ 束1~pEe$I 7nrDf!;`'ykI䲤sI_]y^^I>O>?YBIENDB`libidn-1.28/doc/reference/html/left.png0000644000000000000000000000071312167253754014720 00000000000000PNG  IHDRw=bKGD pHYs  ~tIME1&[(XIDATx!OPE*ID%~ꊯ"p'ŏ`sܖrKf hmiIz}ܯI.p\`x l?l[,Hk<#c%\AUx[S7n6rzEs1j@NL$ݤi0 5/}\EKIo͓$a0jdFbkIAh>WlC'?tk;|/t*INZ^`y4Nr]׮ J<ڐt`X1@p䀸dZ')hK $V?%]+LsgUK"w53OIENDB`libidn-1.28/doc/reference/html/style.css0000644000000000000000000001210012167253754015123 00000000000000.synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; border: solid 1px #d3d7cf; padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ background: #e6f3ff; border: solid 1px #729fcf; padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } @media screen { sup a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 3.2em; padding-bottom: 20em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; /* tango:scarlet red 0/1 */ background: #ffe6e6; border: solid 1px #ef2929; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; z-index: 10; } .navigation a, .navigation a:visited { /* tango:scarlet red 3 */ color: #a40000; } .navigation a:hover { /* tango:scarlet red 1 */ color: #ef2929; } td.shortcuts { /* tango:scarlet red 1 */ color: #ef2929; font-size: 80%; white-space: nowrap; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; /* tango:scarlet red 0/1 */ background: #ffe6e6; border: solid 1px #ef2929; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } .navigation .title { font-size: 200%; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } hr { /* tango:aluminium 3 */ color: #babdb6; background: #babdb6; border: none 0px; height: 1px; clear: both; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .warning { /* tango:orange 0/1 */ background: #ffeed9; border-color: #ffb04f; } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; border-color: #abf562; } .note, .warning { padding: 0.5em; border-width: 1px; border-style: solid; } .note h3, .warning h3 { margin-top: 0.0em } .note p, .warning p { margin-bottom: 0.0em } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-size: 80%; font-weight: normal; } /* code listings */ .listing_code .programlisting .cbracket { color: #a40000; } /* tango: scarlet red 3 */ .listing_code .programlisting .comment { color: #a1a39d; } /* tango: aluminium 4 */ .listing_code .programlisting .function { color: #000000; font-weight: bold; } .listing_code .programlisting .function a { color: #11326b; font-weight: bold; } /* tango: sky blue 4 */ .listing_code .programlisting .keyword { color: #4e9a06; } /* tango: chameleon 3 */ .listing_code .programlisting .linenum { color: #babdb6; } /* tango: aluminium 3 */ .listing_code .programlisting .normal { color: #000000; } .listing_code .programlisting .number { color: #75507b; } /* tango: plum 2 */ .listing_code .programlisting .preproc { color: #204a87; } /* tango: sky blue 3 */ .listing_code .programlisting .string { color: #c17d11; } /* tango: chocolate 2 */ .listing_code .programlisting .type { color: #000000; } .listing_code .programlisting .type a { color: #11326b; } /* tango: sky blue 4 */ .listing_code .programlisting .symbol { color: #ce5c00; } /* tango: orange 3 */ .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; } .listing_lines pre, .listing_code pre { margin: 0px; } libidn-1.28/doc/reference/html/index.html0000644000000000000000000000421412167253754015255 00000000000000 GNU Libidn API Reference Manual

for GNU Libidn 1.28 . The latest version of this documentation can be found on-line at https://www.gnu.org/software/libidn/reference/.


libidn-1.28/doc/reference/html/libidn.devhelp20000644000000000000000000003370312167253754016161 00000000000000 libidn-1.28/doc/reference/html/libidn-punycode.html0000644000000000000000000004067212167253754017243 00000000000000 punycode

punycode

punycode

Synopsis

#define             IDNAPI
enum                Punycode_status;
int                 punycode_decode                     (size_t input_length,
                                                         const char input[],
                                                         size_t *output_length,
                                                         punycode_uint output[],
                                                         unsigned char case_flags[]);
int                 punycode_encode                     (size_t input_length,
                                                         const punycode_uint input[],
                                                         const unsigned char case_flags[],
                                                         size_t *output_length,
                                                         char output[]);
const char *        punycode_strerror                   (Punycode_status rc);
typedef             punycode_uint;

Description

Details

IDNAPI

#define             IDNAPI


enum Punycode_status

typedef enum {
    PUNYCODE_SUCCESS = punycode_success,
    PUNYCODE_BAD_INPUT = punycode_bad_input,
    PUNYCODE_BIG_OUTPUT = punycode_big_output,
    PUNYCODE_OVERFLOW = punycode_overflow
} Punycode_status;

Enumerated return codes of punycode_encode() and punycode_decode(). The value 0 is guaranteed to always correspond to success.

PUNYCODE_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

PUNYCODE_BAD_INPUT

Input is invalid.

PUNYCODE_BIG_OUTPUT

Output would exceed the space provided.

PUNYCODE_OVERFLOW

Input needs wider integers to process.

punycode_decode ()

int                 punycode_decode                     (size_t input_length,
                                                         const char input[],
                                                         size_t *output_length,
                                                         punycode_uint output[],
                                                         unsigned char case_flags[]);

Converts Punycode to a sequence of code points (presumed to be Unicode code points).

input_length :

The number of ASCII code points in the input array.

input :

An array of ASCII code points (0..7F).

output_length :

The caller passes in the maximum number of code points that it can receive into the output array (which is also the maximum number of flags that it can receive into the case_flags array, if case_flags is not a NULL pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied output_length is greater than that.

output :

An array of code points like the input argument of punycode_encode() (see above).

case_flags :

A NULL pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the output array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless.

Returns :

The return value can be any of the Punycode_status values defined above. If not PUNYCODE_SUCCESS, then output_length, output, and case_flags might contain garbage.

punycode_encode ()

int                 punycode_encode                     (size_t input_length,
                                                         const punycode_uint input[],
                                                         const unsigned char case_flags[],
                                                         size_t *output_length,
                                                         char output[]);

Converts a sequence of code points (presumed to be Unicode code points) to Punycode.

input_length :

The number of code points in the input array and the number of flags in the case_flags array.

input :

An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values.

case_flags :

A NULL pointer or an array of boolean values parallel to the input array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If case_flags is a NULL pointer then ASCII letters are left as they are, and other code points are treated as unflagged.

output_length :

The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output.

output :

An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the input contains zeros. (Of course the caller can leave room for a terminator and add one if needed.)

Returns :

The return value can be any of the Punycode_status values defined above except PUNYCODE_BAD_INPUT. If not PUNYCODE_SUCCESS, then output_size and output might contain garbage.

punycode_strerror ()

const char *        punycode_strerror                   (Punycode_status rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

PUNYCODE_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. PUNYCODE_BAD_INPUT: Input is invalid. PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. PUNYCODE_OVERFLOW: Input needs wider integers to process.

rc :

an Punycode_status return code.

Returns :

Returns a pointer to a statically allocated string containing a description of the error with the return code rc.

punycode_uint

  typedef uint32_t punycode_uint;

Unicode code point data type, this is always a 32 bit unsigned integer.

libidn-1.28/doc/reference/html/right.png0000644000000000000000000000073012167253754015102 00000000000000PNG  IHDRw=bKGD pHYs  ~tIME2 I%=eIDATx!o@.'**M0$$?1~vIeEuLl&4䝠Bݛ|>$ݶoc tld

tld

tld

Synopsis

#define             IDNAPI
enum                Tld_rc;
typedef             Tld_table;
typedef             Tld_table_element;
int                 tld_check_4                         (const uint32_t *in,
                                                         size_t inlen,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);
int                 tld_check_4t                        (const uint32_t *in,
                                                         size_t inlen,
                                                         size_t *errpos,
                                                         const Tld_table *tld);
int                 tld_check_4tz                       (const uint32_t *in,
                                                         size_t *errpos,
                                                         const Tld_table *tld);
int                 tld_check_4z                        (const uint32_t *in,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);
int                 tld_check_8z                        (const char *in,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);
int                 tld_check_lz                        (const char *in,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);
const Tld_table *   tld_default_table                   (const char *tld,
                                                         const Tld_table **overrides);
int                 tld_get_4                           (const uint32_t *in,
                                                         size_t inlen,
                                                         char **out);
int                 tld_get_4z                          (const uint32_t *in,
                                                         char **out);
const Tld_table *   tld_get_table                       (const char *tld,
                                                         const Tld_table **tables);
int                 tld_get_z                           (const char *in,
                                                         char **out);
const char *        tld_strerror                        (Tld_rc rc);

Description

Details

IDNAPI

#define             IDNAPI


enum Tld_rc

typedef enum {
    TLD_SUCCESS = 0,
    TLD_INVALID = 1,		/* Invalid character found. */
    TLD_NODATA = 2,		/* Char, domain or inlen = 0. */
    TLD_MALLOC_ERROR = 3,
    TLD_ICONV_ERROR = 4,
    TLD_NO_TLD = 5,
    /* Workaround typo in earlier versions. */
    TLD_NOTLD = TLD_NO_TLD
} Tld_rc;

Enumerated return codes of the TLD checking functions. The value 0 is guaranteed to always correspond to success.

TLD_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

TLD_INVALID

Invalid character found.

TLD_NODATA

No input data was provided.

TLD_MALLOC_ERROR

Error during memory allocation.

TLD_ICONV_ERROR

Error during iconv string conversion.

TLD_NO_TLD

No top-level domain found in domain string.

TLD_NOTLD

Same as TLD_NO_TLD, for compatibility with typo in earlier versions.

Tld_table

  typedef struct Tld_table Tld_table;


Tld_table_element

  typedef struct Tld_table_element Tld_table_element;


tld_check_4 ()

int                 tld_check_4                         (const uint32_t *in,
                                                         size_t inlen,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);

Test each of the code points in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos.

in :

Array of unicode code points to process. Does not need to be zero terminated.

inlen :

Number of unicode code points.

errpos :

Position of offending character is returned here.

overrides :

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Returns :

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

tld_check_4t ()

int                 tld_check_4t                        (const uint32_t *in,
                                                         size_t inlen,
                                                         size_t *errpos,
                                                         const Tld_table *tld);

Test each of the code points in in for whether or not they are allowed by the data structure in tld, return the position of the first character for which this is not the case in errpos.

in :

Array of unicode code points to process. Does not need to be zero terminated.

inlen :

Number of unicode code points.

errpos :

Position of offending character is returned here.

tld :

A Tld_table data structure representing the restrictions for which the input should be tested.

Returns :

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

tld_check_4tz ()

int                 tld_check_4tz                       (const uint32_t *in,
                                                         size_t *errpos,
                                                         const Tld_table *tld);

Test each of the code points in in for whether or not they are allowed by the data structure in tld, return the position of the first character for which this is not the case in errpos.

in :

Zero terminated array of unicode code points to process.

errpos :

Position of offending character is returned here.

tld :

A Tld_table data structure representing the restrictions for which the input should be tested.

Returns :

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

tld_check_4z ()

int                 tld_check_4z                        (const uint32_t *in,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);

Test each of the code points in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos.

in :

Zero-terminated array of unicode code points to process.

errpos :

Position of offending character is returned here.

overrides :

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Returns :

Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

tld_check_8z ()

int                 tld_check_8z                        (const char *in,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);

Test each of the characters in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos. Note that the error position refers to the decoded character offset rather than the byte position in the string.

in :

Zero-terminated UTF8 string to process.

errpos :

Position of offending character is returned here.

overrides :

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Returns :

Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

tld_check_lz ()

int                 tld_check_lz                        (const char *in,
                                                         size_t *errpos,
                                                         const Tld_table **overrides);

Test each of the characters in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos. Note that the error position refers to the decoded character offset rather than the byte position in the string.

in :

Zero-terminated string in the current locales encoding to process.

errpos :

Position of offending character is returned here.

overrides :

A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

Returns :

Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

tld_default_table ()

const Tld_table *   tld_default_table                   (const char *tld,
                                                         const Tld_table **overrides);

Get the TLD table for a named TLD, using the internal defaults, possibly overrided by the (optional) supplied tables.

tld :

TLD name (e.g. "com") as zero terminated ASCII byte string.

overrides :

Additional zero terminated array of Tld_table info-structures for TLDs, or NULL to only use library deault tables.

Returns :

Return structure corresponding to TLD tld_str, first looking through overrides then thru built-in list, or NULL if no such structure found.

tld_get_4 ()

int                 tld_get_4                           (const uint32_t *in,
                                                         size_t inlen,
                                                         char **out);

Isolate the top-level domain of in and return it as an ASCII string in out.

in :

Array of unicode code points to process. Does not need to be zero terminated.

inlen :

Number of unicode code points.

out :

Zero terminated ascii result string pointer.

Returns :

Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

tld_get_4z ()

int                 tld_get_4z                          (const uint32_t *in,
                                                         char **out);

Isolate the top-level domain of in and return it as an ASCII string in out.

in :

Zero terminated array of unicode code points to process.

out :

Zero terminated ascii result string pointer.

Returns :

Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

tld_get_table ()

const Tld_table *   tld_get_table                       (const char *tld,
                                                         const Tld_table **tables);

Get the TLD table for a named TLD by searching through the given TLD table array.

tld :

TLD name (e.g. "com") as zero terminated ASCII byte string.

tables :

Zero terminated array of Tld_table info-structures for TLDs.

Returns :

Return structure corresponding to TLD tld by going thru tables, or return NULL if no such structure is found.

tld_get_z ()

int                 tld_get_z                           (const char *in,
                                                         char **out);

Isolate the top-level domain of in and return it as an ASCII string in out. The input string in may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding.

in :

Zero terminated character array to process.

out :

Zero terminated ascii result string pointer.

Returns :

Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

tld_strerror ()

const char *        tld_strerror                        (Tld_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

TLD_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. TLD_INVALID: Invalid character found. TLD_NODATA: No input data was provided. TLD_MALLOC_ERROR: Error during memory allocation. TLD_ICONV_ERROR: Error during iconv string conversion. TLD_NO_TLD: No top-level domain found in domain string.

rc :

tld return code

Returns :

Returns a pointer to a statically allocated string containing a description of the error with the return code rc.
libidn-1.28/doc/reference/html/libidn-pr29.html0000644000000000000000000002611312167253754016203 00000000000000 pr29

pr29

pr29

Synopsis

#define             IDNAPI
enum                Pr29_rc;
int                 pr29_4                              (const uint32_t *in,
                                                         size_t len);
int                 pr29_4z                             (const uint32_t *in);
int                 pr29_8z                             (const char *in);
const char *        pr29_strerror                       (Pr29_rc rc);

Description

Details

IDNAPI

#define             IDNAPI


enum Pr29_rc

typedef enum {
    PR29_SUCCESS = 0,
    PR29_PROBLEM = 1,		/* String is a problem sequence. */
    PR29_STRINGPREP_ERROR = 2 /* Charset conversion failed (p29_8*). */
} Pr29_rc;

Enumerated return codes for pr29_4(), pr29_4z(), pr29_8z(). The value 0 is guaranteed to always correspond to success.

PR29_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

PR29_PROBLEM

A problem sequence was encountered.

PR29_STRINGPREP_ERROR

The character set conversion failed (only for pr29_8z()).

pr29_4 ()

int                 pr29_4                              (const uint32_t *in,
                                                         size_t len);

Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

in :

input array with unicode code points.

len :

length of input array with unicode code points.

Returns :

Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations).

pr29_4z ()

int                 pr29_4z                             (const uint32_t *in);

Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

in :

zero terminated array of Unicode code points.

Returns :

Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations).

pr29_8z ()

int                 pr29_8z                             (const char *in);

Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

in :

zero terminated input UTF-8 string.

Returns :

Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or PR29_STRINGPREP_ERROR if there was a problem converting the string from UTF-8 to UCS-4.

pr29_strerror ()

const char *        pr29_strerror                       (Pr29_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

PR29_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. PR29_PROBLEM: A problem sequence was encountered. PR29_STRINGPREP_ERROR: The character set conversion failed (only for pr29_8z()).

rc :

an Pr29_rc return code.

Returns :

Returns a pointer to a statically allocated string containing a description of the error with the return code rc.
libidn-1.28/doc/reference/html/libidn-idn-free.html0000644000000000000000000000502312167253754017075 00000000000000 idn-free

idn-free

idn-free

Synopsis

#define             IDNAPI

Description

Details

IDNAPI

#define             IDNAPI

libidn-1.28/doc/reference/html/libidn-idna.html0000644000000000000000000011453212167253754016325 00000000000000 idna

idna

idna

Synopsis

#define             IDNAPI
#define             IDNA_ACE_PREFIX
enum                Idna_flags;
enum                Idna_rc;
const char *        idna_strerror                       (Idna_rc rc);
int                 idna_to_ascii_4i                    (const uint32_t *in,
                                                         size_t inlen,
                                                         char *out,
                                                         int flags);
int                 idna_to_ascii_4z                    (const uint32_t *input,
                                                         char **output,
                                                         int flags);
int                 idna_to_ascii_8z                    (const char *input,
                                                         char **output,
                                                         int flags);
int                 idna_to_ascii_lz                    (const char *input,
                                                         char **output,
                                                         int flags);
int                 idna_to_unicode_44i                 (const uint32_t *in,
                                                         size_t inlen,
                                                         uint32_t *out,
                                                         size_t *outlen,
                                                         int flags);
int                 idna_to_unicode_4z4z                (const uint32_t *input,
                                                         uint32_t **output,
                                                         int flags);
int                 idna_to_unicode_8z4z                (const char *input,
                                                         uint32_t **output,
                                                         int flags);
int                 idna_to_unicode_8z8z                (const char *input,
                                                         char **output,
                                                         int flags);
int                 idna_to_unicode_8zlz                (const char *input,
                                                         char **output,
                                                         int flags);
int                 idna_to_unicode_lzlz                (const char *input,
                                                         char **output,
                                                         int flags);

Description

Details

IDNAPI

#define             IDNAPI


IDNA_ACE_PREFIX

#  define IDNA_ACE_PREFIX "xn--"

The IANA allocated prefix to use for IDNA. "xn--"


enum Idna_flags

typedef enum {
    IDNA_ALLOW_UNASSIGNED = 0x0001,
    IDNA_USE_STD3_ASCII_RULES = 0x0002
} Idna_flags;

Flags to pass to idna_to_ascii_4i(), idna_to_unicode_44i() etc.

IDNA_ALLOW_UNASSIGNED

Don't reject strings containing unassigned Unicode code points.

IDNA_USE_STD3_ASCII_RULES

Validate strings according to STD3 rules (i.e., normal host name rules).

enum Idna_rc

typedef enum {
    IDNA_SUCCESS = 0,
    IDNA_STRINGPREP_ERROR = 1,
    IDNA_PUNYCODE_ERROR = 2,
    IDNA_CONTAINS_NON_LDH = 3,
    /* Workaround typo in earlier versions. */
    IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH,
    IDNA_CONTAINS_MINUS = 4,
    IDNA_INVALID_LENGTH = 5,
    IDNA_NO_ACE_PREFIX = 6,
    IDNA_ROUNDTRIP_VERIFY_ERROR = 7,
    IDNA_CONTAINS_ACE_PREFIX = 8,
    IDNA_ICONV_ERROR = 9,
    /* Internal errors. */
    IDNA_MALLOC_ERROR = 201,
    IDNA_DLOPEN_ERROR = 202
} Idna_rc;

Enumerated return codes of idna_to_ascii_4i(), idna_to_unicode_44i() functions (and functions derived from those functions). The value 0 is guaranteed to always correspond to success.

IDNA_SUCCESS

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

IDNA_STRINGPREP_ERROR

Error during string preparation.

IDNA_PUNYCODE_ERROR

Error during punycode operation.

IDNA_CONTAINS_NON_LDH

For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters.

IDNA_CONTAINS_LDH

Same as IDNA_CONTAINS_NON_LDH, for compatibility with typo in earlier versions.

IDNA_CONTAINS_MINUS

For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D).

IDNA_INVALID_LENGTH

The final output string is not within the (inclusive) range 1 to 63 characters.

IDNA_NO_ACE_PREFIX

The string does not contain the ACE prefix (for ToUnicode).

IDNA_ROUNDTRIP_VERIFY_ERROR

The ToASCII operation on output string does not equal the input.

IDNA_CONTAINS_ACE_PREFIX

The input contains the ACE prefix (for ToASCII).

IDNA_ICONV_ERROR

Could not convert string in locale encoding.

IDNA_MALLOC_ERROR

Could not allocate buffer (this is typically a fatal error).

IDNA_DLOPEN_ERROR

Could not dlopen the libcidn DSO (only used internally in libc).

idna_strerror ()

const char *        idna_strerror                       (Idna_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

IDNA_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. IDNA_STRINGPREP_ERROR: Error during string preparation. IDNA_PUNYCODE_ERROR: Error during punycode operation. IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters. IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D). IDNA_INVALID_LENGTH: The final output string is not within the (inclusive) range 1 to 63 characters. IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix (for ToUnicode). IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output string does not equal the input. IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for ToASCII). IDNA_ICONV_ERROR: Could not convert string in locale encoding. IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a fatal error). IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used internally in libc).

rc :

an Idna_rc return code.

Returns :

Returns a pointer to a statically allocated string containing a description of the error with the return code rc.

idna_to_ascii_4i ()

int                 idna_to_ascii_4i                    (const uint32_t *in,
                                                         size_t inlen,
                                                         char *out,
                                                         int flags);

The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels.

It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific.

The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition.

ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once.

in :

input array with unicode code points.

inlen :

length of input array with unicode code points.

out :

output zero terminated string that must have room for at least 63 characters plus the terminating zero.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns 0 on success, or an Idna_rc error code.

idna_to_ascii_4z ()

int                 idna_to_ascii_4z                    (const uint32_t *input,
                                                         char **output,
                                                         int flags);

Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero terminated input Unicode string.

output :

pointer to newly allocated output string.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.

idna_to_ascii_8z ()

int                 idna_to_ascii_8z                    (const char *input,
                                                         char **output,
                                                         int flags);

Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero terminated input UTF-8 string.

output :

pointer to newly allocated output string.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.

idna_to_ascii_lz ()

int                 idna_to_ascii_lz                    (const char *input,
                                                         char **output,
                                                         int flags);

Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero terminated input string encoded in the current locale's character set.

output :

pointer to newly allocated output string.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.

idna_to_unicode_44i ()

int                 idna_to_unicode_44i                 (const uint32_t *in,
                                                         size_t inlen,
                                                         uint32_t *out,
                                                         size_t *outlen,
                                                         int flags);

The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered.

ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step.

The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used.

The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points.

in :

input array with unicode code points.

inlen :

length of input array with unicode code points.

out :

output array with unicode code points.

outlen :

on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns Idna_rc error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard.

idna_to_unicode_4z4z ()

int                 idna_to_unicode_4z4z                (const uint32_t *input,
                                                         uint32_t **output,
                                                         int flags);

Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero-terminated Unicode string.

output :

pointer to newly allocated output Unicode string.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.

idna_to_unicode_8z4z ()

int                 idna_to_unicode_8z4z                (const char *input,
                                                         uint32_t **output,
                                                         int flags);

Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero-terminated UTF-8 string.

output :

pointer to newly allocated output Unicode string.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.

idna_to_unicode_8z8z ()

int                 idna_to_unicode_8z8z                (const char *input,
                                                         char **output,
                                                         int flags);

Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero-terminated UTF-8 string.

output :

pointer to newly allocated output UTF-8 string.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.

idna_to_unicode_8zlz ()

int                 idna_to_unicode_8zlz                (const char *input,
                                                         char **output,
                                                         int flags);

Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero-terminated UTF-8 string.

output :

pointer to newly allocated output string encoded in the current locale's character set.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.

idna_to_unicode_lzlz ()

int                 idna_to_unicode_lzlz                (const char *input,
                                                         char **output,
                                                         int flags);

Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

input :

zero-terminated string encoded in the current locale's character set.

output :

pointer to newly allocated output string encoded in the current locale's character set.

flags :

an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

Returns :

Returns IDNA_SUCCESS on success, or error code.
libidn-1.28/doc/reference/html/libidn-stringprep.html0000644000000000000000000016637412167253754017622 00000000000000 stringprep

stringprep

stringprep

Synopsis

#define             IDNAPI
#define             STRINGPREP_MAX_MAP_CHARS
#define             STRINGPREP_VERSION
typedef             Stringprep_profile;
enum                Stringprep_profile_flags;
enum                Stringprep_profile_steps;
typedef             Stringprep_profiles;
enum                Stringprep_rc;
typedef             Stringprep_table_element;
int                 stringprep                          (char *in,
                                                         size_t maxlen,
                                                         Stringprep_profile_flags flags,
                                                         const Stringprep_profile *profile);
int                 stringprep_4i                       (uint32_t *ucs4,
                                                         size_t *len,
                                                         size_t maxucs4len,
                                                         Stringprep_profile_flags flags,
                                                         const Stringprep_profile *profile);
int                 stringprep_4zi                      (uint32_t *ucs4,
                                                         size_t maxucs4len,
                                                         Stringprep_profile_flags flags,
                                                         const Stringprep_profile *profile);
const char *        stringprep_check_version            (const char *req_version);
char *              stringprep_convert                  (const char *str,
                                                         const char *to_codeset,
                                                         const char *from_codeset);
#define             stringprep_iscsi                    (in,
                                                         maxlen)
#define             stringprep_kerberos5                (in,
                                                         maxlen)
const char *        stringprep_locale_charset           (void);
char *              stringprep_locale_to_utf8           (const char *str);
#define             stringprep_nameprep                 (in,
                                                         maxlen)
#define             stringprep_nameprep_no_unassigned   (in,
                                                         maxlen)
#define             stringprep_plain                    (in,
                                                         maxlen)
int                 stringprep_profile                  (const char *in,
                                                         char **out,
                                                         const char *profile,
                                                         Stringprep_profile_flags flags);
const char *        stringprep_strerror                 (Stringprep_rc rc);
uint32_t *          stringprep_ucs4_nfkc_normalize      (const uint32_t *str,
                                                         ssize_t len);
char *              stringprep_ucs4_to_utf8             (const uint32_t *str,
                                                         ssize_t len,
                                                         size_t *items_read,
                                                         size_t *items_written);
int                 stringprep_unichar_to_utf8          (uint32_t c,
                                                         char *outbuf);
char *              stringprep_utf8_nfkc_normalize      (const char *str,
                                                         ssize_t len);
char *              stringprep_utf8_to_locale           (const char *str);
uint32_t *          stringprep_utf8_to_ucs4             (const char *str,
                                                         ssize_t len,
                                                         size_t *items_written);
uint32_t            stringprep_utf8_to_unichar          (const char *p);
#define             stringprep_xmpp_nodeprep            (in,
                                                         maxlen)
#define             stringprep_xmpp_resourceprep        (in,
                                                         maxlen)

Description

Details

IDNAPI

#define             IDNAPI


STRINGPREP_MAX_MAP_CHARS

# define STRINGPREP_MAX_MAP_CHARS 4

Maximum number of code points that can replace a single code point, during stringprep mapping.


STRINGPREP_VERSION

# define STRINGPREP_VERSION "1.28"

String defined via CPP denoting the header file version number. Used together with stringprep_check_version() to verify header file and run-time library consistency.


Stringprep_profile

  typedef struct Stringprep_table Stringprep_profile;


enum Stringprep_profile_flags

typedef enum {
    STRINGPREP_NO_NFKC = 1,
    STRINGPREP_NO_BIDI = 2,
    STRINGPREP_NO_UNASSIGNED = 4
} Stringprep_profile_flags;

Stringprep profile flags.

STRINGPREP_NO_NFKC

Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations.

STRINGPREP_NO_BIDI

Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations.

STRINGPREP_NO_UNASSIGNED

Make the library return with an error if string contains unassigned characters according to profile.

enum Stringprep_profile_steps

typedef enum {
    STRINGPREP_NFKC = 1,
    STRINGPREP_BIDI = 2,
    STRINGPREP_MAP_TABLE = 3,
    STRINGPREP_UNASSIGNED_TABLE = 4,
    STRINGPREP_PROHIBIT_TABLE = 5,
    STRINGPREP_BIDI_PROHIBIT_TABLE = 6,
    STRINGPREP_BIDI_RAL_TABLE = 7,
    STRINGPREP_BIDI_L_TABLE = 8
} Stringprep_profile_steps;

Various steps in the stringprep algorithm. You really want to study the source code to understand this one. Only useful if you want to add another profile.

STRINGPREP_NFKC

The NFKC step.

STRINGPREP_BIDI

The BIDI step.

STRINGPREP_MAP_TABLE

The MAP step.

STRINGPREP_UNASSIGNED_TABLE

The Unassigned step.

STRINGPREP_PROHIBIT_TABLE

The Prohibited step.

STRINGPREP_BIDI_PROHIBIT_TABLE

The BIDI-Prohibited step.

STRINGPREP_BIDI_RAL_TABLE

The BIDI-RAL step.

STRINGPREP_BIDI_L_TABLE

The BIDI-L step.

Stringprep_profiles

  typedef struct Stringprep_profiles Stringprep_profiles;


enum Stringprep_rc

typedef enum {
    STRINGPREP_OK = 0,
    /* Stringprep errors. */
    STRINGPREP_CONTAINS_UNASSIGNED = 1,
    STRINGPREP_CONTAINS_PROHIBITED = 2,
    STRINGPREP_BIDI_BOTH_L_AND_RAL = 3,
    STRINGPREP_BIDI_LEADTRAIL_NOT_RAL = 4,
    STRINGPREP_BIDI_CONTAINS_PROHIBITED = 5,
    /* Error in calling application. */
    STRINGPREP_TOO_SMALL_BUFFER = 100,
    STRINGPREP_PROFILE_ERROR = 101,
    STRINGPREP_FLAG_ERROR = 102,
    STRINGPREP_UNKNOWN_PROFILE = 103,
    /* Internal errors. */
    STRINGPREP_NFKC_FAILED = 200,
    STRINGPREP_MALLOC_ERROR = 201
} Stringprep_rc;

Enumerated return codes of stringprep(), stringprep_profile() functions (and macros using those functions). The value 0 is guaranteed to always correspond to success.

STRINGPREP_OK

Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

STRINGPREP_CONTAINS_UNASSIGNED

String contain unassigned Unicode code points, which is forbidden by the profile.

STRINGPREP_CONTAINS_PROHIBITED

String contain code points prohibited by the profile.

STRINGPREP_BIDI_BOTH_L_AND_RAL

String contain code points with conflicting bidirection category.

STRINGPREP_BIDI_LEADTRAIL_NOT_RAL

Leading and trailing character in string not of proper bidirectional category.

STRINGPREP_BIDI_CONTAINS_PROHIBITED

Contains prohibited code points detected by bidirectional code.

STRINGPREP_TOO_SMALL_BUFFER

Buffer handed to function was too small. This usually indicate a problem in the calling application.

STRINGPREP_PROFILE_ERROR

The stringprep profile was inconsistent. This usually indicate an internal error in the library.

STRINGPREP_FLAG_ERROR

The supplied flag conflicted with profile. This usually indicate a problem in the calling application.

STRINGPREP_UNKNOWN_PROFILE

The supplied profile name was not known to the library.

STRINGPREP_NFKC_FAILED

The Unicode NFKC operation failed. This usually indicate an internal error in the library.

STRINGPREP_MALLOC_ERROR

The malloc() was out of memory. This is usually a fatal error.

Stringprep_table_element

  typedef struct Stringprep_table_element Stringprep_table_element;


stringprep ()

int                 stringprep                          (char *in,
                                                         size_t maxlen,
                                                         Stringprep_profile_flags flags,
                                                         const Stringprep_profile *profile);

Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string.

Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see stringprep_locale_to_utf8().

Since the stringprep operation can expand the string, maxlen indicate how large the buffer holding the string is. This function will not read or write to characters outside that size.

The flags are one of Stringprep_profile_flags values, or 0.

The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

in :

input/ouput array with string to prepare.

maxlen :

maximum length of input/output array.

flags :

a Stringprep_profile_flags value, or 0.

profile :

pointer to Stringprep_profile to use.

Returns :

Returns STRINGPREP_OK iff successful, or an error code.

stringprep_4i ()

int                 stringprep_4i                       (uint32_t *ucs4,
                                                         size_t *len,
                                                         size_t maxucs4len,
                                                         Stringprep_profile_flags flags,
                                                         const Stringprep_profile *profile);

Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string.

The input is not required to be zero terminated (ucs4[len] = 0). The output will not be zero terminated unless ucs4[len] = 0. Instead, see stringprep_4zi() if your input is zero terminated or if you want the output to be.

Since the stringprep operation can expand the string, maxucs4len indicate how large the buffer holding the string is. This function will not read or write to code points outside that size.

The flags are one of Stringprep_profile_flags values, or 0.

The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

ucs4 :

input/output array with string to prepare.

len :

on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points.

maxucs4len :

maximum length of input/output array.

flags :

a Stringprep_profile_flags value, or 0.

profile :

pointer to Stringprep_profile to use.

Returns :

Returns STRINGPREP_OK iff successful, or an Stringprep_rc error code.

stringprep_4zi ()

int                 stringprep_4zi                      (uint32_t *ucs4,
                                                         size_t maxucs4len,
                                                         Stringprep_profile_flags flags,
                                                         const Stringprep_profile *profile);

Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string.

Since the stringprep operation can expand the string, maxucs4len indicate how large the buffer holding the string is. This function will not read or write to code points outside that size.

The flags are one of Stringprep_profile_flags values, or 0.

The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

ucs4 :

input/output array with zero terminated string to prepare.

maxucs4len :

maximum length of input/output array.

flags :

a Stringprep_profile_flags value, or 0.

profile :

pointer to Stringprep_profile to use.

Returns :

Returns STRINGPREP_OK iff successful, or an Stringprep_rc error code.

stringprep_check_version ()

const char *        stringprep_check_version            (const char *req_version);

Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned.

See STRINGPREP_VERSION for a suitable req_version string.

req_version :

Required version number, or NULL.

Returns :

Version string of run-time library, or NULL if the run-time library does not meet the required version number.

stringprep_convert ()

char *              stringprep_convert                  (const char *str,
                                                         const char *to_codeset,
                                                         const char *from_codeset);

Convert the string from one character set to another using the system's iconv() function.

str :

input zero-terminated string.

to_codeset :

name of destination character set.

from_codeset :

name of origin character set, as used by str.

Returns :

Returns newly allocated zero-terminated string which is str transcoded into to_codeset.

stringprep_iscsi()

#define             stringprep_iscsi(in, maxlen)

Prepare the input UTF-8 string according to the draft iSCSI stringprep profile. Returns 0 iff successful, or an error code.

in :

input/ouput array with string to prepare.

maxlen :

maximum length of input/output array.

stringprep_kerberos5()

#define             stringprep_kerberos5(in, maxlen)


stringprep_locale_charset ()

const char *        stringprep_locale_charset           (void);

Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything.

Note that this function return the application's locale's preferred charset (or thread's locale's preffered charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding.

Returns :

Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback.

stringprep_locale_to_utf8 ()

char *              stringprep_locale_to_utf8           (const char *str);

Convert string encoded in the locale's character set into UTF-8 by using stringprep_convert().

str :

input zero terminated string.

Returns :

Returns newly allocated zero-terminated string which is str transcoded into UTF-8.

stringprep_nameprep()

#define             stringprep_nameprep(in, maxlen)

Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is true, use stringprep_nameprep_no_unassigned() if you want a false AllowUnassigned. Returns 0 iff successful, or an error code.

in :

input/ouput array with string to prepare.

maxlen :

maximum length of input/output array.

stringprep_nameprep_no_unassigned()

#define             stringprep_nameprep_no_unassigned(in, maxlen)

Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is false, use stringprep_nameprep() for true AllowUnassigned. Returns 0 iff successful, or an error code.

in :

input/ouput array with string to prepare.

maxlen :

maximum length of input/output array.

stringprep_plain()

#define             stringprep_plain(in, maxlen)

Prepare the input UTF-8 string according to the draft SASL ANONYMOUS profile. Returns 0 iff successful, or an error code.

in :

input/ouput array with string to prepare.

maxlen :

maximum length of input/output array.

stringprep_profile ()

int                 stringprep_profile                  (const char *in,
                                                         char **out,
                                                         const char *profile,
                                                         Stringprep_profile_flags flags);

Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable.

Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see stringprep_locale_to_utf8().

The output out variable must be deallocated by the caller.

The flags are one of Stringprep_profile_flags values, or 0.

The profile specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles.

in :

input array with UTF-8 string to prepare.

out :

output variable with pointer to newly allocate string.

profile :

name of stringprep profile to use.

flags :

a Stringprep_profile_flags value, or 0.

Returns :

Returns STRINGPREP_OK iff successful, or an error code.

stringprep_strerror ()

const char *        stringprep_strerror                 (Stringprep_rc rc);

Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

STRINGPREP_OK: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode code points, which is forbidden by the profile. STRINGPREP_CONTAINS_PROHIBITED: String contain code points prohibited by the profile. STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with conflicting bidirection category. STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character in string not of proper bidirectional category. STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code points detected by bidirectional code. STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too small. This usually indicate a problem in the calling application. STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. This usually indicate an internal error in the library. STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. This usually indicate a problem in the calling application. STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not known to the library. STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This usually indicate an internal error in the library. STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is usually a fatal error.

rc :

a Stringprep_rc return code.

Returns :

Returns a pointer to a statically allocated string containing a description of the error with the return code rc.

stringprep_ucs4_nfkc_normalize ()

uint32_t *          stringprep_ucs4_nfkc_normalize      (const uint32_t *str,
                                                         ssize_t len);

Converts a UCS4 string into canonical form, see stringprep_utf8_nfkc_normalize() for more information.

str :

a Unicode string.

len :

length of str array, or -1 if str is nul-terminated.

Returns :

a newly allocated Unicode string, that is the NFKC normalized form of str.

stringprep_ucs4_to_utf8 ()

char *              stringprep_ucs4_to_utf8             (const uint32_t *str,
                                                         ssize_t len,
                                                         size_t *items_read,
                                                         size_t *items_written);

Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte.

str :

a UCS-4 encoded string

len :

the maximum length of str to use. If len < 0, then the string is terminated with a 0 character.

items_read :

location to store number of characters read read, or NULL.

items_written :

location to store number of bytes written or NULL. The value here stored does not include the trailing 0 byte.

Returns :

a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, NULL will be returned.

stringprep_unichar_to_utf8 ()

int                 stringprep_unichar_to_utf8          (uint32_t c,
                                                         char *outbuf);

Converts a single character to UTF-8.

c :

a ISO10646 character code

outbuf :

output buffer, must have at least 6 bytes of space. If NULL, the length will be computed and returned and nothing will be written to outbuf.

Returns :

number of bytes written.

stringprep_utf8_nfkc_normalize ()

char *              stringprep_utf8_nfkc_normalize      (const char *str,
                                                         ssize_t len);

Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character.

The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form.

str :

a UTF-8 encoded string.

len :

length of str, in bytes, or -1 if str is nul-terminated.

Returns :

a newly allocated string, that is the NFKC normalized form of str.

stringprep_utf8_to_locale ()

char *              stringprep_utf8_to_locale           (const char *str);

Convert string encoded in UTF-8 into the locale's character set by using stringprep_convert().

str :

input zero terminated string.

Returns :

Returns newly allocated zero-terminated string which is str transcoded into the locale's character set.

stringprep_utf8_to_ucs4 ()

uint32_t *          stringprep_utf8_to_ucs4             (const char *str,
                                                         ssize_t len,
                                                         size_t *items_written);

Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4, assuming valid UTF-8 input. This function does no error checking on the input.

str :

a UTF-8 encoded string

len :

the maximum length of str to use. If len < 0, then the string is nul-terminated.

items_written :

location to store the number of characters in the result, or NULL.

Returns :

a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller.

stringprep_utf8_to_unichar ()

uint32_t            stringprep_utf8_to_unichar          (const char *p);

Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If p does not point to a valid UTF-8 encoded character, results are undefined.

p :

a pointer to Unicode character encoded as UTF-8

Returns :

the resulting character.

stringprep_xmpp_nodeprep()

#define             stringprep_xmpp_nodeprep(in, maxlen)

Prepare the input UTF-8 string according to the draft XMPP node identifier profile. Returns 0 iff successful, or an error code.

in :

input/ouput array with string to prepare.

maxlen :

maximum length of input/output array.

stringprep_xmpp_resourceprep()

#define             stringprep_xmpp_resourceprep(in, maxlen)

Prepare the input UTF-8 string according to the draft XMPP resource identifier profile. Returns 0 iff successful, or an error code.

in :

input/ouput array with string to prepare.

maxlen :

maximum length of input/output array.
libidn-1.28/doc/reference/Makefile.am0000664000000000000000000000707711746453142014357 00000000000000## Process this file with automake to produce Makefile.in # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # This is a blank Makefile.am for using gtk-doc. # Copy this to your project's API docs directory and modify the variables to # suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples # of using the various options. # The name of the module, e.g. 'glib'. DOC_MODULE=$(PACKAGE) # Uncomment for versioned docs and specify the version of the module, e.g. '2'. #DOC_MODULE_VERSION=2 # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml # Directories containing the source code. # gtk-doc will search all .c and .h files beneath these paths # for inline comments documenting functions and macros. # e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk DOC_SOURCE_DIR=$(top_srcdir)/lib # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS= # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS=--ignore-decorators=IDNAPI # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--xml-mode --output-format=xml MKDB_OPTIONS=--xml-mode --output-format=xml # Extra options to supply to gtkdoc-mktmpl # e.g. MKTMPL_OPTIONS=--only-section-tmpl MKTMPL_OPTIONS= # Extra options to supply to gtkdoc-mkhtml MKHTML_OPTIONS= # Extra options to supply to gtkdoc-fixref. Not normally needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS= # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c HFILE_GLOB=$(top_srcdir)/lib/*.h CFILE_GLOB=$(top_srcdir)/lib/*.c # Extra header to include when scanning, which are not under DOC_SOURCE_DIR # e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h EXTRA_HFILES= # Header files or dirs to ignore when scanning. Use base file/dir names # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code IGNORE_HFILES=gunibreak.h gunicomp.h gunidecomp.h idn-int.h gl gltests # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES=../libidn-components.png # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files= # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files= # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS= GTKDOC_LIBS= # This includes the standard gtk-doc make rules, copied by gtkdocize. include $(top_srcdir)/gtk-doc.make # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST += # Files not to distribute # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types # for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt #DISTCLEANFILES += # Comment this out if you want 'make check' to test you doc status # and run some sanity checks if ENABLE_GTK_DOC TESTS_ENVIRONMENT = cd $(srcdir) && \ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) #TESTS = $(GTKDOC_CHECK) endif -include $(top_srcdir)/git.mk libidn-1.28/doc/reference/version.xml.in0000664000000000000000000000001211746453142015115 00000000000000@VERSION@ libidn-1.28/doc/reference/libidn-sections.txt0000644000000000000000000000301712167253754016143 00000000000000
idn-free IDNAPI
idna IDNAPI IDNA_ACE_PREFIX Idna_flags Idna_rc idna_strerror idna_to_ascii_4i idna_to_ascii_4z idna_to_ascii_8z idna_to_ascii_lz idna_to_unicode_44i idna_to_unicode_4z4z idna_to_unicode_8z4z idna_to_unicode_8z8z idna_to_unicode_8zlz idna_to_unicode_lzlz
pr29 IDNAPI Pr29_rc pr29_4 pr29_4z pr29_8z pr29_strerror
punycode IDNAPI Punycode_status punycode_decode punycode_encode punycode_strerror punycode_uint
stringprep IDNAPI STRINGPREP_MAX_MAP_CHARS STRINGPREP_VERSION Stringprep_profile Stringprep_profile_flags Stringprep_profile_steps Stringprep_profiles Stringprep_rc Stringprep_table_element stringprep stringprep_4i stringprep_4zi stringprep_check_version stringprep_convert stringprep_iscsi stringprep_kerberos5 stringprep_locale_charset stringprep_locale_to_utf8 stringprep_nameprep stringprep_nameprep_no_unassigned stringprep_plain stringprep_profile stringprep_strerror stringprep_ucs4_nfkc_normalize stringprep_ucs4_to_utf8 stringprep_unichar_to_utf8 stringprep_utf8_nfkc_normalize stringprep_utf8_to_locale stringprep_utf8_to_ucs4 stringprep_utf8_to_unichar stringprep_xmpp_nodeprep stringprep_xmpp_resourceprep
tld IDNAPI Tld_rc Tld_table Tld_table_element tld_check_4 tld_check_4t tld_check_4tz tld_check_4z tld_check_8z tld_check_lz tld_default_table tld_get_4 tld_get_4z tld_get_table tld_get_z tld_strerror
libidn-1.28/doc/reference/Makefile.in0000644000000000000000000015133212167244660014361 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # -*- mode: makefile -*- #################################### # Everything below here is generic # #################################### VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ DIST_COMMON = $(top_srcdir)/gtk-doc.make $(srcdir)/Makefile.in \ $(srcdir)/Makefile.am $(srcdir)/version.xml.in subdir = doc/reference ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = version.xml CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ # We require automake 1.6 at least. AUTOMAKE_OPTIONS = 1.6 # This is a blank Makefile.am for using gtk-doc. # Copy this to your project's API docs directory and modify the variables to # suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples # of using the various options. # The name of the module, e.g. 'glib'. DOC_MODULE = $(PACKAGE) # Uncomment for versioned docs and specify the version of the module, e.g. '2'. #DOC_MODULE_VERSION=2 # The top-level SGML file. You can change this if you want to. DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml # Directories containing the source code. # gtk-doc will search all .c and .h files beneath these paths # for inline comments documenting functions and macros. # e.g. DOC_SOURCE_DIR=$(top_srcdir)/gtk $(top_srcdir)/gdk DOC_SOURCE_DIR = $(top_srcdir)/lib # Extra options to pass to gtkdoc-scangobj. Not normally needed. SCANGOBJ_OPTIONS = # Extra options to supply to gtkdoc-scan. # e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED" SCAN_OPTIONS = --ignore-decorators=IDNAPI # Extra options to supply to gtkdoc-mkdb. # e.g. MKDB_OPTIONS=--xml-mode --output-format=xml MKDB_OPTIONS = --xml-mode --output-format=xml # Extra options to supply to gtkdoc-mktmpl # e.g. MKTMPL_OPTIONS=--only-section-tmpl MKTMPL_OPTIONS = # Extra options to supply to gtkdoc-mkhtml MKHTML_OPTIONS = # Extra options to supply to gtkdoc-fixref. Not normally needed. # e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html FIXXREF_OPTIONS = # Used for dependencies. The docs will be rebuilt if any of these change. # e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h # e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c HFILE_GLOB = $(top_srcdir)/lib/*.h CFILE_GLOB = $(top_srcdir)/lib/*.c # Extra header to include when scanning, which are not under DOC_SOURCE_DIR # e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h EXTRA_HFILES = # Header files or dirs to ignore when scanning. Use base file/dir names # e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code IGNORE_HFILES = gunibreak.h gunicomp.h gunidecomp.h idn-int.h gl gltests # Images to copy into HTML directory. # e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png HTML_IMAGES = ../libidn-components.png # Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). # e.g. content_files=running.sgml building.sgml changes-2.0.sgml content_files = # SGML files where gtk-doc abbrevations (#GtkWidget) are expanded # These files must be listed here *and* in content_files # e.g. expand_content_files=running.sgml expand_content_files = # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. # Only needed if you are using gtkdoc-scangobj to dynamically query widget # signals and properties. # e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS) # e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib) GTKDOC_CFLAGS = GTKDOC_LIBS = @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) @GTK_DOC_USE_LIBTOOL_FALSE@GTKDOC_RUN = @GTK_DOC_USE_LIBTOOL_TRUE@GTKDOC_RUN = $(LIBTOOL) --mode=execute # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt # This includes the standard gtk-doc make rules, copied by gtkdocize. # Other files to distribute # e.g. EXTRA_DIST += version.xml.in EXTRA_DIST = $(HTML_IMAGES) $(SETUP_FILES) DOC_STAMPS = setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ tmpl.stamp sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) @ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_FALSE@HTML_BUILD_STAMP = @ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_HTML_TRUE@HTML_BUILD_STAMP = html-build.stamp @ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_FALSE@PDF_BUILD_STAMP = @ENABLE_GTK_DOC_TRUE@@GTK_DOC_BUILD_PDF_TRUE@PDF_BUILD_STAMP = pdf-build.stamp # Files not to distribute # for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types # for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt #DISTCLEANFILES += # Comment this out if you want 'make check' to test you doc status # and run some sanity checks @ENABLE_GTK_DOC_TRUE@TESTS_ENVIRONMENT = cd $(srcdir) && \ @ENABLE_GTK_DOC_TRUE@ DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \ @ENABLE_GTK_DOC_TRUE@ SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/gtk-doc.make $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/reference/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/reference/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_srcdir)/gtk-doc.make: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): version.xml: $(top_builddir)/config.status $(srcdir)/version.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-hook check-am: all-am check: check-am all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-local dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic \ maintainer-clean-local mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool clean-local cscopelist-am ctags-am dist-hook \ distclean distclean-generic distclean-libtool distclean-local \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ maintainer-clean-local mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am uninstall-local @ENABLE_GTK_DOC_TRUE@all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) @ENABLE_GTK_DOC_FALSE@all-local: docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp #### setup #### setup-build.stamp: -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ echo ' DOC Preparing build'; \ files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ test -f $(abs_srcdir)/$$file && \ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \ done; \ fi; \ test -d $(abs_srcdir)/tmpl && \ { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \ chmod -R u+w $(abs_builddir)/tmpl; } \ fi @touch setup-build.stamp #### scan #### scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) @echo ' DOC Scanning header files' @_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ echo " DOC Introspecting gobjects"; \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$(?)" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi @touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### templates #### tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt @echo ' DOC Rebuilding template files' @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ if test -w $(abs_srcdir) ; then \ cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ fi \ fi @touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true $(srcdir)/tmpl/*.sgml: @true #### xml #### sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) @echo ' DOC Building XML' @-chmod -R u+w $(srcdir) @_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true #### html #### html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo ' DOC Building HTML' @rm -rf html @mkdir html @mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$(?)" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$(?)" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; @echo ' DOC Fixing cross-references' @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) @touch html-build.stamp #### pdf #### pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo ' DOC Building PDF' @rm -f $(DOC_MODULE).pdf @mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$(?)" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) @touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ rm -rf tmpl; \ fi maintainer-clean-local: clean @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # @ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: @ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: @ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" @ENABLE_GTK_DOC_FALSE@ @false dist-hook: dist-check-gtkdoc dist-hook-local @mkdir $(distdir)/tmpl @mkdir $(distdir)/html @-cp ./tmpl/*.sgml $(distdir)/tmpl @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs #TESTS = $(GTKDOC_CHECK) -include $(top_srcdir)/git.mk # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/doc/reference/tmpl/0000755000000000000000000000000012167253754013347 500000000000000libidn-1.28/doc/reference/tmpl/idn-free.sgml0000644000000000000000000000053712167253754015651 00000000000000 idn-free libidn-1.28/doc/reference/tmpl/stringprep.sgml0000644000000000000000000000735612167253754016363 00000000000000 stringprep @STRINGPREP_NO_NFKC: @STRINGPREP_NO_BIDI: @STRINGPREP_NO_UNASSIGNED: @STRINGPREP_NFKC: @STRINGPREP_BIDI: @STRINGPREP_MAP_TABLE: @STRINGPREP_UNASSIGNED_TABLE: @STRINGPREP_PROHIBIT_TABLE: @STRINGPREP_BIDI_PROHIBIT_TABLE: @STRINGPREP_BIDI_RAL_TABLE: @STRINGPREP_BIDI_L_TABLE: @STRINGPREP_OK: @STRINGPREP_CONTAINS_UNASSIGNED: @STRINGPREP_CONTAINS_PROHIBITED: @STRINGPREP_BIDI_BOTH_L_AND_RAL: @STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: @STRINGPREP_BIDI_CONTAINS_PROHIBITED: @STRINGPREP_TOO_SMALL_BUFFER: @STRINGPREP_PROFILE_ERROR: @STRINGPREP_FLAG_ERROR: @STRINGPREP_UNKNOWN_PROFILE: @STRINGPREP_NFKC_FAILED: @STRINGPREP_MALLOC_ERROR: @in: @maxlen: @flags: @profile: @Returns: @ucs4: @len: @maxucs4len: @flags: @profile: @Returns: @ucs4: @maxucs4len: @flags: @profile: @Returns: @req_version: @Returns: @str: @to_codeset: @from_codeset: @Returns: @in: @maxlen: @in: @maxlen: @void: @Returns: @str: @Returns: @in: @maxlen: @in: @maxlen: @in: @maxlen: @in: @out: @profile: @flags: @Returns: @rc: @Returns: @str: @len: @Returns: @str: @len: @items_read: @items_written: @Returns: @c: @outbuf: @Returns: @str: @len: @Returns: @str: @Returns: @str: @len: @items_written: @Returns: @p: @Returns: @in: @maxlen: @in: @maxlen: libidn-1.28/doc/reference/tmpl/pr29.sgml0000644000000000000000000000137412167253754014754 00000000000000 pr29 @PR29_SUCCESS: @PR29_PROBLEM: @PR29_STRINGPREP_ERROR: @in: @len: @Returns: @in: @Returns: @in: @Returns: @rc: @Returns: libidn-1.28/doc/reference/tmpl/punycode.sgml0000644000000000000000000000163612167253754016007 00000000000000 punycode @PUNYCODE_SUCCESS: @PUNYCODE_BAD_INPUT: @PUNYCODE_BIG_OUTPUT: @PUNYCODE_OVERFLOW: @input_length: @input: @output_length: @output: @case_flags: @Returns: @input_length: @input: @case_flags: @output_length: @output: @Returns: @rc: @Returns: libidn-1.28/doc/reference/tmpl/idna.sgml0000644000000000000000000000376612167253754015102 00000000000000 idna @IDNA_ALLOW_UNASSIGNED: @IDNA_USE_STD3_ASCII_RULES: @IDNA_SUCCESS: @IDNA_STRINGPREP_ERROR: @IDNA_PUNYCODE_ERROR: @IDNA_CONTAINS_NON_LDH: @IDNA_CONTAINS_LDH: @IDNA_CONTAINS_MINUS: @IDNA_INVALID_LENGTH: @IDNA_NO_ACE_PREFIX: @IDNA_ROUNDTRIP_VERIFY_ERROR: @IDNA_CONTAINS_ACE_PREFIX: @IDNA_ICONV_ERROR: @IDNA_MALLOC_ERROR: @IDNA_DLOPEN_ERROR: @rc: @Returns: @in: @inlen: @out: @flags: @Returns: @input: @output: @flags: @Returns: @input: @output: @flags: @Returns: @input: @output: @flags: @Returns: @in: @inlen: @out: @outlen: @flags: @Returns: @input: @output: @flags: @Returns: @input: @output: @flags: @Returns: @input: @output: @flags: @Returns: @input: @output: @flags: @Returns: @input: @output: @flags: @Returns: libidn-1.28/doc/reference/tmpl/tld.sgml0000644000000000000000000000335612167253754014745 00000000000000 tld @TLD_SUCCESS: @TLD_INVALID: @TLD_NODATA: @TLD_MALLOC_ERROR: @TLD_ICONV_ERROR: @TLD_NO_TLD: @TLD_NOTLD: @in: @inlen: @errpos: @overrides: @Returns: @in: @inlen: @errpos: @tld: @Returns: @in: @errpos: @tld: @Returns: @in: @errpos: @overrides: @Returns: @in: @errpos: @overrides: @Returns: @in: @errpos: @overrides: @Returns: @tld: @overrides: @Returns: @in: @inlen: @out: @Returns: @in: @out: @Returns: @tld: @tables: @Returns: @in: @out: @Returns: @rc: @Returns: libidn-1.28/doc/reference/tmpl/libidn-unused.sgml0000644000000000000000000000000012167253754016703 00000000000000libidn-1.28/doc/libidn-components.pdf0000644000000000000000000002175112167245614014476 00000000000000%PDF-1.4 %쏢 5 0 obj <> stream xZMm@?JAnFJV6>UdUӤ#07dkϻVfGUކ[}f+UyBN|DmTɨbv0Ja$zL6V]LF˻RaGF A+>&G&sfVlۿXw.R꺘Q+_PFs*jD]l0cMIq2&8r6X!i@wsc RqӖU|Q!mI#mBl+]#*qHbcʙAwnFt!&kĬ8Ois.)Hga.RoHHi34cabyb1y66{UDTH]l܄r%ya/*F\I Έaf|Ѡ75eP x*1ig󰔈`"ŌR0&RqYG*dR &aNBIridu* * 4:"t5giXm @KpTi7u+a&Cfh A5 ۍWtCسӀ4&ύYM*-vx40 t@pYAN ?$rU$`V ` .]([fksLN[pZ8kË=i7B4@@s4g1HsFj7u>CwAkOt9#?F2<`8tC\4wPĄf(]I0_AƻƇ3ˑonf*30`윌9 BrnŦ UTxՙdvHJԗ,kcm }YP|t8i°&z†,0gkpv&9FkSQ63+D8ߏ\5wZ ggّkEc /iKX!¹@dK]>xzL2;2тַ2uU |8#=b`Zfb{aܓCkO2"̾+eS ΀$+U͑iZ"t;Ņ3:?j 3^Sֵҥq1 H$:SOYF*/ܜf&JF),4%@_!cm؈!nC_3ȑǍL]u-`1/"hC;MpJ}?r5{BQ땳3ȑ)ǽ(3VX0Tg\.K5j \xq12nXUZRI*&ę۽ZH0¥mfkwS#Rj^yѦǣCRH3c.muC.{`DgAֵZ#?eC*'u-FZco I;=}X:=aZr`Dg1?өWۘBnd@P b=8% E =iQ[c j]ȸ"f n"fJ2XV$bU,bOć!N<4]3饪MWZ#)Է+YGTk4QƬʻb+gٙ#5&J'M?[XVrqYPdܤS\"m VCtԵ`HsיcȊRT}d ,˛`Z14yj) !b6!2"$фژlD]DHe&1Q7NcꮮI~w4rDNΛwju~F;rrrOc#יccbx+S(uH7Ӿy [_W[O€cyOO?}}Yq5ݟᆵXB;U~7F_qIIwOOo~k2q3 @УA0?ݢb{g,)NjONo}coR (z_?~xM _%l> /Contents 5 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R ] /Count 1 >> endobj 1 0 obj <> endobj 7 0 obj <>endobj 12 0 obj <> endobj 13 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 9 0 obj <> endobj 14 0 obj <>stream xUU TSG!{(BII(cD7<AQ!$PVVjb <(+XA ^AO39̙;37([E+WT^6+8G'sOڸcgvGUkeNRQjekj*U.ȕ)Ҕim 2SNVeggz|}|/嚀8fw~,Q͕ejEMRF%kmvDN^~B^LHW%nRk(jOQ ZH%RIT2ISKTur*ZOST,GrQ4*QfN^﵍MM=!vme[ TPJ;+.z&V=a-dHT5bO)'Fy$Ѕ"the^w %?XƌZ$BPfG8kdc#N OBE@4!@> oCsqtKkq>\bw  a Y"-  %eu ]I`ޓgM쉑X z<*uR|wC[D׆@9HbХ)i5Ēz7)κ(ϩRZ걧^iqgh#PG_OjC,N!"lT*2EiPJ87VHE: O=5Z#6&Lx?1. H -HH\MSb a =$qDڃI`f,Z :~Oe+MB3?0Д{ OaU[ q"5=4H8"2X)yža816ĩ5#KQ\}(LŝI'jogígDK>$5Sӂ|}tq ŇEG[U')eHr?̎'F=bZR (SJ<ގXQWo{;j;KDmɟvA'Y($'[V޻uΕJ/O4TZ fZԴ p\ٔh(p?"Z-.$ -^{ |ifS?>_^| c:sG羨;[uVov3s/8^~}υpN- '!e [++v)"iNOq!zȈO8c6(0,`4k!SDmvƈT վZ-kE%Ԛr{ 9Ogt$6Dr` &󥢒Эv CJ[n0'Y㞁8p%#ңo.\jeEOެG;Ŋw&)iϦiwOpDM!zG! f#48瞯›d2qΆMsqxcw"s|o$#m{6Tup %hem]]1VH:8Fs{KSz'ד?L|fC`OO${I0p <8mkJ 8hNHw Wk!Z^KFbo?Za? hX endstream endobj 11 0 obj <> endobj 15 0 obj <>stream xUL[U*+e+2c*Bf[4rl8EƦ0F YQ 23=%tkD#/1K sq9]}wrν9{8Q!]-Ζu+ đ*HdT:[,֫^sQx +Hq=^w:Ĵgdl/'JfB{SObr9DKkmz!~\,v>EL+H_dGI,yRQ_!/Vb-8+DE( YQ>*@@NġX6 a31 sTUjB H!ҀH-z9>AM-cbи˖*G([MY4Zl2y ,yOO.IStD&ĿrKf&t~\ns ȥl`F̅Kl5Ϩv]FG2f/߃[7Ny> K J h!@;軴w+_xc9R$s 8#n>v7ha$<`Fի4:5͐͆..aW%z>?~u oMviW]u<7`:7 g }927`@T3T*_:0AC[%x/;+t0 @ ´4]\zeQqkSKwM~W~V?O we Q戙G5d$k>stream 2013-07-10T13:54:52+02:00 2013-07-10T13:54:52+02:00 fig2dev Version 3.2 Patchlevel 5d components.fig endstream endobj 2 0 obj <>endobj xref 0 17 0000000000 65535 f 0000002417 00000 n 0000008510 00000 n 0000002358 00000 n 0000002207 00000 n 0000000015 00000 n 0000002187 00000 n 0000002482 00000 n 0000002594 00000 n 0000003277 00000 n 0000002913 00000 n 0000005716 00000 n 0000002523 00000 n 0000002553 00000 n 0000003555 00000 n 0000005976 00000 n 0000007068 00000 n trailer << /Size 17 /Root 1 0 R /Info 2 0 R /ID [<8C784311ECA7E4508AD38B3F723CB9ED><8C784311ECA7E4508AD38B3F723CB9ED>] >> startxref 8700 %%EOF libidn-1.28/doc/gdoc.mk0000644000000000000000000000513112153706572011616 00000000000000# -*- makefile -*- # Copyright (C) 2002-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . BUILT_SOURCES = Makefile.gdoc Makefile.gdoc: $(top_builddir)/configure Makefile.am gdoc.mk $(GDOC_SRC) echo '# This file is automatically generated. DO NOT EDIT! -*- makefile -*-' > Makefile.gdoc echo >> Makefile.gdoc echo 'gdoc_TEXINFOS =' >> Makefile.gdoc echo 'gdoc_MANS =' >> Makefile.gdoc echo >> Makefile.gdoc for file in $(GDOC_SRC); do \ shortfile=`basename $$file`; \ echo "#" >> Makefile.gdoc; \ echo "### $$shortfile" >> Makefile.gdoc; \ echo "#" >> Makefile.gdoc; \ echo "gdoc_TEXINFOS += $(GDOC_TEXI_PREFIX)$$shortfile.texi" >> Makefile.gdoc; \ echo "$(GDOC_TEXI_PREFIX)$$shortfile.texi: $$file" >> Makefile.gdoc; \ echo 'TABmkdir -p `dirname $$@`' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo 'TAB$$(PERL) $(GDOC_BIN) -texinfo $$(GDOC_TEXI_EXTRA_ARGS) $$< > $$@' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo >> Makefile.gdoc; \ functions=`$(PERL) $(srcdir)/gdoc -listfunc $$file`; \ for function in $$functions; do \ echo "# $$shortfile: $$function" >> Makefile.gdoc; \ echo "gdoc_TEXINFOS += $(GDOC_TEXI_PREFIX)$$function.texi" >> Makefile.gdoc; \ echo "$(GDOC_TEXI_PREFIX)$$function.texi: $$file" >> Makefile.gdoc; \ echo 'TABmkdir -p `dirname $$@`' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo 'TAB$$(PERL) $(GDOC_BIN) -texinfo $$(GDOC_TEXI_EXTRA_ARGS) -function'" $$function"' $$< > $$@' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo >> Makefile.gdoc; \ echo "gdoc_MANS += $(GDOC_MAN_PREFIX)$$function.3" >> Makefile.gdoc; \ echo "$(GDOC_MAN_PREFIX)$$function.3: $$file" >> Makefile.gdoc; \ echo 'TABmkdir -p `dirname $$@`' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo 'TAB$$(PERL) $(GDOC_BIN) -man $$(GDOC_MAN_EXTRA_ARGS) -function'" $$function"' $$< > $$@' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo >> Makefile.gdoc; \ done; \ echo >> Makefile.gdoc; \ done $(MAKE) Makefile include Makefile.gdoc libidn-1.28/doc/libidn.pdf0000644000000000000000000133756412167253753012333 00000000000000%PDF-1.5 % 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xmTM@+z&?tBL$d4*.<_fW_wիrc;`GUOV&ʮ[v6W7TvbuYt/N.5=S> stream xmTM@+z&?tBL0d4*.<̿~UfW_uvc;Z̫MfG} I]/ޭmޯo⣩0^'^x]fkn{EK{*ʇupg6;ލ$4;gZ8, M[TPRJGeWxmE7 "/7j;{Yʋ"1tm|oirI ɑc׺>[TқEnn#bBSEV嶭mzsg)gR133w xAb;aGL6K&0+}&"?(Ҧa/ c,!-f3*Ix {asIC%hS7}H=ŤIY(jŧ Z4{SO5Z ekxvKǬ@2a> stream xmSn0+$z"aKU^CvF^p=!94gB˥0pދ s#P~k@hZ+vQڦ(A,Rf5Ħq8>K_X NH3$Ǟ{<0*5c~Pʯ5W42^!0^#rqxƘE3x z)cgl1BҰ?Xq!NAWA*d1)iȧΰО 9璆NVfkVaUJ?%͚5ػbTW=ј52f&p2pjV^cHMcVYxLS7E=1j g endstream endobj 6 0 obj << /Length 323 /Filter /FlateDecode >> stream xڍAK09`bf4UEúV*wҬ!d}Wi-z_vܲ,nF:iF?Q)N/edek˚6eHW׬ٰ/v_uOݦ/eqG`MQ(MX@I<$ Z'mŬAI2.k>_MЯvg\kI2@!x<> stream x}Tn0 }W{YibE1 u$+]4 "!) eRBQ}X07 xJ h!"UX8+xTn:*rM{3Ɖ>' ,E易c46x"qx;v9Zv34Y:U O)W=B`L@^ rKቤL]HF\QRwg Drִ6$۱ݎ &2Ec2̈P,%ŵB\R4f)U,`,6lBX2}'nRjIrY;$3=[*jBm? &/ws^p߀kci&.Jyәq5U#D^GzqUx':-ȣH|vSdG'\Kt1&XYrm1gB{(R0=@^U5H=GC__XWWnq0fN{.Uxb`9qeU endstream endobj 56 0 obj << /Length 2324 /Filter /FlateDecode >> stream xs6WQz u~L{DǚʢF8q8d`^,vYfn_dǫY^`sR߸w~{ Lapֳ7?~|ay~Og(Pm5jiZ(:/nŒ6׋j xޔ˾E =T : EbsbS=8%(L8?0I0/'JO-Ja;4p9hD-:YͿ+f{!d~uS;r8Jg b(Yw=e% {+ s bR@z!ɼ,C]}qpr 5`5~M{yU2m]ﻰ_oo B7 i 0Ȥ@XLQnUm\W7bU& (Y$Dx8xWxT/0ěr{cL+X}=!4Є0/14*I O0dJGUZ0dݶ*. L?MݶcOsp (3@b@Ar/P1*1VHJ9cDV#\ @s[un;31ÛN/  'E\ԁ# 6 /n2)䔖=mZfg/ 'dŏ'0d ϨJg&QSl޼=4 QJDo5K'#b"dCT#j1mhs1OYSK)[&9 Uȥ qL-[TlMLݏPi_> OtY%X2FdT#pD{]c޷8-7MѩRLciai|e/ %D$%d ˨NeNKћm_kn;-T׫_Fx"g qN:ww-.q6oMu,۬ݵ+8#%G_[Lihdhii$J cKm\Vv?M[{ThclM c2!@@w dNG$HrG.L7tkfEơ}3b-D7m}"*ktz1 %cEu:DcNzҺ\ۭ2Ea -qa"t`1^f2TxV%;fi3ﻳ#K=YzX=%ݞp^%c< D!, z)k:;T\NUX1H:X؁N,-ӁsdZmVĴ6ՃW;{Wm.vvn(3LBt{>F Xތ1Fb -"H ;C9#j91ሓ˃.H& 54JLV.[ļ)blلaC1=@1e>^@)_ݘ-cDY:6ĘԤӗ.w6-ʄxYI`T֎Nr D2wd':qjQ::eO\7҃K/ \K@teԁfSeet>KoH߇+ܫFh;^@ %J1:JXK{m4❿+H$>m-^@ IGI`Q,Cž}:^fwjat¤Dt: Zt{1!%c0FuZ)h+}o;~ӛƃO[ P`ThqDC=\GٙPs}>As2H\cS/ tmݸ-DY}Scܯ9q8~e .$-S{v@@Z1pImBK8(D T;48iKlII;X؁A -tf7jE7ݥES.}w^_иbŞ3!x @ X2RTC)vi.a```ia QX*s^%g%c?{H3?k endstream endobj 122 0 obj << /Length 1967 /Filter /FlateDecode >> stream x_sF| ?K}@J: @h> :G |Z>Kk:Ck.+I e:*"]^dWQ׿Py󗋓NьYAGFJR¯w15.?<+I~^Lmb …bu:}BuNM29>{dʵN 1-׫:Ni5Smbn,t/_|A;%CWHHV_(cX)X Pner/d~^]4YVHdY6~!!\DD3f}>"y2ǯaG3Y}S@G7 bf1&ajm^60O[ڨ^#iN]# yH1=I +r>x.0HKI%ӻP[e=r׺N̉aK.a0z0Lbј0az,>7(/j'oM~ּz֜ջ"D*IGF$Ý.]tP$& %1Mr%r4_ՒD)yC]+IL1*ӣU#jfNR kcZ0+A&1{m2De ngwl0ƿ/â s0y ,ԉ IE7f?IUg6vlQ"Y1Lа\XiX;JzdLb2ј^T$d8y㤫X:v #уdÈ3-ڝBrY_?$4Q\ WtCH CI!3dK=Cz?}XC\l/H\fEݹ<̢̜٧t=XI΃z@&1=hL*"M9̢0ЊȂ>A&1hLSDKwȎO>

0Њ0Lb>јާPD9"S :\綄61isDy G0]<@m1hnp{{5te_8WWKr rB>% mwHf26TN?Ĝtb[d_ͮ6S!?z|=]͖5G ҈hEzZ=V7C?[\V妾4x`=kk.`HlӈIzEI֏˿oz/Щ0s0BQ[tRhG)$靊{~p>֫E4csM/t3 JxƎcxysA:v,  3Bcz^\N[^8H :C~]i `4! M41vO=}Zn=^@pwO+SvL EP $&sodnDRe]4/O/T+^/AS5>DtcՊ(Πo~+ uzWcL}WDɝ,t Đ1=2ʼnȵG6N缛+z26e6g n]3cdg^S endstream endobj 157 0 obj << /Length 1382 /Filter /FlateDecode >> stream xKSH| UE>xykf: % HlHGIc{4U( PgwGDRX,jyyn N'o8B*R8X|8&XYM[hMqBS?TS(D;C ?L&S O D0LXfh˄BJ^[gq=eG0 ֢!!L*26O-)wTzx/mEҏ~r68b +00"aZfAD^<3#=<r4eʮv$x}xb͐ xz^^&yZܬa4<+2ZhL 3 wd|[8CI&C ''JG_'P9r2Vg-rXV$C`y}`15`-&1 (2h3΀;Y ab[lvLT.=x:>l zг"B]fX(ޢ׌wgb>]z N{X"SQg EUZEEy}>T?rY^'eC{b W}մO0  fgPH`V$Ct?}?& fUjvIQ~v %`404ia x6 [jdE2DЎϽJ"{+HW|Gŵ^}q(MߏR+}OyΆƀH;U* %ǣ'ӏuuuuiZ[TMTDx-|nNP$m2n8-2ޒ+!Bv|1(D&_ɡZo%eԭ̪W7w GDMgWvpkE2קV+/ezRz16h݋5yOKgG-tNv${  endstream endobj 9 0 obj << /Type /ObjStm /N 100 /First 834 /Length 2161 /Filter /FlateDecode >> stream xڵZˎ߯2^|;I"@ GF@-;q4l@{n7T8MK%i%'2MD&$$KǚZR'*&xڅ}2x^d$$X0<hS[ĘƖ>0T֋TPS'$񩍒(BB#Od"rQLU*FƔ֒BD#BIq@e0Bsh LSk S*bxxO;!8B1? N*:7ib]ր:^k?zKSՂFcj|$ N]YGmihj5C(p8D5%zOͰcVe[#(:4©&´^ @IY&tj~n%W֛ 7 ԇ#mbWR-b,6MM1l6|Ak`jWWc.d2\V.@uta ԥtHR2wH;?}pv%ٳտu_޿K77?}sßۯLw?Tr pb$0C )R8HH"!EB )R$HH!EC )R4hHѐ!EC )p凿\z|jySD%DpmGec>O?M N43SH %]8^ggO\iTnx ͭ"d+.-,jT8Y{3pu0,ҀS߻,• &Ym?m ajzLu?5ijlm%&#u#כq2Ep_X87xLk OJ"<*xrsaGтs"/뒽w<!.۴V~^%51~&]d]Hy"xedM]˹x>zbis:g)¨hFAƵoEIXn⡘2<"4WJn: KSS0T0xr;(xs9(9yuՈf%.'?^QF$[\;;K벎:TDs? endstream endobj 167 0 obj << /Type /ObjStm /N 100 /First 873 /Length 1295 /Filter /FlateDecode >> stream xڥVn8}Wq1@m to>6UDCf~Pr㔲qHeaL̈́Xs&%0ia8SaUL84S.Ú1,֜i`:#MaFj1YJ؝b*Y`09t$,|$j%eN89,g.X (@n("DHJ'X 6hCJ" SY eK!T46MjDgmQF GW sIQ0h\DRH|fun$1 SAEd<49b>,#8G, 3bH%')'d4Ũ6(>28"<$ #4Ĉ"ñCHqDc&3 (Hh#5,:F$as(XPo<Æ՝Df9Y7Kq9#I4NPR@9 V)j * x4_y6>ЎƳ6~?/o,|>s$o|ۖ\Y[4_t{4~!~|K˯MS-]:Hгjrv>瞳C]^j 4f^UapWWXi:zVۢ`=50ynj6"ܭs?|=6U~ݴ?zydI/*A/Pt([LU#[7kPg~C%j;Ӳfd;N"l02Ԝ =1a<7!.,O_,. 0bMԖUFԴw<,"u]eSkS(IkO9mW+(Pv"1Ѿ4{iq,랛ݰ)oiU\y6f\iBmU!ri7a ŦN'҇{U`-jGXz:eRE)~ "~6g'\49pf뉷ɲC1fW⬼YU~d\Y,wcwy|a_OƑXVal $ endstream endobj 489 0 obj << /Length 2864 /Filter /FlateDecode >> stream xڍYKsPU"Md+-K"b`Zק g§4 7Y(|v;xkB\O0~ۏq|aMg~7=꾼ŻvujEwӬ7tjMT U863~5$1_ї}&0q%hc:N(4""|I??nl0z|s|v~ưċԫzeN;З3UT"{y< K K׉"[xD[DB4<厐uf( N ' LwÜF- x@ _eT?7j=w')ktxN!}"ĩC CKpϛ9-@<9XRzFLT|#)Q\g%@Y0AB A!;F, q`&q_^ŰliXJ愢EI6Bk| T ٳ)LFxbz~'k]Ԕ`E-wSHR5pZ@r|#)`OG03_ލFP ~:PGaI"9L*tػ0/4 BP`g.G @^2vC7Q0.دEAy_ 0`1BuX-5%㈿I"AlTINUC`3@n6Nej맪[퐗%1iPdGl@ D@rK~Qߐ{oDW''饳ޫ11-p5B vFoV3TL!J;_9E#ܵ5KSH7?|qkD&Si甗!PyyqhթyU>_ 3~ %R4ЬԇTWFEa%쩚A$y#ӈ'$~B@5ٖhZf`&"H{ytVQOϔ7 #sujALTj 3QEAo83h,cc Ӗ@7`Z_Y\*}TZ-5[[kY߫uy^;E/idėm:@Qiqp)ڄQ8FsNh+;; )/r.<$lcѯ˛)244R<ĒP@]~8h$L KZϞXN)}VRԿXE*0\1P`Bކd{ S4+eY`qD\5 uC`+] fg4Q=KYϖ,ؘ`3gM:a8y8r|s9\s{\^Ȓ#B=2ު% Y;6G KB ljU?8pm]Ն 4O4';#o/NEzM<+Hzs6>Jq>. lGE4(hk/K?i盫e̜4Ȼ'LE4~\GhI >/Font << /R8 493 0 R/R10 494 0 R>> >> /Length 2102 /Filter /FlateDecode >> stream xZMm@?JAnFJV6>UdUӤ#07dkϻVfGUކ[}f+UyBN|DmTɨbv0Ja$zL6V]LF˻RaGF A+>&G&sfVlۿXw.R꺘Q+_PFs*jD]l0cMIq2&8r6X!i@wsc RqӖU|Q!mI#mBl+]#*qHbcʙAwnFt!&kĬ8Ois.)Hga.RoHHi34cabyb1y66{UDTH]l܄r%ya/*F\I Έaf|Ѡ75eP x*1ig󰔈`"ŌR0&RqYG*dR &aNBIridu* * 4:"t5giXm @KpTi7u+a&Cfh A5 ۍWtCسӀ4&ύYM*-vx40 t@pYAN ?$rU$`V ` .]([fksLN[pZ8kË=i7B4@@s4g1HsFj7u>CwAkOt9#?F2<`8tC\4wPĄf(]I0_AƻƇ3ˑonf*30`윌9 BrnŦ UTxՙdvHJԗ,kcm }YP|t8i°&z†,0gkpv&9FkSQ63+D8ߏ\5wZ ggّkEc /iKX!¹@dK]>xzL2;2тַ2uU |8#=b`Zfb{aܓCkO2"̾+eS ΀$+U͑iZ"t;Ņ3:?j 3^Sֵҥq1 H$:SOYF*/ܜf&JF),4%@_!cm؈!nC_3ȑǍL]u-`1/"hC;MpJ}?r5{BQ땳3ȑ)ǽ(3VX0Tg\.K5j \xq12nXUZRI*&ę۽ZH0¥mfkwS#Rj^yѦǣCRH3c.muC.{`DgAֵZ#?eC*'u-FZco I;=}X:=aZr`Dg1?өWۘBnd@P b=8% E =iQ[c j]ȸ"f n"fJ2XV$bU,bOć!N<4]3饪MWZ#)Է+YGTk4QƬʻb+gٙ#5&J'M?[XVrqYPdܤS\"m VCtԵ`HsיcȊRT}d ,˛`Z14yj) !b6!2"$фژlD]DHe&1Q7NcꮮI~w4rDNΛwju~F;rrrOc#יccbx+S(uH7Ӿy [_W[O€cyOO?}}Yq5ݟᆵXB;U~7F_qIIwOOo~k2q3 @УA0?ݢb{g,)NjONo}coR (z_?~xM _%l> stream xUU TSG!{(BII(cD7<AQ!$PVVjb <(+XA ^AO39̙;37([E+WT^6+8G'sOڸcgvGUkeNRQjekj*U.ȕ)Ҕim 2SNVeggz|}|/嚀8fw~,Q͕ejEMRF%kmvDN^~B^LHW%nRk(jOQ ZH%RIT2ISKTur*ZOST,GrQ4*QfN^﵍MM=!vme[ TPJ;+.z&V=a-dHT5bO)'Fy$Ѕ"the^w %?XƌZ$BPfG8kdc#N OBE@4!@> oCsqtKkq>\bw  a Y"-  %eu ]I`ޓgM쉑X z<*uR|wC[D׆@9HbХ)i5Ēz7)κ(ϩRZ걧^iqgh#PG_OjC,N!"lT*2EiPJ87VHE: O=5Z#6&Lx?1. H -HH\MSb a =$qDڃI`f,Z :~Oe+MB3?0Д{ OaU[ q"5=4H8"2X)yža816ĩ5#KQ\}(LŝI'jogígDK>$5Sӂ|}tq ŇEG[U')eHr?̎'F=bZR (SJ<ގXQWo{;j;KDmɟvA'Y($'[V޻uΕJ/O4TZ fZԴ p\ٔh(p?"Z-.$ -^{ |ifS?>_^| c:sG羨;[uVov3s/8^~}υpN- '!e [++v)"iNOq!zȈO8c6(0,`4k!SDmvƈT վZ-kE%Ԛr{ 9Ogt$6Dr` &󥢒Эv CJ[n0'Y㞁8p%#ңo.\jeEOެG;Ŋw&)iϦiwOpDM!zG! f#48瞯›d2qΆMsqxcw"s|o$#m{6Tup %hem]]1VH:8Fs{KSz'ד?L|fC`OO${I0p <8mkJ 8hNHw Wk!Z^KFbo?Za? hX endstream endobj 498 0 obj << /Filter /FlateDecode /Subtype /Type1C /Length 1007 >> stream xUL[U*+e+2c*Bf[4rl8EƦ0F YQ 23=%tkD#/1K sq9]}wrν9{8Q!]-Ζu+ đ*HdT:[,֫^sQx +Hq=^w:Ĵgdl/'JfB{SObr9DKkmz!~\,v>EL+H_dGI,yRQ_!/Vb-8+DE( YQ>*@@NġX6 a31 sTUjB H!ҀH-z9>AM-cbи˖*G([MY4Zl2y ,yOO.IStD&ĿrKf&t~\ns ȥl`F̅Kl5Ϩv]FG2f/߃[7Ny> K J h!@;軴w+_xc9R$s 8#n>v7ha$<`Fի4:5͐͆..aW%z>?~u oMviW]u<7`:7 g }927`@T3T*_:0AC[%x/;+t0 @ ´4]\zeQqkSKwM~W~V?O we Q戙G5d$k> stream xڍWYo7~[V@݃MEh@i)ɵpJpoF$tR%yǕXLMf;!⷟nR>7?,oP4J'ͩe=+z{ty~? QDw4[D|at!]iMYrr|ȲoTOo8e  8Ί2>LLydo4GO4-q HW!3ֲ#b-Pke( g-tؖHḭ\,sJ8J5fh|R=X4$KbxAh9,5tj`̘5\(!X>@%ecPq vZ5&|؉wF>~vWׄ4Q])Aj]k_ƄfrNM1 d˔O/s X^=iOWd݌8q,a 3ǵW%/g٦O˃AI!݉ E^lyǀGaiY8/,>NyFdb4*f%HM3l2r:EttcaOߏzKj=rHŃд`AAH @@KKy9?O5=1rn Q%iaʲJjf\-ԈALLQ{Z Z3s4A\CkZc$ѽlο~h]GU*y6YWQdGwoϮdz>}xi+π簿ܱ>EfGH<nچUx31iKdx8:Ӌ8wDfO9w endstream endobj 338 0 obj << /Type /ObjStm /N 100 /First 848 /Length 1797 /Filter /FlateDecode >> stream xڥWnF}W8ZX lv {MUDˤ@Q9b)ɞ]۹۹h`4LFأ1L L*;& Z+LZɔVCXD,c(2=.+a.\Bm̌L:fȎBE0+!,ʢM;Ϭ#gDh/6^2G~x s1sƎ9`,(jK7BزǑMHYxMX |)6 GD F fiƣVLJe"RjhARP %a %mH<R!br R+(ZdKJAe6.C)'7 hP[iE-K#+2 ủ?"XG}Oޜ0#U:%Yʾd>t|F?7wtz5jGe^R/ܫ}g .)vf^j/^z/f/?+o`Iъ|?ٓ]}ؽ: 甼ݠwɵ+~*PχۭڎÛ\}-p|)]+J|,rҰ:eoCD_wq<q/0E(qUN~[$Jpu| Ooۓ:Sd:w/4{LBDz+&[,OrV|-k='s MGe$2t{b"|%geu쬕ji=ī[(0՛\oq: ~(UM<=,gpU_" f E M[fؗN<[l#~y^|aYoU/d?gwbܻA7Q!V[ltw#g] V,g/$mAg1n7CuG%3~gҰ:Yfd|NEGUh o]Yr&gÛk>](j؇P>@qZgw3S2s#ok|(w &W"4$No~> PYڒ:aM]iZGwiYn |RQ1?K" .ZmX]hFY4Uz;(׋aWk g }jYJk4TGlö́tmzfe#a{zH?E#i!Z#و,φuל$.MX=3~/%k~?g|=/x5_r\ 8k=΋gig];^}b6x񓆕Kl܂/iz';5SWVu8ahky $Qj endstream endobj 507 0 obj << /Length 1059 /Filter /FlateDecode >> stream xڭVK6WH!͗1v"-EmMJ*ɻɿ/_ZkDy}3ID` ^&zjMD=hlC%#Ic:d;.1@K!xߤCgRhjЦqrF`_g/V3Jti^//9"SaU*:t:%~Tt^uR(`1l&ftuG ۽A9 $DH/+ o*ul{}tGT;bL\9o=3/m8CYAbDCX?B}NWu<Be<5S;-r?eH]y-ߦWw1%aG\j!͢GTyO&BiH. LHoǘR5 )P )s ީm!u94#C83{Z2`Bq.od(/<1DɞLNւ|Dr?݇oZ&HkƚL[S .qUNǼ1Oq{"1O t ܀b9qߜM1℟W^Z%KАc_1(WW`ЌQe׶Z3$Dy#vOc 7ZĔ_3\ RKvs|2ꛉtX^̔ˇÞ(&m?cפC?tXkTgyGc2ioF%&JzY_3-V抠淂&ۍ2/7vˋoS%0^^CG)KZ endstream endobj 511 0 obj << /Length 1242 /Filter /FlateDecode >> stream xX]OF}WD}rt?Ʋ,P5,"Aԭ*1`l!${368.}@dps=s2CFcp=Op| Bn8;#f[?ǨxIq /s\ec2:_/iٱ $fϚSGggO CHj.Fơ85 ʕ.ڻ?l,#"bSn\!jt^Hp/nY6, @r;T5FhQdr c5ȫAԈ~=X!F<X3N| DwRSN]pn@jR;"m OEVzM/}X!qTw, bh!O eیp^EՉj6k@uyyy^Kݚѩ{{{8zJZwc DJa9|?EXomLævӆ][)_DW:B `8\pܫuM6Dtj_1/dZZw@S:ԏP4#@>pj)z'  /eQ[VU )d7-bk9s,-k~Y endstream endobj 517 0 obj << /Length 1869 /Filter /FlateDecode >> stream xڵXmo6_a THQo6k;4)Z`Em-dPRG*I!@̗û"?ȂE,> ̨^/r>{.E ,b\n]/YujlG{ߟwxy(y>&EJCI&-8uښbc!8rE.L`YBls/oJjDw:+}+x1`Q׻MU4~ˮL!g%X&HFQ nGh[U~sƉHƉ*;sQa C #>$qƶY 36, ~sS x60ǀ@߿o0 I$ezZeɒ ʒwP0`ؖf<[3PC~E2zhSd^:bMrqgY'|̥uNR$"ƳU -GŇs"(4p9Wߔf2KG.%6S=l)\ ®QzWnW+M?w>8/R :B绤.ҿP7$x`QD dSqt,$:2hhnɽV6^-Muerۗ&4)۸n뜖u5RHk)l8 0 w °CďDwj4wF@%10> v6zf|@4޿oBKxP Jnimw]<%$hn qQY8@IL] сv NeU6C۴p' 4B\)*_0xD4Z]!c& fLbEI 0$45 Q%Ļ0ԃ\ w Cp 0DE:uJ쭅<fEHyj.2rC]EB 68+6" _ {{54pC@k\6mͨCdVe9hgr[l֨n[mg\U?l%B> stream xڝY8;xbv"s+fΓNwgɣ/᯿*Nҙ i)]ʆgVB9&6MZkU6]ޒz\3h[pRܧnJX|nҲ=-t9Np ѐ`A1/l۵+6;s9kT-ۤ i5`[itCcڊ~5g٦N]nHxV.+ R)~BNf(` c+n [ [$h)5t+ ?=5 `h;s+,=y1`p*wG œaC:W>4_jzgWx4Yg~q&gP!|v} p3<p^Wk;7e^MV*CE`Eٴ:ϱcxxbe]#$`M"cUAMֹ̀9Iڼެ3 ~rhtpDdd b1ضgg:?5ەR١>Yn X<8zVgj3x imA5۴UmveOϟ9wRc)ZL$>x3VlcA=yQzNvojkYb͙oyI>L&}SDA:( {mHY9g!jL H:pOS? s fN7]al;hA? 2L(3-|CB &}Z]ޝBλpiˠ`X|Ǥ  m Sъ@DK.i3=ȤAp6܎Pd=^.>|<~ XgrУb#|x#CC08J,nХk}F[Hڑ=}uqSBXd%/v5iC@6]SFb&+1'} 8EF63LG<)BJbq6=)i SIzCkd uYU4re܏wG,Uff}N#|XpRN)< &Kj?|Run򕯠-:4'p 2Po4!#\M!4EL4~ t|s8﷤TԊG ]>-6sf[RkP{-).<%_EZ`kDuNb:n-F*r>)%g+ r;M)q !y~eJ`^$TJr ʡfJ9)?lJ qBv+ 'Il;Ǹeɤp>$»\ ǡdAf;#3z raIX)qe2r<%UZ0H7|g+EɆ)|ϲjh|ׂ&lna5t?<)6M찦*R_-l5 endstream endobj 536 0 obj << /Length 2969 /Filter /FlateDecode >> stream xڵَ]_1@̅\6o*/ؐ!!(%{fc6SU<#E꫺;.wizy _B>6_;{~}r~8A7nxyFQioƅo5CݵB8o?۽5<Dz."O(땇EΛ=;OHa7@8E/ 8amsAn)C_ bOYJdJYvs߀6WܮGJ34Jӏ蔪'.K56ݞɲ.^9OAb!". .0&p\jD-E0VuGB<0E$^1S>vɰaP-<@KK4߾%6UTsSdFf tظ]K:#?5,DC,4I h/ŰjDrf7yw|BhRp &sgGs/z~5AK+҃ 47K_wfsBF EEwMCGcmd+8A`=Aa()׏ ǁ'. lz/ɕ# ^6]Qq2 %~cw.l9a{o.#+X#2@|drš= g4S}A b/KW^a w0~ї І<?& +Uyfn~< ]&^߬0;Cak&۽\.6XpP.vӛ:O'Y'  W̚w[fB:EI 5N@˚E>`\='u@Ҵ <S!n nA9\=gL7 -v,C imBYj7t Uh!ݍ0Ť[rNy(r" ЇtHg9A+yan,#(,Ļ\`dږ}1煜ٲH ԽwĩS͜$͐`lυ~#o/qRTP(_:9OشdSy13j)GR+QHD(7'tܝߪ"G) ",1oE4i`R'<>/Dyp-@vOTl$r~M˒|( • ")! Τ- IF3PEvm1bK E5ړzi7]7#AJ`_LD't#Ln^TTV1fVL&Mj:}ksD}px!\jRzP48Ai2/6$b&ηw&RxH*0 ķ@d6@P9+-&+c#!7ӯ?GBB_ ,M'ӪX b8h5oi{i8 Eo:;ZOp$Oz֧븫|?,BHeT``Ȃ@Z.G7{sޝ!JV,?';wprGUL~4"x"ƦAxڄ+o[#ۘ@7f0X t552F*A_ct 4s[]~$6|Dy vє|L5Θ*鲑65ԇtaUMf{`[QBI7 6bS~a xH 稞84~{ I-qξ?83hnJQAJy4w; P2 z2嫎ڧ#Zh00F-H̍neN"ס$/뱘aL4j0*Z^ e:i^SZռm;#es@_cxHY-Zf^@)  ]Lߵ?[пɰ6DA/M6Ad|3{|Źu 1Q*qt?3qQ+qT],LX!K"8spYS=dKm)} Ӗͨ.McY/=+JM:5U2}Gg=ֽDUw]˺(%]<¸0 g.GqJBz:h2]'Ϩm6{J-yP@lu[<6SF$c9Jz`jl&3e,wkt +L?F>()cdιX2^rco f,Y&`_el 'P Sd=?xF=J̸)\pus&W+f. ""{*(vJ9ፊCpl>߄l_#bzkpd;ЇZVzo4E{1/?*R <gP ɫu{+Fs)ޡ{/5ڪCϷ]R/vb;Bw endstream endobj 542 0 obj << /Length 2061 /Filter /FlateDecode >> stream xڭَ]_1ȋ9}-% hWȃm=d #jO]p ,>yroGٮhy۟w/x@<,0}q=7rw{Z-w8/.u?a?Q;o}9coS1VuN^ίACG_QI~1q8/4VX ">H31pF w 2Q|ҩ O ۢQ!ixc0g|Q_q#>-dY urϙH,E$|1>LA( k\(N@q5 3ե'"UBY Wә^XՋAEf^Kb 9Ù ؓzgVaA`ϐn87,/?MC mҭϗ><6 !f:uָ t-dn$a^ ؇4k(wA4tn/] xd ^|Q#( NhQAoVLL^B|. ZSq#Ts*0J]ZWOJ v>NK@Vɣ $7>]Ȋ31a#X oШ%8g^e3ЩVh޾u PP[Yt #| w|P R`b-K_0^zϐAnMs 'Pb_VF{ILz1iLD"!1.,:J`x.b2"pQȬͽӚ-@բmq"ܿ)\t[n$0R(׎/ë́- Qگq5TYpSDAk̹WM 4$LrRS<՜@4L4(r>R"j|:4@3 é iz^ 9jVuH]wW6[$ZCy~:t7O:9+TNѦ G1I.N{==˸0^^l6`ʋ/bT#]5^Vmy08|"K~2[pɭ5,^b«"$ɝ{)z>;PСKP! }8r<4vt#vH!|5 3 uLS'"@ދmLoC%"D;F-gFRLҕ#roѭ%7Bӽ[@#2-=:1:#1sȿ=5eaAChzs˟_0C )aDemL> stream xڕYQ6~ϯXsYlEq@I{{E2PŞw1lO__R<3i`͑(O"oB'o(%2lB7>Wqs Eff4)n~޶R*Y6˦^4 [a8RydY$B*MZEuDj-eR6GJchf48v,,꿂[1iҠ9._E&CFm`eik,wKvyl:hԖX ݱcYXv/N4L*!cɆ!V:%.o_hhVq"mˡ4^i8xj*0j)%-A'Vk5nVښe6OȂ~W/6Aӌ(lmGrAc}= u///-xrE)߱lhubmHN[C8+- V"2 ~iwhKsB. e9UOĎN~xμQP[jqûR5$c؟TJ>aW4o=7N8?=}'%*dCp3tajר1h0;kgІpJ0' td\~z$`SۜkFjY e]zKӇҹ :ML sEP18Q XDg-N"^FM=P_h 0ve Eۆ./75BXAsO3e]Xcj?0UE 6'9ޫTX*>_B3c;@&D¬ώ\hƐl? H3{]Elca_1&v2%L <9Wq̟Z=Y ü! .n<7ߞ( O>р[ovdtQ*)ep]]߂q-Ka~IADƻap0(qr0ǬŞt:X0>7-]<+]RLAs\B5dueުh$~CΆ2z0TҨ߻n{"FftTZOi w (Mu >9kAG2jt5ߺ;z6tuSI_/ػ#| |O>iEP* MBI!< &^NàLu;"= sMbd cV]R1:EfKL H`Jd*d'XY-쯌؋wƅG>6ΔHwaqg$g;{mwPTXiܱW" gIE[NDbg?|hPxvq]Tk;~rF֮J34)8C][OUq}\hDS3d)) ֌#<~/[*R {)8#ȇ 6^p+pSC`#,x(itxY/*c ijh!:'NHB ,EQ :Vز'^ϑttpv 8\5n^6N5ɧ:@!n=,01f|"dZeTH"WwQ%hA. :_T͒)(0f8Dj "jO~߼`Ie0DҝG$!̋5D*MWQpNǩQE1zQ2)@jWq["T ]ۓ,H'gvY h9,9>Fl!GOAIД$ǹޯ"p3Iҝ=/5 v ^tPT ⹱yUR5pΘ%Qķ@?IM4 Debzpj9lӜ /k&s-濾֖ߍȡȑ(2E Q5\(L" *81W?MA `jf '98(?N;8pS:A e=**c2zu(a` %X&184W[eFU\*jC)OV8g_^uWKO(H4Msfz Udᮭʂ^}`f{fp42 A `;'>u0v_CXi2!0|A׬2TeP'\Xdz5ORM L]4T)PP @ׁJ}YI?:)е 0a$aj7u4w endstream endobj 553 0 obj << /Length 2352 /Filter /FlateDecode >> stream xڭXmo_Qh}}J[C/=EGRqբ3;)ӗp0`-3 "?HE,%KUXWgm;F9(Za71|qyz.WR@Y6닦^D"0g7H )NRZVl"Qbcʔ^l Ãz)oC]GJkfǖ8ȺCpxMYkؾ3wnz.8i3\j6P(/{SM3Ծ"Y˅pژE){3?1iT~ ܒpnkL`=z-] WzrSASd0N*`Ӹˀ笓"f 56:޷Eqp5<묤l+9D4&l5/it/E5ď!A!u.G;LzNL*?~RȞk55ȗaYѪ=Pc2^V@(xe~?d6`z'(Ey֙5 W)Ӊ_F֚δQɝ)bqLasfښQ٘3Qo}sw!սK"p j '9A~и ϢL6*S5v%/R:0xU]E)SIQ՟_aӉkk3O0-XGs7w_%y$E@:Go UXI(R+p(J3)/@^g{tb,G=nYaK*4uy UǙ\[ 1 sbcq.s$b ҡd9e;pUZ'OQ,^ G ˇ1(iBzNy55_ J 2L+t.ƨ&ނ* .+d#LZB^8d#u'ʛ#cFH!A؏ԙPnHe*:r21W #V&F@4Դh3 l1QH[6ul}FA) ";~CG @gS7} Du-4Ek*ʶEipN5º1 ~KM/eNJwOؘ߷$>c ߶R]Ih bhuG^QH_e/9qK_aa~F>: mکs@͞怇'\go6ӈCDٕWݝ$le|j+66{hSu($B&=|-̋2=B*b,E/œ%)T`b]"/b0 >&@.Ei?|gD:J[)o[ V?kgiDC2cmف"m[9:n xc"uz8O03sZ|g.pnWuD,^IJ q͕k0_**"_X p}rYÏVJkø>2nrLQz|@_ϧ*rJi[OO(`&3U!Z7Z/H4Ql)< DRKM2 #(:I]G[7mE_"klfܵ2H+#F:nS$ Gσ%2\#M.Ac dtNθB zvvb76UY1_.?7,jXα&Ś>> stream xڕY[o:~*(RE{vnfm*6mk#K^InN3!%9i\?NIddR ,wO"3nNp>ZooDD"Zsr[{R }6W* >z_E_6l2!f_;,Gr+ﱕ[**4W؊C5'i8ժ7`VSkR#K E(b6"ysߞFQlv3>|i((eu`aJX3fV|/Wunт.VFLBR"8ñl;776Hݡ"qآǖ$pn+j -M˾ih|[hf *Nm1VK<*siYUƗts`_[j̗1c8v[2w;̾UU<ԉ'.v'S|%t/Q( )d_ih/|&/[٣mv@""w[Тw rtKôZ4/ciyq8qCLDZ vf 5 W[&ї;}4.&Q_"BB )p7͈jhem+3σuBvӼKͺxaT|3Kx5 ĩr Ƨ4 s֒K97TWete e$(4Wb,Hr˲Qw\!% ?^CnB ?y*HgiE I0RK}x֙q E5f#MsifÑĞYG ĵ.agr=~|);fUƛ_£k_M4:}SeH⳹<c%Gy( E.K"4V%%!#7RD#xoe=șYk^1h$C.[BGwDRiG"x^'1t_܆?D!\x,$ !۵~TGa_+nIXOƩ5Wtw*Քz4[/{0d$"𪏫_qDBW wW~<{;0_`F;J$˖ŋW*T9,GgZPojHkP T^]a04lj?~ฉ9CZءdzqq{Cή^%i x^HhV=DM0^| 8AZz"&C"bk` ݖ6um0[V=wCUS,j&"[ser t[7> stream xWSFp<3ӷ&3 8P0J2+!n-&6$'ZMg{L`4{{?}؎dZdKclYMMu <8&Ft"׶ L2q^hr>5+%_/P,'-eAaQ,x:aM%تJҦY% B VIJJ%5FQ7Iˌmԯ#bw]pI[Lbn ֡%=_UHۜ>iRt i^">K0{C- Ռ Hn]tuIb%szF/ͺY&X`Me% DV4$|qS}hv|z}8k4U2 .gWWo#rAu^St *j\ uEA^`]Kr~+xDRO?s#^xv^Gg!峭ro@߀NQq'_C@Z}u} J4FkD֊J0V3Ϟ82""ШitɆVCט*xxX%.v\mRfS7\}>CNBh׌!d9 -U8@vMHC xpRj^R/,G*iGl'q0FQzdLRMḺ$r7> stream xڍUێ0}WE80NsݹPя|&9:,E2Y#h;nqvi]2s2Dm:Ö-y@WX1RP`l{= wЉilS|p7yO9YPM׶r*K-:P.l9TWT-2b(S@oK 5m0emie0X<aьޖe\k;\ $4(84Wi;_FNw<wl] :DWw6/}x9͎Ӱ6{vwEj)6{qMyc}!BX endstream endobj 575 0 obj << /Length 2352 /Filter /FlateDecode >> stream xڵYYo~ׯ /7Eb @P3,_>x ǒ hlEᏭ,]B+j{n㊅}ظ_)bXja|n1yۼ^oxH۶횛_x6"m[TepMM\O7=} ŝ'iJ8S2p$LHϩXo7oެx"N!& < %I7oX4i_Y廓<_ڼl?U-ͻ ՋJgدN;%(T͒ )@/kqCpx/bFdM7HPcI().,4C * UʧDs!OP(fNI*4}}J<9n!/]Rq 9WPʋ[({ibbьhڗ%&&Y|JцHh'@u\Ҭ&žI*GCf499y׌g!_ҤOb(qzJ7daSvS([ +paI!HAd|k@i#SRL4.[PcM}Nrcj}]˱ry=HȊrngaFm<`nۚːEt"D9:ef&&^Zp ڠKw2#fS#A>DQh Ǧ|; u,=v4MT Sz Y$ 9 j7;e05u f)QԼFghCsWnE s[-5JK$W3 <|"-LK'[4=Sܾ2njEIqN ;&%$.w IKqmd(Ti0OB#Z."ͱ"!;KR /,Bd9HЇZ_p1BSfSK 󾅈ϤfŠ>U~_M(zcj=s̽w`($%VǘF>%.VM.GU/(CSw+h ‰qeYh ɰa?%,=LAO+6wl _`r~|NuPRPl-5p03*\'Ӷ]\/sA=FMn%v  endstream endobj 582 0 obj << /Length 2444 /Filter /FlateDecode >> stream xYKsWrY{K:^Ll "! $O)H#*ytOiE?H-ֻďVr bXV}uKǗcͰu)Gj1ӦR$)O$] NGI.bYj -~?t%>f9K3l$Ġ7R\6Kp@޸˦bAc(rtL1dh nې+ѭo?z4^8}5J $Jst' F↥*t5l BNCh1IV}TQ'VѻM N}}=ь.:SM٧2 alx 2IMSn}gH3ڵ Iy:gxVYuCʌ|7 k7T^m U Q*gMa*Ppν;;:u =q0pJTU"!U[3-y:;7x`ݔUn hƢ7+ mnPVe&GUUb?W5.9m՜EEݫWv : @J. J1:p*"*p' CaiF<&:p8}+PHq>b/@2Τ䯠?-BVb{hAM[ອ~نeH8٪mTr#KMؒ].8:.PneJa@CӜAfzF;n6* z*K~a>~lۻ9Z镬 rk>)"_taS^gkXWAiP\2@L1"z/*Hauv _ɯ:r=X@wit4 c 10:ƈ)mjNXJ| LZȄƜgӖb 1gfPPb;Lg".ړB}A@) s@,Y<H*1݃cC5φ '$ztȥŢXf|:i14D^0y NefI̊z1 6 JW&@:'&q,s>D7pfʡu 5DFv׉MRA"gG" *(4 3 ]`Hw\ab&0AB2x 뗿NVa< o1%7ܔCt|%.A(OG7c 8a_; Wꯍ>'3~Oh(i=KHˌ{RMw췻m&9jMqƅgᖮQGy,$)0u1{Q5311="T5y]#{x3R{o ѣk\KN|. ۲&6װ[D!rWQׇew79j_tjwqWx{r@7\s!/)l8Lf԰ƌ$^y}zOYl |N8PPm8n+¨. &(jz80+8_ כޞa`4xгk(m yqy1#6pLyЈߺnh؃&'`1rȒɡ7VTDF28x--:X%6t؜,D!8gTTuU/sѭ}OWsw(Q)T]Qւcw-$.˂o߽9x{zqf^% sqY *5;S}aOE0o8|E~'^@ +Gx~Ɛp=Quׄےn8a^_ve;kb:yqp૰xj> stream xYm6¸/'KKz).q>Ap^ɕnpHYm"@Lp^yYά,WluwvFw\o[^3t"Ki<ɡZue]0Nn柖^^PyfKʈ`RB&7Ŋ:y:\\sM }$V僅P r5oj Ӥ>t4XUX1aC O>ll0mXDƵ{[Y]x߽Rw_6uucxakMY+H$7hV,} Vi:,*nG~o j6N2m^1cx yRa2x)!y-81Ђ+\yĕSv..0KfJPXoL/&[]'nBXdp]8>ܐpz8> % ":ЭCVѦ:3Co+N-3)$!ݺ5("i a9W1DYZQX>p$Z7RORh[A^V0/Jv߅|$|q"#:P4 ]."8KO^.m1`2{ D_-) ;F[~I3T8 M018–%\@;t`xbwpp¯ځRA1`C5D_% 9 Έ3jhOBiGu6!? .Ωi5\M8gҨh؂LZlM3]_7I᪠.r@Yc/H1-G_m G pfҞʁUS9\[H^ϱC?hGPp;޸FZ}ԋ  w~ Ǘ  4ߣ]B{y' czuWVEGG`ʃ!t`13 V2q%lDFQ)c\%\'99vU9:u ŵ: a t^<xb`jϝ8sA 0bR=WQ7m9r 7In Q> <,Ohg(/RT0I}93(8(iLGuObpQFMPm\Tt8ki?F0ُa"5z" fr9/x_A=[",[ mxؖXN:5dW+lꚢjD_SNH#di%299?3._Fµ_e=/i.bgSAfe|,=%/#SA~.sd_#M6Ueߙr?f|M <:#yB)I(ϳIr +bV+aw; h>;ieNw~XYd:zJAb #T3JZiX=§4 pq{3<,)1r/Y+4/SptJO:kkۈ;1n8C;:{> stream xnF]_1p_=^K~r "9r#[KBY]|&*ڤ ߜ6wZs-wȟ/{,cOQ]gދCrfRzN)]uMQݝk{'z)ҮvJ/^]\h!.B>7~C&V RKENqZXCKA1"bZXE(,oӦM-%oc~W7Q$" ,.Ѫ5-ꢢߺrJz]>M!Gi}.}Y|"eq r(5tUЌb_*3d HZQn";ilNؓ63 K %30bM>`Q?f0s2ÍCI3o2"1ͽ=n5\]gG<, VX`P‡nXHjC` $+mƑ )IP*Xg&~oS0ۮFǚ2d0H1_KŁNonNmNR(8V YDW+L0V z2ocQ$,[Ȃ 2d"~,o"K0?KYV v|AĈEԱ>gm >DJ+Р T} BLzFV5% 7xLB֚ d֖iB>3= J\յ J=h|M!; paOcژa<3iG[Ӳz ,[;38Ox0ģ 2f*G^U5RDe> stream xYr}WL_f{n.+*J8Q epņ"ʻXP w8;ӷsgS1̆RL&h8Ҽg]ĺ^'}6c2[D ADBub]NX!yC> ElHo 8`B҅Ca&IFr?*&`;9X,0Np \K4jXX0P?7`c`6A0`PM$H$ K à@ (H0J]I iQaPhG[0&"M~DZ%YKҁ7y @͑\f& Vfy>[5o~MGN 2=,-h+}UX]r>wnFr:[nuusV8\Ҍ!fsnq^+5~xc;}jv}!<m*v((~ bs/'tvS/׫;EL֡Kc,mDċmY\Mfs6Ƹr zQj[; ;$x_'&_:rsI[u-h)uG~KdSu:zgQ<c6Fax(3(24=!>9a99']$vAP8+I:U>("q@x-=:Mdb<N10.~ߣuޑ/S3K,rzҽr~}.*74De`+Q^ endstream endobj 600 0 obj << /Length 2116 /Filter /FlateDecode >> stream xY[oF~#+}٢) fcaM4ɯs G$5Z ss*|ūDJtU<\v_Wܝ_oy,3ٮ>Dw[ovQJGjwkuzã~NU44žj~Jd:߮~Rh!O>#/)KW&UKE"]LDnQ5aO˟(ZVZEv۪ξ];`@ϻ%.߀a$ʛ-x쪽6/"f6\2IR ~Q:)$̓2,3uUlqPazmZկCՕ[Ff{ וDײspU鸎~u,VxoV;6,!`>(e"S#I7ƈ$:j5!{o#RøF8Qvqz>Ep5>M]}Ho2IIαXE~b:6Z-8PebSzVhbY慭H/Бe"fG߯(*ajvxn]F, h |ćY4zl[4*Qu]5L`6xnw-].7< >QzDŽ Ɣ6Lz[>信 3m}UͶ*cEs<,uݗ@4s', Ih[ʓOYf:t+tƝk ]o}XUn{gZHynxˬ}<;C7 >_?'Ty՚ضw!:fF&WׇrW姓,N}Z(؈sʀlS3vd(Zۖ#!&Auc3eUA놱ǰZ%({gxu*mݮ6(2f,p _\lK,xԔ`tc=F8FmHQ4vq_6eW`I쑦O,p~k#GΞה/= 6p"Z7}b.ᅠSЏ~ܸH>=Oʏ}GוyQ{۳ ;gΧo7]y2Ex/Cwvoy},*fRxy?~|wİhI~( wC V[ዼ M3&:]<۲F>#:M; &g)FPll'%Fc\d*VxmLC+h> G׫QC>g΍`!Z1hoC̜3 ʉ@o ,Z8JIZ hUK/euf3`^|JǦWA7sr4"!熛*b49 c8Mf69X`_Ωj tEIG(Qܱ㒹 ]g)  &KtHdШgA"ӅJsxC7; Ӑ駅/ GA4tQ p3єkXq2q{ܷ 3mt6m]Xƈr8y  9fL/=:'u4h hMy`xb8_ӁI1BNs0λ'$!\0YhY@2$y-Jy 3HJe-@$BP4v ],*`Yi.YŒi(SO0Pt6O/Euu .l zN%wBd}9P5 ;#:~ :[nK|Ea%/Uq|ߐoDz숴8j=G盷ރa=E9/nfFc| mb|)& endstream endobj 606 0 obj << /Length 2352 /Filter /FlateDecode >> stream xY[o~GnrnNޒv+ 0(."%Cnd𶔣6*PEå+Dt^vW+m`frEccMWۻn1>;vYo8~BF7)qM#S74:o֩NuޕMݮ7L0-#ן{z[!{w4%*I\82sWkFGySoOabk=lMa7@[(k@W>]q۫|YU}ؾ٤n,,0NrBsԂ.}`[i 2&ƆFȴœOGS?W Zk>X?2$Y/X#7,Q$ *=)= \ :}st. wky//Ǭs vB.\dRCl-S󰭬weutUُpjE8M}fq{5ܞXjRs=:u8<\F[HXYto=UsvzLyO^f*LBԵn(o?Z~(E81FpWep>"S=2S8mM]86wKe 0S᭛Gܕ'QAIokDYu*Z8O^qHl$,!8Q RJgNtӋXUYNr ' Khu 8!;rc"6JŮ L&bGUbM@[Ѵmy[=wL&|hž SƊPfOvsvkţF g?=e(ng@i7zQUޚ'ob:[PBG|8y]t'S7T}d{]##!7˫_E@ {yޡf$@< ;BBcЄ6 JfQh2eg6P(6aʏ&_ `"TJ'~zj|z.\2L}8 Tze#7nrW cv?u-JAaQ೽ծҹV v;,#零9ֲ.gWfi;b8mg~ɠB'j)~gJF~YoR Z[j{-j㎾۰?e&F ο`Z.p*P -Sɷօg{%T;wn6-⦙ KŢOf_BnP6¯]Ǔ W'^- /w]m*pyu-F&DEԳW?\zEԦ(ΧVJ?N©ڶטtP*r{rd/e[pܖ]Qq{{)$h2:y (w?_x} J9!AI糔E %68ƈ#/v4` endstream endobj 611 0 obj << /Length 2179 /Filter /FlateDecode >> stream xYmo۶_5wq-p*+0$yYdQSEaR×s2lDY: VQxB~ 7oOXh7V˳7SFK--ڡ!UY1!"x"Uowcx¢=7io7x%*taŲŖ˘!f$LHrF ɬ Dch/Q"=#h (G{mLgo.rΉ kb:/UrT-H.Ud5jX`fl+,h{-!^R'C`">\;H-2fXm {v;^r=M:>) 1YKj݅מ I+_а|Lk8E9ѱ!/=c~Fld*G>G_7]v^7vk  ; !SE-&j tZ72e578Rlu+ #:N(\MȽʼ2o2d<1TFKܜ`:,D[eHRo`جh'+mK"vS2i!ӫS>2r]߁Fh6#QG]Ej'!oiʱ;/ֵ'@3X3 #D{C_yY WH !CPcip;a6i<5 S+Ao9UF3 o3j-M5_7[|T'ÔX"tV5XR+fM!̊>D<6{i|[]:FѴ pL7&5u `GlSq[/DJQ^þ#wt8O5qU)YXiŢ5pmӨHK}G1wE Oq^7*+SPMrz86BUVE S5_-Ҩn6࢞Y+p-E7uIX8J0ILEM%$zaaɅ?b*/2S/FƐ2G֐}/oGE;؃ك/ Or,shU$w!P8_\b wlro%բ0#>׮| ~ͦPuob=XxcWVˌ9IZuʂV]p gBqq|wۅv{dz}*P* endstream endobj 615 0 obj << /Length 700 /Filter /FlateDecode >> stream x͕j0)|)ZH-MP I4}48BK fͷ@Rxܯ;5w-."F<<94z\O+FJ)?1ޛB` #`}|f Mms#e3 "v:O 4Q4yc$yK{1R)N!فj3UwۦTvG11MpZ§g9bخp;NΖbqF{zb~)T~_otؠ mT4.δv{O 9Xm/o,a;l +cZ]Rn(c)>Ǧ:)eYF\ 9}dFI2t:QYVAVd:0'AY?"Y:c lF۱v(fsږLh0:iG[8>cԒ Ү+5A m~ϲf#OXr:l(s endstream endobj 619 0 obj << /Length 2646 /Filter /FlateDecode >> stream xڭY[o~ oAQ'ANDI(R$ί7;KE\Zx+V@\0],/?f{OmV/WZk/x\xorbq]-Wd||#魗+9VUDŽ&Z~ի@g2NG<JqFHm` B%VV̯o߄]9q ΅iH {Iԁ良mñpGi_<Z>llVQZGFOweHn]n{>{fu] $7K%ߤ^KEN,~2vg ':LLdu?\Շ){Z6q,' ]JLһk+׼/n0C }Zk}ƀ[و&X6Ύu8Z"-iySݐ%@՘Q]תɵ_K=9}20.Uiݰ4^ Z h~&u>+|"bwYi$_~g/=_ tcnd`SH1)@%Kؕ&rNG²4 6]'U.]nJ],-la ~;[^tP`rvd֠5)E8}~x<{5 g?ă7wVZ6>x$tsN-LTH}U83l{pHʖO/yQjnoOD!^OyyOEV0'}]s =F%& #P#DMH W|I]ŔfX btIA|4W҄:BQ wC7ڜ͢l b3{O'c'9ەL.2PS69њZNwV%Q d.>ڗCr(-)JsyHBI/9RˠGCf(ysmq!"!`R 8|WBTTuhN,D8ZQCϩnUI|7}ĆGU_sMLgCBsq.6/N\tGX%_؄z]@ K* mGbb1 z\SbA$ZFG. /E[`=nz($c 7t>)%?EݐьPF RxJCj@FKDP ozBH"(\, '/Gr GRS6giG# 9vG*qN+(x.BȜ@:VO dZ,mo7"L~nzn6٧m9B<64gF5&|$R3:lT g/B~,EU:׈1q$ɓysy$? UEF,,n4kX(@k,%3'4Q>H{֕;*}iR@&\N3䖗=QjzO6ZZQ# q_mMX-u4Car^7r\-KS8=e|;5 RxR2*H*բh,(~s!l/8vSQv[1F<5QMݏ/v*WL塣AXj)7:N~߽eK^M>/qx.y) }b~]Nw̽uyށc:?6а%<㖡'} x'fVvf:0sԌVf΀MpKsFv&HAࡺ̒hD1ؗ碿`Wa?8nɠ1YGŐ#He "]H6UX(iQ4UωvYŘrNh]EfNlA ?Pҁ3j/bDI'lHD|o,vyn!IOB=/57 /4=ͼw<^ RD?'itF7'f*ekk.DYh u77Oì\W5a̙n3mUٴ " endstream endobj 623 0 obj << /Length 3205 /Filter /FlateDecode >> stream x˒N0/9ɲR%;ꐒU*4F><9VS%Dǥs JzX>6lQokp˗~E}?,Gq|$ߵH9Wm:%75Ha-VfZ%!mgNs!*ٜ*Hjsꏧ~l* _.vJ+RPi}l0 L#|!'-[2NIeHTcϖ4sóRZࡪ"bt{̻] Z'xpv:x:@РZhn‚OOIг'S!ME*RPi'G$Ů(MrtݮSOm5XVavm Nt`ZB[n='uuFpJhgò@yxtWb[//{%OM[U]85_QK>ԧ,R>\`hM{h45o _L%IРLIN 805:pp4l0ܩ2PdoEsN^ 3@_]fPA q`I]`xgh$t|i4|9?W3g]39h,S'7~|޿|뛛2b@5&Qfb Tzv7/^u`H Su!HF}WY OKd%j 9Ȳ(zEIC~7pHHR *H$`*`wђ91oF n 856kgz5z3FiH \g) y]_6tH"ipYe,2xph,XQᒑP̳ʌ8Œz "! *.Brv ;a30x. n&Z+]wcz>o'9d(KoŐ@Wo|fZ'1H? DH ̃wra.!LVA2='*gIs>^NPQ|䝐()MN^Y)pW_YkUgJ6[]Tw]]n\`8b:*RܼҠHP~ƂL0|wJѱ!Pƚo aDςE膮b - Lx@=X ފJ,k[8`A|40VX3رpc/WgjE }ODLfjqxa"vqFeq~-Lǩ!Tj4 o=&CSyG0m3Jg1f@ . ra5h .pC*8i~ a#O|/Y;ϫn5Áh6'>8+V0Rz^C ޒ.H͉.!15o6}`nkEEoAjܵWIy~D1fF4j~5H/$BCB*Ҙ0L1ئ>sn[ s[d{&988%h'35R5X$Myb Llȩ`ʁBp)_~5?7pw:3b89s (;($6E?\"DV\Aio $Y3B=>FT ̚ET"*d14SzQUB:ODΏyl;?IT V/0}nSɳ찇9aB4kfFHKOU "c^O rF a"0?㐖}{¢[N.MgAX>X7 pvU o7$[w?pB1l_vHX%bɨvTsOWT?]Es¹p*v1hi8e}0n;e蹳W5*fەw+82fdA;? rg cTDs FCABE²当XC'x~b A+Xx,PF&<9Dz2ө9Up8{ n+Z`:¹q?翩h8sZ60TQ1g8;7W/>Pre<.>}s/8TÏgFʷ#P@WH^(jQDH/:_(wC endstream endobj 628 0 obj << /Length 1176 /Filter /FlateDecode >> stream xڭVn6}WQ[T,l֩"vu5 VwV8wxV ,.99sF`#A1pg6-ߟ/`4|=\`ۇm܅>tycx8U_ *ob!0]E$ XU 2\rR~8lG<n$_ 9GKKa!"!i1`6N9YwUvExVl N lv{@F >w?]k7{99ж!$PX85oa>Yuɇz ̭%w>:znDаwE˥Iǃnsb4$f߽۟J%V)8xFnd]TlS[P:6LEnD8AKG2nA:'*Fqb)RbDk$ 3t)u9tGiϩ+ik:ucQdP(6JD]l_E~b BVO'?'3\G~"/W8bf̋Y^#cSz ,^.jhٸ]A<L-K7S nlG{YަMq\\t hD~¤ܤcgǗ*K"-i<eА{0 endstream endobj 632 0 obj << /Length 2316 /Filter /FlateDecode >> stream xڵYYoF~6/`2샗rV 7FH;Ȟ"R!9_U]՜C<, h:g1gE|):?+bGg+|!0?/^.IDq!CQSp1CT9N.3,k;L_nkMzZT],ud1+QM `n7ue*4CH$d(e;̓" sս *-rWc/w[0#1Ts,t"WMN}kϦڊ9>dc9Nb8e_q y֖xƴ5(=[zRzFv~'."6xTעsDzb>ɌUo~02V}kKK w!!"鶭KƎEw9,n7c6 uC.ڮ guR8L#F `987E]6OJ|X {lzą .A60hs&h.>M 8amw%#VC>H}߱bei?Q$kZ =7fS766hggJFQ٥?3DZROu˔W7@)WO69ei1H$=H{ ۪.ȇ>X)t *.D/pN/oBMSG6Š)f."AI%m'.[A>1dx ׻֧yu 4nŤʌ G6u sݑ"(1j*5 %<;6xn*X,LGR@C pROy`u"V"7c^ّ84e$G 8K]qQ9Z$MD{uFh19MHĒZ,(:6XO_G!m #{EA=Rid_p<5/<[Qr7FCy׍ YAUY;ӧf:EiG4󙘩LT~8G rR0R |4x2yXRTp8w307grǡ&<4'>xE0;O*BY88.7鲁M| ,}N-ųJfMa}wZdTx45Jqh`&tx$S}8i{zbANC? Ug endstream endobj 635 0 obj << /Length 2571 /Filter /FlateDecode >> stream xY[o~Gs̛K UZKBCw)-Inl%[ @ ̜oJ^j[.YmvQ|L #ο\?(Zi*իRCZEs>Kl6]QWxw?<{u=J HTEEP[**~V: ՙzN Ĭ>n :Qz%8خ^jhΆGSY) -$r8Lu$t,&6jm vg:x'3=$L̵M 1!3}D[X0Nl?g)\h6쾨Ltрc17vƩx$akZ*IT5qaӃGlh9ǦX'1:efɂ 8Ȃ2_4&ffC|A6 c}$LLzXX 5VkHsØO!9]Jĩ!zIOC͑zAuj5.Ț&C?>݃dtUljhIśW<[b1ikQ>t ;SXY)w`K$g&d; /iT@A`U[~oCFs`[Y,a3 2QY+Kyˤ N6B˹,OܷAB\@F]kԋSSt4,LyN+e:Qyp>*7!9|OL%Бp,=ǟq{sy~uu嫗7}+iֆ&t훫WW/8J,훛_]-i z!#I )q\nZTL"&]h]/J_3~}^md5JxL+.\IVgU'R(qy mFSֻ Z;e/(H-蚬j0v-(:`aHY#hYу @E+0~>ipq@!o69u-T"^Hjn{RIBlv_v2 f͢SHAseA-v.: ʲ)4܉. AUBAY$p\FGjՐHdϽˊO.Ig&]8, )Iˠ )HZFT,El $+l?_ 0FvGIp5soqCrS֐ʛLJ8n.n9is6϶eo`CPȎ.7rN`"bCZ[IM,&6w[mSjN.CQ"P}^g KǛ*k"<ޔ=fj@ܴ9SK/DpL?g5SxQ}ETO0/[<Hq až._jG[Z=Y4\`PBm-B喇C"s(Nb#'-?P c)sbK?dnK< CZ S23c}ѯ!rq7qM훊[J?x(#жRu#U9Y[MfIpy ))N8t'&IͬI"6õ"6;P&Bi5VFz k`"=ŎѳoC%7hxff 8ԉ& <] AOywIQgڗ`M*)Lq·&ۂ0MbgҿBt A1P~֩S +AMߙs`S!C͍i=Ʊd@=yRW/k:SUtC#^䨓{1(e >#Ek(" M!ICrӂcfP%v2AS/bعGeh+9⿝5j_(כLDqR!;!1#X=A` uT|$ }տZ5E_E4}dLw^~gM 3 *#%alC3.xD#$+M^1e+C2eZ&L3|@MxrQ-lJUwAsvrFaX\7=bL=`1h!v $ctH1Piί,:g4WE`ў%TLTA Ԑ A-?[}YvȺ<Z= E> gud~=> stream xYYoF~PJ֖{8 E#}H&2QtxH~}gv0u8h=f9,|HJxNBZof4x t \ (ZBY&|Z7mzzRB)\>uF+/ 2kl aDl߮~9Xk!PC|@EcLl+PGAm9|Ɩs-DAJ}24nh3@;EAU(h#eW\ZEmA UM4#'*dЋ+ : _pɸ&[lnOXFAQur ؂isp=:tSXBʴiMis#:ݜ|Z{K઱sydqrM:MZR(o|_8ET6=,}$^{^6 H *KZ>"uŤ2cBUYNa/men)(' I*Mك B*°Oүo QzC yrQf)h;[F-p, czsʔ1fGYUjCmKAcuk,=>b rzC@"Vp#٩v|"2 >⣧p}|;@a<-/m-W6`T?SabS`h!Ղ}@"BB?&2acGAHQzT4#(AL5z&4Os4? PV/?L'dȄ+h>愎SA L.HDG9=!.f!WKx\x> stream x[o6+6i8E-K"Ca=Jj2Inԅи,Q(xx@ a i7}`ޝ.`ӓ.FkLcx%}2c|Ŝ3;s)ny,*JTE\L;ł=-4+0T GqgeGT_YYmZb.s;ufGv7*nUKe|n' v.ϳUJ֠(TVv VScFVέ uDl!a\JWvr6Uu  ˲Llav"%PW`o2M'L9\fmvn$tYdT }!֙V PWYz8dxf@ZX|M_#!t o^/D"@`kBNBd2*"&YpT<83YY6_2+XG8b\R#8&R AB%VD2d~X-,xfIH|id361M׆]GiUNWzf1Bm+\ -p!ymZVC}֡OXl6DtQ:(i>A4+S8˕6,6 f)6.{v}߳gջoǴR~[Ɇα/fr1L߲Y!;(PhjbKDVg+%nr@M6E0s~azzlf:#Q37瓘]QӺ{ Bԃtg YBŬS{4wjȜfgFuϜF@cNek^9G ܗ@CGI0+O ]}HC ȍp%Ct܋a\)D_;H-@b L0&'0 ?%܃(Ev SW-a0$WhLhR#,32VdHe/He9S1T5?@B͠M}s8L肆w c4®Kȑ12ӌ,FӜv<{A;RGb^!m"X/惺_~\m-~6'5iX\/;~3E8">VL#vv8<;k t6^@ endstream endobj 654 0 obj << /Length 2310 /Filter /FlateDecode >> stream xYmo8_o'i{eqHu{T^9$ - T1S]'/!0$K&&Se}VE2{餉@&.αn72HcJo72yh0,$ my!/ Mm5r.X\_M[v]HTtB%m A߽@tJ%O%4+Ҥr˲f`8vuQ.)1pn-F}S:RxG /"&j4){D1v`,}= "#@)>@? le"jbXX<!~PC)H2Faq )L wZdkpv$pֽC^#ߣIWO|O~֫êGY/5T nqpR/N>ƾŦ&U펡ɝfχ])#c0R`;d=*# *gƓDK^.7>X ,"KBʈàPZ Q0ʾyĄla ~:@j= yԖLV2ɉoK:SrMJc@ ZE HQFLфwdDJMDVr=Y;- h%/ra&[OӱR鞕u ۇѦg>x ]}~A aȽ_e%wWEa/:_UݬB9WDZ&ɑ*W)BF Ŭ_ Z;j8g*h%̕Hh5= :YF|Z@+^yZKo4Ɂv8" ~|]&& L()*ڭmnYlBg4{D.f~vq-e#:ڏ_6jg#u]zmG daBz5goo#%1lCeFY {zuFulo~8"y:|^YcGL7Ya 0^,˳iҌ"18Af}%Qu";z /pLa>Vvy1G tr~19P'!397ˋTR1 wRߜuL:,[@ "K:m>?t^5NW)oyӛ'm-z4.-ྏ7'U (d /e9bm8ٱ/]J0G2&`PSm+Y2:H7x$i9tJ_MTz@aJzM]fqu<=ܿj@כ Y pW{79ёpBMSv4iM/ i9 endstream endobj 660 0 obj << /Length 1175 /Filter /FlateDecode >> stream xڭWMs6WH`n,ʸ++f8Ð I%Ϳ 2΄V}X $6}Moyug/\)0J"`{>v X'd*TJ./W3칚X]y5rͭ߾Xl;`3W<_9_"c@[IfAS7]1nwi%ҪK1V^=Avu7a2%S.QzzC~F fld2U)yTO5U]im^/i}HsoS)T'܆ t0`$'K0a PCaa]xR lwnÄqjea *gޙ&yv$ (ID=D3/#KSN}|Y\-G9ax,g!*!c; Ff6q?r/JuRTөg$.`ߐI1Hv;3sn\5z`uDxo f}MTn&K-H2vWk[/| c8Dʖ1 q9 *Ո3O''93Z9R& 2\\Wi͖ہ2Hx*F[P%ܐOd˩b=VY&h6din:mij RtX=ޚp$=;8q5L+@Ǚ1`#>! ʙlR+ҧnw%Cs@_i3I^;) tJT)Pkv}נ2j `Wj)8k v}8AO؂:̯•}šne9)ˢaVA.u%\Zb\:uf #|70 7.UggsU &TCk4\H;U5 0) q.m[&O3PdpPӑz0zw SUC}uRS7;^_>m>?>vez__XqSܷCr8thhٞ{u?cxQN1"UCZjѢ endstream endobj 665 0 obj << /Length 2851 /Filter /FlateDecode >> stream xڽَܸ_ؼh,$A !ah݂R>u:z4kpSE*VՈUDTШl9>W;6Lo6Ŗ A ӕ66okwH~d`ib߸x*E7D Q)Lk#oj@`,kUl(޲ljo: 6OMM{lmC-#]ߌр9i ,op$MQG`96bo%L$ltx5 n D)FBm]l&xU\[@md;啧kvJ]o@n$GEr`/l\Um-{/=-vSJ4˶v]e7-)-CsW7K'T޺Nͱhcbzoe}U#SNQrC7ILpexہ7+^M'%ƞ"eA1pίGf妠xؘܟkwNLzoC j7R.vzb!n(' mikwzԈ$2u^neϣ1[)8%y*hS(mgն!TëPe`Q'7/;9&)".wX&Mٳu17 \S3%Q.s pH {|q5ش6 MT2<԰F1sȴ`}*i}FD?tݩ}L_$UQWn7)G[\͚9Bb*f;Jxq-C4w o)SEY$S4B0 0V K\ vZb C8d u'O&SW=!veծ(-#+gžY\ *?FE%\kġ%oDelxl5Z^jw-cfJ Rym;0T ~$ݛwj ?aeꆎW*T"U| `0 ) u*y霾q%`XʸHz3 @{7ZVFk6$FV仧 }9?hJQD:Sab9!?mB9؀sj\*4(N48'DX.9j .$q2.t⓽-iЁ[ [,HU(Ai"˄Ȁd܇oh 4]& P"#FjFZ$7vPU| Pq%WPNbA*$ĒN2ld)y*+Uir߰`wsQ;on%hy^:aHU*sjhԃ w~5 /&M?~+xЩA@"8o?u_no9-jݔzi5ugmyҬȌYzdi48LBcza2T<7D{m7Aw7~B z5ixKiJGv3~ys?HC$ȻLL@Y2kx-R 0iO~6/VjIQ:,or߂,+AB}&s^:=;Xu5_4ڸ(JhzN8f 9"!.KcL.痗KxMqcfsl̹b˟d8QP%sluB8t`p$ǜ|# zgw(%6L)?sA@gIML''71zAWοzn4z(ozc@?P Kߦ‹ePJZk{!ˁ>OE.cgݥ.6^0Qi54=5Q$fu|CodAipK$2p>,B"&Wtf~:3ol*/H5i7ssPչK-΍\ze,M endstream endobj 670 0 obj << /Length 1895 /Filter /FlateDecode >> stream xYs6~_GwrIM=4d 8C>' )C{:?A>PlA-,]hΉf~Y`q &&3)K-[K٫]q׻vgJ߾ogzӗM-W2f<_~XhW3ę=S3,qtm{Mth8} "ak_!:2mY߄ Nm(uDs#уϫŠY"X)o'Zo8S =\Wۏ}rE"a @۬Bpxk upòz x|\xm9dG6\ ݾG9\Lk6gх,Aƺ0!CΧѨ`6_u8V d va3)昋q<_(5LX%I_l}:Pu4TK ]"yI 'Hll렏y;È*>\xv.*"كkAe]  >dMxʏpn0|B*9Ɖ7;(c \k呇?E(`6e9}Sp;Z*v5Q߹!w*<6EYH< SjLQo缨cDE"zuD &ܞ8bӹ~;meq3):轴~u:"ħ&'&:7W48piZ(xp*J(~y[VjI(r̎|f:=f}f9ѨYfVӢES@D%)&Q(hRHayz?q NnQD!aToĽvyiW,vFI]їkb|\> stream xYo6_'mSK #5\`+"K>i7AߐCiI-qr0(=[Qcf{Fp‹_~| l;v쯯Z1J ZuxEz-w!2z#._پJ3!/~zLWqH#5p(= j F Bs;%Ww骂?(Q>w+ \"l11ћz * hWmm. (VHs.Κe9HD }s# ([+-q3 } _4dSJ(ӁzEM.ł3|zכy>3b>ёVcJI.U XP~p-b-(~`W09S OɃ1x+蝥E8/U99t/ЗYWըUkܐ{0K"w:`cbs^=@6krWWx3H]&;+끟w^q74,[JQ)$,p6Eձb981 } l%{0k3>QlvC3I߀n?#Ҽ%F&'ba4h~ϵu掳%Xשۯvq@zn&C]лi>74!NԡJʧ_j(8>U>KMs ߛU~;? j\Ѯ_z:NwoQmI؛@vاH䐢X*,$"aJ":&'qBP! 9A@<)UoF|vYp]W؍1D [3sH`BA<PªK#Ѫ.m PPK5¹"i@A rO^ `Co@HUpCI+Y@K[ľ,4Ѧ &?\04UX<Y<qmj7af1ϒ5SUݲ&6zm {|wf/iDw`2ܹuSXuaz\Qy]~j>MUvv%"!9 I tn2f᥅<,۟~l6&,4:Wyfn4Wщ'O R J؈!}LnR1`ya@ʘZ9@Cn U bYkzsAquP .F2hh$&qA߇qd7gf(.ChMYgߴMӡfu"8(ʿ -!J#v,@,5r9T\Ȩ>͞Hz/bꩥnćpps8:p;mطgO|O#t'^fK%`PśĕC&0J!ilĢuz|5=(?![8GUmv5~ Խ7'F"4=ixt"p8%7j~l 9{XثDkl M ZiAŃz*9z mkkk|0>l >fz Çmvko,7)F_m<۲?Kz |WhS/^RiV#$'$'$FE7Rbzu4.OĜ=:7j1JCC,G<HGp2ɩˆ؊rI=_N|SIO^F|j(E zS;lۏڒe@:__('0q `0c|)n o^<|3oxR j JYm> stream xZmoF_TQ~!Eh4EDdGR5_3;˗)[KP<?|2͔[7̯6/x[jB7ϵ^pf,f6yvve\I)rN/K'z.W8?^B R2eb8rnpgY$Jh<;,N,<?.H\|i<.Ǚ5Kv^kW㥇ƓܥJTHNɻӀ`i+@{][hTѰ鍜a߯Lp|6%v 8^j.餸CTJ۰C*;hPXTZ0pbtp U nR&ʘTk|٤~/K"M9gD >(,n礑63j=dJTu}˭%xs{ *xռ*j 6e;@POeW3_"Μ)>|T/rœ^dқ 0 ѼirOZ_ᯂʪ@M6%}([xsI]5MjmjOQmKy_h; I+TF^4QWeTP uP]vSvfWnH),D\רAEP"5MDX:7 ~C!Ykzҩa-#m,7|K&v)ۮB4R]͊" Snz-oJʯ|ݓi˦-ɉYv+NuU779r E:_c})1S'2'Jtt⦤u͖Iee͐o:b_-O7M O5JriC) max-95;"Hat{҆L`J\M oԵi SOM)Dr]Ez & #D2 s N˗u&_(=7|s̥ǡDIS U :x29[Q]@koa`3Le+J4ɋ+Ж/`!DuS[4! *hDm`gY0*,}xwa 7!cY`bm`vNE \btǎq޼|9[>N,I>ө([5/RV%~/cSMIY1:;ZC(Bp8c~i1;xAA*zؾqyfDgJiC endstream endobj 690 0 obj << /Length 2104 /Filter /FlateDecode >> stream xڭX[sF~ׯG&#;Yv4>8. Z`U~ӧaeV*MӜ>׈?J*V:Ygﶻ-~9n#ʟg?lJpT7Ǭctz׮7J(~hm[yP}z#my׳wQ;Doh(D’M4J[Tu=h eZ&ўQw/hkFD`^G4e@;bh<4-z;hFuWڠ\VU *\A_qC@<ѿ.&#]v&\X`B/~kc//$j=>hCA4hk̈z <_a"3 JܽDL|N&L e }O|b(4;u+\;:Q:wYP`5>CTop{\6)#tP!OXHԁsWOz >x:urbpTy')qy`̳ڧi!E4V n@}Opj053=kӕ̈́);P(fށ_cfmS-rm]hkE~w93bvfJ3eG:0@ozG}щ܍H3&k;7py$v?뉠ͨ44-}x:URyO`Gw,8(>_ -%mDDhh^l,cӹB[U#Q%ʨ]_/-4KYL7&G=Bzp`֪yp,*Wb]sCl~z< syv Μ3pʐ5j“NpڲOcP伥1))( -Px ]T,5|hMM< B"漛Cwl3o2e/s2u] (5M2>7VKJCy>͵o 7dkV'fW~BCemم{)?e!lKdR8P*">qp_**wm$pwf7/d:1`Gwf^`.7猬 r ƅC`}e~/D~R&$< j0|mG  : d:藍2L$/~:S0A-so?|f1 N`i/¥eB B΅)yxnS9rjl> stream xڭYsݿӾN;j7NS׵'Ǔȕ_EBi:ьǷ}RS4XMVËV> n&ܽx& W* U)wώc\7ֆ:7x]mlz&Z뻁po!/X*bX_,&MizJ^;4G3β6a%P $WU!+_2dHti9{r7IzwHr(P<[܁@Ԥ7U GJS5m /oĴ³ r mŻ;`UaH+51jSk;>X63XcFk@ q{ z\<2'$,ьlLdT~  xR%Gv,gv'cAYJ-Ͳqg>;In-8)]h >쪮 4k¨F^-C$F4pVA>ɇ`#{rIŃAU:yriqt*m;`#s_C]gL1LK ~5,dА^ݼl#9qVΒǂIʪ;w`|U+)FtF+Oz J) ʐt! myNEζ\`ioB}y˓vzǺOyƙvF"8QU)j+Y-[k9LGt6ۮ9pvuVb]w#Ht|˛6.xIå׈qaŗ!`gL ?D,A %C]Q0zJ h4tu3R1T`g+ eyWs*'aDaR4ʴ7܄D|N$߷wXRwίǗcѩo9 =0\Ц1sxZ+Ա7ԢjDkY1*0 G{C}u`_`0ZK8TۊaNc@YD#' ^6 Ł kb.Y_p$DZػ~8&b(نFPdcsmF7)QWQzwP6!/$[49#yѐ0ZM*o% 1 v@ؤuܐ "S>PdV;s oigKiѤ˘Jd YEO1)\^0),5`(ƒ]q.Y h[qiTZ %Cy,C-2 5}u{p"ka. mr-r#JEe?Y|P1kY3)Z\Mn-ayʓҳ(kی$斠nx9{j'9VG-wbJ*gWY<Ԏi+ p)Ꙋ)*CJ^yjZ W /J? 9:n'uWEHйG YfnZc+>fleu tA_!-"@櫫lۀCܩݿ!\ (G$o SmuHT 0N"UvB͞%X/ VO=LP1W]0QFwHh8"J`sk0ݛk8%ɮۺz.A/5\ZŪg mUwl@hȡX ǶЕR; :H";N 0z餞`cis \/j9qrn n`F5.>s?TwB'ֻua=#?xt3]&ȹ? .詣@W-} RTLM=kܦܨ25$1;io p,2 m 8%9~3EcG۪G-;Ʃk .IznAC?N7!?1?/ZO'~" {i4n*y7RsF DOGz'yRP2y?l~Չ@+ (|}aw$t.5JF-q_8>NAOj(?{e E~ZQ0Pa@=;ɲF_NkQ%ٙl> stream xYݓ6"'!-VnZ5{1/ibہr}w%ٱ7%0"˫M(IB'$fmΨW7?=c^nO0Jfjomә"23)Ut9牛y25"ڕY[Te3q-xzbo8(ydb &J"Dm$aB: әu:ɩqQ51I4mk87]oc I%bF^%|6D>`E7I$30ZO۾ߐqE$Vm+mcOi,D3D__J44([+{7f7Du+^QEd(% E( 4C֯ĴfH>>? Z 傲NlvY71 Ok7r+@r\<}*l΋nkw̺MC1I0妓[NY kpArYٗf/yɇFgQe"t~SZ$Cɇ5҈Kg eIVqI {-?ߚo۴ iF4/s`GNJ}}-̌/Ld3~IfDzqP$Jƣ!c05O/o.,XLIFuCG(j:жԳrn`u%[8ApM]mꊾ\_c1-1ADtQQ,_!Yָ^uW3"~656j=tc+@KvA Kgm4peWݿ( h$6T\9UD/nމƠ&CkԸH`BxvP8.XOɃkw3sԅ^ULGu/_ُnkfKֽڤ&\Z*>a~]c@wkĞJ/"]U;1]4$} \wP޹xF}6dG2! @]@}Q~l.rMn>(V}-K ^$nzKԻ!= ]iǺ;h 3P#ǸWR(*ƍ:聆IѡA8g[i[(ozU.FdJl V~|VECVmi]4U ߯9A ԇX=d`hNۀ_Y61&rvu 0Kxԍ O7Ksž }R)6Oq7zbtA+b/@i;ZnT$v;kK mOB=M}|@S I1^.tE}F ;.LӲfmjWtQY/|@F0]̛.3Oξ!js$<PO̯ vd% ˑ@^t/PxE endstream endobj 597 0 obj << /Type /ObjStm /N 100 /First 877 /Length 1416 /Filter /FlateDecode >> stream xYMoFW=t;3;[. @@[7Dl!r@"&RCq>~4RUNJ l(A@9ʎs$2!KOu!;̈́hWq9+%]ͦbsq12Gu4Req;%`O)@ڞD.f(A_c!A .CUL0H!T`ٴC IL.IGJpiWP-p.$ϔU6{t@(&U$5!;H𔹀L0|)|d .NP{)'h.@0ELRL@:+Pg 5ǒe 'Yɉ%=^%̭]IpUaOUM,g;Ȓj&T=KbڋHW L ECX\p7%E)-xQ 3) ŅIŊ̦ F#JjBf8XZ~mJ82ňOk[1FЩ**瓓Yĝg?tU~1{s -jNN\s O ^{:!$ܿQoIکf=غs<}rw[.b_ Vff}/nچ>uq|xΝ$c@ yHQmq4Tb!4}SJKv :PCv1W !I6RL?=J(JAL){ (;BCuXɡ4CJ6"-q[S%歃 l:@_ TTbJUzGTqj3q$Nߜydsޔ2"C VC8GPR/) S)%$YeMgA\mtK 7>ԏh|L*-8 Sm0|'f>RqRQo#7ԗׯŘPNIc%c}?k7NYxapjGʾbLIno{vj۪ez e-!\ϻo۷77r{uoji;{눩sEkELXN/e~׾,:PNp,YN¨)Wh9i*Y`goC8TK!C/pS/#6  N8^>9y;?kݔh7L S8?Kr/&[w2A|$(>=c2|}eY\5o7ap}s?v`sژbmp6o2/?ڡ8yzF by3YWEEq?Cx">B_uE_' endstream endobj 707 0 obj << /Length 1182 /Filter /FlateDecode >> stream xڥWmo6_a`*,R-gE'pSY `Z,b2)%H(N A;{㝌:Cz3hu6Ų;[;WEwQaӺNI^Ѣk{g.v[dgxIz1> Pb:}4ӨklM6~t`$hd8p|<Ô5=+25 0&T(_g`T[LUeuYTtZk-X?µ% _Tst[Ԑky"R1͈x2*K&D } -|*-Yח,|kEHQUi" k=y&Ry88*cDZm[ R)A*SVD7P E5:3ko L+mjVbIҴ]4)K}Nf4+9)HQ >-/IJ }IA q"2y I5@wQW6%Ū~9rϖ[j؝gi+mA .i_y!saaYlEIB%DH?K[~&lߜd5Պʙ_}8/2%b[!&ێ,Kɓևoqz9iv: Ox>Ov#}4󝼂&mŁ* s)|iVEӞ =ݯc{G:e8i[>"3"~s kz endstream endobj 711 0 obj << /Length 723 /Filter /FlateDecode >> stream xV]o0}ϯ&k`6C%Ujb LD 2M6`@>lӔ;{ d! '*HpV9[KMq"y7uȒ!@0U+vD QdmQ1;SgbtEٓRtxI@'=/U:[]>Ԁ!eHw{;~$t1vw`Nl}4Ohq_ cIs$A,[gC5053%XL!rB{/>:zVEFd K)$} &WxKH?b ]J}j8ĕdwW(q6i*Xd pxKV>Os腘+"$j}Ix{A"e0ז(o׫%|gÇg أfYѓ5aY>d=Iro* jk&= */$q\V#6MK!2\ V3Ԟ0$}+8!z퐐T 0QR`ly7$mKVݻJrS^YNzz˻W0Uonzag_.+׵kLZba:B[vʞ-Ι}Yb4O C`T[ endstream endobj 715 0 obj << /Length 1267 /Filter /FlateDecode >> stream xڥW[oH~ϯ@7 dJ*M"pvaer Y җ<1 ̶q1CkSH ТR_g(r!@zb+u/Iް.dpIB†ek?їHn&/J:Y,&ZHw Q bP.&L^6[LɧOy9–3u!M@$漏etcE]PFuW­54{k Up\C*Dq{ge~&=?Jmպo$R7Qc^@wVT{]aWvlw :ZkFUq/n±<ˈ|V*48Cd 0݁xXbƈ:86-^eŊRP& Q4%'܉b=p\>3zBkC%09ߢ\U"u *k2 ;1eLTƵӃnZU԰KЪ16 hQdb읎Sݡ'lP M&dKr.ccdQf\41-3ۑDum鰖0L/}@i=#?gUr 䐘3s;VzPԑ4Zrex瘉xqѶY]*PQF  endstream endobj 718 0 obj << /Length 985 /Filter /FlateDecode >> stream xڵWk6E1tk;vrt [5lHr2O$(D^~NN6d\$oz&9,ahu,=u썳q'jMg)(8sk\6-fgdsxko/7)7R,/9 Nޗ!febs0(kH"h?V4[[KǓwP9qv_gU2.G LHeHd(G1< iBv>)?92~rGA\A Q2oH&5M䂁!M+m@l7)WW!.!I׵ﯔU Nx* ?`*vHCh|58(ۏEC $*9UZ1pa 2?{~r>LR}i)SȌ~;Q!oꀩgb&c{$-.JnTdag̤ 9jq!'O1H1:ߤ1 ɡ Vy+q}SR& ՓJNz'R܍2"$7* QFr4+PnW>Ee&cuG7uvg:aUb wxvFBbaoN/!vqb%Ri3΀>!=;/:_[Re xynw||T/7JxΒ/R7WXXR y`l%/vOQ+˦kjL\O CEҗrmD/(OCq1" CѾULբ]<"GHcqRM 4fm_ً!}z@趂~Ҟ4"$]L*.4]%3HC ջU\⧇:Z q endstream endobj 722 0 obj << /Length 829 /Filter /FlateDecode >> stream xڵVks@_hGKHikZjO% %Y.K6{={0ib#m3xg=!5@0KE ֚G;T!TGp#ƉX8IOlkBUjd7#ɂ𗔢eNV;-N؇¥rUwzd4, -KQ.@bs^r{ͱoTy/Pjh&<DIn;;ݧ{ćAڬʆ-!z3F$K ?8|;:~US6sAoߝ|J]7-a^Cd#;n2?a?]"wc.!#"Oq-Ci:=S;^L$JZwH`*e<غA Ik6rLDy4wY8va^b648VL| g4:OV#vuhCmߧX6/T5 sc&ʬ.`P6UjUA?r@c%JKtIo_1aȣMr*5\0j ͜43)MR. m1]: _Hpu('a:)S^glZ/: {9> stream xڭVێ0}+6΅Kۇ"j_*V $Uobg d$Pj,˘c߷@a%o}jAgq<91-2b% nYVg۶ә}b͉92;].fS&4/{49Agl̑6lNlE;,`mCE!4h94,yL.#$L v1 # QCn%)BmPPxR̝.:.P"N :0XyE&M!r0UN~ !l%fAC̢$+GEPo;NYA!|ѫxp *QIʳzH.Sľ{=J{N!+M[)ju .x6^y 47MZLa rH RL؅,hW4'T5B,8*P,P|cRUX {:ߝwDt_Iȡݲ#ʊG|1h&!A> stream xڭVko0_A#uM@MSҤ]E6s>h&mljC2H[foOguiuq4`cs //dRnYVg|mL}aaǶ7|@#bsNa ,m0dk#;:2[sтɯ<% iN,>G0gbMe69;;ã":V2!}t=?%d_xؽGn.Z_Z1ſY]t`x> # !qq%YaqR xN/ --M…[&u[%՟Vgk*IK:ksc4ٕr_ k`+£Iކ.5 \D IwNDjXyJt=RfN!u°_177oETgT* U4ľɅRVJBFo]e$::\ҖhNx< \䪻&bA!yGLGJ6a!]?BsX5ZaNIU|Oy-0pyw吰ˏ߻ !Kq+ {&D9rWmaGt1 Bv|(V?AiՕݽBǧ8R}oe)m~.#c(\ ,n_BvyL %J⠾x̣T&t2%WTtGI\bg"^d2ͶIiqpP endstream endobj 735 0 obj << /Length 1359 /Filter /FlateDecode >> stream xڭWmo6_a`*wmQ5E-؆h,jGG9r,<{505q;D3e@,ӹ@]x6zy4&Gwml;M^ u7-2\u{bz?Og3! ǘ,2\X]vOLĒ;^ $dr ˳.Ur> stream xڽV[oH~ϯ4fov\^!&jۈ0#a M g0ȫV<ܾs,!mlimcNvVu7l~@Fq;w] Y#OڪXOa^>4lǿ qsSR <֝x1\τ$9_bu0=mtv4)+Gm! ѬhWdU׻fCa?[X TwtUDې>qZtg{lHGNBm/ R, S../{]Q 9Fr{e,fMHp XW /79'y@ؐ`:ZHt_lޢپ|]M!eќE^&`LB^8'3ފKG#B):(*CՅ z7X>R v0)UiUɩX-$47N>vph^W׼޽0 ,iCV!yOeb_?:8 aQm6Ye\[xL,>1 Vlz5F=o }6YM4\R i@]x_Y,fD?9l Ni&Yr%UrIRbIs͒pB^y`@nRvFXRX 5#@:&b^\#S46VL7 j;zLv,K[6wW [)]Ci_ %S`X&5|bO'Kٔb5.KN,G{F*bD˄TLp/•SctD^?D1dG6$>{̨Qe_, \@͒ūRH*ionbĖ l!+*ۏ IQcO'${ endstream endobj 741 0 obj << /Length 1120 /Filter /FlateDecode >> stream xڵWmo8_vW*TB=Dr Rz{+j'Qڥ@Ҥ/w:!x3[魡ֲMS-w}Iv 7T,ϝetMjC=Qᤣv^jO~uLqQa~4qHaRnSRmn=U7{INHR1 b$%1J21b^^݊9jBMUC,NXu9`@2?{D t隥l#. I6D XQuY"k"hyd!8Y[KQ1٬(q%C.R0Gr۹AbOLWZˡ. V 2¢B _xI5bb6l rY3O, '8u~+e$jR*$l.dc(l? [&~~K M׷@:GWݙLO$vEٶHS3?&Wgt>M"s"d Bmt|;v~sp!6feϡZg P)q!zѧ&燩\Bj*1D&-<1c~"ɏ[1w۟jpNMN¾x"+L3JJOoH鸹@^(D߯[ T}z#0DYskl]ڳzeyǕo)b珳`{˓&FQ4v}JRnq4/G\>;T endstream endobj 745 0 obj << /Length 1228 /Filter /FlateDecode >> stream xڽWmoF_Eǯ )M"0jˉ.NUbI}3,zC?TY]h.]4d|y *жvp*k|UJ2L-4O͖e -͖5:b59_ڒm$cjW1隮ZhYnZXBIM8o+$ڋD|#7(G19h\$'0vQgnh [6alyq=ֹ8@/py LdG" Щ3^S /Hv_G5b=C;^;hUS3vgWef(b<Kh;pSRsG;^RؤH3R'p+bXD5xy|%^fY<#clhJei03tݛM`2WzO'r̲"7P9rTˣ#IFPw{ I.qSGl]MǃjPz_hW1g5P/ $%Y$n$Cgl٠[K5ZSQ.UmP6H]M:oVl~ޫYnViY ^f5u3}8 ng#_d )+:UW!m%.o!> AKBWdv[A!jE.3mHsaLۣ`kM*xjoQN; ^%[wV%@O\p;Uhj+dE"<ef M7rB (|%N` $I8bS>"s-:c -ʒIc?{DjF$#,Qy&Q (N}= LeZmM%0E➽!q%C.R\9&L dX75\2@đ0$t0w8! nX""CXfOd6/'[R 'ԆsA8# EB'?O00?~9o_no<];wB~\DbReuvu0;ȹ[GgȹX܌D3Ozbv: TQaK;ƴ:Y Zt`;E endstream endobj 748 0 obj << /Length 841 /Filter /FlateDecode >> stream xڭVmo0ίI8o:UZ_TMS c`GNR6%m(Ury|$mt] f {!P8S9}VhNVC #y8iyt][{8KL'tN [Wï28[R*9NuF,zW%vF6eEI{ ﰴ8FarA,#-6k>Uo#e`9L&!Hga^ #0KsNN@2i,:`́b@YIbZXǝDf:VꜝהM4rmu()"0#¬~]Є<ŮrB肁#w_SqLM!ϰnΑ}[E2ܶHD8gc!Bƽ-l1O"Q$FcabWMF,% :-)3t:8ml"F'DbQ}_Cf2tWB]?eh8W"v"&rY\{4-"6*zhQG:a,,^ razKN0'@G  &r յ%n=!rq8H'qGZ>ڶfaO[o x\ٻң!Bxߩ ܨHu<[I+ӷp* JoQst^YlPU4cNķ!|]meU[h˩RF28 3мn#r"wDN,wʗ*\N.?j8?^]Bt:=m^ *+EuI2u̹j0 endstream endobj 752 0 obj << /Length 791 /Filter /FlateDecode >> stream xڵV]o0}ϯ&ja6mmLLQc`R4 Șݴ>gIN2{= 0©HSu"؏=|A'@yi-4M@) pcQQXTUmtd=F>Ǣ ws,t-!Udaa>f.uԩJWklb> stream xڍSN@+&M )8OZ4nlqeʚiR &>;` ĆqsP=q}:|׃UUn n{9 4A1C`ݤ "hMa^ i;˿J5{wy" >a!)͂$4kjB#Sj2N˵3k O] ŋैLa|+ċ4Y$LgE\Y2H1InLƫ2RB "fJQɚ8 bHZcXZr]7\l>i!:4(Z&ѪkE?u:_ug鞺!H%֠hY'yhʯL6gGÞK >ᶄbi)(}a= endstream endobj 761 0 obj << /Length 1748 /Filter /FlateDecode >> stream xڥXmo6_oI[d]"-Zgð#ѶPY$۟T,[ bx<=E" , E{jYӻWpz(ZeAUݻت}ۥ/xva]KzO7]IC/?V?ZwGB|yeZ&L(Ziȸ IK,(qz% !!!a,P`r`,}CS|w7dΘ/e} \raʼnphUU ںlvny۩ z 768z8$Fw-x/Ϟ 8 9:0jЬ{T9M#a[rKxVUkXhqsN)p;&}$A$#ktDm9AVXRe }׬Q<,#H~06>Cn(T2d]_ޜJxezks 员fo>5ݍR0]rL1wBx$|@COKPL12yr]3$!u1[߮}UkPB%ç-qR4aNJn[AX hԩo-+G!-ada Am6GZDv xmSVjuӞdP] Rd,|IY,cfo|3X_ BFp1ZP5EҞ"nKBU3uי'1&%S KffO<*ONҖTxZz0mqJf&˘4Eҝ@[iFTWnۦ=N{op^.]m2~ T~_TǕ ;u-|:*`A 2sx$}-^ۃ[ mh 99V`+B1{КF 3s2g>/ݰ˔)&Ca0Dž)C&ra51 %Ip7eS5hƩ)M7 ]w6A*lD&k i,ۦi,ߖQ .]5$qWY<"f{ ԝ8(s'*/M=Djޗ5u(N2D!(7$X?~8cA:v-4VH0"aQ:j \L(70*2S4ITiP3[.\qر] +G`Ur ⾀Ùx$4Ce<}y$X(ia0w v`l`<9 q{!,!2M]1ULce7^(nx.DдH-O A!8~A:Kʛ3Rx @+./,y9y>ZY l??9(D}./Kl0Q]45O=zz ǕBPYƎs ' m(CSwz4W=ܤ:$Xxqj6Jt̷FJmY5ׇR4xC9A3WCk8]"sy})p^6k{(i䛮Kź7UiPWGNn1`__a}z endstream endobj 764 0 obj << /Length 1535 /Filter /FlateDecode >> stream xڝn6=_KEɒX$Y"lC(-6JIuwIvA C2rᏌbwR~4JWAzbl (_-N^\NdXZOU cRjtl~`]c/^ki10 듋E;'[9=4 T9lX'c;)e27׸^<$)e6}_L 7xts#moP3j^m%˕bv}sS]DO-$aR3&!V\T~a9GIgC/b~>~>qC3^L~$,=lV+Z$NMM m|BC-hn^ ׈8|/k+xcNNYqٳ }SǦpR%}<|`z&V1MȲ9r)Ӈq[L k탱YlK4wQ8KhAUPWzJĝKDQnڏ߰#?STS1~i8ě4Z?ǟRO}X a#gM=@A0qob%^>khHsQNh~{`5EcJԡ] endstream endobj 769 0 obj << /Length 2678 /Filter /FlateDecode >> stream xڭko꣖}0P׍SD2"ue̾Nt$-9~Y, EfҳI?y"o .3,O}~lZk>_J ?ՎmZ$&|{9)H" Pi6b* Q īur頩ҶA!@) 7똗( o7}l.6p4 l M xl]q儅e`AEp+dQ+?2e'@*&.ؼ+_ }hvQ#X{v3 T^u &_z;ޱdD'uWUkI*(65xpv7e m;w5oj+{o J& 4WJ]I}¾>%u(oVbXCeu7wn3 >Qϩ>l)S:!2 xY⹅c%oPX\[AD"ΘfrHNਦTv$0]ΛE3sQ,D Avf> I~?cEBί>"ԃ9[{{C E89S$YG``/8j0nOBPkD&"MDpbpfQtݿeu]Esq0'o PDFg; Op}Dy$צ^YPt=6;OZB/@q<"F|z>pb۷^D*١C;?j[1טЇ 3>`%YjwP%l;rAPqPcIM3(#cCa rB$E=Oapsf'>t2χÁ3*3&0*;;ǣCF{͋旋o32> h]1osAd"UQ{=h1ǎ !:qH)$l=PI(s%mESW>> 1-8Zw+[΀<쐀KL ':KʏR?&⪹ f7p"Tä.&ڒ3Kk-t%cROjN,58J/>)0VQnK=%\i˽)6U^wC0pSf/4B "XAx'%d0_WO\w59d[sw٬nv#&uwcv 13sI9?^)"Uy]e^=/@h㇊CsG3; JgPBà~{ @;u~01UhceB9N:sPW9mIsg|ZEq,bE+vFl;vfuJIEEbW[S9>e;$rl8`L@2IzVKq!m@Bc5Tj@CN7+p, |cA8ED.>Ц U%#j\e@ }5aM /T Ԓ#{*5jgΚYuй%.7Y91hG5CH)`+lFS9SجԵ\9E< vo.H}mo B+dC^}Njo/j o 7.5;@\ߩfk-TJ˷)ye.7 g T?_+h׵? s#1/HY% ?@#(?*!h?.\g|0Q_F&: [?<~p}.Tf/o0}PzX$|!D endstream endobj 773 0 obj << /Length 605 /Filter /FlateDecode >> stream xڕU[o0~ϯa@+MEcOmVuyo(Y\ |sP?(0H 9͂z'k_vrih 8@?2 sQTy܄VbdBHe(e6Y˼.!2_W>6" Ter,΂$1" F 4 +qahnH<;'3r=OϔydO8GtI6 O )/as<>3عs7xL"_/~=UaF(%/0[g(ѿ#Mpd`Gՙe®ʺĽi+|vé8n Ax۷>vRCýeBDq'm;F hd}uiBygrPR:rlY'6JimgvZm-:݈/-.` ք:bjqJQ48Z9yj\xf$6QLr#k23bePzV5rur{YXk/QCt endstream endobj 777 0 obj << /Length 1675 /Filter /FlateDecode >> stream xXnF}W~)[,qRA`8r_%&JQ*I%p3;k:E0rgΐ/"$Z)Yb}nA7Wϟp/`珫'=z#D _nV>7Y /CtpM5^^,Ca:^]|)B|e/00V1.2ԱΗ!AF9cHM/_6ī ^7KVEqD:QCm2sYr3'Rpbn#Dvcs6- 囬ƗK+^E5ivӛHGz:5E%㚓"捋A5t]n^ iPݭ󺕲n+H)ꉰCUe%:]O_Af޹PwS03pfc"fl~]gVO髳CGEQ7)AYB7uDNbL:+͜j0X)4;{7Cs Cu("9߻|Z)KcZ g 75:B^:3j/x;$Mup"+(&U,|]"-P.4At!=-e Qw b&yB_dU>W%Z;c 5PwUS%,㠿Lh,JQ&xVI(fKfF,V}SL"T Ԩ7aݦW`Ư(B疷ԑh`%1M :D3L(j}6#8,FŴRƬ|Wr͇Cg'JՊq4F?㚬; r"T*sLMK*S J:/5EĒItTuV׏#pLV꾥 #X}5ڤ~qܓN~:zuz,'<1+1LrZ w,zֻ!)RDiBHO3hG2KlՁǬou7|`dAw\LUD oےx2Mf봐wXbvxضAx%QR0RFx'( ?YsBهINB͔ajM+:lyHZL/S&8y.]3cLA#r#i2C=sshl;x+F', Ƨg1qQ2>i_8Bsg*ߣA '#<63긢n*_SgC-l*Ƴ#o.(N ,uct3q&]ϻ]ʬj:)ņz6]{-o{e1"eeEA҅z78n+P0au6qODV KWɫZsR0!~ԕZ2#90=3? sIH\;MuQ;Uq"p51Jħq瑯rq:El<40yэ G"LmL3&J;ZĆ% ;T:.j[ܭq:l2B8?ێ0f#kAc" \gA"GQNH9,n6ҭV!bLXJ.;k݂  %TLO7r! /W:( endstream endobj 781 0 obj << /Length 767 /Filter /FlateDecode >> stream xڭU]o0}﯈B"acqVJF˘DŚ_Ͻv6Sц_߯s]0 gA&Ts]Wf|#H"7Rќ<(6ǥup.6"BI.weEDbŘ egⱡ"g%YJ%AE|֔{}!- 81|f]6Mլ5ٗm0c7dOƊpAKbRHp5;VM)}AS=SESh`;,lR~U 5΅Gh҈ zSvYӘ,ķ21$;#Go= Αtg(ʘ' ϩHN` f0A3 t$aU~`|:ʱ=Ȫl3 !%Y@rz#}]Yo2fOU;% QR;ۚD*'S ^i۷5L0x w o/ݾqeX:aĵNln]AނȝB1>< wzD*ٔve(Q Y/O[$cʸ05>%Gx> stream xXKs8Wj">'=Iٳ43X%N(Ç}JD3sJFwƒrzX)b{,x+i\`tG{z Ka,.[\nuݙf*YA:7z'2KszIN,yya —a`5@H_a;7KW6`z!ڜ ~𕐡?} s9XzMӪL] +6rÄB^okFn1ϴBg]7ڊUmǣA$ O=8y):兾/,*lGd1<[u]k`\-I֠׸t:_Jd eMeIvЯkl}=gںՅ `Fz;~N(yLTrC;vYpMVN7L1?(@txϻs輾Cp1^ƜQ~ZD2)K"5GTS8H Cd[yUFˢҙKvoO[6!l;]%Ԑ/4\D^$T";b1T() V}^G$ I]yi%`h |2%qn IBA8lT jY(\2îgǫ@ԟ ΂iN]ؗuS``1d伷AM Ǥ,o V*(_;LmHW2yx}Aډ]1|DӞ߮V=Xbpk*Tn4\:`'´IP$s+m^t^h)U^nŠBD_JG!,A#$f(<(y.ʧ\@F4zj쟩 O K BkF}yLĆ1όe3HO0P7kf1MI\ȿa6Unc[ZZ.F WHĪn2ć;f}wF>}W:؜L 3T]X[hrN!lβ+7R5LTِ{(09i]aILcgcy&=I=OK@ŧk9/PT̏ G z6xܲk] -8և@پśD$SAzr` 1~/ ЩV|a#_3w@;3$t"k-pm>}GgϚ$cA@C#KS-wm1T<[R#kTPhbb"5\#L?.w[1IyZx B$5k@ ~;J6b[KCYMV^>3%/i zOڢDˍa1 7А֨t@mKP`Tt j3%3.t.UEK,f G W]NY -2bʺ1ظ0Z ܢ1LBf}ݫ>S3p[V7/)#+-' 'UOӡ)=Pǐ3P)llxS|}a&6_Rr@c"7kLw^v 0`coRGT)l4 {0,H_62__ary2CK endstream endobj 794 0 obj << /Length 1825 /Filter /FlateDecode >> stream xX_o6 ȆuZ,-mwzۺba=X4}خ{uZ")~LGQRHe 0To?P<9$r:UFxgb1c?bm13~'^Kwru1,B/޼=xs DG`!#,LPY iHB~8gW4:8>MI˜Yr0: e#Bk;)V+)AčjM{ zk^.t)*+. i J,nEQVr pc4#4BR:T6*`R#N#pf:e>rviZTvp\l29XMG\` d%$JR$50I.!R`8iG9RdȢ!%zWH>1io{|e5韄2ca2hLb;f=pz*Y%0bڊ& \xԲ\ȵ>\dHYVcwaA$]݅Z{w}aGtcxUrP\XבBZA;eY-/w.lg 8-Q-N..qX 9+|0wU93"'Jl r&j;>mZ\|88\:?q) nx5Ͼv )t #uOczgaQ YhjXTˆ)51di1c*tu I]-C ٻ )XPbqq.^"2ʿF+ns)Ӗd2T ]E_"ږ{d_4 $g#XTS;RD̝t>א~Dux=$DEI؆6`Z]! [sػk400gpOX0TazۅF>=JeҧMK'Wcg|Jh;_ bJCzeci]`ەz9%AFp cC'I5(t9R.YIMii~xS|~e.Pq b?/3ʡE8[ʒ½܁Ewm^OXxjut/q\0rYigGRMEWNlDt 5 qj5z9h+ ! n0vt9HJ@tx)r \tk&9>k`0R6CYZ΢&CHє2ލ+nتx\tOG8: z)ˢ@Ʉ`ء nn2Lw>Qoj=$JX8 ،seԓفYƨ wZ(Ce%ʷ\ ^Wqeձz%Cd8 n%:9i%vsgsͻfk@YXJ?8f$N=t-q'h0KgH$ƈ9[90Ĭ=+M `Tk HVeWBjy6`u -ou}KemK;?̈d_$SJ;a}SXA^n"xIʼnm. m3ɝy¹SޑRW; 3514%D̡Uv+m/:\itUlTMwn?ȅ} $wQ000 SSD`ET\Xg t"T\=r(8F%}b@z86Aǁ1T1\4 Y읛YxT'vB endstream endobj 798 0 obj << /Length 619 /Filter /FlateDecode >> stream xڕTM0ϯf(%&muXxR,fP0n;F*u@ytׯ eP c^$yP6E!ŧqn|u /D!]N_ثc9LƆQLa$]]SVQ®>#BTvכ7s]?Dye،mnmip#ؾG>̌ݓsoЮ--nahtx<% eGUhp(Bc(H2 ;OV ]+sEr!RLe B QGtxfA$c.5s)h,j[298Gʌz9ξAnWagXi ַ}S*5L~߀GSܸV+0r&1"~n!oP>nih3"j0po'%`zfa$ܠ:d\+Ysn;*MVsh:zNG'5ZHoL3ԟ]t4~5[lM U'8\^gWW-Ef%o| tKbC(_6|~{Zd endstream endobj 802 0 obj << /Length 549 /Filter /FlateDecode >> stream xڍTK0 ϯ@%HMHx֎UՊ[C̀ qPqvgX@Â9q)E9@&F2?TOi0dAuz Uwr*Fs0"%7x>ӌd,Y=>Vni'-ȼ[^yTx^Y!bb<,A&yj#Z՜1-}e)(k_툶k2"3\Ш(fNfU-NxH"ɳ'zA@*-+u#BࢽJ$1KlN_".j.8fl{ZYIFК1rڌ%w.f|\i3ӛ}cajpo&9l'~ ;z > stream xڕVKoF WeĊFo-f/z KcIחRZv,"Cr$b- pWawW傄oW`sWJ.cWb񧸫ΨYA dYa$nsOSqhTQjqagI E;?^[#8 h@חQ@4teP:(ŭ"w?SҐ?uZW F%@*]|3STd-LK{^xcn_Iݑc&3c'F|+#IDnl63wz0i4,8" ~\ތFuw,כabP""#3%'  ,рrFoMGCm@ ~#_ p/m6RQ!W|o6H>zrzFJ<9{;v)r/PYS%@iצB)9C^ ֖}洆 `hPީ b909,%t{Hı ?'YmS½v2{`\D+؎75t'sةS ? `*djԳ!#=H2_:C&sNiuV}[7M`^‡v~Ab+xBjSA=k-аVO&(ԔUhZA eԮNy!QA_!(;\@[zn{t[3B+ڷHDTb&FSi]КJ.=C8AࡘL~Gڡ*e{J$?ؠbyhs̗IbʚkΕ%zR a(ӅvuMqx/Fw@y{ hlqq-=n=޷S(qՊ ?G_cر-OTT6c9@ʢ =.3Ԑxh ōa,K5F쁜8[?MKUn~z4Ow@w;  endstream endobj 704 0 obj << /Type /ObjStm /N 100 /First 879 /Length 1469 /Filter /FlateDecode >> stream xYn7}߯ce.dahAm<8 V,*lmK`/93^VCtiH] Njq1Oq2eOxG118αј$Au" 4)Ƴ+)alr aS]UbUSDCC)=pV!Lb=FU4ppaR3z lX`pnZh.`ш! 2P%w RbR&{U(0JHK@A^h h ȄQj֡"`R(Mup-P44 b=2r*xdU ae tl,XpZ(HhրL0")"YQ I "fCVȐDD6dBN 8(TL2#! KT^DE)Tp0 j8! 9VP"9Fĥ7!h"\-jtL(<l%Å2\y%5Z \ 'bg ^-1#i_0{47"9Y+ }{pFm]r7C}f-wȞ?4">7f#[_gB0_F/4/W׳;v燮=}Z/8ËY _fby:]emv6?y-fNV ލ4XImH*2`$cqHMKM _p06@nK۲a ah:IbocHa, C 4O!!4e e`KFrI@,ao`5xd4\rYh4:aiݒI+a脥i-[ŴYx+fA& 2u, O!S*t.4,i4Ma 3U hս?u=/v`-ӽ\>[f,er=.kEvחֽ_hz7^l={c^]]/W h'ތmwX=c)RQ*e0dԊ_GK<_^uټ;+P8X,輳n䍝Bbڑ=j$Ϝ֙;]9ZaO}{2:ut2aXZ_S-9* /"W/kѾH{_.;-gޱ2Sv8z)MXMcg}g97E8m&M~Y7bg")y M.xLGK'OPeV'9Ж08ǧqJ{e{J!m/sؾ;w[[Q_pzV:ァC?UF Cq X endstream endobj 810 0 obj << /Length 1163 /Filter /FlateDecode >> stream xڭWr6}Whj&d/yK7q=Di>$,C*H9w rlER۱✳l,")e1g ޿:c.x/)5ciR%-nv]-|7X1|K0n2W*۳ŴHHhS3%= 015UƣE0ggty_X_Qկ7*E745nn9/f?х\GưߗI@]qCxuSDJ`o@A!bDfj30h}XSfQYFpb跶24Y,1 l9I&AMOZEkA%*=6}7x=YMқY4yV#^[D@vSvC$/S+9P={9 8 K o@^*Qwk_.j <bqG֦i,S@au3O Bm, */ L!)}0ڦ[n1EƳGLLI0-.M5 OS3|7/^w9jxr<:x7ڎ~ EuuqClK.P&Q薦5x/^jaLB |aX+1ڇUDmӅ0Rѕ9) g{des_哯㾛JhҮNÃe-ig|^C&ˢNlz2KAԽ/Zoȃu&]|ߐ~KǓ,%]|ûE-}v-I{pУ@׆ۜec[>e~uw4xJSӇ ^~Mۮ 2TxAp{k δc2%Q']w;Un}G! TyuM967ԓpb~\%)"Jln褧iCasqtj?aXa}jwLH a3|pm0xmA* O{ jӥ6Um2@Jt2Anp8J!tƭ endstream endobj 814 0 obj << /Length 1425 /Filter /FlateDecode >> stream xWo6= Ě~m,m"K meHx?w-Ea |xG&7-,E2eI`gz'!M򻛓o/t"XM>zoI4(xDZw~hazq$F)&^o?|ꦅFb54ؙi`l`gw>șr 5>}H; pYh&ۏuDSZj?@<*YEXhNhc>aBs0|L_)|X{%uI 6LȜuWa~%nm ES37;p51=|1`5DxF(KavZ5ؑ75L4M'I{W1=Hbc1ܣ waZo-f6a7C$AUHe0~)лZIZPIyF E-Y@ܫLNn}q3c* s iX=e'1x8Rew){-v/S_P4O4[֪00bc:JkQHҴن5¡ވvIV,/ּ1__i~͠}8 ,Yh0 fAFS?핎 lE7,mL::`LsV HQURf'rP%C웶`.Ahx!dĦhZx)U.C Hh]4?c}-c?-ؚ>}a9crJ<{]n脞`l۵+-eKGE(V78ºmKjPn07q_F-k~LtN{Ǔ@n ^$E/aڃ7bJ54tY)ĝJc@?S]S j)}":TNٻҁݺt[\u|"#/2?d9G?C'9uY{T8&&vgv8iΝqcɠ͓'6`ٳψ+2–z;ta$Ɩ?HU݄D /jOYtj+(3qR~t(j_ oNɔ**($]-7OW@2,LQd^B/ȶE XnWMGGSlIudE2+&EM,ofR"U.9H}z6Y#+v_ow9>P|F~'$5/p(4 TUg;qVw}v.6\+K'>H@A)IA`o,ju x% endstream endobj 817 0 obj << /Length 1356 /Filter /FlateDecode >> stream xڍWS6"AavbH8`0(] mz,'"J2![ɖa6(Wɶ}??0G;O8ʷb90;=Na8=wM;hxql֛`ZÈCCKI9WB3< ?켛W x%s,΅ L3̾a|c6xEZf $cD؃E%r#7++-&Г?^.uGnpB53xf-Aā\?w; +iր X^[:B[^ோ<\ |Q4wqhE %sv~GQ}܆tv,sascɗi3$,j,> x<9ά "ETCQ֟3V$JXS4\d3 #$,|)Ef #JT `Y$Al\h֪s"bMtTz21!Vijo+b b7t 7,B *}(%[D"&ǡ;'m`{A$*mZ؜)$U< y"gwu"._<[b77\"6-ev]k*|3kT9L7ɀ_c׿^ux];dTtoWI=4)9*ROL-Fh.j/9 Ѵʯ0UfYhc C JXUq<J-* N ]7dݑ#8gNVAطZ 1aGyHbA1pˎ/3U{ӔD#ᚴYceɶ?lv+$$Kk ȸ&:{|͞`H endstream endobj 821 0 obj << /Length 376 /Filter /FlateDecode >> stream xڍMS0 n ,18!!74[A8K} ȇE~+M}/RE鿂UaL31`um&G DJ#y@oţwWLiu> stream xڽXo6߿¸kU8{lo-Ƣm"R&bf8#Nlp9$_8ɃIE~.j*pTPBշq< ?p\/,&?{gt&2OWy΢(|Gw~wn%tIkWVm%RzI:eër$dNAa,Y$~#p97Yu"#GI#AЧ:r^L״T;)(Ujhx-,jem쫋 [Uݩ b\C9,Lvz[8 ,h[<F~$ 1G//@ }eAnh^Wf(0i\r9zKSI͘vc?d@wWsݒ{ >L2_Ol/Nu3~5x~ .c+.>\^z^0t ]:[<|lnZ@mQh[~'vn,.ίNO/YgoOPvߵ,upȦwؿ%]<'D[]#}7`r4-P O,[C8kޑͱwlM}OOjͰs{f3 +ML5y7R(K>9֠CMXq5j-TF tѕ$jt8 "v26-qo>f AEA`#EU ,Oap,`gVQӷq{nI[x&/2+dLB`3DܠQA:C8).dUR!\ |F"}9}$9󒹲OrQf֮lv cq[[,GkIW;9SwK@\\/yR+.m\"MmA!c[U5% {yyC#0(Ӱmf-5gQDDx Ejb/ /y0NFslcB<(s8Sw\It=Y.-PTʎ!Wy2kU[}s6=rX(I*qSt"!efgxp"^NK'2<-aCYjngq~ZWƺ"'m`$1(J$+)wweA[n4闣*4y A6,(ė?Q$ NM N4DNɮw0GAv^pIi+ @81R?Wᆅ^+"K% sa,Fl9߁![ۨ#Y;Lp844=n @S<:HHG,E|UGXQ^4EK 8d.;)?[<$Ci!;rǷڶ42+\lS(Q,}Mz~ps-G4u {bx0d$e8<,WuXdq@su=rCZ˪,hKY`\|0K 2;B s}y~旷@n:uKN@HbqNUMWePDۺ L5Z9&_|a6+R jBN5 ]Pb$n'Y0,rRC|~$?~肉 0(?i%nu7kLx\p-Z™[PU+Ɵw[&e,ek$ h9쓴kSwKΑ^5^,I'x} ϓ0,`o[W<]'Yٺ_-@W9>V%a_B'e&׿T< eXn^p.u0!P`'kV :/ֆ{ endstream endobj 831 0 obj << /Length 2743 /Filter /FlateDecode >> stream xڍY[oܺ~ϯXZɉEOp8h K8%VpHsV&6IYnaÍ?Q·݂ӛwh<72y/z*7rnOOݔv-怄yhmw60'̉i!SX伒6iWQ(i \HI$r>lwQV9,/ -)y AWAz? OYtZsﮥjEgS׼˹U^٩U(4pt|PrnU'#>-u{)U'%{q9T5 ]?7X1 7wS(@"y7tM&7 i6 EN3GV;6%)\xh Jtei=7(h甥5<'>;r:u5 _޽{.%M3~JhEwSl'+~Fiz֔ww4àK - zy#å<Ȥg4 HčڽlQSs-^) 1w*ov Vy]eA3i$Pű|&Fq 9I:] z )l]8pr7*Z-+1E+JZ~dfEbZhdPq(p|˽@b+;mFl):C=gCL2L3TL›/Qtd?1f/I {͏G,MήPBr?>_uB SqLYWKst;֖i$%npLkp#]gsШ ;0{Fvdw^*Skfb'I|_zSB0!O7@ex" y)yzwp)P~Jǎ%nа.oflح~x gI $Vvy#K U>p N>{Z@Vt42jRjO|{u=[*H>KgrϏ28ьyMOB)nt!_0=HBYsN2fxӗ yBΖs/F8/gA|dl{q^ _!76{nάW RD,}bˏKՎumY42Q>ꊸiߔMT, 1VhIJ-:_+5YTʱ4D]d{J K@NjWB!¡wW& \ 7fg-XVxb<.8 ҸryWֺys=e|Fv9Z$qʍTzNF*i6hg8lCwHXC)6/F{u s:" .ZPR%n\ A{hM!dM`/_>?|}~x|x|xz5č+ :T#'%Dkؙ 3> |. 5٭0!+w4"e 4 ;C.򷫂7vagl|~eWM-v 5O9Ȉ-sPpvgaZ=M-=0\\ۙ& E=R"Rq75k2'Kc:>Ȗ<1'Ϥ01~l_z\zCW3X"y:MIrWb} ~4V_d:;\9`POcqy, ԶxJL em +C{R)D|v7A*/JPF,= X\I|@URkFXw+2 ׭(IaYs; y3tiSeqx!cCۙR:0.ρ и(yNrj` endstream endobj 835 0 obj << /Length 2974 /Filter /FlateDecode >> stream xڍZms8_ɗSf^-{uto;ldS[Ҧ_e3 AELu|Qf:_]TPx"Q1.&?ݾmQ\$:^'ѫjEeh[&чv3خ9Y\Gn~6P,sI\//:r(|kX$J-kUQDFz?7+.5ŮIĄ6wmm:s;e*nݶfhDXӈc6Ivs4T*5 ~J|?58Do"nUFg9#GôeT1tEfg[J5I%:t>.kyVD6L"ASw0 mqL30aCY*azG& eusۂ:2}Gr/ rVr@Lzppe4]Ȳt#)`xh#2$.ˣkPxޏX4IXL:3mJb*% 1hn0zh\Ea'!}В8civ-ܒb5Au- A75y0QbZ&;J9RM)g$)g2'U<8oAO`šgUSh<*OW 2T9AȍRYs,K5}Rc*< |GznR1M&sq*San}A+P& &>Mӡ%FYzfVt:ף|7< zgE6$ c1Sgݚ9ho9X78%Adϯ?|@15yfBpZ*Gs+\[9_,#x\L_D Mυ~~G%.A_\ʴ.=aX%],o?qQq :[4;j~g4ɹI1q&EEZ//'Ϟ &t3w/! k팋$~583u"Yp|EL8c՗ IL RHJ*-;oЮex|T6 #GjznE"..b R/m,,teQla*ޡOIVnh(y 3wH[۶ʪ̗9%%>LrϔiRl|`T%'|:,(7J45C/>ߣeCoơQ>yⶨ%s5a0<{d MTKœb78l>/%Mi0֚OVũ:DZBD+~PckZ"Sd{]>)De*HRmw =.<(c}Phmf%1΢==F_)R+xE rY]"t?U3۞p:nSn0XwoWLmrxP#t n5ݻi~ G;]pyIN!o']ɋV`&&7>&=~ <yr݇V}sP-zI%}bՇ5\P*Jv(J/Blyɧ^ :{"% LvlHf(YɦCGmEQQxp8/lKRԺq(Ҳ5YZBC׍r9kHT3l] ͧ# `Μ~?E @R,:[5PNo-Rd>?w3 G4_鳲 endstream endobj 839 0 obj << /Length 2776 /Filter /FlateDecode >> stream xڍYKWJEM-gS8Wf4߻\b4O`$n8 F"P!^~ ςqI{u>owa٦(nwQyo~o{c<{ͱj3mC{!߻na',oi|Dplwӯ_mȻ} ?M9.HnnG`vWmx2qif+~q0,ز d4lk( z H%d=ovyiJw_tD7t}fi L wZ,,>O3Q2Mou0߼+N&nځ{y[%. JB7 I2€h^CЕΊ6wBJ1cU %)d:XH/ ) BZ!9t2  _3vC+é с^ d{ ǟXQ[֔nf6)sh5رɧXm|(#CVߵ~h%/Џc'0& ΚBK6+3쩐Qyc¨*PD=&&y1 x.kx2̓rrt=n.r;hNtJtViGS.l z 鉑{~`۪R\TCIb(6Y!]D ւp& 㥏0Qep0lg@"֑2#8J]bJոfàgg{ywWnOw> 1x"ZR4nߋWn>>`QarXNH'tx- ,0lOlE22ԨȈu6HV,gO$^әPW/A?qAtΆშDS6 |_w3V_zD)ю1ݓ@%YZ?5i,dCu@.Lx|#q˄+N _O;ݕxeMū\#ʚâ}(%v򺝀_JCxoAӴ{p>l3lxGX fc-E2G^pZ27whd,RL{XYeBAC-P*QBi *Z@,H)nޝBj.mF#\8*=K‚jZ..JQ)M_]63'QRP$U. yT:-ae sQztQYq\._U$Nj^UYTNL٥$h9"1Pi݉B$e@uJkc[{=ETR=lId/8Y;d90^{"];j P*1NZCZH 4  !ׁ7Ɠ\{[-LH6ݎ~2upXVxןڱR|AcFU޸E9Fl4x0L[8c@m q'͓bh*4 AMf搒b3u=R@R123Lw6yMٲ̖pDewghem*f7su ֤fk[ϥl~h6${E^QlIz' ;Hɳ3M&bh`f4S\éJUf*!Y*Ot/ 9Wbw AߢLl^)'j.)xܣ!#']]Б)˩TN6`؋svc/?2>0S1vkʎ+Vإ:u !7dc M,D*h6cY*<\9t]nI8KR !r4%$ujl9SkAQ@P(Ώ}ﶁ\X,dp eLg|9F.NC<ڔS @qORl`:/HciH9롳* 5Ba:\!b9D> stream xڍYr}Wl%`w%oHٴ1N< ܉ſOb1s>}z6ڄmpS$ɮJ&$i~xI-tz=݇,D hs𧺯7 ޝW۸ t[oW$Iowg> Cן`$Y^Etޏ{,tW&/]6Vþ*0-~`8 #G}P5wZvtoAg9pjI0CÕ֪Lw'6QK#B좌Ow}/'M+2 xEpHP{W],(.L$GcwijYԺXT4#$h@!|I cmGhgZg:N " yU&Aw'ŻQXuUHMٵ(vO:xLK"УͣiU#/&W7ڄEg2hۨUY lG9{񋏠Xw8Y|7|/`Xl4z^Ϸfټ>rMf0ZZzm{Yvx~㫟q4LN/) '|tOdmm+Z$ C#QЃz,"0m\Qtsɀ7F++EmfH|xnr(@ sFA㗶-+๊,F:*u묒#CgtkKhkGwxRQQ8f3#ƺ_L݁ɗ( {1OhBl_g [[hdJt]0{W]]<Sg>Q&#qb:migW+YB 2FG4́m7>Ӡƛx<ǚ[ʻZ] v>@0/y#\>l@A,CjMQ;:s[r`3C^T6e'Mx~rv\jB`t5A"LɎ@&eMIQk߃gt,̧`h>{w^޶wEAw/Ig8IƜYcoh]qmM菄c,Jk,}S! !heQGr:@PP_O-_i6rLT]g! 4V}p,UpS_K0 ERA2 184}bcy"y({:yz 69xMm/O8&cR#UO?=GE0M Dc.N9ޭ`;*{|*4 ɄϷyY2ES,PnpZ =Sjh]]9C;B7.NWųK+I1h 1 (匂E^pkX72Dv.BqĢ{2~bHJ];eUz͑ o{UF2/HgP:@d}@>JIJg x^rJ?pTj'_6j"? >81.r*g˥M<+rBY W*T(0킂-N$cO0Z=LDp 4?i!1>8_\7q-g<Bz2VFhEm Ĩ-V@K-w$Me_J=(˰O;05m`=31Q xPbAl=J`qat'J𓱆KO(lTy HUqr⠦^aqU,z@N+g jzts@~ɤW`賓b%,WnbnMPxнB;n$9,.n8U[+ P(AyGm_Z8涔nzrk6O"!Z &`ALsVv/P E_ԤY<{M %\Hw3H5xUEw lT*I& %d@{n E q=蔥d㥣XP# %4%Xc2\4Y33! Ri`+~$xÞ? ZhhŅCy\/|@/F  \"XQNZai8~ۺэvOEcśXMS޶5йɾ"CN2/˃ٺZ@`obyY[S?A_xG' |U~xt(bq@"HVMdAL`p)QG+ _"$z9+ 86A n>o98ݕeFe"I-{dFlAܙgP8ۓ- vš\2|$?P@j$$P][^> stream xڍYKsܸW| U%M;{ZF[UVJ9PC r‡%_A @4ݍ=Y 8^Iq9 θ/o"w /CE n벺|:_@5~:8|93;nQ#YYU^ăe! P?bl\U vm׫-3)Ե}]z婕F#4˃q^-C34|_Y/wDzH}P6ێ=NU7h OTO nɒ,tW<斠fZV:MGnDCQC= i7 E .8q6؜خdrF$;Vo; wZF=y{'襩p?Q$NUOq)&6O.?Q] ^s Љ]^qy8DR,)rE*2)[/UaaHabr@yf#ݡt` p.ƾu64l n7&Օ4=`e q9\) GlxĎەS <G _4aߵnϝf7 O@=V5JG2qyLA4 ؚ=e{f4; C㑐KcM'_C1DC #ЗMa(i]D=u( }e2,Af6*/곓h&Enxf$jZM/ "9bN[b 9ɻIMRt-J?]" FŰFe:ڥ=h(A!jNQ=IFQs-\'LS 7C,[tcܖI0oJ8~z|IH V l6lx떿dl/źG氳3y%XhZ>Hx0^ %Z~( ӡ6Cc3|ٿۧw_hl 7v6xpG^cTD"Y7.al\FiȬSU1X26YĮ-q r̂46c4Iz)3?'2Gp\E( c$J% Df&xN#%?7?][c<?;=W>{q̝5+_g`tp4}AcPH d|(F"`-C!~wz}L*S1Ƃ8xO sklW$M" Qw[1Ok QΣ H bV$):ROH0hx1_0\ǣW &fNM3iI58)y$2uB.sdC8 }c&"9 !VB/m"uAk }0yL )70\ Ũ|/Uw E˰=, =GnZ`$Xe2hƖl$"PJHŌx^Z碎Zl٪ v ?4vyl.׸tu`Dk1O~MtONu+N`&3L5=cyfLފ嶜(%fJI';.W.k` v,Jydb7`N Hs 9#4ۋ'/%iTQqhQY V kLK$(Z.=c7]{) 7|R†" QBn̶zDpPH(cȜ=& G͋(-gtpRθ/!дxV3Ԛi sX`gS4[-3?~~tq8zzRD87`>;SLL=gSNJ[2}}xf{`wCnHog-  ',]2a z9cQL/YU"lo,2ž zexTD:0|Qwyh} |aC`:6?6I]4 ANFkC؇jG&嫸LS$^09YĉpŎzIR/a]^pGC2*: =iphaHѷ/u>{ Caǁepw ^^KO39,աg-!dѦ]ê*&6?#vS wgn3g൶+h4u{a\#94=^je.YD/q endstream endobj 852 0 obj << /Length 2768 /Filter /FlateDecode >> stream xڍYYs~`eU27%Vl%^{KV+I3 004naF h/ZUH*-W㛐v݇7mq3#VQxUUME׫קznkcI$_۝0d=uzӵ0'*(~!?,rUeL$e&L/YoEo~YG|?3Nr*ʮ2[m*21 0EM`idIXݎf -.3Og q|\,-diNU"~\EY;r-*JZyZ~w_$ w>N;AW>{CۤeU{=Qks>Ej]/A$ ~=-̎ hl%bl;7q,zit2vm;qvIs4(g;ހ xV `MW1Lܞg/{AIgEsW݂F)`xkY YLm5{^jTɰ&ěػiqsL S%Z#?>pP)IZ$@#[3@Q{SN0Skg@YWg|*.`w Yȅv1jM*078KG = =m"mj1$F4 N ^xP[yTƨmOwH"&?007w~c3V8Th} /r:"':(ݔXc#Hf)HŋVkD>J7!<-ɀed&>Q^PaH>zt#%*h,82UU VJ|K8,=Mn7 O&?ܓ"$ҹPP'-b6s!f[(,dJB o piS5jeƣ醂-ɢ>-3C$Y!yswᤰ B\-hUDnڴW|> 5Cb)'Hr|Sh6wt PC88ȇ0ěB!NGs"Ą|]"ZIf r3  r0=z /; Z!РE!sYRp= QVV=auCX`X]JPɑFzz,IFB xvH{aC% $eZ^~;ל3vì0[ ] 6z?+|::@6ʝ:mj!̡a%2 _Tj։޽ǘA/DYʨld^f%ޮ 'X𻔟p ?YH|f$,s@Xgz{>4f՜ñ0УWАCШOqf}H- %_x[lc c1y4=":;"x8"C}h|TG +89C_ܡ!iĜz\Mj::2:T6qMvڙKt1zSܧ KHYG82V.5H&d=M-.4S#Swjp(T`ko?IN`vy0GM? endstream endobj 856 0 obj << /Length 2255 /Filter /FlateDecode >> stream xڍX[o~_a@숺oi`Y>+K>ěp2mk"@D7Z|ܟạlVھh;| `\8??y3/s?+깜Ey." C'69 Pov'{԰'K}w<T9Qe̒,Z0"auH{{RV=Hׇ>>?QY "-DBsUE'yz2[ͅlyz4l]fK6vXvu-p ,ɯS%"j;cު^xp"/`1T"{V*.T)o6;"zx)`(ϽP--48U)]U$yM"rw-hVV'F}:^t013^Bhs/BTK]|,K8 ]ܬ+crr.T[w)ӯ#.EͣYd8 M ,cX[9 Sv@q~QgnnMrS4Jms=\,!OqZKN\ъ,iLQxrZ#~ |!<4tG/6FIRw=B!k3[Hx:/Cm g)-{eu1HA&S'@(P1qemZJeZ3\MBV&{$y5d-EiQhmI<=iϾ@{H0{4LѦ6W;O1T"X _دfwI ,D$N . 55 p&c(\0{ 88xFIO`k\B@ tD7/"%ҳ1)8Fg"iêb -sFWttH`̣vrf,rLsJЎ0E9TIbIDAf)K@C|i!k[}l|o3C&xhaHjL!L GSR5Uҍ w(İk䐢P^B?OyF);YtHo(~۴/cb0E/xpBjl-"fwGܕ D?+7ɟ}xpr?QvO;' U@sOn*4$5may{uE1j.#ӝs7mUD䄿`NSk _^’hl<O}(;i˖fhDc~cNC NV]XGk@A`BWP2f~`/6^&od@_G" Jb~V7 D(OHQ @@;-~}Edɨu ݵ 6)nX[tjxXm-#໭7g[4Ƅ6g1eM{ S jDvkF!BI^@- D-hOzKH=@H#޼ou]转WkEs:qJ;5k/+ Z2AnfY*WV3P7QN˫EkMn:n@qΩuz~qs! J[ YE;lmC!e>۴hx0&,cU TX:9e޷Ed&/" *M#;pTǭ"gC(z{vZI)AM0>j<> NGFR'Lݒa fNmKvpJplpr|z¤3]Np%y1zH^wݰF²16qߠV+Fdw Ō4InhS GXkWʒuC_Rr>:cxh9{mW T%`UBӱO%@lf}&ZD?F獲7m`(6mΩ%T[I:隖zF7&NN+lc^ Ʀ{j8 ٟ 2a&̯䴒\MM~:!rS7tV endstream endobj 861 0 obj << /Length 1325 /Filter /FlateDecode >> stream xڍWYo6~X%Z"uOI h7}i D^6ZqAQwC{ Xrfeآa!EܮyXWq5|zy$ ETz3W*yo_/]fWZ[IZY{zĐE3!iѦͻ7CYODXM߾~c:Z*vKrmuQZXP;S/Y;qy/y4^_ji$'}}u["32V@ TVM_{%qT 8JoL n% !KȾK !Aʶ5ӍnOcU>z؞A3BV[ ;:rc:o6~/+g<,T`xL87I_$z IL:4*9N K@?8A $C B4;uP~LZY_ᚖQDO_jik9x.v E ^d^ϴ5ox]8Oi&3YȏpQvO5X| O =~>FA(6Ypw}uktkWov-}y hDb,yQԉLGV!2_bh/@x^j0:8u)4݁S'w 7e%phP0фo]_`Q6 xaqDQof$HNuښ4.4y@'{}HMQ ̎j$0e r +!sgqjͪRZ<Gha<X<7 wc/#G⬄"̒xb evb|;4£)!Pݠ{KX ܚW/ zPN$qhgeU;tZ5N93t7}pVEc/"=A=y9txWL΍vs QFqD }vxGU6(+Q߱7ʽUa5!RՅ@6|8t,/tzp.w_idC 7gOUHm2Dߍ `֎q3w Cg{JN}_Ql'q~j 2$Y|eŸ#p/ endstream endobj 922 0 obj << /Length 2456 /Filter /FlateDecode >> stream x]oWrraV&{Y[^-XN__ڢ#Kُm Is^+RIo&VJ敛,>hN}_xn6-/h= 'Xq9o]ۇ|ln=f~rT&Ě?~Z:[BmjZE)ƥzZ/~<( iymUŤ2X5#-ڷEm|7FMQXdΞvUJxتiÔ[#z?@grb`NS(?cMqqJG;0&SP0MN4,x{Zv[{Q9fT.{|zx L4C zUT-eL E 8g~ ^9`M2O=TF!\@Au.7I@~?V>)hy:d1 } Sϳ0S,` S͕]6;g$Pȡt0]fnztz*@C rZ@:Ѝg>ơGgꡧ4th@YLYA8L=Th=\@W¦uϙ1qF٦4[h6\iA}fooXc;bKAmy)0W8h2hmS8(n뉦4R@Y*LFUwTSMh T1T&l4EusTSMh_e լsNUF18US*(@RKSZFP;˔mU~eͱFٯ\i+PVFP˘leCӆ 7 !݃3zZTN d'92&1Y"1RS`=0A`ZWrޟ w!-IȘY5Vɑ ^G 3\2&Y"3uzt\oG*џzB2}ֹ@pƹЯwJ}*@.ZƠ:o~v?;*?A} ƃZF;]P]~֟Dѧ4zA=2}ֹ@o<39y/Ts_ {vkI=4kP$$d ~S))=SR!LkqE*=B3e'i&oB@-cu.Ɗ(di[_v^ cpryAֹA~] ˁ=}V~9]@*@0-cu'FfmWf[<~-YkuOA^ޤ`oAoqh0nT y=={)хzMZw!YGn.m>P' ġ?!YG_U> stream xYMWѹ >* 160`$NRKaW3-1ɬ;>h{ykSNT%yIZj"dQKFXϚD,iIsNJgMjb2*㜪1NNXxvIx(Ccd-P<0ĸ@(A[T1D%AS3WF&PjS3*B%r+SCj ]L)1V<hàA@Faet(JCLLaA=q.VZ@Q@1ͣ;LI2Qr$V+ba 8>!*3'eNI7 oj8vhQDvZM_T5][J(hi *\SZHs$JLsJut3R$됡9kj"2oi Z S#A_C[zr:PBzACd[5"+°gx?#ǝw]4鑫|ɓo6iOo6߷׷P)O7n^mޏu8~_~jkz2| 7xrmƲ~?_P~۷/#sғ'i}ĶI #^G^X}ls^۴:c .4οdvlrz9 mлS.OUApgSzz ]@9j_+Jdf!F7FjԳQ,x޾za{fpŁ% dj~aGO[@)qJ+?]/ۏnmʑJxz -]MGz|ޅOz~__%-r#?~\n^R^X{6]S<(r9_CuqOkqN'SZkuZdzg:u]*2Sy*v¶,'}*Jk>UvNJ)ηK5nYNC} fҙRi_i\NB3qVtx%Lי8^`|f͜ >m*朩T]}IO3GA)18r/':P|躮gL|Hȇ93/te틉B,_qF0ْiQ#eZܺ&:4W33a-j[Lct-2]|:b3ѱN'e0e`M|F;P-t9/kbwF>u\犟bo,>;L|U͝1|>}tetć=IX LM;~˸0}m`>so)?!*L-̇`1[W(dzh~u3v>E]|I endstream endobj 976 0 obj << /Length 2730 /Filter /FlateDecode >> stream xo8W\Ctomns=5ֱ")eyԥf&3? G(Q$h~,)?ގW=nT//n:MG4!y(f1srɔs>\/oG(+5Ϳħuì<2DiCa4 BhRgVo U Q=k(#­ZoW\ad` ?[Lo,gD0:,'BXTIre%@Pц2hEC;p! Z/ZE1VD &Brȩ@?hVklZAhKxb5:B };h9$Gt'^lLQg F0 RSR i(-.4))Weշ<'gL|Ma ?pԃv=Ж.454s u;׭8xAdr- |WڶFʷy~ TL S%$d<>a!k CbM'}1~?v"gu>ع?H$Sit)ـ$9wEPdDq~ywQ_0x`G\W \oRM;8ZႨ H=0gTSV-g˭_)](6pфHbvo wl%a*_2U  RL[lHm|~ 5ᔤT hŻVY=ZMNCQbiKh /PhND&(K3z$ EίwIД5szPDf"t[8-<OO+Mֿg-]h6J-'M@Д.DsrEGRpmZr g5 ΡOC':z?=8 FS 2B64B;Z~iϙE9n6_v0pCqI˧XTKJmC) Ԋ݄I7 y'έA؅QfQXY\nl7-+/71m,,~0?06 7ԜrY=a~E I iGt-6J @kp-T5"T nbKW$0ODpfQX+D7 ̀p*'>G9Gǣ%x3(Hb?p+ i*) 0pJuTf}byZ:K{X Nd܉ h%$e},}ndQt""$U?. O F$?]Uk~*ofQޕAz >~ @3(lϱ#92<$Uz^,kyh8PEh04%1U3E$>v:<|bܼT;? -mX4 O*?*n-+כl `Ni<U_pN8dnM$3 (0z]o}^UrfIݤhzv&@G4V-jwWQ|> {4,m EV iz2Mq2&{]PF73R ! 3hc0ܵL槼7]ۋn2NYH]b*!ℲT_V%h`D +u(5%i*ivt thCI7fjF]w4orl(I:v*i햫宼/ԩE49hsSЎ uJֶza<&0 r`ޏ~O`4 DI:!T P{'Ը)J~xSH endstream endobj 993 0 obj << /Length1 1910 /Length2 12286 /Length3 0 /Length 13461 /Filter /FlateDecode >> stream xڍP ap݆ww.!HA=e}9﫺տ^P3;]Yl66N66$jj -_f$j- $Ao6IS׷8E{-`cw3?@lPd;؃\%Vo2~|| _E9jڃ@r y3!Y\\lll< b+#o |oE?H>. KHs0`#fYo 賽;<ןϗUBJKYRw0ss9loKNX>՟Rt7d/>GmɪOƉjSHxC?II5D8j@BvSrrES)ľl2> qAefsp̤ X73X?^8K|69ת48\zHoƧh||Kc7x>,$}"W!p`TƦf;j(hh|¨e,k(璀^(IՓt ;{jv3?HM_|H,Y˳x\#z}YrV6!j@ج}m5,{Qp;=¨ A15ܳm3o%م 3;(ywa#0eނfTrέQSZbm9q=Nv Qiӊ;ꩮ&9(Vyt?nM}ΛQjwz2?Nh7*8Dx ^z-IT)3릠Lz?M<=#1SaĦBЫn9Vz.:4(*kT]@iŭM&iT^&2PrFT{o[{L#gt w(("ܐ܉zvqӀf]o8;zO*9<B'v)߭e'\)6#]!bh(k[fLJL?w!nژ"I _phYn[K{VN64_?Fu)/[yG9r :u Ɯ5{U-̶gKB0G4ٲ+e!FSI18?Rivzf/ž(GcZI3VZ&}`y Q M!>gUߜM1s1dxC=kj1ד͖EOPTR.0%}wkmQ?8-/,,AaEb_ JW K4y{N]X[ߝ [?M_dYfQ_2_T} } j}ll ^[*]ZM3w]ܱ@3S`jgه y)8>X慕b4BVkNg1WiVv/-M>~un܈Qdʒظ Ibl_[8w'{e &!ƊK\'Q1,,oS bi 9iL2ׅtoO/.֨mJ4q 3]o18r<ޱ @O3ˊ&6Q"`r{rp_YҚ-g $hܒOȭ {+c~OD0Xؚ֜M7/ bh.}q[V|=ɸɌf >1ܓ;~`!/l׈o/gţnt9b[{J;F4"5p9 [ឯ(h01e0*FZ}-D38Jsztௐǟs&QQ"aږ}6'^As%"Z@}̩K =Z涃/*(nwpC&qM"2{6`%'s|&{'۹`&<Gbr0i >2_;;:jޝ QYYS ET`{;䳇/wxz0cfd1H4 w5Fʭ12]"!/9s [.}H1Q>y,v, g|ŽV"0R>oR2t,$gBc=Ga."R&Pv7S =[,0YЧ0ƴxkT].7:302 'n^Qg/29@UP/6'-:_J㈲ NһDMIe89T#"!u%[tW݉[u[[RblgYbGyH8FkE*f"O*oQ瑄B)on;.u#%A:"I=dwh͈XwN;NǗ $i牺c)XG2H ~N#QP\oqF$BMDqL-Y8 ]Fŝ/g}gF2w>=(Y$߆N,-Sޔ")4"nX{{ϴ+,t?N rT3tVp..{yoqH8"5(2F} )vTGob_FUx'zbmݓŷD"gx]{j`F,Gs6:~HXtSn7J ʏ*|~!-֏匫vA;=hIo Պ4iA=\#E=~6K$,2e|*lY-筛}u؉&6Zti{zhW0HT]e*栀*Y(n׹, ön-bTǶ~P30DhK5xM?zv4o5S7n&^XmYVS#[Af~ipz,Įʅәa\6m#H̿#T@$GK:-A0-@U~*}X{AIFG9T[WGg 3=SL jɬt#ϔc_ Zt $m+'.$*Voqզ+K"FgcZg^(~_vGK%JP{ΓeQ,}j ŘIz\0WXxjV /Uv_,!H|ф, "Gj;&˜ٟ;)iaK% K ԁrm23K"hGe AEfiՄցrE(ɏ)T~0O]P [ϟW7I}u'] 䶊 tA-<~рߟK,@gkņ8knШQ@HZ69(ߧjV[pd$L0H'n8d=zP&uVKOmkn +iZRMu(i"d uWi!AHΤvHG>*+7@!H$CDhFW6: Y~x"u?Ԅhj㜋S6YS4^PV "ӍLlKQхcVѽL uk2&w] _$Mj ؞|*WdTH.g4=sL2cc3R(.f9GᒟT"w0Um㐃oe0܄%Ui!`Ŗ똊r >3.k-OR Q塪"rNyKl]3h/٪%TX##;RW q PIQo&E`lXT|;V* lHeymfv鰮ޟ%'Q;]ѴCܺ^g/Ч[A65qc|Y|iiyx3Oױ8K]ۊ¹|(/Ih B)rI-!_V- tI| -Kj&a891ՠNkw<`` .'!~dv(U3j]#4YgB#q+*u|s-)IM]픴:)+2]5GyQWx`] aKG.1uJ]mnA +P6YdZoܽ:[k({}s2%uanVxNsgR+ \t`E:.mmM:e^+|x;EIJj@RS[B_5AG֙Um= ^qWKh抿R-Ҩ,F~犽kf*yYY&Rиw| Y c kM~ݪ~lU>qԓW%k͠VDŽ 6dԅeTb Ң&NKL2ٹ-$>|T&bJB9 +ʏ}wv2r8j׳p2#Up6˞V_GF\p}5}EaFT8mJOhxeBGU)i+.؏v+Ŗgyh-Q Qˣ]8掬g%J&{im] GVFЛ&ȍFSܠ,~nKzZ7)b-Ou?Cmۛp`DU(J8PJt'… )9V;w/ >ԑGݷ̄'Om@ȘR һs={JmR%I;Ĺ $5fs pǽ h2S/fdCe`9hKXzGfq|zypeMPOt2v;@ H璵4-9٤d'Ro$#ѓRjO +5ȞAQ;*xfBK9FӋ<,h$Xd2ݜS[W`d]f.tOua}|QF1GzIh[Sց"ù061MӧIu>h8mdE?cl7QyϪF'DRG@JۯtpZp22akK._x]c5qP|'bp+P{<|O8uI=? N]6"wp?$Ct= V9!ywdj?D+)vts.s2&Cʲs32^->=`v+ E|ctxw_mH8 ^3r Wp0}m.*/0 ~-ěRvSu*^~ ̤w_cz`nNWmjEj{wb,Z#10lt$D" @( N$6ZGJJ5{ͽ}|t~!.j; yZFMPZcdIC iIo/%@Ez.O3A>3^#Zg )I Fx%FnUP!DT}cuB.wCq(2GoŮK w bw,iUEA0a> hC <7,"4OY))b?6tgj&'9nM91lӄqmWy\OkqFD  uE9B y 4VL&oQ^'Y~/N<5FrkŘ@^2p$L-quC%eͨW`sbYS6q/$z7e도3e $$VB[B6Rlgp)&]nIۭfs~>xWF!d{_?W_j@IՊ&P"yF9ˢWYx& #Y"⽲Vސ|ҜBL1;]=rSgZS|>5_ =(HކL9eɓWLkaٮq@z̹u q :*_8P9jr'\#3op_zI%`+Ȋ_FtxB}a^n D)>{y }0$B^gqNCLH[^%]Oxz7h^u#Ȑ嘕rWVw(`t0F_57;fL{~+ IŨq`E'n] 'op߶72حST&xnkXf"1p#RlӍzXGZgC~ _}V#&![\6L.6!!ꪥQ:Ai؎_(kF1F\u_³4`ؐKC!#Xz*|֠B|ǁyf)tTb2dźeIr nV:SLOpQ{As8P2UvȜ#_Sy_k+HNmB?4"yPif4KoG3I?F%rٞc@]:1Xpa I5;6Gf@>X :!Z٢k5i#CrF8 \ Lh[swGFZc W0/8b q6t`C8hΔD- EWg,3ѝF2M*'f#In0hS|Env%oYW{4T)JObrɗ,Ym}[Hv,f."VL4_B= _BZΆ^BϼX\:aVӲiDl_Z6m=ƉDܬHdžcoSl'Qs@x4%2ڔȤ 'dPms#I >S9o&_;Qe0}VN#[`D~ͦǽPPI@\~'{{O# < Oa;oP]|񱓐+TW Q)P=qNeC;_P\x\3Yg>)4 fԻuF?Q>⼨}d-I꘶ ERNx, J=LK dX/+MiPjD!?tةOD Orawn,T_f=dL} 5)`dZ=.׋&dǫ4|q(b`WSӃ"w <]cƖKn 9%iiVu T3ctbD[赊YJo>'4~ Wu+nݮ VqSK >To?M4ǒ 뼒!jwh~@~sL1av#7:OC;HIWhϏRk;.: \q&& "C6wMé] l.7:zo5P״v&E=ت̙ΖN~Z]v.olVsAmG5~oHtj|L Ķ/g3

  • > stream xڌP=8=; . .= e#ޢjվ!'VT23:330D5YLL LL,֠ANv<qe@wC9;[5`ab#@jacHقE=-̝+ʘI;@ha A6;c 3wvadtssc819 P, '+e<oj Us )TL݀ dbkrgHA20307ܿ da3haak0eݝ@[ Nv@W5ҁq!%9;Z;;18YXő0m5:;U#~\+[;7[ S [ӿh3Z8Dm.#39ؙ89 ؜9xLi|,LAཛྷ 럊E cgOw1_-:L `'Ǫ%*EoU ۹Y,ffVn';aThD5p{CߓAﵡoyy.;%uoE.eXX{}]wC}Cl_ -lgmuR 5o--A&{pk [_@t;gl~To}7_::=& g`kx'0sE9B8'Q0AF"N& `X+Qb0JAAAAA(qעgW޳AUj{v?=;AA?ޘW?Y5^ !?AKowwl=A,]fN?;]?ܟP﮶S_{h[·?RIF?EǴ_{d~8EwVO!?8;_?1J1:;w^nvpxwnxw$cyH M7vqt|rA w1✝1oe]p}'71iTjzENGd$oolQ|^"z:jm kKPj~6<050^p$TOOy[=C+x4y b йj)h(݀\YhgzXswi7"鯴>Ѭ^,1,N=d8nF&)JbC#L :Ql݋|e8"e([JC*]8h9S/NJ]{/X3OY o9p}(>]`1u#tAp_Kf\jN1gBdi TY *-'ud$Ϸb}Au%xL4n#k 9,AʢWxԟ)l&8R!h\Y]$Qⵄ])5LN}A806*8 w"RU>"=c,gH gf☯!KUŕ:&ivġ­D!Ьm{k7HVv@7! RH>{ԌॵSo\b]BWG\>Cn[y9jY~ҘAѱܶ^řHb"m1O5eB֊=-B7 %!v"乍QILc2|W2<@4>mtvziZL=~Z <CyXHR/Ps;9ozH߸@ikgxc Jڄʃڦ% 2⾘"f8B.A&u(x]Z=ɨA Lri( ״6陱X#%H4 n xЯG*]1<Sd $+WQ~NKo+qzGu_px6]4zي0E髓{f4dOZr}U] 1V?3(8 VahűwYYkqrY#@@[c 46D9-I#6ᙰ0ƜK|yc6awٮ/|\]5A3+YG'66P</(ZMEOjJفeK AJ@=Z}E/WK ɍ,MaL;>rgn0 XTz|/]~:&83ʵ nMjUL/kw+X&ՀG\}* 7^ _ޚ&[T;;:q9HtmLyW3Œf.N[2aCU5M'-Fz|!ۤٶ Y?E|ZZ6{%)cޓL?aBąpLP4mL1O(^Rv8d42dΉ0wR, M¹ѓвՓ LV>h@tW;C Kw&D0"˿6=/5K!.Rf(UBQ\*{.z($lI\V~_w+\9nhyDTN9`ߜKŘ'cEL7M|ʱu%3q@etqCA/iGP=F]sbQoSm2Μ/4*>nfp 2PW>TOmO{L4C. cF~p/"R|PN '>.r e]$Y2]N/CW<^q9ԄDCYswdȒp1:t~uSN}o UGkaY<{5|T\8Wt4(egK"Zt oÒV)omM|" &!;3j,xwu)`kQ^ 0h.ig/&YӃP>+˾zWܒCptD#)j4B.5y 8&ǖ]1U`AY \P4U7:.][=T($O׸'\j{\h1LnZ5<y=tu5_T~w=tE.duL?Oq%wew D"9^<h)gF-Q夔j:k'1yYi̬(q`4n9$Nn]|i2TU&Gk#:Ӕd7G5m2g#go%2m2pg]7!=5٪s^qTydCxͻnb,{`J>ljC`-}tm4TY?+4 mrgE i4U^\9Ř^ژ :${&%NZ \&Fe#T6 *}k.'o^{)yBb ծEoP8sVd6\M(/D:AV-w Oo@/[O/CIC.ؑFy- %WHwF]ԣqExw1|vjGU 9[8M[RBn :1Gf T$(z6sGhtuǪYU8C|&)7gN~f~=OQŜ-\Y 'WVBrv$`? ZW<;w$ڦ#Lۯ?vtH _aAK6盬\(2P_S<SX1Z~HѬ5` x+ Cu=l&37M?؉3ڎqFL$G*⩼FyVa_A FxI#CwNhcy~NY*uؙt@ ڋVKqVg3µH<9AlQAshlGwB N1 &ӌn3f"l ]1gYғHO8&^`6t]oԎ5OݡtfPOB,9| Df0WHES'aNMsp%k^B`Sdԑ<*ҲY?4 RONNh|Td Vޤ+\s# doA~*(PWJ 9 ͼb*Q yQ2oSchm59Wr~MIV;B:>ϡu3ٖ-oK9[1S)De j5-j!%o2<~c KcFQ 1Zx)~O!c4"7Vnݰ ںL ZGq1P34N 0:ۃhzޫ0큢eΙrG%M]ø1v $;J:?.oQ3r9W_˄lWh)}Tג̶W6訌b2}"pv@#68 2g IwP?'B[ڞ#TU8ee#$[Z_{Ľ0orãS Yk;8|1 9C]TݯaYu2umP>֙:=T7+b[!q(d+ PMofg8c'mv4!x!u綜ᰐX˝g|)r )Hw 6^19u_uǰPS$W`7KTb[H^ RW1&MoekmԚOGZ'Eu5MWf`xj_8g4Xjp=%O9Sc//*o$O fx{/GIσ&q71b>`NBBvAhJ/v%|qx3i^W7ɱ֔pV"2(*x(.Kj }g2MeJ- 6-iz_+x|B-v#g❊2H^=<>&Ls@w$fJ(r/a d}0ݫnԓꙅV<\`:SȦ 95urQ#aL4(9ڥJ$n|Eb6}r!dynspz~W]TJhV4W]rm}IW˷*Y:kӿK<HrA IW}Drw,)tQ.Lޘ>PF&=ItQB#FLH>xQ3zM[Bo%00L3WYYPxPE`O=-+)'/R_<,*V(hcmɋiauR߿[l,K!Ko?ܜKbG%r}gIJZkh$9nn#]㩬Mc&}^ۊp_tjt8[5Mܕ-ЮWZ=%5?~ '(H[q/m<СϮޟ3I55'aSt:h)Up"3Pzk`Uk-G!$&(Kե?$b&ޚaaRk"ROVְ~+ȤD\?tZ6ݍ$WK]h+ ?<zڊçm'khpD'@d!>5-4)M-ԂhdyZ^0U]I"hoP2fȂ)7m>bӍo7 ۢe컰=pG+CdTA|uzQ}7 Bo]È3񼌱h1-Y舐pEZ; 13 ڂ["iL5Ax]>)VkR0ok?/bwX:VOQYa+DRTWPIv\d u( YH;x!rjj&!Q ,9 C&7/,_Qh7-Zt=!9Z!TJq ,aʗ T5Ϋ=wZճݗ-Em=ϯj/ImXa ω }*i#{/ R>υCuFĺ!}C)%8kZN4Z$C~J^w0IC7[bhЁCE ta'sϹGlM, D+#:GDA_cnM;НFevhoHQK!Ջ0BTuG?F{9[S+| ÷8+~%GR ] j?˜K' "FCIL֊v9kW.v@fV2T$E\vK5$}ȟ(enc]A/?铷6 GjO-IEtHË9vloglGv~2Μ^i LQzY lB&RVVv&2Z)PM>=B1l>Vi 4t.ɚB0k"! beE'Ix2f#( #(7)h}y/LZ4W%6& ҃*C K_YѼ(&8bt37䲛*Aǯ2O^>4ϸmL.n\/:_I _6ɹ:x\*wu}gtVG~yƖd KHDdp3'sCFz:wݺX@IOtIȪ5rC(%XU23ˠ&ޑ}FN~3 '5_ڴǴq7ڢ6'-mO,þ-xNU FCDUBnfED@j#5Τi/9>mq@JL UfPU9}>H7^i: `txO+)4Jh|ˑ,$ttxM͖)quc>3>38{d>a=.i!xP]d 'sv =Jwn'GQ'&CIq|g@9 #}Q4r^޵é55PǾ%jeKsOa2X^1tu&;:X-9#i7)2? ۯߡz#ږ,fmr̢Fv{WSx9i1K?PJlf|K$UwE8Z6M;~b-Ww$7Zq}I|8؜R:ŔK L[AYQ$YF1vu:Ø%9r6{B=p OցZKg.VdRQaZ(j_+#" vDÒ.2{*XQ~1tst@mT(6hdaWo(Uf'/Py4_S6l5`LgD{檞#?413J+Rswt|@2hcUOA iƒٞ?tI :K@6~F\t=ctaEkH}40^VGSJs }|^f[3*C_w]smz#)!?ЫҍJ[N X/cE6uJ1C]\V<o #^vH5@E-0 ՉDCNC[r PdF}Nk@˶W} cf~/ +mv6/Cن\rZi([G4M85\xk ~B[E(́$ C(QXg>dO@+Sc o{ S!<6#BSq=s&V=E{vAgBMwwZrGz_\& ה|:V9#{b:,#yB*KDb,HcȢA=cefldPOeۚo&sC>q-[{\Kjʹ$`#*8StKuwI-"'T%R,)1?lsȽyc^{ rmpQWSZ)U-N6e+X*RM Ĩ7zO) tWjc٠Y mauHNY{6FFoΒRc_WS7.vl ޤFa<7 KO^R Ved{3w2 ~4*aT8[H|[]K,u]g )68޶W \߄=:iK5{}` O9'g #΍j)VPK?s hy~ Rr yTJAh27`-Q0kDJ?Mm>e0\Adz4blX`lӢ"\H+"v %+O9B%(x@O =z)Rq02T,orK>P;n߂gC.H H)Qa1|;ݥv_s >jLa<}|1*k2/$˼Z\.BUΥx~ q7f-QuʚIxB\+vKR=Cķ`7ѿNS}’ӫSs4:Jp{N((FPWĉZ;p+%}nu~pK `A疛NvЭQ߄q.囬}lSB3Xڹ"s^g .t>VRC84Hw2hq4'wFd6q,aA^n[Z7"`8ǹ3$D8ǖ/] d&Ua_s_)wwNr;8 8Zsa9bTYQ| Y[׷ 7pJi Ng=ƒ,w rV`# "mFn;'~ x8@*Gɍ2u)0%!Yc(&5q׭YuZ4h'3snޖ9Y#܎v: Tf;Kar[_O/٭p.GۥqJ&V$¦ F[s73ڦľYP Gp6ˁýHU(!{^?SR+L΃5=Wfe.A- Fv?~k oL`W[T\Gyje|}߮Sy Mx[A_}.ܰoъWq)*zc+ODɯzSoO<3R+d̈4s fO[B Vؽ%1.76fsxPcWrhV5KBJ)!\o pPj&`]uH f+ᴝ5E @*ԫҒa>1|p9tb]8Āғ/޺`r"9 :j[7 *sטRlbgQE`ڥyy2C \b5BBq'0Z-&ZY }Ȣ XSF(>6-CUqv~SC/t>"K }Dds:vA#)Om,g. 5=l?)<'a]kE:&p~؆Sa8 7e41$/*AC{4C9ץWS &AyK-m^l>֧[HɂEN|"%aBIßjѰ lLT?y=xqQ?# V7ߏI[93,MB`z3^K3$\ ].ӑoe~fĶl 8׹{:YV5ƷĖd)ul%2j=x͔oKxѰUժK5-vj"Bw Ƌ}CC{l΍lhFg+~UCkZP weź= +".nMy~x~0g׆ Zqe"w̑2ӆo4J9wsΊl {<&l*)эD$lVF׳{+Ȇ>]5sGجteZE| #>"ZȉVn>!"}"?XtlL"A33dhi{oס4M*A,m*1x% uVR9%^ÌI[cWF;Ld_׺O,YD:[S [ 34y-J҆_#B&/-*tPW۸q7i@IYnY[F]thK@T!4w-VRΫKqL ђ楊g/ҙ:ZiV^68&g__uix2/Nv sT^ ̾`qVAP:.dM'IJ!t6޼T3Up`yñ7!B"VN, t_.{Q/x^^hRGLZC ɖi,!؜;_y EJcEQJr$n#0e6ILEShD?1k6s$C'sI~)ÎC&d S6Ow%pp0Ѫ%F`Ï +IChsyG)rȮ ICQ;Ȝ,IVJzs_ ,~ /h\1ԁ*=:/H'|a Ƌ"%3'="錋36S^WQ"?s3"I5 |DjxØzjCYp%4lhC"2/t8Xǝ"_ Q"rjKfKWC>{&l>+S]eK*2g?Q֯0:X)ǫrz+1cs" P8&p2It^c#KNϽI%ďE\fa>׳?(Gݸb\N;X-T E6C\{)0hMXUo^AwGa P+ky[֬P9A˶TY{emCpˏJ ݷ(͏ť}&ɵ>bS\=>r]fkC!/ D*$#=dԷwa٩&&"l7CDy4skIiN0c0K|=zV뤱Nq]O5Vä}v}u.'9t'롌ڱ;*XXf43.v̯D9AO^ 뽺"[Tbf:ă2\:޻3_ 1ɞҹбFx yE4dXFfBze?VmE곭M-4j`F#gЯ5IZ^`DsgP9b6N] Fd{@,df._l9*2"9C,ר3ĿdU@nB@1$A/V\YjQo~{ݍ4s7.mrV|I2GbSզ\=qdqGΔ3g4"ƪ [XТQֱ%Why6zኮa9e9ª̂ Vuf@]2% 2*`PeU6+8 qX R/owu_ ϽT9_ZNE8_rQZbͤfH4y #[fֲf" :/g]WnPr`\}Djտ0M{˧Fz^.E6Ɲd<>]9>8>ܰu:ʕ9:ZdAx;g?&8dfBDF2L$u5[dvmՇ^;o #Ɣ|ritG =V?4tT)Vi;".sH.RtǶ1DXO oKvz?="@pWY!@aS7ͣqI0 PtKXvnSa- z>m _'SmUUyBJj)ˣZnF-qs(ع HR>DL|vQ_qS3f-9ز'Q0}Typ7tTT S#֛4h}$g)٥DjT D9[P{~bMԀJuwDYk`;4jKz^4zMg>sb)K¦$D_&Xp=|7bHK *}lAzF4܁:ćnPLv|l{;h,L9U/ֲBs5s4v}J|r~W5uO ak/f4=F`>%h.@t{*qɇE&sq==(.ܱmg _.Xfl%1xM: #{9j+s(tJ47B^p|XyAәDB'ZJ[-*VK~z$|څ3X[#=S&q^9;51}rT&/ !gd遀̣qhߜ"UF'L^EBhk>F0D6) sYg̀Vؗz+z)g*(ÐX* ?VЊl*r&į8/k;Mqs"%"Syz .Q,3$V-~:R`T`'<̵ c5Q:l@]@-[Y0Z& y9jJ 3C@>ݚ@de=17nt?-rU6,K[Kj~LF 9`& R2LBU)J4iRnaM幮R ޱFז3 vIJ8GHhɅ7}],a*)|N@Clᛀ5ps=$=o_1btj+'7w(=[O{. _pp#d\N i]J$qGzͬ][/"L2Ԗ`5-y M۸r%czrädN@ha9NEWFiFQ}dN_OY4\=`IILG+qfy! Q endstream endobj 997 0 obj << /Length1 1420 /Length2 5888 /Length3 0 /Length 6851 /Filter /FlateDecode >> stream xڍwT6 "UJDPHWB $$"HoJM{ RR(|{=~<7׌La(; d`f o;"PH@b($Pd7e@ to #Tx `@} xUQho GoݺyW8PA@!H>w%TB\((G ~9G-#*)qŊ0 7#c<0O@+5/0EA ,g],aqs'?ϡ`?gRLR ` $;I00/EE(!HGa?-) E_{ T6ة&JSxeHl+P}J\biV3.}v;>˵\u\k\v|8'hX&\)tqFuP)Myi}TqS'ՠ$S&f>]r>>Zbέ+v[|pO(^]CMb&ҏbt;MFMXw@a5Ď#Nz J*&756EثpLCh+=59]7EmO0 x~/bmBy- C+o hbk| ȭ27wv2/qYp۝l.S(?y8@Ѱmx!+d{uWk'Xn6x^>r:+Nҥ/u`A%vm͙: m1v^z ڂZ&}`Lud5m #{ǀ>ٰL]$;kHvNRe 179.!xkPQoZJyǏso܏OhPHب/m01̜ G/~G2N2K#Hڼk[qYtJ7:^^fͺH/oģkvs2Y5$ i'%en,{0]>¿Lq;O R`<:٭q뱓Zh7(ߍɇo77}shǹefוǚ.֒pWPgTF`wlL܈GS>vf/[C?~- κ_p|~^A1qj,C꫉g jy MѲK%0ncDPiRSIW2ubNI[Zx;.>6j YQ-|ꊚ_ =AO_}qdPdVM n EA _PjWD_Drt7+sON]$.ׅ ?^0C r068.f$I3dIajd9> +(@ޏأ"! Q݊ {CJ˹wK%9%Gكg JɽGJ?PV ݱlAsM@͵zm OzS3a.fZ}ȑ3.yOl2Lf$*Dkך Xiʎo5KbK7+Շ"־VS`AT彽B.'7ӯh ]sB;(w N_SkL_@^QlɶX{z\kŌO`Hyo-8ke*O,>*i]۳C~{wE^h p`c9%* I:3|f973<,#:Ly6zFqW T+VM[4S I{\\..egچZvFȦ3)Yq6OCKr>,̮&nk:V,t$n$J~b>R?|azLX1zgBy{ۅޅ淸\$[ _?Qu*2Ě1݊Vo&.4tJxM[^e"My_pNtdjO8b<dVdw:"mYJ;Հ(pRXW'ŧ:&t[WjmO=rHLE} g"R׫kY rR8pK׬sH"MaNi;c6p:K8Bs7JQQݒt^zjoڕS#vq3E}ɴZSO~8̭ȜF<{;4K9X3GYEruG0IiKkA%+1d #<*ϨE#c?40'hg ݥ@X@@nozK5D|17Saz=΅'uVF*(nh 8똚IyLG [ŷj3 ʧҮɽO6Y46|~&VU͢K ruu)Ju(.9ɈR_![8̼WXއń8h4Sy@GϺg'.DQ2(y6c ¼{vNKS_+V4Q y?޵t1LI%{SW">)Ъ0CУpbB_p4qLm:CAixԟkhŸ _+'+͛ 2\x@^NUdn~7K+M6+3TvqJW4EB)i7Y BF}u\`2i}Gsf2]uO/p5 FU > \' xfuCm/6v~FX*)ŽW_<1l=[0+ho**3U.W?h$G8 )rOZ/cڟX>qJ)Zruiًlם`I9soT;~ˋ U95 푊-={,<Rq{}ڽkAT\2ٵK#"%03zQx0 Qib`Seib9COo{3X17ׯg" ue}̚%҅vz\l5F@漹[z.T^howѴ|~x%Cl:MaiFUU `<~ln@Kx#`/}zh,E7:~nxţN`t(ZZ [<,ylN8#kCLh+ $ʆ9ռ3'!i-n1>Tat$UҮ5ywJM59ZI#1,g^rCfHh؏٥㪏.FU1bbm2]Ŭg YkZϊ#hpw1ۗ.sΞ+gd DcQX@m~c-^6|zL]`.ۍDc/rѨ8)!veM⢑boC+'>_]katTm1:; .ٟ=̬eN,[(:񶀉\z,IȔcu5-֍IP1e3NťЦB7R>Goٺ3 Y;9B~wn6S3bO*6Z{N]x]t?SUEM#IgsvLs}uw3H0WTH޲.8-[|ǹuw/Ȉxִҥ%D9}ۯJh"쎒2s/rX…djN?xiAD8-QZ/JJt{kWjE^p5(?FUyw+tI8d|y–n)E6 tB)#VBYܣ^O{C&e9O )ÜTC?=!z뭖8NjYds=. r)@m@[މ@|!=":Yfhn>e%Uo_?>%'!HF? Q{Q' 2 lzksh,4]vL'k=9[oy^]'ɯNW<4ml<^zC g!yjv>V'Ŧ|M1wT 쎖b=/^92ե9],1arg6lfizTr({Be,&>xI+\գ# ޭ3#'}CRo0f# =.I.7pthr9i,zˑsn",fI1t\`,Z;]iq%gz00b] {_M d3@^4Oi8')F{`9#2SڦIݴpwe6Hu=l۵rA$_PpjsdcVK[cߟ68HdI_4II))hDCf3l|a~jIrF&4}dx7Qթt4t*/~rs0{~GyKƉK!ɰ шs c5 YWt<")ɔE S0AX2NzmR9^e&@[b7?H+[9DH=$9vr{jCA[ _ 5*)EPFVҒ&? pj"tǣV6:Oyx IYܯV8MZuup?l}Wvkp%K|,}^=;<)~N%;n|k$?~uY RQ~&̃gwJ*z)[8U(A1r_-c'MP9D,1c/*`X̣ 3O{,xȷDS*⦑ pp,2]cSYIZz} {|ػ|{k(HY;Bsi&S6CM endstream endobj 999 0 obj << /Length1 1420 /Length2 5888 /Length3 0 /Length 6852 /Filter /FlateDecode >> stream xڍuTk-("DAJД7iRwA$$AH 7{"M84A(H^Dz|?߽kݻV̞g? '!"mSEp !i}mmu0PHHD@HHi80X$%100S@m4 lA i!!@4F vAB@ 4 pG;cpG Tta0 !`= Ap*%]]]X4.tE@qA?)u?@#;`Ź10 aPX|3 ݁Z@]G7X7r Y @`;"a@]U-FAX4>Fڃm_GU`8 œ07Bg#wGد Ӏy#ma'00oP$(?no? h.('K h?_#TS12C?A%%Г_Ł Ws:*l:Yo&.gon GBbB{ ~S}"Ug{_q߀#v@ڻA/6"~o6 tv:_E/t~o?tA8ⷘ=Cc?_<,!wrg;k?m~} b@0v%Ā Ban4@q 7$P?4g (-? G@ }W Y:T1LO,VRkQr13P]? 7ϱGl#7M 1zLPx! UcwnJh54Vifz1g6Z;90",Q'MSZN1=EmG0REQYjéB*O5 Y hsi-دڥ!b7rRhcl!gPiUѐA+= Zp{!J|~P4 Kz10ɂPgq];W%ʺet%5I#ce8ZhgXY46Uo돁<>[TW_t%Ƌ NϤJ$`mEy ZF!H3Ү `B/I8(+/YX6Y']u-ʣ7|{dѡbmu}F^ ]mޤf=QR;k;ל(szH2=te+asbhGKU>Xz|ߴs Ur0ot,XّHT3Jp)+3Yu-̖!^bJO"R0^'(dX"6zLhf,A6Kբ1s˒i7}g+< 8(dMǬM0:&j92%b<.` s Ff/cW2OLr.% %t7wd :6J>זI.EK6Oa(iGeKwJ-cThvk0z 3a(.zYbyIuE#K-ç+=U'e0LI5M?}h2 qvzjK Xp+N?kEsr Ҥ>nZ=I >amҏtk&* `cD+Y׆r$qO'OHt/8&K. ^m1vT5/Yky_IZޖdŤB1O$$Fypq|GoW̑ XZf}Xs`g\Ʃ~㙄󦦚s=O*jinXl;Da<&srRףD!uyNtdAZۆt - J-Ğ)FDEҩ8<}ɛUD>OR7nlx*:]Lj&ɇq_Upq ԭKGO-k,pBt_PrdQ[d؎j'|TBzPmH.j6r8 P>[OʥNn|C- ʃ K=NsWI{Z>yBHAXO5$Ci!{wyg1ߦ-?V3vv'MkH Tй;бMj={'s`{k#RlsWs7`1mBpX'z{4DtB^Yz㧘c*ZZHc :Ah (fvOGnP%$V*xp$IM g{_A-كu; -McG}TOUzG=& w0e4C\J9.t vZشfPh7N:] h 1 07sג.芩/KYh놮[ Y(\^3)rɸB眂&C}rRЇg j8N6BhbV}&ߺ{ ܯ'\،#I̞PJ?׆aN_ .X.)Sh~!˴BbՌ= L_l.A`qΗkRP6t6T|%.y}D_1ڞ0Wz)hæk[} &yA2EJriQUvGcԟH :a:uF; gxqex DPNnZe˄ ޝǑ<9^ڡС[0۞#FӯpA*N҈o#"4xP+k%ikbT=ޏ,I8N 0f录:-BQb ņ!:$M,n :DSYgR~^` Es]\ —nn"1o-""ȟ( xs)1%=Ͽ( b/:=a[FCo#I#͹hڠWkn!Xʞ=vS7@fRi&Gbجg^TٰB9q#U=Ɍmb0zn%1Ɖ{V?0Ad7 ԖӒJ)nO?ӠDBIpW/{l)vpee;r]P|>8#4(v#x@ N7K{q>\O$5(#mH9Lt(Βsh2F$d®Vٕx}I cZabyMWpӳ![d`IJUΪo2aʩ^$ `͢kOmeLѶ-1ڙnbM@nK6+!n&!et%Ww] <=9~%VzNvbܼ+mydƆ˫wy&9o|VGrgmN&!Z&${均)oXMtxKcd-Tw<tM%vW,lb ARC8(NW CӺD,|Xa`k|@2p3Aʘogo›GZJ9eD׌K6SYi.V: t.^ ?bdgm'%6ZxyrX`I=s:.K;i| K1CQTY7SbBUBaz;ESM WIftU& OvMh/\/of/ᵁ)O } bt\zA/J`Īa81y[-,UL%:T^ʿ “JQ%LlCci;^b> &qW"RC@SzֶG.YUOZ*Bvy+"}֊_VLr+NfC6LZ'[4VS<-?f $Ω@.SW (-o$X],eP^lě**]s7&amQ"L| ~ ~is^׭Pޜi>ڑ7cNY~FIZY՘' f5iv,/zּ/˾W>+$hg0rmJA=\D'.gǀ R<?.RW|o떰5 KJ8$8\> )]d6' |} FU"AMַIT(&*K%f\Odm y@ GXD! Qc>IEWPLskc-Ҿ7Y[+n>uy6n ' Su,gI].#u/}e_.d@$Z?l8<,%Tw[+q endstream endobj 1001 0 obj << /Length1 1412 /Length2 5891 /Length3 0 /Length 6848 /Filter /FlateDecode >> stream xڍTTTkS@eHA a!f`f(iV:D)n$$T:{{׺wZ{ϳٙuxd%8 kj@A^ P]rqBH(& S0yp@/ /"@qja$ <Ea sD*:BP0l!`@BPj)aB9񹹹p}e xAB+O-#72^v-ۯFC`HL `T5Nd w??AaA`0 lP@[I厺~&pL=uYb~P0CP' u g-+¬ᎎ I| Pvߛ` k('+'>'"gA"B3^ +ӍAwXc@@' .oEQK FOwb,u1~3 s'~ttU5U#;&'wxx~0@6__yu@?Qf s{q ?{Cf`̃_%vRrqpa#O.(.4u31䷖5!VP@}l0](R ҁ.030 Tl 1!1DZOQٿϡí~Q@@fy?dR26m %6pZm8[-V7 /QaRz#sxM [dϝ;Z38zi4E#iOLdxIySI^sTpHt|QՌG~z ΝWE 2T=(TkI˰kץ'05Mbr޴V*{22"@)NywwyfD xIK /NvelyFj%nj9EeMt1^PFF}D؊ >8a1w8wzVM/W)}n@Η/zuNm?q,c` ]ՖW/;HL4_5XxE )U7/y;{Se'[O,X36AyA򽼫#gJC&nB,\U$KN|iS -Zc0bl-]>E h=Q.T]ߏ"<.Yv?;Ψy7NSetšd e)j$tunx 0L[]'s Hʡ ke oj^=¹OF>7wi1Fin/2V#"1s-r4 lA ;F7Rx:;D|{qU/H/Evaְcg·Yo4r$Kbx.˽[~|\ WYx5ഉ{=(-]#ᒈ˄yF3߰˹X'nËDž޲"1F[ɧzG9(e1 -˟/'3cT- P~+E|%3fnҳf<ѳu鲻cc3;o?/""m^ ӢuY6VWԡ0 og"k"@"{tLR!ciO}1m#J'2B_̮I{J(4`BW>ݫTGgdꪗ22Z{[~arYP{gO %5des6I* 5L7{K[Zf-s=MS]RPbcH}RZ$gNֶ+w<M9p~9A%3s`Cs_PO>T=}=p\x!B>a5l[cnk\WP#\|{)RɶҁGה,ط/3hrfbn3!aIy#RFc{|lɴr<xtmhvf]w]B8u"DŽ*`ؕ %?Hd>s @+S(i4Ͼ>Hk9L?>Ɠbģ>'v@9l8].^{$m~+&P|.Yp9^Lac6-!O)PhnREz-9Ƿ,#5'ķbfƹT}oR!yKwGUoK\FQI%ϳi\oIǣ׮bZ/!5Q5.1Ndơ_9hpO|ᇅz6kld\&5st%I"f?T+8uĜyHɝGЭyVKv¿s8]cv8k4[Tqw]Ѽ &z8=+=_7wddd~gbC5kiHrƉӔS8GRwS+R몆]j-g=07'=9}>*"~=R-y0Z[%W~ۜڈ *ݝẗΓجli [YX$'sN5e?ߜqa,H9TEni`D&c } /:ì=OyLUTEFdQb2KE*̾{ݸjv~e/cog0:byPSwPС_FӤ,JԴ>Rb|l/v˜ 2!Hč6fƄB)G>fՂblK/8ǢU.JaD$oY'?8vkCl'&rlj#N}(,VCWj<>n@sFe g FXYNxt `nc[j=^Y"kA45vA݇{9*c*;DNi~81[M^Wt\FRCr$Jd^-x ҷrJ_`h"ZpݑN0k[g2jy!db}?M8foi ypg:ڎۻ;_%l1̵|%8ݯ}Oq\$uT?>OPt"C{h=#1Te.Pes+|:GP8?Ъ[iG󙟘yH8Suq+X*!:+ՙqKFUGDŽZj4|+hu5=ҏ_41j zFߎ|:Q.ˁ/:D;F W͚x,/LX[c h=c?툈}Id9tyt98}"m||)54pF -xlaB6$4Mǵd_swJ}wF~J|N/,ϧ'&A~T mb%2ۻAˉ$  o)T%ц'%|IdY+8•sl #sj(w,ƀbuV4`"~q/'f7QSv=j|E65DM9"iz,kF mu X%91ɠ~Ɲ15(*hP58!c;8y^{R8kFT;KA-6*w>WmG~4^$Q J_};̩) ӓH'Tz;vӘŸ9暑N(0>L`֑ll35EJ}&oyP g~e!z)sIkTȥ6pz<bgx:#e> m;![^%Of:tVר;()N숇:g?k2pl O&Jrcpc'1Q~;׊W$㪶Qaf/sirM2y] O%*81p Od`B[$cf:.Sic)n$= 8 ]E1 6g2LXtf[Yk^dNOK~@mu/<ȫၦlx>he0khWmziDo:(Bv56t{>H .{^s+}j2e˭VPf'wBRLGi-jOCa=wCTQrf@p:^OATɥ, ֊Gf%jkӝ)R.CW;5\2Kc\ S+}9 =*szfY=1=ҍ -rnݤ,<{{8`Y^,FEv=:.Fcsi;JiFO~2Űiŗ$׆q-UuX/'q,\Zs˺9I1CFx}Iti>bG!D$Q9w@On r!˱ϼo9XU$gdF%+qE .s.ݱZKqw`ָ3Ig5BgZX|ubHzǞ#;ŐTCU5pW;W}[3/F3Kyϊ' C輶 KP~wh֑$Af[{֙,SXBs"^4I\eUˍenKWt;UT@ԝ(KNzqKw]/71b{V}g7y$p]_4?6vʋ.-]i:hfrJHqC5Ի/q7<+^kQ׺a-~)33,!}*X뵑\q,TUԡrICVoVzג(azu}J(CֆX!ǖyԙvC/GW o\иZ6gF̻۫b!r>O Onٛ =p+GƵ+_W*5yHx(Ti;W69j/Q)BDw{"͒pޮm.By}@ӰQ+P{7DiZ*z-o):L=n1/Iiwgm!er?GILc^JWfu^sH4&PKo\q0eE<*}(kk2JJ)tȀE90L!҂m3@a-ny8 <9OYq7TaeD@+UP߽A*ͧ_ gesȚlsk;\3M޻760/&H endstream endobj 1003 0 obj << /Length1 2799 /Length2 24125 /Length3 0 /Length 25681 /Filter /FlateDecode >> stream xڌP\i"[i%hpww .Bp.33$[uNQ%ϲw&WVc57Jڃ\ؘY lVVfVVvDjju+[?bDjM=q' X&aSd]ml6n~6~VV;++nVff=H-ndea:Sz_Q;1`b G45ٛZ]OKh`? /hG0 8~Ad~ ~nG47aNp-=,?4?Ⳃa܊?2,=sMA]p$ɯJb#اVlJgX8wT88B@.'hfb0Prs_}Uf?z.ﺁvVj_:@?:v ~,ζY60a&K'.`@p`f*v79'/ߡs:_b@S9{S`mDܙvLSj3y/:ޣ%d;]&}E_~KSdGs\hKJϣan+nx/}$L"{>O>6͐yXR_ʗG?p!=O1EkD|7ɞŧua"y6z3wL6([w=nkRݹ@'$A,޼wiJG`1Y. c :{fj$mtm'/LKԏX[ֈmDSjRa$90[m6N%^AѱP:4t!vqxWp0;뷖z+$0.ߠ2Knɼ0!ށbl[E0='\y>1Ug3^_L:SΊ,9e}|K"X?TrQ,QI&ŵp>@U)#ճ;_=i}W|YUBs>`P,(`뺢B绽Y{P̦:Op~xnRh$Tl 屺]c,o]%2Դŋ }rC}-H| ]9 }5:koҰ}QPHMkg~66mG&WT:m< g5 wѺ%̙~+1JvVl#i@Qm֚|1\bW=Ylӛjgk?C*w@RKi"L=r'NyH嫀*2"vjr'!jr20ӓGh›`DCl b~M9WRxO_Ae  _E2̓KPd%|2~+ "$!CC*Nڥ'>ܳ))㩿~K^LK/58{$ w :nIs=(\ǡ 77IS:r+rC݌xRrabR9툤$trzؕX5SelW61%mu~ 'aH2 %HgtSdZsMH ~+J _Xpo\)=ͦEKpvxV{{^UxSfܸؒH#T66MA7"W :^wTw7ԽUC8k{ՆO2#hbv'xl )fe7]KkI`|yڅ;MӏO59R^|oivFd-w0ilnv80V%]4 Gv"ZVLY`^eO\Od1ٓmN=TS^MLeO \K69YR')e)TӪ]Kx{XL BW bZbľqVO>b6JF@+g3˿}Uo77pyW-(8̘D2)<.8ʈ֛r3g(bA(l6E S7~ 6;ј5 &WGT8p45۾M`V+1+lX1V̑|}fCBr^NV=!-C3 Ɩ֢;{d*z|6evDΘS ӨoQh1 ,& WU_?G,E. )trR "wL-)DUVq0s WSo6Ͼӑ"6bM2_2l/R_ 1FoYdMsĘ$b?9H]Xt9H&ke@BYf녴G5îu}5HpB$kVkIw,%FQ*aCI*_$_XG( >QQl㉭gPM;s*|هum] F.Y UBx[ptu6-5&E^RWEd MfqÅp%%K1r \K]vfkz9t!(ZV> .E~DbU"dMWС|M;e"|>0LS+4XNv/'_//@Я[ߔ ;<6C''3gzptJNJB0qpVN3bԿɤt|لfY{p<ԛ`>6YDiY̫z84L<,emHBr^";ĔP| Er8D[]IOw~!PUwbs+RY#$WOޮ*{pKi= ,Ka`Qp]q-^>nJSLW޲r);ȶ=];@D4X]y0Uo~Krk 'S{ǍMvoYMoUO6Vi|m/y:>ּZ;Y>ÊiB'z_b]ѷOftCF|gNE Vz>ڨLQUYEsNS h%+$ Ɠu}cNo}<rH%o1dw .o6~xBHWL+n).Dz<\$ ?!øΟ ;]ićZu tN)'@:F>Pn$F-2yO7jwN+>N*}[vf)` QvI=r Ee+cW{ۮ#T *<=+~鋼ejCRwI͎g X\J׃^&)^Li]}Xc.R mhOjE7?6enq9oHEVǃlTd|rcƤUut 'Y> 5R\Rpl%h.,Q3Hѣ[glU0 !_X=r >K*>w" wF SRr\E?Z_89r`XV]h<=qBN"?6zɌNz(ꂁ<~ŸhrkOo >>\A0F\6ՎPbRG$@P+6kt.2]>]T^[X_[uڟ*uN{Nj:/m/ \oE}^Ṷe,qxN>c DՌEMu)N sdLJgu!ok=iH0b׷ީV \.(9&VX22y3RíI~fTH`TWJ(dsȹ\m@1uܓfyr[Zp=BG 6KCo;1quy=XMP۠-_8},V9a=(q||S0#tD_t. ˁj)-AUIoyOF*,kzekDAMײj<]K:50($4S {aͭKo~(Rq}V#T\ƯO}x/ 1N{}ts^LSJ~aRhÀ̱5eTZݝ.iWD2 3#3@aADȚ^PhG-Le`oq)!;Ң;Q)b_}Pt *0!IW&bMzr,^=U^`&I P ":4F1h"ACqI6_nmqL""4rE⤹ݧf6!ww\z茊4XVe*23߮&ȺE$O_ԴWYk+[-7`9͛%%-cCL2}tLC^ E뽾\qM#6,??lrIfztGAkDj'Ki̡s 铥\ =i>@ ͖aŝק^?X?rݑ2], ^:L6.-Q8ޝ+bq̚f'q8Y$QZ'vGe"j~{[+?[Qo^>k(iܙ{9/f Y+_pI/pM|`G\:&3E#p& Feݾ2ʑ@"\ԅ'ke!=f魬 jtk \Z6eިE8Vl]Sp2xeϯQ8Q!؊NU=:^łhRDdĉX|^#hOYr1̯j*G~- ]215}aBZXgGk[wb[T٩U- 6I}z_8@4mV>LauouHfM5˭1n@x:MEAXQUcč}ѓw9Yf|ꁨa5޾Rx\H+ ̞CV7^V>͘4+"[rWSm8]W;fw} *]QQTK=\q\\K:pJNHMҚ9hÓ,(*biӂkHm"&#[(e^NX4(/GKS?`U^Me>_Q-jӸc6Dŷ-C6+q1vfѬxF[rQn˾99G h6DGIVMwM4d%RjpNu;g<'9d-lw z ÞEd .GlG/ɘ04p_ɀۤV-R߄,mVこŒgvnBIT'fD,䧧X,5]-װ KsMmK^[>~.R ,ut_?gʠ\ӲiCLfy=]Z3F5qg[tԻ6 (X̰JYB̠;N^_h}BXALǑ0WF 8 ?cW1 y }`S z,hӃEBx%sww Թ17'S>UK# ͆ʽٸWBJ9`4+ƕi\]ݴՃ9ItIo LG<"8/[/PPr[ ae|!-k(17޴װquxKpVieWw"GljծF8 ,?iᏦoKՕIJl'8%PL]pe?RϽDTW_a&s#q#'[Q;ߤ*# ..j^Sgn~IJnpU ,"O'ӀH]Y'v s c#*Pfp# ^KxC?P^8wqjx|LCqkFL8g+ *oN?1W5Q3_\a~$jdeo6Vi@S6LY:˝ە|?jf>[q;~>)VϱHĠ KxȆ$2WM'!Ǖ[4"7 ]әDPY`+1S[x;B 5Rm{7~bb&m񎵎v!.V3R4@^r[FrԜLN nb܍=.&X%3J?{" \FyOт61I[‡Оe-mgEmYⰩ*85TEed5 ;7a9oFUEIS_>{'VuՎyd(ҋ͛H4HK!<,Bk9iyYiΘBT7l}ՠ8 %IA:$ р/k8qgeĺz5э هob⨄ݔ}9W(};L'>n.#rD@/)0 AŪ੝>5C*?6[,;sfyu"cloK.~v3hM n +PG%1ѭI)ktD4 mag!tX! +ޑn+-.lZO&Ct:\u˘=Z"wxcMMb=iڅǂ$mWg%&u0(o*vdAE旸_.`ޤĮ5*C_:~>I|(@P;sxGĶh(#K2*Vd XZ>Kא #NIHw< uʝ{篈e*v|0Ԝ'?Q^qm&S@wTXϗE8E5=2ݧA#[.@Ad)>y 8z=g%#g%Uێ5` JͼF%77=o\Rq;Z|O +!$|RO0ڗ77? (AX'+Q+ l~D!bҳYe5JSŢR IxM嶩0!I#fL/u:mSgܭ&s'XNŰŔ@%0bH&,[X!t%qi:7zņ>@KCW=H\&|^\I6NzzT5ތ!{Ӗy7DLn:>A۞j:䂙`^mn"YEnwJF8cn6ۢແ(ۓ6-QhwrQ>({42?.z ۵Ӥ]?x܋ֺZWF@4֎'Q"dp0DI{ɔ7L?Vp5JGZ">tOB,|ݭiS`[rrbKSTQ2m2ΩT#2xaR Aք1l[H$NªwUh=a丱 w5)8!g^6ލwT+ xBQU4Y$aiFѺ4G8&]?iJCwFL`DCŊNǃXљ*o^K(yw:ckx rTs~x#.9ݛBȃ־"ֱfHP,?7%~N]@giDܷ]c͵Ȍ8=+-f8wxNTdq5.iN"+ u.rsHG^V,99ٯk8wf5v!cv!RQ%Ob,lHIyk|M\2S "W{l cݤi"ڥߧXEM73gV7xVBQQF0Yߩ#Trʴ9gu=cC;EI^#y&}5/wfda3&QT%a4Yl hY|um5qWPB=>w"M|m.-tD3YD &reN+8p~IF/l/! ״]÷9!JROРtX+z |7"<ʳfowi]51uG Ex=[,MG!CSabAۯ,v,x̑4T +`(J~.= +dC7˗Jʅ`M:= #8YPkbnJd:r*(X^ץeUBZ/`h%=5ݰ8Ak|>J)Ю:S+-M xFatRa8H@җx[ jXm悚Y@ }޳IodNajq΀&|"POiInXҎ=f%$ ܡq'0HbD4Uv Y~InUlODZON2.6Yg9[[,|$L)\1L,l|73<|xcF֖J3UubΔr]u@5VBe#f0\X7fzA/O,bC?yHj\EEflPĹCssyFv]e 1Kf]{q(] 6GhDekW Ѐ,r s ^/iawkIĢ/p|Q{=O--)_G3h5yQT:OႴUPil:޲#,s~,%PDϙ+$eaC,}]PSvfj!Dy `;2ˆoZ{窄&EoǽR*Q5#=QO ZI}{:Nb_ul/K>l%أp)}TV s.IE yٷ$1Elga7<^zOGuD"EQp0hG{*BFYGxv֚cj/h j,e4B.=!ul(ˑ"&N0C'0jV2 'VxK`x%x =6LH[tT)ఐ-Q5J0"T0=ɢi gn&LmoxsWyt>G?%yݪZw&9}}u6WsCi@>_6ݠkTֲ+Euv( _G^5`} 4o*L-j!7Mo;FN^Vj,l6_H}Jɲz% .bD @0kpn"9&`]Ha='G( @/[$~|4ACoES8(AmCZ쇞C6΋v7;ߚ$1uҬM9r=wo_LŖĢ{P"DhTȞ^g `tt1Y,Ȩ*8n7HsҫX$sܪ@PS2ȓf8m.+ʏryk։U5}Tq~.HuBf\B}eagƺSWr ܷ“hJ$dLq’&".+P_mPh[ڰtpsX>'IWk9<_j+:r$T.QιUVjwuTobh#oZj qvyP*֤!Hھ+˜@]AclGx##DxEe2^Iz`,i~$ۧg҃ .5r9Kko[BC:'炻hB&/_.VClP<6<2硃pN VVCQpyu\{>Mܴ#ξYqP܇EU s|m3Ը;KFzMળLd/H^6>iƄժtցlCQ٢;v ϷT ]K]0SY DlQkݠ_4IS$?FA){E]-~Ʃ-1))!\4.Nsr07+DR<\]SjYZd"t60IZ>nٷ~QaF\Rz]ֵk&8[D*IsDW )yHmBhɽ?Ͱ+Ԣ 63IZSGYeԶV7lmSEl d,~eqƇ GãHQ@R_Zn@|<me#HP[iNJW4ώ!'T`zddE“PCדg{6fV'Ël[? "R\^Isy{S)MNY2E0":OK!g ߏjēhk)t&ҡd\ї1\/KX7sL#$k&~X|U-,D$1“r?! TOۃ_1IUv [6X']A  *T)1VWC͋SIhS9_duPMrx@G;{6c w?Έk ^09`x1ɐRUZ6K#+Gf;eIڤ%B#֤+>`ĺ:. un*]|_Qܥ.u,8Il|_LJ 0M zPbC Cc۲ J㜣&p4&/ SՋ4g;BjS|bČi:1sQGd QU'5ʱT͠Z#u o᤿XRjJ\ж VFWk|kuF;HkvA'ͷzJSf-e"B+W'rv;S=zSʺՍ9*@a̺l ]7vEhe*>TVӍeSnb+G;]qi٦^L.4j|l+1גO}QCH=2Jrg"9cI< ՞hPensi=i?)!IXhHe]N0fWvk[}II.gnf :~d;'p~:ӺXDBn<'NfRj""G5k:QH:0p ^$5uU@=1^H6 S(tapv=ԁ@ILcWN't|c<`t J , @M8B>EMGHS:3Ǔ/2k7,"Wп]flm0A4 Ѳ|ڈٵߡuiZ8ID`B.]$Q1ByuFUgǭ*x{{>'F!f(^SCYyK_DžA>&&V&#DqW'Z,t>d^b־ p*t^:o] Es;N<=YΘ#ޕV\{lpR=ى,glt1 efWN>r@۠o &) Uu^ q^=ak5&o\/pn20 =Pbr9>r|OPޱU >%Ϋ|D!;4'N,jKǪq1hW#IXDi4PCE (](Ӣ"\M`TƑ]-h*!'ܱ90a`[#zg&{}{offrhcC(K|^C\w;Q;s߸ ?U{Ǻj$ v;&D`ȍytgq6b$Iz9 Jˌ 3̮;~=-Cƹ2DL}^ Hܲ_/4V%k[s}Z]'zIEng4 j]I]flJ;h;c6gKmHK_eϮ(@r!Ok/<)ZcJ}+M"B%5@5?[Z'𿵌'!`v/}$Jk!%22$L],>X˶(I;7FEOd^"!np]U05\2|-ʍ_,)%'˕*N? ;-/`brט1u‹E^gs7!:yFeRU+laf Nt9MD?d/wZy9P}UrmGv毴uF`3I~ aG_#*87+>Rį2Оf_I>:j;ުA',k!{)|8^޹∀EQ|t6}#" QbFnυ?YpM&#'VMar.R&muݖHt]580r(C6[#y%+/#QuC)UzB;S_(4۬i;feL5[8g?1 ,}Ma=%kqk }IƖ%PW R,\2T^#w}~KWƬ-Yjj(G) {sË{~"Q'D7=*Z؋)gƐF =&8vH\'oKb/ho%&T"\޻Ga46j܇4Nc?]gQ92&3.|_BS7[S }-k?y$&',4n"a%) _UϷ~)hoae,06ȫju'еKȀi]S!vK]y"5MUl?#r$As YkCl4sa$Gi/o9ĦLd\"Yd|NAlըmdKujFAB8 %m JT.zL ¡t;MO)\~1g-P7/u7o3]|VA^d?s\u!i;Kwh3 ^x8GUF9 Xg(*S/{$_i%r c TN8Ta೘?ug̩mm}iIdR.8@&&!WC7q77=AWenĝݜ 8&Snt-)A  #< UT+UnJV߻(Gt9<ڀJvچ F84[ 'NW P!9ae~=-Go6LD_<#Dnr%kM(?}-ӵMUOCbN?Ȼ$ rȵ ա]KxHՍ|b@\ zkԬK—ۈ.[Dc2 SY]VXhY؋iu2e%MP *wokP5] rO |2yNNDP\L!zVzy>AA&YQf; NOәb]Y6ш77уi%1~r15e䯺@UQs`Ò@^wޗ<svmŪ&dB?RoCNԝ!=;5/@f"?uߣ2=RR<9rpDNx)㿔Fih'i{qS |j [|(m&B9Ը?qviP؎ Tqy kUK׈sSNZuaۛH%| *eA?҆BCpB&V~~Q.7uiTD*Cyzˡy0[Hf:P=?Ȇ$2wkL4˒qh%`׻: ޭF08id # <`4}dCஉF5BN;RӾT=^Io2D`n?^~,d9?`ПS팽a#)}ÞPplGiӛ/Ppu0 q7h_f2y; |OCrWVAR 1˺Cգ/.!k$,Yʞ~Ţ3@}̋҆f~]61ŌԶ}e֥BŎV_4>(hNGOeavņ>]Bր?]ɜ2AN:. 4f.+(wD|#9mHueGH F ҆7ձ-$@V=[OS ͛F;z0cRSښCF`0̛!HH) Su6R=nH"[+`2 E%tdyxb-'M54(?^sاՀ#gpyƷ4[yPd -iacWÏAfDS'rx=w079A5XٽU-鸰KFCR%fW%Ӑ(΂Pߠa=w@Ğ>DoEe<\7Ҕg2ϓJON ?aT]˜ډmԘxS`kzS1G5J~J#g& M&6Q=0X#XSpQEww3'/L9kΰ9A>o^yy2/oΕ3 vK.*E bi}|CLj,n!:W){W!Kj`[ښe9>@YϤA5ynKnb}]r #x r҄'.>ս7[wոhkjC!αn6<%hs Ξ?$_)b켥\߳mJJ c*2[aUVO"4W,tme.qcM÷Qا-C4-*vz.8E4ʃFڹ zKߤfG-mQ{[2u5?1ɴ|*uad`m(ȧQohp32!]蔨\~bu_Sn\W8`5>ڱ0lGJN߶Ѣ y Ft%$oxQJ#a'?Hz4Ū%I!OBe ?ܖpa^ ] +nL+Iuޛ˨Ր45+.=]F%8D#^A+|3mp͵=G@^5 ƪ^89a5Ԓ=rB6~9kM j ;ys=P}xbS\괯Y+C6%N ݑO0 @B vEOVs*h_6B7VWm:iɐ8Q7 =79`f"qc˹~'鏙ڪ0ƺB)rcޮN6ιDPiF"OiE!p&_?ݕ":׉L .L ww^{":uSo>A(n=D o`l;ʢ7K}8 ߟ2 RBwyrwk*HSۄ|Vtf~^2¨"դ`qȫiس'0q  ¹m^H ;5TSe,ȕ|,LZ.u@F5!X@eZJܴL&S>H^T?t v|36\v0ِ6Kt:QLjb=8,XC +xQ&P(SFBR')0&*ui" ,0HZ,3lۭh6b(f߿73^@ xn+__:3 g;@F{g;;xtmC4]M#I[ dեYam4 Xo2N7kDqه:X=J/ 8塴/%73-s?WsoB7aTY*֖bySXAoN@OtwԴ,^vX 2/`ޖcICq+d9.Y`RϷ KB? c1ȅeN/yt\hc*s,@TE61,nPōF劖6#An 1YWU}ˤ\~RͽO{BӍUW4StXwȶʇ >P\R+LKY8x"}t+w6hm ^j_3xjڞ-?Ԍ kѫ{8k$BqC纆_J*-Ryei͝}ѫMI:b+C Zۮ*˽gDA~r'ܙŻ8.^hՄX?#-W Qq(Rx,H)@_0qFaP~8 BnjVfA&Ecr-_čUD45R~(6T󑛑jD 1/1`c#.=@EkDŤF` iAl"ϼ~ כb}6k!SUcJ-zwN] 9_ rl.n.3߾G܁\ٝ$WXNu=ݣvi&'s@/4(.i:Ad"!QSQ6l9Fk(&! $SaS96I.'ϴs.2 gᅰy ^1fCo-T10\=>T4ObߠjIPcYuX@:uoVT 1wgS%"yt<7έw OE@ SbZPvFEdpnL N]L+ê&&$ɫv6J(5:ّ {6tRr;"IJyv5S{X a/tvVQ2=w`Z}f;Ǧ子QVlK5uK5+yiLnۂ\X2o= J"] f-,y]8,3Ե R endstream endobj 1005 0 obj << /Length1 1379 /Length2 5946 /Length3 0 /Length 6883 /Filter /FlateDecode >> stream xڍVPݳI HG~R*(WMZ$j&*HSAtE҉H"ERyѯ{=gﹻ{'M-$0 ' ( "#H-8V5ĠEpD Gt3Ơ*@啠 J (*Z@`,`&7DTQQAw8B`p0<(bF8\ȿ(DxpJ`pPP /zJAH'`G`n/ -L $ Xz"0[`qA0, |pڟvC`bnB@lP)tF"Bp A=wc$ I0/G? !}`D:fOup,/xh7M @AΧ"[.7vGIp [~}?=&?6@  _! xp/p'J@#pD8ށP $;ьpcO< \ @~}^9{ wqF ih` )-Pii@7j Cy6?hw %#Ϟs\Dg097m  C!}Bĉ]#N18tA17d?Q}8h/鯃 F"qp?}h)$`Y{b~C(;6q5sr '<8n} 1 1XЯz*`c1<%=D0/zy^:ObQI)*MyV vW=ザȎ$1~UlCYaؑsb#h|U* Rر_ oz\K {AUw1cfK iKޱJtQ<"xS'G-Ʋ8;̒3po, _#S?驥+='˻ xtx$c4 WBɗ^v_B[׋ЍLt,Q~—Lni}i?WRR艂ޫg# s++\Lޞ WJ87a0~Ap!od G #XUG4n)Nշx($AxhWy{y] ZiFF}A"eY5ồ89nQM\hvJm~V~>";K i.wզvYӦUS^Q}N]!x`7GVtmC^D5W1"n4Ȋ%ֽ}iJgX>NsҚYݦ]n%ZmEa~m.ڴ2q=Yh 3-7qfԻ\!t+%E s3C&WNr<-8+/7{T_JҘ%e`:ػ=6zd*~@3rdL;J%$X`4p̿͘NڞGف>Igjܠ _?>~hUs׊6iU\O*H""Tnk~=:j˽ ]it|jLٌQ|}/ iĝԍWa{Otymkz~ؼyB}0<^ֲ*7Dy>(oK >xgx`dAjUyZ]*?_[z;;Uy%wؓd0*DٍC&RՑʹ7j y;@b5}QQṔѤW*Έ[i 'OV6_P(q_P?#4V!.S5*Gg#kK !/iepJ򊵓9O /12->wv6ky51,Nx}P1[Fh:K) q|L{aWocrs b,/'1yj4?1~r .S|&[ ۦ:݋xLhi|4)~^n" ܛ؅i{*e/PTa% DAE;hcG4Sٹ2A_=U@:QMydl4HJ/>$riWH퉆tܳS% `';&[˰'W֤C&_-Uhz ri?Nv:+›OLx 6eq썋,b_k.U?/[sYٕ%BڻqkRc(Y%6 z>SyKҜ6IWtBjzn= fQeD/>9gαT#y,hWijԵoz^SےMj6vȹ]WLbQQ4Vp'Ø~E:3jJ()_p wp`?`3N`#,Un}YL^ےxҦ\@5%~q]H:&La뫱P\85݁Ԕreu'MC\_C@car͇fkֶٛiRE:oñ5!v8'GvG55Qkڻ5Cyۈҷ.W3| Wʗ<;7iANIjJ 3Ϝt$ڴ+I^h|֋$"OKPk>/zHrY`ս" m}_ja#}G{YjL󒛵ZEsM1b_K3C؏ seTRdHT8٪ޖq"c OQDQ\|ݯ2 G u/TD5S@yRiV]"wPTo;N.rK̠Okʭ+Am=5?4@em;OḟrNZh#7mRw6 {&6Uo*ܼk"}F'Fut?Kj̺}olZ9ΧAL^Ä$𲄝Z>i3Ql*lmÒ]?J8;eTGyn!X} aYܖQh?_?TmKAy r#|6$F' ɜ7f #ɸ]}i hfK/OZX3LR݉3SpI,׎Df_@ʃ$⋌}/_C|P7EK]qV)d[.{w[FDš8B[gFԡH-,\Yfj6󭀭GNkcn=+-Zh7U]ܴzyGWdxE"+;g=Iۻ%+fv%",5˱)stdgP="em`1WZS:(7-8jLNs8TW`)IIKĤ*YsƕyrUë Pؑgb zKBT^TE|FU?]#ˢ8E4& *nu:(To[%\X'wQ:S*2pf ԣ}LM@:MἵƲ޹\[(8b1\a^h` `,Պؕ|&%!\x+_Bn9*d,Wn-0(3# <~'1oqg&}EeTO"NegHţivK,՟MSZvw92Vl3yTL铋p$F]RdTZq|{pFG¨$뛱KD., ݔcLCJM|_ױS|>SZ:S`y|S31X`%?%0/ÒǜW,5#]7_C.X3JX9d>2ܓR.űAjU6zzK2& Ltd\V1A+3CVzIF/6gfLwي-@T6+ѻ ux̧PZvv6vzDZ  =jGGbI.YگԎA޼NQE/5= ӊ$7;)Տ)G.iڃN Pi;)1s}j`[=I2,lbih짌)5_:矀-c062s5ʄ]DBd:_\ur^Qb6ĉk[.Yֽ5ȑ>N=oߦsZW<'1+U۞S78P=MnP]|+ZO"γ]("?w.]`Po"m+j۰`ԩrՐV L2X§C紐>͟ Zb>[}GM.Xql `B?-Dz ]u+XN}^(xL,]w |vwSUS}˵,ME(|a䰢r]8?_>w7Z,CЗ>1rkzclH$(?(jj=Fyvoney _iN^q}_:;#4tXG6%ie#F^)ESOF*GSV z²Sz丠uN`0(HOװc`x /^:# QsO٫hܳjȋP^Qѝ$0ʒgu&ۤk`%L͡I U ByMUv\{Ew<]a:K{7X{蜢p$4F(җ΃Y-/K2Skx{- ~D|+K'F<]p}oG86tTrD K^Ky{oz4p#Ϋ{LN֤Y@, i-T4绖&_c< ";1VLb8}ܩ:휌린P[͚%UۦomEv[JiC&1S}}$* jWCYaDqbiU|Vo](U e|Rs0pb};2rZ[7IrA#~n{Y2^S^zﰷ1}D^8Ėw>$z H1VLӳ.4M[B$L:?|HCH7mO='THW.9?K&<]xư} );V_p LKoLLIݭcX?ݧvj1 3; SkQz6,fKV3osݵk)B|@ɁH:P,]Nj.2IA>keotՎSs7ɝ`ȓsq TGp}) W/69P*+O^?(yꅠW *NDqltFNc`FLH~Z/`h~}^#_yxi¿xQArb/`ɧt_l*άknj¢褹"W5bL '1&a:4Еۮ) F.Dƚ1.~$9Z`ݶwL &8A\3Y>eaޖ'UWLqsA]XHo yniV3`W?&J _Tf +  c/#=PTc* {ˀlFh7 endstream endobj 1007 0 obj << /Length1 2282 /Length2 18175 /Length3 0 /Length 19514 /Filter /FlateDecode >> stream xڌTk W'{]Mm66&OmL5vk'MzZ;N'ȈUL팁vtL9e.## =##3<*/)<: dg#]&jn&gg v0ع8̌\1sLri;[<#=>&T&..ڿB6@G-@hbg:{OJ^ gg{n777z#'z;Gs~*Z t:M&FOP9Kbgf A&@[w[S#=7@EJ` hn W F&&v6F [sPwvwٚehddoj62~7p#߿98읝@1d+{lMEllN' rw݃Zڹz dkjS{5[ PJ"?2s3tM, a[~/{;{; pvtxS ` 2qAfwt weUQQWSUv/:.3#Q?*]㟈RfvQxh{'(}.T o@埵edc4yyvEY[Zʿ?Z#ǿ[~rvwaM5:b9)j/CM9܁ g-fd TsLޟI53FFGl/4z[;w;=#_dg0%b0A?} .#Ab0HA? A| E {?UiA4uFлz俈=g92_>&-wf_Ǟ/\nb^ş9[x[,ewVlLb{w}l?ߛaib~$wVNO!?8;^?B'ebppLOc=H@6qqt|~݁&+v&ܡϐ{ L^*-Z\vo-"AMYCɜQ Rm^:ŴDK-k0p$Qn7@we2kf5[X NEsA`)v(œ] i`"i}vF$r]_d)$a[tALp]bE\#t:4"2܉-6xy=i&6_*=fASbAEz@.KN0V8볨ޒߟ#.Aaޱ _r)xM }uZˤV` I :`x qlO'LﳴbXYE?kNq1(T7)RkOYPFZwP0>9`jOv*׾Ȁ0QtK}6]C`'1zCe3>8WO|0Qj~3A!W/~ҬE/aP *K c%q0HOG R(*q"]Lɣ'uwm=獴5CQMAAs|L~R6\OĆyjy*ZJcv@: S`^2fZ<[rBY2yOB"v,Hu4rm)F^$C|m'ODo&R\_ׇHv{WZkKY1hk7 d!*+]wXUbw{{6yWje' g4Q'Ht/ҕMT9{GmL2eq }vV &*A#ȗ~6!{Rt覶d;25Sϕ܋}DDх_a6"(gghf%T޺G6~@vF(N!ё]?d^, j4&)5ʎA-9PN1?T0άcCL>?R3/n|i %Qji9."Z_A䊟E-#̙QR6 ekn.܆ AGw!bzm ǵ \S3\Sv23_5~1Xb=aM6 91lٷ ga#7ޔGR(p~#`#-rC"^k8w3t}]ᦩRtCDr] Z/1ޒ e_"K&*:uUx :=HK4C/F?J\bU׆AD4zŷg$>y>QVCYlpܥֱ߫w&l#srʾZ w4B3>0M_7Zj<:ZfYɩwٖIӽGl?1QJY3ҟk|Ysg }aCaRxl#UG$P͏Jtɻ#;0o[긼Tjߥ9b'yn'=i$3ttĠ{fq\ix9u3tr+qYhS*r> XrwsFK2;7J\u%tb3ֱRnH᰾UhZ}LǝbUf^<ߝ3~q.%bl޸WrV$/<ة6`^u6S:kաkA&h c.{÷C} аU"G>K};^2%Uw;N= nB*ݮCD_Cb^J1'.,0 s?klK,AT}qEыI#3iȷMUYd F[z"lO&#qᲥٷ{ȫWt6CXa[*5< ?2 bJzĸיH5;eFG|e'{3C2 čs]ާ`JػQfu*#S'Ci9RőګcK}:9+ 0z{_876zZ.#NEo rP L)8pu8H.8C+kZ%](XxbDz)mcIʑFq фR"PݍG.og3(7ZnG`$,L@7'n *\SMz͝P'`k! -#K|k8& DUX"O92(DC u)o%k G-X&K WpCnœ]|qwB}^!M.)myooc?|fR@[QEזcnǩftZ±FRKMQyBeMO |;ծI/C? &01.Tf+gadcYkr"RQg ?1UNf 6ݞW]RA$?M~ Y$^F6\loG%>$㄄KODp5Gd*U૴'㦦 Սn Z)U 2QRV `"LxFKDgowc I`q4:r=P sm%O1}D{ːOh#3`zV]^<废 RwB|;T̏Ļ B 皼۰OBݤKd~׉#;Oy<# )82.7Vdj;VS^NHP>To3;6]Bx-?jzj)Q5W$ e ӟ=nIC;%6 17B3TgR{E~xoBdQ錶@&hQ<=r$>rm*a>ǽ 4նⱓ߫24yB'UqM^Fڏز_aTS~EF|'f0E,M6[?)Jy Ը=JkQ$CRKsIMF1;d|Ʋ۬G.s0Q~ rW[0W?L7BXh(+fKW|*gAq`_W2+=&R[YtE:3 GƖ^Բ -3c}5PcED:usJ^-l@#Ϋd`j5P?+:H%'g.q:9CMGx.0 c~nT$L#~}+ҭ锁rT6p Gm&&ǭ px"L 0ɮ7D¸[_XxXͷohkpzzL:zD_{-]aȰ|D =JgL_$i%+4xxFol{gbGQeV8B(Ȧ}dHC3WE&E8*Uo>6c|3i:8y5D+-= 'F, KVZbJJP3Jdp6q6sD9:[oMHJO6!/Z6:GDPXKI=>2-|?R7I8BJH$pdJ7BuR6fNcA<,@?./ #Ȏ(YI| d˩SGqlB *C[PON{^Zz^WOςA]8c7lu*zEr>pqM9~~Oʞ3|faGTB ŠջEѴs\m?JRV2A Aɍsh)l? 1츂É\#MiY`Fx]FгQl?aҰ{,bʊ^8"jH 3w5G\TB]v.g2[72ꌒސ5sO!հ쟿bl-ȶ3k@嬭/6{?j ^WBp\M³ {*$8kG PY'2nUҡiɑ;tgz56ٯ`}?g7鰎ٰmBh)}UsC?Wcg{Sl?FUaУCt~:d"uߵx+\_sA?/,ngoWowخXtGI{|P N8F.¢r-u_ sQ@|YgXdGt,> ]ْ!~۝@q$0jHg'2H3BrvnF[']~p„>;ˁK1!?s3YjCif5N;_YStt8[yDF&ׯBq+ܰD7D󰏪 Z>0TR`)fQݷ!PV6G9 mrsK'DiGc IK~Zl]X/p:˕0?"Oh~T੐YU%P@풞5$S1"!v{:6[;)ƎCac;=UuR1U4ێP%t ֺ YA|ka2Z%`JgeE L0׀ӬuB1ԕt Kqu4@HSd>[o(q-t\"8]p)\65P8xgicoDR$BY6 "lttqE/TZvθ\AېCgNĘb|,Y|c! FO%37'WEQZo11[pM:Es*"mEO2bZT#AcH""`7V n>:"#{ ߟNگ1\c]BFod%A/^.~bPzYmDvAU0/{ R`J6CS"Tv-huiTШC7쪭a*XmQ7_7V3әe\u{KYϘzc;ezg|6E[ω߰I AhH_  \ x_?pguٯê<_` ِ>Vyi:;vDRc:Kе6mǤ+caa73/=ܰ3NoFݐ''9o>~:kKx9(`TBI a;e%1xM6C)#_r<ЩB (:26H/_SnWЧ)24̓5Su. ATT~IAՒt4{v;`1DC{"J 3{Zyi9lk$7./0ZHt^߯5X>|:48РBN2R*/˭@LhA^1:l+;)i]K~nn 3h;|r?ʪ0`$ɬSAx5%,w%Y&0˲a*ZB_s 1ם3 mD 4Nl.x 5~D%s@XġsTc[4zKD">5VܐalQ_%0=bPr VcV)xf4Ÿ]TG0'Es+x;I}|QC:xVetSZ?~€| dR>r!R VҍRشY2IP&OfU?=]"%?{X<1ZX^7>a;9U"e_W>UV=(;w)' O˶!w׋QCR'y>BH]n A0ɗ̖#L~(c !pmP$xsBpzn2l^?2t UD߽( ;kXwL#4-R6a$``|;Xҹ=ffd͆_-1`RX~<86VSo5ן!LRSab 9 "̔O4:_ԆְRpU<[H7Ltaw5Ty>7ߴfQ 3W&=\jBF L+ 1|wltB\S~J԰H> ԫt7ЈA[}􉲑)"+!}$U Fpom B%A3{(UpBF餎1e(? o$ܻRUl?<·I$Tr9oT REL~D,-h80|z~4 =q؏ Vi0ЅZL* !W몯Qɴұ.k>7Z)ҹBǜ4~13|2&vt*ڗۓ}Q ͡2C}Yզ%5tʐ# R/@يmP}#iŕŰF QwW7, `04q*YzCikbjM?ms-yC9n['ڠU:)mw$P>`X6pfjgU!KoZx.DԺ4"l4(tpOzk|+U^ gU|5aY31haa *5[z?S,9-n}`+(9@{%yuK9re{REH_b}oJg}$RJC\̽ !gc/po6*\NmKL6 ?Hأ5~c+2V*8t%le@H/L,qGE#*,M"P9,ۤ~7YR QLcx, u7RBxnλig-b-.*\\gq hP&9e pX+3`oz8Y^e uCcLk HCٔzf?h#f6pɐ:U'7ސBժܕ7=eip$ SY28 eԉ V*L[ ]1d}e5ֽDf.lWntw'?6q4'!F$nڌ< bn xkr`vP|<95tkMs6WTҐtEa>up(;%~hg 0{^ VuߞIONHc,ۼ}Rtgk}N1X[XVfDB"8%+&Թ>x]jRzm$ E rd&hx,ck iv٤aUUST#G%k @GPY))q5jF" gt5²G˕7qm?ca<#!pDU'*th!( &bf\Ӑ[q4ǂeI޾-D8du7Mj QԱ4D\hNjvkW ]ϰ/-l-_vqMBv-BU4 >ﱈ| zS6pqF缎60)ETI,hhi6=\z5 w tC%~-/M̖#`qX8)͈ O8@Crًs#1_2!^穧NOfI7 : έz:ёmmZm4hѝ#jÍ鳭n*t&-FT'`[w93W!m 0J4Ԃd qV_A'"hȹ< 䩆]++-)"L;_S/T]z(K Š9+OI_ߘ`YSm'Ml)nTvTp9o`)RK1n85 e 36NjWh0׶Rڒ ωƧFdhZkDG;߿μ']486atAzd&Lwrkm[|]1+pa6+pwn=h]38"g˺_Y~ G 4ӒKRuhGZ\ik(3Β1P E<#haх4a))Ru0 %Xă$˛v|i\f v_O1{_KB0X ͹;+3cv[ًy僥iӥv%܎et\$NB# ?jW*l Ooܯqg\mS`ZeKqDjśD"9'ev!]+^u'%!YgǴ&qD?-@nMu@6Y{mkM{Q<5jm)2' ӊ(%.q hcuDU|n{c$j]*h+B~H5[=4"ݜ9u]bfwxU7$|&o&~cX)ވWkzqEWð;ghY ++Q>D>Q_VZ乊@.QxOڿůY1G>ey0ZCDL+ҧH?N q3yV3`^puY`~tqh7fmFό$ F9LB(݂F4X;w߰2!a1l1j߫BJV}$WHNDp@R،Td VX"5ڃanIOM:c4NА6?М?d J}Z <[M fJ1JݴZ+(KAM5jH6]S򸖆X'h2/kD kOK]T [O K~f eL0I=>wG0qbխڝCHTי.5#zЛ5[ǜлE#E|"A, ֆĐ%9W+mIu ܨ" fwt.;]/V(<;?T;!)ƴqQQbAPsLKCzz^Y$9dzԱ Ap%yYjXt51qqzn]Sc͐PzjؑK8FXe'"{cZl(Lp|2E "U\2Dw>fO k^MjK9:oo,+Ú`=a-ecԄtYQ$T_Y~ۇ|w)<'D4 ~xVڕz0Bʁ\r L,YiQ&~.|QM=jǁ!ZzGv]& *zR̋J΀of:UbPΑpq#G70 ?i Hv^Üh@w=iXDK)0]9E@Qvrx'PpO-lR-4|:X2GoTyJysXTm=;mA{|rq=KNVchKכ*O㪏zf5خP `'n;4Բƺ O|>* '7!4nŘ.^edbӱJ4%8a]M[SI~^D=R90咨鷙8P&FKV3DC1iKWFcEO= BPlPul/=<,}܄K{P`C@uA㠼&XnJQN Im%aYe*S?dq2#!.~@:݄EYi@GT!+Zr_\ f<&:U3qM̟WՐlr.tɥ<گpVGb˴m!I{q8,e)ٕK%Yp͓`r#Bbcμ9U 9r{:aDk?G~ Q}K"2\-;39Jwiga~;|CO'10$`3qf |w;[4hRGVPox1=8`9,yLyӊՠn. 0WspkB炙_62콄QNLRo?3 ~,-ϩ6y&ܹ9>fR|N)k7X^<(9 ˲14٦/  Pɓʵkcٯζ4U(I/!1/H=e]ΫS I٣e - }<"|wW Sި~Lm ئ ' WA`3PLm̹ӌk"C[.|9ߩ:1ry˿_H.hMjV|qnDanUM3E8x,iQZ鑜9*:hj镆<^|jBh}!a*}z${&+7LLZ⊋!U=ڮ3á/ "Wma'nm_tIoF10Ky( Kckm'Dm\Qǩ7SٽM1s =d*]Z;D)DB1n ?,'sV B >Qdpɭ1:i`Y>/ 4K WJ΀UOH@[>Bp@t=T\fomV[a'CžEDLD9V:eIyð|?0(7Nwvr/ /7u w#1SKUp5Jrsۄ)cE ~+b?fIH "K#&PW 5G-qwm۹r(TYb}+`v [5z~q2DXV˫ta49]s}ؼ**(n=+(}}_łY|lvoɍAR2n@-rJ@9Eh FoN2F!ѳ8D]=$].?؄6E(mBvd9; 67NfWvHK!םE۱Oȏ ѯlܷ0.pM{5n NY7Nd8rkF<w->RY/'SMB4p4$pNKC[!GIŕIruu*k|߫%'-bbDז~GPv? r$2,\jGa Q^irVP?mڳBTVئRcݶ NZ~mh)ar@Jk D3bR `R9355D«|ȍJIr]3^`͍H?X^:R{q1nM}>|dI]h2i j̑immJ_E@)aeGj@ yсsq9wkWLTnMlA1kŞʇƽ%k:7hQl OϘ9rU ϰw-}E4v_OK 1Uז@0f8ok3RBlGBC8~.WB qX@zrkcɫR*ey9BaQB9*oB<8 ν%JwR˪wRrƸXҕn(8 z/ g듼3N=4KX|BYtd w DH|zf^ΏF&nipZG=jLbxU alAy*!JZ,( 7"X&M:B8vE#`FՒI>$oP+_IJrީ dSj /: 9k> stream xڍP\ ww@n݂@w %kpw8r9>s&'QP21X;13rDde,* GKj@{5,D2QwCYk'K C{n3 Kbc t'u9#҈ A;@ h2283Xm@@G AkhBo`@ocoOE p9@{g19+*f 6&.@dvxwq6޳d@뿌e2=G FF6Vn kS wtuXah``ol40|7t"A ?82b"6VV@kG?ZX۸X{Madˠj sJm.Gf t122rpqv Tl*s򰵱zL?@ߊELLc#h 'h~?{+@}|>a6֖ny "rR4SRXA cfc01187;J @WR&6Hw?D ʿ׆ lg211^?]Q_V$di/oyvr| Y Zh rZ)G6}s:.zV q+Xhd(,SX 6?#ѽo~biŬl@f6v#6]p seg0! q? _ `8 wKл?_࿈ L8 qx~Y2 2L ?PB?6N~70|nO-4s5{Lx+>;w.V}fǗ3/;lk|_3/`p'{`G3{?އޫq|'/N_]}v|/^y?_+@+~iƈ'6Znwi*V}G y_O%/|Qkv/qBBgJ87R}6$:ӱtg>)yҐˍ \ szDp\NNDvJOWq⇏)l[˥`#$[#v|iI NwJ_JCd<R;WWgoS2\Ҙ],;1XVJsw-k!׎:,-}8ZUL~ + BŠ0y|"tMފᒯփ6+58/tߺ-C`@ H)Er AHh,"nL$IGUs n u:tLQS_K[IC\5N;Y2 j [r7V̕zP4_]4)5F9=Rm^͚rLvQ{sK;8ee8Rp}[,Y Y[l|9l }Y-,8Lgzys MSI>DBVXԦnB4f>IGHx̍#|brtN阮 q_;x#z5rǞxj/~ [rA}^ꡭ"OFHcI:zU2;(hQGD?;90-Hއ۬bx[ oY#z.v);~zkCҁ㛹f 7]AR^^[`9\!P>V]vM7vL/*!ٜپ*eptqǓ93Qq"t]^E!w Dc]M*!MD 3`)glGGB*H8CS~ ihRT2S3 CWά2quDcg# %۶~"#= I!iܞaZ\( \" > M݋A+'gBX^ 1VNx]'lrSP:vα5;>kaYҾfa!yNAxi|Fٻ e~8*B1ism@\~bĒ|oZ ~cu0 ѓA(B]Uf"iT|jo86'꩓][q߰ ׯ_!G(| =9=(]m S@E 7}_LVNuWG}8{0mf8?>_@h M+Ms'잱,]V/MUj`*XN5A|/$67/ s)'l9gB^.70_8sqqqG;s P:5m%މ0WNTVv,A Y,~ ۨ ݑ@}s8IntT:O7扬Rqώ/gL;փ9j tyD ߌb.+5$x2&"o|wHPC+iL0f>Ȓ`V<~e//#G :R36>x p%d9fί{EEq٫`}1UN@Z._28 45*qM"[sA?hdMn"L}"Lv%d~=Gl UK1N ~̱mgWs%˾д>gW.ᆳttB #Td`?Jd.b"&vO=R}ȚH+  nbw33&mϹ!,Ϲ_%Q2op 4]vFpH-AE1g#!U"1]5a-,1;3H-IνHфƛptp$r2`ǸA{nĚ%iQjv6Ԟf1~)=5q@eBiLb/t\&9$O\ٌq1כvoOv{TAm[b2}S7OC|c-l"xS-*Zz^ 죆+Id1X)o.O4nVhU-x ֺ%(!/o;e~_ts;c{]WzX,gn^8^:w⥔YU|MIw/`>.^+pw%)v D|EA~;̧qIwJm 4x$ o?B{+ k->0,7;6|E {9֙:']|KgR$9,`!sJs5'C]}T o&b*j *}d, #O-l][5Wz f49\uC fs")=JH5œ UjIjhtgS d_nVҾn({81ڛ~c͆! T5Jhj8֌ڔvŪk8kKJHO]РßEdf\ɜMrΡg }f 7g~ܜtg2tu>͌Njz0E;sӏDZž68 3Jp U TpG6I0NVpժc $@ʸ׳rk_:.Yxêy 1G17(=@ Ĩ6!~0-]-'u,&ڤSrH6!yY1oɞ|dC J1+E0OKx[UdO EuQJO7qOo5Cvqhk_px+q3&c<{RZxs Vrk8&v=]x:d-0~sVnɖx,L6R_mr|kS%{KBkHrC|Cdg%g1[ Pg!$"ʨˀ.?Z㾛s+mR~݉rFhc!2=F`by@X! A<;zlc+`#\HZ#WGWeEs=abYdt<)Xh]JfdKSdw9bl>:#/N뻷}Vt(ՠ1_EjJ$:y<$BVy}'ޕ7^7|ɍ?'2EwU0U0Y3񌦬-;CKƠFF|+?6XP~`x6JKJjvDiK`& ^ϽhٳκcPC^?St)`kL.ca/Cꆓ(}wnhĘ9]-Ǩ~vٻE0"cDZrňrMy {/X]3}C^knZk9y@SHL_i c/:TFۍ 4|Dj>n68̱\} dUH^D6!\RpŶ$7x!:=2D df%$Fa@77ALiЕ*ɨBZ/p*3W0|__|8 2pן\(5rvx*T '= U{\(sONYfpr@Ŷ6! =/N*0EKrM<2p] t^/91}.Vk3TY&pMxvNJ:ǕOn1bH6x%N&9QŶo;~&y͉f~=$kIτ^4>hU/0"/??1*t҃l҅-W-"vSg)YͶGmBI QYpj~?maӰj'[HbW҈?`ݥ~Lr!ΗVwLgȷWO (vۉ v h|6# !T,ܿ仲L3uM7 J'ReZ{ 7*D+w1ayxt5p< /YM\XȁlFu;~yThwZ 2L5N"QE\QO$pG {[WkʂYBG'Ũ̽ai3_P2hP}HO?(vuLFpqilL3~ck ȯ84ceH l JqMLF[~FR8tLJoLVM >*<0*skj-G˚F$10|1-+#BI/1* dvԾv@@pܷwA{ [j,{=Km; QVy;_ϣq1d'%^Rp8@u=Zlaw.1i,nFPҋlOf˖ҎR٢멊o%ڷ}_-JO9o/?[|\nԱ)ޓ |=$3rS\97z /`zu+s.4_dJ["#4,F24fGn)oW.QCV@/Xd.…RºC__>܈BȄ!5P'}|Qm~8;n1ޓsx,L蕖VcW#0*{SwFGQ,+`dvqC3:Z3LJR$8MBZ@rNK[SS;҂-$ˍ~%!TF a⇭"A;32 Am:OjQ:qHW%02+Wra9{B*H$Lꮃ`}s8= ZSsOKɊ,L<G[dDi h>Xp'6_9JN5I aoub!p!I% 5 h]rW{r(,'&:E䖣rVT́Aď@^dRJ2R8ˈc)Ox2_7:+qJOV =]-ݳX Γ u Ӳ!S=xɠ=56udyϒG :roZk2<7/a24rA 'V {QNw4#2F0Ӌs&NX,287/q)ֆj'$fX̓;|(Rs/ZUZ-B"w]EPI\`4CeXiOHC G5FcvqσTEߚ_>ߺ3 &Kbٸ+-vjя'9E#oؖoIWdHER$ ;A>ygYXXv A+7Oi)L{u6&G4=o;J$K.UhAe];&ɷ!FvIwr>r+φ74=fh"퓪a -pUuq{F_|CQUJ\02x-^ٖI54kH+\j@g XgW9k)wy|;NM)Csmȯ'%1g}LǦk4e[JyI0Xgvo -WK=5Ne7Z5׺\i=A?[㵿+;Rd76*5$݆,6Hh&1fjo?RyQ _ֹ-٣/t" N15AGUz \,"A }Og|¾j LjϿ ]ĉ槃;ZD55F DYޏBF/?XlqoZ![=Bŋǣ6\ȶK1a ݐt{xTχGgةfrfmM~p1:B# .8Ӌ4 , Tcom˱+'SdKQ+wVt0'A(Yv6/Tמ8+NBX:jb]1ѦNd.}ʎ?@E7e })aOpNDZ^P\=9|Xۧ*un + y+AiMo-`d_vB!RЅ$&]N$bnH4Y˸8~4|M$#g#@qS i>Uͭu~G D90WtҾAj#VOsƂyeR)I3/F*'7 cf_hkڠ WE0UsXyK|8qaKkA X\-!A2UH gTݵ ?#  [B҂Md7rQ|qgK}q{/xwQFD pY?~To{ 4Bn6=;ԧC[N s$!(E&G pS^z_8jd-\/c ~s!zP:#HeD7~"`> T]ex+@A&&uŽ 3#o.V{\D]3ǘ9iXCbJE<͟m8VZ6?<)Y]?>nDЭۡSc4=D">IHIxvrc:PS 2!% \1Fi.`,/kq[ />GL \HgM`uG1 + 7_py⏖Qڝuܘw uT64i}d?^1K S{$'2N'sOaN33d6bu,f_ԇ yj*5U=:aiy;Xhie|HsOV-Dx=9Al?p% vf 'Sdx߰:!44nȌFrY(^pd# 2]]0xuV!8W /9]gkʧ,+S3YǁlBc JG hLl~p.k37&%׻JaIU`CA{ C\6_sЯZ_M~ s`;V-Ȝo$(cJ8VG96̔+i<[6|$ ǞB2i/ا+m _̟7~aB b'~q6)]9a>H-) s/59)Y]ʩRnx4N8x ; ܫC[81Ix˓D ("~F&[\H,|n eaW;!+FOD 7JK\8N] "qƣUE*7k $-+{NU/V GSm9e~0K40u:7\׃7QcڼȖUfB`M jIaYWa|O{UX9bܷA(d,'Z;.ؼAO-c|-5КMq39'f@i\i |yIcEzܔ9F;ؗsuWO67/Pe4$5 _ Z$Cae2w`CƘQc}۵8rE? =|>m_yI]Fg] x%clPYVdsUME`vA7.F MR uKa>u,x->q!C!SRIogxg}1vsVCO΍?٢ũJ Nc<0d3Ch5t=2l"Ça6JŝI@70AۚL ]<޾\`dDsWf`b(2/HL~3u7}|{[r'B6GC`M>ʾ&ɋyY9: 34ŶW:@K͊&ȋdO=>F}7BoQ`_Ћ/)>}rd _MXCjZ!c&Q<݋wLOX5|mpBAh?n:ꙶ~n⹣pjy[0QwCvop\f~1s'_jZB<ߠ.cMm k8j9>J'7a8W&WԵdОp-50kbS#9( ak8 tD4%OAa3Wѵ+V0b^Yͳyca/Y;DVP6h a?j=X"qyUM 4ڸaC7 C9Ә4Ị%T!R[_$] l}:M%76~*1?cVE~ v(?[m}ؚHYʪ:ILs"YJ<) ʼ?IN^]FiT#maP ǓlSħ{P̹!: A_IP,ejDDW㖹p ғ3+ֹ]dͪxvy]n&t'NʀXP߉O#iFE)۠<_8F`N'~f 0ѽG爑Mq㌝J]]*yy rV,a,dh2{cHe ;N@[?{,J>~}%V96vBNu5:{QQI-^Moߎb=tptSJ&ԇ7~:b-tIHIsϐj*uecQ0svlc 26`lSɽ 7P`"`g*&]݃zb)$w!jlĠiUs Љ`gm#UxWW'R n)Zt|d<}|0e>CBi YU|X)nDHQs,;Mj⪤XJ1H;l)0:lqrz_l^'G+{K ya%%m9}cVQzyrUTZF=#(e==CŨpmuOݥ\yr=S% aℚ2igԣoN+ =-4+K\2K'hzhƂK53%B&\eKۥAp'fc?Mcn߱xsPP[:%TlYp*H͑E/~.Ô:¥(Mi`Ra^j UȇrC'#8sϏx4J>}`EF| 3v4!foA6c<ᦊ[7LHfV C1Zψ|ɵ.:'=n  \\! E|A&!zQSubt~F͔bʽeסiЏʸfg{'|Iy9ڳxh"@AM8&)(^\RdEU$yeYA@G52yA|<<KEmWzjmfSא. ^\mNǢzcIk@B"z&#ϚP&aX6L1-WC|d56LoͲ=r+B#y|SO3'yv6EaG1<:! 3QA5u?/u 8' :#lͫRE 훇 rEvLI~/\~F'U7U&SSy]:(Ao 9%pߤpb"5.r2lur}z GӫpeZJb%Јם-s8TETaL.zBEÈI-U @o FfՅJ߽~_ف4}D?3޾RYb||]MrKUjɲ:.ɖpҭ<&5 v[}AZɋ6Mۅo۽F^hHcANqMZ؛ҽ_i"ސtSaeapƅ<‘FLI(Mb\Rh> M'xWȣ\^K("`HLLee#`ªlTLq6JRG BiD"y;|jqG5DMLoRW:~'ennto|r+EL3ӿ^&Md6y- =ێ<1\ jniʏkVư?v<~СеpR#eL'Ld~c$QWhjWMe T^wW[YOvCI$m#tZIߕF|hgw{#H!If?>:+[[YySQCP B%.caMbZD:kk^!jtЫ jV~?BdzɅwi_n LWz341b |㌦&@|͋O5i uJjqo%{CG:Qx#fn"~'D&:KЍWz r^Fi(%5,"ͼg_tp;X iOpɻzmfz#>}0YM6% @U֎A }价мPq^Tnc{ dtDoe0N^к:ek ;0HtJg+0ӉD!zI\i{u?l !@}":1ܣBbT2a, >mϮO2&B#hp6M:Q;DIbPv,kݠTu0mV}!$ޡ/Iǝod|B >VZHО=F߾ [%bbk% I]tmj/i" _oTQz!K퇄N3xni-mل=j_rY{sd*TA`=ϊcΕ#[@Tam0A@݋2T[85tVӹʙD1?y_v{bd-bKI+uky_46MϜT5G[6.zi}d5m5ژb=ҧ \<埿%R> P=Ӛt<#i'Ol>wY kT.pL .,y@6o?#I?/%{@NcXRL~8/KG$WǷq35'T`k:~ \_0mT &-&4\XTSxnX&o&ҏyN,.zĢDDܑ9f;^5/WKM5j 3Hc\|`R#bhs+pO`r%Rj*Bx-QeB1gI,5+o'> stream xڍvuTk>% 4CI% C 1tK#ݭtwwH H}99Ƿfgk}0ШkKa9= ) VRpr991p[ȿL3f/ 1?J..00''S?0'a+ P`gLi ?&3KHHq 2 vAf- { &Q+8A hf 9Y3ܠp+& ~ P5SmuK9A[(bp q<h)* +e=. ?>a3f`fX@m!59e 024u=7s5ښ?N '0{ ANP3jJ_n-kAΘ:A@g607{lK{ DQo2K)0X#D[KP`P jyr6sN.?0`(0XB1 X 0|XB.?o{zk{2r/4uY) `s >Ru3P׿׃o0;*a!Y` zxpXssmjbH{6ՅmbpH[>,</1YC q~&êq( r8x`s5Z!/_Ha/pA? 7 \8,? |ݿa9qqȊ!>4vыI nNR<WbTAw>}?<W@i2hG/`hF%cJl]f owM9K8'Dκ9.鈽 䪐rqp?Imxi{T%wn dg)H1~OW]l#mLJI ;V*g?2Ej.FϷ=KpS;7.#ƨs?≚]]wC#tuܫJE=Xs )ʆ$aF*ܸ^(jiМR~t6dT*@\:MWϬ+ .^OJ_74r.x=#.wL5= S( F뒴R@M@j9yi!;J>e_MawrCB*Tϛ*|#i֠:D 4+U+hT"]0,ҙ.I#Ȣn 8xq@im{mΨ !6`jr%u3#\t$g=6TA'? ` ۀ6dh1ܩ{\RgU5'rDGDZ ̪Kj4cIXVt'] D-)K }^rb+W=}[DnHSRɜ^'eOEys@OI'H9H~]?g\Az;1W:/TچJVs-%nxj8`'kgJ5M_SR]ERu|E .ڋ2)v/_!a՗~(5ا_y:Rœx?Ud-G_{.wch(`U},yۚ=iZ 2B: }(('cӆg .йᝪ'yG'x龮.qRmH6>/#CN5; *?\_D]IJں.ǗQ|rrdRhEle Ǧ1BYU1SmPMQ6MN6WPLŇ.CB ;$ 5ň~5}7Xĉhhӏ%ݺx{ГreJ #]q7/iYңww. Qr4%)T@2NGE1^ySeLEq+'T%n{n޽dDZr}K0=լn\L sLZ;wrAAS"56x^Q+V#5ثEXJI n7\ LSw|a]Rj ]7ΰeg yYI*U犨(|g0b=VtWU] !Aޭ;iȉiFp[_+qP ;Vkz$to5kM 検Zz\8)[eS+_jS Mc~}wͩKDZɖ}rgƷ K U f-'A ;0Ljsa{k^BeHʿxImi#^3%U/"a((Y) R4?Jʇ[x&& q7 zaxLKG2 X?zkd&P9,S z2ŜY V;Im"FLPY)6-R2UrW#'bSQgAZTD2o-xR.ZԈ[\ iG"sW;<9vBolp G7x 8bEh{;ʮD` L7 ɱ+eCI gE̓Oc* [O)EuܰʢPixq'mU y e\Y`z7ܵ+`M@eY֠Xw DJ6BpV_wAgt|OTM&enD+l-U5gs:T6Ȕhrɗ*RX[MgIWr"~\?OpNl0l`3e'U*>g+jdY?UaLw2t=54g>:a4%գA ֈɧb޺=&r>u7Hb;YDyo<,P1`4d@_]cgd֨jt_kύnԼH/V1_,p#}9sz@~l%B3UJ:5 颀fsNmEv-IN-#fb=)Lb#vt{O;,Pٺbs&a';]3;J$O8x`.}NEl{5녲P|>d^Y WuW#q<&'UR[L '||ݒ1nO.jm` Ƈ#iZx!ŔiMIb:w.(;AFV1{}!@:Wyg_6ƪȴX}9ah_@|H~+HshK7qN._EE(2bk3ͫU(j63jڛ> ◙>)lmX1Ρ5yui>&/+If۰1IZa>/TحUh^A,~w”Ai/wW\i/`tv}|jIr44.? `d -7b+L<[B:ں#||z,b zWdZ &0>oO"""cE=^>;Si5+#;'˜HE܏. n %Q CB}K/}(kH"uW]|yI 8K R'8RoD)(rq flzGD .w #jfS9$g3D L] \6JQ;^Udm] uTO ,[jׁf&[RX)c")d.&W~z?1u% gxݠB[- }c{Kdõҁ#z&WO* m.v1cSNj:MDgeNq~δ$loo1/\*teyl5|Vz8ݛ3ڋ}ƪET@bwgǏV{]5n:p>6i10 ISd`pV'4bcM/{dS 6Y #3!xtkfg/&eoetX,XB'9\ HhtP>qw |=s2`V}\&¹wlyJUhA,̕+ٌV_]A'`J1&*ؼ;X7^0_aR$?7;BŨ~Қ.Bm#/e&;B4#V̹K ;Q=~?N.M= mWXPD{ `=VCf9kSY@ed^5^u`",Ed.ɄUiڧl(sa"f>B{Ohn61MЍ:k41ēg5xhj2mm߾m Ge].M쑶LHFd vFk`*Yn"0? Mح~n{t_*c&pxnQب !l}阬!!B9c5H-Bt& VTrUL\PE(V.lhf*, و`7g=H=wLzl#!VSﳺ(Gןbh%&$>]pnZ4\hr,T=&&K!ˁR0ZpJ9pB=m~fW[l`Jp: ݵcVgdUˢF> ~h4O|tvRy#ÊulzZIxQd:gY~MVRj鱸6'#3ŔR {6\5\ _%Uz7YcSʖ3Ih4Mçs[)c;&G [ܭF`58by0UB>S6 f]`)Bw c2!pؾb|ZĿ 9[#b(læP"ɱ!or;Ï8F"mA%pߙ<7g% Ib|r)5/KďGa&|;^2r'n=i>oe^0̴F V1'ʩ|.Q%:k%!&"Iv  j4p\z] d0d [M-xTlӤ2d vfS =\,3==".6t w7s[D-L|ٸ[UyEO}u[X.3ʛ ?(ⓑn.$7 Lq8HT0v>f-:[cP5jFQ*[FPݯO#IՅEG f,o~GMR4OCiϏt6o#s&)o!WL^%8("-/J77#i_ $PZ98K̔ps!nǂ5Ͽ@GvPAXG龶Aw?}c3.FaN}[u~db,}i590jʹ_Xaq/4*AnܓnkޥC~wjѷ{I«.,?5I̲7c+Ъ0.y#>JTW{/@O[Kcq=^X+SCX=?C՗h,M3dTW=y1;p'`۩^7Ug }]э3f42qj{| 4$m]gf.܁HPHyۻ8;oW1aWV#JiTk;V"|wko^> \?Wtg .#$iǀv!蜹\QɁ:r4Ɋ:<齭{TsHZ.]뙯ϔM >l ];;{ wϓnֹiy'w|i.#XFP[X5Btso%Fy{%(LEx}iB\Xs3l|DxV)BmFa Ꮅ9N"5gRGs*fF.Z{}|=iUTy#_H;Q4n, Sގx\oY A @ڹJTj7ɘ1l]䈩OcwPVޙMj*z~*|ajҬc}FoW~^?2r׭IƐSkqf$=5 4>0Hk إD{.XРS<7@{Nx endstream endobj 1013 0 obj << /Length1 1423 /Length2 6058 /Length3 0 /Length 7015 /Filter /FlateDecode >> stream xڍwTk6" "C7 tw03 ] ҩRҡ4(Hwqyk}ߚy}Z !yyA?yA \}(⁀a(ja /HJ@$!(v/ A,p7_#UWݖȺB<`F:B\Qm. A+#& vE=9o(Ѕ ^;'e@ Cw"~;Ho@\ xꀞ:p;ݟ蟉_`[[ 9P΋Ar`O GŃP k`@IVᇰ!O|?ӠYf'wuܟSz@lQ07=fg QQAp9@0 wc䗓! أh@?@t{Am  '; FP@?Yfb>%%5c?v}~G@@}eCl?oa4(9Co٢,{GJ.. u@ 8j@` 5g *H0jDda.$iCUWP]06y< PCg댺UnrAP30[`_\Ja€??jJ > HT=pT ?jr")ֿNMm%ÝߜUx,Ě_lyb-d~+]9ediD ٠yGV\r.MgIn'BgvMYCKdmaƖd4q!)ZRj* E' )4xٜMXEs4O}ЄS7qTKf |yۓ*x\R<*CNwTdY 4V9$ݱ.X[6:]G:٩^7cnj5IiXCM-&Wg{Mh(jNN= )5I֪WPbC(nW`S ~v51sY^YB\jӝomW R?c. M=zG,oo&nN1&L^XyCJ^theNo=,I~BZFiXb&g-7 Z93GIY}bl|ȫ6_ܷZA>:e1w b1Fb1Xx ~szaα^RUrF be1d:kq毙6cB;@ra^Oumy88V<%Y7|8#b"MdݸivVO\}[c!̊v昺Gk.ԏn(Κ:yy =bARb'\dH :SM(d{ ?r ƖLL[)PwRyKDwTzp}x:'> c*kyNm:"‘O{lL!Vw|J8Lr ^xx[ӷÁP&Hgݝ[rLjw~$G T%A'٪~;s b=ή3WIVk/h9)>i'J/25)PpXq~Gbwؔ1g?ZGQ'K~.YNab>#kn+6LSXiM($9,"{lRE$;c{?؊!DӒ1K&(uwA@I\9QҀQ+ <hMddUCI"®1ZfZ(= PҊzd^-w~ g:ϞLg[g9Sh>, RNX vjmG:B?<+Ǖ ӗnc*3?&nD>ᮿ?Ϯ ~ Q$l)zyz]x!1=a%yx?6v-_o*􂊨_FE8qumoZ^I8%&$ɷ'POGCjjcy%{x^- d$EK:SFEPNR3 _,hRiLQ y-9r:nm1ocq~.4ʟҨj? o4/xd9OQZNaBoS<3T`Nݡ&*K${a4}z~̎ Jt_bdV&=.XmS䀑tيb'Vg*ùpüz[a8 =} 4>Cy u3sҭI⒯6'-KN+nsPmwc$m;DbU\Ixk½RILqmQl: ԆjTGktCy*GeE S/9H=:1oL-rV~i"rM/d6?,GDEb[#%.hq.ߩ{fjGeҽLG X{AǼ: OXȲo:f* ӕxqrA7-شy~J}}f8P8N.Y&1Su#B^ psEGu%9y \͵qNznH]$ʑR;^Pۋ閲ZzGOODPD)~) :z/;t 4^ dKrvy;,h]O5;*{L별RYGP`%O64lNwŻ939\kcN uO g*p vsNVV&/-+63y6<\aynAHbLhRnU(Ky|@Qk ԗ:.n<$hFy c]h C˙R~p̳fiW( C485a Pftlꪒj&ٌEnW Ϳ 3cM*7D7/)8@IKy1ó9#@g"uG1jVĕۍݨ<#* 3_o|~`rc!ʣ+rU"E̮'7<!Cj*s %_r }?k 2[a~ܗ<}YI@yiRIH}l~c˄ :݃EbU/LԴ| BUqH*U&ѠUҬSß4csU:j3X쨽Xi4y7Aq7&|"T;P"j<6^Okߣyqa݆勺ax-IE-vo6+Q_=VfN,˂V&Bɼo檒D$UVIJ}}t &f#z"ߧ-[on0ո;`8 VMI^={`[]l&ǥp^V.ʧ#E)mҔ_l\"u]Q 4k&rͳi'TTZi|z8ylEo=<_Rn_90|yûĔ_3S^FD Q`x>L,&}L1nDֺn="ܗYXd D7)`LxAPhI(N ]i^ 3aq0;ўw 3(Kx#M-m<G|Y6O\a<)xDK):EL@ѥrAo PU}景:y?u<]9PvcuwsEڢRiڅe +QzsEf&:d; Ѫq7RNzoȾFz41 T(,az dΌc6.v[ ŎBK{Eu0N5O:[jfoα8t*ú]Ywuu+!d~D߱cU%^`ps<"2DKTE6#e22XmaL_I2>ש|ǣըﶣA#^e?&fdNqNuc`sEN oӘ6vܢ獏ߣ*Sx+>6:[0r8aXXA,18d{fvJ]UJ? }+OUٍR$O~d>bRj~/5&e0}$_wxAwjDgVԱ.ŒעFh KPK1۬;>{~&20%RCDy6޾d)3x~91΂Y0!9vӾJ&oJHOu" endstream endobj 1015 0 obj << /Length1 1428 /Length2 6162 /Length3 0 /Length 7136 /Filter /FlateDecode >> stream xڍxT6Ez^H{o"`!:H" H/һ&U); _sZ߷Vgf癝+!l!8_H(P1@ PABܑP\?J mS@Ĥĥ@0(7.PyB:M$`WBCQ:?!IIq; t@(G "!P)8PR^^^ AE9 !H'2@;0Bأ@!p$:nq4z +_ѿAῃA`0P-F@p_@ @ǃTӇ1ۛ-^=HPбSk`8z 8}0gN|m~>y`c N0~ؤ!z̔GE U5ύ4oT~(/9?o*BoL6g{B*\!hyb fT  vIk|DZNu?Ʒ|DSu?ڸpUb*@|v9OI EGy~ĝn4+E=EtMۼaxǐfb3u[ vHMj5V/ڪOmbn?iwo* Q/񓠹;DWޓM+37z(+%d3#*6-wZ~B4S[]mK3]fF,̖i̓)0fGdBTsmx#aDJV=\a 3P^9:ۻu090r^uar В0r8;_ؼ{jH5m&5r1!u3RB1}EAHj) +Xp nPS&]DzhI6\'a1( m'Ob'FXxd_5Ǔ~k[orJ>k56_[$ktn_niE]w֓Y!?kH*[G<]>X rwil#D[[G#+2 XjF#,[0am͚; 1jD*upkt+k hѣL1EUeV~QyiOķ1WO3~De!r-s!+M7B@eYV'_f1wlQ GR(\o#u Fk,] -bEuӾvox3I:Q7'J)έhwr& ì*m}ՔXC!KE^,_kFŞ e"u{#N";]-1q ]i]ë^ѽ-&s <|0\V/zߪ1;-w'o(/Hc~:< )5=IxYʨtNn֜ +"4Yś]_Ҿ9}[1Zg'b*\]︄aĎ|"ݧ5JU?9~ѓ|IBap XI:sUgۨp+uHVĂR7OݽMV5=\|7)5\-3+1j0-{z3Je<]j~#u\]w{Sk#i}?5.Ni> oV*Pe׵1ejd%~TݻUfvL:89SS)//r^t.-_e}6ѻd\_k*"'=ޔ*q1z`2%}֭dAi68qMk-I_QJˁoQOZ2"pJ<钱3ON&ZgNpG/xmjf_jdÔ b7'G&,:Vp!;Bıy<*" qi~VJl?To:LDDbL8ż;Z4Z82pXz#dMA"0|gP4ɻ "JhȊrGqB[+&(C ݆뛳8!</EY&+d U>$յZv9s]on .SH6e/SMc.uڹ);О%3h9W2$G=[ųlՃw"m̄c+ĚG߬זR?6 R.D^gc.jm?ip~5/s=#ߋ%yX9U![ߩBXLi0Dhk\ eHJS)NpMmVbݪn{[<^o %Zf;{u94\s^ʚsIɏnXLԿ^u.@\`|G+{\Xv'Pm۽SI*}@I&FeH9ufsvf]M}oο&mS6K?>!,ݕfP"Kf4j) n6?gȒn \8|t[BGƩs^rP_߂: ˕ r۟T瑩\Z~̾WNOZn#@xo*VVθ?WYٷDM.:i1<3xvZS\ܖJ.xkaG'@.[Q Aw!J:`hm1EKGM}‘)dz 2L[H@b$Yּczfl! %cj)ۛL^z|"4~86.Ib 5]ag1CS\y VVI3ege:GVߥh)<I3pפqnGS jHF4!wL6^&Ls$Z&&=H%#SlĚG^l+N:|>oA;s;4_?C"rICk#)fgҊr.ZSIB!c\k?6 TnC9"'98#lIۦ-"7PWpP8&ybޢ/;w8)%׃JO52; +X} v6t.*(6 }XLCB mi,a=zôIy$x.~]_QKsH;msqTEvtO-0#p-~2{!\)Ned.*;IDr5!Y1yX߂^܉A^Y.;"u6,~⭛<=\ 3ެ< 2|[Y+7=05Uptq* -iؤ;((Zez:!߈P 󞸡3Zm'{tLU7c$eʚoODP7NŽ%_Nf -c0,ȩT+?'=?AV#wsjoD:iy(6q7Åoyш!y<1֘]Φ!ҍ^ׁ`Rlz+a^6*eaVϓ~JkU]Ye~كՐ3J1n?&/qMk^)QJӺVyBWq=+LJ'lj^?u36/gp=a PIo~MGyrmF;919h|ҥ̏ ۼZ?V[ O ()5 L'e%tջ>LϣU|NZ8??N%-Nbq7(|HcE5&U0Gj$&s !IO^V:lK0-=1uYegy'gfΗ2d^Cb%kN߹@jq?xwlԮrd<)ۓ!~wXZ/A=T1>!Xդ5w@afK"'krUGOɢ̹ _iģ%)ZGWij%j Cni,h}$Ƙ)#݈@旔 d1ݶb%6XwC<ëBƒ G3-VOKr5L"%2x~´t;L8CgE CaWsiS1^^Rt,D Gb Oykj:,4ť\ ~;|浙3R$W/z録 ilܫ:f6$,,y`Q Zq%E/*M75ҪSX ̒A> stream xڌT.LIwDfNi;SnPɻg&%UaS;c3 #3/@T^M̊HArWHtta!4rČvk _C;G^+ :!R{8-_ /w dbd 7rڀO41ڙ Aglhdhh.@Cp9[TN@GW)w#ߩ1"R,@NQڙ99`5hvq5:T@ǀwq,,w _F&&v6F [sPctvwٚ64vQ7H+#ى d;Gae5:;!'rwsll@f0ugR9_d@g3337+X0>@= dAr2r]>^*YX g1d,r2ǏfjgkbWT5N;`pp|_R%#'mkfO 7 ׿率;4/yrQ$\S7Y{mfgfہM5Ygy)F 5 ' ;T lb [}``afxLwY&vW`h /V xGM6g0sDRNo'IqD_7IA\&`|A&`~A&"\^ sQxA`. n0\T^ sQ{A`./Eh 0syA`?+8cdc^߷?.`RFN& 9_޿ kӗ(쬿9Yw痘_Ŏ2v42Z͜s-Ϣ?b+yn& 0E;kRoK~o L5NO?UL+K[z]O0kYfp^-@sXKu3:ڀml—f]Kk@?,2\? /qhyу[G QX6m]l1ٽǴËFX{_1W4Ô/eF-v#W 쿅v@p^ƕoر-7;p~$7\R(N@п s:d.LlcJEvv%KLXvcAS=.{pG:>l&.6;z`@%;wDn S4 ^.wp)45Y?SFwũHN[ڒ TfWfp O_#3 x?:xkXABvP9p*`ݺ H7 ]W>Ez(cQ~P@oOm£$H\"")ʼi>ś({hVf UY"cW5}*e z|J-=hqE;Izo}'t{uV9Z.9?NjHwoGp;cؙM 2/\tPܴ;S?gv:̍}nbDt0NwYF[>{>TvmK}4$23c{ѧo\ 4 q5&pB㺛Vdg!<* )W}pYohYnY{ٙr[غ*vry~6hfʸ%M6R~s.aokźӹd}Ƃp;qo+R;b_~rY|_jf~Fm$U$*[GuxR=PfRq=_4NOHT,Ǵ%|҇ MS tL_ 5+o9p;c#PFxa.Ocysccb .i!*b+"%amnIeލJfh(~ #_ENׇiNyK5 D%ˑ 'CSqA0h"VХ~Sd.[we$)UT6wddwQr1ķy叼"U$YUP8n 2\,jP>etHuM{uohT^6Pn?YbXUc- }>d58 [ާī؛k#+E+e? Aᦜa1B7 9Yo0 Zҳe>@oryH^mlӻN嫹(ٵn\_no/UdfLꮉeBdz4v%=<ѦV\6ihd준"S#%sl&h; kYN5Fw g5u-I EMypj7PC.p"0iAv'v mp#T1& ]UT8$wv3m ̴CCZ|YNA{C ȼ mF^c.Ϻ8DM%?([zB/:*Ȑ6$;Q~&m|Mjv.U.!AqSѼ1P "s~]_m'Ѯ|՛`(ry"3#³JtXކy73-Pqf+-pEO.|B!msoQz4폡Dbzm6.١S>jM:0 "5 6Ž-i:FEE) Iiԡ|2#%0*t6e`,A3*(አf / ΕLo$xyǒGA! 4IHpzkmqFFʫ/R{‚  "n3>$.,_mN(L(~2'iBu̫Fb4i~w=H@ntx)}$"R4: 52/gg܂Pxx3rMs ZٯCꬂW߰*#hK N?WQ ShA'ƣl;O)'* }EY ibDdm?O!^sr='d:/Ē`0;ؗ~v&p`7@eqqTM@PN_?}XxUɀ^wjR_m]X3H7\wƒڞ!rCz_ҫ`UNT_oo Ea``|pՌҧs+p2s. 蜓YYiP6KowMk*J=hTUMiIcYaCu @3otC3m)_hp1SxI%Sо#8`Y~A8{a.S0ǂ2NJdQ%W\%Q]8>}B]a.7[t /ewKN;Dl<%[Ь$mæFkQ!CZЛ7G+q v, 8q څ@Qp x29pܓwC4ԋ\tDw B#zG-)SnEXj,]f$"XCQrN[fxGA}owҜbޛFM,LF(s bsVdRtH0&=K;f"0 ,ZPI\|v(}Qsd2TE<Ɛu0r%fx]Lf6 Sett:y'v H*u M[Pyim c%*&V:vv{ĥ Asfyоx_%VN's*wͭFĹsW  aKvYYAХwLBD7!9wQ5[:D"! qF(EhlX,8\cq#y7x5=LM;-'S9|~iܝ\,/Kfel')}`;lBh-w1;A E]ݒz%5]M&3PO5T nhpt⼮шcd-e~IF例c loꦆ1WedN[ B۱l} :b?ʯܦʻW5T;2&lŁf Ml\pGyŒG#?;u./b;EX`b|RJ"|C^_z&ҏ0;Iԑ<_Ȳ?e{ϔ/k4S>n2C`\*$6kҾʌT9Q G8en8_4k ZiW Ja_]eͤkbi Ll؃&pTLG"M%+rlc=*ԓP@c[Ch6xOf"_  B!hu2LǽRCiam<-ȓ7PN` fV1PڵCi. t3F޻Y "Ԛc-dU3LlJ6jXtt̊[+j;D u"%38AYʱ;Ed;9-ljBHgwc|h|X.x^V~މjJkh S>mDeCI$C+{S*θO$ ]GHk*^eƧtXkW"۲2ZM6q(>̣oc6P}ÿ=v9`! TU6E?9~zM];шexBF 1R@^af+g ZӅa+hA42=uS<UFW2"_4tYe%3p_A3*Pc3nǑ B [tL}r^Zw!q W)Я ֧3~|4MpJN X2ц+]jj~cA D4hgn6bQbBx+W>4rQ.u&Km[}x`:X!!7*'es Bszq$,DFfZrC+'\kkûoЩnGPy~b@܇D0C,CrS* ƯbpkfqRL+j*]mi;4fRTpNf&D.jeW=2V^܌d2-tBsOJXw1*^n;;4JfvMNAҘn }6 } 栨oTЩh˱~0S71zb&je_BGaF',n}ԚYZH'X|1t.yJE,?V+fsMmi~d. |Psop5KR犖H <˧[KR|K@SBI}(cV<`?dH9q=n@94#sdE'm>3|}oD<|ie '_-mq1gCX}DLF n nywt):[_ ~0 K񤅽~$P K DWfS]aiF [ьr&bUĠzǯJJMN, i[Zn>wn -}g5RIatl4Ζk?uQRgJ(pf)]~wнKFU5w]HD]*?`q!E/Ϡj*"&VvUf!R4G6'wR6O2wR@TϏnȚV!Sƨ][SywPe'rHt*s\U!ty =7L>]ݖqQT!⟕Be|E),HOJ_v5q. 㰭Ȧ )HLyX,k\o804تZx߶ȚƢU9ȼjJMo+O#6L/ CGP75#o}SlZ9q%gSFwhe4JiQ儅O3&JY<_[XaFwA\r͛v$ za!l{Da[7u{)yQ+?͸:Z{ל6غPiQky1D\PȲ{ڲr?E8(u5\Ez.04wdZSzu u*#?Al;M8kKˀIBTIQƱj!G $4͵QP"A'G{=ڽQؑzsjc -L*tfC#$n%VZ$ˋEo7>:loD.bD@5S>~!'f> : _htK4nU~],0Xb [bzt[ ƺm21HYLzKZb5(Mv(hjril_cg)$S*gL%V~LhjEYR~s%oWd stЎS+ǰd\Z}zew =ݽ61Z7xsݶwA@[̖!oXC^;i0w't0џpfըtύ4U;mkstohp>0gQҎV3{'钚8S;[GQ!l@VMrlh=#]slUA1/ܯ?; \v[{μ .IT1I4)B$qw&OaȨ-ZxMx@\ eXqIRbFljv76nþ9(nX 7Ta=M|CaF*;zHb_1H 1S409Zh4iY{9~T"AXU^{nO>?$[Dc$3$gŬԶY%EawCJOV曣Zb'/mnbHHv+nDB:+sw\^w4o׊ּ+1#JqPEt+U{EG_18_?ߤU8x\Us㌽?le}jpB>sasoCyyyZDM2 9dwzj  *:kC?nw+q&i_$/+Kv,* :sK Ɵ W')_nT=MG,bw r?Zv:['Rʹvqfϯ@(^Y3G}lIR!9n{c niT Z;Qռ&s+$ 7bۏʝ٘Ԭ-0WYnr)煿wHKQ FB=v>Q]fhP}hU]幪1.']+ Ue+/lIr}]]u@co8QT`oQ HA?wp1 غo^ۑ3^bt \Yr LhfV [I ?~׏~-)x++i3ukQ7U)ֶ~APesD Jk`AQqALzZ##Ľd4eI bP%(GJ.ifv{8HȸUyqQ5R)؃\7G_82{܏P{UV aO#K^y#mv!1e"+94G_{TNuֵj I +MsT8:h"jL,uEʛUVRYZӸBic>I ri,`c ]Rw{+UX+z^ b+JF'kyN)yo3(e t&5j-FO}e=5=%8Z"1Vl7oW2qdf:O~,$Mn 3c 4SQqA}엂t=Th5-'uif1h >yNv[Oj9IlI/RMDJ[Ձ>pC =;)a ƧY'mn[~-[_wN*Znws1nZHMcպOpcmd5.goX5T{#6qCrz?T֞~'}UlBGqiGm>:g2ZеXwv2|oV5bdIuTFUFQޒ?U+p]u9gtXT'/WYY'X$4DgSz@:d֮70Oh>2%w9~1J.P#jexO\+k67ےNH[O6sК4&MY:FN!Y4tsvS]*c!"K^֮Ri|W]*K7.fw0x/ KZT"Ne8 $;Io=j߬4=D۲.mX-[/ۿA3`)*mKS`6zO)uMצxHHo#i )ό ҭ]'?Ix8+18k1w:` N*z1KNRz)c՚ [wfh)\2.|-b#pau<Ño|[JeaUbM;QN?ɹ ~Cbu  .5Mg=ɔPCë@\tÍCl-Pu9'؟B}72H:`y^oet^( _P;flPMQ!&WvR.dH 0†(s){h<EQ:eQQ]I)=EtC;xJت"HSV QFܴjQT!:Rp{&l2y?{^K9TQg2 MR< [8"%45~Y,DOW >F). P B̎|EQ#bvUL/%)#"D sK!jKD'+Ɵdp?qq3E*Ϣ %w6v xWg=fyZɋ),~5o,\/eU g|K#6g 6@d !⍱]/ ւnOE{wn(e{6bY"8k7aŚ{+(YJEgu[8FD#lܭLeۖ]BK oyC=4öw+kcsAZM3+My-g0t}uCHe4kb6D'Jz9sDn*hYMe4 M KZl Uzw3"cYq׳NzXHF vRWԖ*ҕv t&4?rLvq;@8,d'ٺD4i{p$6\E.' 2IYt%`c  '"!\VZ4hq儒TOI5ŋUGBa F e0򢸀͍i@) iVh/!P:9n~+ |J܊ҥ0R=gǫaW1= 5)nY-!d Fw۳OՀCNtdV:;3jTEfGfi8/\o=oa\= naQ:v (C=9yrIS1D;ÔSG&1!D-=bT6Q^)XeӀ%u2G6w{?6|.aԁQ' Iu\iyE8MV‹|+yLB?\ 臩WțIٌTe\lIc0S o^RJf ,"d/y~אVbXlHT&`.2BUOd8n%\QΫ/{4JW{C߸{rQ/,L94Cg {'>w3͝+b5eG?xˋUjI-t!{>>)rc Jh0~=i a )=Fh&/vi:u`wZA tzF$C]HXzd?TM>{Mׇ\B@TgɁa[Vv5D4xdN:Wdic;|DX6v]y F'sDDfdeEue'u1t}ȧyuid|ꙇBioֹ@=V`:!M(yR=t{(sQs$؅iv8P,L}?2T20nMLxEE `W Qt{',wawPWOY:> T_|5`~6QJT__ ]-h,Y8+DDT/s=cّNq~Җ/XXy^3 i-z,j_vXDbvW۰k07`,'5( S v"{/|;̖m9a*| k)"&E}aX&E B>ᅭ瀖&M1.5%Ar2Q:Z/A9R {1rY QQ2̽(aMg^Gґ %%OQ|w jRvUBiNnn-FG}EIea+_{/o)r#*Uq˅|R`rQNPI C<4i?WL@ě0g$H'og_}s!ċ]\\jƳAo7DvS#^Ĭ\Hb<C[!툢Цm{&779wUg&?mRD"!gy +i$~KC˛;yWߨ1?՜A_Bt|}R@]ۅZ5Z3I%1ߥѴUKitgutjx$Ap&N5"M^Dȸ݄x߭[n{ lMMG,4\Dh}=A(D & S 0u0fiHӄ (93uINs G(îWЁʣ}; H#?#TyӕM٤m/y'®f[dXY/eP^7'XeIg u=Z=IezZP;`w-ᠯ1з<,GxҚvKPW&GJ~0g'S?NMݨ\(eV{. ~A)Am<GߚW/?6"]&}'b _p>]@6)(%d|ILG=qPC+}#Zi(ԅ\3e S|Vd f7ْKZH &:CfT"c\2Y'*IĐj>0ȬȡiIV4$H:J6KjšR$2T1~mۂDOah:#df^[tL[gv,M*;_HF=zt9= Jff޻e LU d.TU~x m9R50ᭉ7ne HѠˤ9?ATgZ3B, ͣ`M?khٟ8‚KFB1^+4Vs*u6dXv]N0 |Qr6U(BG0"uTs}_}iW0ދl_ 'Rٝ=}Û8 ~:aq*523<;\R:i_foZ($f4-+ńl6D#N]Nl4AE3={Ŗ J','㠰B,g6/L<%η7L=FSú)rǪkSo2 nU3YLVPowTU.aT!K-q*'L2j+r-yUj Μ0ãxyظd b{?b-M1y>D"oT)/:J5.W3;%5(jTi `V5_Z-~W6-U_||L}ojz{Qۮ MH&5O=HyH$[]CZa;mv1+$/$P|"[L3&a׿P ](=6>+am,t5y]%QdCf^_eޯJ9j`G5B6،+|ZSmt%%_eMCg~"Q>m1,5Y|0n' IFinWuiWowĆ7O:|i0LH͉'66`ϥa>QP~~t#&,߭Fc~ݰӕE?[w>t n2Cu-oeUOp.ՍGEb\x Ҕh+]?YFmn؝:\XkoB1YHMZs Mn8 <MkUytROR:HvSA$k@T&QM4vj'x/ZUhuFy~u.z6t3֓I*K0GvN%#W⽕18=oȠT2=?T+kzqܛo5)b}l 8MW`1o׎ \DT^m)}^6pYs(Ks&~RKVMvZxf,랄:E{(sc#0XDyɾ9Z$3Tfmz}<ċM= ɽ4fmX܎U\NNWAPvem̂ܡ*2USmh4{?m|X3-oWN\>$$_e%d;-_>%k/r__tI anb lI㫕A}o( J ψ'4Zdl6qKoKmЮ`i-'MX ]Ӵp7T#^4A=SDXrwDB1T&ٰD{ޅø*Y˲lu6O./,vvkfwx u 0_ !i$4Yq7+s?hXctIMs_=,|[SxްG¡H4Q+QVxk4QR\/0UtыcOѠ5#ak4 ƟEL=YcEs]_Hlu1:%0m=Xw^=L\4W(~g6dߋ5n0+Qc@Yh b>'=+dDA"/4 TGd.3n @^{@z@{|&@DҏqٶH*6IJ;&[+#> g+VWݲ/)RH`-?f k6dU bdt]iKDA8>`__yW": [·3~:!r&oɓ4^[Ҫ<:H&g|jJ,}| ل%Sm3E~nHX7۸Wlo*G`ߋcd@4rE"ͥp4%8D9@0 *?"VsM_}ہ涷 [Q+ '( M߾A8)hw$_M>+`\ΑHɿ,LtHW I?͎13 Tq )hU1 a#Ib=@}F|xl;Y'B5)Nμla] ?*c+3S^jn}7KLv48Wæ&<؎SpVXF[ T1mFLNt6OgTZ*yx\ʈܠ mQ6`5!޻D9|;[Kth=`㺈:PE*l")PzN33ZOW;=>蒉2ͭ5ݽ1$ѫfa&7%WY)Ε{f& ecD"_.`Zl*SY%{;G Q2: ]+ ΉiQrj:K\|kzh5n3*$Ps 7]qU^ϬWIat^&odgxn'tvm$C5Еs.A:cX%xێRlFY0gv `0mE0,?˾|upS ,IRA&1{u*[[l&W90!ʾ=ZQPWy.{/e2Q r#$?g.0yaH>;H-\BIfX#sQ(YU郛H_O%S/AȲٲפ-:O5aAYM.L_MM5<i2 # nň*k!.IeK!qj Ks/k{G|_sG֔m2&dYOTPf( *{ɓZmJf(X, Tnfbd4nU\Z0%<kS9at{{ȗof8چֵ-uğ/49Vۙ{cBarĎ!*EXEf˨`+Ws\y?f'Dbf蠞MC9ܿA ,lD(Vr矨G-]-<10gscإp<%:gGNglyJX3Ş>8]CIA=}>7O ej@ʶM,@9K*?~D6nA2+STч0,R?oKm(-5C3BД'L!q_OcjW,7}X^|C܂ y' $^єKf^=CP9{6CAަ; >| rP%ܨ"/o *q$jŢM9'e1 3L~[CLHo^2OU]xbO UP?G Ee1w,}a~NWa&퀱Unrxr>=rX'>Ț}.T4JQU})\5Amq#Ri_۝i&YJd0]rl1> stream xڍt<BE}?d#ufF9q E2!=2 B$HLd[x~{c)0 PRpʛƣ5PY㪋B`xP8`}1 _+dAz?9oA`,~pw~+oā/(e PnSFB߈ \Qp@0LSpS?sL+M?h1R炍%R@JFV偠{_HP?sgq?Jݯ2H?B҈pKf {`8 ^{_y?i&(aT[ďu6G^` <$ oCC hqG@ GGY9'):P!(8udgSKF^Pvw0H%PLJuAǴReE@ Pe(rN1п!7Y& )`dS taBID)( '2_̀q8ʝ:J~უ@!Lp'ʴ|&dVl'9Hχmf j7;1+SWiw yq405FԻ'tn.㒁'ԷffD)ӆ{gY+b-wMO/Iɷi_ ՄkK6E礏tПVR=JT;iNvߛzcAV//d? =F}L嚙a6]KHnR4u&O _{&y.>Wjf6h!0z]X$3ޫfSG:ܚf2a(y 'SN)k:ȒW_s5\ke5,vXwA=o|Pٷ5u[lbXY=ɺJ++g;?f~ B mFV {<*ǾͫjǣNtq &}p)7.EB!-G|tS ֮Ǯ1>`x+wkxmPťȋE}Bu'V;c1q_K75H,3Y;VmxS=Rק}/{e8VKh,z㾸9ǂAkne.Z)"S =egM! yիnw#|eY~PfU*r.>|eZ n$,C!U$( 5VERSYY2Qe,҇ 8veHd %od?0z=N2V;Yy")3̑vkbb2n£*f9SOuR jtg %C;ፏſMF@#j" Sj/J OTZM0(}Rh9כLdF&%i>S7:woPL4UEUAlЯ  ʨ%Lߧ}u]Hvw2; )p|9dKYpiУ30efblk\MM'uE!G(ZA9;5o8YG+RӢXe]%һd2g!_.O8}Ju/ 䧅vDV2.rI[Ǒq"  ά|%G{Nq|5)䍷]̰g&l {-h>Jޭþ^6 w4J)<'ۋ_֯,.2Mgĵ͜*venv)yGJ|]f]/hDεNA ,e}4 ܇FtvnGlRxU(qAKPߢ[ƨbghF qc8C7*h)_$v>.mLxalc.I$yoVb/7jkZaA0ԑZ3 Gfsct55:I Xs?|ITa(ӷ.>9ny߳8a1K;r=-,alIP+<\*}5M7' %**K6#!mU*S۳bw/j> xDha@'eCvZxv Ll6Iaŭ؋P,s}R-jTG-B},]K,^+ʃeK"6^q13)Zp/ ~`^ƽsonb%1;JC&iķ8ҭ#,iB@8ҋZ=3͆RXsY^C+ hrtK5P-<&ɓ }5(#Խ!=;?p["J|e}#c LW,)agb}n=!O*;8s9ߨȶNQҧi8u)^lfZt-f#½9,/#EV1n6v\({" =Bݾ}?hF:f)&G\~ >X$ ||SM_iи%B>''}LjUzu;[:.tV*%`gvBe&pQ.2S8:/= ׽FWh3[ ލo*qzAHYf/[2l ,.7w&Br 1Ǥ m&!RNNv5vہÜN wXn}cz]./'89P|D^RGJ b;3lR 嫪I4i}o9ZS2WYI5,DŇ7# ZQp%?S\6G4G6\[1jʶ8eLDG}4yfaiNW}ڶ{ MNJQb hŇRznuL E8vB¿:+r H괺U[a  Dn ҇s:˥Y'ް ɪDnkhzV|>Kt#^iD#Bb&XQ 4.1/zX#@YwGI=e`x$x连eUwj$9t,Hh;FJg8y6ɦÜ4Lu(T7xAyz`-͐PZ;TMJRYDOcQL81; LG } +N5 $ ; .D$ނDXpX*}S_Ԏw=]OS2*>F}q]m2L|A@ҹj"SBfC޺-K=Eskf˂?`vjL]JD>Fqc}5y aO9 6 Q]-Թ9 0RF9]e`Q9"8Է?Y8Յ >谚Ͼ`QK͚?EV5_rWY]ldY#_J[\>>xݎDƟ\}u-?^iz*KFECG&'(y VXMY> stream xڍT TgVf $H%@l$2̄$#(Z."O"bוP"jaQI-{rd{{ݱ[ e e1eC) sȆ . %Ȉf!4( $l^0ID8Ju\F8!^yj=(H+`Hʼni BBR"T *VP\"~L $'>> 4lqgxTD:DABiv Lj P%*E0 d /l8 `.>H1aWaLb1@*&H&1+58`T K(00EpFJjR֠J#E1 eoL扫TFjhy"ڮ O6đdr# VYqZkBhl1 9;BHT1ӫk4S ո)H2*G?Z!$HrcO4.P) $H >d̈|L @@Di J^2S?MDqf޷jY|9,wqc?Jdՠ09\Pecda A8d0>?CRo o7f_B>ZfUR?%j`CÑE!2TGr64QR0etTv%!b\4Ņ|ԶIcɅP47&eƭ `= A"ZO`51B.qfFmLZ e3͝9z6m6$ RZ=\ꚲ4m<&oٴ/O meVOW:2^axL}w&6 QRA`t'rI3u&PbΆ\co͌{ސ>ʟ0XrvvjR)̯< ~5/9Yىڌ;jZ&% }'"ttOMRqogr/*OoCZl6B3WDM{׋Ws7Յҭ>}>G%&\A F&֧.Ԯ^atx Wlrn]n|GdFኵzwW)9߮㝑 ,ЀV>~xC9 ;6/m^̥͢VVuVM Y<"]B֫긂p,_Xy2jqKB)ᄀ_> stream xڍPZ][[p`w!][ Cpw ,xN߫fޫw:*U V s)Hb!Rpppqppi]lAQAN`п@@MS޸8|BB.B@79@ brF8x:-\e`g3 arJ@+1\+77 '(/?'O*8~)[@)*  $ ߀ yL7 =n??n @B ] "+v׫.?m;˂=@`3?eۃT!?^+'A8COL(co1cx@'''*txyޜ4y9v6{ 4U 8q|v?L!>o` ~Fv߈A9#(?HʢA4~#o=o B L#A? }~GsvA?Rww/?T PVVWwʱ 9M MNͿP5աɐw톒9@mApmuOxqn/w&GW ?܂[ m̿ o%$g b l4hߤׅ jrq+Ъ:Ahq ЪЦz fN&BJd81 i ugyzXt#8؍%p-D}T9^8V}ruaxė>r2VM]'G@&؎7t9yr_JGvvޢ=N~Ԋ29mJ82iwr5ڣxZ[xF[.eojѳ7B=*|ʼnLABf-?JGM>:њvn#^ytsuzm/$y} `@,:Ww0ܐB8w;1A}TUY`8湭3dFE#),ky/&Mn%p|o,A{ŽUj5 V+Ɣ8dS<; K "4|$ñ:(nn˨ܻv\?:$2F1"be1"\EV`dDǙ&LU蹇M"pb ̱qbYp(TxdLhƓRJٳ%<˯Į1jąng%y#]C^Q9O[wTCfA%ZC]wIO$;'02aYeN-$IR!=!GyH1v4ې"ZB'&2M#,\G<C"b5~dp&/ox dHJL`EET궪ںKݣ%3}^qzK#b pGu ~*0btԨ&*jiڎ;O#@C?oX`6QI,#?`EpW\ F(]EwbFq!uٳꍔha ! -55aunw]JA®LwE[s1])-si u׫MOHi:k ?{,G| {)6c$5xsqn˴ z22b5ݓEyGƋt(Օbxx[ɴl&uY̕ o0lD#<c8{?PF/ ZOK.ÓTݝuiك J-D {K|#o ѹ^1q'戡T2V6ܢp-o4-ǘV^~][(lG 3h3NuVWGEB֮iiݓ(?j\YU}kF+w[SO}'4CRz~Bf8ro&< >mT=&ǯwtb?%Ճ}vaHc]԰Lrtc"72I^LEC44aN(--=:[k@S" A.%%SH/e%mBB- gv>Q!bV]lON~S-&'%2xh8t- y0AԴ֒ 4C2+-Ȉb/3={R3z`mAA2"9ug%XE)>`V2JA؋zK4PDs@,FT͙/M'C:͑#OK8,](TL]l/QSR\v&~^4wS֨#ܖ~}6:I#Ccw6˖5ht+LM-&_ՎVnYɫ;<:3GC#!.@i"T+spLL UZX}5ȇ`qX&B\I^/n oU_ʳ1#.:&,aKcyX +>>.5ndGZ.x|NVwqN ̖ѰssȧISr;DݘN~?_&"Wq<\+I <ʑ!V|P.niT c(hVk<(8\8ґ[ zW]۔Nl-D"Et o)սimdX 8_Ldp駤ѽ`mg*#8g9upRs[|eCY[0`mIi}]#}YIHt|qK)Ftnޟ_2H*s6l·Cɜ&&xRU EJc-:B'ܝ T7eMڛ4dK"TTOْ~PYFlL7VDE`Iĸz{]Q]`2>(lfіqexn DC#]Yi 9?9&3^ROb;tCgarR%@HaB;ru]U_W&,gӊ73ۗ v_8HfvPlS5U]敨un[w-8{ҌbvM$B%ҚQV*qgyI0Q#Z ˩Q=RYM|6 %UG2ZeU# }ƛԘ0R6"@N~dI__-( U|6CVCR aigu%Φ22gM!$GVR QhIVRږ>_JRDqq!dE %hg@C24eh-m\V`2H-܍杣즉&6woF:xGkG@(^RX4#L=u;$ykbErE%1[C3o|iedu,-݆ʊ*m0Eא6 u[TiLQ*!8R@TؽXӢM3;r+~?aLI ~lx|nȸEYIGjI"za=n4zj7{~IU{Zs1 Sص/?nX[eWB+p" ^)xF[|ەS0 Zeva'EQ6-v6oO%vGQGF5/vgvxwAl\Am 9u;c{͓\d70o r5TB:gGʵ [  kE7T4̍% Ѷj-RJ0M{d7a4O8[07sRpln3Cq̞;Q>`&q+r|6ɁY*&*59kf3WM/+ 22]b?aU6"Z~ԻpۖmxV4[-(%2ީ-Z25HIk4>2Oos|h 5&ia`CN<%0xHQ/EN?k#ӫT _@I 4C6\fH&h=ԑVaT(._R 揊Q5iB WsE|H*OrS[ңqWj-{"|)BUʉž11m@dmF#gܤ.wKmtԪ=ͮDoqw 3.%RgX : Zː4yW+"y{Z{nV;V}%(j!\UNꛇ?Hp u-ߟ%hmǦW1B،!<)Kej7RBYee%g#EV$KOSp "ԆˉXy^boeT>"v$4q,:8 Q i>KA\J gugT>dY r*>- v ;_|+>fYPeB9NI*hˑWv}Ĩsr}ZE(OuC#. Z: P= /U?vȍx4Υ+ǁtAgcpj]kMVvT΀tY!}髃l2n]'{[şzz8 1WDzD&?Г8 .:,0zjg|,gc^Q䠮~jiW6Z}sn#oz`ZئBw$FÐY'P*xg %,lf>ȨOH=zOK/=2_ = "6`ס;-+Gbkvxr؍kμ(}ӀL(Aw#򼃾5MݔsN0YǍHșv%'_iDP_,g# *vZB< :.!dy} Ϟh]pN\Tj@b-FO+"WRtP'oqGXiI/z1*p$uFq/7 KyNt+YIXqb0UۼjC78#Ý{4lڤfB\k=}NT$gYBFcoYmhmC3џ0-vcæUF1堯;PO )5YhéՖB|i(xSh{:D}`d e_iKg:A‚_&EDc)E&C~֭f^z grOPC ~UTByml=N%&^~wn`(1Vo9]bɺsAGOzgHTx6!-F=]!rxzm Pc"aY -.x%QLO!U)n$VS)KqhhBf:G9`)?Gǂ. K\rj Y੶qa"6KAx;M"<ߐFIgMY9_^SoTbͧ6q*Rk/7 )ꫥ D8́eEte P1N*+|=rLJӏY_"ǝZK\X7; Nm )Z/D µ" >G(KFagWr%t~V KD=jy DJgȭLd?M||k_8J&[덱[ GS6:C:^g1k" "F,ٍQ-R%{܈ȼMKTEI/c}cur\2i1!23k|Hof8l}jc+IV\8I(㉥kzQQߕp%\gd,rld}<ܰZzJfD'PjEdz 0\@ŬG"Ұ!]ӆ T i_rOo3n/ G[>Q`z۷ﰰ^aGV˽HlM煥Z,-ܤgP$g8nwN:t6fFb}y錈JҌ2M2m*k0xLekmq\R^gWϓwND_2HhFtouuY-Y]D{#ça\0\GiЌwq{5p#>"Fjtaik*A19on"/5^GijYbBiVe /#O{ /;q#xZto7O78dQ nO&gM$.ka|m}'u5JjCpv:ʃD^g\l6xkh4ڷ:{,EڑsQWݳvk_R6/*|{xAJrʃ"[*cX#"VIhז_d-/_\I VhbqӚ 7 h+nnWEnZ֙ )$Go<ϖ8CVo]}m!ۃ><֤!lT-𚯠LT{{/HxdU((JQ^UcP|Ǵ%迼Xsc Uz6cIlD]/88Ġ>3e:Gbcmb\!NS?lvyY=5``;ɿ>,4wS.i3XsIǰ|&$C+D!OʺWX=R:½VppYLJqYIKL|QܖX+74mXRk7m-j񕓬֍wʷ>:Ϡ&L /[4QkSFc%S PaCg!5vdh;E yI ZĶWoJ5;0PTJg{}RMH챉!B $K ȍkc/2 .;21D(́0w\ۉ*<@.;9ʾٴjR Y/묒HlȜYi_'#?">H{Y9+>pHˤQU8]|մ?e/8n䇠ry6.dދu_E{W:NN 2cf?ʍsll6!ˍ4 8~eX|6߈: unje]u^b)%휋zҁ3 8]_H9z2Re,c)J`#@ Y,&dr* "k>PpɑSM7ĸC#ܻ(64E>$¤;oh*³yY`Ҩ]Ebs6!yA6b5 a; LӒwۡ1">ccҐ`v6Mdǡ14~?ojg"r @?NS`mltw BkZ7}xl0U&'XDCBRw\'5 اX2r45jVP;eex[Sv}\+tx!5NС~*6,pĽb 񋍄/:fE}D0dM#%ZJ%`MY{bMSϋn>u&[ˤg~ӃTm빩e Jk[Ѱ;r:5S:@Ł'l"dc^Vt 6q;$3s&^mk@:6޷U[m+`}8?bTbho=KGXirDhʡvQ\W΋+J&(1% >:58L+hDĐzߓ?+^zm">Kλ>[&4Vٙ%SXSof[#ܼ=|L gz5eQ{r͍k.U&T {0^$raJpy_l>CU}ͯ9v((ץ6sꊀ+bB_Tq7?Sig&OE;wwʚ8M߽s#'Hj rDK;N?in0`mEZԃ 0[c^L _nv㺻uTVFU@,u: 'M\Ro+nj0zRާH_iEd8H ZxyxUjV/Hv?Z #X${'[Fd){3h0 =S39;Zx`&YW%y,*];8o Ajx/ ~`ϵxr-J,*E~Z+ ߕX8+~fB,!IKvN!ivqJG@@Z bIBk"XI^f=*jZWF񥕜oR$Xn,S;$ 6ή nᇛ׼J.y :R\`-(1D_s]/! |d5}$ò_? .iyٲD!3NQL| }?p}M Oѧ5Hŏ-*Zbx!2*Yh_l3r#sT7˘2?l󌶪0guu8F>gɒZڕ7U$Sp۠4|V^ŗ-D:qO [^sw!\ߡ4`ڳ^ͭe"2nnu&B{2/cN94'RmDD Id O"QGӀ^2՗'c2 b-V"LJV& Ct"Jms^0d"G]B=o5C~PXpka=M|ѨýVM3~ e m͒Ψ]& F7_CA#Mi;4/8ER 2陁VnwwX70D)q`qx%y2PS,iWUzR¿gE"ٌga ligSnf(wYnPR88t=GVcTfs#Ġa3 %t$Pv`sbU[v5'ûۯsZG[ +.}H@=2gVpn\`tHF(eL - 2U뛾^$L@_B%U~HMUT7ˢڢADS]'N.Hm f0jZSVUenFp͇aLebͻ22V;$; ΓT7)~4;iB9t>N1YZ*#(Xm~߻7~xgBd gA∌4a|X(BuTr{U2:\KCe;;hS"5=Zg He y#u '^)oM Բ}+j8yaS XrCJQwnA(,#1^=Ke(0ZܜǹE#-5n$OK)A6bUg>|WVl5ihE񢫮bIт*a孭;X)I[ڙ YQH+8eNX1?谩˒4T,OwYj̙<M;>TqlRsS 3aKSGk'|mkgŸ_Y\s{)U464>e,pO( >!`*\O'y@Gl=HF(yn'Qpw[ıw @(҂C㞏J  vs<#ܫKٍnղ@Ԅj; a~T%raQD&o͑^{SCOR/wM 0w:)}DŽ4W(OtHX7µ, LƉ_I[idIھbTWwS95N e{ܛ:VdpBvq f%6ծ:8g%uX=E&{dRʳY C6\[$K6fd.>ORem{aA7v(z'%/(kky3Žyv;%I!U{*'FY JU6ߣ i_a?gU%^Сca[j'XXA9kw:u>\Z*.hxityg=Q"_%U0̷' #!}CW\H;zք2 |Zc2h7*m{f$8&co^Gd*GJoصܵ3蚡~h1hPB R$;!9T4|%I*YϺ9SiWuW†tDqdr+͌"'oy.\ 4?(tZ<S 'i%}RP]h_訴~Ӧ+ g_r10FC6Hl/ w-ez5zQ=F֌KRԉYS endstream endobj 924 0 obj << /Type /ObjStm /N 100 /First 924 /Length 3750 /Filter /FlateDecode >> stream x\[o8~7 M^m:EDMuvfeJ~EZ(\I)3 LJsdJ&]`Z;f|dڣ_ fD`[fEĵeRPr L*;Q=I0X &mhH&h(&thh&*jÔ0 ˔t0Ocʹ40-#X$ iEN4YCV0([tl3dHPD2c =Ȭ[d'#3!1B.', U@tYMsYs:܏3鐐6&^0z\"N5sH vc#({ÜS43UD T}/^B Y1d[ bs¼0tP&]DQ(:D"*MC"Y1(RIM<42>)-Φ*5MǴdx1 ؅4d&h1hSP3 ÂkI`h|zR+rÁ+K&<SqסT/"ZJ~f|g0N:$]? v,>ux>Z*@CxJ++ ?`pֿI]Q$HBԫ rOJ~o}JƏ>`\?L}8c*41w!>UR5A jH}iWӺwLJG'N]^{}T@Uwg!Kx9ͅx>rYrY)BOzӅ.Lg =SBz3)Lg =[Bzг-lg =[Bzs^)E|.\ =WBz>?*( +9m+J0wG* 3VRڕ,Y_%ANd)fx"RHb R~uR&nWNL;ieԶńd3F"NTa3b(+748v\-ڌ& eœgpU-jC,D#kZmnC*ѦjqM!]QX:@6ӣj*UtRo%N9X0Xj؎5Sx{m| PEOAR݀$/=N5_yܬmL+Yzy`B&\s\Ȥd&*4,n"6AjN%$y|taQ Ӌݼ+Y^2N-0X,obj)BdW\j6(tjrLɯ|,} !yI *y!O9mnf3z~ 13y= qO%v&^<{g É ݻ'I;k?*G@;==G1s~[GϣzүLpk> j>>{/_e{Uikjqo>\GRjK†t^q "q$ ÿjex98ǿ)h;!_ԣЎ { Q]OSu}= Iꙥp:I3ޫZ6/JבѫGY[r*rٵ$HgDq@*NͨȬ!\~63b*wh.s!w0 o%.ϻPtgӷnߏs 7!?7?(|Jdƿ]I3v9'i"NWܙy/5O>Ir >98|F[s?BلvsKq޽=$YZYϜYb0IL~In)]2GO(3<*J)[@UxgWE/ڄh K୕} >EQ[k,,=s \@.g)л&jg,Laф_Nz"r䵿#*Zͨ}vm<_痤[+>}K}h2}&Ń\aD?_"9!Fxxc,ZG_Bv+6وoyt `zynOzzG*PP;J%J=+VJ u sҫG7'~f5RH sQ̮2z<5i~_W9m%ͨ78]NV&'Vr:xчl- *CWzmn:KirX]+<ϧe W̚]EAzλg -+(.^ LJkMwZ-t%M_ tujy/nAoH'[.1L;Hco3Z:{]qQL泼+խ{/n\~4) 4L4LAnWs2MlL.f3_\_an>n- uBuY endstream endobj 1025 0 obj << /Type /ObjStm /N 100 /First 892 /Length 2120 /Filter /FlateDecode >> stream xڭY]o7}B%%(&5Mv$nC\_j]em|琔;>k˟L\4> h\G&%oL`K9hH\GdZ^`e"%YRQ 1"2GJB'< aԎ$Ą B/s&,YB္~])!2vdf0RuLp*H4SXj=HJEHXX2&H}qԜԪx)D2HEb$y3)Jpv߿_oξywsoٓgO_zvqa1xr۫kvYpּ7xw-9=={7?nL܋>\vhpywt~'ҫ1! =qw2c>p _Ȗrg/_~T~bxϫom!B`?ɏ?Y0%}^,'x'D>o:iDԄ*~9=(Arg7goLYͲ+_־8~-ض3z:*= QAaN HTgQ%}|IXU4{Tp [а:@wr \*/aLuc)fxGBrX_@JآCXn' %<@Gu?N; 1j.VņzڣսI')+^ 8 Y?fAK~fsqKT?{BDu_ g{gퟗ2r*ʯ7=Z >ϣ#TMj3n3_+SY`պu:qoߝxw%^wϐ6[ꤛ|st{ ׻Saԧϡ+aF`TLyv`v#AZ0yVk%6DHnf Mip0vX0ƺOl]ǪBbkȫnXj="\{&"ZiEED˺1]'0MK͗kֲWƫXcW &HnغPt#SRFzZBVջ9)zHz-Nv V&´0x՜i֍BŢ)p^YvXXKz0NjljƳԇm#t>cU N$G[N̚ƑzObXn0jVfMʫ [l\4+%k֜gJV5G5> endobj 1031 0 obj << /Type /ObjStm /N 54 /First 507 /Length 2225 /Filter /FlateDecode >> stream xڕY]۶}ϯp_ Ҥi7M}X(6w#+wűdSvqL ̙R+D*JW( i8VJZXB;KUOz kHN:G6J9HV(.d oBz_Tү),$yґi AjUbDrZшJkؗxڊ©h*8`7p$.5":ASU 2"[9 q m|c oGS#È Z][58iȇ(VEtVq-% p9QryIUspJ3<(\\9dXP\QiTG?Ͱ gihỺK?p$ބo cGXzfX-`ꀥE,s섥.b9VK_Jj9e[gWB昁٤{auI~_t{zO}NUU98ً%bpWN.ALu'uK$~7ă%)l xT='NM 9U| /5CBש/I%h!JcKt46i\؞$T/Oa ƯcZǴ%WABR)N.)?" 2N&w*ا;K4\'-aceSTYـ ]N# J}8LR65(i4AF;.tC[PPJADàHܭFcRbP1ƹ?#U.RJ1 G)P2)ZL捤ɼY4Ma[MfQ$͘(x+$%b?B;#&a,;DSroUe̝Cq:P@{ՁK −) ʺwhAɥZ:买%F%Ϲ-%&Y: ]TODs1KIjy8^ \28h8MX߆;z(>'0jw2W=Dt ɞeϺoO#.yW}j&u .`E_0~kxϕf2f;3οzztVf7tX7#D=fnSF=%?Mx0n_e-3"W}%k-!uo}=JoC߄䞷h3XSx}MaNiWFda]ƞMnƳptьۇU')Nt[Z{jtm C)_] =_184fx8)~v؋a^vĥ\DnCw=L>tn4צsY"}m9|mGtxUXoTڌ3cղڏj+ΩcT6ۯykr"9{&)Uu{U&g%j&^ }qP' 3*۴?xeJ,вFhf}ȯ1^ě>δ"`f.+q_.ܤkI? ()7ݪ] Íl}wlB͔$9OfR2no[Is O '>-('s,ˆ5fTgmPD-= v1el8TaN"xqA Lxnywiǫ3r6I~:p=~j݆!;A~46+qD3g%MOhnd BtϠ40<(߆YW< l? endstream endobj 1070 0 obj << /Type /XRef /Index [0 1071] /Size 1071 /W [1 3 1] /Root 1068 0 R /Info 1069 0 R /ID [<6CD432026F7E93453D8BBFA9EB405985> <6CD432026F7E93453D8BBFA9EB405985>] /Length 2524 /Filter /FlateDecode >> stream x%ilW{ǎ8;qĉ؎ٽ$qƾ^%*J ,-E tERP~P҄? "*H,RhР"Qy|ߙ;s= x߂`g`A A09wl[іýЂ1B(TTjPvZ {^P>~A hmhA@8 np"[P@7_}+v Ԃ&p~0 ΂KX7@Tj^8N^#4c`L3`L8. s J` , c}@#9$8&E0V&`-$G @ 67-=>G^z-h{sE쵠LH6e{\JF{)~9#IBD+ !yL%Vu(c??L< Lj7 q $KIB?K<:rcSy51- g1ǵ~pWyAr TJ ^S 5isEnv[~\'F,rhpʵnVr:-qp /QNtٷաML$} Ap a0NQ08&8 ΁~.cho1 5-uơ.K` , :ߙ:nj1:XćձegU Ѹr@qm8j_W ЋC18@=@/ T\@Vq8:w(uES:p=; (; (;,ZAc@wQxGwQxGwQxGwX\ZZZskj]ПԺjVYe-A[ϩ[~O?Z*Yj-Y0Z+VRk +f 'k[}>Glп {^wDqGX &Z pgpl3"8DX $@ # idna.c: idna_to_ascii_4i gdoc_TEXINFOS += texi/idna_to_ascii_4i.texi texi/idna_to_ascii_4i.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_4i $< > $@ gdoc_MANS += man/idna_to_ascii_4i.3 man/idna_to_ascii_4i.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_4i $< > $@ # idna.c: idna_to_unicode_44i gdoc_TEXINFOS += texi/idna_to_unicode_44i.texi texi/idna_to_unicode_44i.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_44i $< > $@ gdoc_MANS += man/idna_to_unicode_44i.3 man/idna_to_unicode_44i.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_44i $< > $@ # idna.c: idna_to_ascii_4z gdoc_TEXINFOS += texi/idna_to_ascii_4z.texi texi/idna_to_ascii_4z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_4z $< > $@ gdoc_MANS += man/idna_to_ascii_4z.3 man/idna_to_ascii_4z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_4z $< > $@ # idna.c: idna_to_ascii_8z gdoc_TEXINFOS += texi/idna_to_ascii_8z.texi texi/idna_to_ascii_8z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_8z $< > $@ gdoc_MANS += man/idna_to_ascii_8z.3 man/idna_to_ascii_8z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_8z $< > $@ # idna.c: idna_to_ascii_lz gdoc_TEXINFOS += texi/idna_to_ascii_lz.texi texi/idna_to_ascii_lz.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_lz $< > $@ gdoc_MANS += man/idna_to_ascii_lz.3 man/idna_to_ascii_lz.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_lz $< > $@ # idna.c: idna_to_unicode_4z4z gdoc_TEXINFOS += texi/idna_to_unicode_4z4z.texi texi/idna_to_unicode_4z4z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_4z4z $< > $@ gdoc_MANS += man/idna_to_unicode_4z4z.3 man/idna_to_unicode_4z4z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_4z4z $< > $@ # idna.c: idna_to_unicode_8z4z gdoc_TEXINFOS += texi/idna_to_unicode_8z4z.texi texi/idna_to_unicode_8z4z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_8z4z $< > $@ gdoc_MANS += man/idna_to_unicode_8z4z.3 man/idna_to_unicode_8z4z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_8z4z $< > $@ # idna.c: idna_to_unicode_8z8z gdoc_TEXINFOS += texi/idna_to_unicode_8z8z.texi texi/idna_to_unicode_8z8z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_8z8z $< > $@ gdoc_MANS += man/idna_to_unicode_8z8z.3 man/idna_to_unicode_8z8z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_8z8z $< > $@ # idna.c: idna_to_unicode_8zlz gdoc_TEXINFOS += texi/idna_to_unicode_8zlz.texi texi/idna_to_unicode_8zlz.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_8zlz $< > $@ gdoc_MANS += man/idna_to_unicode_8zlz.3 man/idna_to_unicode_8zlz.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_8zlz $< > $@ # idna.c: idna_to_unicode_lzlz gdoc_TEXINFOS += texi/idna_to_unicode_lzlz.texi texi/idna_to_unicode_lzlz.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_lzlz $< > $@ gdoc_MANS += man/idna_to_unicode_lzlz.3 man/idna_to_unicode_lzlz.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_lzlz $< > $@ # ### nfkc.c # gdoc_TEXINFOS += texi/nfkc.c.texi texi/nfkc.c.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # nfkc.c: stringprep_utf8_to_unichar gdoc_TEXINFOS += texi/stringprep_utf8_to_unichar.texi texi/stringprep_utf8_to_unichar.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_to_unichar $< > $@ gdoc_MANS += man/stringprep_utf8_to_unichar.3 man/stringprep_utf8_to_unichar.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_to_unichar $< > $@ # nfkc.c: stringprep_unichar_to_utf8 gdoc_TEXINFOS += texi/stringprep_unichar_to_utf8.texi texi/stringprep_unichar_to_utf8.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_unichar_to_utf8 $< > $@ gdoc_MANS += man/stringprep_unichar_to_utf8.3 man/stringprep_unichar_to_utf8.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_unichar_to_utf8 $< > $@ # nfkc.c: stringprep_utf8_to_ucs4 gdoc_TEXINFOS += texi/stringprep_utf8_to_ucs4.texi texi/stringprep_utf8_to_ucs4.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_to_ucs4 $< > $@ gdoc_MANS += man/stringprep_utf8_to_ucs4.3 man/stringprep_utf8_to_ucs4.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_to_ucs4 $< > $@ # nfkc.c: stringprep_ucs4_to_utf8 gdoc_TEXINFOS += texi/stringprep_ucs4_to_utf8.texi texi/stringprep_ucs4_to_utf8.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_ucs4_to_utf8 $< > $@ gdoc_MANS += man/stringprep_ucs4_to_utf8.3 man/stringprep_ucs4_to_utf8.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_ucs4_to_utf8 $< > $@ # nfkc.c: stringprep_utf8_nfkc_normalize gdoc_TEXINFOS += texi/stringprep_utf8_nfkc_normalize.texi texi/stringprep_utf8_nfkc_normalize.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_nfkc_normalize $< > $@ gdoc_MANS += man/stringprep_utf8_nfkc_normalize.3 man/stringprep_utf8_nfkc_normalize.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_nfkc_normalize $< > $@ # nfkc.c: stringprep_ucs4_nfkc_normalize gdoc_TEXINFOS += texi/stringprep_ucs4_nfkc_normalize.texi texi/stringprep_ucs4_nfkc_normalize.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_ucs4_nfkc_normalize $< > $@ gdoc_MANS += man/stringprep_ucs4_nfkc_normalize.3 man/stringprep_ucs4_nfkc_normalize.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_ucs4_nfkc_normalize $< > $@ # ### pr29.c # gdoc_TEXINFOS += texi/pr29.c.texi texi/pr29.c.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # pr29.c: pr29_4 gdoc_TEXINFOS += texi/pr29_4.texi texi/pr29_4.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_4 $< > $@ gdoc_MANS += man/pr29_4.3 man/pr29_4.3: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_4 $< > $@ # pr29.c: pr29_4z gdoc_TEXINFOS += texi/pr29_4z.texi texi/pr29_4z.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_4z $< > $@ gdoc_MANS += man/pr29_4z.3 man/pr29_4z.3: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_4z $< > $@ # pr29.c: pr29_8z gdoc_TEXINFOS += texi/pr29_8z.texi texi/pr29_8z.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_8z $< > $@ gdoc_MANS += man/pr29_8z.3 man/pr29_8z.3: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_8z $< > $@ # ### punycode.c # gdoc_TEXINFOS += texi/punycode.c.texi texi/punycode.c.texi: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # punycode.c: punycode_encode gdoc_TEXINFOS += texi/punycode_encode.texi texi/punycode_encode.texi: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function punycode_encode $< > $@ gdoc_MANS += man/punycode_encode.3 man/punycode_encode.3: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function punycode_encode $< > $@ # punycode.c: punycode_decode gdoc_TEXINFOS += texi/punycode_decode.texi texi/punycode_decode.texi: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function punycode_decode $< > $@ gdoc_MANS += man/punycode_decode.3 man/punycode_decode.3: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function punycode_decode $< > $@ # ### stringprep.c # gdoc_TEXINFOS += texi/stringprep.c.texi texi/stringprep.c.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # stringprep.c: stringprep_4i gdoc_TEXINFOS += texi/stringprep_4i.texi texi/stringprep_4i.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_4i $< > $@ gdoc_MANS += man/stringprep_4i.3 man/stringprep_4i.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_4i $< > $@ # stringprep.c: stringprep_4zi gdoc_TEXINFOS += texi/stringprep_4zi.texi texi/stringprep_4zi.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_4zi $< > $@ gdoc_MANS += man/stringprep_4zi.3 man/stringprep_4zi.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_4zi $< > $@ # stringprep.c: stringprep gdoc_TEXINFOS += texi/stringprep.texi texi/stringprep.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep $< > $@ gdoc_MANS += man/stringprep.3 man/stringprep.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep $< > $@ # stringprep.c: stringprep_profile gdoc_TEXINFOS += texi/stringprep_profile.texi texi/stringprep_profile.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_profile $< > $@ gdoc_MANS += man/stringprep_profile.3 man/stringprep_profile.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_profile $< > $@ # ### tld.c # gdoc_TEXINFOS += texi/tld.c.texi texi/tld.c.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # tld.c: tld_get_table gdoc_TEXINFOS += texi/tld_get_table.texi texi/tld_get_table.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_table $< > $@ gdoc_MANS += man/tld_get_table.3 man/tld_get_table.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_table $< > $@ # tld.c: tld_default_table gdoc_TEXINFOS += texi/tld_default_table.texi texi/tld_default_table.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_default_table $< > $@ gdoc_MANS += man/tld_default_table.3 man/tld_default_table.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_default_table $< > $@ # tld.c: tld_get_4 gdoc_TEXINFOS += texi/tld_get_4.texi texi/tld_get_4.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_4 $< > $@ gdoc_MANS += man/tld_get_4.3 man/tld_get_4.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_4 $< > $@ # tld.c: tld_get_4z gdoc_TEXINFOS += texi/tld_get_4z.texi texi/tld_get_4z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_4z $< > $@ gdoc_MANS += man/tld_get_4z.3 man/tld_get_4z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_4z $< > $@ # tld.c: tld_get_z gdoc_TEXINFOS += texi/tld_get_z.texi texi/tld_get_z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_z $< > $@ gdoc_MANS += man/tld_get_z.3 man/tld_get_z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_z $< > $@ # tld.c: tld_check_4t gdoc_TEXINFOS += texi/tld_check_4t.texi texi/tld_check_4t.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4t $< > $@ gdoc_MANS += man/tld_check_4t.3 man/tld_check_4t.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4t $< > $@ # tld.c: tld_check_4tz gdoc_TEXINFOS += texi/tld_check_4tz.texi texi/tld_check_4tz.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4tz $< > $@ gdoc_MANS += man/tld_check_4tz.3 man/tld_check_4tz.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4tz $< > $@ # tld.c: tld_check_4 gdoc_TEXINFOS += texi/tld_check_4.texi texi/tld_check_4.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4 $< > $@ gdoc_MANS += man/tld_check_4.3 man/tld_check_4.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4 $< > $@ # tld.c: tld_check_4z gdoc_TEXINFOS += texi/tld_check_4z.texi texi/tld_check_4z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4z $< > $@ gdoc_MANS += man/tld_check_4z.3 man/tld_check_4z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4z $< > $@ # tld.c: tld_check_8z gdoc_TEXINFOS += texi/tld_check_8z.texi texi/tld_check_8z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_8z $< > $@ gdoc_MANS += man/tld_check_8z.3 man/tld_check_8z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_8z $< > $@ # tld.c: tld_check_lz gdoc_TEXINFOS += texi/tld_check_lz.texi texi/tld_check_lz.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_lz $< > $@ gdoc_MANS += man/tld_check_lz.3 man/tld_check_lz.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_lz $< > $@ # ### toutf8.c # gdoc_TEXINFOS += texi/toutf8.c.texi texi/toutf8.c.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # toutf8.c: stringprep_locale_charset gdoc_TEXINFOS += texi/stringprep_locale_charset.texi texi/stringprep_locale_charset.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_locale_charset $< > $@ gdoc_MANS += man/stringprep_locale_charset.3 man/stringprep_locale_charset.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_locale_charset $< > $@ # toutf8.c: stringprep_convert gdoc_TEXINFOS += texi/stringprep_convert.texi texi/stringprep_convert.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_convert $< > $@ gdoc_MANS += man/stringprep_convert.3 man/stringprep_convert.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_convert $< > $@ # toutf8.c: stringprep_locale_to_utf8 gdoc_TEXINFOS += texi/stringprep_locale_to_utf8.texi texi/stringprep_locale_to_utf8.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_locale_to_utf8 $< > $@ gdoc_MANS += man/stringprep_locale_to_utf8.3 man/stringprep_locale_to_utf8.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_locale_to_utf8 $< > $@ # toutf8.c: stringprep_utf8_to_locale gdoc_TEXINFOS += texi/stringprep_utf8_to_locale.texi texi/stringprep_utf8_to_locale.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_to_locale $< > $@ gdoc_MANS += man/stringprep_utf8_to_locale.3 man/stringprep_utf8_to_locale.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_to_locale $< > $@ # ### version.c # gdoc_TEXINFOS += texi/version.c.texi texi/version.c.texi: ../lib/version.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # version.c: stringprep_check_version gdoc_TEXINFOS += texi/stringprep_check_version.texi texi/stringprep_check_version.texi: ../lib/version.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_check_version $< > $@ gdoc_MANS += man/stringprep_check_version.3 man/stringprep_check_version.3: ../lib/version.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_check_version $< > $@ # ### idn-free.c # gdoc_TEXINFOS += texi/idn-free.c.texi texi/idn-free.c.texi: ../lib/idn-free.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # idn-free.c: idn_free gdoc_TEXINFOS += texi/idn_free.texi texi/idn_free.texi: ../lib/idn-free.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idn_free $< > $@ gdoc_MANS += man/idn_free.3 man/idn_free.3: ../lib/idn-free.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idn_free $< > $@ # ### strerror-idna.c # gdoc_TEXINFOS += texi/strerror-idna.c.texi texi/strerror-idna.c.texi: ../lib/strerror-idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # strerror-idna.c: idna_strerror gdoc_TEXINFOS += texi/idna_strerror.texi texi/idna_strerror.texi: ../lib/strerror-idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_strerror $< > $@ gdoc_MANS += man/idna_strerror.3 man/idna_strerror.3: ../lib/strerror-idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_strerror $< > $@ # ### strerror-pr29.c # gdoc_TEXINFOS += texi/strerror-pr29.c.texi texi/strerror-pr29.c.texi: ../lib/strerror-pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # strerror-pr29.c: pr29_strerror gdoc_TEXINFOS += texi/pr29_strerror.texi texi/pr29_strerror.texi: ../lib/strerror-pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_strerror $< > $@ gdoc_MANS += man/pr29_strerror.3 man/pr29_strerror.3: ../lib/strerror-pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_strerror $< > $@ # ### strerror-punycode.c # gdoc_TEXINFOS += texi/strerror-punycode.c.texi texi/strerror-punycode.c.texi: ../lib/strerror-punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # strerror-punycode.c: punycode_strerror gdoc_TEXINFOS += texi/punycode_strerror.texi texi/punycode_strerror.texi: ../lib/strerror-punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function punycode_strerror $< > $@ gdoc_MANS += man/punycode_strerror.3 man/punycode_strerror.3: ../lib/strerror-punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function punycode_strerror $< > $@ # ### strerror-stringprep.c # gdoc_TEXINFOS += texi/strerror-stringprep.c.texi texi/strerror-stringprep.c.texi: ../lib/strerror-stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # strerror-stringprep.c: stringprep_strerror gdoc_TEXINFOS += texi/stringprep_strerror.texi texi/stringprep_strerror.texi: ../lib/strerror-stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_strerror $< > $@ gdoc_MANS += man/stringprep_strerror.3 man/stringprep_strerror.3: ../lib/strerror-stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_strerror $< > $@ # ### strerror-tld.c # gdoc_TEXINFOS += texi/strerror-tld.c.texi texi/strerror-tld.c.texi: ../lib/strerror-tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ # strerror-tld.c: tld_strerror gdoc_TEXINFOS += texi/tld_strerror.texi texi/tld_strerror.texi: ../lib/strerror-tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_strerror $< > $@ gdoc_MANS += man/tld_strerror.3 man/tld_strerror.3: ../lib/strerror-tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_strerror $< > $@ libidn-1.28/doc/gdoc0000755000000000000000000006204712153706572011224 00000000000000eval '(exit $?0)' && eval 'exec perl -S "$0" ${1+"$@"}' & eval 'exec perl -S "$0" $argv:q' if 0; # Generate documentation from source code. ## Copyright (c) 2002-2013 Simon Josefsson ## added -texinfo, -listfunc, -pkg-name ## man page revamp ## various improvements ## Copyright (c) 2001, 2002 Nikos Mavrogiannopoulos ## added -tex ## Copyright (c) 1998 Michael Zucchi # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This will read a C source code file and scan for embedded comments # in the style of gnome comments (+minor extensions - see below). # usage: # gdoc [ -docbook | -html | -text | -man | -tex | -texinfo | -listfunc ] # [ -sourceversion verno ] [ -include file | -includefuncprefix ] # [ -bugsto address ] [ -pkg-name packagename ] # [ -seeinfo infonode ] [ -copyright notice ] [ -verbatimcopying ] # [ -function funcname [ -function funcname ...] ] c file(s)s > outputfile # # Set output format using one of -docbook, -html, -text, -man, -tex, # -texinfo, or -listfunc. Default is man. # # -sourceversion # Version number for source code, e.g. '1.0.4'. Used in 'man' headers. # Defaults to using current date. # # -include FILE # For man pages, mention #include in the synopsis. # # -includefuncprefix # For man pages, mention a #include in the synopsis. # The FILE derived from the function prefix. For example, a # function gss_init_sec_context will generate an include # statement of #include . # # -bugsto address # For man pages, include a section about reporting bugs and mention # the given e-mail address, e.g 'bug-libidn@gnu.org'. # # -pkg-name packagename # For man pages when -bugsto is used, also include help URLs to the # the project's home page. For example, "GNU Libidn". # # -seeinfo infonode # For man pages, include a section that point to an info manual # for more information. # # -copyright notice # For man pages, include a copyright section with the given # notice after a preamble. Use, e.g., '2002, 2003 Simon Josefsson'. # # -verbatimcopying # For man pages, and when the -copyright parameter is used, # add a licensing statement that say verbatim copying is permitted. # # -function funcname # If set, then only generate documentation for the given function(s). All # other functions are ignored. # # c files - list of 'c' files to process # # All output goes to stdout, with errors to stderr. # # format of comments. # In the following table, (...)? signifies optional structure. # (...)* signifies 0 or more structure elements # /** # * function_name(:)? (- short description)? # (* @parameterx: (description of parameter x)?)* # (* a blank line)? # * (Description:)? (Description of function)? # * (Section header: (section description)? )* # (*)?*/ # # So .. the trivial example would be: # # /** # * my_function # **/ # # If the Description: header tag is ommitted, then there must be a blank line # after the last parameter specification. # e.g. # /** # * my_function - does my stuff # * @my_arg: its mine damnit # * # * Does my stuff explained. # */ # # or, could also use: # /** # * my_function - does my stuff # * @my_arg: its mine damnit # * Description: Does my stuff explained. # */ # etc. # # All descriptions can be multiline, apart from the short function description. # # All descriptive text is further processed, scanning for the following special # patterns, which are highlighted appropriately. # # 'funcname()' - function # '$ENVVAR' - environmental variable OBSOLETE (?) # '#struct_name' - name of a structure # '@parameter' - name of a parameter # '%CONST' - name of a constant. # # Extensions for LaTeX: # # 1. the symbol '->' will be replaced with a rightarrow # 2. x^y with ${x}^{y}$. # 3. xxx\: with xxx: use POSIX qw(strftime); # match expressions used to find embedded type information $type_constant = "\\\%(\\w+)"; $type_func = "(\\w+\\(\\))"; $type_param = "\\\@(\\w+)"; $type_struct = "\\\#(\\w+)"; $type_env = "(\\\$\\w+)"; # Output conversion substitutions. # One for each output format # these work fairly well %highlights_html = ( $type_constant, "\$1", $type_func, "\$1", $type_struct, "\$1", $type_param, "\$1" ); $blankline_html = "

    "; %highlights_texinfo = ( $type_constant, "\\\@code{\$1}", $type_func, "\\\@code{\$1}", $type_struct, "\\\@code{\$1}", $type_param, "\\\@code{\$1}" ); $blankline_texinfo = ""; %highlights_tex = ( $type_constant, "{\\\\it \$1}", $type_func, "{\\\\bf \$1}", $type_struct, "{\\\\it \$1}", $type_param, "{\\\\bf \$1}" ); $blankline_tex = "\\\\"; # sgml, docbook format %highlights_sgml = ( $type_constant, "\$1", $type_func, "\$1", $type_struct, "\$1", $type_env, "\$1", $type_param, "\$1" ); $blankline_sgml = "\n"; # these are pretty rough %highlights_man = ( $type_constant, "\\\\fB\$1\\\\fP", $type_func, "\\\\fB\$1\\\\fP", $type_struct, "\\\\fB\$1\\\\fP", $type_param, "\\\\fI\$1\\\\fP" ); $blankline_man = ""; # text-mode %highlights_text = ( $type_constant, "\$1", $type_func, "\$1", $type_struct, "\$1", $type_param, "\$1" ); $blankline_text = ""; sub usage { print "Usage: $0 [ -v ] [ -docbook | -html | -text | -man | -tex | -texinfo -listfunc ]\n"; print " [ -sourceversion verno ] [ -include file | -includefuncprefix ]\n"; print " [ -bugsto address ] [ -seeinfo infonode ] [ -copyright notice]\n"; print " [ -verbatimcopying ] [ -pkg-name packagename ]\n"; print " [ -function funcname [ -function funcname ...] ]\n"; print " c source file(s) > outputfile\n"; exit 1; } # read arguments if ($#ARGV==-1) { usage(); } $verbose = 0; $output_mode = "man"; %highlights = %highlights_man; $blankline = $blankline_man; $modulename = "API Documentation"; $sourceversion = strftime "%Y-%m-%d", localtime; $function_only = 0; while ($ARGV[0] =~ m/^-(.*)/) { $cmd = shift @ARGV; if ($cmd eq "-html") { $output_mode = "html"; %highlights = %highlights_html; $blankline = $blankline_html; } elsif ($cmd eq "-man") { $output_mode = "man"; %highlights = %highlights_man; $blankline = $blankline_man; } elsif ($cmd eq "-tex") { $output_mode = "tex"; %highlights = %highlights_tex; $blankline = $blankline_tex; } elsif ($cmd eq "-texinfo") { $output_mode = "texinfo"; %highlights = %highlights_texinfo; $blankline = $blankline_texinfo; } elsif ($cmd eq "-text") { $output_mode = "text"; %highlights = %highlights_text; $blankline = $blankline_text; } elsif ($cmd eq "-docbook") { $output_mode = "sgml"; %highlights = %highlights_sgml; $blankline = $blankline_sgml; } elsif ($cmd eq "-listfunc") { $output_mode = "listfunc"; } elsif ($cmd eq "-module") { # not needed for sgml, inherits from calling document $modulename = shift @ARGV; } elsif ($cmd eq "-sourceversion") { $sourceversion = shift @ARGV; } elsif ($cmd eq "-include") { $include = shift @ARGV; } elsif ($cmd eq "-includefuncprefix") { $includefuncprefix = 1; } elsif ($cmd eq "-bugsto") { $bugsto = shift @ARGV; } elsif ($cmd eq "-pkg-name") { $pkgname = shift @ARGV; } elsif ($cmd eq "-copyright") { $copyright = shift @ARGV; } elsif ($cmd eq "-verbatimcopying") { $verbatimcopying = 1; } elsif ($cmd eq "-seeinfo") { $seeinfo = shift @ARGV; } elsif ($cmd eq "-function") { # to only output specific functions $function_only = 1; $function = shift @ARGV; $function_table{$function} = 1; } elsif ($cmd eq "-v") { $verbose = 1; } elsif (($cmd eq "-h") || ($cmd eq "--help")) { usage(); } } ## # dumps section contents to arrays/hashes intended for that purpose. # sub dump_section { my $name = shift @_; my $contents = join "\n", @_; if ($name =~ m/$type_constant/) { $name = $1; # print STDERR "constant section '$1' = '$contents'\n"; $constants{$name} = $contents; } elsif ($name =~ m/$type_param/) { # print STDERR "parameter def '$1' = '$contents'\n"; $name = $1; $parameters{$name} = $contents; } else { # print STDERR "other section '$name' = '$contents'\n"; $sections{$name} = $contents; push @sectionlist, $name; } } ## # output function # # parameters, a hash. # function => "function name" # parameterlist => @list of parameters # parameters => %parameter descriptions # sectionlist => @list of sections # sections => %descriont descriptions # sub repstr { $pattern = shift; $repl = shift; $match1 = shift; $match2 = shift; $match3 = shift; $match4 = shift; $output = $repl; $output =~ s,\$1,$match1,g; $output =~ s,\$2,$match2,g; $output =~ s,\$3,$match3,g; $output =~ s,\$4,$match4,g; eval "\$return = qq/$output/"; # print "pattern $pattern matched 1=$match1 2=$match2 3=$match3 4=$match4 replace $repl yielded $output interpolated $return\n"; $return; } sub just_highlight { my $contents = join "\n", @_; my $line; my $ret = ""; foreach $pattern (keys %highlights) { # print "scanning pattern $pattern ($highlights{$pattern})\n"; $contents =~ s:$pattern:repstr($pattern, $highlights{$pattern}, $1, $2, $3, $4):gse; } foreach $line (split "\n", $contents) { if ($line eq ""){ $ret = $ret . $lineprefix . $blankline; } else { $ret = $ret . $lineprefix . $line; } $ret = $ret . "\n"; } return $ret; } sub output_highlight { print (just_highlight (@_)); } # output in texinfo sub output_texinfo { my %args = %{$_[0]}; my ($parameter, $section); my $count; print "\@subheading ".$args{'function'}."\n"; print "\@anchor{".$args{'function'}."}\n"; print "\@deftypefun {" . $args{'functiontype'} . "} "; print "{".$args{'function'}."} "; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print $args{'parametertypes'}{$parameter}." \@var{".$parameter."}"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ")\n"; foreach $parameter (@{$args{'parameterlist'}}) { if ($args{'parameters'}{$parameter}) { print "\@var{".$parameter."}: "; output_highlight($args{'parameters'}{$parameter}); print "\n"; } } foreach $section (@{$args{'sectionlist'}}) { print "\n\@strong{$section:} " if $section ne $section_default; $args{'sections'}{$section} =~ s:([{}]):\@\1:gs; output_highlight($args{'sections'}{$section}); } print "\@end deftypefun\n\n"; } # output in html sub output_html { my %args = %{$_[0]}; my ($parameter, $section); my $count; print "\n\n 

    Function

    \n"; print "".$args{'functiontype'}."\n"; print "".$args{'function'}."\n"; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print "".$args{'parametertypes'}{$parameter}." ".$parameter."\n"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ")\n"; print "

    Arguments

    \n"; print "
    \n"; foreach $parameter (@{$args{'parameterlist'}}) { print "
    ".$args{'parametertypes'}{$parameter}." ".$parameter."\n"; print "
    "; output_highlight($args{'parameters'}{$parameter}); } print "
    \n"; foreach $section (@{$args{'sectionlist'}}) { print "

    $section

    \n"; print "
      \n"; output_highlight($args{'sections'}{$section}); print "
    \n"; } print "
    \n"; } # output in tex sub output_tex { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $func = $args{'function'}; my $param; my $param2; my $sec; my $check; my $type; $func =~ s/_/\\_/g; print "\n\n\\subsection{". $func . "}\n\\label{" . $args{'function'} . "}\n"; $type = $args{'functiontype'}; $type =~ s/_/\\_/g; print "{\\it ".$type."}\n"; print "{\\bf ".$func."}\n"; print "("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { $param = $args{'parametertypes'}{$parameter}; $param2 = $parameter; $param =~ s/_/\\_/g; $param2 =~ s/_/\\_/g; print "{\\it ".$param."} {\\bf ".$param2."}"; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ")\n"; print "\n{\\large{Arguments}}\n"; print "\\begin{itemize}\n"; $check=0; foreach $parameter (@{$args{'parameterlist'}}) { $param1 = $args{'parametertypes'}{$parameter}; $param1 =~ s/_/\\_/g; $param2 = $parameter; $param2 =~ s/_/\\_/g; $check = 1; print "\\item {\\it ".$param1."} {\\bf ".$param2."}: \n"; # print "\n"; $param3 = $args{'parameters'}{$parameter}; $param3 =~ s/#([a-zA-Z\_]+)/{\\it \1}/g; $out = just_highlight($param3); $out =~ s/_/\\_/g; print $out; } if ($check==0) { print "\\item void\n"; } print "\\end{itemize}\n"; foreach $section (@{$args{'sectionlist'}}) { $sec = $section; $sec =~ s/_/\\_/g; $sec =~ s/#([a-zA-Z\_]+)/{\\it \1}/g; print "\n{\\large{$sec}}\\\\\n"; print "\\begin{rmfamily}\n"; $sec = $args{'sections'}{$section}; $sec =~ s/\\:/:/g; $sec =~ s/#([a-zA-Z\_]+)/{\\it \1}/g; $sec =~ s/->/\$\\rightarrow\$/g; $sec =~ s/([0-9]+)\^([0-9]+)/\$\{\1\}\^\{\2\}\$/g; $out = just_highlight($sec); $out =~ s/_/\\_/g; print $out; print "\\end{rmfamily}\n"; } print "\n"; } # output in sgml DocBook sub output_sgml { my %args = %{$_[0]}; my ($parameter, $section); my $count; my $id; $id = $args{'module'}."-".$args{'function'}; $id =~ s/[^A-Za-z0-9]/-/g; print "\n"; print "\n"; print "".$args{'function'}."\n"; print "\n"; print "\n"; print " ".$args{'function'}."\n"; print " \n"; print " ".$args{'purpose'}."\n"; print " \n"; print "\n"; print "\n"; print " Synopsis\n"; print " \n"; print " ".$args{'functiontype'}." "; print "".$args{'function'}." "; print "\n"; # print "\n"; # print " Synopsis\n"; # print " \n"; # print " ".$args{'functiontype'}." "; # print "".$args{'function'}." "; # print "\n"; $count = 0; if ($#{$args{'parameterlist'}} >= 0) { foreach $parameter (@{$args{'parameterlist'}}) { print " ".$args{'parametertypes'}{$parameter}; print " $parameter\n"; } } else { print " \n"; } print " \n"; print "\n"; # print "\n"; # print parameters print "\n Arguments\n"; # print "\nArguments\n"; if ($#{$args{'parameterlist'}} >= 0) { print " \n"; foreach $parameter (@{$args{'parameterlist'}}) { print " \n $parameter\n"; print " \n \n"; $lineprefix=" "; output_highlight($args{'parameters'}{$parameter}); print " \n \n \n"; } print " \n"; } else { print " \n None\n \n"; } print "\n"; # print out each section $lineprefix=" "; foreach $section (@{$args{'sectionlist'}}) { print "\n $section\n \n"; # print "\n$section\n"; if ($section =~ m/EXAMPLE/i) { print "\n"; } output_highlight($args{'sections'}{$section}); # print ""; if ($section =~ m/EXAMPLE/i) { print "\n"; } print " \n\n"; } print "\n\n"; } ## # output in man sub output_man { my %args = %{$_[0]}; my ($parameter, $section); my $count; print ".\\\" DO NOT MODIFY THIS FILE! It was generated by gdoc.\n"; print ".TH \"$args{'function'}\" 3 \"$args{'sourceversion'}\" \"". $args{'module'} . "\" \"". $args{'module'} . "\"\n"; print ".SH NAME\n"; print $args{'function'}; if ($args{'purpose'}) { print " \\- " . $args{'purpose'} . "\n"; } else { print " \\- API function\n"; } print ".SH SYNOPSIS\n"; print ".B #include <". $args{'include'} . ">\n" if $args{'include'}; print ".B #include <". lc((split /_/, $args{'function'})[0]) . ".h>\n" if $args{'includefuncprefix'}; print ".sp\n"; print ".BI \"".$args{'functiontype'}." ".$args{'function'}."("; $count = 0; foreach $parameter (@{$args{'parameterlist'}}) { print $args{'parametertypes'}{$parameter}." \" ".$parameter." \""; if ($count != $#{$args{'parameterlist'}}) { $count++; print ", "; } } print ");\"\n"; print ".SH ARGUMENTS\n"; foreach $parameter (@{$args{'parameterlist'}}) { print ".IP \"".$args{'parametertypes'}{$parameter}." ".$parameter."\" 12\n"; $param = $args{'parameters'}{$parameter}; $param =~ s/-/\\-/g; output_highlight($param); } foreach $section (@{$args{'sectionlist'}}) { print ".SH \"" . uc($section) . "\"\n"; $sec = $args{'sections'}{$section}; $sec =~ s/-/\\-/g; output_highlight($sec); } if ($args{'bugsto'}) { print ".SH \"REPORTING BUGS\"\n"; print "Report bugs to <". $args{'bugsto'} . ">.\n"; if ($args{'pkgname'}) { print $args{'pkgname'} . " home page: " . "http://www.gnu.org/software/" . $args{'module'} . "/\n"; } print "General help using GNU software: http://www.gnu.org/gethelp/\n"; } if ($args{'copyright'}) { print ".SH COPYRIGHT\n"; print "Copyright \\(co ". $args{'copyright'} . ".\n"; if ($args{'verbatimcopying'}) { print ".br\n"; print "Copying and distribution of this file, with or without modification,\n"; print "are permitted in any medium without royalty provided the copyright\n"; print "notice and this notice are preserved.\n"; } } if ($args{'seeinfo'}) { print ".SH \"SEE ALSO\"\n"; print "The full documentation for\n"; print ".B " . $args{'module'} . "\n"; print "is maintained as a Texinfo manual. If the\n"; print ".B info\n"; print "and\n"; print ".B " . $args{'module'} . "\n"; print "programs are properly installed at your site, the command\n"; print ".IP\n"; print ".B info " . $args{'seeinfo'} . "\n"; print ".PP\n"; print "should give you access to the complete manual.\n"; } } sub output_listfunc { my %args = %{$_[0]}; print $args{'function'} . "\n"; } ## # output in text sub output_text { my %args = %{$_[0]}; my ($parameter, $section); print "Function = ".$args{'function'}."\n"; print " return type: ".$args{'functiontype'}."\n\n"; foreach $parameter (@{$args{'parameterlist'}}) { print " ".$args{'parametertypes'}{$parameter}." ".$parameter."\n"; print " -> ".$args{'parameters'}{$parameter}."\n"; } foreach $section (@{$args{'sectionlist'}}) { print " $section:\n"; print " -> "; output_highlight($args{'sections'}{$section}); } } ## # generic output function - calls the right one based # on current output mode. sub output_function { # output_html(@_); eval "output_".$output_mode."(\@_);"; } ## # takes a function prototype and spits out all the details # stored in the global arrays/hsahes. sub dump_function { my $prototype = shift @_; if ($prototype =~ m/^()([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+\s+\w+)\s+([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/ || $prototype =~ m/^(\w+\s+\w+\s*\*)\s*([a-zA-Z0-9_~:]+)\s*\(([^\)]*)\)/) { $return_type = $1; $function_name = $2; $args = $3; # print STDERR "ARGS = '$args'\n"; foreach $arg (split ',', $args) { # strip leading/trailing spaces $arg =~ s/^\s*//; $arg =~ s/\s*$//; # print STDERR "SCAN ARG: '$arg'\n"; @args = split('\s', $arg); # print STDERR " -> @args\n"; $param = pop @args; # print STDERR " -> @args\n"; if ($param =~ m/^(\*+)(.*)/) { $param = $2; push @args, $1; } if ($param =~ m/^(.*)(\[\])$/) { $param = $1; push @args, $2; } # print STDERR " :> @args\n"; $type = join " ", @args; if ($parameters{$param} eq "" && $param != "void") { $parameters{$param} = "-- undescribed --"; print STDERR "warning: $lineno: Function parameter '$param' not described in '$function_name'\n"; } push @parameterlist, $param; $parametertypes{$param} = $type; # print STDERR "param = '$param', type = '$type'\n"; } } else { print STDERR "warning: $lineno: Cannot understand prototype: '$prototype'\n"; return; } if ($function_only==0 || defined($function_table{$function_name})) { output_function({'function' => $function_name, 'module' => $modulename, 'sourceversion' => $sourceversion, 'include' => $include, 'includefuncprefix' => $includefuncprefix, 'bugsto' => $bugsto, 'pkgname' => $pkgname, 'copyright' => $copyright, 'verbatimcopying' => $verbatimcopying, 'seeinfo' => $seeinfo, 'functiontype' => $return_type, 'parameterlist' => \@parameterlist, 'parameters' => \%parameters, 'parametertypes' => \%parametertypes, 'sectionlist' => \@sectionlist, 'sections' => \%sections, 'purpose' => $function_purpose }); } } ###################################################################### # main # states # 0 - normal code # 1 - looking for function name # 2 - scanning field start. # 3 - scanning prototype. $state = 0; $section = ""; $doc_special = "\@\%\$\#"; $doc_start = "^/\\*\\*\$"; $doc_end = "\\*/"; $doc_com = "\\s*\\*\\s*"; $doc_func = $doc_com."(\\w+):?"; $doc_sect = $doc_com."([".$doc_special."[:upper:]][\\w ]+):\\s*(.*)"; $doc_content = $doc_com."(.*)"; %constants = (); %parameters = (); @parameterlist = (); %sections = (); @sectionlist = (); $contents = ""; $section_default = "Description"; # default section $section = $section_default; $lineno = 0; foreach $file (@ARGV) { if (!open(IN,"<$file")) { print STDERR "Error: Cannot open file $file\n"; next; } while () { $lineno++; if ($state == 0) { if (/$doc_start/o) { $state = 1; # next line is always the function name } } elsif ($state == 1) { # this line is the function name (always) if (/$doc_func/o) { $function = $1; $state = 2; if (/-\s*(.*)/) { $function_purpose = $1; } else { $function_purpose = ""; } if ($verbose) { print STDERR "Info($lineno): Scanning doc for $function\n"; } } else { print STDERR "warning: $lineno: Cannot understand $_ on line $lineno", " - I thought it was a doc line\n"; $state = 0; } } elsif ($state == 2) { # look for head: lines, and include content if (/$doc_sect/o) { $newsection = $1; $newcontents = $2; if ($contents ne "") { dump_section($section, $contents); $section = $section_default; } $contents = $newcontents; if ($contents ne "") { $contents .= "\n"; } $section = $newsection; } elsif (/$doc_end/) { if ($contents ne "") { dump_section($section, $contents); $section = $section_default; $contents = ""; } # print STDERR "end of doc comment, looking for prototype\n"; $prototype = ""; $state = 3; } elsif (/$doc_content/) { # miguel-style comment kludge, look for blank lines after # @parameter line to signify start of description if ($1 eq "" && $section =~ m/^@/) { dump_section($section, $contents); $section = $section_default; $contents = ""; } else { $contents .= $1."\n"; } } else { # i dont know - bad line? ignore. print STDERR "warning: $lineno: Bad line: $_"; } } elsif ($state == 3) { # scanning for function { (end of prototype) if (m#\s*/\*\s+MACDOC\s*#io) { # do nothing } elsif (/([^\{]*)/) { $prototype .= $1; } if (/\{/) { $prototype =~ s@/\*.*?\*/@@gos; # strip comments. $prototype =~ s@[\r\n]+@ @gos; # strip newlines/cr's. $prototype =~ s@^ +@@gos; # strip leading spaces dump_function($prototype); $function = ""; %constants = (); %parameters = (); %parametertypes = (); @parameterlist = (); %sections = (); @sectionlist = (); $prototype = ""; $state = 0; } } } } libidn-1.28/doc/libidn.ps0000644000000000000000000254312012167253752012167 00000000000000%!PS-Adobe-2.0 %%Creator: dvips(k) 5.992 Copyright 2012 Radical Eye Software %%Title: libidn.dvi %%CreationDate: Wed Jul 10 14:47:38 2013 %%Pages: 82 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%DocumentFonts: CMBX12 CMR10 CMSY10 CMMI12 CMMI10 CMTT10 CMSS10 CMSL10 %%+ CMSLTT10 CMB10 CMTT12 CMTT8 CMR7 CMR9 CMTT9 CMMI9 %%DocumentPaperSizes: a4 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips -q -o libidn.ps libidn.dvi %DVIPSParameters: dpi=600 %DVIPSSource: TeX output 2013.07.10:1447 %%BeginProcSet: tex.pro 0 0 %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/CharBuilder{save 3 1 roll S A/base get 2 index get S /BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]{Ci}imagemask restore}B/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /dir 0 def/dyy{/dir 0 def}B/dyt{/dir 1 def}B/dty{/dir 2 def}B/dtt{/dir 3 def}B/p{dir 2 eq{-90 rotate show 90 rotate}{dir 3 eq{-90 rotate show 90 rotate}{show}ifelse}ifelse}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{/Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT)(LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse} forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{ BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat {BDot}imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B /M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M} B/g{0 M}B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{ 0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet %%BeginProcSet: texps.pro 0 0 %! TeXDict begin/rf{findfont dup length 1 add dict begin{1 index/FID ne 2 index/UniqueID ne and{def}{pop pop}ifelse}forall[1 index 0 6 -1 roll exec 0 exch 5 -1 roll VResolution Resolution div mul neg 0 0]FontType 0 ne{/Metrics exch def dict begin Encoding{exch dup type/integertype ne{ pop pop 1 sub dup 0 le{pop}{[}ifelse}{FontMatrix 0 get div Metrics 0 get div def}ifelse}forall Metrics/Metrics currentdict end def}{{1 index type /nametype eq{exit}if exch pop}loop}ifelse[2 index currentdict end definefont 3 -1 roll makefont/setfont cvx]cvx def}def/ObliqueSlant{dup sin S cos div neg}B/SlantFont{4 index mul add}def/ExtendFont{3 -1 roll mul exch}def/ReEncodeFont{CharStrings rcheck{/Encoding false def dup[ exch{dup CharStrings exch known not{pop/.notdef/Encoding true def}if} forall Encoding{]exch pop}{cleartomark}ifelse}if/Encoding exch def}def end %%EndProcSet %%BeginProcSet: special.pro 0 0 %! TeXDict begin/SDict 200 dict N SDict begin/@SpecialDefaults{/hs 612 N /vs 792 N/ho 0 N/vo 0 N/hsc 1 N/vsc 1 N/ang 0 N/CLIP 0 N/rwiSeen false N /rhiSeen false N/letter{}N/note{}N/a4{}N/legal{}N}B/@scaleunit 100 N /@hscale{@scaleunit div/hsc X}B/@vscale{@scaleunit div/vsc X}B/@hsize{ /hs X/CLIP 1 N}B/@vsize{/vs X/CLIP 1 N}B/@clip{/CLIP 2 N}B/@hoffset{/ho X}B/@voffset{/vo X}B/@angle{/ang X}B/@rwi{10 div/rwi X/rwiSeen true N}B /@rhi{10 div/rhi X/rhiSeen true N}B/@llx{/llx X}B/@lly{/lly X}B/@urx{ /urx X}B/@ury{/ury X}B/magscale true def end/@MacSetUp{userdict/md known {userdict/md get type/dicttype eq{userdict begin md length 10 add md maxlength ge{/md md dup length 20 add dict copy def}if end md begin /letter{}N/note{}N/legal{}N/od{txpose 1 0 mtx defaultmatrix dtransform S atan/pa X newpath clippath mark{transform{itransform moveto}}{transform{ itransform lineto}}{6 -2 roll transform 6 -2 roll transform 6 -2 roll transform{itransform 6 2 roll itransform 6 2 roll itransform 6 2 roll curveto}}{{closepath}}pathforall newpath counttomark array astore/gc xdf pop ct 39 0 put 10 fz 0 fs 2 F/|______Courier fnt invertflag{PaintBlack} if}N/txpose{pxs pys scale ppr aload pop por{noflips{pop S neg S TR pop 1 -1 scale}if xflip yflip and{pop S neg S TR 180 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{pop S neg S TR pop 180 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{ppr 1 get neg ppr 0 get neg TR}if}{ noflips{TR pop pop 270 rotate 1 -1 scale}if xflip yflip and{TR pop pop 90 rotate 1 -1 scale ppr 3 get ppr 1 get neg sub neg ppr 2 get ppr 0 get neg sub neg TR}if xflip yflip not and{TR pop pop 90 rotate ppr 3 get ppr 1 get neg sub neg 0 TR}if yflip xflip not and{TR pop pop 270 rotate ppr 2 get ppr 0 get neg sub neg 0 S TR}if}ifelse scaleby96{ppr aload pop 4 -1 roll add 2 div 3 1 roll add 2 div 2 copy TR .96 dup scale neg S neg S TR}if}N/cp{pop pop showpage pm restore}N end}if}if}N/normalscale{ Resolution 72 div VResolution 72 div neg scale magscale{DVImag dup scale }if 0 setgray}N/psfts{S 65781.76 div N}N/startTexFig{/psf$SavedState save N userdict maxlength dict begin/magscale true def normalscale currentpoint TR/psf$ury psfts/psf$urx psfts/psf$lly psfts/psf$llx psfts /psf$y psfts/psf$x psfts currentpoint/psf$cy X/psf$cx X/psf$sx psf$x psf$urx psf$llx sub div N/psf$sy psf$y psf$ury psf$lly sub div N psf$sx psf$sy scale psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub TR/showpage{}N/erasepage{}N/setpagedevice{pop}N/copypage{}N/p 3 def @MacSetUp}N/doclip{psf$llx psf$lly psf$urx psf$ury currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll S lineto S lineto S lineto closepath clip newpath moveto}N/endTexFig{end psf$SavedState restore}N /@beginspecial{SDict begin/SpecialSave save N gsave normalscale currentpoint TR @SpecialDefaults count/ocount X/dcount countdictstack N} N/@setspecial{CLIP 1 eq{newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip}if ho vo TR hsc vsc scale ang rotate rwiSeen{rwi urx llx sub div rhiSeen{rhi ury lly sub div}{dup}ifelse scale llx neg lly neg TR}{rhiSeen{rhi ury lly sub div dup scale llx neg lly neg TR}if}ifelse CLIP 2 eq{newpath llx lly moveto urx lly lineto urx ury lineto llx ury lineto closepath clip}if/showpage{}N/erasepage{}N /setpagedevice{pop}N/copypage{}N newpath}N/@endspecial{count ocount sub{ pop}repeat countdictstack dcount sub{end}repeat grestore SpecialSave restore end}N/@defspecial{SDict begin}N/@fedspecial{end}B/li{lineto}B /rl{rlineto}B/rc{rcurveto}B/np{/SaveX currentpoint/SaveY X N 1 setlinecap newpath}N/st{stroke SaveX SaveY moveto}N/fil{fill SaveX SaveY moveto}N/ellipse{/endangle X/startangle X/yrad X/xrad X/savematrix matrix currentmatrix N TR xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix}N end %%EndProcSet %%BeginFont: CMMI9 %!PS-AdobeFont-1.0: CMMI9 003.002 %%Title: CMMI9 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMMI9. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMMI9 known{/CMMI9 findfont dup/UniqueID known{dup /UniqueID get 5087384 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMMI9 def /FontBBox {-29 -250 1075 750 }readonly def /UniqueID 5087384 def /PaintType 0 def /FontInfo 10 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI9.) readonly def /FullName (CMMI9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def /ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5 45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4 7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7 72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89 974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674 11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBD07FC5A8862A8DB 7E2B90C16137614CDAFB584A32E50C0935109679E31306B8BDD29F1756946A67 7A7C2D9BA6FAB9B20A424AA0E6F4BA64C2801C2FB5A1156CBEED0ACB95F697B8 BC2A6E6AA7EB1F9FD8E3C9B1A16697EE1F0E7400421A7765AB218FC837A49365 82DC6B2C877A7DA84A81E6126EE96DB25C17A207D3020A045DCDAA064360DFFC E3CD50E21ED239D2A6450D04F879A26443ADEB6A20ACC504989876476C7D1A74 91564FEA1F4CC2C8C8FDF666DB537F315AE1886C73CB5B00E67E7B398A6C018E 540EAEE98BB8136C4F044EDD63C33431D2CF9740F051DF365A4045D9D8782112 7BB5D494D9235BA98CF2F30CB119F5A904C32AD04C960C43FC1F5FD8DA7D90D8 93AFB59F3FF4F796481AE2A7548F948FECFC6C127C4D3F159B08F206AE8C296D EE470DB2F879EA79475E029D22D7A8535C09A18689DB0609CC233E5199C02756 972CC9C94D9FCE264DEE5D75C8D651E4E2D1189AD9588CB815722BB5EE3C379A 6F31C2E6AE1AE4CCEB29766190AFA20EA937114978752189F1A9F42B39483149 796FCFA123BA9CCD1D9BE28289660BCAE16C40B5B504058D55CFCBFB4F4E3D94 DDBF39F157E63946534DA81C018B1C01B9F10DDB55E0A5C2B3985ED1977C039B D6755EA42CD09E27751E159C30B93F376DBE61CD3AED34BA36A768F232EB3B80 E3E6B77C4A48D408217818E398B83D995AB6BC871F20991DF57313D6EB0C793D 0F28088EBDB7F38DAF7E01AAB3476EC24D7BB38A9889A7D3038D930FF4289B83 F54A7BE1E2D98A3822098D2E4D067A0D400C20C0B2B4BBD74C13ED1B827490F9 ECF48F8C3994C1C5AAC9CF783BFA4F307528F51EAB55F961808A42ED53F00C97 72A432EAEDCFCFB622389BDA707B6ACC9433B065CF29EBFE93AD14B8ECD5F47F F073F11822C49B8BE924CDFA6348C3A75E9BB9BF3F31C41716B34794B28CDAC9 4DB8B087E180A9B3B17680F73D9C12C8D86A922C948093629F5D7F542ED882A1 692F4F6696865E53E3E2DD43B2D5E8C989CFAA5CA5C4C5999045E170BDE9921C BACD6F2863F5553EAB2BA2D4A9034729EC0C4201DE90DA89B0A27C5A5C974109 4E37BFB3F46B3A506169FB0C68E1CAFC844419A8D261A1FD86A3BB78E33D5FB1 CFC687A5975987CE45155E5FDFAF0CC5FD5568CB1C26212F92E88255F0549F59 41B33125946DE43436BEC00804063FBF03EC796E3361B1C852EC3038D107F80A 9198968265D5488B26D7670B22C2D75EDFFD1B7B4AAFA36DFD94640C9D0E2D20 5BCA18683EFB91834A3939AB8EB60E2F09655BE003582634C52770DA9668C292 2E02929D812EE2B0CC65F020064AD5BDAC5F5693B30508F40ED8E20E87149BD5 8DD41AFF83FD1944804017DC5A04512E593549FFFAE501131CE2FDB65EFD0B8B 33809CBAEE411B3941C241550B9C30DD28088708F1C0CC3125CBEDCD985EAD28 03313741F67DB5744A87B381147D5BA70AE1145C27F794854628D87D6C1ECCA1 749E3465B950175D3C3F40E344297BD92D3190041A4392033A79BEAEAABB8DBE CC14E39612F43721CFAE6F79074429221CA588AA2501DE520A464DE157A03AFE 3C082FAE7628FC0C57FFC61D0330AE6332D20FDBB09BF36848FE05E782D6379F 64F9C82C45402481B0A35989027F9756BF5A79DA2D96E10F39167ADB4305578F 90B509B6891338FA1D67DCFD61804AA6621526B2EE4769589A2646581712AC05 DA6E98D16494F07D612743058F54FEE516BD89A8EC3E03F9D7F905175D3412C8 F7329077FD6EB25213F3CAC94BA0C3363B759401B6EF7548C7D709F3241D030D 4EB46A1AE81863C412BDDAEA6084C37143A4C5E41BC646315B1CD09F934186CF 49D1D8239E363A435307030BD79536B50B723A39DD763DB539F24A10DDA12BD4 E467339D2D6DB177D6FC539FA77D2DE4118EBAC161E928749F7C753ADEF86117 58619F1155C563DF2E11ACA8347908B98113AED58FCD0394150EEC94B7F986EE 88BF7171D208D8F1774B1DD478F0C2958AE372D257E7EDF0F6B5D6059CC4D5D3 B00FCBD2E9CBE79235B9A5A3E943CC27AABB58728C95C7DBD4F4A1F8A4DA99AE 7377B0CC0BFBD454794398AE0D5F7281771FFE87B25A819F36E692286A42D776 01794A43CA9BB30FB8FFDAAF014F909A369E34C2F6C75B7D4EB9DB0580E33F46 19654443AFF8384B95600B86FF8E41FEFD032355626D60C7507C058EF832DF41 194B48A36F11082D1DCF4723E21401E0C7447AABFAB4639B26E3D2730E348F55 53EBFF39CDD03E06E2FA5FB379603C879EDB7E1A10F89695C9C47DEEE52BE0A3 F446F187AB9D7E93E6F9387F21129034F36DF40605D28FD526AF82CA9D232BE4 412567F06B38ECCD496EF40A7B243E46C9FEBA4F1BF4B1ECA029C5EC239353D6 C0B100BF7E7DB33BD1277DE104F15AA19F37340A777741AD1AD693BC76DA48CC C6F83CD84591ECFEE375979972B0FAC4C10B625E4BFB261B9FFFA83C31DA0108 4FFB6377466E9739E0EB64424BD9FC7239C7DD834EC6788A0F97FE714AF92831 E1BA36A8A9E24739F1DC82DC26CC3CE28C210AA7C569B19E1784D663A0CA4E81 AFF43E86D6F5F63778847700072CEB77A4EB946DC1F23DBC00BCE773203F76DF 00F0B085F31420672974DDC642D885E95BA6BBE43E1CA8ABF464D9881CDECC7A E98E31B9754C9B72A8BD5CF6D4D214DBC3BA7A0CDF6635953F5AC1E7639C4A91 C7AECE4C75CA3389C348F656FC2CC96C84C85A926237B6504DB51937C9CFCDAC B75C31ED570D180757884E27757783DB2D5F35ECC48C496CDA342D49AA947BF8 2FDAD2F19DFE8CD1C76A8FA08F33681F3E12E229D7DAB45BE3A3F258B5ED4980 F15340CF20D965252843E026803E8AEE736EC41CCA82167401977AB719AA2F50 0B791EEAA82027B3C712D2EB9D14BF8F94FBDE2227609BCAC41EC08DE2BAC023 28352F913F7DF08D4E1C66E83F764578B22B4EB7191E852B91ADCCB1BCFDB1F4 E63DFD152E86FA9DE9BC8908130EFDE29CC4401339C05B5B9764CF8EFF14951A C6C13AF979546996BF22F2B96D3D585B90CD27DADEC78914DA48432C6ACBDD42 20EF583FD41F2F6D6D10C3DF7DD077304B5940BB0462656E306CBD91EB9B756B 7014B1884A36201EC582FC9345C386043DD2818FC301EF78791C1D7854F8FACE 5DE9801DE9F59D5B4271E003AB897B2EF49501589D681D59CFFD9B03F722EEF4 74ABD29997515DA3591496B62666744EA76DCA45504F8075C0652D6779DBEAE4 90430C2945FBD60AD53B51DDBEFC7ED703C418B4B244C8FFA5A3C1B7600C5A55 3EBDB93C16AC191C3A28EB2279BD3F0D67C826BC6A73D3C0AD02262368AB4621 98A1605F2887BC5880E1AF2780330E0FD01D7CAACBB0F008A42C427F38236066 54799594E515B289044BAC4DADF8B3686B4372C5110201221FDA923F131E07E7 93C44BAD406838BA4D1C277EF74098B8C0EDC41EEDD58C195D7DFF5FEDBF96FC 19CEBC6C3006DD2CBF76916B4298BB915663C2F61AFD7747E03A03BD7280197A 9DA590E3D081C6F53DBF94E8D6FDDDD910A70AB18A0F6D48A590FFAB314D6CFD E3FB20C1F3C91063F00726A2C13A3D48323F9854839405E5A29D66A43E6E2B84 A8B3765F1D817071D4D6FF42BC785C2D11AB2B9452F141696CE19C6AFB9777DB 107D6E22D8CC6C26440BC48248AD8805C4329D46BF433741CB519B21663392DA 5DC7FC9BF37E5BC396BFADD7263D09F6B4D69594AB386B7BDFCF3BACB97A0E08 22013E716E642592A20136CF9CFD61D4E515D80E06A4CB4FC9D9B916C93CEA95 B83B98C48CF36C1D02291D4F5C0419338D64E33C90C90EDD2BA3B96D70FAFE0D 403A060CFF448D3E28A9B1E3916018465E86095BAAB4706CF7ED350D7C554789 D7F4FE5F180767DE8739259E68CF142040BE1E2E8C6152DE3417C1FAEA7584B6 20781DC4A9796431EE713DAC4E713C839D7A4FDC8AB6BFEFFE767AFD8B67FDA6 943AD387E5D3BCB09039ADB64ECC2BE2620C6EC269E708DD06C311F450099E33 AF46AEC644222E7DC4DBB9371EE12CFBC4F9B27AB46AD1DA96CE006E1DF8291F A550A93026CBFFC1087B134EC6EA76F5E109CDA58FF47338A0039A786A575F70 B8A03A4F9C8D07A4C856C77D9BCC8E3EAA740172D0C2D0A15BA35C9E5717D7FA 2691774DDE730BB9D7C70D7AE103DB8D35F3728470C76EBA0E670634E1A0BA84 2FA102BAD7271DF2680D86A4CA6FC353869987700E5E3FD778165456033D624F E9B3E80EBF431ACC934AA0357E824B8AD73E222B510DE8445C55C07C8E5DE46D E478F832BDDECAF2EBB11941DCF84CCD887043FAED9AA90D12BC8CA9A0C8D94F 8D3BF1F80B14B6CAE6BB1C6AA405AA64BB94D5A82CFEA548BA070796A02F9642 87326D066101435AB9EB40BA9EA9E61B363F5F5E3B924369796E8B78DE3414A4 2B79C6A13ECB2F34E6299658D07D2B3DEF3D4383CE009A927F0EF5C196652842 D96B857AB5E905201E7E8BA21A5EBED1FC6863BA9A1A6E5390407F75055E2EEC 512FBDB3E82CEA13663F1A1944DA072C765D8CED06AB461470C5723BDC1271D4 4D1D049D3EB131743F1EC9A6ADDAA038ACA2C41D139DC6A84EC3C61AC7F1E559 6155CC2F49171F6E07CF56D721D9728E87FC7DCBCAC46455A3694C765FE807E9 9CBC2D304AF37E0F28CCB22F239541B53A4D24D09C662559267467EA487BD33A 0BEFD4899B581D20582930703A868655C31BE935364CA6A95FBCB22CB714C040 9718824DFE97929D0482430726CCB5A5307957DD2432A9B6271E849148DEB76B FAA290FF6D0B18DC5B76407852E81C105EC6CFAB0F620C6DC9DA555A33C167B1 430A8BC338BFC7D75B7099CC906AD923FA107C74D3FBB719D77A4E5A685FF9D8 56424EE4AA074434B809D894ED50F6A60A035C5223EA25DD8983B9B34210DABE 718D7B2BEB293FF1B63CFB1CBDAFC69552963D90F5E3FF533A3FDBB626E9FAA3 F3C119E5E01C7BFF832A033C3515BF049E29558B1DAD652F2888E339E67D15AE 95F9BD14E3253DFE9072B24C0E7E85025B71096AF51C86AECB2921126A43156B EC812B32B1164BD9B2B947D503C015616DBF2024F5C8CB3236C1DCA653D661FE 6B1C19A22D272A176B7F1B7F9E67AF40DB0EFD4940E58B2A050249CA4E55CAF7 6ACFD84FB46FEF952D18552B3972D79D808B4C263B8C7E1BB647A2D03E102867 630D5C3F2C917F765A4F6FB8106BA6A9D0093E27A4CB6049C2371287D94B5111 6E7020776EBD744C6C920464BBBC0AC206033E8240017F8CCB112596ECD7CAFA 89950CF43FD87ACA750C03A778A37FBCE9C82C2F5ABB135BB02DA8E8C0D24475 3BEA9D79372D0022FF1ABD378C151417DBC69FE5C9CA38D23A3900E34BF924A2 90777ACDC37930B67DD44A2E76DDBD9B89598D5F626BFD325A978D277265DA47 38CFAF16E7FF1946E15F41CA73F7B4B02E5AE8FC4C37B115BC567E4EEEFEFC34 EC8974B1465AE57759EDDA28DD38A9210871D35D331AE1BE6097C3EC21C770C9 B25D040B2ECCC3AEB1EA1BF99E0C2C0F192C13BB9152CFCF75332E03F9CEC376 9B8C285A35F53655BE38713E09AE34BA2DA9C06FA42A6FD2D00CBF2AFD2BADB9 1571629C65DA38A431710CF5B01FCA68E8B8569922FBC3F9B64A5509B6F677AF 1B97E91FFFEB6308AB68AC58F9BA43DB5E764021E75B56170EB44C2C0A7DB86C 62B8982256D3621EBE3DB3994DBF5C5A14CF34B4AF3BD5697F8E3203085DE9D5 84B0598169760B925463E93DC87CE70AF4C2DF0F4287D2F2069847BCCF7A37A2 AD451D5ACE4DBCCB2E14D5DF38B226952E7446BF87BEC736EF3D5AE793304618 D66D3299AB9F9CA1D13F134FAEDF36750046E27706C7CBD8E0877BB6276E5196 BC2A355D109C0253644918E1CC11B717DE6FBDA201E769812752888CD66268F6 4ACF4A9449378F9F9923D584BA1B51F33663BE7A306887BC14A37E3C5A4654E6 531D6EB63DE3946BD8BA95CFB037991174F36D61D842071E6625605CAA350A24 FE551025D10871FE0E2599A63900C8520EF4911C53A03897C8BEE152451708E2 43FCF4E700C583A5E8DBCC03BF9CAB864DBD19E1760945DEA0EC0BA38BEA8256 D3A8D4F70F6685A99C6BD2BA8B412A26C002D76138CFCC7DF6802931E5D97BA6 0151F6A4C572235B4196B22B7B2D14B32886DF0D2CA8A277ABAAC53B63F64CE4 E4C088192AAB674497E8AF81961359C389B51F4A257373D907C615030BFBEF53 DBD99058FD06E352450B658478C10454AC8FC0232B70D5CB916981978053E358 99D322A07294748BA427FFD1E45C909171017B52B7C742FD77A8560852D819DD 8DD53211A14D7B2FD11E42941722FD3985D627FDAF87EB57326A0D290B5077D1 8A4230BEB40523A8565F95E0D44F036A571DB698EDD9D94FEC9512369E5E5E73 A3CA5C142617944F4F99C0697ED088ACAC007FCE06E5A6EDE7D0E03A3399DCE5 362271BC31533866BA79FD1FB3F608B22CCD4111FFB1BA35D920A23AD157C6B3 C3DAE11069D5E46DEDA7158C6478D8B8C0D9DC237CDF0CC6633911673C43FB79 E4F9B7F27495201E5ADE66255BC2CBE9D9F237DECB62A19D62CB41A1C92432D2 07F0629E913A71B3F1AAF8B8C5AC66D3C8605A48F8913E39C859E163DB1DBC8F 0ACFEE80A40B6172032E95A76B752B873FB4DF23CF3A655AF1A1B88C8DC156C6 190DE72973950565454C0A188A33395FD3D529A88F2B578356DE8EBBC12F04C4 5B899F667D9E6F3A4EC6DD8DE71FD4C2E2B6D56823EE4E0526679D71FF1B868D F261489F06F97B010CCBE640E2F57BA3DC3332B329F7958394BA9777D833AB50 005E8E9232547104065ACE33396772B0E0BD66D2C6CC54DEDD071E444D8C95F8 6F88B31E20FDB80F77C83151B7E25BD3736B4F9BDC52EE78C41E9475E5A6D94C D348AB42F5E36B4F167D29EBDFBD43B03F77EB296B06A36880FF17D412E77EA9 F2E7C25FD05E16BEC6732681EA21AC3FF6893B93FC09316A370CDDB86D9E6087 F6042C3F9ECD742778389170F5F041329782FB9F9702F7533E51F355F71825AE 2BF4F8FE50D413AC9A20C41B42537FDBE8DDC5A5C793D3760C1EE13716068752 F0AF10812250BEDFB4D7133FD58F4587BACD572505C84A7D3802D27443175FE0 0D89C3398B55176D8642AFBAB5CBCDFD6220C8488564B4306D74A58CD2921AAD 73CF803C754DAC2F30A5324886E273064FA51781D5BC596BFEDDCE3982EA1AA2 62CA7BAA1B16C6EBB99B2AAC4E6C9CEFB3D10F19987045C4918DB239E6E63D79 5F44B9D097118D081153AFF96E5EB39CBFBB99A3BE30909F614869031358EB98 F07A97EA78AE50375941B2474DB46AF3305F2B208D45921F93743A6CB8AC584F 6BEBE25ECAADD5A789EF60C9F54446687E7B030DA3E5243189F02BA46BFD28B7 DC14822E136AC7E40CE20458DDBF356488045C95907363864CD6943643BF0109 EE027A3091C11EA392EA91320EBFEA3B857370AD8EB86D73F035A476F7058222 E8CDE78CA1AA9EA69A8AA6EBFF3E67324C567B914134DE042D6F8F18A9373107 536E8D90189917D343F5299024239E2EC1D2D177D82DC8E344A7CF2AC71AEC18 36F139E7A4EB59A67192BCA9ED0EB25DE13032F6FEAFC3B1F4FC81BB0EDC41DF B9EB92618667C59EA499B788CD26C2137D70F1B0AF793AF5AD0D0941F2E746E3 F5A7F0288BC1EE11E982EAAE763CA422D72FBBC0D754AD58FBF92629DC8866A0 431213513744DB48E52EFC89C83FEB082588E4F30D7DA77BB598E51CAE7E4900 5CD570C914EFBA426BAFF7A56FC775ECF5BE13F2C42E51EF96784E5201C0B64C 074AC229FF0BFDF71E6D5E08D8755D2C12B770B6466A9C9C61C15582DCD2FF78 E9E74DC2B1CAA344EC0339EBFF92CD2CC1D62E2FA8FF15E7459A83C6CFA58A77 2F1A40BD276E76B675FD6834052B33BF9190F04DF6AA5FA3BB7D77A88DD5B600 324C5E28216F47682EC29EABF35BA842BA2294A3D72B126EBB852AB741186C9F FC84B12DC4A6CEC08F2D03EE61B65C845841EE17F1B765649A 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMSLTT10 %!PS-AdobeFont-1.0: CMSLTT10 003.002 %%Title: CMSLTT10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMSLTT10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMSLTT10 known{/CMSLTT10 findfont dup/UniqueID known{dup /UniqueID get 5000800 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMSLTT10 def /FontBBox {-20 -233 617 696 }readonly def /UniqueID 5000800 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSLTT10.) readonly def /FullName (CMSLTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 52 /four put dup 95 /underscore put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE33C33655F6FF751F340A8D6C01E3 2E02C24E186BA91B34A1F538959D4450CB683EAE5B034D030186901B458D3777 6B3942BD2E07121385120248891AEC2EB33C4E3A0CF00828D0F130C31A918C18 979FE94379C648EF21ABF659253E43CD1253866F157F1DF85AE7E8714F061B1E ABA3AD094FE8D6293916FA82EE4F486C7E513A06D4C9BE44306A8287970B4ABF B6D1F9274A5A0BB6ECF713ADBD1260D5D6C4420D357FD486470A74B2F0621B59 A9373ABECDBF32FA68AABB66FAB0C970A3354A335FEDDA1C288245E6C890B8DA 3D0EB953283ABFE372221EEB1586B0167F634E3F29CADCAB484B81A243CE1E3F D5106AD6BDB1AEC91123377F816711CB9D5140120FEA84B8205B79D1569509FC 6B671211985CEF51691C45A168740BD826464B2CB0ABC575E7D453161328F80F 3AF1C99EC219010EC6C95E0A8D1909719CF18BE424967E90DF67537220E60C3C 4345B154D08F9EA684710E659DFFB0BA1B7FDDCD519305900A5E1CDA219A6C90 DF8BD712A3686DAB90344E8784C7A9AF3318550285039B701B9FA1D3A3C3B6C2 753F1E794A3463A173C99A9EC0E2AB5737134CEC2C97CD6A37E38692ADB4B131 54697B7BBBB23680C72CE96066D8007B90AF0FC5958232AB4F21826691E9874D 107F47DAC1026298D787989BD77CB43A09FC95F6997DB00D8483AE9C2716CBD3 7CDF02DA34FDA2F0754ED0968270E118DDD8BAAAA65C41D699E2BCC2556AA231 328187D2F50FD518CF458B0BA1F7DBAF4B231CFD61D5DC56335B53C3013BCCC9 85690E19E992ACE55EEF2BA7A75DEE6DC33933C226FC1494269B7CA4CBAE987C 2C787386400172AE3F44AE47115F4117EED866713BDDCA4A7AF658C49F913CB7 308635000043F63BA210410A66E192289592882C477B2EEA0B2A339F0E7CF450 CA0EF79D3A6C28598825CA03FD688DA60C95EF707C6E67CB7E57DE7A80545195 739ACBDF27069F34C9E0216C3D17CFE7A652B910FCC9B9AECC2E646809C22D93 FAFAD465DE794755AFF5BEC17160C9563B5C51D07022E2D3A256FB5CACE131D6 F4B30F591A0419D957D8F0DCAA0A8D65A8D83422AD7C2613FF13A302E152B312 3F1ABB45E42084EAC894FE335C07324849C9736D00C872C4551997DB889AF17A A52C5AA77DEB548B0103B77F65717F70B90C1BBAEA7BCB4959F32851A9882A3F 55673F24103D6BF7FB3AD3EC3CC50FD8FBB4A6B13C3D278174320713A7B327CC A71F01E50840B33D0FC3F5F6A6F2B0F2D0E38494B1C73096A430510F927235FB 69E931DA8CE5415EE88D0248565E3347353621A48F7948AC9EAB5F5057541B50 82BA955D90BBC82E582FD71904445A59186022FB928015235B60830DA59813D0 8DA3FC306C43FF8BB2CB6772B1F7BA3C1AA4B2343E7DA7E065EA53A4E5E28DC8 0790F2D5CFB203CB135A08DCC9702B59A63290444F202756E55B9FB053F773D6 0F69C63E74DE593E49186FF4304E8FA76C3E3006358DE549E946DB69431981E8 1261C9C9A884E4EC708F69E6AF5D22C5BAC49F2AE85903E3D48D03B7B97054F1 D2937A0C685D912D6D20A75A77712164DCBF8FE4D5460DACE139C5A934EEA09F B94DBF168A4BC03A9D689936D833018FF43837DF9519AD10F357F00BC068E737 170FC9FC6715165F733A0B6FADB9ABB48B845167DBE6D771C916577FC2132863 767DC6E3D460E779254194AA690983184D934F5E858C1176B3862B69B42EBE7D EC9AC4E020085D474093F7694C8A8C2025D4B0163E29320C384D62A9F3FBCB1F AB5A374EF3DBA48AC2147A207AEFE8B78BECEBC55C97B538F3A0FF4589D171E3 826342C8A5186224FEE54E4C6AD5EB02BCB4088B132FA1A48362824BEF161235 8E661DCFDFD8429C65CCEF63902D0E07C2FEC1DC2756D942F13FECCB7E8A8048 345338F24B7808E46A04A915C111F939E2669A12FAC0BA4F74B832EAC83EABEE 67E2817C058E69C2010F2572FDD15194CD8DF0FE9F827D349C0444A18D1A86FD 802BC120A5114FA3523C221242C7E767B0AAF6AD15DA1561CE8EB18A2401D71E 20481FA5F1E247CB5288F47795A6A3A3BB186E89EAAC4A54AC91405427136127 5B151203426830F7CADABDB3FF63B40CA29CF8E667E71615869978E99E6F3F07 0170EACDE3DC62DC05681D7680E2E96C30002AE34A4E5EAEDF88577601A82C36 22D625A03B0451D7BBAAAE0C396711500E94A482EA787495073F16A76D1657DC 4EA7C7B83BC30CE7F145B65B6E2ADC207D192CE3B5FEF7031F4BD64F57E1BEFF CCFFE06F1E4ECA48B442DF413766A70DA626359183A9B24C70419487423C816B 4BCB067E661E47E172563090D6328BD738D2B0FE41A0C1D7A47576A79BAFC880 0473229D134F998909898301CEF50A82B627A9A06DF59D0B9C530EC5D877F1E5 220D3A1ABD2ACBFDF1933F92B3137B22B9F95A961D93B729307749A50D8A6403 7AD0F9C40743E39B8D198CFCF7C033D99440D46D821D97545B930EF92E7AE005 27F2FC766FDD4790FD1913C7A13328E73E587618ABD9008022C5C6C23935CEFE B5ECA2CEBA1D25DD846B48423F7186E03B1F61C8F1D5AC95CE03C83B2F221300 7A761D6CB5F7F9251D3F9A7F4B25B99EE7A1347ED3059A811A82A35A033E9B07 A4FB2A95009576F48665605C478E5F6C1B135016FEB4AE6A6BE4B4359836E04D 45AA11366992162973FB6266547C2E570B8F56F6D992D2C0F63950A16839FE10 F56E59D93A37573E3268C5892C9F3358753D1FAD6379E82BE740FA17236E96F7 C53A2FF785FAB86AD17EB1DE8A6AA9C69B91C9D9B43B5188E51F6939FEC21B65 AF17DCE95DD3BA4F1DD51F0BD5E5869A1ECA7398B6E664EB0D189181E9C23012 DC1E54C146842A90909DBEC03B79B58909205F2CB2A7F83C66B437D7F7DB9781 FF0C67F004E979C95B706D8D85255CCD827CF6196D847DB380B56980109E96CA 997157BE78A4F758CE59D78158A854EF2C20099438F74777D3B0298D45BA86D4 3C0AC30C984718FD62ABA0567AF0A70C1DD41953E3E7212D5C562085177E650A 2ACD49940551E3F7619B4CC31DBF67AC15D938619B95DBF66E6D1300B1BB8605 31C4011379FB5388CA49E4A9BD6C921560CB8D513F8716A0733D2A7D77E62D22 A69B54E9048CA168D210816E613CF6357706EF6B118A1263B858B7E19AA98891 43BD675B06C893579957BAB97199ACB82C080593ECB8B66A7334779CC16E4D0D 4AF365CA6AF9727AE29417B61A5FD52452873B1D666044F8E7C1F6C6AA3397B5 94A5780F4005FB5E41698FADD1594B505A58253D68D2AE3320E22165D198050E 425820CC0A43FF1D61F168D87CDD30C14D387610B6CDB63BAA39B3EC9B3CA616 FF1CC679227749DED3DDEA26B4D97C633090DCB8D8A6E5E07E3579E4A99BF1D5 51E43D1D7F139C9CB1D76D8F693A3F23A74EFBE79F01E0B850BC6B6C7F62C2E9 859469A144853434895D73DA6BD2B348A48BA80E79327ABD96539F2EA2209852 E1BF6B0B819D7C68A9A1D0F6F39416E3EC4AC21DCD3C51D3B5B8D417EFAE165F 2A7E0B76E558AC9F685A76FEC7E3C73CD607D9025DE6113BE5D0401887A53910 82A813B026A502B51D484797D9D7E79A25B6624940AEDB4A15F2C73CA1AF60FA 22D15BFBF268EB044FAE17822511AC6580D1D74DBA3C3335217780B29FEE792D 200B00B8CD888A8BFF15D938FC758BB5CD9B3E08E1AC6CD1669E663BE86711A5 892684DFCAF70C11E803164994BDAD89128AAD6461D4558AC2ECA3E05EB56D32 0290AB16A6DF7133DDCBDEAE89C6CD83552792E23CBF567D57E46548EEB0A140 437492B53C14419B6FE7E64AC23923A9E85F56A9DF209DC4E6BCAF1E045F9CA3 BB904BFA150F4083C18B0CB5580450CDB657EA768E71222C71DA911A722AB9D9 E18B6847F417125C40EA8A0CA1F551A4548712D098209C78DF9C3F78605E5402 DA2DBE2218E49B819296D5AC88D17DDBA982E171733D1E9E295B3157C9B90BF1 CE68CB185947D1E3D7544155B741296D14B064BEFD3E6AF25C74006CF6800551 80FCAAEE6FC9105E1674EDFE68C45617D8D3E2264CD395EE94EDD017EB85884F FDF530EDF4F3F14750CA066F149E688FAF8EF4B5FE6AB515CD298E8D170346CA 9B32BAD1D86DC147BD12EBEDF6CE1E749C5B48314F512470A568C172C35CFA41 031E34586A89404CB5372D7B2C7A6D96F420D4D7C2D4C08184F4AF86B4536A90 9367598424112A7B05D7107B23695CBCD569002290599E0FF4EC5C852C31F5F3 9BD56BB840DC17DEEA579E7A7A9F764788D4E3774BD523D21267869224D68891 4523070E80A123B58F7B579866332FC38A41A5915EC06F2D14FBE4A6CAF59AEB 57E98D661637EBB885AA5D74AD429CCFF64E5149815E7350118E6385F4C74E0B 2EB474A6DED021D429F01C9B0634A09250C40E22B3BFE1B7246D18116D585F39 0E06E9B5F27A6CB77C8E9462189CB900CFEF08F798CAE15FBD94587F33816EE9 03FB2DA6826EB69D8C284AB9F7B00630D0420EB6E35E0E288BA25F5C2345C067 22412633898AF99C2FB232D1469025BF262B567F29A05F4816FE8EEF5F02BD79 06202F6A1E3E5D4B3C91BA8D5FF53D5136BF70E5FAEF441A7310CA83721711FC 39EE48BFB2FF287234B1A6102AF146B10A632A53AF97E11FFAC3A2A86BBAE3BD E0459ECF0305366078066F2CC628A3918E775E4236651B3D817AF1684B07A163 A0142D16F55D2FB5F2255A8813B8E54EF3E801E95A4A226AB8C0476AC5EDCAD6 9258ACB6F7C0CBDD298A0B816560622A1871FBE2FAEBFE697A8216A0D8FE30C6 B1BA6C3E975F78182743842E7F851064037394142AC91B2530FB1D511EB20F3F 79EDD8B7E1579D35F6E7B2883C47A46B6C1A458BECD6BE58AAFD834A7D82A553 2FE4E66878E4699856DEDE964F454638F768AEDB595A883E380408F558015FB5 8720954ECE2704AFAD4D62E8BB2657C4FA920D72248B3F762B2F12D125B796AA 1C4BD6B42D766EC1C9B2C7AA4B6A3474BF753742DE8AB76D0AB0DD9A20EE2DCA 0F34CB25995ED3183759CA83ABC32B8BDF0B06EF169252587971F7D37463BFA2 BE36B2E45559DD73DE7CBE29DE92B9BE6B9F8093F934BA311D81E18A8DA92FC3 312E3FAB43C53E803975981F0076EBB8F257C123908450661B6FA79E7ECE98F3 B0A94E0DE3A4DCC8E0FEC106CDEDAA297A75BF1E40F3C2419BF72A644F452E2F 9A8793810319885EB3AB23B1E80E8B62A889311355C73722C18E62711A7E6A16 A5B923408444B13F6522FECA9A60B067EE332B83E1A69CD835C9D69B5D8859D6 91F9276863D2E2E8193641E4239F4ED15E2C482C735BF5434BAA454EC2830C1F 7CF766DAC9E924F17F03093132627673BA3D99DC2DBFC89E5BA032C16D3C1C8D 78B3C464081044DB53C7A29E925F4157EEEE928C8E28EDA5F0A4BB6E0042D8AC 7595C350645118172D04FBF06B2C9A9F3603A54B57999E2960C993724CCD6A09 766BDF73F66E07FCA9BD09079CE8010E6CFECBE2E5DE1EA4E280AB78D5184C11 016385007CB5AC0BC95955A1E88EA1A1D8EFEA886007708BA063F556D9284D4D C764E75CECA51BEE3D35DFCEBF6175953D30FDAC00F23B1721A1DD577945B5E3 8176A21A649D907B5F63C71718ECF32ECCF1B26BF15AF694F1045CF98FC75278 E9782ACD3D83CBDBEE690D29B3176E745AAE436382D258CB22F3DEDD02E441FC 6A9931AC2F61156DE258DAAD5EDAD41E6C0DFC902173168BB4F51DFA7EA615C8 B0F92FDB118378CBAC3D56B6B9BB0883C0C14EAA67396AAA7987222A132B7959 44FC1E9D6DB6D549DFBEF8D2DD8C53DD3B66935FC239E74E2C440CCA13C068EB C4A3B69F499F573D076E2C92E24F2C69B806591B0807CD903E078683854963EE 5125C3640860CEF37BE186DB781475554BFE6C528A9633AD5772BD53244E24AB 42CA2D1123AF45FA257940CE611D83014DF04E60220E9AF27CB2A2247BBB004A F5722A5EF058FDC7DC2B6ED1406649DBAA58DF2ED3A91483D60F11C4A39BAF57 CB1E320A987B790672CDD3E3BEF4A67032244DED2FF4588B2072CDABFEB36009 9F4BCBEE16F811A44CEC77F8AE873C90C0F4C975E51014ECBD45A56A63F034C2 82212977023A132E5C88AAA826D841FDE9CBCE7A01E4B6F0EBDDB9A69EFEBD72 0B41EDA807CEDB791084047624BC11CE10B7A0A311272EFC9E013FA374D97EA5 F7998FD908748CA72D8CABFD0F01220C2114D3B462B22FB71A23B284B1CBC7D9 EA20BE71F8ACCED21F096009A14A7C7B51450BA51514707EB46B9FAAB31CFBEA E1DDA6F5D9AF0B6E7D05A1EEEEECD606427B0F2363D1B882B50140466B9D3CBD D00DB06DDD1BD4681E367DAA4B7C405C6281B67FFF794041738FC6A01D261CDD F6E0A330985F2CA782CBCC02B6F4EE5993434F656B91A51CC03B1D73FFA6629F 14F6075EBFD83B702D8844A96CFB5C14051595BC7DB2218156A6DEDA5C98CAD8 BEB5284D9D9F86406A8C1AE85857185991C360E5F44DEF352A1F301207BE94C2 9A3A11BA468FACB3FA2D683419C44EFDD7C8F1079659F3ABD89D7F168B1591E5 6105F9B3FA481BA953CD34CCFE73E427D3AFC46E5C58C2981198BA284DB8B37A 6647BEAA561799877DD6858FCA71CA6003F2961FAA529906673EA94D82D78116 4DAC81011FD175DA707C1E15D4B6FF19F8720A4E05E6E103E2DE880FA9C192BE C5ABE7C311C2ECCBCE8F9713DBA74AEC37A61C8F21F271B35F0F7C88B182525B A4183377597ACDA9A6E2F181725D427795B975BC4168A408D292CAA484BD1B8C 9DC62E737ABC805C8FCB7E96454DA032B601345570EAE0379BDA84BB6D15D780 42FA1E068A7D62F152B43B788513E13724666FAB4E2B4F04B0448194E46582CE 7389BAF0D1DD4435BAA6B82AC305C04686B89FD51197C721D941BD2893596024 1598E6C2BD84527EDA6FAB782033E4BB4F964FBACD96CAEC3F3CF89CBABF6B4D 4D3AD14A03D4BE931632BB03BC2B92842FAD51A19A756892D5B978DB695D0540 CC9D030C612E2B201D60D09F56332DD0BA1351EE62816C21A35C33DC11B37BE4 D2F164ACD836A5CA1553CBC733E3B159860454B17064B4E22D3764FF6293BC81 CFA3B2325C8E072857F6FF4ADAA8818247D431A28D3C5FDFBFB24A6CAA327AC1 0B3630C84ED9F0D33B8255A3CAA9C5A0C79F7BF6BA3B9801C3BD0B30AEF7CCA9 92F25E332EA97A7CC653C93D1497992D6B76363885B92ADE34C2A33E30A3B1A0 57E9C16D8CEC189565808D3FAC92973C71CDE74DE9D8781CCAF88747758014C4 5B62667D4D2CC5EBEBE77C5AD00C6A69D1819F5A786964501E077EB3BBEA52A4 57729AEDF35253F7E1D31F2DD1587BC15CCFC1B0CA930DA83E2031B099A38158 8D1849E7145AC74777A3C7136DEABB0C787E5A218309A65EC7D128147EDE3AE0 C0AC039B56F767A22555CFCC12DCBC7F5A5A3B4E86EF5A69EEA93DF0BAF2A3F3 7504F5C6A7A67388D2F9045BD755BEB7DFBC2EED679497EBEC808BE20FDCB5C7 B586463BBB898DECCCF7249E9047DA943FAF0718A2050FCFDF8A4C2029FBA674 EA64003AC03A847185936FC375CC67B3006EA681F61F640C3640A78D0C7FF521 D477981E23E5956BAF42252463FDBEC49BB560A9428D248B0C5250CFA2A49CD9 DBCEF73123C13BA382D3CF6A7B8A8CA3191D379A659F0E2C6E9CAFE9DA2AC074 F622E397A2F7C73347364AE249B11AE2C34AA7F0D27B5F35D548D5AD1228597D D16A478C901D3A34D870BA39F770885B7DE62298F0114752435050E99EA4E5E0 56B965EA185E8DF96B9FE97EE23DD45AADBFE02B427222B9FC99DA94FB2648B8 46BD30F881BAD3820DCA4D8093BA0FE70E03482CC063B751439125623FA7AE40 52DB2A380D89D5E37BF264CC73DA9A1540031587F481A0F146C6ED6F3F2957FA 19477F075ACF608CD94CE466C1FC3EDAEA3ED25C96FE89A7CBFE528A33C4E84D 465FE6FB031B48D904C5120D428D6B51F3232847CB0B7521E5CEA887FFC56F02 0882B3BB7F5B0B954E7078DE3E31D8AE65F9EA55F4C169DB7C35DB9645617AFE 078E03BF9A1BCE4E489AC9495A1E6CC7D1FFDCC03CEC1A32490186FE8B53B09B DBA7F0E23C8F5E5270D039B409D504203A458EEF12C035039A8AA12C719C0339 F766BE6275511D585F82E9D4AC9B5424312755C4B74383FD094BBB24817D6525 EE62456392E5DCAD0A0157A4A033E440AA014D5682606312F72248E13C43EC3F BBC9B4A2CF19A4AC6ED7F561EB13C3AB22FB3F3EF644B5B47DACE807262DE5C9 50578464845B950140ADD91D72D28470A5A5FB134EC52F4DBBB9C50A7523592B C5BAA056E46F8C004062298BEA010C1CF9F49DEAB58C4D2012E04E630F54C985 328DB2B6FEAC584308D71A9F5FD945A37EA13F3DEB1748320870057A362E70CD 50C269D32993CE9CD1E8CB35BC6F69E7574F37032219C6E1C960F36800BCE507 169855846959F2F55F4F45FC8EFFB021C0C7985D76C140E7C6842F37CFD0C445 1839AEA72A8CDC5B7032A9E021A334BA7CC9FD874959462454773F9390001C0C 2A23883262131F3520C531DB024C0AD69F3510316F719B1A2E34700E7F478F10 3108757F0497F1DD572D4809D495CDAB7F63CF9319E82564A74D04E908DF62CD 97DC70FD80A75CBF2252C2633EE21920C4096006B6F5005E949BD3832C532229 778AD9FCD0043D57005D46387A1FBD5183427D065010F5285F7D4CD4BC9C0FD1 5835764889CDDEF45B406BC6D58A796D354E352D037A1569A2758198972C45E1 E2E499E6412476E7B378DC015F3AC651D077D6A4FB13BBC00783B07D44AC6AAD F6F1AE355CA726FD9FF7E43DD77D3192B51B68585A30AA1CA4DF81DEA02DFFCE B395E659385B1981ED856572BA54A70ADD6A4B6FA80AD429543ADC2354631183 0CA6B05DC9C0D8FB18423F846ECC4E525989B77787D14D89EB5FF06652612474 ADEA7A1B4B3BE9607E33838C57FF78DC46F526093844B0983D99875360965185 890FF254BDA5441320F8DBFE406BE8A446B2BFC6879E3A0C35A9B16EB5ECF6F4 F2EADD879278916BA6DE59A65267338660293E0ACA341B6B9F2B3D0DAE9F49C1 232C21CF969955FA4D5016EB6E0FF23D01C3575A967B7C2F2915FF07FACED72F D9073CE7ED48AE79B67767CEB1706EDD4D22C0F641BD4391A671F5A0713E700D 10CB68E588006A31A061F9515090CBF63F3734F101206EE276A2828A07A4915C 077CC3EC2B405E52DD6BCEC8DF4292CC4A807FAC74A0EC50B27BE654642ADF22 DF510B6FF0E942C8B4084769E9CBF547F19AA22430DA145EE102DDE2AD216172 4D86D3786272E2296993A6D9F40503E59733B00B6C7ACFC0F679ADB3DC045285 C5125C4BE4140325114C5985353261834AA8C427459622321E7C11E6D7B27794 C50111E94E528B89EF1A10315C0FA30C5EA0A3A9CD2E12EC266EFAE29FEB4397 265E77D716F5D702D3E8BD60DFA15E6FF8D623802912A42F081C9086EBFCC33F 4FABBE1B2639884EA8EEC68B4FD7F16DFBF0DD3B9D0948916D2F1606C89D343C 33385639BD555A399B30C027E80564A3EEC0B785AF31FF49BCA15DE028497642 5EE3131F97C6E5AC3C9907BB7B6830E6BF94028E738A20F24109B8E4BF726484 85BE3E7BFED36A7C4B41B7E37F837FC5204E1DB8316490811BDD1D56574878A4 A2642DC44E2ABDCAA40C9A1368F9483708A8AF4D76AE276CE6E055900C5D924B 00CF8ED14203A8CA83E84CAA728B54E8A25CB1A39CED5355B699C1B652855107 EBAD3CE4E4640A2422AB980B7CF0A2C30EC596B6ECC302E2444ECF68AA397521 41BCBA1C806DE1A2F41B418FF4A7016567EC479ACEABC96D75C4D2CB63B745FC ED926442880213613F51CC4D3830259421935D912BF814A245ECE46CD603322A 1969795CEDC22A3CE04BB857723370FF70F5479CF4F34E952498DE49D0C25494 680158BFA26214879AE4E0A180CF568B88EAFEE8288945B40089D4C18F187D26 CC492063FBE38EDAA9D35779156BD42103E9C81BA63D8711A60FEB896F354C62 745C939E802FCAED6CF6389B8EAC8F7FE266B34C77C667A372787F7C76AAA13E CC89DDE3213B6DD3C8B4FF3C6FED75D508A665C027A77ECF265A34908892BB07 39387FEC38CE30EDEAA83D5EFCF66D945605CBCFC6AFAAED61B5B898FCDBFF0B 90DAD65366D26CF29D6C594D698B782B3EF4B2972736C76B8621487AD4199C68 C7094460162AC76C648DD6639D2373A8C691382257831C9975DE35E935056350 45F35708A4541FE9BD4A9F06B9C2D5FC7C219CCCCE64C94BA31857281F62142B C110671E62D6A1FE4EF4B76AB7BF41CDB035A366EB6FB7268CA2C0041EB09842 E5EF42BF6C6EF2C176979E8338F889B01AD1D77D4E5EF6EDDA9C9178BEDED195 03DE2C9BC90B6B3682F6BED6BAFF829ACBEB632368E3236B0EC792508D4C9F98 49A35476B8D757794AC4B4DF0DDA7D78A032CF67F094FCF22E8EEF5C392DDBDB CF679E647B6E292CD057030992A5C03CBEF25E4D30FE245D1221B31DC88F7C7F 0316728BE658FD6BF8A60FD42073CA6D123DF2A46C7E37EAAC4B7BC505726C04 B66C3760BB3AD1F1CDDDA87404354FCFDF973D1A1C7E4621FA3E825D80C6ED98 32536B8C2607CE39015105750D4B90CF2EA126EF9BD984F91C32A429C26C9575 FE8D7EAFF473A89A25DCD53664D34D0AC8D3FE75A1AC5E7D7B86914CCF381F84 0DEBF996B5E7425DC82CA73AE4285BAE05411CAF6FBB9734129DD9E3C6BAACC1 86E17C3985E359C713F1AFB88F00976B89B509C6D8FAE64E75056230A452D041 942CBB42F654F46F032C934D8CF514A2650B7DAF342E1497929B51CDDD797568 CFF6E5301222A720C7A5296B1650F38C3835D849537AC77531C65485AEC1355C A050D943F75C623A6E063026B44E9B770D850AD9B288071707A1FE5ADA89C2B6 A64B410FFB1C89E02A911FC47A1CB5DE7263A03BD1C7780535CFB1702CF3B9D5 69F94F087997A42EBBECC58F2CCCB614F332CFF6B83D411B1B30CC4C22BC58CF 49496B3824EA34054BEF8E383066610B7388F1F4A4A978CC615ECF9DC25D759A DF4660ED87DBAE6E5620DF478B702D2B77D484B45D1523A82D98BDBCB3DE2CC7 C45133874FEC88DB8E59E40B150D677AE002A05E00537610B8F2C769B5779363 80125309A9CA34D52066B3418FDA9D4EE5BEBD4CB94FC622B160945F93BAF802 B231BDC0A11FD607C2A5A1DF6EAEB0D6B26A1359F0A2833FF3AA5DC388F63C13 F713741090C347A8E9D359812675475A771F120E4A9DDE09852D72A76DC49637 FC83D558F5A15D8F695A917A6C274C0BB50D14553DF3F726195FAABB07B2426D A9F55237BF04A0CB98AC36B12445F274061839949E5B2F41D4BFC6842322950F 23B4897696BB1973CDDFCC97DE5CC9BB1FE6A4DE6D04A75A4086C372920E12BF 04694F39C1F8ECE526BB3BDDCDF3B22BAFBA80E9CAC1636C779B0411EE6E9E34 9724195D4BFA36EA64A774A018019ED9A7775BE2B18456BE599E232949773BB5 670A99A1507BF45411CB9EB2888753AE2894826D8D33A66E59C951A080D96ACE 7A1A7F3C0AC79E414BFC06055E7A432E9C91DDABBD520E33D63F369F41E469CC 13EF9F71A261F5D8A4B311A0776CFD28727248DF1190C5F37D9FA62559DA74FB 69508979AD6C48DA85539CDFDD472CCB6D2C5E91C57CF4BC499DDD860B1FAF6E 06EA7A57C445ECA44AA6FF896F84BB8FE81BBCCB954021B97F61A1459470209F 5548B60F41B50531B1C2CBB35B44C3F7CB30B474D66C31A6F4DCA88E6D27BB8C 052116174250679B21ED88C8CAE75BB6465560D6D514EEC707A956470B0A5260 9D27FB84F2096805DBCA65B1C140450B2E06CFFA117F502DD01FE7695B402EB2 3141458A7B926ABD67AD7CE29DC574EB6F62692BCDDAAE2C69914685EF74C132 C154C498CBFD6CD8398632430E5F2E97573BE0207E659D1C57649095ECA8B3B8 7BF2A2F4B970A594F67A0960178E34DE258726708ABD61F304D8864B70212EE4 8A44BC304A42BD1B393D32036925AC3B98AB984343F55BFBF0FD4BD8DF4193F4 40CAB3EDBE27207ECB820A1B64285FD3C40E14732957533487AF31BAE0D2703B 1B0CDB29D74FE2D926D2599A1BED99B5522AD939AF6051584F7C66E4F07CD515 F1485F401CE18E37E72DAD1C878ADAC83529C1999543F549EB516868DCA7BDEF 91E281755AAA1C966BF5E51B42C692846D56BD7D4F2C6ED46F0CB8C50AB13846 A65A7E0162DB2636D43138E606E156159C4826F636B02CB7903FA3D4E08C730F 9CB4386A259DB5B3A4133A59E6B20DF3DA4A10C2410FD9322B0FE22096DEBDA4 32EB544D4E35D7D5352E6A7A45DF45DC2B03B77FFDA7AEF233857FD6DB5579D6 2E057E4648B8C2FD96FFDA88A1B15583A1445D9E6BCF6AC56E370F99F4F0BC11 13EAC22939E904EF134D2709B24EFDB628E98E45C68FD25B58AED6F9D87DD40B 684044BF06CCCCAA8600C35F59F2BC060BDB6B765CC8F2C763A09834F001F667 078E87DC080D69B423C1FD121DD2F6315F6E19044BD9896B5B4CC134EC2CB8E4 796682EEC87D6FB40D6B10D5211058BAB89FCA487C98E84E9EBEAE3AACDB1C76 195BFE12EC3C4B9D563E628CAF2BAA4A76CA7C6044225DAE0CB516F5168487EE ABCEA001049A981FB6AD80AF23AAFB42678B933D519B75788C91C5B507062671 5218BBB204AFE6ACBE0534F5316D006B9FA65EAC82C3E962F86A44122F7AE4CA 1A1ACBF1ED6F7C2F0B4F119FFDDBF4AE0625C5872986E77E402A9AC3EFE1DA12 B301F8FDA173D08F93F5FDB01B436BEEA2849F126828F99844B861C6178A4D6D DC0944BF16BD915AD610FDC6892551E23590A61DEE66572DF28F638F55CDCED1 790BF457E44FC616C476E24A4FB28E8D45DCB483E89FD9EAF6C4097420D2FB4B CE9A7E39077D5ADA25ED554223950CD2F915CECDB7384013FC45CAA26FCC42AF 3C6CBC32E9F8CC535814823EE3B872E76894759181A51853D4389915C684E081 56EA4A7067E6DB218C3C0332CB82502E3763D4A2118EBA8F93EBE38E784BFBA6 0FC22E964C376A870FCBA2D9D44EA3B256F696A14C5213F1326E25D9DD375E51 F982F79F3A22DB3449CAE509327EEB9BB4431AE3C70DB1EFF4D014A03B3020BA D563DFE8582D76D0553BDF3DDFC8977BBD74745F6063758F10FC4FEE11F27509 284C6D167DF040A3E36B5CC9A1FDD3EA35A4CD8AE3EB41883C79E8CD3F11E9BB 808892EDA42936702EDA7F6B5C4942AA65FF701A07F96262867A059A89968166 E8BD52B04504EEE4AC16620F045914A381FD9F5B9BC43D2299CD114F13AC36E5 696DCE73225CF0DCED51583BACF621D19043B603EA8F8648524E37CA0166F483 EA0AEC8C396B7C996F8FD91BD40F0726577256CB4B49394E81D294A3866A15FC 21E4BF150FE0C98AF48D4C46340EF03721F9572C016CB5A4E04E8361875DC724 0DB0B038E6F2EE189C4386DFF0D79C6F618BE34E672DABFE5A4AB9B78D833E48 39BC4C0595F35371070EF3C60F3A9AF7FC9EA24EEA9BDDAC5C8AD0B4438B3928 429EBF27565DD0AE507EE90B797DB5194DAE23D250EB573F5AEBA015E02294BC 4098913C0B449AD140D6326BFD00F8E2C4FDFF18EAD88369A669CC0B2DC0996C 25186219BC22727287F62A309BEB95472A3541016C80EF538F4779EBC8CABA17 BA36E19DA91582B9DD4D9ACD9FBEFA18ED6D2C5C9017CEF2644DAD8047C2DADF 8C34E778AAFAC415845D0F68C958F0BAB66C189FBF87A418F0DE9F7A4145383B F2253B5B7A44310A6B9DD8301C4D533FB3D3D243F4521A778E7E8259C7CE6BA2 7BAC9B8C16DE7882759A3EEF6E486C128A174649898D744382F2F42B2C5B8C39 4CE88CB8D528BEC7DDD64B46301643C1FF6933137729AA5FA480B6049864054D 8830F9316861F55A1F401C28BCCBD542E628858D156B1784A842F9477FB5BDB3 83634E74 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMTT9 %!PS-AdobeFont-1.0: CMTT9 003.002 %%Title: CMTT9 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMTT9. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMTT9 known{/CMTT9 findfont dup/UniqueID known{dup /UniqueID get 5000831 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMTT9 def /FontBBox {-6 -233 542 698 }readonly def /UniqueID 5000831 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT9.) readonly def /FullName (CMTT9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 56 /eight put dup 57 /nine put dup 59 /semicolon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 70 /F put dup 71 /G put dup 73 /I put dup 76 /L put dup 78 /N put dup 80 /P put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 95 /underscore put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E6BABDA4215500A0 42D1A3D0D02C0C98BB1D6ED0B7791274C38B038FC7921FF1FB8FAE7258C09259 4B8E1BD9EDCEDE9ADAD9BD9598EEA9691589649A9A21539161E374075BEE3457 689F308A4A7AC9F2FE4B301A6C36B0442FB92E3B002623493DC087800B5A0521 0DB96A23175AC584DE166F59142779F26FEE9783E28DE49FC3A8D6583EE63FBA 610DA773CA18ACE6F64A4867A1A7817120ABF9DE4D17782866E6CB6B65A9F6D8 3667C8D3E61E5356E35343FDD4C6436DF73934470916CB5F0ECEA6BFF092E735 C7C355B56189D1DD5715EC97E50145FFC17BB1497315A9585D713A7A6DFC7933 995468EFD0F59E3C15865B87925A3F2930E20D5A35970E2C44F1629FA16E00EE EE21EFC50D49F5BC02300D0A7BB85E649CB4E2E828C8B1C5469463013E71D723 2CB11BCBAC191AC751A2AF7FC228395CE9472DC1809052012AEC2CD66695DAF0 4CA04234F0187F4116C93F59A7F1F8123DE87F111853B785A20CA8B49B3B0CEC B11AD345E1A11578D2EFEB0536D125237086CC8CD9F34A5137AC5DDFD8746014 D74AAE8239B81ACF65F379CF2153B06A238A2D767F294CAE0D79228F0B7D45CE 510AC9657A1776202FEF42F96D476E7DF407786AEA12DEA0013D3B4C5D0640F5 BC5BB72C34066270399CE595827175B23B25072723BD24E07F6BCD9EF0175DEF 93714BAA53960F81103CFB731CED4A267B53727BCA3C97B0BA5004055D4EF0EC F725658E53AC86E4061B489AD4154915C3981B3B703E1E2A8D390CCECCA99385 45EBE35441B062D7D12DAB2B31569387187D74A4043FD71F1C6D352EAE0F6757 4345FBFB6DB15CAE47CAC4BAE47AECAE5FF5EC19057DCEFA1B23F47364ABDF47 088A7C6A2AE26B10459B6D41CB69182FD1472F326CE3A15B59255D1DE3B616D8 9D1F12561038839781E657C896B8C58A32DF5AEA23732A0966D96C68C988ED7A 09B7E2C8F9F3D0D56879764781566299A4EDD3588BDF70E3D924D25074F30988 E35BDD827AE4D0B4A06F55A9976BF0DB3C0B1D09CD08E8CB168B50617691638C 0EC1A791C228177D4FFB021EC3DF5082CA3487AD2EFC8DE9466A690ADDB4C52A FE2A6DB4CC275CD33D9136E735279FBB2008D59E667905EBB04326EC33C98B2C 94744B7F540D86E90DED64572ECF1EAD3A58EC101642B245A9C7232DC8FB8741 03F97883BB32FB955C22F878FA0FD114451A3B3859B0B5537AFAB73AEC7DB2BF 409E1FB41D473714F6BEA73CB085139879FA31710E01915C2938C37BAD6D7D71 45B897E00857D3931A489EAC7B42BCE4E65F73F67FE027CE482DC47598ABCB95 39E98DA8ECA3E23F0799D5963ABA6E2984DEACBE7B46B40ADC6213E0F4D08971 58F68C946C748E4B4217CBA2391BE2086C9758F4E32C9B6413E48D84D33A6E85 84747029C0A9C9B92841D217A902BA8EB333999D62FDA9F82BFC8ED11F67988A 0CAE42182E414A9766AFFF4B046A09D476F8E3F15A8C7829BEE982D8350BDF5F F215F2BBBF68D4B567BAB798B9604C79306C475926E9FEC0F07A99F43473C6FD B15AC29C3D07FEBAD1BAFF75AAF2FBE94F104F1DBF838044FAD94B661B06AECD D9AEBD02B60CA4546DD6B5B5C1A3833ED07845671CEFCA8955CE0DE5DB8FC93B 3306683CBFB8E5B79A863DE78D455DE9D592043C2686F88A43140F8B9F3B553B 7047420E93E753829F8D47AC7621CFE3626F271E31F0019CC02D0B57F67BB47D 8CFB63E902EA3231C00EC66EEC0D30FE8394558BD3535C888C4CEFC6EB72E737 712ADC6300162D5D79BEE0CA1F6E4127A0BC90656C01692F6D82C85550AFC97E C2693E379160FDB9636FA41AE9C75B7F6643B05971C6D67CE30971D590FC07B3 E0B36B4D1C7F25110B5DA2130D574FA292B47322975A2BADBDB39AAE69BDDBDA A880F9AAB580117708C79204DFFDC08BF4A48919B5C22228845CE8C3109E93AC 2479E523B8A1C12A6E541118F121DC6B4EAED83491A03192D5C3A2A45D1A2467 757E7B377C635CF5CAE11A7CB49D49F3A1BB2286090B5F0E4F89869D1771D50C 54B5C5E091E3048A2C194F0ED00DD64FB95BAC6FA9D61ECD093ED416DA3A4981 DB07CFF17C4F55C62DF628EBFF06FAC3F3D3F91C30EBB34052BE1A08F5EDA4B9 08977197950A282B84E21D43C64BE3AE4BCE22C70E7D392DE09D89B7F23351AD 6AD37225C12BA79EC9951F5DA1E505DB26200190ADE0E549305B7530CB86EFD2 A896F13A97E51754F70B609CB4511CEFC38BA579C071E9510A49982389980DC5 336D6C4A2DB100DFEC4055C7AA9C55880F94FBEA9EB280BEF66CB8E1E38A359D E5AFB12B540CD599085ADDA7FC2C72E7C873015773FFEECA2C596B75BC39A3EB 3C43FA2E53C0D7993042F3D652BCC483E48B7F6C94C3FF6D38E276086A6AE67A E5A571B9C72E0D7824E0BC2ADF51A393B9E334649F786EC1923C854382B89627 1B9E701AE5A6C42E672B2C6A33C8BBCA8F69B9061E787D6B92183F20CF4C3903 FF5417427B84798C82BE28D2C81624E3920CA61EC9EADB364B5A6E50E49A1A72 A9A090A1FCD84814B8B2708AD787D2B5015DA1305874F58C5EB62F843685FCB6 465FCA80176CAB2B2FE65E0A270BCE1E3DB97564BEDFAE5CA44395A8DF4505C0 3E103CC3B914359B2870DA6CD30382EAE8949131CFE31E9E75C3E47A3834BB32 CF183D4A8B9001710D0A11390C9DAD116196568591D38C2AF4ADD852F31494EF 573462759A35415900360882739789D6B89ACEFA251C5ED90ED704DD7C3C80CA 9F6CDED69537D201D520C99E69EEAD5D3C0EB84C166660B3C190166D93EDFE6D 15BCB6DC5CDCA825E48D33845CC2FB15291AAB823F25CF8BB0A1EAED8BEC524D D9CA016027141FAC9D35B64FB9C224552F29EF6B32497254E319090E698FD8A5 15491CDFE1B988C79A0E3B9D01E12FF084E9FA86CCAE02A3EE6F2917B61A2CC1 64B8CAF309D1AB48A34227A7729DFF99CB6EC282E3FAEDD2673779AA7E4C1789 D93FDC37FE95F087C5F88F53D30A2DA9C913BF205FC6BDD060A40184F4AAEB3C D080D63B89CA3DEFF310D09EF0A83F3914BD5B7932980ECE139EF0313C20B4C8 576EE0FE3F28FAF4D3CE7CD0890BC824A85B8EF4636BDF1EF1BB519F93D36540 ED09FAF93FD71992CA2CE2E83F5355162ECEB32AD218092F45D5A61A44E67135 EF0453589CECDC6962D0E8DA7E7567603BAF50B2C8F1CA65EA5320984E7D69AC 9A7D3D7F92565D79E8C9DD2D92CCA7DE9CD058545E9F98AA47904D70E1897099 3C4C852B3BA131DDD348433C336BDF5FBDFB62120DDEAEB3255E3207B0C84A0A 1ECF9EC869DB9BFA3693B03FCB27C5A5D3CDD62630DEDE91B4DD5B9784BF0BDD FC6EEC3FA7ACA9E15FAE47CDD9B7FCD2BF0EFA10716F08C0AF25FF67CB6F9598 C607D2FCA452417D2C69DC808A9441A66492394C3450BD30632AE739EAD654BA 4343459CA36B6D5B2C12C39495952F2EF93D82C73E33236785A79609E260C4E0 CF3A3C950DE71DDC3939D42DB1CB1CA917CEAD56979A70F8F3B207C805319FA7 3C000AE2B21D711A6D78C7BFB901334DC06F59EAB6D94B507734C27971F8458D D00193645AB92FB8FE163D5C51AE4F40BDB4F2C51691E76EE0636F071F37AAA9 BA78BD12459CA499210EB0CE2F8BD317387797C33F5933AE7A6264DA06B4A6A6 1188326147A16B205D1F965872DED7D8EDB3294FAD2FCDF0D423329E9CCF879D 4E0B966D509F45527F7609DD09694D286F6FF7535EF8971B7DFBAF608A19D442 C133207EB1152ABBD11C455D0977F66A9B73E51381D1CA4B66E87C0C7175A63D 80C699A052F00C41DAEF42E7A40E07B1B14107AB0787E24E17C1462960E3C54C AE73BE4924464FB177EC62F116B2822842541543EFF7ABDDEE197D6BD8F8D4E6 59175D8C5957550B70BE775AD52FFF6E7C00DA7CDC16E1DF7446BB5D8FD82647 3E9F87D5EA365C82A2D991321ECB14A9E3AEADC5A56665DF7072D6DAE402BCB6 14D92B17F9E063E4E9D8D239C91F5C7C0BCD2FBD936C9D4A0B57659420343B59 B395BBD1AB5B6003F653699D57E7581F9813CC98D4F072FB78899D6DECC42D34 F2787EDEA64058B46C4BFAA2BB96E9BE5CACE8D91E4C080ADFC0FA0D4A29C6B8 54FEA9E11DBCF53D9CA40A21AE5076451EDAB3593E56B6D453DC8EAB8C78B588 34D4C4F36861B5649BC1E9F3091E704BDA7613ED45C911DFECA74EEA05165191 825F95A947CAF382FBAF01F3B8B041ACCDF39718D7DC5BA6CA12BB20EEE96439 BF2E2628AA3BD2C91998E6247A690FCB0CC95F286F427345CC4F1115BA3A6E54 4743355F2CC991CBDFF5725902C1F5A6DEFDC8638A26EA456C33C27773D6214F 66536CD2E44FD253531732D5A8C44B336B1BB47B0477350EB8CF74889B93402E 2356A9CAAFCA562315D8E0B3F42F08932CB87BA2499A875AFA08D11DA73B38AF F46D03B7F639A8D7BF88CF07FFF4E91716DCCE6E2CCAB60A64D5E40EFD8B336A 1BFCC4CB04F49DE1FBDE7AA5B2092A6EDBD913D161A3271AB6411622D0E14416 37F81E0102F5B0F2F9A2B27819E4BACD7C50E29D6291AE5B0973C657761545A6 741729620EF2BF1046B3913399C10982EE5F4142CF461EA31042E432CC79A1A1 39C607D22E45A6DEC008CB4BF6007CDE9DD5802B49A62C8E02A6D448B64177CC 887AD71D171B99E7ABE2085B37D90B3BD8513995D9A57F53184DA474F6DB5E49 B73E04CC214EA5398DF7D7541F94E623E8687B511640457A48A68E9D9D6584CD 15B57CC044D8091C771D175F2EEDD411099BC8F7B4317DC503BB5E405AEEB526 5E6E1B1F2705275D274E012A98F66075CEB90AFC648B964DDC0E9C4AE7B24CE1 80B051022E5781A533A21DCFB97893847D685137EAD85BA708A7E118C72FA839 A9E460B5D17365A0AF1F53A98319FB64A5819B087F554BC056C4BE44113A5404 BEF759F890C1CA5E7AE156F4F8106FDB4F8DFCCC640976983EADB30976344048 2A86D7B2AF4A01CA736B98D52ACE392AD4BECE7E61C710B08B66F01857CA460B B8376E257113E10F6DEDF14CE2A4E6A99ECBCD302C36CADB713D849EAE9EB598 F29DC98531D793B79F83091F9B136809E006F34E423D528CC4309AFFB3EEB47B 9A9DE4D5B25CE953345C326BCBE2B4912641780637783084D3D12693F8135483 CBB0AC4EE0B5610D7CEB7DF205830BDB9BB404DC1B28FB0824CC187B26C19A91 DA0025EC739BF3993700101D042DED86D67F5FB87912CFC51AA7DF53F2162D62 6314A2CE13810D0B8D81F45771391A236422CFA0F35F7A0CDF14ACB2724AA57B 7C2C28D53029B1146558610E0CFBBF72A85AB9BA308F846228F299F13F68E8F7 D963B2EE9EF7D4C21690632B640BDDAD0556EFA4EFBF035F13377ABB5CBC280B 9E0C12AACB153C93351E5BA95A7D149010E204950A59C7FC6581D9703468C1E9 EFAE37E7E6ACB892B3F8D1248D9A4A72F642FECC5E0B25C15EEB921EDDE84D12 0E524FE6133C4921FF4921242392C12FBE69744D53739F7E849C1B96C4020AB2 1FF10DEA608F111749E2FBD8DBCB17F353DCB3075B4F4B8186963EFE95A76A10 85AA5BB6DB4095291974221829A8E436680F4860E01C3843BE5BB3101D0869C0 EFCE08D187BC04F58C7A450A59093680A0F09E8E3F12DF5223E7EAFEFA01978F D8354753A68022CC92C71F2CA732DADAA8A466D4AAE5999B0DC077715671F518 E6277741F44AE798EE50DF44CCF71FCF8BC71F76374005FEBC4883C6EDA854B0 88C0C2B476709AA809ECE41AE786DB1A32B3FBBCC14921673578D3514C8CA842 E1FF90BE33F7B93ADF6BFB8B1AFBBD080783BEF056A6BFAEF676F7BF9F2DFCC8 01D255A9F0391951210D60D4D4DCA93AA858B38C0D7B8FD740D5FC6F277C2A68 54CC2DE1F40B6347201FCA2A0A91822708D820CE645C3E4E5A09FE25721AB33A 97871ED448F38FC5A349D81F402B34461D840D5768BFC6849439AB6115104F78 B87115B1DAE12542EA898F86ACE247709817850B067F537E6137196101D46DD2 D842EA03EF4501E34074E8458E638ACC4EB349A7430AB035BEF2DD4CE00554F9 18F9FE32A55AC1E7E50D64AAFDA278D77A7149C59DC5B1E3064A4B281A54C9CE A5EA94ABEAE4C6D5674C208ABC72563976487136AF2E21F835BEFD232D7F0D13 1D19932367F51D5379934DA7F1635AC51EE5CEBFA63D4D32F018DEF13624EE62 31DAE68A08DBE3B4FDAAFC75291C8C6CC7A657E3C7453C7D1461A36E88E633D5 408253B673AD87A9FB2D0F56DF1305916D14D5DD62051E27BCE09CEE9A1F14AF 1D7164BA5FB6E6EC8D38750F7E28BE330909F303ECDEE692E347DE13C8C2F82E 29C8BE6EFD76546F362A12A1C2DC12389EA95ACB4DCBE95620F0C193EAD91B33 BAAC5801AE827B9AB3FCE5D11D1D7854F8FA8A31670119CC0CA98628F801838B AAC7EF90AC5466BE69CE3E3CD9951A5EB9AC08014285422F6DA6F6E221BB30F8 0042A11F2E4B765BB0D142AD52F4D85785EA71B2E1CE20728B9E9306CE93268D 99B822A5AB5232EC7E26EE1160850AD3905864A01357F22722B6A54D4EBE58CE 480EAD9FBF068EE965AC4B5FD2FA8CCB91ECFC6E90B9C49268CA0B0FDAD23ADC D5A74B41149BB08454054C451AD0DA4CCF8B60F2EBD061AA03A011D548B6B481 FAB00AF9225BB5463F27FD67333FB51F8664536267E95CFAA0BE3BC1B8F889CB 587A3A4FA2B45864F07E11372C9507A625C0030EF7030A0B4D931BCC48F6DD51 A4D1F63FDC4B59C1CB18E6242E9F4B4B8AD9755B870FE60D640181FB7EB8120C C56F51DC8C47FCC6318C2145EDCBEFA7BC4253315BA67FD2B3D4AF6A9F3F229C AB75B592EADE15B1FB5FDBA1C0F786BD21A51506B7A2E42C2D086BA6F84D1B3D AC7531545F0B01346831FF36A52CAC1E390F99AEDC265B44B0FC9C581BBA6BE4 48B723811EBCAEA5FEFAEA7E5B987F2C7B3E9A65D2D14A7B74F099401C57E367 385352D0776D2A908F7A5A2E4D4160946C5591397877025C8C387CA413EFED56 8B142E8341E349DB4DBA422A4FEE56A573972A0C66590175158E48850A9F7F38 4B95726787B8F969FDBC97491CC81CABC976CD00A27D1DFCA7CF467A956C1C6C 839817AEF8794B6151FAE9261119DD5DB787DC9D3B420FD325ED6599FACADE0C 320D54C2E0D296537E22C1783670A9D9BECAEC63853EC2F05A990260DC189D63 7CCC0BDDF2CF7585071ABAC14630666737041194D0777EA4292AE60BD7F7100E DB568C90F0D899EA006CA423CFFD6EC70A5D3D8AC43C747DBAD3B02219E47D8D DE030631F4678C357A58ECC52782B31B50CFD44EC33F41585E51B27E3997D33F 461BEF897220AEC80007F13C5A1EE3A0430CA899047DF944831F8B010A7DE74A BFD26001472DC00CDC9F17CC435F61ADAD4E9AE062ED477FC621FDDF9242C449 1BB3F77FDD1519A251B663A693D84B42BF0962F537757F38CE5C5D56B98AB10A 3B70C8AE8D52DCAFCEC22E7B09D3C4EFDA1841C74CA975E4F8294F7BDC796500 0ABE197ED3737A65F7BAE601C91DB3983EAE11DA3EA18ABBBA3650DC361C2E77 EF9F97618B0C337A906FF39926D2B0B7883ABBA650816C4C6B34EEA836994EEA AFEDDE56E0099D0E09EB88EB093544B9BF4871200746A0409C475FC4232A38D8 F3105B0FF44E4F132378DD12D9E796412FD0F9478322215E9F59E69396C35AC4 097C4995B60BF4D8B3AFD0A002B3A6E4FA114131410D5658999B86DFDD3005F3 AED1FA8F077AD1F27EA249221585703F20FB70E37A26C6C3F2E101693C94612B 65BF89F37AA3C10A40EE8E49915F1A1B95D2193D8003DECEF9D76FDAA33B1AA9 CEDCB21C2A3B05747FB3ABDBD904B66EEC60CED2867442F5FE445587EB8C6D14 87A6B1B4871A8371A7ECA6A159EAB295B167CC35ADEB8512FD0C237421773BE8 A081FB687F9C5D676F2944DE6E6B639C37E8E49BD4A6F0903E0C31EAFC4C7ED2 C3C67E71D8BE2B8D5784E8A6F19A9A8929DF9833440E160945274682F435DFAC 575048CC768BB8F13AA21C6B125E6073611BE138AE06D13E62E7EDE3D0239474 E040B3E446165FFE60E20B75D2A5F9EE021B22256621C290A8F3342F0347B8EC CFA6AD68D47C05268EE3AC8683F4840D736EAB585C6284018DC94FC103B4A882 ADAEFB625EA966F3877B3FFEA518B809A4BD1971E9D94F0AEA63053FD293D3DA B47CDAB1DDC5F7A844B1759783E1089845046259EA790949458926207716EF51 381D6555E2316CF6935A994E4BAA942280A326B0C4C9431C90C129DC0FDEF43E EB277B6DBF695BA2EC66029AED7BA881E26F47164E0633BC83FC5A704E0DDD23 370DB203C7A17BA7BFD43606EC7A3723643608298A8AF697A1DA2CC7CF9661C3 88E168B10C77221671642505DEA32A9A89119372E17E4F9354DC900685CE8F84 7BC76BCF8F50BB0160B0FB09B179461FF36D553606A2B18792FBE17540B5F291 BD45C7FF1D285C297B535FD974442D38AF0964F257A8CD77FB77668C3E154221 C9134548C6FD484A1450DDE4408DB4A38153E4AF60C79EB6F5B8100100CF26A5 61B83E0E369EF14E6813ED16371020188CA061153A631D123BEAE2E4475F4800 E25F85C4358EC7922969783DA11F6DA2C03C07696D06D5553179269013DA75FD 3EF65FC0C5C43B4EB868AFEDA0B31EA04F08A8A358281F560D0C4BCE4C03E9B0 2950763DFFB05EF35F5A7ADC7BAD25C6E72314A79107EB92680F992EC29C3E1B D9981244A2BECB5354D18730FCD42CCC82F27040419C8075DAFE5B6FBB2D3C1A 2358DC1BF344AA344B15455D7FECCE7412C3928B468F5BFAC95B86893503924E 95483C12C3B352BC7DD6961E31BBC725BF5C17C51182CE9941FCAE2FD7C76CA0 629AE014D25D83EB330227D1C724DA3BCEA0C965EBB26530A66AB919502E1767 67571EDF9F37292F7E8185DE98F13B4EA7FA22C79AD824FDF1BD82527CA75CD1 CBFBF980F06F2F0816A45F7D343CF1F2F897CD648B09D217496E3C3AB97D7124 C992800768189528FF8515DDD4F93D35D5C3C519C4EF3931244134EF3A6DE4CE 77994A79B45456F7C65D9BAC5E7DAF461B3397312631E6DEAAFE7F2D40ED99B8 0F6647F3855FCD36D89811D25FDA43865C528C7E83CEF414773C21E2ADBA3119 1B930CEB9DEA5B599AE95D199C2002F6B0968B5A97CFAD4405C2D8DAC3C32B97 CB8FB352BCC2A3D1269D9392319563077AA4C7A578D33A25D1A8575F0472F365 2A98091BBFCCB1E999C21B775DA61AE0A0AC86F829393F4523DD1A060A0D29AC 436AF379E4D92597B0ED1481C24F192EB716E1A85022518DABF9361A084C1199 D2CDFE70994885C0A679F90D8BE8D2C8ACEE9A331928C26E6C50101D600D0B7B 6F9CF517AEC9EED18E9D42AFB1682C040A75AA4EB90D69AC4293FF3DDD3543B5 5BC4EF719F639294B55EF1F3154DA63D0410786B55E01C437014A35B549D2651 E6178280CD7256753719C8375CDE80642BCE846EFEDA8C48F926DD9EAB06D175 6D8F07687C36DFEFC773D549256F91CBBF6422C03CFA8DB3E52BE6D906EC3449 2C784E430B24A0DACA2345CA75F38488E820BA0BDF5B2DA2DC5A6B86BDA693E3 9EFF6CFE980237864D48A6639DCBA57C28A62D1CD8B6501653677A14A9826B14 36BE2A6C9E27575C98F550D97A445CA9E25F8D99AA97EBC97385D0FD325D2A06 3155A63115D1A8E4F90028DDE737261ED592CB85AC4DFF30F6C7393372E3739A 38368ED2F0F66FBD7DE1D976BA9A90F152D62DD459120F06588D6743F2BD69C2 D993AD4E4BF9FB26EF8B1A78B65851952864C17B35C57A64C60E1E478DAE3067 681E425D0B4F83B82AAB0456F17E74232298C310C4105177F4DDEF25920A2459 F3388A661730D73FFC13BF85ED880D818E63C302B154C71F7A060CCFCDF4FEAF 5EE9CA55D761F9452F0DDA1AF1B2C665D3AE876075EE08763A61D276383392BD 66838C90A91A6EC7C5502664015AA2F5102192BD8BE4532873130538E506B7AB 0228459C4AF8994205F8C350CFEC4A4B4FAC737FE9F70BAAE137677E064A95E5 EA4C4E8341B91BBC5F51B326EE05CE2DB03172CAF4118D975487767801EE08AF 9A764A3B1DDB8C6A235315921B0FF66C8C7E82515D3FB1DC1D65AD7246A58009 C649AF9F73B840415556ED7C5513B0E7960D23D8A7D0D767B6E29FF11A11BFDE 30E58B820DC3E24C1184B233F497FD440C8BD547C63FC845DFA0EF2649AC56A6 7691D2498A6A28B5534B2D4AE1EFF8FAFB92B767012B7E564065CF286A7FE540 99B2A9CDC326AE91D68E756CF7654FD2ABC1D34FF5809307F127049A5DDBA751 7248AE047164464A6EAC1002A087BE6A166AA5CB21A16BED0E66969B6E260E93 7539F666365A4087B1A8A06EED734D75078AF1FA54D534573BBA75D1A8D38F3D 3747BBF4584CFD6155E8541FF67E3ED5C3BAD2ACBC2ED4ABE15BAAC28F26727F 48E19DDB47766A04C4A343144EB8B3B98E36432392D7FB86C468656F0AF0F7B7 C6B8F00707BD6A084271C415444799A7428EB4F50CD9E93DCBB247827309D680 812D89AA07B7009236E7D86766D26C9578E5217E3D15DAEAA6D84886B06D9B71 27DFFA9ABFF8C8F481F092ABBE211E54731D67BB0D41A68C3216D4CCF5C8AD4A E3FEDC73EB6B38D48920E23ACE48F1480661DFB533FDAE34017C1D95A1840BAE 243717712D29C0D9FEB6DF11191E7F398499B111BC9574AF45A8F3EB28D1B26C CF8DA368BB62A396DDEBEA7B7A61B0975AC851B84BF47BAD147D8A12C7950E66 C80306147DB5B461CE0774DA3C3A9B517A3085049242AED70EA59FABA7030EFE A92540AE5BE3FBC771F217C12E5778E2D4934BD03310565DACDCD38822D91088 C87EFDF220BB2BA003FD1ED4979938F6AFFFC6409AC427BB70DD7F3815A360D7 693611189A7EF21A26AE0A45AD3D60596765EDBE4A9DD63E352F64EAB6D09C6D 0D8E64FAC2B737FF19C4E2DDF18E4C6F773B125491BA8CBBAD6F7E06862AA9C8 576251DDAB170B2C30C030979EBCCBC4FBE708BB29D311ADA43C40ED284A2E57 75DE0367B0DCFC1B73A408D84126CB307A8A5B3A9365E78D6EBB8F469A65A014 B122B2F45268B0BA922565CC644CE5354199570608066EBD7C74B0F814C2EDE2 BC4407B298E2CE2B5BBAE960653BD1F14AC473BFF51D308358C52E24FA1D1337 CAF8551337B5B334A4220C051DC65BFF79B84CD7CC7795A8F17758A8E69FA1C5 ADD252E51A799A731CC2FBA41337F38CF98180ACBD62A41FF2D5E93FAD7D3440 256182F22FBE4745A6FA267E9E2D56043AC00D867A4C590ACF3859D9EE0F3D7C 6F5A0239F5CACAABB76C543971CBF8B7F8742D96443FE576DD5ED96AC7E5E22D DB231E0E8333769BF9018622DD3F3655C23D5955209383A4EC27CF02F96D1E16 BB661D1C897AE76116540D641811FE7C8088D1BC4A87FAD5B49C653D9E1BFDC0 2B94EC59856A4633236675B08F4076A9B8525B4CAEDCF6318CD9DFFDDCD49548 D30716319D38122D1B1B40D300F7CC7ED6ED6AF674437852056E6C21C46E51C9 949F064D76D996EBC511A2EF1BFF7EE6C605DC773CD93FF562260792EC185707 C235AB646AE6A4CDBA4625ECB721074897A51500083D2A479BDA80089DA126BB B2EC20EB6F5A854AE19B1AD1780662EFFECD1E741AAA3843D25D91CA63317B5D DF5891D348ED47C744D5DB623F380FBC25B36294335E75FE70304D77F88BF1E4 AEBE5B36158F2B09323A3287A637205B7A0F8F32ECC02D4FDBC0E6208F810DC9 2B563AE0BE6F4ACF1862298B6B898F9B636135919E7232D044371F437BE1DDDC E4B5F36DC8C3B7174DDC5A9552DC8943ADED0E6AA86848062D7A1316CD907E67 62CF4292F5BE6BCBC9D67F7FA7ED0A40E155C5D9AF0C1E0D89218D30FCD2D217 84E791D808C5AE6E59D4BE2191443075806486B0EA6A13E50A38CABE21B9F125 882A033464895E839703B642A0A6E96711E1FCA17D6C0F9C8599271AD8A1AD59 E0EF51DCE0F45353BF6BF0B4A78FC272B2F499487AC04A83879CABEF64B37E1C FEBBC5F65860334C994C7CD3414DF9E85873254242B26A45742425DC62AC78F7 E2A793D44763E4F30B2EA43990531169CD7436A61DA69B8748AADB149AB48843 B74684C8ADE4800AC9F6DC582BFE13BD15B62FB58122E8F97B9C7DD81B21A97F 1E99D923C1FEA4E70553C34E8B4FA479DBA0292D2161124A10413C19413F7DB1 4C141720E284A85A715AE52597D954D65C8BB7AF254107F735E3AAA4E0F9F0C7 1B4A5F92DFE1A4318C1EC6C87F8B2C2B4935C8F6609A6F77F18B9D67C5F24A31 BF274C8389C40B23D6217057A466CD203BFCF36DB986C6C618AADF4AFD83ABEC 20373E4F5C1DC2BA76AF0D952923B3281FDB8D75096B519A161119B01363565A 8DFD3F24E68C467BD9722DB5F241E75801E9A41F8A79C13BE63D7B9FC51895AB 6A8B3F16204B12E5DBF0F5F0ECAD27A49D189260EE2A97BC3254CBDCB2177DDB AD254E9A0C1278B8D7865483D3F3CC8E02E18FE3DCF624D75BE999B8BC8B009A 64EF62DAB5FE7013FB073CAFF621385FB0FEA7D707001F7D1B58D5890FDD6D09 D130C435F58B67F216B58019AAA3FAEBEA34A7039FCF3F3D1D3F9CE7CE2B7288 A26CEA5CBC44B758E3C21AD2C6BBF114C4C007F63344A5FA097E123F7DC18FD9 BAA6CB668667D1133D9B25299AD46AF29757BB1A2DCC43FAB20D2A21BF845455 4C181503518AD5104E98FFD1F68B69DAE593DB10495B3AA4D9CC6A8E82B213C3 FF23A87B963E2DFBA27A860D241F3A56FC8BEFD9101CE9218A2E2B8BE2E4492D 8EC8922E914FB6242EEF243B2103536019D4A5497665F5127727557A2C4E7B57 03BFC9A54BA6E9CDB63F2AD8773172BF32E79C7DA87F93F2B6C1F2B31486109C 276129AFCDAD8FEEE5FE0F7924A306081A9056624966ABC890AB001ADF9D9F33 763DDB64938B656925F12F1131EA42E84DB63BEFF0373598A644B7489D3AEA31 BF31631299FB0560F1C7CEA8499CBAE670DCAFF5773BA849B091939616565863 8DD012F816177DC9E76374C01B6B11F065F729CF20A8822B8F7CE8698F489AFF 372D9444C76377D3B04E2941AAB537E0296ACDF68B3BDCAF1CED32C8C31F18DB 2923F37CBFE5ADEE2E7DBD913A69237C89E18647437BF39E2F080346E0F7873B A3F39B98DDA52AFE998AECD9655D30B1B88F10293263B8775DA3074AFB0C83E8 E4BB62782D8F8A369A8DA5B4D022BB6B31906B72A771D4E8C0ACBD6D437497CD 12AC271F0A436D6DB4C034EB192B7519EA75CDCEE334C685630DA135D235D252 8554C079DEE7A0A9315EEFABF52E2658BBB98764AC2D846E5B678CB5DEE55C12 832B91A9AEBF21A6B52386EA8669B241B87C8B2ACBE0EE9D671DCE591BCB77F3 B99F2A1EA693A51C23C96133F6F3C221A21FA278E829D8889863BF97B84EF4F7 C87974F88137064E0CD13A19AF5814FFA8397935C9DBF73D719A19CB131F9970 A33ECDF1A95E6E4E9F5C355504194445373E1C2CBB527F6F9649E75BE2A4D9E7 9FFCE77B22AA3ECA90BC2602FDBD99D3015F6D8CCC32D2C92B67F44F15BB6334 13628F7B6FC29A9424B594DEAA1F35E91FF468E8483399D311161E96BC619E87 05D059260648C82A72D50A9CD996737CE1F708D4E64E7BF391AA9FDC6788D32F A5896C29DF108694D762B86A0317F5030CE7CCCA7900914E68BDC8E3B65163CC 138638EF15430010D2D064F695C9871CE85062532DDF0342A4A142AB8F53DB29 477670BFB212F2B5728BE7045DF33975747F2E8EACA18EA238E931746AE348F3 2F56191E262D4C727D801F9D748322017EDE13C6641BC96F9531A07C24EEE493 A9BF0BFA0576AC1252917B03D0DFEE69CAB3B45EA305309F6C7B0FC0DD478395 CE7DE0E239AE26CED315B245FB43A4E0B0980DF99EFC386C38C8CBB946801696 8525BF24D5DD6BC9E0A58575DE81CA6806FD91728EDF0055C79CA250E315EEC1 7F4E6029CBAB65B4CF1A0FAE23175834624D758D92D1986465D011F179C9AC49 72801FB1F4FE11EA3F4735539F5EE62703A2470A42CCF1191E2D16B35EEE3311 976A0FAAACF690499767FFA0DB479791F9D23A3363D21EE42DA19A0BBAE457EE 8D8394C03954EB52928D656A086AC0832D3B17C2B109C49396FC6D081EFF0D43 918536A6A594DF197882362D60A583C7B6875FD4B7F0D5FC1FEFFC426B9A6006 7527FAFF5CAD8AEBAAFB63D9BAFCD3095F51CB1D61BDB5691B4C8B460F4439EA 85DF52D2AF81F21E1DCA27D14239573935FFCB7425C46ABBD9A2141AEFDFCD3C 13BF24D742CCF065FAA68C921701CCED7ED546422FB51C0AB52CCFB26FA07F29 559D66AF1DD079F79B2B9E66C6CE045D6FB050FFB5AE210A6F650C75EE0E0E5C A38958583A7653165719521EA2E74AA0A4DB89204CCA0C5DA66BD998EFD15FB1 78EFF5A689295C2A4E1364FA886054D9F5BB6D5FBE6C7582DAAB15BB949132B1 C6D12D3A73BDC458B53C20E3506DFDF88F8EA29635359A0AE8126693F52D6115 8ABDF17B3DD384D4DD96D30CF7E5E15BB07D8B37A75ED323DAD1940A514AB656 0CB9A58A7CF455BB471329904C755BC22F7F9062B7D1D2A92F40142ECBB1B13F 5D22256A6926F942328833DB194992D29ECAEC96960CE6D37CE31BE3EEF67AEA 464BBCC410CB04E5A931F07B9117032F35754D4EC76CEBD5B3AF22DD18106135 28015B47047828D514FCE46C9879FAAC59E5D8D8B0707D25A33D1182E3DED240 23863C0E37C9F3616333084E0DF239A9D16DED8B65324D289177E8500491D8AA DB72BA6B9E77330FC759D540C50DCA94F299A40B11CBA1D26293C1C063E4A952 D1E1324F47CF6683E69F2D5ABD679FB8584D9FDFF40370FF9B3B67FAE5CBF690 4CEE37BE738EC0A4AA8F08970EFF021948B2E220565B5A5BB3ACFF61C1936152 6284207B07F808430ADC5DE466E3B002054F96412C642D864B3D9EC3F285C4D1 9E28FA5C4F6D9562B13408D521A5D12940E17DA5FF811945FFAB9BE24C3AE43D 477D2043F09663CEB51B84557E14678AFE0753CF8207A035E23A886A92AE7A8F DE380743DAA578549E919D0E323314F198FBABC0FCF90AC51DB3C1E5F77C2AF6 F61D31080E0F9D14B2082086202742EE01EF601D4605670AC7DF3DDED9341C16 27500151FAAF37C69EE45E41B6C0692BC287BF6188CD92E6C9AFA72A45275140 42952A8004DB720AE2C739EEDD4062DA824049DEA9416A45D54B79572B315CF0 F1F816F0B2C1B392252975CC405AAC76B9D5DC8EE8071D5415CA0828FDCB8BFB 81D9BEC0C7EACD143E0E1A6185A0B2B990C7E163B793CBFBE9B09FF385B1DED0 EDEC4C51C6D51E7A335459ABEA779C15A11F2DABE0D2EEFD1B6D73320ACB1FFB FCA750146B6E7386E2CE4C646E3FEA620538096F0850BAA1B7E33E84EAA5C3CB B27FF19C819AE93D9D42B2D9A1A2AE24B5EA9BF8FE80DE233842ED140C04CA25 21EE490E8CFCA06CBB7CA1EC4FE063DB2B43D450384755DB93E8058594CB7E04 0EAB7CC1B15A616312072A9EA5D381AE64755F5651F697467A3DBBB280B3F7D1 F341B776C52FA49EB4E2F33019AB7207AC40938B4B02FCBE2EE1FBCB850C9FCF 40E7E8AF25609FABF7DF498A75437FCA443EE152C955BF231982661F3988BE6B 83E0423FA0F902FCC87D51C83B6492B4DBEC34D5E9120C21B1AF846AA2F22128 19F08A4D5BB2380550496DC603DE21B4D4D87BD2135FDD613FB5E1FE029A8B85 F806B299A15C4562A98537061D300B32E906DBF15FD058D48B24FA792BD32C5B 23584BCAA1B313FD22983A1E31AC5E4E04EAC314DF784F44F5F86CC19DED18C9 446CE2E6B104DF104C895452DA7630478A6441FE30908B3DE8D8081ACB5AB440 C12C53FBA92D5F326D2477C57C88E3B05A0894CF2184CAC7A54D90C4372AB82E 63BC057E474973EF7DFC997D270526E3EC4EC99560DE59DDAAE8B9A34DB48718 EB59B4A9209CB029E8F4A2BC98BDC586C632F66434FE6F8F57600D4E19ECE69A 17424D444ACB2FD9FE1AAAD75CA3B0FD20C1E0A61561EE45CE5839AD4EB354AE C73ACA1C075DAEB2932F48D2550A99B8612FAE97DE5AFCA4EBBA7E0E754BAB95 BA7DFBE5CA4AAFBDA7ECBFEACC74E8F8ED14127E819CF36B69E5A36DB62D0E5C E23BF82C6CFC4DD5369DEEDD406ADEACB232DD8D383EFB23992C74C263CB16E3 FC6EB5F9C73183AA9C9B80D0F9EB9BE81630C673E4597BE83ACD6DA8790B8760 35941F0C307A702834A7D4A447948D6DBD76B8F1AAD544526F2A9CA8176C10E1 B25964252DDCD3A0396BF68B841FC2117A0F1851664D735E8EDF5C7002A80608 3E0EAD12A1F9F9933E06FFCCB623AB938CBA6D95C14B77E44EAA43B3A51FCE5B 6002A1947211894CE963DADC3591C0AD0F7E3EEDD53B515F34B8B2B55612D2DB B15C3132B04C9A195F64F3FC84E6475971DCD271F040C16969DADD4843255E5D C283A45326EEE5DD7097992D4105B678D1D541293BF408CD651FEE2DBBD90B07 DAE4B472CD0C2D04544E752B3B89715F7504D85DF0A7D9E5011887D536775885 E5C001F8CF7497B85699B438B6BA7A1BA4F8B44F9C3240D1DC632ACEAE796FE2 E2DEE67D6E811AF44806C290E89D5928B27DC8B2EABFACBE8148AAFDAA6FA849 6B5DA58D09B6F7D3984FC1E30BA9E93EE28FD415AB4C0CA9324365AAFFEAA4BD CBED51450982149F892A78CEAB3B05CCB2CB6248B986F96D324124A6530056BC 0CDE8577D236A6CF81BEFC80E3E1F200987146051E0A88C8022775C314E8FD79 C3B78A6C26777B1FB8E4B39FFE306BBA9CCCDCF7CA2F5761AC8B199E8850A4C0 F9332B03C1FAA82ABAF5042543473DD0FD9C8E50F5F0C702B4FC579F89E1AFE2 901BFFB6AC3D5D62A88B49449CFB8FC5791848F06EA14AAD2D2B568DDEA9B3BD D9098158C3A78D7BAF7BD9793CDBE417BB4CC681427E26887D475E69F300D48A 7F014F2DC6EFBA5BE1F043F38CB1ACC47D978DAB3F75CA66065EA4B38C0B5F70 0A2F10F8D7182E86359731692793B7B7F0ACC39746B8D178CA9F195F1BD6E6A7 0B7E2BD51B8CED733C21B747461AFB8BBB297DFDDE09B395D5C9E2C39285ED31 68B61B1DEF2EE26D690201A2360F24438162BE2FF2444DEBAD90EA8A5269A65D 51B3284B94C23FD4E9C75A824F52840B0A6545ABBE5FE43100D75089149A7E67 893487CDDCDBC61BEA297414FF1BF0F7C51CC736865E591A5DE85B72C639225D DCEFC5A9FFAB3B549D40F04A0D1E55D53896DD53C8678B407AC5C2F4D552C096 15147F08B057379AB9CC3CAE805F1C7AF38824CF161B58E703324118258DDD74 B7F6554BE8A8B53D7291368859690E918B1F435C111C24493F9917A3FD0B7D1A E43A4ABDED0D4E490A9CB9922E19A1DD2FF8D35F4C24160BA8A1DC79A75F68B4 FE95075A93E23050E043C07EAA1ECD8340481C3753F006FC6B6FD1CF18C96F02 710805660225301188BE0C08D6375A897904292DB081D758C25DDC4A67FD776D 61621ECB9B1F3952D101D6CEF0BF914B15991AD18BBAE220A33AF8E6B754ACAC A9E9EB73219E91BC9B69E3A7B03CB582F9CB73B678D8E87AEBA6377AD5AC4FB1 9A6AC9778D2ACD077748B4024FA34632ADA3E089EE57AA26C09E783B3CCD1BD0 947D117C71F8F3B8FD6C5B01EA9D0291C497E31683F4C5A43A44541B3C99FD72 CBF870D532B08D9B1528D8E4E64C53C9C36AF2C44BF4244BC19CF94D1C5ED08E 112623C1A0D5DEC7346B3BED3C95C9C714702577E031343E236869175728BC61 F37F02EE0F2F0CA7C629D362DCE8452DA006564893BF579E872D52F786239EA1 5CBA3F160FCBA142C8F104BE54DA85D93C9E7866B08E7F86A6DDC982B01FF333 D0A9BE142E1907C46D7959C32FDD3E76434140709B1697ECA7B648C6869BBD58 D1E706B270E5EBB42491635F553187405A4A971B9435275AE5D9DAB43F14FB16 FC65CBB32389EED476FB63397A2FF5882C201F5F9CBFF0866B792FCC6F434D32 02BA667D49F63853CFFBD52AC75845F37108FE61C89EE50CA3D4705D5527F964 A599FA83B74E8998C9560C8A45D5251FDA6E5B35CD8254E1DFD634D62938FA8A D42ACFAEE72394BF294B9584EDAB703803BF52D157A0C71EDA7DB137DDA99F57 F60754D0A8CBE0E3B59F0896276CE4EA6E245C4D21B8B1AA28FAD0188883257E 94DAE91D890461297937D714728BCAEDD9212A276A2CFEB431CAB8D668442C88 561F86BF4A6DA3CBC378E34F3A5F29CD260772D0544950EF165C9773A5C71523 EEB4B0965C52B191AE01D58023BB2FDDF364445E0A8840DA8021119F869DDC93 95CC8C211F8BADB4D30F3217B55FC9A434B8FC5407FCD3A65626AB055E4A0838 61F2155914E667AC2EFDC3DF3ADAB3F2AD4C76127045B37E7336A0BDBE1056F0 593697CAC9147CEEEFAF6E7A01814C6EE5ABB5E64CC0EEC0450D6D5349292EB1 B65B187E63A4C2A2D90AF72F04FE8C0901C09C09C3582C4013454DA2E01EF704 F31CB3F709103B983234AA02F7CB78E98EA31460925162786F6CF8B1E045B49B 53484D7B20A5FAF845CB5A7926014B 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMR9 %!PS-AdobeFont-1.0: CMR9 003.002 %%Title: CMR9 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMR9. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMR9 known{/CMR9 findfont dup/UniqueID known{dup /UniqueID get 5000792 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMR9 def /FontBBox {-39 -250 1036 750 }readonly def /UniqueID 5000792 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR9.) readonly def /FullName (CMR9) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 39 /quoteright put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 87 /W put dup 88 /X put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9AF72336CC4AD340 15A449513D5F74BFB9A68ABC471020464E3E6E33008238B123DEDE18557D712E ED5223722892A4DAC477120B8C9F3FE3FD334EACD3E8AABDC3C967C61FF003B4 B10C56D6A490CE9594D57A2D431B9E5E10FE3D8832E227A7087611431ABCD029 85F4865E17E17F8CFBD2CADC97E0A8820E3ACEC873F31464466A9545E967E53C DBDDB8478E69063FBB891566BAF88B7660A4405B16834761F041CCF7650AF955 F9E853AA9F5F4382E1FE7D0C5BB4023818A2383F91249D48CE021250EC9EEB1D 2835E18FB73026250B32A8849067D5E2258797C917F998F2D4121D96560C5FB5 B5D3471216639A8671B6DFAC5E3554EC36D9A72518525A795590C74DD70DA3A7 78BFC43E51D6F2BA52F17D4DD00D389D3983EC54912AFF73684A8A7E345537B7 E62361C04A47859DA084BC72EA53512DC54132EB2EE671793603015652EAFDE3 41C4B6B679BD60AEC5153EA0D2200CB1D097DAD770F5F31E6FC475A225995277 B867B731D5401E2D02B85BA85158C80FF7E2BBCC42B98AC867E67D25DB656072 55A0D32AB7AA483A5A9686CEA4E2B3031D90D84DB3E2DEE7706C91BA81CB8DAA 700E5F61E07D6998C9552C81B66FD10A10033D49EF3BCB0FF22ED0A3737523C9 8F851C61C4BF8A213BF6EC70C956AE48B5BD276CC0437C72BF6515B10739919A F00F6ADD2798CB211668842349171A5AEB0664D2C44397E55A4A9EBDF54A3EF4 FBBCDAD9DAEF4B0CAEF7112FA828F2F8D9F633D37E5516AB5ECEA87342EF8DC4 3A50548490F5BC9A8A1F98AC7AEAD9D913BFA10CA86D73AEB5BACC1FEEFDCC15 B3655522CCA2C772E902FAB2A6FC153597D52763EB44AB7489FF061F7F58E8F2 AEAAF4D17F36CBFC00D3C653F335D14240C87DB4339DA9D30A5BD1F502BC9013 461B9DB2FBEEC01BB18990439A0E9CA6576BC9CF6B1A3DB9386C4A5D4AA6A5DC CFA45FB75F22E10ECB72565DB441A194902C91427B4F676E531C661F7A2C3C85 CD534D1C89B6779B2EDC8E44667B992C20C70B663BFBF680A6CF4383EB7CA26C 4D1F06B5EF4025BBE65795F1EDB5CCB97050872D6C07BC2974F905ACDB7A765F 291365D6C8152153E7F017A25FB4476C60FD9EAF9A121633DBEAC32F62850223 D6418566AB350F90F4B35F19598478F76B63E347D4C61E203D4DB8ECB9889181 C387F4B663A502C638761D2782BB96EAC81A0108D7BD6938F67FEBB69218D115 D8E89CFABCE15C6ACC7FEB983332A51A6A73CF4E341574F366713D7FB29956D9 9BF238A87483D37E526A2EA2F101EDD34E34CB92730DCA7235AA0027189BE405 2DAB4AA021A30C28B26C50808E1E965C02F6212EC7C72F5683339425A7739380 A422E6191ED8453AF0CAAA424AE44DFA7CC5C2F6EAA8D73A5101D8E9517DBCFB 2858D0E8ECB7DC430EF23A9E4428CB7DED8D035D6050251AC101A2D0E884721E 2F21E573F948048BB8FF888911C508CC198BD750083B339500C426AFCD5634A6 AAAC1C7E91249667B231BBFC64B4317192FE07FE9DA0DDB5E517D097AAE46577 9555F29D45C67CDE9812CAD03F220B20519F2FF32DCA56A554D4296FE2D1F3FB B209B5270E0E695EA5A0EF1144957CE045881AEB8D05D72CE57F4D34617AED67 0D3AF0472CD8D60933651626550366E300E72A9C89ACD475C2E2ED9BD44B472D 9DAFE943F8E02A6DC38E447EED964624C37C3130E48211CA279BB6A0BD59466B 42F3D89B5746F29E084E22CF58395AF0F29E55113F3A3F2F52CB3A6DF3D026D0 C81754B8E2E4A15F6943BE9D0087D5166060734FD07C4C57D7C7D90E8C9C1F35 623CEEE3ABAE75E1A18A1E3B50B7266BD2D8E812CFEB4A46B856885B185640D6 B9C22179551002B94282F57FB433B7FF157D2F0D240836B72AF4A331668AE5D4 E6B85415F4E8B9D2F9AF90FAFAA0A3866DF417CA5A31348CF9B41B8F5F4D2F97 CCF7ADE851B5E2E2F6E319AAF5792EBB9DA2C6AA8B73D889F3CDAA42932CDA7D 07A7E59183CD89520DDFC36E5D513BFD8AD0886046585F29B4D7F42CC0C27AA7 53915AB1167D292FE91957E94A57FEE2D49C20C9070ECD736BDEE0F046E60350 EA539DC298156A4E0D019E7D481FDDA6861E20678516AB80ABEC1F09B126BCB9 52E8272A06BB6DD87ACFC423B4A4FC9A3DC8DCAEBB807C5F748F1FF8B17B8B88 F426206BF1B7B7D239D26BC3CF0776C467A98CFBBCA5FB6145D5900137ED19DC D002F10704AA680EC753C22E29AAB15712EF22AF73D80820A1EEE953463D4EA3 81FAF99518D4FD0F862A324FC44C4B9542A92C5B60CC983CC8F647CE5BDB4D6D B92B380E0E5F7208A9CD91FA9A469548162C761C1BA05AC9D60B766764D821B6 B4E17F56CE455F06EA1EE2D38FE47581746C4C5FBA63AEE2B58E877D1A8FA83A 31C972D53B64E92EEEA147426A92CFBF76FC614119C6E9C6476FD6A069C803BF E949FBE50B5AB1F1463F9747E8D353F7BBD991C4F90F920BC9407D8E24720293 846D052214E60390C3CB926D38C83AF697425D80C2B4FC4706615B905516B733 46ACA325CEA68FB21B2D17CF0B68BA4DF249368625CF83441EDBF2B86C957C1E 44CD722BD2537CE84FBA07EC7AE15C840041B9F7F3040072E6084CD55B301C08 A64A53BD4D3DC30DCAC6C152F316ABC59B8EE978793EBD568849DCC2A75A495A BC83470D503F8E389F54B4A4A31624E83C601B43AC1E52CB811FAA7CA6B644A5 1AE0BFD4FC774C9C9DFC2769ABFA9C83F900BE2DD4010416053A1D4874E6ECF4 D86E44B4CAB15D53E5630C144B0C15B58DAAD785BA298B1893D1B09BA5D40344 6678FD2D17FF6674433C976D6DAC659175CED26139967C9B2B9CFFD78FC2570A E5142141C2888DBF2DC8503F9137CE7CB21A1EBC2D65BF33FCEFBC85C9CB736E 24E8595CE934AB032CC70BD6A3B0F3BDBFBBE185512FDB7BE3D4A6620478453E 75D044BF770B44C9741E31985E6DAF5A318D7BED12B02A4BCFE60D25EF12843D EFC9BAE2A3F2EFAD66D7858E83EB46BB09D2FF8AE9C43844A7001C86ED97AF51 C511E3A89A1BE349FF5215D1A57843EF51456B9838133846F19BE79AAA5C1AB0 5F400E5E8E7B0BF96EFCA3B8F0894BE589F2C9FB6C97BD16D38F0A237CD4F034 099C41F85C7E2C7BEC8E02C4F327306A53B4B48B26A8926670CEEF96F6DF2281 7C2DAD99EF8B81BBB777227C2475AE7400DC393D9C0445E925DB1E955950F7AE 53E9AC4306794239346A419F7B5DF4168382EF5956B81F83BD4BB7635B3BCC84 7D84D05AEDC02D14675D777CD19B08124001A4F4EA96990D96000C082A12F00F 7FEF793A7FA69D56D3A38D012168C5458B667190AFE80E02C816CAFF0A71953C D80B085CD286027E2FDBB05452AA762FD7C813B2E19A79C74190E04E746C4933 CE1E300CAF5DD53B08110509BDA404EF07FA1BC5224BF1205DE8E0C3276A13DD 866675103B960C5F36644F96B4FAC16F5D6E91F74629B318FCCC8E8CB13EB76B B0B7B90718D913A52A04732EA3667674994A325A7973C601A7DDD50F658E0826 ACB8E53D4914B0274AED98D7BC3B2B7F9D48A7ECC2F8ABEE05CF2C4F2B90360B B7DF779EAF3E103D1D83EDBE32DDA873768D8C37DC10A5354A94B4153049AD64 FF3E0BB51AB91D7C0B4134D8731CD0270DAAF19BED9EAD800A14B65B68EEE89B 40DD624111670DDC7C030DEFE0D1B96420E249332445C155BA96231C88E70643 D526BDF3CA1E05FEE72CE2B881CFC01ED780C10E89F0828AD55FE29043BC56E8 2750A6DD15AADD54492F6092618F4CC6A31766B17FC60766D18C307EFC9BB787 39047DAD6B38419EFBA46B4E2C932F97451FE78AD75FA90DE409FC6DD46585D2 1941F5ED47A8FBAEF5A917A240959E8D9F9917DEA3247D9CAE6BF7A88DB4C4A4 F9F5A6DCE542420A032FF3392FE0F3357B51F884D6181583A554F75B1DF192E9 253CC828FF06B0D992D5316435980B044BB191508C7C45CD90F797F88856424B 14A5707459C50EDCF3E3D8D1667AAA83015405354CE744C66D9A5728F29E0085 6DBF740717FA0799E3BCC4ED7841588B496A5E549B953A7FD288B4A045DB611E E3B2F35963FF18ACCB1C968BEEA2CBF52B3999AAF89A05320BB2E97F52CFE06B 9F10E3A79865A3059A957F97972D80ADF678A36E2B586C101FC6AFA4D137C13E EE7102C9B8EF78CB057F8B7476F146E8FF5C897FD5503DD198128CFF7B5FB339 FAD0AF0EA967F77B07B367A4AC9F668F8BED99B98E87FAC750EE045602D76C3F 289FC9D97694C96AAC0AD1BD3FA94DF2CBCEA24B40F47B9B59E54EECEE7AC4C3 A3F5D19160E4C1EA830D57FBE10D8D46AC5CA0260F22FAA45236F0F542BEA9C5 5A88F878F68B36114E0573900C65E305462B22A3429A17C7A567694414DDDA46 5F30542B8FD4F00F6C295B2E8D3A986B953D96822DB2ECD48E8BB1763434E652 152EF3717F5E7FA10FF0B01D9F64E22C5DBD7254629658887BACEC0ABDE972EE 67299FB84A05B3EFE22B6976DB4CCA384232DDAE38C31623A4E39EA2E82C1EA3 BBB68F1A7DBF405DEC37CB7203A895C36A44BD2D63F45B3888AF91D37B510A59 3C921BB44DA620892AD87B665F69F6FA510B071ECC403CB2BE2F54B3969C9E88 713244BC97C1466DA8216DA7600C221E7E7EF5C789D2E12B36422023A03E11BF 2790FD6062FE6BF62F5010A92F0A104B76E255A0975E04F6F20F760881BDA7F5 D834D1D328B6EC19AA7D5E5678A84C74C82553DBE8BB5765E84F5A8789032143 6020940B4B8D45FC3433D356E28C25F42D0C19F911213D85951B2B00D01B77BB A4C72E964F9D95422BEDE582A05CD52E03D28A996E6CC8FCD910CBAB728073F9 F9FAEED5470FFA55930447C5BA816F826F983D53EC9941EC8364B3060FD74C95 26D4F5CA753B574FD2FA4D1D333785241D8741B79E628BC852FDC35478C5ED9A C1BE88C5EE7302816E65C12B58EA16FEDD4672EB3E24B6EDAD5DCE263BA8A970 350B651E5A9F3C281D85BC3F44EADD0D93402E36489BA5185E7D388974B0B700 70575188BB610CCA20F081E2CBDA13DCC6F72567962ADB342E02C1E763B673C5 F7384E24C6E1730A3A790D690A2103AEF88E0C1D4480DC9B25E5C8C9E1919C95 F83320179B4C7C4A26D559BFB24D7D596FB73758C9990C451E77FCDDD17763B8 9C30A9534E3CB6680D3D419D4B70B0B0A0D160FCCDE169714E373F65B7144CC2 DB9A44E041211E1517D3148E65A2486CBE5E74E625261CCF65392FB4F3091473 F9E8DF327D59A58558E5C9F7190DB577D5DC658F5E36258291C708B3D224653D 064BB6079F91293FC733710893AD1C96169B30CBFE4E9D52E7EFAE4AFEE68FEF 1AFD5E7E9DFCE8DE332B0FDC0514F9B3090AC85BBFB527FD8034DD33E9576325 A8769AE09AF1BA792447DDD932B98FC9486B39E0B04DDB3EFB7A30DA0940B33E E27490E0E841E87B1C90E5248A91742ABEDC10F43A8AF0F9C5B4A4930B1AADAF 01874B9AC3B8D0DBECCDA6CD7E96471FAA15CB7F8A599C5746327CE392224C3C 40BD60AF97BCA6FF6FCAB2FEA114D7300B89E91C3BC92D5B3E2C83BB37992D8C 72F661EFD0AA034C738C019DFB79BF40651A1A34BC1EB9F5AAF58F8B3DA32645 24AFF8636486F08BC21533B5FF7391B0679A78DFDCB03DAF6BB7475A1D51DAC1 EE4BE9B986655D1FDB6936445EF99B58B303FE79F11275EEA96A9F6808EA8775 D873D1052FAC93769789C700F20EB2ED6D15676F6E563A769CA9298E463FC311 83281483B1C953370D196727A6A0E66D32D9480AB1B6DCA77868C1A2D5DB6483 5F31EB6B18EEFEF1CDC31533E69B0AFC6B30FC9912DC89BAAEEADC30BE14F448 1A6B70D36A5D9B01799BEEA686066114910842D022EB464A9A1E8F0A5628BA69 AA9A1925CCADD44703BC67A89F3B48E4680726DC4360274185CF3C8AB747A8FC 4B928AD62B092EFE48B01E33ED756DB696171FDB775396BBA138E056F71EDAE3 7A1E4CC272B8418114B0E81DE0BC43DB3C133167344488820A92DF10FFA26FB9 65FCA2C87D302E956DE6B4FE145145440C83DB43A68F8B29A592B127BDF49063 B7F11E155CD4CAE305525BEA56B7C412A6260426407BD892A3F2B444AC3421E6 FB6E6425EB5C3053C5644666B80405530FA0012B54557327C98E0F4F064099A6 4ACAAFC1870359C1B6FBE7606BB8A26026AE20C212210449905E628AF1B20490 8CE908B7EF3E3DB551C85AEB0F7FEB6A8D215B97998E5DD9C7CCFB2A9402B8B6 1770D4023777D4B45A73F471355353412C51D4CE71FAD1E0AFBD87B5F86307F3 10D0B94F1194EFFB64AD5DA54A4200490F609CA8B912E149F8217ABB1E9EBB3B C4470E7365CF5E1E761AA1945044B225BD53D142F6588C50E0644740F7DD55E4 8F73201E5354A8BC78339211AFC4935F44701FBA043AAC4BA4698E9D7700029A C79F992F62627C91EB855F64C4B251718FDA71EDAF082A0C7B00550949D617A0 7071FB14F05620CCF2180941341D8E60FC88823438FD728A4042AFA8B853107F 852F631518B61B234565291B5D5B89DA818DEE3AE3B68A2869DFA63255CC882C 3B16BBA08FCE3632E57FF7A07F857A1F0FDCADAB39D77960BD827CCC8661A997 648BF5BEBC0FD2286C2A112A8DEB9CCB6330A049170D5D68EEEEA011D3EF3EBD 855236B9380087CBBB6BE24191F728B7EAC5B50F7A547AA0989B7C7D3437DBCE 1669341264E290646F2C8C5A3ACAAC7CB63DC692FAAE13E9B40E8BD39FE16A0C 1660CE66872D061056C04DDDC265C024BEF8B7E3C3AEE76FE5C9702002C28BE0 B180295EE00E567FA2E5CD1638226D24A7C732E1BD8103B476EF5702768689C7 D4FCD47F2AB94A2B1FBAE6ABF87B09E7713C773FB65CA83F7318035B332B9F99 24A2C8897527021321D003AAD7C273E4BFA2710B9BB26C2CFD3D9A5D7ED1096C 552D50028AE2476FCD6D12A5D0A897521313ED1A3A8456A70C16EAA50A3E6733 6DC89FEC56AB54A579EF264377A103939D5EE00A90B4F2206D0023AF9491FBE0 800C6540FC945199E20E945F46CEEA2E885F6800B9DF042BCEF4291A4B1A62C8 6A7ACFF872B25FA3AE69E0093F3D0FF13A3313430C06F1AF94D500431566F659 E8C859A5F80F5BD2E85C8E32603D3745628E8FE6FBC50FA68F9C3811A2BEFEA4 5852CAE2AE5AAD3230ED050593BAD0A9581EB7B327C6916B8FC348F4C23E6FA2 00FA28AAACCB3091C1D83F7BB88672A53A2EA3B8C7C24374E400C57F0F01019F E52D5C47F389D4C9AF126F4080F9AB8D1C8F470932BBECCEC72A9796F6E965A4 82057DDB43D68298A00880D4C2E2496F26F015FD83C5549215753459310339B7 6B2961EEEE74DA31FEC8E2BDDA42D4080A32372AC372524BDDA580EF6634ACE3 128C69D04D890DCA337212B109585C665AA83EFE47D5BABC2627A86EAD11BF7D 744176652C7F9497785A7A06A994ED8414BBE8B26E74D48CB83FA24AAFBDD507 84A90195EA3D77BCE8C2BEDDD1DC52E8164DF15D65B916EBDF3A8A76849653DF AE3CAF9561AF3B705F75B9E5DFD6758DB65A2FD54683759912E0D0035CFBCD86 5D24AB1323A0BDCC0A8FCCAD408E091D37B62D3D1BF8537CFC619A78488DA0CF 87FF97E3181A579D373539E8AFF22856FD03F4C387BA307983EDE87FE0F320FF 41E45F60704B913C7381D84E98411045E4AC9FFDF8168FA2286D8C7EBF681EA8 787E7960CFCAF502B7A3066310BE7A1159A02F1BF2C5C11A3A9A52E01DE3E108 8ECF6C9F892370DE073A17C26D92487DC47818C92555B5FA22B8E2D726EBDC07 7B0E0DBF8060AEAD5106824D748D9C085BAC95E031069395B41D5BB131FCDAFB 5CB678DA317AA3082296487B40E1D4297E22905E096C47A26F4DF5975ED35156 F33D505FE3ED168177598CA0CE444A03F66032BD7D1C1ACA0EF9FC36C4C9CE25 C9B1F2420CF9A96365BAA62E2704F2C662090D58BB4E0B099DDB4EEBF8D05F97 A5CBC658236F5E4D62BAEFB5996AB9E8EC4F4F9AC53FF17CC7A87BF1B8EC4626 1C500327CCB89B0EB07A9F4903E0C5A5E7370D90B50C010286EB368B0503D038 A2EF77A39178507E41DBE433DF19D3F69A70793D051F813CD263B5DA690579AC 1789D2D4CA15488F73F1F01CA8FC188FA30CB08809D8228AAC5A10954A6E5471 F8D84AF40CBD5C92F789EB1742E17D5EF1F7212D71A06BD7091360023093F101 36EB44A8DE87A4A196B0140641000B445FD8F603A9A7F2C6F77EF6963811F7C9 15649EE1D81DC3E988A7A797D76DB89758A73428D690AAC6CAF6E216CA40F8C6 2E05352428D4C5BDF539C8E423815555A1051370EFB3A9606D3D58F46E7D0B97 CCA0C589D0E36D25CE3938B059FB0E2C8361014B57098F96088C5C98E7AF24CF F8A8308EA440CD67106B94310E4C81D9D739DF88C655165C148CA55C7A1E2F7E A6F673ED5F34F1C1D20B609A152EDECFA26875C005B5D3394AFC2E2FC73EC0D8 693A9561AD2C3F9B9E9C9325EA9497425941EC3A0CEF1A59E6669429B08600DA 86C38D78CFA1AE7634B2C0423F951E647B2AE424776519ABCB28AB77F98AE76A 2F70CC3FC78E82702743AB7022329C56ED8AE3BE873992E131DDC094E1E6E683 D2545B0E6044A8F3626CD111A9C0940AD0A7D86CE7038A74907C8E9A28945C73 CC08B2B5F0D608B7A4B741D9F35104F476DC5B7C9E09D0BA369B0502062B3ACA 061ACE401105AAFAB82C4AA821E8523BC287BAFD83AFA05B719CBFD536B82B6D A6E549A9FF74858C3DCC717457691AD5BAB068DFD9AC47F9426F7148BB8FA709 24316D211D3A0EA27C36EEA1E76C0BB1068594DC152E58825290920E6DDEA892 BE5622E1C421994E1338424D82156895529BDDBF81ED48361530BFB2C763E138 777FF1CA8846EF2343E735E9EB00E50971C1E7B50917CFD0E82E5F05D1F96031 216DB9AC8A26B00280FE57F64038938E7E48429061C48B21F9B051F6147B984B 193B34B606F5A5B8583654F891D0E7256870F71A8898783B772AFA05228231D0 69EDB2E2ADF1F8CD734ABE140A34004817B886A717BAF0239A5B8A0874412F72 C49ECA2EF65E34A8B9C3288D95EBA49A57783A51198028FF2CC674E022F6C6F9 91F40145A7A1313A8C12793F71E79A58BEF6ED7DDD3CD527317F3063086D8B67 46817FD31B267DD7B61DF90BED14A3164DA8B2883B0B2CA52A8B48F33D055173 A804F2704D9367231B9B797CD55E7D512BF3D4EF1709BE4290C627E04330E3CB CA9D10AA2F41A42DC3089F2C51AFB51A3A0A5E68F99F61F05D7DE8ED84DEEA3F 3F2A64C59AB48E9137F101552C270F6B5AE64868FC6AEE59C276C7DBDB0D7835 9D58E3BAE73B32391C040298C4B93B8149ACCEBDB0D1D481F6C795004617D445 4108A2BA61E53ADD1BCB8E528A1E982E5211458978B071E20C6A2FB7BFB3FBB1 BCBDB5E18BE8CBDBBF8B28BC56E147DE26DE432ABC8F6CE4663CEEFC7E2B7232 0948A931575B3F6D7C5C29F5E59914FD00CFA0B64E595CA37FF9328FCB3E5DFC 1ECD5C2CED3A0113096F86466E0EBB27A3AE1D793090520DAFAB5A00545DAA99 500D452137475078B1996A96CDB7C12ABE78F41CF4DB7207C66394AD669BB39A 19492926069ECD6A5FFFB23654B0877618512E706301A7DDC2B76C42CECCB2A4 0F5388B9759429AF631A262C6F5C1DFFE78F9FB4371E98D29FCF91F4CD7A9DB8 5665151FB63CCEE8039BB28E82A7A73ACF6434AE97F67BDD7BDC6FC671A90D09 2EF97519795B91C4AD666EBC36188457390B902BEC72BE9F0AFCB70EB75CCA91 270C5367C18CCA4396C5D97BC3D1F1C93A6E82767543FEF3277C1DAB981944E0 D8B3EB3AE74B1CE21F7C41C9A7FA5FAE2F6892FA7B8AA3866FB247E9FB015004 48E74475596253F968537227DE9FF96147F79044A86E9046A57E21128FEB458B 194E8E4C3ABF558D1178D2FAF63B1F44F15600E01692752C2AFFFB88B95C23A4 2A3FD624778B37C56CE88C2F005A4561679F7EF91967AF1B2F900F8EEE4A8264 2D30067D42CE88A5A5C7792D88715A4CEBF3B85D6028CFB8B7018F52A695C63D B1DC68D73C592D5283541004E877FDE4E81E152F9E171201E9A88EEC6659BE7B 6A7F9255F6988FCDE5BDE0F31DD4D282C8743CBF831B9C2C1A703BB9A4B1791F 7E680BE9FED244D0DF33D24B535BA45145CB9D760D603DD269E8C049EDE168CF 539C729CF86A23750F8B09959C77350AE33E5DB69E8A53B8777BDC1E4BE06A8B 8F4629742053C333643EAAF492A7C00354F81B131CB81B379D8FF88201D25DAB 530341925F14267F61CE0E68632E090207695319FA5AA0878E49597D6738BAB2 DF3A56898655772A5556F9DBEDB7C93533B3C2279001A48EE229E94A864671DF 2AE8B4BD90A9E4392A01B8D3D76B5883613ACF6F527C10C47CC38A4A413231F7 20FD2EA9A38CE5BC9C148B3C94E2D9832DACA6E6478972DA8FCE275D1EF7434B E7A89C5A762A216D1B1B436334C94B6EFAC7C3A0AE6C5E61025927524CCDD698 FE851712EE72BD6DCF19E80F3CB2E5709EFA9A8AC8FE9E72952A3477775E5AA4 6F9236F411724807B43621A40F3F9F398A48B1DC37C89A7BC2BB2FE8CDFFFF87 543E002F539616A994F5C9391887C89F1CA5E562DD1BDC67873F3AB0EC4064D4 5345416F4B1A369B016AD889C4DF3B17434C04694D39E05F5E2A065E47056E06 46B9902581982562BA577DD1AB2C8DF789290DC603D0D643ACD7BB349FD4FAD3 87D7E5991FFFEE550C520E504FB024D02CCF6E9740576B9DB43647BC9D91DAA0 926D16D5A9EC52435744503A563F06AE339DF6E6441D74A245732D8215878D92 C3CA6E6F1E259FEC912B721D85338F90F43F01F216E2009FFE57F62317258585 92DC75A95F78DD51C0382B48E25BD93190E51E5CDD27FE3107B0914B9E996CBF 597BFC5B935DD7D4413A40B60F1A1A5A6F8B0D962EC98F793C6EB93D7901AD7C A9E537F23016238555E8228801BD3524141DBF1F9EA47BD1DB3727AF9BF17B8A 508C3009662E2D20420C7A6DAEC54F05214F9AFE0E170A07F821B9C14A3B606B F2BF8BD370B7803421B5B7EEA030BC8F7627D26DE058C0677079BB64EEBCB911 EF57E2F7190842A1F01C58A5D9264DB42A21AF20C16A9830788440E1926D8042 8B69FC257330633D041A270F49089DA16EE3D1E9CBA0AC228DD7AD384E6558D5 A4E283621C8A28286D14AFC126A184209C4CD7606CDBD9CAB352585EC22A7A6E 8D5849DB210ECCC58E043413DB8FD3F354912A400A1A972458C1965BF8BED449 002DF6C6A89F675B8F8FF4E2B841AE3F263FEE88285B8B373C11F8DA5ABAF93A EA1A2B5FA0D028CA2F88D17430F9974C882252C1E7F27958B9363FA6A2DA0D3E CE09A39652060A8BC1BC2190C49188C1A6DC323069C232451D1A95FCABF01ABD 72674082FB4F0D7BB7CE53156A46C7AC7F01320D777EA1EBFEE780E040423DDC EBD27C9860BE334D2229F2C8B09F0CD18F0A0BF033859C66C2CE3105F06013F2 DB2173850DB823FB7F3979DF4147B329DEC8C9EC8B063AEDBEFBF41EEB9B5565 E90DE4B2DDA3D51D9484C03FA8731987A2B9D9189E8C9105B9325C899ABBA6E3 D46043BD135FB1807D66D69DED4DA0CA5AFD2D732F8EF17F21DC429D3BB5E105 5376F2C19524650D0EE7C7B38A228434070BF82CE461097EE436CD8295AD890E 3F6D6BD351901BA0004015725527988EC75B06F20A37D520B2921021E8C0183F DDF12BECBB7FB640A592A8E7AC4F42E14B5D281C3E1E958FF9D6170C83C89591 A90D8C3CEBB14BF119A4954F626B225EE36D9DE7E0F4EFCEA30771E0935F164C 48FE03884428C4FCE87AB96322F74DDC6AB8F444AF89B625C372B9216F6F9DB2 BF889D75275CD02BDFE481CE6E2C12376C987EEB9695459D42CE4F6AF59D3668 1AA6A43DC0B8A8C17D6CBD10CDD64640DBE1ED20DAFC5A1C4566A4D241B6F6B2 B57B012BC0E83EC563990F4C2A5101CD6704F132A0E4E4756D5576B20317C441 5A7990FB1B77404C1254B187D4AA02F959E8B88F3B9B01ACBCE153E5D11C3843 2AF90E8CBB20221A3DE14D6E8494072C7F5E3C49247AABCA001FA7DA6118032F BF76661C1E4A47828A80636F7E6F91E751395442177EA0EBC1EADF9678E32301 A26979BA38449572155C33DB42AFE6BDF6F98C1F92EE10F25700A192EC12EA2C F09F1AF20E640577E73EF73D0A32E0E59B9B4C64DD0347F0B6BFFB58BDAB5AD8 59770FA18C3F2E84AE62387160BDDE90786435D435910631633C15433BD8C3D3 656660E62916FCD625B7569744122209FF10C12C745A5B51A771314D66F89F74 FDEF6BE8FC9198F9C19C3FBAED296E4986B5E9ED11CEF5F968F9E1D8B79E4CE4 04886808E91411CC444A5612CC7D6A206CABB17DB865D4A3B0F63FF6FB78126D 3C0BFC32DD3D6469F8663207EE06DB544357F5F195ECCB1C8E4ADBE0980C586E 082966D038B9030E8F5046A2568942D22B33CBA8723481F47BFB68D94A5A0C77 9FFBDD083C0EB5EFD9D00FC3A9AEA49E1C01384D3585536BD89DA690268B5546 54F24D080A916CD5CB5CA277633A0970B205DD6523FA72A4FAD7DEF6A1B1147E 78BD062EC737AD4D738681200FBE446B5AB4A032AADD1EDF211DB2B4722812BB 6DB9AA5CA0B83055DC576846D526AEF8C7E481B7726611012CD47676E8C38990 0B6D6F195B94F8BD002F0C7B2420A838A51A1E428765EA31DE32603DA4255A17 60475CAD33FC79DA8D973E79A769AC76464C4E38A020969695B2C20B4B9C31CD 35EDD94A698E9EE9B9EF83060B9EB9BC42D586C6100EDA02FFCA76CB5B8C51A7 1EA1EFD5FE0C54CD0F24883779644A3C942BB04763C4C9B3B16BE077741AA7D2 42B8D425C749A6DE08861D3523E411B99CF670B8DC108D731FBD4C7929725B26 6B716D2B0FA1B4BF06BA9251C3FBD6DCC019B8729F2FD2871BBE7B70D7AC8F4D 616B644A322F063C606716A8F65C1620D964826AB0D071D2262DD1A5A1F159B0 00A721CB400D95F63C12E9FBA2F567B63DBBCE47008DCB293A4AE746C916A9D2 9C0912801BE2767AF023A39F822F2C9362414E03C67EA05B0016156E48C8B426 D4D8A97B1EC4C53032AB0692871D304508027BBADCF9AB64EA09DB71CCB50554 758BDED49B3619C117A45CBF6DD94991110C153C5EE2F6A45747000DB6E8574E 6695C67F0D7786E428318B8601BCC41E8A55B9C84D27D781550218043DDD0454 FF6CE4FEACB37D474359DA4C877403429DA8AE3C43A73709C22E067E3164F54F E4BC345AC6DE1ED1B6B63BCD9229CAD7358A8A4CB183DC8CE6BA6EEFB35D084D 0B2EE594AC327201B54F65C23BFCEE042E74D58121534F51EE6E134798FDEC51 1C360EBC415A3A9B9259948CC516E398C25DFADBA43DFCB1A1839986A2B75049 63DECF8C97530ACF8CB05119A7796CA215AF4A83E5C5C4C950D6C5CEDE810969 43381E08118F22327AF39A6AAA84F591174BE943A27B6EFCED3F188EADDF55E9 C6A3E1257112FEBF6E5F503C89DDA360FF877D607A6AC219A7C623B448A7D944 415E61A47EF919D55F11A20776B323061C67102203E6C6A59C9A8189B1ED8EB7 97A813AD7BF8C56DE4F2DC98119C1116975974AAEE8A7E1B43265201F10B76EB 319D926AAEEA3AF9F175BA2A40F9099228875A9D4C7E97A861A16EBF75144725 2F7022778D2EF28FBCCD473C8A510F10A619C3A59EA4FD487BE926C6779BA20C 9145050F262D487A0CF69836032F10D1D79BD2AD76B3F9F965205DB56F6D96CB E6DB338AAC7A4383BF8BFC4A7F7612CF5E7B87AB9D4EC67CA202F329782C78ED 7C0F58150BD216209890529F740D29B83C3AD9DB41237487EA328592C124AD59 DE409C06985A9E256DF18B8B74AD60740B92FC446A2CA4242E10D6CD4845832D 2E52E92B02CD46C69B55B7730CB973005F272F0454C2E287087B0DAAC14489B1 BAB6069F31830D65FE1A948BB30D930C146FB64C234484DA889055D49E9F8B33 4C3082AFE1E2074BFF72A0EC80B6CAE5E71FDA2565339EB96E6A51C18E0B7CF7 A2DCAF765251C17D932662D95FE44641CE5585E468757D0F7220C45AD45ED13C C44DA66C6480FF5E1F59647DE8821DBC0190EB70EA7335BA3753802236EC9607 8BBFE119BA80BD4FA8EE9E152AE434F7E7DB1DD828FBEE40823E435902A8D138 3D891A320B17719ED023BC6A5515492B7B04D017158A8726CD4315E0EB207CAA 1C2C81ED388D2F853F22F870E9D63654770C0EB7E16E1EC4E5C8661152B1D282 AA292416FF98E95152E8D4F9665CBA7493958DEEB4F35B17D14A21A45C87EF8C AAFA6329866ECAC0C31940022B7C7BC4CB89F6B76CFFA2F864B69324188ECF7D 441D1D754FCF1A520C4F9CB46A6B46BE0403EF9FB9CFFC7FB3117B4CE57786E1 3FD192482B87B4A248FFE1D2947353648C62BC47A82FDEC77C0B4597A6ABDD5B 39DB2D2AF00B6CB6ACB4E7832FD565134C87D3ED5655D3D0A5FE5C9C09379D29 E2C7AFFAA26F35BDF22FB7DC407C6C47ED4B5B9E0D157C7C104B2AE495E2C1F5 3D74C790D190F9A8E3E9E6A2CB271288B963CF500364E36715AD39783950805C 93FA367571C1E2D5520E0A0E3EFD5005D2871DB2BF4F47A535F1818C6BD5AFB6 F54EA0039F95B4C609D3A3C097713A38868B6574B0CB7782FB069AA69C732BA9 245DF75775D6250F79A092E0C2012B518C79D38778D3E213AB9BE93BEFD774EA 63544ABFBA971F16AF6C14D9C52D371AAD8569230BC37E7EE6FA0FD458B4305B A52993BAA6AB2AE208DF3FC1875FD0B34315F6DC75B88EF009A419F728A38519 63D1C7DFD8567DC63F62935F594F88BEDAD3922DD5424C168832F28A0F5A6C7D C8342E582049B7EB2505CA31CE87A6C347FFA74F8CD92E5F02A0E5ADF072FEED 85A0D2C5330E61E340EF83F767C63F3BE5C37692143134A753A37C471E90CEA5 D9EF9E3B8B0B75BE556C0E6F205415C83F3223ADCB0B534F480634B6B119F589 87708D6C604D952A879B9AC69A83A09590A2D760BC54AE561FF1F904B4844399 D374F08E13DADE5BF241558E43BAB7F646D8987F0DDAADD743E1932DE01B9BAE 0D7AE91D113A0995FD3C4603EE4A8B10DD708D65E33E6B40004D37E0E2E14C5A C3799BC51EFC3E0CAD8B3FDAC906881B44FE63E0DFCE94F4AEEFA7AE094FF4D2 42102DC429484AC6579F2046F0964B543CC07E81E1B0ED408E06BBE133099F24 974AF29D5161CC065CC8816EF055E90B1616C16CB3A7C995D1CEAFAE11632826 C24685D17A70D152AE9734A9965C470E20F679A073F959433F8CE3104AB0B3B7 F1025BCA8C5CCBFFB83BEAB17C2D67CAD6340F59B5B9536609AFD44D79A7FFDA 57929ECC164363EF8CF51F88BC0748E0281C17170511789139B80DF8B3DA0282 6BA0705C4B764667AE9C9FA63BE71D1257493E55AEB4BD8756FA0A44439B3C8E FAA06172E526A4F04E37A3C04FFA996D483C51E79F43A6CEC0C1B16886B66542 1A332CE6E6D89B36589D5502AABAFA40EFF5C4DABF178DAFDB9954CB5509BA7F D7AF145DD905BB6F525411CD04F95B6B926B8021DD2F5917C5A9DC1639B76D3F BC9214BAFED58A5F124449AA0C21C14BE650061CEF1D65A116F276C5AC48357E 9D19942684ED38CD61EB800655341E52D6E11FD00743FEDE2CA5FC499AF5E473 4AD200F3B5DEACEC0BFF991154F8B465BAD8D9CF6DB3AA15939ABFD71CB487B6 3F2B92F1061F0A1E36694DA35A10E935BEF6212A988906A2562E20ED442839D9 BC468BCD1D16C924B4BA175734549E601EE7A8CD6AF8EB3801FDAF844C97AC5B 0AF213D176A6724E478EFC482C1742B4EE006D79236E2CB5CBBAB7DD3137A0CE 595241BCB90C086318AF9A7D5B7E5A9E6773D0E25F90275BC5666DB0D9D5FAFA 0401EF29A8B098EDDE6963B9986ED3307F91B3CFCB1BD832FAA14B245FFCA444 CAB9FAAE8D07C30FAC211A281874F185A80C98495510B8083D831C099E553FE9 155C2CA5CED5F36953CD63122AF1674742BDD73A18BA7F9C91F4572C5DB96154 EDC3F49AC9EF36A2E2821A6951537FDAF333476FFA4DEE65D1E32C1759A14CE3 B2F05355E4C01F1836A438B6CF57B9A74CDF6C0E4A82EC17DC1C3C6ACDB24CDC 70B159F2C83CC3D8A519DDFDD7FCBBCA712BE6C8645C77583AC4F2EF4A8BE053 097ED265E7038D0A21D895FA2FFED6BCB554A425137B0BB7B6AD8195784D530B A9FA9900D368C3C6B225F261259B86B36C523A2FFA7E91CBFBD226005C44FA60 5777C49E4B4F06A3D9136A3C834AEE0034825208F5F5DB1F7D046ECF0EAC00ED E706780E789241308E3F7423B8232369BAF20F4D9432BDB18863BF4AA61E22CA 77FE2CC260949C0130FD656958C8AD82769DA1A6DEE0E8D50AFC5097FC2B9AA9 88C932817F7DD2AB6F0011564A06CDDB099A306AE17CDF3A5472ED102E3F2178 B23AF6EDDF390A97E6A1C4278B672B6E80DB0655103EC6DAB53637C7C6E642AB 405D1C04DCC6D7479A34E1B75657B4D0462B5AB8C33A3EAFD513502919B31153 9E903E688EF8B84DD3A067EB10B821BA5D16BEC6CD45266FA0CF22B7DAD22B14 543195E23F5925E34A0C558459401050D92DD22D77D9BD1234205A958E261748 66D39BBAAE7BBAF62F87A99E790D87BD91B7AF9B6038ABE52748EDB776AFFAEC 4E3DFA2DBFF2A1AFA4DB0457FB5E1D72BC534EAC1F98BFDB73089FB1AD4A1191 FD1E9D4CE6192B7911551D8777E9BE9AF2345BC54992743E5323F2204157595F BA8D738728C177F12BEE767FBBB079092A19661F68F4C283EBE264CA1BD128A3 3F22A54508AEE46B65058CAE98458D28CE163B9C0B1C899298122E98A424E216 7F7BDD45A97A020221F99BD4F97A0AD0883D4AB60403AA1E683D358181022FB5 48465B82DB0E713A409BA8C2DF5B71F9AA79079D5C46BB9165CAFEC6A1FE4DE8 E0377765774075E65522351037E6BDC55F3E05D4525BF2F1FE9CCBBA30D1B68A FC06536C6E2BF2A4D96B438340E2CB6900402D9ED59EDFDBAE3B29649610A349 8E4C4CBF6CA12A8EB245494A1EA5DE3AB566FFD26542C15BBDA47A36C9E5B298 41368B797815B77023DB8BA961C4208ED6ADCB475CF3B14BD2429B9A125A6E59 7507E97901279CD74D7430BD45A2900806B37EDE2C2A082793EBCA37174EC0E1 C944AA6B493F8DE445ECCF2E0F7BBCD9E9B6AAF63DB36034030092FFF195C42C CB618D28BA546E24FF73DB915C2CBD47B7C2064BE1D9CC276032918A7BB1A5D0 A1BDD93213C71FD022142E04DB5EC2F41043FDCA2018A7492973B9C98089D9A4 BB89016755FEAFB2975112C4054CC115A1365201B35D90A6F6D081D1A38F2BF8 FB85C2FBBCEB9C35737B31007AEB9248D3669053108C00E156400794707736D3 73B3B7597A54F3786613B84321B8DA03E9BD7E9A35BCA3738820B8927E6AFB05 1F79E0BCF8B475A9BA17F74166A213981434CE4052389219DA5E5346A296E71C 809FA687FE1FA0A1A4419AB5293B1A4571AFBA46CA7CE5FB981D97ADC10C4D11 45FFFF864F663B0C6B3BACC5C7724E8FD1B40C126C6DFC2D394291F03F670CCF C9E1BF44CFA3DDDB545FF2D943EA3CDE776535741CDFA694CDF9A3D7F33E432E 23173D18FD65B6AD6392200257F2B8B9381C3C89207A66579716D1C1185C6492 D3E8DC3119E819A40DFD117453C8D8D98295AC9C7A0B3F2F2944CC9E6B2EC1AC 8E6827E80B69C5E881D8CD2AA6A4ABE11B958E5147CD646223EF5D5CA524201D 3294B2A79A9981B900B94DD442117D21485D4706CD114FB5DE0DF0EDCBECDF19 41494B3A56FC1E7ACCCBD34714DE2F60FC8A9B18C1BB837524F3CC1407E076BE 63A1224A25A49414818F82D2884CBE891FC2BB9B22C90FAD614A3F25DCC950B0 8FA22C9466C52D0CB80789E3762D6CF9ED0D15B7CFEE3AFD9B3BECB5E349D530 08B1758E4006DE89F35D2C5A3FC450FF2A0A1FAAD14FD5A6D3C73E4EB5D5FFA8 5407F87174CAE265D681F4F27C913CBE95768F09BCFAFBE3B0466459A039D6BB 9BDD1A7871D5C343E6998F8098FFA1F85DE7DFDA01B5D1866BB2348D7DB9D83C 09E13F7EA27BF6472C1401D27D7EF0F344F6255BCAE49FCF1BD54A31B6836162 301B59435E4915F3462C79D1FB94C632FF8CE567191E3A281075E30CFF912107 56A8651ABD90775495E49376C03DD37139ED09A3D77A671381695D8A12AA8C9A 77DD3D64C373590792DFF7FF3CED3A78C48A3F73AD6C310930871E52E05F5B72 331821D0E88C190508207B94AECC3BD74C0DD560750CA720D7B0B07D691DAE40 5A6F866C001F2DC608C24786830A3DDCD02F02938147FC8BF5F849B5B591BD4E 5CECACE55ED5CF9A73CD1DFCD7AA82E0B500BCDCDCB677E1286AFAC7AC73C42E 926B9A3EAA0C636D70963896F491CC74749AA1E5EB9E894236FAB9B490FEB386 E2E9AB5EB491AC0C48D82D08B3C1827AE1849A99D5707A2E7C150283FDE31C48 BF614B8334775C9F3D186E0F554DFDA9E240774081A9B7E892FE894D2E2CD135 B947718B81AF7874FE2DCA91E95BAFE76DAC27BB21DEAC7327B91428D1F5F045 FA2FCBC3A7618436C3FDD8A0C38CC374638E06AF705741F3BEF782AB42428030 C0121263A1EF15A461944D64FA8295BD1804B4AE54EFDC87C2C50E559C6D83F2 8D3B5A9598A40A452D9EF6DDBAB67D3B346FBCC2307713A7C30F501AACF83565 425DDF915954D2B564AF114A986B70F83BC4E93927072B241CF1D91CCE0949C5 5B1F4B7C7132AB5D08D8CE9A97541A7F1C10CC5D4127EF86A56AA12FA32A0A3E 1ACD7F80E6F1C489F50AC0EE2168977ED64C49E3C38CF3E13B708F577F542231 10AEE67D6E0F4068D4D1F92FFDC61F47C4CDB09A6A820FBB62412F2B8FECB562 E4E62A9A54EE76066C397FAAA8600F9FC232FFF8AB2FB9410F30209F976D2191 6412EBA9B22D1CD263D877086A797443EFA2C1522C2801BAE765F4E01A91F911 1E29E64E8C636A0B571652B5BE4E42A9E2D446150183A0AE8B3822FA5C8580FC 039D390602F780DBB79AF3568C74A86BFE3B1E4A28A00BBB93113A2197614DD0 C5B31CDDFDEC03C4D1E02A8ACB06499EB1A0DF6AC4FEBB73442E7E1AF84D4CB2 F205798EB0295BB3566E51FB458A785F4C2537DFC8DBE81C83EF1200012E0CCD 6E049305F271B2F7434899D11EA9C426A39661AA1B5F0861367DA0C02D1526DA 505C696886820D032D68A2AAD83675BEF74D37A7E261C4579842F2FA4108C6AD 6D8139840572130496838F4B67E876C05F559BA1D4ACE7170640ABAF4F6B435D C450C631EEAF8A2EFE266A01DA0CBF59BF715842775DE350C53D52121B4902ED 4ABC1C6823FF26E472BCA9D3B26F3A8FD30314D38C260789C911351A9E6DF636 DCA8259895B7421871479FA2AF27DE8A4C7EAD454275706266E620FB19508123 9D970760251C8AE57029AEA2F8750B4A18689AD6C7AEBD1E615897B34515DD07 3C2B0757EF38A5B46CD2E43273713E812654273AC3CED58EFF6BB2078D62983E 8F48CDC5DF7EAD2B6FE6C001AA6F5CB251B4D20AC5E069296CA9EB275A815721 31EEF47153074128EAAAEFADC2676F7251B6A3AF6448573251000E28DE6C8221 EDF4030AC95D5D1F0BD940E13F3A13E4DC51286C2B1D8AFF3CE1C9C701066CBC 1CE0CB96E34D617D0DF866389D03EB013FC5B3B0F01690AB5297F744B6E96476 73B4952B0D5604980DC993E4A29CE8435B3963906AD786A5902CC18A4E74F3EE 74589BC150843653CA397EA1318FCBBF76E8633D588B475926141A542F2B3643 17466DED4A2C921010D92182BF36E33D367DD4C3CC5471366BE754D14924B8EE 3F9A4A4FF85EB52A400F18B27A789AB3913CF09B24C5AF0C1D70BCFBFC8D11C0 B02EDA3A368BD89A330A2726738177867624FE31A1030AB5C0BC028FBCA17C9E B5ACA171E05F5F8C10AC1BFEDE50324A3F3E1D118DB0457CA99E904696CA0DD8 D5CAA78D67D98C567796E14857E1181660E7EC92610481AC9DA74914F2D9E6AB EEC3ED4AAA521E239B56525903FDF7B1FAE3EC587845A72ABEC4FFA02D16A21D F6D51D5ED62C2884D8F2EDB3C7D0A237530A06DC2723E54F4458121B7FCE0403 0DD890BC31BF1490FBB711B0FF3CEA9E6C6751508547A19258FA75F928D0FB46 1AE7A6FBA515A21CEE095D9B44F0B7FD0575D0B5A4978E9D59D9A8D6F8FC8AD1 2B6C12CDA6BBAFC54EAE71062D6F74F4044D3B1837D55124C400CDBF7319E6F8 BEC9AE767C533B79126763046E3DF6FF720B146D5E8DCFCC45D430EE4D729139 87BD70B28A05D45DF3B94720DA054B775F275B1B3C17EB0E1F2B1C98C96E6DD7 46A04E17C460FAAD710BE3CF810BBCBFB1589702B1B92C6DF78B703612CE6079 0C200196AA16A54B7F15A65A1A4658D1248E6D815ACF5CAA8E645481D1707D5A C2BB9A9DA12FC8734BCD8739BEFD53823FD413FCF3BEDBBC53CD8EB601CE05B5 54E25DFBF1867AB662915F39D1A26520C742DDFB2196E7F147E1E08A4AFE3A4B 30D6A02DAD7628F432D8801B73B3DC3C3AE3B70BA2EB2370F606056799CB2DAA CA6280A31731EDAAAF92970438CEC515E0DBBD8EBF163E58651D2D017DAD5470 3E21C060BCC7589579DF72F4AF10028E8C5E5B908AC6261A8D8E73E94D230ABC AC1E5D0C49B3781A85E047A86C7EEDE7A97991DA25F8F6ADA242D5C84B1E6A94 67EB1B0902726E2753E5EE29D8B3C30BB924DF363C4E00D6ADC18DFFA35B08C4 F83240EA1515CBA31B4A01CA17E1DCCEBCA0B16FE5FAAB58A48174C19CD7A8E4 E312C485EDBAFB5015A7228E657234A9AE42A60F99E183561679C93A799C5F06 584729B8BD882FB0658468DF16A03910670056AC1794552D91F0A17E906397F2 1C612F9FBF2EB19D992EC29C3E11863133C3402700E4F6522AC98C552091DFCA 2060DF6E2566760375050F33E9D2A22583B90FDFD175A503B5E656D959E37CA1 F699E8250642E37C3115D19D6FC467A809CFE06ED9E2455311AB787E08E7F20E A6930F912BC36E83DC0F2283CDDF82BC92B1CE7C31C9DBFCDED8DBC1AF27CCFB 5679B34D22A4F1D4727AD43F92B274920AAD50646F514B0E2ADB99F2A0CDE100 1C3459B5106B150BFC4568F56919B91E8739520316053056768ED8C28E783556 8229CF175FE29F72AC14114CF5D93F6C57A14F4C65FDDA148CA7CA93A895E9BF 6A09CB837C31F153F9EDD86AF88B0F4BBEFB9242EACF441E092388EAD66F3278 064D2BAF9298E206CD48AB6DE605CF6E936BD73F6141A8B4E4884A1BA2B819D6 9BDCA4EBB2BB215862EB665D539AC05C2A83D153C896E915139293672727AAC4 D62C801A1E3284B65571B08B581781BF273DD768FCB17F2AAA232D968EC19D45 6CE948CD0CCCC08F17A110B7FCD5755D9B431B064BDA103DC94FB5C698437DD0 5E31EE2D252296710825294A71EB04C58A21496382B45CF6BFFC55B6276C97E6 C5D7F17D962490AF81340626DD22F7B883642FD614C9C39C263A5A4CB36B1EC5 0C7E57499421A7C731A05A05851A2E40B3E5A1642164F9FFD46F74E9530057B9 49E2E4117394344CA7628A08751261671634230F9E082F71B2B8C4573B2F185C EBA617A5A789BDD683A26BA33B584AC029A4047457D560247C4EAE9DE389B383 6F41A3FFD62C984FDCBBD404E4F93B4AD9FE2AD07526ECF0163BE05A6F30EA97 307EC94575414CBCBD0B579DC18E0655F85FF0383227D602ADAA59EB56AD5DC7 318F1D2B4493A8CBBD3D41F037F006AEAB382C75DFB50D0A2CAEC469D4E3CCDC 84F42CA82A973DFD1C277EB8B5EA53AAD23860FA8C0CBCBB6698606801E0310B B6CA330B0C752E25E102C232E538FF160AF8633133DA7EC4222F4026C952057C 01B950D58628F541ADB9DED497EF9CAE6319F3A1BCFDA464AF0D049E7C13EAFE A35EA5EAF44A2311AF291B670A658232C7C66B3DB632C1706208B0CAC36ABBFB FBE8AB0D6964C735F1EE1447F594DE31351BCD98C822F48B4A07E1CB62484BBC 2DB4EDF3099126E90E7770F7DCC6E0344620D3F7364972398D73016879C1CA4E 377DD28CCBB7AF8F2548B37446979146D001903D0E575D9187694ED0CD46431C 3B08B93B581E1D14F6FAB37703B13AB93B0F384D496FAFDF5B8F8D58F8ED54A3 09044EF9455B227DD0CFF8271D075525562C58F035F9214E76CF83BCD3A5E9BC 5B6C6713D5633C5604C04518B6119A50A0C8841C679D49EC675278C50760A43D 89B9CA3000F9195A7570E96B3B5344FAA4DCE47794458DC4788F1C9A322871B7 1618FFAF13E1270B9CC49D6C8EE2BC6B27FA114969E5715DC0F06BCAEEFE5041 9DD9DF85098A8CF1CCE9790068FFF31F9259FC94D250508DF5806425E3862A9C 004E762B1884885D8846E92AC77FC1643D67CF4C3E8F0712FB876BEF144D8C48 B7F731BC9DD1678AA0B99D57EB84ABE91E4458D0045AEE739CDF6E7F276793A0 EE1C8A25CF08A787A3C33E1F2C6C54406335BFD852C4667E305EF796DF691873 FEE9933948D71268866DBA53973061966C98DB1738EB6AF514AB437708A4ADB3 6650B0EF2784D1356EC4BCAB419D870A65C8C76B47EA5D9313F57B18BE475516 5D88C82FF2B9CB84CECD725D9C45237952389A24ACF8584C9695B84D6705A163 B00FC442C65B4CC6CC79EC654377C87100286522580F2A45FD5F595B83322969 5F90906C9D34056FA4CC7F128D288E8D6A63812F67506FD9289F5C09A4E50BC4 847EB431EACFE122D3CA10F76AFEC873D4BE61AC5BEAFD4F012E5F6BEFED5B2B FEDF4CEFCB3F09C6E34D0EC3ED3971B35117B7F84058F51A1E478ED895440D29 88535AE88827F6F6469A6AB088FEAD5C887BB5986B95E39FE6E2E01FC7E3B80B 892D353821CACA2B86DF53EFB85ED96AFA7F28411CDB2AC597C57925F67A32AB BDF33CCC1D2A319EF9D267513DAE25CFBB30C97B4D72A191192A9748BDC4B0D5 08F929C62BE60D2B8FCFF339C0D12472D1D1AA7F4C67E59B58C6D9BAD0C53621 8564F2945C1B80C57437A756F40B54AC20D61B3DEBA4975B795D242E1D32CD8F C7C446C04E47326C66695398A7900574A0C9A933018E547BD41C08390E55374A E2A526B7A36EF69804613423994CEDD730DA3E7DDB11DE861DE2C55AD18B8FA4 3DF91FE11648F8E11EFA022953AC78C6DE6EC953FF3E9D6C56D70FFFB8A1EECA A9624F970C132C4338CB93F26941C0AC3FEFDC903CC3FF19EBAB992D7465F10E 44B51FD31325CAD0BBD5AC70E02F1568F499247CCB21FDEEA0A72F5B08C405A0 C1772C8B2CD8541D4066FFB81ED265061BE85E4C47FE9D77AC501F0085215EE8 71D441E9126E1F576B6D87003B4983CE57500401ED20AB1D7191820BAB5BBD6D DE495CFA488B277FD842A15D9849962043D669A6BC2FC4260F1AF6AA7AD8DA62 2345F51B73073727A61AD3B7DB9F1AEDFAD985607455C6C434A63B2754A2D8EF 6CBC7B3EAFD6EADF9F7B183019D7C9E0D67B134C23AA9A4E680D03FB08092DE2 AA2318DF3A9B64B8E8DE1B9A2D497BEE259A7F892DBB8788D7392B676512537A 19BC19753D7A202CE365C4BA4E1D228B1544ABBE5D924C07B6123F25D2E5978D 91D771BEBFD9949C5AFEBFB8A3DDB9155D37B05DC1E0E31D2663D6A16CE5DB0A 1C87B8D9A8EE291B5D0AA96295929CD4D6BF0E88C890EDBA753748A1F7879901 819E4BA68D5B264E792B8E6F11D95A09837D153248E7B05F887FA083FA89780E 1F54D0C6782E496DD13C74812CBB1B76557EA4C094C6304466AE8DCBDEF65606 E15A5D5D50FFA05B7F612176C16F965994ECC62382D92B949A2A1C11DA8A198B C6012869500260B87AC5B8F90C86F2E59B26D82FE850B2C5F75A39887840927B 1DAC4D69D3542AA43722748E2E6E645BA23A775C5E7A3E76D323CAD2FFC455B4 4E236C7CD109DD9126D23D554BB312DDEF14B7FAED299F057B62F89F4F0CB605 A7A826DF893FD503E4E5BBB3B98A52A4649FC8DBBBAC5003A15FD5E0D03BAD11 1F4F0BC2A9DF317281DF665CFEAA679066404644BD18DEC33ED8117FC6B4B2ED F9B078C5CB73A41ACFA6BAC5F1C8427C9AE24C3B6D406943B7F306F258CD91E1 EA69F3D6D045B5FA2527A06CA79FDBF552F394B530E689F54791CC14C1A18C8E 91E5CDEB7943B27D42E3427FD9BD27123C37050948F911811FC94C0878BEAE93 54EFDBD8906C827F6566DEBE5B3A333054779E4F92924A141F0E8A81899C316D AD3B53E32CF5E177D13AB847CA600DF9F72E3C9BDC9BD16526B4BB1B295B4553 30C5C4369E78B168BBA3C565A45B8AE33B2106794FC24A4EA456226B2E1544C1 0E0FB344B66647CA7D648670E197F740DDE9F250C95BFF29CE077C7705C852D1 3186BED7E7B3F0A0F094ADEFC7A8584A21408D43F9AAB1A2D8857137FE04B21A F0A635E2C95F68DCE021184DCF0A02BF5F63FC60E1403E08691F7D65FD33DD72 A2A17A875B1DFAE1B77836D4E33292B8C4677D86C901D0E5C7FB38A0714829BD 3D92BEF9C4B6F6FEA416D54C7DC477B5E758B832542E4FB197055764F7094D2C 24A83D3A1D4AAB6DFA6E991A9574038F34BAA2196266C854952429BD43362544 9E19E70D6198D9E51C14846DD92B41DCBAFC5BFFDB0D9C33AFACBE8D8C4F2C11 82A99B3FA52EF06CF5EDE26545A765DB94504F79F16F9E07E2245F1B10F75C43 AEF53A952ADD6189584C06E219B0F3F57A6ECA59A79AF0874C48CE52D908A6F8 CBAEBD764933153FD6AC28D7FC87938AAD47E5875487E29C12634611179E8998 C8D05B0A3AB1D634AF62120734C5EA3D87857EC4E89BD770FA7D1D986DBFD899 C86EAA91839D038ED7CB2A898737BB3CFE50336289A98A9C76689B6BCC4C25E8 71B7F1EC63E7B7B1B528ED5D2CB205DBDD18ACD66852D632A887B977C85E2A48 174A701D33A229DCD63C2BA164D86482FE1570E312B7E8F137DF83A8FE4D4720 6756683F83354DD9310A68D49F361B83FAB390030A939D53BF69236252166B35 3B25FFC9A0BF047BD86158DD8FC94ED2C9CDCC3E258399213D32CC8B35274A9B 61269DE206594F18973C14ED9E5EAFBFF50FD728512468AB5AB8DAFA46470813 C766CDC2B84C52260CD6C03B8F9A0B4A5422561C13B67D57D64EBC2AC31BABA9 274BA92B3ECECE804C40390CCAA4ED604061242B4B1983A5D01217A2E8193E41 A9342B9694E39AF57CCA2CDF00C683224B155F6AC4E306B9848ECF2F27D0B1C8 F766973D7DE4300B45104C47BA98560CA21CDFB7C7B615542993A51D3D51D361 28F67CCDA3C495A9BD153BFA82C9B8BF5D4AE6C2C7A78F3EA3697982852DEAF5 6C96BA9CA6D32562EF6F84DD2A3AA36F0CB4B6D371105122A8C99FCDF07E4E05 938EF82644DFEC40525F01BB06B958F787B3F94B4467EDC4F0515C9D69896A44 2EF69E9123012121EEE3B9CB2CA3F1AD1D07AA0E45 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMR7 %!PS-AdobeFont-1.0: CMR7 003.002 %%Title: CMR7 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMR7. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMR7 known{/CMR7 findfont dup/UniqueID known{dup /UniqueID get 5000790 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMR7 def /FontBBox {-27 -250 1122 750 }readonly def /UniqueID 5000790 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR7.) readonly def /FullName (CMR7) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 49 /one put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB981ABA2ACC9A23A5 3E152596AF52983541F86D859FC064A0E3D5FC6647C3CAB83AD4F31DDA35019C CDB9E3DD3FEBD4C2B36BA3CF6E6C7DA85E25D8A31A9BAD39BDF31FD0D1790707 9DE6A078E8A409D8295F642DF492AC4F86AC84383B0F4C6BAA7C22AD5A898A71 D6CB34D2CD12266C486B75E75A69C14819DD9BB8159088E04D4717E576B8482D BDA52110AC8B8A80E4E9D58F470EEBD3CF44A1E1EE8DA318FFF3611B02534FC9 F4018C7C57E80570D2F634D98BE5D5EC6D95051157F0EA94A3D12BE0B4B79939 F82F8D73136D3337C44E314B0B16CB030D9A12E01FB667105F334C3EE965E5A3 D410D2F1531547A4497C355AEEB295CD3C5334BEE5232992960B757594B89F3E 52095042DBE6B4DA3C3AD50CA95EA9EBADA10630B500CF1FCCA7D60306743681 7E428D33B7F7C40B425CD58E4CD8AB474BCE6A307BC6C6EBC15A8A96E0E2977E A33389154536F5C5D8CF036D07F24094E779E5ACBE5502C92892F10F4C6DB627 C7EC4C7BF20B39418A8A85D7FD9B0EAAFD871DDD41F93BDE5FE619AFB8711824 DE890E62C1969A6FE28DD3578AF43D58A728FAFF0B9FAA640962C8F35A26F76C 67F3548D6DB54A25CEB368B47F97EA2B0C4D7C0E7894A4F0C823C6C1922CF9DC 10E05600556F1C7C9AFB33A2DB6F8730F70D6BF94B1FB0887451F2FFEEF3584F DFADCFA9A2D4846B8F0E51620E1327D994CDF973B837D10C90FF76DE22B47CD5 EE3183898D156861AB4DFAD34A1E3FA260B8164E6680BF58413A553E88F6100B C4F4E8E972C81A5F88A7DBCDC308B4C3581BCDE13877B976B1F84330839FE5CF C78551620EB803DF94A5C921F8EE24F7EF8FC4C3E1653514212631F54F90E3DC E9EAF96E998F340C4F729ECF7AB430FDB7C0BE3DF2C0D23015820E28B743CAD7 7F0AE95413C3EEABBC69E852F53EE1DC260D7F1E712BECEF2F18437DB23D8E74 2902AAFBC733AC5BAA452DD6F3671859AD836C8564E99CDC4183D8495AFD99D6 1F0D65B6588CE7546717911E25BDCA6C2649E3A7466A3E2DA7C7994A30AB4449 672EFD00632EFA8629C1AFB7D53D801028F77C864869FE636213A69173003EA6 BE1ABA95EB07B13D1594BEFCC95ECB0A9CFA9892EE0677D6B6C250855762B7A7 8E4E022640F93169DFA0303A0D5E73BF3E0F4D4AAD10FD7E4EB20532BA30371F E9F480F9513432946F9828AFB5D4AEAFA5829B2CB544E5EB634C4537EF7DF08A A1CFD94A52DCF0E7CE4C5EFFB01E6D50558B75DB4C8D5512B06080F27BE62E01 2EEA6A0357441401458C842D3DD4C35B8F561D816B336216CE0C14BF77648AF5 E33912CF95872A1E1AB9A18980A0B29A881D13397C15E1CBA5D3E0B27943EBE2 F3003D15EB446BCFC1C231832475D5B7AA19E4CFDE119D6CD62D053C6D29C333 5F729791D17B3F7108074EEF4D1BD101CB33E01004532CB0D716D2E54D169C6E 80163E70C0E9081F31A1ECBAE079D2A518B790B0CB2CD03DFD034A0F4788E800 B0CD2DC1FAFDD487C2F381EBAB2A2F3F3AF82021B211DC9CD2FBA6A1BB3D4AEA 4C7F3D9A5C21DFF284CCB827D205A69638E98D5DD8E36AFC1A4481B5CB2A2E8F D6C838DA6F81990F5ED928DC7457501B5C979FF4CD20A830896A460C5DB13D56 A3B2B5D9B292374A9BF392894DD99FCD6A1E655AB395E839F074D1596488700C 4E2891C8AEEF66568E82A8B826F9A28FF84D4D9BDA21F638EAF96880B4EBE0D8 081982F34831A03BEE81FC177700C2360D2A48915EC40D5FE85B400E175D5AF1 067FA0097904FB647757BB44B4042D30D1557BD0F7922D731142FD682139CEB7 58CA4C8C240A0B86B1888CACC507E24E04020BF1882BD9B4CAECFA97DB24D7F5 AD64C69454027F198BA35881B94EE9159A2D73E450C3BDAED66B886D6DEBC84B 653E165176228F88993F12A170775A8D7038BDF2FE8DC1F7B98BDC02D1E6686E 9B834F6C0AD90780B17DFE25F0A4E470CBA84E73F2D22BEE09A040F14CFA2C14 0FDA5A5149B5FAFFE49F55EEFC43831BC43A8326FEE9C7F469C0FC3B000884FA 41DA7318EB57262CB96FC4EC7F16CA07FE1C3BE8C2DBC8A8135953D6DDF20BDF 75A2B6D26074FCE752BD32FB9F5CA797775E8DB9BB9786B469A3CD65A0D9DDDA C2A166E454A94860EEF5B5C12172DDFC576A03F6E6F8A735FF21A3E9CCB4CAA1 3064893487697986A42CB5888B2B0A79FA3C74E8187BDDF7BEAB884B70B8D4AA AC6615745AEB906E08BF831CFDE222F58D02B428D55E9D5A3CDE74E42D8A2CB7 E1A3A9439B678AD438793ABBEB72B21C58981DAF3EDCE4BB93D95F4A1E943BBC B3A012DE92FED4F232A3A7D60CE60B605151F9C7C18A5C653E5D6D15E5B49A63 73E7A339504D0ACC74B8B116EA88C3EBA2CC631AAB29F761E5F062966AD2FD28 7FFE52FA8A115DBE23E471094FFB3CBAFBDF11B7E9058313F2D069B2CE98A962 64645738F02A31E2F2AC11628724034ADBCEE012721EBF0A567893411F950410 B20754A7510D041FFA6144AC9CC46D846B82581F20BBD001D34D9764010824BE 61C30D05E5C5D100A24F1917F01799CF5BC4E50FCECFEA732CB50196825F0E08 8A1EC868C6D4357857EE2957E081A0E4372E31A8ABEF23C3F2EA0FEE57DE4D08 61C570175C41AA0C7A3A579ADF593F18B4AE3782D2552E4E0759C32E059EE741 2D8191E381731769F6648B3581CAF11DAE46471896666F18F02918B0860BDA3C BD5DE777672447C23C62ACFC2611ED5239D6A266FDA6031EBC5A530C1A2FF7A6 B4380B9A4C877267854AD1F1677CB5433F28894ADF93D39EAB94541A8D232E08 22D082D0951A60F62B87DC028714EC74133A4D65F7D0D1296C0E189C4A42AA98 28E8AE7ECBB9FC8DFABCC6EEB1E9FB06227F90808EF31331CCC5D4C9A6182181 047902DC9FD0444FB94B60FC74F3B677758088CE6A159D940C5CF682335E756A 8BACF06AD7225D49B0002392C889B0FE2C71311D2596F4903D12FA20BA2FFE25 A0804B4BC282929BE31E0F46B34532CB5795A65218CFAE21F390792DA67775C7 B91A2BF4C16DE4F6551DAE3A5827F616BE9040EE6B1008DA2F99A01EF66D697A 6CD1A44E0A15D1F39EA8025E886A68A1E9C334327C7703EE721E497CA924AC90 7723106D913C5ED4BA4FC743CEA8D0F5172526107DA65775C0B1B77179D336C2 9B09B608D80B1A1E87CA1A84A833A00D980D919BFF56F6390E9D5B45E9935CF5 E69D003564462F750F7DCE02DC23CC215A0696B74D8BD3156A392A94F557655E 00BFAA035647568ED66157FACC585E411F7F428569C147DC43F6E4FDE693D0F3 9917BEFEDF61FB980B85515FF6424824E2D995B05CA1E5D3E8BD8D3281DB7CE4 E54923E84058FFC0A8A2C491327D0F87CE4C352B724167CEE224DABA3B95757E 4A419594BE4F92E78BA6D35D4C93D31ECC3134B24A45DC32445725BB044F09A3 AA8C31EFC0A2944ACE2F2CE054CF24DB350FB3C71115518C24BDC0F7E54250AF 9D3378D38480E1CB9029F31570C619A28F065CA4FED5665EDB96712ABEB33B9B 4232C00C1B0215F08D53F7E430887035AC25BEAF06942FD1B6C442253C887AB7 D694C1A6115C8990B4CAF1E81DD1FDDD6B03C00055BE956BE7FD8A4E1049AE69 EDA8593CBA8C4A41E046C689FBBF9F1B64E5856A7FB1C61EC815A56DE2A8ED33 41F370B8203D4E5B19C63AE9E6E0D26F4F3814B5AF48AD30EC9B8402C941FDD9 722FCAFC638FBB835F83DC77F93D367266FA7DFFFCB567EF82B1695AB4D94D09 B18AC041811027229DF431F5CB2BBF6ACCE9D500C8F075A74590641C1A607C56 D2B8624797BCD9C91C3177818691FBB4744EDB6056464A0B95B8D63F7C22309B 82D6126E2057BCC9FE5566D96B7A9B201A09B0D3252A5494C8CA2C8BA8A13C29 37EF2A882D61DA708C279F663D88A8E2999A0F3B6F98C49901A7631BF7708B67 54D0B4C52BF4BE0DA0439E6763A7C9D639AD4092E77B13D3510DAE1475C978AC 796F9B2AAD3BFF35C5A3E19B5E2BF704B3BBDF68CE48BA4FA2496D60E58888EA 28AE12D00E9F0816FAC190590A865BB58569A91BF0345D01230ABA361442006D BA2C90EC2036BBAB79EBAFC3F217DBD5854C519235F9627A1C3C71D21ED38AEF 0BB40F3B86BB9F09A3F309473D8757AB7E638DC1C59A7F9BCD49DE4107A2E54F 422767FB94048987847205584309397F554744690ACFFDF5902FE5DB355930B8 71863217830DD7A563B0B3A4025ACE75B0E777B4414B62A13B50C54E0E6D47E9 D43BF769B9411B74E1069BF71BA873B4B8973EC9BA492A5DEA58D267872BB246 10AA67B143D0E2223FFB4991E583E629413CC894C3FA4869B72D19CE1A0CEC8C 0FF5E5A3EC1FCB7D3C4289813F0D249A11B55104BD60B2A89BEF44CC77CCDA9A 065B8B83B4F4253AA1D535290DCFAA4773452D110D2B3370F9E2FE5432B54A9E 644EB3BA9BFF62347F376839024CD5EF3C5DFD30F412DD5474B7933E6A1AB63B 4B12F2417C72D0543C26A263AEA53E5BAEBD67E23553A72E949DEC556BEB5D09 C4D7A89B14FE4EC68D0E3E9D65A64B285E53590F418EDA8175113CA375A29930 DDCF4C71ABB26CEB800C2C2B253AC1F53651C88A56ABE5A74F3B54CB4FFDDB92 60AD7272BA25EC2F6FB759AA6E1E7964FB55AD09F4EB25DE45FD01833947BD05 6266AA8ABB7DD792941C7A070FCF3A4636FBF8921C70298D42FE92F079DBA2AD 6149D9CF9EF7264DE6DFCD4429949B15EA90B596340713BD61926DDB2BB23BE8 F9DE38A31620A817420A245946E551463960A8C5C7295E3B3D6A59BCDF5E472A 40B7A2CDDAA43CD8AAFC411D037142579D11054A903E102DF0D0C7B5BB854DBA F3F086AF991F7F5D5C730F8F9AF213F25786F3EC0E54530FF912F4876FDE16B6 A07D0DC4FC46EC6363BCB68B83ACC448B801EC43FDD2F8BE0E93D809FF81E38E 176AE17C67C85FEA58EC95435434C49A950AA955D8B20989C550AB1F1C31B7FF 99422E1F48FB7D6F327C6DBC4695A03903DB275B94CB39386E46579271870A25 21823E75C377E9D5B46655E8CD8F986372CF8BA846423E26582315A9D19E0BF5 305C32B2A0EAC3ECB275B1D8BE11A37ADF524944219D94EA2C5DBDA768828B6D 775DA8CDB09E0570E4ADDF462EFD8D3FA3F86B1DEECDFFB699AF6507257C1879 16FC615868C2D51F03CD57BA38D42995D9164B257441210084DC409B6EE4C119 0B2E17B0A8D5326DD0010E4A325D5F77BF935693BC90A00A28C7B5F74817DA39 F47A41E32F4F92AA04D30D810F7B1484EB53AD8CFC8CE8928B570314E0F713F8 AF127227190F9C16BB73D2A217FF801C391A29095DA5E4974D137A0CAA7DE702 E20DD4755B1D78739756A5E7EC3542B96AD6844199FFA2F5F2E9C64E2DA4FB2A ED79869F745C59D235438251BC2E6D26112AAED20E06021D1AB896EE1F1DD2EB 437FBD4A25E42245C5A647493FCC9922E6DD7AF57D5D482921D1CBD6F0F02949 C27777144751C1E72F4EE2BC343D4AE7A8A8758123B54FB1A026144C643651EF 0907A376945E19A8FC7F98A034832A5820A481B0823F980F59623E0511593FEA BDE6EFBCC0383242CBD4954027B075B21F10472059A480D6E5ED01C3B07461CE 9810251A5C5643EC7403130C2246E8616CEA25EAC7A0076731FEA8CC43BCE3BE 933FCE61067F5FD402E67E2B9DAD954AA77C5BC86BC5E4BCE2ED676D8D8EC7D0 ABC5C86D82180B9D5D7451C71B5149B6B67883578DE9909317928C0A92E3205E F23015400A1763A6FBF67FDE3318AD2696685A1832FC31CF38589EBC7CA1C818 60D2B2211E04EFCCEA88D9A9082E82951EEB123924A267CB03C48889032F2892 4227E217FA28F87E01CBF27BF1EA60641A4238258CB7AA355908FE36D90F5CAD FE992D03A33E47CA9AEBEFDA57793F39DC6A9E85D5B289F6B862B35DBCF82E43 5CD6A862F6FFAC36478C384C3BDB0148CB1FEDF55969C776E77917635B5A65EB F2AD351D21CD3822D43289FE8EB0FED58182997097C7E9F4373553AE1CA92083 EDE3BBE6C3BC7009D15AB5FEC6A59E9FD1BCC7B2099CA15FEF083B9CBF7B890E CDDDE6BA0AFF306C76500C945DC91BD533FF9A585CEEDEF79238C54E6168001E 26FEB29E523EE501BFA4F60B782B1499B07084C35A2434B4D29D3D8E2C8F945F A9922443B68D07DF7EAA1F4CDEFFC438B597D8943E231B5216808A85F30EDC81 9DF5DD22F54A45335B4C2203887475F39D247F0E7347BACFEAF220ED82F9263A 6488E73C1910023E505FDEB143006C1A351D441AC57F9D52D2C6D63D78C75605 999885676BBBAD56074298E0BFDACBA1830BA58E87F436CC670EE8EB1870154D 72DDBBF3794F8CAAA3F1E11DE29752DD99EAC695838A19BB67A1FA3829B6E0BC 5301610A0351AAA749F456AE31ADD87D6ABADCDD1FB3CE81C3713F48780DF407 530CB284B2AC709F52EE7AD647DEF9FA4D2A867CCEF728F3D40CF34C28D21527 10160B3DAFB5FE16AFC9D36C6EC4021FC189005862082BEA60AC72B63AD27D72 FAF3C2D89DA2648FC4C65104A069212D87144E8533CD86A6D73DC7CD9DBA25CE 7DA53B000266F3871B24663C77723703315C5E4A89DFCDBAB384AE7EB2F455AE AB191FED406F7F6EC9E5B8276EF5C4CBA041AC7E8BCEC7CAE840154BDCA3232F 15711ABD1E867A434E9787CA0A6D1F197597DA27ED2402CB2D84ED082E8D3A39 81E6EB270DCA4E7A90E2BEBD3CBB3A2BE3CAB926192D7292CC16845B6399A543 BCFD224BB52F21352732DB5154FA3442733066CDC3E186D8AA97CD801DFBE43A 116C86889BE198DA88CA978B8C40ACB67E8F7BA499DE68A6FF0DC72C3D00BA1A B378B39610F15CA026F95ED8155CE3FFFFA2E2FEB352DBE14CEE1669F2387B70 55B91185FBBED764266215D518716EDA3DFC9E5DB6B148A553E75AE5E38E1CFC 6EF47B314D54CF24BC13856F4F7C976BB91D143DE32FF49BFFC87E17885A1893 BA1B8E441B08EFC04F7D103C1FFBB665194B3D0920473740C55FB1C50EBCF717 A2359B687FCEAD65616EE89A68F8D91AFACAA0B238EE4AF0279AF5BE5294C3DE A7E1F5E6248C0210E7D40683F04B12A933C746ECB517CF94BBCC6E4CF49AC715 D8005AFECBDFB7A6B417DB8A28F8E9EAF39CEC1CA64DF37A5E66A76C26F721F8 A63B003A040A62F87DCF61B298F960D510BEFA453F118E59E7DE8CA3DD002EF0 127EAF733D5C61B5132348D280F84D159809CC71A3C6F7373BBFD8D6EF715D34 0016DEFF14AA5F960BF1BB9AC304A1823722843547BB4CA5EA4C41C6C2701C8F 7BDC810443F9DF34BA469A3260009B799871BAF8523C8763544DCD0B382D44C5 F75046AFF85F0B5A3188C2EE786CEEE5496A5AF4BCB0B429CAFC403FB983EFE3 61FD9F52ADFC38E07A0FD7BACBA530D2E4DAB2592AA9564843E7E2305047F060 C5FE4243FA8FDF1B5D4F61ACA7850A604FBC6D6970959752695C90F78961B4E2 C8CFA41082B1A37405AABCEE5BA3DC2B9EA76F486117B84728EC6D8AE6379CCB 402C2AA89078EC992C00D53151E9D82C65643F549A572A20F05107A41BE5AC57 8EDE92AE20B05E2D0C98151CC92D5389A675DFE39DF546A33A84A4C534337ADE B17C34E09145B37CE1EB1D10D42CC8D6E6B127A3809F7202381FDB88D42084CD 0AEAEB8A8288CB56870EA2BE9D0B9DC8291021CA561E2BA388DA3494E433E0EE 5E69DA51D0AC505C9F71562D3E9750F23CF14D2C8ECF0692FBBCB4A92B48B4B0 AA2163A447D5FBE86D961AE4D4251149F11C4BC269E10B48E8C42DC2484EDE87 6540CB8A5EA2494148D09CC9D5014EB73C29368A3945AAA1BA4C17BF640D2A0D 414293480FD600A77D37471828C4645C5A4AC4729F4EA76FC946810B4968EB0A 719D8F3E61D2B740AE9A33E9F02982A13ED4B6ED0C6C4A93A9E9EC045D0CDADF DC01ABAD0BD95692907C04F06F06F1BF6259C8E71099FB64B4FE263D06C5854B 070C8B864D8ACA6EBF440DE14DA34A2A548C9F1557C70A4D718F4F881707851A 6DCC39BD8791D806F5DE551CDF8612C7EE6707D554CD826CF352CA634FCFAFC7 232F32B3F0EE3D2577915BEB212005E06625FFC9F49383C9C64F51B6541F6AC6 12D2359547103898D05E52CE54B46835 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMTT8 %!PS-AdobeFont-1.0: CMTT8 003.002 %%Title: CMTT8 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMTT8. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMTT8 known{/CMTT8 findfont dup/UniqueID known{dup /UniqueID get 5000830 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMTT8 def /FontBBox {-5 -232 545 699 }readonly def /UniqueID 5000830 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT8.) readonly def /FullName (CMTT8) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 97 /a put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716 EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C 02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D 46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A 4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57D06E82116C79486D8 C5C32DADDFCB2CBD26FE85FFCB176AA09FBE325434B8B9D358B7C180AEC54F8D 24A1AB4D5EE5375B963A221F060453E01768F0A398352CB2C76E6E70BA017570 BE1C3D3A86E803B10B506FD9DB49DF5CC7BE17133234D7BE9230BE8B7481B357 08595FAE04D04B14C633C52E303B06EDEEF7CDDF20F34D7F08D991DFE2C4261F 298E0A818EBFF29D3B29D1D0CE2F071B49B0622F65F936F6C1D4C6AA2860E56C 9140A4FA23BA31888345142DBFA79825662511437347767D4A13A976FCF67EA6 7882D7B391B37FC1E22787E484D19BB252C4D73AA3D73EFA5C6341CF6F127033 2B91079B5FF8A164666CCC65D0002EF7E374098745C84E3037324B4248C5385C FCF0539F8C04CBC52404BDC6ABD1474617D06377A69F4851838F462E82A86BC6 F8DB2E740B5270AECB0B922D4493A75422349138B539B6067C040F3007F04191 CB545ACC01B4F28AF811266260FEEC04057287BB5C26C077946DDF23322FD99F 2B3DFFB62AB8BF12000AA81ADAA6A064F9C34D5F36CB7F66A5EEB7B494FA1AAE 32B380163AEE08F5BD270FAAD8DAF0CC5B6979B8D4FB6AD723E011DCFE119092 D1025BB62280B745BB0FB140E82325F1FDFC029100F922BF206E5527B7D8F60C 3F3E3AE2184CB954391D10A1618FA0940F12159167494E29A46125CB911B19C4 97B4DC76FF53B7F79E380D7375FAB6C30A467E02E48BA73403D3900FBB440C9E 951C081C8D5E04DC0C8E1BC7D552075CC360B7D1007367C655069324713715BF F8182AEB6F401A1F029FB3962BB3A0B2775979FDFFD834D5559EE20CF54D7D91 D93C5C0B1E4BC9C5097DA97E893335D6F25B0215755AE271340453DCF8252782 8607B0F972DB969DB772EB7BEEB185D4E20EAEE6BC04104F3D484B0A702514C1 55113C7286CDADFF3B72732ACEE29B3711F5B1AD864B05DC35F1472686B200B2 3FCE6AC13FAE056EA1993EC64BBCF7A0477903CF2F3D58BD5426CC64C9A6BC49 F41ABD24C4CABFB9769EAD51191410C4D8EDC60F0EE5702FF3AF9E14ACB750D9 8062B2D208E618459B7CFF801A19CD1EA697D9786D901579C497C3277CBE65A9 606F8977813CCA03C91A43B254E4642655FC85AC4F1846F40C12EC9D84B65048 F288A4930B5718ADCBE9693946FC085B0B7B8F0A78107BFDEFF431736BAA421D CA836D9A7521F66B140E49D55E2BAC0F0CE27709AD06E535C963EC33384E7307 A94769B4EDE9CE0001FAB7A0D9FB3DC22B07EAAB04AAC36CE0DF7B9BBB53E2BF 651A22EE851F2F6729A0532C6B7C056991E80F1755D0062855ADE2EBEF7F86F1 0D4E29DA22849F223CFA8DADD219996CE79567CDF9BFDC150EFEF8CE36CE0BF7 488D9DDCF32A977EE94BE881A44B694A5B0286AF7BC53A0869210832A514CDFB 60474202B8BEC4B4EE01 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMB10 %!PS-AdobeFont-1.0: CMB10 003.002 %%Title: CMB10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMB10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMB10 known{/CMB10 findfont dup/UniqueID known{dup /UniqueID get 5000761 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMB10 def /FontBBox {-62 -250 1011 750 }readonly def /UniqueID 5000761 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMB10.) readonly def /FullName (CMB10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 50 /two put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 91 /bracketleft put dup 93 /bracketright put dup 97 /a put dup 101 /e put dup 108 /l put dup 110 /n put dup 114 /r put dup 116 /t put dup 117 /u put dup 118 /v put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2D432E1428FB6D5BDAF 3F02C975AA4E0072BE5F8CC7D3D59BA3FD04709FC9E52189F55C7747056EDBF5 F85CCBDB1DDE9F9163AC7158EE8DBFBE8D94A46510118ECE6A280C4872F448F2 E6A6B36AE3224FA448DAF204D1C998D010C6BF52DDCC45831DF1EC22528B00C7 70525CAC9F6BAD892E7D5C81295A2AEFA8A5E4B6BA2C4EF61FD3FECFA2A8551B DC84DAC597222341E762620D3D3C1A4AFF2F6D68C4813004318FDBBDE23AE224 617F7BC1F3846943E915624D6BBFC555E2EDD013F190492F03CB64E5F2403723 7A2D4652BFFAD1FAA1DBA4538F2C3E608367BF95E09B853A2BBF9930D9B3BE46 0BFBEF05DA75DF3D8E11A09D472A9E45C626428A1A599C111ADDEC7A4E70407A 014F792395A2A12303EF51698D487854EA15000AB08BCCA8B2E35A5018F5460C 9B223315D7B838BFEB224E8D1DC9A0C1077DA31F5FCE0D9D499EB0507B90E9A0 1F92FB5FBB8D40568C1E8B8CD6E1DD27CAE6E107AEAC5696CFEB19091B40FD77 7A4B4F0F261702BFF5E2320C62EB5C6E9DDE142E9FC7DEAB99D90297AE0F15A7 04C0E3B39FBC85CB6B92BDA7917698230B5374D9159807ED1D07947D95802693 A856C84812ABD3EBA336B88CC8F37288CAB59790B0882A4ED6815FF6D7A1BB35 5C7B7437D2ED76E806813478007886ED1009A1E73CCE210FFA69A20D6E05A713 F6EFAB133D146B0EBD547CD29FFE7870973C1E71854C1C643BADC69974BE360A 4CF84FAB098EA3DCD2DD8B2FAAD19429B0ACC7C312B03E6446F1C1D51E6AB45F 72F11FFA078DF3196EA970B24B1BE607571795A2FDC2EE7194E9422C483799EE 23E16A737951BB935EE2C2BF008B6190E0138D551E75C9E6D0EA48E64E9750C4 BAAE32B894BE25D092CFAE894230430E43C585D0F06636C8D56BB80A4597A0AA 547FBCF12821C20F0E62369E1A9CD2343B8A8647B2FBB1F4C86CAB1F7A14669B 69DC857F9BC7538A864E523C2DF7C830315E0907CB17C8FB6E412A2A9E88317C 0026A6A402B36BDC433015AEBAD775835E5ADB4EE75FD8CA06C199E000CEDF93 00692F29C5394DEE45DFF2D42872B1370C8D4A14E144FF36163C849F9339AB97 EA87BD445733162A34E609BA1E92DC92F9AC892E7A0B39AB0FFE517856491695 56155FF0C2B231EF1314CD4A146EDB1CA9AF7DD546CACDE1E6B49BF0D4ACBC09 55C85E2D38DF84E0B779642F7E9C26CE19EDBF328104B9E803D1B03F3FC24C4C 9EF0D27C8E5AFA420A63981C000A0C1F0B3D3F853FF300EEC524C586376AF998 DF4ED5AA16D8E298C159C2A3E33048D4EF192A11287F69B11BE24D49A033B334 83CB8783383F92EFB9E3BE84CEF37796BA4211E534B0360970B9C57EA7CB54FB F582789A83113ADD2415B3F84AC4ECA15DC70878A32559198DAE67B083B0EE6D 68A92511FA8FD6BA88A42769E3FBBBBDFDAD61F99A6C274B48CB044D16FD5953 44F1503D8D1D6DBAC41C1246A71EBCEE5B1F0DCE3EE7E3A99792DD8FFBD94DD4 3A5ED347A62D301B6739AD2BCCC7C57378C29FA5A83759E7AC6F1505DF6C0E16 71587914F698608AD93ABEC43611DE709ABC3F1C0A1343CBED5F09DDB4FACE0A 8BBA9DE5B85FE9B4365358DFE877BBFD9AF08BC60BAD7C41433BBDBA17EA9A7B 92F76358612FE44F43A85588DAACCF7846ECF5C58B22F18120F895317609AFA1 06E88CA1D73C4CD5098CF44093207C31F46977B6D22665AACAD5A169906640F6 3DFFEB3937BD6CE1501C52783743F8F6110DF43ECF512D49A55379432CAB1C33 7C38B7A38DDB91F0683A052378CBED8BDE4E6DC32FFF6D723A4D1469D32AEDA9 FBF89B9604656DD0D44ADFAC39BA893808676E1E08444CE56F6CAFF3E93D8D41 F164049193BA11AF94B43515BC79D6A538C00B08FB518EB67C27E73380A651DC 4B244E8A2E4ED405EA5C7EEDDB09D44C458A883C839B98D9D6A2209516E0310C AD777536190ED06F47EB2ED61C53A2E0AD0CA4E4035324DE75F272B1CA6BC1FB B912807B7331D932DADA30F1975A1C9A8B55604EEE8A0CB514C6CAEECAF9C46B 5D5563E8934B421EA1CCE3B96412D78DBEEABA59FC603CC6ECF65BDB5B66EAF9 14B852CC04286EBEDD560713090BC417A10BB834944E007F45B61AD6E6150B9C 10A6FBA56C1B45EA5F9A5379B1A0788513DD4100B82BD61D89E6841A26B362B1 D4762EAF4FF3BEABD882700BE9832115405728C5292BE942F871661EB0E6B29D 430CB271A090B6F5399184F21ED6728171B1783C982E61DB7C0BF90CBC1482CE C6982B4F0AA39076B64CCA5A71BE73CA65F2CB60B89AFACA957EF8E6429F2182 CA36220F80EEC5D01AD7061DF45CC5109D9F0B7E2B6DB9D6C6326A45DC6C05D1 E81B636A82592D99C7B7ADA0E958A0D7570BFF1830017A6241AD62C53D4CB36C 583672FBA265142DCE545F4855CA3D9E528143AAC66EBC9527B76EE43B4F4E2B B209BD265D6AEF18D168CA7BA2CEC40DF86FF352029597A5A3B2941D467DF229 50C788D4276C5B400F360AB596E35983262A215047C9714912B2E69CABC0DBDF BF6925E19EDF3A6638CF5794722C8B92C6DCF5853DF288B9DA52A2152F98227C FC04D3C318E7D942E9D33582A490888F0C1CC1A8C4474091B4956222DE467632 33CF5DB7DA165B59A648AC6945687B0ADB83EF5B286CC469B2C9E4AE92ACAE8E 86E4C62A092B8F6C05EB2ED346DAA7C573A03760ADB3CD55B6C794FF4463BAC4 2F4A738F9C4237107C503A7EBF4F4BB4380DBB64F5F5C9B268111752FD2204CF F25085683D071FB4149A64426859D407936A3D1E2C627652C126D8F9264E2919 960ACB9DD61BDF973492CDB1FD20EA81E06BECF5E164A8ABAC12926DE1CBC0FC 6693737B4875F465B5623C899FE129B3A52A2BDF104F8B8429890AC870580C7D B078A9E26C322D1A8AC1C6B2BF340813D989EE8D054882B965905D33EC3F4278 DC41BE055E0E5F73B5A1F45E9E69718F5E155B4EA30B28BD28C52C6C322F2E84 674CE600D699CEE1D2CFB7212BD8168B45824890273A0AAE4757D112980DF2DC C3026300B4BBC9B081817AC7F4D48B309E66CC7455708C772A08EF6FAC829363 E27AEBC3E7D0A91984C05935B16E102E81D6AAAC347E38EBA40125543263BCA6 9C6F4AD6BF8C3A90279FCA4A99D9290C3B8E0DEBB4B2DF932F66FD47AAC3094B 7582FF8265CFF8BBC7F79C8C74B1FF94B26F3817A39B5FFC6BB562BF6DBF9CEC 31CC3BE4D7E431D41D55D96C4F020486F993781828E9E8850192F9F6BA350AAA 5E292210B0EFA4061EC8BD6EE15E3FAA4AB2F54110D17D29BA32C0D28559FF32 D164DCC98EAC78822D6D6AC6F4871D47290A11C83670374F072A9DC723096C89 EA584D43BBB13584D9B8B1820C415DA2E0DCA1B50655E81B47B9AC8343DD8FAF 95F4771ABF81361EBFA9259EE8901F31C21E95DD22FE04BDB77D23DA561FFCE5 A7708647AAF65FBA2FD95E843D839E5734D4C08A215180C7244924E002A965D8 AB29470A1B86065B4133A9A6EBA05EF1AC67DFB5ED8DD8C11450233D2624EFEF 3E6D3DCA7E23ADF174BC83AF25A1D7529E52D39C27DA86A2DF4BE4F8A96361CE 7025BC1954C75A765ABC95B4AFE0AF5474653E6808F85893BE6ECA1A37F8B666 05A9E9FBAADB0DD86848D6FC48A1000FAB396F756513798E09D29ED6DBCC8466 40181BB71C92CAAF8E240E16304DB9F4B0FB6880004A0F9AF6228E60646647D1 669577DA709B4FDB8721B95B07B4599652A303FFCEBF858A41F08BF3B83EBD31 74EFA947A8ABFC7467D6CC544B655A7BD4B6A4F5EA9BF11CFC9CDCE14FEEDEC5 9116A3FEF962932F8B105BC4C51744916E8976815AC286B1E682D83091E9C533 839223A68B9D977C41107F597E05C3D8C1C3E79542A990B0E8E22F34BBDD8E47 B6C2CAF54B72E8F0E8A41DB343934FD2C33B6D77AF2E9061C4E76BF258CFD615 30AEAECE9D04569D358541C346C922A01D017BCE85D4F083AA9B6939D85EEF29 335D1BDCC9E6D5F7F58EC2BA2D8CE50CCB38AE6A2DE2F695B76831F8F591BEC4 EC6391563D18E4169151F552B5E1601B1DDA6F93E5C8B5F4FE63F5E002AA3C15 E0C8DE2C735EE00E9A2A01530FF37B7FEB0FB182A4E381CF1BBC80D743209814 F99002980CEBCBE3E677005766CE1D0AF4DCC9F103499D1961771FFBF01B833F 1701EF6EB1A381A287F73E519C01084241335905661B2E8B86B398C88F39BBC5 09FACC1344E15CC7685708BCB3F43EAD4E24A84AA0687FCE0A2178D9BA84EBB9 68E8A727DAF9A0B28A7CA3B119798603F9BBC6728C5A6B4BFC84C95DC4F36839 C2649E364CEA39A4EDBBA4C0E27C61648D38CA46B64E8CE797CA3464C80214EE 28A1E58B387AE0A663A39F04F57899ED62FB0E542EA108AC32490B4B2BC068F6 2087BE9C9C3CBFDD80F2E632BC4C971A79A0A3C3A5607B997223A9F6373EE51F C58EBEE7756A391C91758A1F6567F532A5EB762A2927F57CF9F0E845E4F66B3D 8100D1795B706FD32944CEF24A054650EC911A54A22F4F35E3034AC70F07C98B 8DD43BE9F7D68C50D6449791F5331A189706D9CD18417348B9F296D8D01368E3 2523FCC0EF33B998FE925B4CC7BE329B32D6AF791BFFACB60E4874412C8C8676 34914A453A592C7614AEE5001DF3E5E8D9335A155C65174B940E1AE61ACBCBD8 A41D7E1C6FC0680E094ECF65C60CE714E6EB2A1897D8A3F39FF58D64EF7E9A41 4CD8E55BE32CE8CA29239A9BE3FD6B1DD5CA5A035AB1FE57CAFACB8A39B6A877 C853BE6BAAEF5714982FBFA414EC128B61326B60D83076E690FDCBE3D2AD256B FA7A15B804402826684AAD933E94853CD0CDEA3CCA7DC833E486F431EC4764DB F3FB244DB99FA0CA2FA14DFA75A326385B3AF92AF8E4C6D437DC3DCC07FAF25B 6C0F270333ED377B08E498BC3004C25C7A991DAC9A3E0D1FC43E2EB6996C7269 7A864CEF35FE312DD8F87E37AC69490299CEF9B059EC7E7492D1D6E5640E0AC6 35B97F7A629B6B7CDF3BF86D2B518EA807B03E4F79DEA59C84D98E4C94102EE3 71A29649ED75F5ED02EFEED8064E2D54E8F9CA0C4284B987B81B7F41FD7DCAC4 FB9C3ED70774F9FD09F3321CE1D0319C1129F5868DABBD183045984748C8A3E4 53E085818729A1353B13C78E63E837DE483E9E2ABFDAD16534420BE4D7976D35 F56B86EEB90F663E9778A6E0CD698E6324EC2D19901972B74EDAB8F4073E4F37 89082F08735E8345BA167B2B76C77703C586CA5DAF41C0DD0E231184DECD8A9C DE8FD239B6CC636507A5BE6EE5283C06A1D8D59E98A31AA76F4D358DBC641DE2 ECE3D9F2D262FE2E878E909A950A7642A3F59995519D541B96D459F24F12682A 9AE61FC08CF436D9DF060DAAA90884A1281B370A2F824704B5347FEC65E14E7E 3D212E29723427BBB12C1CB91B28CA47D6FA8259A875EDAE4B49C33B2F73938A 784C1E7A7F21873CAD55A868A1451B070A3F259A983293289B131E07C903D7A6 3CC66CEF8C4D2B6736282896A2683EEB944B67240CAC5FBD8A1392A875245A9E 2611B511909A041846063E465473D41958104E92519C0F86706AD640FC6CEA10 620C9718C4589D9D562D8810CF6F461B776D5A1B040F8272D43C029C2A695D2E 86CF508C4AB11104E575E13C2EF56914E241279BE0558CD3D59D25BF13CE8212 3D7AD1F25FA5A9155AA06306C7CD0F49E3498856318B0ADF279731E1769839EF 98657EE73CF07B0585EECB67F5FF609E0E3DA1B78F6A8FBE2F2E0C051237AB4B 1587DD72BBFD962E865EAE0CAF1A5C592F5019C7533BAF297C0F78F3287838D6 CEBFC8B5969486A5134DA76B4961C8056E1EF1F2AD17F19D7998175D66B3149A 2CF21CCABA281EA0345EF50C1EBE7004ED495C6D03963B639A66638A43C049C6 DCD311B5F86EBC814BE42D432EEC87B861FCBA9C8729FA5AE87E20C5B30B8E5A BB41189A42B9853CA408BA01A559CAB722AAC3DA28E70AD79E1BBC8B6FCC937C 180B5C2E20B03D3FBAC60C83F765CDCDB3146FE5C0B02911F6E120D63EDFB0B0 86CCF83C2AB62922450206D3701588B54A8B232126BE120432E6BB2E25C50B13 708D742A44E20176C54FF89F4589B10D5396C94625AEA1914AC168899FE7AE9A 7D90DA67A5EF3DDA25CCBB18DBAC3AF4AB889528A381542185821B96CCFB4302 987611DD5B5B8514FDD7F5148D1BAC9C34567F75EDAB317E0B8A7A76604A42F3 1D46332C4791006DD1AB657308CDBBC7314592707EB163326E345C2C5EA05B33 01FEA5B7A346E6B1B6EF58B692150C6116B149B6A26B493674337A9C1CB4F42B A7A80AC587F9BBD7A487F407EBBF9978840A01B5E7E772DF7EF28481E7AD14F2 424816AAA958320A0E6F318C757A474F7B05AC0F570094372CDE877B479AE3F4 90C257A2B3F443DE43D8A58594BE8D4B5C7E5E075ACFB1AFAD4C06415266E168 FB38C1CA256287953EDAB1D40537A3633CB52FECF3D35BEB8C2C6CBEECB54BBA CD6E043EEF68A21D7639FAB8D1006B1119CF92350D9773502F7554B4B3036EA3 D747596506FC674DC01ADEA9B45ADC43B9E6947235E9BA30FF462252038D91D1 D908E9132A946FD03B86A08885AC44CEE72F0E27AA63A901F2DCCB86D87702D9 A66F35F06D6640115B075B0260FB116E24E795E24DAE988CD48A95FFD3116E92 63D02221D272531186E2AAB74496FB78A4064C9C9772608C49D46E40FE28088E B5109171E7AF69599BD8BC1186C196EB11FB4132F5C9FC1395220392E17B66E2 32215E54E9483196341D6DC691FCCEFBD00DFF4C095FA8AB36A374BD5E1F5082 730A698AAB7B57A5399196ABCF7B7963E2970CCAC5E9A5EC552CDBE1E2EE1968 B81CF5BDDFF9D385C9C1FFD726A0C52A4CB0C8121E77AEA16157C1EDCD1AEFF5 5607E8F5C44072DC54332B95AF28417E2D45B4685F270821EB6C455AC147F938 50CC9F7F2006D933D0664AADBF5D7E3E6DAD57527AB59DDD13BCA392B059FAD2 E7833AD00F62EB89CD7BECA9DD479F7CD7C981859EF43CBB1EC1681081B58A39 2CEC9FEC039082771E1BF48968431F72817C8156D0D6B65DD33D472BCC49496D 1F5FB1796892C6A45BCC65BECF41D8604B811824739647D87A7B28FDB3574478 9807DA2557F411E0BA7479F31B9E3BBE6F3CAAA653883A9D2BEF2073F47F057A CFD20BE1371F17F5B6F0A9520F2EFCC3C04A24EC272C43E1F587ACDAFEAD7076 6139D04FD9A50F67301D7765109C76D6270D2DECC94017A877EF386AC7F625C0 ABCA9A6D15D71AF7A5889403DDB83EDE87EF5A69EEA97995CC1601160B296750 32AD8D65A456F5471AD4536F1AF41A4D370203F897686CAE7C89577D3A843E90 9C08CF3E3D489625256DA5E0984BF971E0D8D251AE5B09C17883CE07750051DF 770B920AABB2E80A4944EF613891B4EC3F9E214339AEDFDD5DD15240933DC82C D878BCB743ACBB562A41BBD86191E1129718826681FD12981D4159C7432DC3D9 AD4C6C478EEEA0A34030BDD0B9122E8AE5F0B473AC5A48346D56C2DE42815D19 FE378D252960D3F56654B31C58CBBBE0D634FF6EB81295809AF12222C58345C0 4595590B2DAEF5F3CCACE8AD4CE8585DF4099665B05B32FC49160ED307573D18 6C4D88C07CCD1BD4A0179BDDE6524D8CC9A70318578646EE6F4DE040C56C90C3 C5C5827A77DB584E95F55F083D07AF133B31DB611D1831D93180F66A13E86AAD 573C57B42DA521764563F69E7D4E26057622C17A135716EBB2552F644065C733 451295216950B589D09E00FE06779D50AA82A4653649B7CDCA11A1FF27AFA7FF 189A798A6DD355CE23F77BF90DD88672ED1AE3C262A2071CD9E6E8710E44EA18 8EAF3FC2FD7A203792FD5A925E03F5FDF5FC3C0D975724B9C0EB5891CFFFAAF7 AC4180C714BFB1BC100B055AEC13D255FDD48CDE21EFBBE6A2A5CCC75DEAEB75 CA1B5C649CF209DAF2ED786DC4D0E02F1AEFAA8A7B2B96971E35DE1AEB60A50B B4E5B18753CB1E6E18FD08BF00E01DB6497645F29D666701A930476B878C7843 D729490D64FDFA946762B2F71AFD7E3CD2A7B155D6445774A471A84FD5CDEF48 1419EBD5CA76742B84B005FD3D7F5D0A2024B166273ADA29E9891D2F00A8BD02 C3370AB11216BE08A6980E49A2F385A84BB64B275A896E359C7C4463E4A0C65D B9018D6795DF5019EAF0494ABA7E4F6D9D4C7973C6F2FADC73060FE5F1C71BE3 0DC7D9B88FC0EFBC9DC151F616D7D9590E90F149684940B27488ACD676FBFB4B EEE9903F3D6438DDA0E1E7584B6A7CB299F1AE1EE2DCD117AE588D37F773ED9F 30578CB0F17114788427846A8FD3444D08E4240AB0440D93DB2CBF1F89994B0A 232F91510518B3A5E691A9BE235392FFF25B9301868952A3712B54578F2F7C99 0A33652361F7557FEF701AA6C58BF44830AECA7B70D7CB3A43F166C4766EB5BA 76941F080A01535610D05C4EF71D21C2D0D335B0655904CB73E0110FEB59FA57 746BEE9AFDAE267B1705CA776BE9A4BB6A4A29E421029F5671B7B189AC9D4B08 7E9BB099B5CAD3BE79A3BA1D328FC990BDFDC5B37EAE5D77E62113EBA172DAEE 53B21DBC3C8C1DFB14A8A4F7738A0B83F4BD86BB35CD048AC5C7882B5AF63354 E659450E2CF733B8182BA6CDF05F421FFD9F591516A461625CFD4748E0A1C890 97F95A50D6228678BE234F50981EB928B80A2E542544CC8567F1888DA9ADF4E6 718549F33D19D149211F4EFFEFC80C81E4FFD0CD79FFC83FE1C28D676727C1AE B5197B8E21C95937AD04C84D619335C8134DD0080C0B40FFDD608199E6DE7BE2 E03991AC2BA35B314CB60F5003D4F345CC2CDBF0C34420CB3FDC2879E0B76823 B03ECD30B8BE42833C92AE93AF019841F7B4BF85CA15CFA0B1CCBB182D6B9666 DA5308EB60EB5E43F66C00CC78928DD488AF24FF77433B88DAAEDFBE8862A5FC 66F66CDD5713FB15188985BA34062F888F00B1A21ADEA87AAAF235A477E234E0 33AE31A0D04E1AD436313B015EAE43D76F589FD4FC3BCDA8305D901E3104918A FCDBFBAE0E9A22FC3479C3E350E571D93F9691AAD85E484D3F76E65C21AF309C 0858A4108769C021EEB91267F2F4D279AA57C8006B823A9D4D7AAFA788FE75E2 85E0BC49D47196186D89CD2F38D704B0A470393767ADC34992CCDAFA9D4A4555 332A79D1B3B0A3CF6DF6CCD95BEDBF920886BDE88C5509DB96C347C27CC55696 BD00E0EFF2C5222830E7FC1685E4A1E53872F4DAA0299EDB0034672E2A162BAF 0AFFBB1509D70715709D393A7B2F2D802B1E5006A9CAD8EC5A632349E0E54517 F0122B76C5351599CAB0655FEEAD1158FA174112B0BAE4B6AC72102D21AFD41E 563CE5393BCAA3C84EC7604FF766913910B8BF48923B58CC588213AAA9ACFF89 55319B2DD16652D3F69FFD47B95DF54EB9CC2759E87468E54103CEBE79A50CFF 4E4A6A5B6EFF4D774CDD176A70429DDDDF5F6A0C772216715004FA94162518F8 DEE14A3BB74C7AAA5AF40EABEC110E50D39E49C100F13BD7259F2D38F51A02B2 9BDF3E2D9A53725B3CC6BB22D76537A21E21FE489A80DA157A673F9EC345AC38 66F22602E21DD28EB91C6067C7A9D66FDF2004C2B5207835A3EFA1CB50131CF3 9F1784F3FA64AE03CD09DE7F49F2A5F994D17A439067508536C8AB589A5270EB FFD1171E420ECF7CE6510049D86F5D5E6A1D1A554C57101B2500CF736E2F25A7 5F3DB2BAF1E92CC788E0CA65DE1BA77C9C6AEBB65699847E07C5E1D25EC74165 D88043631CCF3A07AB883145EB92A5A1A258B940991CF094E6BEB51CB5796866 0F9AAE0389D9B66CDB068CD10758E6FB302F7D1A420560FE7E4F0F78AD1B5C86 A8F12C493B0BBB78802B082825D3CCBA8C0C64DF8D68B06E01868DA26C51F6A4 DCF6165354F95AF1ACD164281DE5C3248D8FBFCECE8F23C5816F4CA1A0C130A6 7D5025F75612A556EEA7CB381C50A9C2CC47A8528FBA647453BFB6595659C435 A5FFE3F4C878C041ADE6918211E115E36CB91C12FFDAAD8280E4F5C0E86E6914 6AAE95DA0AEBFEAD38B6C94ABCBDA25B3CA358170DF79F82A879DA0FEEE0E7E6 D8FB55454DB92D1EE2D0CE1932BAE35CF22776BCB092183C7345694E3E272EBE 7CDEEEDF773625EBF265549E12B48D04D9D97A659D89E21D333C1B0109B10434 40A05BC8A1C642291C398C415C875B72C30334B9F4660D62604D9A223DB29ED5 0DA516B1355DC99A6A21EEC2653504ACC313060C6B2009991AB4D49310569DA5 46177F041056C425E03DF6B51C9E3E8D82976AF45370C2463A4A626BBDAE669B 37671A0DDFECD1D7E2E0D65FF29E5AA0273872BBC38B2E6E72CA132568CFD12D 55D65A53AC7D019A289E09DD7B4C16B806FA0B730093330F75747A64B3388C74 AA007ABB5281ECF775F2FB21144FCAC16FAAE9C0AA3B89C5EB18DBCFCDE98ED4 482E33CD2D3A21A7A7A6BD4A9236B5A0C43A594F8015A099BD39A7EF9D2443A8 046E4EB280353B539AC460126016B055FF57CC523A518B183575339BBFF4D553 9152868EE01103E98FB49E8305A25640F7EB2EDA1A3DBE2BFB60C76F346F185A 446E90A1A6AB0F1DD929B71E5F1D2D66582D2AAFDF28E66A3368EF9C670B530E BBB88F0E6141F5A111CCAA55644AB17488420F1CD55CE290FE0D02EF617B9020 62D5B3BCFFB103A10EF24724ED83B04C6B7BC8915936CB7D4DA48332A7F40118 4F09722E203036AC85BCDA93FF36B7F1589F61A1E0FF2F4AE19DBA2BFA67306C 1B7757618821EC1D9098E321BA1661BC925AA45F95925AC4DC1AEC11B303C935 D80016CD29C4095C224CFB87A808E7BE42404FE660DE6DB4BAA0CAD7C4F6C673 82EE82DF49D1C5116E9CC7956D0CBEC338DBB041875C8C14B0DB941F5A1F8911 98CE9F83DA1356532231EF7BFCF7B0E686A8D28F4E921CBF2B3B022CB96FC8A9 04AC60DFC4B6AD8C5A7A8D212D8B213FD9C0527F9576C96C61D494DA83CCBF52 18FF44F6E6C85C5743D8EA3CCC79F1FF36189F7E8E2603B35C893C57C392CC48 CF1CA67E407683BF9C0E775FEE0E95CE377064B49F0439C711CEBFBC70ED478E 0E2BE3EB72D8CDB77DE7B2BAE99859B020287D4EF7C38D3E7926F92B97CD1142 F3D697E12BCE4ED6E6B0521166F26BAC5244946B6926989C422620EDB1D46AB2 1E0C430C9856DC2CADC8C441AF472062236F27F8E6E21E94F15633EF10AC3495 B59E3AB83AB1ACB24E1A5C62B8E0E9CC8F38AFD47E7307BCFAFA794514B1BDBE 52D9217476F9E4D1C55CC8D416C5AB6426F7676F18B0B0B4DFFA36A66DD1AA8F E01296442895ED090357865C5DBA9A36B9919B040032D6D62741979F1C72917C 3297365B629F855A7799D767CE0A2AE9D1C71D4EBDD304879BC72D5673863355 F60662AE2D30CCD0A6A9BFAA49F87CE9CF5A26F0F4892ACFA0FA7BD3EBC5159F 91F32BB94B6009760C726CD9821F596879E177D1256E02B8E2C18E3395587FB2 C52F373C6503819D4F71D6EA28305B46C9AFB1A51F0BAF2F22DE43AD779BE2E6 3B527AA5CBDD01788C3A078562961FE0AF92EA11D70EBC46F5FF338B13A1D800 0628016B5509AA74D73D0AB3FB750DA31C6718A90B486A2F8F60FAD0472B62F2 D6E18B534801E5D768B4560331B7EBCD132396710523DD6C33E6A20990B1996B E94AF98CC5D8CD0DE2BDD3173C48BB0146C5D11BD9D62C1F9DAECBD466B84E88 BF54916913B952CBC5A360AF39CEB5A5CF1C96E121B51E888BD0D72A75BECF37 A0667E69E919E94FF3749B17F6490DE0506E492FD65EC2E68E885A4ED882B006 B576FF42D7920A58F461899D443F0F733903B0DC32E68B05CC55279E613AEA29 148C4F7AD0402F21B7049558256E93AD266861768F30D5DB964A6E890E830C81 A4350372E0CC46A356D6208FF00A427B8137BB95C3D64577DE3AD2BEDF9EC625 0B2EE6358484E616EF7829C82CEF5C69D9001DEA93EF573FEE6DE97C0F847C45 59268108177E6545A3DB7798CE768B82B93348B56316DA86005E00C560B171E8 2845DC79187FD5DD7B1376D02C5D9B0CA59955E01AD1C7D60C83A954AA3BAAB5 747CBAE465AA0021EA26B717EE38CE2549FDA9B6905A742E09D7AD61A18FDB40 FE8950738E64BDF8CE111144B9187366A4144468B4EC4673C04C40EF6D260335 371C3D727AE71C42A43FEDA8431E7E169EAF5386717828DB6A6E898DD952E69C 02FC4D4F47448AF587691EA3892729252AD885F3BBD2D0BDEEA72355F5A2C29E B1FD7FA0F6EB5061CC397A98D3C7B56B8E83E915E51402C9EE862FB11DEAC89C 3886FAE4AD937D76D2964FB47DA7DFB8F671BAE54327A4DED7A49FA2892906B7 BD76C52D4D7FC763175B3EDAC012257D22FD3CBF57521CEEF2C1C0CFD4822C0B C3A810E9DC10CEB60A27FA76934B8FF4C777D2D3774B4AF875C44E299B6FAA23 A025383EF4159AFB5CFFA761F4611C6A03E1A88D80C743672A6DB457514A28D7 4876DE74D635520606A6BC31ABC8A30B752E85610BD3D81A52FBB7016237BE80 D433C19734729C8A1554DBD004B4C7734A7D9F615EA1A30DDDE9CD814AF2B76D 087473795A1B32379A06878A824E9AAB2732C58F2841AEE04DCC3E0C4CC56360 63BDDFAC2BE66B4870A43171241368167A93037B988025D564A047A6D50A6505 EBFB2149F0B957B94A5611D896D93D599C423F78586B9406B9536B65A0444036 4616563F287330FDA3B8451BCD713EA95CDA0DD5D13EB0B4E6E5A1C66C5FD797 5123AB914483C900244278BBCD8E92FEE64CF3C94509A4F19074363CD77713F7 C25438B400C03E74DEAA89B98C74E69CB22C7D33B2F1A972408DEFB1DCA22293 CD08158B839DE26189A9352FA6A67B1787DEC947ACF9BE43AEFE9B453494E29F 2B0949F221DE4C5D4D9536D8ACDE81E971BAC1DBEB859886E1C9D8EAB9CB9117 48BEE11AB09475E4EA114D8D4BE59FFD537AA7EDE66B75ADC3C6F06B08C2C2C0 35F5FA805596AAFF107525BD8A0A9D778336A3C93DD3ADB200C60A36B6D9161B 157C14F83E972BECFF234068D0E919642F936DC260056466B5EA3C85B31AED7F 71DC99CFF3B49990A411650F9C1DB203B262CA46FB8C980756777A4A8BCAAED3 E70B53CFE7FBD50F6EB51CEBB80494E5EB173201F74E20945D8FA2AC2B24945C A0CB15CF4FFE0D1A55EC22FE883FE5E7A238EDD98810F4D2029CDB3E10EB340E 17E5403CB130D4A32F6C6BBED6C9B7FA6F7B6027086A1A6A610EB9A7D230F660 DAED80A1F25297FE06409E5283D722F2BFA5260290BDDB73CE9C4F76F673AED3 BCE96CC9297C3CAFA5F99ABE792B93EF4583CAB5D9EC5D5CCB712BC47B34C8E5 E3CB5D3A1E8A58FC4F33089B49B15AC133F27C808422998FA6CAAA294CB4C917 B9CDB2DDF0004B8030389DC0C518922164C96B2005E60F4FD2DEC0ADE52077CD E268A7A6C63BADD18E562CE31F706C059C21A5F7F5FF9293574D7804D85E6DED 10612B809C79C3F582201D1A89C8F471447520FB95FEB69D590CD426DBA7FCCD 509CEBD7B9E7947ABFC08BCC1B015A6825AB1FBF2C88CC93446272C0AF61B18F C6276DF00CF02E3FD975C0D5C3BC98DD18D82E5C7CA6696B7B10A1ABDB92B793 BD25F18040CF0404E48EEA87EF31E9CF4AD20F2B6D936FA11FBC82C3BCFB86C5 9B0C97E87C8A5DA4C44AC5551F0B4F0EB15203E2D38EF169A780C25F10F4ED2F ACA7DE088D9A5C311A4B53969D2E7D4CB67AA3BE59B3E3E8FF22B60A9B3AE6A2 6198650DBF58EB189F86E4E9EE30F27F90A9FCA323AC0E888444BC9F74B9701A 5F720233F8F3173F6B180067B2F9E62643146615A3D9125F1A402F0EB5656A31 1D2C709E7ACD1AF2A1F4107E09E0D9D7160E1649C488DE50C062A92252DF55C7 26AE97D77E1333DCCCFD8728D025B26796B2B244C8B54B768CFB5645F1AC95AB 1CFE40126A5BA55A5347918F67035EB1B29526335CF4266D25A5674F4D21CDC1 BB64096D2C53E48B5EFA5F556343A79BF60132BB1ED1BFBF6136C7EAD2454585 629B099848790D1FBF4783F708049BFB6A7AEC41026B68531034060FC9F06E92 BAD21A358AD82CF2CAC1F157ECC5A336CDAD2AF534DC300136E550A55A8DC6C4 A2CE205165DF24E138872A018365C997B17FB03C2E5802054419500134B3F901 9513EB8465195C667F46A8B6AD5EA9E51B2FC3501BC6085121655EE71755E9BC CAD9EED6781825A9C9D04B6F298615DA8275A65774749509AB7797D0AAC57169 21102FC8138F0B5D24DED788F062113E0FAB71D617D280F893570F344010AE19 98B73B56C5EC2C64507E32FE981B35A47EDC4DE5D23AD15894BD2C6937DB99BF E4A9C5929590BB0D1BD5CF2253644822658DF7295946E2541B116EE8A2208489 E9CB1D1D1EA90CD09DA7E630129BC1EFECE31C465BD787B73356A90A415BE41E EC353C2B592D0408E1DF2F68A75FF2AA16F2539F680C5D72A31A07412B5458A0 E16C1D5E33B3EC50F956E6712CC48B06196495E7ABD1CB2AA2989182E8CCDB6C 78095F1B400AEA75497B15E028312593CBF441EC656334F77C498D4BC3B9ACDA 0713F53DCD7F8D0DC9F201CB38756302C82A0498ECC20396B9D215B51AF51A9E 2EF9BEE33AE70974A26D6593C887E363C4656E2B7E9F686D09ED7AD3BE77207E 387982118BA024365A0AB4D544D021A0FFC0138CA15F6317047CCD982D7976C4 E1BBA0F647D38D3D2FC7EB4D79F6F8894FE56F1E1BAF64E3AFAA32AA5646EA4C 06190A8E4C9C9F7C7C940BCDBF4F23F6101A22006D31D028BDD67620404621C8 8676D6BAD5F7D593971C62359F306C8C0F4AC8AC5D0BC9E12D1A3D7056FD0D5B 26145109681FB1A48204D506B5417506B71DA736F4645290AA945ACB40E022D0 9AA3B123C2166927CFBA23AC760B4F5D6687C7E7F9D986C5BF04E0025ECD9EAA 0E759E306F00188AF1AF057B7CF41BA8BCA34082E7C0B1878BBBA974E68AF573 1B9D0C6D45E6B2B803951A842D663096309DE189ADE283BB8B33BCEF97F150F5 1F411D1678FFD8E116EA23232E077F874421BAAC4D86610192B21E2ABF3A814A EAE64F8EC72039BA060EE790D53D65BEBDDF52532C14E6C98D3C2D0C16278C57 2BFD26CBBD3ECEEF5E70732C089E2FC2B92121EE7940D288B14FAC010B9CFE81 34F18637D2AC74962849E1F24733C585A906A56962BE8F0CEE17E75660B45BFB 929DFFA22F9EAF354BE7A8C60AF2A53E63DC1A2E6716650CFDA57CEF95DD92B6 E430505ED2BC54CA3F22C1C0EBED56FE11228DCA431AE137A9C17920A20F8607 78E80F471FA91B2D1D1330903967C450316CD0F4603C208B56124C0C42CCFD22 B689FD85FE00E5DE43AE055180C46F826670C719DAA392A7A8B85555908E366D 4D15289B059811F8C8466CBDA0DBB97B41FE92A75A72C8B0088D657B4065DEDC BCBED2D271533BE54847257A26845A866A53D1882CEAD9434508BDFC295FD5CE AECE1560EEC4C8B3A0A96DE72E27AEB199E8625277596876FF4AE7A4B8C42EB0 F47A655B36A7D814323639CCEB1B0F53FFB815F1EE6F03243FE2C93524FEB3F0 CEEA56ADF11B0C4A444B2C9760D76A1E5E302F791BEFBE319C5F6BF107A7001E BF637C429ACDC102A540F4707E938AE8ED3AC98B02E3C78C0813A76B12C0F2E8 CEA71726EA517C32B1EF27FA02E6BFC624ACB6698DAE7F4F74C55F24A1B5326C 14833BE22C874D2FF29A961EFB5A02283E4CB5F6DB013A5E2CB264C1BA662652 217D664A8A15C02F364F2A69500678FAFA8F0CE9DE0B5D197F7ED9CC6413ED3B 3D8E390BD85C53F0494DA75B957B2668B569007A84A14CCB89430A75E5982217 BF58CF952133E128FB19761D625A058504C45EEBB06756907F7352CC2466A665 CCCFC28D78833B054F93E3A17205E445734AF34048510039A42AA379F32223AB C2B17A71F45B8F3F3A1C757F73A0E75DDE9A6EFBF739F5371CC1F33591F2A8B6 52DE91735B44B03B55A9818340BF171193C66C0D88FEA1F4941978EF35762013 73EB645ECA86EF4DE35FE1EB05C8FFAD8C256B920F8D84F77FC1BE8AC0130D41 80C4841F76694E4E8D75339594170E15A428FCE989B5290F65FBA54EABF17DE8 D06164EE387AEAB676BE7FB5CBA4A46E296AA3AAE276C3B40FB893D4E1A8AFE6 ADBBBE05611588B93CF153D2F4A20F1CCFA5BC2EF854CE06D4F1C4234B4AD30E 3577052D4802488792B206A21DEE75B12374AB58D7F8D0700BFCBAE1F3B97181 AEDC88F14889BB24CEE8C90CD4A520C7FE167C2F42843A90FECB82208121EBDB ED5926B49E4CC60FB64774364C4BCFF785D841413430984474384496C67481EF AC1E0A3E1468B20E9DEE5ADA3963D7880405C4ECEEF8D52E8674FDE4B2D0B4DA 53802D3ACE08A55B3D4591117D97054BFE7CA636CCB68E89CBE4CCD7B514617C 735294A2ED326325B4A1B4BFF272B52A0CA05E5B55E0B9D0424BBBD798C207D4 C6A7E172B79D7BC98350A0A0F2E8CDF633640030DE0E765C227DDF353473CB27 44BA7D1AA59A1C6CAFC68094505151B121A1A3D505FD74FD14C8848C518F41A0 8336C40CDF8FB54F027B62C68609C6B22C41700C67B83D88E2AA0844122F3662 35437651579C56488B500B69095D26C5FFBD85BB82F58D86434D8629B3ABEA07 AB6BCDFD9832F3870AB296BBF885148496F91582CFABE7F1CBE85D157FF2F877 5F507AB148311BE2F3FACA9229DEC347D41607E9D6FA9BE4DCB98582D34DC40C 56CE34554159AED5269D006B547540264F9CD003BEAA731E3EC530C27F649209 E3ED77F76730FDFA2AB324CFC25C1C431C48DC1BC36D11DB55DC7408297837B4 4A92C324FEE636696FC8B866EB956B33B9AD6D2570C88CCD9946C8192D1A7600 A2321208DAE12D3B3CABA79E69F718D08400A3EE95ADDD846173CC288229A15B 10CB1FB0A064975E98151193007988FB6F8249C8ACDFE477B242599C58165AED 9447A1575EEBBBF74DA4A8EAD015AA1D3EBC6F1BCB31A411A45AAE573408D88F 1EDD63E60FDE9635A348FC2347C1338CC591F2D94926CCCC3CB6DD6809194AF7 EC14BD7B5966EB6568EC97B6A48C46168E5E720BC496555D98433FBDD8952147 20356425A1844F70526DEFCDA65B3E0CFF414109 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMTT12 %!PS-AdobeFont-1.0: CMTT12 003.002 %%Title: CMTT12 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMTT12. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMTT12 known{/CMTT12 findfont dup/UniqueID known{dup /UniqueID get 5000833 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMTT12 def /FontBBox {-1 -234 524 695 }readonly def /UniqueID 5000833 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT12.) readonly def /FullName (CMTT12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 45 /hyphen put dup 46 /period put dup 50 /two put dup 57 /nine put dup 97 /a put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 121 /y put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716 EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C 02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D 46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A 4B60D020D325E4C2450F3BCF59223103D20DB6943DE1B57D05DA0555DF933BB0 7B42D264831116C06C79335D519461E7B0E870A6715E3D74A08D1BCF86E3BCC3 A43FC6BAD1C68BD9D4AFCC06D845FD1F1E70D7A47F0BBCAECE8396E04591E5E3 4797F646AFEEB7DB548183F0B74C9BB6BA2AA04E7F5950EC8AE97C741D4B2C5C A8E7A8DF5A36A30B5A7592D95E1DBC63EF33C92FE459792CED29E2B8B6919251 75EF62089BD7D44A6E1F9B62EC802FBE62B821DA1C3B2DDED45D27964AD29ED0 9FB7868F3A8FEADA87A8E42D52C1EB7229D7C79B60BDA263F2BDB025AE14A507 098FA274206BACFB4A0A7257D5998EE8F0FDCA79CB61DD1FC59DADD11E16BF02 ECDFD706CDA1E72054D4EB55AF7BA9F19955886BC0BD6E0E3FE3769C94AF3581 DFB2BCD67FE2892AF07E858A01280194D8DD7332B3D0A585C87FAB056C2EAA9B 5AD48D1C9F00CEF8EF0D1408DBE1C03D04B231D7B8D5D998FE0CD7EE19828EF2 F988EBF6DDBFEE00F04A4A1F4E1A55DED7EF3AACEAB5005F1962C724A017C914 2936E2E0DF26A55ACD7DD836C6035CBF07981C1BCE3615064F0540A1034C69B4 E3908E76EF8925D486DF0B4A8E1F02D8AA99585A7C31847AB9382F83880C1C21 C496AB2DF8E7BD4643B28B704B5F6B53429D3EE940A79135F5BF0396E5B46F23 42AF406C26D12BEA7A41F332AEB75DF43C15334CF4651A99F602036946B1B91D 4BB0D2E51C20216D892C8173241AC8FD15A37C3CDD8AB4FB67D8565AFA61C068 95E3D6E46D7C09BBD09428207D506AD43C693F3C3D787F6A5C39084AE45E81C9 830900DB50DAD10A17E118FB5E9680B5194716A788FF7514A1167DD1A305FBE3 FC1F39A39F5613D50934419B95A4A2FE1B6C18912CECB86726926F6B77B5C3AF F38F85F974A2D2145BE010EBB4A390B842BC222AD4A0B7FDD882668C04C51F19 13FF91E7CFA0A0F4E99A1944B272E0291BBF3F9ADFCF3F625B87377AFEBD9F11 6385726E908BAB7D1357504048C0F5B26251A1FA52F08BAE1D64B9FC32A684AE 896F3DD0AAE9624050D4DFDA25E581FB2630E8840AC5322D38B92F3E77B55CE2 91ACB8321BE53A2C7D274D63CF0C68AC833BAF4B22B26EFC197D4A893A5AE492 660D995DA9294C16BED1113CBCC18AFCB5968175EE2FB374B1AA261F22CD75F6 6E7295A254FEFC41A66EA6833A6A4EE0E75EF6B6FAF292DC5D2AFB61D5203DB5 4BAEAABAF39E9F98B45F22F2E37F337A7BA412807A31B4A5A4E1627BAA964B77 6AA397D368985045244ACE969799A9489CCA8FEFCF2EAF262ECE08BBD9573C79 2785F1004C34F4D728E9E820B4133FD5F823B067F6686C82BCD35123E4831E38 CDD5ADB098BC3F1B4162F45B11ED39CFB65DB1A10646D0B9FB5BBE475031B2AC 9E0769CB063B82D1232E24CAA86D9D5DBB9737B1E69608106D34CFEE3FFB4213 5DBFB88BF9012F430D56F7A83CD20ABB55BEB186856EDC1D1118887630FD2CDD 295605F62988342850F206E4C6B10D9D1AA529269BBA8499591C32E89A4C9F01 B6DD28F30D56D1DEF96B0C62E4D63C96567BF16CF28A8F6BE716E136C0C1B5F1 3253BA34759A58AEF7DF0F2DECF50026C2CEF2A03D91784A86D5B644693D1631 60E18B48814EAB101F267B951FB9B0ECF869998F74B32F2DC260F6A3594D4D40 54CD8B9694B496FC2ADEE327B399B944DD6EDB171BB1D74A627C789DA1251EB8 0A4A1A97E4BCB053DA203043FBC4654669E650006AF21D795FF574138FA0161F E51578F15283E429FBF126848DF5D4933A05F15B9DDCFA4F137C62276E0C05FF F12C6713D769E89A86D00394FCCB689C8B16D2FCDAB78BE21FFED0DDA6F05DBE 868E5CA952A2CE751BF57BACDA232E60ECF92A684B2EF965C56952BD0E2B6A42 735EB20115B0B663DF9105E3EFE332E6D4D2C12CC94B9C465F331E6BB4B508D2 2DB3F31AFB87D6B6C401E002DF2ED150817DE7486B2E340D07735BBA143618F3 26A291D1BE30986D79B36BFD02F91C64C28CE5383E883520B88A9691BE0ABC25 C5916DABE0C508541B12DF0A1CFAB2DFB4B65A66FD3563D9048249820DD87A8A 073965E6A10523D0D3A10238324D95E643351E6E97EF177690C93CA3CF1ADFED AF987030E338B6FF24DFC91802A365EA741EC67ED340398B44DFE84B1DD4E4E6 4A2800AC9763F8CE7260BC02731FEAEE2BC011FDF83E19DE3442C5B1478E7EFD E5D4948BF78A6C24DA9DBC99D37D6D3ED8F180542B198791DE02AFE4687297A1 854D6CE399448F49CC04BB5665885BE66F8212122BACDF47EAAD0A207857A8AB D60D35E7C2E6B92500AE93538A218C959C28084F437B3411533CA4B6BC34E625 1222CF334221C20765536338C769FF0EFF70913294DEF69383BDEE2F861B909A A8FF67464D087596F999963250C23CF53C13EB32AD3A65064A0AC7D691BB0A6E 93DF7E9D37C815C27309EBB69B9FA91BC443C26766690B01AC06A2DD74F722F9 82EF0461991F9C487CFCE2E697B6974F7E3A1DCCF42389A260FBF0249011DF9B 43B513827F760B98696F4C08C18EFA9D6A9603694855C2D9468EC963F18460EE AB8AC52728B72700B1259A739D524AFADCD305B3D8D9587755214C3AAF4C49F3 1027FD7F80C82BB7EAA5792FE68D2C2A33485BC0B73749C9FEE1D5BAD8DD62C2 F7157C7E1D3F9DD47D91DA30BBA66295F9D8E86D621DEE3E2456F05E30E6FF55 2D7BF0BBBB9926AC413EE7E0BB8B56ECBFB62DE9D8A06501B6F49FCB298F2D9E AE2E20EF456382843CF66364DC3D9BFE0943673C513634266C51333D60660B07 A7055604A576760484AC8A80CDEB92A578D1C5E222BE81C3E2E8BD932B20B39D FC07FE720C90DCB770CC8EC2173450E4E4B58DEC40C6892FDE30634367C7088C 26ECF2781A83A018CEA9CF105942FFD8D5360FFCEE038F709B3D3C07B6ED79D3 10241EDE2E4321F432023F51D39B9B3475D2FBAAF58CD7CBD01E67EC29BF3504 8437D5A1AC5BA57AB795466DDDB969D6950813AF15A9FF4C440B48F540C9B579 1AABE1DDB9EB1F9687349857729209FED753F456EFB0F21022C83EECD6A59F0E F8083CF9EDE0778C2DDA1CE71F85A57AB19EFAF11E5973D743D0316C597DE4C4 47C8AC1C469E8F60FEAE988F1E4F68B97D8CD97DB38C0ADA5C42FE64A7771D31 49A33EC157EF34656753C83B26E1BBFF01B909E68D07ACCC14B4D2DAF7C58C38 CDE288B2E0193D3EDFEE5C70FAADDB0D7E7AEDA672134805ECDC08F328736BEF 29656EE47C940BA5551C55226CE6B6124F02BADF3A9BC572C1C092AC696B5CA0 217224E273893F5979185CB24C9B70DF5893DBC7EA27B8BB05929DA6DB751192 F0AF3AFE1813A4AF41345FD3F245258032A460C7C8ADF1E5171684E09DA5E400 68AF84145F49F0BCAC41B40D144FD6A49D62B4AAD9CB307104A528A9E044321C 347DC1367E49AC41089FAF5AF64FEF66C79121CDED8D83344F08942CDE1DBE36 BB074CB0AC2C8272C7B167958EFA9AD6910F0A36380BBE055CD56CC146A9C7CF C96D112468F641E5FF5F590390FA0951FE26E6C5FBD78438E6CF74A1F03A0307 7E95F9447D626506C9F0E4257ECB47A27CA356B6DE284F9FBB5D1B45CC27065F 8BD0DC8466E55BACB3C737A5C7EAF95E1B3B5A8E2B2644BA2DC31BD48B9008F5 277E49258BC8904A17F6F0FD65270F69666F798E70C095CEB1F3FA061532A79F 63AB6D13BF824651683D08171F058CA4F192CDF89610643EA48871BD77E6BD31 DCE26D25A4040E3E0B108B5DA393DDE17C78E96F31A75AD65AA46585EC68ED1E B592751BC9713F7A76C00C860D5865FB29CEA3B50CA4DD6C54924DE15841AB05 10B612DDD92E0C7194111DD7B15BFB3C8BCCE3AEB4A1C7766B09108300C05813 E88E1D984660AAEE0A97B51478A990151D54DFA9591582D0C3FC9676F5C580A7 E9A636484598E5B2B13C3F184AC8DAF1E405B707402DC769D7DAD1F4EEE2F309 81744CFF3AA8B71B91737F8A88E258BFC22E89C145343F49FA26407FB996ACA5 E8984B40F73B6204C523FFDB02DA74E62BC03F5EDBF6869BE1D797F725A043F6 1950AAC50F26738FB29A23440FB520D07A6E6F2D365299EA664592BEBF74CDD6 838EDA712585AD09180ADCB9C203C6D6279FCA07AF9AF9F0CAA6F9BC98F24358 DE2EEBC1EF91748F841F5CB8F1B64BDE7F87D5DEC7DFDA6B86DC162CAA9DA3DD CD98C88B8A0C50C275585F58D47A9F594EC4D7FA019408692B19C3799784C139 DBC878B6C9CEC8BD99DBAB2A972E20E27413D0605C6C4DCDD36D01760C6CC3B8 82CA4D96D6145D6A7A0FAB66D1D0EBFE64CEEAC391A8056ED421875A21B1A6BC CACAD3E1796D1F3420343F6C278F2AA1513283739B6E22EF8251CB9E33DB1363 7BF14230AB9222370CA1B6077DC125226E2E9CB99C96AF25A3A5C25871D190E4 D03C3C0D5111DD0743A4D2EFF90C53608FD9B192E5F9141943919268175C26F5 21BDC26C85613BE828CD248DD0400AE50BC728139DCD38F4428E14C5A27745F3 2B6205022A2D0477F1ED47D68082B57AD0FA6E4B424C368D5D4612E4C095058D 894C1D0B6C5329F0135F06AF73E5D944B8B4A01A658D9641882D3EC891BF7A13 A3A5BE349914CED6E96ACD55CC2B65B625994D9A8A3A271F6537CACC373BCD38 C6C66C216A9774F44F4551EB7DD811B9C96DE847AD2FBF40AF0D783AB2A3B762 98AFCBCB578051848966994A28B7D1FF4716B5483BD0E9BFAAC29AEF5E5C5BE5 DA29C680EF14BC74ABD27E28A0605EE904E1158F1BAF278E92C6BAF19B652DFC 7CB35AC968FF65F089EBE130B80FB61A7713F09C92BBEA8C9FD0C9B797459CDC FFCB39EF798AEF9B0997ADD6CB4CB9A908E48303B89082C8C08F5FE8C4AF6D09 DAE8D4818A938631BE0C7A2BAD08B6FCA8B795C2E7C90FCC307F68E1F0420934 10D134A97C54A437E863493EE2B8777D0A41E5B6CBFDBF9FB28D04D893E621D0 0991F03C36368FD97ABA2972B940337F0F28AB505E2C6B05C0A7AA8B0306002F 0E0182DFF9D31CF3DF4690D6327933FDFB4E9E1B6D7E3441CAEEAFEC7C2EAB19 A27C05E0340785890263E0D2E2A4ED18C3850CC97160F08DC794C0472A59BDD3 2CD21C2F745A276D4ABE49918D84C55DA127697B950FE7BB9DA182748586206E 96360E4660F68CFF793812141412F638266F4751D2E9DCFE554A9CB5A79F8743 9B8B60A5D5555CE6445955B768A634676A1DB9213C2142AE4510616F2059D6B3 9A062ABA10FDA02E6A4AD1ED45400D920890E0D58CDC784BCFC9892157FF000A 62A8926AD321A2CB047494979DE67D2D795314465CF35E1AF40247483C36880D 8F4AF96ADB16BC07A7CBA6F0A48B4739A6E74192A9BD3A417E9BE8C84917E2C3 990D5209FBCFB030D56BD1C554853B6AAEAAB2815A9B75DA59164D1DEAC494D9 76BB60D718D2D32026C173712F8161EA9268643918D6D49FC2AC3820438053A1 4ABBADBC81D02EC6F27A430BB1F21754F54A00691312B1512BA5F24F4F5FDD80 7817EA727AB1406ACF603301BC7A08C497CC796E019EAE966C06329DEDB59799 D396EE7B50A8F0CF55E29497D39D16 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMSL10 %!PS-AdobeFont-1.0: CMSL10 003.002 %%Title: CMSL10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMSL10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMSL10 known{/CMSL10 findfont dup/UniqueID known{dup /UniqueID get 5000798 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMSL10 def /FontBBox {-62 -250 1123 750 }readonly def /UniqueID 5000798 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSL10.) readonly def /FullName (CMSL10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -9.46 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 13 /fl put dup 42 /asterisk put dup 44 /comma put dup 45 /hyphen put dup 50 /two put dup 51 /three put dup 52 /four put dup 57 /nine put dup 65 /A put dup 67 /C put dup 69 /E put dup 72 /H put dup 73 /I put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE32340DC6F28AF40857E4451976E7 5182433CF9F333A38BD841C0D4E68BF9E012EB32A8FFB76B5816306B5EDF7C99 8B3A16D9B4BC056662E32C7CD0123DFAEB734C7532E64BBFBF5A60336E646716 EFB852C877F440D329172C71F1E5D59CE9473C26B8AEF7AD68EF0727B6EC2E0C 02CE8D8B07183838330C0284BD419CBDAE42B141D3D4BE492473F240CEED931D 46E9F999C5CB3235E2C6DAAA2C0169E1991BEAEA0D704BF49CEA3E98E8C2361A 4B60D020D325E4C2450F3BCF59223103D20DB6943DE1BA6FC8D4362C3CE32E0D DCE118A7394CB72B56624142B74A3863C1D054C7CB14F89CBAFF08A4162FC384 7FEDA760DD8E09028C461D7C8C765390E13667DD233EA2E20063634941F668C0 C14657504A30C0C298F341B0EC9D1247E084CC760B7D4F27874744CDC5D76814 25E2367955EA15B0B5CD2C4A0B21F3653FCC70D32D6AC6E28FB470EB246D6ED5 7872201EF784EE43930DC4801FC99043C93D789F5ED9A09946EC104C430B5581 299CB76590919D5538B16837F966CF6B213D6E40238F55B4E0F715DBD2A8B8B8 80A4B633D128EB01BB783569E827F83AF61665C0510C7EA8E6FC89A30B0BC0EB 5A53E5E67EF62D8855F6606E421BD351916549C569C7368AAFB714E22A023584 8B1D6B52FC6F635E44058690002C6BA02CEC21C54CC8875B408A8BB84F445894 5D6B3E4841CA20AF852A660FE9C832F773691DC6F7197FF3DEAEE97418A5ED2F F2AE65300416227CD3BB03C29003C770CD7D2A7A2E4C1DCA193651C2CDDBF93B 966938788694BFB562AB0010268955FC3555E5984CCAB0A9B7590C77C9BC713E A29E5BD7193A4E971D1752DDD0F0AA4648E7E87BBCE66A1E836C715C408B07A5 9EB56BEFD4596706CF839BA4CFA90CAD4038C1E006B51913279A2C31FBEE5BD4 A7D74F9103CE6124F5B439CB860987DF44FE17EF88EF1BF62C67060D25696BCD 94ADF08F04E349CEBDF9D3389D870D94CC05E393B3F4362A13A6A672EE5E8F5A DFE7046AFE3EBAEA58FFEBA4A47BF61F92E2003756DA643CCF2C9DFCCAB62669 E3C2A18D690B64D907F50BCA155A85E47C3A6954C6FF7ACA36D8DFCE777B7929 5F5D5F787B9C247ABF13D6D7B4A8F06BA25CCB342F8A5071325CDA86AD71BA23 8A9695C7D1D50D0AAC267AB7CDBA7AAF46A264B7B081B7E79AD937FEE4969FD5 155A99E652461EFFB4BD010E5885631E2B2497D6B8C43CE77D7D47FE201DD46E 4482FFDCE150A1183C22C004A0AF0E1F42AA6804E038E1DFC8B0A3CE26B52038 44D2E7F759DA5C252489E5525963D68BC27C82247BEB18818C7D4CF0BC5CC97D 8C701034B8DF798DD4CE36C3F8B1FD40B2DA14EA75583852875031AF8C909EE0 04495FDCD04B05A5EFEBA56A8CAC1F57F1B8AB91FB25C81CD51EE69D6E0F52CC A0E12CF7E3187D67DF71A599FFD895FAA7BF80E2E6B96592BE77AE96905BAF0F F547355A36C443797DDA7C414AA606CF9153E03450B77D1BA4088D739DF55F07 111B9E11AF37F45B6EDE6D7AC126E05886A57C83886DA87761BE600DEECD1344 8A82BD652BE7ABFE6A0F50ED7C6F4EE12CDFD80CA7A5518692F267C51C3FE76C 567BB8DDBE09A2AF901F79AD02B435287CB8057B3D5EE6655071F67B00438728 C4C3EBD648BAF650993AFE5E2B29074A99ED0FB725D9B8CE8B0292B08A280214 C3AF252BEEAD30C88F72E322FAC3E9D78A1038F5DFC41F7BF1AE3744A0677094 51B77C2D630B67853FE5E975A395C06A4D4DA744040B272C2B88D8B7ED3A2C01 66F503C9DFD3C7DDAC865900D2A4F2CDF517F449851DB1963468D0266D7A3E58 9F6B2A1843E6444274F16A9930302DACD8D2BC4588765099A86BCCD8A31DF0E6 2853114DFF2D19F812F19AE6C2E419D7AC1BC024D1195074FD0C6717BFB389A4 4D5428E7BB2E4F9E9FDEDED7BDCBDD3460805AEA0B5F6460C2FDF19273CE5BA7 5D3AAE0DB94C6AFA8339646191C23B0149E7CBF136FC4C844E025A38935DF256 0A0A6466A45EE8B9B23B6A055856FB084F87C73BA28F1883E3B184CD813C72F9 233B78CA4E125ABD26F29B92CD9DF39D6FDC2A217E2B6B45D9B0A4D536790A5D BC0903069565A442FA7466414D948AC432C6B75D8D0E1DBB217CA3DC38A52DEF 62E9D5AE9E753956C13819D93148C7683BE4F71B80BC066D8C19FC807FB1C086 B49215DCF56A91A42089F0D063B9981925691F7DDE3237403AC714F5CC3ACA88 DB2F1DD205578C00472FD70C8BA4F752E3923ACF3164D442A6B639902ED060D0 C5777BC20F9A3BDA60FA3BC986C38136FBD2E8F910E32EF36377C9CC187F4AFA CCEC423DB925B378522B748BDF12D523804CABA83CB5A7ED69FAB9AAB75EE8FC 38D9866E3754C4E2F2B9AEFA804044D878DED0E114EA0E9682FCF38F6628E63D FE1C1B5615E54FAE8684566EDC4B616F76EEFD6207E0386F06D3BFFA26425F24 303CC7C8A8D7021E7D09B202616988287838C3DBCE3179B4FB5C726E603A47F2 8248CB508F327D1291CF3F08F7C88298DC2D0F778D24304EFCF6E074182BF5B1 8E6551811FD6991971692108E289B61053D6DCBA2925B3903E8916EBD09D97A2 C6D08E89DE4C0CDF7185E1E00DF456B249F0BFC686E04FDAAD2772DC2C39DD53 9C23A41471267F53A87E5C2B8CBCDB66CE0B9844BC506428E6150B48D2FA6363 4FDB2CEDFBAE0B7DBCE4D83E29B2955F8966272CB865EDB360C8A8C19EC62A29 03066483E4083524A1E8D80FE3867BC1AA91753C26ACBE8489AB0E3330206212 93E07ED473DBF457EB8489E66FB4B8ED8A9EA8911CF9308CFE3E6D6F36810EE8 91CCB11BD548617B2C683C354452B9229E7C9E68828BBEC324420DF7C188CCE0 FBB514547553A7E9B38AC265783891F42DA472388569C8E7594F7E8810895A27 06E456902A8D9F65CA808F1FD475D011C4572F8A654BA01D67942226A663D179 95149FFF41A9F55AE84EEB9A6A39C017D7E4FD6EFEEE7FF3CE847CDB064A4954 9DCD273B810E0F259501BA4003A3EC1ABA6E13D24C0B57FF82D6DF077833B6A2 7EA54801BA81DB961C261689C0887FAD83771E55D3D137AFBB21779397E11972 6C6CA922F45AFA5C0526863A5AD8B9C0775CCBA17FFD37A44CED4710884DBC31 5C9D3F5441595B86CF7CA2EEE42AE87896E9E60EBF5F35C2B7FDBF9A9CDAE262 3F48396F0F741E9DDF1D4FEF75E68AFB020D06CC29B3A7B2ED819D1AABC12B91 CA2A65F1AFDDA2F3FB322E0268DBBA024663E49EFF076455338FE31A16B04EC1 797EAB0B49AFFB906A0690A1E8E2F5314773E1CCFFF43E6FB3875AC907F0C5D0 DCB9BCC127014D472463560CA0CB1C2CE614D94177C7A52A5B089316689C8112 CA57E35D716D956DBF9013B1E5B9626456B1433C8C15FA906458F957133B9E19 8D46DC3AC015F7602538C2AE3927C6DDBACF38E59220C2F5AF36B68DE9117C51 04CF7DF32B1AF55B87D1D8A5F4BCFEC66F63B32B6548DEDA3AAB06C5310E4757 78AFF947DA22809B360FE535506A554DDDE5A6F2411246653710ECE5CD3185BE 730520A766C47E1ED01890059882BE1432586864E1A86A7F586438C8DD35C00F 021A741ED47E0F16DB6070ED0C50038632CA4AC2975578A8372A080CC0447C79 CEABDF2BCD5E78564247B0F0025F556DA8FB62125227849EACFB724A4AE3EF57 90C07A5B27D2E59425F56BF8AD84C5F5310FEB1BC73D536339FC2E6A5BE2DAFD 97FC835E0D52F680F80ACA37DB498AACF152B9B44626CD89E3302C3EE1623EE0 F998FA78305960AAB9F483F731F5F67A8C963C23DB8E48FB804EF8B86FAFE7F9 4C09641915FA7E3930AC922682313408BC1607C76751CEEAFD660206A39CF394 40ABE2A313AB7D5FD6444E219DC5C26734D322BA268D330AC17959A390D6C8E7 3A155095BDD66516DAD5D65519A7FB871ECDA77061EFB21F359158B4470EF79B 362C35C06B85C9A9505C8361939C6AC013F2CFE8EEF46FD8CB4452AAB3EF1FA7 DC066557BADC2ADDDF7DDC2A0E1DD4A357E27A2073427EACF9B9035DA5272136 7DF37E26D96ED4B2ACD60596E039BCB15E259C72FEB3344E3EEE3D4F17DF4233 04C1416BCADE80BD483DD8C9AF979E1C7D50C4CF015870703F88B92C4FE46AB8 DE6717B55C460C805B391B84333097E116F4A51F631FAFAB34CFC925BEE8B72B C9FD5F5A79D8F2295FBFAE649DC6AB47794AC7D73431FFE5BE992F2B5AC67049 B5208251C0E442385A9FACF25E3A98D7F5D4C2A1ABDC600AABE84769CA83350F 9B87F71CEAD3600E02FF9AC03C1B5C21C84F911511A0CF0111BAC7605EE31229 3C526A79D943D92E1CC3C38ABE82D560CFD4172F318030852A5FCC0534B8B3FE D7365987C8B48A072907B26CDC2108130A33233E8E0BB5FDF14FB55098A10EA2 B51AD9EFB119F82B08D256D396D3263FBD9DBF172D43A90ACD1A31F3E89E8571 74BE98B9560E2CD661A2F93C69FEA3FF26B00772AE2C2C24B98D3D122EA2AA8A 44652CCDF4EF4F01CA7D62A976E23E8A86291F43BFAF38FD9C325E70F9C36CB5 A181DAD30156E98339E6A0498D3420B7BB3B4E651A9090D4A17604AE386273A8 3D4AE8CC18345E6E19DF06BA848F203F74B161D6A8882991CBA7385F308696A1 BEEB0130D938A764B98A2001A38489B1334025EA848CA44A116D64926D460D64 01159E77EA7ED9ECE7BA77635BE564A4ED89315BDFF54ACE6AA1A26591D13CD4 6D6425CA7933769B842192858D10998509396829263290A3A7CFEBBDA3EE6CDD DF1E492AECDFF7941B53573F01F623CA0A5ECC9D05A3D0954F7AE8CE94AC3B2A CD4E27519B2E16F033EB732AA024BBAF74626DB55DC74B1FDDB07FAE98B4AC5C 683CFD8744F361838D343B657EBF52DEEE7AEA7565C5BEEFE455DDDBC4DCCA7D 87D6D769C5ECCF14118A14A85A86865777C8E28F953160D5E82844AE54D541DF 550D5F1519E183E0C42BE88F0458CE8087F2CD4B1B49A8E9E3D127C4A4CB74A6 2E73BF4CC317781D03FF04BC36AC0E4AF99E2ACAD20F6F8029DE8A035DAB40DB 17D237850BCDD05931FF4B0FE2D0B79EC5A88FE0236271CCB075BD194AA25AFB 3FB93A5206F61A14602E4EB6F1C31C654527CE0C02D04314DF9AFD710D0EBB9E F8721B97F5FB18E27507E1F800B5509A58A1A8296C72B7B73F99B6CFE42E9C2F B63B3555475E562672645CD374BCDE937A9B05A157FB3E74C8297507253E957B 1A9DC421946734CEFA3D5EE357DAC7E9DE17A5BDDEF6B2D2A740BC58128FC514 61154664412BA1C05209EC992A77B7CA45AB7C0EEBF590A5B5652866008CDEF7 124A3003AE6A7CF9DF3C72750CBD281358CD2FF25B162B78CBB971DB3477F8D2 ECA3EE9CBC90323B2C236E375337EA0848CD7CB5781A2B0A42DE7E4D99DB2746 0B26796CEE129D23C76794B7CE21C13C7D4A998B752C8CF43A4821B736EBE246 D2A2BD7BA3351FBCD1B0A501EC1EAABE60D06DA2FE39BE1F0AD629769FDDC933 F9D02F9686EC8C2D7455C26AF4DD3F6860B2289E3A30E1C254AD17D731CB73B2 BF4DFE90CAEECE3ED0CD3FB4C8F4C7BE1C056AB4E9B95781A8968E3CC1010003 75DFBC4AB9F6B27C5A9AD88D94441A8ADF09EB275E5F0E5E6F3BFEA0FA8C308A 8593ABA0645ECA8FDC3F0E264B35D4B0DDB86B93CD8A047FC409E18196B501C3 B003622999C47BAC04FD1ABD8AD359C977766E9643EF3BD6385306B08EE3E13E 7DA5A06AE33D17A3D574C6390DB6E9429754B210F0C349C359559C7EAA2350BD F61D4D8A92B1AF697BC620FA0351E67E0D9F41A95A47EE0BF210C2C48691901F F905F65693DCB85BE412F097480F6A7266AE0A928729DA0F691CBFFF3B276EA7 322BCD2206D96E3DAFDFB992CA8F2955F0E8B882729DFF840569D12E4DA1775E 523AA734552AAB6F2F16B89B39F1A3FF0E07EA08D13E612F201716C67F327017 6C041760DA30374434808273062C1FFA2C47B3FB578807BC26537F542040FF77 66C995EF3E8B08B09FCD3EE89C30F157158A739606D2CEAA26694A4F1CEA6633 B54933141CB85C60AB262E2D4E824A3B85C2BEF810DD774F296AB37D0BAE7182 5648CD18556ACB124246A75474B232D712C2358908B5D9A76F82C626BFDE01A1 093B8FA6AA0B32F2CDEF737B28BC0448FF816DDB5812131DA0DD5979D77C3838 B978CC3F6778A4BFCE9A7087EFB19749285AE4C92B99A6649DA349A2E0889D72 6D4FC664522F06C8C4D86D30BA43ED4E42211217D01636A4E17E2A132D26F394 EC34EA12D84594AED9C6CDBBC0908860F39B240FA7D7B3003DB10322498691CF A294C0FC7ACC0BAD1EED3E9D60AAE3F7429695892D1A21CEBF062C6129B33966 8B2EF6E932F9891DE6028B81C5E9B23278D35B7F0D83989BCBA25E20E9D503DE 144DC485F09A4EFA1268AC5E4B551C5B2F1D51E9B9B9C0FEE585204F869D0BE0 7287D7570A12940A47C1F51AC6134F03B415C30E147C49F89228855D093EE55F 172711F37776E97A99CC4B36E2F10713E36FB279FD3FA5A0EB9F3938F42E2BB9 254EB8F0C0F30391735019E02BFDA21D9813C6A22279B898EAF01AA892B14DC6 5912B9275167AB46EBC420836CC1A5F38A4EB47C039A7BCA62BC3FCE4199FC71 011DD6E5FFA0F3D7F04AC02AF91B9249B9F993AE346572329DA852115BEF8460 B94690E790003586F473F37EAB5AC2922F5F663EE2C3C0C336A8DB71650631AC 0A923A389AC911CB215EC2EC7D50CF8AEFD59EBFFA53A9F1FFB7E6215F17093E 3975F186FE23BB5FA5474C11408FABD223E1E6F62035B5A5C1AEFD8899F00FFB E729C2D5FD551E80716CEA4E8281660286A802AAE8D5834F37F2EAC46297E57E 993B09251DD7789D3467417E393B7DEABD06676B96241B0E43ED1A1A9FC3B12E 0D34B2B0792B79AA648FE9450C3B209FB6D7D91F50C52A5DAB0BC81A8B698BD9 18946EFF691912D7348D48FE68CD876FC6F71F81165D0C3272DA1A992308D9E0 ED6D0A4DAD679AF495F62B78D462B463BD4A40931172290C615B3B3B6B47E45F CEBB85E0A6AB6832067CA6D403C239530D07F199788AA4DD52553836851C5228 1072406F6D7323A334E7A7FCA588897C4FBA6D4F7DEB65525EFB74E539C988C3 A685A98752F7198E77E456A545F0D23A1BEF81EF58B02D289CF980A3F17BEC8A 6F83DD90C4A917EB0E5E2B444A608E2E9D2FF80620E16AC1D7775C0A10C1299B BEE0E1AB24C50647E5CA1DA65CFF3B2C295F0644CA7826E1DC6FADEA93D66A20 DE852F20AD224D28DB900519EB1569837139C833F24B799F7EBE3FDC14235323 1D0BCD4991C861F38DF413A5A5588B73AEC3BBFDB885CE17BB3E97B4E6A79761 93EC8418C2BC4725CD61B5E30C07352F647C3FD50083878C13CFAC241DDCB082 E53703D182068727F9EB6FACEC25F6D901D7309ED7370867E34E267519E22D62 4FC7093448BD0D6B1C43D318A3E14C92032325C132AE0FF7ED707E1FA4A955FB F5224BE0045CB14ECC321D0F333FE24EEFCC504F7C756451D7693C3E6CA87526 4912E1B6DB935BDE76FBFAFCA4ED473F1D2618812CFF25A6859C626A216603C1 361BE3E071FCFEC2D4BF2FEBDE07DBD56A1BFF8303901168FA06488BA6B76F36 95B0A90D7724E9ADB567C2ADC65CF3482CF47FD1D16F70AA19A97D0F9EFC611C AEA5E1ACCDA7FB2DF05E9480936281484BC329F0B771775E73F7FD72FE3F45F0 50ADBD03932B38F37A8F0A66B2F739EA3AC8811C8F514E68C5643E4AFF485C81 88475A523D7FCCA5C8809BD49846C77795A38DC6406082000236A4D2628B5932 AB7916D44EC2210CB941B1455867E510E9D8A0B83CB645BCABDCDBFCD51A4E12 60CFFEF0CCA548F654037D01CD631FC4E1F97B4F65DA9AE79D99F13A726E93DC BBB027B7D175FD17A704C4668F6F8428262959DACA9F8C687C923CFA053804C9 9B2005FA7E0F07D81E52A9A37AD5CEBA8EA63929093ED0DAB9F7C99C82A50E6C 6440387049A0C359218F5268C9A28F581783BB9D29E08772D7252FAFA6739687 22570150178893C418531769CB3D96F799BF1C6415820F96B78BD1D5A73E157A ECB9F3F59C0D736946734773ADDDECB58F8095D33B8307A2820C26237318530F 5D037E7D03324CDB27187DC701B3AE0F40089A78E3C138B84FE2165B6DA98E8A 1B13FE03400517411ED880613336943D822F2E133A03DB0965EE09569655370A 0BFF65D2BDBE1C8FB45642B3C13AB6EA56CCF855DEB471E057067E5B94A198A7 0F173EFD98BFE6D74D11AB2D2D8EE96E469665677DE4178459609BFEE6575FDD 28571116E4FAB5E3B202E767D231F0B6EE13EB09D71F71C2C17C37C1BA472C3F E3171B94F661C9EB9C63BDA797AA239E6EA04652AF6CDC7F00D17C0E85446E65 3377FB5E444BAF594CBCCC6580590696D0F4968DBFF44A10E3723108D93E32BC C77209FE47C7FC8E0525851061FFC9E55E6281FA23F5E24727859DC42F5B6A74 F8B8B759DC31EB79ED85A961CE2555B211480D0EFB4DD1D81131CCE8710FC493 3B212F72BC73352AA1CB59A88C25BC71DD9D328B42E6467889CAADD39440E89B D15F281AA956963875A26B21D1622B594DB14923816BA154565491F90DF93EA4 6FA1FE0AECE713C5CAEDDEFABB5BB4E35BAB5C20074D187FE5B58DF50E903DDD 8AAD52173FA8211AE24CBF1428A0398C17FC2534DF5A4082AEDE04F7CCD07DE1 38F2B1BD6A83FCD0DCAAB633EB5D988C780B32DC7D8057E26CA997288562EBA4 9197FDDC96D8E6A5F2C00D8E425DCC5507E45DCA76C231045D02B40DCF2673D6 FFB9A64EBD583A1B5B7368D0D1DC072C2883AC31DE806B70BC9271B58F99D721 9F762FE07AC1E5010CF7C96330CC701E36A35E4A3862095625DE94C91ACC9982 99331AF5E4A7A58FF78BCDCC12F033A940C9ABC301AB0F91744A9531238ED3CB F06674A75E67389E9396A47EB1C3A2E2D4C39B941B56CEC4285BE252DD4ED4F2 B3A93B779D87379CF5CC6742C0A0C582B6B44BE4EA5D4F10837D89AAF75F652C EBA65BBC808DF6485BDEF31794457AB02F7E415E959FC90F3FB8EA430BA99543 FD269542FF81F1D30F990F5D6A4A824372674CAA25C4071B96EAA3948C1B9082 5CBE961C030B68F0C4A710CB54FBD0E05A67271232243C62780C9A5C753DE53E 4CA7BD93E1BCF0D527C25679B5C8F49E4460FFCD520E8F235D2B88792A794FF0 837E6990FD680EC8D8F67CA1A239D48929526B7DC3ECD37614962C06185C677C 62DA50413121D0CF3CAAB234EBCA3A0D829C39BF996FC001C1DC299BFDDCFA18 12BD4CAA1748534653621C57960E252A0DC250D4AB8067CB4E20CB03EE101D13 DA4B4A2EF1B09E0EB5B5DCE5601E38E92F6499C9F8F7E5F20DB65F7D9C7DAC9A 91EC1AF43040CD897A6A375875B0841EDA0F480A07ED8D636B081D46ED0C8960 9A3CFD2EFAD9A9CD8BFD4DDBF36A03F198D98BF7FF4BA2837C7A5E60AFD1DAC1 D9EDEB78ED8A25144D0A17178F684A31263B90A6F97B3435B94EBA4A6C39C9F2 6A37CCB3E892A152114173664D57F63FC7F3695310DD7B0B8C84A5A127080807 401427DADE3A799B19B2FC9534DB927C03BC8E6C9E5625E850B6C9024060A5A8 97AAEA71C412A390F7E818C6C93D77A21D97DA52E08F6A91226D1731B7699E0C 75F5F4AF235AC09612C177C74CB6E3260854F78823349C7C2084219B3C87E86B A924C239C44E9869D49894E154A15CED7481B9DE4CB3866F9BB1DFC20720E92B 4D1FE83CCCEA5C205264EAAA92232F5F2D3CF445319F416F3B2F100A682C4D7A BAABB776CDD6E9510BF6708927FFB36B3E4D8745FC6AED2729552D4D9F320007 8524DA6CCF78E2587DB1AB1D9F9BC5683E47DC591E533CBAA28DA89B74AC5D92 4D32FDFF5F9C602EB47FD43A8AD85759F3EDF54FD8D91EEA6DF62B6908FD2AAA 20E3736A9F628B6224AA9353CA0AF845FAC7ED57A6CE29A9FBF26287B83F5629 A25DD2458CB276115C9507E595A3D5FDDA8817522E8EABF31C3D4AC0DB5B897C F0909730A01C16127193BA4AE0A9415E830F98A918A5C04D4D4C328812D46714 FB6ADE779B4608F3589C499F6C0D23DA9FE1689B2484CAA0B5F5D7E2708FF6A6 AF961DB4B7940CD2A88E0577C0F5D8C77952CD65FACA866C2FC0FB7A94C44BE7 865B2025420FDB9E1872AE7EEA79290016F6CED2DB0A00B53AD17F35B3883368 3FADB84BCDD25F3E3F6F8AAC00A95D6FDBC0B3CA3B66133AFE4320F06E1D5610 FA8EC97A0613FCFD64BF7C8286024008617B17A8D9067E85DB0439BD1585117B 209C41323DC8648B199D74B3727BA28E12B804C7D22D2CB2CEFD217CCE18096B 0023EB7E922464CD13565439ED5047FDC968D8ABC1DC82DDB85D0B53372B1953 F989095F7C9DD1167C5B2C66443820DB808DB097FB5195FBC5A3D9B7C3BA84FA 97E1BF536B90A66DA0A76F326B12F0D996A8E97B98A2A363FF49F964DF01129D 08A4F4836C316AE9C0D83101461D82B699686F3334B1FEDD46FFA1443B40FB72 EC41A8EA5474052F4E9BBF152C75BD4CB5D20D497245162FE278E42B3683C14F 17187328822ACE0753CF6297DF7182CE322E9B7BC9D5BC52B0F7BFF7E5EF68C8 D31FAD58EEEF3F837320AD972A34033B15A7F22C1342947E15677D75EC7BF43B FC740840049619EF9CECDE0F23D84848F67416E3A4C9AA302A1FCC68C30F12B8 7A1528AD133A86915BCF448C7101D892997670C3462E736B4D826A8478E14DF5 0B4D4490E41D6CC216779D11D1FF134BDF7CFFE1A4B35CC9AFFA498187860BF3 F6966D8B214E66AD210979F12767653E1E20EA8C57A7FC90BF30695A5863F982 E3B40F0EC6F01135C80CC1868E44C3E555F1CE6D3CDF613AD0DC8057DF5CC269 31C37F8E5B40BF8472F467D6F6CC55396DA76E08C555778B6CD2361CB33B15C3 31946E35A95766B4F5C073548B98F13277CD8B580C8FD58215C115A63F392E78 765C94B525C285CD5555AFE2FF64D9BF0FD8427379428C0A1D28D67C49E678E4 E58B3CE33803AA5DF0704705298CFE1DFB7FC8593B446AF44AA496B154A22D34 9C9A4773B1CFCEC29B954F55E26728B07A10B796CCBD88B030A2F0D19CA516E1 83BFEB68FDE8C7C34B10521E4C6FE00058E86920529C76E336E9F419E8C7D8BB B6FCDD71AA953866D3417A73EA953B7820DB5FBF2C7D1734AF930F2F9079B827 E4A34B99E495A212C4137288780BD405A83DB56E8BB978D7CC2A90404555246F 4D02B50C2C5587889BFEE75FE5FE6218B62704F432A233C7902C60B3DB4FCCF0 3D8AE36F6D18CBC4AFD0D3E053D486489F52843B5D9A3073EF6D267526133267 D44235022604FBBD156C610522F8ABAA4101AC9635B0476A602DB445A0900C98 3BEB2C40E8267D3B9FDA29B8468A863E932275F96CC56C491A26083806F647DB B0ED1EE6454C9A0D9D81D89F1091A6F2D29E73ED0169908E6664BB72AA117328 B97B36EEC848846E14FFDEB35C39FB1376A3F47150E86869724382B50DC7123A AC50D00951A8584363973318D7BE61E4DE530EDC86134510592C82F7F3B8CBB8 AC548D39B585244F56DF2F6591BA91B016EE41D9F7CE4916CF3E5A777DE6BDBA 0F75822A41FD418250F09A6E62DE4C60B26C8139883BFADFC0A55F2618F6AC58 436710A3BF58CDC24A2103B6691CFE76771240EDA70FA2C2648424631AF5266A 45AC2F7DFCEF2B5FEBFCD092E98221E6049709A1CB1E07648410EAF64B524F4E 30D984C69DE2BFD6FC7EED93CD4C3FC7EE25184FDCF46F11280718C4487F2482 A5D5227E75A94C262799BA828B2FC80189A11B631D718BFB1C161B644F1D0C86 95B11946748FBE058354EE9AAEFEABFB5C3D1A47E0D1D21F298F89544E6C462C 1E5ED030C848AFFF810B6000DA9162727A506844684058157C4314B636012845 67CFE357B52A25270D093AB83CB372A44A00ED37D8692B17F24C05E3077B7C88 7E40D8121F33A696675E23A9D9CD15A5A2D9644C52816EC10EAA37F949C93859 53597D32BF53FF463D6727F4C1B4AA1A92A3F23B801FC284A6CB59C0C4E40FCF AAEBE5C6AE5D868C161FF0A29AB9EA44667A849E091CFDCDB7A83DD9E52C433C A8C7732F63DF06086D86EF34DD686E11689A4514AEA73AE466701A876331B1BE 7F5DD1A9409C6F6FFF9995CEE19D3C5EC1E33D4D48A4EB310C36404C9BCDDB60 26337B532397E4681A720BB89AEBA666CFD9771308327CA96A2374BDA0F00015 64A3E1BB65660AD1D4076EE7B6047EAE0EEE1F3BCF426608A8703BE43DF82B61 378734BD91B833ED32A3122F4F7C856E3521FEDFB6CCD959A9953C4A84026388 BA76FD4E69B11D1ECFBDE6B62CC95F4B9D2200067F144691946B81F602E9A304 32933B1F6FB363405E1AD5A3C094F5378B5A81CF08A783DAA76172B97A0DB2B5 71477C5127E5B71FC247B6D88AB5CCD17DC610211DB3E5DB52624BD6802DEB62 9D1E9A0620C6797BD33EA11655A5BED5C15F70227202D32AB291B04B4AE73A06 813F01A661F5AFB1106EC1FCA3C9DC75ED0537C2194E7A46A04CB1633C1705F5 E6B477DEE5D7CCF4F7404162644F497919872D1503291B743A27A632F2250009 6F3DAB96BE83122A0FCC85E66C8C685D3DE660CC237A1AE153ED51FA043EED3C 2AAF3123B1A1C2AB3DD3E13A23B141CEA699A8EED7CDE2C9FFBEFBAE1E45DCC7 E785EBA825470F44D453BCB5F7D47187F433735ECF5EFE29671879B697C14232 B27D0A2C1DFFDCC348A3A2FB98288FCCD9D9BAF82CB1ECB11654DED203E9A833 28CCC5AF00045CFAA30C768BEBA858258965A4336B132B6DF25E4BAD3B5431C5 DF7FF238051B6FD846D4FA896342E44D5B7622AB8744F8906BF0600A184B4703 A26E61FBC61B4FF3AF7F4E6F12B0014BDB0FB24DADAF762D074869A27C3C4F43 B56452885F5BFBF089E585B7651676CFDB1FC7A0F1C38BC317EB7194CAF0629C F9C3390F8058E11484AFE0BFC0994BE9BC69AB722A7CC4B8F03B595B152404D5 C153A5959C21D604BC8A0AF77314D244C05BFE257D06A1493D1F6AC8EEA10280 C84B970457A9E3755EBC88C5458DC5DAECE15DB97EF335AD00BDF14775A6BABA E710C5C18C5770C5EE899D68D49176C215F8153A01705EC1D3655FDD2C09B2AF E67A863EFDB4F82D824F45B641F51788BE95CC157E9102EB44841352D771A861 6AA0C4F0B893CB6F235DE84AA578CA2A78038BF84C7D5B81B3B5F88B435D1985 5B56F7621EAFC04DC2927FAE65B4C510450BAF42770BD6090B3F0D31297F14D8 C0D33D22B1F12A0B77CDB3ECFE851E4B83A6BAEDA9CEFF077F7C25F6093DEAA3 9968161F19EF783A443876FD75AD77EBDC0EAA1FACE77FD984DC806DBD16CF7A 9203FD3AE2A9FF3250D020802DE26CE0EDB7345FBC6BC04432DCD11C1EC3B745 15C1C7281E4F6D6952E69232E15E3962BD78EDBAFC9515DD0983B63C02F1C42D 79697AA473B322543EB691E0245D2C90D9B94AD2398C6E12FD85342394B26F3C 10F24F897D74AAC0989C69AE51618C56B18D522F8AED6D57A61DA6D7DEECC8B4 95E3F842ECA530BE65C8E622491CD1C87E72239188B2EF8C4D9D498E4BCC9F86 AC9FB9E6D522082B7399D16649498181131BC3C2CDB76052FBE71A4C6A5714BF CB508BCEB0E702B31BA45009CC7DFB1DA26BCBFC09BED07D4BFD648ECE733558 ED0909FEC0389E901F73882FD86DA3650AC02E53ED71597E51E258081D6E9497 F3938075908CC2F771208CBC72B708074FB1D19C9DD63B3F2A30BBD84A4D8708 DA5291D024E5ED2D390821E56D9BD62DCCD8956B91FA9AD3EBDD3351C4AF135A 3A330653C6356872B2BF2F02ABC51F39713A38B52901E80FB96FD89EF87A534E 02B3549B7B40785F0725C63798733B7B4AB8A18DDA94F51AB2DEAB9D22108303 5E2C5AFF42B6ADA9110A768825ED631CC7897D7FE00501A5EF46EEBC757F0C07 6877662EB52075CC38C5A088760053A3BBF1C3E3839934C909AF41340BCB32A4 E751CAD62CF069483FDEFA6B94A9A086E8F0AC88D5817148C31119BC814F5F2C 31891C8AB6BE3E0BF94F204C563EA615AB58ED1EE1C2168E31AC1BB7E8892DAC A65693FDF3B93626643D6F4FD5F0873CE7903EA2270FA4679FBF9352D76F0087 3348FB97CDACD87F2DA42B23DCE4BCD95526F39964B615142BB1AF9613A0F8DA 1B64809AB8C1A099E1AF3B32FF640CE8C09360479727982F5729050636396C6C 44429ED6739BABCEA4211CD7CF3C6F7DE6C589AEABAC5BEE2846DBE2E3E48836 F33B9881ADF120C3E6149109C387553B2B0CE8E166E559CE828838E20242CA68 58A258C3C2954756FA8272B761986E0B1DF2118FA4AC47DF10D14402EBEDFFCE 89D4114CDE5C2655C101DE9B590B06EC48755C33B7E83510BFA64E3F0007B634 F7B1969C0718B3032AA2F145CCE25D9070224A58D4DDBA81BD5ACE70240D4CA7 2D0BFFA021F7591F3BE36C990DB4DDB692DEE7424D64B6C328E4FCCAD871A6F6 4ABA8FA5F39D84E733BD279AD164BADE9251C4EE4AAEAED1DB4B37A5639AEFF2 3E9B91DC369355BA7BEE533F77DEC703052851A0D6C062EFDE7501A875D6BC99 692CECD4849789FD8E658C18731D34A0A2DAD0B4406FD3908090F860D0E78629 D521F25B9943EBAB1B7BD8A238853D6CDBFE4B2C4A3ACDDFCF0B2F864E418F49 A049E144E5BFDF63ACB075631F9414E0EC68FDBDC094A28E226FB82A86AB51B9 551D16A16EE0F26538957B3450DEA1EC563CF34786AA6E6AF5C0E670BB7817C4 538E6024F1CD8809D917ECA27BC53599E203D5ECAFF2AD1051187F1C8BAF6748 0BB6BEA8C4941D7DBD228759702C6342C2B0C1F5CD95035D44E888962325855C D919D238AB20AAE68ED56F14F3CE38D2CB99408E20E21311784441469B5B3012 F0BD6822FCD1374B5A3C74CD00F9E82E3E16F9D779B9E15170D31E35DA116231 7CA61CA22D5CE1A8F3FE2B7973048A95A10B4DAAE6CDD3B484EB058DF2DC0E9E 9E69A57949012465E65EE2349D42BF65C66D40998477CE1940C1654CC4DD31F6 69CF3AD81BC75F7DD8452B5671889AF6D7291D1CBD5113307AE266B486BE09BD DCEB90B71ED0C7C4788729C46D3EBA9DB95E305320B7D6A60E5E1A634E270C42 4B6E158B180AB34692BC4D6B25CB1CAD614B1A65F8449C4BD7A733269F23C0AD F5FB97CE280E6FCDF5AA374C001E3D4DDE65999D40EE686D578749E4500984B1 87F762725CA823FCBE1F4FF205453BF8A5465EA5511838EAA6341D878CE41D3E 1CD7BEE6B5B147D917217BD36A652B5FE75335A3986407CE4777897A36B0040B 1D3FE8454E645CE8797FB04E1DB67335E3850AA3E92E51913834FAAB8B6EBBEB 4AA2693DD198D019EB4E7F610DCC072C45169082CCD4DDCF6847FFF3ED9A2A95 0DC3B72F294F44416E7CDC9A08A326862D555A3BE75DFDF8C353D8CFA1A940BB 93D7534D8A3AB83918B6D7D0AFACECE084DDFBDF4C760AD710EEF2384B94A8A7 F314CD60C1E44618D2C30B4F02D368B7F51C68EB899803BB22E2FFB869F496B9 A2E0105C302C34CC9C96E3FBF66E4E8F65910027D618DE5E8030CB99A6A9ED55 15E6E935C8C1C815F57FC70BA82886D027061DB3BD6645DD9509F1BCAD0BA697 0586C502C12E5D2A756BF6BE2AB8356E5C2890119219799437BF4087F18C05E1 8133D3DAC8FEF7F4BE605A786F653416E25EC6C55B79098FAEDC4696B69667B7 DEDFDA6737652973CE384168F1CCDB1C89E501E1824DF28EC2B76263C59FC211 FEAEC5929E6C9A444B021E9DB3110281AA1B14B679E7FB833DF4FBFCE8A9FFF8 AF07B0AB0DE12862005C8DED9078D78A64C86F9CAFCCE529EAFB8F087839CF37 053352A0A6722FE56EF041585BE0DCABF5603E2C40A2F33077E631A05A370A21 B018EE61E0D7E5B9CF13FC8D2F4F4520963FECC5E6EFD4ED3A949B0ABBA53A3C C688F2BF4FDB6C3CC4925D1DB953FAF0DA97AD4CD6D0D46083EEDD07E09EB972 29267AD313E884535C7B6093AA885EBDC1583C70753B380D94033B718C6CAD9E F087C620C8AD44F7E08508317A233E184BDB7F78E160CDE4D7FB2555B6586F4C 3E15601BDD0195F9FC7D27E0FD89EBB354FF07FF10D72AA5766730B413D69B5C F630A13EC00CA2400D04A17CF51FA7F5673BF074FB38B8E679567E1238078A02 EBA4C57098B2CE0CAD479569F5D0B1606B9C96F7D873B7A0D15404E566ABDE61 216C0FF336DC8F079071C3B58119E7032846559BC7C5FDB6BC93EFDDE3F21BB1 83EE607D95093E14D0AECF49E1B5C6CD620A85AEE2671B15D9348C587B93A734 F273D45E46F24848E7B5DED05AF19E5C45FA3C65595BF828FA3BA2E3A335222B 4B628C657A171F16E66ACBBE0A7D823AB2ECE41CA173EFD863691D319F594854 0B8A7ECF1827B052EE547ECBB709757BA37D6C0E227ACF442752AEDDDAFCAF74 95FE66D153B7723ED192676B55ACEF9D5FD3CEC9250B24E0E771FA28D744541B A63ED0DDAE9FAFF43E66C7AE553EB36EFF70F9830BCC7CF22F42219C85F11037 3875F98240FF86BB40551A96E3C71C55F9754124BDF030BCFECAB883B994B36A 70BEE7F7A1BE1E9B6631DF2538A7C4D7ED60E6231FC241926C4619B3611DB7BB A011A6BA2543AB1CB4CC5237B0CB44407456AA0C5789CB85A76712EFD0ED7E13 055984F90334C47533B79CFAFC9F83A79EF2B40D25384DA38E1275AAEB90EA29 61E19079E58DE4BD909C196499053D6D7308D5182EF2BDF6B2F3FCA56D9DF6A4 3288C9CA5B8303DBBD1B248D1B58DFE65839DD7E98956786843797B43A542BBC 7A9DA92F11D7B3F5FC59AF37713A8317228CCDECC2A8BA410677B651C925435D D9FB90B6270E057B5BE4C4C4BABBF35B198F26C21541FF66AC6B04B40CC9E69F 2C34E5EA1C6F4765EDD46D0649A39FB4E699E042912BC096CC4E3178AD095CE5 C7C082A5FA308C62C8DFE5C865C488AAB80149BA148F399BEC08A4D4803CDF45 6A2F64395D1D4874D928940AE305411369E87338AAEF9E7DF0E2E77C2BD3C410 6567940618E4D2A3700C1582C4C8487C4623689F98A7AF8702935944801B1CE4 49AC2F2BFA9B056515297B81082FA632CE3A1E36920CF1DF46D604304CBA34EC 62AE5862CFBD562C4E165E46250AF7A49B9864570382AF5A5C04E5A42876C60E 3A310040B132B163D44206995DE99654FB438FA5C2EF0B84222077911B70FF5B 157C72ABBBB96895AD6A6E35DBC362CCEA8861761DEDD5A06B661E8602769A51 12AAFC752BF55680B68E6F71D455086E8B706DCFFBCB5DF9B7E929621F0BBDB4 9BF363A441D69C3D2CD51C14306D07AAC6061F8380E7E3E64F7AA39D1DAD569B 0DDECD76124E6691D86BA8A1BAB81B413795764AA6C3CF6609C05A6A49193707 FE82EBA327F8E8326905B2552D88CC85B03D83A8B8F809F1E7CF641F779E016B 5E2D746321BD245CB2BA1B124C8D80AC279461A10B65FB1130F9CD05D180279A CA50D34986C75D7DC2D6785B1754F3ACA6D0AEFB6ED96FEDCEA14680AF785AFD 2C6B69ADCA0D099F182FE07ECF0A5093726965C6A10064CCDB80BB37699378EB 996A055619CA4C5E19D0A110057DA8B692BB2AEFC489E0E2BB99311CDBD20A97 D51BCD0218B071A512FD99989C74E93E75A2DA47262BDF07121E892CCF61A968 E5DD1554ED4DC70BB0FD7F7ED501D9562A2A8C09E3127E203F1CFA161172C070 CCE7C58B69FFE04006E866D1DED955E87F12FF891AAC70CDCE7C5C8432B8BCD4 ADF01A1ED9B2BDD1AEEE5EF72B40303CD8BCA58DE961FA1854C4A4B8D360288D 31AD0E4B94ED0DD4C9FF0260B1CC8105CDFCD131603B3BE6DBA85B78453BBBB3 6EC4A41CBED6C7542336098094D2E30F2A00911BE0C165CD49EC201432D320E5 DE78D71A4F0491F960C0EF672244C3C3A45FA39757869F6EB789C8F0A9FA4F67 73EB1B36919967B028B5DC743C5D933C3F20F37D922E2EF1F222BB9481D21865 C5048361D622783C1D6BA8FDDFD3447B949CDAC9252297A6C208FD8291842366 415D1CDA952B3E26F95CCCE957E17A83435623D5CDAF333209CA674ACEE31759 36941014F53B8D6BDA7EED06CFCC9563D783A0221CB77A06EE031CA8799667DC 47EA41AFCAD07247A02596AF2FC54B7492DA4A9E1247CE30DA565E64AB9D8520 795765F09E02ADBA2DD826C6E510C2CE1040F66DD9DDD39A51276D7FD42F9492 8BC0BC34437EF14E1C90C61AF53E49F7EB5548E52AD672E47D622A1C2FF6886C 12DA3D996F96B08140B7EC32D26619D584D3ED504AEE41BDEBC437795F1095DC 53C041955862BC11C17FB2929D3E120FC5176260CE665CCD2E29C3B3CF5A5EA5 5F2D116434AD87FBA9791F482BFF97ECC322FC0A00807A1E49F55C0ABE892503 BB270901B1F153767A5BFEAF9E86BA27BCC2432E12D271824BE6D178DE994B5C E5B6D25AE083D3FF01F13B2F9C1925E42017B46095C95F884B072945E12DCCEF 1AA42E39B06579424D92F15486C651CB4A0EE373FA7213AFD76047DFA062C490 2B76050D0A2FE4C379E293F67DBDC11F0E62D646BA35DD5F3FFF43A91CE1990B A2EAEC9382B6D0287B6AC1BEDC926C24A81D75A20F7F952DF66B4C71E42BBD77 34F2AE8D4CD6A79032575B2891FE7B5A5F99A9A81711249DDFF763310C6BEB94 93D8F73F0AAC775BF7DA0D838820751195FF39D5E1D97568F7F7453EB53BF91D 6BE3648874A81AAB32847D6651A64A764729AA91C5110E7E0E7E90EB7507E1D3 E8C66212EC93C4C71F7A513C01A5D4F424519E35AA5048AEB4A93FB9F1A2336D 9D10B654037700F65B445E2BF50AA2FC7D4B4DCFCEA3F40BFA96F4C19E022B58 94418C85AFDB898D87A540A6B62E299DDEA24100B9DEB5710FB3EC0B4537DEC5 DD5E2DBB099B8E08CC20BC101A0F5A94F006FF6E05B05F6D90DB2EA32AAB3A9B 3360831B4A27FD885F9ACB65ACB53D036F4E998ADED8414A0369DB419A110517 551CC8B5162BAB6EA45E4E791AB7CDA89D01D96BD05B5BD4B85EE756105F21D5 B880EFDAA6B614EF9BA57097CBB6A622F40EACB164286552C469C0DA88E4C76F 8E4880CC9B00D6B985BD9A4913F440E301ED9AC8A4D68D4DC81EC3778E9351BC BCCBEAC5C5FF75EB1DB318CF485C6D69CB9E1EAA64BC5787544C3457D4BCCB70 0B2E8AD2EA2D2F0364B145D3B8530273B8787575C85754FA750BA8685F82A7CA 5F07300E15A35A28673CD7C7B9F4403E034E575F390CF7C27B7BE23D6144F8AA D79E7BA4BE461FA4E69D780A26F070CD74710DE210FCF62BA16C62E91E8CA12D F0C7E68DEA1A5E6C4D7D5B6CCFEF2B026363D6C96BF78A32E944CE3803EB973A 13EAE652A5AF4907210AB0465F11FE27F630A4187ECCA6C54FCC33AF8810DA13 6008B2D4BA72238D6F6DF940C71E9105D9CF460EF7CDF1E421E5B5D34FA8B365 B53CEAD32AC9B914CBC63964D9511DB2AE10E9C4877E9863B8A53CBF57A84ADF CDDD959B9CF2A4BF53C06580C30C9AC075F90AFBD3B156C7EDA14B3E23BE828E 704A9C88EB2569205C63E535FA57B7908B42CFDB4D290334B1D98ED0EC11DF65 ADB44217E0C4796C7EF1DEBCA4A090F756ADC644BE097EF4787744751B46069C B753D591952A944D652895BD45BC30685C485ECDD76A8235CE9654381CD51D35 8573B9F49EDF6A70FEF3D284D5AED0BD37C840FABDC41BE7F9C634C77CCB7729 8BDDF5F2995B4DC9B6337A0E676B386208E500392565FFFA851A3FE2B489F997 74E4BCB1D3D6DB943CB59F75E2B45E3E81FA776847405D8BA72A23C5836BF840 BCC4B963D29E1C187EDDACDF4CA4BD6B913A236CC708AEF46479A3C3C66A07A8 245883CABC445E500C128AA22D43D745C432EEFDF878FCE2DE4C09D566EBA210 59722C30244A97AABE379A23CA39D957A0362DF356E89AF32662E9EA189824B5 FFCEBC8E60F328A8382CC8D02C486ABBF83ED130F54DC97CC7D72438618D94C6 44470D9D4EE6BF8532ECD3B1E17AAD50F4EFD30152285A57371045AC1EAEBA6B 0189D20A72467AF6904614C29D788EEA6535962C7AFDAF9A64772270ADE63D78 8CA231D55CF88857C2DD63E8A06370FCCC81AF23C486AAB7825DF383E3637B31 93A7E66F9BF612A3BE54C5792AED1707059E2E7B1A5D98A74D88B6207E1B87DC DC20A76EB89CC754E2618626A443178DCD796650FAF77F884CEFA6A38EB9E9BA B1CF00800B78D15EC067AFBD94123B3C7BA80622F420FB6AC296CCF221E12A16 E61453AC482A4D41404EF3695AEDEB887C97457C736EAD470C58501C03276740 A350268CFEE91D161CE8EF041B18A8FF4296BBD66B324DB895F961D23DB37E87 2A8241412CE064B48769C06595534CCEC0CDD421523C73E659A046D1AEC79030 2D3A0F81EBC2039C384154EDDDFBD92BCA9EEE3276CFE92738A5A44739AE6B32 2DCED14B550FB5E61F7EFC8527703B70AD0122E409FCFC074E718F0129A77535 2F2EB985B5B90C38E675061D7F743B098B71C4AFD2A314627E79697DB3CA51A5 CC4E3A8303BD605526D557319D371C2C0D80DD79023A17DD88521CD65A4C5D0F 294D8D1BC2DD86C63A9A48585F7A9F3B39F9DC151EDF8A72E324B5054599C31B CCB43A8648F8C552D77AA9DEEB4096F5A323EFF7704F649B54CCB9BB2D69EAF4 0E291643E434F7B431B5EAE11F7950382B4DD1886A88B484032C741442C27F7F 7E0DFA86822BA76418D5529074EADEA8FE3F433768D472C7A3BF077F1C90394B 3AB40264AD63041D37384BF8604FA6A23BF7A4A8A451D7A3BA68D5C45FF8DCE3 C9E6EDCF9C387FBE7709A1D675384CDD457EC203EEADC6A8AC6A1FE55BFC9CCA 7DBD22AEB4F68FB61B6208BC22E0CAD7EFC1D2A016D4EE2054127DEE8786EEA5 72D0AC12FC2B24889002EFD665FA82A0D0EA3BAF3B29F824FC8C8EDFFFED4803 E5D0AF7BEF8AAC625A184911BB28809661EB2631A078FB9A244F043ADB379476 D0DCDABB21BE4F1CEE1B21D775A53DC6A1BFC4A8 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMSS10 %!PS-AdobeFont-1.0: CMSS10 003.002 %%Title: CMSS10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMSS10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMSS10 known{/CMSS10 findfont dup/UniqueID known{dup /UniqueID get 5000803 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMSS10 def /FontBBox {-61 -250 999 759 }readonly def /UniqueID 5000803 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSS10.) readonly def /FullName (CMSS10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 40 /parenleft put dup 41 /parenright put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0 7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81 DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91 511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6 1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD 028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86 1319147A4A219ECB92D0D9F6228B51A97C295470093CA270C4488BB4EB864B48 63941B9739638D2E6F3CC778582B46AEB4E466D89D1C211225274356A4BC90F3 274C6AA56E200249B7D0949A3FD4185DCB3E5286910EFD7CA72D5D8E8052C96F 388D12094B87D3705CE64459558CF024667C0FE96CBB32B0BC9E51037D7BD62B E4B05FF99384E71D78441A79B0B1DBA1CAE02434A9FAE46596FB86B873B1670D AE0BAF516445A0DDC127F8FF3ADA0B10EC30A9CC1F7E9248828B5E8AB46C3FE4 154B80A54128A08777F5F9B8C519C7E3B632B3476F007FA156E9F39FBE57638B 4214CD2BA79BA9DDA0F4C073AED814ABCCC2F7906C57A872C00E67FF03AC1200 29DAB92376422FA21C67CA98BCEB8C431CA2D3EDDC16972F84BF6DB2F705BAB5 CAB39C82D139FB1304B9E7BF1F6FF447596081D5690B1519E468D6BE49C329C5 C9C809023EDEB9DCE4A6D52A8049E0CC134E8B41BFC6558CFCAD3D9D2773EA16 131567AE6231B3235869767A1E7C1FA6C8D6FC1B276CBB1CAD14D376188C9682 302836A9290E587D4225EB8BB1DBA2C4580A81FACFDA197174FE948CE757C575 F23070FD84DE121955D7D9307BF986C5E739FFFB6CB76822C341FBD9FC2E3378 AC9332B40C07D5B8745D74E30F1D719EAFAEDBF5FBC40D0546F69A66072D8A49 28D2CC2E76B9B1EFD191E0BC7510C2C8761BD92EFCFDAC263342A01398A56D18 121A591FF5CD4AD8B25699A7897E60BA940336BC17B9EC9F97C2464D031F958A A3548D0C97C50C580B6EEFD0FE8330EE2BB0D2E7FD1DAE33448953544A4B1C5D 8EB57798D0ED4B22909FEA78ECDBC4D8A124DA05B9999242D68681017285A0C7 69041C1F79442279FBE328733EA0A6694D68BA89739FDB9297BE0CF1808C07F7 BBF6F1538DFE084EC8C0EC24D883F6CC08A51DFEA23EE920F44BA55FFF58E960 C7BEE551FCD2D5814DE7E3F835608073C2CB80EC57100CFD484C837881674E92 B217F4D11165427DACCC29C129005874C05CDE5FBB2D912368EA2B98C45AEDD8 8A0D2493F60EF36809C8C6EBBC7856F6656E8D398BCB29DAACD4F7D4300A0B01 161CEF51195D2C58DDFBCAFC1C03F49304ADF02789889826F1E20BCC14827565 F2A45CA57DCC61B52E33638A0C6C5A59B145E82B82571DF1806EC40FC0E8634E A34A791B1325571E19F3AC2EF6FE68A14B0ABEF7EBE0EDA3942E85E5AE967A14 0C5AEBFF2A36DCA8866700CB7082D2ABE470864C44AEE1F6D180D511304C8674 D02FAB12A7079ABF96E1CA3CDF9D75532123E87663B1D524265AEF63EB5C2169 B67A651A101E1C7EDB008D3DB06DB1FC1A81B41B291D6C4A58FB57989FFCA434 DA84B3914D1D80B17AA3A55A70BBC06C49DD5F7DDD03FEB0055088558FA192A5 261477899857CF598DB740E82D035E84CF17B33048CFED2DCBEBC2B75CCAEBEA B6C5AA1C6978FBB36ED98D9047028360ED430A0AA69AC85A8F83825EA649E1B2 64B260197B06A24A1DD969CEEEE136FB046D713D0630B246BD41CA285F076038 F7F8431913BB9A3E70311844D4C22AA446E3CA217A9DFD75A898997130269B29 AD4AB7D9662856E677FB2DAED7078639CF31C6E6637C74DE2B5D0ACB88BD61F3 CE3C5D56D3D4B3EC1ACB33EACBE05E53A133EBFE93CE6A0CBC8F24BDC5B31BBF 5B3E55D6B40B1CED389076014667E28BBBD60145A06BDECEE8011A2C6F06D091 73767A8045CEF2A110B614149FEE783A2351FB2938A9F73CA406538EAD82ACC5 A3DFD3DE00221E1B4EA977AF8C89661357FF7D2F1FCEAD6CFC9D6AD81F95100D EA1F328249AD84AE849220E6593D45015B4D7C9527F3063E9F6DB6E572092A1F 1F460696227D5F0FA5A5484B1F0D8B4A35066451663BE448D924DBBFD388B6D6 D7CFC87C9E75B7CF79A4C9207E29E0BAAAD7FDF529B860F7731EA978E335334C 13CB2F0A4250F5957B44CAA0674AE8356F586A24FD137103973B9A1FC31090C7 C84DC5D380404BCDF3FE20C6F74FFDD8BD1DE845E99DC6FE09931F003834ECC8 08C5D962070B6C44F901A787CCEF048A2C584A2285506B4D4E82B1BF130E2220 B6C8B3240A4CBBCE16AD3676B23A50B75F82CD88D1B8F21D30A12716426112B3 23DFDE5A348DC9DCCCE5BB5DB5433A5AC125DE1229FFAAE0D8319B2929986EEA 56A93BA1FBDBE617F30852A3DC8C712DF674169C6D656F75E252187A085B2788 2467CC4DB08D48EE6A98C61BC55E6EFB1938FAA718802B7587B94C8F1477E9BB DCF6E02B5E67FE3AD9D87C321CD9BC0CCD36B9C4BC601E6BD552EAB8E1C940CE 3A22F3C2501C3C939CB4F17CE97566F0A04602D2A22A05CECDF4A49CAFD6332D 5870E1F31AAA5F86867F71610CDB83E473B9D20BA00D8986D7148E0EED03865D 9622864B52B09D12E0C5FCDD023D29D5AB1CACFA92B6FC14FC84E95F407861D5 2BEE3301AF399FD7ED04DFDE6679A345A282E7FC08D47E3FC8969D3B00ACD7B7 F8769647D6D4F4106340EF739583374D023C2702C48FAC1B643B5897D2D7DBCB 73257712A0FDEEEB98A021D218CDDEBBA34687E23C4828D7F96D1ADDFAED7EA5 B279322E6D55FB486AD8F3A8E7B2C67915564FE56F0C9277A06B29C47FB7D007 11AFDDB3FC1B173B4E449CC6B198041CCA0624D81B4840FE5B63BE72157AC6E7 03E5E95D2E2CE2E40BCE8044A8F2AA45F855484A891B9F0F8F70188AC66A8DEE F4D656CBE216E6D9AC33BA8DD0685D480833E1226784469A221D9FA3CA600AC7 5574B5226649A9C48CCB43339942FC9010F86BAA2D181AEB487A92A96BF2EDF1 60F3B93FDFF4137A25A8AEC5ADF8613019CDB103DC4367EF3D8AEB4FED0E6BF7 622AE0CD3CAA0321D26CA4280CFB60D08D9560AB8AA5698231171B881BE9A27F BDCF3162134126212C523738D221AA05E31CEE73D9D40F73C450B6AE2C1E70D5 C37162BDF55943069923A290A6C720042566E55A21CD81C460818883AB016C16 8FCCD1255A66977DC1C110261D7642199D466DD3D2493A2D47694F842241C474 1752B00DA03E69CD16A8A14BEB8A431A315D19A39BA978E46EB1189089FEF647 F9DBB58AAE6B3FBD475E4DCAD241A051DD100ABE81D40ADF18A4C50F53BF749F D6F7C8E02A5665B4AD18DDAE79096DD447F8BD32C68F9F97F05E0071D9E9AFEE 257B96D48ABD9920418E17C8F027E9E975E4A08DFB1988E7104CBBC1CAF356EA 7750AA7110BE116AF1BA69A94776E4356573B38472A8A1292C63701543B0F315 611A0E0595B30424A1137478BA6F990AC7C3AB4DB69E75C222B617F373C521D4 246E954E9857AF59D1E6C36412B643733CF5E1C90389EF0E5E0DA55D3AD12E97 E7630C315F72A03CAF22E0ACE3AAAFC1D496CF4E5ABC49C2DD5E264BE7EB2698 AFF36089B5DD2C53DB1C1FCFBE1E89D41A95DDD278CEB29DC85FD1DB8B83CAB1 EB37C531E9BB8466ED6B8B60258D3C355626CDA43A32834DC89DFB11E5FC6D68 0F78CFA871113DB81A1690250A6F842ADA15734CB6DF7C6ACED6D8D586BC4E1A 94EF3052FB0F8B9454390B882CBB6E135AF1F9C777AC362C2A758C3A98117120 73C6E2FAFB580716D4B2889A4331CC658AAE996245685B973D9C184541385680 AEC2956107DAB00230FB39BE98D3CA898D917E5F2088F26CBA4F8B5B115B6443 8753331233B10852702FC26D9DD4C990C13CE4D0DCEA23D62A826A4B4FD16070 5F3638C0A50A3373A33FCAA6F3644975AFD0560EE5F2D1CDF08820373468E4FE 6679A229D6955CFDF7ACAA92A87E6D8571AD18CF59F84F88A674B2946FF20A28 B9798EAA22442415EB46B9498DDC0F4BA6ADD347AB43E9293CAABEAE80127378 129D5DC69F6DFFBDAFA5D65580239E8EDF6833D0DE6DF75F0FD090A83CE0974B AC947BABBD1B1C7194DDAEA37B0CAB477ABF9433FCE0243C8D308409427D1DCB 8EE4FC36C7E5CEE104904B520B3F6E677A5B92F694BDBC2C799991667E0EC14C B95EAE7DE1854BF4542F05B4AF401CF67FC3E46EA5A0DC362F3CF177B1796DA6 753AA803E724D1721DDD1BCB0C12CE0859E172D2A370C3697286F80D9E138AFD A0EE016805F847BD30D11D8B891E54C77AB51A7CABF76BB14B06153C7F811FE4 93FC4B7CF161051A458EDF767DF94F487DB939A2740B4242BFEE234F75084DDE 207E84533004B933D43C712F0C71DA4A00FFD6D721EBC93AFDC4200E3B8DE433 3ED3E1DB799BAA27548ADC853AFF5D9D6BD92D644E3CF394789C99D9DC054A26 7770AF5DC5BD6563929AE11BE341F036584DD573D3F43D9D975201EF77BEEF80 D1EEDD1D4AD5D4D4DAF6D5B9D4C1736CB111D6FC74C236779C0ADA430323A825 09EA8D0CB1772220AF28B93098BDB36913159208D1B2D7ED45808BF7B686419C 5C0E3DAB5BC9830FDF3B494D624EE8068BF6F5212BD69EF466B9A213047BD105 B848F056DC544A8CE66C546B1A4DCB4BA29CF0EB4DCD9C2452F22172AFF33B29 E97E12D8F0D312B03BD9E5377BF0C81D884F1E79DB66E8144F106DFD2579AD26 C693C5B68F3AC46BF0D6281032D4D4BAEB2243151AB1AC0BDA2ACDDD4D590C90 F29B335DF8F57DC593DCC081FB56924028E3161AC4865B49D1B0F63F5EE866D9 7A71171C09B09A44B0E32F03494D9EA63F3C89F5E772BE25A6557F119299E989 99BA041694ED805AA4F3BBDF00D88171C9D43A9085A287A36A1F0F9386F2A98A 96815CA51F06E1CDF20B757983C5FDF4003F5438232159F325C6335B734FD982 1423BA77D0EFD044381AFBD0704E3DE95D23A70E2428E9AA355A9A8A25C6C74B 48488C14DEC93A766E112D74C83576ED355F17A809E8D3F9C65C4E3E14EF484F 4658DFB57597E2A4461D8044E95844391C1275D63F282B37888C842A5151937A 45007547263D70195ACC018A373D498B88C5A028BC66ED96A343EEE74D61EEB3 D9472B6A549CEB8699F4B35154A0E2ED22867E4F9E4A76311EB2C9F9078FBA81 838EA49C2966BA64C165434DA3093206B70186BE80600B891D9979F730FDC794 5DD6D8B2090CC67A634B719F441092A10C447A86ADB78DAE45823ECED5FCEADA ECA52E363D913D9EFC0ED98A5A1F823DDA3350EE27F09C14E4C7298CC0FB6200 DEBC640C68C82D70AFB7A7BA668F1D7948686206884736CD03D9F6E6CF9702BF E3C932CEF3CE07FBBFCEC0476EA6E8D5D4C5C6450C8FB236B89BB82D51886240 5BA7462F50A88F69228DCBDF26B7250E90B3DF8E94ACA1CADD9EFB5C73EF9DD5 46052314D445CC92512BA231F79A09A2F0D91976B160B8C9BA055DA4AAC1300D 491193EC66A6DE12BE01EEEDBC3A2291DA1F27AB76596A236B75E19FC5F1FB6A DA1AD835CA08B6CD03B97B4CA1BFCBDD2500BB09F1A1B0438E4A759370EFA318 F062BA9F3D352572CE232E6FBADDAA5363807D0DC5320B807FE5485C8CB09B6B 0BED9F5B1300FF370252DEBAC9DB25CE2EC494E8EEA45FC6604B3C104E81B287 EDD49F3D7430EC9176A16B4FCEC5DF68DCC11ADF90BD5337E2E4B59BEFAC8298 E5ED2C7FC5928635420FB1955251932713236DCE28012C86F63D12AF1DB634D0 0B8CB8992B8723548177BD6822A808FF221A9E38B0DCCBC1F3430A9BAEDA89CD ACEBBDD8CCA5E17F1CC37E35A01E058BAAAB6BE7124314DA19962BADB74EE73D 8FB13FF6AFB6FFF97926CA045B62B98BAA753AB0FC78B881D3FAFF9EE2FE918C 8EDBEF87637F1530E3E13AC090FF81F4136E08D5F3734327E643CDF621278741 A17AEBC56E21217888A6C8B5ED4269731910E7E25693CFBDD4EB4A32698F2447 4C45D73E810B627D8719E4E34D8FF378F9B68BFB149AC67B3B1E55F20D097FC1 AF74D46F5A3923C63DFEBFCA210F6B257F5FF3F2AC34CE41C15C9977634E473C 2235295C05C3DF6B3009C7854BF11CC87471CBE085793AF9C5D05C5479B9E780 14A5A6F3F6DDE5A18243DA15732CCF26ADE40C566DBC3C62B71D46DE87A12C6A 647CAC923254E2E74AF882DBD5C9E108A9160393C5CD12566AF7C824EFEAC56E 6F05B92C73A76824C5ED1735BCBAC61B98D509250C854CF1500C212F574D18D6 4426B8510FE9785B814A70E75C9234D42483E736D0689D3561E8EE5650F33A36 D50127589401D267BA6442E8616E2CDB1F6691D3FC4A2A377E5E154972E890DD 60CB463E9EA9A6EA61087DF452FA5646F69BE879337EAA0F5DA4438FF0365627 4E3B16851C2F08E976FDA27AF451CCEFED00376FC3D6E0C160F0BC19544DE289 BECEEF9A067FD71D54DA3A4F73F06E2F522BA07551296214DDA47B1BBB1212E0 1100ACB5F65FD30C655A3402C83058F8ECFE48FA60B6A3DC86C4996414130194 6676EC7F37454023AB53E9D9EE60249ABF6953E76DCE3123DD268BBD492412BE 65D7C3E5A5E483C381182A8F19B506F0AF6DCD55532B89852D1D96021B22E9DF D9D072BD7DD4450577E658B433A84F92752B260AFA2EC4A118747CBFE36AB7D7 6D5DD96A119AA1BDD0FDCBC3AFDAE5FF72713EB46759A06CD09B5CFABCDAB0E9 85599506AC07AA525978AB157496163AAB387F079EC9FA1F9E91B9C2FBCDC9EC 7027D77016760539AC03F1C1DB242D28D6EE946C42DD2262D82ED48C3A839853 BA977046F0EF373AFF884AC3112D2FB319421C3165DFA5710BFB9AB9595A10F4 9D05704B9E22137CF27F4B2DA9CEF6D8801D5F792969B2E58FB539B8038DF440 6DE20C0313A7BCD16F279290AD6859B0E657CC3041C7928CAE35B9D3A681F2A3 2D40F8EDAF1127E754276556C95E1282514B6EB6E43FF4F0FAFF28C715E3F39A 374415B62C1F5F8E31E006D6ABC736057910A3729AC60360CEE1B2C8D9F77336 39CAC45329A372205FD551B9E9EA5082411207473D9D90E76136AA70180172E6 AF6EF3EF6B38B1906B904BE9BD5251EF067738840C28877659B649C6C4CA328F 1BEF8A9CEC2CB062702F58CC0B8D2D097FBC278F9FD894E10ACE1DEC4530CBF8 E4E467B6DB9C596DF0C3D43E6AD70F30B733EEE692C2EBD68756D0C16E1F00B6 AD011B5DA073A769B53C2DA2E7C9B7ADC6F551BF4DF4C39C66443692C3DC62CD B1E094013F364D04BE2FBFCD1C7B2836180E9022E0434421FFA4317A50096684 CF0B8740EF680F27F4A84AAF2AA92C64883BAF57BDC60C6467A8D4E09E6316FF 9BE73053045E5F3586DA3BD1298DC15D751913FB1E72EF80047F6B33591B97D3 DFAD34EB224D64EF60F5B4ACC6EB42E1BE0CB2812FF2F3C264AD2E44F5EBA441 670CA0A60E73176ACDC4E42E74F8F489C73481EB5D46A61FDA1C0FF9F8844DBD 99CECAFE2A72833E4522981FA13713AAFAF8F121E60FAA6F379B2C8874CFF23B 8FECE70654E5855E525A403700A96CF7F8111BF2B58386E29640D82F1DD86900 E0E203F3ED554209CBDA2A61A5641D4B39D98C5C43D4575648D06BB82B6C4D4A F043EC61B17C208CE8B4F43A7BCBBE588A3D13A183D79A47404223037FCFA4F1 DD237344E589F161BB9BBF3FAD2E28749350DB9A74C09E894BBCA85B82E704E2 99788B24642A7D0F0FD96601CF1AE4819EBECAB89824A0DC1C03BA4B546ED36E DABC8D49CFAA53D2A9A5DD6B3431E364C99ED0323513476CDCEE49BC413E50BF 51EB93563DC03B62F84C5F96ED713F288D109C79179AEC41424822772032035A 40E84014F5BF40948F05E8562C9CA9DDD71F89021BE238E74781A92D64E5F9E5 AD6C0D954C6686C714BF189E78EE47F1530CDB8376E52631A1A26E3021FAB977 DBF01167266AD68A779C0180E034A90CB77B86747395BE885E484BE4028B4093 8BE191D58D0BF85308C72E6384292A2E1CD06130A091F8AF9DC6C3E12B1E4BA2 BB2C37AB4AAFC0CCC7964C06B9EC1C7E3BDCB6BA265288D9C8625EBA35BD2A49 BC50472D7AE262237FF1EA8D9DEA3C0DBCF7C3B2DF5AFB1F31E46B48E096517A 0CEDD60F43DDB684BC6E4C3F6F3D70BD58AAB5052936EC4ED7140EDE795223D0 4E3B95161D16B0402EB45FE97ADAFA0433FCAF55E22BD7E4AD2030D9DC86F55A 8D7EA00901EB1351EE8A0F1BFE75CE46DA4165D78043F8F0741D4D9DE0CCA00E 5F7D89A849AD0F0CEBBCB948613028CFC39617FE9184753372C375A9896F5F1C 7E24255FD49D2109CFF9ADD9A118CA47CF58975A9CD3A960A8A08A078B98A50E 4DE619C8B2D3E15938C879D785539445AC468AABD6A6576AF0E8ED368A9350EC 717B7D3BB55AF58941B47FF639CA2946028CDDFDB84FF0060D330DCDEDF13BE1 FB1F743317C15C7A9F34408F5FF7CD9745217D9B809DACDDF7DAF9D821C06B37 25738F0D20F4A86A079EDF71583A9640173B3EC529B98899601F0EBDFE45BEF0 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMTT10 %!PS-AdobeFont-1.0: CMTT10 003.002 %%Title: CMTT10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMTT10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMTT10 known{/CMTT10 findfont dup/UniqueID known{dup /UniqueID get 5000832 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMTT10 def /FontBBox {-4 -233 537 696 }readonly def /UniqueID 5000832 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMTT10.) readonly def /FullName (CMTT10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch true def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 23 /ring put dup 25 /germandbls put dup 26 /ae put dup 28 /oslash put dup 33 /exclam put dup 34 /quotedbl put dup 35 /numbersign put dup 36 /dollar put dup 37 /percent put dup 38 /ampersand put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 60 /less put dup 61 /equal put dup 62 /greater put dup 63 /question put dup 64 /at put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /backslash put dup 93 /bracketright put dup 94 /asciicircum put dup 95 /underscore put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /braceleft put dup 124 /bar put dup 125 /braceright put dup 126 /asciitilde put dup 127 /dieresis put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794DDF2E5ECEBA191DB82B3 7A69521B0C4D40495B5D9CE7A3AF33D17EE69979B82B715BAD8A5904C5DE0260 6C15950CCF6E188A0CDF841EB68E5A2F88253E382140F87C87E55C9EA93B8C89 14A36CDF630D6BE7CD36DBDCE22B21778E8648B97B7EC6742EB5114BDF0454B0 0EA7B1FE236C84C0E5308C871F67B973892890557AA12E00B2C20C71F516C397 3F3BBD14A1D0149CA064391056E45E9470FC7F6F556ABC82653B3C8049AB5CF4 BA83C8F2158C236B2FFD4208846013BAF4165E8BB8D334C8FF2E8D74AF5DAB2F D44788869B08399421AAA900ECC6A2D594641C121660D4B5F512938994C18DD0 FCD9B008F68F0351D21ED735B2740CB1E0C1CCD25EB548C35B844601D98828DB 556F71D07E081A593FF12DAF83676492A0FFE16E95717A07082B43A966C1EE8F 8A59E1255E1705C43A23CF29A5E4A6547C93F1680A870EE7BAD8CF74D838CD5E F806911D8FE4262ED8E7F5BC58B92C9C6D74F8AD45FBB021EC7E97393018B9DB B1B84E7B243ADB05ADD3F1DB3692ADC5D47FEC7DF93080669E63281F1576B673 125EDF08016664BE73364F65389F7C3B66623AD1754ECBEF9E5CE6948D933787 A5674279ACB2EBECD3B4E6361419AB32028A27670C9F3E18B746A10B00AF6D77 4EC00E3BE521C02A99AE5BAA98F793EB1228952BE67934B91472E01AF7B816BC 56D7F19F631A1927846D800C107B1E9CBFF9D2DD513B4A8CE2E0DFD77B1ED178 E43FA7052765E9FAF89989D490D8FEF6C536EC0D4AE27A74F474B98DA9E6B92F 15E063DB260571979A5DE2423920CE1F59F56EB11E00E3BB9D466A8263E1E385 2014BEFDA8D1EA3EDA04BE32AEE6CD15C5C010A1DF7F705A2C0C18E87C8DCCE9 05D9163181CBA56C0FAC8C06A2990554C8E759D076B01BBEADE3B5FB8B551390 6C8E4A2A1C6E7D9C708614626F3770C0AB7DD2027469C77975C27576065862AD 04E5E50CEBE907E3E991FA0C627302C0E207B4D5992BEBAB5853AD1C0D271728 C76F40A79392ACCA7358F948AC65DC823CFDA59E1FF69CEBB6B7EC3CF21669E4 70D999508F9C49E2D9F8818CA53C977D93E15FBBBAF75B1E84F0BA62BCC4BAFA 4EEC82D804C8A8C0210F3E5E258BB1F6921AF02BA9861BAD5C3D5FC8CEFABA8A A607E547B802096F7AEB09FBA99C83C9A494B94408DD607CA6561A6E6660C473 62CF8D35F31D052F6C6C8138A8E1430CBA7EA6973D6D510C1A06B3FBD79D9364 240C1A00272DA44B89A9FE8D5BF36DC1B5EBB4A78ADBE9C5EDB485F093D9517D 69E1AC9A8E6C9D7C324E3797CFEAD9A18E82E03F69B2CED7D5DDCD1A218BF2E2 ED2293AE999FE2A4B5213A10083EE0407BCF8007670B8C737EAB30311C868D84 121149ACB4A27F3ED6C0C181C98AAAF51B105F264B5672D7F745131ABAB5BEA4 0C9B43C0DD9116D6DC61F90BE72018F290D26D5E9D341055CAF09C9F45333CDB D45B7954271767F638EEC499F7B53C2CC5774EA7A7F024C4CABFB93D9CB1856A 0C671A4ECA7C62EA5242648A84E7F3AFB9547A0AFC29593CFCE6D8B873A78157 D337CABD291431C0A2CE1F37E0CD7340567AC206FF98E4B5A6410F70F750451C 550EFB54AA259A1B236CA9CB730D2CEF125EC65D959441F7CC9768F777B44844 CC9842A307C72B740680ACBBF6AA35FA7A94825069BF7696ED81A371A9E5475A 9D997F2DFAD339AADF797F7E03E654234455AC3D17702A420EE0A597BA31BDE4 FEB8DBA7C61D311CC90441A620164DC22DC2D373973EF84CC553453AB1B3337F 7B39983B8DFFB3A9425F119B45C1CD37A76F905777B3154CA6200792F1759D06 E017890F4041A385F2238E3C48B6C8EE6F5258463FDBFF7AC762F6C4363926D6 50F004D473B7B7F73CA686B559C2885F1AA761653C727A77D73431E9D110E76A 2E55C68CD50F43997C9B2FC4710F8C8540909829E215678E63BB8363C4B8AF05 9986102BB36580D9CA95CD216B7C321822CB41B2E0422CD077F3B55E0246FDB2 44D5976F67296B5B0BE4B06F6E43535C21164E6C5089C3E9BA2D6B30888C57DE 49DC8D9D46C0D5EDC47ACF2C03B72DE3B69512508539019B759280BABEA12BC9 385308A0395C4CD33182A10A5A229743379C2075D82D8BFCE4A66E1AA087A091 8F5372684FA5037D1B92D50CD9CB4F50AD4F8EE7D51F1C9E63C721CB5B9BD011 6F0A8DD4FDCD2B008F223A1036D90F0F3B252487DE7898F9AFBB3A9D9CD49E0C EF4ADAD5155A98D2125ED5A3D3907F67301649519419F33CD942E8DDEAC1BDA0 E90C431B198F646766A8FA9F8D1561B57E126EF604838C0C1966655CF31FB7EB C8CCC434FC1C96046D38203E1791EC824A3D7AED85C029288D4608CA7668A2BE 484C99639F121845B22EEFCE0A3B808261921AA042AE19E641769E91277BEC29 4594082CCB3058F90FAC4A700A8A827ACA00FCF574ABC8EB7DBCECD97F2B22C0 0AA19E8739B81AF8C6F621D69B8E6F29BAE233FBA655A0AF5BDFD7F5C6B9167C 6BC7AB693D45EF2AD999F5DA3CEFA39BA48A17EE6D9F2C4DAB91AE3F0044DC3F 5D5506CE4675AA928B0092D6F173644F91295216D8BBB14CDDE0AD524A4D545C 1B5E284A3BF0396664081CFB4F186A84A0D24D61E82F4767C1E55A0642720CF3 909FA1AB8EAB78030B59BEA067DEDBD2F1D0340E790AB2777DB18248521934A8 BB38A58B7F633DEA4291B0D5D13E9A882C974697CC6D3B49E030C94EA29B5506 CC29C44D01B4751B453A46A9F6BF3BF135AE87A4CE232AF57B66578310DE41E0 2A6AC422117F1963C4D7CC306BD25A6E724E51921779F22F029733122E23E2F0 CB340008813ABB104380C80A492B3FC6D0BB07CB8D8409E9576891EF6E5C9D08 EB8320DFA31BAFFBD336D0C2BBC3D3B2D30368B9860768FC080D30569C7F7811 0EBEDA2962476113625EEB555490B8CE4C5F99D74ED10F738C61854CFF8B41C6 9402E56BE8856144A1A05D0B05F4CB7EF728B2F4F5A439F18C3B68CEFA41E59A D8308ADC92EC1289DC84CF48D2CDEFF509A145BF945E1E00D552D329EBD2A7C4 21D58082CC8FA790E981F4AC8EAB99950678FD3A7DA3DF13778681B208DD71A0 7C3CBD0664B37C9EDC6B601D79A2C51FB54DAEE849F93209793849104E722D3F 52DFAF7047EEEDDFE744787A5801E4AC2C3D58EC5DDC15FCEE03990C53B0C57A FC54F125A04C8E4A0ADAA725808C587E7DAFB9F784FA2875689979D316DC22BD AA36B306A1ABCF907B63C6476737B746099973CAEA8C1E2C5C41F27E0F7DE8D7 F0D942E34E92F43FE902653D4D2EBB6F3B9F7928B1550A82AF234D45D028F429 067652BD3D391BF423AE72B9CB1E8D91E898161BE3A7849D456A861A2046711E E934DC59442AE7D81661CE8EF727D8D7DDC0270E937E40F896AEAE6171661431 C1025C53172F9D366834BA0054FBFD84503FBAE328B6FDEA180F8EA35B1DA937 5CC3B8F00C206908C2FFFFA6A7AC6915D15EA44BDCF29E2BFCFD4A849535F19B 0D307C696BE8205C7D84B9C77F02EF27D911056EDBB4080E4D3ED72788666CAD CD91B0ECE27A177DB23320A7FA9C31408B4D02D2A4B1CC6DDE1A6CAC3D8EC1EC 2226EC98E51046D1EC26FA20EE62D24747D83CF4941DCE5CCEEC0DBE387149CD E05B19FFCAFC0D117F9A3E60DCD4C815228D98EF95EB559AD0ACC0D50FFDF714 56C3C812EA5ADBB013BBD956A7C4CC0ED7D3E25D5C9AF5E626F18297F75D4957 F5B0B33379114B903FE98BCF35C3FF76FEE1D9AEB711F2962276531F7380EE3F E368720E0292A170A15C5539B1FC7BB954EE2624B504CB8C805B8D31AC38307F 0513606F09211AE64DAC447693B2A0AD15E9A64C34F5A911ECD0ABCA90E9791D 67C6BD202B0858EF96E7722305B8AC02B01AB1706CC6AE875A8DDD15EE349046 EAA65005E7866B506EDFB7A5A2AFD5C9E9DCC821A79EE9C1EA2C7BBA32A40BC7 CEC26DB1AC473C8C3960ACEC581B37D6569E8C8C42950BAB7930B65E1570E3F8 9A7FA719F1DCFDA45A3BF2AAB32C9A93BA3552608A61C623DE59BCB346E87EF5 9CF025A87803161221C5C1C6F6B3403712C76E9D755C7BD68D7F2DC03C14CDF0 C1BBED1D648B905B4B17037B7263C1EA7A7F06FAAC4E09E08483A8D714C19861 327CD9C32DDF850302DD6DDE24912D00C22ECDF3CDFB18FA831A41A7488EC203 F564CFE30D506F0829A96D35A7E09C3DCD107D589B627A15B55C5D6649126BEC 60B88C55ECCBB4E680265D9EAB4CE22965D3B1AF759B01ACB0D0E6C92B6B4EFD A81E6A648708979487FC591CF09631310D46891423F4EC159A73E30D8DD147A4 B0EACF6D45D18CD16CEB8176F03ABCB41F2234747B9733C8FAF34AE5D43D3BA5 0CE0FACFC9B087F84FB6C68678BC6E76022B1526D6E5B3A48EC1A110BD75F45F 1C4DC6D39F254976453F57DF873B7D635C80C42026DE020E5BAFE0DA0D54D1E1 DC634D2621BA184347E5252F645A6A1DB7657C48124186F0E4C644077457C24D 55753C651A9A7B6349867641464B515B821349C795A645420508673B93750D0C 7A3B33EB1F09782033742AE8F3A23FC02284E6C03818FADD1731361542E3FA3E 75B8D52B668C3E18A4AE967D0FC3157083D952AFB8144D549E69EAAC51C279C5 E5D88A0D9D53013DFFB4352A1598FF84DCDE6FA32FC377306B9B92C0F96EE149 8CD55E7B2445B86CCA7A547FA732D52D59025129FD8C6333AC0DF4F0CFF6287E F2036D5DBBB3B91B92F12FEBE0B61A313A4DB5A9CF0BB3DDB781A56FEBFFACCB 8CB9D1D3DBDBC4CB6AAE6769E470582403CB920630221B68BCB625CD4605FA8F D3D5B7A1A28D15E44B38E92E906C138E72C15B86F64C38E23BF0440052A8C914 54397F49DBED99D0AF7CEA3B0A05FF37C2D7EAE1412567E6776333237C31E3C0 49949EC8BFD6E0F6446CE2D4DCD2C1524A288818CC5D159BF8463A847AE4A2B9 CC8C58F822804B81B13BF4F2DEB6229C4F51F093075581791D02C36A13B855A0 34900AA7CD4F1A797652656FE3A8425A38F421C4CC0ACA1CDD44FA6B31219276 1CDE1CD63D6A58CE705CB56CCA1260F9B86E989019071563A9B4C274A87558CA 6EF1660D574EDA276801F0057740E2C3B80D253D697736484D892CE1AB128B8A DECD69712F5E70E895FBAA927E8194D792A04AB6CE205E04E38A433BBB793FB4 E8BBC4279D58A223C6673D909D6AFECD246E66A52F4CB35E5931D24C828489BD 4ECAF621A220D8ECF702BEB01C4FC7510197D3F6D15321EC87175ADBA6434ECD 2B5A306E91375CAD22CD94301763E4A8B981472890422C5488FCD523C9CB17DC ED22FBF12D5F7525D0D6BCFE8CE85B0DFB1D6F989C267FFBA0A996D309E4A934 3DB54A9D29C88B9D55D7300DA3D46419256C5A07A2A529A8DE8BD1727281F5FE 97033D861E0531B14E811378EC1AF1CC7EE9BA2B07D935843D3053F673979F8C FAFD59D555B56CE338F606747238B22BD62C42BB7238FEA335678D474A643570 A9E7B4970E8C541CE9DBC7BF70ED7BA33639D6744A18379455029E934C95E2EF 639C4848CE9A0879B51649FAB023A71782444B451F92A34CB8A124270CCF86D4 D18EEF5C1D2B2A29012613851C49F50702D63BACF95EE2AB4D72B375E0A62615 E0991E130A67ECBA9E05329B740708F1CB148724C3A6E5E3AEC1F88EBCA398D2 1CA8827C977D72734310233176D1AE26C55CF2CEACA62223315C28FCF6305C7E A22414D4739A059F552F1F9372CCCA5FED4F9AC987942848EB498900269511F3 F408CBEA0659B954F5F1B18AE4FB270213646F9B28AE4439D2BA2D3E0AAAA780 5E530E4EFC8A060EB979E12191044509DA0C14397AFF949E12DC970658D5EAF5 4EA963F5BC1407A32F3837CA6A24B7F3D60EB8E6222B702E25ED903F9D21AE50 664A095009BDEAF4B78DAF94E5A55D48366CABF07791A1684B2F54EA69070844 4F031AF8DF416C2D3679F8BA038B0DC9DD0400CA6B34667BCBBC07E62C1668A8 35A8C57C9048A7227E672E89681B54D662079A189A9E96A3CA96D8DD10189B04 1DA49BA2729F1CA585B1BD5C467295285D52E47CA904235A1A3E48EFAE9EB6F6 01374125CE89D53C276858668CF45D2F092DDCAA52418E0BB94C2B8266B4D88A 5D911507BB1DDA3D8F6E7C14A91CA11AE799EC42E993098E18CADA70BD2A1D82 2C39326C6E3F9E84CD9758B9AE43D79BF99E6A0CD713E95B3D9B7DB90D127DE0 DAFEBF850CAAACBD860B5DEF2082F1ADA64B44B193C4A1417BE221FDCA36456C BE5934C8CE3ED55AE3A11697C2D682B7D0F72D48976451D205783BE25DBD2507 39C14FFB4BB828DFD187104F38A7F11D5F0698C11E8C1D4F107CACE573FDC4B1 C56FDAE47024D6FD16A2FEABB434CA320300FC4B6C1B6CA08F76C60B7C08A665 99F404DBA8A2A1EB18EF6750E4EC186E31561A3F080BA6562967546715859481 7BA782940F5C5D06626D6F6A412CA7C13820EC7C1DF23E15E5829F698CF617BE D940523E4EE4ADECEC48C24297DBAD528BA1DCE7AC335A1D15D55415B108EFC8 6D45030D27B3EA63B2B4CD771DBE66AE0218ABB1153D4B7482289D1313CEF184 5C960B1E3C3C953912CC6F4521D1E15636C1545EEE457EFB87B88C9E43CC2F38 6BC4BC96969F4FF28ABB06F4454C01CEF1B6DC538F1E832FC1666D977E5A881B F72F1B4C7DD4BE167A5535F1163A0706F9A0B26400178DF8A128FB5EBE6A7B81 E478AD183EC06622B591337B9F1872AAEA356F4FC67EE767B34CB5A4D90702D9 39FB846947F4096FB3DCF16EC81455164783BA0B5D723060DAFF411B68307E81 7BEA1D9A47A5AA3D648E618C83C60F060029E6EC4D46B045FA7415BAB2AD0AA5 ED9C729C24136F6AF61E6409C0B5CA760B16225641E268A68CFB8260BBEAFC77 6626EBD97195E77CAB425CFB0096D805D9EE699E41680D095AE9FA10122A7882 2F00F495C9EB2102DF0D3E61833BC0A2E468C5CF7AB430FDB7C0BE3DF2C0D230 1580BAA25D65F599378D873165482A1FBB224AEA89C6BCCFBDBA42AE1C5DCF41 06969F585CD3B737D1388D6359F5468D88FCD2279BDB270F6A858FB7D2ABDEFE 5EE8FB79FA437F8F50237B92C307B73B0DCB808D07A9C3255CB9B3B17039CE5A 288103D05D132863FB522A02CEE3839EF9AF7F07D99732F0B8B384745369FB3E 7901166478F4A16076A1504C5E98D17408494E270BBF4470ED12B4332422679F 759F1D93984D7E506D16950DB6C2682FE1379EFFA6F6C95DD71F6E55BE3EF6AF E0CB25388EEB436E6527806FC75484133F6E561DEB979D5C1FFEFDAF2A6D964E 03BAE0BD593C2992AD84569C81050F7A793C5263E50C2F50B98C4CC703EAE17A 6AEDAACE312DAFAF5278D125B6EFC5587484F61DAFF46B87B7C9B1EEDECA4859 314A9A9E2248467DE1E54D90DD671660B9040B3E0DD982260822177EFD757266 74A16C83A7FB168016A320D3DF3BD7726F1F4EC90EE5DFE810C96B099FD4368D 906AE4699049EFD37E8EF058D4B97BF71106445AADD4FC6E90615A0066823A36 673B8DE32322BBE861AE251226B4385AB28702831270DBD25D666FBB0AD7B96E A44E891EA1EAF0F87013AFC982E33D67A28E96E0C9CB99B9E4192536830D9901 931A8CAFA41289633B20BA3BD7AA3414B6DA8D57CCF2FBE39920CC06361F075B CC40335DB9A0071CFF77F6B7BB47F3100DBDC9C4A58C2B81EC99E8E966AF3390 E3FBCC28BA1D79961C8A1584266454DF772FBA99664D74D4A89FC82FFEDFCFE1 4C9E4A04291E803D142E37E7ACA66AB279378F2F192FFB2B5BBAD18B95F03136 2CB594A3D6D3F8576C48A02ADFAB59DE70F6F9122341899250A4C0BA2455AAD2 32EC8EA5F0EF3E73AD840B521DA32596763287AE83488053602966F43ACD3100 E1A3C31B8B7E3B49380BBF585341E76AF26C08CCE51C107F52B7D55F1F67C3E9 EE9050B2C092B117D17BFEADDA171ECC29F77AC21FD440651CB59D767B7E3F1B DF2D2514B0D6B96FAFBEBA1DF9F693D459C15D453A7B73FB58F5B01F990E67F3 606364EEC3E8884BAB4FEEB449E94C749BD813E1970A0B4E19ECE69A17424DDC D560B19D89D9F437A48BDDED690D96080BC8A4AB8CFFE1809DF7903F6841259A 0E06E6873997A3490967DCFBB99FFA480FF4A37E5F35F75835683515AF6CD0E7 31942B25D5FA8C7D662EC1E8FF7110BFC9D5E041A936CE88E6C0D4A101A31AA3 9401299DC7E6C208468A829AFC3CF055B93D3513CF897C9C50690DB088FC05D4 EC0864484241A8D61FAFCC82147166453F6912DBBB6749038713189ECFF6D152 2E13CB1053239405F4C3A7C781714AB955DA07C374F20A13306756497B4207C6 D317C200E1D5F3D7CEF056523BF6C6F7CF9E671AF980B24F2CE894D6189EA606 1A7598D9BFE9546EE62B15D7CF28599A4D077CC95B2CC574257E303376D45A47 AB50384DCF50115A0B155C17DDD676314B6B0873B40A8BB53400B855E1749059 2F7DA00AA18D16A6C5C5BC7C0DFE5B95FCE8EFF318AFBA650A385A4763F10456 C6FA92367F539DA8B70B8929D482A7196C71DFFA3BE5DCFE21A1D5251D270D0D 2D0BA80AA626815555A1051370EF46D3B9CF477C350F0AD2A7A2AF0E8161858D 80EC5D4F7CD4F1D95F162F498C0F2A29C34AE6255BC7107D287BABA42D75FB25 E85096FCF307DD51872A7EBDDEB74BB9E50D9A56CF1001E6E0F01E5BC22E802F CD4F6B8F0B66584031E824A869249E949A6FB9C28018093BC0C3405741CAD56D F6F5251539FB5894E7A37529E88B56EAEA8773A2437E7EFEF4E0B08F0136D9E3 858C8E8D7E1FD0425A75F06112A2AEE10E47046A506B86BDC5881213A168829A B56885F3EA84FA4F810F4EFBAAF7E6E654EC271DFFC7A1246653E07AAD4C708F F95780EE7829E9FB73928BBB094140FCD3B5DB37880CE777FB55EE206A6A1133 D8151A008605BFEAD8BA3714816F5B51BD62E983189A201016F2D7502E91FD74 3D7BD4816A4760DA16D3D24BCB671AAA41BB3263A76B065F20475A6FC038504F 0873050F420D81EA812A676A31138546BB8DA5833395126989E7584401412028 0421685F3196FCD99D18CE42EE5A34FC2A47BBB48FBD79364F45DD9EA4EBE53C 53959F1DC3E904D77ED44B4224D03325A2494B23F4737B8E9BD3096E0B528CC1 21CED13B3708F25802F753B3F7C5C179C2DAC9F65E7C2ED1A7ED75698C2F689F B744551122AD08152B62BE214E5F44B8BBBDDCFAC0CBA59804EF5550D697344F 7F22BB0B70B8DA22B25DEEC55CB2C119DE916B29DEF07497D6E68338BF279235 C2E01EC09098FA46B57981087E3035DCE5BAA396FF13CC82CF8F8F5D241B9502 918147FD2A9A76537EF1B4FADE88315DE6EEBCAC80D3D1A30A994758E242256C 05462514A701F84EA2793ADF8E90199B843B62E930B23A5C2F73A1F6DF7F83CE 66019C24DD75C7A4F03841BF1A7A672DB68E6BA04023292EC6B31AB12BFFD6AB 76F93D15080FAF8FB0733322C45724BF40246A18A8D9A1C38B140648A64F1AD3 418BEBE8CFD2532014496E345961E5F9F515BA24676205422B2C98E6B2E528F9 898D2FD9981262929F1CA20C08F098023FAA4DEF308BF2A5B68658C91B59C58B 51B357D8DA67A6F56EC07545AB05384A3BE2C3D281C920C87ADF20DCCFC64CC2 503AE09A63224D6E9A5A869916E8FFE5E2E5D5471B7A2E074D65177E7DB809F0 599250FFE4AF749501D3C552753211F538C91912BFF71C9A4B3C2FD96A231179 6C498D8F1691DFA03B54C87F811D875943A84DBBC24C149AA585A7B72000C7B2 DAFF915B4A1F43201E020DA3D30F70A3AB287EF40C2188DC6CE7C3F1CC174434 317EBA8D9FCCCCDB9F3270976F69FE6CF8BACC6F3C051EE024BF3DF527BBDD81 A7EAA080503F95176B199878DFC2807B3CE00CC0D1622E05333B0C62A0B04396 940A7CBED059EBB8BCCACC8D0360FFE9121CB95CD9518EAA9CCF3132CBF9A73F FBFA3696F9FCFBACE0E0F8F734FFEDFAA35DB22ADE1210214EF4A4A81694E5C1 EA3D87451131443ACFC538898FB0199FA0E1CFF80D7F96623A14EF467C870B15 9500A0C40E931222AC23981C5499CD2F1A1464E0935A4E999E43E01B753C2A48 0BC21F9903195EA842B5BDAC63FF7D4278CC2724157D8289B065498AFFCE71BA 1E0D5D38871E0DB2EB7BA006F1E34B5B4DD7481D365662F6447C26EB1F6E59BB 0C283436F8D8BF9E22ED780D0B3D27715BCEF167FC64669C421889066A22AB05 7C7C2FEAEA5A8D3E4AA152E533621C30DCDA4FFEC7BEE08AFA1CCFE0390F05E4 64F6342C26B210ECF8E97444753F21C6F9AF57326C331F091A85796A02DACB06 5910D1EDD3679BA54219EB68F0DDFC433D1F9AECDCEAF2FD4C6F7EA8624C034C 3419E5C0983AEA0CD7ECC32054CF2E7908B68A4A83F1390445F0D1C1549FBE61 4D4BFA8B7DAAFAC97F1CA2FA34A8ED5352DE317D2897764E5F1BEE3FCB03B9A0 E4BBBC57990524C05FEF8BF68D616665403816C5D149D433A065951D199E3965 8C59E1203EBA3B15A3C5D6BB3AB0BFCDFF1823F3A928005EC7BAD76E2F5F0FEF A354E35D7B4DFDDB0C0FCBEB6D169900450C5423815820A6A2C9C88CDEE11C2C 1F06B8BEDF7D8AA93DA93D5DD000B3F8FE3FF0191A1BB93DB3BD805147CD6462 23EF5D66F1C47EBE301889D54248CAAE2E4D74A5BD55DE020C1F974C18A995CA 6B09BA4354AFF850A67481D34635359C762F449033DB94B2B18D9A2E50D90F2D A5B327E9FEE21E8BE08DB10302D948C5F9239C25FBE0C76E91EBA1B05B5043BE DF77B840B2BE0A033C94E464DAC055D267FD3421534ACF12DEDD4BFBA0B10DEB 09D558E46DEB8590A3D15A7909F011205BB511AEED350F45EB766CCACD4B8258 FF92AC3F3DF8B1E11584570C06E54E7126C3703E8C37930CEE662B209DB93C54 E614EFC7C4E3892661F605AFC28000D8A0EB810C9CC36147EA1CBF14E81BF98A 30B01C3277EA886AA1AE2D7ADD69F3EC231B8F5F0BCE9B255D18B359DDFD48ED DE1590A2A0877E06AFB7A1B2AF92C7620C2BA0F28D7FAF65E8C3BB63C0BB94D9 48268FF0159E1D6FA71F8A4F040FBBA9821D4323AC6DD4B28FA8A6E4571E7C45 5D5620234155E3B02F049847881947ECEB20681CE93E6928298BA408921FFAFA 06403215A33E829F9A92019D0AD14F620B90A67F27C813E9D0778ACA9B98B085 C0FD8CA2B5BFF816F894ADD19D9D6D5D6AAE9C67CAAE00C3ED2A00D24C70C17A D6929338FB8DBE43FB9F0895C2C3E880958F6F069F744DBA66B7EDE932FFDBDC 2CDFB6224D3BB7D31681D7FF79DB611EC88CFAB24D73123E1BF11562A70E0EB7 0E04AE62FFD20D8832B07843EA8C353D89181D89CF7458F6522D3894DBF2AB13 AC3FC5ADF08E6AD9EFDFA148FE7978E8AEBBFBE43B2AAB77BFAB98E1038EBDE0 2048DB8BC645E27ABAC882A696EF19171074364ECE14658270DB7A2F2DCF94A0 786484F4995108C33F02EC766E11A02A47B7930D7FD3EAE15965BF493BB199D5 EC646292C2EEFAE3C4F5FD505AFF32AF0E6206CC0DAD26044035C19EBDBF603B 375AC04CE0D4B30707E724246BC4DDE799AB85167522C80750CBD1E2BCE00279 47418C0C8DD77A1F4B5F6D3319245D3DAEA58ADD3BFC5725C8284B986D37B30F 92808C842474B49FC5C093A8277108AB025697688998D4B86807BEA23C90FB0F 56D3FF2F82B5BC807081397BBC34DFE8146CDF55EF9B1B335ABE3A5EBFD14BFA D40756621200E48334AFFCAEE67FC9995546692F748F9137E81AC0139621D1C6 4E1004789B54303E267E94350108EED94B3C11A91373D231399F3944B6985AEB 5826719005424750A4C8EF242BAC8D8068675960A2E88D827296938139D92F93 011D987D2F39744A5F2D9D44434D5D241FD3677E133346490590B998DC688269 545A945DA7FCB8D72620A7DAFF7F6745B5446A4F8EC5B3BA42CA5E0E38FC2D4F EEA2B9A16D007955BB67AE6F4815588EA487C6600709D80754D61F435FC0E168 CA4575BC0818F0AA22CD768C1EF7E99D09AA0D7A911CFAE6CE505FFAC2E135BF 22B3D999949E382000533AFE2BD16EA0D6E1DB31CC6A1900A6F8BFE0278EB815 32C422C506DDB0678569467478BCB8524DFCC300274343AA136EA61A2FCA2D75 17A2565F77612604DE10520E69469E8470C6BC1BF6C7D2C21486645902553622 2FD757EFC5185193D37F209D9E6A30DE381234861C492A3B3DD036155A12535F D157665D4F759E1E4292BED9586DF24D1EAFF7190F6474A38A60ECEFCF2D1072 26606E7D07C0A5B096CCDE11E5DBBF8EA86E2CF87F9F8ACC096D50A65F5F7632 A9CA22AFDBD9CCCC09D1611B4453CA1D07109CB856E52200D8A1DE9EB6B4E42F 1B702F849EA95CBE1BD2B99E719F4473F9D3692BC3421D5529C92A49EB11DBE7 1172E38731AA4E58DDDCE7365749081CA45F3DE6F00C2F4156538D3418A962E0 805EC3A9EA1029724883B4183AEFF504AE8B8E05F883FFB373DCE7964BD2F3CF 1E6B1697BA91C46C15074806765F345D4F13EC0B261A04C8C4410D44C2CD7471 F8C59E0769A9B33DD9FA1C3788AC2C26F924D47909593C0445542372DE5A3AA7 3641E93A26DE69989E5AB499AE7CEA454FC8CD95CBF55EC1549AF3EB8C2CC894 C2B3AF6D92EF7F104D2739CEC9BA719E98AC59738A820167CBB9CC95AB6DCACD FEBBF71EFE3C0C2E730BABF50107E8323E5E9EEE604454D0CF4DBD9BDB570BB1 6925CD3B0AFD8AC8BE2C16A53E8564DB7F7E24CD071CA099A9BC9D70995BE5C3 0F50A9A9B86B9EF856978462F39D79AC95EEA265D785117287DA5283A1CDD365 74BC98457D12CCB4275ADA08E89BC2676E0921A0EE929AEFC5F55B15809DE59A 54F3B575C4696DD1A1E2D3AED0C0AF45206C072EF4701514E536BD2D917762E3 468EAAAEE4E9E9C00EEFFCEEF9074092A63DB44AD43F39DE62B981455C084ADF D3E962A50A60641C662DAA9D990C03D511176EED88C6F05835ABA6530302AA07 186B9DB7BB60C14C34263F50BD16C3ED12F2276658851ABA9987359ADC418F07 FC089E7A550D3451E118B25AACAE9352A95D3EDE14E3D36D1409C17C32890633 47EEDE4360D5F3C9512E8495DF77A1B8765CE41C4398985DAE1039173F1510E2 471E6DB3AFA1BF4B117EEE734670209B16D962CC206B8169F7EB79132CF5E9F1 B34E8385C6511D14C4F2BDB7F89C531EC9C9BDF1C79000D07BA1C88BB44E8637 811A0722EAB6211F2E2CE0AD3B6414FE294999A2C09A9C7086359F757F752515 C8670C6D77F9068CDD41B59FD92A078C33316CCD26988EC778CCE8028B6F40A9 214B22B3D55AE12568D832E99F8939CDE8DEE0EEBA5DDD0905AC4A3F0B24F183 E352045735DF7524189E9DBE6016185152451067352F2DD3313068F91FD56DA5 1172B4DC53DA424884BA177E41EF87F815FD0E6C50BF6C9DE297062E1B96A229 E006C1CB188FA1FDDD62DE2292C28378B60912A0E8269979883F3CB4A3BDF5B6 E78355A26B85184DEEFA5802AF27D26657896A516FA7FEEC526555008A005D1C 2394EB75A65DC7212859ADDD430010F3F52B2F5BE510703376AEC18CAA12E3B2 70CB952E78ABAF4F719218765E9DEBF0D2664ECEEF354F5CACE7ED8EB8F2E45B A47EDF333BCF7C8E2C5909BF76F1E422C8439CFE2B3D4BA1C58AA2295A00659B F8FF83014835D314B21C6D6544A103F8699977074AF8D6223BC29D62C0AE3F78 4811A45AAE1DE54CBCEAEFADD35B863EC20619CA95CD8F97EA20F0F7964CFFC1 CBD8B2E25907DE064266A3BE459871531AF21449169F2C24B722DF7C56BE64B4 E44C13BC0269554E1858791AF7E0EBC065C01820D73A40FE7A984049CEF8590C 1E04F0F4FAADEDDCD7BD42896D22BE077DBCAAC6ECDFD393E2FBE3A9AC3E2805 8B791052C5E11D3D059F79860600F5AA861D10D45299AD5BD0E5DEE23895D063 5B9E89DF266EE5B3B813D7A153FCBB5372077F71B61EDFACE59957AAA37C2AED 2F263EBC36150B9311BECBB803B5264EE85B28A3C3516942EABAD1DEDF7377B6 607A01D85E1950B7C532015A4E2C625CB23F3E84554C5B398F7C6757545B9966 8582135343BDAB1F0E2B56072B5397A991640D1D41ACB5A2FBBFA931429A0331 D25DED37CAF038F3CB6BCFAE504781B1C4330DD3353A220069F33D557A993233 EA7C5C70B9865840C94E3E9D80909DBC3BC092E94223BB632FFB6C0FC8A04738 94162581AD9426154C0F75EBF93B3432E9ED4EE3C9AFFC818DC24AD6788EF240 1696FEAB768EE0C8B90AB1504CE2160141AB7B14165AB0B17651ED2207075519 8CCB5A7705E6FCF6F4B1E5A81E3653D411DABFCD71C9C7C24DE18D5135A822A3 3EB2BCC782990D9988F7904C271D8DD552AA020389E2BD5DAA55E9100011BE1B 5280E65DA84EADF37C84D143DEDCFBDB5D923CB932038D1DDB707EDB3AC993E4 B27AD67EB6AA24271C5AFA920BC56B1BA52E72F3449CBC116D5C2B2412E40F5A 9CF4D95F4CB7142D952F5308AE2317C0546B5D83FA072FF4BD9971FFF5D07D93 09B61C80A7048295A277ADE18A481B8EDEBC9FE9123F2B5F5FDE9AD564B3BEB1 D401DF0A4223168BD4983A3093FAE85FC71633AF39ED0035FA7FA6DD8B3F0B01 0AB2FA80642CA7D161AC8F034E7F43F8578D14332E567C6AF8552B08466D1A3B E396F1C26B376461F8891BA7311B3A8C7C1B531277B6AE44C6E4000F66CEFEF1 D757503CAC46FFAC5C11EB9E6C2B3B3B04C71BBCE7291EECD7FD6F88B51E5F80 EACD1AD2F0590BBDBFF880B14BCF9C6127C9433495AF98604FBA6DE0CBAAEC28 71D28103937B528FF14185E31A95E217D5710DC46A12E104F59EDB8D1CBBDD7D 7EE10215DCC9D932F270788C2EA129B8BF20720B68991C2BCD36F8122379D419 F5878FE9BCA022E0D9420BA2FF44DE9D52E49E483624057CD643A37FBABBF1E2 65316A11B032D705D8AEDE6660FDED82C2C0D160D2E702456DAB9843A4AF6C5A 03E7F45BF12415C1BD43F0D40AAD52653371113C6086D3E98D9E3DD455C7D035 F2FDE20FEBCC1F64100C79A8EC44513086BF226B30C146CFF080FFBC03D7DC58 7E854185B6419D7EE06E6E71EDAA69247CE568F2318E70295A0EDB542AB4A9C6 7F42358C75233FBA6208152636F6A1A8F00D5AF67B46626997E63BF7CCC16E3A F6DD658AE3D661341626DE980675B55AD464B279C1F1511C8016380AF37AC4B2 42E9E7AE16D3127E3B3D605C53A4124631CF40448AFA7BEB812B7ADD76F56A6C 41843F4D47D4E89C50B78FAC6A62D732BD4A94C8BAEB6103E1957FC585E6D964 117AAB80D937B97879769FFA1571D4A6DC71B95EEA768905FDDE5A808ABFBB1C 09AEA5766CCE8D15FFC42AC0EED42EFD101383B7AC032910061268D3CD91C683 BC44AD404C6828826AB8CD0A1C1179DCA1185CF77148F5B9C5983F8DDD2A7DA8 584F71FD350CB7A63316DF4B617608F0530092C08DE828578C09345BD6DFA194 CFFEA68D4273E330E07B8BF869071963E5A576DB7F6EF7C49DE6FBAB0F58E86E 7705FE6E0E8A51DE95FF5AC86DBD3D8BB860B480810D686E9E75F1DAE7F77D8F AB6B57CA0DC9437A5805BD9C7A072E3F0FBE58DBFBA9DBCBE3205FAFFC41E3F9 4A0234D36FF51BACC49EB86269B6BC53B04822FCAA4D3EB5D1CA61B1EE797CD3 3358AD54AC3B1E68BEC879F5C7815B7ECE2B2A63BCAC4DE9487C049393860197 DA0955577D5255972F520046522AC6327406F1754905736DA0C27EAC0A589F15 55130A31A1F079A1B9994DFD496DAE934AAE1C8B84C4E5D1710080B5802C10E1 801BAA9D681588746520A5DF58C223BC6BF3B16B12B8B69B48D067CF8AE9FA22 9D2A7E385580F3CA7BC226A58B7B2FF212A4004EFD9964F6CEE5DA231D3838D0 D7F44A53F2868096938C6685DF58FF27D5678945AFFE17DEFA827E176DCB9832 3CF765E04BE85EC6C3328A05BCF514170A75413542E93104D1EB266C32293D24 C9675971FFCBF9AB6B4758E0CB978CEDDB047C97F30FF2E5DFEE15E3018E3326 05939CCF06526C1713F0BE900E2D2D46EFB014A4950D580A57CEEE7E8816ECFF 87A9E4EA8431525432089390F26369EBBF81A4E681D15EACB45B58C594069460 8ADEA4FAE4A328D7928C98C0C55A7F900C2AC7BDEF8F056AAF501F23D904C9E4 33571CB063B1C692C2C2DC456DDEC6CA3643EA32CC4221CA07D718A5866BCF85 D79AC2BDBD924DB916605A703845608F4B48AAADCFFB6B2B782756AD5DD12758 980E9769BBEF31FD920AFEF8CB7B7AAFFA88B754B6189ADBDCD85671A38CB450 5CF2F14B16EED6AAC1636E9B1CF4F6C5209AFEC0523C2FAECDE866D3A10EE6AD 924D206A96D86AE8D7460D261B57C5218A35A407D4EA54C984CDAEDA86706DAB ED4DAEAAAB397A8A1CE1370D1246B2AC10C496074C89EF77DDA423B407C36D37 9D0A599096F1B9D9C15B0D2E3DDCE86CBB9DFDCE6561853EFC55C990F1127587 79A3A5B3EC40E404E1428AF9828BC6A82D458288CFA478A752960FC6FABC4A98 410F7F77961FACE338E99781CF36E26B742E8949045CCF81DFF1A2BC76BFA93C 99A7769223F2A6719B66AA3E4CF715045B232E13E6C4CBF1808E6199D4546E64 FC3112A8E57BA48331CDFB3D92EFAAED9D9609207033E1B0DF5B497722005056 E9BEEDB5F7A0980B79566A41BE197712480718BC1E639A06DE3D69A2C2922726 A33D9712DEE015B5C5A11942D2A0ECB2C1A478343647B6C9161E281A3AF7C820 5EEC3946E0CD3C59C1FD51D427FB0C5500E693E9F4DAE803386BEACC3228335B 7D6A105E0832757F72F07AB980B08192593F94D6A12F51C7F4FA30A405DC8192 7E452A9E6355CC84A59AE3EDD84305209D6562C9C45BF5467D6149E39340D401 175B55343DCED9F4C7745C16CD5A725F88E89546B4861CA4BEFFFB9F052FBD82 F145F8DC8F0A8428D80BE166DFA1A840BC19CD5D64875AEE599D2467498FB2BC 241558BE9317E203A9B5B36849F5D65F0C4ED41460C27367C59D288044213EC1 139761F93EC83C2B770F4A90C41E6AA0655B52778754F24115D58ECD6F6C5BD3 343075F34F63C258166258F2386AD9FE107EF03595D8723322F485DD1EE664AB FBAF81CD45465CF79B20B837711C6BADEC795FCB6116FD195CB358104E2A90D9 5CDBB322894012245C2647539FCBCF7EAB426B25F2B837A5DF9DF8752DE0AD8B 289B1FCBEAB47AFD9B7B4CC9AC01FB362DFB0A667C896FD9FE55D59168299231 B50D2F6F5315DA05D4669EFA1F9363C65A41BD1CB16EF3A24075A217815CBFD0 17CEE28E02ECF037EA93BE00D183DAC05B108BD9854A414CE433F80FD6EBE6AD FD3DE8222680F4EDC0DF30D5CADAF2628D16D8B8950EB12FE6770D712BC8EAB2 A525E0E57DF946296F350BA595D373E5870A3F9FC291BFFAAD1BED02951DB38B A8FE7E5F4803FDFB1A8BEBDD194FA492DEBDCC1DDC04E0DA1A029C000245ABF0 62DF6A4202D28A235DEF31B7D3ABAA8FD87A0406717618E4B9D45C4B36012F5B 30005BE6B2DA2FD7A705093E07728529115A9C35235CC31E494CCE40663E4C1F 700C3739AA0E964DFF2A04A5C7051F78D787CC41B473BBB4137176F3CBDC60E6 B0926C51B2242EB7473018D90E6339C25695FEA03B1ACF08EEEFD7CD0068C474 95710EC4203744C86A1FE55FAF83432755A75031393FA25DA043819634B77B50 44A321ACFAA9C815865211B44E4ECFA94CF284483531855DF4319A542682EFCF 01038347E839F5CEDB69698ABECAA12B9DE53D94A26042E991DC1B534732E060 38867BD5154967F2B43228D7F6D6D5C36909FCBA70ABBE22237E105C9D58DDC4 3038647AA54919733E1E60853024D15F82CB77E9A0E37AF521B46426FA150487 ABEF7A8AAD1EF0024155B87B6525E6035889396F926CF2FCBBDF461A786CBA02 D7FC7D68A3248E06AD5A6107E3F36FCC61FB05FF367E4C748B3EEFD810D7281D 25F1D023228EB24BD7353D343C83C867CDDC63E9785959F2147D039675990859 11926F07D965701325EA444BF7B72BC20547AC8D830B7EEA3876141BADF0F2B2 8C790A91D4D76B14AD2A174D4E135603E44906E744917BAC4D67D768764BF637 2F25BCE87D82F1660D5B6BB5EA7E0AEF6EC6E25C632AD942EEAF5BA7B1801CC5 C288FD2689A4650B5EE2FD38EDF302C21790651191E3314B71F39F8DABDEC89B 83138D837640CB8E92826847A5FFFCA8FB078B1D6821442EE3A915F80D252631 3A5E5F87B1DCB25CC2CF23FB005966DFD4B052C57ABD34B28B0FD145077E676C D40BCE8F8B131E47D69FA1D66F67732E771D3FB432D886A12EF6F1FC32FA5651 7EA7542867B4C869546D618E47E434066EC92FB66B32641EEC6FF5D7EA020163 C15DFF6749A7554D5F4CB6D7C371FB062FE72AF2D4B8536E655944E36BDCFE1C C157145E798F7841594F8E69F6E4C3615B41CDD63BC893871427FEE5B36B27DE C07DEC4095C95FCB1EC0F3E2AEA770C4DDD15EE084E5D6C72A04CC7E64091872 E5AB221038C292D8BBED43A51C162F7CC1B2A94DB988D074E5D648351B8C0904 A7DDCCE8C1AF49A1F366E1C0630A900C440F126435A371D32EB82A149EEDA719 F5385DFE6FB5631FF728C13A554D7D13056DE1732536476EFEEDACFD474F163A 91492FCCFBBD76966A6EEBA853EB038F8F44896CAD23CC7A8CA995B6D3AA9239 2AEA2CFCF1EF40DE2FF5A0DD1A30C5CEA9D36432E4B33B2F3A3B810BCA327A8F EC2AC31F7B9AC7E75B10C1EA3017314160E4658F9E4CF48A336759640529884C 4822214363F80C010979BB30E2A140EA10085ECE1CF79435D001070691F82E95 39B817B28CC8CC17810586277C350D759E7988A941C8F0D2C02C94130264D0DA 17839B084D3784DE3353FD38E625024B9659D844F8487524AA0B075728D9FB27 4FB84C74183BF16A3BD032C40D35175349CA83A6883706D1300FD048D364A107 4C85666F90E2D0BC3E5F67F5791E818447620906B54B4B643DBF70BE738C2ECF 551BD3399C601A51329ABB2049D17F7BAFAB8F1716CC926EA1D9BD4268B0D8F6 5B65CBC18773BD69E33F6A56B03DB15D92F624E489BFAC64EAB9A1AF3E12AF15 F476CCB74917E533E5E651FE4C3C03C9918181356AA848F44CCC317216B6F631 AD3A2BB79846F8ABBF41054CBAF7B7D60A77A7926656615DDDFFD05D33237B13 D41142B1B1868B311D34CECE7D9CB385FCCF53810192808971E1DB26CC726A44 448487E2DDF75A3788F466084B1EE85D175618B58DFBB0356524601B3EAEB1BD 5C17314F699227D8E715B2509EF58080C92A484C9B0C348E4BB1FFF2D4A63D37 06BAE3ADD22E146C4C982FBB3718E255900E89373856258D1D15BB4AB6FDAD76 1206A26EC64DEAB14616E1DDAAA0C35FCF645BC8CF6D43CF37594046D6FDC4EE 013B9A7F87B6E0F3E7D4A1D519B55C78F97227A90CB6B2E0622523E6383C11F2 3DF0C3EBC2B3050CD5601BC70DAD8C9D1645B13BEA28717AED0F735251B19FBA 354F4942FC392796FE3AC61E86B799AAB88AF8BFDEC2D0F2FB33247B44728413 C32ABD4434E082D4D5208742F7E118D14B93C558FD5D7B9DB139B1934820A9FE 36DF20DBB3562E4ADE813E4CCA42ED4640906FCBB0BFF805363D67379F96F29D DB016615F755BFB3EC72EC9AFB0730F89EE1E689EF8A2E93E4EBE17FAB80413A BFA9077C2BA7201A54620432B266A48DBA3943B93559C425793C5E31A87AE388 2D9B6FDC8E857E89D9D55700832AF52705D6778B346C824C721688D9FD1C2447 C7E482A74B84AE8E94FD190A61700ADEE1B42634436C760136D1A7201CBBB54A 5029AED4C835E51C16BD91613CBD5F572B19D2517CB81962659766C113CFAB13 0D1E833E494B7529C44B2CB8538C2622A644472965EB9E255EDCA4E05D1DFB6E 3E5386A16DABF482ACDD477142C98B1C01C298A7ABD4DAFE17E7CC86555EE5E7 257CEBC99194792994C21A715D9AC1E3588069A2DBFA53FD6DFAC9D59C102FEE E0FB74EE5BB4281C37A8136B104AD2401CC54D7E24B6A2857ED0C76351C306E2 871BA435316B41FA232F715AE000356B2AADEA026150AC0AE64701CA915D0680 0355038414D046504DBDC31C6B24EAF8A0AC8D25CDA86C6B941C3BD8B5A3ED17 7A0F8F41364D9C8E8A7E042A095775F05BC68C69968B7CA3731330BBB572AC0F 872ADE9355FB680BB2B398C37A23AE537F3689CAA65AE93274F68C8AE069005F E9D3A65792E3464BC86E93339ADE13548515B38287D6270F29A6376900A6A07F 9CC256279332A3865AEF2A81E2305C6F5C5355B0877F5706952E1662C211CB1F EBC943181CE9C10ED1024D2B249E610E652CF61960ADECCBCB3E835FC7FD831B 0557DF85DF3ED518101D580FE15E73C1914A387349CE7BAC7CD90301B85F8FB4 D362778FA165BB75851F3370BE9DD52C3348F05D3D793E6308C171B789464A53 F368DB8DA0ECB104AF5132595B9DBA02FE1423EEAB2EBA8ACB9D94092D00DFAA 3916B0CEF2A3A2F69AB05972EB7C9431FC7D83B5F452B8E710CD843327B1F3B9 630E541DE95461569FDF6BB0499696B2BE924B4DD0CA9B520D5638FE6F226A62 8F42356CDE37CF201681F8977FCCE7A02EEC604CAFF999B3F49F54C6B4C311F0 BD783FFECC9441A7CB7C4EBC140ADCA6D380C5070F17774B4437437777825CE5 A662906870FEA3F236C7462C608A5FB862CC7332E8E2AC3F68AC92B09C145FB6 5A4920511E560ECA9A9C1258C47FE0FD41603BA992E07505FB3F086C249C4F9A 043C355389E2FBEDDFA9860630600FA37F9F8B221A2F5798AB8E19485E321D8E 98BB85C32EA70FC9072EF257923BCC4F0A843095DB6316E45AA1EA40143DA092 8D07EE206CFAC9D4F1977F6C9B42B8B98CF57830A889A6B69B4C771B075FFC5E 7744A6EFF91827D96B280EA1726F483264BBF15FDF39AD40DE82B8F5F78590B1 DDAF23BF2E3F8AC6F14F0C361E876C6278C0CCA5671112B78B81C86953B9F96A FA9298F903AF99F8FEC6EAB9A630FE866EF9E5A5B6064827BCD339228F261205 19A7E90FFD636C67C07AC907E5126455D899B1C447FA0B43C80B2709381D3D31 032AC8A1BB774A49D00FA63B43A2C9FB1E2A91DB24D99A31468BD794AACEE3B3 E4ECC70620A1F350B6F79EFB3876C6642768009CDF141E8830CE0D880C9E75FE BF7D71815C0141EBB61F166587A50FE2D3686AF3BE8D0412AF28517D24EEA308 7E874C20F029C5DC26F757CBB6ED216963D030F368CA98E885449D6A642C946C D3CB8C285635FCACE572E6BB2EAF5189ADE3FBE6C0712C696454D691F83D1A14 584D349F7F0B8AC2D62D1AAF92AE3EA4FB1E37D8EF2BE9583259F7DA71DF104E 8A79C4BB89CAC631360E013D4FDE92A9C48AB6C2AA6EAB102346D6E188105589 37C0C5BC264407917AC241C7CB133BA42A97DAD1DFA7379F48EAFA3158A746BF F7C6F6B918F05727A870A62F8CD4DE561D133C0F8AD050C0A0AB556171581A98 7ED824AA9F54C095F4FFEEB4FB9CACD24D01B48EF8FEFCB7708C196F65143859 DBE07D85B79127F3C2A92E586EED74C925F4859A3A5E4DF7B5C698D1CBEE5596 8E2681AF696C3EF6F977C56A45F6E43F226C1AC5EEB46DD3ED2A8F8BE248B595 BBDC768AF6750E2DED2362F3478B814BFBB058F9E99E0A15A4142DB4271A0DF5 AF4829F76E9B029B1AD93D124D40855D25F45176E6BEDF8C4374DC2C31B6752C 992FBC9D079C9C14C6B80476CD5CF16E9A86A52C3286F980B1CA8A7EC29D51D0 0D88BDDD193A5CBDD2E280804CB206A692A4F3D527C3427BAFF281EE62960BA0 A5791298F5A375E187DBB731B33312CB17A19D8B9A8AE706319AF6DC10A5EFC4 EB060FAE7CDCE435E0896F5BD17146A8C4F0F2E6536C9B65B35171D031C08B89 385F2ECADE863C9736F40BE190B07815E4EB18CB747EA774AC03E5239071AC7A DA88BC90AA17A70F5EC12BFE5314497ED0BA04DF95F8AF6EB37E17162396763F 1E0CC98288D22C7CD8DD6BF752784FC559E43F7148B64495B2CFA4A9A25D1DFC F1BC7D81A0315E10E4EFDCA9DF81BD1596A16673F451FD3E1FE72F9E22D9DB94 6E309647BC743809308F063443C026D2C5FE8A5E8AEB124593D4D13612B095D5 1BE7CBA6E4B685D2E4C86D7E46A04C5A21EDDFF0811432FF63DB08E22CE0B844 D76249CA8AA17751CE5ACC4038F7244B70176FDEA1ABBD75913A7B665F212538 B62457C0800115C7D64AADF2CF4EC849D19A38EFCDE1C8992EA7133C6CCAE7FB 303F5CE52D0D56AEC825ABAE6748AC440E2340B583576120C686AD5DD9F2B23D BD9E0028C874931CA8A18FE342041825178DE46557C284C25028E351B77353C0 457A874B109DEBFCAB83F651835EEFF02062CE445394954EA980E0993D0951E0 E6F5D65EF52304DABB3E05FE794E923F5CC8330D5759702DC307E740C603BA14 A49BD2584C1D48AC9FB8410A3DE29A0D915A3AA8C4414E5116A4D87A11FF6F0D BF921A20FE4FF099D176243BBE21643E493DBB55B009AB07EAB4D5F313F18C81 A81DF3D86D0FE37C25ABC6DA454E0B7937A76907C66E180D64A19FE9CD484C9F D10AC43354C32D2D994B6D290EA2BF356D3A513365E435739BD99B4EB6119C2D 58867718726B6BE72B508B8E4E8E73B965EABF93B645336658790F8070D16376 5D11703B25E92D9A2B397BA3BB247B82331018706021184F21D6998067719178 E5F70A164F7988E4860C4C8235DA5F8C161186ED711C3D6D6CCB98202377C25C 79A5DD50963D84D1BB1D0DF5A6A481A536A43B663CD228A51230BB0C82F1FDD9 1E4707E92A18103E6EAF494ECC5BEA06C4CBB01BE6ABCB4A05A956CB01122F53 6B3DDA81A7188A9ED32F40F8A96D940E250DEB53FC68320E92F1F8D0533AF5E1 82316309C8BA6318DFD495A327EDFBCE40A6B69F6DDBC12525F659EFFBB0B074 C83330F582969EB12E26599DDE8957436DB66B3BD7C31A4CDAD9FBF5A6ECC931 B2E0288B317D3F9444511A9B397F005CF08ADF4A666373A24EDDCAF77B3AD3C7 AECAD71A0D25C95408CEB67598F209DBA513F136F923274637215F33E815BC8F 6873B2F11385693E6B75BFC0D5247AD71E976AC7080CF0675D7C8BA46522EB0C 246C9618EB83D2E89F1D281BD70694664E7780478769F0ED609ED0205A871148 18573803C6F329DF9203C5118DEBED7260EAECFB34B318FC682FAFFC2EB73C68 B7076B79BB77BFA9BBC3C5C6D6CED7B742823638B03B5CE592ED7AD5785E7FCE E1B1A53C44B727AF545A3B705F05086AA026EF362C83519C97A3BB1D17A064CD F1AEDDE051C5A2967B831CF9CF67180482BBEC2618F30FCBAF601974A73E6D2D 78992007EB290A1ABB7DF060CEF8AABB1AF8988472ED54B2117457B6E62C5CD7 ED5EAFE34656D5C5192EA9951CF5DEFC4A588E875BB0547F625F2270B48DA743 8029168FB23FB9DA3F3AF1EF929D6962E088B597B7C08579B8AC1082D2F6D1F4 F96EC320EB4976BCFB543AFDE6E5583272CC6DEE6B0D1FB7DC0D130862F7FC43 6096D026F978C6C1CD3D1959584455FCA7617F8A9B4407A088057A17BC4B75ED CC4C5AE1527E56B07F562013A18738F79789CBAFE51F4DEADA603CC2AF5ADC9F 7B54723D7C98A140EA148E094C420B0ABCA4619288E89DE96C5BBB5A34E399ED 697E65FB2C504D803A88E4E86DF95059823F346548CAF55BB8743776A7CE42D8 08F85490709EEC3F5C5BC39A3E031EF328D14702BC0A2541DCE25C0CFF917094 11CD634BF389CD821BBF034AA1A3EA8EA1C45795337D8A456AF50771BEA8EDC4 CEA20986E4851A69B1F1808EF29ED350795660744B2C0D151D669D6DEA532455 8805B39E95A1E49244FE453DE323FB544993759B9C38822B7C824F5597710F44 B704E608A487BB0401E622978FA99852A8140ED60C69C83F0F7878C79AFCDE3B F5ADF8D214812C7C8762F472CD2E0E3152EB830D419D8D83D7AAC5FAD2E8FE4B C43AFC8DE795D8BF9F71DC6F67385953DB5BA059D86385AF642B2D90BDA5C8BF 48B474D7F7FF66A381BA5FD6E40B25882ECF39DF799010EB624E1054BA35F3FD 3E8B812E50BAEBB47C105D42B43ACFAFDBE1D8DC8C2BA65154D4B94B9177C19A F8EF005D6082BCAD3153A67183A10FB7CE4CC76AEEDEDE4F2E53E74D6C161742 5D8A10F2F289DB16FC47F77D5C713362C78FC49649327BD559129A2529B626E4 85F42740BB98A904F41A556F434FE957D37BF206B8470B499A95CCB71A3CD42F DD008B68F8AE5976B332062947303FE5661234DB06E8BD12D101D08D88EFBCBE 60B4A84DE3A9ED21FADA2024DC8EA6F9F24CECFD668B329CB9E695D2DCD5E572 C215CC9BFB2043F6F9F25BED111FA07F5145777CB2DD4DE80A9AB105139EA371 A3B6A6A3F817237B81905134EE73DD9F1FC52497D24744222126B2F695F1A75D 262A7CD1A26522E073E921AFF81DDFEE1C0CB41E08E84E7F5FED899626393DA4 1EE363E2FDD2A85E76B8FD689B2C4E57F54B71669BBE6721A7CF1889C91851D7 57C594ACF58358A4D42AE87D428BE4F034599EC42480BC8223B359DA5A345F7A 66A747F70FFF40745AE87693492DFB6306BDCE227099D9AA51C85A1067A0618A 42809EEC851940402E2CC440A9C64EF20562C683EECD7D3A1CDC2216EE59CA62 29A827E8E7F1D22960EEE1B6E0502CD5BEE61FC7BB9C3D7A6812058EA794B143 9D1D3D09D27EA8C105592388EB4B1DEB08CD9C7C585672DD33B279CC310304A7 E84A29727E5CFF25F3219180229DFEA4CF5511FF747C8F0F2969A7C1185CA714 3F25DAFC50C77696CC2F32E4273EF2068F024ECCA2DE2CEF701573FFDB1F669B 2319AB9F52D1C5090317480A909A96638004CAEC6B864C08612C61B0572126A2 4DF761B712FD53BA19DB118E593D19461B687369D0471C090EFCDEBDDD5166A8 05763723ED29B233454997D98F08AE708797C26AD5549E38EA2342EA0391FB0B 5B3C0B29B9EBB7D4166899B622E559DC67D159EA16A4A604E0155E8F5D62519F 75F2BD4331BC9A3BD9F6276EB1D9220598595617803C584145348E77138AF16F 25E2FDBC97B33B53389F5B8557B95C9DA50FBA2B8E2A756685440D0972BB83FE A79CB534581ABDDF5049272162209AAF675BA2CBC96CC61716B3002DA4C68E2B 67E068C9B58E85A65DE1818716374CD1CCDB67B57B752B1035E71EA9DA1C554D 9C3B566C256578637C57752D70D84A5B272374C17C0BF46370E457C01737BDD0 B91D008E8FCFEF7370A5EBD02579260802D53E4AA4FD1BEB04A9C4874A84B028 43B9B33FCFED3705E7BBEA98A9394F759AA368C9B53181535F76F170ACBD3FE0 AB037CA8CD287C4E0CB0ABC1B43FD321487B77B40CDD8151FCA447C4387096B8 D184A7BB97A26C78883CC0DDACB1131673A3A4DC4C217501EB5523C71A87ADF4 90FB9701AA4AE62E2DC3DCAE5A25191AFB1DF6D994762E9918C422754358ED6E 73260766DD2FBF3D35AFC0AD9721EFDF63685DB66BA74773AB0CBCDEED28D5C8 957C94C8DC5D5CB6C353E03B1276A9475EE8C91DE56146358E0675F60F9DED28 F2F240E0FEB1042157DD16989E84493F32B1C13B46AA7B5E527291C8A2727998 4424E50821DE9AB75CC6D94D34D248756129C633F74E3E4A019C27F31BB31ACF A01D832116A6C6223369A53524A71BD287CFB7211FDCFF2537F947DF2DF477F0 2FED9557981C541D83D47527C7E74D82A6119FDB4C009B8CACB05197D3B15A96 4EF7CDEC40E45BD4C0EA2F09DE2B1B5497B1637DD4D3655C4AE2994FC66DCD1F A2D2F8B2BD229F4495E022E6928304C9AE70D4CBC57983FAFC88F6845826E4FE CB91D512650933959CC2F7A199B9FBCFAD7E791C43765A96E36411173F87127E 1CE1323F6BB9D39CE8089D7F60B626E43DF6CBEF48C7E485B5EFBAF5E574E15F 8C36711D72424272916558D3CC8A4E8E62F613E1D73416B7A55313533A694479 1C51C664603817BFE35CD9AEF0773FABE2CDBAB488218E932DB1F0F0E45B99A6 C416AB21D34B54EEFA99341DA7FFC9A6304ED115A8369850626FA8DEBBF7F784 B6474825D1B0E06B514F943E390D7075BC48E8D71E64C75EB3757DF920B2F4B9 7B6F72D4C55CA83E4703E7AC40D844992BB5AB0CF50F2B3357BE86C03890F276 1E09F4B136C91297905EA7C5052554732A5A604D2FD6A5D779F5C6ACFE77252E 87FC2C45475DA3F6E4BBED4B3161FC69C52DA7C9C37963F3288EF700A7AEB7CF 61D7574083C2515C33353FE678A67BAA0A3F74C091EE8B92F9A43123B0DD223A CECD94682321479BAE6080967CCB94F097E30A34CEEEC0382DCF0306EBFA9F24 F900525B15C328DFB860B00A0846FD2AFB9122443B065467AF4E7994E55AD8D9 2A4B56EC6396DEB2764EA0EB3E2425B241B8649449C999AA8EBF2E2E3A703E8B B1D34920A7E65C37AC47664C8D43F5B1731658F651E53B904478797836F125E2 ACC0D87B285E33B09EF5F9895189036846CD865E1A710ECF83E86F0CF21540FA E1CF625EA322411583051F7658116CE0CE590D9FB9FD0E99D166022484E9411C C9F1460EB3661424814F2BCF083ED92535CA5D6DE077EC484EF9BB9B233DDAD4 030F36568A7E1F04C2628AAE60624AB40535E42003807BFE6E03FD05DE3F46F2 5D9C7F0A65C48F50048A57BCD19BCC0DB3092C7E9543BC3AB39FC05FA6C1915C C94EE4E038B67255AB0423934184D2E5B4DBA46A60873B0CA28A477E6985A0D1 86E68DE8FDA1935BE86BFCFF0C8E70F72C5D9B081B43D9919E5142E64E1A25C1 56D516FC2D71A3001E6B51DC1B44B5731161D1EC2AE428CFAEEDD1014134722C 387D3265112FB877C5350398E5991C691926BF50DD43AEF365BC919DA9040BB3 F23D6109A0AE8D54F8AA05C7EF03ECC4BBD70D4E84E6206EF0E6D8D9A479C2C1 AB2E76628D00782B51C913CBAD9491293B740BD9C783AB2D57CBCC2630DEF420 DDE33319703C0A552ACFAB124CCC658AEFE4CD8D65B165D4985547312493FC72 46A1399426160F09FC23A43424D60364B8F54AA91B8C506C015DC640335575C6 9A9E34A64B6680ED96D8EC705B93B5827373F78AA0FE060DFCC88D07D441422C 3C17A9ABA7AABC662850A5C9E041A1BD9C5734CFE3263E73A0A1A1D8888B85B1 B1908CDE3D5C8FB13B72224D8B7624DB972857BDFE9BAE66E3BB9CDBFEBC7EDA 2640EE60442AC2B4E47E03D67BD4636ED9BB38353DCEE5729BEDCB9DE2392A24 7A3FAB9F7C70C45B5D04A8BEDAB45827C11A1FB416C14649D71D2641A9540F18 42E2D11E71B79F3945A32B795693BBB1773039849E4E4C2D2021ED9831AB2188 C8B67337700302960D43234A95CD6AFD46A46C15963F9C52930CB04DD9FF44BD 4277ED76A2007D8D2266593E1F1941B27C653B68530290387AC77E772ED95F62 117423F9F89ECED40EECFF3FDAAC3D1FEA9F394DA20D88F80A6309BEEEDFD18B E5033C936AF63FCE0E0EE1F565AD98921B4B55F2B4BBCB4AF4DD1DEACE7B0C8B 5660311BDA624ABABB47914DF3EDE3300E03579A7BCF98BE81DA2ED2EA6BBF45 190C02C71A01ACFD23359D7A2841228FB675E997A3B0181911339B4CCF18F75A F44FE92B274D9DF83381AC5C51C82B75D7C1C59EFCBAA250233E6147B9F848FE DAFA0C43DEF0020219D48D74707A3F7C978835ADF8FA0E10D49FC69A15F77666 43BBEFF26083132548E44F893D838D0AFDEEB879E44AB0D6A81BEAF29A7935B8 AD8E36C6F7AD3C0DDB4A40FCEFFA9AC76B3B3C55D742726A2119FAC63203ABB6 82545DC656F9BDC44C4FB1F764DB5609F75678B8D590BA9186ECA59C1C117F07 730D54733BF28CE1E4ABC9D2569A111BABBBEDB83B5073E787B7D668329B0147 C373C41B9BA4837D3E1BF6671CA51D52C320A023A37C1C002302C7B1EB1AF1E7 52A7C429F77C264308AAA80C24EF069E20CFB20E4A1D9F8552092188F002697B AE7ADBDF9E8BF81A57D53AC8A6BB39AFF5AAAE3C8BE13ACAE64A7CFED0E8439A 21547BCE0DB8EA472727DE427BF44E3FDADB48B397B1D4C09C66C33BF255C245 2BE82DA5E161A395652B910E6FEC15ECD9205B627BC2E4B4FED8BA2D8C5D00A1 4BCC2708A3A34F80BB80E61EF96772DA3909CD5F65A25E2AC0C60EE82F0346D4 EB083D41F91B60B9FD42401B985D200F0EAB8877D7953372AF79AC64ABF3D84D 877ED1357503A2733679FA240A47679796500067E65955ACA17ADAB510DA6978 643F68FD0022379F19A8DCFC1D2A7959FA560F67E2AC6BD4DCF9D5B17C0424A5 6D8153611511C5D9012403410D108D1E5704BDE56F6380B1B2040A3C1A90EF47 E37C6D914394FA7C59F6F380F4D03590A54BCC0A94072C439F55F5328211A862 53A1AD655374E6A6F6AA14D3CE7F1839E043A26EA4F0C74D31756D54E4527965 4C337A76B8C2EE59814DD7FB40B87CF298BB2DD1D50D7074B8840283858F5008 ADF9D03849B9CE01F84CCFF837EDF51B2B51E2AC57F52D218A63E28B9FB4EB1B 0FAB2CCD53B039AE2A3BA27F727853259C46EE84C463AB084EE0A32214A1BC27 C08891EAF337BC4EF1C0FC37FCFA74F4CFF43290A71F1BCE1A75AA85A0C74C8B AA467DD52B82450028508251B958CD210462003C9C1937BFAAEDC7285E8F9721 EB7055EABD746E5D3291E2FC8FF716DA6B74A46C221D1AAABB7C161F77B559CF B9A9B1398CD8E3351C13D9EB868A4DF4C83F8D23CD35F5E4BC419589BA51121A 3423CCCFBC06620147F221FFB1492EE21F4D482CDF2E17F397E7FEE310D7246D 447CE2E603618C1A49395297440065859622D572129E596E3EE397592729584D A000B702E67911613012FBEAABA687FBE7E98ECFB74C7DBF5830016776E017FF 3B46B98CD8A9202CBAB0997DD39068962B2365F373487D4A4E6375EE30AF164C 4B9092B42020C064BE394E67191D96820F9EE8A9D3ED5F15A4D325F6ED540750 7B67BF0BDE699FF2547894934FA8A86B97FBAA4EEF44D8922D38201D63B1CE6E 7D8001386D73A7D5B78E5E0B0447C332036068D3A4DAB454C1F1441755B0578A 10FDDEFD41954701DB17D05B9F0C38C43BE283201B76DAC78DA9C9712563E26F 98158B5D099A59A2F962AF90E333950F992DE3866331955C0B842CB42B5FBE9F 376D214ED9B044ED239548566073136005411CCFCCF6A55FE5406FF7E5902B11 118C0F9E987D5EE6C5E0E03590E8C04F33A17D256F97F47E2C4184456454ACC6 6E952F6A207416C8714758AB4A0C4886A54676A9ABC729BE68EE0050C35DC7E9 B1A6F8904530C8ABB7FADA44DEF2FE5E6EFFB4D618708F2B5382D83C5A690690 894A38FA0214F0ADB22C605526A9649A3FA05EF8E1CD967F5E4A87AAE649ACAD 1B658D2ED4CF7A0EEAD1AFB3CF6EC84476A3B8C2A3FA21109331DE38A783F1B3 46007EC251CECC547F5368677FA7D81A683DFACF19C1169CE9204E50486083AC CE313976A51662D122B0AA2A9A2C1C8505063CD0E83A085889FE8F296B99DB2C AE37F61634CBC805C0416AA3F7514083FE0047A074EE09B6360EA2E935035C35 883C62B94F6B7B2729CCCEDFAE81ADECE7A7C866FB483235C454388A478F43CF 3B77CF64ED13729493A614EDB495EE61B7EEC379FB8B2820C5A6AE1A4C82B01A E051C870BA148E8F9AEB5EA629F4553D99863685A485AEC80F45361E1C380821 7C54658F8B8BF39F997969AFE958F9ED2E56302000002C7D01F300A71A217DED E294D659C82A49A09FEB4E12003ED61FBE2EF08681F6C6080FFB56D7B7C83BBE 212AA3499D763938DE89BD7634D97E85C1B318F729D5CB18AEFF8D946709EFD0 477EAA4CCA923E306B83DD4178F369047E864AB73467D276F00872EDBD9C02EC BC7453C8EFD4CF055BBA38175A229D5909B26A690EAC602B27BB1AC4E772C886 E02FAD29D835E89B4757417535C3A4C62553EC5A57445D66F386F77E03A3A77D FE6596DF0329743D6963992E9D399E77E385271017A2EEF1AB60E600C05D9042 393ADBB92E1EC0287BA44D7E670373CDAEF7B0188F62185D3FAD54A0F315C593 58E4E59EA3F6A95A9F9DC242AD7215A14A23C6FA716D3A4671762F55A35D0D12 E25517C211A9C6E10CD4BED71BDE9BACDB1FAB83FB5982847A9467E247156952 6F72F52B33F4EC6A0BE9D30A89F80B542B771F467A9C501CCD579977D630CFB6 49BC1B1C2A9874D587521D7EB505D7D83296EE1381184C3BF3119611D2DECD85 6C87D76E3E288C8C0E671672E70BF204AD73AE363E72B6D28D708C09D82522B0 CAF9C20C967E0E241469B579C6C75753568ABC1458F17DDFCD44AA9D33790082 F3D61342D8549EE262FBCBFB95A5AE95A96E427FDC62B6695D9A66F67AE5E8B8 0FCBD5A3E8EBD106D48116DCEE7DF527E14A92BC20D69937E562453A67479647 D76D50C0B0368C15DCD28297CAB96A85AE52301961160D630114BD109BDF3DE0 5E62C2348279C7B7A2361FA009E3924DCB4F0681393A9A888FE082982776DFC2 EAC7BE1AF3F867A41452ACC3AFE91F9FE06B3B945AC7458E6214EBADF5D938C8 57F23C6D7A097BCF6F950496B3B7E4DF228F1ACB269D3DCF6BDD45050CBFA5B8 661A170CFAE61702B88BC14EAA79F0A48C5B07CA4D34E4320F35AF48A217AEB3 D22FAA3459E5986DA53546871AF30C935385D637C737A97A430E553827435CA3 6E98E43303A12A8C3A0FD71EE99EDABFDB1CAFF5FB7E4C7BE538CAAE519391BA AE1E86CE9F05B204801EFF9C11A22DC58E08D760EC3A011B2B5E5CD7CEF4D87C 8A694DF423C9756D176BF964728A10B87B315E1ED5E95B118F5F1ED0286F370F F6E10C92FC11118D964053D11F9D386617EE3D22E8E2BC411438497A6838C0A1 DC7DD080F8AD47984ABA95E93E3F4052CE52554A6865CBEA77E54001206A9467 365FB98055E788211A2E30794D7E70A3DE7842F4 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMBX12 %!PS-AdobeFont-1.0: CMBX12 003.002 %%Title: CMBX12 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMBX12. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMBX12 known{/CMBX12 findfont dup/UniqueID known{dup /UniqueID get 5000769 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMBX12 def /FontBBox {-53 -251 1139 750 }readonly def /UniqueID 5000769 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMBX12.) readonly def /FullName (CMBX12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Bold) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 12 /fi put dup 35 /numbersign put dup 45 /hyphen put dup 46 /period put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2D43A151FEE81296FBE 0CF37DF6A338C826464BA5198991445EC4BE80971DB687336AE8F74B516E333D 2D8AB74D362C559AAE6ACFAE49AEEF4F52E28C869222C1301D041E7A0BC1B608 1BF728EF9E98F3A12EB2714E7F16B14E055FE1FA0EEFB058860ACADEDA9D0E4C 42E3C6F1E4869471BFAA3760175F3FBD842755A9D7847EBF605F18293B42F557 FBE2715002669091BB033E1AAD657532F34F7C66E4F04D63ABB07E6CB9D9AEAE 78EDE8B79DD9BC87A1FF445EAA05B5572BB880E69F4DE1F82D7F0E9980AB0C18 22C448B0B1722D3CC33C56FF287CECB80658B3AF5E7675BE82CEFF3DAD5942EE A03C955FF979E41E54BCFB5316A9AB8945C403A73180D0961416EC9C92F49811 4B91BC4C788392994587517718521E416D469F69952149FF7F9224377EBA1065 4A727BF806A112A7B45B0A1BA1D5A23683960575368D9EAC8C04753BF7465AF7 95F25C258C63E4FDFFD0B412FD381946AA38C0B961652BCEC30322C47BF4755D 9F91880688AF066E32FFB22E1A52DE741307AD3ED830D6BAA1D1F562919666DC 5E8FD9862AC8600B0AE0BC7FC779252AAC57248744ACC8A8AAFA836BCF09B0DF 9253DFBB1CB77EA8A59D42D1B18FF25E9AED72FA62FEC3F126F030F5D7DED9C3 CF60FE890BA4A48E39E687BFFAEAB96AE542A6387F6624486037C8924002A511 BEE5FBFD780AC1D4BEC3FBC47A930BAD0280D444259528B6C565DE11DE36BB65 9BADC55C1EDA1A80458E98896D782DFB5C137897419602809F9BF8CA39F00C68 EFB9E076FB324C2963F23CBFED28B9EF70EAA4E4B903225D1F199A7162AB239A D92D71C18B1B682D04C6A48926275BCB16D413B2A0E953E1257E0B12D8B717CE 2EC84CFBC046A4338A69F454A469B12118E562B4F56C5FFB3CA5D357513E6FFE 947A564B229C7FD873057D5C7CDF03E958294A1003B37D8DF565A70A00A3734B 0138AE5277D383D10C2BD853EF806D3CCDC47739F0E374A3DF3B63638B949ED6 4EC25869DC1C0B1F4DBDFFCC97382841D8F10F3635C792139A1EC462FDBA379C BE0990CA2E70FE73137AFBBF30CA54954D7E7377CC50BDD780DDD4C7FDC77AD2 F3EB1169F14A0041F18160F43C24FAF556DB5D621709FBC544CE55424F7446D4 6AC07A51C8CD5161AB0AD5084A96FB35D77F1CA155147DEF8D7A590EA6939514 D4A226588295CE0007BA8A550895511C8D80BBE5CDFB8A50D249C3BDCA974415 F5557914A9B805782F399E4078DDB6264F1A49A9A5BA45E284A5196E9828EBA8 481D357B8D9E6ECA631A6204439FDFACE7D7E6A2392726107CB7D2517CD19A24 FBE592C119626DB221BBB635B6EB84845C16A9585282E34958B961F4A543AF9D 419B6A9105BF185FC767712D923437BE08A9C0EB92AB6792DBDC671029B6FCA6 7F717FCE379C0F3B51C6CF042A762ED04898FBB4B0105C3C4ADDDC18C51BAA3B 70A93666669547081D9246732CFF74C83EE90DA17F5B4F8BAF47FE4D81590988 2858C9B96071341FA0A0D23BDD4947FC9BC2297913CFBD4FD6CA4303AB3179AE 0203F1BD502065F90CE9BEA3B52DAFE4A29446082EA0E6B1D7AF1F31D0AD02CC 9A7FACE2CA86E5FE0F6A425B28A5940ECA306891CECDB3CFC7A5BBC76B5D9E8A C754379ADE80B4D72CE493010317BF21A0CF4A0A55C1246218839DCA3F4D626D 1F4161D38F54AD5142C1CEE95C61D8BB10FAD4B772F4955777AFDE8AE5A837C2 A2BBB11D0BF5DA2E63D0B75ED421DBA9C789B281B01846B65DC572BA69591969 21265DB722AE86BD8CAA3D887C975A617ACEDDFB7AAB341F47532AC0F354A530 7662C089DA3939588774FFA16FC4A52555DED6D6F51DE718BF5F345C23C90198 17B77CB8B5D53A5CE7A79F3E286B6A59F3F6178AC8BF15C0A15C1A8A95D03B60 30EBE53DE328CE085CD9A1D49C69AA299C5B58B24334A546F6E274C1B534DC8F 3289553F560C2F81E413ADB92FA0E7DD1C2F39D5FD268EBA97AB7335ECF28257 96B4EADB7D0778706CB41C7E9C882760E7670936774A1088FFB2011115FDADB3 B69EBD5108760762521C25C968C3E282DC3400001AC8FB1EA27FF643E3025950 1D617BB8BB321281708E496277E11DD3AE0023DA9F25AD06B39C7CF527FED27B 57397E88D3DF70EE4FCCEFC8A0927D6B05517E571B3E70ECC99F3CBA32CCD4DE B8BF22626B6C94FE65598A88AB90D238461EBD9A098DADEA4091AF1CDD7560EC 8E1B9BC2321686E1759E6B8A270C8CB4A254F7368039602EAEAB86ED21CDED91 8F2DB9889F46981C494C7EAF5E819B91C129F0740B8002B510014985E5791F59 B16879CC6521D8E9F1C4C1890AC85A78022BE614BEFF318AB2616F0C3F02405E BB425D1555472A2642BA7686E431DC3FB8A1688B76660D9957C3FDE8D58109AC 21B1234C9DDF3F0FAF93BCF7B2F88A001F23162E1A13E5E9118D51B485B70A91 D0CBC39CF44413FD8686D9030782DAB58064F5B987E0402AF5B264B17BD31BD4 FDF63951BECD73ACA6138854EF35B062D01F33073850D9C09A818828C581241F A625AB3638081DD0F00F946BE5450D38489CECEA4E66B4D85CC8AE0157E2AEE4 A22A9313829F24D573101D84CC1784D1CED7DFAD5DD966601370C6CCBB723082 A86BBAF0A5D867D0D2E3CA16E14E5109A29EF02649C47E12E88B3B397D65CACA DEB9940B92100744D686066F8250FF30E5F13D81428EE238A2E4E07ACE0F5C38 7D79D4A336D0D26AF9C2B84088ED8ECDF94A1E3FADB45AFDAB46CAD6FF950B0F 07AA2CDF82374DA76C56D29C80138841EB13F0D02ADD32F88B23E282ECC845F9 BB9AAECE9CDC644AC2D49577A92307A83A99434F6493156DF25DBF0FCF2EC21E 8C50A312C3D19E0609C0038554CF4FEF3ACEB7A833FD54B06EF0D617C2971C89 E4C06075B09B84A4F78A82152B9A9C540B1D881313C2C74F20ED064A9606EC2C B56D7BB4797F1EEF4A9B13579CCF311FA4A4DFA62D80FDB7F535CC6526D1AAE5 45C008EAF024B48C377522F74D939A475970533E645B1BFA81997549AFF26F67 2AAE6C2EFA357DB3B525276EF330905688777057F4E4CBF584520A534A8587E5 5A8360891E75A15205E8ADAC4A4E5A6E27D0C4A7D492216E4BC023AB027F37AF A8DC7579BA50204D5F45A51460C5BD8A5A7F87668CA6451137F2F59E117BBE28 5C40820882A5546FA76F0CF49F8A6EC445F0647CC3227C400F56E7E9B84A6975 E85E243CC1666DBAFF4E07EEAF3AF71BDACB30DAEA792F2B8504CAB071544F01 5D66243D529C479D276FE22F7E275D9E7FA9C6EECA18716B2F213916E32C1D94 6E32397B41AC6779543218E506569E3544803BBF9B404A983EBA62A494187B30 8D3DFA4E1237A2E5E08224A60492C09ADAD8775B7CDB830520829BA164209ACB BCDEB2D574CEBFB7AE4BE72DF4EB1945FEF2458761AD8DCC0D378AEB7DA002C6 9C14A665DAAA532B0ABA98D7BFB5A6151FF6703385AF7AE8FD315A492FCCDBCB B825707F9566B3B4943A3C61C3DEFDC31A843A2D67AB06891F3E110DD8C73D3B B5E4151B51D9F13905D7D94DB9ABBFCAF35F43B6EEE256B1A80ED6D1739D8D5E 8C767F6F0E8704C5345D028A2A6DAFD9BB7AA048B8B895FE9423A7ACE858BADD 595CB074A128DAFE08FDFFD6BDAC0114159A702FDCBF8013804B0CAEAD7AF38E FAF086A3248AD4FCA1401A85AE2F72E3E6956DC0996FE8ADB18F89B14A208A15 13F81AF73D0DB72F78C4DA634ADE3C73756CAE6AF2E149C26316DFD93370BE1A FB4A79F77A67C07CB0A53C78367F21661D4AFE9E27328E077B522B50FD9AE2E3 DA087BE481515B5DD7BF894A96A84A6C78874100505B7DDE1D22EFCE8D58B3AB 313AB5495F72E2CA4E6AE22C0CB854302B9990372F1661D9F0A517F90686F248 C5643008B3D29F7296E5C8FD4049886662EFDD4106E17C879F5D41CE84F87E89 F6A3117C968B95A35940CC29C43E1E0DEF51C1E46B676301F40D59615C3F73DD DE37B72FF7105DB84227DA5241583272AB1C3CD97AE11C1EE98FFDB5E5F44844 8FC41BEA5C54B26341AFF6830D9D0A5A2901B0653D8BD0746838194D240FF753 E99750D3383373F453723D86BE97B571B8B84D8696089B5CFDD53E6C562A2197 A8C4FB0CC690C27761A816B441029D3D306245052E0C41B53025D8CB7267CFE3 C17FDFE348E765326F91AEB700CC49162DF748171214252CBC821493DD01AA20 417D66DF47EBEFFF3E9BB2B0A2BE7D9B8C68BD570FC2EB0FA54CECC318F04C43 19598BDE93F2F13DC7847354C99059AB20593EE51E94F9D4E9241869D605AAF4 9D9B5FD88C3798A039A67993C5EC68B6326B132E647F67EACCA7F7AE7F718D85 12666E90D7C73EF210E344964A38228B236679A2B18F5E081234CAA2458F8D83 3F0CA308D19663CB12EB904076EF88E556407C33C9380A6A3D68A9EFE65387C1 A1BCD2D26DFD2AC0881EC30E81C0A4E76C244A2BD822EE88C4A60B480D107E68 90E419A1F512E865BA922A7830909BC2611A80931CB2E9344529586726614D94 3AC5200FB9FF68AD9686506C5EFA8788C0AD0251AFE7F95E84683380CDB421C5 B1A783B6D5F3A6BD1BC1C14B363DB01C87C0796DCDD5BECF41A1A9F43183CF6B 82C2AE49F0BFDC5DEF7729F2E638EE6EA9E4D059EB9BB1B992AD8C82D501A550 1BF73CBBFE740179B54E193E84A55DCD61B343C1852780FFB44248FC9426AC94 AA2B3FE20FBA30F6C4D1E0FF3EDCDD8C0F57CCB50CDB0EFE2E04A8927E239C1D 9B026C7929BB48461D4D695FFC766C8A0E545B1BCC2AA068D1865333108E7985 2D93F9B00EA0A90939D0D3840D59B6CC0CE2C147B2E1A9A4F14270FE3ACF51D5 99F7349106165AD627CBBB0ABA01ECC6D3A14C1DC1ED23A9DB9865BB4396C51A 31ECD001EAC94B33C34E29C5611148EF3E55DD61813470B8F3CE32564C749414 3C93C77EA5A3538A0B5AE3FC4DA32813B06772E0E48E25BB39F3F6FDCC077E86 F86FA50E18FD19EB2F37311CE87F18F3BC85CE7FD71CA92D5C3264E34E04A2E5 70C79D99F54D6C6D9D527AE45EBB48411221134587D2253E7C8ED7658EDCA34E 5E768DD14E0200470F73C44D006CE8CB35DE1CA3EC10ADC668B0662A7774C891 84EC95A31DD872F0728D9F65CA80940080E04630BE4DEC77A2C49E3913C39978 BF145F8832AF2C4385EBCDB15F9D32C22CBA0CF950877717D6F1591D7C0B8047 8C9BFCB16AF7124ED83137695F3D69228DB633053208C29E0ABA1B06A7FB3EE7 5625CB44927E2DA6E038A6E62DEBDA2D96A03177982D8FA33BAAF4426E05F4B7 9C1748B3FF7691F9888E7FF864A10B9DF761A41E6B5CFAD2BDD7E1C4924AC97B F4B352705316DD1A58637CC12D71C18A5CA691AB2AA8F171590EC24582B1123E 94D4DC587D8F99E18A711776BF4013C96446BFECFEE4C809EA94B169088024DE 0CBD20199A915AA406F0BD5F3D63D1467C49B4691AEBBB35ED6624F2D7BB74BC E80FD92B9FD04DD9C2BE9B6FD29EC7EC07FAB447511C61DD299C783BC09AE2A4 7B3CBCA6A20C6631D06D0B2E2482A50612BB7C29B7E7D0A205EB0E8436702581 596BC996ABD58CD8D5BAAE4B1478195CAFF98FE0141287296C4EFB8D2E7A8442 F0A3AA9F9264329982532295A176BA1867EF732BBAC49AF485D9D0F7130F617E 7F7DEEF935874D55A22240F8EDE4F247D5F73481373A392D40A8076BD91079E1 1CE5998BA13D48D56B49A92B4A18430E316405D2E2E391B496A1934671FF1785 AF42BA3B2D14B8E04014437FD194455C50289DFBA61B5C377BCBDADA48E82DEE 4E70EF5E9DC03064907BCB8BE4D59DE069FB0C0CB140DA54708E630767313F9F 744594AD8A499CFEF733E640A11FD74E46A749F9C7D18D49251BF85C6EB4668D 67598C31A8F90922FEAEAD4B83B6E7184567DC798E4BA1C4C9B3461A478D63CA 054F13B502DACB674EB49D6BB935E5EC82BF99FDA7D47C581AD7F940DF4FC6FA 6C6D25D647033AC69505F0CAC58DE99087F365531A6283CB89CB644688963C3B 8B2203A94294E58739EF23C7803630A1F9121D62BE1977DE2F41687C8CAF87FE CBD7AD3B98E0D95C8C6E1A7CCB0E09465AA874DC90A0F5DB2C5E7C130297FD39 EFE63B0350B5139D09E6864D22C3F1150B29196E40EEF9723E71158B7ECFB8E4 C426FEDCD439420B7F1C251FADA347C9A2C49738B5A17922E1EA93CA7B125B76 57449EAA9C1D591CAD327D0E98EF2D44D614EE9ED49DD31ACAC0B956620B6BA5 5BF6D08CA7541059D5ED2EF00AE2EE95488F5645BF6837D9241C0D3959B7580F C9ECB2BCF3E65C07D52EC9CFB21C11CD4C883E44C173214C900C44D2E1E43DD1 CE8DFE3DA93C38B548BC4EC46FF91F30CFB97525E1FD4E77686433B20BABF8D2 848C1CDF1BCF185CFD7A81D2D4BB826E837E2AF35CFC4F419F698DB0C43E9F9C B0FB628AC9A3CBE9B1FF4A067016E70333E78B32AB2D89C483834B31F5808FDB 77492E099F1504DABCA5722C7860CDCEDB2DDEB512FFCC7D287F4945FD711F28 87BC3D36173566B81FC2C1290C717A09697DAC6072408E20926D39270121CE58 3EF97CE12EDD7F87F2C8CFE36C3C0400869C0D813B71C425343EE0CDF717BDD8 409D5297D0F8F7FDEB0257C0A391F5635E0DB1116058942FF3E7C94D5F2873A7 A3B0ADAFC3835AF2BE474E6741319BC6695FB37F59AEE388F81F6E66F910000B 72E6BA7531B4378CEFEEDC79CCF4947BA1703823B5AB4F4AD73D9615C66C489D 99D68E49C9BF765B7FC547BAB9640D51D5A7A2396507AB5A4DFF3D14F52422CD 8FCFEAA06A56C6C7FFCD29C9A7A59DDD2A909A9363FE5F1E9629616D25ED38CB E754C059E4379318CC491C3B1A90128693AC53F80F8210FAEA7EE638902A7D3C 82B95B3F5AE340EC1B648DBB9FB679D6E80B7F426D8671FE7136D97F51E2D2F3 C9CE9183E4061CA40091A2A70DBB9ECBB19CE3F65ADD0FB346B54BAB182E2CD0 EAF4C0F402C25573FB344EA771B297BEB615FCD0595172E84ED2A62FF8962634 23C19076C2A9ECEED5135994EB397303A9619C76DC55E032DA83FBA441BD484A 59F70A5110A8927F6239A14D4E223E189A5462E4A92EAEFFA4B961A2A32B320F C2B4E8C1821FA67A655B5042C15E4DE1FB3652B55078DB123573C4E986B19DB0 1C5131F3DFAB271C30A5476B4A19D8FC922E31879C34BAED94C07A4841B8209C 403369FB8E842610D1EB4662B6171A4465FD0E819964F62EC5B0ADC92F08CF90 1DE0B410FFBAD16F6D355E8AD72CCF67961EDB6CDA82398021007C2D0462E893 75EB0710AE4A6CDD15077C9DEFC5774EF4A657734D703CE42174259B58E5277E 0DF26BF59AF8D1A3E7DC12E3C12AA4B67CF35B19962F6950C2020B698D971B35 82FF84E72F72FBB0C54A112BADBAE6C4CAA358BDE6A705AB59332C3850CA3D25 C7564499BC1319121CE0D93218210C68080AFF33420E3CB3A48BF9EB66BC07C8 A79D8CD8E78C200FF7CFA3DAED0B9E87E6141C88B436D8FCBA50AC195FCBB9BC 9512B95FE3A37FFAAB39850FCEBD4D50A243EA416E73F53B4B00F3B6EAE0CA06 0693AFFEF215D00BFCAD02E45496D7C8F5E99EB9096FC4300D038C1AFD31EC4C 5ACA6B72C1BE7204E37A4CBBCB1EC26AB87F2FF82DE20601025169A5FBD2D060 62B5B2DBC288C79C33B596832AA18D730AD572C6EDFABCBD36DEA87C0F323C3D 6E537AD3B43C6F3A905597570A8C6B0B4A5E08C08EAFF9731E745F2BA8ED0C0E 1ADF7821CFCD4E38F3F4C243CAD31D9F8FC68B9043740852B4CCBDD37BF728E5 648215961FA82A0C847ADCC5187331D0863A4573BE520C02CAE14AED4F06B3F1 FB4A318AB54CD86DEC824707B29F858FD726A167F2333855C0575EAF4EBEA0B6 754B1775F967140641FC06F82B191244186FF347A351FBD8FA62E8C978B21F6A E124929876488AFA97FAD1A68A0C3496BCA768F4AF8016D7A65BBA3AAFD7F5FE E75FE714FFF3D54D09C9747ACA01CEFD260985C6E87477C9C7843343C7E9E3F4 0537D461EF019E046DB8B5BA258462B2FAEA1826B3410BA3333480CFE0DECE61 CE2731FDDF7FCF2AEF7CC2B1EE7095F480B3B27D78FA90FBE923D372C680C87B 7F0E702B8FECBE0CBCB087ADD6D28549FE707FCB616448B0D94CBDC404915943 66539B177D5940370C2035D0FEBB3A3C666ADCEB45F5B15DEA729BF86BBCC309 0294FF267657EEA805DD28DF5DA824DE02F86BB4D2D818EA9EAF97E220D5731B 513188C1A944704B7F47BB2E16A5F093E6BA492796C4A8CE7824C7D8C034C45E 017B1A71343DACC41C1E93323FA8E95BA4403C1F10ECD9CCCE239EDF2989B48E 25960A74B3C88BC02B3EC491728E610501F1346BEC7BDAD25E7FB4EF1D008454 5DDFD97674E218947B71048F895B49BD5E31EA9CE5C7F4D389519E4F0B1598DC C24E2EE7FCFCD8ABC6AC056E714E305CFCE5BB7A1B6CB564E76FE398512E8346 EDF80BB00F87689A34B428AF5E5EC0B8326B902CFC6BE148D34B4BE18A8F6CA0 813501E44059C6BA49450FB61C3D073BBE69397703E98A425D7D977D3652F770 CC6629A44A5633E5CF260AF8FCCE7EC4642A6CFDB1055DC37C02B677B73303AB 82DE7426B31C6345DEC0E9C449173C4767293368A2F32D71F34DE70DF30BBDA5 998ABAD7FC1D0BE5280BBD51A315663A91A834EC42C891E8197D0F0FC1166141 97524BBD92F426477A59CECCD61BF0C89D38E9D483EEBB4A0D0BFB53B601ABD1 27216E7BDB23EA995177F6CEFD836F1DEC68F095111FC365C4040137E6B8E87D 6EE787D312F22B50CEC634E287CEAE6B5F8B28C882FF5E82C6407A94C32947C9 16E2ACB87D3870B60F30981A1ADA692ED79B7ECB0D17EDFAC6F326B6369179B9 0BF610EB8B1812366A16697C0E84FCE60294EB7CC2982842E321DB1EEF93A41B 3940F9B06C746BDE472F40DB1ECF41D499BB59206E178A570C19D6081F72875A 5CC9B427AF0CCBAA78EDEA4A4F65205FCC1C797A817B3F07D757AF7665FC6D46 AEDD05BE4C9DA0673151C59BE43FFB14DDF4CE8B892AB28BDF2F8667213AD498 3B07D4F28CF10C4945EB57015553034443E820E4DD2303B78A2CA58D428A8742 90DBC6867AE2471C93412D2F3B8C650B9E0A494672E37155FBC67CE17757BED8 22A19DBD0BEB9F52AACF1F4DB906BA1B3AA8A33504FE6DB5E1955A6071522770 7A783DFC03C71DF51A14660B5C42E0E778C610C39C539B8A383600942DC7DCB8 14571DD84AE6D907E89FB0537E82099C414BBDE7BB528192F665B4C186A33486 84FEE8941A8B4155DA0B9E8B9CEAED0A901DF0CC73E8363660DFE0B48B0E41AE 102105515191100B021ECAF81B052F29110CC18C474D151416B7876E73012AE1 7C470D550CC98AC32E2A4016BD0A87C6BA32A1FAB066DE9F8CEEF40954EA8153 44D4BAD516526D45EFFA3C498FFE1992173F66D207FB4ABE88021AE379C3E0B1 F150BBDA82A35CD9771682903704044FBAB21AB1FC26A6D9479C62B88BD5BB8E 2AF26AE875F270EFBCC9D867CE72F73711507E0F69AD1AB5F73D44133D59EBC8 9CA913555BFCE5F06513BF25AB49DEF1F50856FE73D695552ED3B6138A39240C CA858470BFC66E8E323D68098C0B124943AE50513BBF2B07575DD70A62BB4F0A 7CE09B6E7AED28B87842756F5F3D82DE50E16A67CAC0E7033A8492D1DE7B753D FFB38C795B8C2938C29D4F06E692582B811FEC55E0E10A8298DE0C9BEF3EF9E3 00BF8646C400B30A7D7512830BEA00FC6EC1D09067688E9AA4AEF0782435E573 4DB44006D9A117E1FF700C4DEE7F46C960D8E87450B013E58194AF4FF910D5BF ED8F88747B20B535BEC00FDD613020D8A55A5311272E621B992800D887A06C9C 3F88923692BE87B76ECB3A7E0E837D051C94F953666EC49FA3D1314EE7395B5F B86B817701932A65A79BCFE83F44A9CD6699F582B5231345CF5AFF75F54E5E4A 3392B47C49B354CC2F1072B8E314D72E12BAA48C141A79C7ED3213D18E6251AB 4B4A9CD3F66C81DBE3EB5066954C5FBA0127702E730836FEA4AC8A4DFD1819CF 05CB835D7230CFF7B798DC2E1730AC5FA8D8019F1D0E360618A507D7375A9A38 2961E7576315BB5BDE1D783D7A3BD9C27CF240743B14016E26E23078559A3F46 BEA1F8038D83742C9047B94924A6E0E46B2F2B205DD2611F8D86F0DC598566D5 DA248391EF140B61C9B1CFBE3C570EF1E314F8C53E38032C58685E6D29C6167B C537F5DD36DDEB943B437B4BED0DF71C4339C97F164BC3BF144AA6CE7E83BE30 965260CC39EDF1B66114EB079493D997056BAB321571F9D8BC8580F81CDE30BF 1DEC276DA2865BE6DB2A142225CBD71142C602CE42CF99300C5357BE94687F6A 0791CB940C6807FC208592AEC1137CEBD2F2ABD834D9C55D84D9365DAFF64BFA BF7C4894246F297E9D1EF5498854EFAEFD06CB8649986749F14600525EB5EC7C 34D8A625FB22A6145CB121F9FFBBC58151AF05AE33E359E056782E2846776946 C82A2BC550AA829BB24FCA576088791869F8E6A3B0F0358AD507026F17E74D0C 4DAF27CBF81F73E87971782163DEB29AA7D64DBA94E7328A4F59458552DBC4E4 446D4912426AB03492F917FD626580D58EF55BB2C0F4815D0A41D8EE9096A189 0523F01AA27C13F466303EDC74F6DA3AA5F7D4714193000D7FE7AC8235B7B465 ACF1CF54C0FEF0C3B4547CE59540A0197C7E43A7B4E695D02CD7663E33173E5C 99CBB78C80F5D58E11A96C107CB781CE7CF9F110739EEBD86F2B530C3FFBD843 F99C0A2035A58FB7B987AD876D36204ED2900739A106201A1C3C86354F2ECC20 FB06513E761327CAFEEADF8FE540A324281E0773C05572BF450852F08C0CC0AC 6FBA07609319F467AAA5B8322D7FF21667667530DD2A14FECC8DAE98AE00C520 54E34627683C7B7563361AA0E08266A2B60C9CB86B817767C4DC9A9DB748251C EEFBD28FBE0C4306EDF00A7745B2BF737600F87265B54085F95E1AEDA86B80DF BA02BA5D88A5EAB3B81BE47607E846D935C67F4D17A746CA62714CCF7870B013 037B307185AD0CCB91C580E2488795C697C9A567DAFCF030014FB1BFFC51E9FA CFCE8271DAAE51B5B4B137264C7F23F655DB9999938C9443A374CE4AD178BED9 717A88069BF088614A2EF673C029B47F2EE55BABE1C5C95720ABE6DBE2C9F0FC C00D60CD0488CE7580F976B3696FE83FDDCA628E86E5088C38957985C47CBC33 C363592B5534D7D75816B5EEE1BA465C14218951A2C3C99E2E8A8BB6AC7FCAED 55B664E6A36D8D0CD996CBB129D6C61893D385F26725CFE32423C03F26726CF4 6747165ED1FD7BE5D17010BAF33F6D4EF5184E4B9658360BBF5BC9A8B5B7020A AAE99CC0993BA0185F84A863537D725BD68D421391BC4E0BDBEC307D04A6B486 6850821FF107754F97A2A10916C34C92B9DB358227CBE90C3893C9C7C1A3C079 BDDD4ED66F67FE83BC05AD3C751DAD1BBFBA6A6EC8DE9045C46B61C5A42FE1A7 0AE2A2C04882577C26344396D8D92DA66FA3FD659D05A8427F42AB550E140FBC E1E6823D5F5F9A1C1145AB1227814BB50EC07EA83B7AE25AC99B3CE078B974EA 0C1FCE738535235864F146A5358781F49D7EA56C3AF533B65C1E55AE8826CB3D 22214BEDCD278C753CB7FA8CC43CC76A72BFA65B49F1C81F444B18D998EAC970 EC5E9C94137835CDB1B202099A60FE57F14CFE9764D0F2A05814C695597A1C4D 2B547E503E5A1582DEB74053ADAA4CD8EAA51D3E13E956EB25A96E3A1499E5AA 66C58E7C0E9856F5D85045940F0377CE47A26BFFA5C9324D5DCF871837EC31AF B26C3E13C3BA56589A7A3252965F23C8E826DBD11957BEE674C8AF4F0499761C 86E4814AD51D35E18F147E26E1E10EEE11CDA6FBE5034A00CB7D7AEF289DC1D8 B566B0218E6F6A7D0415D00CFAACA2DDBE21F28165DF92F789CD1D504B04F870 352DEB8FCDA4F0323901922D4D3B4BAF74B8AE0ABFBAAF2B7A9B762786A88E93 16E09160EBDFC3C96C3C7ABA24706E48B0CE5D28D4DCADF325915316BBF7FE22 6F2DE67F216042D40C831C112167711414BB355E454617B0BB97E53E1E2F3986 ED4A81209B1F96C12E25E6F48C4FF7CFF7228307FFB0919C208AB5AC6509571F 15E795D1389E78172DE8B4B252B58367FCF469634EB42B2AAABD7C68535594A2 8245E426A0937DAE80380D6CFDBD8269AC41F87CBCE9CBD02F9A2A2B415E78B6 717A612CD8CDEBBD59E98CD1155D52CCBB4BEC5385375A3631683C99934C19E0 323F2E03C139371EA8CDE95980BE3B60BB252B96B95901C107E12E68158E27BD 9F81E5AAE69C9D7CF9105D3FE4BA50C338A914394554846EFE4AF05B49D5A65A 1BA3ACAF9D258A4E30F006AAD7F7CF149031A01252D463754AC21AB0A7283B93 A368D79EFC7834E4C72E3EFB09C2FEF30438C47E6C90E9FDD8B82A5D812632DE 784D62A2D43E7B657DC2F79AE3522BBB91AE82A99F2DF4BBB55F2448533C4C47 A972098EB8D67E63F656B3629AEC7A1764118FF598D2673C8108F955908C810A 3A8F70BC1093C39D7AD22E48A00C9FF2E824B0DAD9510ED5619B9B0B255504E9 194E06544A7278E1205C496864A60A6CF5F1033A27739F8A90CE113E93A9188B 79424CE351EF7CCFB6C0315D1C5F4E7BD96EF7EBCD89F96507E8E7FACF06B9FC 6B418D2F8F33B1A197B77B6CF2287942DAF320EDE21DEBA125C20613A40F193E 3130A7E7515451F5C6A767FA19B1EFD57BBAC7B18D4B6DA7E01B13E16DA5FB53 C4344EB3571273356AC094DC680A1F2C523870DB2A82D5E79EB75854A045EEEC 0826F45EE5FF1FDFBF0EDC5561D6DDD652E5C34D53C39E36607874167BDAB9AD 310205D953E3C41509991FF61D0157B084FC994E4BB5F6658F701F14AE3FCBD2 5CC94012B6A9519ED394CE937CE2303B56FFD27CA3C4589E15CBE291ACF37036 71A589F1410719B91D6F3730C9A34CAA4D3A767EF7E663621CD2CA67939BFC9C 1DBC00237BEF13A43CC125D38D86EA644A938D9D23EBA0B55E6032F62BADE7A4 F5F72EDAA1384C63D285998F4F14CAF470AB4FAED1CFB4DD19EE281D98B3FED5 D6266C8059CA552F05CEF09ACE13F00DBE4683614D4CF47B62AD57748D7071FA 14E8C178E83D9D2EFE47929B4D9E0D0E26372D2763A965D169DED2209571DF42 79EFA6088BE6759B4C9A5255E96E17A3EB8A1D89E1DD694B1A2BF2AD4863DFD5 26AA7E090FB9F2B545A9C07127B9A9EB4A9D4153EDAD23386CEAEB65C6BD0800 6DB02BC9ECC0662B2E5481BA26DEC353F606CA0D512634F8BC1B80744C32A65F F81F5FF6E1D8625A66714C35EBAC4A2E87E4442B268186A3A255654AF42ABB30 244DB27AA8A66D0B839FB3EE4A6917FDD28613530E6B5063AD1CBC4BFB02993B 68559145171F8F8EE736105961ECAD8FF0A6B14B0FF02DAB9DD8059ED277DD5C A436C83ABB2185723A4199F269A1C7C042E823D2F3B7F3A5A0F63B6711839ED9 21A6175E22F4299F3FAC7E9C1A386E889DF4DFA14D283C71CB17FE4B06C6195D 9CAE9CC5BC873918B798973C98CA3F1638A90CEE8D8133901E50ACFB9DBEA511 648DBF0AC824077AFD316468581E44DB9281D826052E16AFBAB28C2F0C8C817D 0D8CCC68020FD3C6C60933B7F3433B0BB1412C5184FEF9B8B3FE003396937EC9 CDCAF9EA8A2E39B9D95A9F649546B511E8F69C53C5E3C14B2D731FD02AB94F98 67870A9FF0798648D554ADD10CF8B6C515B0164BB2DA33B5542152254E1EE7FD 4FC754BAFAA97311618E27492F6DC84D9996C3B2D8B65448AC9A6AEDB8A0D45D FBF99BBC3966169EEF5F80D11D28727A6CE6E3B498F8BBEB4171C07CAC582561 D1413483E6CDEECF48A56187428BE4ABE168DB62D627532D4605A440619AFA7D 123B500E5C9EB72497D80B0D83435C1351EDD1B1C2D67D15735995E8F295AA43 C79F4FE605EDF525B4F9A7293F85EB2505E374B8E3B64850A7A1EEA7036E9AF0 1A6C8ADB50DED0563F1CD13B663E46EC00CF213C1115A50BCC60611B3932B61A 579BD06CD75CB931C06DBB0A0F77D5D7546935BD4882D5FFC241E58207B8EEC3 9B0501C7B7EE18C65AFA2F34D2E7808E102EB93AFB7D0CAA05B9902A6012DEFD 2E12AA7DD59C7FB0BD7455163F47E63F10421869CB7922E8A08340267437439B AEB4F70369A8CDCD032D25FBA002E421AFDAA04A35277798897E396DE5471C23 37411D08CB058B42304AC0100B4B2ACACFA45C89660CB3953E0F62AF04C1AFBF 8D8E9216CE336227EE905011DF112CB3CF7ADDD11B5F0B79D43DDC86C7100D76 E4ED84092078AD1EEC223B19839D37A7FFE09897138C27CD226817E82FFF8EFD 8F1E543B543087D08D6B53015AE22BC6EF06860F76A951E5EE764F034FCA76D6 1876805E143D4AA4A3290B768F0BEBF371DBFBFFD58E87EB1C787B4E28F0157A 333B5E66558E9361FF7FD366D03AF93B3BE841ADEAAC5CD671F313DEE4DD3D81 DDC0907D3E1E404034CBF42718BFC37FFC78141E382E6E4FBBC0DF94DACAB1E1 E9108CE693490FB51AF9AADBB26A5ABE998DB38A9E523B93D741C2D6A8AC6318 6FCC4FBD3233BC009E5E4B6BE66132AEFF5CE9A7853AEEC4731F9F27BF8158CE C8A49F8A3108EAA7BB9AB92B2646C0B3576DCC31A23245345A25028C63C0DC9E B4EBFE4685D29399215B377BC7FE6840A6E662FD98A4272DD02E539F2D2D0DD0 38E704E55B76FFD5754A725A239F25BDA5A12458B3192C1AAEF38D5A2C23C404 3CB60F62240FC01F64CA4C0FD4FBBF472FAF4BA83CAE5E819733454E2AA40521 B45B0E8A38004733FAB52C708EE1B0D524A96C8ECF7FDC2281DC75EE82B3BCF0 5E88E84941135314135C62E70A14A65186B7C436E85CBBCD7E021DC9EAF99A78 7A864FA490DD9DBA281C155AF245B724A33E4E81E8AC5E617A39458FEEF2CDB0 B174A38EBA50565554C5F6E38A2FF7F04FC5D8E860CD5EF50E49898CF865A338 93E0C57FD6655CBCF47948E120D1644E18DC5B2C6CBB68CE20AE884BC3399241 1C644980DD4357CC0D62364BFFEA34642CE349B626461C3C86A8EE2146FEAAD9 976E0AAD21044DBA09C1DE048D3EC18DFDE8B5788BBDEF5DAB1DF7F3D60C9BAB 18A1C036F21AA25884D2A3128A8317097317F8CD16EB6B372998CA22A13F847F CE377861568EC5E9DC9A47244A61C7F7476565442BA7FF86DDEFDE5652E31772 56DF22AB7D1C954D3DB978C42D5530D5ABC7F7AFF98A591F1C9BAD21C6B17CCE 14BAB8ADB36B1133FB971F8C6EFEFA8F4B611973B7593598279E667543D1CC54 3397606A2BF177D4D1D7073214ABE6B727E699440AF8A2922F44B2687BB06B35 929C30677BBF606F9577588A31906BDF521B1C16696691CEE58BA493618F68FC DF42CCAF9DE3839F155ADDA8E704EC5C474BB6B0F6EFF6B4F1A6D2A95F244735 895E2DA1BE0D7090592F49FA44472F945604C90751247A771DEBE70633CB3E0A 998AF6E4341A2260E2A4A8047F2316694BF4902C8B9DEF02611C8620D9D8F9C1 F9E44B0C868C6BEA6BF641619560CE24ECEE9094572295DF8D8E539F37E6613F 3B334BF414D709279AF9F0FDB0D3A9890CAF6F6015ACA192CB0E6D113C7CDA9E FAB685D3C71462355B962C857B03CE7E0B01CDE3410888CF3FDF8BED7662D579 016F40BF96A7D308F6F8C539CE14121D9D27106D3AC3AD7D0B4698B687DD6C12 2124F0FD835F178CD7A889ACE6AEE4A6D83D22F11A5E48BD31D68FFDCBA90617 D25D6060FFAE21E2BDE1A83F61790DE87B775337649EFF4DE7FB95BA64ED249D EBA644CE75BCB0E91EE0FE077C52D6BCA0938A557AE5B657044D7A37FE626BF2 899A18CE1961ABCB7807BD99270118E44385D33F67C204447DA15E842FA57118 1B4F08869E53C5245B9A43C0BDE58B26FF7A7644C3BEAD3DBC74CF2C7FBFCE0E 73EA6F9B8A6569D1D13F24E6DA1722EBA6276A8AAE345393D84CD710ABDAECEC 4C66FA185F5AC47E67B79BAAA610B9FD6D9BA790DD38553780814F68FD8C38D3 F4DE0B4D7E5FD922D237902AC0DE4285ED80358D383BB545FBB3C8F0218A81C8 054A083CA49ED9B55AB97644734CD787F99C329E3DC91717032C4684F6B54FDC 11CAFFFC9297509C481991036CDE87B06FB908C75B523202F06701CBB09BDE44 9F0804153FE654F6CC83F5739DD9FD09616AC0842A1F8CEAD728A836F79BB181 C76988F41DC6D30C3B8744BB7ED71A1F2E7EE995FFE40146C536A3E09C78B645 B214B1EB98F1900CA45AAAAE592CC7B3A0B750738397BC50A157C3F17EC8D6AD 8DFE805B28B26F04AE0C864A0767545D2F8BBB07467E07C1505C19C590FDFE78 5A2732096800F32F1C5C1CB7278D6C69A6ED4D0A2643B1B731E4A1636C43F527 C4F0410465D5549B16548F6A3183BF1695FF7099A0C1837D07E44BC27670F013 C9C48099FCF4F70E06113C368B4CD2308FADC79DD49513401A7B4AB376B288CF A5FEAFF7193D9706648F14A5CD12CF030492EA00C2EAB2E7807B8C7747C051D5 59E275440E03F1E0318FAEA085302D7B2421049337A0089F2593B704DB364F42 A7B0330A6F7EC68C5924916B2A162F13534D9A07D4A4AC081D15B00AE402108D 9325EFE9DB9FDADC6C42B88F800BC11E834E717634217593F617163C3EE858D2 287180E5CA1F5AA5BDE267CD2BE19221AD0999AD6013103E27582580FFC5ABB7 DA239E761E066F7FCA3E576C4F95A19371716AF08504675E951C494E4FE82501 FB48D1F47D5AB0D234F04B7840E8BF5F2B90C1F6F144A21937FCD4C15395BEAD CE651F6AEDA82B5FAB2769A96776420754E501986CBECBBA2AAF6857CCFAA2AA 7136B191F5BB3871B89623E68E09FF3D2DB38444C3A0667FF68EE71096880B05 F3FBCBD53A8D928FED5D1C6BBD61F1CA816AA7590025609DA762C4FC5704AE95 EFC00B1C25B4AE66E5A9F9449529FC9A536E16F013D16104AF4E1D96873D65DB 474E4CEB98400521727EA0FEDFDB4CD4CEE0E9EFB4F8595FD4F65486B924E699 155B41BFD7F2913BA1A955763F352400FC4A9810FC9F838AC216B9DE8E71416B DA17D7C07F71C37049B2825EAA99F8CB2BC73533265247A0A6FE95B540EDDA42 BB3DB3AB45C8DD7C3C3572ABE2CD425BB29988C953C8E33750AC072B55C89D12 D90688909EE075AD54523CF16DC1A8868958D32BEE168BE983F66E068C6F9731 C2D706414605F0867FA8574EEB08D21DCAE64FF8C90A15A8C669F506886337D9 229A6C5ABB72FC7347D426B6FFA0EC5AFB84D25C929DEAD03D9CCE9AAD8E3A05 123CBBE302E8CFD3582E3A5CE05376CCF59338449B213C023554DE70599EF3CF 1981527CD4A827D00648F9E96C31DE61F51040C1C86DCFAE2165378F8EC25D03 97E6A323128A0634B0C6785FA2378C31F570214FCEC756459275CFA2162A07AC A984CBE70A4E1E7BB7548858C5E57807FEC99D825F78337CB13B73CDEB9DD170 671EC97410392E8F369F54C729FE252216E607E6341B274C02A4350F8FD1F743 6E3A00117A5A1CDE8EF44470ECC5C14ABE71D4129F4BF748FBD9BA296A29EBCC F6E71E1F8ADA8AA5C0DE10500C57920DECFF7816DC2FE1B00CE037E54B6E1BCC 86195354A2E3B3DB62D965828585D60DCAFB07D7BBB1DBD7DC9958159C7AF294 743B5BEE6CACA50747E254B400545FE1FB045E355EDD08B5884ADF47A342CCB0 4A7438CC7E79CA1A03E1EFFAB31BA0C7788D89F98E392958E7F6EB3AF807E0A1 7A99D7884E360230F1025F8FDC20F951BFF5F2F54CCEF9B80A9205EF1B70133E 4373691772A120BE5D5443BF1C97A4316E702294E7B4B37C9A93DA87BF2E7EC6 2A0983905387B7D68ED855A7506EA973512EF5205F9320D3F3B8AFB360E6623D 31B0B21F6E35150D1B15976571952DF05B50B2347F901832CFECEF0BEEF591EA 80A39F5B5DA16B7A19A9062F67BB8F78F5694AF704AA58C8D24E60E6342B020C 9AC54E5DF416E3EE446E7F17182D26D5AA6039AC4A218E95A5E086955490068E 9A0C4FED08AF0982F777964FD1379F6E905A91F9E8EFA435D97A88CD39D36332 4A09ACFCD2DF05A0EC82380B80675467A5154CB5CDC0FD60934C070258A08DAF 01E343AFF58C0B7051FC17D8D0FEB73E9CAB1A95188B68F76A9F93151D64E36F 196C0367B6FF8C0996C638F74FFFC4CA284D58D691AE32AEEA0BD95D56C03ED1 E51CB639E20DF8CEA6E81344D17656DCDE9366ED8B2A844B74D995A3D08D2CB1 A47BF589609E81F93F9AFC6DE7D0C9B478E332C85E6F7F36203C6A8017750955 FF4A659EA786225412626133EC8281F00B7ED6F174C1030D9DA0088AC9596DC1 63D4BF597A756F5E3878A518D29B51F8497EB433D6826313D9526D00F6317CC5 4F73B91877B0B41FF1DCAB1086752DE0E5E8795C42048C47A4A10DC75250ADC2 4D55BA635EE7DB2AE7541996E3E658051AD78E509CC5803660BED6ECFD905611 F540E2A521F6C35CFF4D6C44C13488D878CA47FC9D5CF0C10F2C71BECBA45D86 29355D7EFDC5D158B87B4A3974893A771CC426C2D9E5102DD9ACE9A06C131162 1F638DE9B944D7AFE561B4C63102FFA945CF5CCAFCAE1C105CE936252C91B07F 7373D8CA057387BF1868F8546537FD4FB112353229105E9771FBBFC5D7D729D8 A1FCFBE8605E21167B5A8A35AEF86AD06A16272B34C5A46B2A9D5AD7E41CC8B4 682C7A45F6EFD020E582A4ECC7E3623A904602111D28B36C783909C42F15A3AE 972E2C209D52713D191DCDE3D838790174225739788F97380397447F3BC74002 F4A489DD0E181B4EE224D159931F504391D715B34B42F0210D624D59AE366F49 AF64AD778DB6086596F57903DEFFD1649B79FD0F841F7BD7DE5FCFAA4EC05BD4 5569160F0BB933766A282DDBA5814A90CDBCB56195F76ECDA92421D5258E8555 905652DE41EC93071A6330A3654865CD28CA0751CC7583B16A12197931A13592 3EA82601CC3B6790AF741152741D1992B67E804214D33DA5610F9F27E2585EFE 7322D5A35B6988B4B9B571A85CDE34592DE8EF1C3C72F9A01FE6D28BF069B033 7947EC0AB1C79A2C65BC979E7DB02CF20D7DF627A6CB8A0C803CD43B50B537C3 CA0CEDD820089E0CD4A9F9B9D335F9BA83F4C825842034AA14988854FF792ED0 49970CAC05F95A3E6F81CBC8968326845C649C14E0D7A3988277E157DE51E21F EB8ECB024196AA946FF1193C3BF85D864A947B0BA042BAAA6D279066C4988DA9 84FD212709816EF8C5C5D1F58D60E5A5DBBF123FD8E94F61BA365CD3010FC4B3 0247D2CDBEDA0BDC44EF73D097C5C5B35DAEBE8194F21BFE7FAD5A74683D262E 86AE71B6256451DD2082DE4B0338D74A31F1830F76816878D8E3D28EFC31DA3E FD9A22F8D4878FDA791F91F1806541E665CA46A57C3D291DD0AD2BBE26CEF532 B1A06174AC704489685A2620560FEEB53974A69D2FC71712A8B8ECA5C39604C6 D55EB704ACC24F6F26FCD6D734EAC72C7D7D3FAEF79545E45412D404E7F61A13 DC863B7E4AAB9B24D084F274AEED1B9643BA2586AC90A768CBD867BA38E9F2AF 4F840A38332FD9946EBD0B5384AD79C094E511BC41F87CBEA8A3C43F605C1139 27C0DBCE2E4DD6FD13BF3170FD19EAAE09480798D02DEF8D6ED6E84AEB2FE6A9 9BBFFFD5246DDBEC7E23E35482880E4DE889895F47BA1F54684E38043982303B A35237888D44609D0A6CC8B418AF8EB5361CE7671EE4ACB2E6F4AC1DBF3571C7 BCF780805BCFFD47463150CF1B6C0161CD20496DC0001B821D8E95D55E98F6F6 01BCD324C92A854599F3C14CBE5785CA7F90F666B09BC09421CA15DB1155AEA1 C616595E35671969AD3608C2B510DB7F58FBC8A18A670751F8126F304AEC1D60 6F4247D5F747AEE327B6030747DC4705BD9126F534AB3A3EEBDBECCE54916368 E11586C298AA1DF748BC30D0E8E5DCF462A7517B508626E803DCFDC781C52DEB 144A45DB59772DF389812C11954A21977992FF735B10EA5113554EC1AE57B645 55843A506BEC1133A4EA8A2436541841E83D151ED4A4AECF0ABA48797D0C7EFC CE647F72CF766B2DC158165A9F56B1ABA0129B4A08A0968FEE0FBB24D69836AF E985B2AD28858F4AC9ADC889012B816A45D0FBEEAF7A437ADAF973AD8CA03E07 CA344BB563A532935DA74F0245E0851606C01B729445B8E61F75C75F6E1C4DD0 4C47FA11A8B4038528C535299569691804A291679AB0D99FC9F45531FEBF5162 54E3238621ADC258E5C8C6D38399458DDE07FE820EA8D95B4A4D27FDBE5B8E5D DF5882A76C0704702FA5E816D2B9E096E212F0C09740D845AEA04ADCC214C1F9 EC4BC6F85CAF8027B486D8D1D4E625C00121EB2A0181D7289DBD54E490B870B3 6E5DB645E1BBAC6F4D672D1306407D6948E378BE487150E67FC7284D139CED89 894A9667B356C1FB6CC15CBAA322A483253472800E877E2DFFA4CCCF4E16102B 8E135B1AEBD510B990D7B80629F12A99E181B581A26EF8F3A04E403129689222 993F3B505761B29F3A93A4090AA9A42A81AA13C9A157F4676C60B4F9926B1915 946333462AAB0E5124506BA9E7B059CC6CBE2513DA850B3DAB48FC5D69BDCBB2 BD555433D56AA08BD91E58BEF39E9FAEB9C32738D93C3C3127C916B453E00674 0196EC176E4082B01E4E6770FC72E116DD640AAB59DABA23E3758160CACE67C4 C944FF6FB58704FB2D62E495B83CD9D29B99BCAC3044B0A4D516D655A0AE4D6F 5F4486F1733098CE9213E720A5382DAB2DF24A16713D5DBCC738995B901DAC16 2562CCDB5894AA20D7C8514F91C53067C9A162764DC3C4672290FF30D7791C84 5DE55A0744DE8623CA7D2A6B00CCA2EFC5AE99408127477C7869D7FC2BE45EEF 78079C3F5883E6C20AEA63056C4C3CC5C4C4C0370AAA4784626285C722A0800A 9348AD65A6AB62FF750CCC7F2632BE64050DE9FDC64850BC7211B30E0E5A8630 9D1CB88095DC3D4B090157A59A0A2BAA26BA65864A7802063B5BF3FF7BCD9422 E606D1F664C22B0E6529840064378357671B44C75EC74AA9F2B181002CE32807 0F33124477FE59E3590546F23A732E33280536132645F32A8B29B89F606D085A 4C00F2B65F6D950D69497420977AD336397FEB4ABAF3F3FE548A47DA232D8231 8ACE71F4E78D7CEDD5DD9DC3FA9B62F6FF5B8095A54BB8DA174AAE18114FDCEA 8136F3E5659C417554B8B31D7AF78955A10692FB1A44ED429B5FD9D24150E48A 796890520DDC8265E8CAF0416D506B22B236D64FCF982D9DFE47D8C02215A2B2 BAA3C9EFCC2B44E6BC186D9EF6A4743165E7A78843F80CD7A376DD7F20B3D8A8 703F6D07023D8764BFECFD85189879C6E2F27A120D781E613847948C373E9C41 73DAA5EB8A793FE610ACF6C0461679CFFB8A00AEF8FDE4DEC73BE3270511504C EFDDE97C107AB086D5DF9C28758AC491E4C62F9173FB39EF159B9D4FE88E88D9 D4825CEA94BD47D71BE9146B43E8844247CA5FC83348E6801D58212DBF9E14A5 91149A32E2B7AC712CE68A4A6A81B3039441499F4B605DC4DA577B8C28207268 E074911D25D8B5EF05349661A1E2272DF3E8EB1C92E082846530A88228B1F4E7 0A4FCDC18BFD59FE91C8D0E98A2FAF0A42031993EAE6C7A16A2644B0807011A6 DD079E59059C616E487FC70A52CD3D5420B24D7C1EF6568AC1446D2295E1597E 01BAA0200C3FF0CDFCB9453FB4FCE7A1DE34BB567DEE7448422186BC5A2D3F43 7E2BA9808FE4A952BECB3C32E66585D1CBF0DCFF9A45B7CC86C5C2DD93A83534 5BCD9E37AA7E133009A0CA8286575467C9C827F6EDCADCCA3837518700194309 560F8B639F78CAF1983D8719ECB973A7895F55CFB8B849602D90D2C88CD00635 3D8ADC9AFDC0B5CE80B8AE6653D30FAA959DAE4E8E03A3B28EE0AC8D14B7321B 0DD6900FFEED3C4EEB105A6BFC3EC4CBF91EA67C71E91AFCFD89DD29A05663A2 B08CDE45B39AE8F2CD98B6746ACA7240E9ECD225013998CF96FD75DF47AA4C8F 4E2BBFF6F40BC1958C1357798DE0F425AB097289CE97AD5818A403301D4F8CCB 3327D263B40575CE1D3D4A442FDD43000F697EBB4CEB3DF4C079162EF6E07680 996698FE6231A8D8E12EE75A92D157CC22ABCE62682A76D01A2D9257A91E600C 7222966428984A7DFACBD35787D5D47690E519E80F1EC8F17F2FDD39DC9E807B A9D6074D715D2E938F3D6EDF092D15A6FF5BC1DB26CD73CBCC59482C97E1FA5F 37A25DDD126B52477D445551001A6296C3E1B5C9432D812EE450F7BFF659E436 D9DAE3D6674F5EA710F7B8B6151647F86E44950F8A21D4A5F2B2310511744428 3D4E3850221799A914EC70FFDC483D07D574E8BC3767906BE1BB3DA7B3789AD1 57BE265EC6345ED35BD2C0648DFBB30232BA151E25364A8DE2107594A09B8EC7 8C22101771A3B8C571CA0255EFAE83ACA2AA3A8EE6A6D8C3D39A5EDD8A8417F4 65C5062F903CE0EE1C12CE405E7635AEA8DCBEE58558F029C0086C897B3272F9 9C9BEF9B443CC1DB518959D9CD6A2E33D73F5E9C2B34F9F81F9839613D230B24 C8F43550962679C494D4243E38434B629C2C080A00697787A66781D230B15459 0B81BCC3B3E7C97B34D6D9C8D6549E5863A0520EB731BC20867ECA0E06E7AD7F 92C7736F8D04712A8D57B4892178A68145919D6FA1DB734E4ED75858F1E1F57D 04D08B8E337FF5A5860F92E1F9985D22AF24669362EC14D7C16591AE34F7FF13 529A9911A100EA3250582FAD442E254893CC781C6D2A0418F8688005895FF860 04FD5698C208FB59F90BEB2DC019679A84E2F5BA7694BC3896FA188EC26E033D 35227EF63ADB554BFE587EC997379C998224FD4045E3DE0C5AB69D395A5D5114 00875860E320AB5DD7E4242AA08985CD11F205067C14245CE19BB36EC6F21343 61E78BEE1210C923E163E8530DDD4BEC715527AC75C721BC71927E7985D26257 B0517879A9D2EEFDBC3A439184E61219675BAA510F7C12F9E53A15A743346360 8322326A6DBF48432BF4ED9CC657662BDE9CE43AE4B4DFD1CE749CB8445C9AB7 A7AA20DEA69A560180F72CAC08FBC2D70F3D0CE6D20F72BAD92ED91016529555 ED0F44DE74C9E3D9D14B70DF4EBD7D84355AE72371CB82E05DB7FB523AC4145D CFD610CC64C5BE929EBC8DFDC1A1D9B7A445958656F440160421F8CC977F0716 B98A5823432A124FDCFE8BE721086996CE3E288EBF4AD9EFC94C47C0D594B2AF F4D2D7BB16A01882FAB6F2261A344E33C8247F3E54B1DD35C39ABCD03B6361E1 DC46AFCD9E6435879BCED7ECA04F6C01249E1FE72FC8AE9D835BE33CCCE56032 AD1A9CA4A43E1793EC2B97633720AE8CBB871E0E2632A2EA7A697F1DCDB9E8C3 ECDE9AE860B0277946B6528DB0C0F1FC34A094514FB6F9EF2201ED956633E5E0 D4F6CFC8CFC4B3982DE1B4E2843F180EEA33D9C40B4E7F6AA5F3C903F4791C39 11E6070B2C9B037D2D7D49B8CB2C60D34973FEDDC62202757911FD239ACBAA98 F917E0B162EF9B46C3DF7A46E343C03ECDECA8FA27D66C91A41E0F6617DF51A6 8A49D09F1D87511BB589134767382FCC92 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMMI10 %!PS-AdobeFont-1.0: CMMI10 003.002 %%Title: CMMI10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMMI10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMMI10 known{/CMMI10 findfont dup/UniqueID known{dup /UniqueID get 5087385 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMMI10 def /FontBBox {-32 -250 1048 750 }readonly def /UniqueID 5087385 def /PaintType 0 def /FontInfo 10 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI10.) readonly def /FullName (CMMI10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def /ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5 45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4 7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7 72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89 974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674 11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBC7878DFBD546AC2 1EF6CC527FEEA044B7C8E686367E920F575AD585387358FFF41BCB212922791C 7B0BD3BED7C6D8F3D9D52D0F181CD4D164E75851D04F64309D810A0DEA1E257B 0D7633CEFE93FEF9D2FB7901453A46F8ACA007358D904E0189AE7B7221545085 EDD3D5A3CEACD6023861F13C8A345A68115425E94B8FDCCEC1255454EC3E7A37 404F6C00A3BCCF851B929D4FE66B6D8FD1C0C80130541609759F18EF07BCD133 78CBC4A0D8A796A2574260C6A952CA73D9EB5C28356F5C90D1A59DC788762BFF A1B6F0614958D09751C0DB2309406F6B4489125B31C5DD365B2F140CB5E42CEE 88BE11C7176E6BBC90D24E40956279FBDC9D89A6C4A1F4D27EC57F496602FBC4 C854143903A53EF1188D117C49F8B6F2498B4698C25F2C5E8D8BD833206F88FC BD5B495EB993A26B6055BD0BBA2B3DDFD462C39E022D4A1760C845EA448DED88 98C44BAAB85CD0423E00154C4741240EB3A2290B67144A4C80C88BE3D59AD760 E553DAC4E8BA00B06398B1D0DFE96FB89449D4AE18CE8B27AFE75D2B84EFDB44 143FD887F8FB364D000651912E40B0BAEDDA5AD57A3BC0E411E1AD908C77DCE3 981985F98E258A9BB3A1B845FC4A21BCC54559E51BC0E6C22F0C38540F8C9490 88A0E23EA504FA79F8960CC9D58611C519D3ACDC63FB2FBCAE6674357D7F2285 4BCC9F54D3DA421D744D3A341DA3B494BB526C0734E1A8FC71501745399F7683 FD17EC3044419A88C3979FD2ABA5B0130907B145A8462AAF0A9B511D2C8A7C7F 347FF6AC057E6512902BFD2918E2CD31DE615F5D643764E900B60287670AE18F FDE15545D8BC69591A8CBBB275AFFC9B14BD68DF0AAB32268FB84844D4DBC7BB C591C1AC5102C50A9C7BAAA848DA88B0519F0F5F0813BF055CF0E3C86F633A04 B779D2E8E656DB1E09A66A85FE21CA8BA5523F472A229E83F2C4E91ABA46C733 F3C7B5775B06C97782BC225C46385BEBDC61572458EFC5CF4190AB7A9C1C92DA 29F84BAACF552089195966E3AD9E57CC914D20B6962BE80429A16D4DF1ECAA66 36C4343FADF0B2B48F12E2EB8443C4AA29D00949255F3968617F98B8ABD4CC12 048B838EE243A21AC808BD295195E4AE9027005F52258BFCA915C8D9AED9A2C0 80814F79CF943FBE3594C530A22A92E11BE80FCEC1684C4F56712D5846B0749C 9B54A979B315222F209DEE72583B03093EC38F7C5B9F9BCB21DBE8EDDAE9BE8B 75ACE6B12A31083AC8348EC84D1D29D2297A266284B7E9734E207DAF59A25F4E 4AA38509E993C5394FED76E6A2F25462685C4C86C6E8CFC9863338EC1428BDFC 74616BB1BC8948B0ED4C87C15B4405F3A7796F9DB3798FFFE8BD0A94E834817B D5E9812E308D0CC920470A6F2CD088FCB80462BF7CB3F039A7DF3DAF5B2B5355 E083A385CD2EAF0FC181E40E96DD7E9AB9EF5C7E6866A13B8A54718E950FE097 EF0951A357114F18CE9933D28B3A77AA71E3CE884661F13284BCED5D5FD1A86D 543E588FF473DC2CF9A4DC312500135F29C2D0174B32018C8DBD40EF9A232883 710A1F2AB2CD11312300ACDF789A9B7B93D2035D81D1C84984D92D78A53A00C6 EDA94B24BBAC1AD17774A4E07E6F74ABD90415965616AD540C8ECD8C3A44EE4F 7F4F6BB6238C5062D63FA59B7BF08BE93FAEA70A2AB08FBEAAF7DBF56B95FD93 03CA406543BA6C9527D0DF01F5108D31A51778A5EB1C93F27B72B46146A353A2 01CACBC829603B9989A87CF64528682CCBA0562A8165B185C58A5C6BB72F5E89 500ACCAAB8ECEFBB2640E99EAEEC4EA979AA793D013D61D8ACF8784FF8D9398F F6A252A709324FB39509F0B3A4E725E82F53543383C6765BE556CC897C758208 AA3AD37B0406E4A79F8F0A6C1983FC73E71CD858C0DB66ED66D5D992978614EE 1EA91EBE191E082EBA1FC040AF19A2202575C2EBEB8058833E3520FA03D2F915 85C1ED337E457B9FEEB0C6EF2735EFDA6E0D05FA641BCF698AC6B97751E8306C 4DF00A39B8581FF53DB8F8525FDB196D85950906CCB59B8EF171349AA3B567B1 6A00819947A995FB383C3C1709C9A2C113B2E40BB832B7D4A0FBA0B16A2C455F 55809CC425C403E9668DC66BE45B71A81C332FD4DB279D22A2959962304A8F18 085893DAC61317D24A8F198FDAB95F3B86F0AFD35047B868A9A17037A2829A02 BAB042F75F349E197A7EED41984C2859754CAFD0251439921C248B463B516951 2E1322C80D73F9CBCAA63A585450275AC2492E4D3FB78E800F788254DB5E610D CF788DF5C70FF99892BCDF16133E34B24B77C8F097F546B87C603DDB8998B66E BACB68BA27462AF54AA405682EC96D701F0D474DECD5F95CA2102DF639EB169E D518162C2BAE45FF698B6DE15FC6E7DE48C336C40A670FD26952A6BAB09115E1 991F0073419F2CC2A1C08BE91096936AA0C37E4ED3CCCEE235476074B8FF1125 6BDE3701F85532D8BB64CCC927CC335281C95EA689706F0AC717DC2CF680C754 E5EFD7FA4BB8880B2B727A964C876D4A223069D4E6001771F0E23EAD2A4BBC80 E76675297B2EF05F52BF4E71B3EE2BE3048CF088C79540113C66AE98B2FD3CB1 B0741A215FD070882C52765009D7D711DAA2508F19AE7DDA15229A856AC49BC3 4DDF40814FF96500E4B9B02D412E94623C5FDCC76C0FB8E42DF56A904FE49D65 1DA7C53901B2EA71AB658A464D3ABDE27D9DB8D9E0B48F64E61A2495AD5D8DAB B5E72424AD017DF37964AF911BD7FA21A5EB4775DC8E95EF0C0EB856B00D89D7 8172A1DE8530767D317B8256103E53CFB877E10686A04F5A08F8DC58D843DEBA FD5F40597588663D103689F6EB3EB14D06E18C8078F2538B43E712DF491FC5C6 AF639256C8C6134B64D560D8476DEA6329D995E46CC4BC78841C59E73648B47E BFA7DE0846422F738454AE77E822A083405289247BD7C478BE4974F742CD6051 E99FBB1D1B3FBABFEE855174734EE45E87D0AADF32B1283B911162A9955847FD 38944D70584FAA6B1A7191C5C134B73F98EB632B69E2F0C0F94156787C34C8A3 7622A029D58F9626B74F8A8A1F3803E0BC20E0EADEB1E99B70F1BD9F980FB751 2A842843DE42EB142A84D5D3138629AE9EAF6F3479C423E8829C8816FA6EFA27 DCE5580E65AA9854B1C64163DC318420CD993C15BFD76A8BA1182860A6B03D6D 22B8CF43CFE6C8AB27C64842E239CAE707D3086BADDE1D7C94E3BC96319470D6 8D26915C575CFDD03271D6BB9DE86A0EB6EEA6E768B224A626C62A9AB48A6EDB 44F70BB5AF991CDF9736D65933E81CC57A78F623F33EC9AF535F2F25FA4EEC90 D50DB7E87F31E971A75A33A301CA6013EEC5A4E179D695B33DADF2C98364434A 42926776000B610E17524162253F6FA638D6581C18F99EA0BD1D2E24D2424ADF C05010D08192485153DD03930C7BF45237593E484F9851E6D464FA10FECA5D9E 0C8CCC97DE029030900CDBB491C5CF226DBF903CFE7735D939C3FDF3A20B70CE 66579B28B99313FEE914E295388C7BC8E055A2E54EA3A8206D3C8F4F7C0BA5E6 E519419FD8CE215F7B8E9BEC604A9E3FE272A0328A24E31997C8A91E0946BCF1 6943A97CBED2AB9FC636B49828BBB8B89E0BBC2653796431224895ABA5DAC41E 1854BD9764E86147FD7624F736F40DE3B7582EDDFD15C2BDE3F22B5A54D7DF10 B87A1301CE85CFC061689A890A321412A13314AE96DCD3EDA75035FDD8F4AB9B 897A2C68263A68457032C469987970648BA2D88B1C5375DFEAA35A917B8A952E EE670427942AEDB3CB599C5746180E392837D371E15D860620ABDB6AA7772C40 A5E346661673ACA530BE3D8E3FFB895E5DA3DC23B1B43C080C77F7E47847F0F3 F3AA5CA9E4BF75FC5EBD18D19F21A7DAA3B11CABC6E4070A15F7DBC8B05EB6AA A02EF1B078EB66D61D6AFE41DA9B36FE7EC9EF94D1EA26282A9871E2CACB3126 2AD49C2D9B50A6E47D8F2CCAD50992D1B430979A45FD9E76182A19964BB2A1F6 51779A2B258DC1DF4C2F3074621286831F3848AC152DDD2BA561E6586ADA88D3 598A2CE2CD048F027CE0008B828BD915887D7785341E8305DF2346ADB76BE99F 87B02173BDC334E9221C8DF54114A6B24C1C5340299512FA6C8C51AB4C8778CE 178CEF531C6D1B5FF0A1BE8EFF767F959BD4C345C52699A29A17B2A230842BF6 4B011217D6D24EDAC3F6D53482786F1CA33169B90ECD499407D37CE9B70DDF78 7B7547B32952535BA9ACD1E244447AE3FCED3AF28717083CF9590A09780984D6 AF0743C82AE4FB3E2BB2856A4153A3967A023FFC35382D6C22D84A924900B6A6 3DDD400E6D2418DA6C27F2FA34C075C902B89EBAE658B3C9A18EEE449DA5A379 337DE95CB7AB3F0970CF1A5D8FAD8090E495570FDFB2FBBA79244780D8035547 C5A55BB21A2270F724BF5D442CDC5BB9F09BE0CAE59B1C2270F0BDACE698F2C5 DE8F66BFB9634904B161F5BA2B1950048300D69BABD312D58D89C4ED527AF7BA 7DA2478EDC2CDEE3473DD8A8ED9D891CD1FC21F23013228BB3281B71FCE959BD 6F8E9059D682A7FCC5265A0620992D4FA8D78377EB34CE3ECA070EE3707239BC 98907DB0120CE42ABA32CF97127E28382BDDFD685674279F588D4F951216C355 821361790F64C2CC720DE97E8ECB57326C43EE47367628E05769E106868B54F4 C33C9951908DF6FC4F5ED2C7787BD8FA591BBB3E9C6C1DA94CC5E38D9B20C886 7D237572FF46DD896A4D6163408EA6CEFAC398EE041EAE29D577E75326CA17A6 B072D47A7B13EC441CE6DAA042ECD02134CBFA6809A435050413817193DAEB16 A5882C8AEA44BCF36E74E9ECCDFE7E19FF5A5DD7A94E5AB4F8702C3DA7F42325 23C808670A0490F5B373DADE40814FF9650241D3D69C91FBC5ECE728F827D9BF C928602E05477903449E079164CA39859C4BCA60C579F490AA455F82B5050BB3 969AFB478E0D4A257B3356EA3CD62051FCE6C6B1929CFF85BFDF166BEF658E10 3A55E007F38EBBB248B3F0B8ED1925106B499B762E45113AE1AC9DE09644C84B 9C08034B297314EE69BC32DB6E7D7FB9913CE5AC17E7335979E9DCCE2BAB3725 1976155551F9706A576FE0E3ADCCF72C87683291528ECB749CB0ED291966E239 B5E3630676BD409E08F85BC1AEC9A2D4135376284A96EA24431243BD6FE8B966 95F11A4BB53F392E0AEFEA623064FF8A7002367B0A515635CB2D2DDFB9B4A8D7 FE721754E81BBA548848A235B91AD4E4F7DB19CCE2F61D277FC00AB956EB93BE 44AB4970CA56BF59506C94ED160FB1E25D3DF2988A532BDB787BFB8539D22986 FDC378AC31444E63C4727FEE121A43751043849E6DCAC5B59D0FC703AAFBBFD4 E8B7C268F21615AD02CE9DABEFA27B5FE6A6441B619539CAB1F810F1263447AA 633F5DAF483752EF1A0421740E3A811D2D2898CBF53E7F686C9223FD7235F02D 6F90D2D48CC20AB87778DE3C6FB335E0F0EC20B5DC5B65223FE117526DE2C72F FE839DF93CB2A7D66CD900CB325F891E311BEC932F703FB4FEFA29DB8B9C88DD 375EC71B3D58C7BC59ADA91971A3BDA1ADEA629CE6CC92BD542CDDFAA7706FB2 6CDDE2DF07E56D6741916AE8E8744339816F3E6C38062747AA9FDA2A2678A6B7 EFEA870AA3A4D71B25EE3013EAB1DBA34401B867C7A41AE51E0421D41D3BB83C E120C8FEABA6E5DEC53A689C21426D4BBCB68CB37568761C360E6D4E3596FB7D F4DEC7918E58C0293D12D6DDA7E9DCDAAD7C939F55CD1BC4A228B31E9A904156 DA6B40B08E6ACE674618B768DD681C772A3E55FE096CF949CF3B0460ABDCD891 D17B37B355B29AB5137899C036F31DA026244FA25FB798FBE5105BDA29F46538 D3D3AC1001A7BCECE64DE94FFE6C354166A0F97256137BDFA07F6E22A3D1D2F4 9588DBAE95E895BC5E64DDCBBAA8D0A22C229B42CB717FC711E7E9DF793DF80B 9F14754585A3C7E17F37B32924B9F9870DA8635E3E18BD1DCD81EDF01834D9C6 B33F23C956C2FCBFA47D84422F583459D827D1E120B97694D12F1F54D02379C0 D288F7104F3FFCF4F76E3494F4ACBD1BE3A15543CC680924C78A473F8E311ADF 8FE00A04C6C393DE61AD3EDA5BC031E2353076A2489391B52632387CA28A7B93 FBB065A6EF3658AE80B1ADA47E9B2539E73A71FA75645F85ED8ECC257FB4CF26 B6C912DE9D0F9899E70BECCB934AD32CF49A093371A9F73DE6255EBC39DE1E7F 00D0CBDABD4D0383977E694890E71FBE5C376BE5F3A80C28987417504F515C50 909F3D31178BB9B1D085BE514F71B910A9085BD6122DDC72A150BFE266920E49 5661BCB4BAB51D6DEFE32B616963DBD989FCDD1637B294CE4E288655FBEFA1BF 7F25BBF8CF17C2D5FD161A7C2CC9CC7490D9BF15A1D35B3BFA43ADE256E88BDA BD490D92907C57BAC408A575EC84D6AEE070148C7C9A91C03B09FDBD792E8FF0 C0B886AAD2EDD86541E5E579359D40E3AC312ACD3D8FD49F71BD533DDF8859B1 BAF17F1884E331DD07CEEF93B71D492AEBAADF7A263450A7A72210CE630A0D37 BF024BDC09ACC882816B8C22C62AE38A3A8D0F6EBC2B1B2C0B8161A8B076DD5D 4B779C0788546BB4CF57332230D237856B00D79C28A7C01D11F44B7304F69075 94B97A745DA43D1BE561372CE611C345A843834E46AD9DDB16CABCD3FA33D6F1 F6B5C0497F5EE5400B305CDC16A7EC286AA4D45D0EEBB9DA06AC9C5294D68EC9 E4DC3CA2B92CE8FC0526184A86EDC7AB34D67E60AC12D9CA8FD300235EC968BA 92C6FBDA47572BC5600F25249F60AD287CBDAE980E747FCBE7EE5CD323E733F0 63553B494D3DDEB9CC1480B5C3BB79A28E419AA65B18CB297AB383419E890E2A CE6F98C9900CCB4675280A10CF060B8D220DDA1BE55DFA65715EABCC1AFAA271 B1F8732341613E17B231231A0D24D4D7FC198AE04D89A99C4536217769C6FBD9 5EE24A6302F97438F7C0E311C878F674B4477A5ADA3952CDE4055AC408B8174E 86F8FB797646DFFFE0ECA25D1BAB9A9F71F3926D3D85AA63E7A8C931D71E79E0 AF1EAC26FADE468F4FF7F3861D14C10E3BE1F9EAFD6D3A544E8108D5DAB5B180 3950C74818BC8AF4758A108F462EF1826647A49667F5E482038C54716856D9BC 35F29922846D2148F92F943E951D7438C73D6A60459A8003174036C64E1629CD 155D47FD04B03C023AD67CD5A70C98AB556EEAB8C48169706E5B352F6505D580 AC945171BFE62E81F8F500438AC3B64D857BA5BC54C2C4BBB237F8FA51296255 E66A92A61FE13FDE781D393557EB72CEBAD86511035F775FAC39A0479CCD400F 226709118F887F47CC2ECC8F79816D4A945B2845F50AFD62D8C9A9BBF4739496 9E644BC9F7B04803B7EE75A09EAE94365F6F374B4FCEB0B506C76297564B9B6B 8B812BC3A33929AA94692572B010E6210AEAA312BDFC88BF302244AB9D587A9B 919823FD01DE12438D960944D1977800FEB49E638C32E5B188B1CA033E0C37EE A142F746367888AA119535F0CCAF7EAA461B790EB089D2D6962E28A398439BB7 9C9943654D7A2D765B46BC0DD1F915327F369162E1BA1BA83110B93F442905E0 523BFF5E279508A98568CD5CFD18FABBE9D17265A9081E7BF64155A2CE3C0DF7 88D00671AD65654709589BAD7EA65BBA811387ABA5CA0BC3F66D3D48597A0D1D 2C268375DF47CCF62166262AE4840AB03BF49BE67A05EF66328EC729F03CA5FF AD3937FC053E223303565DC771ACF32E63DFB96D5030E787961D72D02C195C66 B48E9AF0309DC169CFE8D16E2818DA94693A18F027DEA0D916672480464F7E22 CA6E431FE38D3FC019BDD229E064B72C545C61C6EA55984565CCA88ACB01F744 3B4593CC8944C70F30925FB48A16342CC26D444F54CA15E5A624C4A2DAA2AEF8 404145BBA339F2A2D6FC2F3ECE54387761CA1213C8D56FF96E37C6147CA44B84 262EA87E7CC10D931E6B5B80D7F09813498497AA84ACB4AC69BC6C8481ED2953 084F560D7B1CF90555E69BD2AF7C5D944E8E3506165014652462BE1BC81CA341 E1B0725159D36DA0FFF3577D1DEBC5D91AE683FB0384 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMMI12 %!PS-AdobeFont-1.0: CMMI12 003.002 %%Title: CMMI12 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMMI12. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMMI12 known{/CMMI12 findfont dup/UniqueID known{dup /UniqueID get 5087386 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMMI12 def /FontBBox {-31 -250 1026 750 }readonly def /UniqueID 5087386 def /PaintType 0 def /FontInfo 10 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMMI12.) readonly def /FullName (CMMI12) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def /ascent 750 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 58 /period put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3C05EF98F858322DCEA45E0874C5 45D25FE192539D9CDA4BAA46D9C431465E6ABF4E4271F89EDED7F37BE4B31FB4 7934F62D1F46E8671F6290D6FFF601D4937BF71C22D60FB800A15796421E3AA7 72C500501D8B10C0093F6467C553250F7C27B2C3D893772614A846374A85BC4E BEC0B0A89C4C161C3956ECE25274B962C854E535F418279FE26D8F83E38C5C89 974E9A224B3CBEF90A9277AF10E0C7CAC8DC11C41DC18B814A7682E5F0248674 11453BC81C443407AF41AF8A831A85A700CFC65E2181BCBFBFE3573BF464E2BE 882A715BE109B49A15C32F62CF5C10257E5EA12C24F72137EB63297C28625AC3 2274038691582D6D75FE8F895A0813982793297E49CC9B54053BA2ABD429156A 7FFCD7B19DAA44E2107720921B74185AE507AC33141819511A6AC20BC20FB541 0B5AAEC5743673E9E39C1976D5E6EB4E4D8E2B31BEA302E5AF1B2FBCEC6D9E69 987970648B9276232093695D55A806D87648B1749CB537E78BB08AA83A5001F7 609CD1D17FFA1043EB3807AF0B596AF38C91A9675E2A53196FEF45849C95F7DC 182A5EC0EC4435A8A4B6E1CDBF9A5AF457564EA72BF85228EB6FD244F2511F5A CA9B71A65D53CC06EF5F7EC3A85106139A4D312378BC22183C09A229577B793A 1B7422611C03E84BF809F46C62CE52D3AE29CE01C32B202ACDAA5B72733EB0AE C31D7EF7BA88D2D14F85313F7A8B9B7A5B124B03AB923744D336C969E5CE304D 3AD977A46664479EDEFB69F113024E761C05FA48A54072DF9E12C2F352ACB3E6 D04F6EEFFDE209E7FA3DA22E5B1D1409461F4286B7F4F8251B44E5CB7805762E E129FF4A06A7458F3191926B1CAF70E32C6571AD2DC07C34FF62840896F4D200 761B1A7FA356526D1E3AB4C542AF13623BAEB9F61B1BEEF79A9205B1FEFDAE24 8799D516A9ACC30BC0139C63C9A0523E9D5439213B67D490C96F902958779B8F 68BD8E9FDDCE8A3A2E35877DB6C94B7612382ED8F218EB1157D2ADD090A2448D 10B99FBC9211C5629ED1C61C74FE93041E5AA03EA4AC3FFDA00C2B6E719CFAA4 262FE17F66804A6B54D3669836EE4367D2A2991580C5564463C973CA0DA38AC6 922716E13B4A807B50304B8826CEFEAA47C305FC07EB2AF25FA7945797237B16 56CDE17AB0834F5C97E0CC5741B061C6FF3A8DD1A79B9A173B66A6A750538E26 32FBC92E75BA15CFFE22A7302F47908547007402569158F62C29BA2956534FEA 7DACF1E507AC309DAE8C325F2A6023D2FBD81EF42146BFCE6A16A6310A650460 7B07BB7647C8760FADDF0DBBCD3DA6CC4645D1732DB3A22D8B76E1D2D48E4D4A 46F4BEB80CE65F3517283A1AE08391FD1C10ED452133706BC6725AABC80107FD 754A8BA47B0281D479F052CE26A723EFFACB79B213041A536542AB334769A2BF 88505D82C498ABDD5A73EB539530F47CAC52825D16A969C8BB56D4A7F2830B8F CB63B92B576E7BD922A4B25E634751F8A3B7C4EBAFCB373EDC8B8281B1D1371A 7844E9AD990CFF09F0D7ED73A5CF873D2D5C9E8A9923CFA31E1A4B4CCCC40760 8B3AC8FC3C88BC08BD7407725281BB879A1A822D94997826418F1B89D303F2C0 BE7A0102E6F529630CBF1BC5BF3E4578C164A3DDE45E62A957EF3FB7F0FBBA6B CA1E79A1ED195B6A11CFB345B663C5E72FA55D80476F604F6C4257B51686AE25 8F7D159FE605DDA0AC74BAA5034F29FFFD403070013C6E2D8EF6A0990D91173B D5A3AEB98B64E412991505C3CB7C2CDE13C091FEB3DFBCAF30C4C19511102300 135BD5D444BB55692013F52056908DFAB2ABFACE81A58423ACEC59344CEF7D4A C5A3EFFFFF70759BC3E593D878281225060B97D1BEE6B26EED90571FEAFA1812 1115C0EEC892F5DE6FDD68321A0B3F10A2D771B79BD85476AF6018472A499A86 07D64CFF4550866AFE590C471C80EB12CB3A989A60BC7BED39097C12D9286E39 14C7952C4C64820B4DE44A1827B7B0B535244E93FDB80036D6332F90F95B472D 7031E7E3819E881BD0313CFA112EB3AAE943C99C47635CCA7E34DC0306C04E5D 2E9F60FF037EB11602BE74E8E6B711392E866E3E55D988F7C856417A2B9C186D 639819B4786D039B77F8578EF63C088FF28BD08D8353031445C8498A8F445BC3 D08923D32AC04BF3CAFEFCCC1E77EA894F4E846F47EF62D6841B8D8576FEAE8F 90044626869D04D61D64D56E8C51AF8C18D6CC3FEF3B6C4F7D56FE3260354948 10104F69B117FB8269292579A7D52FED688C663B643D8D99F13956612271073E 1A337AED059B7A93819A28CDF01569CBEB51069D22ADAE25C47355560F402B2E 8C9900DA82B79C64497C8494F42FABE5AC41791C2010D98FB7E593C744F250DC D837DB0EAA4F75D0016970F3AE8359878A08CF9A697A06C5EA945819151265B9 1A12122B98F79185DF852257BB4798E7DC03712EA6ED34F6E6AE1476788DBC33 9229FADB8D581BE1A63F596698DBD6DB98A092F67197A4FD4A50B648F2691875 EE2495D6BB310078F516785A0CEC7EB6E8305FDBAEB1D15690409FE32DD9CFAE DBD3866FB63EBCAAB73E3E4BE5D7F3AA44793938AAF3F8341683F0790F1D46A3 60CE083F9BEDDA22E0639A92393960F86602216FA51E2754BC2F4CD0BDECE3D8 FFAB7E0E49613DD4956C9A10AEA798BDA1F756C755BEC12147ADECAB0FB73B7D 203A11D84DD2AB5AA98FD38C1C2573570FD49A4924A94A106D2A7D850E793608 FB135853E8C4204441CDBE697FD0CB330B1C3596F32D2BCBF263237EAB362D09 DA6F531B40384DC91F30674760CA7B64BA1968F6A7FC9EBEF431A1AFC5E76D7F 2D44DCB7F61C7F6B16196B3E8B47343F572DBA8B8B21B43E35BB6B2DD5C7982D 244FD4304D254D6CCB5E8CF70E77F50812F41A988EEB3B26BF0F6F69BBA18077 31134B5A5823D10FEF6201D045AEE7A24E0F25376E9FC66340C56C05F6CD810B 724D85CC4BB8D789834A447CBBA159565D08BA5793D8599035BB5063271518E8 F6C50E7DCE71B1D186270DDC860C6DC0CD506010EB5B1FDF6BE47A9A18CC15D7 D657E58BED9EECAD5CE5D49F63139A39BC52C6584BB2C3264D51BD584B40F8EA AFCD8B83F548594386EB2B05CE803105E84931DC6E7A1398073D48E130E0D907 CD0F1ECC3254EDF5D4DDBF44415DC9BA66C673820CDB0FDF033D59BE2B5EFCEF 01FF9D33EDC88F8D522E07F1689D024DBCD09A16A63519E1764C8630FF36058D CFC07027E0ECDA01E0E85B166C613B22F587B4D355EB018BA93E92A36007B4DA 287FF5A91F7D8A0EDF5554ACCF45AC8066E88865C5692E63EB99CAC81367B605 8E6C19EB98EBFE0D2D161B447B9A70CDD1122C7B78A413369016E6D8481E2AE9 9AA97B5DD0ACC9B0820F7742CEB2F46F89F3E2092621969A88DC0156B4F941A1 6BF1546D4B136657C47B082A8A35FE96016BAF3D9679B8C32EDDD6AE6DF3BFB5 7854074FA019707FC22BFA82299E72ADF9A980AE29A8E2434277E58B01F6B03C 192E1E25DADD49F6E3F69799AE62B56E00B60A031BF8721DB8B2CB6D4A4C15CA AB1FDE010AB7DC0DDED977389B101B8E53A949222FAA126656E02817DD32B0D4 A49516CEC2B97EA7C78FD66229B044EB92F502384BCC6CCDFFF995EABE3BB7A9 50D5D1AED861E7D3BA8D333026C673C5762712E763E59261426044583D789C67 A606B96F97663F92BF104CE02FBFDFC521EC0D6670B7D4F85A229F51426DE912 3B729C4A535FB7C88D0A5E78074751B58885DD6BDD2DD9E9C83F105E8CF63DDF CA7DB39D0319CA7CC2E73F42747F007574DE25AE1538B4D493D22D0D5F0F80C6 5F6FA3937C8391DE2F0116F81DB2DB0EF751EC838A7F85F163A6F48804E84B96 8D715EF25B7E2A5CAECC558D80F421052A1D698F3B8452AC27E30A4E6226E3CE 084C8A83ADA0818A110923CF7AC7AD4CB92AE4ABBE0A9EC1FF935FD02774C1F7 92A278E513012AD17722A23C55EF82E18F8847B5CCE47F4FE3EC508BA563F7B2 AE56C94285A18DED4D432FB0CEFC05A20BC17DDF9FF919C724810A8ED7358A27 97EC93C1A13C443A91947FE1F6F528EA7B628917FA7E554A1D7B31ED46C5ABCF 92BA57961C8876DB4041305EBB029B03D8351D5E2819FF87E97ED214D8F1CEF5 7F7668DDE223721C0B810F4A4AC81CA4EAC86EAE546E1B15D91E626FB9A31824 5BFF17C4E79FD56ADBF6DBF01BAF6453A81EBDCB38A5FC0FD0FF0646B3B0D199 13E2E59A1B5CAB6DE5329BE389BA0E2A2AB55CA40B711ED746C24F1E48892E76 6DACF7DA163CDC90CF076763008E7A899870CDED5A80758E6177BE6B93B07EB1 5800A3BF7B9AAC3FA825CE594EF5B7546B181375FA8F37608DF17856D2F8EBD5 6030A9E6F6BEAF224AD2AEF76D03B023E2FCB922CB8E3C6816AABB61FE6E4F83 F21B4935102C860ECA03DBEFCA461F0E5B93E5A8D18440BCF7D1D6252A24CB6E A64FDAC8B67C4888519AA368D9C4A8C08C7155DF5BACD75C5196C571C3C456C4 7CE8D90215FA6EE8CDD72C48740F7F5930EC3632DB63A9C8D2DA125088C0F05A 9FC83D16B7F53163F4EB6FF372C6C3115F1E68EB35967D11126EDEDF0BF80817 E68A698183B3EB0A207DB43786E1B9D289359D75AD5E465328CAA90E712C2962 AE2A466173F2FF30EB535A6054BB0B875DC8552C16B49DF17CF84D98D35497BD F55E273FCBB0C735899529A69990E09149FBD2DDE64B7FA8D50AE83925DF03C8 0B63EA158FBABB12A028803DA4B9DD6C48C0FEC469C4E730729F4BB420D5B003 1918B4AE9CF35CFD31E8E62A44C0484E3D00143BF1D330235E821E5CFEAB4D31 7CB4604DB1F310457FCF9075A3527279644D908DE847CCD00B6F50DBDEF91D3E 38238CAF550FDCABA2C3A46237218DCC5A09AFAF69997E1EBDA7EFE6FC99ECC8 5D4AFD5EE35FE2346BE79B499EC8EC436868154A947D13BC02C780EBA4B9E64F 3026F1BF5DC1F8D64FEA1281EA40B4BC355638A3A59BD9055BCBB232FA45EA0B B405131B64F105814019BC55466EE78E9E9ABB62DB30EA452F7EFD7196C76A85 15B2CFCD89922CADC0F392B0C54A231F3999AEFB53C24EB0C63B0C8A1A1ABB6B AAB2F93E5ECC7AB90EADA320E918106BAAFC1F8C425C617639984629018BA674 6FF4F338AC43E23BC3740542911C058D43A49A11CB3A0CC8E3088BB5BA6048D6 CC2AD250DE956BFBE83BB24C945C20D9C22E7105983F284EF478F9B68BFB0322 EEB7D62802CBAAEFF1C2332159DCC7243EA40CE15C734EA905E04C476B178B82 A08ABCB0B86A7330C75E62EE7844C9E22DDB013ADDF20AFE08122EE1B930A81D 806A0F8CC584CB7FF5F56F9B35E5FF78FD93E7E4A40C64537464EAA275FE88F4 461FC6A467C8A69B9A9FBC10D44AC1B753D313A8E7D97F5FAEB60F82855658D1 4DCEE043C8FCDFD8A29DD091F3BA55874A458B2B8989F35055C72FC411382361 9AADC717E602B48D7C9521D3971A6F7EB19D539445DDE9EFBC5B58FA9E5E426C 172C45CDA24985FC4632287FC3B15849DEB56F5A061993AB10A6BC59868534E6 69888175053108B77E4978D971B4EC57224C0F93EEA4C15AE92254140A94704E ED5666FC06C5341F643F779CC88A9E81891565C63B6F7F6286E664F4E0A48690 356DC96F1B98026C563700772485B83BFA06435D4E0793EF822F423C93FBACA0 E5D889D2B76771C6F0EE997A5DB43C2F6921132890406E3C33F6F159B14C5D78 7C151BDFFDD02B697315F191B5490073EB418A4FF2A398C68D44F0CD1B87CF9C B52F12728B72F94D752D23151196A256908135C87991E508B8906CE2539DCA8A 31F86809C8C6C18A09F6129BD7CDC6B37E76B648788056851F22BD3E3B5772FF EC01D822B57FFDB3BAE624F05531292641FD6A7E3666152D18F6C653048DD7D7 98A942C840C4A0FA662F260B21C64214152BB86F03662A330109C5AC0A5EBA30 C6201F558858130703DF76AF4FBBEE069BDE45C0D9467077D85FFED4F9BA9C61 AED87D67CDCA453A6528AC5BA153E1039D9CCC556CEA5CBB542265FF54A1B208 E0E13740E7E7C26AA00AEE909F8F3ADC2726081A744D8EF6BB711BF5F611A900 76F91C26A338DA13A7160A9F42410CCEB3190000D963D036FDA05A29F598EF40 8FAE6F8E7E6F50C99C3304A573501C13A00023085F057DF331E3354CBE65D573 CAE73BF15B3B96B502E0AAF2B4A86237E98A997AAEFFF4227D5A26E8972C48E7 761F430733E6EF8AB2D903C17FAFBFA21C25F8A0AC157D397BF3CC1AE7598F0A 2BE4FB46B29443CE57F41FD5F91122E9D86F903E94D5B55E2BB95949C156D138 89883BEFD634311F9280C7F028DCA6408D3A682DF5B55B9F7ABF08F019190F60 D39E4F0E80F0594235B09A5320109638B938633A2C196E4ED2B43DCD8643C3CF C6123B076B7F73352F906D96FDE0FBF50CCCA432712C574D5857838BAC30B485 D25024EB254A7EFE57D1DF0892C275CDB3DF77602F0FED0FAEBC644BCACA04B8 B424DB125E487794CAB36E01B5E1A26F5E1E97A739AA36D77A12F5B45338EB39 AF36CEBDED55DCBFCF497FD475FC6BAB5530AD6153C6BD982564EE8712185F1F D5EA7ADF4104661168A01994C1FD773A50C8AD6A3E4D332E4D59521BB8BBC6C3 866EB4AC3EA4532477E6CBF6BBF0860031C3B916AA25E3492670EA67F55CF4FD 207C684A0DDB6F4AD21B2909CBA71BCE2E762012B0927BA72367A6AE0AF87F73 756C9BC85E4EDE35317E2CCCD138C02C7A8013AFDC1A48C3A4BB8EF257BDEEA7 60E012F54D12D31D18DC59D5E526F12567B8688B4B67E16B56713870300016BD A3B9DA87FDC865246AF8E94316799110D86B1DDADB8A673402D4226C519C058A 1D1E5A5778584FC28AF12819B1924060BC4F54B1054EA6AB0149E04B8C4302D4 A56D8A347EB5D3D2A0E12CF7E35059BDB53D9FF6BD25F6D9619BC4669CFC1048 C6C9978B8751B840F27D82A69075832BE59F55C1737CBB1220FB8FF691FDBDF3 03BD7D225A9372AC221C38245E48320E1CCF898D9EEDD678E5B8C65B7F588321 1A3953EEB9B39EA9A8CB72DB08C3E9234DFFF5FDF9DF804C021D57E97DA7622B 97F4CB6E0EB640E0DC9EA15C5193F92A3A7565F4C7A4C9CC327F7CD2C44900AE D9E76FFE62FC37FA376E77131B566AE67C3E09DA80F198BBB995EE8FA47EEDB8 4B467C6C7DB8AEA745CF8C56B8BE56534E9C56FCB2B7006426DFE93D728FA4CF 94F131C549814E54ECE7C914C5FE8E4961D3437CE7475D03534B62650F551D97 201C794AA877445DBEB11C85ADF6119B05360700F8CEDE4766E3A1D7A35CDDC7 9ABF7C619E3868A39D1852DBE1EEAF5D7898C78323873AC005542B68C43C5000 CC58F675EB595F87C879694751494676465891E8A897158B481F11A171CCBBD7 29603F00210CFD7FF31FE3D273933ECC34AFBCC4108D9B76D9ECE63EA06CF939 4799092A54A749DACB82C1424E9879672C8BC084C360014C9C1B6D5D65C68AED 66CE329C3AD712C0A36BE7EF03FDF339CAA2E0336D387A693B1DFAB5D5164E31 14755A158168962C9B399F8F1DF3FF5060D7464D5071058C30C572A2BC7DEE53 84BD7614A4BEC4C84E18CF7EC81C811724463BD46CECA5FB57B0F55EAE20CC74 6AD815D1897B037C197D2456797B992C20C70B663BF99FE28C513B4E221C8E12 49779F8C0AE8517048ADDF7CDF0D698E3EFE60071C4997B7F5EF12B6CB65390C 224F13FBB99FFC034C0710F05019899689B6D3350BBA65C7CE7C2AB03D81B9A5 5F3D65E4D462DAB189006669F7390A78A1B8908A4C913B15DB8827DFF15BB9A4 A6037DDB643103B937257A7DAB025F09D53FBBC2BCB6B0BCD8D56B2B2784E498 1F6CF8470DCC892AD0CFE11578718948BABF9C1427084643B66BB9181094E29D 5FBE37708E1D8A6B7518A96876844CB66954227A7A6AF28DD075A462526DD5D6 40EECC56FA366106E55C7068997B54B7F0D03AC1AD45D28C67C7ECA99DBEDB1C E18A79C353113E2E05B837E703278B202112B1C69E42A69D64B62F0E7D8F7E5B C1F93F0F99EC20EF312046F4B0CD7DAB31E422070B629A7FA96583CF3F1519CD CF08806F40ACD7BB5C960F21E9DA7FB3C72CBA0801ADE83DF738A4EC94F2977D 2B95A166BA4AE28CAD1E37FBBF49D342CDB4DF615E2C5F3076313AC517C350DE 710F5D52DE31DF69864D29DABF14234DF13904BA4333B0D714EEA55CDD79DE45 FF5D64259C877191547076B1C7684CD252C0337BD9DF66CDC5DBAA4F3102F2E8 FE48385C55727B80D11F3BE0B7568AA9356FB2B180A6B1392D620DED02F0B736 5F4399FB9D32DFBC8ED942AD311C82250DA8BFE98D65 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMSY10 %!PS-AdobeFont-1.0: CMSY10 003.002 %%Title: CMSY10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMSY10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMSY10 known{/CMSY10 findfont dup/UniqueID known{dup /UniqueID get 5096651 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMSY10 def /FontBBox {-29 -960 1116 775 }readonly def /UniqueID 5096651 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMSY10.) readonly def /FullName (CMSY10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle -14.04 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 13 /circlecopyrt put dup 15 /bullet put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CD06DFE1BE899059C588357426D7A0 7B684C079A47D271426064AD18CB9750D8A986D1D67C1B2AEEF8CE785CC19C81 DE96489F740045C5E342F02DA1C9F9F3C167651E646F1A67CF379789E311EF91 511D0F605B045B279357D6FC8537C233E7AEE6A4FDBE73E75A39EB206D20A6F6 1021961B748D419EBEEB028B592124E174CA595C108E12725B9875544955CFFD 028B698EF742BC8C19F979E35B8E99CADDDDC89CC6C59733F2A24BC3AF36AD86 1319147A4A219ECB92D0D9F6228B51A97C29547000FCC8A581BE543D73F1FED4 3D08C53693138003C01E1D216B185179E1856E2A05AA6C66AABB68B7E4409021 91AA9D8E4C5FBBDA55F1BB6BC679EABA06BE9795DB920A6343CE934B04D75DF2 E0C30B8FD2E475FE0D66D4AA65821864C7DD6AC9939A04094EEA832EAD33DB7A 11EE8D595FB0E543D0E80D31D584B97879B3C7B4A85CC6358A41342D70AD0B97 C14123421FE8A7D131FB0D03900B392FDA0ABAFC25E946D2251F150EC595E857 D17AE424DB76B431366086F377B2A0EEFD3909E3FA35E51886FC318989C1EF20 B6F5990F1D39C22127F0A47BC8461F3AFDF87D9BDA4B6C1D1CFD7513F1E3C3D3 93BEF764AA832316343F9FE869A720E4AA87AE76FA87A833BBC5892DE05B867F 10FA225E233BCFA9BB51F46A6DF22ADCEACC01C3CD1F54C9AEFA25E92EFAC00D 7E2BA427C25483BA42A199F4D2E43DFCE79A7156F7417ACF78E41FCA91E6C9EF B933450D851B73A6AB6AEA7EE4C710CB5C14270D1674FA334686653793FCB31B 491E870D3C2BC654D2C1DE463EC9BA29D7371AA1078800EF93D3F66263A2EBBB F5723697BF7448BD0D2E301544BECF497FD475B85DFEF52AF4F8F8BE445CABE6 019318806D10C5952157FF8F8286C1EE701545C8F60EFA854EAE66835A2046A6 915D395F1E0366EFE0C0391583FE001FF16D82A2E2DA5F57754A2C6F69306E36 356ECF8EFC3F1188AD6FCD2427E0580C97A5B69B4E0E09B85EEDE142F5ADD2F0 5DE51D6DB72B127412A0D57106C19CA493048A4F815129ABE767D51715B1515D 9C21067CB5BC88741B7298C83EAE36A866DFA87D8981F179B1C31292F56BBB64 3C430779468AAF07C8A8B4934E1E775FE3F35186BD1FA6EE3689C1C750678AF1 FBF9B23195A124C5C991FE670AC0C86FD39D2B07B9A319E74EFD498B45820252 720ECDF7294F7B0B137CEB86D33BFCEB8606985A3260FD669E461C8BE94216C5 D434FD8854F44EE66E5A289A9F9E32BC36AF645D53F96652602BAED418C8D726 BD04A1B4617551FE4DEF54083D414F7DCE004E6BB2DC9C2EF7CE232B254BA2C5 7DCBD36C2072ED46FF711F121A701E2284BF1B718B3164382B8F453D68FA0377 DFE106503B8401D4DB87F5402A3AC9A442FA060B0610A9524D530C7157C26B56 AC970FCC1D5655FFFFA39246E6420CF97D08ADFB7B05822679BD40C638DDF0E7 A97BFE8918B611A145AC965C203F1428812F9D340AF499B3A915B22BE798594E 0F520109FC81E452180AE45B170FF999C5FC2761C6CECD8742A5A6FC97F16743 AD4EFCC6572A6D3F3E4E330C5CB2FF6FEA48A5B64DD3DBE943BD9918D4A18E18 CBCF598AEFBB6AB3CD2CBC9BFD6099272F6543F3E532E0E21E614BD2880B1023 0AC234CB705827BF016DB84E00E8C255FDEFA0101A842929540B7B4AA8A089BD 5EFF05B72356B6BC3727817823B5CDBB1B963103000D7F2A4E2A1472FC3E614B 5CBCB6D6D784023173DEFEBFA8F9ED87EC1A0A9EE98CA59CFC964CF943DC683F E9E00DA718C4425A705A69D99988EC6F152525C790912C2E46A2381A569424AB 54DF4798BC2D7E7A361E7991641D4B756CE2A7FF4A2848927092C59C2C4B8809 E13AB84FB6B111E680D7FB9F2FFC2C5C66B0B501E4447C2E46C10E2F6124476F A140C404CFE2DC9E0199BF61E035CEB481D438139A9630934E541D261FFD2906 4CAD99E20655FA746AFB81EDBB5601F5FD6B1D6832A01D585E2C55053F6A7378 4DAACCAC7608DBDADAAE732D66B3E7F87E79756337C1A961E53A4651BE7C77F4 038B89C87F650C54A2A90EB7F1D525BB353F33318551EE8D84A6A83C718EA5A4 B2AC0F7306B1E095819B87015A90CA3ED739B09061782C28CDB36BA4BD5E5308 5CBB70414E4112193DAC4A1FA30996327230D1E021F3CD8115E12D239D93FFDC B645910EB29E40D830E7BAF2DB255FD7C4E776557BB38157917D993EAC245837 A3B515147043574157B8342D829C7228CCEA843ABC89D1785A9672A5923FC4CD 2F3FF27E6FCACF84E2D3136CA2C0FD3EF1EE7354CD04C38B5FB874553646ED2D CEDF7E362EADD04B18051F20A8FB0DE18E152385B9D05F98A3A7EF177824E246 455ABE69E2F700EB78185CCFC07E3B4C6FA301112528D977367D30D0D5D59EDE FAEB706DDC970A9E296236C725B2B55B09B9C336B8E23CBA5FB8692D56F33B03 16294E5FC7FAA42E96395A57CE51CA8DDD77442F142E2E576B778373FB31C81C 16840BB422CA827E30A81829648BDF1CA36700EA32AD888D097C1FE0A05B2D9F 483AEE40269DF09AF0D1AD3DF80C45DDC59C2A03FBB661C79B87853737C6D352 67626B657321B16198DBD6DB98A092F17878AE4698121E1006E53D6F9B0A3BE2 3FB68828EF854A0CDBAA68B37ABCA6AD4A3D809AAF0BAB1697A81FE59C98C472 1E33CD70A75A22C249DD11D76C2575ED3370A25892A16D2FD569CDA70C130770 93F493C7D47D6F9A5424A7A542BAD726BFC3AB225DCEBBE6AC4BE006F8C7C0EA 051424B08305BF2D951AB2986AAFEA04E078CA79B399585BFF0F1ADCED02E15B 8765EB6BF6A8E4D0901EFF2C3AA104924EAD9637A35D877E0C51A3C37DA78CD4 8643C8CE6DCDDE3F116A6C2390F948E5371BEB5AD2E87B41C5F01FB5C196C436 6E256A88D082E3F46E4EFFBF605B2EFF1E9D9AD5EE4DDC323A137CD9451EDEE0 06F7D82898D71FAF2362C0FCF1F726F97F820305B7CE20728CA08C63575083A7 84BA28B7DE2B916432475510E274C12FFD1660A717F51DACFDF0A102D85224E0 D6DB607BB72569ABB8A7BC6A10354CBBC01732EFE35B72062DF269CB25EA3DE6 DC603B04C90C5912D2C38D7A5ACDCDD3F6F116D884F0D8C528F69D5D47BA20DB 0A9E585C7D8CC3C324FE8A1DF150279F7E8FB43BDB720E624E5E9918032C02CD 8020636AE5C38DA2484B7F4B34163E0D0A561B43B80E97746DC05C871AB620EC C5D47101ECED4A7E25F291184BEF8B80024AA7BB456C1B83A907652B331DEA34 754226C39C6889EBEEFDAD081E01EF8FE47751987667836FDE4C8BB8A3FD4406 1E643B4EA37BD370734D1A2DB17C2F4B74B4ED75098B433601F75A88C9A37A05 CCB157EF6E32023BFA33973F3E655A4D58289136996FCFA61EEABD70791B6523 1FF5DE71AB8A17038923118A5EED8D59C4C58D246FFA9BB26472346B40C8741F 153D19CAFF20DD2A86C6DB89154A630FB1761929FC3F0448EE2F089C1C953E02 905BA8DE75D101A982A611056C4B237596C10951DD98BAB838B742D3CF7DE718 617DB72E5268583223E37E029D1C8FD3F1D21690151F76B76C52C725CA135CA2 8666553E863CE188BFC9B99AF56AC2DB5BFEBEB12FB563D00244EB89E478657A 98AF2E1223C1ABC25A4500E8119B86EB3C26B8A2F3505A3E5610F89B7C34E278 53FA0A54A7F46D84A35EFEC36AE660A9E3C37EE3864106702DE5AF6C45ABF64B 888A4A51323138CE77DB935576FE6B4824B6942DF80625098CE1B5B32B234F1D 052A9D6039697118A9D793793775D8729D8574A2E74D7109C7B7E23BC5E2E87A CA8E019203952A4892544E1AD3D4EDD22971611358AB230E9A2ABDF00A288501 A01B67C42B33F6B78C39562DB50F4663B922D9BE0D8A150311AE44B83C1F129F 07337323E9A23211EE58E16043E127C6F9574019179F5635648A011266677B56 B5D0201A4E1470B952A1579B57AB2329CD4C615395023C653F784D36B5EE3672 10D191F29EA508CE84763CA4CE7C2C5229E38E241255A5CABCD6C7CBAED901A2 CA53B5E24111921CDDF83578D33D463D70EDACA0E470D8F592303FB6BFD68B4D 3F3BE2D7C5EC8BBF10C90111A33E205F2649B56E8443F6FAA6C721C66575AE12 D4C40F1F46CF9E9DA675AB5D5840D938780CD9E4AD6736ECBEB6A4397613586F 849B51048AC5F9405E03E14540A5E5582F61CDCDB57EDDF95A8C6705F433EE16 648F098C03DED8A2AD94AE3DE202D629B9422ABB031318D48F2C85F9DBFA17BE 84708AA3B6C9F81F4508F7A5CB7B6646AB8722ECF817877B77D473F577556DAA 2BA0ABACFCF5DEA7498C47328E873019A956FBB250FD9D8885D21D368FA70CBD 2709D2DA44EE7A9869963EAB48789541906DE49FAE785ECE1F18A22C7E7ED204 9768896B78E9EB7A2BD6EEC1B26083940656ECD689D92942CC8AF05CBF82AED0 B45A7DF4DD7AA6526FB597322560B9ED3087A65B5EEF1371C328A021411BFE3B D9B5088B2F1AAE381FFED52D2D1E02CD0DA78683E3B06171CBE94BE9760005D7 135893D7CC2DB097F6AC664D9594CF1C650F84DA80D2EDE04802DBA33CE3DAFE EB7A37E8AEFA4FDA6252FF21E8673DD98E67124D5DBC7BACF361E57077B71939 C1D1FB923E4E35C075CD1BCBE0E80DAEA1320D55B43EAB45D9B26C366B278782 7519FDC482D98839BF0DF2E7C3A56A1C1A3FC0E57A75CA414F6536C1FE8EB7A0 4ADFEE3BEDA0F53BE8CF5F64230784A797133E8CD46BCCB3BF38BCE38A73CCE2 9E073ADE792F7128231DDD1F63E6156ADB2609C200837C2E8A2D93D2A7BC9171 050C709A71E44E32B1B03C92EB5CF1D3BAB1C38E027DC4ED9AED633D98CD7486 3F773ACF8AE332631CF2ABE6D606607593FE862ADE31803964E3F4DC3CE3A271 C76BDD95C87CDB3B87BC26FC7A16D567EEC62E6FF0D471B4853DB8A94D4CACF8 843824F818083F10E88D52FC4253E8203292CB40F1414AE7E51DD7347007C342 CD70E8E9F2D2A13D71213B841DDEAAB208AD9EA644591C15DEB084165F9DF24B B91D3BBEEC2E34E38EF16A0C3F00700A7BDCBBFED2EC0D09601AD6538288DB50 3478B051B5E16B604A0341FE621A58718D960D699D3FAD284310DCF54EB13175 19A75A539EE98E804AEA24689D3540F0F12951A3C01FACCE9A7BAF4D0DAFA946 FF65A4D2A4C39969607272C6886F44E90ABE27CA3A1F12A29D9B32E60E8E34F0 17C5FE43D0E69A99A922D98909B2BBCD145E59A5E7F5426B3988F73B09A525F6 8BD4915663C1301323180E760BE81CB874B020FDA3AE63340E4261E4F3E4949B CC0966BDC4426190BE9F5D77F76A72AD925662E5FE1CEF9CCAB68F0BD33DA003 F11EB91AC4502FBD6AE48DA0F9D07C35B96B103E379B8A83A05FE728F1716194 1F650F75BEBADB2E3810388F3E2DC7B19F1BA9E32925F2FD9F19F4E8701F3E4E 4069125D7C401144740691E7A460021A47B1E27997FC1DDABEC5BD0EE0B20194 2D579C7D6727AA124083242BDA46D8E116E2751C5F298851A62B60AEBE82A929 9B9F2492BA35690D1EFD16215B8EF14E7A3803B93C28FA41D971B05B6AF3B593 E74AD1E68A5FCE12A86E63B78BFEA87D3949FD164F12277A4688BE96356791CB 8671C49365608F3EDECC109321AF92B4C29CAF073DA3A7D73E913D0D83FAC5EB BD884D4C686056404DAAAD6F82F94F803FA1FB0DD8908D1DF08FB87A8BB83027 04DE0CBB1C6FEB6B517FBD7CF065120079E608CE41893C2BC96A347826CCDFD5 C69E161217F2127A59F1A6F22037641613F191F22D5B4CDCBCC2EE5615623404 ABA7BE6C5FE475481615B2AC1A2412E54688DD21E44CC9AF5F16E634AFCA389C 4D740B7B51BB141BFAD1080E7C726C1606A28ED492E6BDE9F800EFACD1513909 84E98CEB6A0B7A2A6F3E1D1DCC3B2552795E0932673E59ECC56DDD37A1D52BA6 C3F0E905978AB568941A163F4CE3AAB5C5B16F86016EC47BA6F3F7AAAA77C3B6 09C8C3ABDB6D514A76ECD37C37AA88B5860630B3406B494F7725975596F84777 D9CF48686EC9C5DBCC1D78513F591C7C10AB9D153B3D41426B7BF668B0D04503 56BCB686258462C1DC61095724B9F3312316262FD7C1AEC6E54DE7E5A7BD8EFF 035299B8FD8A4A7B0F51404F4A760F4D8B4C0FB7A32FA4B2383AB6E9C78FDEDB FE6A5788D38A6701B123630C2A6D820A684166FBBC83DB17069494FBD411B333 CB37E2491C5BD035A33867A6D3A3D420CC31ACF43AA07182CAAE67E40EC63663 B678F71D4C6E0EC3A0AAF904CD3AA66E0DE5E3CDE049E94249B39A1C06E3CE9A F974B2484BB2CDA14282B9511E505B3C89F9C802218AE40D1A7541335C5736DD CD565D4B9F4CC78F3A393737EDB4FBD0DA299E21CCFEBA5478EEF013F0552A8B 0BB11FF46CCDB784E8BDCF730A16363E66572049E42C695886EAB42A9AD9094C B635DF4B5B9BD9B9AE8455DFA3EEFC77653190F9A8B1E93B7281C2A21EA7DDA9 33484745BDF7E3DD63C7AC66C286C9A5A698A5E4D7A91710B7FF943FB23609B6 4B442F83CB795788FAB5E9CF3F75D5487DA26170E4561C7941C910B088C3B86D F844B0F340CF82786A3FCF347048463EBD2006281A816627065DDA6CD4D3AC5E 2024BC96C7D896381BBB567951E7A1F29D4E95351298B000D29E5F3D0448CB5A CFDAE1BADE9403B90371C3A07D208948AFA022A69C519434B6813086ADF518D5 88E0B92072A44BA1B3EBB630A13B7AB90992E85B6D67361C8D96F3E0D826FF37 17B67E4B1EB7BADFD98D7F4FD17BECE740ADF13C141EBF0A91CB105DABB32FE0 55086D56A0D358841D15FD349E6B95512E4EDF4C430216FF85C2ABE995E4B40A A6044CC8820AD885C07E052B3F91C2E9A1D163BFFD210F7BE95B923E2500DB50 2075106DB541C267BD450B25B670CE80BCD068D4DBFF2D82634175B61FBD3BC3 406131F44C7D6F18D375D1F2270829DDF29DC14DBB58A30AC193245D18DE91F8 AB88AB548D8138605BB5A50073295534E314366E26665AE70482B890E4101D6B 60E4F3B37ABCA1346DAAE8FDB8DD9C832EFF3E73BA470E2BACE7B8515CB43388 C27AF99FF9322175CF8D4947E6B3846AFF5163E972156847F58A66660EC8A3A6 5FB47C9F637B4CBB4C73B6A080B0CF6FD1E9665E92032540570FFCC747C67C50 822811AADC404BC7ECD1673E8AA6C3A2F1D82F39430B58C29145E2F1B679C46E 94EDC711883F1E4EA84117A54757E8895A40401A26E1437B39A2F65CAADD6E02 D71FA8AF7453668DC613F326A3344F74AD7AC67569AF399385500ABDA5EDD3BA 343CC5EDD4B558467626850E752B9959FEF1454E53E7A3DCBC2255AD8F6AB4FE 894455118A61C58840CB68A925ACCAD75CEACE863D806916228F0614191A1CD5 DC9BAE256018615AA3725834519449B0A88B4F396654E74099C007930ADB1327 DD119BF799FE3B0B223E1EDA04FE2DA7A1C879143E1C33B6C6344F4BA033AD6F 8E88C33DEF1977796B454BAB2494C930F492A518E8198C708A75FFEF8C49C324 A718AB59B889DED521229E741FFE53F98EBE88B0405AD523254FD3FA4BBE96DA DA1C27C1C979A0DD4E61C3B1F4C4DE01E42F1C4435EECFC02D97994BC8AF5270 E7CB1458D76ED0229C5FFB4A23B8716018F9050970895D51722CDE8F2EA3D947 DFF374D84915D5C5D16463A6FFCD079D1ED416C4347BF831FF0C4ADFB61295DC 4D5785BB0852BF472CFC97EC174491CAF961AB90629F055E75DAA6D9898E8653 5BCF379816CAE46FEA62E7BE8E9B953466E51828172C4DBD0E1BBAD1CE28B5B1 02B3E36403BE80B49A47446A6677FCED438F01D60EB10F478C89528FA337D0D8 88D3FC123C076507ACDAF783A9A6E24ED73BF24B6E0F11C13E532DE5F70B15A0 657F5ED27D204449A841ED19E01432CFFE928E921321113780D036D34F2797DE D4459CFD15BB117B5C9745EF3CD2B296D91FAD48C80B136D94476967E255F808 AD2B5D522ADEC64176833756510391815A1D4A8DA1D0AEE7CAD36A1D161889F2 3347D5B6BC503300FDDD48F594F391D5FB42C42113C538E707C16EE24A3F375E 7C506E8F49CE50FF9DEF3B4A4C1BEB3848EAA3477349833BA22D2A9012287D8B A8C4CB4307A1188ACC0E6E9338E1559BE5FAFF381BD82A6C71C267409468B3C0 2C1A29F4281D565836EAE57F680490FEA4A952FF64C8CD11C377C294DCD1EC25 CEFB2B6DCE959D0208F85B6E32E9B44FD455F9B134A5306D95EA29F37BB8B86D 9E592159338E1293F449380E13C21AE42E6861DBBF4AE99A7469F871A3940835 FFBE7F316FA9BB834EAB18625F0960352C75105A92F175850289B1AE177E0D52 E43635C41B85F75CFB706BC92B0BF90367E180A141703EF69FD064C0FA34618A 5D9684895C3EF50F4AAF6E0F78D483280942D3F9C1A18FE7FA657928477AAC74 ABCC21B622EBE2C0AD9EDEDAEDAA9A6E3D96E01CC837668FAC44FB52307CE618 BE8399078154C80E7DB52F0CD16717DC59203497E89D69B390E9966C19D36188 E47270673493F7DFC14C72B5B4737AD52783C573B5F12D50E9D54AD65C2C310C 72BAF2A8ADAD81ACF0C49DF971775F2DB7404FC9AD6B30C947A348B28B0C042F CD9756359BA6942D643D8B7BC54E6047DFE25215CE5EE74CC3076975A3F324DF E8D80F42AE4A1C00B155FE56A61CCC09924E4D7DA7EE07987C2EF9E91AED55CF 524C54E553030B5F 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont %%BeginFont: CMR10 %!PS-AdobeFont-1.0: CMR10 003.002 %%Title: CMR10 %Version: 003.002 %%CreationDate: Mon Jul 13 16:17:00 2009 %%Creator: David M. Jones %Copyright: Copyright (c) 1997, 2009 American Mathematical Society %Copyright: (), with Reserved Font Name CMR10. % This Font Software is licensed under the SIL Open Font License, Version 1.1. % This license is in the accompanying file OFL.txt, and is also % available with a FAQ at: http://scripts.sil.org/OFL. %%EndComments FontDirectory/CMR10 known{/CMR10 findfont dup/UniqueID known{dup /UniqueID get 5000793 eq exch/FontType get 1 eq and}{pop false}ifelse {save true}{false}ifelse}{false}ifelse 11 dict begin /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0 ]readonly def /FontName /CMR10 def /FontBBox {-40 -250 1009 750 }readonly def /UniqueID 5000793 def /PaintType 0 def /FontInfo 9 dict dup begin /version (003.002) readonly def /Notice (Copyright \050c\051 1997, 2009 American Mathematical Society \050\051, with Reserved Font Name CMR10.) readonly def /FullName (CMR10) readonly def /FamilyName (Computer Modern) readonly def /Weight (Medium) readonly def /ItalicAngle 0 def /isFixedPitch false def /UnderlinePosition -100 def /UnderlineThickness 50 def end readonly def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for dup 11 /ff put dup 12 /fi put dup 13 /fl put dup 14 /ffi put dup 33 /exclam put dup 34 /quotedblright put dup 35 /numbersign put dup 39 /quoteright put dup 40 /parenleft put dup 41 /parenright put dup 42 /asterisk put dup 44 /comma put dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put dup 49 /one put dup 50 /two put dup 51 /three put dup 52 /four put dup 53 /five put dup 54 /six put dup 55 /seven put dup 56 /eight put dup 57 /nine put dup 58 /colon put dup 59 /semicolon put dup 61 /equal put dup 63 /question put dup 65 /A put dup 66 /B put dup 67 /C put dup 68 /D put dup 69 /E put dup 70 /F put dup 71 /G put dup 72 /H put dup 73 /I put dup 74 /J put dup 75 /K put dup 76 /L put dup 77 /M put dup 78 /N put dup 79 /O put dup 80 /P put dup 81 /Q put dup 82 /R put dup 83 /S put dup 84 /T put dup 85 /U put dup 86 /V put dup 87 /W put dup 88 /X put dup 89 /Y put dup 90 /Z put dup 91 /bracketleft put dup 92 /quotedblleft put dup 93 /bracketright put dup 96 /quoteleft put dup 97 /a put dup 98 /b put dup 99 /c put dup 100 /d put dup 101 /e put dup 102 /f put dup 103 /g put dup 104 /h put dup 105 /i put dup 106 /j put dup 107 /k put dup 108 /l put dup 109 /m put dup 110 /n put dup 111 /o put dup 112 /p put dup 113 /q put dup 114 /r put dup 115 /s put dup 116 /t put dup 117 /u put dup 118 /v put dup 119 /w put dup 120 /x put dup 121 /y put dup 122 /z put dup 123 /endash put dup 124 /emdash put readonly def currentdict end currentfile eexec D9D66F633B846AB284BCF8B0411B772DE5CE3DD325E55798292D7BD972BD75FA 0E079529AF9C82DF72F64195C9C210DCE34528F540DA1FFD7BEBB9B40787BA93 51BBFB7CFC5F9152D1E5BB0AD8D016C6CFA4EB41B3C51D091C2D5440E67CFD71 7C56816B03B901BF4A25A07175380E50A213F877C44778B3C5AADBCC86D6E551 E6AF364B0BFCAAD22D8D558C5C81A7D425A1629DD5182206742D1D082A12F078 0FD4F5F6D3129FCFFF1F4A912B0A7DEC8D33A57B5AE0328EF9D57ADDAC543273 C01924195A181D03F5054A93B71E5065F8D92FE23794D2DB9B8591E5F01442D8 569672CF86B91C3F79C5DDC97C190EE0082814A5B5A2A5E77C790F087E729079 24A5AC880DDED58334DD5E8DC6A0B2BD4F04B17334A74BF8FF5D88B7B678A04A 2255C050CB39A389106B0C672A1912AFA86A49EFD02E61E6509E50EE35E67944 8FC63D91C3D2794B49A0C2993832BC4CDC8F7BD7575AD61BCDF42E2E421AA93E 3FF9E4FAD980256D8B377043A07FC75D6169338028692CCA8CD1FE92FD60AD26 D57B7519B80A8F8DCE9CEE5CDF720AF268D3C14099498A843D76E3B6C0328F24 D36EFE7F5C4E5B5C612786200C8DE3A41EE5F1FFAF4097653CFCDC8F4FD32E0B 03EDB3E413283B9EFB0AC33B055617005BC9B0057FD68C52D1B0E67F0C571685 767F2AA85ADE4E0104A1C777733D5E318A22A9944336E5B98D965E50D31F357A 8B6EA5A0EA98E1B027CE68C2EDB149EDDD04ED74A1B3D206D471A0C11C11449B DE190BBFEBC08C9E1B7513B43DA3134D6B11A2516E6E86B67F68C970A320D05E 94FEC57FB347606DF89989C33482BD09D011C55AA920319E7B26A205D3D0F004 22466F09C0482A164CFB27EF6ED2B040ECCC3DCAF345B5A73676F193D43123B7 72FD6CFC5E37930E61EBD5A6307E4DE70194E6384EC0D79DB6AD86D3B319A31C 8B0589D0FE28241D8ACE280D0530EE99C80723E560BB72AE9D53F4713181F491 344B06D3027BA4E9E94D4305BE1D817197C54C8FF56CD6964165F6448ECC8A8A 64B48B4F0FD69299A137589E2491A283509B21A3A5772F75B7602A9F60AE559B 07A58436D04222C73EAEA72DE9A5A441F88D27C11F4F91255EFE280E91A4ACAC 1E98A4E5E6C57B9AE86FD218C3CD8F24A4104156A80F13821384E529783C52C8 78B94AB3A0096090867ED32E8A30980E737922037F75F062BD83BF4F5929BC51 CC22AEE2DBBAAA001CFFBFF41D258424FAD888FFF1BEAB796A44E3126159E120 7E4025C676CF94888A1971AEF8B6764B3AF4A92D36FAF6FC56FD049710EE3782 BC2CD84FE2473F133BE03C1346B875463F126DCAB15C7A9BCC9A727D23611462 4E8D2BFD2466600285D79518712B8681ABCD69608E6AA9578F7BD771EC36E01A 5A17BC17E375020ECA59B43790ABEB9DF5F4FBBEF807E5699EFEAC563E1ACC5D EFA336E75DE6D8248E9381BB110884FDC89C2F9A41EBBC9A8A1F98E6A41F68BE EE30E25CA148C1EFF42DFF8C214A6537AB11F260B8C329A4947B5FC8DC9C5622 4DF7BF4FBFB00380D47BABB03BC30627AA74103E553F55278F538EDD8C1E64CE 0F1398CA0AB5A86630139B4A7E8FC02804CAFF3830114640AE50D2FDA3B561B5 C63AD7EE3347804CBB40FB1E77A6C89735DD870351C3A1811591AB493251B904 314F65791963C0412377C1D02362C5E9655F1C3D4803CD379A8EF24C48218C2E DF1165840462BF37DDE1B8D5FF09FA2C3B261E2F1A65ECFBE5D4EAD43B52C029 EEB3948CB8A252CBAF545C8FA1C31E920E23A12DD7222CEF2D2A513BD758EA13 DA33BF5FBF1D734653EB83DA2D374A5B9A0CE316F24EE375D6DF6BDA49954C2E DB25A88821193636119D469BA66E5DAA9C92520FD4F84426A4E54273FA469084 7517817A6EE3E21176D333825E88046F50B3CF6938AF9BA79A2F51398239EB91 1A2D07F7FCD948427FF62F40FF95E39FE1A1AA8451411563FD5388472251C155 69BDE9283B41900B21EB1190D06E6B13B7794FED020D2C1BDD205AE77B084BCE EF628249398B496DE85B406FC2E1939EF00DFC84C07E26CF72EC401BAAE756E5 7F6673216E7560D1C2A723CB405EE5CA474A07F61B81F8836482F73DC9516D67 CE0CB770EAD755B6B356198B4B97EBB29C63456953270CCC8D5650C1D006E69D 38DE2DFEAB27DAD50A817F0D645D30AF5B75A7B53CBD3D2B8D87BD0A7E525AF3 22F7ADDFCE31716914C2318260C2E2B4664893921B68C5A93334A361D94A759C 0D7B146D6FD94F0442D672BDA0F6432E18F3C5DFA37ADA378D95B75F413C9ED1 BB5C606A3EC7DFB3F796F59B0478C13FD1900381EFE0BB5242D5B5D34D03AF1D 4BDC93EAF8020E26CA23C8B0E7DDEBBC6762A557067A4CE05A524188A8F02E2F 3625DA38DFCF381727887F5646A3995A8A38A5FB1E5D5EBB395FDD0B7C8E71AD B48EEDB62AB2CE99D121435EFBBFCEEA69AE9ED8238B60CC7288DE33C766CDFE 15B767B4AE2E6CE0965E77272AC9F86023DA620548CFAC85BC751C44218A29C9 849F1C2DCBDFAD895B54E51A569952ED50F82DC8A19F367E7E44643854EFD6B3 FCAEB04E55E4661C82D31E2932611748480EF61FB2FBFB0CFB940BEA81AFCD84 4C6A6332D7A600170E38A8EAFCD4F93DC153C43175434C86BC747348FAC61B76 1FEC9027C1A193E55C80F1F20B5317AA0A05AAA36AE235F6E49F06E570FEE798 84857D7552EA92EF3EFAD52DE39C2F8F43C59E3A957B7B926FC95FC4B60186DF 7F3523EE2AB74E294C8C4BCD8B4975E84849E0FBDA6C0B0F24A636DFA578B122 CF97BC5089E21E9F5298D1C9F30CB8BAFF6A3A11BB4D9A0A5CF2B18D055C44CA 4FD4D8FE1AF3630907DE7E585AA811F9CD11FB2C8FC791851D651009FA5DF20B 3C33FD2FF848A9E3F5652BD294965A332DD3F246C91B0ADA34017FF2451D1394 F9C3C95AAC6EC8062BE98E8914D51DA6A164AD13938693D446044859D03A949D F9AC5DF4A000CDA98BB516D762CB9F6D44B5268FD0C26E88BC4A760C0F75A140 DEBDECA4F511128B7D2805872160C55236F0A0FA7637FF0D4E94AC079CD3C8A7 D03A5A56F26B0438B577C46011A10532FEBCAD14FBD6032E224F45691A726886 56F305231EB2FCDF59C8BBFCB5DBD2D093A0E84D62AC93A2312CA69295E937C4 8DBA1802B85F54B5E7E6D6216A918F911FF705D3B5CF055F1D873B96283A0B53 59344D910CD396D883F6F7836BA65FAB4393A773A8F6BC298069E5BA38210EED 49C9D920F718E3FCE692527DC7CCE6963BF744F2C91BC5952564196D60574E86 87A0FAB21F2DB2BD5A51D7FBD8FC19946D24E5A228462C4772F978E650ADCE3B 8D66B9C21279C531CA1C3A8ECE3420BB65837287A7222CC3673A2A5F8BBFDB60 C719CD073EF9A23675198462C7C87B24CC92D6AEE5C25AC63855CC3281494342 D28F3D2FDE0C183486769A4FD5B0143193D31FCB2C2A14E487BBD96D0BADBB64 D1B56021C363A795BF10E2DB448261C363A54A4AC1182B470C457AA82DF3F5D1 F4B329806141EBD53CAE309319B94133D7EBDC2D0453A905ADD207364371E178 0A95C2686E3B34C4A978BFC0EE968C39ABA00889BC5149162C2B54483D44FD3B 5CFF41F611C7E03B94945F414560E874D7CF27FFD0630890D7D7EA66CBD15448 229059E1C436BB33D69552B5367AB5D53591C4678D0C704DD3EA23F5D9E8A7AC 17D003C19E333E726FFFA2961F33C70F429085F7BFE3E2510F59B78F58B19CB4 01B48E184BAD9020FECCE3AF52048A056981DAEA02AE78197E65855DDB170616 F54278395D9EA50DC83761AE759F9CDEF9E1948E7002414FC05286ED793E6662 3347F2A9AF8917493D7305B92CF93E8E9185F70015F5594084298A6C2F9FD3C0 689F262AC9FEDC9B89577ECDE92F08D3142209FBCE7B5C0A840CC767BCA56C20 4E4E545E2BE4D21C53855CEE4CD0AB35D1A604C0FFFF77DBAE4289752276559F A05FEE65F45ECAF44E95E23FAB6052195C7948AF0B1126482D4E02D72BF8AB03 DE0F1A632F7672AD9DDE70EDC82AA993678A82BEAD0BC2649C4707FD8509810D 364B5C6FE0E10772E95288C622C2F06C634F4DF8C7FD1432BC9310D5F24FEE3F 7AB324863D6DABAA1576E70643CA79EF4D7DF4105093D66CEE0F3B87D2164A7F 26EA05F5C4645B22D3E1BFD2219657712C168FD90DE801FB0F32759E80DEC1E1 43CEEB19FED12D757205043FC98FEC62D6A8D8B97BC083B4A0E985AF7850D6FD 8716B9957C1C35A0675BC53DF672C425C79F43FDABAEE7D63F092CF271C9A9D7 C41F40C4189510987887942E60A412B3EEC84C9A6E1AC7D54D528F5604B72C08 94B7882621A5BF1F325B92FF96B80878CC550D1AE4D8196E41CB1251856609A5 C4D3BD05A922D0D45E039D9450DEF8490A3E924E41434194910BF60BA1B08BE1 B41824345627745541A4F1703E956328F6227D11C74946B38CFB096139979E56 4E723B889B44C6D78673868C89912F8B4F0B4B485F1587A637B630F92E6072D5 7F3B44EA6FD96BBD4FC28A6C1D90805E3BE3E42A7BC9C880762966C55BC04E01 204D083AE976FAE6F37C94F27E68F8C0F28D52B17F6C0FD7C9150701FD78F8CE B8E8DC9260E3974005EB5CA728171F482D765016C94D4ADFE4A42EF42212BC56 7E4EEEE8B0D2A7856CD4E44F55C0BAB762F92CB8D64C17022D4BF3A47C12F5E6 279FC23101FEE93753653CE8CEDC3B75C9CCB29BF1D4554C6120DE8EE750FCBB E38B5D915206974962E320362E59B3F21B3AB1875703191043D03284D4467346 CFF2F98CEB4845B73ED8E003E0DC94251B73E13A9B51A3F1430BCF6A21EB9B7A 65E17FA411F53BE6432F1506232B8159E008FA257F884A4A01AC53BE91754D78 BF14A5B0FBFB9C31BF4908355F8A762052968DF526D118708CCB0B7CB5BEE285 6DAB6CD2E3934178E60BECB11AAB5478623CF6C50C92F8BB5D1A583609028FA7 B8A53B791BDC9EF76A124F3F7641857E4BEA0837CB36176EC9A522EA7F41B8D3 63C37D1145367BD300F17B54522A834BBB74DE12BF9EB26ACE6F24A046D58F89 4D4B7DF74875F1A0C1C9D97BE0849593D7B398EB4B00BEBC8C8D1497B6EF831A A35380FFB7F1AFA4D888AA52C9482E8B1755CC209905F98F40D95B44D4DCBCB6 67423D1BC2F3560FF0A8B4F0CAC352A4EE2C1D946E45AAEC8A6AD40303F3382C DF0756BFA3B1ED64C169E56ED1C760F2FF0E24DC5C9F41306EF8D2628153D30A 5DCB0791126BEFD4947D7EF08301FE015F2B0008DFFCBF9F2D4D859FD43EC7D9 C5BE237E9BF6665B7B1BEBB362F0C0C3A8D86010B9C97FA741C97C2E0513386C 9C26C235B14DD2A58BFDAC7B5F63DB4DA6D5D37D0098175A9071590E1DF66A3D B8173A047C29D7D35557F06132CC920B5460B8AFC11D23D09A4E45D089F5EB51 963FA1A6256E359D485107FD143B2BF21FDE9DA5744BC2615E86C31C89470CF0 D06C6397D9FCCB316EA9989430240759D2C4945D941F159FC02327F34B042BAB B5C3A47C78E8C1A6FBCD396B1A51CC4B020B8AD401841EDABACECDB482D6EC5B 72D2BFEB4556720FADD49D07307C8B22ACB7E310CA4151A85C71EEF70E8D15DE B3B00F26E0E166C14647A65ADA228A3D1C89025BE059306565DB1B1EFC37D358 8C1EB024254AFD049BA977BD4C2C605050E17940A89D0D4C5D963E792320F5DB 3706682E03D25D9E02487247819551465092CC22B6B56E93F3AB528038FEC3F0 668F866707A19B0463BE706EC729D2EE1653AAC7E29BD25BFB3241D4792F5152 ED415B4E7FA92C2EE5A22E27E8B75542C492E56D811C192E95542A6FE0BFE5A5 69273C2ABED4300D491B92D2AECDD278404CB84B1BB1BD7AFEC858215837D118 C0E928BE7E07CFEEB51A6D21375B772B8248C994564014015232A0DA4BEA1754 3274F407FED0837A236371F1A32056240F2015B1E7F4B2CA72C6B58610A66F13 407CFFBA5E0A2893C1F572D50F51286E9133B5A84239C9493B0574E77D281D01 11D00683354A000C9700EAFBC1FD104EA19DFCB87470190E7E2CE26E3A6FD0FF 2620B87B82AC8686B6206B530F17E9348BC7D04B948348802CE53A312443DB87 4DBBA5313A6A2A8DAB8A1CC9A594FF8C299281C0A261C8CB2226B732FBEEDE40 2C6ACC74A1A61379E2E1CD5548CD908268A32FA83D8504C442EA0E183ADBF7FF 9FD09C037AB03516ECCA93FF048235BD11A25DB07F164512A079C5392AC7F889 CE96AE5C8D9580BCAFCC087C35E76EED1A671E87C12E3045E15A687134736DF8 DA984772AFD189D68571A2ED7256F1E204230E41D3D9DD876F938951714A3973 0CA9310489F8E807C1C7A4E51AEA5BC030610A5D7263FF7E0F9FDE3E5E37A362 5B919000BD94D978583B942EB79CF2BEAC33FEBC9A67272EB10865BA8FB75FD7 9D280AB59F91B96C16C982DE848D76D8FA8620DFD7C80B7DEAE7264350D6FB3A EF04794DA3305844A7CF718F6D1A4A3AFF6826173A076A1372ABFC54ED3AC6C2 09C9287FC830556CA694E21CA5342ECA7B10C90AFC4783D841D7B1E34FA3DB7A 2B706F3E21B0FBAB23E7257962FC3BC309CEA2C7239A9D6B44CC96825115ABD2 AF9A2566D2F3382C01569FBDB94C8D664A5DA0F7DC3DD140CA77C743D7BC1420 324ECF9E4780280EB119885E96A6C619CE3C0C8E1E264E2DEB137E5DC8149786 486D65667ECF47B1A1E20E9E6E4FC8323E0BC8E61BDD3BCDFC6575C69C03E31A EFFC290472CBBD049DE3F840AEE37A2486034240F80E75D8A79E0762377DF660 52B12EAA16D678990B11A9BFBC03C1D4FCDA9FD4FFBB3E88352438102F10B7C5 9F04C013B6575B5E948FAB58EA691984A0E54E6B9F3F505FFFEF74D06FA1CDF3 4B8A95904C8A2763AA8AF5B71D00F5DE09DC1CDF87A08B6D181453063E14C12D B7BB3775A6E2A901636273D9EEB833EA8CF20FD83AE899E28DADE10EEEC20BD7 BD93085A4B1AC80AC1AE8280C14767F1A487BD066007A0D050317BD081131A14 6EA0898ED59E46DA7B6254BDCCBC660686E2EDA0E77A705A653733BB5C5497D0 B130359F866CF293FB6EF0C2AC5BAA2DB0DED045E2DED3A2612D078333260359 16CF0CCB272D34767EA069E0F0B0D42327A18529D72E890EDA6195C2688438ED E9ACDBEED41E81CA8EB5E43C2B09CE266EFCA03F2D7FF57F12B06F9E54FCC6A6 546676F6FFC5B8B7D3F0982B6FF0D21D949309F0C0B175CC1D0976F8C55C6AED 6E821C39041E22D91AB30922F2B2EC2746BC7DAB484991542FBC82D87B487507 559AB466F73EE23C2D3194DC5CE4C9AE66D3164613AC5CBB3DB501B64DA7C91B C7ED2EE9027FC0906820B35D4F2CF66C4F9CE4A884B7C07155BCA884ECA5EB3A ABB83F84DB1F5639599DC7D3F51241AB5D95C3BCB7AB1EC90B4BC989F74FB354 04B2D7366A34D335A47B8C00C05CB423482BF6C7970A95545424A08AFF9A035B 7F83F52B65A9799CE76E303B85664B624C65E9CA58184C7BE2BB9D9C86A4DE5A 8165EE3DA2E652B5022EE7893896BABD88931DE1D538F615787645DF5ACBBA0B A8E5B899A37321AA7D4B283AC9234978C2DD81813A1EE5DB6EC170DAC1B6EF02 94892635B498765C07A38D2E9DB0B7581B11056C28278F89B0E60998379C07EB C0EAEDC32AA69B8B836F92A61AFD35688315B2C3F860632FC13E4BDFB63214BC 41CC6859EAB3AC3034449213CAB99FA1D216563419CD6D6CE4E1B56F33E6C654 7AA9DCB5B05FC068DF02AC32408C8010AD004F6CCA9887830927F8CBCD49CDB5 18CAC1EAFF815FF2F6F527F936948201565003022C6C7390B4E3C2B219FB4F76 9F12BD25CA7B3B61D1A2F8DFEE795D04D5428B42FB66E0C254AF7B7A10CEF7FD E5ADA5E217BE24851180E9A1700FBA66C7D2B0D7BFDE4F4EED1D24B821A40947 5620363657F6D048E651A689822CF815E72FC8AE9D835BE31D1DD8B54C9A717F 4DC319B4B59AE073936EA40B070524C7E71D5A7B64436DA107749746B516E29F E3BBCB8F8C473E706670E11E5B221716F315FF097CD1841D0069FA69EA1898FF 9F9EC2518C77806A19730C97F54BEAD604548D553D4A6EDB247853225E24E7E9 89D71F6BC94DB986467E755CCC99069B313F5745B02B4BB608A39F0A0A732B87 7EA2DED68219754BF1FBCA350327572D769C962EF9242132D93A5C8E9725D8D3 AAAEC15ED0F362471AA58488620156F3474FA59CA080EA96FE995D2B3DEEADF3 3141D157481C66507725ACA5953CBBE1ACEE7E3F02C72C6552D15EB3D612730E 61A06A43575568DC3CF3844BABF04CA767E2995196097015E0C4F622C4356B6B F41DBAFD797A4B9D7AC22332C552043EF98913D0D9B50CA6B7CDAF903BC5C04F D20A952BA5CC35B646ACD0A287C956B98C450051AF6AAF79DF37F8954473F8F6 652BF03AE2AE82B99D820CF93F5FC0BA17EBD7AF90313E70594EB5C354023BFA 07912408F1757319C7288E99872B907D5AB583B082EEED8AB079C63E38B07D11 6744856E689A479CB3A8BC081F33CB06755926204981DC0A45B3ACC18F6865BB EE2C50DB43B62E3630FC1D9B1FFB3BFFAA6D0A20C0381ADF48E4D916BEE85BA2 BB40F538F55C11D50F882B73913840B45161262BC8B0012694C3EF26452F9B77 2CD7C7AD6BFEEAFE31C8A721C2D46AA00C10681BA9970D09F1E10DDC250E2AC3 9A160EC8C9654FCEB36AC2B586E978D54744FC8A0E963D8EF6E228ADD22D093B B889C940206F504F14DD921D909BE06EC9BACBC23EB9E9D137FBC983570FFD2E CC5D2EB5D2A4A8604A4AD418B800EDC6B89809E00091A2315EA8C071AB631CCD 04C3EA77541646B7F9D70B7EA564D92A65C4DED8966517660EFB9F77E172CD8F 1B5FA83270898C3709DE964B0C4A899418435F92C13E94F5C1C5B9D7DF3E8793 5F9E83CE1430E3EF275A5169C1005B864AD5B7ABD694E7D77B43D157B6070EAB 843B16BD639F53C50A48E040D063779B47F67AF0E115947CDE6A0C9DE8196D3A E61C1A57B150A5B386F71C863ECEB8ACAAD9A9B92C336A7B118D8D5B1FCBD698 2637028A7DB25D4314EE94974E09C2413E9C51A2504CF5B4ACDA26CE82FD1900 CF01D52F946CDA5F6434B8BD541503B1A1BDA72225592CEA5B55ADE52666C150 B0FFD1DA9BBBDE3C40E443C917C0A91444CD19BA8FC48C88835F09F35C6B43C7 C81B914BB437E99E48FCEF5984A0E10096DE7CBD0AFBD750D7BF11B5633DC364 6F547C1BB5DC55F4F2108D1ABAAA7CE8CAA45AE2984FBC51954AEBD3D188916B B0C5FF9339A80310E4A90B3E8CD587CDABD9D54EA413DE4E7B777779C2022362 96A9052378EDD3DA31F05B94979170169F1B43C60BACFAD96C76BA86B66DC30F BB57A48CBCB99683368A8E087D65343CD9DFD9B28DA91EAA3BC9FAD76337D87A 047661444966D02502C915E2823AEAE71C7640BCC8AC451239E34711D34A753C 44D5DD5647148520F4B28C97D8FF00A10B1D34592A32E90CF70EF4A01F9CF8AC 5EF9C240EB792EB337DFED508E5C91D91A3F16D2E067208120CD058F4EFB98D0 3C634F3DCF13881E7135C3FDC75362064CBC02FE1DFB6F49557DE90DE0C12A1C AA5F609267E04AF24404E050CDB6C3D6BC5DDB715621D4315D4D30E900EF3A5B 03D6524107544DFAF0ACE84F19C2119ED9CA58E88C81FCB5C33A327A8DA8CD1C BC87E83C7AEA2E430ED13B6F1B9E6045FA02C88B025D5CE7D6D191883B928672 AF8E7B0467A90A15680C1610576D93E6492A99787D4E0D49A5306DB04502D5BA 2E9DC1DC55365D68F27B9FCC33D55FF35C41EDD546F479E7D69B54B3BE72ED0C 62C80AFB76758B53337424120BBCB1872EFF9859B2BBF5F9B82BCB01902D7268 65B72FDE5A7C8DB2A7A03C9E8646AAB65F552E9342902FFD80972B325816F999 AB36938B6B88F8D84CE7EC8B95C459191023377A30F50EE2D9C8C41FCF685389 1F4BA89C1547A41B767259CF565ADA5011FEA13A782B566EFE3DBF496A99DCC9 543E261859EC309993B0F727286B02F19048772DB89984ADC5EE723C48078B9A 79E0B93DC55249EB4AE55C975CF75029C56E88707079C24297C206B35C0F52EB 0D3BDD760EAF8BE7BB9A41E778AD0ACFFF1A6C37F1AE3E7AD1990C7022449B76 7A23C9B0CDEB4626B42C96306A9544DD84D640F525DF20EB1EDF35AE470BCD3F B4F384E51CA45D81C3BB20EDAE1B6C8B109BC6C12B8CB7ABD01394E2CE389A6D 7CBB108D67C913765E081FBA3E79CE29FCDBA0850408B31A55D6FBF2DCE01478 04BFA09E8706E8C9437ED67CD32A37E836CD1E17F99EEAEFE28541BAA7AD8145 225393FD3EF8D033328E19749F7D700E64B829F82F3A7C8499B0FC557C3FC783 38866397480538DA97E4FB6C63CBD4EE16455CEA2832C5EBC2637574DAA16916 B8B2868A63B44BA3EC24A6314835DBF2D38BAD05F14E96741AA7E4BD3BB7833A D1C66EB4EDA345525F2447BD1AC8E0356493282EA56C6ECC81EFF7A74E1174DB AD3A842B36E0B339F2F83896892EB69F7ED2BE72EBA0BB60C59D40F48D09320A 591CCBA48D1D05BFC34D0B31735BB9A6C138E8615E21F1554432DEC1E25C073D 0D16E9D6F0255D88E0E87308560F434CC0E7DDDE759166759765DEC82366284D 4BC47C4DA087781B275B5711FD6B2279E9D4CB734E1ACBF2A59249A4937E75A3 79B263B6DA1A3516E90DF279D2D5E0C97ECE4BFC98224B9506D90AB34063E508 A0C4DEDEAF4ED82E1BF056124045843102761545870DF537009C00AEBB04D578 FAD4737E69DFD916065B1C34F194BEEF7A2CB60CDDE431A0349D36A979BB1884 3C388AD5EF92932B86E5FDE6558AAA21C046DBC85DADA57DC476C1339AE9DE58 34371106FFEC2E1BF06BA289F4BF1233F53321A57879D8E1AA7A5DC71B8F705B 1AA8697A500C94CCB3AE355200EFC6B9FA03621E0543A84DD889F23C85091CF6 8205E2650FE6376557B19A9664C864AE880125F06EC5FFEE834138BD7BC43BE6 86FEB49300C39EF66C73814880994B414731F0AA45DF19EEC082EE27E72DA39C 71EB0EB707D5936DA04EF89E6900E73866F56ABA3B6F9DB5575462F1364A7B16 30CA0BD02D13D7875008CEECAD3A540AC08C46261501E9CB24318536ECB3EA76 42ED1B2A49C20FD36B31583A2695B590A0496A486815A6150C0BC1335DB50A7B 9FE25238CE3295507729B4FD2D2AC515EEAC8E07578309FD7351CE86D4E2DB76 077BC2119BAB40577875000A90E147F150B8E98FBBCEC64AC7004C28C3C7CB5D 045BB984A519FCED4413A9117D008FEB967EBC92504F51D3EEC517BBCD2688FF 913D3F49F86D7A71BDAC55FD47082DBE0067691AAE981F94EE504FA1B79DF008 11BB5237A95479E4E9813350499ED01C6E485D399717A3AE14785C8C69D836C4 5624577D5FE7FA8F4381A343C8646CB7E1197EE9CAA4370CD0AC9ED69D15F816 E38BFD18D6DFD222EF239ED19B1A5E17BE8DBF06B24BED099BD4ED00A3A0AE0A 653C08A3EBDF22FEFACCA5D723337B886403B701ECAB7A2410D91B2350C9B349 B72DCBE46913459F089EFE0C9232665F5E79B5E28460788DD1ADD12F0A4AAC43 2A02E6413AD94EE3D2A4F58F34886F37C2D18213DEA42B39B6759C59A2CB5645 DEF5BB2CE952943C7F8B51B62396F4A8FB1A4042652967EB4F063DFF43BD4DC9 6663256ED43A577B77F81BAD98DC1344787B04B7E09BECDA35DC497840DFB401 91270EE3BFD711367F67F5F9AC09ACDBCFCA598C1C84F3704BDCB50479413FDC C1CEE14D1A67BCB8C1E42CA3858B13E52C9309AAFAA6F9EF687CECEC6ABEF325 0922B3402092CD52FADA2CD2B2BD502D6C566B0425559FCE9A00386490A8A577 3046930B807EA00345F19ADEBEB7DD581C8E5A011C46D4FF59909EB59D1EF237 0C2A49669AA4339CF26E4199D500F52589F5545C25DBF6F108411736DA09E872 2259218D7B8DB91740E954DCA4A6667BB22C849A72954E3754B1C47243745AD2 A3D57CCC9E35C93FEC0118A7769996F884789F272CA43BE6C9B54D726DEB10BB D456C161EB13CD1DF6AE98F6798010F76FBD8D4C718A6ED15BCF2FBA48D1D361 6A63D93DD0005779B0116F8B148DD87504652967C67B4AAAFB9A3C72EDED884C A932EB02F3447CE092C85223E50F1695E2F60775BB1225F94FB7236008EEEF18 55B9A48D28BB363416C0958F01305C9EC94B754BFE4B548B3A650A50808E3159 3A54ACF96E55CC78A5E876FE6EB0B3A2CF8C5F604E26409B80AC6AE54B4C3C03 F4F9B2CB5B6DC32495D5247D877453098B1CCA426DB4BC12DEABE00DFD67D999 73200D0779A7FC96645630504CB449E94C749BD813E87844C8C9709112938ACF 9BB26060C6DB9E198E1F5792D3B9E8E52ACF97B1D8E1021F51C47CEAE7F14357 1C36769B6559E8FCD460FFB21007E49DF356C1F01CF78E6D002A07986293BF57 C7C11141EF873A4D7DCC46BC1E9FFED9B1D45889A21A1204D6ED9A98ABAA446E C0821754B7FB62AAF8178718AF1A38804DADD238C05F4E80CB1B5C5151305C3E 0878838D31234CEDB70F36E38390D473C3717014E77EDFA8DE1F54F2FB3B3A40 EF28831334E1E727FEE5D60CA1B0784E9865B00EE8B410B6B921EB1A029A179D B0D892C920334E62A6AAA8137C4B8A7D6312F3E8F27DAA9C755B75CA93BE048C E142E4743D5DEC93729D362EF1C610144BEF6F00035EB90645567DEE2522A50E 28BC0AB58790AB0459CC00FBF0EE23940CB5E2DD650908EA1795C412FF9DF3A6 109FDEB484A8B9100A315D31849F0AA9876F8B9CDD64765EE5EE2483DFDE804C B12FA6B0EA6F74EA5BEAFE3D947BA16CC916C66B17FA3B8C0435161A714F0703 88A37E7A9FD889FA29952DD52E3BA7C864937143FC6822A658871C88608A9A9B 351FB780D11B72D1331D46CF68E7200F0AE4A82B64C2FCFE145F8D5AB954697E 4F68EAA114B2B4CE8F32188E9725D8D3AAAEC150959C74B9134DD46C874040B8 447CFF35B8CAB7349313C74D63DC4518196CFDA8D65CFCC1DE2CC2DFD4D24FB2 CEBF1FE1C6ECAB54588A59E739DBEEFD716ACEDC22CD69ACEC454312EC1DCE03 8F8B740631E360AA6DBA1E54991EC7922725600CABB41F639DD64D65594D5BB7 300B2A77A5CF0158D31439C030C0B76180F42BFBF941CC362A11E0BF7854BF43 230EF10B6DBE472F83389D740F5BC1FF862296A31BA59D2F24C230F828A4F187 27A2C122F5A959F052D673C8B1966B0AFA70AECAABFEEDC5718176B275775201 469C9D0A8E6FB7A4E67284134AB9975585272C47BDF624179D8827CA4664F96F 7003D7D0BD1468305353E8B69F1EAF891E3B7210ACD008194F83824E64AA6180 E48C37FCC45A8082ADE159725480EAB33F71E8177ED9938ECBEBB761F31ECBD0 D734EE41FF83789F323895D5B3AF330E17D805D0AF2471A1003B688CCE46295C E614449545E09A1E63AF3EC35E21FC29CC7319733165F06DFC6C65BFC94BF929 F948962BF47552901FD6BFBE77E582EC236DC450FA5CE186AD8D5FDFF3E369A9 1890FB8C18E6F5211938E271E34A089F01ACF9ACC468D0FEC28838E8D465CE06 BB4FC64840BCB931F9ADB92E0DE1386D3EACDA4F016E07ABE18FDCD7D6F28A24 0D66F004ADDE24F8624863EEAF04C660E269B3606EE7DE25F0FE01510BA0AF2D E4CC657BE4914AE59864959EBC90B7437D5A626041AF1F4AF11479EE89ED0A5C E88E043A2292EFEE2A3D173E0FB979B0C75A4F9BD075A0343E30BFFE957A8478 A4CF9D318BF2E22B9AB818B61E90E0D77A0268EF76A9DF6DB9904626C1CEE1F0 EF4D4923E9BB43D20E153F1A2FB5CEB30C1902E1DAF49FDC5B860E302DA9BD19 A390FC5AC605A96A0ECBE95C2E7155282647B0452891E8E400719961CED665A1 C9B7A12B1BFC5AA5AAC85B55F3102CB04A22682BF4CA3982F87307F5A4D94A76 643D2696887D2D872DED8F3917204CBA5695B2BB35CF6ED6291F0B5445AD09E7 F27CDD17688323FE6DAAC1C0905EFFA39DC4E37582EC0DF07DCE59CE41C29306 0F7BBA50885F0696F9E24AE6745551B076A423CD9CD776A5EE6C4493514AA190 28BEDD2955EA53D5C67A02DBE1FDE6F2BCDBA732E30AC11C2E7FA0AB8CE89ADD 0353BC67DE91757B96D2B8E20E95D8AE56CD01D918AB03A1B16175B535B24FA1 86C804EB105EA9411B1AC2FCDDE1243ACCE8AE9D7A222954D9414560D7AEE5EA 5F151D17328E2797933C75949E9BAB725867454BD90E56568E5C5E723EE388F9 3E5FD0F837C8FE5B1A061027A8679BC947C66565BC6844DC3D9BF5C15C1FA12E AF60345404CEF95726C0C62167AA6E6EEAD255CA1FC57FADF1236B6F86BE56B9 F3EEAA028204395F55E32082B6ED84678EAEF93D6D40BFE890B771DE79AA2F4E F20CCD8A05E35B398979337B109669FA12EA1F891A608AAC4666C13F394C5080 00564833031FF1642248E9B36E1C3B06494B75C89921374C63C7580A64AE8125 699221E1EDFDD2710B643B317FA0BF9E62DCB9BA912932C09A97A89514D0F719 CFCCB8D1DBA441CF14569B8CF306D671A8241B48237C151571AF2D074AE05701 4EAC5103AAB8C210E3B608E691B44E3202EC55950664A863B9041B893287352A C1C2B73D5EE889556960EAEC4639AB49C725B7D178FF585132B74F320CEFF002 803E149A7C19598A92D9EE84CE95E719106E596903D02779C219BEEF1E8D1CAB D075028902AF16D31DC903E875D39BC0C518A115A3E7F992E776C109DC8D1639 E511D3B868A1FDFE4E7AF696BD300E083D5048DB55326F7065BAECF2BD4CFF68 DAF2059CCAF3BFD84B5B250E3909C24C2B4C05835DCCB74CE63B00DF16E8F206 5DCFC3EB7ED58DB6AD0568D82A4C331A0A3E0056209F061784154D45AFC40184 7DB72AA55FF34545CECEB07197D512B3D4408153BF92E37DBFF24D88C597609F 2E91AFA4993B0C8E9281AA1303E5447B9C058C0FACABF3E5863EE79B965AB4DB 75892604DE37202512B5EB69C5447759D44579CCC3A90A26BD2EA94296DAE01D BB9EE07DD8E308F7A83758263C732B451EF406D7949E451D9A2E47182D417839 7C5899A26099CC2E4DF6D56CDB101FE2A6FC1AA3C6577F32C566B87A1B7BDC35 BA0E7A6596FE3E7EC0ECC3225F2113A9BDE14B88AB73741E92BEB91368CAE3C6 28C271E229D40E40B9B6E2E8845782DC75ADD9FFC9E499BF4794FA32938CE85B 8C073871B4D820AB2237DAC3E62D398C7EB9F5F43FBCA17E364006D56AC38061 C002B85BCBA86A5AA5943BAAC24283B2456A5B74DCDF8440C5FAF56CC71B40A7 1233E8ADE4FF7110BFC9D5E0413D9294B2C1151D40BD94EB3295D48D23BC3CE4 A22937AE42D65D3624E9E437661DE6B70F1742FF5578A4F104E712427731D5F1 8DA503A472A9DCAFE343DF010022E02958DCF5B87D9B7FFFECECB772488224B0 03C0DE1CB323AA2E8F02BF6479D29A75135BE180CE8CF5591A2E37E6EBF5CF85 AD359FFD362859071EA6CD6B8F118BE107F63C7ABE54F7868B02677DCF8E9E95 37453AF18C0D15DA4AB5DC6EFF3FDE3F5AE6684155AB3484B1854B1E68A48FFD D3B5A4BF1A2A591F56DFB2D504F3C480A6CFC1E89E7AC15F39AC083930C44C32 F15843B9F777021EF6D2D08FB08A77E5C0034BF7D5E275329921EFE370247CBB 850EDFBCBACBF5A6F5D6D84B269C7EDC34BE92F721432096680AE4E44CF549C2 692EA6244143344D17D5928E90B40F570582A7CF50358D62B7B015A0F3161875 1F870F077B1C358B50DB2019632EAAA11AC320A06616F9A891FB8EDDFAC3C135 3B559859C654A75A3D112F2D02AC4C9892D766022EBA14858B85838A651EB7EB 5F62175759169C1B670579F0137288A50C064A0157067C9C290FCD23CBFFC855 940E8676712F1E95C5CC22402530E27FB0BACD1505F6FC637C03C80DF92F95C7 A3B6019893F60AE8247DCD714F4D5197EFCCFE4FB43C8D49937988841F6DEA63 5B0822CA6580D1C2F1DC16B98BA8872DFDE4737196BAFBABFCD200B986AC4D31 9791A491ABE333A0024B212A780C28B6C5C6B3A5E2EDB82D632BDE439D3BA3F9 403976112A527D4B55BCDB6A9CDD9C8B78FA872E82033CDB2D305632A75170BF 252E94FBBA67558168C5399A75A3CD338281A6EB57149848CF0CD2F22C65D6AB F97193CD2A945DBF5D15D52F0CC4FE007C3AB83894E7343593140AB27180AEC1 E5DB20E4D49AF2680B340574EB565B7A0502039DD4BA8D26F05C501381BAC7D0 1EA23E18C8DFA02AEC010992966B9B421AF5E16352FA19F910B7FDC6DE8163A4 ED4A164228808BBABFF72C3D1D8DB00291A89FDB1BA0C15D63EA38DE1F4B9D8F 363EFD658E74DAE87DF453E8C5DB77521A2425F048061DFBF864FB7509629DEB A332E27CCBFDBA51AC97CD942D90F80C1BBCE9E7E7FE9B2134E3EFA76BC082F4 0DA193BF4592D30BA1315B7A91452A50C06C60F6A3089472D1C2A8A0C5BE5A22 4395FAB26C25A5B89BD24D74EF820D9000F438805110EB9CF1D9E890EE5CDBAB 42738417B9D63778BCD4B172D358D1C694069BBD9D452D15D04FCEB621A536BD CB3ED0FF3C274AFF32963565E6CD7CDBBADD6064D21B418D322774EC3C0218EB 8A765F752EEA1BDB727FE521DECE30548AF6AA74528F0B3D5CA697C55183A6B3 38DD38ABC07D29BDE934141BAF2E09558BB26970D6ACB00E408B3AC255B0D215 4124DD798DB55DDEE01BEC3E93B647AEF8B500405676A06E0D0BBA961FA3ECE3 5E419C417AE8A853075356CBEB02DEA195E98F960E7D6EB6EEA0CA2788C91B29 83976D367EDF2AD95AA722ED856DDE42C2C21839870A550768A3735F045E75EF C91C8C2DF1CDBB7DEDE624353AB3224D216A237E6490139426AC23FC22158A6F 2CE151FFBD6690CCED68DBFA477F29AFBADA885D6422B12E0B20542A7D531942 4A3727D068070EB7F156D5C7521ACDEF14833EFD37A4093AEF4CCD55395F42E2 C184BED49A41D43D1F8F019EF41CF4A062211EE4C2E3479F860F97BA62BABC07 7A303A850B5CE808F3A85A9B0C86FDE4FF0BFEEAC685AAC61BAC5D01BA636E9B 98F69CAAE38BCDB01F0C9230C84F7DF9D29332B2412D582A7E014C71C5EAE7DA E0BE7D1F52F31241BCB150A1E4E8FACC4F4D2768D7E49824F4968C82A356BE52 D6F0231E35CCC4207A12635E08C2FA1CF9AD77E926452B7C73FA84D350098C5B 7DED637489191158AC9212319749E8397A0F49101D60C289FD6287C43EE5FC0D B3AC65DEB809A0839B305BC9E07C78BDD11373D85F7BB00693DF5666D6CEC7F0 52CC7EB635F4A6145929D2F3BB98CBFAB0E5319567F079447568582A665A0C8B DFD4B036506A368F3214E8A36D6159F4A843181B5C331AE58B7C9ADED8CE1A7A B0F5EFF616DD98F13B4EA7FA22C7D805A71504017E2E2D6F36595A6B903E3027 A792A7F61046BE233E678A8B7DE8747BA6374AB0C1B68C769B93E18A1A12D58D D76F6B239A2F88C695D8261F9FE72A373F5F522ECE546FE734AA22A4A4B34A04 DC5B9F67C7E4428C05570EF2C3532EEEAF200ED37BC5822C7A53D50FA78F7FE7 DEC0B063DDBCD11EA1F7EE83E8726E0DBB4A7A12A4AD6EA5E846B36056B75383 D2B14FEE83CD828D73C3F791A6B3E29316D077B1FA60EED514882C79890545E1 3C14D694C3AB12AF8A6EF749376A5A8A2C4F6797A4DBE24A6415B4E418724EAB 59909A410EBD4A451C4CC1663653084A9F033FBE9AE3DA4E4710D65487FEB7B7 C0B88327034A4394A3D8F046A1F1D56F6800E94EA6BB0D23E0F5FA84313C164A F208C85D68BB5ED149C391B1BFBD51778C72956E3C95DE049977F30B80080216 6630F9B67110EC292DDBB0131CFBD41C59893C97EFC2F6576231EABDEC525B49 49298D7EEFD049321ADB6CBAF254BF93F1439D55423610CC3E213BE81906D7C9 D7A0729B6BBBC33AE22533CA381494D8BDDDC933D423329EBFB6D18D71AB2845 B97EE7BA15253206AEB93234564A527DE0C2957CECE56CE8505DC22840446620 CB84F881EF3FDDA1286DCC62401632025B9A8022A6127E33A05CFB65AEB5FFFD FF5C679DF619E032C03434ED8DBDB97D0FA0473AD718B76B5D93CEFF39B89792 ECD2DA0E3F741E3678C31A6209372D93D194D309936524A2CED91A65032F74C9 50046F89F7B7E8C6CA462506931D849A69AF163A3DABF9067C9A2262D8A27BB0 126F743224CE8FCE2D583CAC9AF2DA9C25963F20E18E905503B2F143BBFA3E9C B7F040A0B313CF051FB597229228EECA97487FF85A0FBDA6D42319B5DCA0E364 87E0663083DBDF9A8BACCF10CF391D83C7175F874F1A5804C308C8718CF33BAF 7E9ABDCE09440A9F68289830FE25A10D0120FA8DEF4473E41EBB12AD3A72ADA8 0F21B7A8BB63F6F2CA4FDEA0E839EB47A857D6562FD35D8C7763511F1BCDEC40 5B0CD3C5712BE7A4F5C3B7453B847C16E29621678BF4CD529C808952BE52661F F50C7C289EF44F922C36CC1EEB337517CF80607E16F7D899A35FD79857D25AE7 E1665BA7D95B7F4EBCFA2141F27B241E8669FE532983067C386D8F2DCF6C73F9 867942920D073CEFD9861E825106ED702DE4F709E46050AA839DABFC529FCAD6 444542ECE538A09AF5069183CE42FFC38497513537926E4F099D58CCF751ED69 5D9A47090274E8010B4D9A2209F8ABDB3BF6A799C3C7046F7C40BEBA5A8E0319 45DA521C990D0F3A2BBC40ECA9EBE9AF111AB441E463F8046E5C8AF46D561D04 68C69C95E6BD5F16CA3984B9C9A7DAF234E999662E2DD865F7D09A920975D5FF 8B569BC8E1F55749C832D640F6EAE63FB5C3DD8FCB1BF64F13E8C6B7A2F6BCA4 7019F913B4B0E9478B3259E0682252BAC1F0C5A81C2ACBBAB3F3881A6507C60A C615DA34AFA33CA21C7426D5AA20D4D55B6859BF3E832836E3554766C017DE34 690F4B1E3627160280EE592CFC976656E729E2E5C81CBB063FD59671D3F4CAA1 FB8F63B1B37B3F40650C362DAA89014611B1C7F429A4F60A606F9D07596BED59 72C86BF5B3D6BF919CE2F56A3D9CAB890620BF249A218D0AAA1AC1BB9F880CB3 C689EB0754B2B846CCAA1CD2FE5443857B9AD5A2C4BDE039131EC17ED25A6C92 819517DCA4D146BE0B4B23B3870F94627F9982FD9D1A8E72700386F6B20279CE 6CF8DE05BAB17A64EF85BB76704708F8B06B02BCA6ACAAB80208D8DA682192B2 54BA6C36745F6454DF6E83D34A38BEF6137D495EC44E410C3AE90E86AA0555FA 442637E8B35068104B041A1F2B9058BCC34B726B2CB84E5D0B15F3098D321381 CD7BAE385673B528CD5AD913A8278EA03C90251493809335358AD5F8A874B646 30000A87016A727FC327B4D6DD1552A4614022E1E2A39D4CFC91701D96429EA4 6437E4A7B1EB81284C56D4AAD2A6C4E4DF4FF0AD8AC381AE9365389F50767C6B 9A69E8FAD79D792E0BE4C198584AF76FB54EB7AC9C01B7B62B19A99A04C32302 B5C93B011149534FB5AFCEB620A72B00B258D3B1D7654949BB69B13A59CECAB8 148A09B7D296476B55D1BE572498B8CE0B25C4E7F428BE0C829F8291073D29CC 75D05CAC62BB742CF935C859684D38D9FA06E55E096EB97636B625ACF5A8A411 D7FE51C3AE837E19C4F4AED0D35E936F6475DA8135F4793D1A6D3D2D55E9BC24 D9B9E1CB674E4B056EBC5AA0FA9818728DA41895B989CF2C883D9A3916DBD323 DBF5DC1A397F3BD84FCF560D944AAC380D097395C5D170ACA260963C03BCCA95 8FC06F8B3605B8EF09E72ADDCDC1CF3ACE853B1AA5BD944EC4CA31496AF1D915 2E42266D0F7985E2B868748F714000DFA9AA5476D4CA4F0CB5F7F3BE1255B9B5 0EC28B5C91608453170146EFAD21A97A0716D4F57547B8EED9B1FB10F5383FDA C5AABDCEDA355F4FDF4CAC7D410EE7DF9783C5FDFD809DA767B3BDA36379E793 8E9D2F19EB5ACB85928B6875F7346325BD8FB177A794C5EE486D0845EEFFA1D6 6458E63C86B2DEB179483505F866CF82848985710044FCFD402A6E5CEBBDDD97 BAB4E54279C79EBFC41119115746686D3861E9B3E3DC56136A64A520AAAB9385 460C5906283DFB0682685DB86DCB1C21D9A4F1F9AE8EC65B714AAE6022B54675 BC449B8EDADBDB773B3FC7E59DA4552385551F6DB2B344F7CE018D13696F5088 6C08A9A42302532E32B4EC776C2CDF1F0F1A71F8B8104B1D3130A63A5E0EF779 53CC25559A509CB9C4663EC5DA852B984629EEF62B2CA7ED138FED118EA5E809 AF3ACF132AA1C3EC64068CD012FAC92C07BC75D8B8D2BA1830359D17595C3447 D09EF6BB51FAA8F7022418F5EE656FD246845CF75BF2476BFFDFCAB5086C6B8D 26BD0CBE5B72AEB1F3D49ADA8EC843C4458EE77F29C76F07410102FF3FF7EEF6 8F71CDA706BD4EA2D045094416D76A28977D0E8F1E6C13FA90A6953EF87230FA CDCCA2750ADD0FF3F8E22D2A5C1A1DF2137BB36D3D57114B91DF1099D2521C2B 69C50A3279334A41156A0708194E22E527F09A9C2F882D995146EA19EC4669FD 625FACF9B767BED9961DDBC748ADFD7610E5ACA27C7C6246AB4F7148226987EA 037B0270F5322182E2CBFFC67D955557D332D23ABE783087CA0CE1DB4A7FB45D 1DADB4D0CF31B6FB714D34973106475E20CA7D165A37EC717E125A04AD32FF39 DAA75FA5AAD2618B3902915720C2C0524DBA6AA4DF3DF7170927F9672DF548C4 39A883AF6B5A80E206F5DC503BEB373630B70C7C535F6BDE545C814C5277A41B A27887B4BF29B0FECC98A4CF79E7B61AB0AA8F981C84239A8280462DD9FD051C D9652F77D52796F50BD3AA2C3442B0082EE33EB24BE5479F91D8726CFC50842C 874139A053990AA0978FCECFEF77407A38695D11322E3B41F5F7905F04FD41A3 BC3698FBFDE56587ABDB36DE905497517316902319D226208380A031EB5EF6D4 97F6E8D10DF42F4C33E8F3BBAE3404AF40A5FE91770A767FD4584D3521AAAA47 980D19B8A9FDBBCFE9138FCBC99A53CB82AE549E17F5DB6723F6ACB4CE6C79D9 BD37F9C4A99091E5AD559877FB1B3880E6D2C8D71AC893155828AC80F506466B 6F12E5B791C19FDB019EA85BBEC365E50E483F6A11C2539888A070AA36760379 087C038BDB25AA9C7DDBF0D9DD758B6C1E9C9B016E73270CA8E80F49A0E9965D 2A3DD1DDCB6A9252099FE8791D18D2844B5D3AC7757244AFF4808A62C568EE8D 0114932EF1C3CEC81F2A1D66883D717C2E972882AEC8DD0C6B5746DDE2AE0B93 F293271AF192A77DB6DF3CF9EDF7A3BB9E561581633D4A4898498C3EAF12437C 6D254367F9CA4E93D6A0F5FB55F741C15BC9C3DBD34D5B267F5189F444C7C5E5 192082A1870F8636C223F8C07F1B5F31332F835835E4BF75801E71C9DB3D98B3 BC05DC1D34032C928CF1AA96FF6AECC48D75D323D245D1A39E5184E5CF6B47CC 0DA29B83428ED5F91555E0D00B5C9EF729383AAE253BDAACB014805028409509 5467C2705A2C6D6D0F9497C1A1D95B543EB207903D01B50DB3969D93E8563F16 021B623A8CCAB0A759D2B5940BCD1875856A64E75D8F12CDEAF7A5F6EA799ACB C2355820214B96239D6387649679C28D24032067A799ADEB96CE3B6D68409245 183298364E88565257C6ECCF8EB527BA8B373BC8541C0CDFA2619A59E7257BC8 B608B86C0BAFD62EF6F2B1CDE91A111285ECE7AA6D60D2120DD0E20298066B78 B7D5426A7516674ABD44D46A33962ADD4BCEC4FFBAF2CB482E71B7FBED39C14B 7DC4F46C871842125C18EB93B63E8D262E4E2F0096FF72EE15388F09B26E7B43 08F501D4817CC4854188DDFD3B73C17AAF2124330B75F68F5D454E7EDD399EF5 6F081FF156B46B604019AA79F68DDA026634B196571312EB39E4FCADD75901A0 8EBE70BB100DE472336BEE8EA8AA1A9D07ADCF9B9A0271331500B2ACE37689D2 C31332CBBA15DB4002E12B622B6CDE4570D6279822B7CC1775876D4E9853A137 EC7FDFF087D5F6DB7B1A67F4E070C63DD22ACDBF523F017069DF86224A20476D 648E1A9C10927ED95439772F8AE2C61D38AC94053D5DE8BC7B53EF85AD4FED32 55223A07369B7ADC0916E25C9342900CD112E3E89C92374CAC2ECB5257F0B3A7 CA10A916694C5D0E599D3E8E6365FC9E373B2FCF65E8AE5260AD675D5D8995DE 3190C4CAC7F46D742C3608AB4A8FFD49A57FD2F74B16443DF47A3155F74B091C 550F6936900CEDE69929514154C3C86DF1889424F0589E8807AD320B018DCBA9 374B3DB28B043C9012548EDFFC43118179A95EFE67F0F0CCEC89BD3A851C700A 6C9E2DB35C55713F7C337F87CE270073259F889D3FC818DC1D4CA3F7F3CE4B2A 795F93F6516D0EECDBB858587486C3ADD7D24F676BF31CE996A9C427D082E1AC D8E8BD1474E545ED156E7263A6F46B673B67D6A14874C440D81B90D527912719 E30CB4E371489FD67577C9D02D1DA8FCCFAFA5E77C37935682B895270728BC1D 75965B886D067DD4A84D62A737D7A016D213CD3F257DE1845B609AB949C1F310 A864C275C18E0AB905F196F9D5816BF29FCECD7EB8AB9B7F8A93AF8581AE2ED0 38DEA34926481292330B8F30AEC4C4BEF92B75D3F15045F9EAD7C8909C65772E 8007DB2AB3F5763EE9207E60159D5B6A6B2C99C46503DAA9AD640D27F5E70925 E7CC81DD6D806A8267D4B44F430D0CCCBB800C78B1D1C82C6AC9B5B9C3DF5E1B 3C30D3F1EACC44498F0335EF15728A1A97A2D286D4F76A464A4E51688E043AD9 D8254614883A4B94A13B7C8C45D68E1E234168A157C01575E82D4B30CF463900 E2DD7C51103FC18993898F1D38797DAF19458B7DB7C863AE48D7CFC88BEE0ECA 2F070C601EB26D06EAF93CEA6396837C00FF867C848F705C38397376515098D3 9D4E4CE2597B14634593BD971B895D74761B197878609C4C594AF4598097485D 6866114BC89B46C901E005D69EA1C7865198A75C9C96D1C00D5FAC120CACEF85 1EB1707E6DEE2D7C25B201FF31511FBAF2498EF18B9924F6C4CD45B760F72DAE CA6068231CD64D8B7C8557F51AB956A2E4A7E36F001716A48F3E1EEBC3EC245F 1E07FBFFEA065A56261B1C3CE0F9DA5772C2ACD94C7CC7E1DC2DDB506082B816 931405117B187D7D9CBB15FF42193326C2A49521719DB67B79A0AF07364B0142 BB329CE7A7DDCAC1CD15CE80F557F01880C786C36E7B448B7C4E06F2128692FD F3AD8B56F4ACF873AF4AAD6BAF7FB1AEFFDFD36F4652F7FA1D9E019567D6D2BC EBCC4B0A08F15D0CCF741EB79C2372831B019B3ED4A36384005CE1F1CE6CD2A2 BF05E2D9681EEF08B730C37082978F061B91AD2197C07B5D622A01F3E79C09C5 2843E77011F679398D1D4727739BD48847B27C3CC5C8A458C4B33F79F9EEB876 38E33B0AC427F85F5752FA05F8D09603D54068A770856D3B85E340E58B420D4E 9567CBD78875D26BCF0788E5BEC73028626A61C83E91A10D4D162C65A31FEF0E 3C86A0654E46E642E5673EE87F2BD25B3C5ECE6EDADB8A35123256DDA82D4836 6B473E7AC5828EF131CCBC02A17590E8C26FDCE2E6DEE18C2CA9AD6F6B60ECC9 A95C0A6150405516E5FD086B2C2F9AA6AA3B1C8C647D728CF6E44F60B8F8AFA8 ED68322B16C6B986B5FE396AF3849D85886247382F445B6CAB88A40885B578A7 25D7CDD00A106E7B1F4BE23A2D9BC45AAB90512384C5A06B01746267A90881B1 8DE164524F22A2B27E59C077CDA0719723C7DFC3E625CB6837A38BA590D33521 384A95436E9291139A5ED2758A3DF5A444400473A47E19F53C2BCDE3F9642145 EEAB260DFAFDA8836C0A4E4A1A3DDD2BE68B7634D827132075C02FC637BA402E 2066A1FF011E17228E8467322EB65A2F8B0E1ECBB3354CFD2A405D33A6AA7B7C 7607CD4AE0AB56206A8527E5BED8B4F17233DDF89AD96B74FDF3534DEBA5D857 98D478EE33054F306198D5021EA2858E4C7AF6968AF19C5652DE22D5B8D32F84 2CFD5CE2CB60474AA199753FB1DB6978C02C5AC3E8C8679FB12E3D7F7EBE60C2 20607D979CA75358D1AFD50D9B25A7C80C687EF34E6900B35BAEC2E88A0A55DD 75191140371F6BF6C5D19209FB33EEA85BC5FAB2304ADF7DFEA30FB4DBB7BF6A 25DBA3C823897D06349519D62147CC9BCB57267668A760032CCFD09BA2078B15 CEDA8EDDFE365E498D038571E1CA63450C89C79C94E61ACCEAA4F1A0F774543E 4BE36E0AF9FB8828A8C8DAE2F5409F28F298B10968577F118811FC28E7E72AD2 85442580795694BB1AF119206934C324F94D32BE734244194E647AE0ECDC31E4 DBB2A2D48E58F87BE8E5231E2F9BD7E2630F17B57805FAB2B92BA9FBEA9E5DFB BBD7636E4B4D91A5CF42FABDF9705FB0905773D8D299C3EC150502981D3B3589 EF415DA95B6386251AE8830522E3805F57401A2A26680C47B2DF87D414B72CD8 19FA2F6F1AAA7F230699CEA872263641E29D31EFBE19287DB9E20BF48BF8E8F6 607639FD0EDC4B0D89D3EFAC99846C954A82F60ADDF090790FAED1D5790A6AA0 97F763DE4B6CB1E559825DBEA4ABC7215BE423BB5CBCEDD042B5880941FBBEC5 EEBBD377B1B2610895446E4DA4653B7FEB5B099CA09C242BD0F3A51EDFD1C2C8 3556EA6FCA580114910BBC8F1542361BEBAA712982B8BB5939314C522DC6BEB4 3241A0E14584C605584B7114BB2E63688D7B5D1D23880A5C5804907DBD0BF1D8 CC4F794FE8C4788AA78371F96DB4D7ECF32F29CBB8D2F6E2A2AB358E38BB4C38 92F8AE1837B8430EE1784C461E19C80165613FD4BC6540A77D12CB70F978ADA0 06587B69D08AECE8B1C830D10942B1571AFFA78A4D5047BE4F8FCD39D9FD0FB1 87954896D462B393973C696AD7359F6A7ECD11C0F9FB091C1DCE761B5B598D86 6FD752A20CDC39473FA6F8DC481444A368924577E772CFF63CBA3B23941E77AA C403D2E7EAB932994BCB758952AE2A7FD42B0D70E89F00503FEEB30B56100157 D750C98F32730C04F855CBE74B557CF3A7C526FAF380B162D14D7AD97B534DB8 F4AA0999D7A20EE1A75F05697A6B1095EE09D49F93ACF4C0C601A543A7E2FE0D EB91BE078FC65C807E2FF5939D51C7FE4F305F9247E1309050E37F701AA4B853 45F5F1E8AACA53E5A9A850AB00E19AA7C974914E070C5F91DF1E5893A55B5816 5760FEA2A99346A7DB8C2094E0E1BA235690D3D00C229FB921339A24B94EC707 E536433AACF1255A23395805E52166E2B6DF86FF30BF6D2CD84766418797A8E3 1328FE6C97D316E6ED3AAA2FC7DDA0C614340FC72E5AC55568752D9B80B70B54 711BB0872561E896B4A71817FF2C4F2883DC5CD7640E6F9E50D3E0479218FFE0 4A7C6F349D38D6A7ED7EB3DC2B923A0D6079432E6B3273D5AAD00D59D9092979 1B33ADED3315CB760BB02F22999E08B0CB74584947931E2DCD9C18AB85953156 91A99DDD0ED29BB0D5C9766C251B4158DE671A148DB9E9893889B741020CC980 8A554B70D9312FFD541708AD03913E14C299A09D429F91CBAEC6A76D0D0A800F D442505EC49820649BA33A1D359233A266A6634130A422E85498B2D586428CF9 21A805B926D5CFF1B2F6C18701558C08F4F4348A264DAA6E4A72C05A53028DA0 5556BFF71ECC12A58171AA195F03F1AB0C6008A78871395801AE73188C1BCD6E 79377EE5AE8CEA2A676BD99BDD93E6F0EC43CFADCB6B22CECF481FB8C5F9D2BF 7BB5E27A27F7EB5A3951D4DE3BF2626A843309F7E0AB8065285A3345253D29B4 520F9E14DD6A9FCB945ECC2663EC81BE08886E746EA204AAEDDBE6FBEFE11CC6 EBFF9D4CF1F0EEC21072B6CCE8174B5A21858CE11806639D90796BC092308690 5F80D593288CE2578EDED0CE0C5755F6B8CBA30F96F1A831372522AC5443C9A3 94BC5289946326A2AA3999095CB5E39EAE7A8007D83A3C11FB96EEA699073E6B 641E66BEBCAC098A1D38FB9175943B21FC35C53A180ACB1A0943DB2EC63A0210 C9348A753930644E4C73D38E1E3E9880AF739C38DCE13B315D5C70456453DEA9 39A0F70A36FE095BA745FC6D2DD2B0CE98EEFF77C2F6C05BA5D4ACD83DDC3DF3 C1836CAA835AAD3B9E12D54A72B138320B8DC37035B4CAC4540E18E6E0ED4CE4 0B64A538DE696D7C97CB6F8418C584B4EE33829D6B7D62A2CBE22DD52D3791F7 F83897CD8C077178EE5BE957E1B02191B14FA45E62B53682C767CBF78F349F3C CEBAEF6F8D86ED409A5B7650FC01A62D7B1A169D4F242EA4E6908EE8F4EF0768 2274E1408592802AAA59986049B157DB186C1D975F5BDA0553BD1C98CE2F8B03 14AEEA57EF9FED9184631CD2EBF9438348AC3CA8E3A6C7B96F363AE7BA1FC147 4DC8B0239D4EEAB7CF1291805BC140E8A342105FD24308ABC82718F4E7537F00 6959271579FE783BB174BD63184BB91E398C92C29C1D87EF5C7B728DCE826DA3 380DE58C058DA92CD280BC3127AC30AB67055EC9C6875CD7C98D8B3E0AFB7D52 C511F5BD8EC09FFAAFD8C56016BAE7E87427EDDA252483552B858C87600CC4FA 281016D3F0819662A5876BE42B88A5BAF4EC6B9EB27656541E926A3996F3FEB1 422C9BAEF3EA63187D74E48554808FC461C9A2864C91123D55E3D8CC8F2F50A1 8210C03789FE146FE422C14C690378B000F7C6E3D622A6082720A626B3B1AB20 7F40D245FA57D0F19ED55A9646F338FD6542BFEF27F3CAAB502D88828A0F2A36 8164843A3987C809051AED7C9D82C00C8E661CC3C28FCDF4D1F7865A03234DFE 6B368F9EF1D7EDACDC6FF0064EE02E88B19BCB5662335CA3EDCEF4F383D4C4CE F8C829AAAC191154F44532D7D81E8813DB770D2AD8BC0EA81789287211CD51B0 A2A7E9515CBE53EF8E2D27C549A59D191490625207A6D85F6E9E55418569CCE1 971575437F19C56D552F0D9AB837760203FA9FE10EDF942F4988736ECF3DC8FF 8645F0BE1E254083D93C443BC418E40C62873446CF0F3B96BC37C3457C0AE9B6 47DA4BA3A91C716A073D01824B51BBF89581BF3247D36F0E4ED1C202B29F4DB0 7B9B663FFE620E7AEA59FE6727465C808816BA0E5D1E937B784EE7CD9533CB67 5C10AEF84D645A128A021A737CFEC99A9F2702DB84B20FA2348EA55F73FB9648 B668B44D2C0A329A47C9D19B3F7F74562E47CCB9CBB6F43361EE85E1E61DFB06 9576F89AFDA4A81BE4BD5B93EACC6DF66C580749F221A4A162C7BBA19BB6ED61 5FB1A022FABFD55370F09329B4E956A6E36BA8D6DC5D09996D10790A01F7843C 776BFE8B4CC8AEEE36C062579F897671F647D5D7370827E4109CBDA87262320F 6F1A00438247EA74C50F1FA7396D98A6969F233219936E03B6D587D1CF62E7A0 D2B0307338AEA72990C2E38BB198F9528CB36333C94698D3223B286440DD7A97 4590B7CE0C9FFD5116217DF60F8B1E30F96DE8440B8B6C0AF4A2D76C44EE0D3F BA6BAD8B3ABF3427CF9553A2906A6467FF0FA94C1F9CABE446C66F6E8AB6206D DF511DDE10BE648C17CED91835C47B8DA19926CC00ADC668D4DE668A136BF323 C3F0205BD47B091349E5048A4DAB26AAE9A35FE25A1022B663CE559F582BA9E7 A5EF7B250B9625B48EA12404D40F52CDA2303D388DE410CF4AB100EA686EE976 C094767F421C103C1B73BF52EEAF942DC4E52F675DB20371F7A4CFADC0E9D88F 83032B77AC713E1AD6DF49A7B30FC1BA26656BBE7243687D025B75F2E10281DC EE6F5AC815E635C8E0C5A862DDAD543555F16CBA8284E76F6A8C0216FD76CEE3 CE5EACAAF79F5DA4CB5A9E2BC13A15270FDAC1E1C362EDBF57F53CCFEF7B6828 31C86E431C33B1ADF29A9357491C70A69D0BACA28E3E97165D4A43C9F9B4CF1F ADE3360C589D5BA262EED104A3633F23A2999995E93C7D079350C0BAD84DF62F 0F4A011AECAF3FD40F60285ECDD4817EA3B5BFBAC1AF551F9472DA0DFB129DA9 A23565F5F669F81C9080023C9EB2F97EF7595981E2109AADECA6B00312BC4953 9FA778F9DAE7EEF08713AE8BD8A42A9DF5D1321B1A05D110B55DFF4883CF7825 C1EB774CDEFFA879C8033DB1F0D6DDDE2D630E608DDCCE703E4D92F478C54C27 839C9C2D54DEA43527D8126D4513B7272942626210B471B092045057C13E8585 D09789B9B3EFAE551F97BB1EC07B9E48DB9B3B5168A4A7D2909F57A31CAA7064 99DB7089402A57E64A11B590A7FCDC6302287DD817199F445EF7BFEF31AF9023 85EEFA4B6D605E0F9F36AF6832C004118B6B14E3DDA29C22BE46B2295A005639 5000F7850091995ADD3025C6385265F0B26F975099AB7497929D934CC7529F18 848A3F88E114514933B68E185563CF0881FFD3D95233BC80482BEE56EA0CCC4B 65833FB91D37C488F0796F5F1AE450B35B76663AD6FF0163821DFAEF95B6BCE4 E3DE751FD9597CD0D4264A29FA57B04AC586C746CFC65FF8E523C318EC224C68 3BB812D7303D15E633A51844102BF6B04053BAAE80DF7F0F200F51BFA112C609 4735BC45DAE8A5776EE0AD3A649BC7B90C7D8751B9F570C72EB3159764E7E9CF ACED780FC853AD7D40A52EA42D40184B0EFF88AFCE52CD218DB0F64CCA86007A 1F2D6D0C2E8FB9DA2A1555C331D569AD3DD9A7913A0263A64CB7F9DF1330037D D450293154CBE83812111A1E71B0655342A1B575C77E3D336F8D0CF1A3E73F84 7E54BC4C716D939E3CEC3D6CBC2DA6FB53F1279F3A446D4D491FFC5C0D946C53 BF6D3EDAAABB9024440061EE3E6BB4210642F6F65ECED2356C2E81541CFDEDE3 9C642A3518CC1494DD23F0E580E5B5DFC4CB637DB535269FD2B2AF684682AC12 B7255D9C74D58D63B624C237439B1BB7854617B7C471A8AE718633CA0CE89DFE DA177D32254CA920DCC5219A311449F4E3A0459E189986806D0DD0BD0D686076 24605187695144EBEC2B9D464A425F52C8E7717F4393CF70C02954A5E49968BD 9B2F82851668047B074EF02D246513DBEC3087EB324B9AB8C9773E4151CB0B37 792345F1C0ECD403BDDC6474B6757F2C56E4672760BA65BDC154DE0400B91762 303290C8A4591C8B07FFF2D60BD8650D2193605F8A120A04A3E02D441B75EC48 BB27F280371BD74A816D8411D69B1C0D00C64F219AE3A1B3BBEE1EF775C8C39A 4DAE3DA742FE5C40433E87AC7B33CB65E3AE93646278438DF7A2EEF3EB299888 D4143F3548000AEE9DD000068B849F1F80F5237BB6E452F985FE7D7C0ABD4D79 BF592AD7FBE75A25656002FCF3EB07D2F769F66B93E779AA8ADF401B198E1521 4E308C96AC4BF5D7E7278DB1D3E98E6FC939CBCAAFB41D59020B6244C55BE736 28A813E5DB223A3FC6EA7F6327A5C54CEDBCC6B46CA653ED2AE0A9059875B182 C4D7680BCCFEBC5D3511F56BB1A0E289C7A93EBE8A045C242E4318D1CC4654A3 F7771B45D53AAA37C74AEDBEF747C5B6EAD4A050ABF283CBEE8316F5AB8CAD64 AB6B4AECC55A630293105260860389895EF4A2A4F57D1B52F3C078B5EDFBCE68 CF4A42FB2480E589FE54B056939B3D8F95711B6E9CEFC50C64DD91448622EDC6 32E30B24D09201820D0188DDCA1DAE6846908193E0C590E895C80257AA1F0639 A517BF2011821DFC469F2FE82157550CBA3E307F95240C514F25196B24DFF918 F57074E90DFC77FD141174F153732334D43AE3FCA9DC99B9F6CF681C51B3450A 9A9C506ABA3AED9FECCA9735B632DD806551670B8BAC7502AAE7992489987D46 6E744DB2ED7B2CC823EBBE212E8F20E5F777A4A85FF2AF0318CD9856372D1C73 A10C23224B4B1DE59968E82DD19B66FAFC8A850B6554DC0A706ABE63877EC96D 7FB162260DD7D77C97BB5841239C80C6DCE82834B763555A04EAEC95069CBD2B C091A0814312AB57D2CBCFD20556FB9DB1463F205B6D93493683F08AF409790C 79311DC20B70148474D02C651FF697FD741ECFCDEDE30D9BC00B1478790B54FF BFDB1D9B944896AB44AA12CFAD86E49AD7C5B81C2D5772585C7CC4BB7BBFEA80 D6C319A1B3E68644F194210384389B5ECC6FF80374A5544166963C7CFB7999F8 DBFF80BA6687B835812A131057A013A7E726B2483D01113B2BD7AD2D32B8C8E8 9163BC62E691D290AF5CF93C0B5C5CAB18050C0D7E6DD9917B5FE7255A889AA1 D558CFC8C01141CADFFC561A4F30A8099CF91FD006FCF79BC18FC140EA211715 1D1F861C195BD8A3B7E3A65E19CCA78504998E62571DA13763E7747CA026EB18 CB1FE918AB8A8798E52A218F7D0F4C4DD6D214110EDCFB252A78CBFFB530835C D5F93C15218C118665AC4C958326CEBF843F8281017D6C01902E3B47FA1511C1 0F354D01922B70BC2AFCC8365BF82B06A5D240DFC2A640122F2AD4ADBD85D88C BFF6BB45EAA41BBDB5588A633106B6168B8F23BA327B9E7CB4DCCB549BAA13B3 9821291F919BD0E84AF34AE4D13661AA333A9971B43FD6D2F921A88B106F631C F04B9DB3B057E11D332C57BF161C22A24D5A21AB5CBB12771AEFEA2FDD6E298D 9EDA2C7567CE9A7CA6682DDD29D196978D0DC23FAA64418FF4671C9AE086D474 0AD3FD9CA36286971C7888B95608C487B9791E0F56B6285BBA7BBA2474969990 6A8733483771431B062DEE6D652D23459724AE011A1815B4AD0013103B1AF5C1 7691ABE515CA6DDF57EF8A6DBFE813EF052F71665E6977969829B28F1988A563 E85FD49C5D04A385559A1AB5776EA8A74FDB70D75FC9FFFCCF8ACA5517FD261D BA24826CC6D754233F2BF712EA6F7F151AD4BC67EAAB2400EF1C912468BE7B70 65544D9833A45983041115DB80425E904AA9DBE9C04861D83F7BCDC935C5D6C8 88123DD716735958691B4A4AF87E0851BF78C084DD4086A74B9B22EEABF7339C F5D282C9F8E4CF83D9135BD06E0E1588A8C9393BEC90C17B4932C8D8C1C04743 D4EC1EE47968C9E66067CD4B239615B15E0A20270280FBAB72A43AE365368FE9 7E62F088E8B2F16DED660BC1C8B82B6C0109D11FE96C800B10996DB70E312295 2C54F39750D03A3E10CE7F614D58A802A1EB4E729D94684E03AF11B3CD77C3FC B7DAE5E6080948BF53CBE0DF091D3EF60712AF752A1AB545687BDBF4FEF29321 388F2EA1379D352C4938C0D90D117FF22ADA258B5547E23C5FAB29590F354D86 72D8A17EA66360562FBEB99401A913903040C0E5AFE408C6A9D01E57817550C6 679BC3E19BAC6EC427CC197D94E3F4072BF58DF7D56E2997EED90B1A11F44378 641128A96EA0900825A18A3DC8538C2B60616863FBD089704DC56ED59A1207F9 4F706AAD7AC145F23CA6868BEC757D2A51F7AF91BC03973AFA38A4AA1733B461 2335BFB13AE271C077E0E2A6A60E50D524F3C579C1A2EC2C63382B382C727042 19391FFCF90BD39806280C47B64981D53B3A9D0B3D9726041F4D4BE0070A15E3 66BF296176EEE4CFA4EA5AC579032E7E1CEE3569383554644F49FE9DF9D72048 9F2D3CD7AD4156558DD5FDB44CFF42C5DA1FD6760B31870D69C4C1F2F04BB51F 9F305D8F3E0C23F6246F4D9F033FB381D4617DC7EAD0A62817E9DF0BEE9A5FE2 52482E13C1B3F562C4A692D93246FAAC45946FF52FF9C349AE49BE7354C4DFC4 FDA4D151E518764BC4259BAF21D616DB3BEA462A36EB978168918CC9F49E5B91 0FC750477E2E5F992B29393FECE8F31E95792ADE2181031B9A85D5B965AC42DE 541BB0AF1C5359E47971484919CFB627837EC2CDE157EC885EA0A746A372704A 18375736FE6F4EBB855C63E564BF64ABA4941FB137C381405984161071FA5E7B F1720D26BB7381D175F5F6B81977373D3327DB7666DB20FC5019280761D3C816 8D941A8D373C80F68F36616E857742814950E708C2DBE1D57BB39AAFE780B21C 2DDBB6184B64605E2321BA5D5B009A7E905ABE4D383734288CDE7DF8AC3DFE8C B647A6124838D46D5B60FDB0932EDBF78820796BF7B54B9A71CD97649D78540A 9E06C7CAAB129CF1B1FF9DF5124783896E9CC3A3D6B8A8649FD0A0C09F19E955 846B1ED435426F939A02E414D2D5D705D9291AB61EEF2A448E69F9E91FE0F549 36B457E368441B58CC0125C0A389EDE765AB02CB104E9F3C9E0A19A2324CF369 8E92D0DA513B44E0AB7B5CC9288991142D3557BB98089320EAF0B949722B6596 686444F42CCF068A8484D4563C36CAF71A663B86206D154EE5DA978255341A4D 81F99CC1605FECB72227481788770C240DE61069C0C3AF4F276A01A6ECA2C0F4 E819155FDFE28E4842E796F927BDDE13F2DDA0E2030F37E9EC17B796C078FD4A 8744B64B1E80BC250BEE62ADD591C2D666E5E30FE607C767DF2142B0A9FABFA5 88C9C5967C18C37A2881BF7E7BF542DB5C69D2C163297A1B796C6C130F8CD6C1 FA6C9ED3C79E5CE4E4BEB48139E97E879B49734EF3AB97DFB3AF90144FB27087 C59AF8BA9E71F825BB5A96876204DA4409CFB5E061749587BA5D10E57CC09807 65460AA1FD3B3371A29BF8DB97B1A425800A52AFAA24E127D32325108B9BB5F8 B07B0982C2288784AD7721FB189C497F9DED5A5C82757D335E8FC50D6BCA81D0 7CFA51C44D351FAA9A2A5331A22848A24FBFB8CA3888DB00FEBBFEF05180FD3A 6F4BAAB3AEAD21AFE27662CD95C2F01B614989E66500AE191E89A86DA5FD9514 021F4345776DF82EAE137114FAAB0EBD807A5B68487856979966E1F4614AA00F 1C626493358948DD8F664FAC87810A4C7FFB31E95CF89B03A28F75576DC00E80 4A1638EEEEEB0337F7406470310E950EA4417A2C305B1D1AE324C1FFD3F051DB 0FA938A33C6C61344E54BE336EB7FE7D50F7029FD6C5CDBC06C7DA81F9DFBE8B 7C6DC79091BDFE5BBCBAD69346AC1F2D9687DE7CB7AC3B08CCB02A087AD3A2E8 1F91AC422730CEC88D1D14D807C70F50000833991C53856DB43818E956DAE73A FFDB43BC246048B479C239C8F8B58F36D4F21E68136C7BFAE8C627B4537EE454 9C895902AB121DBC085998E15A7ACAC676B4102BA251F40BE6A0EA4EB50430D5 C7F27246BEAF5532517C21CCBAD3E56801475D7099C3679E4525709DD4383635 B15F4D45938835D03CEBF1092B43A758C9D68D8CF5874C85566E6073DA4ECAB0 F39BFC3F8FAFE44058C04BF2EA86C492EA2B9608399575DDD436A123639975EB 4297EEC874649327CA645D6866912456EB46293CC5491E3B393F0855B86EB5BA 667B46511EEF0B772C9B387B575AA02AE4C37B572F3F5C8A7F914EABBF115B94 13DC134E7FD1BF9319EA21175CB26691CD73AE2EFC6FE643819AD3001814205A 4EA20EF67C393B5226026A743FFFFCE77834BDE51FBB47F86EFA348E844AC01E 594BD7E1CE21B37437660274C72EE31A3D5305088414A6083CC50FD742FFC062 46F24086A97ED005545A34F3AAEB12F1DD9930740C56F31CB0F5862DF2D96641 AAB34F844794C15F70DAF0B3CEA4EBCCFC32B93A1C4E9BBC781C39E4C264D2B8 F4A707C548664D3985F7A21E6A5589F8CE4CFDFA8D532FE5A3E2BAE477993811 28AAAE198D01C1F2DB647884D42E41B532F1B2063A00E6B17A5C4A9F4C2A317B E1B7205759132A9CED886C8CAEB1B89308656F3D2751D2DE74F14B970855BC45 D099562355ABD7D185859A0815DB40A0485A4DE5AC2D4D64D99D9300D1C25D24 F231012F4C052C70644095EE910CE5731BE39AA533B359DB6DC8FB0FF07BAC5F 17D47DB80ADAD7A9AA69703BC8054B9E2A5EE37FD3CDC9F04C66E33094F5C0AA ED640BCC7675EEB0C69793F93535911AA6017FEA1F3FE4CBCC76DDC6C91ADB06 B2B29737C5869E65E98E93FD97FF01C4AA649E945D949DE17F63086E8CD0A5B0 4DC8BB28379467A431D0D54826FD985E0960424D64188C539C766CC995560DD0 DBC31DE3AC02B27C9FDD27CAA7DE09728FE98D93C5AB5C375798AD5DE4363218 6AC49D9907CAF6F2B5C841876DA0EFF50FBA3B9FBAF7E67D7515BDDC602A2622 16CE335B554606569DE3EA096EF89FBD9D3627B891E3E78D0DD2B3A8F6C27617 865E418EA3817DE8E54F71FA45A66D14163736C86A8900FE46C924DAB6424D5E 0EC3E21E4A4156F955B34851DD3FA1151EDEE50A7855EEC149F95C85BEABC35E 8846E78E1506706BBA0DB45B26C0A75CCD73B8AF14C13606E81B2C80C5587F15 A5FB42FE11432F7F07BB80554FB041DD086710BE2400887A5F789923EBE9E6EE 28001B0A1A21876B4AB6C4C59202980D2F127D1A71050DBAE49DAF036469D2BB B48A498468FC6DC61970531CBBDDF7DAFB3CB8 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark {restore}if %%EndFont TeXDict begin 39158280 55380996 1000 600 600 (libidn.dvi) @start /Fa 197[21 58[{}1 74.7198 /CMMI9 rf /Fb 134[39 3[39 39 39 39 2[39 39 39 39 2[39 39 2[39 3[39 97[{}13 74.7198 /CMSLTT10 rf /Fc 133[39 39 39 39 39 39 39 39 39 1[39 39 39 39 39 39 1[39 39 39 39 39 39 39 39 39 39 39 8[39 39 39 39 2[39 1[39 1[39 2[39 1[39 39 1[39 39 39 39 5[39 1[39 39 3[39 39 39 39 1[39 39 39 39 2[39 39 39 39[{}54 74.7198 /CMTT9 rf /Fd 133[34 41 41 55 41 43 30 30 30 1[43 38 43 64 21 41 1[21 43 38 23 34 43 34 43 38 8[58 79 1[58 55 43 57 1[52 60 58 70 48 2[28 58 60 50 52 59 55 54 58 7[38 38 38 38 38 38 38 38 38 38 38 21 26 21 4[21 26[43 12[{}60 74.7198 /CMR9 rf /Fe 206[33 49[{}1 58.1154 /CMR7 rf /Ff 158[35 97[{}1 66.4176 /CMTT8 rf /Fg 162[28 1[28 91[{}2 99.6264 /CMB10 rf /Fh 134[62 3[62 62 62 62 1[62 62 62 1[62 2[62 62 62 62 62 62 62 1[62 39[62 6[62 3[62 62 45[{}21 119.552 /CMTT12 rf /Fi 137[48 51 35 1[39 3[51 1[25 6[42 3[44 7[69 69 94 69 70 63 51 69 1[62 68 71 86 55 71 1[36 71 71 57 60 70 66 65 69 6[25 45 6[45 50[{}34 90.9091 /CMB10 rf /Fj 135[52 52 52 52 52 52 52 52 52 52 52 52 52 2[52 52 52 52 52 52 52 52 52 1[52 42[52 52[{}24 99.6264 /CMSLTT10 rf /Fk 133[40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 2[25 51 45 28 40 51 40 51 45 12[66 51 67 1[62 6[33 68 2[62 1[66 1[68 7[45 4[45 45 45 4[30 25 1[45 28[51 51 12[{}42 90.9091 /CMSL10 rf /Fl 214[35 35 40[{}2 90.9091 /CMSS10 rf /Fm 133[52 52 52 1[52 52 52 52 52 1[52 52 52 52 52 52 1[52 52 52 52 52 52 52 52 52 1[52 6[52 52 1[52 52 52 52 1[52 52 52 1[52 52 1[52 1[52 52 52 52 52 52 52 7[52 52 3[52 52 52 4[52 2[52 6[52 35[{}51 99.6264 /CMTT10 rf /Fn 133[55 65 1[89 65 68 48 48 50 1[68 61 68 102 34 65 1[34 68 61 37 56 68 55 68 60 9[127 2[85 1[92 3[96 2[96 1[46 1[96 77 1[94 89 1[93 7[61 61 61 1[61 61 61 61 61 2[34 33[68 12[{}44 109.091 /CMBX12 rf /Fo 128[48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 4[48 1[48 48 1[48 23[{}99 90.9091 /CMTT10 rf /Fp 197[25 58[{}1 90.9091 /CMMI10 rf /Fq 197[33 58[{}1 119.552 /CMMI12 rf /Fr 134[85 85 117 85 90 63 64 66 1[90 81 90 134 45 85 1[45 1[81 49 74 90 72 90 78 10[122 124 112 90 120 1[110 121 126 1[97 1[83 60 126 1[101 106 124 117 115 122 7[81 81 81 81 81 81 81 81 81 81 12[134 35[{}51 143.462 /CMBX12 rf /Fs 240[45 1[91 13[{}2 90.9091 /CMSY10 rf /Ft 133[60 71 71 97 71 75 52 53 55 1[75 67 75 112 37 71 1[37 75 67 41 61 75 60 75 65 9[139 102 103 94 75 100 1[92 101 105 128 81 1[69 50 105 106 85 88 103 97 96 102 6[37 67 67 67 67 67 67 67 67 67 67 1[37 45 9[112 22[75 12[{}60 119.552 /CMBX12 rf /Fu 131[91 45 40 48 48 66 48 51 35 36 36 48 51 45 51 76 25 48 28 25 51 45 28 40 51 40 51 45 25 2[25 45 25 56 68 68 93 68 68 66 51 67 71 62 71 68 83 57 71 47 33 68 71 59 62 69 66 64 68 1[43 1[71 1[25 25 45 45 45 45 45 45 45 45 45 45 45 25 30 25 1[45 35 35 25 3[76 45 25 18[76 51 51 53 11[{}87 90.9091 /CMR10 rf /Fv 145[108 4[54 4[108 1[108 12[149 6[151 1[116 4[152 71[{}8 172.154 /CMBX12 rf end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%BeginPaperSize: a4 /setpagedevice where { pop << /PageSize [595 842] >> setpagedevice } { /a4 where { pop a4 } if } ifelse %%EndPaperSize end %%EndSetup %%Page: 1 1 TeXDict begin 1 0 bop 150 1318 a Fv(GNU)65 b(Libidn)p 150 1385 3600 34 v 1546 1481 a Fu(In)m(ternationalized)33 b(string)d(pro)s(cessing)g(for)g(the)h(GNU)g(system)2581 1589 y(for)f(v)m(ersion)h(1.28,)h(10)f(July)f(2013)150 5091 y Ft(Simon)45 b(Josefsson)p 150 5141 3600 17 v eop end %%Page: 2 2 TeXDict begin 2 1 bop 150 4633 a Fu(This)30 b(man)m(ual)g(is)h(last)g (up)s(dated)e(10)i(July)f(2013)i(for)e(v)m(ersion)h(1.28)h(of)f(GNU)g (Libidn.)150 4767 y(Cop)m(yrigh)m(t)602 4764 y(c)577 4767 y Fs(\015)f Fu(2002-2013)k(Simon)c(Josefsson.)390 4902 y(P)m(ermission)21 b(is)f(gran)m(ted)h(to)g(cop)m(y)-8 b(,)24 b(distribute)c(and/or)h(mo)s(dify)e(this)i(do)s(cumen)m(t)f (under)f(the)390 5011 y(terms)25 b(of)h(the)f(GNU)h(F)-8 b(ree)27 b(Do)s(cumen)m(tation)g(License,)g(V)-8 b(ersion)26 b(1.3)g(or)f(an)m(y)h(later)g(v)m(ersion)390 5121 y(published)43 b(b)m(y)h(the)h(F)-8 b(ree)46 b(Soft)m(w)m(are)g(F)-8 b(oundation;)53 b(with)44 b(no)g(In)m(v)-5 b(arian)m(t)46 b(Sections,)j(no)390 5230 y(F)-8 b(ron)m(t-Co)m(v)m(er)31 b(T)-8 b(exts,)30 b(and)f(no)f(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts.)41 b(A)29 b(cop)m(y)h(of)f(the)g(license)h(is)f(included)390 5340 y(in)h(the)h(section)g(en)m(titled)h(\\GNU)f(F)-8 b(ree)32 b(Do)s(cumen)m(tation)g(License".)p eop end %%Page: -1 3 TeXDict begin -1 2 bop 3725 -116 a Fu(i)150 299 y Fr(T)-13 b(able)53 b(of)h(Con)l(ten)l(ts)150 641 y Ft(1)135 b(In)l(tro)t (duction)13 b Fq(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)h(:)57 b Ft(1)275 778 y Fu(1.1)92 b(Getting)32 b(Started)21 b Fp(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)51 b Fu(1)275 888 y(1.2)92 b(F)-8 b(eatures)26 b Fp(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)56 b Fu(2)275 997 y(1.3)92 b(Library)29 b(Ov)m(erview)d Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)56 b Fu(2)275 1107 y(1.4)92 b(Supp)s(orted)28 b(Platforms)20 b Fp(:)c(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)51 b Fu(3)275 1216 y(1.5)92 b(Getting)32 b(help)23 b Fp(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)54 b Fu(5)275 1326 y(1.6)92 b(Commercial)31 b(Supp)s(ort)23 b Fp(:)13 b(:)i(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)53 b Fu(5)275 1435 y(1.7)92 b(Do)m(wnloading)31 b(and)f(Installing)9 b Fp(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)39 b Fu(6)399 1545 y(1.7.1)93 b(Installing)31 b(under)e(Windo)m(ws)f Fp(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)58 b Fu(7)275 1655 y(1.8)92 b(Bug)30 b(Rep)s(orts)22 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)53 b Fu(7)275 1764 y(1.9)92 b(Con)m(tributing)18 b Fp(:)c(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)48 b Fu(8)150 2007 y Ft(2)135 b(Preparation)34 b Fq(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) h(:)77 b Ft(9)275 2144 y Fu(2.1)92 b(Header)13 b Fp(:)i(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)43 b Fu(9)275 2253 y(2.2)92 b(Initialization)18 b Fp(:)f(:)f(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)47 b Fu(10)275 2363 y(2.3)92 b(V)-8 b(ersion)31 b(Chec)m(k)8 b Fp(:)16 b(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fu(10)275 2472 y(2.4)92 b(Building)30 b(the)h(source)c Fp(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)56 b Fu(11)275 2582 y(2.5)92 b(Auto)s(conf)30 b(tests)22 b Fp(:)17 b(:)e(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)52 b Fu(11)275 2692 y(2.6)92 b(Memory)30 b(handling)g(under)f(Windo)m(ws)18 b Fp(:)e(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)h(:)f(:)48 b Fu(12)275 2801 y(2.7)92 b(Header)30 b(\014le)h Fo(idn-free.h)24 b Fp(:)15 b(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b Fu(12)275 2911 y(2.8)92 b(Memory)30 b(de-allo)s(cation)j(function)24 b Fp(:)15 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Fu(12)150 3153 y Ft(3)135 b(Utilit)l(y)47 b(F)-11 b(unctions)32 b Fq(:)20 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)78 b Ft(14)275 3290 y Fu(3.1)92 b(Header)30 b(\014le)h Fo(stringprep.h)19 b Fp(:)12 b(:)k(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)49 b Fu(14)275 3400 y(3.2)92 b(Unico)s(de)30 b(Enco)s(ding)g(T)-8 b(ransformation)12 b Fp(:)j(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)41 b Fu(14)275 3509 y(3.3)92 b(Unico)s(de)30 b(Normalization)15 b Fp(:)j(:)d(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)45 b Fu(15)275 3619 y(3.4)92 b(Character)30 b(Set)h(Con)m(v)m(ersion)25 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)54 b Fu(16)150 3861 y Ft(4)135 b(Stringprep)45 b(F)-11 b(unctions)18 b Fq(:)g(:)i(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)63 b Ft(17)275 3998 y Fu(4.1)92 b(Header)30 b(\014le)h Fo(stringprep.h)19 b Fp(:)12 b(:)k(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)49 b Fu(17)275 4108 y(4.2)92 b(De\014ning)30 b(A)g(Stringprep)f(Pro\014le)10 b Fp(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)39 b Fu(17)275 4218 y(4.3)92 b(Con)m(trol)31 b(Flags)20 b Fp(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)50 b Fu(17)275 4327 y(4.4)92 b(Core)30 b(F)-8 b(unctions)10 b Fp(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)40 b Fu(17)275 4437 y(4.5)92 b(Error)29 b(Handling)9 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fu(19)275 4546 y(4.6)92 b(Stringprep)29 b(Pro\014le)h(Macros)21 b Fp(:)c(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)51 b Fu(20)150 4789 y Ft(5)135 b(Pun)l(yco)t(de)44 b(F)-11 b(unctions)18 b Fq(:)g(:)i(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)63 b Ft(22)275 4926 y Fu(5.1)92 b(Header)30 b(\014le)h Fo(punycode.h)24 b Fp(:)15 b(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)56 b Fu(22)275 5035 y(5.2)92 b(Unico)s(de)30 b(Co)s(de)g(P)m(oin)m(t)i(Data)g(T)m(yp)s(e)23 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)54 b Fu(22)275 5145 y(5.3)92 b(Core)30 b(F)-8 b(unctions)10 b Fp(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fu(22)275 5254 y(5.4)92 b(Error)29 b(Handling)9 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fu(24)p eop end %%Page: -2 4 TeXDict begin -2 3 bop 3699 -116 a Fu(ii)150 83 y Ft(6)135 b(IDNA)44 b(F)-11 b(unctions)21 b Fq(:)e(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)65 b Ft(25)275 220 y Fu(6.1)92 b(Header)30 b(\014le)h Fo(idna.h)21 b Fp(:)14 b(:)h(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)50 b Fu(25)275 330 y(6.2)92 b(Con)m(trol)31 b(Flags)20 b Fp(:)d(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)50 b Fu(25)275 439 y(6.3)92 b(Pre\014x)29 b(String)17 b Fp(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)46 b Fu(25)275 549 y(6.4)92 b(Core)30 b(F)-8 b(unctions)10 b Fp(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fu(25)275 658 y(6.5)92 b(Simpli\014ed)29 b(T)-8 b(oASCI)s(I)29 b(In)m(terface)16 b Fp(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)46 b Fu(27)275 768 y(6.6)92 b(Simpli\014ed)29 b(T)-8 b(oUnico)s(de)31 b(In)m(terface)21 b Fp(:)c(:)e(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)51 b Fu(28)275 878 y(6.7)92 b(Error)29 b(Handling)9 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)39 b Fu(29)150 1120 y Ft(7)135 b(TLD)44 b(F)-11 b(unctions)35 b Fq(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)h(:)80 b Ft(31)275 1257 y Fu(7.1)92 b(Header)30 b(\014le)h Fo(tld.h)23 b Fp(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)54 b Fu(31)275 1367 y(7.2)92 b(Core)30 b(F)-8 b(unctions)10 b Fp(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fu(31)275 1476 y(7.3)92 b(Utilit)m(y)32 b(F)-8 b(unctions)14 b Fp(:)i(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Fu(32)275 1586 y(7.4)92 b(High-Lev)m(el)32 b(W)-8 b(rapp)s(er)30 b(F)-8 b(unctions)25 b Fp(:)15 b(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)54 b Fu(33)275 1695 y(7.5)92 b(Error)29 b(Handling)9 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) 39 b Fu(35)150 1938 y Ft(8)135 b(PR29)45 b(F)-11 b(unctions)11 b Fq(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)56 b Ft(36)275 2075 y Fu(8.1)92 b(Header)30 b(\014le)h Fo(pr29.h)21 b Fp(:)14 b(:)h(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)50 b Fu(36)275 2184 y(8.2)92 b(Core)30 b(F)-8 b(unctions)10 b Fp(:)16 b(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)40 b Fu(36)275 2294 y(8.3)92 b(Utilit)m(y)32 b(F)-8 b(unctions)14 b Fp(:)i(:)g(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)44 b Fu(37)275 2403 y(8.4)92 b(Error)29 b(Handling)9 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fu(37)150 2646 y Ft(9)135 b(Examples)15 b Fq(:)21 b(:)e(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)60 b Ft(38)275 2783 y Fu(9.1)92 b(Example)30 b(1)20 b Fp(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)49 b Fu(38)275 2892 y(9.2)92 b(Example)30 b(2)20 b Fp(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)49 b Fu(40)275 3002 y(9.3)92 b(Example)30 b(3)20 b Fp(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)49 b Fu(45)275 3112 y(9.4)92 b(Example)30 b(4)20 b Fp(:)c(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) 49 b Fu(46)275 3221 y(9.5)92 b(Example)30 b(5)20 b Fp(:)c(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)49 b Fu(48)150 3464 y Ft(10)135 b(In)l(v)l(oking)46 b(idn)26 b Fq(:)19 b(:)g(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) 70 b Ft(52)275 3601 y Fu(10.1)92 b(Name)13 b Fp(:)j(:)f(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)42 b Fu(52)275 3710 y(10.2)92 b(Description)22 b Fp(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)51 b Fu(52)275 3820 y(10.3)92 b(Options)11 b Fp(:)k(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)41 b Fu(52)275 3929 y(10.4)92 b(En)m(vironmen)m(t)31 b(V)-8 b(ariables)17 b Fp(:)f(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)46 b Fu(53)275 4039 y(10.5)92 b(Examples)17 b Fp(:)e(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)46 b Fu(53)275 4149 y(10.6)92 b(T)-8 b(roublesho)s (oting)8 b Fp(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)38 b Fu(54)150 4391 y Ft(11)135 b(Emacs)45 b(API)35 b Fq(:)19 b(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)79 b Ft(56)275 4528 y Fu(11.1)92 b(Pun)m(yco)s(de)30 b(Emacs)h(API)16 b Fp(:)e(:)i(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)45 b Fu(56)275 4638 y(11.2)92 b(IDNA)31 b(Emacs)g(API)9 b Fp(:)15 b(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)39 b Fu(56)p eop end %%Page: -3 5 TeXDict begin -3 4 bop 3674 -116 a Fu(iii)150 83 y Ft(12)135 b(Ja)l(v)-7 b(a)46 b(API)15 b Fq(:)k(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)60 b Ft(58)275 220 y Fu(12.1)92 b(Ov)m(erview)23 b Fp(:)16 b(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)52 b Fu(58)275 330 y(12.2)92 b(Miscellaneous)32 b(Programs)14 b Fp(:)h(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)43 b Fu(58)399 439 y(12.2.1)93 b(GenerateRF)m(C3454)8 b Fp(:)19 b(:)d(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g (:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)38 b Fu(58)399 549 y(12.2.2)93 b(GenerateNFK)m(C)23 b Fp(:)17 b(:)e(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)g(:)h(:)52 b Fu(58)399 658 y(12.2.3)93 b(T)-8 b(estIDNA)29 b Fp(:)16 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)57 b Fu(59)399 768 y(12.2.4)93 b(T)-8 b(estNFK)m(C)16 b Fp(:)h(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:) f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)46 b Fu(59)275 878 y(12.3)92 b(P)m(ossible)31 b(Problems)11 b Fp(:)k(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)g(:)h(:)40 b Fu(59)275 987 y(12.4)92 b(A)31 b(Note)g(on)g(Ja)m (v)-5 b(a)31 b(and)f(Unico)s(de)16 b Fp(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h (:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)g(:)h(:)f(:)h(:)45 b Fu(59)150 1230 y Ft(13)135 b(C#)45 b(API)14 b Fq(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h (:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)59 b Ft(61)150 1499 y(14)135 b(Ac)l(kno)l(wledgemen)l(ts)20 b Fq(:)h(:)f(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:) h(:)f(:)h(:)f(:)65 b Ft(62)150 1769 y(15)135 b(History)16 b Fq(:)21 b(:)e(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) h(:)f(:)g(:)h(:)f(:)h(:)61 b Ft(63)150 2039 y(App)t(endix)44 b(A)160 b(PR29)45 b(discussion)30 b Fq(:)19 b(:)h(:)f(:)h(:)f(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)74 b Ft(64)150 2309 y(App)t(endix)44 b(B)166 b(On)44 b(Lab)t(el)i(Separators)33 b Fq(:)20 b(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)77 b Ft(67)275 2446 y Fu(B.1)92 b(Recommended)30 b(W)-8 b(ork)j(around)17 b Fp(:)f(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f (:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:) g(:)h(:)f(:)h(:)f(:)47 b Fu(67)150 2688 y Ft(App)t(endix)d(C)165 b(Cop)l(ying)45 b(Information)25 b Fq(:)c(:)f(:)f(:)g(:)h(:)f(:)h(:)f (:)h(:)f(:)h(:)f(:)70 b Ft(68)275 2825 y Fu(C.1)91 b(GNU)31 b(F)-8 b(ree)31 b(Do)s(cumen)m(tation)h(License)23 b Fp(:)16 b(:)g(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)52 b Fu(68)150 3068 y Ft(F)-11 b(unction)44 b(and)h(V)-11 b(ariable)45 b(Index)29 b Fq(:)19 b(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h (:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)73 b Ft(76)150 3337 y(Concept)45 b(Index)18 b Fq(:)i(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f (:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:)f(:)h(:)f(:)h(:)f(:)h(:)f(:)g(:)h(:) f(:)h(:)f(:)h(:)f(:)63 b Ft(77)p eop end %%Page: 1 6 TeXDict begin 1 5 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(1)150 299 y Fr(1)80 b(In)l(tro)t(duction) 150 582 y Fu(GNU)29 b(Libidn)d(is)i(a)g(fully)g(do)s(cumen)m(ted)g (implemen)m(tation)h(of)f(the)g(Stringprep,)g(Pun)m(yco)s(de)f(and)g (IDNA)150 691 y(sp)s(eci\014cations.)68 b(Libidn's)39 b(purp)s(ose)e(is)j(to)g(enco)s(de)g(and)e(deco)s(de)i(in)m (ternationalized)i(domain)d(name)150 801 y(strings.)i(There)29 b(are)i(nativ)m(e)h(C,)e(C#)g(and)g(Ja)m(v)-5 b(a)31 b(libraries.)275 951 y(The)40 b(C)g(library)h(con)m(tains)h(a)f (generic)h(Stringprep)d(implemen)m(tation.)74 b(Pro\014les)40 b(for)h(Nameprep,)150 1061 y(iSCSI,)f(SASL,)g(XMPP)h(and)f(Kerb)s(eros) g(V5)i(are)f(included.)71 b(Pun)m(yco)s(de)41 b(and)f(ASCI)s(I)f (Compatible)150 1171 y(Enco)s(ding)45 b(\(A)m(CE\))h(via)g(IDNA)g(are)g (supp)s(orted.)84 b(A)46 b(mec)m(hanism)f(to)h(de\014ne)f(T)-8 b(op-Lev)m(el)47 b(Domain)150 1280 y(\(TLD\))35 b(sp)s(eci\014c)e(v)-5 b(alidation)36 b(tables,)f(and)f(to)h(compare)f(strings)g(against)h (those)g(tables,)g(is)f(included.)150 1390 y(Default)d(tables)h(for)e (some)h(TLDs)f(are)g(also)i(included.)275 1540 y(The)37 b(Stringprep)f(API)h(consists)h(of)g(t)m(w)m(o)h(main)e(functions,)i (one)f(for)f(con)m(v)m(erting)i(data)g(from)e(the)150 1650 y(system's)42 b(nativ)m(e)i(represen)m(tation)f(in)m(to)g(UTF-8,)j (and)41 b(one)h(function)g(to)h(p)s(erform)d(the)i(Stringprep)150 1760 y(pro)s(cessing.)d(Adding)25 b(a)g(new)g(Stringprep)f(pro\014le)h (for)g(y)m(our)h(application)g(within)f(the)h(API)f(is)g(straigh)m(t-) 150 1869 y(forw)m(ard.)43 b(The)31 b(Pun)m(yco)s(de)g(API)g(consists)h (of)g(one)g(enco)s(ding)f(function)g(and)g(one)h(deco)s(ding)f (function.)150 1979 y(The)f(IDNA)i(API)e(consists)i(of)e(the)h(T)-8 b(oASCI)s(I)30 b(and)g(T)-8 b(oUnico)s(de)32 b(functions,)f(as)g(w)m (ell)g(as)h(an)e(high-lev)m(el)150 2088 y(in)m(terface)d(for)e(con)m(v) m(erting)i(en)m(tire)f(domain)f(names)g(to)g(and)g(from)g(the)g(A)m(CE) g(enco)s(ded)g(form.)38 b(The)25 b(TLD)150 2198 y(API)36 b(consists)g(of)g(one)g(set)g(of)g(functions)f(to)i(extract)g(the)f (TLD)g(name)f(from)h(a)g(domain)f(string,)j(one)150 2308 y(set)c(of)g(functions)f(to)i(lo)s(cate)g(the)f(prop)s(er)e(TLD)i (table)g(to)h(use)e(based)g(on)h(the)g(TLD)f(name,)i(and)e(core)150 2417 y(functions)h(to)i(v)-5 b(alidate)36 b(a)f(string)g(against)h(a)g (TLD)e(table,)j(and)e(some)g(utilit)m(y)h(wrapp)s(ers)d(to)i(p)s (erform)150 2527 y(all)c(the)g(steps)f(in)g(one)h(call.)275 2677 y(The)24 b(library)g(is)h(used)f(b)m(y)-8 b(,)27 b(e.g.,)g(GNU)f(SASL)e(and)g(Shishi)f(to)j(pro)s(cess)e(user)h(names)f (and)h(passw)m(ords.)150 2787 y(Libidn)32 b(can)h(b)s(e)g(built)g(in)m (to)h(GNU)f(Lib)s(c)g(to)h(enable)f(a)h(new)f(system-wide)g (getaddrinfo)g(\015ag)h(for)f(IDN)150 2897 y(pro)s(cessing.)275 3047 y(Libidn)38 b(is)i(dev)m(elop)s(ed)h(for)f(the)g(GNU/Lin)m(ux)g (system,)j(but)d(runs)e(on)i(o)m(v)m(er)h(20)g(Unix)f(platforms)150 3157 y(\(including)33 b(Solaris,)i(IRIX,)e(AIX,)g(and)g(T)-8 b(ru64\))33 b(and)g(Windo)m(ws.)49 b(The)33 b(library)f(is)i(written)f (in)g(C)g(and)150 3266 y(\(parts)k(of)7 b(\))39 b(the)e(API)g(is)h (also)g(accessible)h(from)e(C)p Fo(++)p Fu(,)i(Emacs)f(Lisp,)g(Python)f (and)g(Ja)m(v)-5 b(a.)63 b(A)38 b(nativ)m(e)150 3376 y(Ja)m(v)-5 b(a)31 b(and)f(C#)g(p)s(ort)g(is)g(included.)275 3527 y(Also)h(included)e(is)i(a)f(command)h(line)f(to)s(ol,)i(sev)m (eral)g(self)e(tests,)i(co)s(de)e(examples,)h(and)f(more.)150 3783 y Ft(1.1)68 b(Getting)46 b(Started)150 3943 y Fu(This)34 b(man)m(ual)i(do)s(cumen)m(ts)f(the)h(library)e(programming)h(in)m (terface.)57 b(All)36 b(functions)f(and)g(data)h(t)m(yp)s(es)150 4052 y(pro)m(vided)c(b)m(y)g(the)g(library)g(are)g(explained.)46 b(Included)31 b(are)h(also)h(examples,)h(and)d(do)s(cumen)m(tation)i (for)150 4162 y(the)h(command)g(line)g(to)s(ol)g Fo(idn)f Fu(that)i(pro)m(vide)f(a)g(quic)m(k)g(in)m(terface)i(to)e(the)g (library)-8 b(.)51 b(The)33 b(Emacs)i(Lisp)150 4272 y(bindings)29 b(for)h(the)h(library)f(is)g(also)i(discussed.)275 4422 y(The)23 b(reader)h(is)h(assumed)e(to)i(p)s(ossess)e(basic)i (familiarit)m(y)h(with)e(in)m(ternationalization)k(concepts)d(and)150 4532 y(net)m(w)m(ork)31 b(programming)f(in)g(C)g(or)h(C)p Fo(++)p Fu(.)275 4682 y(This)c(man)m(ual)h(can)g(b)s(e)f(used)g(in)h (sev)m(eral)h(w)m(a)m(ys.)41 b(If)27 b(read)h(from)f(the)h(b)s (eginning)g(to)g(the)g(end,)g(it)h(giv)m(es)150 4792 y(a)38 b(go)s(o)s(d)g(in)m(tro)s(duction)f(in)m(to)i(the)f(library)f (and)g(ho)m(w)h(it)g(can)g(b)s(e)f(used)g(in)h(an)f(application.)64 b(F)-8 b(orw)m(ard)150 4902 y(references)35 b(are)f(included)g(where)g (necessary)-8 b(.)53 b(Later)35 b(on,)g(the)g(man)m(ual)f(can)h(b)s(e)f (used)f(as)i(a)f(reference)150 5011 y(man)m(ual)40 b(to)g(get)h(just)e (the)h(information)g(needed)f(ab)s(out)h(an)m(y)g(particular)g(in)m (terface)h(of)f(the)g(library)-8 b(.)150 5121 y(Exp)s(erienced)35 b(programmers)g(migh)m(t)h(w)m(an)m(t)h(to)f(start)g(lo)s(oking)h(at)f (the)g(examples)g(at)g(the)g(end)f(of)h(the)150 5230 y(man)m(ual)41 b(\(see)i(Chapter)d(9)i([Examples],)i(page)e(38\),)j (and)c(then)g(only)g(read)g(up)f(those)i(parts)e(of)i(the)150 5340 y(in)m(terface)32 b(whic)m(h)e(are)h(unclear.)p eop end %%Page: 2 7 TeXDict begin 2 6 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(2)150 299 y Ft(1.2)68 b(F)-11 b(eatures)150 458 y Fu(This)30 b(library)g(migh)m(t)h(ha)m(v)m(e)g(a)g (couple)g(of)f(adv)-5 b(an)m(tages)33 b(o)m(v)m(er)e(other)g(libraries) f(doing)h(a)g(similar)f(job.)150 910 y(It's)h(F)-8 b(ree)31 b(Soft)m(w)m(are)630 1020 y(An)m(yb)s(o)s(dy)25 b(can)h(use,)h(mo)s (dify)-8 b(,)27 b(and)f(redistribute)f(it)i(under)e(the)h(terms)g(of)h (a)f(free)g(soft)m(w)m(are)630 1130 y(license.)150 1484 y(It's)31 b(thread-safe)630 1594 y(No)g(global)h(state)f(is)g(k)m(ept)g (in)f(the)g(library)-8 b(.)41 b(All)31 b(functions)f(are)h(re-en)m (tran)m(t.)150 1948 y(It's)g(p)s(ortable)630 2058 y(The)k(co)s(de)g(is) g(in)m(tended)h(to)g(b)s(e)e(written)h(in)g(pure)g(ANSI)f(C89.)56 b(It)36 b(has)e(b)s(een)h(tested)h(on)630 2167 y(man)m(y)30 b(Unix)h(lik)m(e)g(op)s(erating)g(systems,)g(and)f(Windo)m(ws.)150 2522 y(It's)h(mo)s(dularized)630 2631 y(The)i(library)g(is)g(comp)s (osed)g(of)h(sev)m(eral)h(mo)s(dules,)e(and)g(the)g(only)h(in)m (teraction)h(b)s(et)m(w)m(een)630 2741 y(mo)s(dules)j(is)h(through)f (eac)m(h)i(mo)s(dules')e(public)g(API.)h(If)f(y)m(ou)i(only)e(need)h (one)g(piece)h(of)630 2851 y(functionalit)m(y)-8 b(,)31 b(it)d(is)g(p)s(ossible)f(to)i(tak)m(e)h(the)e(\014les)g(y)m(ou)g(need) f(and)h(incorp)s(orate)g(them)g(in)m(to)630 2960 y(y)m(our)i(o)m(wn)h (pro)5 b(ject.)150 3315 y(It's)31 b(not)f(bloated)630 3424 y(The)g(design)g(of)g(the)h(library)f(is)g(based)g(on)g(the)g (smallest)i(API)e(necessary)g(to)h(implemen)m(t)630 3534 y(the)h(basic)g(functionalit)m(y)-8 b(.)47 b(It)32 b(has)f(b)s(een)g (carefully)i(extended)e(with)h(a)g(small)g(n)m(um)m(b)s(er)f(of)630 3643 y(high-lev)m(el)f(wrapp)s(ers)c(to)j(mak)m(e)g(it)g(comfortable)g (to)g(use)f(the)h(library)-8 b(.)40 b(Ho)m(w)m(ev)m(er,)31 b(it)d(do)s(es)630 3753 y(not)j(implemen)m(t)g(additional)g (functionalit)m(y)h(just)e(for)g(the)g(sak)m(e)i(of)e(completeness.)150 4108 y(It's)h(do)s(cumen)m(ted)630 4217 y(Sadly)-8 b(,)31 b(not)f(all)i(soft)m(w)m(are)f(comes)h(with)e(do)s(cumen)m(tation)h (these)g(da)m(ys.)41 b(This)29 b(one)i(do)s(es.)150 4742 y Ft(1.3)68 b(Library)45 b(Ov)l(erview)150 4902 y Fu(The)23 b(follo)m(wing)i(illustration)g(sho)m(w)f(the)g(comp)s(onen)m(ts)g (that)g(mak)m(e)h(up)d(Libidn,)i(and)f(ho)m(w)h(y)m(our)g(applica-)150 5011 y(tion)29 b(relates)h(to)g(the)e(library)-8 b(.)41 b(In)27 b(the)i(illustration,)i(v)-5 b(arious)28 b(comp)s(onen)m(ts)h (are)g(sho)m(wn)f(as)h(b)s(o)m(xes.)40 b(Y)-8 b(ou)150 5121 y(see)28 b(the)f(generic)h(StringPrep)e(comp)s(onen)m(t,)i(the)g (v)-5 b(arious)27 b(StringPrep)f(pro\014les)g(including)h(Nameprep,)150 5230 y(the)39 b(Pun)m(yco)s(de)g(comp)s(onen)m(t,)i(the)f(IDNA)f(comp)s (onen)m(t,)j(and)c(the)i(TLD)e(comp)s(onen)m(t.)67 b(The)39 b(arro)m(ws)150 5340 y(indicate)k(aggregation,)48 b(e.g.,)f(IDNA)c (uses)e(Pun)m(yco)s(de)h(and)g(Nameprep,)j(and)c(in)h(turn)f(Nameprep)p eop end %%Page: 3 8 TeXDict begin 3 7 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(3)150 299 y(uses)38 b(the)h(generic)g (StringPrep)e(in)m(terface.)67 b(The)38 b(in)m(terfaces)i(to)f(all)g (comp)s(onen)m(ts)g(are)f(a)m(v)-5 b(ailable)41 b(for)150 408 y(applications,)32 b(no)e(comp)s(onen)m(t)h(within)f(the)g(library) g(is)g(hidden)f(from)h(the)h(application.)150 3487 y @beginspecial 0 @llx 0 @lly 382 @urx 350 @ury 3820 @rwi @setspecial %%BeginDocument: libidn-components.eps %!PS-Adobe-3.0 EPSF-3.0 %%Title: components.fig %%Creator: fig2dev Version 3.2 Patchlevel 5d %%CreationDate: Wed Jul 10 13:54:51 2013 %%BoundingBox: 0 0 382 350 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 350 moveto 0 0 lineto 382 0 lineto 382 350 lineto closepath clip newpath -47.4 405.1 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06299 0.06299 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 3355 1845 m 3295 1845 3295 2235 60 arcto 4 {pop} repeat 3295 2295 4609 2295 60 arcto 4 {pop} repeat 4669 2295 4669 1905 60 arcto 4 {pop} repeat 4669 1845 3355 1845 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 2663 1845 m 2618 1845 2618 2250 45 arcto 4 {pop} repeat 2618 2295 3141 2295 45 arcto 4 {pop} repeat 3186 2295 3186 1890 45 arcto 4 {pop} repeat 3186 1845 2663 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1988 1845 m 1943 1845 1943 2250 45 arcto 4 {pop} repeat 1943 2295 2467 2295 45 arcto 4 {pop} repeat 2512 2295 2512 1890 45 arcto 4 {pop} repeat 2512 1845 1988 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1313 1845 m 1268 1845 1268 2250 45 arcto 4 {pop} repeat 1268 2295 1792 2295 45 arcto 4 {pop} repeat 1837 2295 1837 1890 45 arcto 4 {pop} repeat 1837 1845 1313 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 870 4560 m 810 4560 810 5099 60 arcto 4 {pop} repeat 810 5159 6735 5159 60 arcto 4 {pop} repeat 6795 5159 6795 4620 60 arcto 4 {pop} repeat 6795 4560 870 4560 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4065 2837 m 4005 2837 4005 3448 60 arcto 4 {pop} repeat 4005 3508 5790 3508 60 arcto 4 {pop} repeat 5850 3508 5850 2897 60 arcto 4 {pop} repeat 5850 2837 4065 2837 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4110 900 m 4050 900 4050 1338 60 arcto 4 {pop} repeat 4050 1398 5520 1398 60 arcto 4 {pop} repeat 5580 1398 5580 960 60 arcto 4 {pop} repeat 5580 900 4110 900 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 2864 1768 m 2864 1863 l 2895 1863 l 2895 1768 l 2895 1768 l 2880 1832 l 2864 1768 l cp eoclip n 2880 1398 m 2880 1848 l gs col0 s gr gr % arrowhead n 2864 1768 m 2880 1832 l 2895 1768 l 2864 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3674 1768 m 3674 1863 l 3705 1863 l 3705 1768 l 3705 1768 l 3690 1832 l 3674 1768 l cp eoclip n 3690 1395 m 3690 1848 l gs col0 s gr gr % arrowhead n 3674 1768 m 3690 1832 l 3705 1768 l 3674 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2864 4493 m 2864 4588 l 2895 4588 l 2895 4493 l 2895 4493 l 2880 4557 l 2864 4493 l cp eoclip n 2880 2298 m 2880 4573 l gs col0 s gr gr % arrowhead n 2864 4493 m 2880 4557 l 2895 4493 l 2864 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2144 4493 m 2144 4588 l 2175 4588 l 2175 4493 l 2175 4493 l 2160 4557 l 2144 4493 l cp eoclip n 2160 2298 m 2160 4573 l gs col0 s gr gr % arrowhead n 2144 4493 m 2160 4557 l 2175 4493 l 2144 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1514 4493 m 1514 4588 l 1545 4588 l 1545 4493 l 1545 4493 l 1530 4557 l 1514 4493 l cp eoclip n 1530 2298 m 1530 4573 l gs col0 s gr gr % arrowhead n 1514 4493 m 1530 4557 l 1545 4493 l 1514 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1019 4493 m 1019 4588 l 1050 4588 l 1050 4493 l 1050 4493 l 1035 4557 l 1019 4493 l cp eoclip n 1035 1398 m 1035 4573 l gs col0 s gr gr % arrowhead n 1019 4493 m 1035 4557 l 1050 4493 l 1019 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1514 1768 m 1514 1863 l 1545 1863 l 1545 1768 l 1545 1768 l 1530 1832 l 1514 1768 l cp eoclip n 1530 1398 m 1530 1848 l gs col0 s gr gr % arrowhead n 1514 1768 m 1530 1832 l 1545 1768 l 1514 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2189 1768 m 2189 1863 l 2220 1863 l 2220 1768 l 2220 1768 l 2205 1832 l 2189 1768 l cp eoclip n 2205 1398 m 2205 1848 l gs col0 s gr gr % arrowhead n 2189 1768 m 2205 1832 l 2220 1768 l 2189 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3539 4493 m 3539 4588 l 3570 4588 l 3570 4493 l 3570 4493 l 3555 4557 l 3539 4493 l cp eoclip n 3555 2298 m 3555 4573 l gs col0 s gr gr % arrowhead n 3539 4493 m 3555 4557 l 3570 4493 l 3539 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4889 4493 m 4889 4588 l 4920 4588 l 4920 4493 l 4920 4493 l 4905 4557 l 4889 4493 l cp eoclip n 4905 3506 m 4905 4573 l gs col0 s gr gr % arrowhead n 4889 4493 m 4905 4557 l 4920 4493 l 4889 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline [15 45] 45 sd n 870 5820 m 810 5820 810 6359 60 arcto 4 {pop} repeat 810 6419 6735 6419 60 arcto 4 {pop} repeat 6795 6419 6795 5880 60 arcto 4 {pop} repeat 6795 5820 870 5820 60 arcto 4 {pop} repeat cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd gs clippath 3705 5669 m 3705 5820 l 3765 5820 l 3765 5669 l 3765 5669 l 3735 5789 l 3705 5669 l cp 3765 5311 m 3765 5160 l 3705 5160 l 3705 5311 l 3705 5311 l 3735 5191 l 3765 5311 l cp eoclip n 3735 5175 m 3735 5805 l gs col0 s gr gr [] 0 sd % arrowhead n 3765 5311 m 3735 5191 l 3705 5311 l 3765 5311 l cp gs col7 1.00 shd ef gr col0 s % arrowhead n 3705 5669 m 3735 5789 l 3765 5669 l 3705 5669 l cp gs col7 1.00 shd ef gr col0 s % Polyline n 840 900 m 765 900 765 1323 75 arcto 4 {pop} repeat 765 1398 3841 1398 75 arcto 4 {pop} repeat 3916 1398 3916 975 75 arcto 4 {pop} repeat 3916 900 840 900 75 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 4349 2755 m 4349 2850 l 4380 2850 l 4380 2755 l 4380 2755 l 4365 2819 l 4349 2755 l cp eoclip n 4365 2277 m 4365 2835 l gs col0 s gr gr % arrowhead n 4349 2755 m 4365 2819 l 4380 2755 l 4349 2755 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4844 2783 m 4844 2878 l 4875 2878 l 4875 2783 l 4875 2783 l 4860 2847 l 4844 2783 l cp eoclip n 4860 1395 m 4860 2863 l gs col0 s gr gr % arrowhead n 4844 2783 m 4860 2847 l 4875 2783 l 4844 2783 l cp gs 0.00 setgray ef gr col0 s % Polyline n 5715 900 m 5670 900 5670 1350 45 arcto 4 {pop} repeat 5670 1395 6750 1395 45 arcto 4 {pop} repeat 6795 1395 6795 945 45 arcto 4 {pop} repeat 6795 900 5715 900 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 6149 4493 m 6149 4588 l 6180 4588 l 6180 4493 l 6180 4493 l 6165 4557 l 6149 4493 l cp eoclip n 6165 1398 m 6165 4573 l gs col0 s gr gr % arrowhead n 6149 4493 m 6165 4557 l 6180 4493 l 6149 4493 l cp gs 0.00 setgray ef gr col0 s /Helvetica ff 165.00 scf sf 3600 2107 m gs 1 -1 sc (Nameprep) col0 sh gr /Helvetica ff 165.00 scf sf 2700 2130 m gs 1 -1 sc (iSCSI) col0 sh gr /Helvetica ff 165.00 scf sf 2025 2130 m gs 1 -1 sc (SASL) col0 sh gr /Helvetica ff 165.00 scf sf 1327 2130 m gs 1 -1 sc (XMPP) col0 sh gr /Helvetica-Bold ff 165.00 scf sf 3150 4905 m gs 1 -1 sc (GNU IDN Library) col0 sh gr /Helvetica ff 150.00 scf sf 4751 3227 m gs 1 -1 sc (IDNA) col0 sh gr /Helvetica ff 165.00 scf sf 4455 1215 m gs 1 -1 sc (Punycode) col0 sh gr /Helvetica ff 165.00 scf sf 3345 6157 m gs 1 -1 sc (Application) col0 sh gr /Helvetica ff 165.00 scf sf 1935 1215 m gs 1 -1 sc (StringPrep) col0 sh gr /Helvetica ff 165.00 scf sf 6075 1170 m gs 1 -1 sc (TLD) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF %%EndDocument @endspecial 250 x Ft(1.4)68 b(Supp)t(orted)44 b(Platforms)150 3896 y Fu(Libidn)38 b(has)h(at)h(some)f(p)s(oin)m(t)g(in)g(time)h(b)s (een)e(tested)i(on)f(the)g(follo)m(wing)i(platforms.)67 b(Build)39 b(rep)s(orts)150 4006 y(for)31 b(eac)m(h)i(platforms)f(and)f (Libidn)f(v)m(ersion)i(is)g(a)m(v)-5 b(ailable)34 b(at)e Fo(http:)q(/)q(/)q(autobuild)q(.)q(josefs)o(son)q(.org/)150 4115 y(libidn/)p Fu(.)199 4261 y(1.)61 b(Debian)31 b(GNU/Lin)m(ux)g (3.0)g(\(W)-8 b(o)s(o)s(dy\))330 4402 y(GCC)39 b(2.95.4)j(and)c(GNU)i (Mak)m(e.)69 b(This)39 b(is)g(the)h(main)f(dev)m(elopmen)m(t)i (platform.)68 b Fo(alphaev67-)330 4511 y(unknown-linux-gnu)p Fu(,)140 b Fo(alphaev6-unknown-linux-gnu)o Fu(,)f Fo (arm-unknown-linux-gnu)p Fu(,)330 4621 y Fo(armv4l-unknown-linux-gnu)o Fu(,)81 b Fo(hppa-unknown-linux-gnu)p Fu(,)f Fo(hppa64-unknown-linux-) 330 4731 y(gnu)p Fu(,)88 b Fo(i686-pc-linux-gnu)p Fu(,)83 b Fo(ia64-unknown-linux-gnu)p Fu(,)g Fo(m68k-unknown-linux-gnu)p Fu(,)330 4840 y Fo(mips-unknown-linux-gnu)p Fu(,)56 b Fo(mipsel-unknown-linux-gnu)p Fu(,)g Fo(powerpc-unknown-linux-)330 4950 y(gnu)p Fu(,)64 b Fo(s390-ibm-linux-gnu)p Fu(,)c Fo(sparc-unknown-linux-gnu)p Fu(,)f Fo(sparc64-unknown-linux-)330 5059 y(gnu)p Fu(.)199 5200 y(2.)i(Debian)31 b(GNU/Lin)m(ux)g(2.1)330 5340 y(GCC)f(2.95.1)j(and)c(GNU)i(Mak)m(e.)43 b Fo (armv4l-unknown-linux-gn)o(u)p Fu(.)p eop end %%Page: 4 9 TeXDict begin 4 8 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(4)199 299 y(3.)61 b(T)-8 b(ru64)30 b(UNIX)330 438 y(T)-8 b(ru64)32 b(UNIX)h(C)f(compiler)h(and)f (T)-8 b(ru64)33 b(Mak)m(e.)48 b Fo(alphaev67-dec-osf5.1)p Fu(,)28 b Fo(alphaev68-dec-)330 548 y(osf5.1)p Fu(.)199 687 y(4.)61 b(SuSE)29 b(Lin)m(ux)h(7.1)330 827 y(GCC)47 b(2.96)j(and)d(GNU)i(Mak)m(e.)95 b Fo(alphaev6-unknown-linux-)o(gnu)o Fu(,)47 b Fo(alphaev67-unknown-)330 936 y(linux-gnu)p Fu(.)199 1076 y(5.)61 b(SuSE)29 b(Lin)m(ux)h(7.2a)330 1215 y(GCC)g(3.0)h(and)f(GNU)h(Mak)m(e.)42 b Fo(ia64-unknown-linux-gnu) p Fu(.)199 1355 y(6.)61 b(SuSE)29 b(Lin)m(ux)330 1494 y(GCC)74 b(3.2.2)h(and)f(GNU)h(Mak)m(e.)173 b Fo (x86_64-unknown-linux-gnu)67 b Fu(\(AMD64)76 b(Opteron)330 1604 y(\\Melo)s(dy"\).)199 1743 y(7.)61 b(SuSE)29 b(En)m(terprise)h (Serv)m(er)g(9)h(on)f(IBM)h(Op)s(enP)m(o)m(w)m(er)f(720)330 1883 y(GCC)g(3.3.3)i(and)e(GNU)h(Mak)m(e.)42 b Fo (powerpc64-unknown-linux-g)o(nu)p Fu(.)199 2022 y(8.)61 b(RedHat)31 b(Lin)m(ux)f(7.2)330 2162 y(GCC)47 b(2.96)j(and)d(GNU)i (Mak)m(e.)95 b Fo(alphaev6-unknown-linux-)o(gnu)o Fu(,)47 b Fo(alphaev67-unknown-)330 2271 y(linux-gnu)p Fu(,)28 b Fo(ia64-unknown-linux-gnu)p Fu(.)199 2411 y(9.)61 b(RedHat)31 b(Lin)m(ux)f(8.0)330 2550 y(GCC)g(3.2)h(and)f(GNU)h(Mak)m(e.)42 b Fo(i686-pc-linux-gnu)p Fu(.)154 2690 y(10.)61 b(RedHat)31 b(Adv)-5 b(anced)30 b(Serv)m(er)h(2.1)330 2829 y(GCC)f(2.96)i(and)e (GNU)h(Mak)m(e.)42 b Fo(i686-pc-linux-gnu)p Fu(.)154 2969 y(11.)61 b(Slac)m(kw)m(are)32 b(Lin)m(ux)e(8.0.01)330 3108 y(GCC)g(2.95.3)j(and)c(GNU)i(Mak)m(e.)43 b Fo(i686-pc-linux-gnu)p Fu(.)154 3248 y(12.)61 b(Mandrak)m(e)31 b(Lin)m(ux)f(9.0)330 3387 y(GCC)g(3.2)h(and)f(GNU)h(Mak)m(e.)42 b Fo(i686-pc-linux-gnu)p Fu(.)154 3527 y(13.)61 b(IRIX)30 b(6.5)330 3666 y(MIPS)g(C)g(compiler,) h(IRIX)f(Mak)m(e.)42 b Fo(mips-sgi-irix6.5)p Fu(.)154 3806 y(14.)61 b(AIX)30 b(4.3.2)330 3945 y(IBM)h(C)f(for)g(AIX)g (compiler,)i(AIX)e(Mak)m(e.)42 b Fo(rs6000-ibm-aix4.3.2.0)p Fu(.)154 4085 y(15.)61 b(Microsoft)32 b(Windo)m(ws)e(2000)i(\(Cygwin\)) 330 4224 y(GCC)e(3.2,)i(GNU)f(mak)m(e.)41 b Fo(i686-pc-cygwin)p Fu(.)154 4364 y(16.)61 b(HP-UX)31 b(11)330 4503 y(HP-UX)g(C)f(compiler) h(and)f(HP)g(Mak)m(e.)42 b Fo(ia64-hp-hpux11.22)p Fu(,)26 b Fo(hppa2.0w-hp-hpux11.11)p Fu(.)154 4643 y(17.)61 b(SUN)30 b(Solaris)h(2.7)330 4782 y(GCC)f(3.0.4)i(and)e(GNU)h(Mak)m(e.)42 b Fo(sparc-sun-solaris2.7)p Fu(.)154 4922 y(18.)61 b(SUN)30 b(Solaris)h(2.8)330 5061 y(Sun)e(W)-8 b(orkShop)30 b(Compiler)g(C)g (6.0)i(and)d(SUN)i(Mak)m(e.)42 b Fo(sparc-sun-solaris2.8)p Fu(.)154 5200 y(19.)61 b(SUN)30 b(Solaris)h(2.9)330 5340 y(Sun)e(F)-8 b(orte)32 b(Dev)m(elop)s(er)f(7)g(C)f(compiler)h(and)f (GNU)h(Mak)m(e.)42 b Fo(sparc-sun-solaris2.9)p Fu(.)p eop end %%Page: 5 10 TeXDict begin 5 9 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(5)154 299 y(20.)61 b(NetBSD)32 b(1.6)330 437 y(GCC)85 b(2.95.3)j(and)d(GNU)h(Mak)m(e.)208 b Fo(alpha-unknown-netbsd1.6)p Fu(,)94 b Fo(i386-unknown-)330 547 y(netbsdelf1.6)p Fu(.)154 685 y(21.)61 b(Op)s(enBSD)29 b(3.1)j(and)e(3.2)330 823 y(GCC)79 b(2.95.3)j(and)e(GNU)g(Mak)m(e.)191 b Fo(alpha-unknown-openbsd3.)o(1)p Fu(,)87 b Fo(i386-unknown-)330 933 y(openbsd3.1)p Fu(.)154 1071 y(22.)61 b(F)-8 b(reeBSD)32 b(4.7)f(and)f(4.8)330 1209 y(GCC)74 b(2.95.4)i(and)d(GNU)i(Mak)m(e.)173 b Fo(alpha-unknown-freebsd4.7)p Fu(,)79 b Fo(alpha-unknown-)330 1319 y(freebsd4.8)p Fu(,)28 b Fo(i386-unknown-freebsd4.7)p Fu(,)c Fo(i386-unknown-freebsd4.8)p Fu(.)154 1457 y(23.)61 b(MacOS)31 b(X)f(10.2)i(Serv)m(er)e(Edition)330 1595 y(GCC)g(3.1)h(and)f(GNU)h(Mak)m(e.)42 b Fo(powerpc-apple-darwin6.5)p Fu(.)154 1734 y(24.)61 b(MacOS)31 b(X)f(10.4)i(\\Tiger")g(with)e(Xco)s (de)h(2.0)330 1872 y(GCC)f(4.0)h(and)f(GNU)h(Mak)m(e.)42 b Fo(powerpc-apple-darwin8.0)p Fu(.)154 2010 y(25.)61 b(Cross)30 b(compiled)h(to)g(uClin)m(ux/uClib)s(c)e(on)h(Motorola)j (Cold\014re)330 2148 y(GCC)d(3.4)h(and)f(GNU)h(Mak)m(e)h Fo(m68k-uclinux-elf)p Fu(.)154 2287 y(26.)61 b(Cross)30 b(compiled)h(to)g(ARM)f(using)g(Glib)s(c)330 2425 y(GCC)g(2.95)i(and)e (GNU)h(Mak)m(e)h Fo(arm-linux)p Fu(.)154 2563 y(27.)61 b(Cross)30 b(compiled)h(to)g(Mingw32.)330 2701 y(GCC)f(3.4.4)i(and)e (GNU)h(Mak)m(e)h Fo(i586-mingw32msvc)p Fu(.)154 2840 y(28.)61 b(OS/2)330 2978 y(GCC.)275 3149 y(If)29 b(y)m(ou)i(use)f (Libidn)f(on,)i(or)f(p)s(ort)g(Libidn)f(to,)j(a)e(new)g(platform)h (please)g(rep)s(ort)f(it)g(to)i(the)e(author.)150 3392 y Ft(1.5)68 b(Getting)46 b(help)150 3552 y Fu(A)36 b(mailing)g(list)g (where)f(users)g(of)g(Libidn)f(ma)m(y)i(help)f(eac)m(h)i(other)f (exists,)h(and)e(y)m(ou)h(can)g(reac)m(h)g(it)g(b)m(y)150 3661 y(sending)d(e-mail)i(to)g Fo(help-libidn@gnu)s(.)r(org)p Fu(.)46 b(Arc)m(hiv)m(es)35 b(of)f(the)g(mailing)g(list)h(discussions,) f(and)f(an)150 3771 y(in)m(terface)38 b(to)f(manage)g(subscriptions,)g (is)g(a)m(v)-5 b(ailable)39 b(through)c(the)i(W)-8 b(orld)37 b(Wide)g(W)-8 b(eb)37 b(at)g Fo(http:)5 b(/)g(/)150 3881 y(lists.gnu.org/mailman/li)o(stin)o(fo/h)o(elp)o(-lib)o(idn)p Fu(.)150 4124 y Ft(1.6)68 b(Commercial)47 b(Supp)t(ort)150 4284 y Fu(Commercial)29 b(supp)s(ort)e(is)h(a)m(v)-5 b(ailable)31 b(for)d(users)f(of)i(GNU)g(Libidn.)39 b(The)27 b(kind)h(of)g(supp)s(ort)f(that)i(can)g(b)s(e)150 4393 y(purc)m(hased)h(ma)m(y)g(include:)225 4535 y Fs(\017)60 b Fu(Implemen)m(t)26 b(new)g(features.)40 b(Suc)m(h)26 b(as)g(coun)m(try)h(co)s(de)f(sp)s(eci\014c)g(pro\014ling)g(to)h(supp)s (ort)e(a)h(restricted)330 4645 y(subset)k(of)g(Unico)s(de.)225 4783 y Fs(\017)60 b Fu(P)m(ort)44 b(Libidn)d(to)j(new)e(platforms.)78 b(This)42 b(could)h(include)g(p)s(orting)f(Libidn)g(to)h(an)g(em)m(b)s (edded)330 4893 y(platforms)30 b(that)h(ma)m(y)g(need)f(memory)h(or)f (size)h(optimization.)225 5031 y Fs(\017)60 b Fu(In)m(tegrating)32 b(IDN)f(supp)s(ort)d(in)i(y)m(our)h(existing)g(pro)5 b(ject.)225 5169 y Fs(\017)60 b Fu(System)30 b(design)g(of)h(comp)s (onen)m(ts)f(related)i(to)f(IDN.)275 5340 y(If)e(y)m(ou)i(are)g(in)m (terested,)h(please)f(write)f(to:)p eop end %%Page: 6 11 TeXDict begin 6 10 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(6)150 299 y Fo(Simon)46 b(Josefsson)g (Datakonsult)e(AB)150 408 y(Hagagatan)h(24)150 518 y(113)i(47)g (Stockholm)150 628 y(Sweden)150 847 y(E-mail:)f(simon@josefsson.org)275 974 y Fu(If)22 b(y)m(our)i(compan)m(y)f(pro)m(vides)h(supp)s(ort)d (related)j(to)g(GNU)g(Libidn)e(and)h(w)m(ould)g(lik)m(e)i(to)f(b)s(e)e (men)m(tioned)150 1084 y(here,)30 b(con)m(tact)j(the)e(author)f(\(see)h (Section)g(1.8)h([Bug)f(Rep)s(orts],)f(page)h(7\).)150 1301 y Ft(1.7)68 b(Do)l(wnloading)46 b(and)f(Installing)150 1461 y Fu(The)30 b(pac)m(k)-5 b(age)32 b(can)f(b)s(e)f(do)m(wnloaded)g (from)g(sev)m(eral)i(places,)f(including:)275 1588 y Fo(ftp://alpha.gnu.org/pub)o(/gn)o(u/li)o(bidn)o(/)275 1715 y Fu(The)d(latest)j(v)m(ersion)f(is)f(stored)g(in)g(a)h(\014le,)g (e.g.,)h(`)p Fo(libidn-1.28.tar.gz)p Fu(')25 b(where)j(the)i(`)p Fo(1.28)p Fu(')e(v)-5 b(alue)150 1824 y(is)30 b(the)h(highest)g(v)m (ersion)f(n)m(um)m(b)s(er)g(in)g(the)g(directory)-8 b(.)275 1952 y(The)33 b(pac)m(k)-5 b(age)35 b(is)f(then)f(extracted,)j (con\014gured)c(and)h(built)h(lik)m(e)g(man)m(y)g(other)g(pac)m(k)-5 b(ages)35 b(that)f(use)150 2061 y(Auto)s(conf.)40 b(F)-8 b(or)28 b(detailed)h(information)f(on)g(con\014guring)f(and)g(building) g(it,)i(refer)f(to)g(the)g Fo(INSTALL)e Fu(\014le)150 2171 y(that)31 b(is)f(part)h(of)f(the)h(distribution)e(arc)m(hiv)m(e.) 275 2298 y(Here)44 b(is)g(an)g(example)h(terminal)g(session)f(that)h (do)m(wnload,)j(con\014gure,)f(build)c(and)h(install)h(the)150 2407 y(pac)m(k)-5 b(age.)43 b(Y)-8 b(ou)31 b(will)f(need)g(a)h(few)f (basic)h(to)s(ols,)h(suc)m(h)e(as)g(`)p Fo(sh)p Fu(',)h(`)p Fo(make)p Fu(')e(and)h(`)p Fo(cc)p Fu('.)390 2535 y Fo($)47 b(wget)g(-q)g(ftp://alpha.gnu.org/pub/g)o(nu/l)o(ibid)o(n/l)o(ibid)o (n-1.)o(28.)o(tar.)o(gz)390 2644 y($)g(tar)g(xfz)g(libidn-1.28.tar.gz) 390 2754 y($)g(cd)h(libidn-1.28/)390 2863 y($)f(./configure)390 2973 y(...)390 3083 y($)g(make)390 3192 y(...)390 3302 y($)g(make)g(install)390 3411 y(...)275 3538 y Fu(After)30 b(that)h(Libidn)e(should)h(b)s(e)f(prop)s(erly)h(installed)h(and)e (ready)i(for)f(use.)275 3666 y(A)g(few)g Fo(configure)e Fu(options)j(ma)m(y)g(b)s(e)e(relev)-5 b(an)m(t,)32 b(summarized)e(in)g (the)h(table.)150 3810 y Fo(--enable-java)630 3920 y Fu(Build)f(the)h(Ja)m(v)-5 b(a)32 b(p)s(ort)e(in)m(to)h(a)g(*.JAR)g (\014le.)41 b(See)31 b(Chapter)f(12)i([Ja)m(v)-5 b(a)31 b(API],)g(page)g(58,)h(for)630 4029 y(more)f(information.)150 4174 y Fo(--disable-tld)630 4284 y Fu(Disable)24 b(the)f(TLD)f(mo)s (dule.)38 b(This)21 b(w)m(ould)i(t)m(ypically)h(only)f(b)s(e)f(useful)g (if)h(y)m(ou)g(are)g(building)630 4393 y(on)37 b(a)g(memory)g (restricted)g(platforms.)60 b(See)37 b(Chapter)g(7)g([TLD)g(F)-8 b(unctions],)39 b(page)f(31,)630 4503 y(for)30 b(more)h(information.) 150 4647 y Fo(--enable-csharp[=IMPL])630 4757 y Fu(Build)38 b(the)h Fo(C#)e Fu(p)s(ort)h(in)m(to)h(a)g Fo(*.DLL)e Fu(\014le.)64 b(See)39 b(Chapter)e(13)i([C#)f(API],)h(page)g(61,)i(for) 630 4867 y(more)34 b(information.)51 b(Here,)35 b Fo(IMPL)e Fu(is)h Fo(pnet)e Fu(or)i Fo(mono)p Fu(,)g(indicating)g(whether)f(the)h (PNET)630 4976 y Fo(cscc)29 b Fu(compiler)i(or)g(the)f(Mono)h Fo(mcs)f Fu(compiler)h(should)e(b)s(e)h(used,)g(resp)s(ectiv)m(ely)-8 b(.)150 5121 y Fo(--disable-valgrind-tests)630 5230 y Fu(Disable)26 b(running)d(the)i(self-c)m(hec)m(ks)i(under)c(V)-8 b(algrind)25 b(\()p Fo(http://valgrind.org/)p Fu(\).)34 b(Nor-)630 5340 y(mally)j(V)-8 b(algrind)37 b(do)s(es)g(not)g(cause)g (problems)f(and)g(can)g(detect)i(some)f(sev)m(ere)h(memory)p eop end %%Page: 7 12 TeXDict begin 7 11 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(7)630 299 y(errors.)40 b(If)30 b(y)m(ou)g(are)h(getting)h(errors)d(from)h(V)-8 b(algrind)31 b(that)f(are)h(caused)f(b)m(y)g(the)g(compiler)630 408 y(or)41 b(lib)s(c)f(\(p)s(ossibly)h(as)g(a)g(result)g(of)g(sp)s(ecial)g (optimization)i(\015ags\),)h(y)m(ou)d(ma)m(y)h(use)e(this)630 518 y(option)31 b(to)g(disable)f(the)h(use)f(of)h(V)-8 b(algrind.)275 684 y(F)g(or)31 b(the)f(complete)i(list,)f(refer)f(to)i (the)e(output)g(from)g Fo(configure)e(--help)p Fu(.)150 887 y Fn(1.7.1)63 b(Installing)41 b(under)h(Windo)m(ws)150 1034 y Fu(There)30 b(are)h(t)m(w)m(o)g(w)m(a)m(ys)h(to)f(build)e (Libidn)g(on)h(Windo)m(ws:)41 b(via)31 b(MinGW)g(or)g(via)g(Visual)g (Studio.)275 1173 y(With)36 b(MinGW,)h(y)m(ou)f(can)g(build)f(a)h (Libidn)e(DLL)i(and)f(use)h(it)g(from)f(other)i(applications.)58 b(After)150 1282 y(installing)38 b(MinGW)g(\()p Fo(http:)5 b(/)g(/)t(mingw)g(.)t(org)g(/)t Fu(\))36 b(follo)m(w)i(the)f(generic)h (installation)h(instructions)e(\(see)150 1392 y(Section)31 b(1.7)h([Do)m(wnloading)g(and)d(Installing],)j(page)f(6\).)41 b(The)30 b(DLL)h(is)f(installed)h(b)m(y)g(default.)275 1531 y(F)-8 b(or)30 b(information)h(on)f(ho)m(w)g(to)h(use)f(the)g(DLL) g(in)g(other)h(applications,)g(see:)42 b Fo(http://www.mingw.)150 1640 y(org/mingwfaq.shtml#faq-m)o(svcd)o(ll)p Fu(.)275 1779 y(Y)-8 b(ou)35 b(can)f(build)g(Libidn)f(as)i(a)g(nativ)m(e)h (Visual)f(Studio)f(C)p Fo(++)f Fu(pro)5 b(ject.)54 b(This)34 b(allo)m(ws)i(y)m(ou)f(to)g(build)150 1888 y(the)c(co)s(de)g(for)g (other)g(platforms)g(that)h(VS)e(supp)s(orts,)g(suc)m(h)g(as)i(Windo)m (ws)f(Mobile.)43 b(Y)-8 b(ou)32 b(need)e(Visual)150 1998 y(Studio)g(2005)i(or)e(later.)275 2137 y(First)i(do)m(wnload)h(and)f (unpac)m(k)g(the)h(arc)m(hiv)m(e)h(as)f(describ)s(ed)e(in)i(the)f (generic)i(installation)g(instruc-)150 2246 y(tions)f(\(see)h(Section)g (1.7)g([Do)m(wnloading)h(and)d(Installing],)j(page)f(6\).)49 b(Don't)34 b(run)e Fo(./configure)p Fu(.)45 b(In-)150 2356 y(stead,)30 b(start)f(Visual)f(Studio)g(and)g(op)s(en)g(the)h(pro) 5 b(ject)28 b(\014le)h Fo(windows/libidn.sln)23 b Fu(inside)29 b(the)f(Libidn)150 2466 y(directory)-8 b(.)42 b(Y)-8 b(ou)31 b(should)e(b)s(e)h(able)h(to)g(build)e(the)i(pro)5 b(ject)30 b(using)g(Build)h(Pro)5 b(ject.)275 2604 y(Output)20 b(libraries)j(will)f(b)s(e)g(written)g(in)m(to)h(the)f Fo(windows/lib)d Fu(\(or)j Fo(windows/lib/debug)c Fu(for)k(Debug)150 2714 y(v)m(ersions\))31 b(folder.)275 2852 y(When)h(w)m(orking)i(with)e (Windo)m(ws)i(y)m(ou)f(ma)m(y)h(w)m(an)m(t)f(to)h(lo)s(ok)g(in)m(to)g (the)f(sp)s(ecial)h(memory)f(handling)150 2962 y(functions)23 b(that)i(ma)m(y)f(b)s(e)f(needed)h(\(see)h(Section)f(2.6)h([Memory)g (handling)e(under)f(Windo)m(ws],)k(page)e(12\).)150 3201 y Ft(1.8)68 b(Bug)45 b(Rep)t(orts)150 3360 y Fu(If)30 b(y)m(ou)h(think)f(y)m(ou)g(ha)m(v)m(e)i(found)d(a)i(bug)e(in)h (Libidn,)g(please)h(in)m(v)m(estigate)j(it)c(and)g(rep)s(ort)g(it.)225 3499 y Fs(\017)60 b Fu(Please)40 b(mak)m(e)g(sure)d(that)j(the)f(bug)f (is)g(really)i(in)e(Libidn,)i(and)e(preferably)g(also)i(c)m(hec)m(k)g (that)f(it)330 3608 y(hasn't)30 b(already)h(b)s(een)f(\014xed)g(in)g (the)g(latest)i(v)m(ersion.)225 3745 y Fs(\017)60 b Fu(Y)-8 b(ou)31 b(ha)m(v)m(e)g(to)h(send)d(us)h(a)h(test)g(case)g(that)g(mak)m (es)g(it)g(p)s(ossible)f(for)g(us)g(to)h(repro)s(duce)e(the)i(bug.)225 3882 y Fs(\017)60 b Fu(Y)-8 b(ou)29 b(also)h(ha)m(v)m(e)g(to)g(explain) f(what)g(is)g(wrong;)g(if)g(y)m(ou)g(get)h(a)f(crash,)h(or)f(if)f(the)h (results)g(prin)m(ted)g(are)330 3991 y(not)36 b(go)s(o)s(d)g(and)g(in)g (that)g(case,)j(in)d(what)g(w)m(a)m(y)-8 b(.)59 b(Mak)m(e)38 b(sure)d(that)i(the)f(bug)g(rep)s(ort)f(includes)h(all)330 4101 y(information)31 b(y)m(ou)f(w)m(ould)h(need)f(to)h(\014x)f(this)g (kind)f(of)i(bug)f(for)g(someone)h(else.)275 4266 y(Please)36 b(mak)m(e)f(an)g(e\013ort)h(to)f(pro)s(duce)f(a)h(self-con)m(tained)i (rep)s(ort,)f(with)e(something)i(de\014nite)e(that)150 4376 y(can)29 b(b)s(e)g(tested)g(or)g(debugged.)40 b(V)-8 b(ague)31 b(queries)e(or)g(piecemeal)h(messages)g(are)g(di\016cult)f (to)h(act)g(on)f(and)150 4486 y(don't)h(help)g(the)h(dev)m(elopmen)m(t) h(e\013ort.)275 4624 y(If)e(y)m(our)g(bug)g(rep)s(ort)g(is)g(go)s(o)s (d,)h(w)m(e)g(will)g(do)f(our)g(b)s(est)g(to)i(help)e(y)m(ou)g(to)i (get)f(a)g(corrected)h(v)m(ersion)f(of)150 4734 y(the)j(soft)m(w)m (are;)j(if)d(the)g(bug)f(rep)s(ort)g(is)h(p)s(o)s(or,)g(w)m(e)g(w)m (on't)g(do)g(an)m(ything)g(ab)s(out)g(it)g(\(apart)g(from)f(asking)150 4843 y(y)m(ou)e(to)g(send)e(b)s(etter)i(bug)f(rep)s(orts\).)275 4982 y(If)19 b(y)m(ou)i(think)f(something)h(in)f(this)g(man)m(ual)h(is) f(unclear,)j(or)d(do)m(wnrigh)m(t)h(incorrect,)i(or)e(if)f(the)h (language)150 5092 y(needs)30 b(to)h(b)s(e)f(impro)m(v)m(ed,)h(please)g (also)g(send)f(a)h(note.)275 5230 y(Send)e(y)m(our)h(bug)g(rep)s(ort)g (to:)1495 5340 y(`)p Fo(bug-libidn@gnu.org)p Fu(')p eop end %%Page: 8 13 TeXDict begin 8 12 bop 150 -116 a Fu(Chapter)30 b(1:)41 b(In)m(tro)s(duction)2592 b(8)150 299 y Ft(1.9)68 b(Con)l(tributing)150 458 y Fu(If)25 b(y)m(ou)h(w)m(an)m(t)g(to)g(submit)f(a)h(patc)m(h)g (for)f(inclusion)h({)f(from)h(solv)m(e)g(a)g(t)m(yp)s(o)g(y)m(ou)g (disco)m(v)m(ered,)i(up)c(to)i(adding)150 568 y(supp)s(ort)38 b(for)h(a)h(new)e(feature)i({)g(y)m(ou)g(should)e(submit)h(it)h(as)f(a) h(bug)f(rep)s(ort)f(\(see)j(Section)f(1.8)g([Bug)150 677 y(Rep)s(orts],)32 b(page)g(7\).)44 b(There)30 b(are)i(some)g (things)f(that)h(y)m(ou)f(can)h(do)f(to)h(increase)g(the)f(c)m(hances)h (for)f(it)h(to)150 787 y(b)s(e)e(included)f(in)h(the)h(o\016cial)h(pac) m(k)-5 b(age.)275 922 y(Unless)41 b(y)m(our)g(patc)m(h)h(is)f(v)m(ery)h (small)g(\(sa)m(y)-8 b(,)46 b(under)40 b(10)i(lines\))g(w)m(e)f (require)g(that)h(y)m(ou)g(assign)g(the)150 1031 y(cop)m(yrigh)m(t)d (of)f(y)m(our)f(w)m(ork)h(to)g(the)g(F)-8 b(ree)39 b(Soft)m(w)m(are)f (F)-8 b(oundation.)63 b(This)37 b(is)g(to)i(protect)f(the)g(freedom)150 1141 y(of)44 b(the)g(pro)5 b(ject.)81 b(If)43 b(y)m(ou)h(ha)m(v)m(e)h (not)f(already)h(signed)e(pap)s(ers,)j(w)m(e)f(will)f(send)f(y)m(ou)h (the)g(necessary)150 1250 y(information)31 b(when)e(y)m(ou)i(submit)e (y)m(our)i(con)m(tribution.)275 1385 y(F)-8 b(or)33 b(con)m(tributions) h(that)f(do)s(esn't)g(consist)g(of)g(actual)i(programming)d(co)s(de,)i (the)g(only)f(guidelines)150 1494 y(are)e(common)f(sense.)41 b(Use)31 b(it.)275 1629 y(F)-8 b(or)31 b(co)s(de)f(con)m(tributions,)h (a)g(n)m(um)m(b)s(er)e(of)i(st)m(yle)g(guides)g(will)f(help)g(y)m(ou:) 225 1763 y Fs(\017)60 b Fu(Co)s(ding)26 b(St)m(yle.)40 b(F)-8 b(ollo)m(w)29 b(the)e(GNU)h(Standards)d(do)s(cumen)m(t)h(\(see)i (Section)g(\\top")f(in)g Fo(standards)p Fu(\).)330 1898 y(If)21 b(y)m(ou)g(normally)g(co)s(de)h(using)e(another)i(co)s(ding)f (standard,)h(there)f(is)g(no)g(problem,)i(but)d(y)m(ou)i(should)330 2007 y(use)i(`)p Fo(indent)p Fu(')g(to)h(reformat)g(the)g(co)s(de)g (\(see)g(Section)h(\\top")g(in)e Fo(indent)p Fu(\))f(b)s(efore)i (submitting)f(y)m(our)330 2117 y(w)m(ork.)225 2252 y Fs(\017)60 b Fu(Use)31 b(the)f(uni\014ed)f(di\013)h(format)h(`)p Fo(diff)f(-u)p Fu('.)225 2386 y Fs(\017)60 b Fu(Return)32 b(errors.)47 b(No)33 b(reason)g(whatso)s(ev)m(er)g(should)f(ab)s(ort)h (the)g(execution)g(of)g(the)g(library)-8 b(.)48 b(Ev)m(en)330 2496 y(memory)27 b(allo)s(cation)i(errors,)f(e.g.)41 b(when)26 b(mallo)s(c)i(return)e(NULL,)h(should)f(w)m(ork)h(although)h (result)330 2605 y(in)i(an)g(error)g(co)s(de.)225 2740 y Fs(\017)60 b Fu(Design)31 b(with)f(thread)g(safet)m(y)i(in)e(mind.)40 b(Don't)31 b(use)f(global)i(v)-5 b(ariables)31 b(and)f(the)g(lik)m(e.) 225 2874 y Fs(\017)60 b Fu(Av)m(oid)38 b(using)f(the)g(C)g(math)g (library)-8 b(.)61 b(It)37 b(causes)h(problems)e(for)h(em)m(b)s(edded)f (implemen)m(tations,)330 2984 y(and)30 b(in)g(most)h(situations)g(it)g (is)f(v)m(ery)h(easy)g(to)g(a)m(v)m(oid)h(using)e(it.)225 3118 y Fs(\017)60 b Fu(Do)s(cumen)m(t)23 b(y)m(our)f(functions.)37 b(Use)23 b(commen)m(ts)g(b)s(efore)f(eac)m(h)h(function)f(headers,)h (that,)i(if)d(prop)s(erly)330 3228 y(formatted,)j(are)d(extracted)i(in) m(to)f(GTK-DOC)e(w)m(eb)i(pages.)38 b(Don't)23 b(forget)g(to)g(up)s (date)e(the)i(T)-8 b(exinfo)330 3337 y(man)m(ual)31 b(as)f(w)m(ell.)225 3472 y Fs(\017)60 b Fu(Supply)29 b(a)h(ChangeLog)h(and)f(NEWS)g(en)m (tries,)i(where)e(appropriate.)p eop end %%Page: 9 14 TeXDict begin 9 13 bop 150 -116 a Fu(Chapter)30 b(2:)41 b(Preparation)2619 b(9)150 299 y Fr(2)80 b(Preparation)150 497 y Fu(T)-8 b(o)34 b(use)f(`Libidn',)h(y)m(ou)g(ha)m(v)m(e)h(to)f(p)s (erform)e(some)i(c)m(hanges)h(to)f(y)m(our)g(sources)f(and)g(the)h (build)f(system.)150 607 y(The)39 b(necessary)h(c)m(hanges)h(are)f (small)g(and)f(explained)g(in)h(the)f(follo)m(wing)i(sections.)70 b(A)m(t)40 b(the)g(end)f(of)150 716 y(this)31 b(c)m(hapter,)i(it)f(is)f (describ)s(ed)f(ho)m(w)i(the)f(library)g(is)h(initialized,)h(and)e(ho)m (w)g(the)h(requiremen)m(ts)f(of)h(the)150 826 y(library)e(are)h(v)m (eri\014ed.)275 953 y(A)f(faster)i(w)m(a)m(y)f(to)h(\014nd)d(out)i(ho)m (w)g(to)h(adapt)f(y)m(our)g(application)h(for)e(use)h(with)f(`Libidn')h (ma)m(y)g(b)s(e)f(to)150 1063 y(lo)s(ok)h(at)g(the)g(examples)g(at)g (the)f(end)g(of)g(this)h(man)m(ual)f(\(see)i(Chapter)e(9)g([Examples],) h(page)h(38\).)150 1281 y Ft(2.1)68 b(Header)150 1440 y Fu(The)38 b(library)g(con)m(tains)i(a)e(few)h(indep)s(enden)m(t)e (parts,)j(and)e(eac)m(h)i(part)e(exp)s(ort)g(the)h(in)m(terfaces)h (\(data)150 1550 y(t)m(yp)s(es)33 b(and)g(functions\))g(in)g(a)h (header)f(\014le.)49 b(Y)-8 b(ou)34 b(m)m(ust)f(include)g(the)h (appropriate)f(header)g(\014les)g(in)g(all)150 1659 y(programs)d(using) g(the)g(library)-8 b(,)31 b(either)g(directly)g(or)f(through)g(some)h (other)f(header)h(\014le,)f(lik)m(e)i(this:)390 1787 y Fo(#include)46 b()275 1914 y Fu(The)29 b(header)i(\014les)f(and)g(the)g(functions)g(they)h(de\014ne)e(are)i (categorized)i(as)e(follo)m(ws:)150 2059 y(stringprep.h)630 2169 y(The)d(lo)m(w-lev)m(el)j(stringprep)c(API)h(en)m(try)h(p)s(oin)m (t.)40 b(F)-8 b(or)29 b(IDN)g(applications,)h(this)e(is)g(usually)630 2278 y(in)m(v)m(ok)m(ed)33 b(via)e(IDNA.)h(Some)f(applications,)i(sp)s (eci\014cally)f(non-IDN)f(ones,)h(ma)m(y)f(w)m(an)m(t)h(to)630 2388 y(prepare)e(strings)g(directly)h(though,)f(and)g(should)g(include) g(this)g(header)g(\014le.)630 2515 y(The)k(name)h(space)g(of)g(the)f (stringprep)g(part)h(of)f(Libidn)g(is)g Fo(stringprep*)e Fu(for)i(function)630 2625 y(names,)i Fo(Stringprep*)31 b Fu(for)k(data)g(t)m(yp)s(es)g(and)f Fo(STRINGPREP_*)d Fu(for)k(other)g(sym)m(b)s(ols.)53 b(In)630 2734 y(addition,)36 b Fo(_stringprep*)31 b Fu(is)k(reserv)m(ed)f(for)g(in)m(ternal)i(use)e (and)g(should)f(nev)m(er)i(b)s(e)f(used)630 2844 y(b)m(y)c (applications.)150 2989 y(pun)m(yco)s(de.h)630 3098 y(The)23 b(en)m(try)h(p)s(oin)m(t)f(to)i(Pun)m(yco)s(de)e(enco)s(ding)g(and)g (deco)s(ding)g(functions.)38 b(Normally)25 b(pun)m(y-)630 3208 y(co)s(de)g(is)f(used)g(via)h(the)g(idna.h)f(in)m(terface,)k(but)c (some)h(application)g(ma)m(y)h(w)m(an)m(t)f(to)g(p)s(erform)630 3318 y(ra)m(w)30 b(pun)m(yco)s(de)g(op)s(erations.)630 3445 y(The)40 b(name)i(space)f(of)g(the)g(pun)m(yco)s(de)g(part)f(of)i (Libidn)d(is)i Fo(punycode_*)d Fu(for)j(function)630 3554 y(names,)e Fo(Punycode*)34 b Fu(for)j(data)g(t)m(yp)s(es)g(and)g Fo(PUNYCODE_*)d Fu(for)i(other)i(sym)m(b)s(ols.)60 b(In)36 b(ad-)630 3664 y(dition,)42 b Fo(_punycode*)37 b Fu(is)i(reserv)m(ed)h (for)f(in)m(ternal)h(use)g(and)e(should)h(nev)m(er)h(b)s(e)e(used)h(b)m (y)630 3774 y(applications.)150 3919 y(idna.h)630 4046 y(The)h(en)m(try)g(p)s(oin)m(t)g(to)h(the)f(IDNA)h(functions.)70 b(This)39 b(is)h(the)h(normal)f(en)m(try)g(p)s(oin)m(t)g(for)630 4156 y(applications)32 b(that)f(need)f(IDN)g(functionalit)m(y)-8 b(.)630 4283 y(The)42 b(name)g(space)g(of)h(the)f(IDNA)h(part)f(of)g (Libidn)f(is)h Fo(idna_*)e Fu(for)i(function)g(names,)630 4392 y Fo(Idna*)d Fu(for)g(data)i(t)m(yp)s(es)f(and)f Fo(IDNA_*)g Fu(for)g(other)h(sym)m(b)s(ols.)70 b(In)39 b(addition,)k Fo(_idna*)38 b Fu(is)630 4502 y(reserv)m(ed)31 b(for)f(in)m(ternal)h(use)f(and)g(should)f(nev)m(er)i(b)s(e)e(used)h(b) m(y)g(applications.)150 4647 y(tld.h)630 4774 y(The)k(en)m(try)g(p)s (oin)m(t)g(to)h(the)f(TLD)g(functions.)51 b(Normal)35 b(applications)g(are)f(not)h(exp)s(ected)630 4884 y(to)k(need)f(this)h (functionalit)m(y)-8 b(,)42 b(but)c(it)h(is)f(presen)m(t)h(for)f (applications)i(that)f(are)f(used)g(b)m(y)630 4993 y(TLDs)30 b(to)h(v)-5 b(alidate)32 b(customer)f(input.)630 5121 y(The)d(name)h(space)g(of)g(the)g(TLD)g(part)g(of)f(Libidn)g(is)h Fo(tld_*)e Fu(for)i(function)f(names,)h Fo(Tld_*)630 5230 y Fu(for)i(data)g(t)m(yp)s(es)g(and)f Fo(TLD_*)g Fu(for)g(other)h(sym)m(b)s(ols.)42 b(In)30 b(addition,)i Fo(_tld*)d Fu(is)i(reserv)m(ed)g(for)630 5340 y(in)m(ternal)g(use)f (and)g(should)f(nev)m(er)i(b)s(e)f(used)f(b)m(y)i(applications.)p eop end %%Page: 10 15 TeXDict begin 10 14 bop 150 -116 a Fu(Chapter)30 b(2:)41 b(Preparation)2573 b(10)150 299 y(pr29.h)630 441 y(The)40 b(en)m(try)h(p)s(oin)m(t)g(to)g(the)g(PR29)h(functions.)71 b(These)41 b(functions)f(are)h(used)f(to)i(detect)630 550 y(\\problem)26 b(sequences")h(\(see)f(Chapter)g(8)g([PR29)h(F)-8 b(unctions],)28 b(page)f(36\),)h(mostly)e(for)g(use)630 660 y(in)k(securit)m(y)h(critical)h(applications.)630 802 y(The)23 b(name)g(space)h(of)f(the)h(PR29)g(part)f(of)g(Libidn)g (is)g Fo(pr29_*)e Fu(for)j(function)e(names,)j Fo(Pr29_)630 912 y(*)j Fu(for)g(data)h(t)m(yp)s(es)f(and)f Fo(PR29_*)g Fu(for)h(other)g(sym)m(b)s(ols.)40 b(In)27 b(addition,)i Fo(_pr29*)e Fu(is)h(reserv)m(ed)630 1021 y(for)i(in)m(ternal)h(use)f (and)g(should)f(nev)m(er)i(b)s(e)f(used)f(b)m(y)i(applications.)150 1196 y(idn-free.h)630 1338 y(The)24 b(en)m(try)h(p)s(oin)m(t)f(to)h (the)g(Windo)m(ws)f(memory)g(de-allo)s(cation)j(function)d(\(see)i (Section)f(2.6)630 1447 y([Memory)40 b(handling)f(under)e(Windo)m(ws],) 42 b(page)e(12\).)69 b(It)39 b(con)m(tains)h(only)g(one)f(function)630 1557 y Fo(idn_free)p Fu(.)275 1739 y(All)31 b(header)f(\014les)g (de\014ned)f(and)h(use)g(the)h(sym)m(b)s(ol)f Fo(IDNAPI)e Fu(to)j(decorate)h(the)f(API)f(functions.)150 1994 y Ft(2.2)68 b(Initialization)150 2153 y Fu(Libidn)29 b(is)i(stateless)h (and)d(do)s(es)h(not)h(need)f(an)m(y)h(initialization.)150 2408 y Ft(2.3)68 b(V)-11 b(ersion)45 b(Chec)l(k)150 2567 y Fu(It)35 b(is)g(often)g(desirable)g(to)h(c)m(hec)m(k)h(that)e(the)g (v)m(ersion)h(of)f(`Libidn')f(used)g(is)h(indeed)g(one)g(whic)m(h)f (\014ts)h(all)150 2677 y(requiremen)m(ts.)42 b(Ev)m(en)31 b(with)g(binary)f(compatibilit)m(y)j(new)d(features)h(ma)m(y)g(ha)m(v)m (e)h(b)s(een)e(in)m(tro)s(duced)h(but)150 2787 y(due)g(to)i(problem)e (with)h(the)g(dynamic)f(link)m(er)i(an)e(old)h(v)m(ersion)h(is)f (actually)h(used.)45 b(So)31 b(y)m(ou)i(ma)m(y)f(w)m(an)m(t)150 2896 y(to)f(c)m(hec)m(k)h(that)f(the)g(v)m(ersion)f(is)h(ok)-5 b(a)m(y)31 b(righ)m(t)g(after)g(program)f(startup.)150 3110 y Fn(stringprep)p 710 3110 37 5 v 55 w(c)m(hec)m(k)p 1058 3110 V 53 w(v)m(ersion)3350 3322 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(char)f(*)g(stringprep_check_versi)q(on)f Fl(\()p Fk(const)31 b(c)m(har)g(*)565 3432 y Fj(req_version)p Fl(\))390 3541 y Fk(req)p 520 3541 28 4 v 40 w(v)m(ersion)p Fu(:)41 b(Required)30 b(v)m(ersion)h(n)m(um)m(b)s(er,)e(or)i(NULL.)390 3691 y(Chec)m(k)c(that)h(the)f(v)m(ersion)g(of)g(the)g(library)g(is)g (at)g(minim)m(um)g(the)g(requested)f(one)i(and)e(return)g(the)390 3800 y(v)m(ersion)32 b(string;)h(return)e(NULL)g(if)h(the)g(condition)g (is)g(not)g(satis\014ed.)45 b(If)31 b(a)h(NULL)g(is)g(passed)f(to)390 3910 y(this)f(function,)h(no)f(c)m(hec)m(k)i(is)e(done,)h(but)e(the)i (v)m(ersion)g(string)f(is)g(simply)g(returned.)390 4060 y(See)h Fo(STRINGPREP_VERSION)25 b Fu(for)30 b(a)h(suitable)g Fo(req_version)c Fu(string.)390 4209 y Fi(Return)d(v)-5 b(alue:)38 b Fu(V)-8 b(ersion)24 b(string)g(of)g(run-time)g(library)-8 b(,)26 b(or)e(NULL)g(if)g(the)g(run-time)g(library)f(do)s(es)390 4319 y(not)31 b(meet)g(the)f(required)g(v)m(ersion)h(n)m(um)m(b)s(er.) 275 4533 y(The)e(normal)h(w)m(a)m(y)i(to)f(use)e(the)i(function)f(is)g (to)h(put)e(something)i(similar)g(to)g(the)f(follo)m(wing)i(\014rst)d (in)150 4643 y(y)m(our)h Fo(main)p Fu(:)485 4792 y Fo(if)48 b(\(!stringprep_check_vers)o(ion)41 b(\(STRINGPREP_VERSION\)\))581 4902 y({)676 5011 y(printf)46 b(\("stringprep_check_version)o(\(\))c (failed:\\n")1058 5121 y("Header)k(file)h(incompatible)d(with)j(shared) f(library.\\n"\);)676 5230 y(exit\(EXIT_FAILURE\);)581 5340 y(})p eop end %%Page: 11 16 TeXDict begin 11 15 bop 150 -116 a Fu(Chapter)30 b(2:)41 b(Preparation)2573 b(11)150 299 y Ft(2.4)68 b(Building)45 b(the)g(source)150 458 y Fu(If)32 b(y)m(ou)i(w)m(an)m(t)f(to)h(compile) g(a)f(source)g(\014le)g(including)f(e.g.)50 b(the)33 b(`idna.h')f(header)h(\014le,)h(y)m(ou)f(m)m(ust)g(mak)m(e)150 568 y(sure)24 b(that)i(the)f(compiler)g(can)h(\014nd)d(it)j(in)e(the)h (directory)h(hierarc)m(h)m(y)-8 b(.)40 b(This)24 b(is)h(accomplished)g (b)m(y)g(adding)150 677 y(the)37 b(path)g(to)h(the)f(directory)g(in)g (whic)m(h)g(the)g(header)g(\014le)g(is)g(lo)s(cated)h(to)g(the)f (compilers)g(include)g(\014le)150 787 y(searc)m(h)31 b(path)f(\(via)h(the)g Fo(-I)f Fu(option\).)275 923 y(Ho)m(w)m(ev)m (er,)h(the)f(path)f(to)h(the)g(include)f(\014le)h(is)f(determined)g(at) h(the)g(time)g(the)f(source)h(is)f(con\014gured.)150 1033 y(T)-8 b(o)30 b(solv)m(e)h(this)f(problem,)g(`Libidn')f(uses)g (the)h(external)h(pac)m(k)-5 b(age)31 b Fo(pkg-config)c Fu(that)k(kno)m(ws)e(the)h(path)150 1142 y(to)k(the)g(include)g(\014le) f(and)g(other)h(con\014guration)g(options.)51 b(The)33 b(options)h(that)g(need)g(to)g(b)s(e)f(added)g(to)150 1252 y(the)28 b(compiler)h(in)m(v)m(o)s(cation)g(at)g(compile)g(time)g (are)f(output)f(b)m(y)h(the)g Fo(--cflags)e Fu(option)i(to)h Fo(pkg-config)150 1362 y(libidn)p Fu(.)39 b(The)30 b(follo)m(wing)i (example)f(sho)m(ws)f(ho)m(w)g(it)h(can)g(b)s(e)f(used)f(at)i(the)g (command)f(line:)390 1498 y Fo(gcc)47 b(-c)g(foo.c)f(`pkg-config)f (libidn)h(--cflags`)275 1634 y Fu(Adding)38 b(the)i(output)f(of)h(`)p Fo(pkg-config)27 b(libidn)i(--cflags)p Fu(')38 b(to)i(the)f(compilers)h (command)g(line)150 1744 y(will)31 b(ensure)e(that)i(the)g(compiler)g (can)f(\014nd)f(e.g.)42 b(the)31 b(idna.h)e(header)i(\014le.)275 1880 y(A)23 b(similar)g(problem)g(o)s(ccurs)g(when)f(linking)h(the)g (program)g(with)g(the)g(library)-8 b(.)38 b(Again,)26 b(the)d(compiler)150 1990 y(has)31 b(to)i(\014nd)d(the)i(library)f (\014les.)44 b(F)-8 b(or)33 b(this)e(to)h(w)m(ork,)h(the)f(path)f(to)h (the)g(library)f(\014les)h(has)f(to)i(b)s(e)e(added)150 2099 y(to)h(the)g(library)f(searc)m(h)h(path)f(\(via)h(the)g Fo(-L)f Fu(option\).)44 b(F)-8 b(or)33 b(this,)e(the)h(option)g Fo(--libs)e Fu(to)i Fo(pkg-config)150 2209 y(libidn)i Fu(can)i(b)s(e)f(used.)56 b(F)-8 b(or)37 b(con)m(v)m(enience,)i(this)d (option)g(also)g(outputs)g(all)g(other)g(options)g(that)h(are)150 2318 y(required)24 b(to)h(link)f(the)h(program)f(with)g(the)h(`libidn') f(library)-8 b(.)38 b(The)24 b(example)h(sho)m(ws)f(ho)m(w)h(to)g(link) f Fo(foo.o)150 2428 y Fu(with)30 b(the)h(`libidn')f(library)g(to)h(a)g (program)f Fo(foo)p Fu(.)390 2564 y Fo(gcc)47 b(-o)g(foo)g(foo.o)f (`pkg-config)f(libidn)h(--libs`)275 2700 y Fu(Of)29 b(course)i(y)m(ou)f (can)h(also)g(com)m(bine)g(b)s(oth)e(examples)i(to)g(a)g(single)f (command)g(b)m(y)h(sp)s(ecifying)f(b)s(oth)150 2810 y(options)h(to)g Fo(pkg-config)p Fu(:)390 2946 y Fo(gcc)47 b(-o)g(foo)g(foo.c)f (`pkg-config)f(libidn)h(--cflags)g(--libs`)150 3181 y Ft(2.5)68 b(Auto)t(conf)44 b(tests)150 3341 y Fu(If)22 b(y)m(our)h(pro)5 b(ject)23 b(uses)f(Auto)s(conf)h(\(see)g(Section)h (\\top")f(in)g Fo(autoconf)p Fu(\))d(to)k(c)m(hec)m(k)g(for)e (installed)i(libraries,)150 3450 y(y)m(ou)38 b(migh)m(t)g(\014nd)e(the) h(follo)m(wing)i(snipp)s(et)e(illustrativ)m(e.)64 b(It)37 b(add)g(a)h(new)f Fo(configure)e Fu(parameter)j Fo(--)150 3560 y(with-libidn)p Fu(,)29 b(and)h(c)m(hec)m(k)j(for)f Fo(idna.h)d Fu(and)i(`)p Fo(-lidn)p Fu(')f(\(p)s(ossibly)h(b)s(elo)m(w) h(the)f(directory)h(sp)s(eci\014ed)f(as)150 3669 y(the)24 b(optional)g(argumen)m(t)g(to)g Fo(--with-libidn)p Fu(\),)e(and)h (de\014ne)g(the)g(CPP)g(sym)m(b)s(ol)g Fo(LIBIDN)f Fu(if)i(the)f (library)150 3779 y(is)38 b(found.)61 b(The)37 b(default)g(b)s(eha)m (viour)g(is)h(to)g(searc)m(h)h(for)e(the)h(library)f(and)g(enable)h (the)f(functionalit)m(y)150 3889 y(\(that)32 b(is,)g(de\014ne)e(the)i (sym)m(b)s(ol\))f(when)f(the)h(library)g(is)g(found,)g(but)f(if)h(y)m (ou)h(wish)e(to)i(mak)m(e)g(the)g(default)150 3998 y(b)s(eha)m(viour)c (of)h(y)m(our)g(pac)m(k)-5 b(age)30 b(b)s(e)f(that)g(Libidn)e(is)i(not) g(used)f(\(ev)m(en)i(if)e(it)i(is)e(installed)i(on)e(the)h(system\),) 150 4108 y(c)m(hange)j(`)p Fo(libidn=yes)p Fu(')c(to)j(`)p Fo(libidn=no)p Fu(')d(on)i(the)h(third)e(line.)390 4244 y Fo(AC_ARG_WITH\(libidn,)43 b(AC_HELP_STRING\([--with-)o(lib)o(idn=)o ([DIR)o(]],)1917 4354 y([Support)j(IDN)h(\(needs)f(GNU)h(Libidn\)]\),) 485 4463 y(libidn=$withval,)d(libidn=yes\))390 4573 y(if)j(test)g ("$libidn")e(!=)i("no";)g(then)485 4682 y(if)h(test)e("$libidn")g(!=)h ("yes";)f(then)581 4792 y(LDFLAGS="${LDFLAGS})c(-L$libidn/lib")581 4902 y(CPPFLAGS="${CPPFLAGS})g(-I$libidn/include")485 5011 y(fi)485 5121 y(AC_CHECK_HEADER\(idna.h,)581 5230 y(AC_CHECK_LIB\(idn,)h(stringprep_check_version)o(,)676 5340 y([libidn=yes)i(LIBS="${LIBS})f(-lidn"],)i(libidn=no\),)p eop end %%Page: 12 17 TeXDict begin 12 16 bop 150 -116 a Fu(Chapter)30 b(2:)41 b(Preparation)2573 b(12)581 299 y Fo(libidn=no\))390 408 y(fi)390 518 y(if)47 b(test)g("$libidn")e(!=)i("no")g(;)g(then)485 628 y(AC_DEFINE\(LIBIDN,)d(1,)j([Define)f(to)h(1)g(if)g(you)g(want)g (IDN)g(support.]\))390 737 y(else)485 847 y(AC_MSG_WARN\([Libidn)c(not) k(found]\))390 956 y(fi)390 1066 y(AC_MSG_CHECKING\([if)c(Libidn)j (should)g(be)h(used]\))390 1176 y(AC_MSG_RESULT\($libidn\))275 1359 y Fu(If)36 b(y)m(ou)i(require)f(that)g(y)m(our)g(users)g(ha)m(v)m (e)h(installed)g Fo(pkg-config)c Fu(\(whic)m(h)k(I)e(cannot)i (recommend)150 1469 y(generally\),)32 b(the)f(ab)s(o)m(v)m(e)g(can)g(b) s(e)f(done)g(more)g(easily)i(as)f(follo)m(ws.)390 1653 y Fo(AC_ARG_WITH\(libidn,)43 b(AC_HELP_STRING\([--with-)o(lib)o(idn=)o ([DIR)o(]],)1917 1763 y([Support)j(IDN)h(\(needs)f(GNU)h(Libidn\)]\),) 485 1872 y(libidn=$withval,)d(libidn=yes\))390 1982 y(if)j(test)g ("$libidn")e(!=)i("no")g(;)g(then)485 2091 y (PKG_CHECK_MODULES\(LIBIDN,)41 b(libidn)46 b(>=)i(0.0.0,)e ([libidn=yes],)e([libidn=no]\))485 2201 y(if)k(test)e("$libidn")g(!=)h ("yes")f(;)i(then)581 2310 y(libidn=no)581 2420 y(AC_MSG_WARN\([Libidn) 42 b(not)47 b(found]\))485 2530 y(else)581 2639 y(libidn=yes)581 2749 y(AC_DEFINE\(LIBIDN,)c(1,)k([Define)f(to)h(1)h(if)f(you)g(want)f (Libidn.]\))485 2858 y(fi)390 2968 y(fi)390 3078 y (AC_MSG_CHECKING\([if)d(Libidn)j(should)g(be)h(used]\))390 3187 y(AC_MSG_RESULT\($libidn\))150 3494 y Ft(2.6)68 b(Memory)45 b(handling)g(under)f(Windo)l(ws)150 3653 y Fu(Sev)m(eral)i(functions)f(in)g(the)g(library)g(allo)s(cates)i (memory)-8 b(.)85 b(The)45 b(memory)g(is)g(exp)s(ected)g(to)h(b)s(e)f (de-)150 3763 y(allo)s(cated)28 b(using)d(the)h Fo(free)e Fu(function.)39 b(Under)25 b(Windo)m(ws,)i(it)f(is)g(sometimes)h (necessary)f(to)g(de-allo)s(cate)150 3872 y(memory)32 b(in)g(the)h(same)g(mo)s(dule)e(that)i(allo)s(cated)i(a)d(memory)g (region.)48 b(The)32 b(reason)g(is)h(that)f(di\013eren)m(t)150 3982 y(mo)s(dules)26 b(use)h(separate)h(heap)f(memory)g(regions.)40 b(T)-8 b(o)28 b(solv)m(e)g(this)f(problem)g(w)m(e)h(pro)m(vide)f(a)g (function)g(to)150 4091 y(de-allo)s(cate)33 b(memory)d(inside)g(the)h (library)-8 b(.)275 4275 y(Note)32 b(that)g(w)m(e)g(do)g(not)f (recommend)h(using)f(this)g(in)m(terface)i(generally)g(if)e(y)m(ou)h (do)f(not)h(care)g(ab)s(out)150 4385 y(Windo)m(ws)e(p)s(ortabilit)m(y) -8 b(.)150 4691 y Ft(2.7)68 b(Header)46 b(\014le)f Fh(idn-free.h)150 4851 y Fu(T)-8 b(o)24 b(use)g(the)g(function)g(explained)g(in)f(this)h (c)m(hapter,)i(y)m(ou)e(need)g(to)g(include)g(the)g(\014le)g Fo(idn-free.h)d Fu(using:)390 5035 y Fo(#include)46 b()150 5341 y Ft(2.8)68 b(Memory)45 b(de-allo)t(cation)i(function)p eop end %%Page: 13 18 TeXDict begin 13 17 bop 150 -116 a Fu(Chapter)30 b(2:)41 b(Preparation)2573 b(13)150 299 y Fn(idn)p 329 299 37 5 v 54 w(free)3350 496 y Fu([F)-8 b(unction])-3599 b Fm(void)54 b(idn_free)47 b Fl(\()p Fk(v)m(oid)32 b(*)e Fj(ptr)p Fl(\))390 605 y Fk(ptr)7 b Fu(:)40 b(memory)30 b(region)h(to)g(deallo)s(cate,)i(or)d Fo(NULL)p Fu(.)390 740 y(Deallo)s(cates)42 b(memory)d(region)g(b)m(y)g(calling)h Fo(free\(\))p Fu(.)65 b(If)38 b Fo(ptr)g Fu(is)h Fo(NULL)f Fu(no)g(op)s(eration)i(is)f(p)s(er-)390 849 y(formed.)390 984 y(Normally)i(applications)g(de-allo)s(cate)i(strings)d(allo)s (cated)i(b)m(y)e(libidn)f(b)m(y)h(calling)i Fo(free\(\))c Fu(di-)390 1093 y(rectly)-8 b(.)76 b(Under)41 b(Windo)m(ws,)k (di\013eren)m(t)d(parts)f(of)h(the)g(same)g(application)h(ma)m(y)f(use) f(di\013eren)m(t)390 1203 y(heap)d(memory)-8 b(,)40 b(and)e(then)f(it)i (is)f(imp)s(ortan)m(t)g(to)h(deallo)s(cate)h(memory)e(allo)s(cated)i (within)e(the)390 1313 y(same)31 b(mo)s(dule)e(that)i(allo)s(cated)i (it.)41 b(This)30 b(function)g(mak)m(es)h(that)g(p)s(ossible.)p eop end %%Page: 14 19 TeXDict begin 14 18 bop 150 -116 a Fu(Chapter)30 b(3:)41 b(Utilit)m(y)32 b(F)-8 b(unctions)2369 b(14)150 299 y Fr(3)80 b(Utilit)l(y)53 b(F)-13 b(unctions)150 540 y Fu(The)37 b(rest)g(of)h(this)f(library)g(mak)m(es)h(extensiv)m(e)g(use) f(of)h(Unico)s(de)f(c)m(haracters.)63 b(In)37 b(order)f(to)i(in)m (terface)150 649 y(this)g(library)g(with)g(the)h(outside)f(w)m(orld,)i (y)m(our)f(application)g(ma)m(y)g(need)f(to)h(mak)m(e)g(v)-5 b(arious)39 b(Unico)s(de)150 759 y(transformations.)150 994 y Ft(3.1)68 b(Header)46 b(\014le)f Fh(stringprep.h)150 1154 y Fu(T)-8 b(o)33 b(use)g(the)g(functions)f(explained)h(in)g(this)g (c)m(hapter,)h(y)m(ou)f(need)g(to)h(include)e(the)h(\014le)g Fo(stringprep.h)150 1263 y Fu(using:)390 1400 y Fo(#include)46 b()150 1636 y Ft(3.2)68 b(Unico)t(de)45 b(Enco)t(ding)g(T)-11 b(ransformation)150 1860 y Fn(stringprep)p 710 1860 37 5 v 55 w(unic)m(har)p 1165 1860 V 54 w(to)p 1328 1860 V 54 w(utf8)3350 2059 y Fu([F)j(unction])-3599 b Fm(int)53 b(stringprep_unichar_to)q(_utf)q(8)f Fl(\()p Fk(uin)m(t32)p 2055 2059 28 4 v 41 w(t)31 b Fj(c)p Fk(,)f(c)m(har)h(*)g Fj(outbuf)p Fl(\))390 2169 y Fk(c)6 b Fu(:)41 b(a)30 b(ISO10646)i(c)m(haracter)g(co)s(de)390 2305 y Fk(outbuf)17 b Fu(:)47 b(output)34 b(bu\013er,)g(m)m(ust)g(ha)m(v)m(e)h(at)g(least)g (6)f(b)m(ytes)h(of)f(space.)52 b(If)33 b Fo(NULL)p Fu(,)h(the)g(length) h(will)390 2415 y(b)s(e)30 b(computed)g(and)g(returned)f(and)h(nothing) g(will)h(b)s(e)e(written)i(to)g Fo(outbuf)p Fu(.)390 2551 y(Con)m(v)m(erts)g(a)g(single)g(c)m(haracter)h(to)f(UTF-8.)390 2688 y Fi(Return)f(v)-5 b(alue:)41 b Fu(n)m(um)m(b)s(er)29 b(of)i(b)m(ytes)g(written.)150 2890 y Fn(stringprep)p 710 2890 37 5 v 55 w(utf8)p 979 2890 V 55 w(to)p 1143 2890 V 54 w(unic)m(har)3350 3089 y Fu([F)-8 b(unction])-3599 b Fm(uint32_t)55 b(stringprep_utf8_to_unic)q(har)d Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(p)p Fl(\))390 3198 y Fk(p)s Fu(:)40 b(a)31 b(p)s(oin)m(ter)f(to)h(Unico)s(de)g(c)m(haracter)h(enco) s(ded)e(as)g(UTF-8)390 3335 y(Con)m(v)m(erts)d(a)g(sequence)g(of)g(b)m (ytes)g(enco)s(ded)f(as)g(UTF-8)i(to)f(a)g(Unico)s(de)f(c)m(haracter.) 41 b(If)26 b Fo(p)h Fu(do)s(es)f(not)390 3444 y(p)s(oin)m(t)k(to)h(a)g (v)-5 b(alid)31 b(UTF-8)g(enco)s(ded)f(c)m(haracter,)i(results)f(are)f (unde\014ned.)390 3581 y Fi(Return)g(v)-5 b(alue:)41 b Fu(the)31 b(resulting)f(c)m(haracter.)150 3782 y Fn(stringprep)p 710 3782 V 55 w(ucs4)p 997 3782 V 55 w(to)p 1161 3782 V 54 w(utf8)3350 3981 y Fu([F)-8 b(unction])-3599 b Fm(char)54 b(*)e(stringprep_ucs4_to_utf)q(8)g Fl(\()p Fk(const)31 b(uin)m(t32)p 2293 3981 28 4 v 41 w(t)f(*)h Fj(str)p Fk(,)h(ssize)p 2865 3981 V 40 w(t)f Fj(len)p Fk(,)565 4091 y(size)p 712 4091 V 41 w(t)g(*)f Fj(items_read)p Fk(,)k(size)p 1614 4091 V 41 w(t)d(*)f Fj(items_written)p Fl(\))390 4201 y Fk(str)7 b Fu(:)40 b(a)31 b(UCS-4)f(enco)s(ded)g (string)390 4337 y Fk(len)p Fu(:)39 b(the)27 b(maxim)m(um)f(length)h (of)g Fo(str)f Fu(to)h(use.)39 b(If)26 b Fo(len)g(<)g Fu(0,)i(then)e(the)h(string)g(is)f(terminated)h(with)390 4447 y(a)k(0)g(c)m(haracter.)390 4584 y Fk(items)p 608 4584 V 41 w(read)t Fu(:)40 b(lo)s(cation)32 b(to)f(store)g(n)m(um)m(b)s (er)e(of)h(c)m(haracters)i(read)f(read,)f(or)g Fo(NULL)p Fu(.)390 4720 y Fk(items)p 608 4720 V 41 w(written)p Fu(:)57 b(lo)s(cation)41 b(to)e(store)g(n)m(um)m(b)s(er)f(of)h(b)m (ytes)g(written)g(or)g Fo(NULL)p Fu(.)65 b(The)38 b(v)-5 b(alue)39 b(here)390 4830 y(stored)30 b(do)s(es)h(not)f(include)g(the)h (trailing)g(0)g(b)m(yte.)390 4966 y(Con)m(v)m(ert)h(a)g(string)f(from)g (a)g(32-bit)i(\014xed)d(width)h(represen)m(tation)h(as)g(UCS-4.)43 b(to)32 b(UTF-8.)44 b(The)390 5076 y(result)30 b(will)h(b)s(e)f (terminated)h(with)f(a)g(0)h(b)m(yte.)390 5213 y Fi(Return)42 b(v)-5 b(alue:)66 b Fu(a)43 b(p)s(oin)m(ter)f(to)i(a)f(newly)f(allo)s (cated)i(UTF-8)g(string.)77 b(This)42 b(v)-5 b(alue)43 b(m)m(ust)g(b)s(e)390 5322 y(deallo)s(cated)32 b(b)m(y)f(the)f(caller.) 42 b(If)30 b(an)g(error)g(o)s(ccurs,)h Fo(NULL)e Fu(will)i(b)s(e)e (returned.)p eop end %%Page: 15 20 TeXDict begin 15 19 bop 150 -116 a Fu(Chapter)30 b(3:)41 b(Utilit)m(y)32 b(F)-8 b(unctions)2369 b(15)150 299 y Fn(stringprep)p 710 299 37 5 v 55 w(utf8)p 979 299 V 55 w(to)p 1143 299 V 54 w(ucs4)3350 515 y Fu([F)-8 b(unction])-3599 b Fm(uint32_t)55 b(*)d(stringprep_utf8_to_uc)q(s4)g Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(str)p Fk(,)i(ssize)p 2918 515 28 4 v 41 w(t)e Fj(len)p Fk(,)565 625 y(size)p 712 625 V 41 w(t)h(*)f Fj(items_written)p Fl(\))390 735 y Fk(str)7 b Fu(:)40 b(a)31 b(UTF-8)g(enco)s(ded)f(string)390 889 y Fk(len)p Fu(:)40 b(the)28 b(maxim)m(um)g(length)h(of)f Fo(str)g Fu(to)g(use.)40 b(If)28 b Fo(len)f(<)h Fu(0,)h(then)f(the)h (string)f(is)g(n)m(ul-terminated.)390 1043 y Fk(items)p 608 1043 V 41 w(written)p Fu(:)40 b(lo)s(cation)32 b(to)f(store)g(the)g (n)m(um)m(b)s(er)e(of)i(c)m(haracters)g(in)g(the)f(result,)h(or)f Fo(NULL)p Fu(.)390 1197 y(Con)m(v)m(ert)d(a)f(string)g(from)f(UTF-8)i (to)g(a)f(32-bit)i(\014xed)d(width)g(represen)m(tation)i(as)f(UCS-4,)h (assum-)390 1307 y(ing)k(v)-5 b(alid)30 b(UTF-8)h(input.)40 b(This)30 b(function)g(do)s(es)g(no)g(error)g(c)m(hec)m(king)i(on)f (the)f(input.)390 1461 y Fi(Return)43 b(v)-5 b(alue:)66 b Fu(a)44 b(p)s(oin)m(ter)f(to)h(a)f(newly)g(allo)s(cated)i(UCS-4)f (string.)79 b(This)42 b(v)-5 b(alue)44 b(m)m(ust)f(b)s(e)390 1571 y(deallo)s(cated)32 b(b)m(y)f(the)f(caller.)150 1833 y Ft(3.3)68 b(Unico)t(de)45 b(Normalization)150 2057 y Fn(stringprep)p 710 2057 37 5 v 55 w(ucs4)p 997 2057 V 55 w(nfk)m(c)p 1274 2057 V 53 w(normalize)3350 2273 y Fu([F)-8 b(unction])-3599 b Fm(uint32_t)55 b(*)d (stringprep_ucs4_nfkc_)q(nor)q(mal)q(ize)g Fl(\()p Fk(const)31 b(uin)m(t32)p 2868 2273 28 4 v 41 w(t)g(*)565 2383 y Fj(str)p Fk(,)h(ssize)p 961 2383 V 40 w(t)f Fj(len)p Fl(\))390 2492 y Fk(str)7 b Fu(:)40 b(a)31 b(Unico)s(de)f(string.)390 2647 y Fk(len)p Fu(:)41 b(length)31 b(of)f Fo(str)g Fu(arra)m(y)-8 b(,)31 b(or)g(-1)g(if)f Fo(str)f Fu(is)i(n)m(ul-terminated.)390 2801 y(Con)m(v)m(erts)81 b(a)f(UCS4)g(string)h(in)m(to)g(canonical)h (form,)92 b(see)81 b Fo(stringprep_utf8_nfkc_)390 2910 y(normalize\(\))27 b Fu(for)j(more)h(information.)390 3065 y Fi(Return)h(v)-5 b(alue:)45 b Fu(a)33 b(newly)f(allo)s(cated)i (Unico)s(de)f(string,)g(that)g(is)f(the)h(NFK)m(C)g(normalized)f(form) 390 3174 y(of)f Fo(str)p Fu(.)150 3393 y Fn(stringprep)p 710 3393 37 5 v 55 w(utf8)p 979 3393 V 55 w(nfk)m(c)p 1256 3393 V 54 w(normalize)3350 3610 y Fu([F)-8 b(unction])-3599 b Fm(char)54 b(*)e(stringprep_utf8_nfkc_n)q(orm)q(ali)q(ze)g Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(str)p Fk(,)i(ssize)p 3075 3610 28 4 v 41 w(t)565 3719 y Fj(len)p Fl(\))390 3829 y Fk(str)7 b Fu(:)40 b(a)31 b(UTF-8)g(enco)s(ded)f(string.)390 3983 y Fk(len)p Fu(:)41 b(length)31 b(of)f Fo(str)p Fu(,)g(in)g(b)m (ytes,)h(or)f(-1)h(if)g Fo(str)e Fu(is)i(n)m(ul-terminated.)390 4137 y(Con)m(v)m(erts)22 b(a)g(string)f(in)m(to)h(canonical)h(form,)g (standardizing)e(suc)m(h)g(issues)g(as)g(whether)g(a)g(c)m(haracter)390 4247 y(with)28 b(an)g(accen)m(t)j(is)d(represen)m(ted)g(as)h(a)f(base)h (c)m(haracter)h(and)e(com)m(bining)g(accen)m(t)j(or)d(as)h(a)f(single) 390 4356 y(precomp)s(osed)i(c)m(haracter.)390 4511 y(The)24 b(normalization)h(mo)s(de)f(is)g(NFK)m(C)g(\(ALL)g(COMPOSE\).)g(It)g (standardizes)g(di\013erences)g(that)390 4620 y(do)38 b(not)h(a\013ect)h(the)e(text)i(con)m(ten)m(t,)i(suc)m(h)d(as)f(the)h (ab)s(o)m(v)m(e-men)m(tioned)h(accen)m(t)h(represen)m(tation.)390 4730 y(It)35 b(standardizes)h(the)f Fo(")p Fu(compatibilit)m(y)p Fo(")i Fu(c)m(haracters)g(in)e(Unico)s(de,)i(suc)m(h)e(as)g (SUPERSCRIPT)390 4839 y(THREE)24 b(to)i(the)f(standard)f(forms)g(\(in)h (this)g(case)h(DIGIT)f(THREE\).)g(F)-8 b(ormatting)27 b(information)390 4949 y(ma)m(y)38 b(b)s(e)e(lost)i(but)e(for)g(most)i (text)g(op)s(erations)f(suc)m(h)f(c)m(haracters)j(should)d(b)s(e)g (considered)h(the)390 5059 y(same.)k(It)30 b(returns)f(a)i(result)f (with)f(comp)s(osed)h(forms)g(rather)g(than)g(a)g(maximally)h(decomp)s (osed)390 5168 y(form.)390 5322 y Fi(Return)f(v)-5 b(alue:)41 b Fu(a)31 b(newly)f(allo)s(cated)i(string,)f(that)g(is)f(the)h(NFK)m(C) g(normalized)f(form)g(of)h Fo(str)p Fu(.)p eop end %%Page: 16 21 TeXDict begin 16 20 bop 150 -116 a Fu(Chapter)30 b(3:)41 b(Utilit)m(y)32 b(F)-8 b(unctions)2369 b(16)150 299 y Ft(3.4)68 b(Character)46 b(Set)f(Con)l(v)l(ersion)150 521 y Fn(stringprep)p 710 521 37 5 v 55 w(lo)s(cale)p 1068 521 V 55 w(c)m(harset)3350 715 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(char)f(*)g(stringprep_locale_char)q(set)f Fl(\()31 b Fj(void)p Fl(\))390 824 y Fu(Find)37 b(out)g(curren)m(t)h (lo)s(cale)h(c)m(harset.)62 b(The)37 b(function)g(resp)s(ect)h(the)f (CHARSET)f(en)m(vironmen)m(t)390 934 y(v)-5 b(ariable,)29 b(but)d(t)m(ypically)j(uses)e(nl)p 1557 934 28 4 v 40 w(langinfo\(CODESET\))g(when)f(it)i(is)f(supp)s(orted.)38 b(It)27 b(fall)h(bac)m(k)390 1044 y(on)23 b Fo(")p Fu(ASCI)s(I)p Fo(")f Fu(if)h(CHARSET)g(isn't)h(set)g(and)f(nl)p 2011 1044 V 40 w(langinfo)h(isn't)f(supp)s(orted)f(or)i(return)e(an)m (ything.)390 1176 y(Note)28 b(that)g(this)f(function)g(return)f(the)h (application's)i(lo)s(cale's)g(preferred)d(c)m(harset)i(\(or)f (thread's)390 1286 y(lo)s(cale's)32 b(pre\013ered)e(c)m(harset,)i(if)e (y)m(our)h(system)f(supp)s(ort)f(thread-sp)s(eci\014c)h(lo)s(cales\).) 43 b(It)31 b(do)s(es)f(not)390 1396 y(return)24 b(what)i(the)g(system)f (ma)m(y)h(b)s(e)f(using.)39 b(Th)m(us,)26 b(if)f(y)m(ou)h(receiv)m(e)h (data)f(from)f(external)i(sources)390 1505 y(y)m(ou)35 b(cannot)g(in)g(general)g(use)g(this)f(function)h(to)g(guess)g(what)f (c)m(harset)i(it)f(is)g(enco)s(ded)f(in.)54 b(Use)390 1615 y(stringprep)p 802 1615 V 39 w(con)m(v)m(ert)30 b(from)e(the)h(external)h(represen)m(tation)f(in)m(to)h(the)f(c)m (harset)g(returned)f(b)m(y)g(this)390 1724 y(function,)i(to)h(ha)m(v)m (e)h(data)f(in)f(the)h(lo)s(cale)h(enco)s(ding.)390 1857 y Fi(Return)23 b(v)-5 b(alue:)37 b Fu(Return)23 b(the)g(c)m(haracter)i (set)f(used)f(b)m(y)g(the)g(curren)m(t)g(lo)s(cale.)40 b(It)24 b(will)f(nev)m(er)h(return)390 1967 y(NULL,)31 b(but)e(use)h Fo(")p Fu(ASCI)s(I)p Fo(")f Fu(as)h(a)h(fallbac)m(k.)150 2163 y Fn(stringprep)p 710 2163 37 5 v 55 w(con)m(v)m(ert)3350 2356 y Fu([F)-8 b(unction])-3599 b Fm(char)54 b(*)e(stringprep_convert) f Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(str)p Fk(,)g(const)g(c)m(har)g (*)565 2466 y Fj(to_codeset)p Fk(,)j(const)d(c)m(har)f(*)h Fj(from_codeset)p Fl(\))390 2575 y Fk(str)7 b Fu(:)40 b(input)29 b(zero-terminated)j(string.)390 2708 y Fk(to)p 476 2708 28 4 v 41 w(co)s(deset)r Fu(:)41 b(name)31 b(of)f(destination) i(c)m(haracter)f(set.)390 2841 y Fk(from)p 581 2841 V 40 w(co)s(deset)r Fu(:)41 b(name)31 b(of)f(origin)h(c)m(haracter)h (set,)f(as)g(used)e(b)m(y)i Fo(str)p Fu(.)390 2974 y(Con)m(v)m(ert)43 b(the)g(string)f(from)g(one)g(c)m(haracter)i(set)f(to)g(another)f (using)g(the)g(system's)h Fo(iconv\(\))390 3083 y Fu(function.)390 3216 y Fi(Return)20 b(v)-5 b(alue:)36 b Fu(Returns)20 b(newly)g(allo)s(cated)j(zero-terminated)f(string)f(whic)m(h)f(is)h Fo(str)e Fu(transco)s(ded)390 3326 y(in)m(to)31 b(to)p 660 3326 V 41 w(co)s(deset.)150 3522 y Fn(stringprep)p 710 3522 37 5 v 55 w(lo)s(cale)p 1068 3522 V 55 w(to)p 1232 3522 V 54 w(utf8)3350 3715 y Fu([F)-8 b(unction])-3599 b Fm(char)54 b(*)e(stringprep_locale_to_u)q(tf8)g Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(str)p Fl(\))390 3825 y Fk(str)7 b Fu(:)40 b(input)29 b(zero)j(terminated)e(string.)390 3958 y(Con)m(v)m(ert)24 b(string)f(enco)s(ded)g(in)g(the)g(lo)s(cale's) i(c)m(haracter)g(set)f(in)m(to)g(UTF-8)g(b)m(y)f(using)g Fo(stringprep_)390 4067 y(convert\(\))p Fu(.)390 4200 y Fi(Return)d(v)-5 b(alue:)36 b Fu(Returns)20 b(newly)g(allo)s(cated)j (zero-terminated)f(string)f(whic)m(h)f(is)h Fo(str)e Fu(transco)s(ded)390 4310 y(in)m(to)31 b(UTF-8.)150 4506 y Fn(stringprep)p 710 4506 V 55 w(utf8)p 979 4506 V 55 w(to)p 1143 4506 V 54 w(lo)s(cale)3350 4699 y Fu([F)-8 b(unction])-3599 b Fm(char)54 b(*)e(stringprep_utf8_to_loc)q(ale)g Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(str)p Fl(\))390 4809 y Fk(str)7 b Fu(:)40 b(input)29 b(zero)j(terminated)e(string.)390 4941 y(Con)m(v)m(ert)24 b(string)f(enco)s(ded)g(in)g(UTF-8)h(in)m(to)g (the)g(lo)s(cale's)h(c)m(haracter)f(set)g(b)m(y)f(using)g Fo(stringprep_)390 5051 y(convert\(\))p Fu(.)390 5184 y Fi(Return)d(v)-5 b(alue:)36 b Fu(Returns)20 b(newly)g(allo)s(cated)j (zero-terminated)f(string)f(whic)m(h)f(is)h Fo(str)e Fu(transco)s(ded)390 5293 y(in)m(to)31 b(the)g(lo)s(cale's)h(c)m (haracter)g(set.)p eop end %%Page: 17 22 TeXDict begin 17 21 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(17)150 299 y Fr(4)80 b(Stringprep)52 b(F)-13 b(unctions)150 537 y Fu(Stringprep)23 b(describ)s(es)i(a)g(framew)m(ork)g(for)f(preparing)g (Unico)s(de)h(text)h(strings)f(in)f(order)h(to)g(increase)h(the)150 646 y(lik)m(eliho)s(o)s(d)i(that)f(string)g(input)e(and)i(string)f (comparison)h(w)m(ork)g(in)f(w)m(a)m(ys)i(that)f(mak)m(e)h(sense)f(for) f(t)m(ypical)150 756 y(users)i(throughout)g(the)h(w)m(orld.)40 b(The)28 b(stringprep)g(proto)s(col)i(is)e(useful)g(for)h(proto)s(col)g (iden)m(ti\014er)g(v)-5 b(alues,)150 865 y(compan)m(y)31 b(and)f(p)s(ersonal)f(names,)i(in)m(ternationalized)i(domain)d(names,)g (and)g(other)h(text)g(strings.)150 1100 y Ft(4.1)68 b(Header)46 b(\014le)f Fh(stringprep.h)150 1259 y Fu(T)-8 b(o)33 b(use)g(the)g(functions)f(explained)h(in)g(this)g(c)m(hapter,)h(y)m(ou) f(need)g(to)h(include)e(the)h(\014le)g Fo(stringprep.h)150 1369 y Fu(using:)390 1504 y Fo(#include)46 b()150 1739 y Ft(4.2)68 b(De\014ning)45 b(A)g(Stringprep)f(Pro\014le)150 1898 y Fu(F)-8 b(urther)38 b(t)m(yp)s(es)h(and)g(structures)f(are)h (de\014ned)e(for)i(applications)h(that)f(w)m(an)m(t)h(to)g(sp)s(ecify)e (their)h(o)m(wn)150 2008 y(stringprep)e(pro\014le.)63 b(As)38 b(these)g(are)h(fairly)f(obscure,)i(and)d(b)m(y)h(necessit)m(y) h(tied)g(to)f(the)h(implemen)m(ta-)150 2117 y(tion,)j(w)m(e)d(do)g(not) g(do)s(cumen)m(t)g(them)g(here.)66 b(Lo)s(ok)39 b(in)m(to)h(the)g Fo(stringprep.h)35 b Fu(header)k(\014le,)i(and)e(the)150 2227 y Fo(profiles.c)28 b Fu(source)i(co)s(de)h(for)f(the)g(details.) 150 2461 y Ft(4.3)68 b(Con)l(trol)46 b(Flags)3072 2671 y Fu([Stringprep)29 b(\015ags])-3599 b Fm(Stringprep_profile_fla)q(gs) 59 b(STRINGPREP_NO_NFKC)390 2781 y Fu(Disable)42 b(the)g(NFK)m(C)g (normalization,)k(as)41 b(w)m(ell)i(as)e(selecting)i(the)f(non-NFK)m(C) f(case)i(folding)390 2891 y(tables.)d(Usually)25 b(the)h(pro\014le)f (sp)s(eci\014es)g(BIDI)g(and)g(NFK)m(C)g(settings,)j(and)d (applications)h(should)390 3000 y(not)31 b(o)m(v)m(erride)g(it)g (unless)f(in)g(sp)s(ecial)h(situations.)3072 3187 y([Stringprep)e (\015ags])-3599 b Fm(Stringprep_profile_fla)q(gs)59 b (STRINGPREP_NO_BIDI)390 3297 y Fu(Disable)39 b(the)f(BIDI)g(step.)62 b(Usually)38 b(the)g(pro\014le)f(sp)s(eci\014es)h(BIDI)g(and)f(NFK)m(C) h(settings,)j(and)390 3406 y(applications)32 b(should)d(not)i(o)m(v)m (erride)g(it)g(unless)f(in)g(sp)s(ecial)h(situations.)3072 3593 y([Stringprep)e(\015ags])-3599 b Fm(Stringprep_profile_fla)q(gs)59 b(STRINGPREP_NO_UNASSIGNE)q(D)390 3702 y Fu(Mak)m(e)28 b(the)e(library)g(return)e(with)i(an)g(error)g(if)g(string)g(con)m (tains)h(unassigned)e(c)m(haracters)j(accord-)390 3812 y(ing)j(to)g(pro\014le.)150 4046 y Ft(4.4)68 b(Core)46 b(F)-11 b(unctions)150 4270 y Fn(stringprep)p 710 4270 37 5 v 55 w(4i)3350 4468 y Fu([F)j(unction])-3599 b Fm(int)53 b(stringprep_4i)d Fl(\()p Fk(uin)m(t32)p 1375 4468 28 4 v 41 w(t)31 b(*)f Fj(ucs4)p Fk(,)i(size)p 1963 4468 V 41 w(t)f(*)f Fj(len)p Fk(,)i(size)p 2499 4468 V 41 w(t)f Fj(maxucs4len)p Fk(,)565 4578 y(Stringprep)p 992 4578 V 39 w(pro\014le)p 1279 4578 V 40 w(\015ags)f Fj(flags)p Fk(,)i(const)f(Stringprep)p 2502 4578 V 39 w(pro\014le)f(*)h Fj(profile)p Fl(\))390 4688 y Fk(ucs4)7 b Fu(:)41 b(input/output)30 b(arra)m(y)h(with)f(string)g(to)h(prepare.)390 4823 y Fk(len)p Fu(:)63 b(on)41 b(input,)i(length)f(of)f(input)g(arra)m(y)h (with)f(Unico)s(de)g(co)s(de)h(p)s(oin)m(ts,)i(on)d(exit,)k(length)d (of)390 4933 y(output)30 b(arra)m(y)h(with)f(Unico)s(de)g(co)s(de)h(p)s (oin)m(ts.)390 5069 y Fk(maxucs4len)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 5204 y Fk(\015ags)t Fu(:)41 b(a)30 b Fo(Stringprep_profile_flags)24 b Fu(v)-5 b(alue,)31 b(or)g(0.)390 5340 y Fk(pro\014le)5 b Fu(:)40 b(p)s(oin)m(ter)31 b(to)g Fo(Stringprep_profile)25 b Fu(to)31 b(use.)p eop end %%Page: 18 23 TeXDict begin 18 22 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(18)390 299 y(Prepare)35 b(the)h(input)f(UCS-4)h(string)g(according)g(to)h(the)f(stringprep)e (pro\014le,)j(and)e(write)h(bac)m(k)390 408 y(the)31 b(result)f(to)h(the)g(input)e(string.)390 548 y(The)36 b(input)g(is)h(not)h(required)e(to)h(b)s(e)g(zero)h(terminated)f(\()p Fo(ucs4)p Fu([)p Fo(len)p Fu(])f(=)g(0\).)62 b(The)36 b(output)h(will)390 657 y(not)28 b(b)s(e)g(zero)h(terminated)f(unless)g Fo(ucs4)p Fu([)p Fo(len)p Fu(])e(=)i(0.)40 b(Instead,)29 b(see)f Fo(stringprep_4zi\(\))c Fu(if)k(y)m(our)390 767 y(input)h(is)i(zero)g(terminated)g(or)f(if)h(y)m(ou)f(w)m(an)m(t)i(the) e(output)g(to)h(b)s(e.)390 906 y(Since)c(the)h(stringprep)f(op)s (eration)h(can)f(expand)g(the)h(string,)g Fo(maxucs4len)d Fu(indicate)j(ho)m(w)g(large)390 1016 y(the)35 b(bu\013er)e(holding)i (the)g(string)f(is.)53 b(This)34 b(function)g(will)h(not)g(read)g(or)f (write)h(to)g(co)s(de)g(p)s(oin)m(ts)390 1125 y(outside)c(that)g(size.) 390 1265 y(The)f Fo(flags)f Fu(are)i(one)f(of)h Fo (Stringprep_profile_flag)o(s)25 b Fu(v)-5 b(alues,)30 b(or)h(0.)390 1404 y(The)f Fo(profile)f Fu(con)m(tain)k(the)e Fo(Stringprep_profile)26 b Fu(instructions)k(to)i(p)s(erform.)41 b(Y)-8 b(our)31 b(appli-)390 1513 y(cation)41 b(can)g(de\014ne)e(new)g (pro\014les,)k(p)s(ossibly)c(re-using)g(the)i(generic)g(stringprep)e (tables)h(that)390 1623 y(alw)m(a)m(ys)32 b(will)f(b)s(e)e(part)i(of)f (the)h(library)-8 b(,)30 b(or)h(use)f(one)g(of)h(the)g(curren)m(tly)f (supp)s(orted)e(pro\014les.)390 1762 y Fi(Return)21 b(v)-5 b(alue:)36 b Fu(Returns)20 b Fo(STRINGPREP_OK)e Fu(i\013)j(successful,) i(or)e(an)f Fo(Stringprep_rc)e Fu(error)i(co)s(de.)150 1966 y Fn(stringprep)p 710 1966 37 5 v 55 w(4zi)3350 2168 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep_4zi)d Fl(\()p Fk(uin)m(t32)p 1427 2168 28 4 v 41 w(t)31 b(*)g Fj(ucs4)p Fk(,)g(size)p 2015 2168 V 41 w(t)g Fj(maxucs4len)p Fk(,)565 2277 y(Stringprep)p 992 2277 V 39 w(pro\014le)p 1279 2277 V 40 w(\015ags)f Fj(flags)p Fk(,)i(const)f(Stringprep)p 2502 2277 V 39 w(pro\014le)f(*)h Fj(profile)p Fl(\))390 2387 y Fk(ucs4)7 b Fu(:)41 b(input/output)30 b(arra)m(y)h(with)f(zero)h (terminated)g(string)f(to)h(prepare.)390 2526 y Fk(maxucs4len)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 2665 y Fk(\015ags)t Fu(:)41 b(a)30 b Fo (Stringprep_profile_flags)24 b Fu(v)-5 b(alue,)31 b(or)g(0.)390 2805 y Fk(pro\014le)5 b Fu(:)40 b(p)s(oin)m(ter)31 b(to)g Fo(Stringprep_profile)25 b Fu(to)31 b(use.)390 2944 y(Prepare)i(the)g (input)f(zero)i(terminated)g(UCS-4)f(string)g(according)h(to)g(the)f (stringprep)f(pro\014le,)390 3053 y(and)e(write)g(bac)m(k)h(the)g (result)f(to)h(the)g(input)e(string.)390 3193 y(Since)e(the)h (stringprep)f(op)s(eration)h(can)f(expand)g(the)h(string,)g Fo(maxucs4len)d Fu(indicate)j(ho)m(w)g(large)390 3302 y(the)35 b(bu\013er)e(holding)i(the)g(string)f(is.)53 b(This)34 b(function)g(will)h(not)g(read)g(or)f(write)h(to)g(co)s(de)g (p)s(oin)m(ts)390 3412 y(outside)c(that)g(size.)390 3551 y(The)f Fo(flags)f Fu(are)i(one)f(of)h Fo(Stringprep_profile_flag)o(s) 25 b Fu(v)-5 b(alues,)30 b(or)h(0.)390 3690 y(The)f Fo(profile)f Fu(con)m(tain)k(the)e Fo(Stringprep_profile)26 b Fu(instructions)k(to)i (p)s(erform.)41 b(Y)-8 b(our)31 b(appli-)390 3800 y(cation)41 b(can)g(de\014ne)e(new)g(pro\014les,)k(p)s(ossibly)c(re-using)g(the)i (generic)g(stringprep)e(tables)h(that)390 3910 y(alw)m(a)m(ys)32 b(will)f(b)s(e)e(part)i(of)f(the)h(library)-8 b(,)30 b(or)h(use)f(one)g(of)h(the)g(curren)m(tly)f(supp)s(orted)e (pro\014les.)390 4049 y Fi(Return)21 b(v)-5 b(alue:)36 b Fu(Returns)20 b Fo(STRINGPREP_OK)e Fu(i\013)j(successful,)i(or)e(an)f Fo(Stringprep_rc)e Fu(error)i(co)s(de.)150 4253 y Fn(stringprep)3350 4454 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep)c Fl(\()p Fk(c)m(har)31 b(*)g Fj(in)p Fk(,)g(size)p 1546 4454 V 41 w(t)f Fj(maxlen)p Fk(,)j(Stringprep)p 2443 4454 V 38 w(pro\014le)p 2729 4454 V 40 w(\015ags)565 4564 y Fj(flags)p Fk(,)f(const)f(Stringprep)p 1547 4564 V 39 w(pro\014le)f(*)h Fj(profile)p Fl(\))390 4673 y Fk(in)p Fu(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f(to)h (prepare.)390 4813 y Fk(maxlen)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 4952 y Fk(\015ags)t Fu(:)41 b(a)30 b Fo(Stringprep_profile_flags)24 b Fu(v)-5 b(alue,)31 b(or)g(0.)390 5091 y Fk(pro\014le)5 b Fu(:)40 b(p)s(oin)m(ter)31 b(to)g Fo(Stringprep_profile)25 b Fu(to)31 b(use.)390 5230 y(Prepare)h(the)h(input)e(zero)i(terminated) g(UTF-8)g(string)f(according)h(to)g(the)g(stringprep)e(pro\014le,)390 5340 y(and)f(write)g(bac)m(k)h(the)g(result)f(to)h(the)g(input)e (string.)p eop end %%Page: 19 24 TeXDict begin 19 23 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(19)390 299 y(Note)34 b(that)f(y)m(ou)g(m)m(ust)g(con)m(v)m(ert)h(strings)e(en)m(tered)h(in)g (the)f(systems)h(lo)s(cale)h(in)m(to)g(UTF-8)f(b)s(efore)390 408 y(using)d(this)g(function,)g(see)h Fo(stringprep_locale_to_utf8\()o (\))p Fu(.)390 541 y(Since)g(the)f(stringprep)g(op)s(eration)h(can)g (expand)f(the)h(string,)g Fo(maxlen)e Fu(indicate)i(ho)m(w)g(large)h (the)390 651 y(bu\013er)27 b(holding)g(the)h(string)g(is.)40 b(This)27 b(function)g(will)h(not)g(read)f(or)h(write)g(to)h(c)m (haracters)g(outside)390 760 y(that)i(size.)390 893 y(The)f Fo(flags)f Fu(are)i(one)f(of)h Fo(Stringprep_profile_flag)o(s)25 b Fu(v)-5 b(alues,)30 b(or)h(0.)390 1026 y(The)f Fo(profile)f Fu(con)m(tain)k(the)e Fo(Stringprep_profile)26 b Fu(instructions)k(to)i (p)s(erform.)41 b(Y)-8 b(our)31 b(appli-)390 1135 y(cation)41 b(can)g(de\014ne)e(new)g(pro\014les,)k(p)s(ossibly)c(re-using)g(the)i (generic)g(stringprep)e(tables)h(that)390 1245 y(alw)m(a)m(ys)32 b(will)f(b)s(e)e(part)i(of)f(the)h(library)-8 b(,)30 b(or)h(use)f(one)g(of)h(the)g(curren)m(tly)f(supp)s(orted)e (pro\014les.)390 1377 y Fi(Return)i(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(STRINGPREP_OK)c Fu(i\013)31 b(successful,)f(or)h(an) f(error)g(co)s(de.)150 1573 y Fn(stringprep)p 710 1573 37 5 v 55 w(pro\014le)3350 1766 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep_profile)e Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(in)p Fk(,)g(c)m(har)g(**)g Fj(out)p Fk(,)g(const)g(c)m(har)g(*)565 1876 y Fj(profile)p Fk(,)i(Stringprep)p 1414 1876 28 4 v 38 w(pro\014le)p 1700 1876 V 40 w(\015ags)e Fj(flags)p Fl(\))390 1985 y Fk(in)p Fu(:)40 b(input)30 b(arra)m(y)h(with)f(UTF-8)h(string)f(to)h(prepare.)390 2118 y Fk(out)r Fu(:)41 b(output)30 b(v)-5 b(ariable)31 b(with)f(p)s(oin)m(ter)h(to)g(newly)f(allo)s(cate)j(string.)390 2250 y Fk(pro\014le)5 b Fu(:)40 b(name)31 b(of)f(stringprep)g (pro\014le)g(to)h(use.)390 2383 y Fk(\015ags)t Fu(:)41 b(a)30 b Fo(Stringprep_profile_flags)24 b Fu(v)-5 b(alue,)31 b(or)g(0.)390 2516 y(Prepare)h(the)h(input)e(zero)i(terminated)g(UTF-8) g(string)f(according)h(to)g(the)g(stringprep)e(pro\014le,)390 2625 y(and)f(return)f(the)i(result)f(in)g(a)h(newly)f(allo)s(cated)i(v) -5 b(ariable.)390 2758 y(Note)34 b(that)f(y)m(ou)g(m)m(ust)g(con)m(v)m (ert)h(strings)e(en)m(tered)h(in)g(the)f(systems)h(lo)s(cale)h(in)m(to) g(UTF-8)f(b)s(efore)390 2868 y(using)d(this)g(function,)g(see)h Fo(stringprep_locale_to_utf8\()o(\))p Fu(.)390 3000 y(The)f(output)g Fo(out)f Fu(v)-5 b(ariable)31 b(m)m(ust)g(b)s(e)e(deallo)s(cated)k(b)m (y)d(the)h(caller.)390 3133 y(The)f Fo(flags)f Fu(are)i(one)f(of)h Fo(Stringprep_profile_flag)o(s)25 b Fu(v)-5 b(alues,)30 b(or)h(0.)390 3266 y(The)k Fo(profile)f Fu(sp)s(eci\014es)i(the)g(name) g(of)g(the)g(stringprep)f(pro\014le)g(to)i(use.)57 b(It)36 b(m)m(ust)f(b)s(e)h(one)g(of)390 3375 y(the)31 b(in)m(ternally)g(supp)s (orted)d(stringprep)i(pro\014les.)390 3508 y Fi(Return)g(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(STRINGPREP_OK)c Fu(i\013)31 b(successful,)f(or)h(an)f(error)g(co)s(de.)150 3737 y Ft(4.5)68 b(Error)45 b(Handling)150 3959 y Fn(stringprep)p 710 3959 37 5 v 55 w(strerror)3350 4152 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(char)f(*)g(stringprep_strerror)e Fl(\()p Fk(Stringprep)p 2331 4152 28 4 v 39 w(rc)31 b Fj(rc)p Fl(\))390 4261 y Fk(rc)6 b Fu(:)40 b(a)31 b Fo(Stringprep_rc)c Fu(return)i(co)s(de.)390 4394 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s (de)i(in)m(teger)i(to)e(a)g(text)h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a)390 4504 y(diagnostic)e(message)f(to)g(the)g(user.)390 4636 y Fi(STRINGPREP)p 1010 4636 28 5 v 40 w(OK:)23 b Fu(Successful)f(op)s (eration.)39 b(This)22 b(v)-5 b(alue)23 b(is)f(guaran)m(teed)i(to)f (alw)m(a)m(ys)h(b)s(e)e(zero,)390 4746 y(the)h(remaining)f(ones)h(are)g (only)g(guaran)m(teed)g(to)g(hold)g(non-zero)g(v)-5 b(alues,)24 b(for)f(logical)i(comparison)390 4856 y(purp)s(oses.)390 4988 y Fi(STRINGPREP)p 1010 4988 V 40 w(CONT)-8 b(AINS)p 1537 4988 V 41 w(UNASSIGNED:)61 b Fu(String)g(con)m(tain)j(unassigned)d (Unico)s(de)390 5098 y(co)s(de)31 b(p)s(oin)m(ts,)f(whic)m(h)g(is)h (forbidden)d(b)m(y)j(the)f(pro\014le.)390 5230 y Fi(STRINGPREP)p 1010 5230 V 40 w(CONT)-8 b(AINS)p 1537 5230 V 41 w(PR)m(OHIBITED:)38 b Fu(String)g(con)m(tain)i(co)s(de)e(p)s(oin)m(ts)h(prohibited)390 5340 y(b)m(y)30 b(the)h(pro\014le.)p eop end %%Page: 20 25 TeXDict begin 20 24 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(20)390 299 y Fi(STRINGPREP)p 1010 299 28 5 v 40 w(BIDI)p 1257 299 V 40 w(BOTH)p 1564 299 V 40 w(L)p 1659 299 V 40 w(AND)p 1909 299 V 39 w(RAL:)23 b Fu(String)g(con)m(tain)i(co)s(de)e(p)s(oin)m (ts)h(with)f(con\015ict-)390 408 y(ing)31 b(bidirection)f(category)-8 b(.)390 559 y Fi(STRINGPREP)p 1010 559 V 40 w(BIDI)p 1257 559 V 40 w(LEADTRAIL)p 1843 559 V 38 w(NOT)p 2083 559 V 41 w(RAL:)44 b Fu(Leading)h(and)f(trailing)i(c)m(haracter)g(in) 390 669 y(string)30 b(not)h(of)f(prop)s(er)f(bidirectional)j(category) -8 b(.)390 820 y Fi(STRINGPREP)p 1010 820 V 40 w(BIDI)p 1257 820 V 40 w(CONT)g(AINS)p 1784 820 V 40 w(PR)m(OHIBITED:)32 b Fu(Con)m(tains)g(prohibited)f(co)s(de)h(p)s(oin)m(ts)390 929 y(detected)g(b)m(y)e(bidirectional)h(co)s(de.)390 1080 y Fi(STRINGPREP)p 1010 1080 V 40 w(TOO)p 1249 1080 V 41 w(SMALL)p 1606 1080 V 39 w(BUFFER:)37 b Fu(Bu\013er)h(handed)e(to) j(function)e(w)m(as)i(to)s(o)f(small.)390 1190 y(This)30 b(usually)g(indicate)h(a)g(problem)f(in)g(the)g(calling)i(application.) 390 1340 y Fi(STRINGPREP)p 1010 1340 V 40 w(PR)m(OFILE)p 1454 1340 V 41 w(ERR)m(OR:)41 b Fu(The)g(stringprep)g(pro\014le)f(w)m (as)i(inconsisten)m(t.)75 b(This)390 1450 y(usually)30 b(indicate)i(an)e(in)m(ternal)h(error)f(in)g(the)h(library)-8 b(.)390 1601 y Fi(STRINGPREP)p 1010 1601 V 40 w(FLA)m(G)p 1299 1601 V 41 w(ERR)m(OR:)31 b Fu(The)g(supplied)f(\015ag)h (con\015icted)h(with)e(pro\014le.)43 b(This)30 b(usu-)390 1710 y(ally)h(indicate)h(a)e(problem)g(in)g(the)h(calling)h (application.)390 1861 y Fi(STRINGPREP)p 1010 1861 V 40 w(UNKNO)m(WN)p 1563 1861 V 42 w(PR)m(OFILE:)j Fu(The)f(supplied)g (pro\014le)g(name)h(w)m(as)g(not)g(kno)m(wn)390 1971 y(to)c(the)g(library)-8 b(.)390 2122 y Fi(STRINGPREP)p 1010 2122 V 40 w(NFK)m(C)p 1312 2122 V 41 w(F)e(AILED:)30 b Fu(The)g(Unico)s(de)h(NFK)m(C)g(op)s(eration)g(failed.)43 b(This)30 b(usually)390 2231 y(indicate)h(an)g(in)m(ternal)g(error)f (in)g(the)g(library)-8 b(.)390 2382 y Fi(STRINGPREP)p 1010 2382 V 40 w(MALLOC)p 1449 2382 V 39 w(ERR)m(OR:)31 b Fu(The)e Fo(malloc\(\))f Fu(w)m(as)i(out)g(of)g(memory)-8 b(.)41 b(This)29 b(is)h(usu-)390 2492 y(ally)h(a)g(fatal)h(error.)390 2642 y Fi(Return)d(v)-5 b(alue:)40 b Fu(Returns)29 b(a)g(p)s(oin)m(ter) h(to)g(a)f(statically)j(allo)s(cated)f(string)f(con)m(taining)h(a)e (descrip-)390 2752 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e (co)s(de)h Fo(rc)p Fu(.)150 3009 y Ft(4.6)68 b(Stringprep)45 b(Pro\014le)g(Macros)3350 3234 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep_nameprep_n)q(o_un)q(ass)q(ign)q(ed)f Fl(\()p Fk(c)m(har)31 b(*)g Fj(in)p Fk(,)g(in)m(t)g Fj(maxlen)p Fl(\))390 3344 y Fk(in)p Fu(:)40 b(input/ouput)30 b(arra)m(y)g(with)h (string)f(to)h(prepare.)390 3495 y Fk(maxlen)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 3645 y(Prepare)31 b(the)g(input)f(UTF-8)i(string)f(according)h (to)g(the)f(nameprep)f(pro\014le.)43 b(The)30 b(Allo)m(wUnas-)390 3755 y(signed)j(\015ag)g(is)g(false,)h(use)f Fo(stringprep_nameprep)28 b Fu(for)k(true)h(Allo)m(wUnassigned.)50 b(Returns)32 b(0)390 3865 y(i\013)f(successful,)f(or)g(an)h(error)f(co)s(de.)3350 4082 y([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep_iscsi)e Fl(\()p Fk(c)m(har)31 b(*)f Fj(in)p Fk(,)i(in)m(t)e Fj(maxlen)p Fl(\))390 4191 y Fk(in)p Fu(:)40 b(input/ouput)30 b(arra)m(y)g(with)h (string)f(to)h(prepare.)390 4342 y Fk(maxlen)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 4493 y(Prepare)32 b(the)g(input)e(UTF-8)j(string)f(according)h (to)f(the)g(draft)f(iSCSI)g(stringprep)g(pro\014le.)44 b(Re-)390 4602 y(turns)29 b(0)i(i\013)f(successful,)h(or)f(an)g(error)g (co)s(de.)3350 4819 y([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep_plain)e Fl(\()p Fk(c)m(har)31 b(*)f Fj(in)p Fk(,)i(in)m(t)e Fj(maxlen)p Fl(\))390 4929 y Fk(in)p Fu(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f(to)h(prepare.)390 5080 y Fk(maxlen)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g (input/output)e(arra)m(y)-8 b(.)390 5230 y(Prepare)29 b(the)g(input)f(UTF-8)i(string)f(according)h(to)g(the)f(draft)g(SASL)f (ANONYMOUS)h(pro\014le.)390 5340 y(Returns)g(0)i(i\013)g(successful,)f (or)h(an)f(error)g(co)s(de.)p eop end %%Page: 21 26 TeXDict begin 21 25 bop 150 -116 a Fu(Chapter)30 b(4:)41 b(Stringprep)29 b(F)-8 b(unctions)2209 b(21)3350 299 y([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep_xmpp_nodep)q(rep)f Fl(\()p Fk(c)m(har)31 b(*)g Fj(in)p Fk(,)g(in)m(t)g Fj(maxlen)p Fl(\))390 408 y Fk(in)p Fu(:)40 b(input/ouput)30 b(arra)m(y)g(with)h (string)f(to)h(prepare.)390 543 y Fk(maxlen)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e(arra)m(y)-8 b(.)390 677 y(Prepare)29 b(the)g(input)f(UTF-8)h(string)g(according)h (to)f(the)g(draft)g(XMPP)g(no)s(de)f(iden)m(ti\014er)h(pro\014le.)390 787 y(Returns)g(0)i(i\013)g(successful,)f(or)h(an)f(error)g(co)s(de.) 3350 971 y([F)-8 b(unction])-3599 b Fm(int)53 b(stringprep_xmpp_resou)q (rcep)q(rep)f Fl(\()p Fk(c)m(har)31 b(*)g Fj(in)p Fk(,)g(in)m(t)g Fj(maxlen)p Fl(\))390 1081 y Fk(in)p Fu(:)40 b(input/ouput)30 b(arra)m(y)g(with)h(string)f(to)h(prepare.)390 1215 y Fk(maxlen)p Fu(:)41 b(maxim)m(um)30 b(length)h(of)g(input/output)e (arra)m(y)-8 b(.)390 1350 y(Prepare)44 b(the)g(input)f(UTF-8)i(string)f (according)h(to)g(the)f(draft)f(XMPP)i(resource)f(iden)m(ti\014er)390 1460 y(pro\014le.)c(Returns)30 b(0)h(i\013)f(successful,)h(or)f(an)g (error)g(co)s(de.)p eop end %%Page: 22 27 TeXDict begin 22 26 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Pun)m(yco)s(de)30 b(F)-8 b(unctions)2241 b(22)150 299 y Fr(5)80 b(Pun)l(yco)t(de)53 b(F)-13 b(unctions)150 531 y Fu(Pun)m(yco)s(de)31 b(is)h(a)g(simple)g(and)f(e\016cien)m(t)j (transfer)d(enco)s(ding)h(syn)m(tax)g(designed)g(for)g(use)f(with)h(In) m(terna-)150 641 y(tionalized)d(Domain)f(Names)g(in)f(Applications.)41 b(It)27 b(uniquely)g(and)g(rev)m(ersibly)g(transforms)g(a)h(Unico)s(de) 150 750 y(string)33 b(in)m(to)h(an)e(ASCI)s(I)g(string.)48 b(ASCI)s(I)31 b(c)m(haracters)j(in)f(the)g(Unico)s(de)g(string)g(are)g (represen)m(ted)g(liter-)150 860 y(ally)-8 b(,)27 b(and)c(non-ASCI)s(I) f(c)m(haracters)j(are)g(represen)m(ted)e(b)m(y)h(ASCI)s(I)f(c)m (haracters)i(that)f(are)h(allo)m(w)m(ed)g(in)f(host)150 970 y(name)33 b(lab)s(els)g(\(letters,)i(digits,)g(and)d(h)m(yphens\).) 47 b(A)33 b(general)h(algorithm)g(called)g(Bo)s(otstring)g(allo)m(ws)h (a)150 1079 y(string)i(of)h(basic)f(co)s(de)h(p)s(oin)m(ts)f(to)h (uniquely)e(represen)m(t)i(an)m(y)f(string)g(of)h(co)s(de)f(p)s(oin)m (ts)g(dra)m(wn)g(from)g(a)150 1189 y(larger)i(set.)65 b(Pun)m(yco)s(de)38 b(is)g(an)g(instance)h(of)f(Bo)s(otstring)i(that)e (uses)g(particular)h(parameter)f(v)-5 b(alues,)150 1298 y(appropriate)30 b(for)h(IDNA.)150 1530 y Ft(5.1)68 b(Header)46 b(\014le)f Fh(punycode.h)150 1690 y Fu(T)-8 b(o)40 b(use)f(the)h (functions)f(explained)h(in)f(this)h(c)m(hapter,)i(y)m(ou)e(need)g(to)g (include)f(the)h(\014le)g Fo(punycode.h)150 1799 y Fu(using:)390 1933 y Fo(#include)46 b()150 2165 y Ft(5.2)68 b(Unico)t(de)45 b(Co)t(de)g(P)l(oin)l(t)h(Data)g(T)l(yp)t(e)150 2325 y Fu(The)28 b(pun)m(yco)s(de)g(function)h(uses)f(a)h(sp)s(ecial)g (t)m(yp)s(e)g(to)h(denote)f(Unico)s(de)g(co)s(de)g(p)s(oin)m(ts.)40 b(It)29 b(is)g(guaran)m(teed)150 2434 y(to)i(alw)m(a)m(ys)h(b)s(e)e(a)h (32)g(bit)f(unsigned)f(in)m(teger.)2511 2617 y([Pun)m(yco)s(de)i(Unico) s(de)f(co)s(de)h(p)s(oin)m(t])-3600 b Fm(uint32_t)55 b(punycode_uint)390 2727 y Fu(A)30 b(unsigned)g(in)m(teger)i(that)f (hold)f(Unico)s(de)g(co)s(de)h(p)s(oin)m(ts.)150 2959 y Ft(5.3)68 b(Core)46 b(F)-11 b(unctions)150 3118 y Fu(Note)45 b(that)g(the)f(curren)m(t)f(implemen)m(tation)j(will)e(fail)g(if)g(the) g Fo(input_length)d Fu(exceed)j(4294967295)150 3228 y(\(the)37 b(size)g(of)f Fo(punycode_uint)p Fu(\).)55 b(This)35 b(restriction)j(ma)m(y)e(b)s(e)g(remo)m(v)m(ed)h(in)f(the)g(future.)58 b(Mean)m(while)150 3337 y(applications)39 b(are)f(encouraged)g(to)h (not)f(dep)s(end)e(on)h(this)h(problem,)h(and)e(use)g Fo(sizeof)f Fu(to)j(initialize)150 3447 y Fo(input_length)27 b Fu(and)j Fo(output_length)p Fu(.)275 3581 y(The)f(functions)h(pro)m (vided)g(are)h(the)g(follo)m(wing)g(t)m(w)m(o)h(en)m(try)f(p)s(oin)m (ts:)150 3780 y Fn(pun)m(yco)s(de)p 668 3780 37 5 v 54 w(enco)s(de)3350 3976 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(punycode_encode)d Fl(\()p Fk(size)p 1371 3976 28 4 v 41 w(t)31 b Fj(input_length)p Fk(,)j(const)d(pun)m(yco)s(de)p 2776 3976 V 39 w(uin)m(t)g Fg([])565 4085 y Fj(input)p Fk(,)h(const)f(unsigned)e(c)m(har)i Fg([])f Fj(case_flags)p Fk(,)k(size)p 2511 4085 V 41 w(t)c(*)h Fj(output_length)p Fk(,)k(c)m(har)30 b Fg([])565 4195 y Fj(output)p Fl(\))390 4305 y Fk(input)p 609 4305 V 39 w(length)p Fu(:)40 b(The)28 b(n)m(um)m(b)s(er)g(of)g(co)s(de)h(p)s(oin)m(ts)g(in)f(the)h Fo(input)e Fu(arra)m(y)i(and)f(the)h(n)m(um)m(b)s(er)e(of)i(\015ags)390 4414 y(in)h(the)h Fo(case_flags)c Fu(arra)m(y)-8 b(.)390 4548 y Fk(input)r Fu(:)66 b(An)43 b(arra)m(y)h(of)f(co)s(de)h(p)s(oin)m (ts.)80 b(They)43 b(are)h(presumed)e(to)i(b)s(e)f(Unico)s(de)g(co)s(de) h(p)s(oin)m(ts,)390 4658 y(but)29 b(that)i(is)f(not)g(strictly)h (REQUIRED.)f(The)f(arra)m(y)i(con)m(tains)g(co)s(de)f(p)s(oin)m(ts,)g (not)g(co)s(de)g(units.)390 4767 y(UTF-16)g(uses)e(co)s(de)h(units)g (D800)h(through)e(DFFF)i(to)g(refer)f(to)g(co)s(de)g(p)s(oin)m(ts)g (10000..10FFFF.)390 4877 y(The)37 b(co)s(de)h(p)s(oin)m(ts)g (D800..DFFF)k(do)37 b(not)i(o)s(ccur)e(in)h(an)m(y)g(v)-5 b(alid)38 b(Unico)s(de)g(string.)63 b(The)38 b(co)s(de)390 4987 y(p)s(oin)m(ts)26 b(that)h(can)f(o)s(ccur)g(in)g(Unico)s(de)g (strings)g(\(0..D7FF)i(and)e(E000..10FFFF\))k(are)d(also)g(called)390 5096 y(Unico)s(de)k(scalar)g(v)-5 b(alues.)390 5230 y Fk(case)p 557 5230 V 41 w(\015ags)t Fu(:)41 b(A)31 b Fo(NULL)f Fu(p)s(oin)m(ter)g(or)h(an)g(arra)m(y)g(of)g(b)s(o)s(olean)f (v)-5 b(alues)31 b(parallel)h(to)g(the)f Fo(input)e Fu(arra)m(y)-8 b(.)390 5340 y(Nonzero)31 b(\(true,)g(\015agged\))h(suggests)f(that)g (the)f(corresp)s(onding)g(Unico)s(de)g(c)m(haracter)i(b)s(e)e(forced)p eop end %%Page: 23 28 TeXDict begin 23 27 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Pun)m(yco)s(de)30 b(F)-8 b(unctions)2241 b(23)390 299 y(to)39 b(upp)s(ercase)e(after)i(b)s(eing)f(deco)s(ded)g(\(if)g(p)s (ossible\),)j(and)c(zero)i(\(false,)j(un\015agged\))c(suggests)390 408 y(that)f(it)h(b)s(e)e(forced)h(to)g(lo)m(w)m(ercase)i(\(if)e(p)s (ossible\).)60 b(ASCI)s(I)35 b(co)s(de)i(p)s(oin)m(ts)g(\(0..7F\))i (are)e(enco)s(ded)390 518 y(literally)-8 b(,)33 b(except)f(that)g(ASCI) s(I)d(letters)j(are)f(forced)g(to)g(upp)s(ercase)f(or)h(lo)m(w)m (ercase)i(according)f(to)390 628 y(the)e(corresp)s(onding)f(case)i (\015ags.)41 b(If)29 b Fo(case_flags)e Fu(is)j(a)g Fo(NULL)f Fu(p)s(oin)m(ter)h(then)f(ASCI)s(I)g(letters)i(are)390 737 y(left)g(as)g(they)f(are,)h(and)f(other)h(co)s(de)f(p)s(oin)m(ts)g (are)h(treated)h(as)e(un\015agged.)390 871 y Fk(output)p 664 871 28 4 v 40 w(length)p Fu(:)40 b(The)28 b(caller)i(passes)f(in)f (the)h(maxim)m(um)g(n)m(um)m(b)s(er)f(of)g(ASCI)s(I)g(co)s(de)h(p)s (oin)m(ts)f(that)390 981 y(it)k(can)g(receiv)m(e.)45 b(On)31 b(successful)g(return)f(it)i(will)g(con)m(tain)g(the)g(n)m(um)m (b)s(er)e(of)i(ASCI)s(I)d(co)s(de)j(p)s(oin)m(ts)390 1091 y(actually)g(output.)390 1225 y Fk(output)r Fu(:)49 b(An)34 b(arra)m(y)h(of)f(ASCI)s(I)f(co)s(de)i(p)s(oin)m(ts.)53 b(It)35 b(is)f(*not*)i(n)m(ull-terminated;)i(it)d(will)g(con)m(tain)390 1334 y(zeros)29 b(if)f(and)g(only)g(if)g(the)g Fo(input)f Fu(con)m(tains)i(zeros.)41 b(\(Of)28 b(course)g(the)h(caller)g(can)g (lea)m(v)m(e)h(ro)s(om)e(for)390 1444 y(a)j(terminator)g(and)f(add)f (one)i(if)f(needed.\))390 1578 y(Con)m(v)m(erts)k(a)g(sequence)f(of)h (co)s(de)f(p)s(oin)m(ts)g(\(presumed)f(to)i(b)s(e)f(Unico)s(de)g(co)s (de)h(p)s(oin)m(ts\))f(to)h(Pun)m(y-)390 1688 y(co)s(de.)390 1822 y Fi(Return)g(v)-5 b(alue:)49 b Fu(The)33 b(return)g(v)-5 b(alue)35 b(can)g(b)s(e)e(an)m(y)i(of)f(the)h Fo(Punycode_status)30 b Fu(v)-5 b(alues)34 b(de\014ned)390 1931 y(ab)s(o)m(v)m(e)41 b(except)g Fo(PUNYCODE_BAD_INPUT)p Fu(.)65 b(If)39 b(not)h Fo(PUNYCODE_SUCCESS)p Fu(,)e(then)i Fo(output_size)390 2041 y Fu(and)30 b Fo(output)e Fu(migh)m(t)k(con)m(tain)f(garbage.)150 2239 y Fn(pun)m(yco)s(de)p 668 2239 37 5 v 54 w(deco)s(de)3350 2435 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(punycode_decode)d Fl(\()p Fk(size)p 1371 2435 28 4 v 41 w(t)29 b Fj(input_length)p Fk(,)j(const)d(c)m(har)f Fg([])g Fj(input)p Fk(,)i(size)p 3130 2435 V 41 w(t)565 2545 y(*)h Fj(output_length)p Fk(,)j(pun)m(yco)s(de)p 1759 2545 V 40 w(uin)m(t)c Fg([])g Fj(output)p Fk(,)i(unsigned)e(c)m(har)h Fg([])f Fj(case_flags)p Fl(\))390 2655 y Fk(input)p 609 2655 V 39 w(length)p Fu(:)41 b(The)30 b(n)m(um)m(b)s(er)f(of)i(ASCI)s(I)e(co)s(de)h(p)s(oin) m(ts)g(in)g(the)h Fo(input)e Fu(arra)m(y)-8 b(.)390 2789 y Fk(input)r Fu(:)40 b(An)30 b(arra)m(y)h(of)f(ASCI)s(I)f(co)s(de)i(p)s (oin)m(ts)f(\(0..7F\).)390 2923 y Fk(output)p 664 2923 V 40 w(length)p Fu(:)42 b(The)30 b(caller)i(passes)f(in)g(the)g(maxim)m (um)f(n)m(um)m(b)s(er)g(of)h(co)s(de)g(p)s(oin)m(ts)g(that)g(it)h(can) 390 3032 y(receiv)m(e)41 b(in)m(to)e(the)g Fo(output)e Fu(arra)m(y)i(\(whic)m(h)g(is)g(also)g(the)g(maxim)m(um)g(n)m(um)m(b)s (er)e(of)i(\015ags)g(that)g(it)390 3142 y(can)h(receiv)m(e)i(in)m(to)f (the)f Fo(case_flags)d Fu(arra)m(y)-8 b(,)43 b(if)d Fo(case_flags)d Fu(is)j(not)g(a)g Fo(NULL)f Fu(p)s(oin)m(ter\).)70 b(On)390 3252 y(successful)39 b(return)e(it)j(will)f(con)m(tain)h(the)f(n)m(um)m (b)s(er)f(of)h(co)s(de)g(p)s(oin)m(ts)g(actually)h(output)f(\(whic)m(h) 390 3361 y(is)c(also)h(the)f(n)m(um)m(b)s(er)e(of)i(\015ags)g(actually) i(output,)e(if)g(case)p 2423 3361 V 41 w(\015ags)g(is)g(not)g(a)g(n)m (ull)g(p)s(oin)m(ter\).)54 b(The)390 3471 y(deco)s(der)31 b(will)h(nev)m(er)f(need)g(to)h(output)f(more)h(co)s(de)f(p)s(oin)m(ts) g(than)g(the)h(n)m(um)m(b)s(er)e(of)h(ASCI)s(I)f(co)s(de)390 3580 y(p)s(oin)m(ts)g(in)g(the)g(input,)g(b)s(ecause)g(of)g(the)h(w)m (a)m(y)g(the)f(enco)s(ding)g(is)g(de\014ned.)40 b(The)30 b(n)m(um)m(b)s(er)e(of)j(co)s(de)390 3690 y(p)s(oin)m(ts)d(output)g (cannot)g(exceed)h(the)g(maxim)m(um)e(p)s(ossible)h(v)-5 b(alue)29 b(of)f(a)g(pun)m(yco)s(de)p 3246 3690 V 39 w(uin)m(t,)h(ev)m(en)g(if)390 3800 y(the)i(supplied)e Fo(output_length)d Fu(is)31 b(greater)g(than)g(that.)390 3934 y Fk(output)r Fu(:)40 b(An)28 b(arra)m(y)h(of)g(co)s(de)g(p)s(oin) m(ts)g(lik)m(e)h(the)f(input)f(argumen)m(t)h(of)g Fo (punycode_encode\(\))24 b Fu(\(see)390 4043 y(ab)s(o)m(v)m(e\).)390 4177 y Fk(case)p 557 4177 V 41 w(\015ags)t Fu(:)49 b(A)35 b Fo(NULL)e Fu(p)s(oin)m(ter)h(\(if)h(the)g(\015ags)f(are)h(not)g (needed)f(b)m(y)g(the)h(caller\))h(or)e(an)h(arra)m(y)g(of)390 4287 y(b)s(o)s(olean)26 b(v)-5 b(alues)25 b(parallel)i(to)g(the)e Fo(output)f Fu(arra)m(y)-8 b(.)40 b(Nonzero)27 b(\(true,)g(\015agged\)) f(suggests)h(that)f(the)390 4397 y(corresp)s(onding)37 b(Unico)s(de)h(c)m(haracter)h(b)s(e)e(forced)h(to)g(upp)s(ercase)f(b)m (y)h(the)g(caller)h(\(if)f(p)s(ossible\),)390 4506 y(and)26 b(zero)h(\(false,)h(un\015agged\))e(suggests)h(that)g(it)f(b)s(e)g (forced)g(to)h(lo)m(w)m(ercase)i(\(if)d(p)s(ossible\).)39 b(ASCI)s(I)390 4616 y(co)s(de)33 b(p)s(oin)m(ts)f(\(0..7F\))j(are)e (output)g(already)g(in)f(the)h(prop)s(er)e(case,)k(but)d(their)h (\015ags)f(will)h(b)s(e)f(set)390 4725 y(appropriately)f(so)f(that)h (applying)f(the)h(\015ags)g(w)m(ould)f(b)s(e)f(harmless.)390 4859 y(Con)m(v)m(erts)47 b(Pun)m(yco)s(de)g(to)g(a)h(sequence)f(of)g (co)s(de)g(p)s(oin)m(ts)f(\(presumed)g(to)i(b)s(e)e(Unico)s(de)h(co)s (de)390 4969 y(p)s(oin)m(ts\).)390 5103 y Fi(Return)34 b(v)-5 b(alue:)49 b Fu(The)33 b(return)g(v)-5 b(alue)35 b(can)g(b)s(e)e(an)m(y)i(of)f(the)h Fo(Punycode_status)30 b Fu(v)-5 b(alues)34 b(de\014ned)390 5213 y(ab)s(o)m(v)m(e.)74 b(If)41 b(not)h Fo(PUNYCODE_SUCCESS)p Fu(,)d(then)i Fo(output_length)p Fu(,)g Fo(output)p Fu(,)h(and)f Fo(case_flags)390 5322 y Fu(migh)m(t)31 b(con)m(tain)h(garbage.)p eop end %%Page: 24 29 TeXDict begin 24 28 bop 150 -116 a Fu(Chapter)30 b(5:)41 b(Pun)m(yco)s(de)30 b(F)-8 b(unctions)2241 b(24)150 299 y Ft(5.4)68 b(Error)45 b(Handling)150 523 y Fn(pun)m(yco)s(de)p 668 523 37 5 v 54 w(strerror)3350 720 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(char)f(*)g(punycode_strerror)e Fl(\()p Fk(Pun)m(yco)s(de)p 2194 720 28 4 v 40 w(status)30 b Fj(rc)p Fl(\))390 829 y Fk(rc)6 b Fu(:)40 b(an)30 b Fo(Punycode_status) d Fu(return)i(co)s(de.)390 964 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s (de)i(in)m(teger)i(to)e(a)g(text)h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a)390 1073 y(diagnostic)e(message)f(to)g(the)g(user.)390 1208 y Fi(PUNYCODE)p 932 1208 28 5 v 39 w(SUCCESS:)k Fu(Successful)j(op)s (eration.)63 b(This)37 b(v)-5 b(alue)38 b(is)g(guaran)m(teed)h(to)f (alw)m(a)m(ys)390 1318 y(b)s(e)33 b(zero,)j(the)e(remaining)g(ones)g (are)g(only)g(guaran)m(teed)h(to)g(hold)e(non-zero)i(v)-5 b(alues,)35 b(for)e(logical)390 1427 y(comparison)e(purp)s(oses.)390 1562 y Fi(PUNYCODE)p 932 1562 V 39 w(BAD)p 1175 1562 V 39 w(INPUT:)g Fu(Input)e(is)i(in)m(v)-5 b(alid.)390 1696 y Fi(PUNYCODE)p 932 1696 V 39 w(BIG)p 1143 1696 V 40 w(OUTPUT:)31 b Fu(Output)f(w)m(ould)g(exceed)h(the)g(space)g(pro)m (vided.)390 1831 y Fi(PUNYCODE)p 932 1831 V 39 w(O)m(VERFLO)m(W:)g Fu(Input)e(needs)h(wider)g(in)m(tegers)h(to)g(pro)s(cess.)390 1965 y Fi(Return)e(v)-5 b(alue:)40 b Fu(Returns)29 b(a)g(p)s(oin)m(ter) h(to)g(a)f(statically)j(allo)s(cated)f(string)f(con)m(taining)h(a)e (descrip-)390 2075 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e (co)s(de)h Fo(rc)p Fu(.)p eop end %%Page: 25 30 TeXDict begin 25 29 bop 150 -116 a Fu(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(25)150 299 y Fr(6)80 b(IDNA)54 b(F)-13 b(unctions)150 580 y Fu(Un)m(til)30 b(no)m(w,)g(there)f(has)g(b)s(een)f(no)h(standard)f(metho)s(d)h(for)g (domain)g(names)g(to)g(use)g(c)m(haracters)i(outside)150 690 y(the)26 b(ASCI)s(I)f(rep)s(ertoire.)39 b(The)26 b(IDNA)h(do)s(cumen)m(t)f(de\014nes)f(in)m(ternationalized)k(domain)d (names)g(\(IDNs\))150 799 y(and)d(a)g(mec)m(hanism)h(called)g(IDNA)g (for)f(handling)f(them)h(in)g(a)h(standard)e(fashion.)38 b(IDNs)24 b(use)e(c)m(haracters)150 909 y(dra)m(wn)28 b(from)h(a)h(large)g(rep)s(ertoire)f(\(Unico)s(de\),)i(but)d(IDNA)i (allo)m(ws)g(the)g(non-ASCI)s(I)d(c)m(haracters)k(to)f(b)s(e)150 1018 y(represen)m(ted)e(using)f(only)h(the)g(ASCI)s(I)e(c)m(haracters)k (already)e(allo)m(w)m(ed)i(in)d(so-called)j(host)e(names)g(to)s(da)m(y) -8 b(.)150 1128 y(This)26 b(bac)m(kw)m(ard-compatible)i(represen)m (tation)f(is)g(required)e(in)h(existing)h(proto)s(cols)h(lik)m(e)f (DNS,)g(so)f(that)150 1238 y(IDNs)f(can)h(b)s(e)e(in)m(tro)s(duced)h (with)g(no)g(c)m(hanges)h(to)g(the)f(existing)h(infrastructure.)38 b(IDNA)26 b(is)f(only)g(mean)m(t)150 1347 y(for)30 b(pro)s(cessing)g (domain)h(names,)f(not)h(free)f(text.)150 1603 y Ft(6.1)68 b(Header)46 b(\014le)f Fh(idna.h)150 1763 y Fu(T)-8 b(o)31 b(use)f(the)g(functions)g(explained)h(in)f(this)g(c)m(hapter,)i(y)m(ou) e(need)g(to)i(include)e(the)g(\014le)h Fo(idna.h)d Fu(using:)390 1913 y Fo(#include)46 b()150 2169 y Ft(6.2)68 b(Con)l(trol)46 b(Flags)150 2328 y Fu(The)32 b(IDNA)h Fo(flags)e Fu(parameter)j(can)f(tak)m(e)h(on)e(the)h(follo)m(wing)h(v) -5 b(alues,)34 b(or)f(a)g(bit-wise)g(inclusiv)m(e)g(or)g(of)150 2438 y(an)m(y)e(subset)f(of)g(the)h(parameters:)3211 2653 y([Return)e(co)s(de])-3599 b Fm(Idna_flags)55 b (IDNA_ALLOW_UNASSIGNED)390 2763 y Fu(Allo)m(w)32 b(unassigned)d(Unico)s (de)i(co)s(de)f(p)s(oin)m(ts.)3211 2979 y([Return)f(co)s(de])-3599 b Fm(Idna_flags)55 b(IDNA_USE_STD3_ASCII_R)q(ULE)q(S)390 3088 y Fu(Chec)m(k)31 b(output)f(to)h(mak)m(e)g(sure)f(it)h(is)f(a)h (STD3)f(conforming)h(host)f(name.)150 3344 y Ft(6.3)68 b(Pre\014x)45 b(String)3449 3569 y Fu([Macro])-3598 b Fm(#define)54 b(IDNA_ACE_PREFIX)390 3679 y Fu(String)30 b(with)g(the)h(o\016cial)g(IDNA)g(pre\014x,)f Fo(xn--)p Fu(.)150 3935 y Ft(6.4)68 b(Core)46 b(F)-11 b(unctions)150 4094 y Fu(The)22 b(idea)g(b)s(ehind)f(the)h(IDNA)h(function)f(names)g (are)g(as)h(follo)m(ws:)38 b(the)22 b Fo(idna_to_ascii_4i)c Fu(and)j Fo(idna_)150 4204 y(to_unicode_44i)26 b Fu(functions)j(are)h (the)g(core)g(IDNA)h(primitiv)m(es.)41 b(The)29 b Fo(4)g Fu(indicate)i(that)f(the)g(function)150 4313 y(tak)m(es)e(UCS-4)f (strings)g(\(i.e.,)i(Unico)s(de)e(co)s(de)g(p)s(oin)m(ts)f(enco)s(ded)h (in)f(a)i(32-bit)g(unsigned)d(in)m(teger)j(t)m(yp)s(e\))g(of)150 4423 y(the)k(sp)s(eci\014ed)g(length.)46 b(The)32 b Fo(i)f Fu(indicate)i(that)g(the)f(data)h(is)f(written)g(\\inline")i(in)m(to)f (the)f(bu\013er.)45 b(This)150 4532 y(means)33 b(the)g(caller)h(is)f (resp)s(onsible)f(for)g(allo)s(cating)k(\(and)c(de-allo)s(cating\))k (the)d(string,)h(and)e(pro)m(viding)150 4642 y(the)40 b(library)f(with)h(the)g(allo)s(cated)i(length)e(of)g(the)g(string.)69 b(The)40 b(output)f(length)h(is)g(written)g(in)g(the)150 4751 y(output)33 b(length)h(v)-5 b(ariable.)51 b(The)33 b(remaining)h(functions)f(all)i(con)m(tain)f(the)g Fo(z)f Fu(indicator,)j(whic)m(h)d(means)150 4861 y(the)h(strings)g(are)g(zero) h(terminated.)52 b(All)34 b(output)g(strings)g(are)g(allo)s(cated)i(b)m (y)e(the)g(library)-8 b(,)35 b(and)e(m)m(ust)150 4971 y(b)s(e)i(de-allo)s(cated)j(b)m(y)e(the)g(caller.)58 b(The)35 b Fo(4)h Fu(indicator)g(again)h(means)f(that)g(the)g(string)g (is)f(UCS-4,)j(the)150 5080 y Fo(8)d Fu(means)h(the)f(strings)h(are)g (UTF-8)g(and)f(the)h Fo(l)f Fu(indicator)h(means)f(the)h(strings)f(are) h(enco)s(ded)g(in)f(the)150 5190 y(enco)s(ding)30 b(used)g(b)m(y)g(the) h(curren)m(t)f(lo)s(cale.)275 5340 y(The)f(functions)h(pro)m(vided)g (are)h(the)g(follo)m(wing)g(en)m(try)g(p)s(oin)m(ts:)p eop end %%Page: 26 31 TeXDict begin 26 30 bop 150 -116 a Fu(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(26)150 299 y Fn(idna)p 389 299 37 5 v 54 w(to)p 552 299 V 54 w(ascii)p 837 299 V 54 w(4i)3350 487 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_ascii_4i)e Fl(\()p Fk(const)31 b(uin)m(t32)p 1770 487 28 4 v 41 w(t)f(*)h Fj(in)p Fk(,)g(size)p 2253 487 V 41 w(t)g Fj(inlen)p Fk(,)h(c)m(har)f(*)f Fj(out)p Fk(,)565 597 y(in)m(t)h Fj(flags)p Fl(\))390 706 y Fk(in)p Fu(:)40 b(input)30 b(arra)m(y)h(with)f(unico)s(de)g(co)s(de)g(p)s(oin)m (ts.)390 837 y Fk(inlen)p Fu(:)41 b(length)30 b(of)h(input)e(arra)m(y)i (with)f(unico)s(de)g(co)s(de)h(p)s(oin)m(ts.)390 967 y Fk(out)r Fu(:)54 b(output)37 b(zero)h(terminated)g(string)f(that)g(m) m(ust)g(ha)m(v)m(e)i(ro)s(om)d(for)h(at)h(least)h(63)e(c)m(haracters) 390 1076 y(plus)29 b(the)i(terminating)g(zero.)390 1207 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_)390 1316 y(ASCII_RULES)p Fu(.)390 1446 y(The)34 b(T)-8 b(oASCI)s(I)33 b(op)s(eration)i(tak)m(es)h(a)f (sequence)g(of)f(Unico)s(de)h(co)s(de)g(p)s(oin)m(ts)f(that)h(mak)m(e)g (up)f(one)390 1556 y(domain)k(lab)s(el)h(and)e(transforms)h(it)g(in)m (to)i(a)e(sequence)h(of)f(co)s(de)h(p)s(oin)m(ts)f(in)g(the)g(ASCI)s(I) f(range)390 1666 y(\(0..7F\).)42 b(If)c(T)-8 b(oASCI)s(I)38 b(succeeds,)k(the)d(original)i(sequence)e(and)g(the)g(resulting)g (sequence)h(are)390 1775 y(equiv)-5 b(alen)m(t)32 b(lab)s(els.)390 1905 y(It)26 b(is)f(imp)s(ortan)m(t)h(to)g(note)h(that)f(the)g(T)-8 b(oASCI)s(I)24 b(op)s(eration)i(can)g(fail.)40 b(T)-8 b(oASCI)s(I)24 b(fails)i(if)g(an)m(y)g(step)390 2015 y(of)j(it)h(fails.)41 b(If)29 b(an)m(y)h(step)f(of)g(the)h(T)-8 b(oASCI)s(I)28 b(op)s(eration)i(fails)g(on)f(an)m(y)g(lab)s(el)h(in)f (a)g(domain)h(name,)390 2125 y(that)k(domain)f(name)h(MUST)f(NOT)g(b)s (e)g(used)f(as)i(an)f(in)m(ternationalized)j(domain)d(name.)50 b(The)390 2234 y(metho)s(d)30 b(for)g(deadling)h(with)f(this)g(failure) g(is)h(application-sp)s(eci\014c.)390 2364 y(The)d(inputs)f(to)j(T)-8 b(oASCI)s(I)27 b(are)i(a)g(sequence)g(of)f(co)s(de)h(p)s(oin)m(ts,)g (the)f(Allo)m(wUnassigned)i(\015ag,)g(and)390 2474 y(the)f(UseSTD3ASCI) s(IRules)f(\015ag.)41 b(The)29 b(output)g(of)g(T)-8 b(oASCI)s(I)28 b(is)h(either)h(a)g(sequence)f(of)g(ASCI)s(I)390 2584 y(co)s(de)i(p)s(oin)m(ts)f(or)g(a)h(failure)g(condition.)390 2714 y(T)-8 b(oASCI)s(I)36 b(nev)m(er)h(alters)g(a)g(sequence)g(of)g (co)s(de)g(p)s(oin)m(ts)g(that)g(are)g(all)h(in)e(the)h(ASCI)s(I)e (range)i(to)390 2823 y(b)s(egin)32 b(with)g(\(although)h(it)f(could)g (fail\).)48 b(Applying)31 b(the)i(T)-8 b(oASCI)s(I)31 b(op)s(eration)i(m)m(ultiple)f(times)390 2933 y(has)e(exactly)i(the)f (same)g(e\013ect)g(as)g(applying)f(it)h(just)f(once.)390 3063 y Fi(Return)g(v)-5 b(alue:)41 b Fu(Returns)30 b(0)g(on)h(success,) f(or)h(an)f Fo(Idna_rc)e Fu(error)i(co)s(de.)150 3254 y Fn(idna)p 389 3254 37 5 v 54 w(to)p 552 3254 V 54 w(unico)s(de)p 1019 3254 V 55 w(44i)3350 3442 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_unicode_44i)e Fl(\()p Fk(const)32 b(uin)m(t32)p 1927 3442 28 4 v 41 w(t)e(*)h Fj(in)p Fk(,)g(size)p 2410 3442 V 41 w(t)g Fj(inlen)p Fk(,)h(uin)m(t32)p 3083 3442 V 41 w(t)565 3552 y(*)f Fj(out)p Fk(,)g(size)p 1000 3552 V 41 w(t)g(*)g Fj(outlen)p Fk(,)h(in)m(t)f Fj(flags)p Fl(\))390 3661 y Fk(in)p Fu(:)40 b(input)30 b(arra)m(y)h(with)f(unico)s (de)g(co)s(de)g(p)s(oin)m(ts.)390 3791 y Fk(inlen)p Fu(:)41 b(length)30 b(of)h(input)e(arra)m(y)i(with)f(unico)s(de)g(co)s(de)h(p)s (oin)m(ts.)390 3922 y Fk(out)r Fu(:)41 b(output)30 b(arra)m(y)h(with)f (unico)s(de)g(co)s(de)g(p)s(oin)m(ts.)390 4052 y Fk(outlen)p Fu(:)50 b(on)35 b(input,)g(maxim)m(um)g(size)h(of)f(output)f(arra)m(y)i (with)e(unico)s(de)h(co)s(de)g(p)s(oin)m(ts,)h(on)f(exit,)390 4162 y(actual)d(size)f(of)f(output)g(arra)m(y)h(with)f(unico)s(de)g(co) s(de)h(p)s(oin)m(ts.)390 4292 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_)390 4401 y(ASCII_RULES)p Fu(.)390 4532 y(The)28 b(T)-8 b(oUnico)s(de)30 b(op)s(eration)g(tak)m(es)g(a)f(sequence)h(of)f(Unico)s(de)g(co)s(de)g (p)s(oin)m(ts)g(that)h(mak)m(e)g(up)e(one)390 4641 y(domain)g(lab)s(el) h(and)e(returns)g(a)i(sequence)f(of)g(Unico)s(de)h(co)s(de)f(p)s(oin)m (ts.)40 b(If)28 b(the)g(input)f(sequence)i(is)390 4751 y(a)35 b(lab)s(el)f(in)g(A)m(CE)h(form,)g(then)f(the)g(result)g(is)h (an)f(equiv)-5 b(alen)m(t)36 b(in)m(ternationalized)g(lab)s(el)f(that)g (is)390 4860 y(not)c(in)f(A)m(CE)g(form,)g(otherwise)h(the)g(original)g (sequence)g(is)f(returned)g(unaltered.)390 4991 y(T)-8 b(oUnico)s(de)33 b(nev)m(er)f(fails.)46 b(If)31 b(an)m(y)h(step)g (fails,)h(then)f(the)g(original)h(input)e(sequence)h(is)g(returned)390 5100 y(immediately)g(in)e(that)h(step.)390 5230 y(The)51 b(Pun)m(yco)s(de)g(deco)s(der)g(can)h(nev)m(er)g(output)f(more)g(co)s (de)h(p)s(oin)m(ts)f(than)h(it)g(inputs,)k(but)390 5340 y(Nameprep)27 b(can,)i(and)e(therefore)g(T)-8 b(oUnico)s(de)28 b(can.)41 b(Note)28 b(that)g(the)g(n)m(um)m(b)s(er)e(of)i(o)s(ctets)g (needed)p eop end %%Page: 27 32 TeXDict begin 27 31 bop 150 -116 a Fu(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(27)390 299 y(to)32 b(represen)m(t)g(a)g(sequence)g(of)g(co)s(de)g(p)s(oin)m(ts)f(dep)s (ends)f(on)i(the)g(particular)g(c)m(haracter)h(enco)s(ding)390 408 y(used.)390 543 y(The)k(inputs)f(to)h(T)-8 b(oUnico)s(de)38 b(are)g(a)f(sequence)g(of)h(co)s(de)f(p)s(oin)m(ts,)i(the)e(Allo)m (wUnassigned)h(\015ag,)390 653 y(and)29 b(the)g(UseSTD3ASCI)s(IRules)g (\015ag.)40 b(The)29 b(output)g(of)h(T)-8 b(oUnico)s(de)30 b(is)f(alw)m(a)m(ys)i(a)f(sequence)g(of)390 763 y(Unico)s(de)h(co)s(de) f(p)s(oin)m(ts.)390 898 y Fi(Return)g(v)-5 b(alue:)40 b Fu(Returns)29 b Fo(Idna_rc)f Fu(error)i(condition,)h(but)e(it)h(m)m (ust)g(only)g(b)s(e)g(used)f(for)g(debug-)390 1007 y(ging)37 b(purp)s(oses.)58 b(The)36 b(output)g(bu\013er)f(is)i(alw)m(a)m(ys)h (guaran)m(teed)g(to)f(con)m(tain)h(the)f(correct)g(data)390 1117 y(according)28 b(to)g(the)f(sp)s(eci\014cation)g(\(sans)g(mallo)s (c)h(induced)e(errors\).)39 b(NB!)28 b(This)e(means)h(that)h(y)m(ou)390 1226 y(normally)e(ignore)h(the)f(return)f(co)s(de)h(from)f(this)h (function,)h(as)f(c)m(hec)m(king)h(it)g(means)f(breaking)g(the)390 1336 y(standard.)150 1569 y Ft(6.5)68 b(Simpli\014ed)45 b(T)-11 b(oASCI)t(I)44 b(In)l(terface)150 1793 y Fn(idna)p 389 1793 37 5 v 54 w(to)p 552 1793 V 54 w(ascii)p 837 1793 V 54 w(4z)3350 1991 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_ascii_4z)e Fl(\()p Fk(const)31 b(uin)m(t32)p 1770 1991 28 4 v 41 w(t)f(*)h Fj(input)p Fk(,)h(c)m(har)f(**)g Fj(output)p Fk(,)i(in)m(t)565 2100 y Fj(flags)p Fl(\))390 2210 y Fk(input)r Fu(:)40 b(zero)31 b(terminated)g(input)e(Unico)s(de)i(string.)390 2345 y Fk(output)r Fu(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i (output)e(string.)390 2480 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo (IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_)390 2589 y(ASCII_RULES)p Fu(.)390 2724 y(Con)m(v)m(ert)25 b(UCS-4)g(domain)f(name)g(to)h(ASCI)s(I)e(string.)39 b(The)23 b(domain)i(name)f(ma)m(y)h(con)m(tain)h(sev)m(eral)390 2834 y(lab)s(els,)31 b(separated)g(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m(y)e(the)h (caller.)390 2969 y Fi(Return)f(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f(error)g(co)s(de.)150 3169 y Fn(idna)p 389 3169 37 5 v 54 w(to)p 552 3169 V 54 w(ascii)p 837 3169 V 54 w(8z)3350 3366 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_ascii_8z)e Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(input)p Fk(,)i(c)m(har)f(**)g Fj(output)p Fk(,)i(in)m(t)565 3476 y Fj(flags)p Fl(\))390 3585 y Fk(input)r Fu(:)40 b(zero)31 b(terminated)g(input)e(UTF-8)i (string.)390 3720 y Fk(output)r Fu(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i(output)e(string.)390 3855 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_)390 3965 y(ASCII_RULES)p Fu(.)390 4100 y(Con)m(v)m(ert)24 b(UTF-8)h(domain)e(name)h(to)g(ASCI)s(I)e (string.)38 b(The)24 b(domain)f(name)h(ma)m(y)g(con)m(tain)h(sev)m (eral)390 4209 y(lab)s(els,)31 b(separated)g(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m (y)e(the)h(caller.)390 4344 y Fi(Return)f(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f(error)g(co) s(de.)150 4544 y Fn(idna)p 389 4544 V 54 w(to)p 552 4544 V 54 w(ascii)p 837 4544 V 54 w(lz)3350 4741 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_ascii_lz)e Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(input)p Fk(,)i(c)m(har)f(**)g Fj(output)p Fk(,)i(in)m(t)565 4851 y Fj(flags)p Fl(\))390 4960 y Fk(input)r Fu(:)40 b(zero)31 b(terminated)g(input)e(string)i (enco)s(ded)f(in)g(the)g(curren)m(t)g(lo)s(cale's)j(c)m(haracter)f (set.)390 5095 y Fk(output)r Fu(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i(output)e(string.)390 5230 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_)390 5340 y(ASCII_RULES)p Fu(.)p eop end %%Page: 28 33 TeXDict begin 28 32 bop 150 -116 a Fu(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(28)390 299 y(Con)m(v)m(ert)37 b(domain)f(name)g(in)f(the)h(lo)s(cale's)i(enco)s(ding)e(to)h(ASCI)s(I) d(string.)58 b(The)35 b(domain)h(name)390 408 y(ma)m(y)27 b(con)m(tain)g(sev)m(eral)h(lab)s(els,)f(separated)g(b)m(y)f(dots.)39 b(The)26 b(output)f(bu\013er)h(m)m(ust)g(b)s(e)f(deallo)s(cated)390 518 y(b)m(y)30 b(the)h(caller.)390 651 y Fi(Return)f(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f (error)g(co)s(de.)150 881 y Ft(6.6)68 b(Simpli\014ed)45 b(T)-11 b(oUnico)t(de)45 b(In)l(terface)150 1104 y Fn(idna)p 389 1104 37 5 v 54 w(to)p 552 1104 V 54 w(unico)s(de)p 1019 1104 V 55 w(4z4z)3350 1298 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_unicode_4z4z)f Fl(\()p Fk(const)31 b(uin)m(t32)p 1979 1298 28 4 v 41 w(t)g(*)f Fj(input)p Fk(,)i(uin)m(t32)p 2727 1298 V 41 w(t)f(**)565 1408 y Fj(output)p Fk(,)h(in)m(t)f Fj(flags)p Fl(\))390 1517 y Fk(input)r Fu(:)40 b(zero-terminated)32 b(Unico)s(de)e(string.)390 1651 y Fk(output)r Fu(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s (cated)i(output)e(Unico)s(de)h(string.)390 1784 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_) 390 1893 y(ASCII_RULES)p Fu(.)390 2027 y(Con)m(v)m(ert)34 b(p)s(ossibly)d(A)m(CE)i(enco)s(ded)g(domain)f(name)h(in)f(UCS-4)h (format)g(in)m(to)h(a)f(UCS-4)g(string.)390 2136 y(The)f(domain)g(name) g(ma)m(y)h(con)m(tain)g(sev)m(eral)h(lab)s(els,)f(separated)g(b)m(y)f (dots.)46 b(The)32 b(output)g(bu\013er)390 2246 y(m)m(ust)e(b)s(e)g (deallo)s(cated)i(b)m(y)f(the)f(caller.)390 2379 y Fi(Return)g(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f (error)g(co)s(de.)150 2576 y Fn(idna)p 389 2576 37 5 v 54 w(to)p 552 2576 V 54 w(unico)s(de)p 1019 2576 V 55 w(8z4z)3350 2770 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_unicode_8z4z)f Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(input)p Fk(,)j(uin)m(t32)p 2572 2770 28 4 v 41 w(t)d(**)h Fj(output)p Fk(,)565 2879 y(in)m(t)g Fj(flags)p Fl(\))390 2989 y Fk(input)r Fu(:)40 b(zero-terminated)32 b(UTF-8)f(string.)390 3122 y Fk(output)r Fu(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s (cated)i(output)e(Unico)s(de)h(string.)390 3255 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_) 390 3365 y(ASCII_RULES)p Fu(.)390 3498 y(Con)m(v)m(ert)33 b(p)s(ossibly)e(A)m(CE)h(enco)s(ded)g(domain)f(name)i(in)e(UTF-8)i (format)f(in)m(to)h(a)g(UCS-4)f(string.)390 3608 y(The)g(domain)g(name) g(ma)m(y)h(con)m(tain)g(sev)m(eral)h(lab)s(els,)f(separated)g(b)m(y)f (dots.)46 b(The)32 b(output)g(bu\013er)390 3717 y(m)m(ust)e(b)s(e)g (deallo)s(cated)i(b)m(y)f(the)f(caller.)390 3851 y Fi(Return)g(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f (error)g(co)s(de.)150 4047 y Fn(idna)p 389 4047 37 5 v 54 w(to)p 552 4047 V 54 w(unico)s(de)p 1019 4047 V 55 w(8z8z)3350 4242 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_unicode_8z8z)f Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(input)p Fk(,)j(c)m(har)d(**)i Fj(output)p Fk(,)g(in)m(t)565 4351 y Fj(flags)p Fl(\))390 4461 y Fk(input)r Fu(:)40 b(zero-terminated)32 b(UTF-8)f(string.)390 4594 y Fk(output)r Fu(:)40 b(p)s(oin)m(ter)31 b(to)g(newly)f(allo)s(cated)i(output)e (UTF-8)h(string.)390 4727 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo (IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_)390 4837 y(ASCII_RULES)p Fu(.)390 4970 y(Con)m(v)m(ert)32 b(p)s(ossibly)e(A)m(CE)i(enco)s(ded)f(domain)g(name)g(in)g(UTF-8)h (format)g(in)m(to)g(a)g(UTF-8)g(string.)390 5080 y(The)g(domain)g(name) g(ma)m(y)h(con)m(tain)g(sev)m(eral)h(lab)s(els,)f(separated)g(b)m(y)f (dots.)46 b(The)32 b(output)g(bu\013er)390 5189 y(m)m(ust)e(b)s(e)g (deallo)s(cated)i(b)m(y)f(the)f(caller.)390 5322 y Fi(Return)g(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f (error)g(co)s(de.)p eop end %%Page: 29 34 TeXDict begin 29 33 bop 150 -116 a Fu(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(29)150 299 y Fn(idna)p 389 299 37 5 v 54 w(to)p 552 299 V 54 w(unico)s(de)p 1019 299 V 55 w(8zlz)3350 491 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_unicode_8zlz)f Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(input)p Fk(,)j(c)m(har)d(**)i Fj(output)p Fk(,)g(in)m(t)565 600 y Fj(flags)p Fl(\))390 710 y Fk(input)r Fu(:)40 b(zero-terminated)32 b(UTF-8)f(string.)390 842 y Fk(output)r Fu(:)71 b(p)s(oin)m(ter)45 b(to)h(newly)g(allo)s(cated)h (output)e(string)h(enco)s(ded)f(in)g(the)h(curren)m(t)f(lo)s(cale's)390 952 y(c)m(haracter)32 b(set.)390 1084 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_) 390 1193 y(ASCII_RULES)p Fu(.)390 1325 y(Con)m(v)m(ert)30 b(p)s(ossibly)e(A)m(CE)h(enco)s(ded)g(domain)g(name)g(in)g(UTF-8)g (format)h(in)m(to)g(a)f(string)g(enco)s(ded)390 1435 y(in)35 b(the)h(curren)m(t)f(lo)s(cale's)i(c)m(haracter)g(set.)57 b(The)35 b(domain)g(name)h(ma)m(y)g(con)m(tain)h(sev)m(eral)f(lab)s (els,)390 1545 y(separated)31 b(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m(y)f(the)f (caller.)390 1677 y Fi(Return)g(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f(error)g(co)s(de.)150 1871 y Fn(idna)p 389 1871 V 54 w(to)p 552 1871 V 54 w(unico)s(de)p 1019 1871 V 55 w(lzlz)3350 2063 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(idna_to_unicode_lzlz)f Fl(\()p Fk(const)31 b(c)m(har)g(*)f Fj(input)p Fk(,)j(c)m(har)d(**)i Fj(output)p Fk(,)g(in)m(t)565 2173 y Fj(flags)p Fl(\))390 2282 y Fk(input)r Fu(:)40 b(zero-terminated)32 b(string)e(enco)s(ded)g(in)g (the)h(curren)m(t)f(lo)s(cale's)i(c)m(haracter)g(set.)390 2414 y Fk(output)r Fu(:)71 b(p)s(oin)m(ter)45 b(to)h(newly)g(allo)s (cated)h(output)e(string)h(enco)s(ded)f(in)g(the)h(curren)m(t)f(lo)s (cale's)390 2524 y(c)m(haracter)32 b(set.)390 2656 y Fk(\015ags)t Fu(:)91 b(an)56 b Fo(Idna_flags)d Fu(v)-5 b(alue,)63 b(e.g.,)g Fo(IDNA_ALLOW_UNASSIGNED)50 b Fu(or)56 b Fo(IDNA_USE_STD3_)390 2765 y(ASCII_RULES)p Fu(.)390 2898 y(Con)m(v)m(ert)25 b(p)s(ossibly)e(A)m(CE)h(enco)s(ded)g(domain)g (name)g(in)g(the)g(lo)s(cale's)i(c)m(haracter)g(set)e(in)m(to)h(a)g (string)390 3007 y(enco)s(ded)30 b(in)g(the)h(curren)m(t)f(lo)s(cale's) i(c)m(haracter)g(set.)42 b(The)30 b(domain)g(name)h(ma)m(y)g(con)m (tain)h(sev)m(eral)390 3117 y(lab)s(els,)f(separated)g(b)m(y)f(dots.)41 b(The)30 b(output)g(bu\013er)f(m)m(ust)h(b)s(e)g(deallo)s(cated)i(b)m (y)e(the)h(caller.)390 3249 y Fi(Return)f(v)-5 b(alue:)41 b Fu(Returns)30 b Fo(IDNA_SUCCESS)d Fu(on)j(success,)h(or)f(error)g(co) s(de.)150 3476 y Ft(6.7)68 b(Error)45 b(Handling)150 3698 y Fn(idna)p 389 3698 V 54 w(strerror)3350 3890 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(char)f(*)g(idna_strerror)c Fl(\()p Fk(Idna)p 1776 3890 28 4 v 40 w(rc)30 b Fj(rc)p Fl(\))390 4000 y Fk(rc)6 b Fu(:)40 b(an)30 b Fo(Idna_rc)f Fu(return)g(co)s(de.)390 4132 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s (de)i(in)m(teger)i(to)e(a)g(text)h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a)390 4241 y(diagnostic)e(message)f(to)g(the)g(user.)390 4373 y Fi(IDNA)p 642 4373 28 5 v 40 w(SUCCESS:)e Fu(Successful)j(op)s (eration.)47 b(This)31 b(v)-5 b(alue)33 b(is)f(guaran)m(teed)i(to)f (alw)m(a)m(ys)g(b)s(e)f(zero,)390 4483 y(the)23 b(remaining)f(ones)h (are)g(only)g(guaran)m(teed)g(to)g(hold)g(non-zero)g(v)-5 b(alues,)24 b(for)f(logical)i(comparison)390 4593 y(purp)s(oses.)390 4725 y Fi(IDNA)p 642 4725 V 40 w(STRINGPREP)p 1296 4725 V 40 w(ERR)m(OR:)31 b Fu(Error)f(during)f(string)h(preparation.)390 4857 y Fi(IDNA)p 642 4857 V 40 w(PUNYCODE)p 1218 4857 V 39 w(ERR)m(OR:)h Fu(Error)e(during)g(pun)m(yco)s(de)h(op)s(eration.) 390 4989 y Fi(IDNA)p 642 4989 V 40 w(CONT)-8 b(AINS)p 1169 4989 V 40 w(NON)p 1419 4989 V 40 w(LDH:)80 b Fu(F)-8 b(or)81 b(IDNA)p 2211 4989 28 4 v 41 w(USE)p 2433 4989 V 39 w(STD3)p 2703 4989 V 40 w(ASCI)s(I)p 2997 4989 V 39 w(R)m(ULES,)f(indicate)390 5098 y(that)31 b(the)g(string)f(con)m (tains)h(non-LDH)g(ASCI)s(I)e(c)m(haracters.)390 5230 y Fi(IDNA)p 642 5230 28 5 v 40 w(CONT)-8 b(AINS)p 1169 5230 V 40 w(MINUS:)52 b Fu(F)-8 b(or)52 b(IDNA)p 2022 5230 28 4 v 40 w(USE)p 2243 5230 V 40 w(STD3)p 2514 5230 V 40 w(ASCI)s(I)p 2808 5230 V 39 w(R)m(ULES,)f(indicate)h(that)390 5340 y(the)31 b(string)f(con)m(tains)h(a)g(leading)g(or)g(trailing)g(h) m(yphen-min)m(us)e(\(U)p Fo(+)p Fu(002D\).)p eop end %%Page: 30 35 TeXDict begin 30 34 bop 150 -116 a Fu(Chapter)30 b(6:)41 b(IDNA)31 b(F)-8 b(unctions)2390 b(30)390 299 y Fi(IDNA)p 642 299 28 5 v 40 w(INV)-10 b(ALID)p 1078 299 V 39 w(LENGTH:)47 b Fu(The)f(\014nal)g(output)g(string)g(is)h(not)g(within)f(the)g (\(inclusiv)m(e\))390 408 y(range)31 b(1)f(to)i(63)f(c)m(haracters.)390 543 y Fi(IDNA)p 642 543 V 40 w(NO)p 821 543 V 40 w(A)m(CE)p 1053 543 V 40 w(PREFIX:)i Fu(The)h(string)f(do)s(es)h(not)g(con)m(tain) h(the)f(A)m(CE)g(pre\014x)f(\(for)h(T)-8 b(oUni-)390 653 y(co)s(de\).)390 787 y Fi(IDNA)p 642 787 V 40 w(R)m(OUNDTRIP)p 1257 787 V 41 w(VERIFY)p 1658 787 V 39 w(ERR)m(OR:)37 b Fu(The)g(T)-8 b(oASCI)s(I)36 b(op)s(eration)h(on)g(output)f(string) 390 897 y(do)s(es)30 b(not)h(equal)g(the)f(input.)390 1031 y Fi(IDNA)p 642 1031 V 40 w(CONT)-8 b(AINS)p 1169 1031 V 40 w(A)m(CE)p 1401 1031 V 39 w(PREFIX:)79 b Fu(The)g(input)f (con)m(tains)j(the)e(A)m(CE)h(pre\014x)e(\(for)390 1141 y(T)-8 b(oASCI)s(I\).)390 1275 y Fi(IDNA)p 642 1275 V 40 w(ICONV)p 992 1275 V 40 w(ERR)m(OR:)31 b Fu(Could)e(not)i(con)m(v)m (ert)h(string)e(in)g(lo)s(cale)i(enco)s(ding.)390 1410 y Fi(IDNA)p 642 1410 V 40 w(MALLOC)p 1081 1410 V 39 w(ERR)m(OR:)f Fu(Could)e(not)i(allo)s(cate)i(bu\013er)c(\(this)i(is)f(t)m(ypically)i (a)f(fatal)h(error\).)390 1544 y Fi(IDNA)p 642 1544 V 40 w(DLOPEN)p 1068 1544 V 39 w(ERR)m(OR:)j Fu(Could)f(not)h(dlop)s(en)e (the)i(lib)s(cidn)e(DSO)h(\(only)h(used)f(in)m(ternally)390 1654 y(in)c(lib)s(c\).)390 1788 y Fi(Return)f(v)-5 b(alue:)40 b Fu(Returns)29 b(a)g(p)s(oin)m(ter)h(to)g(a)f(statically)j(allo)s (cated)f(string)f(con)m(taining)h(a)e(descrip-)390 1898 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e(co)s(de)h Fo(rc)p Fu(.)p eop end %%Page: 31 36 TeXDict begin 31 35 bop 150 -116 a Fu(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(31)150 299 y Fr(7)80 b(TLD)54 b(F)-13 b(unctions)150 531 y Fu(Organizations)38 b(that)g(manage)f(some)h(T)-8 b(op)36 b(Lev)m(el)j(Domains)e(\(TLDs\))g (ha)m(v)m(e)i(published)c(tables)i(with)150 640 y(c)m(haracters)f(they) f(accept)h(within)e(the)g(domain.)54 b(The)34 b(reason)g(ma)m(y)i(b)s (e)d(to)j(reduce)e(complexit)m(y)i(that)150 750 y(come)30 b(from)f(using)f(the)h(full)g(Unico)s(de)g(range,)h(and)f(to)g(protect) h(themselv)m(es)h(from)d(future)g(\(bac)m(kw)m(ards)150 859 y(incompatible\))36 b(c)m(hanges)g(in)e(the)h(IDN)g(or)g(Unico)s (de)g(sp)s(eci\014cations.)55 b(Libidn)33 b(implemen)m(t)j(an)e (infras-)150 969 y(tructure)29 b(for)g(de\014ning)f(and)g(c)m(hec)m (king)j(strings)e(against)i(suc)m(h)d(tables.)42 b(Libidn)27 b(also)j(ship)f(some)g(tables)150 1079 y(from)c(TLDs)f(that)i(w)m(e)f (ha)m(v)m(e)h(managed)g(to)g(get)g(p)s(ermission)e(to)h(use)g(them)g (from.)38 b(Because)27 b(these)e(tables)150 1188 y(are)j(ev)m(en)g (less)g(static)h(than)e(Unico)s(de)h(or)f(StringPrep)f(tables,)k(it)e (is)f(lik)m(ely)i(that)f(they)g(will)f(b)s(e)g(up)s(dated)150 1298 y(from)k(time)i(to)g(time)f(\(ev)m(en)h(in)f(bac)m(kw)m(ards)g (incompatible)h(w)m(a)m(ys\).)47 b(The)31 b(Libidn)g(in)m(terface)i (pro)m(vide)g(a)150 1407 y(\\v)m(ersion")k(\014eld)f(for)g(eac)m(h)h (TLD)f(table,)i(whic)m(h)e(can)h(b)s(e)e(compared)h(for)g(equalit)m(y)h (to)g(guaran)m(tee)h(the)150 1517 y(same)31 b(op)s(eration)g(o)m(v)m (er)g(time.)275 1651 y(F)-8 b(rom)24 b(a)g(design)f(p)s(oin)m(t)h(of)f (view,)j(y)m(ou)e(can)f(regard)h(the)g(TLD)f(tables)h(for)g(IDN)g(as)f (the)h(\\lo)s(calization")150 1760 y(step)30 b(that)h(come)h(after)f (the)f(\\in)m(ternationalization")35 b(step)30 b(pro)m(vided)g(b)m(y)h (the)f(IETF)g(standards.)275 1894 y(The)35 b(TLD)i(functionalit)m(y)h (rely)e(on)h(up-to-date)g(tables.)60 b(The)36 b(latest)i(v)m(ersion)f (of)f(Libidn)f(aim)i(to)150 2004 y(pro)m(vide)28 b(these,)h(but)d (tables)j(with)e(unclear)h(cop)m(ying)g(conditions,)h(or)f(generally)h (exp)s(erimen)m(tal)f(tables,)150 2114 y(are)22 b(not)g(included.)37 b(Some)22 b(suc)m(h)g(tables)g(can)h(b)s(e)e(found)f(at)j Fo(https://github.com/gnut)o(hor/)o(tldc)o(hk)p Fu(.)150 2345 y Ft(7.1)68 b(Header)46 b(\014le)f Fh(tld.h)150 2505 y Fu(T)-8 b(o)31 b(use)f(the)g(functions)g(explained)h(in)f(this)g (c)m(hapter,)i(y)m(ou)e(need)g(to)i(include)e(the)g(\014le)h Fo(tld.h)e Fu(using:)390 2639 y Fo(#include)46 b()150 2870 y Ft(7.2)68 b(Core)46 b(F)-11 b(unctions)150 3094 y Fn(tld)p 309 3094 37 5 v 54 w(c)m(hec)m(k)p 656 3094 V 52 w(4t)3350 3290 y Fu([F)j(unction])-3599 b Fm(int)53 b(tld_check_4t)c Fl(\()p Fk(const)32 b(uin)m(t32)p 1561 3290 28 4 v 41 w(t)e(*)h Fj(in)p Fk(,)g(size)p 2044 3290 V 41 w(t)g Fj(inlen)p Fk(,)h(size)p 2609 3290 V 41 w(t)e(*)h Fj(errpos)p Fk(,)565 3399 y(const)g(Tld)p 951 3399 V 39 w(table)h(*)e Fj(tld)p Fl(\))390 3509 y Fk(in)p Fu(:)40 b(Arra)m(y)31 b(of)g(unico)s(de)e(co)s(de)i(p)s(oin)m(ts)f(to)h(pro)s (cess.)41 b(Do)s(es)31 b(not)f(need)g(to)h(b)s(e)f(zero)h(terminated.) 390 3643 y Fk(inlen)p Fu(:)41 b(Num)m(b)s(er)29 b(of)h(unico)s(de)g(co) s(de)h(p)s(oin)m(ts.)390 3777 y Fk(errp)s(os)t Fu(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e(returned)g (here.)390 3911 y Fk(tld)t Fu(:)60 b(A)40 b Fo(Tld_table)d Fu(data)k(structure)e(represen)m(ting)h(the)h(restrictions)f(for)g (whic)m(h)g(the)g(input)390 4020 y(should)29 b(b)s(e)h(tested.)390 4154 y(T)-8 b(est)36 b(eac)m(h)g(of)f(the)h(co)s(de)f(p)s(oin)m(ts)g (in)g Fo(in)f Fu(for)h(whether)g(or)g(not)g(they)g(are)h(allo)m(w)m(ed) h(b)m(y)e(the)g(data)390 4264 y(structure)g(in)h Fo(tld)p Fu(,)g(return)f(the)h(p)s(osition)g(of)g(the)g(\014rst)f(c)m(haracter)j (for)d(whic)m(h)h(this)g(is)g(not)g(the)390 4374 y(case)31 b(in)f Fo(errpos)p Fu(.)390 4508 y Fi(Return)h(v)-5 b(alue:)44 b Fu(Returns)31 b(the)h Fo(Tld_rc)e Fu(v)-5 b(alue)32 b Fo(TLD_SUCCESS)c Fu(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 4617 y(when)27 b Fo(tld)f Fu(is)i(n)m(ull,)g Fo(TLD_INVALID)d Fu(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 4727 y(on)j(general)i(failure)e (conditions.)150 4925 y Fn(tld)p 309 4925 37 5 v 54 w(c)m(hec)m(k)p 656 4925 V 52 w(4tz)3350 5121 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(tld_check_4tz)d Fl(\()p Fk(const)31 b(uin)m(t32)p 1613 5121 28 4 v 41 w(t)g(*)f Fj(in)p Fk(,)h(size)p 2096 5121 V 41 w(t)g(*)g Fj(errpos)p Fk(,)h(const)565 5230 y(Tld)p 713 5230 V 40 w(table)f(*)g Fj(tld)p Fl(\))390 5340 y Fk(in)p Fu(:)40 b(Zero)31 b(terminated)g(arra)m(y)g(of)f(unico)s (de)g(co)s(de)h(p)s(oin)m(ts)f(to)h(pro)s(cess.)p eop end %%Page: 32 37 TeXDict begin 32 36 bop 150 -116 a Fu(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(32)390 299 y Fk(errp)s(os)t Fu(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e (returned)g(here.)390 461 y Fk(tld)t Fu(:)60 b(A)40 b Fo(Tld_table)d Fu(data)k(structure)e(represen)m(ting)h(the)h (restrictions)f(for)g(whic)m(h)g(the)g(input)390 570 y(should)29 b(b)s(e)h(tested.)390 732 y(T)-8 b(est)36 b(eac)m(h)g(of)f(the)h(co)s(de)f(p)s(oin)m(ts)g(in)g Fo(in)f Fu(for)h(whether)g(or)g(not)g(they)g(are)h(allo)m(w)m(ed)h(b)m (y)e(the)g(data)390 842 y(structure)g(in)h Fo(tld)p Fu(,)g(return)f (the)h(p)s(osition)g(of)g(the)g(\014rst)f(c)m(haracter)j(for)d(whic)m (h)h(this)g(is)g(not)g(the)390 951 y(case)31 b(in)f Fo(errpos)p Fu(.)390 1113 y Fi(Return)h(v)-5 b(alue:)44 b Fu(Returns)31 b(the)h Fo(Tld_rc)e Fu(v)-5 b(alue)32 b Fo(TLD_SUCCESS)c Fu(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 1223 y(when)27 b Fo(tld)f Fu(is)i(n)m(ull,)g Fo(TLD_INVALID)d Fu(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 1332 y(on)j(general)i(failure)e (conditions.)150 1606 y Ft(7.3)68 b(Utilit)l(y)47 b(F)-11 b(unctions)150 1830 y Fn(tld)p 309 1830 37 5 v 54 w(get)p 528 1830 V 54 w(4)3350 2054 y Fu([F)j(unction])-3599 b Fm(int)53 b(tld_get_4)48 b Fl(\()p Fk(const)32 b(uin)m(t32)p 1404 2054 28 4 v 41 w(t)e(*)h Fj(in)p Fk(,)g(size)p 1887 2054 V 41 w(t)g Fj(inlen)p Fk(,)h(c)m(har)f(**)g Fj(out)p Fl(\))390 2163 y Fk(in)p Fu(:)40 b(Arra)m(y)31 b(of)g(unico)s(de)e(co)s (de)i(p)s(oin)m(ts)f(to)h(pro)s(cess.)41 b(Do)s(es)31 b(not)f(need)g(to)h(b)s(e)f(zero)h(terminated.)390 2325 y Fk(inlen)p Fu(:)41 b(Num)m(b)s(er)29 b(of)h(unico)s(de)g(co)s(de)h(p) s(oin)m(ts.)390 2487 y Fk(out)r Fu(:)41 b(Zero)30 b(terminated)h(ascii) h(result)e(string)g(p)s(oin)m(ter.)390 2649 y(Isolate)i(the)e(top-lev)m (el)j(domain)d(of)h Fo(in)f Fu(and)f(return)h(it)h(as)f(an)h(ASCI)s(I)d (string)j(in)f Fo(out)p Fu(.)390 2811 y Fi(Return)38 b(v)-5 b(alue:)56 b Fu(Return)37 b Fo(TLD_SUCCESS)d Fu(on)k(success,)i (or)e(the)g(corresp)s(onding)f Fo(Tld_rc)f Fu(error)390 2920 y(co)s(de)31 b(otherwise.)150 3147 y Fn(tld)p 309 3147 37 5 v 54 w(get)p 528 3147 V 54 w(4z)3350 3371 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(tld_get_4z)c Fl(\()p Fk(const)31 b(uin)m(t32)p 1456 3371 28 4 v 41 w(t)g(*)f Fj(in)p Fk(,)i(c)m(har)e(**)h Fj(out)p Fl(\))390 3480 y Fk(in)p Fu(:)40 b(Zero)31 b(terminated)g(arra)m(y)g(of)f(unico)s (de)g(co)s(de)h(p)s(oin)m(ts)f(to)h(pro)s(cess.)390 3642 y Fk(out)r Fu(:)41 b(Zero)30 b(terminated)h(ascii)h(result)e(string)g (p)s(oin)m(ter.)390 3804 y(Isolate)i(the)e(top-lev)m(el)j(domain)d(of)h Fo(in)f Fu(and)f(return)h(it)h(as)f(an)h(ASCI)s(I)d(string)j(in)f Fo(out)p Fu(.)390 3966 y Fi(Return)38 b(v)-5 b(alue:)56 b Fu(Return)37 b Fo(TLD_SUCCESS)d Fu(on)k(success,)i(or)e(the)g (corresp)s(onding)f Fo(Tld_rc)f Fu(error)390 4075 y(co)s(de)31 b(otherwise.)150 4302 y Fn(tld)p 309 4302 37 5 v 54 w(get)p 528 4302 V 54 w(z)3350 4526 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(tld_get_z)48 b Fl(\()p Fk(const)32 b(c)m(har)e(*)h Fj(in)p Fk(,)g(c)m(har)g(**)g Fj(out)p Fl(\))390 4635 y Fk(in)p Fu(:)40 b(Zero)31 b(terminated)g(c)m(haracter)h(arra)m(y)e (to)i(pro)s(cess.)390 4797 y Fk(out)r Fu(:)41 b(Zero)30 b(terminated)h(ascii)h(result)e(string)g(p)s(oin)m(ter.)390 4959 y(Isolate)f(the)e(top-lev)m(el)j(domain)d(of)g Fo(in)g Fu(and)g(return)f(it)i(as)f(an)g(ASCI)s(I)f(string)h(in)g Fo(out)p Fu(.)39 b(The)27 b(input)390 5069 y(string)j Fo(in)g Fu(ma)m(y)h(b)s(e)f(UTF-8,)h(ISO-8859-1)i(or)d(an)m(y)h(ASCI)s (I)d(compatible)k(c)m(haracter)g(enco)s(ding.)390 5230 y Fi(Return)38 b(v)-5 b(alue:)56 b Fu(Return)37 b Fo(TLD_SUCCESS)d Fu(on)k(success,)i(or)e(the)g(corresp)s(onding)f Fo(Tld_rc)f Fu(error)390 5340 y(co)s(de)31 b(otherwise.)p eop end %%Page: 33 38 TeXDict begin 33 37 bop 150 -116 a Fu(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(33)150 299 y Fn(tld)p 309 299 37 5 v 54 w(get)p 528 299 V 54 w(table)3350 515 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(Tld_table)h(*)d (tld_get_table)e Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(tld)p Fk(,)g(const)g(Tld)p 2964 515 28 4 v 39 w(table)565 625 y(**)g Fj(tables)p Fl(\))390 735 y Fk(tld)t Fu(:)40 b(TLD)31 b(name)f(\(e.g.)42 b Fo(")p Fu(com)p Fo(")p Fu(\))31 b(as)f(zero)i(terminated)f(ASCI)s(I)d(b)m(yte)j(string.)390 889 y Fk(tables)t Fu(:)41 b(Zero)31 b(terminated)f(arra)m(y)h(of)g Fo(Tld_table)d Fu(info-structures)i(for)g(TLDs.)390 1043 y(Get)25 b(the)g(TLD)f(table)i(for)e(a)h(named)f(TLD)g(b)m(y)g(searc)m (hing)h(through)f(the)h(giv)m(en)g(TLD)f(table)i(arra)m(y)-8 b(.)390 1197 y Fi(Return)29 b(v)-5 b(alue:)40 b Fu(Return)29 b(structure)g(corresp)s(onding)f(to)i(TLD)f Fo(tld)f Fu(b)m(y)h(going)i(thru)d Fo(tables)p Fu(,)g(or)390 1307 y(return)h Fo(NULL)g Fu(if)i(no)f(suc)m(h)g(structure)g(is)g(found.)150 1526 y Fn(tld)p 309 1526 37 5 v 54 w(default)p 734 1526 V 54 w(table)3350 1742 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(Tld_table)h(*)d(tld_default_table)f Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(tld)p Fk(,)g(const)565 1852 y(Tld)p 713 1852 28 4 v 40 w(table)g(**)g Fj(overrides)p Fl(\))390 1961 y Fk(tld)t Fu(:)40 b(TLD)31 b(name)f(\(e.g.)42 b Fo(")p Fu(com)p Fo(")p Fu(\))31 b(as)f(zero)i(terminated)f(ASCI)s(I)d (b)m(yte)j(string.)390 2116 y Fk(o)m(v)m(errides)t Fu(:)48 b(Additional)34 b(zero)g(terminated)g(arra)m(y)g(of)g Fo(Tld_table)d Fu(info-structures)i(for)g(TLDs,)390 2225 y(or)d Fo(NULL)g Fu(to)h(only)f(use)g(library)g(deault)h(tables.)390 2379 y(Get)h(the)f(TLD)g(table)h(for)f(a)g(named)f(TLD,)i(using)e(the)h (in)m(ternal)h(defaults,)f(p)s(ossibly)f(o)m(v)m(errided)390 2489 y(b)m(y)g(the)h(\(optional\))h(supplied)d(tables.)390 2643 y Fi(Return)24 b(v)-5 b(alue:)38 b Fu(Return)24 b(structure)g(corresp)s(onding)g(to)h(TLD)f Fo(tld_str)p Fu(,)g(\014rst)g(lo)s(oking)i(through)390 2753 y Fo(overrides)i Fu(then)i(thru)f(built-in)h(list,)i(or)e Fo(NULL)f Fu(if)i(no)f(suc)m (h)g(structure)g(found.)150 3015 y Ft(7.4)68 b(High-Lev)l(el)46 b(W)-11 b(rapp)t(er)45 b(F)-11 b(unctions)150 3239 y Fn(tld)p 309 3239 37 5 v 54 w(c)m(hec)m(k)p 656 3239 V 52 w(4)3350 3455 y Fu([F)j(unction])-3599 b Fm(int)53 b(tld_check_4)c Fl(\()p Fk(const)31 b(uin)m(t32)p 1508 3455 28 4 v 41 w(t)g(*)g Fj(in)p Fk(,)g(size)p 1992 3455 V 41 w(t)f Fj(inlen)p Fk(,)i(size)p 2556 3455 V 41 w(t)f(*)g Fj(errpos)p Fk(,)565 3565 y(const)g(Tld)p 951 3565 V 39 w(table)h(**)f Fj(overrides)p Fl(\))390 3675 y Fk(in)p Fu(:)40 b(Arra)m(y)31 b(of)g(unico)s(de)e(co)s(de)i(p)s(oin)m(ts)f(to)h (pro)s(cess.)41 b(Do)s(es)31 b(not)f(need)g(to)h(b)s(e)f(zero)h (terminated.)390 3829 y Fk(inlen)p Fu(:)41 b(Num)m(b)s(er)29 b(of)h(unico)s(de)g(co)s(de)h(p)s(oin)m(ts.)390 3983 y Fk(errp)s(os)t Fu(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m (haracter)i(is)e(returned)g(here.)390 4137 y Fk(o)m(v)m(errides)t Fu(:)48 b(A)34 b Fo(Tld_table)d Fu(arra)m(y)j(of)g(additional)h(domain) e(restriction)i(structures)e(that)h(com-)390 4247 y(plemen)m(t)d(and)f (sup)s(ersede)f(the)h(built-in)g(information.)390 4401 y(T)-8 b(est)26 b(eac)m(h)h(of)f(the)g(co)s(de)g(p)s(oin)m(ts)g(in)f Fo(in)g Fu(for)h(whether)f(or)h(not)g(they)g(are)g(allo)m(w)m(ed)h(b)m (y)f(the)g(informa-)390 4511 y(tion)32 b(in)g Fo(overrides)d Fu(or)j(b)m(y)g(the)g(built-in)g(TLD)g(restriction)g(data.)46 b(When)32 b(data)h(for)e(the)i(same)390 4620 y(TLD)39 b(is)g(a)m(v)-5 b(ailable)41 b(b)s(oth)d(in)m(ternally)i(and)e(in)h Fo(overrides)p Fu(,)g(the)g(information)g(in)f Fo(overrides)390 4730 y Fu(tak)m(es)29 b(precedence.)40 b(If)27 b(sev)m(eral)i(en)m (tries)g(for)e(a)h(sp)s(eci\014c)g(TLD)f(are)h(found,)f(the)h(\014rst)f (one)h(is)f(used.)390 4839 y(If)k Fo(overrides)e Fu(is)i Fo(NULL)p Fu(,)f(only)i(the)f(built-in)g(information)h(is)f(used.)43 b(The)30 b(p)s(osition)i(of)f(the)h(\014rst)390 4949 y(o\013ending)e(c)m(haracter)i(is)f(returned)e(in)h Fo(errpos)p Fu(.)390 5103 y Fi(Return)h(v)-5 b(alue:)44 b Fu(Returns)31 b(the)h Fo(Tld_rc)e Fu(v)-5 b(alue)32 b Fo(TLD_SUCCESS)c Fu(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 5213 y(when)27 b Fo(tld)f Fu(is)i(n)m(ull,)g Fo(TLD_INVALID)d Fu(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 5322 y(on)j(general)i(failure)e (conditions.)p eop end %%Page: 34 39 TeXDict begin 34 38 bop 150 -116 a Fu(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(34)150 299 y Fn(tld)p 309 299 37 5 v 54 w(c)m(hec)m(k)p 656 299 V 52 w(4z)3350 501 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(tld_check_4z)c Fl(\()p Fk(const)31 b(uin)m(t32)p 1560 501 28 4 v 41 w(t)f(*)g Fj(in)p Fk(,)g(size)p 2041 501 V 41 w(t)g(*)g Fj(errpos)p Fk(,)i(const)e(Tld)p 2970 501 V 39 w(table)565 610 y(**)h Fj(overrides)p Fl(\))390 720 y Fk(in)p Fu(:)40 b(Zero-terminated)32 b(arra)m(y)f(of)f(unico)s(de)g(co)s(de)h(p)s(oin)m (ts)f(to)h(pro)s(cess.)390 860 y Fk(errp)s(os)t Fu(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e(returned)g (here.)390 999 y Fk(o)m(v)m(errides)t Fu(:)48 b(A)34 b Fo(Tld_table)d Fu(arra)m(y)j(of)g(additional)h(domain)e(restriction)i (structures)e(that)h(com-)390 1109 y(plemen)m(t)d(and)f(sup)s(ersede)f (the)h(built-in)g(information.)390 1248 y(T)-8 b(est)26 b(eac)m(h)h(of)f(the)g(co)s(de)g(p)s(oin)m(ts)g(in)f Fo(in)g Fu(for)h(whether)f(or)h(not)g(they)g(are)g(allo)m(w)m(ed)h(b)m (y)f(the)g(informa-)390 1358 y(tion)32 b(in)g Fo(overrides)d Fu(or)j(b)m(y)g(the)g(built-in)g(TLD)g(restriction)g(data.)46 b(When)32 b(data)h(for)e(the)i(same)390 1468 y(TLD)39 b(is)g(a)m(v)-5 b(ailable)41 b(b)s(oth)d(in)m(ternally)i(and)e(in)h Fo(overrides)p Fu(,)g(the)g(information)g(in)f Fo(overrides)390 1577 y Fu(tak)m(es)29 b(precedence.)40 b(If)27 b(sev)m(eral)i(en)m (tries)g(for)e(a)h(sp)s(eci\014c)g(TLD)f(are)h(found,)f(the)h(\014rst)f (one)h(is)f(used.)390 1687 y(If)k Fo(overrides)e Fu(is)i Fo(NULL)p Fu(,)f(only)i(the)f(built-in)g(information)h(is)f(used.)43 b(The)30 b(p)s(osition)i(of)f(the)h(\014rst)390 1796 y(o\013ending)e(c)m(haracter)i(is)f(returned)e(in)h Fo(errpos)p Fu(.)390 1936 y Fi(Return)h(v)-5 b(alue:)44 b Fu(Returns)31 b(the)h Fo(Tld_rc)e Fu(v)-5 b(alue)32 b Fo(TLD_SUCCESS)c Fu(if)k(all)g(co)s(de)g(p)s(oin)m(ts)g(are)g(v)-5 b(alid)32 b(or)390 2046 y(when)27 b Fo(tld)f Fu(is)i(n)m(ull,)g Fo(TLD_INVALID)d Fu(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k (or)c(additional)i(error)e(co)s(des)390 2155 y(on)j(general)i(failure)e (conditions.)150 2360 y Fn(tld)p 309 2360 37 5 v 54 w(c)m(hec)m(k)p 656 2360 V 52 w(8z)3350 2562 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(tld_check_8z)c Fl(\()p Fk(const)32 b(c)m(har)e(*)h Fj(in)p Fk(,)g(size)p 1888 2562 28 4 v 41 w(t)g(*)g Fj(errpos)p Fk(,)h(const)f(Tld)p 2820 2562 V 39 w(table)g(**)565 2671 y Fj(overrides)p Fl(\))390 2781 y Fk(in)p Fu(:)40 b(Zero-terminated)32 b(UTF8)f(string)f(to)h(pro)s(cess.)390 2920 y Fk(errp)s(os)t Fu(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m (haracter)i(is)e(returned)g(here.)390 3060 y Fk(o)m(v)m(errides)t Fu(:)48 b(A)34 b Fo(Tld_table)d Fu(arra)m(y)j(of)g(additional)h(domain) e(restriction)i(structures)e(that)h(com-)390 3170 y(plemen)m(t)d(and)f (sup)s(ersede)f(the)h(built-in)g(information.)390 3309 y(T)-8 b(est)21 b(eac)m(h)h(of)f(the)g(c)m(haracters)h(in)e Fo(in)h Fu(for)f(whether)g(or)h(not)g(they)g(are)g(allo)m(w)m(ed)h(b)m (y)f(the)g(information)390 3419 y(in)29 b Fo(overrides)e Fu(or)j(b)m(y)f(the)h(built-in)f(TLD)h(restriction)g(data.)41 b(When)30 b(data)g(for)f(the)h(same)g(TLD)390 3528 y(is)38 b(a)m(v)-5 b(ailable)40 b(b)s(oth)e(in)m(ternally)g(and)g(in)f Fo(overrides)p Fu(,)h(the)g(information)g(in)g Fo(overrides)d Fu(tak)m(es)390 3638 y(precedence.)56 b(If)34 b(sev)m(eral)j(en)m (tries)f(for)f(a)g(sp)s(eci\014c)g(TLD)h(are)f(found,)g(the)h(\014rst)e (one)i(is)f(used.)54 b(If)390 3748 y Fo(overrides)35 b Fu(is)i Fo(NULL)p Fu(,)h(only)g(the)f(built-in)g(information)h(is)f (used.)61 b(The)36 b(p)s(osition)i(of)f(the)h(\014rst)390 3857 y(o\013ending)32 b(c)m(haracter)i(is)e(returned)f(in)h Fo(errpos)p Fu(.)44 b(Note)34 b(that)f(the)f(error)g(p)s(osition)g (refers)g(to)h(the)390 3967 y(deco)s(ded)d(c)m(haracter)i(o\013set)f (rather)g(than)f(the)g(b)m(yte)h(p)s(osition)g(in)f(the)g(string.)390 4106 y Fi(Return)35 b(v)-5 b(alue:)52 b Fu(Returns)35 b(the)g Fo(Tld_rc)f Fu(v)-5 b(alue)36 b Fo(TLD_SUCCESS)d Fu(if)i(all)i(c)m(haracters)g(are)f(v)-5 b(alid)36 b(or)390 4216 y(when)27 b Fo(tld)f Fu(is)i(n)m(ull,)g Fo(TLD_INVALID)d Fu(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k(or)c(additional) i(error)e(co)s(des)390 4326 y(on)j(general)i(failure)e(conditions.)150 4530 y Fn(tld)p 309 4530 37 5 v 54 w(c)m(hec)m(k)p 656 4530 V 52 w(lz)3350 4732 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(tld_check_lz)c Fl(\()p Fk(const)32 b(c)m(har)e(*)h Fj(in)p Fk(,)g(size)p 1888 4732 28 4 v 41 w(t)g(*)g Fj(errpos)p Fk(,)h(const)f(Tld)p 2820 4732 V 39 w(table)g(**)565 4842 y Fj(overrides)p Fl(\))390 4951 y Fk(in)p Fu(:)40 b(Zero-terminated)32 b(string)e(in)g(the)h(curren)m(t)f(lo)s(cales)i (enco)s(ding)e(to)h(pro)s(cess.)390 5091 y Fk(errp)s(os)t Fu(:)39 b(P)m(osition)32 b(of)f(o\013ending)f(c)m(haracter)i(is)e (returned)g(here.)390 5230 y Fk(o)m(v)m(errides)t Fu(:)48 b(A)34 b Fo(Tld_table)d Fu(arra)m(y)j(of)g(additional)h(domain)e (restriction)i(structures)e(that)h(com-)390 5340 y(plemen)m(t)d(and)f (sup)s(ersede)f(the)h(built-in)g(information.)p eop end %%Page: 35 40 TeXDict begin 35 39 bop 150 -116 a Fu(Chapter)30 b(7:)41 b(TLD)30 b(F)-8 b(unctions)2437 b(35)390 299 y(T)-8 b(est)21 b(eac)m(h)h(of)f(the)g(c)m(haracters)h(in)e Fo(in)h Fu(for)f(whether)g (or)h(not)g(they)g(are)g(allo)m(w)m(ed)h(b)m(y)f(the)g(information)390 408 y(in)29 b Fo(overrides)e Fu(or)j(b)m(y)f(the)h(built-in)f(TLD)h (restriction)g(data.)41 b(When)30 b(data)g(for)f(the)h(same)g(TLD)390 518 y(is)38 b(a)m(v)-5 b(ailable)40 b(b)s(oth)e(in)m(ternally)g(and)g (in)f Fo(overrides)p Fu(,)h(the)g(information)g(in)g Fo(overrides)d Fu(tak)m(es)390 628 y(precedence.)56 b(If)34 b(sev)m(eral)j(en)m(tries)f(for)f(a)g(sp)s(eci\014c)g(TLD)h(are)f (found,)g(the)h(\014rst)e(one)i(is)f(used.)54 b(If)390 737 y Fo(overrides)35 b Fu(is)i Fo(NULL)p Fu(,)h(only)g(the)f(built-in) g(information)h(is)f(used.)61 b(The)36 b(p)s(osition)i(of)f(the)h (\014rst)390 847 y(o\013ending)32 b(c)m(haracter)i(is)e(returned)f(in)h Fo(errpos)p Fu(.)44 b(Note)34 b(that)f(the)f(error)g(p)s(osition)g (refers)g(to)h(the)390 956 y(deco)s(ded)d(c)m(haracter)i(o\013set)f (rather)g(than)f(the)g(b)m(yte)h(p)s(osition)g(in)f(the)g(string.)390 1091 y Fi(Return)35 b(v)-5 b(alue:)52 b Fu(Returns)35 b(the)g Fo(Tld_rc)f Fu(v)-5 b(alue)36 b Fo(TLD_SUCCESS)d Fu(if)i(all)i(c)m(haracters)g(are)f(v)-5 b(alid)36 b(or)390 1200 y(when)27 b Fo(tld)f Fu(is)i(n)m(ull,)g Fo(TLD_INVALID)d Fu(if)i(a)h(c)m(haracter)h(is)f(not)f(allo)m(w)m(ed,)k(or)c(additional) i(error)e(co)s(des)390 1310 y(on)j(general)i(failure)e(conditions.)150 1543 y Ft(7.5)68 b(Error)45 b(Handling)150 1767 y Fn(tld)p 309 1767 37 5 v 54 w(strerror)3350 1963 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(char)f(*)g(tld_strerror)c Fl(\()p Fk(Tld)p 1686 1963 28 4 v 40 w(rc)30 b Fj(rc)p Fl(\))390 2073 y Fk(rc)6 b Fu(:)40 b(tld)31 b(return)e(co)s(de)390 2208 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s(de)i(in)m(teger)i(to)e(a)g(text) h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a) 390 2317 y(diagnostic)e(message)f(to)g(the)g(user.)390 2452 y Fi(TLD)p 584 2452 28 5 v 39 w(SUCCESS:)21 b Fu(Successful)h(op)s (eration.)39 b(This)22 b(v)-5 b(alue)23 b(is)g(guaran)m(teed)h(to)g (alw)m(a)m(ys)g(b)s(e)e(zero,)k(the)390 2561 y(remaining)36 b(ones)g(are)h(only)f(guaran)m(teed)h(to)g(hold)f(non-zero)g(v)-5 b(alues,)38 b(for)e(logical)j(comparison)390 2671 y(purp)s(oses.)390 2805 y Fi(TLD)p 584 2805 V 39 w(INV)-10 b(ALID:)30 b Fu(In)m(v)-5 b(alid)30 b(c)m(haracter)i(found.)390 2940 y Fi(TLD)p 584 2940 V 39 w(NOD)m(A)-8 b(T)g(A:)32 b Fu(No)f(input)e (data)i(w)m(as)g(pro)m(vided.)390 3074 y Fi(TLD)p 584 3074 V 39 w(MALLOC)p 1022 3074 V 39 w(ERR)m(OR:)g Fu(Error)f(during)f (memory)h(allo)s(cation.)390 3209 y Fi(TLD)p 584 3209 V 39 w(ICONV)p 933 3209 V 40 w(ERR)m(OR:)h Fu(Error)f(during)f(icon)m (v)i(string)g(con)m(v)m(ersion.)390 3343 y Fi(TLD)p 584 3343 V 39 w(NO)p 762 3343 V 41 w(TLD:)f Fu(No)h(top-lev)m(el)h(domain)f (found)e(in)h(domain)g(string.)390 3478 y Fi(Return)f(v)-5 b(alue:)40 b Fu(Returns)29 b(a)g(p)s(oin)m(ter)h(to)g(a)f(statically)j (allo)s(cated)f(string)f(con)m(taining)h(a)e(descrip-)390 3587 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e(co)s(de)h Fo(rc)p Fu(.)p eop end %%Page: 36 41 TeXDict begin 36 40 bop 150 -116 a Fu(Chapter)30 b(8:)41 b(PR29)31 b(F)-8 b(unctions)2409 b(36)150 299 y Fr(8)80 b(PR29)54 b(F)-13 b(unctions)150 561 y Fu(A)42 b(de\014ciency)f(in)g (the)h(sp)s(eci\014cation)g(of)g(Unico)s(de)f(Normalization)j(F)-8 b(orms)42 b(has)f(b)s(een)g(found.)72 b(The)150 671 y(consequence)36 b(is)g(that)g(some)g(strings)f(can)h(b)s(e)f(normalized)h(in)m(to)h (di\013eren)m(t)f(strings)f(b)m(y)h(di\013eren)m(t)g(im-)150 781 y(plemen)m(tations.)49 b(In)31 b(other)i(w)m(ords,)g(t)m(w)m(o)h (di\013eren)m(t)f(implemen)m(tations)h(ma)m(y)f(return)e(di\013eren)m (t)i(output)150 890 y(for)e(the)g(same)g(input)g(\(b)s(ecause)g(the)g (in)m(terpretation)i(of)e(the)g(sp)s(eci\014cation)h(is)f(am)m (biguous\).)43 b(F)-8 b(urther,)150 1000 y(an)35 b(implemen)m(tation)i (in)m(v)m(ok)m(ed)g(again)g(on)e(the)g(one)h(of)g(the)f(output)g (strings)g(ma)m(y)h(return)f(a)g(di\013eren)m(t)150 1109 y(string)26 b(\(b)s(ecause)g(one)g(of)g(the)g(in)m(terpretation)i(of)e (the)g(am)m(biguous)g(sp)s(eci\014cation)g(mak)m(e)h(normalization)150 1219 y(non-idemp)s(oten)m(t\).)58 b(F)-8 b(ortunately)g(,)40 b(only)c(a)g(select)i(few)d(c)m(haracter)j(sequence)e(exhibit)g(this)g (problem,)150 1329 y(and)h(none)h(of)h(them)f(are)g(exp)s(ected)h(to)g (o)s(ccur)e(in)h(natural)g(languages)i(\(due)e(to)g(di\013eren)m(t)h (linguistic)150 1438 y(uses)30 b(of)g(the)h(in)m(v)m(olv)m(ed)h(c)m (haracters\).)275 1582 y(A)e(full)g(discussion)g(of)g(the)h(problem)f (ma)m(y)h(b)s(e)e(found)h(at:)275 1726 y Fo(http://www.unicode.org/)o (rev)o(iew/)o(pr-2)o(9.h)o(tml)275 1870 y Fu(The)35 b(PR29)h(functions) f(b)s(elo)m(w)h(allo)m(w)h(y)m(ou)f(to)g(detect)h(the)f(problem)e (sequence.)57 b(So)36 b(when)e(w)m(ould)150 1980 y(y)m(ou)40 b(w)m(an)m(t)h(to)f(use)g(these)g(functions?)69 b(F)-8 b(or)40 b(most)g(applications,)k(suc)m(h)39 b(as)i(those)f(using)f (Nameprep)150 2089 y(for)33 b(IDN,)g(this)g(is)g(lik)m(ely)h(only)f(to) h(b)s(e)e(an)h(in)m(terop)s(erabilit)m(y)h(problem.)48 b(Th)m(us,)33 b(y)m(ou)g(ma)m(y)g(not)g(w)m(an)m(t)h(to)150 2199 y(care)j(ab)s(out)e(it,)j(as)e(the)g(c)m(haracter)h(sequences)f (will)g(rarely)g(o)s(ccur)g(naturally)-8 b(.)57 b(Ho)m(w)m(ev)m(er,)40 b(if)35 b(y)m(ou)i(are)150 2309 y(using)31 b(a)h(pro\014le,)h(suc)m(h)e (as)h(SASLPrep,)f(to)h(pro)s(cess)g(authen)m(tication)i(tok)m(ens;)f (authorization)h(tok)m(ens;)150 2418 y(or)c(passw)m(ords,)f(there)h(is) f(a)h(real)g(danger)g(that)g(attac)m(k)m(ers)i(ma)m(y)f(try)e(to)i(use) e(the)h(p)s(eculiarities)g(in)f(these)150 2528 y(strings)f(to)h(attac)m (k)i(parts)d(of)h(y)m(our)f(system.)40 b(As)29 b(only)f(a)h(small)g(n)m (um)m(b)s(er)e(of)i(strings,)g(and)e(no)i(naturally)150 2637 y(o)s(ccurring)e(strings,)i(exhibit)e(this)h(problem,)g(the)g (conserv)-5 b(ativ)m(e)29 b(approac)m(h)f(of)g(rejecting)h(the)e (strings)h(is)150 2747 y(recommended.)40 b(If)28 b(this)h(approac)m(h)g (is)g(not)h(used,)e(y)m(ou)h(should)f(instead)i(v)m(erify)f(that)g(all) h(parts)f(of)g(y)m(our)150 2856 y(system,)i(that)g(pro)s(cess)f(the)h (tok)m(ens)h(and)e(passw)m(ords,)g(use)g(a)h(NFK)m(C)g(implemen)m (tation)h(that)f(pro)s(duce)150 2966 y(the)g(same)f(output)g(for)g(the) h(same)g(input.)275 3110 y(T)-8 b(ec)m(hnically)32 b(inclined)f (readers)g(ma)m(y)h(b)s(e)e(in)m(terested)i(in)f(kno)m(wing)g(more)g (ab)s(out)f(the)i(implemen)m(ta-)150 3220 y(tion)f(asp)s(ects)g(of)f (the)h(PR29)g(\015a)m(w.)40 b(See)31 b(App)s(endix)e(A)h([PR29)h (discussion],)g(page)g(64.)150 3466 y Ft(8.1)68 b(Header)46 b(\014le)f Fh(pr29.h)150 3626 y Fu(T)-8 b(o)31 b(use)f(the)g(functions) g(explained)h(in)f(this)g(c)m(hapter,)i(y)m(ou)e(need)g(to)i(include)e (the)g(\014le)h Fo(pr29.h)d Fu(using:)390 3770 y Fo(#include)46 b()150 4016 y Ft(8.2)68 b(Core)46 b(F)-11 b(unctions)150 4241 y Fn(pr29)p 399 4241 37 5 v 55 w(4)3350 4447 y Fu([F)j(unction]) -3599 b Fm(int)53 b(pr29_4)47 b Fl(\()p Fk(const)32 b(uin)m(t32)p 1247 4447 28 4 v 41 w(t)e(*)h Fj(in)p Fk(,)g(size)p 1730 4447 V 41 w(t)g Fj(len)p Fl(\))390 4556 y Fk(in)p Fu(:)40 b(input)30 b(arra)m(y)h(with)f(unico)s(de)g(co)s(de)g(p)s(oin)m(ts.)390 4700 y Fk(len)p Fu(:)41 b(length)31 b(of)f(input)g(arra)m(y)g(with)h (unico)s(de)e(co)s(de)i(p)s(oin)m(ts.)390 4844 y(Chec)m(k)23 b(the)g(input)f(to)i(see)f(if)g(it)g(ma)m(y)g(b)s(e)g(normalized)g(in)m (to)h(di\013eren)m(t)f(strings)g(b)m(y)f(di\013eren)m(t)i(NFK)m(C)390 4954 y(implemen)m(tations,)32 b(due)e(to)h(an)f(anomaly)h(in)f(the)h (NFK)m(C)g(sp)s(eci\014cations.)390 5098 y Fi(Return)47 b(v)-5 b(alue:)75 b Fu(Returns)47 b(the)g Fo(Pr29_rc)e Fu(v)-5 b(alue)48 b Fo(PR29_SUCCESS)c Fu(on)k(success,)k(and)46 b Fo(PR29_)390 5208 y(PROBLEM)28 b Fu(if)i(the)g(input)g(sequence)g(is) g(a)h Fo(")p Fu(problem)e(sequence)p Fo(")h Fu(\(i.e.,)i(ma)m(y)f(b)s (e)e(normalized)i(in)m(to)390 5317 y(di\013eren)m(t)g(strings)f(b)m(y)g (di\013eren)m(t)h(implemen)m(tations\).)p eop end %%Page: 37 42 TeXDict begin 37 41 bop 150 -116 a Fu(Chapter)30 b(8:)41 b(PR29)31 b(F)-8 b(unctions)2409 b(37)150 299 y Ft(8.3)68 b(Utilit)l(y)47 b(F)-11 b(unctions)150 523 y Fn(pr29)p 399 523 37 5 v 55 w(4z)3350 720 y Fu([F)j(unction])-3599 b Fm(int)53 b(pr29_4z)48 b Fl(\()p Fk(const)31 b(uin)m(t32)p 1299 720 28 4 v 41 w(t)g(*)f Fj(in)p Fl(\))390 829 y Fk(in)p Fu(:)40 b(zero)32 b(terminated)e(arra)m(y)h(of)g(Unico)s(de)f (co)s(de)h(p)s(oin)m(ts.)390 964 y(Chec)m(k)23 b(the)g(input)f(to)i (see)f(if)g(it)g(ma)m(y)g(b)s(e)g(normalized)g(in)m(to)h(di\013eren)m (t)f(strings)g(b)m(y)f(di\013eren)m(t)i(NFK)m(C)390 1073 y(implemen)m(tations,)32 b(due)e(to)h(an)f(anomaly)h(in)f(the)h(NFK)m (C)g(sp)s(eci\014cations.)390 1208 y Fi(Return)47 b(v)-5 b(alue:)75 b Fu(Returns)47 b(the)g Fo(Pr29_rc)e Fu(v)-5 b(alue)48 b Fo(PR29_SUCCESS)c Fu(on)k(success,)k(and)46 b Fo(PR29_)390 1318 y(PROBLEM)28 b Fu(if)i(the)g(input)g(sequence)g(is) g(a)h Fo(")p Fu(problem)e(sequence)p Fo(")h Fu(\(i.e.,)i(ma)m(y)f(b)s (e)e(normalized)i(in)m(to)390 1427 y(di\013eren)m(t)g(strings)f(b)m(y)g (di\013eren)m(t)h(implemen)m(tations\).)150 1626 y Fn(pr29)p 399 1626 37 5 v 55 w(8z)3350 1823 y Fu([F)-8 b(unction])-3599 b Fm(int)53 b(pr29_8z)48 b Fl(\()p Fk(const)31 b(c)m(har)g(*)g Fj(in)p Fl(\))390 1933 y Fk(in)p Fu(:)40 b(zero)32 b(terminated)e (input)g(UTF-8)h(string.)390 2067 y(Chec)m(k)23 b(the)g(input)f(to)i (see)f(if)g(it)g(ma)m(y)g(b)s(e)g(normalized)g(in)m(to)h(di\013eren)m (t)f(strings)g(b)m(y)f(di\013eren)m(t)i(NFK)m(C)390 2177 y(implemen)m(tations,)32 b(due)e(to)h(an)f(anomaly)h(in)f(the)h(NFK)m (C)g(sp)s(eci\014cations.)390 2311 y Fi(Return)47 b(v)-5 b(alue:)75 b Fu(Returns)47 b(the)g Fo(Pr29_rc)e Fu(v)-5 b(alue)48 b Fo(PR29_SUCCESS)c Fu(on)k(success,)k(and)46 b Fo(PR29_)390 2421 y(PROBLEM)28 b Fu(if)i(the)g(input)g(sequence)g(is) g(a)h Fo(")p Fu(problem)e(sequence)p Fo(")h Fu(\(i.e.,)i(ma)m(y)f(b)s (e)e(normalized)i(in)m(to)390 2531 y(di\013eren)m(t)37 b(strings)e(b)m(y)h(di\013eren)m(t)h(implemen)m(tations\),)i(or)d Fo(PR29_STRINGPREP_ERROR)31 b Fu(if)36 b(there)390 2640 y(w)m(as)31 b(a)g(problem)e(con)m(v)m(erting)j(the)f(string)f(from)g (UTF-8)i(to)f(UCS-4.)150 2873 y Ft(8.4)68 b(Error)45 b(Handling)150 3097 y Fn(pr29)p 399 3097 V 55 w(strerror)3350 3293 y Fu([F)-8 b(unction])-3599 b Fm(const)54 b(char)f(*)g (pr29_strerror)c Fl(\()p Fk(Pr29)p 1784 3293 28 4 v 41 w(rc)30 b Fj(rc)p Fl(\))390 3403 y Fk(rc)6 b Fu(:)40 b(an)30 b Fo(Pr29_rc)f Fu(return)g(co)s(de.)390 3538 y(Con)m(v)m(ert)35 b(a)f(return)e(co)s(de)i(in)m(teger)i(to)e(a)g(text) h(string.)51 b(This)33 b(string)h(can)g(b)s(e)f(used)g(to)h(output)g(a) 390 3647 y(diagnostic)e(message)f(to)g(the)g(user.)390 3782 y Fi(PR29)p 617 3782 28 5 v 41 w(SUCCESS:)h Fu(Successful)h(op)s (eration.)53 b(This)33 b(v)-5 b(alue)35 b(is)f(guaran)m(teed)i(to)f (alw)m(a)m(ys)g(b)s(e)f(zero,)390 3891 y(the)23 b(remaining)f(ones)h (are)g(only)g(guaran)m(teed)g(to)g(hold)g(non-zero)g(v)-5 b(alues,)24 b(for)f(logical)i(comparison)390 4001 y(purp)s(oses.)390 4135 y Fi(PR29)p 617 4135 V 41 w(PR)m(OBLEM:)31 b Fu(A)f(problem)g (sequence)h(w)m(as)f(encoun)m(tered.)390 4270 y Fi(PR29)p 617 4270 V 41 w(STRINGPREP)p 1272 4270 V 40 w(ERR)m(OR:)35 b Fu(The)f(c)m(haracter)h(set)g(con)m(v)m(ersion)g(failed)g(\(only)g (for)e Fo(pr29_)390 4379 y(8z\(\))p Fu(\).)390 4514 y Fi(Return)c(v)-5 b(alue:)40 b Fu(Returns)29 b(a)g(p)s(oin)m(ter)h(to)g (a)f(statically)j(allo)s(cated)f(string)f(con)m(taining)h(a)e(descrip-) 390 4623 y(tion)i(of)f(the)h(error)f(with)g(the)h(return)e(co)s(de)h Fo(rc)p Fu(.)p eop end %%Page: 38 43 TeXDict begin 38 42 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(38)150 299 y Fr(9)80 b(Examples)150 537 y Fu(This)26 b(c)m(hapter)h(con)m(tains)h(example)f(co)s(de)g(whic) m(h)g(illustrate)h(ho)m(w)e(`Libidn')g(can)h(b)s(e)f(used)g(when)g (writing)150 646 y(y)m(our)k(o)m(wn)h(application.)150 880 y Ft(9.1)68 b(Example)46 b(1)150 1040 y Fu(This)30 b(example)h(demonstrates)f(ho)m(w)h(the)f(stringprep)g(functions)g(are) g(used.)150 1176 y Fo(/*)47 b(example.c)e(---)i(Example)f(code)h (showing)f(how)h(to)g(use)g(stringprep\(\).)198 1285 y(*)g(Copyright)e(\(C\))i(2002-2013)f(Simon)g(Josefsson)198 1395 y(*)198 1504 y(*)h(This)g(file)f(is)i(part)e(of)h(GNU)g(Libidn.) 198 1614 y(*)198 1724 y(*)g(This)g(program)f(is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 1833 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f (Public)g(License)g(as)h(published)e(by)198 1943 y(*)i(the)g(Free)g (Software)e(Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g (or)198 2052 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 2162 y(*)198 2271 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 2381 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 2491 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 2600 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 2710 y(*)198 2819 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of)i(the)f(GNU)f (General)g(Public)g(License)198 2929 y(*)h(along)g(with)f(this)h (program.)189 b(If)47 b(not,)f(see)h(.)198 3039 y(*)198 3148 y(*/)150 3367 y(#include)f()150 3477 y(#include)g()150 3587 y(#include)g()150 3696 y(#include)g()617 b(/*)47 b(setlocale\(\))e(*/)150 3806 y(#include)h()150 4025 y(/*)198 4134 y(*)h(Compiling)e(using)i(libtool)f(and)h(pkg-config)e(is)i (recommended:)198 4244 y(*)198 4354 y(*)g($)h(libtool)d(cc)j(-o)f (example)f(example.c)f(`pkg-config)g(--cflags)g(--libs)h(libidn`)198 4463 y(*)h($)h(./example)198 4573 y(*)f(Input)g(string)f(encoded)f(as)j (`ISO-8859-1':)92 b(a)198 4682 y(*)47 b(Before)f(locale2utf8)f (\(length)h(2\):)94 b(aa)48 b(0a)198 4792 y(*)f(Before)f(stringprep)f (\(length)h(3\):)95 b(c2)47 b(aa)g(0a)198 4902 y(*)g(After)g (stringprep)e(\(length)g(2\):)95 b(61)47 b(0a)198 5011 y(*)g($)198 5121 y(*)198 5230 y(*/)p eop end %%Page: 39 44 TeXDict begin 39 43 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(39)150 299 y Fo(int)150 408 y(main)47 b(\(void\))150 518 y({)245 628 y(char)g(buf[BUFSIZ];)245 737 y(char)g(*p;)245 847 y(int)g(rc;)245 956 y(size_t)g(i;)245 1176 y(setlocale)f(\(LC_ALL,)f(""\);)245 1395 y(printf)i(\("Input)e (string)h(encoded)g(as)h(`\045s':)95 b(",)47 b(stringprep_locale_chars) o(et)42 b(\(\)\);)245 1504 y(fflush)47 b(\(stdout\);)245 1614 y(if)h(\(!fgets)d(\(buf,)i(BUFSIZ,)f(stdin\)\))341 1724 y(perror)g(\("fgets"\);)245 1833 y(buf[strlen)f(\(buf\))i(-)g(1])g (=)h('\\0';)245 2052 y(printf)f(\("Before)e(locale2utf8)g(\(length)h (\045ld\):)94 b(",)47 b(\(long)f(int\))h(strlen)f(\(buf\)\);)245 2162 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 2271 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)245 2381 y(printf)f(\("\\n"\);)245 2600 y(p)h(=)f (stringprep_locale_to_utf8)41 b(\(buf\);)245 2710 y(if)48 b(\(p\))341 2819 y({)436 2929 y(strcpy)e(\(buf,)h(p\);)436 3039 y(free)g(\(p\);)341 3148 y(})245 3258 y(else)341 3367 y(printf)f(\("Could)g(not)h(convert)f(string)g(to)h(UTF-8,)f (continuing)f(anyway...\\n"\);)245 3587 y(printf)i(\("Before)e (stringprep)g(\(length)h(\045ld\):)94 b(",)47 b(\(long)g(int\))f (strlen)g(\(buf\)\);)245 3696 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f (\(buf\);)g(i++\))341 3806 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i (0xFF\);)245 3915 y(printf)f(\("\\n"\);)245 4134 y(rc)h(=)f(stringprep) e(\(buf,)h(BUFSIZ,)g(0,)h(stringprep_nameprep\);)245 4244 y(if)h(\(rc)f(!=)g(STRINGPREP_OK\))341 4354 y(printf)f (\("Stringprep)e(failed)j(\(\045d\):)94 b(\045s\\n",)46 b(rc,)h(stringprep_strerror)42 b(\(rc\)\);)245 4463 y(else)341 4573 y({)436 4682 y(printf)k(\("After)g(stringprep)f(\(length)h (\045ld\):)94 b(",)47 b(\(long)g(int\))f(strlen)g(\(buf\)\);)436 4792 y(for)h(\(i)g(=)h(0;)f(i)h(<)f(strlen)f(\(buf\);)g(i++\))532 4902 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)436 5011 y(printf)e(\("\\n"\);)341 5121 y(})245 5340 y(return)h(0;)p eop end %%Page: 40 45 TeXDict begin 40 44 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(40)150 299 y Fo(})150 544 y Ft(9.2)68 b(Example)46 b(2)150 704 y Fu(This)30 b(example)h(demonstrates)f(ho)m (w)h(the)f(pun)m(yco)s(de)g(functions)g(are)h(used.)150 847 y Fo(/*)47 b(example2.c)e(---)i(Example)f(code)h(showing)e(how)i (to)g(use)g(punycode.)198 956 y(*)g(Copyright)e(\(C\))i(2002-2013)f (Simon)g(Josefsson)198 1066 y(*)h(Copyright)e(\(C\))i(2002)95 b(Adam)46 b(M.)i(Costello)198 1176 y(*)198 1285 y(*)f(This)g(file)f(is) i(part)e(of)h(GNU)g(Libidn.)198 1395 y(*)198 1504 y(*)g(This)g(program) f(is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or) f(modify)198 1614 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g (General)f(Public)g(License)g(as)h(published)e(by)198 1724 y(*)i(the)g(Free)g(Software)e(Foundation,)g(either)h(version)g(3)h (of)h(the)e(License,)g(or)198 1833 y(*)h(\(at)g(your)g(option\))f(any)g (later)h(version.)198 1943 y(*)198 2052 y(*)g(This)g(program)f(is)h (distributed)e(in)i(the)g(hope)f(that)h(it)g(will)g(be)g(useful,)198 2162 y(*)g(but)g(WITHOUT)f(ANY)h(WARRANTY;)e(without)h(even)h(the)f (implied)g(warranty)g(of)198 2271 y(*)h(MERCHANTABILITY)d(or)j(FITNESS) f(FOR)h(A)g(PARTICULAR)e(PURPOSE.)93 b(See)47 b(the)198 2381 y(*)g(GNU)g(General)f(Public)g(License)g(for)h(more)f(details.)198 2491 y(*)198 2600 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of) i(the)f(GNU)f(General)g(Public)g(License)198 2710 y(*)h(along)g(with)f (this)h(program.)189 b(If)47 b(not,)f(see)h(.)198 2819 y(*)198 2929 y(*/)150 3148 y(#include)f() 617 b(/*)47 b(setlocale\(\))e(*/)150 3367 y(/*)198 3477 y(*)i(This)g(file)f(is)i(derived)d(from)i(RFC)g(3492)g(written)e(by)j (Adam)e(M.)h(Costello.)198 3587 y(*)198 3696 y(*)g(Disclaimer)e(and)i (license:)93 b(Regarding)46 b(this)g(entire)g(document)g(or)h(any)198 3806 y(*)g(portion)f(of)h(it)g(\(including)e(the)i(pseudocode)e(and)i (C)h(code\),)e(the)h(author)198 3915 y(*)g(makes)g(no)g(guarantees)e (and)i(is)g(not)g(responsible)d(for)j(any)g(damage)f(resulting)198 4025 y(*)h(from)g(its)g(use.)190 b(The)46 b(author)h(grants)f (irrevocable)e(permission)h(to)j(anyone)198 4134 y(*)f(to)g(use,)g (modify,)f(and)h(distribute)e(it)i(in)g(any)g(way)g(that)g(does)f(not)h (diminish)198 4244 y(*)g(the)g(rights)f(of)h(anyone)f(else)h(to)g(use,) g(modify,)f(and)h(distribute)e(it,)198 4354 y(*)i(provided)f(that)g (redistributed)f(derivative)g(works)h(do)h(not)g(contain)198 4463 y(*)g(misleading)e(author)h(or)h(version)f(information.)188 b(Derivative)45 b(works)h(need)198 4573 y(*)h(not)g(be)g(licensed)f (under)g(similar)g(terms.)198 4682 y(*)198 4792 y(*/)150 5011 y(#include)g()150 5121 y(#include)g()150 5230 y(#include)g()150 5340 y(#include)g()p eop end %%Page: 41 46 TeXDict begin 41 45 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(41)150 408 y Fo(#include)46 b()150 628 y(/*)h(For)g(testing,)f(we'll)g(just)h(set)g(some)f(compile-time)f (limits)h(rather)g(than)g(*/)150 737 y(/*)h(use)g(malloc\(\),)e(and)i (set)g(a)h(compile-time)c(option)i(rather)g(than)h(using)f(a)95 b(*/)150 847 y(/*)47 b(command-line)e(option.)4293 b(*/)150 1066 y(enum)150 1176 y({)245 1285 y(unicode_max_length)43 b(=)48 b(256,)245 1395 y(ace_max_length)c(=)k(256)150 1504 y(};)150 1724 y(static)e(void)150 1833 y(usage)g(\(char)h (**argv\))150 1943 y({)245 2052 y(fprintf)f(\(stderr,)675 2162 y("\\n")675 2271 y("\045s)h(-e)g(reads)f(code)h(points)f(and)h (writes)f(a)i(Punycode)d(string.\\n")675 2381 y("\045s)i(-d)g(reads)f (a)i(Punycode)d(string)i(and)f(writes)h(code)f(points.\\n")675 2491 y("\\n")675 2600 y("Input)g(and)h(output)f(are)h(plain)f(text)h (in)g(the)g(native)f(character)f(set.\\n")675 2710 y("Code)h(points)g (are)h(in)h(the)e(form)h(u+hex)f(separated)g(by)h(whitespace.\\n")675 2819 y("Although)e(the)i(specification)d(allows)i(Punycode)g(strings)g (to)h(contain\\n")675 2929 y("any)g(characters)e(from)h(the)h(ASCII)g (repertoire,)d(this)j(test)g(code\\n")675 3039 y("supports)e(only)i (the)g(printable)e(characters,)g(and)i(needs)f(the)h(Punycode\\n")675 3148 y("string)f(to)h(be)g(followed)f(by)h(a)g(newline.\\n")675 3258 y("The)g(case)f(of)h(the)g(u)h(in)f(u+hex)f(is)i(the)e (force-to-uppercase)d(flag.\\n",)675 3367 y(argv[0],)j(argv[0]\);)245 3477 y(exit)h(\(EXIT_FAILURE\);)150 3587 y(})150 3806 y(static)f(void)150 3915 y(fail)h(\(const)f(char)g(*msg\))150 4025 y({)245 4134 y(fputs)h(\(msg,)f(stderr\);)245 4244 y(exit)h(\(EXIT_FAILURE\);)150 4354 y(})150 4573 y(static)f(const)g (char)h(too_big[])e(=)245 4682 y("input)i(or)g(output)f(is)h(too)g (large,)f(recompile)f(with)i(larger)f(limits\\n";)150 4792 y(static)g(const)g(char)h(invalid_input[])d(=)j("invalid)f (input\\n";)150 4902 y(static)g(const)g(char)h(overflow[])e(=)j ("arithmetic)c(overflow\\n";)150 5011 y(static)i(const)g(char)h (io_error[])e(=)j("I/O)e(error\\n";)150 5230 y(/*)h(The)g(following)e (string)h(is)i(used)e(to)h(convert)f(printable)g(*/)150 5340 y(/*)h(characters)e(between)h(ASCII)g(and)h(the)g(native)f (charset:)189 b(*/)p eop end %%Page: 42 47 TeXDict begin 42 46 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(42)150 408 y Fo(static)46 b(const)g(char)h (print_ascii[])d(=)k("\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n)o(\\n\\n)o (\\n\\n)o(\\n")41 b("\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n)o(\\n\\)o (n\\n\\)o(n")h(")47 b(!\\"#$\045&'\(\)*+,-./")c("0123456789:;<=>?")g ("\\0x40")93 b(/*)48 b(at)f(sign)f(*/)245 518 y("ABCDEFGHIJKLMNO")245 628 y("PQRSTUVWXYZ[\\\\]^_")d("`abcdefghijklmno")g ("pqrstuvwxyz{|}~\\n";)150 847 y(int)150 956 y(main)k(\(int)f(argc,)h (char)f(**argv\))150 1066 y({)245 1176 y(enum)h(punycode_status)d (status;)245 1285 y(int)j(r;)245 1395 y(size_t)g(input_length,)d (output_length,)g(j;)245 1504 y(unsigned)i(char)h (case_flags[unicode_max_)o(leng)o(th])o(;)245 1724 y(setlocale)f (\(LC_ALL,)f(""\);)245 1943 y(if)j(\(argc)e(!=)h(2\))341 2052 y(usage)f(\(argv\);)245 2162 y(if)i(\(argv[1][0])c(!=)k('-'\))341 2271 y(usage)e(\(argv\);)245 2381 y(if)i(\(argv[1][2])c(!=)k(0\))341 2491 y(usage)e(\(argv\);)245 2710 y(if)i(\(argv[1][1])c(==)k('e'\))341 2819 y({)436 2929 y(uint32_t)e(input[unicode_max_length)o(];)436 3039 y(unsigned)g(long)h(codept;)436 3148 y(char)g (output[ace_max_length)42 b(+)47 b(1],)g(uplus[3];)436 3258 y(int)g(c;)436 3477 y(/*)h(Read)e(the)h(input)f(code)h(points:)94 b(*/)436 3696 y(input_length)45 b(=)i(0;)436 3915 y(for)g(\(;;\))532 4025 y({)627 4134 y(r)h(=)f(scanf)g(\("\0452s\045lx",)e(uplus,)h (&codept\);)627 4244 y(if)h(\(ferror)f(\(stdin\)\))723 4354 y(fail)g(\(io_error\);)627 4463 y(if)h(\(r)h(==)f(EOF)g(||)g(r)g (==)h(0\))723 4573 y(break;)627 4792 y(if)f(\(r)h(!=)f(2)g(||)g (uplus[1])f(!=)h('+')g(||)g(codept)f(>)i(\(uint32_t\))d(-)i(1\))723 4902 y({)818 5011 y(fail)g(\(invalid_input\);)723 5121 y(})627 5340 y(if)g(\(input_length)e(==)i(unicode_max_length\))p eop end %%Page: 43 48 TeXDict begin 43 47 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(43)723 299 y Fo(fail)46 b(\(too_big\);)627 518 y(if)h(\(uplus[0])f(==)h('u'\))723 628 y(case_flags[input_length)o (])42 b(=)47 b(0;)627 737 y(else)g(if)g(\(uplus[0])e(==)j('U'\))723 847 y(case_flags[input_length)o(])42 b(=)47 b(1;)627 956 y(else)723 1066 y(fail)f(\(invalid_input\);)627 1285 y(input[input_length++])c(=)48 b(codept;)532 1395 y(})436 1614 y(/*)g(Encode:)93 b(*/)436 1833 y(output_length)45 b(=)i(ace_max_length;)436 1943 y(status)f(=)i(punycode_encode)c (\(input_length,)f(input,)k(case_flags,)1677 2052 y(&output_length,)d (output\);)436 2162 y(if)k(\(status)d(==)j(punycode_bad_input\))532 2271 y(fail)e(\(invalid_input\);)436 2381 y(if)i(\(status)d(==)j (punycode_big_output\))532 2491 y(fail)e(\(too_big\);)436 2600 y(if)i(\(status)d(==)j(punycode_overflow\))532 2710 y(fail)e(\(overflow\);)436 2819 y(assert)g(\(status)g(==)h (punycode_success\);)436 3039 y(/*)h(Convert)d(to)j(native)e(charset)f (and)i(output:)94 b(*/)436 3258 y(for)47 b(\(j)g(=)h(0;)f(j)h(<)f (output_length;)d(++j\))532 3367 y({)627 3477 y(c)k(=)f(output[j];)627 3587 y(assert)f(\(c)i(>=)f(0)g(&&)g(c)h(<=)f(127\);)627 3696 y(if)g(\(print_ascii[c])d(==)j(0\))723 3806 y(fail)f (\(invalid_input\);)627 3915 y(output[j])g(=)h(print_ascii[c];)532 4025 y(})436 4244 y(output[j])f(=)h(0;)436 4354 y(r)h(=)f(puts)g (\(output\);)436 4463 y(if)h(\(r)f(==)g(EOF\))532 4573 y(fail)f(\(io_error\);)436 4682 y(return)g(EXIT_SUCCESS;)341 4792 y(})245 5011 y(if)i(\(argv[1][1])c(==)k('d'\))341 5121 y({)436 5230 y(char)f(input[ace_max_length)42 b(+)48 b(2],)f(*p,)g(*pp;)436 5340 y(uint32_t)f(output[unicode_max_lengt)o (h];)p eop end %%Page: 44 49 TeXDict begin 44 48 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(44)436 408 y Fo(/*)48 b(Read)e(the)h(Punycode)f (input)g(string)g(and)h(convert)f(to)h(ASCII:)f(*/)436 628 y(if)i(\(!fgets)d(\(input,)h(ace_max_length)e(+)k(2,)f(stdin\)\)) 532 737 y(fail)f(\(io_error\);)436 847 y(if)i(\(ferror)d(\(stdin\)\)) 532 956 y(fail)h(\(io_error\);)436 1066 y(if)i(\(feof)e(\(stdin\)\))532 1176 y(fail)g(\(invalid_input\);)436 1285 y(input_length)f(=)i(strlen)f (\(input\))g(-)i(1;)436 1395 y(if)g(\(input[input_length])42 b(!=)47 b('\\n'\))532 1504 y(fail)f(\(too_big\);)436 1614 y(input[input_length])d(=)k(0;)436 1833 y(for)g(\(p)g(=)h(input;)e (*p)h(!=)g(0;)h(++p\))532 1943 y({)627 2052 y(pp)f(=)h(strchr)e (\(print_ascii,)e(*p\);)627 2162 y(if)j(\(pp)g(==)h(0\))723 2271 y(fail)e(\(invalid_input\);)627 2381 y(*p)h(=)h(pp)f(-)h (print_ascii;)532 2491 y(})436 2710 y(/*)g(Decode:)93 b(*/)436 2929 y(output_length)45 b(=)i(unicode_max_length;)436 3039 y(status)f(=)i(punycode_decode)c(\(input_length,)f(input,)k (&output_length,)1677 3148 y(output,)f(case_flags\);)436 3258 y(if)i(\(status)d(==)j(punycode_bad_input\))532 3367 y(fail)e(\(invalid_input\);)436 3477 y(if)i(\(status)d(==)j (punycode_big_output\))532 3587 y(fail)e(\(too_big\);)436 3696 y(if)i(\(status)d(==)j(punycode_overflow\))532 3806 y(fail)e(\(overflow\);)436 3915 y(assert)g(\(status)g(==)h (punycode_success\);)436 4134 y(/*)h(Output)e(the)h(result:)93 b(*/)436 4354 y(for)47 b(\(j)g(=)h(0;)f(j)h(<)f(output_length;)d(++j\)) 532 4463 y({)627 4573 y(r)k(=)f(printf)f(\("\045s+\04504lX\\n",)1200 4682 y(case_flags[j])e(?)95 b("U")47 b(:)95 b("u",)47 b(\(unsigned)e(long\))i(output[j]\);)627 4792 y(if)g(\(r)h(<)f(0\))723 4902 y(fail)f(\(io_error\);)532 5011 y(})436 5230 y(return)g (EXIT_SUCCESS;)341 5340 y(})p eop end %%Page: 45 50 TeXDict begin 45 49 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(45)245 408 y Fo(usage)47 b(\(argv\);)245 518 y(return)g(EXIT_SUCCESS;)473 b(/*)47 b(not)g(reached,)f(but)h (quiets)f(compiler)f(warning)h(*/)150 628 y(})150 873 y Ft(9.3)68 b(Example)46 b(3)150 1032 y Fu(This)40 b(example)i (demonstrates)g(ho)m(w)f(the)g(library)g(is)g(used)g(to)h(con)m(v)m (ert)h(in)m(ternationalized)g(domain)150 1142 y(names)30 b(in)m(to)i(ASCI)s(I)c(compatible)k(names.)150 1285 y Fo(/*)47 b(example3.c)e(---)i(Example)f(ToASCII\(\))f(code)i(showing)f (how)h(to)g(use)g(Libidn.)198 1395 y(*)g(Copyright)e(\(C\))i(2002-2013) f(Simon)g(Josefsson)198 1504 y(*)198 1614 y(*)h(This)g(file)f(is)i (part)e(of)h(GNU)g(Libidn.)198 1724 y(*)198 1833 y(*)g(This)g(program)f (is)h(free)f(software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f (modify)198 1943 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g (General)f(Public)g(License)g(as)h(published)e(by)198 2052 y(*)i(the)g(Free)g(Software)e(Foundation,)g(either)h(version)g(3)h (of)h(the)e(License,)g(or)198 2162 y(*)h(\(at)g(your)g(option\))f(any)g (later)h(version.)198 2271 y(*)198 2381 y(*)g(This)g(program)f(is)h (distributed)e(in)i(the)g(hope)f(that)h(it)g(will)g(be)g(useful,)198 2491 y(*)g(but)g(WITHOUT)f(ANY)h(WARRANTY;)e(without)h(even)h(the)f (implied)g(warranty)g(of)198 2600 y(*)h(MERCHANTABILITY)d(or)j(FITNESS) f(FOR)h(A)g(PARTICULAR)e(PURPOSE.)93 b(See)47 b(the)198 2710 y(*)g(GNU)g(General)f(Public)g(License)g(for)h(more)f(details.)198 2819 y(*)198 2929 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of) i(the)f(GNU)f(General)g(Public)g(License)198 3039 y(*)h(along)g(with)f (this)h(program.)189 b(If)47 b(not,)f(see)h(.)198 3148 y(*)198 3258 y(*/)150 3477 y(#include)f() 150 3587 y(#include)g()150 3696 y(#include)g()150 3806 y(#include)g()617 b(/*)47 b(setlocale\(\))e(*/)150 3915 y(#include)h()425 b(/*)47 b (stringprep_locale_charset\()o(\))42 b(*/)150 4025 y(#include)k ()713 b(/*)47 b(idna_to_ascii_lz\(\))c(*/)150 4244 y(/*)198 4354 y(*)k(Compiling)e(using)i(libtool)f(and)h (pkg-config)e(is)i(recommended:)198 4463 y(*)198 4573 y(*)g($)h(libtool)d(cc)j(-o)f(example3)e(example3.c)g(`pkg-config)g (--cflags)h(--libs)g(libidn`)198 4682 y(*)h($)h(./example3)198 4792 y(*)f(Input)g(domain)f(encoded)f(as)j(`ISO-8859-1':)92 b(www.raksmorgaasa.exampl)o(e)198 4902 y(*)47 b(Read)g(string)f (\(length)g(23\):)94 b(77)47 b(77)g(77)h(2e)f(72)g(e4)g(6b)g(73)h(6d)f (f6)g(72)g(67)g(e5)g(73)h(aa)f(2e)g(65)g(78)g(61)h(6d)f(70)g(6c)g(65) 198 5011 y(*)g(ACE)g(label)f(\(length)g(33\):)95 b ('www.xn--rksmrgsa-0zap8)o(p.ex)o(amp)o(le')198 5121 y(*)47 b(77)g(77)h(77)f(2e)g(78)g(6e)g(2d)g(2d)h(72)f(6b)g(73)g(6d)g (72)h(67)f(73)g(61)g(2d)g(30)g(7a)h(61)f(70)g(38)g(70)g(2e)h(65)f(78)g (61)g(6d)g(70)g(6c)h(65)198 5230 y(*)f($)198 5340 y(*)p eop end %%Page: 46 51 TeXDict begin 46 50 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(46)198 299 y Fo(*/)150 518 y(int)150 628 y(main)47 b(\(void\))150 737 y({)245 847 y(char)g(buf[BUFSIZ];)245 956 y(char)g(*p;)245 1066 y(int)g(rc;)245 1176 y(size_t)g(i;)245 1395 y(setlocale)f(\(LC_ALL,)f(""\);)245 1614 y(printf)i(\("Input)e (domain)h(encoded)g(as)h(`\045s':)95 b(",)47 b(stringprep_locale_chars) o(et)42 b(\(\)\);)245 1724 y(fflush)47 b(\(stdout\);)245 1833 y(if)h(\(!fgets)d(\(buf,)i(BUFSIZ,)f(stdin\)\))341 1943 y(perror)g(\("fgets"\);)245 2052 y(buf[strlen)f(\(buf\))i(-)g(1])g (=)h('\\0';)245 2271 y(printf)f(\("Read)f(string)g(\(length)g (\045ld\):)94 b(",)47 b(\(long)f(int\))h(strlen)f(\(buf\)\);)245 2381 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 2491 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)245 2600 y(printf)f(\("\\n"\);)245 2819 y(rc)h(=)f(idna_to_ascii_lz)c (\(buf,)k(&p,)g(0\);)245 2929 y(if)h(\(rc)f(!=)g(IDNA_SUCCESS\))341 3039 y({)436 3148 y(printf)f(\("ToASCII\(\))f(failed)h(\(\045d\):)94 b(\045s\\n",)46 b(rc,)h(idna_strerror)e(\(rc\)\);)436 3258 y(return)h(EXIT_FAILURE;)341 3367 y(})245 3587 y(printf)h(\("ACE)f (label)g(\(length)g(\045ld\):)94 b('\045s'\\n",)46 b(\(long)g(int\))h (strlen)f(\(p\),)g(p\);)245 3696 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen) f(\(p\);)h(i++\))341 3806 y(printf)f(\("\04502x)g(",)h(p[i])g(&)g (0xFF\);)245 3915 y(printf)g(\("\\n"\);)245 4134 y(free)g(\(p\);)245 4354 y(return)g(0;)150 4463 y(})150 4709 y Ft(9.4)68 b(Example)46 b(4)150 4868 y Fu(This)30 b(example)h(demonstrates)f(ho)m (w)h(the)f(library)g(is)h(used)e(to)i(con)m(v)m(ert)h(ASCI)s(I)d (compatible)j(names)e(to)150 4978 y(in)m(ternationalized)j(domain)d (names.)150 5121 y Fo(/*)47 b(example4.c)e(---)i(Example)f (ToUnicode\(\))f(code)h(showing)g(how)h(to)g(use)g(Libidn.)198 5230 y(*)g(Copyright)e(\(C\))i(2002-2013)f(Simon)g(Josefsson)198 5340 y(*)p eop end %%Page: 47 52 TeXDict begin 47 51 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(47)198 299 y Fo(*)47 b(This)g(file)f(is)i(part)e(of)h (GNU)g(Libidn.)198 408 y(*)198 518 y(*)g(This)g(program)f(is)h(free)f (software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 628 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f(Public) g(License)g(as)h(published)e(by)198 737 y(*)i(the)g(Free)g(Software)e (Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g(or)198 847 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 956 y(*)198 1066 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 1176 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 1285 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 1395 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 1504 y(*)198 1614 y(*)h(You)g(should)f(have)h(received)e(a)j(copy)e(of)i(the)f(GNU)f (General)g(Public)g(License)198 1724 y(*)h(along)g(with)f(this)h (program.)189 b(If)47 b(not,)f(see)h(.)198 1833 y(*)198 1943 y(*/)150 2162 y(#include)f()150 2271 y(#include)g()150 2381 y(#include)g()150 2491 y(#include)g()617 b(/*)47 b(setlocale\(\))e(*/)150 2600 y(#include)h()425 b(/*)47 b (stringprep_locale_charset\()o(\))42 b(*/)150 2710 y(#include)k ()713 b(/*)47 b(idna_to_unicode_lzlz\(\))42 b(*/)150 2929 y(/*)198 3039 y(*)47 b(Compiling)e(using)i(libtool)f(and)h (pkg-config)e(is)i(recommended:)198 3148 y(*)198 3258 y(*)g($)h(libtool)d(cc)j(-o)f(example4)e(example4.c)g(`pkg-config)g (--cflags)h(--libs)g(libidn`)198 3367 y(*)h($)h(./example4)198 3477 y(*)f(Input)g(domain)f(encoded)f(as)j(`ISO-8859-1':)92 b(www.xn--rksmrgsa-0zap8p)o(.ex)o(ampl)o(e)198 3587 y(*)47 b(Read)g(string)f(\(length)g(33\):)94 b(77)47 b(77)g(77)h(2e)f(78)g(6e) g(2d)g(2d)h(72)f(6b)g(73)g(6d)g(72)g(67)h(73)f(61)g(2d)g(30)g(7a)h(61)f (70)g(38)g(70)g(2e)g(65)h(78)f(61)g(6d)g(70)g(6c)g(65)198 3696 y(*)g(ACE)g(label)f(\(length)g(23\):)95 b('www.raksmorgaasa.examp) o(le')198 3806 y(*)47 b(77)g(77)h(77)f(2e)g(72)g(e4)g(6b)g(73)h(6d)f (f6)g(72)g(67)g(e5)h(73)f(61)g(2e)g(65)g(78)g(61)h(6d)f(70)g(6c)g(65) 198 3915 y(*)g($)198 4025 y(*)198 4134 y(*/)150 4354 y(int)150 4463 y(main)g(\(void\))150 4573 y({)245 4682 y(char)g(buf[BUFSIZ];)245 4792 y(char)g(*p;)245 4902 y(int)g(rc;)245 5011 y(size_t)g(i;)245 5230 y(setlocale)f(\(LC_ALL,)f (""\);)p eop end %%Page: 48 53 TeXDict begin 48 52 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(48)245 299 y Fo(printf)47 b(\("Input)e(domain)h (encoded)g(as)h(`\045s':)95 b(",)47 b(stringprep_locale_chars)o(et)42 b(\(\)\);)245 408 y(fflush)47 b(\(stdout\);)245 518 y(if)h(\(!fgets)d (\(buf,)i(BUFSIZ,)f(stdin\)\))341 628 y(perror)g(\("fgets"\);)245 737 y(buf[strlen)f(\(buf\))i(-)g(1])g(=)h('\\0';)245 956 y(printf)f(\("Read)f(string)g(\(length)g(\045ld\):)94 b(",)47 b(\(long)f(int\))h(strlen)f(\(buf\)\);)245 1066 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 1176 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)245 1285 y(printf)f(\("\\n"\);)245 1504 y(rc)h(=)f(idna_to_unicode_lzlz)42 b(\(buf,)47 b(&p,)g(0\);)245 1614 y(if)h(\(rc)f(!=)g(IDNA_SUCCESS\))341 1724 y({)436 1833 y(printf)f(\("ToUnicode\(\))f(failed)h(\(\045d\):)94 b(\045s\\n",)46 b(rc,)h(idna_strerror)d(\(rc\)\);)436 1943 y(return)i(EXIT_FAILURE;)341 2052 y(})245 2271 y(printf)h(\("ACE)f (label)g(\(length)g(\045ld\):)94 b('\045s'\\n",)46 b(\(long)g(int\))h (strlen)f(\(p\),)g(p\);)245 2381 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen) f(\(p\);)h(i++\))341 2491 y(printf)f(\("\04502x)g(",)h(p[i])g(&)g (0xFF\);)245 2600 y(printf)g(\("\\n"\);)245 2819 y(free)g(\(p\);)245 3039 y(return)g(0;)150 3148 y(})150 3394 y Ft(9.5)68 b(Example)46 b(5)150 3553 y Fu(This)31 b(example)h(demonstrates)f(ho)m (w)h(the)f(library)g(is)h(used)e(to)i(c)m(hec)m(k)h(a)f(string)f(for)h (in)m(v)-5 b(alid)31 b(c)m(haracters)150 3663 y(within)f(a)h(sp)s (eci\014c)f(TLD.)150 3806 y Fo(/*)47 b(example5.c)e(---)i(Example)f (TLD)h(checking.)198 3915 y(*)g(Copyright)e(\(C\))i(2004-2013)f(Simon)g (Josefsson)198 4025 y(*)198 4134 y(*)h(This)g(file)f(is)i(part)e(of)h (GNU)g(Libidn.)198 4244 y(*)198 4354 y(*)g(This)g(program)f(is)h(free)f (software:)93 b(you)47 b(can)g(redistribute)e(it)i(and/or)f(modify)198 4463 y(*)h(it)g(under)g(the)g(terms)f(of)h(the)g(GNU)g(General)f (Public)g(License)g(as)h(published)e(by)198 4573 y(*)i(the)g(Free)g (Software)e(Foundation,)g(either)h(version)g(3)h(of)h(the)e(License,)g (or)198 4682 y(*)h(\(at)g(your)g(option\))f(any)g(later)h(version.)198 4792 y(*)198 4902 y(*)g(This)g(program)f(is)h(distributed)e(in)i(the)g (hope)f(that)h(it)g(will)g(be)g(useful,)198 5011 y(*)g(but)g(WITHOUT)f (ANY)h(WARRANTY;)e(without)h(even)h(the)f(implied)g(warranty)g(of)198 5121 y(*)h(MERCHANTABILITY)d(or)j(FITNESS)f(FOR)h(A)g(PARTICULAR)e (PURPOSE.)93 b(See)47 b(the)198 5230 y(*)g(GNU)g(General)f(Public)g (License)g(for)h(more)f(details.)198 5340 y(*)p eop end %%Page: 49 54 TeXDict begin 49 53 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(49)198 299 y Fo(*)47 b(You)g(should)f(have)h (received)e(a)j(copy)e(of)i(the)f(GNU)f(General)g(Public)g(License)198 408 y(*)h(along)g(with)f(this)h(program.)189 b(If)47 b(not,)f(see)h(.)198 518 y(*)198 628 y(*/)150 847 y(#include)f()150 956 y(#include)g()150 1066 y(#include)g()150 1285 y(/*)h(Get)g(stringprep_locale_charset)o(,)42 b(etc.)94 b(*/)150 1395 y(#include)46 b()150 1614 y(/*)h(Get)g(idna_to_ascii_8z,)c(etc.)95 b(*/)150 1724 y(#include)46 b()150 1943 y(/*)h(Get)g(tld_check_4z.)92 b(*/)150 2052 y(#include)46 b()150 2271 y(/*)198 2381 y(*)h(Compiling)e(using)i(libtool)f(and)h(pkg-config)e(is)i (recommended:)198 2491 y(*)198 2600 y(*)g($)h(libtool)d(cc)j(-o)f (example5)e(example5.c)g(`pkg-config)g(--cflags)h(--libs)g(libidn`)198 2710 y(*)h($)h(./example5)198 2819 y(*)f(Input)g(domain)f(encoded)f(as) j(`UTF-8':)93 b(fooss.no)198 2929 y(*)47 b(Read)g(string)f(\(length)g (8\):)94 b(66)48 b(6f)f(6f)g(c3)g(9f)g(2e)g(6e)h(6f)198 3039 y(*)f(ToASCII)f(string)g(\(length)g(8\):)95 b(fooss.no)198 3148 y(*)47 b(ToUnicode)e(string:)94 b(U+0066)46 b(U+006f)g(U+006f)g (U+0073)g(U+0073)g(U+002e)h(U+006e)f(U+006f)198 3258 y(*)h(Domain)f(accepted)g(by)h(TLD)g(check)198 3367 y(*)198 3477 y(*)g($)h(./example5)198 3587 y(*)f(Input)g(domain)f(encoded)f(as) j(`UTF-8':)93 b(greuroeuron.no)198 3696 y(*)47 b(Read)g(string)f (\(length)g(12\):)94 b(67)47 b(72)g(e2)h(82)f(ac)g(e2)g(82)g(ac)h(6e)f (2e)g(6e)g(6f)198 3806 y(*)g(ToASCII)f(string)g(\(length)g(16\):)94 b(xn--grn-l50aa.no)198 3915 y(*)47 b(ToUnicode)e(string:)94 b(U+0067)46 b(U+0072)g(U+20ac)g(U+20ac)g(U+006e)g(U+002e)h(U+006e)f (U+006f)198 4025 y(*)h(Domain)f(rejected)g(by)h(TLD)g(check,)f(Unicode) g(position)f(2)198 4134 y(*)198 4244 y(*/)150 4463 y(int)150 4573 y(main)i(\(void\))150 4682 y({)245 4792 y(char)g(buf[BUFSIZ];)245 4902 y(char)g(*p;)245 5011 y(uint32_t)f(*r;)245 5121 y(int)h(rc;)245 5230 y(size_t)g(errpos,)e(i;)p eop end %%Page: 50 55 TeXDict begin 50 54 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(50)245 299 y Fo(printf)47 b(\("Input)e(domain)h (encoded)g(as)h(`\045s':)95 b(",)47 b(stringprep_locale_chars)o(et)42 b(\(\)\);)245 408 y(fflush)47 b(\(stdout\);)245 518 y(if)h(\(!fgets)d (\(buf,)i(BUFSIZ,)f(stdin\)\))341 628 y(perror)g(\("fgets"\);)245 737 y(buf[strlen)f(\(buf\))i(-)g(1])g(=)h('\\0';)245 956 y(printf)f(\("Read)f(string)g(\(length)g(\045ld\):)94 b(",)47 b(\(long)f(int\))h(strlen)f(\(buf\)\);)245 1066 y(for)h(\(i)h(=)f(0;)g(i)h(<)f(strlen)f(\(buf\);)g(i++\))341 1176 y(printf)g(\("\04502x)g(",)h(buf[i])f(&)i(0xFF\);)245 1285 y(printf)f(\("\\n"\);)245 1504 y(p)h(=)f (stringprep_locale_to_utf8)41 b(\(buf\);)245 1614 y(if)48 b(\(p\))341 1724 y({)436 1833 y(strcpy)e(\(buf,)h(p\);)436 1943 y(free)g(\(p\);)341 2052 y(})245 2162 y(else)341 2271 y(printf)f(\("Could)g(not)h(convert)f(string)g(to)h(UTF-8,)f (continuing)f(anyway...\\n"\);)245 2491 y(rc)j(=)f(idna_to_ascii_8z)c (\(buf,)k(&p,)g(0\);)245 2600 y(if)h(\(rc)f(!=)g(IDNA_SUCCESS\))341 2710 y({)436 2819 y(printf)f(\("idna_to_ascii_8z)d(failed)j(\(\045d\):) 94 b(\045s\\n",)47 b(rc,)f(idna_strerror)f(\(rc\)\);)436 2929 y(return)h(2;)341 3039 y(})245 3258 y(printf)h(\("ToASCII)e (string)h(\(length)g(\045ld\):)94 b(\045s\\n",)46 b(\(long)g(int\))h (strlen)f(\(p\),)h(p\);)245 3477 y(rc)h(=)f(idna_to_unicode_8z4z)42 b(\(p,)47 b(&r,)g(0\);)245 3587 y(free)g(\(p\);)245 3696 y(if)h(\(rc)f(!=)g(IDNA_SUCCESS\))341 3806 y({)436 3915 y(printf)f(\("idna_to_unicode_8z4z)c(failed)k(\(\045d\):)94 b(\045s\\n",)818 4025 y(rc,)47 b(idna_strerror)d(\(rc\)\);)436 4134 y(return)i(2;)341 4244 y(})245 4463 y(printf)h(\("ToUnicode)d (string:)94 b("\);)245 4573 y(for)47 b(\(i)h(=)f(0;)g(r[i];)g(i++\))341 4682 y(printf)f(\("U+\04504x)g(",)h(r[i]\);)245 4792 y(printf)g(\("\\n"\);)245 5011 y(rc)h(=)f(tld_check_4z)e(\(r,)h (&errpos,)g(NULL\);)245 5121 y(free)h(\(r\);)245 5230 y(if)h(\(rc)f(==)g(TLD_INVALID\))341 5340 y({)p eop end %%Page: 51 56 TeXDict begin 51 55 bop 150 -116 a Fu(Chapter)30 b(9:)41 b(Examples)2661 b(51)436 299 y Fo(printf)46 b(\("Domain)g(rejected)g (by)h(TLD)g(check,)f(Unicode)g(position)f(\045ld\\n",)h(\(long)g(int\)) h(errpos\);)436 408 y(return)f(1;)341 518 y(})245 628 y(else)h(if)g(\(rc)g(!=)g(TLD_SUCCESS\))341 737 y({)436 847 y(printf)f(\("tld_check_4z\(\))e(failed)i(\(\045d\):)94 b(\045s\\n",)46 b(rc,)h(tld_strerror)d(\(rc\)\);)436 956 y(return)i(2;)341 1066 y(})245 1285 y(printf)h(\("Domain)e (accepted)h(by)h(TLD)g(check\\n"\);)245 1504 y(return)g(0;)150 1614 y(})p eop end %%Page: 52 57 TeXDict begin 52 56 bop 150 -116 a Fu(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(52)150 299 y Fr(10)80 b(In)l(v)l(oking)52 b(idn)150 648 y Ft(10.1)68 b(Name)150 807 y Fu(GNU)31 b(Libidn)e(\(idn\))h({)h(In)m(ternationalized)h(Domain) g(Names)f(command)f(line)g(to)s(ol)150 1047 y Ft(10.2)68 b(Description)150 1206 y Fo(idn)34 b Fu(allo)m(ws)j(in)m (ternationalized)h(string)d(preparation)g(\(`)p Fo(stringprep)p Fu('\),)h(enco)s(ding)f(and)g(deco)s(ding)g(of)150 1316 y(pun)m(yco)s(de)h(data,)j(and)d(IDNA)h(T)-8 b(oASCI)s(I/T)g(oUnico)s (de)37 b(op)s(erations)g(to)g(b)s(e)f(p)s(erformed)f(on)h(the)h(com-) 150 1425 y(mand)30 b(line.)275 1564 y(If)i(strings)h(are)g(sp)s (eci\014ed)f(on)h(the)g(command)f(line,)i(they)g(are)f(used)f(as)h (input)f(and)g(the)h(computed)150 1674 y(output)h(is)g(prin)m(ted)f(to) i(standard)e(output)h Fo(stdout)p Fu(.)49 b(If)34 b(no)g(strings)g(are) g(sp)s(eci\014ed)f(on)h(the)g(command)150 1784 y(line,)42 b(the)d(program)g(read)f(data,)k(line)e(b)m(y)f(line,)i(from)e(the)g (standard)f(input)g Fo(stdin)p Fu(,)i(and)e(prin)m(t)h(the)150 1893 y(computed)g(output)g(to)h(standard)f(output.)67 b(What)40 b(pro)s(cessing)f(is)h(p)s(erformed)e(\(e.g.,)43 b(T)-8 b(oASCI)s(I,)39 b(or)150 2003 y(Pun)m(yco)s(de)32 b(enco)s(de\))i(is)f(indicated)g(b)m(y)g(options.)48 b(If)33 b(an)m(y)g(errors)f(are)h(encoun)m(tered,)i(the)e(execution)h (of)150 2112 y(the)d(applications)g(is)g(ab)s(orted.)275 2252 y(All)e(strings)g(are)g(exp)s(ected)g(to)h(b)s(e)e(enco)s(ded)h (in)f(the)h(preferred)f(c)m(harset)i(used)e(b)m(y)h(y)m(our)g(lo)s (cale.)42 b(Use)150 2361 y Fo(--debug)c Fu(to)j(\014nd)e(out)i(what)f (this)g(c)m(harset)h(is.)71 b(Y)-8 b(ou)40 b(can)h(o)m(v)m(erride)g (the)g(c)m(harset)g(used)f(b)m(y)g(setting)150 2471 y(en)m(vironmen)m (t)31 b(v)-5 b(ariable)31 b Fo(CHARSET)p Fu(.)275 2610 y(T)-8 b(o)38 b(pro)s(cess)g(a)g(string)g(that)h(starts)f(with)g Fo(-)p Fu(,)i(for)e(example)g Fo(-foo)p Fu(,)h(use)f Fo(--)g Fu(to)g(signal)h(the)f(end)g(of)150 2720 y(parameters,)31 b(as)g(in)f Fo(idn)f(--quiet)g(-a)g(--)h(-foo)p Fu(.)150 2959 y Ft(10.3)68 b(Options)150 3119 y Fo(idn)29 b Fu(recognizes)k (these)d(commands:)245 3258 y Fo(-h,)47 b(--help)715 b(Print)46 b(help)h(and)g(exit)245 3477 y(-V,)g(--version)571 b(Print)46 b(version)g(and)h(exit)245 3696 y(-s,)g(--stringprep)427 b(Prepare)45 b(string)i(according)e(to)i(nameprep)f(profile)245 3915 y(-d,)h(--punycode-decode)187 b(Decode)46 b(Punycode)245 4134 y(-e,)h(--punycode-encode)187 b(Encode)46 b(Punycode)245 4354 y(-a,)h(--idna-to-ascii)283 b(Convert)45 b(to)j(ACE)f(according)e (to)i(IDNA)g(\(default)e(mode\))245 4573 y(-u,)i(--idna-to-unicode)187 b(Convert)45 b(from)i(ACE)g(according)e(to)i(IDNA)436 4792 y(--allow-unassigned)139 b(Toggle)46 b(IDNA)g(AllowUnassigned)e (flag)j(\(default)e(off\))436 5011 y(--usestd3asciirules)91 b(Toggle)46 b(IDNA)g(UseSTD3ASCIIRules)d(flag)k(\(default)f(off\))436 5230 y(--no-tld)619 b(Don't)46 b(check)g(string)g(for)h(TLD)g(specific) f(rules)1534 5340 y(Only)h(for)g(--idna-to-ascii)c(and)k (--idna-to-unicode)p eop end %%Page: 53 58 TeXDict begin 53 57 bop 150 -116 a Fu(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(53)245 408 y Fo(-n,)47 b(--nfkc)715 b(Normalize)45 b(string)h(according)f(to)i(Unicode)f(v3.2) h(NFKC)245 628 y(-p,)g(--profile=STRING)235 b(Use)47 b(specified)e(stringprep)g(profile)h(instead)1534 737 y(Valid)g(stringprep)f(profiles:)h(`Nameprep',)1534 847 y(`iSCSI',)g(`Nodeprep',)e(`Resourceprep',)1534 956 y(`trace',)i (`SASLprep')436 1176 y(--debug)667 b(Print)46 b(debugging)f (information)436 1395 y(--quiet)667 b(Silent)46 b(operation)150 1654 y Ft(10.4)68 b(En)l(vironmen)l(t)46 b(V)-11 b(ariables)150 1814 y Fu(The)25 b Fk(CHARSET)31 b Fu(en)m(vironmen)m(t)26 b(v)-5 b(ariable)26 b(can)g(b)s(e)f(used)f(to)j(o)m(v)m(erride)f(what)g (c)m(haracter)h(set)f(to)g(b)s(e)f(used)150 1923 y(for)35 b(deco)s(ding)f(incoming)i(data)f(\(i.e.,)j(on)c(the)h(command)g(line)g (or)g(on)f(the)h(standard)f(input)g(stream\),)150 2033 y(and)27 b(to)i(enco)s(de)f(data)h(to)g(the)f(standard)f(output.)40 b(If)27 b(y)m(our)h(system)g(is)h(set)f(up)f(correctly)-8 b(,)31 b(ho)m(w)m(ev)m(er,)f(the)150 2143 y(application)i(will)e(guess) h(whic)m(h)f(c)m(haracter)i(set)f(is)f(used)g(automatically)-8 b(.)44 b(Example)30 b(usage:)390 2295 y Fo($)47 b(CHARSET=ISO-8859-1)c (idn)k(--punycode-encode)390 2405 y(...)150 2664 y Ft(10.5)68 b(Examples)150 2824 y Fu(Standard)29 b(usage,)i(reading)g(input)e(from) h(standard)g(input:)390 2976 y Fo(jas@latte:~$)44 b(idn)390 3086 y(libidn)i(0.3.5)390 3195 y(Copyright)f(2002,)i(2003)f(Simon)h (Josefsson.)390 3305 y(GNU)g(Libidn)f(comes)g(with)h(NO)g(WARRANTY,)e (to)j(the)f(extent)f(permitted)f(by)i(law.)390 3415 y(You)g(may)g (redistribute)d(copies)i(of)i(GNU)e(Libidn)h(under)f(the)h(terms)f(of) 390 3524 y(the)h(GNU)g(Lesser)f(General)g(Public)g(License.)93 b(For)47 b(more)g(information)390 3634 y(about)f(these)h(matters,)e (see)i(the)g(file)g(named)f(COPYING.LIB.)390 3743 y(Type)h(each)f (input)h(string)f(on)h(a)g(line)g(by)g(itself,)f(terminated)f(by)i(a)h (newline)d(character.)390 3853 y(r\177)-48 b(aksm\177)g(org\027)g (as.se)390 3963 y(xn--rksmrgs-5wao1o.se)390 4072 y(jas@latte:~$)275 4225 y Fu(Reading)32 b(input)g(from)g(command)g(line,)h(and)f(disable)h (prin)m(ting)f(cop)m(yrigh)m(t)i(and)d(license)j(informa-)150 4334 y(tion:)390 4487 y Fo(jas@latte:~$)44 b(idn)j(--quiet)f(r\177)-48 b(aksm\177)g(org\027)g(as.se)44 b(bl\027)-48 b(ab\032rgr\034d.no)390 4596 y(xn--rksmrgs-5wao1o.se)390 4706 y(xn--blbrgrd-fxak7p.no)390 4816 y(jas@latte:~$)275 4968 y Fu(Accessing)31 b(a)g(sp)s(eci\014c)f (StringPrep)f(pro\014le)h(directly:)390 5121 y Fo(jas@latte:~$)44 b(idn)j(--quiet)f(--profile=SASLprep)d(--stringprep)h(te\031t)3302 5082 y Ff(a)p 3302 5095 36 4 v 390 5230 a Fo(te\031ta)390 5340 y(jas@latte:~$)p eop end %%Page: 54 59 TeXDict begin 54 58 bop 150 -116 a Fu(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(54)150 299 y Ft(10.6)68 b(T)-11 b(roublesho)t(oting)150 458 y Fu(Getting)32 b(c)m(haracter)g (data)f(enco)s(ded)g(righ)m(t,)g(and)f(making)h(sure)f(Libidn)f(use)h (the)h(same)g(enco)s(ding,)g(can)150 568 y(b)s(e)i(di\016cult.)50 b(The)33 b(reason)g(for)h(this)f(is)g(that)h(most)g(systems)g(enco)s (de)f(c)m(haracter)i(data)f(in)g(more)f(than)150 677 y(one)e(c)m(haracter)g(enco)s(ding,)g(i.e.,)g(using)f Fo(UTF-8)f Fu(together)j(with)d Fo(ISO-8859-1)f Fu(or)i Fo(ISO-2022-JP)p Fu(.)38 b(This)150 787 y(problem)g(is)h(lik)m(ely)h (to)f(con)m(tin)m(ue)h(to)f(exist)h(un)m(til)e(only)h(one)g(c)m (haracter)h(enco)s(ding)f(come)g(out)g(as)g(the)150 897 y(ev)m(olutionary)32 b(winner,)d(or)i(\(more)g(lik)m(ely)-8 b(,)32 b(at)f(least)h(to)f(some)g(exten)m(ts\))h(forev)m(er.)275 1027 y(The)d(\014rst)h(step)g(to)h(troublesho)s(oting)f(c)m(haracter)i (enco)s(ding)e(problems)g(with)g(Libidn)f(is)h(to)h(use)f(the)150 1137 y(`)p Fo(--debug)p Fu(')24 b(parameter)j(to)f(\014nd)e(out)i(whic) m(h)g(c)m(haracter)h(set)g(enco)s(ding)f(`)p Fo(idn)p Fu(')f(b)s(eliev)m(e)i(y)m(our)f(lo)s(cale)h(uses.)390 1268 y Fo(jas@latte:~$)44 b(idn)j(--debug)f(--quiet)g("")390 1377 y(system)g(locale)g(uses)h(charset)f(`UTF-8'.)390 1597 y(jas@latte:~$)275 1727 y Fu(If)27 b(it)i(prin)m(ts)f Fo(ANSI_X3.4-1968)c Fu(\(i.e.,)30 b Fo(US-ASCII)p Fu(\),)d(this)h (indicate)h(y)m(ou)g(ha)m(v)m(e)g(not)g(con\014gured)e(y)m(our)150 1837 y(lo)s(cale)40 b(prop)s(erly)-8 b(.)66 b(T)-8 b(o)39 b(con\014gure)f(the)h(lo)s(cale,)k(y)m(ou)c(can,)j(for)c(example,)k (use)c(`)p Fo(LANG=sv_SE.UTF-8;)150 1946 y(export)29 b(LANG)p Fu(')g(at)i(a)g Fo(/bin/sh)d Fu(prompt,)i(to)g(set)h(up)e(y)m (our)i(lo)s(cale)h(for)e(a)g(Sw)m(edish)g(en)m(vironmen)m(t)g(using)150 2056 y Fo(UTF-8)f Fu(as)i(the)f(enco)s(ding.)275 2187 y(Sometimes)36 b(`)p Fo(idn)p Fu(')g(app)s(ear)g(to)h(b)s(e)e(unable)h (to)h(translate)g(from)f(y)m(our)g(system)g(lo)s(cale)i(in)m(to)f Fo(UTF-8)150 2296 y Fu(\(whic)m(h)30 b(is)h(used)e(in)m(ternally\),)j (and)e(y)m(ou)h(get)g(an)g(error)f(lik)m(e)h(the)g(follo)m(wing:)390 2427 y Fo(jas@latte:~$)44 b(idn)j(--quiet)f(foo)390 2537 y(idn:)h(could)f(not)h(convert)f(from)g(ISO-8859-1)f(to)j(UTF-8.)390 2646 y(jas@latte:~$)275 2777 y Fu(The)26 b(simplest)i(explanation)g(is) g(that)g(y)m(ou)f(ha)m(v)m(en't)i(installed)f(the)g(`)p Fo(iconv)p Fu(')e(con)m(v)m(ersion)j(to)s(ols.)40 b(Y)-8 b(ou)150 2887 y(can)38 b(\014nd)f(it)i(as)f(a)h(standalone)g(library)f (in)f(GNU)i(Libicon)m(v)g(\()p Fo(http:)6 b(/)g(/)f(www)h(.)f(gnu)h(.)f (org)h(/)f(software)h(/)150 2996 y(libiconv/)p Fu(\).)37 b(On)25 b(man)m(y)h(GNU/Lin)m(ux)h(systems,)g(this)e(library)h(is)g (part)g(of)g(the)g(system,)h(but)e(y)m(ou)h(ma)m(y)150 3106 y(ha)m(v)m(e)32 b(to)f(install)g(additional)g(pac)m(k)-5 b(ages)32 b(\(e.g.,)h(`)p Fo(glibc-locale)p Fu(')27 b(for)j(Debian\))i (to)f(b)s(e)e(able)i(to)h(use)e(it.)275 3237 y(Another)i(explanation)i (is)f(that)g(the)g(error)g(is)g(correct)h(and)e(y)m(ou)h(are)g(feeding) g(`)p Fo(idn)p Fu(')g(in)m(v)-5 b(alid)33 b(data.)150 3346 y(This)21 b(can)i(happ)s(en)d(inadv)m(erten)m(tly)k(if)e(y)m(ou)h (are)f(not)h(careful)f(with)g(the)h(c)m(haracter)h(set)e(enco)s(ding)g (y)m(ou)h(use.)150 3456 y(F)-8 b(or)29 b(example,)g(if)f(y)m(our)g (shell)h(run)d(in)i(a)h Fo(ISO-8859-1)c Fu(en)m(vironmen)m(t,)k(and)f (y)m(ou)g(in)m(v)m(ok)m(e)i(`)p Fo(idn)p Fu(')e(with)g(the)150 3565 y(`)p Fo(CHARSET)p Fu(')e(en)m(vironmen)m(t)i(v)-5 b(ariable)28 b(as)g(follo)m(ws,)h(y)m(ou)f(will)g(feed)f(it)h Fo(ISO-8859-1)d Fu(c)m(haracters)k(but)d(force)150 3675 y(it)k(to)h(b)s(eliev)m(e)g(they)f(are)g Fo(UTF-8)p Fu(.)39 b(Naturally)31 b(this)f(will)g(lead)g(to)h(an)e(error,)h(unless)f(the)h (b)m(yte)h(sequences)150 3785 y(happ)s(en)36 b(to)i(b)s(e)e(v)-5 b(alid)38 b Fo(UTF-8)p Fu(.)60 b(Note)39 b(that)f(ev)m(en)g(if)f(y)m (ou)g(don't)h(get)g(an)f(error,)i(the)f(output)f(ma)m(y)h(b)s(e)150 3894 y(incorrect)c(in)e(this)g(situation,)j(b)s(ecause)e Fo(ISO-8859-1)c Fu(and)j Fo(UTF-8)g Fu(do)s(es)g(not)h(in)f(general)i (enco)s(de)f(the)150 4004 y(same)e(c)m(haracters)h(as)e(the)h(same)g(b) m(yte)g(sequences.)390 4134 y Fo(jas@latte:~$)44 b(idn)j(--quiet)f (--debug)g("")390 4244 y(system)g(locale)g(uses)h(charset)f (`ISO-8859-1'.)390 4463 y(jas@latte:~$)e(CHARSET=UTF-8)h(idn)i(--quiet) e(--debug)h(r\177)-48 b(aksm\177)g(org\027)g(as)390 4573 y(system)46 b(locale)g(uses)h(charset)f(`UTF-8'.)390 4682 y(input[0])g(=)h(U+0072)390 4792 y(input[1])f(=)h(U+4af3)390 4902 y(input[2])f(=)h(U+006d)390 5011 y(input[3])f(=)h(U+1b29e5)390 5121 y(input[4])f(=)h(U+0073)390 5230 y(output[0])e(=)j(U+0078)390 5340 y(output[1])d(=)j(U+006e)p eop end %%Page: 55 60 TeXDict begin 55 59 bop 150 -116 a Fu(Chapter)30 b(10:)41 b(In)m(v)m(oking)32 b(idn)2500 b(55)390 299 y Fo(output[2])45 b(=)j(U+002d)390 408 y(output[3])d(=)j(U+002d)390 518 y(output[4])d(=)j(U+0072)390 628 y(output[5])d(=)j(U+006d)390 737 y(output[6])d(=)j(U+0073)390 847 y(output[7])d(=)j(U+002d)390 956 y(output[8])d(=)j(U+0068)390 1066 y(output[9])d(=)j(U+0069)390 1176 y(output[10])d(=)i(U+0036)390 1285 y(output[11])e(=)i(U+0064)390 1395 y(output[12])e(=)i(U+0035)390 1504 y(output[13])e(=)i(U+0039)390 1614 y(output[14])e(=)i(U+0037)390 1724 y(output[15])e(=)i(U+0035)390 1833 y(output[16])e(=)i(U+0035)390 1943 y(output[17])e(=)i(U+0032)390 2052 y(output[18])e(=)i(U+0061)390 2162 y(xn--rms-hi6d597552a)390 2271 y(jas@latte:~$)275 2406 y Fu(The)35 b(sense)g(moral)i(here)e(is)h (to)g(forget)h(ab)s(out)e(`)p Fo(CHARSET)p Fu(')g(\(con\014gure)h(y)m (our)f(lo)s(cales)i(prop)s(erly)e(in-)150 2516 y(stead\))c(unless)f(y)m (ou)g(kno)m(w)h(what)f(y)m(ou)h(are)f(doing,)h(and)f(if)g(y)m(ou)h(w)m (an)m(t)g(to)g(use)f(it,)h(do)f(it)h(carefully)-8 b(,)31 b(after)150 2625 y(v)m(erifying)g(with)f(`)p Fo(--debug)p Fu(')f(that)i(y)m(ou)g(get)g(the)g(desired)f(results.)p eop end %%Page: 56 61 TeXDict begin 56 60 bop 150 -116 a Fu(Chapter)30 b(11:)41 b(Emacs)31 b(API)2546 b(56)150 299 y Fr(11)80 b(Emacs)54 b(API)150 563 y Fu(Included)31 b(in)h(Libidn)g(are)h Fo(punycode.el)c Fu(and)j Fo(idna.el)e Fu(that)j(pro)m(vides)g(an)f (Emacs)h(Lisp)f(API)g(to)h(\(a)150 673 y(limited)j(set)f(of)7 b(\))35 b(the)h(Libidn)d(API.)i(This)f(section)i(describ)s(es)e(the)i (API.)e(Curren)m(tly)h(the)g(IDNA)g(API)150 783 y(alw)m(a)m(ys)d(set)f (the)g Fo(UseSTD3ASCIIRules)25 b Fu(\015ag)31 b(and)f(clear)h(the)g Fo(AllowUnassigned)26 b Fu(\015ag,)31 b(in)f(the)h(future)150 892 y(there)g(ma)m(y)g(b)s(e)e(functionalit)m(y)j(to)f(sp)s(ecify)f (these)h(\015ags)g(via)g(the)f(API.)150 1140 y Ft(11.1)68 b(Pun)l(yco)t(de)45 b(Emacs)g(API)3371 1359 y Fu([V)-8 b(ariable])-3598 b Fm(punycode-program)390 1469 y Fu(Name)30 b(of)f(the)g(GNU)h(Libidn)d Fo(idn)h Fu(application.)42 b(The)28 b(default)i(is)f(`)p Fo(idn)p Fu('.)39 b(This)29 b(v)-5 b(ariable)29 b(can)h(b)s(e)390 1578 y(customized.)3371 1783 y([V)-8 b(ariable])-3598 b Fm(punycode-environment)390 1892 y Fu(List)34 b(of)g(en)m(vironmen)m(t)h(v)-5 b(ariable)35 b(de\014nitions)e(prep)s(ended)f(to)j(`)p Fo(process-environment)p Fu('.)46 b(The)390 2002 y(default)31 b(is)f(`)p Fo(\("CHARSET=UTF-8"\)) p Fu('.)36 b(This)30 b(v)-5 b(ariable)31 b(can)g(b)s(e)f(customized.) 3371 2206 y([V)-8 b(ariable])-3598 b Fm(punycode-encode-parame)q(ter)q (s)390 2316 y Fu(List)62 b(of)g(parameters)g(passed)f(to)i Fk(pun)m(yco)s(de-program)e Fu(to)h(in)m(v)m(ok)m(e)i(pun)m(yco)s(de)d (enco)s(ding)390 2426 y(mo)s(de.)67 b(The)39 b(default)h(is)g(`)p Fo(\("--quiet")27 b("--punycode-encode"\))p Fu('.)63 b(This)39 b(v)-5 b(ariable)40 b(can)g(b)s(e)390 2535 y(customized.)3371 2740 y([V)-8 b(ariable])-3598 b Fm (punycode-decode-parame)q(ter)q(s)390 2849 y Fu(P)m(arameters)40 b(passed)e(to)i Fk(pun)m(yco)s(de-program)e Fu(to)i(in)m(v)m(ok)m(e)h (pun)m(yco)s(de)d(deco)s(ding)h(mo)s(de.)65 b(The)390 2959 y(default)31 b(is)f(`)p Fo(\("--quiet")e("--punycode-decode"\))p Fu('.)35 b(This)30 b(v)-5 b(ariable)31 b(can)g(b)s(e)e(customized.)3350 3164 y([F)-8 b(unction])-3599 b Fm(punycode-encode)50 b Fk(string)390 3273 y Fu(Returns)29 b(a)i(Pun)m(yco)s(de)f(enco)s (ding)g(of)h(the)g Fk(string)p Fu(,)f(after)h(con)m(v)m(erting)h(the)f (input)e(in)m(to)j(UTF-8.)3350 3478 y([F)-8 b(unction])-3599 b Fm(punycode-decode)50 b Fk(string)390 3587 y Fu(Returns)37 b(a)h(p)s(ossibly)g(m)m(ultib)m(yte)h(string)f(whic)m(h)g(is)g(the)g (deco)s(ding)g(of)g(the)g Fk(string)46 b Fu(whic)m(h)38 b(is)g(a)390 3697 y(pun)m(yco)s(de)30 b(enco)s(ded)g(string.)150 3944 y Ft(11.2)68 b(IDNA)45 b(Emacs)g(API)3371 4164 y Fu([V)-8 b(ariable])-3598 b Fm(idna-program)390 4273 y Fu(Name)30 b(of)f(the)g(GNU)h(Libidn)d Fo(idn)h Fu(application.)42 b(The)28 b(default)i(is)f(`)p Fo(idn)p Fu('.)39 b(This)29 b(v)-5 b(ariable)29 b(can)h(b)s(e)390 4383 y(customized.)3371 4587 y([V)-8 b(ariable])-3598 b Fm(idna-environment)390 4697 y Fu(List)34 b(of)g(en)m(vironmen)m(t)h(v)-5 b(ariable)35 b(de\014nitions)e(prep)s(ended)f(to)j(`)p Fo(process-environment)p Fu('.)46 b(The)390 4807 y(default)31 b(is)f(`)p Fo(\("CHARSET=UTF-8"\)) p Fu('.)36 b(This)30 b(v)-5 b(ariable)31 b(can)g(b)s(e)f(customized.) 3371 5011 y([V)-8 b(ariable])-3598 b Fm(idna-to-ascii-paramete)q(rs)390 5121 y Fu(List)31 b(of)f(parameters)h(passed)f(to)h Fk(idna-program)f Fu(to)i(in)m(v)m(ok)m(e)g(IDNA)f(T)-8 b(oASCI)s(I)29 b(mo)s(de.)41 b(The)30 b(de-)390 5230 y(fault)k(is)g(`)p Fo(\("--quiet")28 b("--idna-to-ascii")d("--usestd3asciirules"\))p Fu('.)45 b(This)33 b(v)-5 b(ariable)390 5340 y(can)31 b(b)s(e)e(customized.)p eop end %%Page: 57 62 TeXDict begin 57 61 bop 150 -116 a Fu(Chapter)30 b(11:)41 b(Emacs)31 b(API)2546 b(57)3371 299 y([V)-8 b(ariable])-3598 b Fm(idna-to-unicode-parame)q(ter)q(s)390 408 y Fu(P)m(arameters)38 b(passed)e Fk(idna-program)g Fu(to)h(in)m(v)m(ok)m(e)i(IDNA)e(T)-8 b(oUnico)s(de)37 b(mo)s(de.)59 b(The)36 b(default)h(is)390 518 y(`)p Fo(\("--quiet")28 b("--idna-to-unicode")d ("--usestd3asciirules"\))p Fu('.)73 b(This)43 b(v)-5 b(ariable)44 b(can)390 628 y(b)s(e)30 b(customized.)3350 812 y([F)-8 b(unction])-3599 b Fm(idna-to-ascii)49 b Fk(string)390 922 y Fu(Returns)26 b(an)h(ASCI)s(I)e(Compatible)j(Enco)s (ding)e(\(A)m(CE\))i(of)f(the)h(string)e(computed)h(b)m(y)g(the)g(IDNA) 390 1031 y(T)-8 b(oASCI)s(I)29 b(op)s(eration)i(on)f(the)h(input)e Fk(string)p Fu(,)i(after)g(con)m(v)m(erting)h(the)f(input)e(to)i (UTF-8.)3350 1215 y([F)-8 b(unction])-3599 b Fm(idna-to-unicode)50 b Fk(string)390 1325 y Fu(Returns)43 b(a)g(p)s(ossibly)g(m)m(ultib)m (yte)i(string)e(whic)m(h)g(is)h(the)g(output)f(of)g(the)h(IDNA)g(T)-8 b(oUnico)s(de)390 1435 y(op)s(eration)31 b(computed)f(on)g(the)h(input) e Fk(string)p Fu(.)p eop end %%Page: 58 63 TeXDict begin 58 62 bop 150 -116 a Fu(Chapter)30 b(12:)41 b(Ja)m(v)-5 b(a)32 b(API)2627 b(58)150 299 y Fr(12)80 b(Ja)l(v)-9 b(a)55 b(API)150 492 y Fu(Libidn)31 b(has)h(b)s(een)g(p)s (orted)g(to)h(the)f(Ja)m(v)-5 b(a)34 b(programming)e(language,)j(and)c (as)i(a)g(consequence)g(most)g(of)150 601 y(the)27 b(API)f(is)g(a)m(v) -5 b(ailable)29 b(to)e(nativ)m(e)h(Ja)m(v)-5 b(a)27 b(applications.)41 b(This)26 b(section)h(con)m(tain)h(notes)f(on)f(this)g(supp)s(ort,)150 711 y(complete)32 b(do)s(cumen)m(tation)f(is)f(p)s(ending.)275 837 y(The)c(Ja)m(v)-5 b(a)28 b(library)-8 b(,)27 b(if)g(Libidn)f(has)g (b)s(een)g(built)h(with)f(Ja)m(v)-5 b(a)28 b(supp)s(ort)d(\(see)j (Section)f(1.7)h([Do)m(wnload-)150 947 y(ing)k(and)g(Installing],)i (page)f(6\),)h(will)f(b)s(e)e(placed)i(in)f Fo(java/libidn-1.28.jar)p Fu(.)41 b(The)32 b(source)g(co)s(de)h(is)150 1056 y(b)s(elo)m(w)c Fo(java/)e Fu(in)i(Ma)m(v)m(en)h(directory)g(la)m(y)m(out,)h(and)d (there)h(is)g(a)g(Ma)m(v)m(en)h Fo(pom.xml)d Fu(build)h(script)h(as)g (w)m(ell.)150 1166 y(Source)h(co)s(de)h(\014les)f(are)h(in)f Fo(java/src/main/java/gnu/i)o(net/)o(enc)o(odin)o(g/)p Fu(.)150 1382 y Ft(12.1)68 b(Ov)l(erview)150 1541 y Fu(This)37 b(pac)m(k)-5 b(age)40 b(pro)m(vides)f(a)f(Ja)m(v)-5 b(a)39 b(implemen)m(tation)h(of)e(the)h(In)m(ternationalized)h(Domain)f(Names) f(in)150 1651 y(Applications)43 b(\(IDNA\))g(standard.)75 b(It)42 b(is)g(written)g(en)m(tirely)i(in)d(Ja)m(v)-5 b(a)43 b(and)f(do)s(es)g(not)g(require)g(an)m(y)150 1761 y(additional)31 b(libraries)g(to)g(b)s(e)f(set)h(up.)275 1887 y(The)i(gn)m(u.inet.enco)s(ding.IDNA)k(class)e(o\013ers)g(t)m(w)m (o)g(public)f(functions,)h(toASCI)s(I)f(and)g(toUnico)s(de)150 1997 y(whic)m(h)c(can)h(b)s(e)f(used)f(as)i(follo)m(ws:)390 2123 y Fo(gnu.inet.encoding.IDNA.t)o(oASC)o(II\(")o(bl\177)-49 b(ods.z)o(\177)h(ug"\))o(;)390 2232 y(gnu.inet.encoding.IDNA.t)o(oUni)o (code)o(\("x)o(n--b)o(lds-)o(6qa)o(.xn-)o(-zg-)o(xka)o("\);)150 2448 y Ft(12.2)68 b(Miscellaneous)47 b(Programs)150 2608 y Fu(The)24 b Fo(java/src/util/java/)19 b Fu(directory)25 b(con)m(tains)h(sev)m(eral)g(programs)e(that)h(are)g(related)h(to)f (the)g(Ja)m(v)-5 b(a)150 2717 y(part)27 b(of)f(GNU)i(Libidn,)e(but)g (that)i(don't)e(need)h(to)g(b)s(e)f(included)g(in)h(the)g(main)f (source)h(tree)h(or)e(the)h(JAR)150 2827 y(\014le.)150 3010 y Fn(12.2.1)63 b(GenerateRF)m(C3454)150 3157 y Fu(This)43 b(program)h(parses)g(RF)m(C3454)i(and)e(creates)h(the)f(RF)m(C3454.ja)m (v)-5 b(a)48 b(program)c(that)h(is)f(required)150 3266 y(during)29 b(the)i(StringPrep)e(phase.)275 3393 y(The)37 b(RF)m(C)i(can)f(b)s(e)f(found)g(at)i(v)-5 b(arious)38 b(lo)s(cations,)k(for)c(example)g(at)h Fo(http:)6 b(/)g(/)f(www)h(.)f (ietf)h(.)f(org)h(/)150 3502 y(rfc/rfc3454.txt)p Fu(.)275 3628 y(In)m(v)m(ok)m(e)31 b(the)g(program)f(as)h(follo)m(ws:)390 3755 y Fo($)47 b(java)g(GenerateRFC3454)390 3864 y(Creating)f (RFC3454.java...)d(Ok.)150 4047 y Fn(12.2.2)63 b(GenerateNFK)m(C)150 4194 y Fu(The)44 b(GenerateNFK)m(C)j(program)e(parses)f(the)h(Unico)s (de)g(c)m(haracter)i(database)e(\014le)g(and)g(generates)150 4304 y(all)f(the)g(tables)g(required)e(for)h(NFK)m(C.)h(This)e(program) h(requires)g(the)g(t)m(w)m(o)i(\014les)e(Unico)s(deData.txt)150 4413 y(and)e(Comp)s(ositionExclusions.txt)i(of)f(v)m(ersion)g(3.2)h(of) f(the)g(Unico)s(de)g(\014les.)75 b(Note)43 b(that)g(RF)m(C3454)150 4523 y(\(Stringprep\))30 b(de\014nes)f(that)i(Unico)s(de)g(v)m(ersion)g (3.2)g(is)f(to)i(b)s(e)d(used,)h(not)h(the)f(latest)i(v)m(ersion.)275 4649 y(The)d(Unico)s(de)i(data)g(\014les)f(can)h(b)s(e)f(found)f(at)i Fo(http://www.unicode.org/P)o(ubli)o(c/)p Fu(.)275 4775 y(In)m(v)m(ok)m(e)g(the)g(program)f(as)h(follo)m(ws:)390 4902 y Fo($)47 b(java)g(GenerateNFKC)390 5011 y(Creating)f (CombiningClass.java...)41 b(Ok.)390 5121 y(Creating)46 b(DecompositionKeys.java.)o(..)41 b(Ok.)390 5230 y(Creating)46 b(DecompositionMappings.j)o(ava)o(...)41 b(Ok.)390 5340 y(Creating)46 b(Composition.java...)c(Ok.)p eop end %%Page: 59 64 TeXDict begin 59 63 bop 150 -116 a Fu(Chapter)30 b(12:)41 b(Ja)m(v)-5 b(a)32 b(API)2627 b(59)150 299 y Fn(12.2.3)63 b(T)-10 b(estIDNA)150 446 y Fu(The)22 b(T)-8 b(estIDNA)25 b(program)d(allo)m(ws)i(to)g(test)g(the)f(IDNA)g(implemen)m(tation)i (man)m(ually)e(or)g(against)i(Simon)150 555 y(Josefsson's)30 b(test)i(v)m(ectors.)275 696 y(The)21 b(test)h(v)m(ectors)h(can)f(b)s (e)f(found)g(at)h(the)g(Libidn)e(homepage,)25 b Fo (http://www.gnu.org/soft)o(ware)o(/)150 806 y(libidn/)p Fu(.)275 946 y(T)-8 b(o)30 b(test)i(the)e(transformation)h(man)m(ually) -8 b(,)32 b(use:)390 1087 y Fo($)47 b(java)g(-cp)g (.:/usr/share/java/libidn)o(.jar)41 b(TestIDNA)46 b(-a)h()390 1197 y(Input:)f()390 1306 y(Output:)f()390 1416 y($)f(java)g(-cp)g(.:/usr/share/java/libidn)o(.jar)41 b(TestIDNA)46 b(-u)h()390 1525 y(Input:)f()390 1635 y(Output:)f()275 1776 y Fu(T)-8 b(o)30 b(test)i(against)f(draft-josefsson-idn-test-v)m (ectors.h)m(tml,)j(use:)390 1916 y Fo($)47 b(java)g(-cp)g (.:/usr/share/java/libidn)o(/lib)o(idn.)o(jar)41 b(TestIDNA)46 b(-t)390 2026 y(No)h(errors)f(detected!)150 2231 y Fn(12.2.4)63 b(T)-10 b(estNFK)m(C)150 2378 y Fu(The)29 b(T)-8 b(estNFK)m(C)30 b(program)f(allo)m(ws)h(to)g(test)h(the)e(NFK)m(C)g(implemen)m(tation)i (man)m(ually)f(or)f(against)i(the)150 2488 y(NormalizationT)-8 b(est.txt)34 b(\014le)d(from)f(the)g(Unico)s(de)h(data)g(\014les.)275 2629 y(T)-8 b(o)30 b(test)i(the)e(normalization)i(man)m(ually)-8 b(,)32 b(use:)390 2769 y Fo($)47 b(java)g(-cp)g (.:/usr/share/java/libidn)o(.jar)41 b(TestNFKC)46 b()390 2879 y(Input:)e()390 2989 y(Output:)f()275 3129 y Fu(T)-8 b(o)30 b(test)i(against)f(NormalizationT)-8 b(est.txt:)390 3270 y Fo($)47 b(java)g(-cp)g(.:/usr/share/java/libidn)o (.jar)41 b(TestNFKC)390 3380 y(No)47 b(errors)f(detected!)150 3621 y Ft(12.3)68 b(P)l(ossible)46 b(Problems)150 3781 y Fu(Bew)m(are)28 b(of)f(Bugs:)39 b(This)26 b(Ja)m(v)-5 b(a)27 b(API)g(needs)f(a)h(lot)h(more)e(testing,)j(esp)s(ecially)f (with)e Fo(")p Fu(exotic)p Fo(")i Fu(c)m(haracter)150 3890 y(sets.)41 b(While)31 b(it)g(w)m(orks)g(for)f(me,)g(it)h(ma)m(y)g (not)g(w)m(ork)f(for)g(y)m(ou.)275 4031 y(Enco)s(ding)21 b(of)h(y)m(our)h(Ja)m(v)-5 b(a)23 b(sources:)36 b(If)22 b(y)m(ou)g(are)h(using)f(non-ASCI)s(I)e(c)m(haracters)k(in)e(y)m(our)g (Ja)m(v)-5 b(a)23 b(source)150 4141 y(co)s(de,)g(mak)m(e)f(sure)d(ja)m (v)-5 b(ac)22 b(compiles)g(y)m(our)e(programs)g(with)g(the)h(correct)h (enco)s(ding.)37 b(If)20 b(necessary)h(sp)s(ecify)150 4250 y(the)31 b(enco)s(ding)f(using)g(the)g(-enco)s(ding)h(parameter.) 275 4391 y(Ja)m(v)-5 b(a)24 b(Unico)s(de)g(handling:)37 b(Ja)m(v)-5 b(a)25 b(1.4)f(only)g(handles)f(16-bit)i(Unico)s(de)f(co)s (de)g(p)s(oin)m(ts)g(\(i.e.)39 b(c)m(haracters)150 4500 y(in)28 b(the)h(Basic)h(Multilingual)g(Plane\),)g(this)f(implemen)m (tation)h(therefore)f(ignores)g(all)h(references)f(to)g(so-)150 4610 y(called)36 b(Supplemen)m(tary)f(Characters)g(\(U)p Fo(+)p Fu(10000)j(to)e(U)p Fo(+)p Fu(10FFFF\).)h(Starting)f(from)f(Ja)m (v)-5 b(a)36 b(1.5,)h(these)150 4720 y(c)m(haracters)32 b(will)f(also)g(b)s(e)f(supp)s(orted)e(b)m(y)j(Ja)m(v)-5 b(a,)31 b(but)f(this)g(will)h(require)f(c)m(hanges)h(to)h(this)e (library)-8 b(.)41 b(See)150 4829 y(also)31 b(the)g(next)f(section.)150 5071 y Ft(12.4)68 b(A)45 b(Note)h(on)e(Ja)l(v)-7 b(a)46 b(and)f(Unico)t(de)150 5230 y Fu(This)22 b(library)h(uses)f(Ja)m(v)-5 b(a's)25 b(built-in)d('c)m(har')i(datat)m(yp)s(e.)40 b(Up)22 b(to)i(Ja)m(v)-5 b(a)24 b(1.4,)i(this)d(datat)m(yp)s(e)h(only)f (supp)s(orts)150 5340 y(16-bit)46 b(Unico)s(de)g(co)s(de)f(p)s(oin)m (ts,)k(also)e(called)f(the)f(Basic)i(Multilingual)g(Plane.)85 b(F)-8 b(or)46 b(this)f(reason,)p eop end %%Page: 60 65 TeXDict begin 60 64 bop 150 -116 a Fu(Chapter)30 b(12:)41 b(Ja)m(v)-5 b(a)32 b(API)2627 b(60)150 299 y(this)35 b(library)h(do)s(esn't)f(w)m(ork)h(for)f(Supplemen)m(tary)g(Characters) h(\(i.e.)57 b(c)m(haracters)37 b(from)e(U)p Fo(+)p Fu(10000)j(to)150 408 y(U)p Fo(+)p Fu(10FFFF\).)33 b(All)e(references)g(to)g(suc)m(h)f(c) m(haracters)i(are)f(silen)m(tly)g(ignored.)275 543 y(Starting)26 b(from)g(Ja)m(v)-5 b(a)28 b(1.5,)g(also)f(Supplemen)m(tary)f (Characters)h(will)f(b)s(e)g(supp)s(orted.)38 b(Ho)m(w)m(ev)m(er,)29 b(this)150 653 y(will)24 b(require)g(c)m(hanges)h(in)f(the)h(presen)m (t)f(v)m(ersion)g(of)h(the)f(library)-8 b(.)39 b(Ja)m(v)-5 b(a)25 b(1.5)g(is)f(curren)m(tly)g(in)g(b)s(eta)g(status.)275 787 y(F)-8 b(or)24 b(more)g(information)g(refer)g(to)g(the)g(do)s (cumen)m(tation)h(of)f(ja)m(v)-5 b(a.lang.Character)26 b(in)d(the)h(JDK)g(API.)p eop end %%Page: 61 66 TeXDict begin 61 65 bop 150 -116 a Fu(Chapter)30 b(13:)41 b(C#)30 b(API)2664 b(61)150 299 y Fr(13)80 b(C#)54 b(API)150 533 y Fu(The)33 b(Libidn)g(library)h(has)f(b)s(een)h(p)s(orted)f(to)i (the)f(C#)f(language.)53 b(The)34 b(p)s(ort)f(reside)h(in)f(the)i (top-lev)m(el)150 643 y Fo(csharp/)c Fu(directory)-8 b(.)49 b(Curren)m(tly)-8 b(,)34 b(no)f(further)f(do)s(cumen)m(tation)h (ab)s(out)g(the)g(implemen)m(tation)i(or)e(the)150 752 y(API)27 b(is)f(a)m(v)-5 b(ailable.)42 b(Ho)m(w)m(ev)m(er,)30 b(the)d(C#)f(p)s(ort)g(w)m(as)h(based)g(on)f(the)h(Ja)m(v)-5 b(a)28 b(p)s(ort,)f(and)f(the)h(API)f(is)h(exactly)150 862 y(the)k(same)f(as)h(in)f(the)h(Ja)m(v)-5 b(a)31 b(v)m(ersion.)41 b(The)30 b(help)g(\014les)g(for)g(the)h(Ja)m(v)-5 b(a)31 b(API)f(ma)m(y)h(th)m(us)f(b)s(e)g(useful.)p eop end %%Page: 62 67 TeXDict begin 62 66 bop 150 -116 a Fu(Chapter)30 b(14:)41 b(Ac)m(kno)m(wledgemen)m(ts)2251 b(62)150 299 y Fr(14)80 b(Ac)l(kno)l(wledgemen)l(ts)150 533 y Fu(The)35 b(pun)m(yco)s(de)f (implemen)m(tation)j(w)m(as)f(tak)m(en)g(from)f(the)h(IETF)f(IDN)h(Pun) m(yco)s(de)e(sp)s(eci\014cation,)k(b)m(y)150 643 y(Adam)f(M.)g (Costello.)63 b(The)36 b(TLD)h(co)s(de)g(w)m(as)h(con)m(tributed)f(b)m (y)g(Thomas)g(Jacob.)61 b(The)37 b(Ja)m(v)-5 b(a)38 b(imple-)150 752 y(men)m(tation)i(w)m(as)f(con)m(tributed)g(b)m(y)f(Oliv)m(er)h (Hitz.)66 b(The)38 b(C#)g(implemen)m(tation)i(w)m(as)f(con)m(tributed)g (b)m(y)150 862 y(Alexander)28 b(Gnauc)m(k.)40 b(The)27 b(Unico)s(de)h(tables)g(w)m(ere)h(pro)m(vided)e(b)m(y)g(Unico)s(de,)i (Inc.)39 b(Some)28 b(functions)f(for)150 971 y(dealing)i(with)f(Unico)s (de)g(\(see)h(nfk)m(c.c)g(and)e(toutf8.c\))j(w)m(ere)e(b)s(orro)m(w)m (ed)g(from)g(GLib,)g(do)m(wnloaded)g(from)150 1081 y Fo(http://www.gtk.org/)p Fu(.)35 b(The)30 b(man)m(ual)h(b)s(orro)m(w)m (ed)f(text)h(from)f(Libgcrypt)g(b)m(y)h(W)-8 b(erner)30 b(Ko)s(c)m(h.)275 1215 y(Inspiration)g(for)g(man)m(y)h(things)g(that,)g (consciously)h(or)e(not,)i(ha)m(v)m(e)f(gone)h(in)m(to)g(this)e(pac)m (k)-5 b(age)33 b(is)e(due)150 1325 y(to)40 b(a)f(n)m(um)m(b)s(er)f(of)h (free)g(soft)m(w)m(are)h(pac)m(k)-5 b(age)41 b(that)e(the)h(author)e (has)h(b)s(een)f(exp)s(osed)h(to.)67 b(The)38 b(author)150 1435 y(wishes)f(to)h(ac)m(kno)m(wledge)h(the)e(free)h(soft)m(w)m(are)g (comm)m(unit)m(y)g(in)f(general,)j(for)d(giving)h(an)f(example)h(on)150 1544 y(what)30 b(role)h(soft)m(w)m(are)h(dev)m(elopmen)m(t)g(can)f(pla) m(y)g(in)f(the)g(mo)s(dern)f(so)s(ciet)m(y)-8 b(.)275 1679 y(Sev)m(eral)49 b(p)s(eople)f(rep)s(orted)g(bugs,)53 b(sen)m(t)c(patc)m(hes)g(or)f(suggested)i(impro)m(v)m(emen)m(ts,)k(see) 49 b(the)g(\014le)150 1788 y(THANKS)30 b(in)g(the)g(top-lev)m(el)j (directory)e(of)f(the)h(source)g(co)s(de.)p eop end %%Page: 63 68 TeXDict begin 63 67 bop 150 -116 a Fu(Chapter)30 b(15:)41 b(History)2706 b(63)150 299 y Fr(15)80 b(History)150 533 y Fu(The)44 b(complete)i(history)f(of)f(user)g(visible)h(c)m (hanges)h(is)f(stored)f(in)h(the)f(\014le)h Fo(NEWS)f Fu(in)g(the)h(top-lev)m(el)150 643 y(directory)25 b(of)f(the)g(source)h (co)s(de)f(tree.)40 b(The)23 b(complete)j(history)e(of)h(mo)s (di\014cations)f(to)h(eac)m(h)g(\014le)g(is)f(stored)150 752 y(in)36 b(the)h(\014le)g Fo(ChangeLog)d Fu(in)j(the)g(same)g (directory)-8 b(.)60 b(This)36 b(section)i(con)m(tain)g(a)f(condensed)g (v)m(ersion)g(of)150 862 y(that)31 b(information,)g(in)f(the)h(form)e (of)i(\\milestones")h(for)e(the)h(pro)5 b(ject.)150 1021 y(Stringprep)29 b(implemen)m(tation.)630 1131 y(V)-8 b(ersion)31 b(0.0.0)h(released)f(on)g(2002-11-05.)150 1290 y(IDNA)g(and)f(Pun)m(yco)s(de)g(implemen)m(tations,)i(part)e(of)g (the)h(GNU)g(pro)5 b(ject.)630 1400 y(V)-8 b(ersion)31 b(0.1.0)h(released)f(on)g(2003-01-05.)150 1559 y(Uses)g(o\016cial)g (IDNA)g(A)m(CE)g(pre\014x)e Fo(xn--)p Fu(.)630 1669 y(V)-8 b(ersion)31 b(0.1.7)h(released)f(on)g(2003-02-12.)150 1828 y(Command)e(line)i(in)m(terface.)630 1938 y(V)-8 b(ersion)31 b(0.1.11)i(released)e(on)f(2003-02-26.)150 2097 y(GNU)h(Lib)s(c)f(add-on)g(prop)s(osed.)630 2207 y(V)-8 b(ersion)31 b(0.1.12)i(released)e(on)f(2003-03-06.)150 2366 y(In)m(terop)s(erabilit)m(y)h(testing)h(during)d(IDNConnect.)630 2476 y(V)-8 b(ersion)31 b(0.3.1)h(released)f(on)g(2003-10-02.)150 2635 y(TLD)f(restriction)i(testing.)630 2745 y(V)-8 b(ersion)31 b(0.4.0)h(released)f(on)g(2004-02-28.)150 2904 y(GNU)g(Lib)s(c)f (add-on)g(in)m(tegrated.)630 3014 y(V)-8 b(ersion)31 b(0.4.1)h(released)f(on)g(2004-03-08.)150 3173 y(Nativ)m(e)h(Ja)m(v)-5 b(a)32 b(implemen)m(tation.)630 3283 y(V)-8 b(ersion)31 b(0.4.2-0.4.9)j(released)e(b)s(et)m(w)m(een)f(2004-03-20)j(and)c (2004-06-11.)150 3442 y(PR-29)h(functions)f(for)g(\\problem)h (sequences".)630 3552 y(V)-8 b(ersion)31 b(0.5.0)h(released)f(on)g (2004-06-26.)150 3711 y(Man)m(y)g(small)g(p)s(ortabilit)m(y)g(\014xes)f (and)g(wider)g(use.)630 3821 y(V)-8 b(ersion)31 b(0.5.1)h(through)e (0.5.20,)j(released)e(b)s(et)m(w)m(een)g(2004-07-09)j(and)c (2005-10-23.)150 3980 y(Nativ)m(e)i(C#)e(implemen)m(tation.)630 4090 y(V)-8 b(ersion)31 b(0.6.0)h(released)f(on)g(2005-12-03.)150 4249 y(Windo)m(ws)f(supp)s(ort)f(through)h(cross-compilation.)630 4359 y(V)-8 b(ersion)31 b(0.6.1)h(released)f(on)g(2006-01-20.)150 4518 y(Library)f(declared)g(stable)h(b)m(y)g(releasing)g(v1.0.)630 4628 y(V)-8 b(ersion)31 b(1.0)g(released)h(on)e(2007-07-31.)p eop end %%Page: 64 69 TeXDict begin 64 68 bop 150 -116 a Fu(App)s(endix)29 b(A:)h(PR29)h(discussion)2323 b(64)150 299 y Fr(App)t(endix)52 b(A)81 b(PR29)54 b(discussion)150 500 y Fu(If)26 b(y)m(ou)h(wish)f(to)h (exp)s(erimen)m(t)g(with)f(a)h(mo)s(di\014ed)f(Unico)s(de)h(NFK)m(C)g (implemen)m(tation)h(according)f(to)h(the)150 609 y(PR29)j(prop)s (osal,)g(y)m(ou)g(ma)m(y)g(\014nd)e(the)i(follo)m(wing)h(bug)e(rep)s (ort)g(useful.)41 b(Ho)m(w)m(ev)m(er,)33 b(I)d(ha)m(v)m(e)i(not)f(v)m (eri\014ed)150 719 y(that)k(the)g(suggested)g(mo)s(di\014cations)g(are) g(correct.)54 b(F)-8 b(or)35 b(reference,)i(I'm)d(including)g(m)m(y)h (resp)s(onse)e(to)150 829 y(the)e(rep)s(ort)e(as)i(w)m(ell.)150 956 y Fo(From:)46 b(Rick)h(McGowan)f()150 1066 y(Subject:)g(Possible)f(bug)i(and)g(status)f(of)h(PR)g(29)h (change\(s\))150 1176 y(To:)f(bug-libidn@gnu.org)150 1285 y(Date:)f(Wed,)h(27)g(Oct)g(2004)g(14:49:17)e(-0700)150 1504 y(Hello.)h(On)h(behalf)f(of)i(the)e(Unicode)g(Consortium)f (editorial)h(committee,)f(I)i(would)150 1614 y(like)g(to)g(find)f(out)h (more)g(information)e(about)h(the)h(PR)g(29)g(fixes,)f(if)i(any,)e(and) 150 1724 y(functions)f(in)i(Libidn.)f(Your)h(implementation)d(was)j (listed)f(in)h(the)g(text)g(of)g(PR29)f(as)150 1833 y(needing)g (investigation,)e(so)j(I)g(am)h(following)d(up)i(on)g(several)f (implementations.)150 2052 y(The)h(UTC)g(has)g(accepted)e(the)i (proposed)f(fix)h(to)g(D2)g(as)g(outlined)f(in)h(PR29,)f(and)h(a)h(new) 150 2162 y(draft)e(of)i(UAX)e(#15)h(has)g(been)g(issued.)150 2381 y(I)g(have)g(looked)f(at)h(Libidn)f(0.5.8)h(\(today\),)e(and)i (there)g(may)g(still)f(be)h(a)h(possible)150 2491 y(bug)f(in)g (NFKC.java)e(and)i(nfkc.c.)150 2710 y(------------------------)o(----)o (----)o(---)o(----)o(----)o(---)o(----)o(----)150 2929 y(1.)g(In)g(NFKC.java,)e(this)i(line)g(in)g(canonicalOrdering\(\):)436 3148 y(if)h(\(i)f(>)g(0)h(&&)f(\(last_cc)e(==)j(0)f(||)g(last_cc)f(!=)h (cc\)\))g({)150 3367 y(should)f(perhaps)g(be)h(changed)f(to:)436 3587 y(if)i(\(i)f(>)g(0)h(&&)f(\(last_cc)e(==)j(0)f(||)g(last_cc)f(<)h (cc\)\))g({)150 3806 y(but)g(I'm)g(not)g(sure)f(of)i(the)e(sense)h(of)g (this)g(comparison.)150 4025 y(------------------------)o(----)o(----)o (---)o(----)o(----)o(---)o(----)o(----)150 4244 y(2.)g(In)g(nfkc.c,)f (function)g(_g_utf8_normalize_wc\(\))41 b(has)47 b(this)g(code:)627 4463 y(if)g(\(i)h(>)f(0)h(&&)818 4573 y(\(last_cc)e(==)h(0)g(||)h (last_cc)d(!=)j(cc\))e(&&)818 4682 y(combine)g (\(wc_buffer[last_start],)41 b(wc_buffer[i],)1248 4792 y(&wc_buffer[last_start]\))o(\))723 4902 y({)150 5121 y(This)47 b(appears)e(to)j(have)e(the)h(same)g(bug)g(as)g(the)g (current)f(Python)g(implementation)e(\(in)150 5230 y(Python)i(2.3.4\).) g(The)h(code)f(should)h(be)g(checking,)e(as)i(per)g(new)g(rule)g(D2)g (UAX)g(#15)150 5340 y(update,)f(that)g(the)h(next)g(combining)e (character)h(is)h(the)g(same)f(or)h(HIGHER)g(than)f(the)p eop end %%Page: 65 70 TeXDict begin 65 69 bop 150 -116 a Fu(App)s(endix)29 b(A:)h(PR29)h(discussion)2323 b(65)150 299 y Fo(current)46 b(one.)g(It)i(now)f(checks)f(to)h(see)g(if)g(it's)g(non-zero)e(and)i (not)g(equal.)150 518 y(The)g(above)f(line\(s\))g(should)g(perhaps)g (be)h(changed)f(to:)627 737 y(if)h(\(i)h(>)f(0)h(&&)818 847 y(\(last_cc)e(==)h(0)g(||)h(last_cc)d(<)j(cc\))f(&&)818 956 y(combine)f(\(wc_buffer[last_start],)41 b(wc_buffer[i],)1248 1066 y(&wc_buffer[last_start]\))o(\))723 1176 y({)150 1395 y(but)47 b(I'm)g(not)g(sure)f(of)i(the)e(sense)h(of)g(the)g (comparison)e(\(<)i(or)g(>)h(or)f(<=?\))g(here.)150 1614 y(In)g(the)g(text)g(of)g(PR29,)f(I)i(will)e(be)i(marking)d(Libidn)h(as) i("needs)e(change")g(and)g(adding)150 1724 y(the)h(version)f(number)g (that)g(I)i(checked.)d(If)j(any)f(further)e(change)h(is)i(made,)e (please)150 1833 y(let)h(me)g(know)g(the)g(release)e(version,)h(and)h (I'll)g(update)f(again.)150 2052 y(Regards,)532 2162 y(Rick)g(McGowan)150 2381 y(From:)g(Simon)h(Josefsson)e ()150 2491 y(Subject:)h(Re:)g(Possible)g(bug)h(and)g (status)f(of)h(PR)g(29)g(change\(s\))150 2600 y(To:)g(Rick)g(McGowan)e ()150 2710 y(Cc:)i(bug-libidn@gnu.org)150 2819 y(Date:)f(Thu,)h(28)g(Oct)g(2004)g(09:47:47)e(+0200)150 3039 y(Rick)i(McGowan)e()e(writes:)150 3258 y(>)k(Hello.)g(On)g(behalf)f(of)h(the)g(Unicode)f(Consortium)f (editorial)g(committee,)g(I)i(would)150 3367 y(>)g(like)g(to)g(find)g (out)g(more)f(information)f(about)i(the)f(PR)i(29)f(fixes,)f(if)h(any,) g(and)150 3477 y(>)g(functions)f(in)h(Libidn.)f(Your)g(implementation)e (was)j(listed)f(in)h(the)g(text)g(of)g(PR29)g(as)150 3587 y(>)g(needing)f(investigation,)e(so)j(I)h(am)f(following)e(up)i (on)h(several)d(implementations.)150 3696 y(>)150 3806 y(>)i(The)g(UTC)g(has)g(accepted)f(the)h(proposed)e(fix)i(to)g(D2)g(as) h(outlined)d(in)i(PR29,)g(and)g(a)g(new)150 3915 y(>)g(draft)g(of)g (UAX)g(#15)g(has)g(been)f(issued.)150 4025 y(>)150 4134 y(>)h(I)h(have)f(looked)f(at)h(Libidn)f(0.5.8)g(\(today\),)g(and)h (there)f(may)h(still)f(be)i(a)f(possible)150 4244 y(>)g(bug)g(in)h (NFKC.java)d(and)i(nfkc.c.)150 4463 y(Hello)f(Rick.)150 4682 y(I)h(believe)f(the)h(current)f(behavior)g(is)h(intentional.)92 b(Libidn)46 b(do)h(not)g(aim)g(to)150 4792 y(implement)e (latest-and-greatest)e(NFKC,)j(it)h(aim)g(to)g(implement)f(the)h(NFKC) 150 4902 y(functionality)d(required)i(for)h(StringPrep)e(and)i(IDN.)94 b(As)47 b(you)g(may)g(know,)150 5011 y(StringPrep/IDN)d(reference)h (Unicode)h(3.2.0,)g(and)h(explicitly)e(says)i(any)g(later)150 5121 y(changes)f(\(which)g(I)h(consider)f(PR29)h(as\))f(do)i(not)f (apply.)150 5340 y(In)g(fact,)g(I)g(believe)f(that)g(would)h(I)g (incorporate)e(the)i(changes)f(suggested)f(in)p eop end %%Page: 66 71 TeXDict begin 66 70 bop 150 -116 a Fu(App)s(endix)29 b(A:)h(PR29)h(discussion)2323 b(66)150 299 y Fo(PR29,)46 b(I)i(would)e(in)h(fact)g(be)g(violating)e(the)i(IDN)g(specifications.) 150 518 y(Thanks)f(for)h(looking)f(into)g(the)h(code)g(and)g(finding)f (the)h(place)f(where)g(the)150 628 y(change)g(could)g(be)i(made.)94 b(I'll)46 b(see)h(if)g(I)h(can)f(mention)f(this)g(in)h(the)g(manual)150 737 y(somewhere,)e(for)i(technically)e(interested)g(readers.)150 956 y(Regards,)150 1066 y(Simon)p eop end %%Page: 67 72 TeXDict begin 67 71 bop 150 -116 a Fu(App)s(endix)29 b(B:)i(On)e(Lab)s(el)h(Separators)2150 b(67)150 299 y Fr(App)t(endix)52 b(B)81 b(On)54 b(Lab)t(el)f(Separators)150 533 y Fu(Some)43 b(strings)h(con)m(tains)g(c)m(haracters)h(whose)e(NFK) m(C)h(normalized)g(form)f(con)m(tain)h(the)g(ASCI)s(I)e(dot)150 643 y(\(0x2E,)30 b(\\."\).)42 b(Examples)28 b(of)h(these)g(c)m (haracters)h(are)f(U)p Fo(+)p Fu(2024)i(\(ONE)e(DOT)f(LEADER\))h(and)f (U)p Fo(+)p Fu(248C)150 752 y(\(DIGIT)37 b(FIVE)g(FULL)g(STOP\).)g(The) f(strings)h(ha)m(v)m(e)h(the)f(in)m(teresting)i(prop)s(ert)m(y)d(that)h (their)g(IDNA)150 862 y(T)-8 b(oASCI)s(I)29 b(output)h(will)h(con)m (tain)h(em)m(b)s(edded)d(dots.)41 b(F)-8 b(or)31 b(example:)390 996 y Fo(ToASCII)46 b(\(hi)h(U+248C)f(com\))g(=)i(hi5.com)390 1106 y(ToASCII)e(\(r\177)-48 b(aksm\177)g(org\027)g(as)45 b(U+2024)h(com\))g(=)i(xn--rksmrgs.com-l8as9u)275 1240 y Fu(This)36 b(demonstrate)i(the)g(t)m(w)m(o)h(general)g(cases:)56 b(The)37 b(\014rst)g(where)g(the)g(ASCI)s(I)f(dot)i(is)g(part)f(of)h (an)150 1350 y(output)c(that)h(do)g(not)g(b)s(egin)f(with)g(the)h(IDN)g (pre\014x)f Fo(xn--)p Fu(.)52 b(The)34 b(second)h(example)g(illustrate) h(when)150 1460 y(the)31 b(dot)f(is)h(part)f(of)g(IDN)h(pre\014xed)e (with)h Fo(xn--)p Fu(.)275 1594 y(The)e(input)h(strings)g(are,)h(from)f (the)g(DNS)h(p)s(oin)m(t)f(of)h(view,)g(a)f(single)h(lab)s(el.)41 b(The)29 b(IDNA)h(algorithm)150 1704 y(translate)39 b(one)e(lab)s(el)h (at)g(a)g(time.)63 b(Th)m(us,)38 b(the)g(output)f(is)h(exp)s(ected)g (to)g(b)s(e)f(only)g(one)h(lab)s(el.)62 b(What)150 1813 y(is)36 b(imp)s(ortan)m(t)g(here)f(is)h(to)g(mak)m(e)h(sure)e(the)h (DNS)f(resolv)m(er)i(receiv)m(es)h(the)d(correct)i(query)-8 b(.)57 b(The)35 b(DNS)150 1923 y(proto)s(col)43 b(do)s(es)f(not)h(use)f (the)g(dot)h(to)g(delimit)g(lab)s(els)g(on)f(the)g(wire,)k(rather)c(it) h(uses)f(length-v)-5 b(alue)150 2032 y(pairs.)38 b(Th)m(us)24 b(the)h(correct)g(query)f(w)m(ould)g(b)s(e)g(for)h Fo({7}hi5.com)c Fu(and)j Fo({22}xn--rksmrgs.com-l8as9)o(u)150 2142 y Fu(resp)s(ectiv)m(ely)-8 b(.)275 2276 y(Some)29 b(implemen)m(tations) 1169 2243 y Fe(1)1237 2276 y Fu(ha)m(v)m(e)i(decided)e(that)h(these)g (inputs)e(strings)h(are)h(p)s(oten)m(tially)h(confusing)150 2386 y(for)25 b(the)f(user.)39 b(The)24 b(string)h Fo(hi)k(U+248C)g (com)24 b Fu(lo)s(oks)h(lik)m(e)h Fo(hi5.com)d Fu(on)i(systems)f(that)i (supp)s(ort)d(Unico)s(de)150 2496 y(prop)s(erly)-8 b(.)40 b(These)30 b(implemen)m(tations)i(do)e(not)h(follo)m(w)g(RF)m(C)g (3490.)43 b(They)29 b(yield:)390 2630 y Fo(ToASCII)46 b(\(hi)h(U+248C)f(com\))g(=)i(hi5.com)390 2740 y(ToASCII)e(\(r\177)-48 b(aksm\177)g(org\027)g(as)45 b(U+2024)h(com\))g(=)i (xn--rksmrgs-5wao1o.com)275 2874 y Fu(The)30 b(DNS)g(query)g(they)h(p)s (erform)e(are)i Fo({3}hi5{3}com)c Fu(and)j Fo({18}xn--rksmrgs-5wao1o{)o (3}co)o(m)150 2984 y Fu(resp)s(ectiv)m(ely)-8 b(.)45 b(Arguably)-8 b(,)31 b(this)g(leads)h(to)g(a)f(b)s(etter)g(user)f(exp)s (erience,)i(and)f(suggests)g(that)h(the)f(IDNA)150 3093 y(sp)s(eci\014cation)g(is)g(sub-optimal)f(in)g(this)g(area.)150 3326 y Ft(B.1)67 b(Recommended)46 b(W)-11 b(ork)k(around)150 3485 y Fu(It)29 b(has)g(b)s(een)g(suggested)h(to)g(normalize)g(the)g (en)m(tire)g(input)e(string)h(using)g(NFK)m(C)g(b)s(efore)g(passing)g (it)h(to)150 3595 y(IDNA)37 b(T)-8 b(oASCI)s(I.)35 b(Y)-8 b(ou)37 b(ma)m(y)g(use)f Fo(stringprep_utf8_nfkc_norm)o(ali)o(ze)30 b Fu(or)36 b Fo(stringprep_ucs4_)150 3704 y(nfkc_normalize)p Fu(.)61 b(This)37 b(app)s(ears)h(to)h(lead)g(to)g(similar)g(b)s(eha)m (viour)f(as)g(IE/Firefo)m(x,)k(whic)m(h)c(w)m(ould)150 3814 y(a)m(v)m(oid)32 b(the)e(problem,)h(but)e(this)h(needs)g(to)i(b)s (e)d(con\014rmed.)40 b(F)-8 b(eel)32 b(free)f(to)g(discuss)e(the)i (issue)f(with)g(us.)275 3949 y(Alternativ)m(e)f(w)m(ork)-5 b(arounds)26 b(are)h(b)s(eing)f(considered.)40 b(Ev)m(en)m(tually)28 b(Libidn)e(ma)m(y)i(implemen)m(t)f(a)g(new)150 4058 y(\015ag)42 b(to)g(the)g Fo(idna_*)e Fu(functions)i(that)g(implemen)m(ts)g(a)g (recommended)f(w)m(a)m(y)i(to)g(w)m(ork)e(around)g(this)150 4168 y(problem.)p 150 5241 1200 4 v 199 5308 a Fe(1)275 5340 y Fd(Notably)25 b(Microsoft's)j(In)n(ternet)d(Explorer)h(and)f (Mozilla's)k(Firefo)n(x,)e(but)e(not)g(Apple's)h(Safari.)p eop end %%Page: 68 73 TeXDict begin 68 72 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(68)150 299 y Fr(App)t(endix)52 b(C)81 b(Cop)l(ying)51 b(Information)150 608 y Ft(C.1)68 b(GNU)45 b(F)-11 b(ree)45 b(Do)t(cumen)l(tation)h(License)1359 767 y Fu(V)-8 b(ersion)31 b(1.3,)g(3)g(No)m(v)m(em)m(b)s(er)h(2008)390 898 y(Cop)m(yrigh)m(t)842 895 y(c)817 898 y Fs(\015)e Fu(2000,)j(2001,)f(2002,)g(2007,)h(2008)f(F)-8 b(ree)31 b(Soft)m(w)m(are)h(F)-8 b(oundation,)31 b(Inc.)390 1007 y Fo(http://fsf.org/)390 1227 y Fu(Ev)m(ery)m(one)g(is)g(p)s(ermitted)f (to)h(cop)m(y)g(and)f(distribute)g(v)m(erbatim)h(copies)390 1336 y(of)g(this)f(license)h(do)s(cumen)m(t,)g(but)e(c)m(hanging)j(it)f (is)f(not)h(allo)m(w)m(ed.)199 1467 y(0.)61 b(PREAMBLE)330 1597 y(The)37 b(purp)s(ose)e(of)i(this)g(License)h(is)f(to)h(mak)m(e)g (a)g(man)m(ual,)h(textb)s(o)s(ok,)h(or)d(other)g(functional)h(and)330 1707 y(useful)29 b(do)s(cumen)m(t)h Fk(free)36 b Fu(in)29 b(the)i(sense)f(of)g(freedom:)41 b(to)31 b(assure)e(ev)m(ery)m(one)j (the)e(e\013ectiv)m(e)j(freedom)330 1817 y(to)f(cop)m(y)g(and)f (redistribute)g(it,)h(with)g(or)f(without)g(mo)s(difying)g(it,)i (either)f(commercially)h(or)e(non-)330 1926 y(commercially)-8 b(.)56 b(Secondarily)-8 b(,)36 b(this)f(License)g(preserv)m(es)g(for)f (the)h(author)f(and)g(publisher)f(a)i(w)m(a)m(y)330 2036 y(to)i(get)g(credit)g(for)f(their)g(w)m(ork,)i(while)e(not)g(b)s(eing)g (considered)g(resp)s(onsible)f(for)h(mo)s(di\014cations)330 2145 y(made)30 b(b)m(y)h(others.)330 2276 y(This)22 b(License)i(is)f(a) h(kind)e(of)i(\\cop)m(yleft",)j(whic)m(h)c(means)g(that)h(deriv)-5 b(ativ)m(e)24 b(w)m(orks)f(of)h(the)f(do)s(cumen)m(t)330 2385 y(m)m(ust)34 b(themselv)m(es)h(b)s(e)e(free)h(in)g(the)g(same)g (sense.)51 b(It)34 b(complemen)m(ts)h(the)f(GNU)g(General)h(Public)330 2495 y(License,)c(whic)m(h)f(is)h(a)f(cop)m(yleft)i(license)g(designed) e(for)g(free)h(soft)m(w)m(are.)330 2626 y(W)-8 b(e)31 b(ha)m(v)m(e)f(designed)g(this)f(License)h(in)f(order)g(to)i(use)e(it)h (for)f(man)m(uals)h(for)f(free)h(soft)m(w)m(are,)h(b)s(ecause)330 2735 y(free)42 b(soft)m(w)m(are)i(needs)e(free)g(do)s(cumen)m(tation:) 65 b(a)42 b(free)h(program)f(should)f(come)i(with)f(man)m(uals)330 2845 y(pro)m(viding)29 b(the)g(same)g(freedoms)f(that)i(the)f(soft)m(w) m(are)h(do)s(es.)40 b(But)29 b(this)f(License)i(is)f(not)g(limited)g (to)330 2954 y(soft)m(w)m(are)j(man)m(uals;)f(it)g(can)g(b)s(e)f(used)g (for)g(an)m(y)h(textual)h(w)m(ork,)f(regardless)g(of)g(sub)5 b(ject)30 b(matter)i(or)330 3064 y(whether)f(it)h(is)f(published)f(as)i (a)f(prin)m(ted)g(b)s(o)s(ok.)44 b(W)-8 b(e)32 b(recommend)f(this)h (License)g(principally)f(for)330 3174 y(w)m(orks)f(whose)h(purp)s(ose)d (is)j(instruction)f(or)g(reference.)199 3304 y(1.)61 b(APPLICABILITY)29 b(AND)j(DEFINITIONS)330 3435 y(This)39 b(License)i(applies)f(to)g(an)m(y)h(man)m(ual)f(or)g(other)g(w)m(ork,)i (in)e(an)m(y)g(medium,)i(that)e(con)m(tains)i(a)330 3544 y(notice)h(placed)f(b)m(y)f(the)h(cop)m(yrigh)m(t)h(holder)e(sa)m(ying) h(it)g(can)g(b)s(e)f(distributed)f(under)g(the)i(terms)330 3654 y(of)c(this)f(License.)62 b(Suc)m(h)37 b(a)h(notice)h(gran)m(ts)f (a)g(w)m(orld-wide,)h(ro)m(y)m(alt)m(y-free)i(license,)f(unlimited)d (in)330 3764 y(duration,)49 b(to)d(use)f(that)g(w)m(ork)h(under)d(the)j (conditions)f(stated)h(herein.)85 b(The)45 b(\\Do)s(cumen)m(t",)330 3873 y(b)s(elo)m(w,)29 b(refers)f(to)h(an)m(y)g(suc)m(h)f(man)m(ual)h (or)f(w)m(ork.)40 b(An)m(y)29 b(mem)m(b)s(er)e(of)i(the)f(public)g(is)g (a)h(licensee,)i(and)330 3983 y(is)25 b(addressed)f(as)h(\\y)m(ou".)40 b(Y)-8 b(ou)26 b(accept)g(the)f(license)h(if)f(y)m(ou)h(cop)m(y)-8 b(,)27 b(mo)s(dify)d(or)h(distribute)g(the)g(w)m(ork)330 4092 y(in)30 b(a)h(w)m(a)m(y)g(requiring)f(p)s(ermission)f(under)g(cop) m(yrigh)m(t)j(la)m(w.)330 4223 y(A)i(\\Mo)s(di\014ed)f(V)-8 b(ersion")35 b(of)f(the)g(Do)s(cumen)m(t)g(means)g(an)m(y)g(w)m(ork)f (con)m(taining)j(the)e(Do)s(cumen)m(t)g(or)330 4333 y(a)k(p)s(ortion)f (of)h(it,)i(either)e(copied)g(v)m(erbatim,)i(or)d(with)h(mo)s (di\014cations)f(and/or)h(translated)g(in)m(to)330 4442 y(another)31 b(language.)330 4573 y(A)26 b(\\Secondary)g(Section")h(is) f(a)h(named)e(app)s(endix)f(or)i(a)h(fron)m(t-matter)g(section)g(of)f (the)g(Do)s(cumen)m(t)330 4682 y(that)c(deals)g(exclusiv)m(ely)h(with)e (the)g(relationship)h(of)f(the)h(publishers)d(or)i(authors)g(of)h(the)f (Do)s(cumen)m(t)330 4792 y(to)38 b(the)f(Do)s(cumen)m(t's)i(o)m(v)m (erall)g(sub)5 b(ject)37 b(\(or)h(to)g(related)g(matters\))g(and)f(con) m(tains)h(nothing)f(that)330 4902 y(could)j(fall)h(directly)g(within)f (that)h(o)m(v)m(erall)i(sub)5 b(ject.)70 b(\(Th)m(us,)42 b(if)e(the)h(Do)s(cumen)m(t)g(is)f(in)g(part)h(a)330 5011 y(textb)s(o)s(ok)24 b(of)g(mathematics,)j(a)d(Secondary)f(Section) h(ma)m(y)g(not)g(explain)g(an)m(y)g(mathematics.\))40 b(The)330 5121 y(relationship)28 b(could)f(b)s(e)g(a)g(matter)i(of)e (historical)i(connection)f(with)f(the)h(sub)5 b(ject)27 b(or)g(with)g(related)330 5230 y(matters,)38 b(or)d(of)h(legal,)i (commercial,)h(philosophical,)f(ethical)f(or)e(p)s(olitical)i(p)s (osition)f(regarding)330 5340 y(them.)p eop end %%Page: 69 74 TeXDict begin 69 73 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(69)330 299 y(The)25 b(\\In)m(v)-5 b(arian)m(t)27 b(Sections")g(are)f(certain)g(Secondary)g (Sections)g(whose)f(titles)i(are)f(designated,)i(as)330 408 y(b)s(eing)e(those)h(of)g(In)m(v)-5 b(arian)m(t)27 b(Sections,)i(in)d(the)h(notice)h(that)f(sa)m(ys)g(that)g(the)g(Do)s (cumen)m(t)g(is)g(released)330 518 y(under)f(this)i(License.)40 b(If)27 b(a)h(section)h(do)s(es)f(not)f(\014t)h(the)g(ab)s(o)m(v)m(e)h (de\014nition)e(of)h(Secondary)f(then)h(it)g(is)330 628 y(not)k(allo)m(w)m(ed)i(to)e(b)s(e)g(designated)g(as)g(In)m(v)-5 b(arian)m(t.)46 b(The)31 b(Do)s(cumen)m(t)i(ma)m(y)f(con)m(tain)i(zero) e(In)m(v)-5 b(arian)m(t)330 737 y(Sections.)39 b(If)25 b(the)f(Do)s(cumen)m(t)i(do)s(es)e(not)h(iden)m(tify)g(an)m(y)g(In)m(v) -5 b(arian)m(t)25 b(Sections)h(then)e(there)h(are)g(none.)330 878 y(The)36 b(\\Co)m(v)m(er)i(T)-8 b(exts")38 b(are)f(certain)g(short) g(passages)g(of)g(text)g(that)h(are)f(listed,)i(as)d(F)-8 b(ron)m(t-Co)m(v)m(er)330 988 y(T)g(exts)26 b(or)f(Bac)m(k-Co)m(v)m(er) j(T)-8 b(exts,)27 b(in)d(the)h(notice)i(that)e(sa)m(ys)h(that)g(the)f (Do)s(cumen)m(t)h(is)f(released)g(under)330 1097 y(this)h(License.)40 b(A)25 b(F)-8 b(ron)m(t-Co)m(v)m(er)29 b(T)-8 b(ext)26 b(ma)m(y)h(b)s(e)e(at)i(most)f(5)g(w)m(ords,)g(and)g(a)g(Bac)m(k-Co)m (v)m(er)j(T)-8 b(ext)26 b(ma)m(y)330 1207 y(b)s(e)k(at)h(most)g(25)g(w) m(ords.)330 1348 y(A)36 b(\\T)-8 b(ransparen)m(t")36 b(cop)m(y)g(of)g(the)f(Do)s(cumen)m(t)h(means)g(a)g(mac)m (hine-readable)h(cop)m(y)-8 b(,)38 b(represen)m(ted)330 1457 y(in)d(a)h(format)g(whose)g(sp)s(eci\014cation)g(is)g(a)m(v)-5 b(ailable)38 b(to)f(the)f(general)g(public,)h(that)f(is)g(suitable)g (for)330 1567 y(revising)c(the)g(do)s(cumen)m(t)f(straigh)m(tforw)m (ardly)i(with)e(generic)i(text)g(editors)f(or)f(\(for)h(images)h(com-) 330 1677 y(p)s(osed)23 b(of)h(pixels\))g(generic)h(pain)m(t)f(programs) g(or)f(\(for)h(dra)m(wings\))g(some)g(widely)g(a)m(v)-5 b(ailable)26 b(dra)m(wing)330 1786 y(editor,)k(and)f(that)g(is)g (suitable)h(for)f(input)f(to)i(text)g(formatters)f(or)g(for)g (automatic)i(translation)f(to)330 1896 y(a)d(v)-5 b(ariet)m(y)28 b(of)f(formats)g(suitable)h(for)e(input)g(to)i(text)g(formatters.)40 b(A)27 b(cop)m(y)g(made)g(in)g(an)g(otherwise)330 2005 y(T)-8 b(ransparen)m(t)37 b(\014le)h(format)g(whose)f(markup,)i(or)e (absence)h(of)g(markup,)g(has)g(b)s(een)f(arranged)g(to)330 2115 y(th)m(w)m(art)27 b(or)g(discourage)g(subsequen)m(t)f(mo)s (di\014cation)h(b)m(y)g(readers)f(is)g(not)h(T)-8 b(ransparen)m(t.)39 b(An)27 b(image)330 2225 y(format)35 b(is)f(not)h(T)-8 b(ransparen)m(t)34 b(if)g(used)g(for)g(an)m(y)g(substan)m(tial)h(amoun) m(t)g(of)g(text.)53 b(A)35 b(cop)m(y)g(that)g(is)330 2334 y(not)c(\\T)-8 b(ransparen)m(t")31 b(is)f(called)i(\\Opaque".)330 2475 y(Examples)49 b(of)f(suitable)i(formats)f(for)f(T)-8 b(ransparen)m(t)48 b(copies)i(include)e(plain)h(ASCI)s(I)e(without)330 2585 y(markup,)33 b(T)-8 b(exinfo)33 b(input)f(format,)i(LaT)1745 2604 y(E)1795 2585 y(X)f(input)f(format,)j(SGML)d(or)h(XML)h(using)e(a) h(publicly)330 2694 y(a)m(v)-5 b(ailable)36 b(DTD,)e(and)f (standard-conforming)h(simple)f(HTML,)h(P)m(ostScript)g(or)g(PDF)g (designed)330 2804 y(for)h(h)m(uman)g(mo)s(di\014cation.)57 b(Examples)35 b(of)h(transparen)m(t)f(image)i(formats)f(include)f(PNG,) h(X)m(CF)330 2913 y(and)h(JPG.)62 b(Opaque)36 b(formats)i(include)f (proprietary)g(formats)h(that)g(can)g(b)s(e)e(read)i(and)f(edited)330 3023 y(only)c(b)m(y)g(proprietary)f(w)m(ord)h(pro)s(cessors,)g(SGML)g (or)g(XML)g(for)g(whic)m(h)g(the)g(DTD)g(and/or)g(pro-)330 3133 y(cessing)26 b(to)s(ols)g(are)g(not)f(generally)i(a)m(v)-5 b(ailable,)29 b(and)24 b(the)i(mac)m(hine-generated)h(HTML,)e(P)m (ostScript)330 3242 y(or)30 b(PDF)h(pro)s(duced)e(b)m(y)h(some)h(w)m (ord)f(pro)s(cessors)g(for)g(output)g(purp)s(oses)f(only)-8 b(.)330 3383 y(The)34 b(\\Title)h(P)m(age")i(means,)e(for)f(a)h(prin)m (ted)f(b)s(o)s(ok,)h(the)f(title)i(page)f(itself,)h(plus)e(suc)m(h)f (follo)m(wing)330 3493 y(pages)28 b(as)g(are)g(needed)g(to)g(hold,)g (legibly)-8 b(,)30 b(the)e(material)h(this)e(License)i(requires)e(to)h (app)s(ear)f(in)h(the)330 3602 y(title)g(page.)40 b(F)-8 b(or)28 b(w)m(orks)e(in)g(formats)h(whic)m(h)g(do)f(not)h(ha)m(v)m(e)h (an)m(y)e(title)j(page)e(as)g(suc)m(h,)g(\\Title)h(P)m(age")330 3712 y(means)j(the)f(text)i(near)e(the)h(most)g(prominen)m(t)g(app)s (earance)f(of)h(the)g(w)m(ork's)g(title,)h(preceding)f(the)330 3821 y(b)s(eginning)f(of)g(the)h(b)s(o)s(dy)e(of)h(the)h(text.)330 3962 y(The)j(\\publisher")g(means)h(an)m(y)f(p)s(erson)g(or)h(en)m(tit) m(y)h(that)f(distributes)f(copies)i(of)e(the)h(Do)s(cumen)m(t)330 4072 y(to)c(the)g(public.)330 4213 y(A)f(section)h(\\En)m(titled)g (XYZ")f(means)f(a)h(named)g(subunit)e(of)h(the)h(Do)s(cumen)m(t)h (whose)e(title)i(either)330 4322 y(is)d(precisely)g(XYZ)g(or)f(con)m (tains)i(XYZ)f(in)f(paren)m(theses)i(follo)m(wing)g(text)g(that)f (translates)h(XYZ)e(in)330 4432 y(another)e(language.)40 b(\(Here)26 b(XYZ)f(stands)f(for)h(a)g(sp)s(eci\014c)g(section)h(name)f (men)m(tioned)h(b)s(elo)m(w,)g(suc)m(h)330 4542 y(as)i(\\Ac)m(kno)m (wledgemen)m(ts",)33 b(\\Dedications",)e(\\Endorsemen)m(ts",)e(or)f (\\History".\))42 b(T)-8 b(o)29 b(\\Preserv)m(e)330 4651 y(the)34 b(Title")h(of)e(suc)m(h)h(a)g(section)g(when)f(y)m(ou)h(mo)s (dify)e(the)i(Do)s(cumen)m(t)h(means)e(that)h(it)g(remains)g(a)330 4761 y(section)e(\\En)m(titled)f(XYZ")g(according)g(to)g(this)g (de\014nition.)330 4902 y(The)c(Do)s(cumen)m(t)i(ma)m(y)f(include)f(W) -8 b(arran)m(t)m(y)30 b(Disclaimers)f(next)f(to)g(the)g(notice)h(whic)m (h)e(states)i(that)330 5011 y(this)34 b(License)g(applies)g(to)h(the)f (Do)s(cumen)m(t.)52 b(These)33 b(W)-8 b(arran)m(t)m(y)36 b(Disclaimers)f(are)g(considered)e(to)330 5121 y(b)s(e)k(included)g(b)m (y)g(reference)h(in)g(this)f(License,)j(but)d(only)h(as)g(regards)f (disclaiming)i(w)m(arran)m(ties:)330 5230 y(an)m(y)e(other)g (implication)i(that)e(these)g(W)-8 b(arran)m(t)m(y)39 b(Disclaimers)f(ma)m(y)g(ha)m(v)m(e)g(is)f(v)m(oid)g(and)f(has)h(no)330 5340 y(e\013ect)32 b(on)e(the)h(meaning)f(of)h(this)f(License.)p eop end %%Page: 70 75 TeXDict begin 70 74 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(70)199 299 y(2.)61 b(VERBA)-8 b(TIM)31 b(COPYING)330 445 y(Y)-8 b(ou)39 b(ma)m(y)f(cop)m(y)h(and)e(distribute)h(the)g(Do)s(cumen)m(t)h(in)f(an) m(y)g(medium,)h(either)g(commercially)h(or)330 555 y(noncommercially)-8 b(,)48 b(pro)m(vided)42 b(that)h(this)f(License,)47 b(the)42 b(cop)m(yrigh)m(t)i(notices,)j(and)42 b(the)h(license)330 664 y(notice)37 b(sa)m(ying)g(this)e(License)i(applies)e(to)i(the)f(Do) s(cumen)m(t)g(are)g(repro)s(duced)e(in)i(all)g(copies,)j(and)330 774 y(that)27 b(y)m(ou)g(add)f(no)h(other)f(conditions)h(whatso)s(ev)m (er)h(to)f(those)g(of)g(this)f(License.)40 b(Y)-8 b(ou)27 b(ma)m(y)g(not)g(use)330 883 y(tec)m(hnical)35 b(measures)d(to)i (obstruct)f(or)g(con)m(trol)h(the)f(reading)g(or)g(further)e(cop)m (ying)j(of)f(the)g(copies)330 993 y(y)m(ou)25 b(mak)m(e)g(or)g (distribute.)38 b(Ho)m(w)m(ev)m(er,)28 b(y)m(ou)d(ma)m(y)g(accept)h (comp)s(ensation)f(in)f(exc)m(hange)j(for)d(copies.)330 1103 y(If)32 b(y)m(ou)g(distribute)g(a)h(large)g(enough)f(n)m(um)m(b)s (er)f(of)h(copies)h(y)m(ou)f(m)m(ust)h(also)g(follo)m(w)g(the)f (conditions)330 1212 y(in)e(section)i(3.)330 1358 y(Y)-8 b(ou)21 b(ma)m(y)h(also)f(lend)g(copies,)i(under)d(the)h(same)g (conditions)g(stated)h(ab)s(o)m(v)m(e,)i(and)c(y)m(ou)h(ma)m(y)g (publicly)330 1468 y(displa)m(y)31 b(copies.)199 1614 y(3.)61 b(COPYING)30 b(IN)g(QUANTITY)330 1760 y(If)25 b(y)m(ou)g(publish)f(prin)m(ted)g(copies)i(\(or)g(copies)g(in)f(media)g (that)h(commonly)g(ha)m(v)m(e)g(prin)m(ted)f(co)m(v)m(ers\))i(of)330 1870 y(the)32 b(Do)s(cumen)m(t,)h(n)m(um)m(b)s(ering)e(more)h(than)f (100,)j(and)d(the)h(Do)s(cumen)m(t's)h(license)f(notice)h(requires)330 1979 y(Co)m(v)m(er)i(T)-8 b(exts,)36 b(y)m(ou)f(m)m(ust)f(enclose)i (the)e(copies)h(in)f(co)m(v)m(ers)i(that)f(carry)-8 b(,)36 b(clearly)f(and)f(legibly)-8 b(,)37 b(all)330 2089 y(these)j(Co)m(v)m (er)g(T)-8 b(exts:)59 b(F)-8 b(ron)m(t-Co)m(v)m(er)41 b(T)-8 b(exts)40 b(on)f(the)g(fron)m(t)g(co)m(v)m(er,)44 b(and)38 b(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts)40 b(on)330 2198 y(the)29 b(bac)m(k)h(co)m(v)m(er.)42 b(Both)30 b(co)m(v)m(ers)h(m) m(ust)e(also)h(clearly)g(and)f(legibly)h(iden)m(tify)f(y)m(ou)h(as)f (the)h(publisher)330 2308 y(of)k(these)h(copies.)53 b(The)34 b(fron)m(t)h(co)m(v)m(er)h(m)m(ust)e(presen)m(t)g(the)h(full)f(title)i (with)d(all)j(w)m(ords)d(of)i(the)f(title)330 2418 y(equally)e (prominen)m(t)e(and)g(visible.)43 b(Y)-8 b(ou)31 b(ma)m(y)g(add)g (other)g(material)h(on)f(the)g(co)m(v)m(ers)h(in)e(addition.)330 2527 y(Cop)m(ying)36 b(with)g(c)m(hanges)h(limited)g(to)g(the)g(co)m(v) m(ers,)i(as)d(long)h(as)g(they)f(preserv)m(e)g(the)h(title)g(of)g(the) 330 2637 y(Do)s(cumen)m(t)h(and)e(satisfy)i(these)f(conditions,)j(can)d (b)s(e)g(treated)h(as)f(v)m(erbatim)h(cop)m(ying)g(in)f(other)330 2746 y(resp)s(ects.)330 2892 y(If)32 b(the)h(required)f(texts)i(for)e (either)h(co)m(v)m(er)i(are)e(to)s(o)g(v)m(oluminous)g(to)g(\014t)g (legibly)-8 b(,)35 b(y)m(ou)e(should)f(put)330 3002 y(the)h(\014rst)f (ones)h(listed)g(\(as)h(man)m(y)f(as)g(\014t)g(reasonably\))g(on)g(the) g(actual)h(co)m(v)m(er,)h(and)e(con)m(tin)m(ue)h(the)330 3112 y(rest)d(on)m(to)g(adjacen)m(t)h(pages.)330 3258 y(If)27 b(y)m(ou)g(publish)e(or)i(distribute)g(Opaque)f(copies)i(of)f (the)h(Do)s(cumen)m(t)f(n)m(um)m(b)s(ering)f(more)i(than)e(100,)330 3367 y(y)m(ou)i(m)m(ust)g(either)h(include)e(a)i(mac)m(hine-readable)g (T)-8 b(ransparen)m(t)28 b(cop)m(y)h(along)g(with)e(eac)m(h)i(Opaque) 330 3477 y(cop)m(y)-8 b(,)38 b(or)d(state)h(in)f(or)g(with)g(eac)m(h)h (Opaque)e(cop)m(y)i(a)g(computer-net)m(w)m(ork)g(lo)s(cation)h(from)d (whic)m(h)330 3587 y(the)24 b(general)i(net)m(w)m(ork-using)f(public)e (has)h(access)i(to)f(do)m(wnload)f(using)g(public-standard)f(net)m(w)m (ork)330 3696 y(proto)s(cols)40 b(a)f(complete)h(T)-8 b(ransparen)m(t)39 b(cop)m(y)g(of)g(the)h(Do)s(cumen)m(t,)i(free)d(of)g (added)f(material.)67 b(If)330 3806 y(y)m(ou)39 b(use)g(the)g(latter)h (option,)h(y)m(ou)f(m)m(ust)e(tak)m(e)j(reasonably)e(pruden)m(t)e (steps,)k(when)d(y)m(ou)h(b)s(egin)330 3915 y(distribution)f(of)g (Opaque)g(copies)h(in)e(quan)m(tit)m(y)-8 b(,)43 b(to)38 b(ensure)g(that)h(this)f(T)-8 b(ransparen)m(t)38 b(cop)m(y)h(will)330 4025 y(remain)30 b(th)m(us)g(accessible)i(at)f(the)f(stated)h(lo)s (cation)h(un)m(til)e(at)h(least)h(one)e(y)m(ear)h(after)g(the)f(last)h (time)330 4134 y(y)m(ou)37 b(distribute)f(an)h(Opaque)f(cop)m(y)i (\(directly)g(or)e(through)g(y)m(our)h(agen)m(ts)h(or)f(retailers\))h (of)f(that)330 4244 y(edition)31 b(to)g(the)g(public.)330 4390 y(It)k(is)f(requested,)i(but)e(not)h(required,)g(that)g(y)m(ou)g (con)m(tact)h(the)f(authors)f(of)h(the)g(Do)s(cumen)m(t)g(w)m(ell)330 4500 y(b)s(efore)28 b(redistributing)g(an)m(y)h(large)h(n)m(um)m(b)s (er)d(of)i(copies,)h(to)f(giv)m(e)h(them)f(a)g(c)m(hance)h(to)f(pro)m (vide)g(y)m(ou)330 4609 y(with)h(an)g(up)s(dated)f(v)m(ersion)i(of)g (the)f(Do)s(cumen)m(t.)199 4756 y(4.)61 b(MODIFICA)-8 b(TIONS)330 4902 y(Y)g(ou)26 b(ma)m(y)g(cop)m(y)g(and)f(distribute)g(a) h(Mo)s(di\014ed)f(V)-8 b(ersion)26 b(of)g(the)g(Do)s(cumen)m(t)g(under) e(the)h(conditions)330 5011 y(of)c(sections)h(2)g(and)e(3)h(ab)s(o)m(v) m(e,)k(pro)m(vided)20 b(that)i(y)m(ou)f(release)i(the)e(Mo)s(di\014ed)f (V)-8 b(ersion)22 b(under)d(precisely)330 5121 y(this)29 b(License,)h(with)f(the)g(Mo)s(di\014ed)f(V)-8 b(ersion)30 b(\014lling)f(the)g(role)h(of)f(the)g(Do)s(cumen)m(t,)h(th)m(us)f (licensing)330 5230 y(distribution)k(and)h(mo)s(di\014cation)g(of)h (the)f(Mo)s(di\014ed)f(V)-8 b(ersion)35 b(to)g(who)s(ev)m(er)f(p)s (ossesses)f(a)i(cop)m(y)g(of)330 5340 y(it.)41 b(In)30 b(addition,)h(y)m(ou)f(m)m(ust)h(do)f(these)h(things)f(in)g(the)h(Mo)s (di\014ed)e(V)-8 b(ersion:)p eop end %%Page: 71 76 TeXDict begin 71 75 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(71)357 299 y(A.)60 b(Use)33 b(in)f(the)h(Title)h(P)m(age)g(\(and)f(on)f(the)h(co)m(v)m (ers,)i(if)e(an)m(y\))g(a)g(title)h(distinct)f(from)g(that)g(of)g(the) 510 408 y(Do)s(cumen)m(t,)j(and)d(from)g(those)i(of)f(previous)f(v)m (ersions)h(\(whic)m(h)g(should,)g(if)g(there)g(w)m(ere)g(an)m(y)-8 b(,)510 518 y(b)s(e)31 b(listed)h(in)f(the)g(History)h(section)g(of)g (the)f(Do)s(cumen)m(t\).)45 b(Y)-8 b(ou)32 b(ma)m(y)g(use)f(the)g(same) h(title)h(as)510 628 y(a)e(previous)f(v)m(ersion)g(if)h(the)f(original) i(publisher)d(of)h(that)h(v)m(ersion)g(giv)m(es)h(p)s(ermission.)360 758 y(B.)61 b(List)31 b(on)f(the)h(Title)g(P)m(age,)i(as)d(authors,)h (one)g(or)f(more)h(p)s(ersons)e(or)h(en)m(tities)j(resp)s(onsible)c (for)510 867 y(authorship)c(of)h(the)h(mo)s(di\014cations)f(in)g(the)g (Mo)s(di\014ed)f(V)-8 b(ersion,)28 b(together)g(with)d(at)i(least)h (\014v)m(e)510 977 y(of)c(the)g(principal)g(authors)f(of)i(the)f(Do)s (cumen)m(t)g(\(all)h(of)g(its)f(principal)g(authors,)h(if)f(it)g(has)g (few)m(er)510 1087 y(than)30 b(\014v)m(e\),)h(unless)f(they)h(release)g (y)m(ou)g(from)f(this)g(requiremen)m(t.)359 1217 y(C.)60 b(State)32 b(on)e(the)h(Title)h(page)f(the)g(name)g(of)g(the)g (publisher)e(of)i(the)g(Mo)s(di\014ed)f(V)-8 b(ersion,)32 b(as)f(the)510 1326 y(publisher.)355 1456 y(D.)61 b(Preserv)m(e)31 b(all)g(the)g(cop)m(yrigh)m(t)h(notices)f(of)g(the)f(Do)s(cumen)m(t.) 363 1587 y(E.)60 b(Add)30 b(an)i(appropriate)f(cop)m(yrigh)m(t)i (notice)f(for)g(y)m(our)f(mo)s(di\014cations)g(adjacen)m(t)i(to)f(the)g (other)510 1696 y(cop)m(yrigh)m(t)g(notices.)365 1826 y(F.)61 b(Include,)28 b(immediately)h(after)f(the)h(cop)m(yrigh)m(t)g (notices,)h(a)e(license)h(notice)g(giving)g(the)f(public)510 1936 y(p)s(ermission)23 b(to)j(use)e(the)g(Mo)s(di\014ed)g(V)-8 b(ersion)25 b(under)e(the)i(terms)f(of)h(this)f(License,)j(in)d(the)g (form)510 2045 y(sho)m(wn)30 b(in)g(the)g(Addendum)f(b)s(elo)m(w.)353 2176 y(G.)61 b(Preserv)m(e)23 b(in)g(that)g(license)h(notice)g(the)f (full)g(lists)g(of)g(In)m(v)-5 b(arian)m(t)23 b(Sections)h(and)e (required)g(Co)m(v)m(er)510 2285 y(T)-8 b(exts)31 b(giv)m(en)g(in)f (the)h(Do)s(cumen)m(t's)g(license)h(notice.)357 2415 y(H.)60 b(Include)30 b(an)g(unaltered)g(cop)m(y)h(of)g(this)f(License.) 392 2545 y(I.)60 b(Preserv)m(e)33 b(the)f(section)h(En)m(titled)g (\\History",)h(Preserv)m(e)f(its)f(Title,)i(and)d(add)h(to)h(it)f(an)g (item)510 2655 y(stating)d(at)g(least)g(the)g(title,)h(y)m(ear,)g(new)d (authors,)i(and)e(publisher)f(of)j(the)f(Mo)s(di\014ed)f(V)-8 b(ersion)510 2765 y(as)32 b(giv)m(en)g(on)f(the)h(Title)g(P)m(age.)45 b(If)31 b(there)h(is)f(no)g(section)i(En)m(titled)f(\\History")h(in)e (the)g(Do)s(cu-)510 2874 y(men)m(t,)37 b(create)f(one)f(stating)h(the)f (title,)i(y)m(ear,)g(authors,)f(and)e(publisher)f(of)i(the)g(Do)s (cumen)m(t)510 2984 y(as)h(giv)m(en)h(on)f(its)h(Title)g(P)m(age,)i (then)d(add)g(an)g(item)g(describing)g(the)g(Mo)s(di\014ed)g(V)-8 b(ersion)37 b(as)510 3093 y(stated)31 b(in)f(the)h(previous)f(sen)m (tence.)378 3224 y(J.)60 b(Preserv)m(e)33 b(the)g(net)m(w)m(ork)g(lo)s (cation,)i(if)d(an)m(y)-8 b(,)34 b(giv)m(en)f(in)g(the)f(Do)s(cumen)m (t)h(for)g(public)e(access)j(to)510 3333 y(a)e(T)-8 b(ransparen)m(t)30 b(cop)m(y)i(of)g(the)f(Do)s(cumen)m(t,)h(and)f(lik)m(ewise)h(the)g(net) m(w)m(ork)g(lo)s(cations)g(giv)m(en)g(in)510 3443 y(the)g(Do)s(cumen)m (t)g(for)g(previous)f(v)m(ersions)h(it)g(w)m(as)g(based)f(on.)45 b(These)31 b(ma)m(y)h(b)s(e)f(placed)h(in)g(the)510 3552 y(\\History")27 b(section.)40 b(Y)-8 b(ou)25 b(ma)m(y)h(omit)g(a)f(net) m(w)m(ork)h(lo)s(cation)g(for)f(a)h(w)m(ork)f(that)g(w)m(as)h (published)510 3662 y(at)36 b(least)h(four)e(y)m(ears)i(b)s(efore)e (the)h(Do)s(cumen)m(t)h(itself,)h(or)d(if)h(the)g(original)h(publisher) d(of)i(the)510 3771 y(v)m(ersion)31 b(it)g(refers)f(to)h(giv)m(es)h(p)s (ermission.)354 3902 y(K.)60 b(F)-8 b(or)24 b(an)m(y)h(section)f(En)m (titled)h(\\Ac)m(kno)m(wledgemen)m(ts")i(or)d(\\Dedications",)k (Preserv)m(e)c(the)g(Title)510 4011 y(of)j(the)f(section,)j(and)d (preserv)m(e)h(in)f(the)h(section)g(all)h(the)e(substance)h(and)f(tone) h(of)f(eac)m(h)i(of)f(the)510 4121 y(con)m(tributor)k(ac)m(kno)m (wledgemen)m(ts)i(and/or)d(dedications)h(giv)m(en)h(therein.)368 4251 y(L.)60 b(Preserv)m(e)36 b(all)g(the)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(of)f(the)h(Do)s(cumen)m(t,)h(unaltered)f (in)f(their)g(text)i(and)510 4361 y(in)f(their)g(titles.)58 b(Section)37 b(n)m(um)m(b)s(ers)d(or)i(the)g(equiv)-5 b(alen)m(t)38 b(are)e(not)g(considered)g(part)g(of)g(the)510 4470 y(section)c(titles.)341 4600 y(M.)61 b(Delete)33 b(an)m(y)e(section)h(En)m(titled)f(\\Endorsemen)m(ts".)42 b(Suc)m(h)30 b(a)i(section)f(ma)m(y)h(not)f(b)s(e)f(included)510 4710 y(in)g(the)h(Mo)s(di\014ed)e(V)-8 b(ersion.)357 4840 y(N.)60 b(Do)29 b(not)g(retitle)h(an)m(y)e(existing)i(section)f (to)g(b)s(e)f(En)m(titled)h(\\Endorsemen)m(ts")g(or)f(to)h(con\015ict)g (in)510 4950 y(title)j(with)e(an)m(y)h(In)m(v)-5 b(arian)m(t)31 b(Section.)354 5080 y(O.)60 b(Preserv)m(e)31 b(an)m(y)g(W)-8 b(arran)m(t)m(y)32 b(Disclaimers.)330 5230 y(If)h(the)g(Mo)s(di\014ed)g (V)-8 b(ersion)34 b(includes)f(new)g(fron)m(t-matter)i(sections)f(or)f (app)s(endices)g(that)h(qualify)330 5340 y(as)28 b(Secondary)g (Sections)g(and)f(con)m(tain)j(no)d(material)j(copied)e(from)f(the)h (Do)s(cumen)m(t,)i(y)m(ou)e(ma)m(y)g(at)p eop end %%Page: 72 77 TeXDict begin 72 76 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(72)330 299 y(y)m(our)32 b(option)h(designate)h(some)e(or)h(all)g(of)f(these)h(sections)h(as)e (in)m(v)-5 b(arian)m(t.)48 b(T)-8 b(o)33 b(do)f(this,)h(add)f(their)330 408 y(titles)37 b(to)f(the)f(list)h(of)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(in)f(the)h(Mo)s(di\014ed)f(V)-8 b(ersion's)36 b(license)g(notice.)57 b(These)330 518 y(titles)32 b(m)m(ust)e(b)s(e)g (distinct)h(from)e(an)m(y)i(other)g(section)g(titles.)330 650 y(Y)-8 b(ou)43 b(ma)m(y)g(add)f(a)g(section)i(En)m(titled)f (\\Endorsemen)m(ts",)j(pro)m(vided)c(it)h(con)m(tains)g(nothing)g(but) 330 759 y(endorsemen)m(ts)30 b(of)g(y)m(our)f(Mo)s(di\014ed)g(V)-8 b(ersion)31 b(b)m(y)e(v)-5 b(arious)30 b(parties|for)g(example,)g (statemen)m(ts)i(of)330 869 y(p)s(eer)27 b(review)g(or)g(that)h(the)f (text)i(has)d(b)s(een)h(appro)m(v)m(ed)g(b)m(y)g(an)h(organization)h (as)e(the)h(authoritativ)m(e)330 978 y(de\014nition)i(of)h(a)f (standard.)330 1110 y(Y)-8 b(ou)29 b(ma)m(y)g(add)e(a)i(passage)g(of)g (up)e(to)i(\014v)m(e)g(w)m(ords)e(as)i(a)g(F)-8 b(ron)m(t-Co)m(v)m(er) 30 b(T)-8 b(ext,)30 b(and)e(a)g(passage)i(of)e(up)330 1219 y(to)g(25)g(w)m(ords)e(as)i(a)f(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext,)29 b(to)f(the)f(end)f(of)i(the)f(list)h(of)f(Co)m(v)m(er)h(T)-8 b(exts)27 b(in)g(the)h(Mo)s(di\014ed)330 1329 y(V)-8 b(ersion.)58 b(Only)35 b(one)h(passage)h(of)f(F)-8 b(ron)m(t-Co)m(v)m (er)38 b(T)-8 b(ext)36 b(and)g(one)g(of)g(Bac)m(k-Co)m(v)m(er)j(T)-8 b(ext)36 b(ma)m(y)h(b)s(e)330 1439 y(added)27 b(b)m(y)g(\(or)h(through) f(arrangemen)m(ts)h(made)g(b)m(y\))g(an)m(y)g(one)f(en)m(tit)m(y)-8 b(.)42 b(If)27 b(the)h(Do)s(cumen)m(t)g(already)330 1548 y(includes)34 b(a)g(co)m(v)m(er)h(text)g(for)f(the)g(same)h(co)m(v)m (er,)h(previously)e(added)f(b)m(y)h(y)m(ou)g(or)g(b)m(y)g(arrangemen)m (t)330 1658 y(made)h(b)m(y)g(the)h(same)f(en)m(tit)m(y)i(y)m(ou)f(are)f (acting)i(on)e(b)s(ehalf)f(of,)j(y)m(ou)f(ma)m(y)g(not)f(add)g (another;)j(but)330 1767 y(y)m(ou)c(ma)m(y)h(replace)g(the)f(old)g (one,)i(on)e(explicit)h(p)s(ermission)e(from)g(the)i(previous)e (publisher)f(that)330 1877 y(added)e(the)g(old)h(one.)330 2008 y(The)25 b(author\(s\))h(and)f(publisher\(s\))f(of)i(the)f(Do)s (cumen)m(t)h(do)g(not)f(b)m(y)h(this)f(License)h(giv)m(e)h(p)s (ermission)330 2118 y(to)k(use)f(their)g(names)h(for)f(publicit)m(y)g (for)h(or)f(to)h(assert)g(or)f(imply)g(endorsemen)m(t)g(of)h(an)m(y)g (Mo)s(di\014ed)330 2228 y(V)-8 b(ersion.)199 2359 y(5.)61 b(COMBINING)31 b(DOCUMENTS)330 2491 y(Y)-8 b(ou)39 b(ma)m(y)g(com)m (bine)h(the)f(Do)s(cumen)m(t)g(with)g(other)f(do)s(cumen)m(ts)h (released)g(under)f(this)g(License,)330 2600 y(under)f(the)h(terms)g (de\014ned)f(in)h(section)h(4)g(ab)s(o)m(v)m(e)g(for)f(mo)s(di\014ed)f (v)m(ersions,)k(pro)m(vided)d(that)h(y)m(ou)330 2710 y(include)25 b(in)g(the)g(com)m(bination)i(all)f(of)g(the)f(In)m(v)-5 b(arian)m(t)26 b(Sections)g(of)g(all)g(of)f(the)h(original)g(do)s (cumen)m(ts,)330 2819 y(unmo)s(di\014ed,)g(and)g(list)h(them)g(all)g (as)g(In)m(v)-5 b(arian)m(t)28 b(Sections)f(of)g(y)m(our)g(com)m(bined) g(w)m(ork)f(in)h(its)g(license)330 2929 y(notice,)32 b(and)e(that)h(y)m(ou)f(preserv)m(e)h(all)g(their)g(W)-8 b(arran)m(t)m(y)32 b(Disclaimers.)330 3061 y(The)e(com)m(bined)g(w)m (ork)h(need)e(only)i(con)m(tain)g(one)g(cop)m(y)g(of)f(this)g(License,) i(and)d(m)m(ultiple)i(iden)m(tical)330 3170 y(In)m(v)-5 b(arian)m(t)33 b(Sections)g(ma)m(y)g(b)s(e)f(replaced)h(with)f(a)h (single)g(cop)m(y)-8 b(.)48 b(If)32 b(there)h(are)g(m)m(ultiple)g(In)m (v)-5 b(arian)m(t)330 3280 y(Sections)27 b(with)g(the)g(same)g(name)g (but)f(di\013eren)m(t)h(con)m(ten)m(ts,)i(mak)m(e)f(the)f(title)h(of)f (eac)m(h)h(suc)m(h)f(section)330 3389 y(unique)33 b(b)m(y)h(adding)f (at)i(the)f(end)g(of)g(it,)h(in)f(paren)m(theses,)i(the)e(name)g(of)g (the)g(original)h(author)f(or)330 3499 y(publisher)23 b(of)i(that)h(section)g(if)f(kno)m(wn,)h(or)f(else)h(a)f(unique)f(n)m (um)m(b)s(er.)38 b(Mak)m(e)26 b(the)g(same)f(adjustmen)m(t)330 3608 y(to)g(the)g(section)g(titles)h(in)e(the)h(list)g(of)f(In)m(v)-5 b(arian)m(t)26 b(Sections)f(in)f(the)g(license)i(notice)g(of)e(the)h (com)m(bined)330 3718 y(w)m(ork.)330 3850 y(In)41 b(the)g(com)m (bination,)46 b(y)m(ou)41 b(m)m(ust)g(com)m(bine)h(an)m(y)g(sections)g (En)m(titled)g(\\History")h(in)e(the)g(v)-5 b(ari-)330 3959 y(ous)32 b(original)h(do)s(cumen)m(ts,)g(forming)f(one)g(section)h (En)m(titled)g(\\History";)i(lik)m(ewise)f(com)m(bine)f(an)m(y)330 4069 y(sections)g(En)m(titled)f(\\Ac)m(kno)m(wledgemen)m(ts",)k(and)31 b(an)m(y)h(sections)h(En)m(titled)g(\\Dedications".)47 b(Y)-8 b(ou)330 4178 y(m)m(ust)30 b(delete)i(all)f(sections)h(En)m (titled)f(\\Endorsemen)m(ts.")199 4310 y(6.)61 b(COLLECTIONS)28 b(OF)i(DOCUMENTS)330 4441 y(Y)-8 b(ou)32 b(ma)m(y)h(mak)m(e)g(a)f (collection)i(consisting)f(of)f(the)g(Do)s(cumen)m(t)g(and)g(other)g (do)s(cumen)m(ts)f(released)330 4551 y(under)41 b(this)h(License,)k (and)c(replace)h(the)g(individual)f(copies)h(of)f(this)g(License)h(in)f (the)h(v)-5 b(arious)330 4661 y(do)s(cumen)m(ts)42 b(with)g(a)h(single) g(cop)m(y)h(that)f(is)f(included)g(in)g(the)h(collection,)48 b(pro)m(vided)42 b(that)i(y)m(ou)330 4770 y(follo)m(w)38 b(the)g(rules)e(of)h(this)g(License)h(for)f(v)m(erbatim)h(cop)m(ying)g (of)f(eac)m(h)h(of)f(the)h(do)s(cumen)m(ts)e(in)h(all)330 4880 y(other)31 b(resp)s(ects.)330 5011 y(Y)-8 b(ou)32 b(ma)m(y)g(extract)h(a)f(single)g(do)s(cumen)m(t)f(from)g(suc)m(h)g(a)h (collection,)i(and)d(distribute)g(it)h(individu-)330 5121 y(ally)k(under)d(this)i(License,)i(pro)m(vided)e(y)m(ou)g(insert)g (a)g(cop)m(y)h(of)f(this)g(License)g(in)m(to)h(the)g(extracted)330 5230 y(do)s(cumen)m(t,)d(and)f(follo)m(w)i(this)e(License)h(in)g(all)g (other)g(resp)s(ects)f(regarding)h(v)m(erbatim)g(cop)m(ying)h(of)330 5340 y(that)d(do)s(cumen)m(t.)p eop end %%Page: 73 78 TeXDict begin 73 77 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(73)199 299 y(7.)61 b(A)m(GGREGA)-8 b(TION)32 b(WITH)e(INDEPENDENT)h(W)m(ORKS)330 441 y(A)d(compilation)i(of)e(the)g(Do)s(cumen)m(t)h(or)f(its)g(deriv)-5 b(ativ)m(es)30 b(with)d(other)i(separate)g(and)e(indep)s(enden)m(t)330 551 y(do)s(cumen)m(ts)33 b(or)g(w)m(orks,)h(in)f(or)h(on)f(a)g(v)m (olume)h(of)g(a)f(storage)i(or)e(distribution)g(medium,)g(is)h(called) 330 661 y(an)c(\\aggregate")k(if)c(the)g(cop)m(yrigh)m(t)i(resulting)e (from)f(the)i(compilation)g(is)f(not)h(used)e(to)i(limit)g(the)330 770 y(legal)d(righ)m(ts)f(of)g(the)g(compilation's)h(users)e(b)s(ey)m (ond)g(what)g(the)h(individual)f(w)m(orks)g(p)s(ermit.)39 b(When)330 880 y(the)g(Do)s(cumen)m(t)g(is)f(included)g(in)g(an)g (aggregate,)44 b(this)38 b(License)h(do)s(es)f(not)h(apply)f(to)h(the)g (other)330 989 y(w)m(orks)30 b(in)g(the)h(aggregate)i(whic)m(h)d(are)h (not)g(themselv)m(es)g(deriv)-5 b(ativ)m(e)32 b(w)m(orks)f(of)f(the)h (Do)s(cumen)m(t.)330 1132 y(If)22 b(the)h(Co)m(v)m(er)h(T)-8 b(ext)23 b(requiremen)m(t)g(of)g(section)h(3)f(is)g(applicable)h(to)f (these)h(copies)f(of)g(the)g(Do)s(cumen)m(t,)330 1241 y(then)f(if)g(the)h(Do)s(cumen)m(t)g(is)g(less)f(than)g(one)h(half)f (of)h(the)g(en)m(tire)g(aggregate,)k(the)c(Do)s(cumen)m(t's)g(Co)m(v)m (er)330 1351 y(T)-8 b(exts)27 b(ma)m(y)g(b)s(e)f(placed)h(on)g(co)m(v)m (ers)h(that)f(brac)m(k)m(et)h(the)f(Do)s(cumen)m(t)g(within)f(the)h (aggregate,)j(or)d(the)330 1461 y(electronic)37 b(equiv)-5 b(alen)m(t)36 b(of)g(co)m(v)m(ers)g(if)f(the)g(Do)s(cumen)m(t)h(is)f (in)g(electronic)i(form.)54 b(Otherwise)35 b(they)330 1570 y(m)m(ust)30 b(app)s(ear)g(on)g(prin)m(ted)g(co)m(v)m(ers)i(that)f (brac)m(k)m(et)h(the)f(whole)f(aggregate.)199 1713 y(8.)61 b(TRANSLA)-8 b(TION)330 1855 y(T)g(ranslation)41 b(is)f(considered)f(a) i(kind)e(of)h(mo)s(di\014cation,)j(so)d(y)m(ou)g(ma)m(y)h(distribute)e (translations)330 1965 y(of)45 b(the)f(Do)s(cumen)m(t)h(under)e(the)h (terms)h(of)f(section)i(4.)83 b(Replacing)45 b(In)m(v)-5 b(arian)m(t)45 b(Sections)g(with)330 2074 y(translations)h(requires)f (sp)s(ecial)h(p)s(ermission)f(from)g(their)g(cop)m(yrigh)m(t)i (holders,)i(but)c(y)m(ou)g(ma)m(y)330 2184 y(include)24 b(translations)i(of)e(some)h(or)g(all)g(In)m(v)-5 b(arian)m(t)25 b(Sections)g(in)f(addition)h(to)g(the)g(original)h(v)m(ersions)330 2293 y(of)32 b(these)f(In)m(v)-5 b(arian)m(t)33 b(Sections.)44 b(Y)-8 b(ou)32 b(ma)m(y)g(include)f(a)h(translation)g(of)g(this)f (License,)i(and)d(all)j(the)330 2403 y(license)42 b(notices)g(in)f(the) h(Do)s(cumen)m(t,)j(and)40 b(an)m(y)i(W)-8 b(arran)m(t)m(y)42 b(Disclaimers,)k(pro)m(vided)41 b(that)h(y)m(ou)330 2513 y(also)f(include)f(the)g(original)h(English)f(v)m(ersion)g(of)g(this)g (License)h(and)e(the)h(original)h(v)m(ersions)g(of)330 2622 y(those)35 b(notices)g(and)e(disclaimers.)53 b(In)33 b(case)i(of)g(a)f(disagreemen)m(t)h(b)s(et)m(w)m(een)g(the)f (translation)i(and)330 2732 y(the)f(original)i(v)m(ersion)e(of)h(this)f (License)h(or)f(a)g(notice)i(or)e(disclaimer,)i(the)f(original)g(v)m (ersion)g(will)330 2841 y(prev)-5 b(ail.)330 2984 y(If)28 b(a)h(section)h(in)e(the)h(Do)s(cumen)m(t)h(is)e(En)m(titled)i(\\Ac)m (kno)m(wledgemen)m(ts",)i(\\Dedications",)g(or)d(\\His-)330 3093 y(tory",)f(the)f(requiremen)m(t)f(\(section)i(4\))f(to)g(Preserv)m (e)g(its)f(Title)i(\(section)f(1\))g(will)g(t)m(ypically)h(require)330 3203 y(c)m(hanging)j(the)g(actual)h(title.)199 3345 y(9.)61 b(TERMINA)-8 b(TION)330 3488 y(Y)g(ou)30 b(ma)m(y)h(not)f(cop)m(y)-8 b(,)31 b(mo)s(dify)-8 b(,)30 b(sublicense,)g(or)g(distribute)f(the)h (Do)s(cumen)m(t)g(except)h(as)f(expressly)330 3598 y(pro)m(vided)38 b(under)f(this)i(License.)65 b(An)m(y)39 b(attempt)h(otherwise)f(to)g (cop)m(y)-8 b(,)42 b(mo)s(dify)-8 b(,)40 b(sublicense,)h(or)330 3707 y(distribute)30 b(it)h(is)f(v)m(oid,)h(and)f(will)h(automatically) i(terminate)f(y)m(our)e(righ)m(ts)h(under)e(this)h(License.)330 3850 y(Ho)m(w)m(ev)m(er,)35 b(if)e(y)m(ou)f(cease)i(all)f(violation)i (of)d(this)g(License,)i(then)e(y)m(our)h(license)g(from)f(a)h (particular)330 3959 y(cop)m(yrigh)m(t)k(holder)e(is)h(reinstated)h (\(a\))f(pro)m(visionally)-8 b(,)39 b(unless)c(and)g(un)m(til)h(the)g (cop)m(yrigh)m(t)h(holder)330 4069 y(explicitly)42 b(and)e(\014nally)h (terminates)g(y)m(our)g(license,)j(and)c(\(b\))h(p)s(ermanen)m(tly)-8 b(,)43 b(if)e(the)g(cop)m(yrigh)m(t)330 4178 y(holder)34 b(fails)h(to)g(notify)g(y)m(ou)g(of)f(the)h(violation)h(b)m(y)e(some)h (reasonable)g(means)g(prior)e(to)i(60)h(da)m(ys)330 4288 y(after)31 b(the)f(cessation.)330 4430 y(Moreo)m(v)m(er,)k(y)m(our)d (license)i(from)e(a)h(particular)f(cop)m(yrigh)m(t)i(holder)e(is)h (reinstated)g(p)s(ermanen)m(tly)f(if)330 4540 y(the)d(cop)m(yrigh)m(t)h (holder)f(noti\014es)g(y)m(ou)g(of)g(the)g(violation)h(b)m(y)f(some)g (reasonable)h(means,)f(this)g(is)g(the)330 4650 y(\014rst)f(time)i(y)m (ou)f(ha)m(v)m(e)h(receiv)m(ed)g(notice)g(of)f(violation)i(of)e(this)f (License)i(\(for)f(an)m(y)g(w)m(ork\))g(from)f(that)330 4759 y(cop)m(yrigh)m(t)33 b(holder,)g(and)e(y)m(ou)h(cure)g(the)g (violation)i(prior)d(to)i(30)f(da)m(ys)h(after)f(y)m(our)g(receipt)h (of)f(the)330 4869 y(notice.)330 5011 y(T)-8 b(ermination)28 b(of)g(y)m(our)f(righ)m(ts)h(under)e(this)i(section)g(do)s(es)f(not)h (terminate)h(the)e(licenses)i(of)f(parties)330 5121 y(who)38 b(ha)m(v)m(e)h(receiv)m(ed)h(copies)e(or)h(righ)m(ts)f(from)g(y)m(ou)g (under)f(this)h(License.)64 b(If)38 b(y)m(our)g(righ)m(ts)h(ha)m(v)m(e) 330 5230 y(b)s(een)25 b(terminated)i(and)e(not)h(p)s(ermanen)m(tly)g (reinstated,)i(receipt)f(of)f(a)g(cop)m(y)h(of)f(some)h(or)f(all)h(of)f (the)330 5340 y(same)31 b(material)h(do)s(es)e(not)g(giv)m(e)i(y)m(ou)f (an)m(y)g(righ)m(ts)f(to)i(use)e(it.)p eop end %%Page: 74 79 TeXDict begin 74 78 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(74)154 299 y(10.)61 b(FUTURE)30 b(REVISIONS)f(OF)i(THIS)e(LICENSE)330 433 y(The)41 b(F)-8 b(ree)43 b(Soft)m(w)m(are)f(F)-8 b(oundation)43 b(ma)m(y)f(publish)e(new,)k(revised)d(v)m(ersions)h(of)g(the)g(GNU)g(F) -8 b(ree)330 543 y(Do)s(cumen)m(tation)34 b(License)e(from)g(time)h(to) g(time.)46 b(Suc)m(h)31 b(new)h(v)m(ersions)g(will)h(b)s(e)e(similar)h (in)g(spirit)330 653 y(to)j(the)g(presen)m(t)f(v)m(ersion,)i(but)e(ma)m (y)h(di\013er)f(in)g(detail)h(to)g(address)f(new)g(problems)f(or)i (concerns.)330 762 y(See)c Fo(http://www.gnu.org/copy)o(left)o(/)p Fu(.)330 897 y(Eac)m(h)f(v)m(ersion)g(of)g(the)f(License)h(is)g(giv)m (en)g(a)g(distinguishing)f(v)m(ersion)h(n)m(um)m(b)s(er.)39 b(If)29 b(the)g(Do)s(cumen)m(t)330 1006 y(sp)s(eci\014es)45 b(that)h(a)g(particular)f(n)m(um)m(b)s(ered)f(v)m(ersion)i(of)f(this)g (License)h(\\or)g(an)m(y)g(later)g(v)m(ersion")330 1116 y(applies)33 b(to)g(it,)h(y)m(ou)e(ha)m(v)m(e)i(the)f(option)g(of)f (follo)m(wing)i(the)f(terms)f(and)g(conditions)h(either)g(of)f(that)330 1225 y(sp)s(eci\014ed)37 b(v)m(ersion)i(or)e(of)h(an)m(y)h(later)g(v)m (ersion)f(that)g(has)g(b)s(een)f(published)f(\(not)j(as)f(a)g(draft\))g (b)m(y)330 1335 y(the)33 b(F)-8 b(ree)34 b(Soft)m(w)m(are)f(F)-8 b(oundation.)49 b(If)32 b(the)h(Do)s(cumen)m(t)g(do)s(es)g(not)g(sp)s (ecify)f(a)h(v)m(ersion)g(n)m(um)m(b)s(er)f(of)330 1445 y(this)i(License,)j(y)m(ou)d(ma)m(y)i(c)m(ho)s(ose)f(an)m(y)g(v)m (ersion)g(ev)m(er)g(published)e(\(not)i(as)g(a)f(draft\))h(b)m(y)f(the) h(F)-8 b(ree)330 1554 y(Soft)m(w)m(are)33 b(F)-8 b(oundation.)46 b(If)32 b(the)g(Do)s(cumen)m(t)g(sp)s(eci\014es)g(that)g(a)h(pro)m(xy)f (can)g(decide)g(whic)m(h)g(future)330 1664 y(v)m(ersions)h(of)g(this)f (License)h(can)g(b)s(e)f(used,)g(that)i(pro)m(xy's)e(public)g(statemen) m(t)i(of)f(acceptance)i(of)e(a)330 1773 y(v)m(ersion)e(p)s(ermanen)m (tly)f(authorizes)h(y)m(ou)g(to)g(c)m(ho)s(ose)g(that)g(v)m(ersion)g (for)f(the)h(Do)s(cumen)m(t.)154 1908 y(11.)61 b(RELICENSING)330 2042 y(\\Massiv)m(e)39 b(Multiauthor)f(Collab)s(oration)g(Site")h(\(or) e(\\MMC)h(Site"\))h(means)e(an)m(y)h(W)-8 b(orld)37 b(Wide)330 2152 y(W)-8 b(eb)36 b(serv)m(er)g(that)h(publishes)d(cop)m(yrigh)m (table)k(w)m(orks)e(and)f(also)i(pro)m(vides)e(prominen)m(t)h (facilities)330 2262 y(for)27 b(an)m(yb)s(o)s(dy)g(to)h(edit)g(those)g (w)m(orks.)39 b(A)28 b(public)f(wiki)h(that)g(an)m(yb)s(o)s(dy)e(can)i (edit)g(is)f(an)h(example)g(of)330 2371 y(suc)m(h)33 b(a)h(serv)m(er.)51 b(A)34 b(\\Massiv)m(e)i(Multiauthor)e(Collab)s (oration")h(\(or)f(\\MMC"\))h(con)m(tained)g(in)f(the)330 2481 y(site)d(means)f(an)m(y)h(set)g(of)g(cop)m(yrigh)m(table)h(w)m (orks)e(th)m(us)g(published)f(on)h(the)h(MMC)f(site.)330 2615 y(\\CC-BY-SA")36 b(means)f(the)g(Creativ)m(e)i(Commons)e(A)m (ttribution-Share)g(Alik)m(e)i(3.0)f(license)g(pub-)330 2725 y(lished)27 b(b)m(y)f(Creativ)m(e)j(Commons)d(Corp)s(oration,)h(a) g(not-for-pro\014t)g(corp)s(oration)h(with)e(a)h(principal)330 2834 y(place)g(of)f(business)e(in)i(San)f(F)-8 b(rancisco,)29 b(California,)f(as)e(w)m(ell)h(as)f(future)f(cop)m(yleft)i(v)m(ersions) f(of)g(that)330 2944 y(license)31 b(published)e(b)m(y)h(that)h(same)g (organization.)330 3078 y(\\Incorp)s(orate")h(means)e(to)h(publish)e (or)i(republish)e(a)i(Do)s(cumen)m(t,)g(in)g(whole)g(or)f(in)g(part,)h (as)g(part)330 3188 y(of)g(another)f(Do)s(cumen)m(t.)330 3323 y(An)c(MMC)g(is)h(\\eligible)h(for)e(relicensing")h(if)g(it)f(is)h (licensed)f(under)f(this)h(License,)i(and)e(if)g(all)h(w)m(orks)330 3432 y(that)43 b(w)m(ere)f(\014rst)f(published)f(under)h(this)h (License)g(somewhere)g(other)g(than)g(this)g(MMC,)h(and)330 3542 y(subsequen)m(tly)34 b(incorp)s(orated)h(in)f(whole)h(or)g(in)f (part)h(in)m(to)h(the)f(MMC,)g(\(1\))h(had)e(no)h(co)m(v)m(er)h(texts) 330 3651 y(or)30 b(in)m(v)-5 b(arian)m(t)32 b(sections,)g(and)d(\(2\))j (w)m(ere)f(th)m(us)f(incorp)s(orated)g(prior)g(to)h(No)m(v)m(em)m(b)s (er)g(1,)g(2008.)330 3786 y(The)40 b(op)s(erator)h(of)g(an)f(MMC)h (Site)g(ma)m(y)g(republish)e(an)h(MMC)h(con)m(tained)h(in)e(the)h(site) g(under)330 3895 y(CC-BY-SA)30 b(on)g(the)h(same)f(site)h(at)g(an)m(y)g (time)g(b)s(efore)e(August)h(1,)h(2009,)h(pro)m(vided)e(the)g(MMC)h(is) 330 4005 y(eligible)h(for)e(relicensing.)p eop end %%Page: 75 80 TeXDict begin 75 79 bop 150 -116 a Fu(App)s(endix)29 b(C:)h(Cop)m(ying)g(Information)2143 b(75)150 299 y Ft(ADDENDUM:)45 b(Ho)l(w)h(to)f(use)g(this)h(License)f(for)g(y)l(our)g(do)t(cumen)l(ts) 150 458 y Fu(T)-8 b(o)35 b(use)f(this)h(License)g(in)f(a)h(do)s(cumen)m (t)g(y)m(ou)f(ha)m(v)m(e)i(written,)g(include)f(a)f(cop)m(y)i(of)f(the) f(License)h(in)g(the)150 568 y(do)s(cumen)m(t)30 b(and)g(put)g(the)g (follo)m(wing)i(cop)m(yrigh)m(t)g(and)e(license)h(notices)g(just)f (after)h(the)g(title)h(page:)468 680 y Fc(Copyright)42 b(\(C\))79 b Fb(year)g(your)40 b(name)p Fc(.)468 767 y(Permission)i(is)e(granted)g(to)g(copy,)h(distribute)g(and/or)g (modify)f(this)g(document)468 854 y(under)h(the)f(terms)g(of)g(the)g (GNU)g(Free)g(Documentation)i(License,)f(Version)g(1.3)468 941 y(or)f(any)g(later)g(version)h(published)h(by)d(the)h(Free)g (Software)h(Foundation;)468 1029 y(with)g(no)e(Invariant)j(Sections,)f (no)f(Front-Cover)h(Texts,)g(and)f(no)f(Back-Cover)468 1116 y(Texts.)80 b(A)40 b(copy)g(of)g(the)f(license)i(is)f(included)h (in)f(the)g(section)g(entitled)h(``GNU)468 1203 y(Free)g(Documentation) h(License''.)275 1337 y Fu(If)d(y)m(ou)h(ha)m(v)m(e)h(In)m(v)-5 b(arian)m(t)41 b(Sections,)i(F)-8 b(ron)m(t-Co)m(v)m(er)42 b(T)-8 b(exts)41 b(and)e(Bac)m(k-Co)m(v)m(er)k(T)-8 b(exts,)43 b(replace)e(the)150 1447 y(\\with)6 b(.)22 b(.)g(.)12 b(T)-8 b(exts.")31 b(line)g(with)f(this:)547 1559 y Fc(with)40 b(the)g(Invariant)h(Sections)g(being)g Fb(list)f(their)g(titles)p Fc(,)h(with)547 1646 y(the)f(Front-Cover)i(Texts)e(being)g Fb(list)p Fc(,)h(and)f(with)g(the)g(Back-Cover)h(Texts)547 1733 y(being)f Fb(list)p Fc(.)275 1868 y Fu(If)34 b(y)m(ou)i(ha)m(v)m (e)g(In)m(v)-5 b(arian)m(t)36 b(Sections)g(without)f(Co)m(v)m(er)h(T)-8 b(exts,)38 b(or)d(some)g(other)h(com)m(bination)g(of)g(the)150 1978 y(three,)31 b(merge)g(those)g(t)m(w)m(o)g(alternativ)m(es)i(to)e (suit)f(the)h(situation.)275 2112 y(If)23 b(y)m(our)h(do)s(cumen)m(t)f (con)m(tains)i(non)m(trivial)g(examples)g(of)f(program)f(co)s(de,)j(w)m (e)e(recommend)g(releasing)150 2222 y(these)44 b(examples)f(in)g (parallel)h(under)e(y)m(our)h(c)m(hoice)i(of)e(free)g(soft)m(w)m(are)h (license,)k(suc)m(h)43 b(as)g(the)g(GNU)150 2331 y(General)31 b(Public)f(License,)i(to)f(p)s(ermit)e(their)i(use)f(in)g(free)g(soft)m (w)m(are.)p eop end %%Page: 76 81 TeXDict begin 76 80 bop 150 -116 a Fu(F)-8 b(unction)31 b(and)f(V)-8 b(ariable)32 b(Index)2370 b(76)150 299 y Fr(F)-13 b(unction)52 b(and)h(V)-13 b(ariable)53 b(Index)150 610 y Ft(I)150 726 y Fc(idn_free)12 b Fa(:)j(:)e(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fd(13)150 814 y Fc(idna-to-ascii)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fd(57)150 901 y Fc(idna-to-unicode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fd(57)150 988 y Fc(idna_strerror)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fd(29)150 1076 y Fc(idna_to_ascii_4i)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fd(26)150 1163 y Fc(idna_to_ascii_4z)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)35 b Fd(27)150 1250 y Fc(idna_to_ascii_8z)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)35 b Fd(27)150 1338 y Fc(idna_to_ascii_lz)9 b Fa(:)16 b(:)e(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)35 b Fd(27)150 1425 y Fc(idna_to_unicode_44i)18 b Fa(:)g(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)44 b Fd(26)150 1512 y Fc(idna_to_unicode_4z4z)16 b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Fd(28)150 1600 y Fc(idna_to_unicode_8z4z)16 b Fa(:)h(:)c(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)42 b Fd(28)150 1687 y Fc(idna_to_unicode_8z8z)16 b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Fd(28)150 1774 y Fc (idna_to_unicode_8zlz)16 b Fa(:)h(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)42 b Fd(29)150 1862 y Fc(idna_to_unicode_lzlz)16 b Fa(:)h(:)c(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)42 b Fd(29)150 2105 y Ft(P)150 2221 y Fc(pr29_4)17 b Fa(:)e(:)e(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)43 b Fd(36)150 2308 y Fc(pr29_4z)15 b Fa(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)41 b Fd(37)150 2395 y Fc(pr29_8z)15 b Fa(:)f(:)f(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)41 b Fd(37)150 2483 y Fc(pr29_strerror)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fd(37)150 2570 y Fc(punycode-decode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fd(56)150 2657 y Fc(punycode-encode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fd(56)150 2745 y Fc(punycode_decode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fd(23)150 2832 y Fc(punycode_encode)11 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)38 b Fd(22)150 2919 y Fc(punycode_strerror)6 b Fa(:)17 b(:)c(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)32 b Fd(24)150 3172 y Ft(S)150 3288 y Fc(stringprep)7 b Fa(:)15 b(:)e(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)33 b Fd(18)150 3375 y Fc(stringprep_4i)16 b Fa(:)g(:)e(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)43 b Fd(17)150 3462 y Fc(stringprep_4zi)14 b Fa(:)i(:)d(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)40 b Fd(18)2025 610 y Fc (stringprep_check_version)28 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 b Fd(10)2025 699 y Fc(stringprep_convert)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) 47 b Fd(16)2025 787 y Fc(stringprep_iscsi)9 b Fa(:)16 b(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fd(20)2025 875 y Fc(stringprep_locale_charset)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fd(16)2025 964 y Fc(stringprep_locale_to_utf8)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)46 b Fd(16)2025 1052 y Fc(stringprep_nameprep_no_unassig)q(ned)17 b Fa(:)i(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)43 b Fd(20)2025 1141 y Fc(stringprep_plain) 9 b Fa(:)16 b(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)35 b Fd(20)2025 1229 y Fc(stringprep_profile)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)47 b Fd(19)2025 1318 y Fc(stringprep_strerror)18 b Fa(:)f(:)c(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)45 b Fd(19)2025 1406 y Fc(stringprep_ucs4_nfkc_normalize)8 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fd(15)2025 1494 y Fc(stringprep_ucs4_to_utf8)8 b Fa(:)18 b(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)34 b Fd(14)2025 1583 y Fc(stringprep_unichar_to_utf8)17 b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)44 b Fd(14)2025 1671 y Fc(stringprep_utf8_nfkc_normalize)8 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fd(15)2025 1760 y Fc(stringprep_utf8_to_locale)25 b Fa(:)13 b(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)46 b Fd(16)2025 1848 y Fc(stringprep_utf8_to_ucs4)8 b Fa(:)18 b(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)34 b Fd(15)2025 1937 y Fc (stringprep_utf8_to_unichar)17 b Fa(:)i(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)44 b Fd(14)2025 2025 y Fc(stringprep_xmpp_nodeprep)28 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 b Fd(21)2025 2113 y Fc(stringprep_xmpp_resourceprep)13 b Fa(:)19 b(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)39 b Fd(21)2025 2371 y Ft(T)2025 2490 y Fc(tld_check_4)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) 48 b Fd(33)2025 2578 y Fc(tld_check_4t)21 b Fa(:)14 b(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fd(31)2025 2667 y Fc(tld_check_4tz)16 b Fa(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)43 b Fd(31)2025 2755 y Fc(tld_check_4z)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fd(34)2025 2844 y Fc(tld_check_8z)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fd(34)2025 2932 y Fc(tld_check_lz)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)45 b Fd(34)2025 3020 y Fc(tld_default_table)6 b Fa(:)17 b(:)c(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)33 b Fd(33)2025 3109 y Fc(tld_get_4)9 b Fa(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fd(32)2025 3197 y Fc(tld_get_4z)7 b Fa(:)15 b(:)e(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)33 b Fd(32)2025 3286 y Fc(tld_get_table)16 b Fa(:)g(:)d(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)43 b Fd(33)2025 3374 y Fc(tld_get_z)9 b Fa(:)15 b(:)f(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)36 b Fd(32)2025 3462 y Fc(tld_strerror)21 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)45 b Fd(35)p eop end %%Page: 77 82 TeXDict begin 77 81 bop 150 -116 a Fu(Concept)31 b(Index)2927 b(77)150 299 y Fr(Concept)52 b(Index)150 638 y Ft(A)150 754 y Fd(AIX)14 b Fa(:)e(:)h(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fd(4)150 842 y(ARM)11 b Fa(:)h(:)h(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)37 b Fd(5)150 929 y(Auto)r(conf)26 b(tests)10 b Fa(:)j(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)36 b Fd(11)150 1163 y Ft(C)150 1279 y Fd(command)26 b(line)20 b Fa(:)13 b(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)46 b Fd(52)150 1366 y(Compiling)27 b(y)n(our)e(application)17 b Fa(:)e(:)e(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)44 b Fd(11)150 1454 y(Con\014gure)26 b(tests)20 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)45 b Fd(11)150 1541 y(Con)n(tributing)23 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)50 b Fd(8)150 1792 y Ft(D)150 1908 y Fd(de-allo)r(cation)25 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Fd(12)150 1995 y(Debian)18 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)45 b Fd(3)150 2083 y(Do)n(wnload)22 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)48 b Fd(6)150 2316 y Ft(E)150 2433 y Fd(Examples)7 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)33 b Fd(38)150 2683 y Ft(F)150 2799 y Fd(FDL,)26 b(GNU)f(F)-6 b(ree)25 b(Do)r(cumen)n(tation)h(License)20 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)45 b Fd(68)150 2887 y(free)24 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Fd(12)150 2974 y(F)-6 b(reeBSD)22 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)49 b Fd(5)150 3208 y Ft(H)150 3324 y Fd(Hac)n(king)18 b Fa(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)45 b Fd(8)150 3411 y(heap)25 b(memory)10 b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)36 b Fd(12)150 3499 y(HP-UX)12 b Fa(:)f(:)j(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)39 b Fd(4)150 3732 y Ft(I)150 3849 y Fd(IBM)9 b Fa(:)14 b(:)f(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)36 b Fd(5)150 3936 y Fc(idn)8 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g (:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)34 b Fd(52)150 4023 y(IDNA)24 b(F)-6 b(unctions)12 b Fa(:)h(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)38 b Fd(25)150 4111 y(Installation)14 b Fa(:)g(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)41 b Fd(6)150 4198 y(in)n(v)n(oking)25 b Fc(idn)8 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)34 b Fd(52)150 4285 y(IRIX)18 b Fa(:)12 b(:)h(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)45 b Fd(4)150 4519 y Ft(M)150 4635 y Fd(MacOS)26 b(X)7 b Fa(:)12 b(:)i(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)34 b Fd(5)150 4723 y(Mandrak)n(e)21 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)47 b Fd(4)2025 638 y(Memory)26 b(handling)9 b Fa(:)k(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)35 b Fd(12)2025 725 y(Microsoft)13 b Fa(:)i(:)e(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)40 b Fd(5)2025 813 y(mingw32)23 b Fa(:)13 b(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)49 b Fd(5)2025 900 y(Motorola)28 b(Cold\014re)10 b Fa(:)j(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)37 b Fd(5)2025 1133 y Ft(N)2025 1249 y Fd(NetBSD)15 b Fa(:)e(:)g(:)g(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)42 b Fd(5)2025 1482 y Ft(O)2025 1598 y Fd(Op)r(enBSD)18 b Fa(:)c(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:) f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)47 b Fd(5)2025 1685 y(Op)r(enP)n(o)n(w)n(er)26 b(720)10 b Fa(:)k(:)g(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)38 b Fd(4)2025 1772 y(OS/2)13 b Fa(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)40 b Fd(5)2025 2026 y Ft(P)2025 2142 y Fd(PR29)26 b(F)-6 b(unctions)20 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) h(:)46 b Fd(36)2025 2230 y(Pun)n(yco)r(de)25 b(F)-6 b(unctions)17 b Fa(:)c(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)44 b Fd(22)2025 2479 y Ft(R)2025 2595 y Fd(RedHat)7 b Fa(:)12 b(:)i(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)34 b Fd(4)2025 2683 y(RedHat)25 b(Adv)l(anced)f(Serv)n(er)19 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)47 b Fd(4)2025 2770 y(Rep)r(orting)26 b(Bugs)10 b Fa(:)j(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)37 b Fd(7)2025 3019 y Ft(S)2025 3135 y Fd(Solaris)9 b Fa(:)14 b(:)f(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g (:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)36 b Fd(4)2025 3223 y(Stringprep)25 b(F)-6 b(unctions)20 b Fa(:)14 b(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:) g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)47 b Fd(17)2025 3310 y(SuSE)13 b Fa(:)f(:)h(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)40 b Fd(4)2025 3397 y(SuSE)25 b(Lin)n(ux)c Fa(:)14 b(:)f(:)g(:)g(:)g(:)g (:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:) h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)50 b Fd(4)2025 3630 y Ft(T)2025 3746 y Fd(TLD)25 b(F)-6 b(unctions)15 b Fa(:)e(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)41 b Fd(31)2025 3833 y(T)-6 b(ru64)21 b Fa(:)13 b(:)g(:)g(:)g(:)h(:)f(:)g (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)48 b Fd(4)2025 4067 y Ft(U)2025 4183 y Fd(uClib)r(c)10 b Fa(:)k(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f (:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:) g(:)g(:)g(:)g(:)h(:)f(:)g(:)37 b Fd(5)2025 4270 y(uClin)n(ux)21 b Fa(:)13 b(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g (:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:) g(:)h(:)f(:)g(:)g(:)g(:)49 b Fd(5)2025 4357 y(Utilit)n(y)25 b(F)-6 b(unctions)20 b Fa(:)13 b(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:) g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g (:)h(:)46 b Fd(14)2025 4607 y Ft(W)2025 4723 y Fd(Windo)n(ws)9 b Fa(:)k(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:) g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)g(:)h(:)f(:)g(:)g(:)g(:)g(:)g(:)h (:)f(:)g(:)35 b Fd(4,)27 b(5)p eop end %%Trailer userdict /end-hook known{end-hook}if %%EOF libidn-1.28/doc/version.texi0000644000000000000000000000013312167245611012723 00000000000000@set UPDATED 10 July 2013 @set UPDATED-MONTH July 2013 @set EDITION 1.28 @set VERSION 1.28 libidn-1.28/doc/idn.10000644000000000000000000000520612167245614011210 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.10. .TH IDN "1" "July 2013" "idn 1.28" "User Commands" .SH NAME idn \- Internationalized Domain Names command line tool .SH SYNOPSIS .B idn [\fIOPTION\fR]... [\fISTRINGS\fR]... .SH DESCRIPTION Internationalized Domain Name (IDN) convert STRINGS, or standard input. .PP Command line interface to the internationalized domain name library. .PP All strings are expected to be encoded in the preferred charset used by your locale. Use `\-\-debug' to find out what this charset is. You can override the charset used by setting environment variable CHARSET. .PP To process a string that starts with `\-', for example `\-foo', use `\-\-' to signal the end of parameters, as in `idn \fB\-\-quiet\fR \fB\-a\fR \fB\-\-\fR \fB\-foo\fR'. .PP Mandatory arguments to long options are mandatory for short options too. .TP \fB\-h\fR, \fB\-\-help\fR Print help and exit .TP \fB\-V\fR, \fB\-\-version\fR Print version and exit .TP \fB\-s\fR, \fB\-\-stringprep\fR Prepare string according to nameprep profile .TP \fB\-d\fR, \fB\-\-punycode\-decode\fR Decode Punycode .TP \fB\-e\fR, \fB\-\-punycode\-encode\fR Encode Punycode .TP \fB\-a\fR, \fB\-\-idna\-to\-ascii\fR Convert to ACE according to IDNA (default mode) .TP \fB\-u\fR, \fB\-\-idna\-to\-unicode\fR Convert from ACE according to IDNA .TP \fB\-\-allow\-unassigned\fR Toggle IDNA AllowUnassigned flag (default off) .TP \fB\-\-usestd3asciirules\fR Toggle IDNA UseSTD3ASCIIRules flag (default off) .TP \fB\-\-no\-tld\fR Don't check string for TLD specific rules Only for \fB\-\-idna\-to\-ascii\fR and \fB\-\-idna\-to\-unicode\fR .TP \fB\-n\fR, \fB\-\-nfkc\fR Normalize string according to Unicode v3.2 NFKC .TP \fB\-p\fR, \fB\-\-profile\fR=\fISTRING\fR Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' .TP \fB\-\-debug\fR Print debugging information .TP \fB\-\-quiet\fR Silent operation .SH AUTHOR Written by Simon Josefsson. .SH "REPORTING BUGS" Report bugs to: bug\-libidn@gnu.org .br GNU Libidn home page: .br General help using GNU software: .SH COPYRIGHT Copyright \(co 2013 Simon Josefsson. License GPLv3+: GNU GPL version 3 or later . .br This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. .SH "SEE ALSO" The full documentation for .B idn is maintained as a Texinfo manual. If the .B info and .B idn programs are properly installed at your site, the command .IP .B info idn .PP should give you access to the complete manual. libidn-1.28/doc/libidn-components.eps0000644000000000000000000002304412167245613014510 00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Title: components.fig %%Creator: fig2dev Version 3.2 Patchlevel 5d %%CreationDate: Wed Jul 10 13:54:51 2013 %%BoundingBox: 0 0 382 350 %Magnification: 1.0000 %%EndComments %%BeginProlog /$F2psDict 200 dict def $F2psDict begin $F2psDict /mtrx matrix put /col-1 {0 setgray} bind def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end /cp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /sa {save} bind def /rs {restore} bind def /l {lineto} bind def /m {moveto} bind def /rm {rmoveto} bind def /n {newpath} bind def /s {stroke} bind def /sh {show} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /sd {setdash} bind def /ff {findfont} bind def /sf {setfont} bind def /scf {scalefont} bind def /sw {stringwidth} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def /pageheader { save newpath 0 350 moveto 0 0 lineto 382 0 lineto 382 350 lineto closepath clip newpath -47.4 405.1 translate 1 -1 scale $F2psBegin 10 setmiterlimit 0 slj 0 slc 0.06299 0.06299 sc } bind def /pagefooter { $F2psEnd restore } bind def %%EndProlog pageheader % % Fig objects follow % % % here starts figure with depth 50 % Polyline 0 slj 0 slc 7.500 slw n 3355 1845 m 3295 1845 3295 2235 60 arcto 4 {pop} repeat 3295 2295 4609 2295 60 arcto 4 {pop} repeat 4669 2295 4669 1905 60 arcto 4 {pop} repeat 4669 1845 3355 1845 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 2663 1845 m 2618 1845 2618 2250 45 arcto 4 {pop} repeat 2618 2295 3141 2295 45 arcto 4 {pop} repeat 3186 2295 3186 1890 45 arcto 4 {pop} repeat 3186 1845 2663 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1988 1845 m 1943 1845 1943 2250 45 arcto 4 {pop} repeat 1943 2295 2467 2295 45 arcto 4 {pop} repeat 2512 2295 2512 1890 45 arcto 4 {pop} repeat 2512 1845 1988 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 1313 1845 m 1268 1845 1268 2250 45 arcto 4 {pop} repeat 1268 2295 1792 2295 45 arcto 4 {pop} repeat 1837 2295 1837 1890 45 arcto 4 {pop} repeat 1837 1845 1313 1845 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 870 4560 m 810 4560 810 5099 60 arcto 4 {pop} repeat 810 5159 6735 5159 60 arcto 4 {pop} repeat 6795 5159 6795 4620 60 arcto 4 {pop} repeat 6795 4560 870 4560 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4065 2837 m 4005 2837 4005 3448 60 arcto 4 {pop} repeat 4005 3508 5790 3508 60 arcto 4 {pop} repeat 5850 3508 5850 2897 60 arcto 4 {pop} repeat 5850 2837 4065 2837 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline n 4110 900 m 4050 900 4050 1338 60 arcto 4 {pop} repeat 4050 1398 5520 1398 60 arcto 4 {pop} repeat 5580 1398 5580 960 60 arcto 4 {pop} repeat 5580 900 4110 900 60 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 2864 1768 m 2864 1863 l 2895 1863 l 2895 1768 l 2895 1768 l 2880 1832 l 2864 1768 l cp eoclip n 2880 1398 m 2880 1848 l gs col0 s gr gr % arrowhead n 2864 1768 m 2880 1832 l 2895 1768 l 2864 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3674 1768 m 3674 1863 l 3705 1863 l 3705 1768 l 3705 1768 l 3690 1832 l 3674 1768 l cp eoclip n 3690 1395 m 3690 1848 l gs col0 s gr gr % arrowhead n 3674 1768 m 3690 1832 l 3705 1768 l 3674 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2864 4493 m 2864 4588 l 2895 4588 l 2895 4493 l 2895 4493 l 2880 4557 l 2864 4493 l cp eoclip n 2880 2298 m 2880 4573 l gs col0 s gr gr % arrowhead n 2864 4493 m 2880 4557 l 2895 4493 l 2864 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2144 4493 m 2144 4588 l 2175 4588 l 2175 4493 l 2175 4493 l 2160 4557 l 2144 4493 l cp eoclip n 2160 2298 m 2160 4573 l gs col0 s gr gr % arrowhead n 2144 4493 m 2160 4557 l 2175 4493 l 2144 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1514 4493 m 1514 4588 l 1545 4588 l 1545 4493 l 1545 4493 l 1530 4557 l 1514 4493 l cp eoclip n 1530 2298 m 1530 4573 l gs col0 s gr gr % arrowhead n 1514 4493 m 1530 4557 l 1545 4493 l 1514 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1019 4493 m 1019 4588 l 1050 4588 l 1050 4493 l 1050 4493 l 1035 4557 l 1019 4493 l cp eoclip n 1035 1398 m 1035 4573 l gs col0 s gr gr % arrowhead n 1019 4493 m 1035 4557 l 1050 4493 l 1019 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 1514 1768 m 1514 1863 l 1545 1863 l 1545 1768 l 1545 1768 l 1530 1832 l 1514 1768 l cp eoclip n 1530 1398 m 1530 1848 l gs col0 s gr gr % arrowhead n 1514 1768 m 1530 1832 l 1545 1768 l 1514 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 2189 1768 m 2189 1863 l 2220 1863 l 2220 1768 l 2220 1768 l 2205 1832 l 2189 1768 l cp eoclip n 2205 1398 m 2205 1848 l gs col0 s gr gr % arrowhead n 2189 1768 m 2205 1832 l 2220 1768 l 2189 1768 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 3539 4493 m 3539 4588 l 3570 4588 l 3570 4493 l 3570 4493 l 3555 4557 l 3539 4493 l cp eoclip n 3555 2298 m 3555 4573 l gs col0 s gr gr % arrowhead n 3539 4493 m 3555 4557 l 3570 4493 l 3539 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4889 4493 m 4889 4588 l 4920 4588 l 4920 4493 l 4920 4493 l 4905 4557 l 4889 4493 l cp eoclip n 4905 3506 m 4905 4573 l gs col0 s gr gr % arrowhead n 4889 4493 m 4905 4557 l 4920 4493 l 4889 4493 l cp gs 0.00 setgray ef gr col0 s % Polyline [15 45] 45 sd n 870 5820 m 810 5820 810 6359 60 arcto 4 {pop} repeat 810 6419 6735 6419 60 arcto 4 {pop} repeat 6795 6419 6795 5880 60 arcto 4 {pop} repeat 6795 5820 870 5820 60 arcto 4 {pop} repeat cp gs col0 s gr [] 0 sd % Polyline [15 45] 45 sd gs clippath 3705 5669 m 3705 5820 l 3765 5820 l 3765 5669 l 3765 5669 l 3735 5789 l 3705 5669 l cp 3765 5311 m 3765 5160 l 3705 5160 l 3705 5311 l 3705 5311 l 3735 5191 l 3765 5311 l cp eoclip n 3735 5175 m 3735 5805 l gs col0 s gr gr [] 0 sd % arrowhead n 3765 5311 m 3735 5191 l 3705 5311 l 3765 5311 l cp gs col7 1.00 shd ef gr col0 s % arrowhead n 3705 5669 m 3735 5789 l 3765 5669 l 3705 5669 l cp gs col7 1.00 shd ef gr col0 s % Polyline n 840 900 m 765 900 765 1323 75 arcto 4 {pop} repeat 765 1398 3841 1398 75 arcto 4 {pop} repeat 3916 1398 3916 975 75 arcto 4 {pop} repeat 3916 900 840 900 75 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 4349 2755 m 4349 2850 l 4380 2850 l 4380 2755 l 4380 2755 l 4365 2819 l 4349 2755 l cp eoclip n 4365 2277 m 4365 2835 l gs col0 s gr gr % arrowhead n 4349 2755 m 4365 2819 l 4380 2755 l 4349 2755 l cp gs 0.00 setgray ef gr col0 s % Polyline gs clippath 4844 2783 m 4844 2878 l 4875 2878 l 4875 2783 l 4875 2783 l 4860 2847 l 4844 2783 l cp eoclip n 4860 1395 m 4860 2863 l gs col0 s gr gr % arrowhead n 4844 2783 m 4860 2847 l 4875 2783 l 4844 2783 l cp gs 0.00 setgray ef gr col0 s % Polyline n 5715 900 m 5670 900 5670 1350 45 arcto 4 {pop} repeat 5670 1395 6750 1395 45 arcto 4 {pop} repeat 6795 1395 6795 945 45 arcto 4 {pop} repeat 6795 900 5715 900 45 arcto 4 {pop} repeat cp gs col0 s gr % Polyline gs clippath 6149 4493 m 6149 4588 l 6180 4588 l 6180 4493 l 6180 4493 l 6165 4557 l 6149 4493 l cp eoclip n 6165 1398 m 6165 4573 l gs col0 s gr gr % arrowhead n 6149 4493 m 6165 4557 l 6180 4493 l 6149 4493 l cp gs 0.00 setgray ef gr col0 s /Helvetica ff 165.00 scf sf 3600 2107 m gs 1 -1 sc (Nameprep) col0 sh gr /Helvetica ff 165.00 scf sf 2700 2130 m gs 1 -1 sc (iSCSI) col0 sh gr /Helvetica ff 165.00 scf sf 2025 2130 m gs 1 -1 sc (SASL) col0 sh gr /Helvetica ff 165.00 scf sf 1327 2130 m gs 1 -1 sc (XMPP) col0 sh gr /Helvetica-Bold ff 165.00 scf sf 3150 4905 m gs 1 -1 sc (GNU IDN Library) col0 sh gr /Helvetica ff 150.00 scf sf 4751 3227 m gs 1 -1 sc (IDNA) col0 sh gr /Helvetica ff 165.00 scf sf 4455 1215 m gs 1 -1 sc (Punycode) col0 sh gr /Helvetica ff 165.00 scf sf 3345 6157 m gs 1 -1 sc (Application) col0 sh gr /Helvetica ff 165.00 scf sf 1935 1215 m gs 1 -1 sc (StringPrep) col0 sh gr /Helvetica ff 165.00 scf sf 6075 1170 m gs 1 -1 sc (TLD) col0 sh gr % here ends figure; pagefooter showpage %%Trailer %EOF libidn-1.28/doc/java/0000755000000000000000000000000012167253753011355 500000000000000libidn-1.28/doc/java/resources/0000755000000000000000000000000012167253753013367 500000000000000libidn-1.28/doc/java/resources/gjdoc.js0000644000000000000000000000614512167245611014733 00000000000000/* gjdoc.js Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath 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. GNU Classpath 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. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ /** * Sets a new stylesheet for a single frame. */ function setStyleSheetForFrame(title, frame_name) { var i, num, a, main; f = eval("top.frames." + frame_name); for(i=0; (a = f.document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; a.disabled = (a.getAttribute("title") != title); } } } /** * Sets a new stylesheet for a single document. */ function setStyleSheetForDocument(title) { var i, num, a, main; for(i=0; (a = top.document.getElementsByTagName("link")[i]); i++) { if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) { a.disabled = true; a.disabled = (a.getAttribute("title") != title); } } } /** * Sets a new stylesheets for all frames. */ function setStyleSheet(title) { var i, num, a, main; num = top.frames.length; if (num > 0) { for (i=0; i 0) { setStyleSheet(getActiveStylesheetTitle(top.frames.packages), "content"); } else if (top.selectedSheet) { setStyleSheet(top.selectedSheet, "content"); } **/ } /** * Invoked when a page in one of the two frames on the left hand has * been loaded. */ function secondaryPageLoaded(frame_name) { /** 20050204: removed since there is only one stylesheet at the time setStyleSheet(getActiveStylesheetTitle(top.frames.packages), frame_name); **/ } libidn-1.28/doc/java/resources/gjdochtml-clean-layout.css0000644000000000000000000001613012167245611020362 00000000000000/* gjdochtml-clean-layout.css Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath 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. GNU Classpath 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. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ /* --- GNU Clean Style: Layout --- */ body { background: white; color: black; } body.content { margin-left: 1.3em; margin-right: 1.3em; margin-top: 0.9em; margin-bottom: 1.3em; } div[class="class title outer"] { margin: 0em; margin-bottom: 1em; border: 1px solid; padding: 10pt; } [class="class title-package"] { margin: 0em; padding: 0em; } [class="class title-class"] { margin: 0em; margin-top: 0.2em; padding: 0em; } [class="table header"], [class="table sub header"] { margin: 0em; padding: 0.25em; } [class="section header"] { margin: 0em; padding: 0.25em; border: 1px solid; } .serialized.package.header { margin: 0em; padding: 0.25em; border: 1px solid; margin-bottom: 1em; } .serialized.class.header { margin: 0em; padding: 0.25em; padding-left: 3.25em; border: 1px solid; text-indent: -3em; font-weight: normal; font-size: 1.2em; } .serialized.section.header { font-size: 1.15em; } div.serialized.section { padding-left: 1em; } .summary td, .summary .inherited { padding: 0.25em; } table[border] { border-spacing: 0em; border-collapse: collapse; } table[border] td { border-spacing: 0em; border-collapse: collapse; } hr { border-top: 1px solid; border-bottom: 0px; border-left: 0px; border-right: 0px; } .class.summary .left { width: 10%; } .class.summary td.left { text-align: right; } .class.summary .left .synopsis { font-size: small; } [class="package summary left"] { width: 20%; } ul.inheritance { margin-left: 1.8em; padding-left: 0em; marker-offset: 0em !important; list-style-type: none; list-style-image: none; } li.inheritance { margin: 0em !important; margin-top: 0.1em !important; padding: 0em !important; marker-offset: 0em !important; } ul.inheritance > li.inheritance:before { display: marker; width: 12px; margin: 0em !important; padding: 0em !important; marker-offset: 0em !important; content: url(inherit.png); vertical-align: center !important; } [class="inheritance 0"] > li.inheritance:before { display: none; } ul [class="inheritance 0"] { margin-left: 12px !important; padding-left: 0em; list-style-type: none !important; list-style-image: none !important; } .inheritance-tree { position: relative; left: -24px; } .synopsis.outer { padding: 0em; margin-bottom: 0.3em; } .synopsis.outer > * { margin: 0em; padding: 0em; line-height: 1.0em; } div.navbar.div { padding: 0em; margin: 0em; position: relative; left: -0.2em; } .navbar.div, .navbar.div tr, .navbar.div td { margin: 0em; padding: 0em; border-spacing: 0em; border-collapse: collapse; } table.navbar.div { width: 100%; } table.navbar.div td { line-height: 1.9em; text-align: top; } .navbar.item { /* float: left; */ border: 1px solid; /* width: 7.5em; */ text-align: center; margin: 0.05em; padding-top: 0.2em; padding-bottom: 0.3em; padding-left: 0.5em; padding-right: 0.5em; font-size: 0.75em; margin-bottom: 0.5em; } .navbar.item.active { /* font-weight: bold; */ border: 1px solid; } [class~="title"] { border: 1px solid; padding: 0.3em; margin-top: 0em; } .table.container, .table.container dd { padding: 0em; margin: 0em; } .overview.summary { padding: 0em; margin: 0em; } .summary { margin-bottom: 1.2em; } table.navbar.top { margin-bottom: 1em !important; } .package.description { margin-top: 0.0em; margin-bottom: 1.0em; } .class.description { margin-top: 1em; margin-bottom: 0.8em; } [class="overview description top"] { margin-top: 0.0em; margin-bottom: 1.0em; } [class="overview description full"] { margin-top: 1.0em; margin-bottom: 0.0em; } .class.summary .right .list { margin: 0em; padding: 0em; } .class.summary .right .list .synopsis { margin: 0em; padding: 0em; } .classes .menu-subtitle { padding: 0em; margin-top: 0.5em; margin-bottom: 0em; } .menu-title { padding: 0em; margin-top: 0.8em; margin-bottom: 0.2em; } .menu-entry { font-size: 0.8em; } .class.summary .right { vertical-align: top; } .class.summary .right .list { vertical-align: top; } .navi { padding-top: 0.5em; font-size: x-small; } .navbar .header { vertical-align: top; } .navbar .header span { border: none; white-space: nowrap; padding-top: 0.2em; padding-bottom: 0.3em; padding-left: 0.5em; } .navbar .header a { font-weight: bold; font-size: 11pt; } h1 { font-size: 1.5em; } h2 { font-size: 1.3em; } h3 { font-size: 1.1em; } .summary .right .synopsis { padding-left: 5.25em !important; text-indent: -5em !important; } .summary .right .description { text-indent: 1em !important; padding-top: 0.25em !important; padding-bottom: 0.1em !important; padding-left: 0.25em !important; } td.usage.summary { vertical-align: top; } .index .entry .description { padding-left: 3em; } .index .entry .key { padding-left: 5.25em; text-indent: -5em; } .dep-list .summary .description { padding-top: 0.1em; padding-left: 3em; } .dep-toc .header { padding-bottom: 0em; margin-bottom: 0.2em; } .dep-toc .list { margin-top: 0em; margin-bottom: 1.5em; padding-top: 0em; padding-bottom: 0em; padding-left: 2em; } ul.tree li.node { list-style-type: disc; } ul.tree ul { margin-left: 0em; padding-left: 1.8em; } li.level { list-style-type: none; } libidn-1.28/doc/java/resources/inherit.png0000644000000000000000000000030712167245611015451 00000000000000PNG  IHDR Vu\bKGD pHYs  tIME tEXtCommentCreated with The GIMPd%n+IDAT(c`@ D&I %FbMO?3 n8TIENDB`libidn-1.28/doc/java/resources/gjdochtml-clean-color1.css0000644000000000000000000000362212167245611020246 00000000000000/* gjdochtml-clean-layout.css Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath 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. GNU Classpath 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. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ /* --- GNU Clean Style: Color Scheme #1 --- */ [class~="title"], [class="table header"], [class="table sub header"], [class="section header"], [class="serialized package header"], [class="serialized class header"] { background-color: #E8EAFF; } [class~="navbar"][class~="item"] { border-color: #000000; color: #000000; } [class~="navbar"][class~="item"][class~="disabled"] { border-color: #aaaaaa; color: #aaaaaa; } [class~="navbar"][class~="item"][class~="active"] { color: #000000; background-color: #E8EAFF; } [class~="navbar"][class~="item"][class~="active"] { border-color: #222222; } .navbar .header a { color: #777777; } a[href] { color: #141EB8; } a[href]:visited { color: #0C126E; } /* ---- source highlighting ---- */ .comment { color: #777777; } .tag { color: #444444; } .keyword { color: #B36B00; } .header.type { color: #00248F; } .type { color: #0033CC; } .literal { color: #809FFF; } .variable { color: #007D48; } .method { color: #B32400; } .line-number { color: #AAAAAA; } libidn-1.28/doc/java/deprecated.html0000644000000000000000000000424012167245611014255 00000000000000 Deprecated API

    Deprecated API

    No deprecated classes or class members in this API.

    libidn-1.28/doc/java/alphaindex.html0000644000000000000000000006272512167245611014306 00000000000000 Alphabetical Index

    Alphabetical Index

    A B C D E I K M N O P R S T

    A

    ACE_PREFIX - static field in class gnu.inet.encoding.IDNA
    adapt(int,int,boolean) - static method in class gnu.inet.encoding.Punycode

    B

    BAD_INPUT - static field in class gnu.inet.encoding.PunycodeException
    BIDI_BOTHRAL - static field in class gnu.inet.encoding.StringprepException
    BIDI_LTRAL - static field in class gnu.inet.encoding.StringprepException
    builder() - static method in class gnu.inet.encoding.RangeSet

    C

    c - static field in class gnu.inet.encoding.CombiningClass
    codepoint2digit(int) - static method in class gnu.inet.encoding.Punycode
    CombiningClass - class gnu.inet.encoding.CombiningClass
    Auto-generated class containing Unicode NFKC tables.
    composeData - static field in class gnu.inet.encoding.Composition
    composePage - static field in class gnu.inet.encoding.Composition
    Composition - class gnu.inet.encoding.Composition
    Auto-generated class containing Unicode NFKC tables.
    contains(int) - method in class gnu.inet.encoding.RangeSet
    CONTAINS_ACE_PREFIX - static field in class gnu.inet.encoding.IDNAException
    CONTAINS_HYPHEN - static field in class gnu.inet.encoding.IDNAException
    CONTAINS_NON_LDH - static field in class gnu.inet.encoding.IDNAException
    CONTAINS_PROHIBITED - static field in class gnu.inet.encoding.StringprepException
    CONTAINS_UNASSIGNED - static field in class gnu.inet.encoding.StringprepException
    containsAnyCodePoint(CharSequence) - method in class gnu.inet.encoding.RangeSet
    createTextRange(CharSequence) - static method in class gnu.inet.encoding.RangeSet
    Returns the range of the input or all-inclusive range if input is empty

    D

    decode(String) - static method in class gnu.inet.encoding.Punycode
    Decode a punycoded string.
    DecompositionKeys - class gnu.inet.encoding.DecompositionKeys
    Auto-generated class containing Unicode NFKC tables.
    Auto-generated class containing Unicode NFKC tables.
    digit2codepoint(int) - static method in class gnu.inet.encoding.Punycode

    E

    encode(String) - static method in class gnu.inet.encoding.Punycode
    Punycodes a unicode string.

    I

    i - static field in class gnu.inet.encoding.CombiningClass
    IDNA - class gnu.inet.encoding.IDNA
    This class offers static methods for converting internationalized domain names to ACE and back.
    IDNAException - class gnu.inet.encoding.IDNAException
    Exception handling for IDNA class.
    IDNAException(gnu.inet.encoding.PunycodeException) - constructor for class gnu.inet.encoding.IDNAException
    IDNAException(String) - constructor for class gnu.inet.encoding.IDNAException
    isBasic(char) - static method in class gnu.inet.encoding.Punycode

    K

    k - static field in class gnu.inet.encoding.DecompositionKeys

    M

    m - static field in class gnu.inet.encoding.DecompositionMappings
    multiFirst - static field in class gnu.inet.encoding.Composition
    multiSecondStart - static field in class gnu.inet.encoding.Composition

    N

    nameprep(String) - static method in class gnu.inet.encoding.Stringprep
    Preps a name according to the Stringprep profile defined in RFC3491.
    nameprep(String,boolean) - static method in class gnu.inet.encoding.Stringprep
    Preps a name according to the Stringprep profile defined in RFC3491.
    NFKC - class gnu.inet.encoding.NFKC
    This class offers static methods for Unicode NFKC string normalization.
    nodeprep(String) - static method in class gnu.inet.encoding.Stringprep
    Preps a node name according to the Stringprep profile defined in RFC3920.
    nodeprep(String,boolean) - static method in class gnu.inet.encoding.Stringprep
    Preps a node name according to the Stringprep profile defined in RFC3920.
    normalizeNFKC(String) - static method in class gnu.inet.encoding.NFKC
    Applies NFKC normalization to a string.

    O

    OVERFLOW - static field in class gnu.inet.encoding.PunycodeException

    P

    Punycode - class gnu.inet.encoding.Punycode
    This class offers static methods for encoding/decoding strings using the Punycode algorithm.
    PunycodeException - class gnu.inet.encoding.PunycodeException
    Exception handling for Punycode class.
    PunycodeException(String) - constructor for class gnu.inet.encoding.PunycodeException
    Creates a new PunycodeException.

    R

    RangeSet - class gnu.inet.encoding.RangeSet
    Set of integer ranges supporting efficient contains-checks.
    resourceprep(String) - static method in class gnu.inet.encoding.Stringprep
    Preps a resource name according to the Stringprep profile defined in RFC3920.
    resourceprep(String,boolean) - static method in class gnu.inet.encoding.Stringprep
    Preps a resource name according to the Stringprep profile defined in RFC3920.
    RFC3454 - class gnu.inet.encoding.RFC3454
    Auto-generated class containing StringPrep mapping tables.

    S

    singleFirst - static field in class gnu.inet.encoding.Composition
    singleFirstStart - static field in class gnu.inet.encoding.Composition
    singleSecond - static field in class gnu.inet.encoding.Composition
    singleSecondStart - static field in class gnu.inet.encoding.Composition
    String toString() - method in class gnu.inet.encoding.RangeSet
    Stringprep - class gnu.inet.encoding.Stringprep
    This class offers static methods for preparing internationalized strings.
    StringprepException - class gnu.inet.encoding.StringprepException
    Exception handling for StringPrep class.
    StringprepException(String) - constructor for class gnu.inet.encoding.StringprepException

    T

    toASCII(String) - static method in class gnu.inet.encoding.IDNA
    Converts a Unicode string to ASCII using the procedure in RFC3490 section 4.1.
    toASCII(String,boolean,boolean) - static method in class gnu.inet.encoding.IDNA
    Converts a Unicode string to ASCII using the procedure in RFC3490 section 4.1.
    TOO_LONG - static field in class gnu.inet.encoding.IDNAException
    toUnicode(String) - static method in class gnu.inet.encoding.IDNA
    Converts an ASCII-encoded string to Unicode.
    toUnicode(String,boolean,boolean) - static method in class gnu.inet.encoding.IDNA
    Converts an ASCII-encoded string to Unicode.
    libidn-1.28/doc/java/package-list0000644000000000000000000000000012167245611013544 00000000000000libidn-1.28/doc/java/index.html0000644000000000000000000000161012167245611013262 00000000000000 Generated API Documentationlibidn-1.28/doc/java/gnu/0000755000000000000000000000000012167253753012146 500000000000000libidn-1.28/doc/java/gnu/inet/0000755000000000000000000000000012167253753013105 500000000000000libidn-1.28/doc/java/gnu/inet/encoding/0000755000000000000000000000000012167253753014673 500000000000000libidn-1.28/doc/java/gnu/inet/encoding/classes.html0000644000000000000000000000722612167245611017137 00000000000000 gnu.inet.encoding Class Menulibidn-1.28/doc/java/gnu/inet/encoding/IDNA.html0000644000000000000000000002671312167245611016217 00000000000000 IDNA

    gnu.inet.encoding

    Class IDNA

    • java.lang.Object
      • gnu.inet.encoding.IDNA

    public class IDNA
    extends java.lang.Object

    This class offers static methods for converting internationalized domain names to ACE and back.
    • RFC3490 IDNA
    Note that this implementation only supports 16-bit Unicode code points.

    Field Summary

    static String
    ACE_PREFIX

    Method Summary

    static String
    toASCII(String input)
    Converts a Unicode string to ASCII using the procedure in RFC3490 section 4.1.
    static String
    toASCII(String input, boolean allowUnassigned, boolean useSTD3ASCIIRules)
    Converts a Unicode string to ASCII using the procedure in RFC3490 section 4.1.
    static String
    toUnicode(String input)
    Converts an ASCII-encoded string to Unicode.
    static String
    toUnicode(String input, boolean allowUnassigned, boolean useSTD3ASCIIRules)
    Converts an ASCII-encoded string to Unicode.

    Field Details

    Method Details

    toASCII

    public static String toASCII(String input)
                throws IDNAException
    Converts a Unicode string to ASCII using the procedure in RFC3490 section 4.1. Unassigned characters are not allowed and STD3 ASCII rules are enforced. The input string may be a domain name containing dots.
    Parameters:
    input - Unicode string.
    Returns:
    Encoded string.

    toASCII

    public static String toASCII(String input,
                                 boolean allowUnassigned,
                                 boolean useSTD3ASCIIRules)
                throws IDNAException
    Converts a Unicode string to ASCII using the procedure in RFC3490 section 4.1. Unassigned characters are not allowed and STD3 ASCII rules are enforced.
    Parameters:
    input - Unicode string.
    allowUnassigned - Unassigned characters, allowed or not?
    useSTD3ASCIIRules - STD3 ASCII rules, enforced or not?
    Returns:
    Encoded string.

    toUnicode

    public static String toUnicode(String input)
    Converts an ASCII-encoded string to Unicode. Unassigned characters are not allowed and STD3 hostnames are enforced. Input may be domain name containing dots.
    Parameters:
    input - ASCII input string.
    Returns:
    Unicode string.

    toUnicode

    public static String toUnicode(String input,
                                   boolean allowUnassigned,
                                   boolean useSTD3ASCIIRules)
    Converts an ASCII-encoded string to Unicode.
    Parameters:
    input - ASCII input string.
    allowUnassigned - Allow unassigned Unicode characters.
    useSTD3ASCIIRules - Check that the output conforms to STD3.
    Returns:
    Unicode string.
    libidn-1.28/doc/java/gnu/inet/encoding/Punycode.html0000644000000000000000000002331612167245611017266 00000000000000 Punycode

    gnu.inet.encoding

    Class Punycode

    • java.lang.Object
      • gnu.inet.encoding.Punycode

    public class Punycode
    extends java.lang.Object

    This class offers static methods for encoding/decoding strings using the Punycode algorithm.
    • RFC3492 Punycode
    Note that this implementation only supports 16-bit Unicode code points.

    Method Summary

    static int
    adapt(int delta, int numpoints, boolean first)
    static int
    codepoint2digit(int c)
    static String
    decode(String input)
    Decode a punycoded string.
    static int
    digit2codepoint(int d)
    static String
    encode(String input)
    Punycodes a unicode string.
    static boolean
    isBasic(char c)

    Method Details

    libidn-1.28/doc/java/gnu/inet/encoding/package-summary.html0000644000000000000000000001315712167245611020570 00000000000000 gnu.inet.encoding

    Package gnu.inet.encoding

    Class Summary

    CombiningClass Auto-generated class containing Unicode NFKC tables.
    Composition Auto-generated class containing Unicode NFKC tables.
    DecompositionKeys Auto-generated class containing Unicode NFKC tables.
    DecompositionMappings Auto-generated class containing Unicode NFKC tables.
    IDNA This class offers static methods for converting internationalized domain names to ACE and back.
    IDNAException Exception handling for IDNA class.
    NFKC This class offers static methods for Unicode NFKC string normalization.
    Punycode This class offers static methods for encoding/decoding strings using the Punycode algorithm.
    PunycodeException Exception handling for Punycode class.
    RangeSet Set of integer ranges supporting efficient contains-checks.
    RangeSet.Builder
    RangeSet.Range
    RFC3454 Auto-generated class containing StringPrep mapping tables.
    Stringprep This class offers static methods for preparing internationalized strings.
    StringprepException Exception handling for StringPrep class.
    libidn-1.28/doc/java/gnu/inet/encoding/StringprepException.html0000644000000000000000000001710312167245611021511 00000000000000 StringprepException

    gnu.inet.encoding

    Class StringprepException

    • Exception
      • gnu.inet.encoding.StringprepException

    public class StringprepException
    extends Exception

    Exception handling for StringPrep class.

    Field Summary

    static String
    BIDI_BOTHRAL
    static String
    BIDI_LTRAL
    static String
    CONTAINS_PROHIBITED
    static String
    CONTAINS_UNASSIGNED

    Constructor Summary

    StringprepException(String m)

    Field Details

    Constructor Details

    libidn-1.28/doc/java/gnu/inet/encoding/NFKC.html0000644000000000000000000001172012167245611016215 00000000000000 NFKC

    gnu.inet.encoding

    Class NFKC

    • java.lang.Object
      • gnu.inet.encoding.NFKC

    public class NFKC
    extends java.lang.Object

    This class offers static methods for Unicode NFKC string normalization.

    Method Summary

    static String
    normalizeNFKC(String in)
    Applies NFKC normalization to a string.

    Method Details

    libidn-1.28/doc/java/gnu/inet/encoding/tree.html0000644000000000000000000001075312167245611016440 00000000000000 gnu.inet.encoding Hierarchy

    Hierarchy for Package gnu.inet.encoding

    Class Hierarchy

    libidn-1.28/doc/java/gnu/inet/encoding/RFC3454.html0000644000000000000000000000650012167245611016426 00000000000000 RFC3454

    gnu.inet.encoding

    Class RFC3454

    • java.lang.Object
      • gnu.inet.encoding.RFC3454

    public class RFC3454
    extends java.lang.Object

    Auto-generated class containing StringPrep mapping tables.
    libidn-1.28/doc/java/gnu/inet/encoding/PunycodeException.html0000644000000000000000000001463312167245611021147 00000000000000 PunycodeException

    gnu.inet.encoding

    Class PunycodeException

    • Exception
      • gnu.inet.encoding.PunycodeException

    public class PunycodeException
    extends Exception

    Exception handling for Punycode class.

    Field Summary

    static String
    BAD_INPUT
    static String
    OVERFLOW

    Constructor Summary

    PunycodeException(String m)
    Creates a new PunycodeException.

    Field Details

    Constructor Details

    libidn-1.28/doc/java/gnu/inet/encoding/CombiningClass.html0000644000000000000000000001164112167245611020371 00000000000000 CombiningClass

    gnu.inet.encoding

    Class CombiningClass

    • java.lang.Object
      • gnu.inet.encoding.CombiningClass

    public class CombiningClass
    extends java.lang.Object

    Auto-generated class containing Unicode NFKC tables.

    Field Summary

    static int[][]
    c
    static int[]
    i

    Field Details

    libidn-1.28/doc/java/gnu/inet/encoding/Stringprep.html0000644000000000000000000004004212167245611017630 00000000000000 Stringprep

    gnu.inet.encoding

    Class Stringprep

    • java.lang.Object
      • gnu.inet.encoding.Stringprep

    public class Stringprep
    extends java.lang.Object

    This class offers static methods for preparing internationalized strings. It supports the following stringprep profiles:
    • RFC3491 nameprep
    • RFC3920 XMPP nodeprep and resourceprep
    Note that this implementation only supports 16-bit Unicode code points.

    Method Summary

    static String
    nameprep(String input)
    Preps a name according to the Stringprep profile defined in RFC3491.
    static String
    nameprep(String input, boolean allowUnassigned)
    Preps a name according to the Stringprep profile defined in RFC3491.
    static String
    nodeprep(String input)
    Preps a node name according to the Stringprep profile defined in RFC3920.
    static String
    nodeprep(String input, boolean allowUnassigned)
    Preps a node name according to the Stringprep profile defined in RFC3920.
    static String
    resourceprep(String input)
    Preps a resource name according to the Stringprep profile defined in RFC3920.
    static String
    resourceprep(String input, boolean allowUnassigned)
    Preps a resource name according to the Stringprep profile defined in RFC3920.

    Method Details

    nameprep

    public static String nameprep(String input)
                throws StringprepException,
                       NullPointerException
    Preps a name according to the Stringprep profile defined in RFC3491. Unassigned code points are not allowed.
    Parameters:
    input - the name to prep.
    Returns:
    the prepped name.
    Throws:
    StringprepException - If the name cannot be prepped with this profile.

    nameprep

    public static String nameprep(String input,
                                  boolean allowUnassigned)
                throws StringprepException,
                       NullPointerException
    Preps a name according to the Stringprep profile defined in RFC3491.
    Parameters:
    input - the name to prep.
    allowUnassigned - true if the name may contain unassigned code points.
    Returns:
    the prepped name.
    Throws:
    StringprepException - If the name cannot be prepped with this profile.

    nodeprep

    public static String nodeprep(String input)
                throws StringprepException,
                       NullPointerException
    Preps a node name according to the Stringprep profile defined in RFC3920. Unassigned code points are not allowed.
    Parameters:
    input - the node name to prep.
    Returns:
    the prepped node name.
    Throws:
    StringprepException - If the node name cannot be prepped with this profile.

    nodeprep

    public static String nodeprep(String input,
                                  boolean allowUnassigned)
                throws StringprepException,
                       NullPointerException
    Preps a node name according to the Stringprep profile defined in RFC3920.
    Parameters:
    input - the node name to prep.
    allowUnassigned - true if the node name may contain unassigned code points.
    Returns:
    the prepped node name.
    Throws:
    StringprepException - If the node name cannot be prepped with this profile.

    resourceprep

    public static String resourceprep(String input)
                throws StringprepException,
                       NullPointerException
    Preps a resource name according to the Stringprep profile defined in RFC3920. Unassigned code points are not allowed.
    Parameters:
    input - the resource name to prep.
    Returns:
    the prepped node name.
    Throws:
    StringprepException - If the resource name cannot be prepped with this profile.

    resourceprep

    public static String resourceprep(String input,
                                      boolean allowUnassigned)
                throws StringprepException,
                       NullPointerException
    Preps a resource name according to the Stringprep profile defined in RFC3920.
    Parameters:
    input - the resource name to prep.
    allowUnassigned - true if the resource name may contain unassigned code points.
    Returns:
    the prepped node name.
    Throws:
    StringprepException - If the resource name cannot be prepped with this profile.
    libidn-1.28/doc/java/gnu/inet/encoding/Composition.html0000644000000000000000000002335412167245611020005 00000000000000 Composition

    gnu.inet.encoding

    Class Composition

    • java.lang.Object
      • gnu.inet.encoding.Composition

    public class Composition
    extends java.lang.Object

    Auto-generated class containing Unicode NFKC tables.

    Field Summary

    static int[][]
    composeData
    static int[]
    composePage
    static char[][]
    multiFirst
    static int
    multiSecondStart
    static char[][]
    singleFirst
    static int
    singleFirstStart
    static char[][]
    singleSecond
    static int
    singleSecondStart

    Field Details

    libidn-1.28/doc/java/gnu/inet/encoding/IDNAException.html0000644000000000000000000002251412167245611020071 00000000000000 IDNAException

    gnu.inet.encoding

    Class IDNAException

    • Exception
      • gnu.inet.encoding.IDNAException

    public class IDNAException
    extends Exception

    Exception handling for IDNA class.

    Field Summary

    static String
    CONTAINS_ACE_PREFIX
    static String
    CONTAINS_HYPHEN
    static String
    CONTAINS_NON_LDH
    static String
    TOO_LONG

    Constructor Summary

    IDNAException(String m)
    IDNAException(PunycodeException e)
    IDNAException(StringprepException e)

    Field Details

    Constructor Details

    libidn-1.28/doc/java/gnu/inet/encoding/DecompositionKeys.html0000644000000000000000000001060712167245611021147 00000000000000 DecompositionKeys

    gnu.inet.encoding

    Class DecompositionKeys

    • java.lang.Object
      • gnu.inet.encoding.DecompositionKeys

    public class DecompositionKeys
    extends java.lang.Object

    Auto-generated class containing Unicode NFKC tables.

    Field Summary

    static int[]
    k

    Field Details

    libidn-1.28/doc/java/gnu/inet/encoding/DecompositionMappings.html0000644000000000000000000001063212167245611022010 00000000000000 DecompositionMappings

    gnu.inet.encoding

    Class DecompositionMappings

    • java.lang.Object
      • gnu.inet.encoding.DecompositionMappings

    public class DecompositionMappings
    extends java.lang.Object

    Auto-generated class containing Unicode NFKC tables.

    Field Summary

    static String[]
    m

    Field Details

    libidn-1.28/doc/java/serialized-form.html0000644000000000000000000000423412167245611015254 00000000000000 Serialized Form

    Serialized Form

    libidn-1.28/doc/java/about.html0000644000000000000000000000442412167245611013273 00000000000000 About

    About

    Generated by Gjdoc HtmlDoclet 0.98, part of GNU Classpath Tools, on July 10, 2013 11:54:49 a.m. GMT.

    libidn-1.28/doc/java/Makefile.am0000644000000000000000000000337412153706572013335 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . if JAVA HTML = about.html deprecated.html package-list alphaindex.html \ index.html serialized-form.html \ resources/gjdochtml-clean-color1.css \ resources/gjdochtml-clean-layout.css resources/gjdoc.js \ resources/inherit.png gnu/inet/encoding/classes.html \ gnu/inet/encoding/CombiningClass.html \ gnu/inet/encoding/Composition.html \ gnu/inet/encoding/DecompositionKeys.html \ gnu/inet/encoding/DecompositionMappings.html \ gnu/inet/encoding/IDNAException.html \ gnu/inet/encoding/IDNA.html gnu/inet/encoding/NFKC.html \ gnu/inet/encoding/package-summary.html \ gnu/inet/encoding/PunycodeException.html \ gnu/inet/encoding/Punycode.html gnu/inet/encoding/RFC3454.html \ gnu/inet/encoding/StringprepException.html \ gnu/inet/encoding/Stringprep.html gnu/inet/encoding/tree.html EXTRA_DIST = $(HTML) all-local: $(HTML) $(HTML): $(top_srcdir)/java/src/main/java/gnu/inet/encoding/*.java cd ../../java/src/main/java && make javadoc clean-local: rm -f $(HTML) endif libidn-1.28/doc/java/Makefile.in0000644000000000000000000012362412167244660013347 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/java DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ @JAVA_TRUE@HTML = about.html deprecated.html package-list alphaindex.html \ @JAVA_TRUE@ index.html serialized-form.html \ @JAVA_TRUE@ resources/gjdochtml-clean-color1.css \ @JAVA_TRUE@ resources/gjdochtml-clean-layout.css resources/gjdoc.js \ @JAVA_TRUE@ resources/inherit.png gnu/inet/encoding/classes.html \ @JAVA_TRUE@ gnu/inet/encoding/CombiningClass.html \ @JAVA_TRUE@ gnu/inet/encoding/Composition.html \ @JAVA_TRUE@ gnu/inet/encoding/DecompositionKeys.html \ @JAVA_TRUE@ gnu/inet/encoding/DecompositionMappings.html \ @JAVA_TRUE@ gnu/inet/encoding/IDNAException.html \ @JAVA_TRUE@ gnu/inet/encoding/IDNA.html gnu/inet/encoding/NFKC.html \ @JAVA_TRUE@ gnu/inet/encoding/package-summary.html \ @JAVA_TRUE@ gnu/inet/encoding/PunycodeException.html \ @JAVA_TRUE@ gnu/inet/encoding/Punycode.html gnu/inet/encoding/RFC3454.html \ @JAVA_TRUE@ gnu/inet/encoding/StringprepException.html \ @JAVA_TRUE@ gnu/inet/encoding/Stringprep.html gnu/inet/encoding/tree.html @JAVA_TRUE@EXTRA_DIST = $(HTML) all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/java/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am @JAVA_FALSE@all-local: all-am: Makefile all-local installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @JAVA_FALSE@clean-local: clean: clean-am clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am all-local check check-am clean clean-generic \ clean-libtool clean-local cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am @JAVA_TRUE@all-local: $(HTML) @JAVA_TRUE@$(HTML): $(top_srcdir)/java/src/main/java/gnu/inet/encoding/*.java @JAVA_TRUE@ cd ../../java/src/main/java && make javadoc @JAVA_TRUE@clean-local: @JAVA_TRUE@ rm -f $(HTML) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/doc/Makefile.am0000644000000000000000000000517312153706671012413 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = specifications tld java cyclo if ENABLE_GTK_DOC SUBDIRS += . reference endif EXTRA_DIST = gdoc libidn.html libidn.ps libidn.pdf texinfo.css \ components.fig info_TEXINFOS = libidn.texi libidn_TEXINFOS = fdl-1.3.texi libidn_TEXINFOS += $(gdoc_TEXINFOS) libidn_TEXINFOS += libidn-components.eps libidn-components.png \ libidn-components.pdf imagesdir = $(infodir) images_DATA = libidn-components.png libidn-components.eps: components.fig fig2dev -L eps $< $@ libidn-components.png: components.fig fig2dev -L png $< $@ libidn-components.pdf: components.fig fig2dev -L pdf $< $@ AM_MAKEINFOFLAGS = -I $(top_builddir)/doc -I $(top_srcdir)/examples TEXI2DVI = texi2dvi $(AM_MAKEINFOFLAGS) AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) \ --no-split --number-sections --css-include=texinfo.css # Man pages. dist_man_MANS = idn.1 $(gdoc_MANS) MAINTAINERCLEANFILES = $(dist_man_MANS) idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo \ $(top_srcdir)/configure.ac $(HELP2MAN) \ --name="Internationalized Domain Names command line tool" \ --output=$@ $(top_builddir)/src/idn$(EXEEXT) # GDOC GDOC_BIN = $(srcdir)/gdoc GDOC_SRC = $(top_srcdir)/lib/idna.c $(top_srcdir)/lib/nfkc.c \ $(top_srcdir)/lib/pr29.c $(top_srcdir)/lib/punycode.c \ $(top_srcdir)/lib/stringprep.c $(top_srcdir)/lib/tld.c \ $(top_srcdir)/lib/toutf8.c $(top_srcdir)/lib/version.c \ $(top_srcdir)/lib/idn-free.c \ $(top_srcdir)/lib/strerror-idna.c $(top_srcdir)/lib/strerror-pr29.c \ $(top_srcdir)/lib/strerror-punycode.c \ $(top_srcdir)/lib/strerror-stringprep.c \ $(top_srcdir)/lib/strerror-tld.c GDOC_TEXI_PREFIX = texi/ GDOC_MAN_PREFIX = man/ GDOC_MAN_EXTRA_ARGS = -module $(PACKAGE) -sourceversion $(VERSION) \ -bugsto $(PACKAGE_BUGREPORT) -pkg-name "$(PACKAGE_NAME)" \ -includefuncprefix -seeinfo $(PACKAGE) \ -copyright "2002-2013 Simon Josefsson" \ -verbatimcopying include $(srcdir)/gdoc.mk libidn-1.28/doc/libidn.html0000644000000000000000000064760112167253751012517 00000000000000 GNU Libidn 1.28

    GNU Libidn 1.28

    Table of Contents


    Next: , Up: (dir)

    GNU Libidn

    This manual is last updated 10 July 2013 for version 1.28 of GNU Libidn.

    Copyright © 2002-2013 Simon Josefsson.

    Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

    Appendices

    Indices


    Next: , Previous: Top, Up: Top

    1 Introduction

    GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries.

    The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included.

    The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call.

    The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing.

    Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included.

    Also included is a command line tool, several self tests, code examples, and more.


    Next: , Up: Introduction

    1.1 Getting Started

    This manual documents the library programming interface. All functions and data types provided by the library are explained. Included are also examples, and documentation for the command line tool idn that provide a quick interface to the library. The Emacs Lisp bindings for the library is also discussed.

    The reader is assumed to possess basic familiarity with internationalization concepts and network programming in C or C++.

    This manual can be used in several ways. If read from the beginning to the end, it gives a good introduction into the library and how it can be used in an application. Forward references are included where necessary. Later on, the manual can be used as a reference manual to get just the information needed about any particular interface of the library. Experienced programmers might want to start looking at the examples at the end of the manual (see Examples), and then only read up those parts of the interface which are unclear.


    Next: , Previous: Getting Started, Up: Introduction

    1.2 Features

    This library might have a couple of advantages over other libraries doing a similar job.

    It's Free Software
    Anybody can use, modify, and redistribute it under the terms of a free software license.
    It's thread-safe
    No global state is kept in the library. All functions are re-entrant.
    It's portable
    The code is intended to be written in pure ANSI C89. It has been tested on many Unix like operating systems, and Windows.
    It's modularized
    The library is composed of several modules, and the only interaction between modules is through each modules' public API. If you only need one piece of functionality, it is possible to take the files you need and incorporate them into your own project.
    It's not bloated
    The design of the library is based on the smallest API necessary to implement the basic functionality. It has been carefully extended with a small number of high-level wrappers to make it comfortable to use the library. However, it does not implement additional functionality just for the sake of completeness.
    It's documented
    Sadly, not all software comes with documentation these days. This one does.


    Next: , Previous: Features, Up: Introduction

    1.3 Library Overview

    The following illustration show the components that make up Libidn, and how your application relates to the library. In the illustration, various components are shown as boxes. You see the generic StringPrep component, the various StringPrep profiles including Nameprep, the Punycode component, the IDNA component, and the TLD component. The arrows indicate aggregation, e.g., IDNA uses Punycode and Nameprep, and in turn Nameprep uses the generic StringPrep interface. The interfaces to all components are available for applications, no component within the library is hidden from the application.

    libidn-components.png


    Next: , Previous: Library Overview, Up: Introduction

    1.4 Supported Platforms

    Libidn has at some point in time been tested on the following platforms. Build reports for each platforms and Libidn version is available at http://autobuild.josefsson.org/libidn/.

    1. Debian GNU/Linux 3.0 (Woody) GCC 2.95.4 and GNU Make. This is the main development platform. alphaev67-unknown-linux-gnu, alphaev6-unknown-linux-gnu, arm-unknown-linux-gnu, armv4l-unknown-linux-gnu, hppa-unknown-linux-gnu, hppa64-unknown-linux-gnu, i686-pc-linux-gnu, ia64-unknown-linux-gnu, m68k-unknown-linux-gnu, mips-unknown-linux-gnu, mipsel-unknown-linux-gnu, powerpc-unknown-linux-gnu, s390-ibm-linux-gnu, sparc-unknown-linux-gnu, sparc64-unknown-linux-gnu.
    2. Debian GNU/Linux 2.1 GCC 2.95.1 and GNU Make. armv4l-unknown-linux-gnu.
    3. Tru64 UNIX Tru64 UNIX C compiler and Tru64 Make. alphaev67-dec-osf5.1, alphaev68-dec-osf5.1.
    4. SuSE Linux 7.1 GCC 2.96 and GNU Make. alphaev6-unknown-linux-gnu, alphaev67-unknown-linux-gnu.
    5. SuSE Linux 7.2a GCC 3.0 and GNU Make. ia64-unknown-linux-gnu.
    6. SuSE Linux GCC 3.2.2 and GNU Make. x86_64-unknown-linux-gnu (AMD64 Opteron “Melody”).
    7. SuSE Enterprise Server 9 on IBM OpenPower 720 GCC 3.3.3 and GNU Make. powerpc64-unknown-linux-gnu.
    8. RedHat Linux 7.2 GCC 2.96 and GNU Make. alphaev6-unknown-linux-gnu, alphaev67-unknown-linux-gnu, ia64-unknown-linux-gnu.
    9. RedHat Linux 8.0 GCC 3.2 and GNU Make. i686-pc-linux-gnu.
    10. RedHat Advanced Server 2.1 GCC 2.96 and GNU Make. i686-pc-linux-gnu.
    11. Slackware Linux 8.0.01 GCC 2.95.3 and GNU Make. i686-pc-linux-gnu.
    12. Mandrake Linux 9.0 GCC 3.2 and GNU Make. i686-pc-linux-gnu.
    13. IRIX 6.5 MIPS C compiler, IRIX Make. mips-sgi-irix6.5.
    14. AIX 4.3.2 IBM C for AIX compiler, AIX Make. rs6000-ibm-aix4.3.2.0.
    15. Microsoft Windows 2000 (Cygwin) GCC 3.2, GNU make. i686-pc-cygwin.
    16. HP-UX 11 HP-UX C compiler and HP Make. ia64-hp-hpux11.22, hppa2.0w-hp-hpux11.11.
    17. SUN Solaris 2.7 GCC 3.0.4 and GNU Make. sparc-sun-solaris2.7.
    18. SUN Solaris 2.8 Sun WorkShop Compiler C 6.0 and SUN Make. sparc-sun-solaris2.8.
    19. SUN Solaris 2.9 Sun Forte Developer 7 C compiler and GNU Make. sparc-sun-solaris2.9.
    20. NetBSD 1.6 GCC 2.95.3 and GNU Make. alpha-unknown-netbsd1.6, i386-unknown-netbsdelf1.6.
    21. OpenBSD 3.1 and 3.2 GCC 2.95.3 and GNU Make. alpha-unknown-openbsd3.1, i386-unknown-openbsd3.1.
    22. FreeBSD 4.7 and 4.8 GCC 2.95.4 and GNU Make. alpha-unknown-freebsd4.7, alpha-unknown-freebsd4.8, i386-unknown-freebsd4.7, i386-unknown-freebsd4.8.
    23. MacOS X 10.2 Server Edition GCC 3.1 and GNU Make. powerpc-apple-darwin6.5.
    24. MacOS X 10.4 “Tiger” with Xcode 2.0 GCC 4.0 and GNU Make. powerpc-apple-darwin8.0.
    25. Cross compiled to uClinux/uClibc on Motorola Coldfire GCC 3.4 and GNU Make m68k-uclinux-elf.
    26. Cross compiled to ARM using Glibc GCC 2.95 and GNU Make arm-linux.
    27. Cross compiled to Mingw32. GCC 3.4.4 and GNU Make i586-mingw32msvc.
    28. OS/2 GCC.

    If you use Libidn on, or port Libidn to, a new platform please report it to the author.

    1.5 Getting help

    A mailing list where users of Libidn may help each other exists, and you can reach it by sending e-mail to help-libidn@gnu.org. Archives of the mailing list discussions, and an interface to manage subscriptions, is available through the World Wide Web at http://lists.gnu.org/mailman/listinfo/help-libidn.

    1.6 Commercial Support

    Commercial support is available for users of GNU Libidn. The kind of support that can be purchased may include:

    • Implement new features. Such as country code specific profiling to support a restricted subset of Unicode.
    • Port Libidn to new platforms. This could include porting Libidn to an embedded platforms that may need memory or size optimization.
    • Integrating IDN support in your existing project.
    • System design of components related to IDN.

    If you are interested, please write to:

    Simon Josefsson Datakonsult AB
    Hagagatan 24
    113 47 Stockholm
    Sweden
    
    E-mail: simon@josefsson.org
    

    If your company provides support related to GNU Libidn and would like to be mentioned here, contact the author (see Bug Reports).


    Next: , Previous: Commercial Support, Up: Introduction

    1.7 Downloading and Installing

    The package can be downloaded from several places, including:

    ftp://alpha.gnu.org/pub/gnu/libidn/

    The latest version is stored in a file, e.g., ‘libidn-1.28.tar.gz’ where the ‘1.28’ value is the highest version number in the directory.

    The package is then extracted, configured and built like many other packages that use Autoconf. For detailed information on configuring and building it, refer to the INSTALL file that is part of the distribution archive.

    Here is an example terminal session that download, configure, build and install the package. You will need a few basic tools, such as ‘sh’, ‘make’ and ‘cc’.

         $ wget -q ftp://alpha.gnu.org/pub/gnu/libidn/libidn-1.28.tar.gz
         $ tar xfz libidn-1.28.tar.gz
         $ cd libidn-1.28/
         $ ./configure
         ...
         $ make
         ...
         $ make install
         ...
    

    After that Libidn should be properly installed and ready for use.

    A few configure options may be relevant, summarized in the table.

    --enable-java
    Build the Java port into a *.JAR file. See Java API, for more information.
    --disable-tld
    Disable the TLD module. This would typically only be useful if you are building on a memory restricted platforms. See TLD Functions, for more information.
    --enable-csharp[=IMPL]
    Build the C# port into a *.DLL file. See C# API, for more information. Here, IMPL is pnet or mono, indicating whether the PNET cscc compiler or the Mono mcs compiler should be used, respectively.
    --disable-valgrind-tests
    Disable running the self-checks under Valgrind (http://valgrind.org/). Normally Valgrind does not cause problems and can detect some severe memory errors. If you are getting errors from Valgrind that are caused by the compiler or libc (possibly as a result of special optimization flags), you may use this option to disable the use of Valgrind.

    For the complete list, refer to the output from configure --help.

    1.7.1 Installing under Windows

    There are two ways to build Libidn on Windows: via MinGW or via Visual Studio.

    With MinGW, you can build a Libidn DLL and use it from other applications. After installing MinGW (http://mingw.org/) follow the generic installation instructions (see Downloading and Installing). The DLL is installed by default.

    For information on how to use the DLL in other applications, see: http://www.mingw.org/mingwfaq.shtml#faq-msvcdll.

    You can build Libidn as a native Visual Studio C++ project. This allows you to build the code for other platforms that VS supports, such as Windows Mobile. You need Visual Studio 2005 or later.

    First download and unpack the archive as described in the generic installation instructions (see Downloading and Installing). Don't run ./configure. Instead, start Visual Studio and open the project file windows/libidn.sln inside the Libidn directory. You should be able to build the project using Build Project.

    Output libraries will be written into the windows/lib (or windows/lib/debug for Debug versions) folder.

    When working with Windows you may want to look into the special memory handling functions that may be needed (see Memory handling under Windows).

    1.8 Bug Reports

    If you think you have found a bug in Libidn, please investigate it and report it.

    • Please make sure that the bug is really in Libidn, and preferably also check that it hasn't already been fixed in the latest version.
    • You have to send us a test case that makes it possible for us to reproduce the bug.
    • You also have to explain what is wrong; if you get a crash, or if the results printed are not good and in that case, in what way. Make sure that the bug report includes all information you would need to fix this kind of bug for someone else.

    Please make an effort to produce a self-contained report, with something definite that can be tested or debugged. Vague queries or piecemeal messages are difficult to act on and don't help the development effort.

    If your bug report is good, we will do our best to help you to get a corrected version of the software; if the bug report is poor, we won't do anything about it (apart from asking you to send better bug reports).

    If you think something in this manual is unclear, or downright incorrect, or if the language needs to be improved, please also send a note.

    Send your bug report to:

    bug-libidn@gnu.org


    Previous: Bug Reports, Up: Introduction

    1.9 Contributing

    If you want to submit a patch for inclusion – from solve a typo you discovered, up to adding support for a new feature – you should submit it as a bug report (see Bug Reports). There are some things that you can do to increase the chances for it to be included in the official package.

    Unless your patch is very small (say, under 10 lines) we require that you assign the copyright of your work to the Free Software Foundation. This is to protect the freedom of the project. If you have not already signed papers, we will send you the necessary information when you submit your contribution.

    For contributions that doesn't consist of actual programming code, the only guidelines are common sense. Use it.

    For code contributions, a number of style guides will help you:

    • Coding Style. Follow the GNU Standards document (see GNU Coding Standards).

      If you normally code using another coding standard, there is no problem, but you should use ‘indent’ to reformat the code (see GNU Indent) before submitting your work.

    • Use the unified diff format ‘diff -u’.
    • Return errors. No reason whatsoever should abort the execution of the library. Even memory allocation errors, e.g. when malloc return NULL, should work although result in an error code.
    • Design with thread safety in mind. Don't use global variables and the like.
    • Avoid using the C math library. It causes problems for embedded implementations, and in most situations it is very easy to avoid using it.
    • Document your functions. Use comments before each function headers, that, if properly formatted, are extracted into GTK-DOC web pages. Don't forget to update the Texinfo manual as well.
    • Supply a ChangeLog and NEWS entries, where appropriate.


    Next: , Previous: Introduction, Up: Top

    2 Preparation

    To use `Libidn', you have to perform some changes to your sources and the build system. The necessary changes are small and explained in the following sections. At the end of this chapter, it is described how the library is initialized, and how the requirements of the library are verified.

    A faster way to find out how to adapt your application for use with `Libidn' may be to look at the examples at the end of this manual (see Examples).

    2.1 Header

    The library contains a few independent parts, and each part export the interfaces (data types and functions) in a header file. You must include the appropriate header files in all programs using the library, either directly or through some other header file, like this:

         #include <stringprep.h>
    

    The header files and the functions they define are categorized as follows:

    stringprep.h
    The low-level stringprep API entry point. For IDN applications, this is usually invoked via IDNA. Some applications, specifically non-IDN ones, may want to prepare strings directly though, and should include this header file.

    The name space of the stringprep part of Libidn is stringprep* for function names, Stringprep* for data types and STRINGPREP_* for other symbols. In addition, _stringprep* is reserved for internal use and should never be used by applications.

    punycode.h
    The entry point to Punycode encoding and decoding functions. Normally punycode is used via the idna.h interface, but some application may want to perform raw punycode operations.

    The name space of the punycode part of Libidn is punycode_* for function names, Punycode* for data types and PUNYCODE_* for other symbols. In addition, _punycode* is reserved for internal use and should never be used by applications.

    idna.h
    The entry point to the IDNA functions. This is the normal entry point for applications that need IDN functionality.

    The name space of the IDNA part of Libidn is idna_* for function names, Idna* for data types and IDNA_* for other symbols. In addition, _idna* is reserved for internal use and should never be used by applications.

    tld.h
    The entry point to the TLD functions. Normal applications are not expected to need this functionality, but it is present for applications that are used by TLDs to validate customer input.

    The name space of the TLD part of Libidn is tld_* for function names, Tld_* for data types and TLD_* for other symbols. In addition, _tld* is reserved for internal use and should never be used by applications.

    pr29.h
    The entry point to the PR29 functions. These functions are used to detect “problem sequences” (see PR29 Functions), mostly for use in security critical applications.

    The name space of the PR29 part of Libidn is pr29_* for function names, Pr29_* for data types and PR29_* for other symbols. In addition, _pr29* is reserved for internal use and should never be used by applications.

    idn-free.h
    The entry point to the Windows memory de-allocation function (see Memory handling under Windows). It contains only one function idn_free.

    All header files defined and use the symbol IDNAPI to decorate the API functions.


    Next: , Previous: Header, Up: Preparation

    2.2 Initialization

    Libidn is stateless and does not need any initialization.

    2.3 Version Check

    It is often desirable to check that the version of `Libidn' used is indeed one which fits all requirements. Even with binary compatibility new features may have been introduced but due to problem with the dynamic linker an old version is actually used. So you may want to check that the version is okay right after program startup.

    stringprep_check_version

    — Function: const char * stringprep_check_version (const char * req_version)

    req_version: Required version number, or NULL.

    Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned.

    See STRINGPREP_VERSION for a suitable req_version string.

    Return value: Version string of run-time library, or NULL if the run-time library does not meet the required version number.

    The normal way to use the function is to put something similar to the following first in your main:

           if (!stringprep_check_version (STRINGPREP_VERSION))
             {
               printf ("stringprep_check_version() failed:\n"
                       "Header file incompatible with shared library.\n");
               exit(EXIT_FAILURE);
             }
    


    Next: , Previous: Version Check, Up: Preparation

    2.4 Building the source

    If you want to compile a source file including e.g. the `idna.h' header file, you must make sure that the compiler can find it in the directory hierarchy. This is accomplished by adding the path to the directory in which the header file is located to the compilers include file search path (via the -I option).

    However, the path to the include file is determined at the time the source is configured. To solve this problem, `Libidn' uses the external package pkg-config that knows the path to the include file and other configuration options. The options that need to be added to the compiler invocation at compile time are output by the --cflags option to pkg-config libidn. The following example shows how it can be used at the command line:

         gcc -c foo.c `pkg-config libidn --cflags`
    

    Adding the output of ‘pkg-config libidn --cflags’ to the compilers command line will ensure that the compiler can find e.g. the idna.h header file.

    A similar problem occurs when linking the program with the library. Again, the compiler has to find the library files. For this to work, the path to the library files has to be added to the library search path (via the -L option). For this, the option --libs to pkg-config libidn can be used. For convenience, this option also outputs all other options that are required to link the program with the `libidn' library. The example shows how to link foo.o with the `libidn' library to a program foo.

         gcc -o foo foo.o `pkg-config libidn --libs`
    

    Of course you can also combine both examples to a single command by specifying both options to pkg-config:

         gcc -o foo foo.c `pkg-config libidn --cflags --libs`
    

    2.5 Autoconf tests

    If your project uses Autoconf (see GNU Autoconf) to check for installed libraries, you might find the following snippet illustrative. It add a new configure parameter --with-libidn, and check for idna.h and ‘-lidn’ (possibly below the directory specified as the optional argument to --with-libidn), and define the CPP symbol LIBIDN if the library is found. The default behaviour is to search for the library and enable the functionality (that is, define the symbol) when the library is found, but if you wish to make the default behaviour of your package be that Libidn is not used (even if it is installed on the system), change ‘libidn=yes’ to ‘libidn=no’ on the third line.

         AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
                                         [Support IDN (needs GNU Libidn)]),
           libidn=$withval, libidn=yes)
         if test "$libidn" != "no"; then
           if test "$libidn" != "yes"; then
             LDFLAGS="${LDFLAGS} -L$libidn/lib"
             CPPFLAGS="${CPPFLAGS} -I$libidn/include"
           fi
           AC_CHECK_HEADER(idna.h,
             AC_CHECK_LIB(idn, stringprep_check_version,
               [libidn=yes LIBS="${LIBS} -lidn"], libidn=no),
             libidn=no)
         fi
         if test "$libidn" != "no" ; then
           AC_DEFINE(LIBIDN, 1, [Define to 1 if you want IDN support.])
         else
           AC_MSG_WARN([Libidn not found])
         fi
         AC_MSG_CHECKING([if Libidn should be used])
         AC_MSG_RESULT($libidn)
    

    If you require that your users have installed pkg-config (which I cannot recommend generally), the above can be done more easily as follows.

         AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]],
                                         [Support IDN (needs GNU Libidn)]),
           libidn=$withval, libidn=yes)
         if test "$libidn" != "no" ; then
           PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no])
           if test "$libidn" != "yes" ; then
             libidn=no
             AC_MSG_WARN([Libidn not found])
           else
             libidn=yes
             AC_DEFINE(LIBIDN, 1, [Define to 1 if you want Libidn.])
           fi
         fi
         AC_MSG_CHECKING([if Libidn should be used])
         AC_MSG_RESULT($libidn)
    


    Previous: Autoconf tests, Up: Preparation

    2.6 Memory handling under Windows

    Several functions in the library allocates memory. The memory is expected to be de-allocated using the free function. Under Windows, it is sometimes necessary to de-allocate memory in the same module that allocated a memory region. The reason is that different modules use separate heap memory regions. To solve this problem we provide a function to de-allocate memory inside the library.

    Note that we do not recommend using this interface generally if you do not care about Windows portability.

    2.7 Header file idn-free.h

    To use the function explained in this chapter, you need to include the file idn-free.h using:

         #include <idn-free.h>
    

    2.8 Memory de-allocation function

    idn_free

    — Function: void idn_free (void * ptr)

    ptr: memory region to deallocate, or NULL.

    Deallocates memory region by calling free(). If ptr is NULL no operation is performed.

    Normally applications de-allocate strings allocated by libidn by calling free() directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible.


    Next: , Previous: Preparation, Up: Top

    3 Utility Functions

    The rest of this library makes extensive use of Unicode characters. In order to interface this library with the outside world, your application may need to make various Unicode transformations.

    3.1 Header file stringprep.h

    To use the functions explained in this chapter, you need to include the file stringprep.h using:

         #include <stringprep.h>
    

    3.2 Unicode Encoding Transformation

    stringprep_unichar_to_utf8

    — Function: int stringprep_unichar_to_utf8 (uint32_t c, char * outbuf)

    c: a ISO10646 character code

    outbuf: output buffer, must have at least 6 bytes of space. If NULL, the length will be computed and returned and nothing will be written to outbuf.

    Converts a single character to UTF-8.

    Return value: number of bytes written.

    stringprep_utf8_to_unichar

    — Function: uint32_t stringprep_utf8_to_unichar (const char * p)

    p: a pointer to Unicode character encoded as UTF-8

    Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If p does not point to a valid UTF-8 encoded character, results are undefined.

    Return value: the resulting character.

    stringprep_ucs4_to_utf8

    — Function: char * stringprep_ucs4_to_utf8 (const uint32_t * str, ssize_t len, size_t * items_read, size_t * items_written)

    str: a UCS-4 encoded string

    len: the maximum length of str to use. If len < 0, then the string is terminated with a 0 character.

    items_read: location to store number of characters read read, or NULL.

    items_written: location to store number of bytes written or NULL. The value here stored does not include the trailing 0 byte.

    Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte.

    Return value: a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, NULL will be returned.

    stringprep_utf8_to_ucs4

    — Function: uint32_t * stringprep_utf8_to_ucs4 (const char * str, ssize_t len, size_t * items_written)

    str: a UTF-8 encoded string

    len: the maximum length of str to use. If len < 0, then the string is nul-terminated.

    items_written: location to store the number of characters in the result, or NULL.

    Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4, assuming valid UTF-8 input. This function does no error checking on the input.

    Return value: a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller.

    3.3 Unicode Normalization

    stringprep_ucs4_nfkc_normalize

    — Function: uint32_t * stringprep_ucs4_nfkc_normalize (const uint32_t * str, ssize_t len)

    str: a Unicode string.

    len: length of str array, or -1 if str is nul-terminated.

    Converts a UCS4 string into canonical form, see stringprep_utf8_nfkc_normalize() for more information.

    Return value: a newly allocated Unicode string, that is the NFKC normalized form of str.

    stringprep_utf8_nfkc_normalize

    — Function: char * stringprep_utf8_nfkc_normalize (const char * str, ssize_t len)

    str: a UTF-8 encoded string.

    len: length of str, in bytes, or -1 if str is nul-terminated.

    Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character.

    The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form.

    Return value: a newly allocated string, that is the NFKC normalized form of str.

    3.4 Character Set Conversion

    stringprep_locale_charset

    — Function: const char * stringprep_locale_charset ( void)

    Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything.

    Note that this function return the application's locale's preferred charset (or thread's locale's preffered charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding.

    Return value: Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback.

    stringprep_convert

    — Function: char * stringprep_convert (const char * str, const char * to_codeset, const char * from_codeset)

    str: input zero-terminated string.

    to_codeset: name of destination character set.

    from_codeset: name of origin character set, as used by str.

    Convert the string from one character set to another using the system's iconv() function.

    Return value: Returns newly allocated zero-terminated string which is str transcoded into to_codeset.

    stringprep_locale_to_utf8

    — Function: char * stringprep_locale_to_utf8 (const char * str)

    str: input zero terminated string.

    Convert string encoded in the locale's character set into UTF-8 by using stringprep_convert().

    Return value: Returns newly allocated zero-terminated string which is str transcoded into UTF-8.

    stringprep_utf8_to_locale

    — Function: char * stringprep_utf8_to_locale (const char * str)

    str: input zero terminated string.

    Convert string encoded in UTF-8 into the locale's character set by using stringprep_convert().

    Return value: Returns newly allocated zero-terminated string which is str transcoded into the locale's character set.


    Next: , Previous: Utility Functions, Up: Top

    4 Stringprep Functions

    Stringprep describes a framework for preparing Unicode text strings in order to increase the likelihood that string input and string comparison work in ways that make sense for typical users throughout the world. The stringprep protocol is useful for protocol identifier values, company and personal names, internationalized domain names, and other text strings.

    4.1 Header file stringprep.h

    To use the functions explained in this chapter, you need to include the file stringprep.h using:

         #include <stringprep.h>
    

    4.2 Defining A Stringprep Profile

    Further types and structures are defined for applications that want to specify their own stringprep profile. As these are fairly obscure, and by necessity tied to the implementation, we do not document them here. Look into the stringprep.h header file, and the profiles.c source code for the details.

    4.3 Control Flags

    — Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_NFKC

    Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations.

    — Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_BIDI

    Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations.

    — Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_UNASSIGNED

    Make the library return with an error if string contains unassigned characters according to profile.

    4.4 Core Functions

    stringprep_4i

    — Function: int stringprep_4i (uint32_t * ucs4, size_t * len, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile)

    ucs4: input/output array with string to prepare.

    len: on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points.

    maxucs4len: maximum length of input/output array.

    flags: a Stringprep_profile_flags value, or 0.

    profile: pointer to Stringprep_profile to use.

    Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string.

    The input is not required to be zero terminated (ucs4[len] = 0). The output will not be zero terminated unless ucs4[len] = 0. Instead, see stringprep_4zi() if your input is zero terminated or if you want the output to be.

    Since the stringprep operation can expand the string, maxucs4len indicate how large the buffer holding the string is. This function will not read or write to code points outside that size.

    The flags are one of Stringprep_profile_flags values, or 0.

    The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

    Return value: Returns STRINGPREP_OK iff successful, or an Stringprep_rc error code.

    stringprep_4zi

    — Function: int stringprep_4zi (uint32_t * ucs4, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile)

    ucs4: input/output array with zero terminated string to prepare.

    maxucs4len: maximum length of input/output array.

    flags: a Stringprep_profile_flags value, or 0.

    profile: pointer to Stringprep_profile to use.

    Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string.

    Since the stringprep operation can expand the string, maxucs4len indicate how large the buffer holding the string is. This function will not read or write to code points outside that size.

    The flags are one of Stringprep_profile_flags values, or 0.

    The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

    Return value: Returns STRINGPREP_OK iff successful, or an Stringprep_rc error code.

    stringprep

    — Function: int stringprep (char * in, size_t maxlen, Stringprep_profile_flags flags, const Stringprep_profile * profile)

    in: input/ouput array with string to prepare.

    maxlen: maximum length of input/output array.

    flags: a Stringprep_profile_flags value, or 0.

    profile: pointer to Stringprep_profile to use.

    Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string.

    Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see stringprep_locale_to_utf8().

    Since the stringprep operation can expand the string, maxlen indicate how large the buffer holding the string is. This function will not read or write to characters outside that size.

    The flags are one of Stringprep_profile_flags values, or 0.

    The profile contain the Stringprep_profile instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles.

    Return value: Returns STRINGPREP_OK iff successful, or an error code.

    stringprep_profile

    — Function: int stringprep_profile (const char * in, char ** out, const char * profile, Stringprep_profile_flags flags)

    in: input array with UTF-8 string to prepare.

    out: output variable with pointer to newly allocate string.

    profile: name of stringprep profile to use.

    flags: a Stringprep_profile_flags value, or 0.

    Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable.

    Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see stringprep_locale_to_utf8().

    The output out variable must be deallocated by the caller.

    The flags are one of Stringprep_profile_flags values, or 0.

    The profile specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles.

    Return value: Returns STRINGPREP_OK iff successful, or an error code.

    4.5 Error Handling

    stringprep_strerror

    — Function: const char * stringprep_strerror (Stringprep_rc rc)

    rc: a Stringprep_rc return code.

    Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

    STRINGPREP_OK: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

    STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode code points, which is forbidden by the profile.

    STRINGPREP_CONTAINS_PROHIBITED: String contain code points prohibited by the profile.

    STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with conflicting bidirection category.

    STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character in string not of proper bidirectional category.

    STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code points detected by bidirectional code.

    STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too small. This usually indicate a problem in the calling application.

    STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. This usually indicate an internal error in the library.

    STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. This usually indicate a problem in the calling application.

    STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not known to the library.

    STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This usually indicate an internal error in the library.

    STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is usually a fatal error.

    Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code rc.

    4.6 Stringprep Profile Macros

    — Function: int stringprep_nameprep_no_unassigned (char * in, int maxlen)

    in: input/ouput array with string to prepare.

    maxlen: maximum length of input/output array.

    Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is false, use stringprep_nameprep for true AllowUnassigned. Returns 0 iff successful, or an error code.

    — Function: int stringprep_iscsi (char * in, int maxlen)

    in: input/ouput array with string to prepare.

    maxlen: maximum length of input/output array.

    Prepare the input UTF-8 string according to the draft iSCSI stringprep profile. Returns 0 iff successful, or an error code.

    — Function: int stringprep_plain (char * in, int maxlen)

    in: input/ouput array with string to prepare.

    maxlen: maximum length of input/output array.

    Prepare the input UTF-8 string according to the draft SASL ANONYMOUS profile. Returns 0 iff successful, or an error code.

    — Function: int stringprep_xmpp_nodeprep (char * in, int maxlen)

    in: input/ouput array with string to prepare.

    maxlen: maximum length of input/output array.

    Prepare the input UTF-8 string according to the draft XMPP node identifier profile. Returns 0 iff successful, or an error code.

    — Function: int stringprep_xmpp_resourceprep (char * in, int maxlen)

    in: input/ouput array with string to prepare.

    maxlen: maximum length of input/output array.

    Prepare the input UTF-8 string according to the draft XMPP resource identifier profile. Returns 0 iff successful, or an error code.


    Next: , Previous: Stringprep Functions, Up: Top

    5 Punycode Functions

    Punycode is a simple and efficient transfer encoding syntax designed for use with Internationalized Domain Names in Applications. It uniquely and reversibly transforms a Unicode string into an ASCII string. ASCII characters in the Unicode string are represented literally, and non-ASCII characters are represented by ASCII characters that are allowed in host name labels (letters, digits, and hyphens). A general algorithm called Bootstring allows a string of basic code points to uniquely represent any string of code points drawn from a larger set. Punycode is an instance of Bootstring that uses particular parameter values, appropriate for IDNA.

    5.1 Header file punycode.h

    To use the functions explained in this chapter, you need to include the file punycode.h using:

         #include <punycode.h>
    

    5.2 Unicode Code Point Data Type

    The punycode function uses a special type to denote Unicode code points. It is guaranteed to always be a 32 bit unsigned integer.

    — Punycode Unicode code point: uint32_t punycode_uint

    A unsigned integer that hold Unicode code points.

    5.3 Core Functions

    Note that the current implementation will fail if the input_length exceed 4294967295 (the size of punycode_uint). This restriction may be removed in the future. Meanwhile applications are encouraged to not depend on this problem, and use sizeof to initialize input_length and output_length.

    The functions provided are the following two entry points:

    punycode_encode

    — Function: int punycode_encode (size_t input_length, const punycode_uint [] input, const unsigned char [] case_flags, size_t * output_length, char [] output)

    input_length: The number of code points in the input array and the number of flags in the case_flags array.

    input: An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values.

    case_flags: A NULL pointer or an array of boolean values parallel to the input array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If case_flags is a NULL pointer then ASCII letters are left as they are, and other code points are treated as unflagged.

    output_length: The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output.

    output: An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the input contains zeros. (Of course the caller can leave room for a terminator and add one if needed.)

    Converts a sequence of code points (presumed to be Unicode code points) to Punycode.

    Return value: The return value can be any of the Punycode_status values defined above except PUNYCODE_BAD_INPUT. If not PUNYCODE_SUCCESS, then output_size and output might contain garbage.

    punycode_decode

    — Function: int punycode_decode (size_t input_length, const char [] input, size_t * output_length, punycode_uint [] output, unsigned char [] case_flags)

    input_length: The number of ASCII code points in the input array.

    input: An array of ASCII code points (0..7F).

    output_length: The caller passes in the maximum number of code points that it can receive into the output array (which is also the maximum number of flags that it can receive into the case_flags array, if case_flags is not a NULL pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied output_length is greater than that.

    output: An array of code points like the input argument of punycode_encode() (see above).

    case_flags: A NULL pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the output array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless.

    Converts Punycode to a sequence of code points (presumed to be Unicode code points).

    Return value: The return value can be any of the Punycode_status values defined above. If not PUNYCODE_SUCCESS, then output_length, output, and case_flags might contain garbage.

    5.4 Error Handling

    punycode_strerror

    — Function: const char * punycode_strerror (Punycode_status rc)

    rc: an Punycode_status return code.

    Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

    PUNYCODE_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

    PUNYCODE_BAD_INPUT: Input is invalid.

    PUNYCODE_BIG_OUTPUT: Output would exceed the space provided.

    PUNYCODE_OVERFLOW: Input needs wider integers to process.

    Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code rc.


    Next: , Previous: Punycode Functions, Up: Top

    6 IDNA Functions

    Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. The IDNA document defines internationalized domain names (IDNs) and a mechanism called IDNA for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text.

    6.1 Header file idna.h

    To use the functions explained in this chapter, you need to include the file idna.h using:

         #include <idna.h>
    

    6.2 Control Flags

    The IDNA flags parameter can take on the following values, or a bit-wise inclusive or of any subset of the parameters:

    — Return code: Idna_flags IDNA_ALLOW_UNASSIGNED

    Allow unassigned Unicode code points.

    — Return code: Idna_flags IDNA_USE_STD3_ASCII_RULES

    Check output to make sure it is a STD3 conforming host name.

    6.3 Prefix String

    — Macro: #define IDNA_ACE_PREFIX

    String with the official IDNA prefix, xn--.

    6.4 Core Functions

    The idea behind the IDNA function names are as follows: the idna_to_ascii_4i and idna_to_unicode_44i functions are the core IDNA primitives. The 4 indicate that the function takes UCS-4 strings (i.e., Unicode code points encoded in a 32-bit unsigned integer type) of the specified length. The i indicate that the data is written “inline” into the buffer. This means the caller is responsible for allocating (and de-allocating) the string, and providing the library with the allocated length of the string. The output length is written in the output length variable. The remaining functions all contain the z indicator, which means the strings are zero terminated. All output strings are allocated by the library, and must be de-allocated by the caller. The 4 indicator again means that the string is UCS-4, the 8 means the strings are UTF-8 and the l indicator means the strings are encoded in the encoding used by the current locale.

    The functions provided are the following entry points:

    idna_to_ascii_4i

    — Function: int idna_to_ascii_4i (const uint32_t * in, size_t inlen, char * out, int flags)

    in: input array with unicode code points.

    inlen: length of input array with unicode code points.

    out: output zero terminated string that must have room for at least 63 characters plus the terminating zero.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels.

    It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific.

    The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition.

    ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once.

    Return value: Returns 0 on success, or an Idna_rc error code.

    idna_to_unicode_44i

    — Function: int idna_to_unicode_44i (const uint32_t * in, size_t inlen, uint32_t * out, size_t * outlen, int flags)

    in: input array with unicode code points.

    inlen: length of input array with unicode code points.

    out: output array with unicode code points.

    outlen: on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered.

    ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step.

    The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used.

    The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points.

    Return value: Returns Idna_rc error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard.

    6.5 Simplified ToASCII Interface

    idna_to_ascii_4z

    — Function: int idna_to_ascii_4z (const uint32_t * input, char ** output, int flags)

    input: zero terminated input Unicode string.

    output: pointer to newly allocated output string.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    idna_to_ascii_8z

    — Function: int idna_to_ascii_8z (const char * input, char ** output, int flags)

    input: zero terminated input UTF-8 string.

    output: pointer to newly allocated output string.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    idna_to_ascii_lz

    — Function: int idna_to_ascii_lz (const char * input, char ** output, int flags)

    input: zero terminated input string encoded in the current locale's character set.

    output: pointer to newly allocated output string.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    6.6 Simplified ToUnicode Interface

    idna_to_unicode_4z4z

    — Function: int idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags)

    input: zero-terminated Unicode string.

    output: pointer to newly allocated output Unicode string.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    idna_to_unicode_8z4z

    — Function: int idna_to_unicode_8z4z (const char * input, uint32_t ** output, int flags)

    input: zero-terminated UTF-8 string.

    output: pointer to newly allocated output Unicode string.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    idna_to_unicode_8z8z

    — Function: int idna_to_unicode_8z8z (const char * input, char ** output, int flags)

    input: zero-terminated UTF-8 string.

    output: pointer to newly allocated output UTF-8 string.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    idna_to_unicode_8zlz

    — Function: int idna_to_unicode_8zlz (const char * input, char ** output, int flags)

    input: zero-terminated UTF-8 string.

    output: pointer to newly allocated output string encoded in the current locale's character set.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    idna_to_unicode_lzlz

    — Function: int idna_to_unicode_lzlz (const char * input, char ** output, int flags)

    input: zero-terminated string encoded in the current locale's character set.

    output: pointer to newly allocated output string encoded in the current locale's character set.

    flags: an Idna_flags value, e.g., IDNA_ALLOW_UNASSIGNED or IDNA_USE_STD3_ASCII_RULES.

    Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller.

    Return value: Returns IDNA_SUCCESS on success, or error code.

    6.7 Error Handling

    idna_strerror

    — Function: const char * idna_strerror (Idna_rc rc)

    rc: an Idna_rc return code.

    Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

    IDNA_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

    IDNA_STRINGPREP_ERROR: Error during string preparation.

    IDNA_PUNYCODE_ERROR: Error during punycode operation.

    IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters.

    IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D).

    IDNA_INVALID_LENGTH: The final output string is not within the (inclusive) range 1 to 63 characters.

    IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix (for ToUnicode).

    IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output string does not equal the input.

    IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for ToASCII).

    IDNA_ICONV_ERROR: Could not convert string in locale encoding.

    IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a fatal error).

    IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used internally in libc).

    Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code rc.


    Next: , Previous: IDNA Functions, Up: Top

    7 TLD Functions

    Organizations that manage some Top Level Domains (TLDs) have published tables with characters they accept within the domain. The reason may be to reduce complexity that come from using the full Unicode range, and to protect themselves from future (backwards incompatible) changes in the IDN or Unicode specifications. Libidn implement an infrastructure for defining and checking strings against such tables. Libidn also ship some tables from TLDs that we have managed to get permission to use them from. Because these tables are even less static than Unicode or StringPrep tables, it is likely that they will be updated from time to time (even in backwards incompatible ways). The Libidn interface provide a “version” field for each TLD table, which can be compared for equality to guarantee the same operation over time.

    From a design point of view, you can regard the TLD tables for IDN as the “localization” step that come after the “internationalization” step provided by the IETF standards.

    The TLD functionality rely on up-to-date tables. The latest version of Libidn aim to provide these, but tables with unclear copying conditions, or generally experimental tables, are not included. Some such tables can be found at https://github.com/gnuthor/tldchk.

    7.1 Header file tld.h

    To use the functions explained in this chapter, you need to include the file tld.h using:

         #include <tld.h>
    

    7.2 Core Functions

    tld_check_4t

    — Function: int tld_check_4t (const uint32_t * in, size_t inlen, size_t * errpos, const Tld_table * tld)

    in: Array of unicode code points to process. Does not need to be zero terminated.

    inlen: Number of unicode code points.

    errpos: Position of offending character is returned here.

    tld: A Tld_table data structure representing the restrictions for which the input should be tested.

    Test each of the code points in in for whether or not they are allowed by the data structure in tld, return the position of the first character for which this is not the case in errpos.

    Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

    tld_check_4tz

    — Function: int tld_check_4tz (const uint32_t * in, size_t * errpos, const Tld_table * tld)

    in: Zero terminated array of unicode code points to process.

    errpos: Position of offending character is returned here.

    tld: A Tld_table data structure representing the restrictions for which the input should be tested.

    Test each of the code points in in for whether or not they are allowed by the data structure in tld, return the position of the first character for which this is not the case in errpos.

    Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

    7.3 Utility Functions

    tld_get_4

    — Function: int tld_get_4 (const uint32_t * in, size_t inlen, char ** out)

    in: Array of unicode code points to process. Does not need to be zero terminated.

    inlen: Number of unicode code points.

    out: Zero terminated ascii result string pointer.

    Isolate the top-level domain of in and return it as an ASCII string in out.

    Return value: Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

    tld_get_4z

    — Function: int tld_get_4z (const uint32_t * in, char ** out)

    in: Zero terminated array of unicode code points to process.

    out: Zero terminated ascii result string pointer.

    Isolate the top-level domain of in and return it as an ASCII string in out.

    Return value: Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

    tld_get_z

    — Function: int tld_get_z (const char * in, char ** out)

    in: Zero terminated character array to process.

    out: Zero terminated ascii result string pointer.

    Isolate the top-level domain of in and return it as an ASCII string in out. The input string in may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding.

    Return value: Return TLD_SUCCESS on success, or the corresponding Tld_rc error code otherwise.

    tld_get_table

    — Function: const Tld_table * tld_get_table (const char * tld, const Tld_table ** tables)

    tld: TLD name (e.g. "com") as zero terminated ASCII byte string.

    tables: Zero terminated array of Tld_table info-structures for TLDs.

    Get the TLD table for a named TLD by searching through the given TLD table array.

    Return value: Return structure corresponding to TLD tld by going thru tables, or return NULL if no such structure is found.

    tld_default_table

    — Function: const Tld_table * tld_default_table (const char * tld, const Tld_table ** overrides)

    tld: TLD name (e.g. "com") as zero terminated ASCII byte string.

    overrides: Additional zero terminated array of Tld_table info-structures for TLDs, or NULL to only use library deault tables.

    Get the TLD table for a named TLD, using the internal defaults, possibly overrided by the (optional) supplied tables.

    Return value: Return structure corresponding to TLD tld_str, first looking through overrides then thru built-in list, or NULL if no such structure found.

    7.4 High-Level Wrapper Functions

    tld_check_4

    — Function: int tld_check_4 (const uint32_t * in, size_t inlen, size_t * errpos, const Tld_table ** overrides)

    in: Array of unicode code points to process. Does not need to be zero terminated.

    inlen: Number of unicode code points.

    errpos: Position of offending character is returned here.

    overrides: A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

    Test each of the code points in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos.

    Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

    tld_check_4z

    — Function: int tld_check_4z (const uint32_t * in, size_t * errpos, const Tld_table ** overrides)

    in: Zero-terminated array of unicode code points to process.

    errpos: Position of offending character is returned here.

    overrides: A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

    Test each of the code points in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos.

    Return value: Returns the Tld_rc value TLD_SUCCESS if all code points are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

    tld_check_8z

    — Function: int tld_check_8z (const char * in, size_t * errpos, const Tld_table ** overrides)

    in: Zero-terminated UTF8 string to process.

    errpos: Position of offending character is returned here.

    overrides: A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

    Test each of the characters in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos. Note that the error position refers to the decoded character offset rather than the byte position in the string.

    Return value: Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

    tld_check_lz

    — Function: int tld_check_lz (const char * in, size_t * errpos, const Tld_table ** overrides)

    in: Zero-terminated string in the current locales encoding to process.

    errpos: Position of offending character is returned here.

    overrides: A Tld_table array of additional domain restriction structures that complement and supersede the built-in information.

    Test each of the characters in in for whether or not they are allowed by the information in overrides or by the built-in TLD restriction data. When data for the same TLD is available both internally and in overrides, the information in overrides takes precedence. If several entries for a specific TLD are found, the first one is used. If overrides is NULL, only the built-in information is used. The position of the first offending character is returned in errpos. Note that the error position refers to the decoded character offset rather than the byte position in the string.

    Return value: Returns the Tld_rc value TLD_SUCCESS if all characters are valid or when tld is null, TLD_INVALID if a character is not allowed, or additional error codes on general failure conditions.

    7.5 Error Handling

    tld_strerror

    — Function: const char * tld_strerror (Tld_rc rc)

    rc: tld return code

    Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

    TLD_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

    TLD_INVALID: Invalid character found.

    TLD_NODATA: No input data was provided.

    TLD_MALLOC_ERROR: Error during memory allocation.

    TLD_ICONV_ERROR: Error during iconv string conversion.

    TLD_NO_TLD: No top-level domain found in domain string.

    Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code rc.


    Next: , Previous: TLD Functions, Up: Top

    8 PR29 Functions

    A deficiency in the specification of Unicode Normalization Forms has been found. The consequence is that some strings can be normalized into different strings by different implementations. In other words, two different implementations may return different output for the same input (because the interpretation of the specification is ambiguous). Further, an implementation invoked again on the one of the output strings may return a different string (because one of the interpretation of the ambiguous specification make normalization non-idempotent). Fortunately, only a select few character sequence exhibit this problem, and none of them are expected to occur in natural languages (due to different linguistic uses of the involved characters).

    A full discussion of the problem may be found at:

    http://www.unicode.org/review/pr-29.html

    The PR29 functions below allow you to detect the problem sequence. So when would you want to use these functions? For most applications, such as those using Nameprep for IDN, this is likely only to be an interoperability problem. Thus, you may not want to care about it, as the character sequences will rarely occur naturally. However, if you are using a profile, such as SASLPrep, to process authentication tokens; authorization tokens; or passwords, there is a real danger that attackers may try to use the peculiarities in these strings to attack parts of your system. As only a small number of strings, and no naturally occurring strings, exhibit this problem, the conservative approach of rejecting the strings is recommended. If this approach is not used, you should instead verify that all parts of your system, that process the tokens and passwords, use a NFKC implementation that produce the same output for the same input.

    Technically inclined readers may be interested in knowing more about the implementation aspects of the PR29 flaw. See PR29 discussion.

    8.1 Header file pr29.h

    To use the functions explained in this chapter, you need to include the file pr29.h using:

         #include <pr29.h>
    

    8.2 Core Functions

    pr29_4

    — Function: int pr29_4 (const uint32_t * in, size_t len)

    in: input array with unicode code points.

    len: length of input array with unicode code points.

    Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

    Return value: Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations).

    8.3 Utility Functions

    pr29_4z

    — Function: int pr29_4z (const uint32_t * in)

    in: zero terminated array of Unicode code points.

    Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

    Return value: Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations).

    pr29_8z

    — Function: int pr29_8z (const char * in)

    in: zero terminated input UTF-8 string.

    Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications.

    Return value: Returns the Pr29_rc value PR29_SUCCESS on success, and PR29_PROBLEM if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or PR29_STRINGPREP_ERROR if there was a problem converting the string from UTF-8 to UCS-4.

    8.4 Error Handling

    pr29_strerror

    — Function: const char * pr29_strerror (Pr29_rc rc)

    rc: an Pr29_rc return code.

    Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user.

    PR29_SUCCESS: Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes.

    PR29_PROBLEM: A problem sequence was encountered.

    PR29_STRINGPREP_ERROR: The character set conversion failed (only for pr29_8z()).

    Return value: Returns a pointer to a statically allocated string containing a description of the error with the return code rc.


    Next: , Previous: PR29 Functions, Up: Top

    9 Examples

    This chapter contains example code which illustrate how `Libidn' can be used when writing your own application.


    Next: , Up: Examples

    9.1 Example 1

    This example demonstrates how the stringprep functions are used.

    /* example.c --- Example code showing how to use stringprep().
     * Copyright (C) 2002-2013 Simon Josefsson
     *
     * This file is part of GNU Libidn.
     *
     * 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 3 of the License, or
     * (at your option) any later version.
     *
     * 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.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <locale.h>		/* setlocale() */
    #include <stringprep.h>
    
    /*
     * Compiling using libtool and pkg-config is recommended:
     *
     * $ libtool cc -o example example.c `pkg-config --cflags --libs libidn`
     * $ ./example
     * Input string encoded as `ISO-8859-1': ª
     * Before locale2utf8 (length 2): aa 0a
     * Before stringprep (length 3): c2 aa 0a
     * After stringprep (length 2): 61 0a
     * $
     *
     */
    
    int
    main (void)
    {
      char buf[BUFSIZ];
      char *p;
      int rc;
      size_t i;
    
      setlocale (LC_ALL, "");
    
      printf ("Input string encoded as `%s': ", stringprep_locale_charset ());
      fflush (stdout);
      if (!fgets (buf, BUFSIZ, stdin))
        perror ("fgets");
      buf[strlen (buf) - 1] = '\0';
    
      printf ("Before locale2utf8 (length %ld): ", (long int) strlen (buf));
      for (i = 0; i < strlen (buf); i++)
        printf ("%02x ", buf[i] & 0xFF);
      printf ("\n");
    
      p = stringprep_locale_to_utf8 (buf);
      if (p)
        {
          strcpy (buf, p);
          free (p);
        }
      else
        printf ("Could not convert string to UTF-8, continuing anyway...\n");
    
      printf ("Before stringprep (length %ld): ", (long int) strlen (buf));
      for (i = 0; i < strlen (buf); i++)
        printf ("%02x ", buf[i] & 0xFF);
      printf ("\n");
    
      rc = stringprep (buf, BUFSIZ, 0, stringprep_nameprep);
      if (rc != STRINGPREP_OK)
        printf ("Stringprep failed (%d): %s\n", rc, stringprep_strerror (rc));
      else
        {
          printf ("After stringprep (length %ld): ", (long int) strlen (buf));
          for (i = 0; i < strlen (buf); i++)
    	printf ("%02x ", buf[i] & 0xFF);
          printf ("\n");
        }
    
      return 0;
    }
    


    Next: , Previous: Example 1, Up: Examples

    9.2 Example 2

    This example demonstrates how the punycode functions are used.

    /* example2.c --- Example code showing how to use punycode.
     * Copyright (C) 2002-2013 Simon Josefsson
     * Copyright (C) 2002  Adam M. Costello
     *
     * This file is part of GNU Libidn.
     *
     * 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 3 of the License, or
     * (at your option) any later version.
     *
     * 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.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     */
    
    #include <locale.h>		/* setlocale() */
    
    /*
     * This file is derived from RFC 3492 written by Adam M. Costello.
     *
     * Disclaimer and license: Regarding this entire document or any
     * portion of it (including the pseudocode and C code), the author
     * makes no guarantees and is not responsible for any damage resulting
     * from its use.  The author grants irrevocable permission to anyone
     * to use, modify, and distribute it in any way that does not diminish
     * the rights of anyone else to use, modify, and distribute it,
     * provided that redistributed derivative works do not contain
     * misleading author or version information.  Derivative works need
     * not be licensed under similar terms.
     *
     */
    
    #include <assert.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #include <punycode.h>
    
    /* For testing, we'll just set some compile-time limits rather than */
    /* use malloc(), and set a compile-time option rather than using a  */
    /* command-line option.                                             */
    
    enum
    {
      unicode_max_length = 256,
      ace_max_length = 256
    };
    
    static void
    usage (char **argv)
    {
      fprintf (stderr,
    	   "\n"
    	   "%s -e reads code points and writes a Punycode string.\n"
    	   "%s -d reads a Punycode string and writes code points.\n"
    	   "\n"
    	   "Input and output are plain text in the native character set.\n"
    	   "Code points are in the form u+hex separated by whitespace.\n"
    	   "Although the specification allows Punycode strings to contain\n"
    	   "any characters from the ASCII repertoire, this test code\n"
    	   "supports only the printable characters, and needs the Punycode\n"
    	   "string to be followed by a newline.\n"
    	   "The case of the u in u+hex is the force-to-uppercase flag.\n",
    	   argv[0], argv[0]);
      exit (EXIT_FAILURE);
    }
    
    static void
    fail (const char *msg)
    {
      fputs (msg, stderr);
      exit (EXIT_FAILURE);
    }
    
    static const char too_big[] =
      "input or output is too large, recompile with larger limits\n";
    static const char invalid_input[] = "invalid input\n";
    static const char overflow[] = "arithmetic overflow\n";
    static const char io_error[] = "I/O error\n";
    
    /* The following string is used to convert printable */
    /* characters between ASCII and the native charset:  */
    
    static const char print_ascii[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" " !\"#$%&'()*+,-./" "0123456789:;<=>?" "\0x40"	/* at sign */
      "ABCDEFGHIJKLMNO"
      "PQRSTUVWXYZ[\\]^_" "`abcdefghijklmno" "pqrstuvwxyz{|}~\n";
    
    int
    main (int argc, char **argv)
    {
      enum punycode_status status;
      int r;
      size_t input_length, output_length, j;
      unsigned char case_flags[unicode_max_length];
    
      setlocale (LC_ALL, "");
    
      if (argc != 2)
        usage (argv);
      if (argv[1][0] != '-')
        usage (argv);
      if (argv[1][2] != 0)
        usage (argv);
    
      if (argv[1][1] == 'e')
        {
          uint32_t input[unicode_max_length];
          unsigned long codept;
          char output[ace_max_length + 1], uplus[3];
          int c;
    
          /* Read the input code points: */
    
          input_length = 0;
    
          for (;;)
    	{
    	  r = scanf ("%2s%lx", uplus, &codept);
    	  if (ferror (stdin))
    	    fail (io_error);
    	  if (r == EOF || r == 0)
    	    break;
    
    	  if (r != 2 || uplus[1] != '+' || codept > (uint32_t) - 1)
    	    {
    	      fail (invalid_input);
    	    }
    
    	  if (input_length == unicode_max_length)
    	    fail (too_big);
    
    	  if (uplus[0] == 'u')
    	    case_flags[input_length] = 0;
    	  else if (uplus[0] == 'U')
    	    case_flags[input_length] = 1;
    	  else
    	    fail (invalid_input);
    
    	  input[input_length++] = codept;
    	}
    
          /* Encode: */
    
          output_length = ace_max_length;
          status = punycode_encode (input_length, input, case_flags,
    				&output_length, output);
          if (status == punycode_bad_input)
    	fail (invalid_input);
          if (status == punycode_big_output)
    	fail (too_big);
          if (status == punycode_overflow)
    	fail (overflow);
          assert (status == punycode_success);
    
          /* Convert to native charset and output: */
    
          for (j = 0; j < output_length; ++j)
    	{
    	  c = output[j];
    	  assert (c >= 0 && c <= 127);
    	  if (print_ascii[c] == 0)
    	    fail (invalid_input);
    	  output[j] = print_ascii[c];
    	}
    
          output[j] = 0;
          r = puts (output);
          if (r == EOF)
    	fail (io_error);
          return EXIT_SUCCESS;
        }
    
      if (argv[1][1] == 'd')
        {
          char input[ace_max_length + 2], *p, *pp;
          uint32_t output[unicode_max_length];
    
          /* Read the Punycode input string and convert to ASCII: */
    
          if (!fgets (input, ace_max_length + 2, stdin))
    	fail (io_error);
          if (ferror (stdin))
    	fail (io_error);
          if (feof (stdin))
    	fail (invalid_input);
          input_length = strlen (input) - 1;
          if (input[input_length] != '\n')
    	fail (too_big);
          input[input_length] = 0;
    
          for (p = input; *p != 0; ++p)
    	{
    	  pp = strchr (print_ascii, *p);
    	  if (pp == 0)
    	    fail (invalid_input);
    	  *p = pp - print_ascii;
    	}
    
          /* Decode: */
    
          output_length = unicode_max_length;
          status = punycode_decode (input_length, input, &output_length,
    				output, case_flags);
          if (status == punycode_bad_input)
    	fail (invalid_input);
          if (status == punycode_big_output)
    	fail (too_big);
          if (status == punycode_overflow)
    	fail (overflow);
          assert (status == punycode_success);
    
          /* Output the result: */
    
          for (j = 0; j < output_length; ++j)
    	{
    	  r = printf ("%s+%04lX\n",
    		      case_flags[j] ? "U" : "u", (unsigned long) output[j]);
    	  if (r < 0)
    	    fail (io_error);
    	}
    
          return EXIT_SUCCESS;
        }
    
      usage (argv);
      return EXIT_SUCCESS;		/* not reached, but quiets compiler warning */
    }
    


    Next: , Previous: Example 2, Up: Examples

    9.3 Example 3

    This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names.

    /* example3.c --- Example ToASCII() code showing how to use Libidn.
     * Copyright (C) 2002-2013 Simon Josefsson
     *
     * This file is part of GNU Libidn.
     *
     * 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 3 of the License, or
     * (at your option) any later version.
     *
     * 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.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <locale.h>		/* setlocale() */
    #include <stringprep.h>		/* stringprep_locale_charset() */
    #include <idna.h>		/* idna_to_ascii_lz() */
    
    /*
     * Compiling using libtool and pkg-config is recommended:
     *
     * $ libtool cc -o example3 example3.c `pkg-config --cflags --libs libidn`
     * $ ./example3
     * Input domain encoded as `ISO-8859-1': www.räksmörgåsª.example
     * Read string (length 23): 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 aa 2e 65 78 61 6d 70 6c 65
     * ACE label (length 33): 'www.xn--rksmrgsa-0zap8p.example'
     * 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65
     * $
     *
     */
    
    int
    main (void)
    {
      char buf[BUFSIZ];
      char *p;
      int rc;
      size_t i;
    
      setlocale (LC_ALL, "");
    
      printf ("Input domain encoded as `%s': ", stringprep_locale_charset ());
      fflush (stdout);
      if (!fgets (buf, BUFSIZ, stdin))
        perror ("fgets");
      buf[strlen (buf) - 1] = '\0';
    
      printf ("Read string (length %ld): ", (long int) strlen (buf));
      for (i = 0; i < strlen (buf); i++)
        printf ("%02x ", buf[i] & 0xFF);
      printf ("\n");
    
      rc = idna_to_ascii_lz (buf, &p, 0);
      if (rc != IDNA_SUCCESS)
        {
          printf ("ToASCII() failed (%d): %s\n", rc, idna_strerror (rc));
          return EXIT_FAILURE;
        }
    
      printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p);
      for (i = 0; i < strlen (p); i++)
        printf ("%02x ", p[i] & 0xFF);
      printf ("\n");
    
      free (p);
    
      return 0;
    }
    


    Next: , Previous: Example 3, Up: Examples

    9.4 Example 4

    This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names.

    /* example4.c --- Example ToUnicode() code showing how to use Libidn.
     * Copyright (C) 2002-2013 Simon Josefsson
     *
     * This file is part of GNU Libidn.
     *
     * 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 3 of the License, or
     * (at your option) any later version.
     *
     * 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.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <locale.h>		/* setlocale() */
    #include <stringprep.h>		/* stringprep_locale_charset() */
    #include <idna.h>		/* idna_to_unicode_lzlz() */
    
    /*
     * Compiling using libtool and pkg-config is recommended:
     *
     * $ libtool cc -o example4 example4.c `pkg-config --cflags --libs libidn`
     * $ ./example4
     * Input domain encoded as `ISO-8859-1': www.xn--rksmrgsa-0zap8p.example
     * Read string (length 33): 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65
     * ACE label (length 23): 'www.räksmörgåsa.example'
     * 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 61 2e 65 78 61 6d 70 6c 65
     * $
     *
     */
    
    int
    main (void)
    {
      char buf[BUFSIZ];
      char *p;
      int rc;
      size_t i;
    
      setlocale (LC_ALL, "");
    
      printf ("Input domain encoded as `%s': ", stringprep_locale_charset ());
      fflush (stdout);
      if (!fgets (buf, BUFSIZ, stdin))
        perror ("fgets");
      buf[strlen (buf) - 1] = '\0';
    
      printf ("Read string (length %ld): ", (long int) strlen (buf));
      for (i = 0; i < strlen (buf); i++)
        printf ("%02x ", buf[i] & 0xFF);
      printf ("\n");
    
      rc = idna_to_unicode_lzlz (buf, &p, 0);
      if (rc != IDNA_SUCCESS)
        {
          printf ("ToUnicode() failed (%d): %s\n", rc, idna_strerror (rc));
          return EXIT_FAILURE;
        }
    
      printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p);
      for (i = 0; i < strlen (p); i++)
        printf ("%02x ", p[i] & 0xFF);
      printf ("\n");
    
      free (p);
    
      return 0;
    }
    


    Previous: Example 4, Up: Examples

    9.5 Example 5

    This example demonstrates how the library is used to check a string for invalid characters within a specific TLD.

    /* example5.c --- Example TLD checking.
     * Copyright (C) 2004-2013 Simon Josefsson
     *
     * This file is part of GNU Libidn.
     *
     * 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 3 of the License, or
     * (at your option) any later version.
     *
     * 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.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
     *
     */
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    /* Get stringprep_locale_charset, etc. */
    #include <stringprep.h>
    
    /* Get idna_to_ascii_8z, etc. */
    #include <idna.h>
    
    /* Get tld_check_4z. */
    #include <tld.h>
    
    /*
     * Compiling using libtool and pkg-config is recommended:
     *
     * $ libtool cc -o example5 example5.c `pkg-config --cflags --libs libidn`
     * $ ./example5
     * Input domain encoded as `UTF-8': fooß.no
     * Read string (length 8): 66 6f 6f c3 9f 2e 6e 6f
     * ToASCII string (length 8): fooss.no
     * ToUnicode string: U+0066 U+006f U+006f U+0073 U+0073 U+002e U+006e U+006f
     * Domain accepted by TLD check
     *
     * $ ./example5
     * Input domain encoded as `UTF-8': gr€€n.no
     * Read string (length 12): 67 72 e2 82 ac e2 82 ac 6e 2e 6e 6f
     * ToASCII string (length 16): xn--grn-l50aa.no
     * ToUnicode string: U+0067 U+0072 U+20ac U+20ac U+006e U+002e U+006e U+006f
     * Domain rejected by TLD check, Unicode position 2
     *
     */
    
    int
    main (void)
    {
      char buf[BUFSIZ];
      char *p;
      uint32_t *r;
      int rc;
      size_t errpos, i;
    
      printf ("Input domain encoded as `%s': ", stringprep_locale_charset ());
      fflush (stdout);
      if (!fgets (buf, BUFSIZ, stdin))
        perror ("fgets");
      buf[strlen (buf) - 1] = '\0';
    
      printf ("Read string (length %ld): ", (long int) strlen (buf));
      for (i = 0; i < strlen (buf); i++)
        printf ("%02x ", buf[i] & 0xFF);
      printf ("\n");
    
      p = stringprep_locale_to_utf8 (buf);
      if (p)
        {
          strcpy (buf, p);
          free (p);
        }
      else
        printf ("Could not convert string to UTF-8, continuing anyway...\n");
    
      rc = idna_to_ascii_8z (buf, &p, 0);
      if (rc != IDNA_SUCCESS)
        {
          printf ("idna_to_ascii_8z failed (%d): %s\n", rc, idna_strerror (rc));
          return 2;
        }
    
      printf ("ToASCII string (length %ld): %s\n", (long int) strlen (p), p);
    
      rc = idna_to_unicode_8z4z (p, &r, 0);
      free (p);
      if (rc != IDNA_SUCCESS)
        {
          printf ("idna_to_unicode_8z4z failed (%d): %s\n",
    	      rc, idna_strerror (rc));
          return 2;
        }
    
      printf ("ToUnicode string: ");
      for (i = 0; r[i]; i++)
        printf ("U+%04x ", r[i]);
      printf ("\n");
    
      rc = tld_check_4z (r, &errpos, NULL);
      free (r);
      if (rc == TLD_INVALID)
        {
          printf ("Domain rejected by TLD check, Unicode position %ld\n", (long int) errpos);
          return 1;
        }
      else if (rc != TLD_SUCCESS)
        {
          printf ("tld_check_4z() failed (%d): %s\n", rc, tld_strerror (rc));
          return 2;
        }
    
      printf ("Domain accepted by TLD check\n");
    
      return 0;
    }
    


    Next: , Previous: Examples, Up: Top

    10 Invoking idn

    10.1 Name

    GNU Libidn (idn) – Internationalized Domain Names command line tool

    10.2 Description

    idn allows internationalized string preparation (‘stringprep’), encoding and decoding of punycode data, and IDNA ToASCII/ToUnicode operations to be performed on the command line.

    If strings are specified on the command line, they are used as input and the computed output is printed to standard output stdout. If no strings are specified on the command line, the program read data, line by line, from the standard input stdin, and print the computed output to standard output. What processing is performed (e.g., ToASCII, or Punycode encode) is indicated by options. If any errors are encountered, the execution of the applications is aborted.

    All strings are expected to be encoded in the preferred charset used by your locale. Use --debug to find out what this charset is. You can override the charset used by setting environment variable CHARSET.

    To process a string that starts with -, for example -foo, use -- to signal the end of parameters, as in idn --quiet -a -- -foo.

    10.3 Options

    idn recognizes these commands:

      -h, --help               Print help and exit
    
      -V, --version            Print version and exit
    
      -s, --stringprep         Prepare string according to nameprep profile
    
      -d, --punycode-decode    Decode Punycode
    
      -e, --punycode-encode    Encode Punycode
    
      -a, --idna-to-ascii      Convert to ACE according to IDNA (default mode)
    
      -u, --idna-to-unicode    Convert from ACE according to IDNA
    
          --allow-unassigned   Toggle IDNA AllowUnassigned flag (default off)
    
          --usestd3asciirules  Toggle IDNA UseSTD3ASCIIRules flag (default off)
    
          --no-tld             Don't check string for TLD specific rules
                                 Only for --idna-to-ascii and --idna-to-unicode
    
      -n, --nfkc               Normalize string according to Unicode v3.2 NFKC
    
      -p, --profile=STRING     Use specified stringprep profile instead
                                 Valid stringprep profiles: `Nameprep',
                                 `iSCSI', `Nodeprep', `Resourceprep',
                                 `trace', `SASLprep'
    
          --debug              Print debugging information
    
          --quiet              Silent operation
    

    10.4 Environment Variables

    The CHARSET environment variable can be used to override what character set to be used for decoding incoming data (i.e., on the command line or on the standard input stream), and to encode data to the standard output. If your system is set up correctly, however, the application will guess which character set is used automatically. Example usage:

         $ CHARSET=ISO-8859-1 idn --punycode-encode
         ...
    

    10.5 Examples

    Standard usage, reading input from standard input:

         jas@latte:~$ idn
         libidn 0.3.5
         Copyright 2002, 2003 Simon Josefsson.
         GNU Libidn comes with NO WARRANTY, to the extent permitted by law.
         You may redistribute copies of GNU Libidn under the terms of
         the GNU Lesser General Public License.  For more information
         about these matters, see the file named COPYING.LIB.
         Type each input string on a line by itself, terminated by a newline character.
         räksmörgås.se
         xn--rksmrgs-5wao1o.se
         jas@latte:~$
    

    Reading input from command line, and disable printing copyright and license information:

         jas@latte:~$ idn --quiet räksmörgås.se blåbærgrød.no
         xn--rksmrgs-5wao1o.se
         xn--blbrgrd-fxak7p.no
         jas@latte:~$
    

    Accessing a specific StringPrep profile directly:

         jas@latte:~$ idn --quiet --profile=SASLprep --stringprep teßtª
         teßta
         jas@latte:~$
    

    10.6 Troubleshooting

    Getting character data encoded right, and making sure Libidn use the same encoding, can be difficult. The reason for this is that most systems encode character data in more than one character encoding, i.e., using UTF-8 together with ISO-8859-1 or ISO-2022-JP. This problem is likely to continue to exist until only one character encoding come out as the evolutionary winner, or (more likely, at least to some extents) forever.

    The first step to troubleshooting character encoding problems with Libidn is to use the ‘--debug’ parameter to find out which character set encoding ‘idn’ believe your locale uses.

         jas@latte:~$ idn --debug --quiet ""
         system locale uses charset `UTF-8'.
         
         jas@latte:~$
    

    If it prints ANSI_X3.4-1968 (i.e., US-ASCII), this indicate you have not configured your locale properly. To configure the locale, you can, for example, use ‘LANG=sv_SE.UTF-8; export LANG’ at a /bin/sh prompt, to set up your locale for a Swedish environment using UTF-8 as the encoding.

    Sometimes ‘idn’ appear to be unable to translate from your system locale into UTF-8 (which is used internally), and you get an error like the following:

         jas@latte:~$ idn --quiet foo
         idn: could not convert from ISO-8859-1 to UTF-8.
         jas@latte:~$
    

    The simplest explanation is that you haven't installed the ‘iconv’ conversion tools. You can find it as a standalone library in GNU Libiconv (http://www.gnu.org/software/libiconv/). On many GNU/Linux systems, this library is part of the system, but you may have to install additional packages (e.g., ‘glibc-locale’ for Debian) to be able to use it.

    Another explanation is that the error is correct and you are feeding ‘idn’ invalid data. This can happen inadvertently if you are not careful with the character set encoding you use. For example, if your shell run in a ISO-8859-1 environment, and you invoke ‘idn’ with the ‘CHARSET’ environment variable as follows, you will feed it ISO-8859-1 characters but force it to believe they are UTF-8. Naturally this will lead to an error, unless the byte sequences happen to be valid UTF-8. Note that even if you don't get an error, the output may be incorrect in this situation, because ISO-8859-1 and UTF-8 does not in general encode the same characters as the same byte sequences.

         jas@latte:~$ idn --quiet --debug ""
         system locale uses charset `ISO-8859-1'.
         
         jas@latte:~$ CHARSET=UTF-8 idn --quiet --debug räksmörgås
         system locale uses charset `UTF-8'.
         input[0] = U+0072
         input[1] = U+4af3
         input[2] = U+006d
         input[3] = U+1b29e5
         input[4] = U+0073
         output[0] = U+0078
         output[1] = U+006e
         output[2] = U+002d
         output[3] = U+002d
         output[4] = U+0072
         output[5] = U+006d
         output[6] = U+0073
         output[7] = U+002d
         output[8] = U+0068
         output[9] = U+0069
         output[10] = U+0036
         output[11] = U+0064
         output[12] = U+0035
         output[13] = U+0039
         output[14] = U+0037
         output[15] = U+0035
         output[16] = U+0035
         output[17] = U+0032
         output[18] = U+0061
         xn--rms-hi6d597552a
         jas@latte:~$
    

    The sense moral here is to forget about ‘CHARSET’ (configure your locales properly instead) unless you know what you are doing, and if you want to use it, do it carefully, after verifying with ‘--debug’ that you get the desired results.


    Next: , Previous: Invoking idn, Up: Top

    11 Emacs API

    Included in Libidn are punycode.el and idna.el that provides an Emacs Lisp API to (a limited set of) the Libidn API. This section describes the API. Currently the IDNA API always set the UseSTD3ASCIIRules flag and clear the AllowUnassigned flag, in the future there may be functionality to specify these flags via the API.

    11.1 Punycode Emacs API

    — Variable: punycode-program

    Name of the GNU Libidn idn application. The default is ‘idn’. This variable can be customized.

    — Variable: punycode-environment

    List of environment variable definitions prepended to ‘process-environment’. The default is ‘("CHARSET=UTF-8")’. This variable can be customized.

    — Variable: punycode-encode-parameters

    List of parameters passed to punycode-program to invoke punycode encoding mode. The default is ‘("--quiet" "--punycode-encode")’. This variable can be customized.

    — Variable: punycode-decode-parameters

    Parameters passed to punycode-program to invoke punycode decoding mode. The default is ‘("--quiet" "--punycode-decode")’. This variable can be customized.

    — Function: punycode-encode string

    Returns a Punycode encoding of the string, after converting the input into UTF-8.

    — Function: punycode-decode string

    Returns a possibly multibyte string which is the decoding of the string which is a punycode encoded string.

    11.2 IDNA Emacs API

    — Variable: idna-program

    Name of the GNU Libidn idn application. The default is ‘idn’. This variable can be customized.

    — Variable: idna-environment

    List of environment variable definitions prepended to ‘process-environment’. The default is ‘("CHARSET=UTF-8")’. This variable can be customized.

    — Variable: idna-to-ascii-parameters

    List of parameters passed to idna-program to invoke IDNA ToASCII mode. The default is ‘("--quiet" "--idna-to-ascii" "--usestd3asciirules")’. This variable can be customized.

    — Variable: idna-to-unicode-parameters

    Parameters passed idna-program to invoke IDNA ToUnicode mode. The default is ‘("--quiet" "--idna-to-unicode" "--usestd3asciirules")’. This variable can be customized.

    — Function: idna-to-ascii string

    Returns an ASCII Compatible Encoding (ACE) of the string computed by the IDNA ToASCII operation on the input string, after converting the input to UTF-8.

    — Function: idna-to-unicode string

    Returns a possibly multibyte string which is the output of the IDNA ToUnicode operation computed on the input string.


    Next: , Previous: Emacs API, Up: Top

    12 Java API

    Libidn has been ported to the Java programming language, and as a consequence most of the API is available to native Java applications. This section contain notes on this support, complete documentation is pending.

    The Java library, if Libidn has been built with Java support (see Downloading and Installing), will be placed in java/libidn-1.28.jar. The source code is below java/ in Maven directory layout, and there is a Maven pom.xml build script as well. Source code files are in java/src/main/java/gnu/inet/encoding/.

    12.1 Overview

    This package provides a Java implementation of the Internationalized Domain Names in Applications (IDNA) standard. It is written entirely in Java and does not require any additional libraries to be set up.

    The gnu.inet.encoding.IDNA class offers two public functions, toASCII and toUnicode which can be used as follows:

         gnu.inet.encoding.IDNA.toASCII("blöds.züg");
         gnu.inet.encoding.IDNA.toUnicode("xn--blds-6qa.xn--zg-xka");
    

    12.2 Miscellaneous Programs

    The java/src/util/java/ directory contains several programs that are related to the Java part of GNU Libidn, but that don't need to be included in the main source tree or the JAR file.

    12.2.1 GenerateRFC3454

    This program parses RFC3454 and creates the RFC3454.java program that is required during the StringPrep phase.

    The RFC can be found at various locations, for example at http://www.ietf.org/rfc/rfc3454.txt.

    Invoke the program as follows:

         $ java GenerateRFC3454
         Creating RFC3454.java... Ok.
    

    12.2.2 GenerateNFKC

    The GenerateNFKC program parses the Unicode character database file and generates all the tables required for NFKC. This program requires the two files UnicodeData.txt and CompositionExclusions.txt of version 3.2 of the Unicode files. Note that RFC3454 (Stringprep) defines that Unicode version 3.2 is to be used, not the latest version.

    The Unicode data files can be found at http://www.unicode.org/Public/.

    Invoke the program as follows:

         $ java GenerateNFKC
         Creating CombiningClass.java... Ok.
         Creating DecompositionKeys.java... Ok.
         Creating DecompositionMappings.java... Ok.
         Creating Composition.java... Ok.
    

    12.2.3 TestIDNA

    The TestIDNA program allows to test the IDNA implementation manually or against Simon Josefsson's test vectors.

    The test vectors can be found at the Libidn homepage, http://www.gnu.org/software/libidn/.

    To test the transformation manually, use:

         $ java -cp .:/usr/share/java/libidn.jar TestIDNA -a <string to test>
         Input: <string to test>
         Output: <toASCII(string to test)>
         $ java -cp .:/usr/share/java/libidn.jar TestIDNA -u <string to test>
         Input: <string to test>
         Output: <toUnicode(string to test)>
    

    To test against draft-josefsson-idn-test-vectors.html, use:

         $ java -cp .:/usr/share/java/libidn/libidn.jar TestIDNA -t
         No errors detected!
    

    12.2.4 TestNFKC

    The TestNFKC program allows to test the NFKC implementation manually or against the NormalizationTest.txt file from the Unicode data files.

    To test the normalization manually, use:

         $ java -cp .:/usr/share/java/libidn.jar TestNFKC <string to test>
         Input: <string to test>
         Output: <nfkc version of the string to test>
    

    To test against NormalizationTest.txt:

         $ java -cp .:/usr/share/java/libidn.jar TestNFKC
         No errors detected!
    

    12.3 Possible Problems

    Beware of Bugs: This Java API needs a lot more testing, especially with "exotic" character sets. While it works for me, it may not work for you.

    Encoding of your Java sources: If you are using non-ASCII characters in your Java source code, make sure javac compiles your programs with the correct encoding. If necessary specify the encoding using the -encoding parameter.

    Java Unicode handling: Java 1.4 only handles 16-bit Unicode code points (i.e. characters in the Basic Multilingual Plane), this implementation therefore ignores all references to so-called Supplementary Characters (U+10000 to U+10FFFF). Starting from Java 1.5, these characters will also be supported by Java, but this will require changes to this library. See also the next section.

    12.4 A Note on Java and Unicode

    This library uses Java's built-in 'char' datatype. Up to Java 1.4, this datatype only supports 16-bit Unicode code points, also called the Basic Multilingual Plane. For this reason, this library doesn't work for Supplementary Characters (i.e. characters from U+10000 to U+10FFFF). All references to such characters are silently ignored.

    Starting from Java 1.5, also Supplementary Characters will be supported. However, this will require changes in the present version of the library. Java 1.5 is currently in beta status.

    For more information refer to the documentation of java.lang.Character in the JDK API.


    Next: , Previous: Java API, Up: Top

    13 C# API

    The Libidn library has been ported to the C# language. The port reside in the top-level csharp/ directory. Currently, no further documentation about the implementation or the API is available. However, the C# port was based on the Java port, and the API is exactly the same as in the Java version. The help files for the Java API may thus be useful.


    Next: , Previous: C# API, Up: Top

    14 Acknowledgements

    The punycode implementation was taken from the IETF IDN Punycode specification, by Adam M. Costello. The TLD code was contributed by Thomas Jacob. The Java implementation was contributed by Oliver Hitz. The C# implementation was contributed by Alexander Gnauck. The Unicode tables were provided by Unicode, Inc. Some functions for dealing with Unicode (see nfkc.c and toutf8.c) were borrowed from GLib, downloaded from http://www.gtk.org/. The manual borrowed text from Libgcrypt by Werner Koch.

    Inspiration for many things that, consciously or not, have gone into this package is due to a number of free software package that the author has been exposed to. The author wishes to acknowledge the free software community in general, for giving an example on what role software development can play in the modern society.

    Several people reported bugs, sent patches or suggested improvements, see the file THANKS in the top-level directory of the source code.


    Next: , Previous: Acknowledgements, Up: Top

    15 History

    The complete history of user visible changes is stored in the file NEWS in the top-level directory of the source code tree. The complete history of modifications to each file is stored in the file ChangeLog in the same directory. This section contain a condensed version of that information, in the form of “milestones” for the project.

    Stringprep implementation.
    Version 0.0.0 released on 2002-11-05.
    IDNA and Punycode implementations, part of the GNU project.
    Version 0.1.0 released on 2003-01-05.
    Uses official IDNA ACE prefix xn--.
    Version 0.1.7 released on 2003-02-12.
    Command line interface.
    Version 0.1.11 released on 2003-02-26.
    GNU Libc add-on proposed.
    Version 0.1.12 released on 2003-03-06.
    Interoperability testing during IDNConnect.
    Version 0.3.1 released on 2003-10-02.
    TLD restriction testing.
    Version 0.4.0 released on 2004-02-28.
    GNU Libc add-on integrated.
    Version 0.4.1 released on 2004-03-08.
    Native Java implementation.
    Version 0.4.2-0.4.9 released between 2004-03-20 and 2004-06-11.
    PR-29 functions for “problem sequences”.
    Version 0.5.0 released on 2004-06-26.
    Many small portability fixes and wider use.
    Version 0.5.1 through 0.5.20, released between 2004-07-09 and 2005-10-23.
    Native C# implementation.
    Version 0.6.0 released on 2005-12-03.
    Windows support through cross-compilation.
    Version 0.6.1 released on 2006-01-20.
    Library declared stable by releasing v1.0.
    Version 1.0 released on 2007-07-31.


    Next: , Previous: History, Up: Top

    Appendix A PR29 discussion

    If you wish to experiment with a modified Unicode NFKC implementation according to the PR29 proposal, you may find the following bug report useful. However, I have not verified that the suggested modifications are correct. For reference, I'm including my response to the report as well.

    From: Rick McGowan <rick@unicode.org>
    Subject: Possible bug and status of PR 29 change(s)
    To: bug-libidn@gnu.org
    Date: Wed, 27 Oct 2004 14:49:17 -0700
    
    Hello. On behalf of the Unicode Consortium editorial committee, I would
    like to find out more information about the PR 29 fixes, if any, and
    functions in Libidn. Your implementation was listed in the text of PR29 as
    needing investigation, so I am following up on several implementations.
    
    The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new
    draft of UAX #15 has been issued.
    
    I have looked at Libidn 0.5.8 (today), and there may still be a possible
    bug in NFKC.java and nfkc.c.
    
    ------------------------------------------------------
    
    1. In NFKC.java, this line in canonicalOrdering():
    
          if (i > 0 && (last_cc == 0 || last_cc != cc)) {
    
    should perhaps be changed to:
    
          if (i > 0 && (last_cc == 0 || last_cc < cc)) {
    
    but I'm not sure of the sense of this comparison.
    
    ------------------------------------------------------
    
    2. In nfkc.c, function _g_utf8_normalize_wc() has this code:
    
    	  if (i > 0 &&
    	      (last_cc == 0 || last_cc != cc) &&
    	      combine (wc_buffer[last_start], wc_buffer[i],
    		       &wc_buffer[last_start]))
    	    {
    
    This appears to have the same bug as the current Python implementation (in
    Python 2.3.4). The code should be checking, as per new rule D2 UAX #15
    update, that the next combining character is the same or HIGHER than the
    current one. It now checks to see if it's non-zero and not equal.
    
    The above line(s) should perhaps be changed to:
    
    	  if (i > 0 &&
    	      (last_cc == 0 || last_cc < cc) &&
    	      combine (wc_buffer[last_start], wc_buffer[i],
    		       &wc_buffer[last_start]))
    	    {
    
    but I'm not sure of the sense of the comparison (< or > or <=?) here.
    
    In the text of PR29, I will be marking Libidn as "needs change" and adding
    the version number that I checked. If any further change is made, please
    let me know the release version, and I'll update again.
    
    Regards,
    	Rick McGowan
    
    From: Simon Josefsson <jas@extundo.com>
    Subject: Re: Possible bug and status of PR 29 change(s)
    To: Rick McGowan <rick@unicode.org>
    Cc: bug-libidn@gnu.org
    Date: Thu, 28 Oct 2004 09:47:47 +0200
    
    Rick McGowan <rick@unicode.org> writes:
    
    > Hello. On behalf of the Unicode Consortium editorial committee, I would
    > like to find out more information about the PR 29 fixes, if any, and
    > functions in Libidn. Your implementation was listed in the text of PR29 as
    > needing investigation, so I am following up on several implementations.
    >
    > The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new
    > draft of UAX #15 has been issued.
    >
    > I have looked at Libidn 0.5.8 (today), and there may still be a possible
    > bug in NFKC.java and nfkc.c.
    
    Hello Rick.
    
    I believe the current behavior is intentional.  Libidn do not aim to
    implement latest-and-greatest NFKC, it aim to implement the NFKC
    functionality required for StringPrep and IDN.  As you may know,
    StringPrep/IDN reference Unicode 3.2.0, and explicitly says any later
    changes (which I consider PR29 as) do not apply.
    
    In fact, I believe that would I incorporate the changes suggested in
    PR29, I would in fact be violating the IDN specifications.
    
    Thanks for looking into the code and finding the place where the
    change could be made.  I'll see if I can mention this in the manual
    somewhere, for technically interested readers.
    
    Regards,
    Simon
    


    Next: , Previous: PR29 discussion, Up: Top

    Appendix B On Label Separators

    Some strings contains characters whose NFKC normalized form contain the ASCII dot (0x2E, “.”). Examples of these characters are U+2024 (ONE DOT LEADER) and U+248C (DIGIT FIVE FULL STOP). The strings have the interesting property that their IDNA ToASCII output will contain embedded dots. For example:

         ToASCII (hi U+248C com) = hi5.com
         ToASCII (räksmörgås U+2024 com) = xn--rksmrgs.com-l8as9u
    

    This demonstrate the two general cases: The first where the ASCII dot is part of an output that do not begin with the IDN prefix xn--. The second example illustrate when the dot is part of IDN prefixed with xn--.

    The input strings are, from the DNS point of view, a single label. The IDNA algorithm translate one label at a time. Thus, the output is expected to be only one label. What is important here is to make sure the DNS resolver receives the correct query. The DNS protocol does not use the dot to delimit labels on the wire, rather it uses length-value pairs. Thus the correct query would be for {7}hi5.com and {22}xn--rksmrgs.com-l8as9u respectively.

    Some implementations 1 have decided that these inputs strings are potentially confusing for the user. The string hi U+248C com looks like hi5.com on systems that support Unicode properly. These implementations do not follow RFC 3490. They yield:

         ToASCII (hi U+248C com) = hi5.com
         ToASCII (räksmörgås U+2024 com) = xn--rksmrgs-5wao1o.com
    

    The DNS query they perform are {3}hi5{3}com and {18}xn--rksmrgs-5wao1o{3}com respectively. Arguably, this leads to a better user experience, and suggests that the IDNA specification is sub-optimal in this area.

    B.1 Recommended Workaround

    It has been suggested to normalize the entire input string using NFKC before passing it to IDNA ToASCII. You may use stringprep_utf8_nfkc_normalize or stringprep_ucs4_nfkc_normalize. This appears to lead to similar behaviour as IE/Firefox, which would avoid the problem, but this needs to be confirmed. Feel free to discuss the issue with us.

    Alternative workarounds are being considered. Eventually Libidn may implement a new flag to the idna_* functions that implements a recommended way to work around this problem.

    Appendix C Copying Information

    C.1 GNU Free Documentation License

    Version 1.3, 3 November 2008
         Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
         http://fsf.org/
         
         Everyone is permitted to copy and distribute verbatim copies
         of this license document, but changing it is not allowed.
    
    1. PREAMBLE

      The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

      This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

      We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

    2. APPLICABILITY AND DEFINITIONS

      This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.

      A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

      A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

      The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.

      The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

      A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”.

      Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.

      The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text.

      The “publisher” means any person or entity that distributes copies of the Document to the public.

      A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition.

      The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

    3. VERBATIM COPYING

      You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

      You may also lend copies, under the same conditions stated above, and you may publicly display copies.

    4. COPYING IN QUANTITY

      If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

      If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

      If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

      It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

    5. MODIFICATIONS

      You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

      1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
      2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
      3. State on the Title page the name of the publisher of the Modified Version, as the publisher.
      4. Preserve all the copyright notices of the Document.
      5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
      6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
      7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice.
      8. Include an unaltered copy of this License.
      9. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
      10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
      11. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
      12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
      13. Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.
      14. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.
      15. Preserve any Warranty Disclaimers.

      If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles.

      You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

      You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

      The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

    6. COMBINING DOCUMENTS

      You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.

      The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

      In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements.”

    7. COLLECTIONS OF DOCUMENTS

      You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

      You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

    8. AGGREGATION WITH INDEPENDENT WORKS

      A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.

      If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

    9. TRANSLATION

      Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.

      If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

    10. TERMINATION

      You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.

      However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

      Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

      Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.

    11. FUTURE REVISIONS OF THIS LICENSE

      The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

      Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document.

    12. RELICENSING

      “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thus published on the MMC site.

      “CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.

      “Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document.

      An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.

      The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

    ADDENDUM: How to use this License for your documents

    To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

           Copyright (C)  year  your name.
           Permission is granted to copy, distribute and/or modify this document
           under the terms of the GNU Free Documentation License, Version 1.3
           or any later version published by the Free Software Foundation;
           with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
           Texts.  A copy of the license is included in the section entitled ``GNU
           Free Documentation License''.
    

    If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.” line with this:

             with the Invariant Sections being list their titles, with
             the Front-Cover Texts being list, and with the Back-Cover Texts
             being list.
    

    If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

    If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.


    Next: , Previous: Copying Information, Up: Top

    Function and Variable Index


    Previous: Function and Variable Index, Up: Top

    Concept Index


    Footnotes

    [1] Notably Microsoft's Internet Explorer and Mozilla's Firefox, but not Apple's Safari.


    libidn-1.28/doc/man/0000755000000000000000000000000012167253753011207 500000000000000libidn-1.28/doc/man/stringprep_locale_charset.30000644000000000000000000000345312167245615016443 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_locale_charset" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_locale_charset \- API function .SH SYNOPSIS .B #include .sp .BI "const char * stringprep_locale_charset( " void ");" .SH ARGUMENTS .IP " void" 12 .SH "DESCRIPTION" Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything. Note that this function return the application's locale's preferred charset (or thread's locale's preffered charset, if your system support thread\-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding. .SH "RETURN VALUE" Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep.30000644000000000000000000000420512167245615013407 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep" 3 "1.28" "libidn" "libidn" .SH NAME stringprep \- API function .SH SYNOPSIS .B #include .sp .BI "int stringprep(char * " in ", size_t " maxlen ", Stringprep_profile_flags " flags ", const Stringprep_profile * " profile ");" .SH ARGUMENTS .IP "char * in" 12 input/ouput array with string to prepare. .IP "size_t maxlen" 12 maximum length of input/output array. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .IP "const Stringprep_profile * profile" 12 pointer to \fBStringprep_profile\fP to use. .SH "DESCRIPTION" Prepare the input zero terminated UTF\-8 string according to the stringprep profile, and write back the result to the input string. Note that you must convert strings entered in the systems locale into UTF\-8 before using this function, see \fBstringprep_locale_to_utf8()\fP. Since the stringprep operation can expand the string, \fImaxlen\fP indicate how large the buffer holding the string is. This function will not read or write to characters outside that size. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP contain the \fBStringprep_profile\fP instructions to perform. Your application can define new profiles, possibly re\-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. .SH "RETURN VALUE" Returns \fBSTRINGPREP_OK\fP iff successful, or an error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_get_table.30000644000000000000000000000254112167245615014004 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_table" 3 "1.28" "libidn" "libidn" .SH NAME tld_get_table \- API function .SH SYNOPSIS .B #include .sp .BI "const Tld_table * tld_get_table(const char * " tld ", const Tld_table ** " tables ");" .SH ARGUMENTS .IP "const char * tld" 12 TLD name (e.g. "com") as zero terminated ASCII byte string. .IP "const Tld_table ** tables" 12 Zero terminated array of \fBTld_table\fP info\-structures for TLDs. .SH "DESCRIPTION" Get the TLD table for a named TLD by searching through the given TLD table array. .SH "RETURN VALUE" Return structure corresponding to TLD \fItld\fP by going thru \fItables\fP, or return \fBNULL\fP if no such structure is found. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_get_4z.30000644000000000000000000000237612167245615013260 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_4z" 3 "1.28" "libidn" "libidn" .SH NAME tld_get_4z \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_get_4z(const uint32_t * " in ", char ** " out ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Zero terminated array of unicode code points to process. .IP "char ** out" 12 Zero terminated ascii result string pointer. .SH "DESCRIPTION" Isolate the top\-level domain of \fIin\fP and return it as an ASCII string in \fIout\fP. .SH "RETURN VALUE" Return \fBTLD_SUCCESS\fP on success, or the corresponding \fBTld_rc\fP error code otherwise. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/pr29_4z.30000644000000000000000000000251412167245615012424 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_4z" 3 "1.28" "libidn" "libidn" .SH NAME pr29_4z \- API function .SH SYNOPSIS .B #include .sp .BI "int pr29_4z(const uint32_t * " in ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 zero terminated array of Unicode code points. .SH "DESCRIPTION" Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. .SH "RETURN VALUE" Returns the \fBPr29_rc\fP value \fBPR29_SUCCESS\fP on success, and \fBPR29_PROBLEM\fP if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_strerror.30000644000000000000000000000453512167245615014075 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_strerror" 3 "1.28" "libidn" "libidn" .SH NAME idna_strerror \- API function .SH SYNOPSIS .B #include .sp .BI "const char * idna_strerror(Idna_rc " rc ");" .SH ARGUMENTS .IP "Idna_rc rc" 12 an \fBIdna_rc\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "IDNA_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "IDNA_STRINGPREP_ERROR" Error during string preparation. .SH "IDNA_PUNYCODE_ERROR" Error during punycode operation. .SH "IDNA_CONTAINS_NON_LDH" For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non\-LDH ASCII characters. .SH "IDNA_CONTAINS_MINUS" For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen\-minus (U+002D). .SH "IDNA_INVALID_LENGTH" The final output string is not within the (inclusive) range 1 to 63 characters. .SH "IDNA_NO_ACE_PREFIX" The string does not contain the ACE prefix (for ToUnicode). .SH "IDNA_ROUNDTRIP_VERIFY_ERROR" The ToASCII operation on output string does not equal the input. .SH "IDNA_CONTAINS_ACE_PREFIX" The input contains the ACE prefix (for ToASCII). .SH "IDNA_ICONV_ERROR" Could not convert string in locale encoding. .SH "IDNA_MALLOC_ERROR" Could not allocate buffer (this is typically a fatal error). .SH "IDNA_DLOPEN_ERROR" Could not dlopen the libcidn DSO (only used internally in libc). .SH "RETURN VALUE" Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_default_table.30000644000000000000000000000276212167245615014656 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_default_table" 3 "1.28" "libidn" "libidn" .SH NAME tld_default_table \- API function .SH SYNOPSIS .B #include .sp .BI "const Tld_table * tld_default_table(const char * " tld ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const char * tld" 12 TLD name (e.g. "com") as zero terminated ASCII byte string. .IP "const Tld_table ** overrides" 12 Additional zero terminated array of \fBTld_table\fP info\-structures for TLDs, or \fBNULL\fP to only use library deault tables. .SH "DESCRIPTION" Get the TLD table for a named TLD, using the internal defaults, possibly overrided by the (optional) supplied tables. .SH "RETURN VALUE" Return structure corresponding to TLD \fItld_str\fP, first looking through \fIoverrides\fP then thru built\-in list, or \fBNULL\fP if no such structure found. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_unicode_8zlz.30000644000000000000000000000304312167245614015322 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_8zlz" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_unicode_8zlz \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_unicode_8zlz(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated UTF\-8 string. .IP "char ** output" 12 pointer to newly allocated output string encoded in the current locale's character set. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UTF\-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/punycode_strerror.30000644000000000000000000000313012167245616014777 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "punycode_strerror" 3 "1.28" "libidn" "libidn" .SH NAME punycode_strerror \- API function .SH SYNOPSIS .B #include .sp .BI "const char * punycode_strerror(Punycode_status " rc ");" .SH ARGUMENTS .IP "Punycode_status rc" 12 an \fBPunycode_status\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "PUNYCODE_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "PUNYCODE_BAD_INPUT" Input is invalid. .SH "PUNYCODE_BIG_OUTPUT" Output would exceed the space provided. .SH "PUNYCODE_OVERFLOW" Input needs wider integers to process. .SH "RETURN VALUE" Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/pr29_strerror.30000644000000000000000000000302312167245615013745 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_strerror" 3 "1.28" "libidn" "libidn" .SH NAME pr29_strerror \- API function .SH SYNOPSIS .B #include .sp .BI "const char * pr29_strerror(Pr29_rc " rc ");" .SH ARGUMENTS .IP "Pr29_rc rc" 12 an \fBPr29_rc\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "PR29_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "PR29_PROBLEM" A problem sequence was encountered. .SH "PR29_STRINGPREP_ERROR" The character set conversion failed (only for \fBpr29_8z()\fP). .SH "RETURN VALUE" Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_ascii_lz.30000644000000000000000000000273412167245614014510 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_lz" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_ascii_lz \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_ascii_lz(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero terminated input string encoded in the current locale's character set. .IP "char ** output" 12 pointer to newly allocated output string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_unichar_to_utf8.30000644000000000000000000000237612167245614016576 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_unichar_to_utf8" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_unichar_to_utf8 \- API function .SH SYNOPSIS .B #include .sp .BI "int stringprep_unichar_to_utf8(uint32_t " c ", char * " outbuf ");" .SH ARGUMENTS .IP "uint32_t c" 12 a ISO10646 character code .IP "char * outbuf" 12 output buffer, must have at least 6 bytes of space. If \fBNULL\fP, the length will be computed and returned and nothing will be written to \fIoutbuf\fP. .SH "DESCRIPTION" Converts a single character to UTF\-8. .SH "RETURN VALUE" number of bytes written. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_strerror.30000644000000000000000000000520512167245616015353 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_strerror" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_strerror \- API function .SH SYNOPSIS .B #include .sp .BI "const char * stringprep_strerror(Stringprep_rc " rc ");" .SH ARGUMENTS .IP "Stringprep_rc rc" 12 a \fBStringprep_rc\fP return code. .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "STRINGPREP_OK" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "STRINGPREP_CONTAINS_UNASSIGNED" String contain unassigned Unicode code points, which is forbidden by the profile. .SH "STRINGPREP_CONTAINS_PROHIBITED" String contain code points prohibited by the profile. .SH "STRINGPREP_BIDI_BOTH_L_AND_RAL" String contain code points with conflicting bidirection category. .SH "STRINGPREP_BIDI_LEADTRAIL_NOT_RAL" Leading and trailing character in string not of proper bidirectional category. .SH "STRINGPREP_BIDI_CONTAINS_PROHIBITED" Contains prohibited code points detected by bidirectional code. .SH "STRINGPREP_TOO_SMALL_BUFFER" Buffer handed to function was too small. This usually indicate a problem in the calling application. .SH "STRINGPREP_PROFILE_ERROR" The stringprep profile was inconsistent. This usually indicate an internal error in the library. .SH "STRINGPREP_FLAG_ERROR" The supplied flag conflicted with profile. This usually indicate a problem in the calling application. .SH "STRINGPREP_UNKNOWN_PROFILE" The supplied profile name was not known to the library. .SH "STRINGPREP_NFKC_FAILED" The Unicode NFKC operation failed. This usually indicate an internal error in the library. .SH "STRINGPREP_MALLOC_ERROR" The \fBmalloc()\fP was out of memory. This is usually a fatal error. .SH "RETURN VALUE" Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idn_free.30000644000000000000000000000254712167245615012774 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idn_free" 3 "1.28" "libidn" "libidn" .SH NAME idn_free \- API function .SH SYNOPSIS .B #include .sp .BI "void idn_free(void * " ptr ");" .SH ARGUMENTS .IP "void * ptr" 12 memory region to deallocate, or \fBNULL\fP. .SH "DESCRIPTION" Deallocates memory region by calling \fBfree()\fP. If \fIptr\fP is \fBNULL\fP no operation is performed. Normally applications de\-allocate strings allocated by libidn by calling \fBfree()\fP directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_check_version.30000644000000000000000000000272212167245615016313 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_check_version" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_check_version \- API function .SH SYNOPSIS .B #include .sp .BI "const char * stringprep_check_version(const char * " req_version ");" .SH ARGUMENTS .IP "const char * req_version" 12 Required version number, or NULL. .SH "DESCRIPTION" Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned. See \fBSTRINGPREP_VERSION\fP for a suitable \fIreq_version\fP string. .SH "RETURN VALUE" Version string of run\-time library, or NULL if the run\-time library does not meet the required version number. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/pr29_4.30000644000000000000000000000262512167245615012235 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_4" 3 "1.28" "libidn" "libidn" .SH NAME pr29_4 \- API function .SH SYNOPSIS .B #include .sp .BI "int pr29_4(const uint32_t * " in ", size_t " len ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 input array with unicode code points. .IP "size_t len" 12 length of input array with unicode code points. .SH "DESCRIPTION" Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. .SH "RETURN VALUE" Returns the \fBPr29_rc\fP value \fBPR29_SUCCESS\fP on success, and \fBPR29_PROBLEM\fP if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_check_lz.30000644000000000000000000000414712167245615013644 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_lz" 3 "1.28" "libidn" "libidn" .SH NAME tld_check_lz \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_check_lz(const char * " in ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const char * in" 12 Zero\-terminated string in the current locales encoding to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the characters in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP, the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP. Note that the error position refers to the decoded character offset rather than the byte position in the string. .SH "RETURN VALUE" Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all characters are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_ascii_8z.30000644000000000000000000000264312167245614014423 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_8z" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_ascii_8z \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_ascii_8z(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero terminated input UTF\-8 string. .IP "char ** output" 12 pointer to newly allocated output string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert UTF\-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_utf8_to_locale.30000644000000000000000000000234012167245615016374 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_to_locale" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_utf8_to_locale \- API function .SH SYNOPSIS .B #include .sp .BI "char * stringprep_utf8_to_locale(const char * " str ");" .SH ARGUMENTS .IP "const char * str" 12 input zero terminated string. .SH "DESCRIPTION" Convert string encoded in UTF\-8 into the locale's character set by using \fBstringprep_convert()\fP. .SH "RETURN VALUE" Returns newly allocated zero\-terminated string which is \fIstr\fP transcoded into the locale's character set. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_check_4t.30000644000000000000000000000336512167245615013547 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4t" 3 "1.28" "libidn" "libidn" .SH NAME tld_check_4t \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_check_4t(const uint32_t * " in ", size_t " inlen ", size_t * " errpos ", const Tld_table * " tld ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Array of unicode code points to process. Does not need to be zero terminated. .IP "size_t inlen" 12 Number of unicode code points. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table * tld" 12 A \fBTld_table\fP data structure representing the restrictions for which the input should be tested. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the data structure in \fItld\fP, return the position of the first character for which this is not the case in \fIerrpos\fP. .SH "RETURN VALUE" Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/punycode_decode.30000644000000000000000000000553612167245615014353 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "punycode_decode" 3 "1.28" "libidn" "libidn" .SH NAME punycode_decode \- API function .SH SYNOPSIS .B #include .sp .BI "int punycode_decode(size_t " input_length ", const char [] " input ", size_t * " output_length ", punycode_uint [] " output ", unsigned char [] " case_flags ");" .SH ARGUMENTS .IP "size_t input_length" 12 The number of ASCII code points in the \fIinput\fP array. .IP "const char [] input" 12 An array of ASCII code points (0..7F). .IP "size_t * output_length" 12 The caller passes in the maximum number of code points that it can receive into the \fIoutput\fP array (which is also the maximum number of flags that it can receive into the \fIcase_flags\fP array, if \fIcase_flags\fP is not a \fBNULL\fP pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied \fIoutput_length\fP is greater than that. .IP "punycode_uint [] output" 12 An array of code points like the input argument of \fBpunycode_encode()\fP (see above). .IP "unsigned char [] case_flags" 12 A \fBNULL\fP pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the \fIoutput\fP array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. .SH "DESCRIPTION" Converts Punycode to a sequence of code points (presumed to be Unicode code points). .SH "RETURN VALUE" The return value can be any of the \fBPunycode_status\fP values defined above. If not \fBPUNYCODE_SUCCESS\fP, then \fIoutput_length\fP, \fIoutput\fP, and \fIcase_flags\fP might contain garbage. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_ucs4_nfkc_normalize.30000644000000000000000000000250112167245615017423 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_ucs4_nfkc_normalize" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_ucs4_nfkc_normalize \- API function .SH SYNOPSIS .B #include .sp .BI "uint32_t * stringprep_ucs4_nfkc_normalize(const uint32_t * " str ", ssize_t " len ");" .SH ARGUMENTS .IP "const uint32_t * str" 12 a Unicode string. .IP "ssize_t len" 12 length of \fIstr\fP array, or \-1 if \fIstr\fP is nul\-terminated. .SH "DESCRIPTION" Converts a UCS4 string into canonical form, see \fBstringprep_utf8_nfkc_normalize()\fP for more information. .SH "RETURN VALUE" a newly allocated Unicode string, that is the NFKC normalized form of \fIstr\fP. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_utf8_to_unichar.30000644000000000000000000000232512167245614016570 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_to_unichar" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_utf8_to_unichar \- API function .SH SYNOPSIS .B #include .sp .BI "uint32_t stringprep_utf8_to_unichar(const char * " p ");" .SH ARGUMENTS .IP "const char * p" 12 a pointer to Unicode character encoded as UTF\-8 .SH "DESCRIPTION" Converts a sequence of bytes encoded as UTF\-8 to a Unicode character. If \fIp\fP does not point to a valid UTF\-8 encoded character, results are undefined. .SH "RETURN VALUE" the resulting character. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_check_4.30000644000000000000000000000411512167245615013355 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4" 3 "1.28" "libidn" "libidn" .SH NAME tld_check_4 \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_check_4(const uint32_t * " in ", size_t " inlen ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Array of unicode code points to process. Does not need to be zero terminated. .IP "size_t inlen" 12 Number of unicode code points. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP, the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP. .SH "RETURN VALUE" Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_get_z.30000644000000000000000000000251112167245615013163 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_z" 3 "1.28" "libidn" "libidn" .SH NAME tld_get_z \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_get_z(const char * " in ", char ** " out ");" .SH ARGUMENTS .IP "const char * in" 12 Zero terminated character array to process. .IP "char ** out" 12 Zero terminated ascii result string pointer. .SH "DESCRIPTION" Isolate the top\-level domain of \fIin\fP and return it as an ASCII string in \fIout\fP. The input string \fIin\fP may be UTF\-8, ISO\-8859\-1 or any ASCII compatible character encoding. .SH "RETURN VALUE" Return \fBTLD_SUCCESS\fP on success, or the corresponding \fBTld_rc\fP error code otherwise. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_convert.30000644000000000000000000000261512167245615015152 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_convert" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_convert \- API function .SH SYNOPSIS .B #include .sp .BI "char * stringprep_convert(const char * " str ", const char * " to_codeset ", const char * " from_codeset ");" .SH ARGUMENTS .IP "const char * str" 12 input zero\-terminated string. .IP "const char * to_codeset" 12 name of destination character set. .IP "const char * from_codeset" 12 name of origin character set, as used by \fIstr\fP. .SH "DESCRIPTION" Convert the string from one character set to another using the system's \fBiconv()\fP function. .SH "RETURN VALUE" Returns newly allocated zero\-terminated string which is \fIstr\fP transcoded into to_codeset. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_unicode_lzlz.30000644000000000000000000000312612167245614015410 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_lzlz" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_unicode_lzlz \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_unicode_lzlz(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated string encoded in the current locale's character set. .IP "char ** output" 12 pointer to newly allocated output string encoded in the current locale's character set. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_profile.30000644000000000000000000000363412167245615015134 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_profile" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_profile \- API function .SH SYNOPSIS .B #include .sp .BI "int stringprep_profile(const char * " in ", char ** " out ", const char * " profile ", Stringprep_profile_flags " flags ");" .SH ARGUMENTS .IP "const char * in" 12 input array with UTF\-8 string to prepare. .IP "char ** out" 12 output variable with pointer to newly allocate string. .IP "const char * profile" 12 name of stringprep profile to use. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .SH "DESCRIPTION" Prepare the input zero terminated UTF\-8 string according to the stringprep profile, and return the result in a newly allocated variable. Note that you must convert strings entered in the systems locale into UTF\-8 before using this function, see \fBstringprep_locale_to_utf8()\fP. The output \fIout\fP variable must be deallocated by the caller. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles. .SH "RETURN VALUE" Returns \fBSTRINGPREP_OK\fP iff successful, or an error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_ucs4_to_utf8.30000644000000000000000000000331412167245615016015 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_ucs4_to_utf8" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_ucs4_to_utf8 \- API function .SH SYNOPSIS .B #include .sp .BI "char * stringprep_ucs4_to_utf8(const uint32_t * " str ", ssize_t " len ", size_t * " items_read ", size_t * " items_written ");" .SH ARGUMENTS .IP "const uint32_t * str" 12 a UCS\-4 encoded string .IP "ssize_t len" 12 the maximum length of \fIstr\fP to use. If \fIlen\fP < 0, then the string is terminated with a 0 character. .IP "size_t * items_read" 12 location to store number of characters read read, or \fBNULL\fP. .IP "size_t * items_written" 12 location to store number of bytes written or \fBNULL\fP. The value here stored does not include the trailing 0 byte. .SH "DESCRIPTION" Convert a string from a 32\-bit fixed width representation as UCS\-4. to UTF\-8. The result will be terminated with a 0 byte. .SH "RETURN VALUE" a pointer to a newly allocated UTF\-8 string. This value must be deallocated by the caller. If an error occurs, \fBNULL\fP will be returned. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_utf8_to_ucs4.30000644000000000000000000000301012167245614016005 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_to_ucs4" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_utf8_to_ucs4 \- API function .SH SYNOPSIS .B #include .sp .BI "uint32_t * stringprep_utf8_to_ucs4(const char * " str ", ssize_t " len ", size_t * " items_written ");" .SH ARGUMENTS .IP "const char * str" 12 a UTF\-8 encoded string .IP "ssize_t len" 12 the maximum length of \fIstr\fP to use. If \fIlen\fP < 0, then the string is nul\-terminated. .IP "size_t * items_written" 12 location to store the number of characters in the result, or \fBNULL\fP. .SH "DESCRIPTION" Convert a string from UTF\-8 to a 32\-bit fixed width representation as UCS\-4, assuming valid UTF\-8 input. This function does no error checking on the input. .SH "RETURN VALUE" a pointer to a newly allocated UCS\-4 string. This value must be deallocated by the caller. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_unicode_8z8z.30000644000000000000000000000272512167245614015244 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_8z8z" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_unicode_8z8z \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_unicode_8z8z(const char * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated UTF\-8 string. .IP "char ** output" 12 pointer to newly allocated output UTF\-8 string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UTF\-8 format into a UTF\-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/punycode_encode.30000644000000000000000000000572112167245615014361 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "punycode_encode" 3 "1.28" "libidn" "libidn" .SH NAME punycode_encode \- API function .SH SYNOPSIS .B #include .sp .BI "int punycode_encode(size_t " input_length ", const punycode_uint [] " input ", const unsigned char [] " case_flags ", size_t * " output_length ", char [] " output ");" .SH ARGUMENTS .IP "size_t input_length" 12 The number of code points in the \fIinput\fP array and the number of flags in the \fIcase_flags\fP array. .IP "const punycode_uint [] input" 12 An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF\-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. .IP "const unsigned char [] case_flags" 12 A \fBNULL\fP pointer or an array of boolean values parallel to the \fIinput\fP array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If \fIcase_flags\fP is a \fBNULL\fP pointer then ASCII letters are left as they are, and other code points are treated as unflagged. .IP "size_t * output_length" 12 The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. .IP "char [] output" 12 An array of ASCII code points. It is *not* null\-terminated; it will contain zeros if and only if the \fIinput\fP contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) .SH "DESCRIPTION" Converts a sequence of code points (presumed to be Unicode code points) to Punycode. .SH "RETURN VALUE" The return value can be any of the \fBPunycode_status\fP values defined above except \fBPUNYCODE_BAD_INPUT\fP. If not \fBPUNYCODE_SUCCESS\fP, then \fIoutput_size\fP and \fIoutput\fP might contain garbage. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_strerror.30000644000000000000000000000316412167245616013743 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_strerror" 3 "1.28" "libidn" "libidn" .SH NAME tld_strerror \- API function .SH SYNOPSIS .B #include .sp .BI "const char * tld_strerror(Tld_rc " rc ");" .SH ARGUMENTS .IP "Tld_rc rc" 12 tld return code .SH "DESCRIPTION" Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. .SH "TLD_SUCCESS" Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non\-zero values, for logical comparison purposes. .SH "TLD_INVALID" Invalid character found. .SH "TLD_NODATA" No input data was provided. .SH "TLD_MALLOC_ERROR" Error during memory allocation. .SH "TLD_ICONV_ERROR" Error during iconv string conversion. .SH "TLD_NO_TLD" No top\-level domain found in domain string. .SH "RETURN VALUE" Returns a pointer to a statically allocated string containing a description of the error with the return code \fIrc\fP. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_locale_to_utf8.30000644000000000000000000000231412167245615016375 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_locale_to_utf8" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_locale_to_utf8 \- API function .SH SYNOPSIS .B #include .sp .BI "char * stringprep_locale_to_utf8(const char * " str ");" .SH ARGUMENTS .IP "const char * str" 12 input zero terminated string. .SH "DESCRIPTION" Convert string encoded in the locale's character set into UTF\-8 by using \fBstringprep_convert()\fP. .SH "RETURN VALUE" Returns newly allocated zero\-terminated string which is \fIstr\fP transcoded into UTF\-8. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_check_4z.30000644000000000000000000000376512167245615013561 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4z" 3 "1.28" "libidn" "libidn" .SH NAME tld_check_4z \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_check_4z(const uint32_t * " in ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Zero\-terminated array of unicode code points to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP, the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP. .SH "RETURN VALUE" Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/pr29_8z.30000644000000000000000000000263612167245615012435 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "pr29_8z" 3 "1.28" "libidn" "libidn" .SH NAME pr29_8z \- API function .SH SYNOPSIS .B #include .sp .BI "int pr29_8z(const char * " in ");" .SH ARGUMENTS .IP "const char * in" 12 zero terminated input UTF\-8 string. .SH "DESCRIPTION" Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. .SH "RETURN VALUE" Returns the \fBPr29_rc\fP value \fBPR29_SUCCESS\fP on success, and \fBPR29_PROBLEM\fP if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or \fBPR29_STRINGPREP_ERROR\fP if there was a problem converting the string from UTF\-8 to UCS\-4. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_unicode_44i.30000644000000000000000000000522212167245614015014 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_44i" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_unicode_44i \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_unicode_44i(const uint32_t * " in ", size_t " inlen ", uint32_t * " out ", size_t * " outlen ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 input array with unicode code points. .IP "size_t inlen" 12 length of input array with unicode code points. .IP "uint32_t * out" 12 output array with unicode code points. .IP "size_t * outlen" 12 on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered. ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step. The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used. The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points. .SH "RETURN VALUE" Returns \fBIdna_rc\fP error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_utf8_nfkc_normalize.30000644000000000000000000000357412167245615017446 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_utf8_nfkc_normalize" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_utf8_nfkc_normalize \- API function .SH SYNOPSIS .B #include .sp .BI "char * stringprep_utf8_nfkc_normalize(const char * " str ", ssize_t " len ");" .SH ARGUMENTS .IP "const char * str" 12 a UTF\-8 encoded string. .IP "ssize_t len" 12 length of \fIstr\fP, in bytes, or \-1 if \fIstr\fP is nul\-terminated. .SH "DESCRIPTION" Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above\-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form. .SH "RETURN VALUE" a newly allocated string, that is the NFKC normalized form of \fIstr\fP. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_unicode_4z4z.30000644000000000000000000000274712167245614015240 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_4z4z" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_unicode_4z4z \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_unicode_4z4z(const uint32_t * " input ", uint32_t ** " output ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * input" 12 zero\-terminated Unicode string. .IP "uint32_t ** output" 12 pointer to newly allocated output Unicode string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UCS\-4 format into a UCS\-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_get_4.30000644000000000000000000000252712167245615013064 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_get_4" 3 "1.28" "libidn" "libidn" .SH NAME tld_get_4 \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_get_4(const uint32_t * " in ", size_t " inlen ", char ** " out ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Array of unicode code points to process. Does not need to be zero terminated. .IP "size_t inlen" 12 Number of unicode code points. .IP "char ** out" 12 Zero terminated ascii result string pointer. .SH "DESCRIPTION" Isolate the top\-level domain of \fIin\fP and return it as an ASCII string in \fIout\fP. .SH "RETURN VALUE" Return \fBTLD_SUCCESS\fP on success, or the corresponding \fBTld_rc\fP error code otherwise. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_check_4tz.30000644000000000000000000000323412167245615013734 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_4tz" 3 "1.28" "libidn" "libidn" .SH NAME tld_check_4tz \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_check_4tz(const uint32_t * " in ", size_t * " errpos ", const Tld_table * " tld ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 Zero terminated array of unicode code points to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table * tld" 12 A \fBTld_table\fP data structure representing the restrictions for which the input should be tested. .SH "DESCRIPTION" Test each of the code points in \fIin\fP for whether or not they are allowed by the data structure in \fItld\fP, return the position of the first character for which this is not the case in \fIerrpos\fP. .SH "RETURN VALUE" Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all code points are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_4zi.30000644000000000000000000000407612167245615014203 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_4zi" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_4zi \- API function .SH SYNOPSIS .B #include .sp .BI "int stringprep_4zi(uint32_t * " ucs4 ", size_t " maxucs4len ", Stringprep_profile_flags " flags ", const Stringprep_profile * " profile ");" .SH ARGUMENTS .IP "uint32_t * ucs4" 12 input/output array with zero terminated string to prepare. .IP "size_t maxucs4len" 12 maximum length of input/output array. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .IP "const Stringprep_profile * profile" 12 pointer to \fBStringprep_profile\fP to use. .SH "DESCRIPTION" Prepare the input zero terminated UCS\-4 string according to the stringprep profile, and write back the result to the input string. Since the stringprep operation can expand the string, \fImaxucs4len\fP indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP contain the \fBStringprep_profile\fP instructions to perform. Your application can define new profiles, possibly re\-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. .SH "RETURN VALUE" Returns \fBSTRINGPREP_OK\fP iff successful, or an \fBStringprep_rc\fP error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/tld_check_8z.30000644000000000000000000000411412167245615013552 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "tld_check_8z" 3 "1.28" "libidn" "libidn" .SH NAME tld_check_8z \- API function .SH SYNOPSIS .B #include .sp .BI "int tld_check_8z(const char * " in ", size_t * " errpos ", const Tld_table ** " overrides ");" .SH ARGUMENTS .IP "const char * in" 12 Zero\-terminated UTF8 string to process. .IP "size_t * errpos" 12 Position of offending character is returned here. .IP "const Tld_table ** overrides" 12 A \fBTld_table\fP array of additional domain restriction structures that complement and supersede the built\-in information. .SH "DESCRIPTION" Test each of the characters in \fIin\fP for whether or not they are allowed by the information in \fIoverrides\fP or by the built\-in TLD restriction data. When data for the same TLD is available both internally and in \fIoverrides\fP, the information in \fIoverrides\fP takes precedence. If several entries for a specific TLD are found, the first one is used. If \fIoverrides\fP is \fBNULL\fP, only the built\-in information is used. The position of the first offending character is returned in \fIerrpos\fP. Note that the error position refers to the decoded character offset rather than the byte position in the string. .SH "RETURN VALUE" Returns the \fBTld_rc\fP value \fBTLD_SUCCESS\fP if all characters are valid or when \fItld\fP is null, \fBTLD_INVALID\fP if a character is not allowed, or additional error codes on general failure conditions. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_ascii_4z.30000644000000000000000000000265412167245614014421 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_4z" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_ascii_4z \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_ascii_4z(const uint32_t * " input ", char ** " output ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * input" 12 zero terminated input Unicode string. .IP "char ** output" 12 pointer to newly allocated output string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert UCS\-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_unicode_8z4z.30000644000000000000000000000273612167245614015242 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_unicode_8z4z" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_unicode_8z4z \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_unicode_8z4z(const char * " input ", uint32_t ** " output ", int " flags ");" .SH ARGUMENTS .IP "const char * input" 12 zero\-terminated UTF\-8 string. .IP "uint32_t ** output" 12 pointer to newly allocated output Unicode string. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" Convert possibly ACE encoded domain name in UTF\-8 format into a UCS\-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. .SH "RETURN VALUE" Returns \fBIDNA_SUCCESS\fP on success, or error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/idna_to_ascii_4i.30000644000000000000000000000456612167245614014404 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "idna_to_ascii_4i" 3 "1.28" "libidn" "libidn" .SH NAME idna_to_ascii_4i \- API function .SH SYNOPSIS .B #include .sp .BI "int idna_to_ascii_4i(const uint32_t * " in ", size_t " inlen ", char * " out ", int " flags ");" .SH ARGUMENTS .IP "const uint32_t * in" 12 input array with unicode code points. .IP "size_t inlen" 12 length of input array with unicode code points. .IP "char * out" 12 output zero terminated string that must have room for at least 63 characters plus the terminating zero. .IP "int flags" 12 an \fBIdna_flags\fP value, e.g., \fBIDNA_ALLOW_UNASSIGNED\fP or \fBIDNA_USE_STD3_ASCII_RULES\fP. .SH "DESCRIPTION" The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels. It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application\-specific. The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition. ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once. .SH "RETURN VALUE" Returns 0 on success, or an \fBIdna_rc\fP error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/man/stringprep_4i.30000644000000000000000000000466412167245615014014 00000000000000.\" DO NOT MODIFY THIS FILE! It was generated by gdoc. .TH "stringprep_4i" 3 "1.28" "libidn" "libidn" .SH NAME stringprep_4i \- API function .SH SYNOPSIS .B #include .sp .BI "int stringprep_4i(uint32_t * " ucs4 ", size_t * " len ", size_t " maxucs4len ", Stringprep_profile_flags " flags ", const Stringprep_profile * " profile ");" .SH ARGUMENTS .IP "uint32_t * ucs4" 12 input/output array with string to prepare. .IP "size_t * len" 12 on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points. .IP "size_t maxucs4len" 12 maximum length of input/output array. .IP "Stringprep_profile_flags flags" 12 a \fBStringprep_profile_flags\fP value, or 0. .IP "const Stringprep_profile * profile" 12 pointer to \fBStringprep_profile\fP to use. .SH "DESCRIPTION" Prepare the input UCS\-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated (\fIucs4\fP[\fIlen\fP] = 0). The output will not be zero terminated unless \fIucs4\fP[\fIlen\fP] = 0. Instead, see \fBstringprep_4zi()\fP if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, \fImaxucs4len\fP indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The \fIflags\fP are one of \fBStringprep_profile_flags\fP values, or 0. The \fIprofile\fP contain the \fBStringprep_profile\fP instructions to perform. Your application can define new profiles, possibly re\-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. .SH "RETURN VALUE" Returns \fBSTRINGPREP_OK\fP iff successful, or an \fBStringprep_rc\fP error code. .SH "REPORTING BUGS" Report bugs to . GNU Libidn home page: http://www.gnu.org/software/libidn/ General help using GNU software: http://www.gnu.org/gethelp/ .SH COPYRIGHT Copyright \(co 2002-2013 Simon Josefsson. .br Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. .SH "SEE ALSO" The full documentation for .B libidn is maintained as a Texinfo manual. If the .B info and .B libidn programs are properly installed at your site, the command .IP .B info libidn .PP should give you access to the complete manual. libidn-1.28/doc/libidn.texi0000644000000000000000000021662412167220315012507 00000000000000\input texinfo @c -*- mode: texinfo; coding: us-ascii; -*- @c This file is part of GNU Libidn. @c See below for copyright and license. @setfilename libidn.info @documentencoding UTF-8 @include version.texi @settitle GNU Libidn @value{VERSION} @finalout @syncodeindex pg cp @copying This manual is last updated @value{UPDATED} for version @value{VERSION} of GNU Libidn. Copyright @copyright{} 2002-2013 Simon Josefsson. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end quotation @end copying @dircategory Software libraries @direntry * libidn: (libidn). Internationalized string processing library. @end direntry @dircategory Localization @direntry * idn: (libidn)Invoking idn. Internationalized Domain Name (IDN) string conversion. @end direntry @dircategory Emacs @direntry * IDN Library: (libidn)Emacs API. Emacs API for IDN functions. @end direntry @titlepage @title GNU Libidn @subtitle Internationalized string processing for the GNU system @subtitle for version @value{VERSION}, @value{UPDATED} @author Simon Josefsson @page @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @ifnottex @node Top @top GNU Libidn @insertcopying @end ifnottex @menu * Introduction:: How to use this manual. * Preparation:: What you should do before using the library. * Utility Functions:: Unicode transformation utility functions. * Stringprep Functions:: Stringprep functions. * Punycode Functions:: Punycode functions. * IDNA Functions:: IDNA functions. * TLD Functions:: TLD functions. * PR29 Functions:: Detect strings non-idempotent under NFKC. * Examples:: Demonstrate how to use the library. * Invoking idn:: Command line interface to the library. * Emacs API:: Emacs Lisp API for Libidn. * Java API:: Notes on the Java port of Libidn. * C# API:: Notes on the C# port of Libidn. * Acknowledgements:: Whom to blame. * History:: Rough outline of development history. Appendices * PR29 discussion:: Implementation aspects of the PR29 flaw. * On Label Separators:: Discussions of a flaw in the IDNA spec. * Copying Information:: License texts. Indices * Function and Variable Index:: * Concept Index:: @end menu @node Introduction @chapter Introduction GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries. The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included. The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call. The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing. Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included. Also included is a command line tool, several self tests, code examples, and more. @menu * Getting Started:: * Features:: * Library Overview:: * Supported Platforms:: * Getting help:: * Commercial Support:: * Downloading and Installing:: * Bug Reports:: * Contributing:: @end menu @node Getting Started @section Getting Started This manual documents the library programming interface. All functions and data types provided by the library are explained. Included are also examples, and documentation for the command line tool @file{idn} that provide a quick interface to the library. The Emacs Lisp bindings for the library is also discussed. The reader is assumed to possess basic familiarity with internationalization concepts and network programming in C or C++. This manual can be used in several ways. If read from the beginning to the end, it gives a good introduction into the library and how it can be used in an application. Forward references are included where necessary. Later on, the manual can be used as a reference manual to get just the information needed about any particular interface of the library. Experienced programmers might want to start looking at the examples at the end of the manual (@pxref{Examples}), and then only read up those parts of the interface which are unclear. @node Features @section Features This library might have a couple of advantages over other libraries doing a similar job. @table @asis @item It's Free Software Anybody can use, modify, and redistribute it under the terms of a free software license. @item It's thread-safe No global state is kept in the library. All functions are re-entrant. @item It's portable The code is intended to be written in pure ANSI C89. It has been tested on many Unix like operating systems, and Windows. @item It's modularized The library is composed of several modules, and the only interaction between modules is through each modules' public API. If you only need one piece of functionality, it is possible to take the files you need and incorporate them into your own project. @item It's not bloated The design of the library is based on the smallest API necessary to implement the basic functionality. It has been carefully extended with a small number of high-level wrappers to make it comfortable to use the library. However, it does not implement additional functionality just for the sake of completeness. @item It's documented Sadly, not all software comes with documentation these days. This one does. @end table @node Library Overview @section Library Overview The following illustration show the components that make up Libidn, and how your application relates to the library. In the illustration, various components are shown as boxes. You see the generic StringPrep component, the various StringPrep profiles including Nameprep, the Punycode component, the IDNA component, and the TLD component. The arrows indicate aggregation, e.g., IDNA uses Punycode and Nameprep, and in turn Nameprep uses the generic StringPrep interface. The interfaces to all components are available for applications, no component within the library is hidden from the application. @image{libidn-components} @node Supported Platforms @section Supported Platforms Libidn has at some point in time been tested on the following platforms. Build reports for each platforms and Libidn version is available at @url{http://autobuild.josefsson.org/libidn/}. @enumerate @item Debian GNU/Linux 3.0 (Woody) @cindex Debian GCC 2.95.4 and GNU Make. This is the main development platform. @code{alphaev67-unknown-linux-gnu}, @code{alphaev6-unknown-linux-gnu}, @code{arm-unknown-linux-gnu}, @code{armv4l-unknown-linux-gnu}, @code{hppa-unknown-linux-gnu}, @code{hppa64-unknown-linux-gnu}, @code{i686-pc-linux-gnu}, @code{ia64-unknown-linux-gnu}, @code{m68k-unknown-linux-gnu}, @code{mips-unknown-linux-gnu}, @code{mipsel-unknown-linux-gnu}, @code{powerpc-unknown-linux-gnu}, @code{s390-ibm-linux-gnu}, @code{sparc-unknown-linux-gnu}, @code{sparc64-unknown-linux-gnu}. @item Debian GNU/Linux 2.1 @cindex Debian GCC 2.95.1 and GNU Make. @code{armv4l-unknown-linux-gnu}. @item Tru64 UNIX @cindex Tru64 Tru64 UNIX C compiler and Tru64 Make. @code{alphaev67-dec-osf5.1}, @code{alphaev68-dec-osf5.1}. @item SuSE Linux 7.1 @cindex SuSE GCC 2.96 and GNU Make. @code{alphaev6-unknown-linux-gnu}, @code{alphaev67-unknown-linux-gnu}. @item SuSE Linux 7.2a @cindex SuSE Linux GCC 3.0 and GNU Make. @code{ia64-unknown-linux-gnu}. @item SuSE Linux @cindex SuSE Linux GCC 3.2.2 and GNU Make. @code{x86_64-unknown-linux-gnu} (AMD64 Opteron ``Melody''). @item SuSE Enterprise Server 9 on IBM OpenPower 720 @cindex SuSE Linux @cindex OpenPower 720 GCC 3.3.3 and GNU Make. @code{powerpc64-unknown-linux-gnu}. @item RedHat Linux 7.2 @cindex RedHat GCC 2.96 and GNU Make. @code{alphaev6-unknown-linux-gnu}, @code{alphaev67-unknown-linux-gnu}, @code{ia64-unknown-linux-gnu}. @item RedHat Linux 8.0 @cindex RedHat GCC 3.2 and GNU Make. @code{i686-pc-linux-gnu}. @item RedHat Advanced Server 2.1 @cindex RedHat Advanced Server GCC 2.96 and GNU Make. @code{i686-pc-linux-gnu}. @item Slackware Linux 8.0.01 @cindex RedHat GCC 2.95.3 and GNU Make. @code{i686-pc-linux-gnu}. @item Mandrake Linux 9.0 @cindex Mandrake GCC 3.2 and GNU Make. @code{i686-pc-linux-gnu}. @item IRIX 6.5 @cindex IRIX MIPS C compiler, IRIX Make. @code{mips-sgi-irix6.5}. @item AIX 4.3.2 @cindex AIX IBM C for AIX compiler, AIX Make. @code{rs6000-ibm-aix4.3.2.0}. @item Microsoft Windows 2000 (Cygwin) @cindex Windows GCC 3.2, GNU make. @code{i686-pc-cygwin}. @item HP-UX 11 @cindex HP-UX HP-UX C compiler and HP Make. @code{ia64-hp-hpux11.22}, @code{hppa2.0w-hp-hpux11.11}. @item SUN Solaris 2.7 @cindex Solaris GCC 3.0.4 and GNU Make. @code{sparc-sun-solaris2.7}. @item SUN Solaris 2.8 @cindex Solaris Sun WorkShop Compiler C 6.0 and SUN Make. @code{sparc-sun-solaris2.8}. @item SUN Solaris 2.9 @cindex Solaris Sun Forte Developer 7 C compiler and GNU Make. @code{sparc-sun-solaris2.9}. @item NetBSD 1.6 @cindex NetBSD GCC 2.95.3 and GNU Make. @code{alpha-unknown-netbsd1.6}, @code{i386-unknown-netbsdelf1.6}. @item OpenBSD 3.1 and 3.2 @cindex OpenBSD GCC 2.95.3 and GNU Make. @code{alpha-unknown-openbsd3.1}, @code{i386-unknown-openbsd3.1}. @item FreeBSD 4.7 and 4.8 @cindex FreeBSD GCC 2.95.4 and GNU Make. @code{alpha-unknown-freebsd4.7}, @code{alpha-unknown-freebsd4.8}, @code{i386-unknown-freebsd4.7}, @code{i386-unknown-freebsd4.8}. @item MacOS X 10.2 Server Edition @cindex MacOS X GCC 3.1 and GNU Make. @code{powerpc-apple-darwin6.5}. @item MacOS X 10.4 ``Tiger'' with Xcode 2.0 @cindex MacOS X GCC 4.0 and GNU Make. @code{powerpc-apple-darwin8.0}. @item Cross compiled to uClinux/uClibc on Motorola Coldfire @cindex Motorola Coldfire @cindex uClinux @cindex uClibc GCC 3.4 and GNU Make @code{m68k-uclinux-elf}. @item Cross compiled to ARM using Glibc @cindex ARM GCC 2.95 and GNU Make @code{arm-linux}. @item Cross compiled to Mingw32. @cindex Windows @cindex Microsoft @cindex mingw32 GCC 3.4.4 and GNU Make @code{i586-mingw32msvc}. @item OS/2 @cindex OS/2 @cindex IBM GCC. @end enumerate If you use Libidn on, or port Libidn to, a new platform please report it to the author. @node Getting help @section Getting help A mailing list where users of Libidn may help each other exists, and you can reach it by sending e-mail to @email{help-libidn@@gnu.org}. Archives of the mailing list discussions, and an interface to manage subscriptions, is available through the World Wide Web at @url{http://lists.gnu.org/mailman/listinfo/help-libidn}. @node Commercial Support @section Commercial Support Commercial support is available for users of GNU Libidn. The kind of support that can be purchased may include: @itemize @item Implement new features. Such as country code specific profiling to support a restricted subset of Unicode. @item Port Libidn to new platforms. This could include porting Libidn to an embedded platforms that may need memory or size optimization. @item Integrating IDN support in your existing project. @item System design of components related to IDN. @end itemize If you are interested, please write to: @verbatim Simon Josefsson Datakonsult AB Hagagatan 24 113 47 Stockholm Sweden E-mail: simon@josefsson.org @end verbatim If your company provides support related to GNU Libidn and would like to be mentioned here, contact the author (@pxref{Bug Reports}). @node Downloading and Installing @section Downloading and Installing @cindex Installation @cindex Download The package can be downloaded from several places, including: @url{ftp://alpha.gnu.org/pub/gnu/libidn/} The latest version is stored in a file, e.g., @samp{libidn-@value{VERSION}.tar.gz} where the @samp{@value{VERSION}} value is the highest version number in the directory. The package is then extracted, configured and built like many other packages that use Autoconf. For detailed information on configuring and building it, refer to the @file{INSTALL} file that is part of the distribution archive. Here is an example terminal session that download, configure, build and install the package. You will need a few basic tools, such as @samp{sh}, @samp{make} and @samp{cc}. @example $ wget -q ftp://alpha.gnu.org/pub/gnu/libidn/libidn-@value{VERSION}.tar.gz $ tar xfz libidn-@value{VERSION}.tar.gz $ cd libidn-@value{VERSION}/ $ ./configure ... $ make ... $ make install ... @end example After that Libidn should be properly installed and ready for use. A few @code{configure} options may be relevant, summarized in the table. @table @code @item --enable-java Build the Java port into a *.JAR file. @xref{Java API}, for more information. @item --disable-tld Disable the TLD module. This would typically only be useful if you are building on a memory restricted platforms. @xref{TLD Functions}, for more information. @item --enable-csharp[=IMPL] Build the @code{C#} port into a @code{*.DLL} file. @xref{C# API}, for more information. Here, @code{IMPL} is @code{pnet} or @code{mono}, indicating whether the PNET @command{cscc} compiler or the Mono @command{mcs} compiler should be used, respectively. @item --disable-valgrind-tests Disable running the self-checks under Valgrind (@url{http://valgrind.org/}). Normally Valgrind does not cause problems and can detect some severe memory errors. If you are getting errors from Valgrind that are caused by the compiler or libc (possibly as a result of special optimization flags), you may use this option to disable the use of Valgrind. @end table For the complete list, refer to the output from @code{configure --help}. @menu * Installing under Windows:: Windows specific build instructions. @end menu @node Installing under Windows @subsection Installing under Windows There are two ways to build Libidn on Windows: via MinGW or via Visual Studio. With MinGW, you can build a Libidn DLL and use it from other applications. After installing MinGW (@url{http://mingw.org/}) follow the generic installation instructions (@pxref{Downloading and Installing}). The DLL is installed by default. For information on how to use the DLL in other applications, see: @url{http://www.mingw.org/mingwfaq.shtml#faq-msvcdll}. You can build Libidn as a native Visual Studio C++ project. This allows you to build the code for other platforms that VS supports, such as Windows Mobile. You need Visual Studio 2005 or later. First download and unpack the archive as described in the generic installation instructions (@pxref{Downloading and Installing}). Don't run @code{./configure}. Instead, start Visual Studio and open the project file @file{windows/libidn.sln} inside the Libidn directory. You should be able to build the project using Build Project. Output libraries will be written into the @code{windows/lib} (or @code{windows/lib/debug} for Debug versions) folder. When working with Windows you may want to look into the special memory handling functions that may be needed (@pxref{Memory handling under Windows}). @node Bug Reports @section Bug Reports @cindex Reporting Bugs If you think you have found a bug in Libidn, please investigate it and report it. @itemize @bullet @item Please make sure that the bug is really in Libidn, and preferably also check that it hasn't already been fixed in the latest version. @item You have to send us a test case that makes it possible for us to reproduce the bug. @item You also have to explain what is wrong; if you get a crash, or if the results printed are not good and in that case, in what way. Make sure that the bug report includes all information you would need to fix this kind of bug for someone else. @end itemize Please make an effort to produce a self-contained report, with something definite that can be tested or debugged. Vague queries or piecemeal messages are difficult to act on and don't help the development effort. If your bug report is good, we will do our best to help you to get a corrected version of the software; if the bug report is poor, we won't do anything about it (apart from asking you to send better bug reports). If you think something in this manual is unclear, or downright incorrect, or if the language needs to be improved, please also send a note. Send your bug report to: @center @samp{bug-libidn@@gnu.org} @node Contributing @section Contributing @cindex Contributing @cindex Hacking If you want to submit a patch for inclusion -- from solve a typo you discovered, up to adding support for a new feature -- you should submit it as a bug report (@pxref{Bug Reports}). There are some things that you can do to increase the chances for it to be included in the official package. Unless your patch is very small (say, under 10 lines) we require that you assign the copyright of your work to the Free Software Foundation. This is to protect the freedom of the project. If you have not already signed papers, we will send you the necessary information when you submit your contribution. For contributions that doesn't consist of actual programming code, the only guidelines are common sense. Use it. For code contributions, a number of style guides will help you: @itemize @bullet @item Coding Style. Follow the GNU Standards document (@pxref{top, GNU Coding Standards,, standards}). If you normally code using another coding standard, there is no problem, but you should use @samp{indent} to reformat the code (@pxref{top, GNU Indent,, indent}) before submitting your work. @item Use the unified diff format @samp{diff -u}. @item Return errors. No reason whatsoever should abort the execution of the library. Even memory allocation errors, e.g. when malloc return NULL, should work although result in an error code. @item Design with thread safety in mind. Don't use global variables and the like. @item Avoid using the C math library. It causes problems for embedded implementations, and in most situations it is very easy to avoid using it. @item Document your functions. Use comments before each function headers, that, if properly formatted, are extracted into GTK-DOC web pages. Don't forget to update the Texinfo manual as well. @item Supply a ChangeLog and NEWS entries, where appropriate. @end itemize @c ********************************************************** @c ******************* Preparation ************************ @c ********************************************************** @node Preparation @chapter Preparation To use `Libidn', you have to perform some changes to your sources and the build system. The necessary changes are small and explained in the following sections. At the end of this chapter, it is described how the library is initialized, and how the requirements of the library are verified. A faster way to find out how to adapt your application for use with `Libidn' may be to look at the examples at the end of this manual (@pxref{Examples}). @menu * Header:: * Initialization:: * Version Check:: * Building the source:: * Autoconf tests:: * Memory handling under Windows:: @end menu @node Header @section Header The library contains a few independent parts, and each part export the interfaces (data types and functions) in a header file. You must include the appropriate header files in all programs using the library, either directly or through some other header file, like this: @example #include @end example The header files and the functions they define are categorized as follows: @table @asis @item stringprep.h The low-level stringprep API entry point. For IDN applications, this is usually invoked via IDNA. Some applications, specifically non-IDN ones, may want to prepare strings directly though, and should include this header file. The name space of the stringprep part of Libidn is @code{stringprep*} for function names, @code{Stringprep*} for data types and @code{STRINGPREP_*} for other symbols. In addition, @code{_stringprep*} is reserved for internal use and should never be used by applications. @item punycode.h The entry point to Punycode encoding and decoding functions. Normally punycode is used via the idna.h interface, but some application may want to perform raw punycode operations. The name space of the punycode part of Libidn is @code{punycode_*} for function names, @code{Punycode*} for data types and @code{PUNYCODE_*} for other symbols. In addition, @code{_punycode*} is reserved for internal use and should never be used by applications. @item idna.h The entry point to the IDNA functions. This is the normal entry point for applications that need IDN functionality. The name space of the IDNA part of Libidn is @code{idna_*} for function names, @code{Idna*} for data types and @code{IDNA_*} for other symbols. In addition, @code{_idna*} is reserved for internal use and should never be used by applications. @item tld.h The entry point to the TLD functions. Normal applications are not expected to need this functionality, but it is present for applications that are used by TLDs to validate customer input. The name space of the TLD part of Libidn is @code{tld_*} for function names, @code{Tld_*} for data types and @code{TLD_*} for other symbols. In addition, @code{_tld*} is reserved for internal use and should never be used by applications. @item pr29.h The entry point to the PR29 functions. These functions are used to detect ``problem sequences'' (@pxref{PR29 Functions}), mostly for use in security critical applications. The name space of the PR29 part of Libidn is @code{pr29_*} for function names, @code{Pr29_*} for data types and @code{PR29_*} for other symbols. In addition, @code{_pr29*} is reserved for internal use and should never be used by applications. @item idn-free.h The entry point to the Windows memory de-allocation function (@pxref{Memory handling under Windows}). It contains only one function @code{idn_free}. @end table All header files defined and use the symbol @code{IDNAPI} to decorate the API functions. @node Initialization @section Initialization Libidn is stateless and does not need any initialization. @node Version Check @section Version Check It is often desirable to check that the version of `Libidn' used is indeed one which fits all requirements. Even with binary compatibility new features may have been introduced but due to problem with the dynamic linker an old version is actually used. So you may want to check that the version is okay right after program startup. @include texi/stringprep_check_version.texi The normal way to use the function is to put something similar to the following first in your @code{main}: @example if (!stringprep_check_version (STRINGPREP_VERSION)) @{ printf ("stringprep_check_version() failed:\n" "Header file incompatible with shared library.\n"); exit(EXIT_FAILURE); @} @end example @node Building the source @section Building the source @cindex Compiling your application If you want to compile a source file including e.g. the `idna.h' header file, you must make sure that the compiler can find it in the directory hierarchy. This is accomplished by adding the path to the directory in which the header file is located to the compilers include file search path (via the @option{-I} option). However, the path to the include file is determined at the time the source is configured. To solve this problem, `Libidn' uses the external package @command{pkg-config} that knows the path to the include file and other configuration options. The options that need to be added to the compiler invocation at compile time are output by the @option{--cflags} option to @command{pkg-config libidn}. The following example shows how it can be used at the command line: @example gcc -c foo.c `pkg-config libidn --cflags` @end example Adding the output of @samp{pkg-config libidn --cflags} to the compilers command line will ensure that the compiler can find e.g. the idna.h header file. A similar problem occurs when linking the program with the library. Again, the compiler has to find the library files. For this to work, the path to the library files has to be added to the library search path (via the @option{-L} option). For this, the option @option{--libs} to @command{pkg-config libidn} can be used. For convenience, this option also outputs all other options that are required to link the program with the `libidn' library. The example shows how to link @file{foo.o} with the `libidn' library to a program @command{foo}. @example gcc -o foo foo.o `pkg-config libidn --libs` @end example Of course you can also combine both examples to a single command by specifying both options to @command{pkg-config}: @example gcc -o foo foo.c `pkg-config libidn --cflags --libs` @end example @node Autoconf tests @section Autoconf tests @cindex Autoconf tests @cindex Configure tests If your project uses Autoconf (@pxref{top, GNU Autoconf,, autoconf}) to check for installed libraries, you might find the following snippet illustrative. It add a new @file{configure} parameter @code{--with-libidn}, and check for @file{idna.h} and @samp{-lidn} (possibly below the directory specified as the optional argument to @code{--with-libidn}), and define the CPP symbol @code{LIBIDN} if the library is found. The default behaviour is to search for the library and enable the functionality (that is, define the symbol) when the library is found, but if you wish to make the default behaviour of your package be that Libidn is not used (even if it is installed on the system), change @samp{libidn=yes} to @samp{libidn=no} on the third line. @example AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no"; then if test "$libidn" != "yes"; then LDFLAGS="$@{LDFLAGS@} -L$libidn/lib" CPPFLAGS="$@{CPPFLAGS@} -I$libidn/include" fi AC_CHECK_HEADER(idna.h, AC_CHECK_LIB(idn, stringprep_check_version, [libidn=yes LIBS="$@{LIBS@} -lidn"], libidn=no), libidn=no) fi if test "$libidn" != "no" ; then AC_DEFINE(LIBIDN, 1, [Define to 1 if you want IDN support.]) else AC_MSG_WARN([Libidn not found]) fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn) @end example If you require that your users have installed @code{pkg-config} (which I cannot recommend generally), the above can be done more easily as follows. @example AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no" ; then PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no]) if test "$libidn" != "yes" ; then libidn=no AC_MSG_WARN([Libidn not found]) else libidn=yes AC_DEFINE(LIBIDN, 1, [Define to 1 if you want Libidn.]) fi fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn) @end example @node Memory handling under Windows @section Memory handling under Windows @cindex free @cindex Memory handling @cindex de-allocation @cindex heap memory Several functions in the library allocates memory. The memory is expected to be de-allocated using the @code{free} function. Under Windows, it is sometimes necessary to de-allocate memory in the same module that allocated a memory region. The reason is that different modules use separate heap memory regions. To solve this problem we provide a function to de-allocate memory inside the library. Note that we do not recommend using this interface generally if you do not care about Windows portability. @section Header file @code{idn-free.h} To use the function explained in this chapter, you need to include the file @file{idn-free.h} using: @example #include @end example @section Memory de-allocation function @include texi/idn_free.texi @c ********************************************************** @c ******************** Utility Functions ****************** @c ********************************************************** @node Utility Functions @chapter Utility Functions @cindex Utility Functions The rest of this library makes extensive use of Unicode characters. In order to interface this library with the outside world, your application may need to make various Unicode transformations. @section Header file @code{stringprep.h} To use the functions explained in this chapter, you need to include the file @file{stringprep.h} using: @example #include @end example @section Unicode Encoding Transformation @include texi/stringprep_unichar_to_utf8.texi @include texi/stringprep_utf8_to_unichar.texi @include texi/stringprep_ucs4_to_utf8.texi @include texi/stringprep_utf8_to_ucs4.texi @section Unicode Normalization @include texi/stringprep_ucs4_nfkc_normalize.texi @include texi/stringprep_utf8_nfkc_normalize.texi @section Character Set Conversion @include texi/stringprep_locale_charset.texi @include texi/stringprep_convert.texi @include texi/stringprep_locale_to_utf8.texi @include texi/stringprep_utf8_to_locale.texi @c ********************************************************** @c ****************** Stringprep Functions ***************** @c ********************************************************** @node Stringprep Functions @chapter Stringprep Functions @cindex Stringprep Functions Stringprep describes a framework for preparing Unicode text strings in order to increase the likelihood that string input and string comparison work in ways that make sense for typical users throughout the world. The stringprep protocol is useful for protocol identifier values, company and personal names, internationalized domain names, and other text strings. @section Header file @code{stringprep.h} To use the functions explained in this chapter, you need to include the file @file{stringprep.h} using: @example #include @end example @section Defining A Stringprep Profile Further types and structures are defined for applications that want to specify their own stringprep profile. As these are fairly obscure, and by necessity tied to the implementation, we do not document them here. Look into the @file{stringprep.h} header file, and the @file{profiles.c} source code for the details. @section Control Flags @deftypevr {Stringprep flags} {Stringprep_profile_flags} {STRINGPREP_NO_NFKC} Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. @end deftypevr @deftypevr {Stringprep flags} {Stringprep_profile_flags} {STRINGPREP_NO_BIDI} Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. @end deftypevr @deftypevr {Stringprep flags} {Stringprep_profile_flags} {STRINGPREP_NO_UNASSIGNED} Make the library return with an error if string contains unassigned characters according to profile. @end deftypevr @section Core Functions @include texi/stringprep_4i.texi @include texi/stringprep_4zi.texi @include texi/stringprep.texi @include texi/stringprep_profile.texi @section Error Handling @include texi/stringprep_strerror.texi @section Stringprep Profile Macros @deftypefun {int} stringprep_nameprep_no_unassigned (char * @var{in}, int @var{maxlen}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is false, use @code{stringprep_nameprep} for true AllowUnassigned. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_iscsi (char * @var{in}, int @var{maxlen}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft iSCSI stringprep profile. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_plain (char * @var{in}, int @var{maxlen}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft SASL ANONYMOUS profile. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_xmpp_nodeprep (char * @var{in}, int @var{maxlen}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP node identifier profile. Returns 0 iff successful, or an error code. @end deftypefun @deftypefun {int} stringprep_xmpp_resourceprep (char * @var{in}, int @var{maxlen}) @var{in}: input/ouput array with string to prepare. @var{maxlen}: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP resource identifier profile. Returns 0 iff successful, or an error code. @end deftypefun @c ********************************************************** @c ******************* Punycode Functions ****************** @c ********************************************************** @node Punycode Functions @chapter Punycode Functions @cindex Punycode Functions Punycode is a simple and efficient transfer encoding syntax designed for use with Internationalized Domain Names in Applications. It uniquely and reversibly transforms a Unicode string into an ASCII string. ASCII characters in the Unicode string are represented literally, and non-ASCII characters are represented by ASCII characters that are allowed in host name labels (letters, digits, and hyphens). A general algorithm called Bootstring allows a string of basic code points to uniquely represent any string of code points drawn from a larger set. Punycode is an instance of Bootstring that uses particular parameter values, appropriate for IDNA. @section Header file @code{punycode.h} To use the functions explained in this chapter, you need to include the file @file{punycode.h} using: @example #include @end example @section Unicode Code Point Data Type The punycode function uses a special type to denote Unicode code points. It is guaranteed to always be a 32 bit unsigned integer. @deftypevr {Punycode Unicode code point} uint32_t punycode_uint A unsigned integer that hold Unicode code points. @end deftypevr @section Core Functions Note that the current implementation will fail if the @code{input_length} exceed 4294967295 (the size of @code{punycode_uint}). This restriction may be removed in the future. Meanwhile applications are encouraged to not depend on this problem, and use @code{sizeof} to initialize @code{input_length} and @code{output_length}. The functions provided are the following two entry points: @include texi/punycode_encode.texi @include texi/punycode_decode.texi @section Error Handling @include texi/punycode_strerror.texi @c ********************************************************** @c ********************* IDNA Functions ********************* @c ********************************************************** @node IDNA Functions @chapter IDNA Functions @cindex IDNA Functions Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. The IDNA document defines internationalized domain names (IDNs) and a mechanism called IDNA for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text. @section Header file @code{idna.h} To use the functions explained in this chapter, you need to include the file @file{idna.h} using: @example #include @end example @section Control Flags The IDNA @code{flags} parameter can take on the following values, or a bit-wise inclusive or of any subset of the parameters: @deftypevr {Return code} {Idna_flags} IDNA_ALLOW_UNASSIGNED Allow unassigned Unicode code points. @end deftypevr @deftypevr {Return code} {Idna_flags} IDNA_USE_STD3_ASCII_RULES Check output to make sure it is a STD3 conforming host name. @end deftypevr @section Prefix String @deftypevr {Macro} {#define} IDNA_ACE_PREFIX String with the official IDNA prefix, @code{xn--}. @end deftypevr @section Core Functions The idea behind the IDNA function names are as follows: the @code{idna_to_ascii_4i} and @code{idna_to_unicode_44i} functions are the core IDNA primitives. The @code{4} indicate that the function takes UCS-4 strings (i.e., Unicode code points encoded in a 32-bit unsigned integer type) of the specified length. The @code{i} indicate that the data is written ``inline'' into the buffer. This means the caller is responsible for allocating (and de-allocating) the string, and providing the library with the allocated length of the string. The output length is written in the output length variable. The remaining functions all contain the @code{z} indicator, which means the strings are zero terminated. All output strings are allocated by the library, and must be de-allocated by the caller. The @code{4} indicator again means that the string is UCS-4, the @code{8} means the strings are UTF-8 and the @code{l} indicator means the strings are encoded in the encoding used by the current locale. The functions provided are the following entry points: @include texi/idna_to_ascii_4i.texi @include texi/idna_to_unicode_44i.texi @section Simplified ToASCII Interface @include texi/idna_to_ascii_4z.texi @include texi/idna_to_ascii_8z.texi @include texi/idna_to_ascii_lz.texi @section Simplified ToUnicode Interface @include texi/idna_to_unicode_4z4z.texi @include texi/idna_to_unicode_8z4z.texi @include texi/idna_to_unicode_8z8z.texi @include texi/idna_to_unicode_8zlz.texi @include texi/idna_to_unicode_lzlz.texi @section Error Handling @include texi/idna_strerror.texi @c ********************************************************** @c ********************** TLD Functions ********************* @c ********************************************************** @node TLD Functions @chapter TLD Functions @cindex TLD Functions Organizations that manage some Top Level Domains (TLDs) have published tables with characters they accept within the domain. The reason may be to reduce complexity that come from using the full Unicode range, and to protect themselves from future (backwards incompatible) changes in the IDN or Unicode specifications. Libidn implement an infrastructure for defining and checking strings against such tables. Libidn also ship some tables from TLDs that we have managed to get permission to use them from. Because these tables are even less static than Unicode or StringPrep tables, it is likely that they will be updated from time to time (even in backwards incompatible ways). The Libidn interface provide a ``version'' field for each TLD table, which can be compared for equality to guarantee the same operation over time. From a design point of view, you can regard the TLD tables for IDN as the ``localization'' step that come after the ``internationalization'' step provided by the IETF standards. The TLD functionality rely on up-to-date tables. The latest version of Libidn aim to provide these, but tables with unclear copying conditions, or generally experimental tables, are not included. Some such tables can be found at @url{https://github.com/gnuthor/tldchk}. @section Header file @code{tld.h} To use the functions explained in this chapter, you need to include the file @file{tld.h} using: @example #include @end example @c @section Data Types @c @c @deftp {Data type} {Tld_table_element} @var{start} @var{end} @c @example @c /* Interval of valid code points in the TLD. */ @c struct Tld_table_element @c @{ @c uint32_t start; /* Start of range. */ @c uint32_t end; /* End of range, end == start if single. */ @c @}; @c typedef struct Tld_table_element Tld_table_element; @c @end example @c This @code{struct} contain the @var{start} and @var{end} positions @c (inclusive) of a range. If the range is a single (i.e., starts and @c ends in the same character), then set @var{end} to the same as @c @var{start}. This structure is normally used as an array. @c @end deftp @c @c @deftp {Data type} {Tld_table} @var{name} @var{version} @var{nvalid} @var{valid} @c @example @c /* List valid code points in a TLD. */ @c struct Tld_table @c @{ @c char *name; /* TLD name, e.g., "no". */ @c char *version; /* Version string from TLD file. */ @c size_t nvalid; /* Number of entries in data. */ @c Tld_table_element *valid[]; /* Sorted array of valid code points. */ @c @}; @c typedef struct Tld_table Tld_table; @c @end example @c In this @code{struct}, the @var{name} field is a string (@samp{char*}) @c indicating the TLD name (e.g., ``no''). The @var{version} field is a @c string (@samp{char*}) containing a free form humanly readable string @c that can be used for equality comparison to compare different versions @c of the table. The @var{nvalid} field indicate how many entries there @c are in @var{valid}, which brings us finally to @var{valid} that @c contain the actual code points that are valid for this TLD (see @c @code{Tld_table_element} above). @c @end deftp @section Core Functions @include texi/tld_check_4t.texi @include texi/tld_check_4tz.texi @section Utility Functions @include texi/tld_get_4.texi @include texi/tld_get_4z.texi @include texi/tld_get_z.texi @include texi/tld_get_table.texi @include texi/tld_default_table.texi @section High-Level Wrapper Functions @include texi/tld_check_4.texi @include texi/tld_check_4z.texi @include texi/tld_check_8z.texi @include texi/tld_check_lz.texi @section Error Handling @include texi/tld_strerror.texi @c ********************************************************** @c ********************** PR29 Functions ******************** @c ********************************************************** @node PR29 Functions @chapter PR29 Functions @cindex PR29 Functions A deficiency in the specification of Unicode Normalization Forms has been found. The consequence is that some strings can be normalized into different strings by different implementations. In other words, two different implementations may return different output for the same input (because the interpretation of the specification is ambiguous). Further, an implementation invoked again on the one of the output strings may return a different string (because one of the interpretation of the ambiguous specification make normalization non-idempotent). Fortunately, only a select few character sequence exhibit this problem, and none of them are expected to occur in natural languages (due to different linguistic uses of the involved characters). A full discussion of the problem may be found at: @url{http://www.unicode.org/review/pr-29.html} The PR29 functions below allow you to detect the problem sequence. So when would you want to use these functions? For most applications, such as those using Nameprep for IDN, this is likely only to be an interoperability problem. Thus, you may not want to care about it, as the character sequences will rarely occur naturally. However, if you are using a profile, such as SASLPrep, to process authentication tokens; authorization tokens; or passwords, there is a real danger that attackers may try to use the peculiarities in these strings to attack parts of your system. As only a small number of strings, and no naturally occurring strings, exhibit this problem, the conservative approach of rejecting the strings is recommended. If this approach is not used, you should instead verify that all parts of your system, that process the tokens and passwords, use a NFKC implementation that produce the same output for the same input. Technically inclined readers may be interested in knowing more about the implementation aspects of the PR29 flaw. @xref{PR29 discussion}. @section Header file @code{pr29.h} To use the functions explained in this chapter, you need to include the file @file{pr29.h} using: @example #include @end example @section Core Functions @include texi/pr29_4.texi @section Utility Functions @include texi/pr29_4z.texi @include texi/pr29_8z.texi @section Error Handling @include texi/pr29_strerror.texi @c ********************************************************** @c *********************** Examples *********************** @c ********************************************************** @node Examples @chapter Examples @cindex Examples This chapter contains example code which illustrate how `Libidn' can be used when writing your own application. @menu * Example 1:: Example using stringprep. * Example 2:: Example using punycode. * Example 3:: Example using IDNA ToASCII. * Example 4:: Example using IDNA ToUnicode. * Example 5:: Example using TLD checking. @end menu @node Example 1 @section Example 1 This example demonstrates how the stringprep functions are used. @verbatiminclude example.c @node Example 2 @section Example 2 This example demonstrates how the punycode functions are used. @verbatiminclude example2.c @node Example 3 @section Example 3 This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names. @verbatiminclude example3.c @node Example 4 @section Example 4 This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names. @verbatiminclude example4.c @node Example 5 @section Example 5 This example demonstrates how the library is used to check a string for invalid characters within a specific TLD. @verbatiminclude example5.c @c ********************************************************** @c ********************* Invoking idn ********************* @c ********************************************************** @node Invoking idn @chapter Invoking idn @pindex idn @cindex invoking @command{idn} @cindex command line @section Name GNU Libidn (idn) -- Internationalized Domain Names command line tool @section Description @code{idn} allows internationalized string preparation (@samp{stringprep}), encoding and decoding of punycode data, and IDNA ToASCII/ToUnicode operations to be performed on the command line. If strings are specified on the command line, they are used as input and the computed output is printed to standard output @code{stdout}. If no strings are specified on the command line, the program read data, line by line, from the standard input @code{stdin}, and print the computed output to standard output. What processing is performed (e.g., ToASCII, or Punycode encode) is indicated by options. If any errors are encountered, the execution of the applications is aborted. All strings are expected to be encoded in the preferred charset used by your locale. Use @code{--debug} to find out what this charset is. You can override the charset used by setting environment variable @code{CHARSET}. To process a string that starts with @code{-}, for example @code{-foo}, use @code{--} to signal the end of parameters, as in @code{idn --quiet -a -- -foo}. @section Options @code{idn} recognizes these commands: @verbatim -h, --help Print help and exit -V, --version Print version and exit -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' --debug Print debugging information --quiet Silent operation @end verbatim @section Environment Variables The @var{CHARSET} environment variable can be used to override what character set to be used for decoding incoming data (i.e., on the command line or on the standard input stream), and to encode data to the standard output. If your system is set up correctly, however, the application will guess which character set is used automatically. Example usage: @example $ CHARSET=ISO-8859-1 idn --punycode-encode ... @end example @section Examples Standard usage, reading input from standard input: @example jas@@latte:~$ idn libidn 0.3.5 Copyright 2002, 2003 Simon Josefsson. GNU Libidn comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Libidn under the terms of the GNU Lesser General Public License. For more information about these matters, see the file named COPYING.LIB. Type each input string on a line by itself, terminated by a newline character. r@"aksm@"org@aa{}s.se xn--rksmrgs-5wao1o.se jas@@latte:~$ @end example Reading input from command line, and disable printing copyright and license information: @example jas@@latte:~$ idn --quiet r@"aksm@"org@aa{}s.se bl@aa{}b@ae{}rgr@o{}d.no xn--rksmrgs-5wao1o.se xn--blbrgrd-fxak7p.no jas@@latte:~$ @end example Accessing a specific StringPrep profile directly: @example jas@@latte:~$ idn --quiet --profile=SASLprep --stringprep te@ss{}t@ordf{} te@ss{}ta jas@@latte:~$ @end example @section Troubleshooting Getting character data encoded right, and making sure Libidn use the same encoding, can be difficult. The reason for this is that most systems encode character data in more than one character encoding, i.e., using @code{UTF-8} together with @code{ISO-8859-1} or @code{ISO-2022-JP}. This problem is likely to continue to exist until only one character encoding come out as the evolutionary winner, or (more likely, at least to some extents) forever. The first step to troubleshooting character encoding problems with Libidn is to use the @samp{--debug} parameter to find out which character set encoding @samp{idn} believe your locale uses. @example jas@@latte:~$ idn --debug --quiet "" system locale uses charset `UTF-8'. jas@@latte:~$ @end example If it prints @code{ANSI_X3.4-1968} (i.e., @code{US-ASCII}), this indicate you have not configured your locale properly. To configure the locale, you can, for example, use @samp{LANG=sv_SE.UTF-8; export LANG} at a @code{/bin/sh} prompt, to set up your locale for a Swedish environment using @code{UTF-8} as the encoding. Sometimes @samp{idn} appear to be unable to translate from your system locale into @code{UTF-8} (which is used internally), and you get an error like the following: @example jas@@latte:~$ idn --quiet foo idn: could not convert from ISO-8859-1 to UTF-8. jas@@latte:~$ @end example The simplest explanation is that you haven't installed the @samp{iconv} conversion tools. You can find it as a standalone library in GNU Libiconv (@uref{http://www.gnu.org/software/libiconv/}). On many GNU/Linux systems, this library is part of the system, but you may have to install additional packages (e.g., @samp{glibc-locale} for Debian) to be able to use it. Another explanation is that the error is correct and you are feeding @samp{idn} invalid data. This can happen inadvertently if you are not careful with the character set encoding you use. For example, if your shell run in a @code{ISO-8859-1} environment, and you invoke @samp{idn} with the @samp{CHARSET} environment variable as follows, you will feed it @code{ISO-8859-1} characters but force it to believe they are @code{UTF-8}. Naturally this will lead to an error, unless the byte sequences happen to be valid @code{UTF-8}. Note that even if you don't get an error, the output may be incorrect in this situation, because @code{ISO-8859-1} and @code{UTF-8} does not in general encode the same characters as the same byte sequences. @example jas@@latte:~$ idn --quiet --debug "" system locale uses charset `ISO-8859-1'. jas@@latte:~$ CHARSET=UTF-8 idn --quiet --debug r@"aksm@"org@aa{}s system locale uses charset `UTF-8'. input[0] = U+0072 input[1] = U+4af3 input[2] = U+006d input[3] = U+1b29e5 input[4] = U+0073 output[0] = U+0078 output[1] = U+006e output[2] = U+002d output[3] = U+002d output[4] = U+0072 output[5] = U+006d output[6] = U+0073 output[7] = U+002d output[8] = U+0068 output[9] = U+0069 output[10] = U+0036 output[11] = U+0064 output[12] = U+0035 output[13] = U+0039 output[14] = U+0037 output[15] = U+0035 output[16] = U+0035 output[17] = U+0032 output[18] = U+0061 xn--rms-hi6d597552a jas@@latte:~$ @end example The sense moral here is to forget about @samp{CHARSET} (configure your locales properly instead) unless you know what you are doing, and if you want to use it, do it carefully, after verifying with @samp{--debug} that you get the desired results. @node Emacs API @chapter Emacs API Included in Libidn are @file{punycode.el} and @file{idna.el} that provides an Emacs Lisp API to (a limited set of) the Libidn API. This section describes the API. Currently the IDNA API always set the @code{UseSTD3ASCIIRules} flag and clear the @code{AllowUnassigned} flag, in the future there may be functionality to specify these flags via the API. @section Punycode Emacs API @defvar punycode-program Name of the GNU Libidn @file{idn} application. The default is @samp{idn}. This variable can be customized. @end defvar @defvar punycode-environment List of environment variable definitions prepended to @samp{process-environment}. The default is @samp{("CHARSET=UTF-8")}. This variable can be customized. @end defvar @defvar punycode-encode-parameters List of parameters passed to @var{punycode-program} to invoke punycode encoding mode. The default is @samp{("--quiet" "--punycode-encode")}. This variable can be customized. @end defvar @defvar punycode-decode-parameters Parameters passed to @var{punycode-program} to invoke punycode decoding mode. The default is @samp{("--quiet" "--punycode-decode")}. This variable can be customized. @end defvar @defun punycode-encode string Returns a Punycode encoding of the @var{string}, after converting the input into UTF-8. @end defun @defun punycode-decode string Returns a possibly multibyte string which is the decoding of the @var{string} which is a punycode encoded string. @end defun @section IDNA Emacs API @defvar idna-program Name of the GNU Libidn @file{idn} application. The default is @samp{idn}. This variable can be customized. @end defvar @defvar idna-environment List of environment variable definitions prepended to @samp{process-environment}. The default is @samp{("CHARSET=UTF-8")}. This variable can be customized. @end defvar @defvar idna-to-ascii-parameters List of parameters passed to @var{idna-program} to invoke IDNA ToASCII mode. The default is @samp{("--quiet" "--idna-to-ascii" "--usestd3asciirules")}. This variable can be customized. @end defvar @defvar idna-to-unicode-parameters Parameters passed @var{idna-program} to invoke IDNA ToUnicode mode. The default is @samp{("--quiet" "--idna-to-unicode" "--usestd3asciirules")}. This variable can be customized. @end defvar @defun idna-to-ascii string Returns an ASCII Compatible Encoding (ACE) of the string computed by the IDNA ToASCII operation on the input @var{string}, after converting the input to UTF-8. @end defun @defun idna-to-unicode string Returns a possibly multibyte string which is the output of the IDNA ToUnicode operation computed on the input @var{string}. @end defun @node Java API @chapter Java API Libidn has been ported to the Java programming language, and as a consequence most of the API is available to native Java applications. This section contain notes on this support, complete documentation is pending. The Java library, if Libidn has been built with Java support (@pxref{Downloading and Installing}), will be placed in @file{java/libidn-@value{VERSION}.jar}. The source code is below @file{java/} in Maven directory layout, and there is a Maven @file{pom.xml} build script as well. Source code files are in @file{java/src/main/java/gnu/inet/encoding/}. @section Overview This package provides a Java implementation of the Internationalized Domain Names in Applications (IDNA) standard. It is written entirely in Java and does not require any additional libraries to be set up. The gnu.inet.encoding.IDNA class offers two public functions, toASCII and toUnicode which can be used as follows: @example gnu.inet.encoding.IDNA.toASCII("bl@"ods.z@"ug"); gnu.inet.encoding.IDNA.toUnicode("xn--blds-6qa.xn--zg-xka"); @end example @section Miscellaneous Programs The @file{java/src/util/java/} directory contains several programs that are related to the Java part of GNU Libidn, but that don't need to be included in the main source tree or the JAR file. @subsection GenerateRFC3454 This program parses RFC3454 and creates the RFC3454.java program that is required during the StringPrep phase. The RFC can be found at various locations, for example at @url{http://www.ietf.org/rfc/rfc3454.txt}. Invoke the program as follows: @example $ java GenerateRFC3454 Creating RFC3454.java... Ok. @end example @subsection GenerateNFKC The GenerateNFKC program parses the Unicode character database file and generates all the tables required for NFKC. This program requires the two files UnicodeData.txt and CompositionExclusions.txt of version 3.2 of the Unicode files. Note that RFC3454 (Stringprep) defines that Unicode version 3.2 is to be used, not the latest version. The Unicode data files can be found at @url{http://www.unicode.org/Public/}. Invoke the program as follows: @example $ java GenerateNFKC Creating CombiningClass.java... Ok. Creating DecompositionKeys.java... Ok. Creating DecompositionMappings.java... Ok. Creating Composition.java... Ok. @end example @subsection TestIDNA The TestIDNA program allows to test the IDNA implementation manually or against Simon Josefsson's test vectors. The test vectors can be found at the Libidn homepage, @url{http://www.gnu.org/software/libidn/}. To test the transformation manually, use: @example $ java -cp .:/usr/share/java/libidn.jar TestIDNA -a Input: Output: $ java -cp .:/usr/share/java/libidn.jar TestIDNA -u Input: Output: @end example To test against draft-josefsson-idn-test-vectors.html, use: @example $ java -cp .:/usr/share/java/libidn/libidn.jar TestIDNA -t No errors detected! @end example @subsection TestNFKC The TestNFKC program allows to test the NFKC implementation manually or against the NormalizationTest.txt file from the Unicode data files. To test the normalization manually, use: @example $ java -cp .:/usr/share/java/libidn.jar TestNFKC Input: Output: @end example To test against NormalizationTest.txt: @example $ java -cp .:/usr/share/java/libidn.jar TestNFKC No errors detected! @end example @section Possible Problems Beware of Bugs: This Java API needs a lot more testing, especially with "exotic" character sets. While it works for me, it may not work for you. Encoding of your Java sources: If you are using non-ASCII characters in your Java source code, make sure javac compiles your programs with the correct encoding. If necessary specify the encoding using the -encoding parameter. Java Unicode handling: Java 1.4 only handles 16-bit Unicode code points (i.e. characters in the Basic Multilingual Plane), this implementation therefore ignores all references to so-called Supplementary Characters (U+10000 to U+10FFFF). Starting from Java 1.5, these characters will also be supported by Java, but this will require changes to this library. See also the next section. @section A Note on Java and Unicode This library uses Java's built-in 'char' datatype. Up to Java 1.4, this datatype only supports 16-bit Unicode code points, also called the Basic Multilingual Plane. For this reason, this library doesn't work for Supplementary Characters (i.e. characters from U+10000 to U+10FFFF). All references to such characters are silently ignored. Starting from Java 1.5, also Supplementary Characters will be supported. However, this will require changes in the present version of the library. Java 1.5 is currently in beta status. For more information refer to the documentation of java.lang.Character in the JDK API. @node C# API @chapter C# API The Libidn library has been ported to the C# language. The port reside in the top-level @file{csharp/} directory. Currently, no further documentation about the implementation or the API is available. However, the C# port was based on the Java port, and the API is exactly the same as in the Java version. The help files for the Java API may thus be useful. @c ********************************************************** @c ******************* Acknowledgements ******************* @c ********************************************************** @node Acknowledgements @chapter Acknowledgements The punycode implementation was taken from the IETF IDN Punycode specification, by Adam M. Costello. The TLD code was contributed by Thomas Jacob. The Java implementation was contributed by Oliver Hitz. The C# implementation was contributed by Alexander Gnauck. The Unicode tables were provided by Unicode, Inc. Some functions for dealing with Unicode (see nfkc.c and toutf8.c) were borrowed from GLib, downloaded from @url{http://www.gtk.org/}. The manual borrowed text from Libgcrypt by Werner Koch. Inspiration for many things that, consciously or not, have gone into this package is due to a number of free software package that the author has been exposed to. The author wishes to acknowledge the free software community in general, for giving an example on what role software development can play in the modern society. Several people reported bugs, sent patches or suggested improvements, see the file THANKS in the top-level directory of the source code. @c ********************************************************** @c ************************ History *********************** @c ********************************************************** @node History @chapter History The complete history of user visible changes is stored in the file @file{NEWS} in the top-level directory of the source code tree. The complete history of modifications to each file is stored in the file @file{ChangeLog} in the same directory. This section contain a condensed version of that information, in the form of ``milestones'' for the project. @table @asis @item Stringprep implementation. Version 0.0.0 released on 2002-11-05. @item IDNA and Punycode implementations, part of the GNU project. Version 0.1.0 released on 2003-01-05. @item Uses official IDNA ACE prefix @code{xn--}. Version 0.1.7 released on 2003-02-12. @item Command line interface. Version 0.1.11 released on 2003-02-26. @item GNU Libc add-on proposed. Version 0.1.12 released on 2003-03-06. @item Interoperability testing during IDNConnect. Version 0.3.1 released on 2003-10-02. @item TLD restriction testing. Version 0.4.0 released on 2004-02-28. @item GNU Libc add-on integrated. Version 0.4.1 released on 2004-03-08. @item Native Java implementation. Version 0.4.2-0.4.9 released between 2004-03-20 and 2004-06-11. @item PR-29 functions for ``problem sequences''. Version 0.5.0 released on 2004-06-26. @item Many small portability fixes and wider use. Version 0.5.1 through 0.5.20, released between 2004-07-09 and 2005-10-23. @item Native C# implementation. Version 0.6.0 released on 2005-12-03. @item Windows support through cross-compilation. Version 0.6.1 released on 2006-01-20. @item Library declared stable by releasing v1.0. Version 1.0 released on 2007-07-31. @end table @node PR29 discussion @appendix PR29 discussion If you wish to experiment with a modified Unicode NFKC implementation according to the PR29 proposal, you may find the following bug report useful. However, I have not verified that the suggested modifications are correct. For reference, I'm including my response to the report as well. @verbatim From: Rick McGowan Subject: Possible bug and status of PR 29 change(s) To: bug-libidn@gnu.org Date: Wed, 27 Oct 2004 14:49:17 -0700 Hello. On behalf of the Unicode Consortium editorial committee, I would like to find out more information about the PR 29 fixes, if any, and functions in Libidn. Your implementation was listed in the text of PR29 as needing investigation, so I am following up on several implementations. The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new draft of UAX #15 has been issued. I have looked at Libidn 0.5.8 (today), and there may still be a possible bug in NFKC.java and nfkc.c. ------------------------------------------------------ 1. In NFKC.java, this line in canonicalOrdering(): if (i > 0 && (last_cc == 0 || last_cc != cc)) { should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc)) { but I'm not sure of the sense of this comparison. ------------------------------------------------------ 2. In nfkc.c, function _g_utf8_normalize_wc() has this code: if (i > 0 && (last_cc == 0 || last_cc != cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { This appears to have the same bug as the current Python implementation (in Python 2.3.4). The code should be checking, as per new rule D2 UAX #15 update, that the next combining character is the same or HIGHER than the current one. It now checks to see if it's non-zero and not equal. The above line(s) should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { but I'm not sure of the sense of the comparison (< or > or <=?) here. In the text of PR29, I will be marking Libidn as "needs change" and adding the version number that I checked. If any further change is made, please let me know the release version, and I'll update again. Regards, Rick McGowan @end verbatim @verbatim From: Simon Josefsson Subject: Re: Possible bug and status of PR 29 change(s) To: Rick McGowan Cc: bug-libidn@gnu.org Date: Thu, 28 Oct 2004 09:47:47 +0200 Rick McGowan writes: > Hello. On behalf of the Unicode Consortium editorial committee, I would > like to find out more information about the PR 29 fixes, if any, and > functions in Libidn. Your implementation was listed in the text of PR29 as > needing investigation, so I am following up on several implementations. > > The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new > draft of UAX #15 has been issued. > > I have looked at Libidn 0.5.8 (today), and there may still be a possible > bug in NFKC.java and nfkc.c. Hello Rick. I believe the current behavior is intentional. Libidn do not aim to implement latest-and-greatest NFKC, it aim to implement the NFKC functionality required for StringPrep and IDN. As you may know, StringPrep/IDN reference Unicode 3.2.0, and explicitly says any later changes (which I consider PR29 as) do not apply. In fact, I believe that would I incorporate the changes suggested in PR29, I would in fact be violating the IDN specifications. Thanks for looking into the code and finding the place where the change could be made. I'll see if I can mention this in the manual somewhere, for technically interested readers. Regards, Simon @end verbatim @node On Label Separators @appendix On Label Separators Some strings contains characters whose NFKC normalized form contain the ASCII dot (0x2E, ``.''). Examples of these characters are U+2024 (ONE DOT LEADER) and U+248C (DIGIT FIVE FULL STOP). The strings have the interesting property that their IDNA ToASCII output will contain embedded dots. For example: @example ToASCII (hi U+248C com) = hi5.com ToASCII (r@"aksm@"org@aa{}s U+2024 com) = xn--rksmrgs.com-l8as9u @end example This demonstrate the two general cases: The first where the ASCII dot is part of an output that do not begin with the IDN prefix @code{xn--}. The second example illustrate when the dot is part of IDN prefixed with @code{xn--}. The input strings are, from the DNS point of view, a single label. The IDNA algorithm translate one label at a time. Thus, the output is expected to be only one label. What is important here is to make sure the DNS resolver receives the correct query. The DNS protocol does not use the dot to delimit labels on the wire, rather it uses length-value pairs. Thus the correct query would be for @code{@{7@}hi5.com} and @code{@{22@}xn--rksmrgs.com-l8as9u} respectively. Some implementations @footnote{Notably Microsoft's Internet Explorer and Mozilla's Firefox, but not Apple's Safari.} have decided that these inputs strings are potentially confusing for the user. The string @code{hi U+248C com} looks like @code{hi5.com} on systems that support Unicode properly. These implementations do not follow RFC 3490. They yield: @example ToASCII (hi U+248C com) = hi5.com ToASCII (r@"aksm@"org@aa{}s U+2024 com) = xn--rksmrgs-5wao1o.com @end example The DNS query they perform are @code{@{3@}hi5@{3@}com} and @code{@{18@}xn--rksmrgs-5wao1o@{3@}com} respectively. Arguably, this leads to a better user experience, and suggests that the IDNA specification is sub-optimal in this area. @section Recommended Workaround It has been suggested to normalize the entire input string using NFKC before passing it to IDNA ToASCII. You may use @code{stringprep_utf8_nfkc_normalize} or @code{stringprep_ucs4_nfkc_normalize}. This appears to lead to similar behaviour as IE/Firefox, which would avoid the problem, but this needs to be confirmed. Feel free to discuss the issue with us. Alternative workarounds are being considered. Eventually Libidn may implement a new flag to the @code{idna_*} functions that implements a recommended way to work around this problem. @node Copying Information @appendix Copying Information @menu * GNU Free Documentation License:: License for copying this manual. @end menu @node GNU Free Documentation License @appendixsec GNU Free Documentation License @cindex FDL, GNU Free Documentation License @include fdl-1.3.texi @node Function and Variable Index @unnumbered Function and Variable Index @printindex fn @node Concept Index @unnumbered Concept Index @printindex cp @bye @c LocalWords: Kerberos Shishi getaddrinfo Slackware Cygwin WorkShop libidn-1.28/doc/libidn.info0000644000000000000000000050443512167245614012502 00000000000000This is libidn.info, produced by makeinfo version 4.13 from libidn.texi. This manual is last updated 10 July 2013 for version 1.28 of GNU Libidn. Copyright (C) 2002-2013 Simon Josefsson. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". INFO-DIR-SECTION Software libraries START-INFO-DIR-ENTRY * libidn: (libidn). Internationalized string processing library. END-INFO-DIR-ENTRY INFO-DIR-SECTION Localization START-INFO-DIR-ENTRY * idn: (libidn)Invoking idn. Internationalized Domain Name (IDN) string conversion. END-INFO-DIR-ENTRY INFO-DIR-SECTION Emacs START-INFO-DIR-ENTRY * IDN Library: (libidn)Emacs API. Emacs API for IDN functions. END-INFO-DIR-ENTRY  File: libidn.info, Node: Top, Next: Introduction, Up: (dir) GNU Libidn ********** This manual is last updated 10 July 2013 for version 1.28 of GNU Libidn. Copyright (C) 2002-2013 Simon Josefsson. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". * Menu: * Introduction:: How to use this manual. * Preparation:: What you should do before using the library. * Utility Functions:: Unicode transformation utility functions. * Stringprep Functions:: Stringprep functions. * Punycode Functions:: Punycode functions. * IDNA Functions:: IDNA functions. * TLD Functions:: TLD functions. * PR29 Functions:: Detect strings non-idempotent under NFKC. * Examples:: Demonstrate how to use the library. * Invoking idn:: Command line interface to the library. * Emacs API:: Emacs Lisp API for Libidn. * Java API:: Notes on the Java port of Libidn. * C# API:: Notes on the C# port of Libidn. * Acknowledgements:: Whom to blame. * History:: Rough outline of development history. Appendices * PR29 discussion:: Implementation aspects of the PR29 flaw. * On Label Separators:: Discussions of a flaw in the IDNA spec. * Copying Information:: License texts. Indices * Function and Variable Index:: * Concept Index::  File: libidn.info, Node: Introduction, Next: Preparation, Prev: Top, Up: Top 1 Introduction ************** GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain name strings. There are native C, C# and Java libraries. The C library contains a generic Stringprep implementation. Profiles for Nameprep, iSCSI, SASL, XMPP and Kerberos V5 are included. Punycode and ASCII Compatible Encoding (ACE) via IDNA are supported. A mechanism to define Top-Level Domain (TLD) specific validation tables, and to compare strings against those tables, is included. Default tables for some TLDs are also included. The Stringprep API consists of two main functions, one for converting data from the system's native representation into UTF-8, and one function to perform the Stringprep processing. Adding a new Stringprep profile for your application within the API is straightforward. The Punycode API consists of one encoding function and one decoding function. The IDNA API consists of the ToASCII and ToUnicode functions, as well as an high-level interface for converting entire domain names to and from the ACE encoded form. The TLD API consists of one set of functions to extract the TLD name from a domain string, one set of functions to locate the proper TLD table to use based on the TLD name, and core functions to validate a string against a TLD table, and some utility wrappers to perform all the steps in one call. The library is used by, e.g., GNU SASL and Shishi to process user names and passwords. Libidn can be built into GNU Libc to enable a new system-wide getaddrinfo flag for IDN processing. Libidn is developed for the GNU/Linux system, but runs on over 20 Unix platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. The library is written in C and (parts of) the API is also accessible from C++, Emacs Lisp, Python and Java. A native Java and C# port is included. Also included is a command line tool, several self tests, code examples, and more. * Menu: * Getting Started:: * Features:: * Library Overview:: * Supported Platforms:: * Getting help:: * Commercial Support:: * Downloading and Installing:: * Bug Reports:: * Contributing::  File: libidn.info, Node: Getting Started, Next: Features, Up: Introduction 1.1 Getting Started =================== This manual documents the library programming interface. All functions and data types provided by the library are explained. Included are also examples, and documentation for the command line tool `idn' that provide a quick interface to the library. The Emacs Lisp bindings for the library is also discussed. The reader is assumed to possess basic familiarity with internationalization concepts and network programming in C or C++. This manual can be used in several ways. If read from the beginning to the end, it gives a good introduction into the library and how it can be used in an application. Forward references are included where necessary. Later on, the manual can be used as a reference manual to get just the information needed about any particular interface of the library. Experienced programmers might want to start looking at the examples at the end of the manual (*note Examples::), and then only read up those parts of the interface which are unclear.  File: libidn.info, Node: Features, Next: Library Overview, Prev: Getting Started, Up: Introduction 1.2 Features ============ This library might have a couple of advantages over other libraries doing a similar job. It's Free Software Anybody can use, modify, and redistribute it under the terms of a free software license. It's thread-safe No global state is kept in the library. All functions are re-entrant. It's portable The code is intended to be written in pure ANSI C89. It has been tested on many Unix like operating systems, and Windows. It's modularized The library is composed of several modules, and the only interaction between modules is through each modules' public API. If you only need one piece of functionality, it is possible to take the files you need and incorporate them into your own project. It's not bloated The design of the library is based on the smallest API necessary to implement the basic functionality. It has been carefully extended with a small number of high-level wrappers to make it comfortable to use the library. However, it does not implement additional functionality just for the sake of completeness. It's documented Sadly, not all software comes with documentation these days. This one does.  File: libidn.info, Node: Library Overview, Next: Supported Platforms, Prev: Features, Up: Introduction 1.3 Library Overview ==================== The following illustration show the components that make up Libidn, and how your application relates to the library. In the illustration, various components are shown as boxes. You see the generic StringPrep component, the various StringPrep profiles including Nameprep, the Punycode component, the IDNA component, and the TLD component. The arrows indicate aggregation, e.g., IDNA uses Punycode and Nameprep, and in turn Nameprep uses the generic StringPrep interface. The interfaces to all components are available for applications, no component within the library is hidden from the application. [image src="libidn-components.png"]  File: libidn.info, Node: Supported Platforms, Next: Getting help, Prev: Library Overview, Up: Introduction 1.4 Supported Platforms ======================= Libidn has at some point in time been tested on the following platforms. Build reports for each platforms and Libidn version is available at `http://autobuild.josefsson.org/libidn/'. 1. Debian GNU/Linux 3.0 (Woody) GCC 2.95.4 and GNU Make. This is the main development platform. `alphaev67-unknown-linux-gnu', `alphaev6-unknown-linux-gnu', `arm-unknown-linux-gnu', `armv4l-unknown-linux-gnu', `hppa-unknown-linux-gnu', `hppa64-unknown-linux-gnu', `i686-pc-linux-gnu', `ia64-unknown-linux-gnu', `m68k-unknown-linux-gnu', `mips-unknown-linux-gnu', `mipsel-unknown-linux-gnu', `powerpc-unknown-linux-gnu', `s390-ibm-linux-gnu', `sparc-unknown-linux-gnu', `sparc64-unknown-linux-gnu'. 2. Debian GNU/Linux 2.1 GCC 2.95.1 and GNU Make. `armv4l-unknown-linux-gnu'. 3. Tru64 UNIX Tru64 UNIX C compiler and Tru64 Make. `alphaev67-dec-osf5.1', `alphaev68-dec-osf5.1'. 4. SuSE Linux 7.1 GCC 2.96 and GNU Make. `alphaev6-unknown-linux-gnu', `alphaev67-unknown-linux-gnu'. 5. SuSE Linux 7.2a GCC 3.0 and GNU Make. `ia64-unknown-linux-gnu'. 6. SuSE Linux GCC 3.2.2 and GNU Make. `x86_64-unknown-linux-gnu' (AMD64 Opteron "Melody"). 7. SuSE Enterprise Server 9 on IBM OpenPower 720 GCC 3.3.3 and GNU Make. `powerpc64-unknown-linux-gnu'. 8. RedHat Linux 7.2 GCC 2.96 and GNU Make. `alphaev6-unknown-linux-gnu', `alphaev67-unknown-linux-gnu', `ia64-unknown-linux-gnu'. 9. RedHat Linux 8.0 GCC 3.2 and GNU Make. `i686-pc-linux-gnu'. 10. RedHat Advanced Server 2.1 GCC 2.96 and GNU Make. `i686-pc-linux-gnu'. 11. Slackware Linux 8.0.01 GCC 2.95.3 and GNU Make. `i686-pc-linux-gnu'. 12. Mandrake Linux 9.0 GCC 3.2 and GNU Make. `i686-pc-linux-gnu'. 13. IRIX 6.5 MIPS C compiler, IRIX Make. `mips-sgi-irix6.5'. 14. AIX 4.3.2 IBM C for AIX compiler, AIX Make. `rs6000-ibm-aix4.3.2.0'. 15. Microsoft Windows 2000 (Cygwin) GCC 3.2, GNU make. `i686-pc-cygwin'. 16. HP-UX 11 HP-UX C compiler and HP Make. `ia64-hp-hpux11.22', `hppa2.0w-hp-hpux11.11'. 17. SUN Solaris 2.7 GCC 3.0.4 and GNU Make. `sparc-sun-solaris2.7'. 18. SUN Solaris 2.8 Sun WorkShop Compiler C 6.0 and SUN Make. `sparc-sun-solaris2.8'. 19. SUN Solaris 2.9 Sun Forte Developer 7 C compiler and GNU Make. `sparc-sun-solaris2.9'. 20. NetBSD 1.6 GCC 2.95.3 and GNU Make. `alpha-unknown-netbsd1.6', `i386-unknown-netbsdelf1.6'. 21. OpenBSD 3.1 and 3.2 GCC 2.95.3 and GNU Make. `alpha-unknown-openbsd3.1', `i386-unknown-openbsd3.1'. 22. FreeBSD 4.7 and 4.8 GCC 2.95.4 and GNU Make. `alpha-unknown-freebsd4.7', `alpha-unknown-freebsd4.8', `i386-unknown-freebsd4.7', `i386-unknown-freebsd4.8'. 23. MacOS X 10.2 Server Edition GCC 3.1 and GNU Make. `powerpc-apple-darwin6.5'. 24. MacOS X 10.4 "Tiger" with Xcode 2.0 GCC 4.0 and GNU Make. `powerpc-apple-darwin8.0'. 25. Cross compiled to uClinux/uClibc on Motorola Coldfire GCC 3.4 and GNU Make `m68k-uclinux-elf'. 26. Cross compiled to ARM using Glibc GCC 2.95 and GNU Make `arm-linux'. 27. Cross compiled to Mingw32. GCC 3.4.4 and GNU Make `i586-mingw32msvc'. 28. OS/2 GCC. If you use Libidn on, or port Libidn to, a new platform please report it to the author.  File: libidn.info, Node: Getting help, Next: Commercial Support, Prev: Supported Platforms, Up: Introduction 1.5 Getting help ================ A mailing list where users of Libidn may help each other exists, and you can reach it by sending e-mail to . Archives of the mailing list discussions, and an interface to manage subscriptions, is available through the World Wide Web at `http://lists.gnu.org/mailman/listinfo/help-libidn'.  File: libidn.info, Node: Commercial Support, Next: Downloading and Installing, Prev: Getting help, Up: Introduction 1.6 Commercial Support ====================== Commercial support is available for users of GNU Libidn. The kind of support that can be purchased may include: * Implement new features. Such as country code specific profiling to support a restricted subset of Unicode. * Port Libidn to new platforms. This could include porting Libidn to an embedded platforms that may need memory or size optimization. * Integrating IDN support in your existing project. * System design of components related to IDN. If you are interested, please write to: Simon Josefsson Datakonsult AB Hagagatan 24 113 47 Stockholm Sweden E-mail: simon@josefsson.org If your company provides support related to GNU Libidn and would like to be mentioned here, contact the author (*note Bug Reports::).  File: libidn.info, Node: Downloading and Installing, Next: Bug Reports, Prev: Commercial Support, Up: Introduction 1.7 Downloading and Installing ============================== The package can be downloaded from several places, including: `ftp://alpha.gnu.org/pub/gnu/libidn/' The latest version is stored in a file, e.g., `libidn-1.28.tar.gz' where the `1.28' value is the highest version number in the directory. The package is then extracted, configured and built like many other packages that use Autoconf. For detailed information on configuring and building it, refer to the `INSTALL' file that is part of the distribution archive. Here is an example terminal session that download, configure, build and install the package. You will need a few basic tools, such as `sh', `make' and `cc'. $ wget -q ftp://alpha.gnu.org/pub/gnu/libidn/libidn-1.28.tar.gz $ tar xfz libidn-1.28.tar.gz $ cd libidn-1.28/ $ ./configure ... $ make ... $ make install ... After that Libidn should be properly installed and ready for use. A few `configure' options may be relevant, summarized in the table. `--enable-java' Build the Java port into a *.JAR file. *Note Java API::, for more information. `--disable-tld' Disable the TLD module. This would typically only be useful if you are building on a memory restricted platforms. *Note TLD Functions::, for more information. `--enable-csharp[=IMPL]' Build the `C#' port into a `*.DLL' file. *Note C# API::, for more information. Here, `IMPL' is `pnet' or `mono', indicating whether the PNET `cscc' compiler or the Mono `mcs' compiler should be used, respectively. `--disable-valgrind-tests' Disable running the self-checks under Valgrind (`http://valgrind.org/'). Normally Valgrind does not cause problems and can detect some severe memory errors. If you are getting errors from Valgrind that are caused by the compiler or libc (possibly as a result of special optimization flags), you may use this option to disable the use of Valgrind. For the complete list, refer to the output from `configure --help'. * Menu: * Installing under Windows:: Windows specific build instructions.  File: libidn.info, Node: Installing under Windows, Up: Downloading and Installing 1.7.1 Installing under Windows ------------------------------ There are two ways to build Libidn on Windows: via MinGW or via Visual Studio. With MinGW, you can build a Libidn DLL and use it from other applications. After installing MinGW (`http://mingw.org/') follow the generic installation instructions (*note Downloading and Installing::). The DLL is installed by default. For information on how to use the DLL in other applications, see: `http://www.mingw.org/mingwfaq.shtml#faq-msvcdll'. You can build Libidn as a native Visual Studio C++ project. This allows you to build the code for other platforms that VS supports, such as Windows Mobile. You need Visual Studio 2005 or later. First download and unpack the archive as described in the generic installation instructions (*note Downloading and Installing::). Don't run `./configure'. Instead, start Visual Studio and open the project file `windows/libidn.sln' inside the Libidn directory. You should be able to build the project using Build Project. Output libraries will be written into the `windows/lib' (or `windows/lib/debug' for Debug versions) folder. When working with Windows you may want to look into the special memory handling functions that may be needed (*note Memory handling under Windows::).  File: libidn.info, Node: Bug Reports, Next: Contributing, Prev: Downloading and Installing, Up: Introduction 1.8 Bug Reports =============== If you think you have found a bug in Libidn, please investigate it and report it. * Please make sure that the bug is really in Libidn, and preferably also check that it hasn't already been fixed in the latest version. * You have to send us a test case that makes it possible for us to reproduce the bug. * You also have to explain what is wrong; if you get a crash, or if the results printed are not good and in that case, in what way. Make sure that the bug report includes all information you would need to fix this kind of bug for someone else. Please make an effort to produce a self-contained report, with something definite that can be tested or debugged. Vague queries or piecemeal messages are difficult to act on and don't help the development effort. If your bug report is good, we will do our best to help you to get a corrected version of the software; if the bug report is poor, we won't do anything about it (apart from asking you to send better bug reports). If you think something in this manual is unclear, or downright incorrect, or if the language needs to be improved, please also send a note. Send your bug report to: `bug-libidn@gnu.org'  File: libidn.info, Node: Contributing, Prev: Bug Reports, Up: Introduction 1.9 Contributing ================ If you want to submit a patch for inclusion - from solve a typo you discovered, up to adding support for a new feature - you should submit it as a bug report (*note Bug Reports::). There are some things that you can do to increase the chances for it to be included in the official package. Unless your patch is very small (say, under 10 lines) we require that you assign the copyright of your work to the Free Software Foundation. This is to protect the freedom of the project. If you have not already signed papers, we will send you the necessary information when you submit your contribution. For contributions that doesn't consist of actual programming code, the only guidelines are common sense. Use it. For code contributions, a number of style guides will help you: * Coding Style. Follow the GNU Standards document (*note GNU Coding Standards: (standards)top.). If you normally code using another coding standard, there is no problem, but you should use `indent' to reformat the code (*note GNU Indent: (indent)top.) before submitting your work. * Use the unified diff format `diff -u'. * Return errors. No reason whatsoever should abort the execution of the library. Even memory allocation errors, e.g. when malloc return NULL, should work although result in an error code. * Design with thread safety in mind. Don't use global variables and the like. * Avoid using the C math library. It causes problems for embedded implementations, and in most situations it is very easy to avoid using it. * Document your functions. Use comments before each function headers, that, if properly formatted, are extracted into GTK-DOC web pages. Don't forget to update the Texinfo manual as well. * Supply a ChangeLog and NEWS entries, where appropriate.  File: libidn.info, Node: Preparation, Next: Utility Functions, Prev: Introduction, Up: Top 2 Preparation ************* To use `Libidn', you have to perform some changes to your sources and the build system. The necessary changes are small and explained in the following sections. At the end of this chapter, it is described how the library is initialized, and how the requirements of the library are verified. A faster way to find out how to adapt your application for use with `Libidn' may be to look at the examples at the end of this manual (*note Examples::). * Menu: * Header:: * Initialization:: * Version Check:: * Building the source:: * Autoconf tests:: * Memory handling under Windows::  File: libidn.info, Node: Header, Next: Initialization, Up: Preparation 2.1 Header ========== The library contains a few independent parts, and each part export the interfaces (data types and functions) in a header file. You must include the appropriate header files in all programs using the library, either directly or through some other header file, like this: #include The header files and the functions they define are categorized as follows: stringprep.h The low-level stringprep API entry point. For IDN applications, this is usually invoked via IDNA. Some applications, specifically non-IDN ones, may want to prepare strings directly though, and should include this header file. The name space of the stringprep part of Libidn is `stringprep*' for function names, `Stringprep*' for data types and `STRINGPREP_*' for other symbols. In addition, `_stringprep*' is reserved for internal use and should never be used by applications. punycode.h The entry point to Punycode encoding and decoding functions. Normally punycode is used via the idna.h interface, but some application may want to perform raw punycode operations. The name space of the punycode part of Libidn is `punycode_*' for function names, `Punycode*' for data types and `PUNYCODE_*' for other symbols. In addition, `_punycode*' is reserved for internal use and should never be used by applications. idna.h The entry point to the IDNA functions. This is the normal entry point for applications that need IDN functionality. The name space of the IDNA part of Libidn is `idna_*' for function names, `Idna*' for data types and `IDNA_*' for other symbols. In addition, `_idna*' is reserved for internal use and should never be used by applications. tld.h The entry point to the TLD functions. Normal applications are not expected to need this functionality, but it is present for applications that are used by TLDs to validate customer input. The name space of the TLD part of Libidn is `tld_*' for function names, `Tld_*' for data types and `TLD_*' for other symbols. In addition, `_tld*' is reserved for internal use and should never be used by applications. pr29.h The entry point to the PR29 functions. These functions are used to detect "problem sequences" (*note PR29 Functions::), mostly for use in security critical applications. The name space of the PR29 part of Libidn is `pr29_*' for function names, `Pr29_*' for data types and `PR29_*' for other symbols. In addition, `_pr29*' is reserved for internal use and should never be used by applications. idn-free.h The entry point to the Windows memory de-allocation function (*note Memory handling under Windows::). It contains only one function `idn_free'. All header files defined and use the symbol `IDNAPI' to decorate the API functions.  File: libidn.info, Node: Initialization, Next: Version Check, Prev: Header, Up: Preparation 2.2 Initialization ================== Libidn is stateless and does not need any initialization.  File: libidn.info, Node: Version Check, Next: Building the source, Prev: Initialization, Up: Preparation 2.3 Version Check ================= It is often desirable to check that the version of `Libidn' used is indeed one which fits all requirements. Even with binary compatibility new features may have been introduced but due to problem with the dynamic linker an old version is actually used. So you may want to check that the version is okay right after program startup. stringprep_check_version ------------------------ -- Function: const char * stringprep_check_version (const char * REQ_VERSION) REQ_VERSION: Required version number, or NULL. Check that the version of the library is at minimum the requested one and return the version string; return NULL if the condition is not satisfied. If a NULL is passed to this function, no check is done, but the version string is simply returned. See `STRINGPREP_VERSION' for a suitable `req_version' string. *Return value:* Version string of run-time library, or NULL if the run-time library does not meet the required version number. The normal way to use the function is to put something similar to the following first in your `main': if (!stringprep_check_version (STRINGPREP_VERSION)) { printf ("stringprep_check_version() failed:\n" "Header file incompatible with shared library.\n"); exit(EXIT_FAILURE); }  File: libidn.info, Node: Building the source, Next: Autoconf tests, Prev: Version Check, Up: Preparation 2.4 Building the source ======================= If you want to compile a source file including e.g. the `idna.h' header file, you must make sure that the compiler can find it in the directory hierarchy. This is accomplished by adding the path to the directory in which the header file is located to the compilers include file search path (via the `-I' option). However, the path to the include file is determined at the time the source is configured. To solve this problem, `Libidn' uses the external package `pkg-config' that knows the path to the include file and other configuration options. The options that need to be added to the compiler invocation at compile time are output by the `--cflags' option to `pkg-config libidn'. The following example shows how it can be used at the command line: gcc -c foo.c `pkg-config libidn --cflags` Adding the output of `pkg-config libidn --cflags' to the compilers command line will ensure that the compiler can find e.g. the idna.h header file. A similar problem occurs when linking the program with the library. Again, the compiler has to find the library files. For this to work, the path to the library files has to be added to the library search path (via the `-L' option). For this, the option `--libs' to `pkg-config libidn' can be used. For convenience, this option also outputs all other options that are required to link the program with the `libidn' library. The example shows how to link `foo.o' with the `libidn' library to a program `foo'. gcc -o foo foo.o `pkg-config libidn --libs` Of course you can also combine both examples to a single command by specifying both options to `pkg-config': gcc -o foo foo.c `pkg-config libidn --cflags --libs`  File: libidn.info, Node: Autoconf tests, Next: Memory handling under Windows, Prev: Building the source, Up: Preparation 2.5 Autoconf tests ================== If your project uses Autoconf (*note GNU Autoconf: (autoconf)top.) to check for installed libraries, you might find the following snippet illustrative. It add a new `configure' parameter `--with-libidn', and check for `idna.h' and `-lidn' (possibly below the directory specified as the optional argument to `--with-libidn'), and define the CPP symbol `LIBIDN' if the library is found. The default behaviour is to search for the library and enable the functionality (that is, define the symbol) when the library is found, but if you wish to make the default behaviour of your package be that Libidn is not used (even if it is installed on the system), change `libidn=yes' to `libidn=no' on the third line. AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no"; then if test "$libidn" != "yes"; then LDFLAGS="${LDFLAGS} -L$libidn/lib" CPPFLAGS="${CPPFLAGS} -I$libidn/include" fi AC_CHECK_HEADER(idna.h, AC_CHECK_LIB(idn, stringprep_check_version, [libidn=yes LIBS="${LIBS} -lidn"], libidn=no), libidn=no) fi if test "$libidn" != "no" ; then AC_DEFINE(LIBIDN, 1, [Define to 1 if you want IDN support.]) else AC_MSG_WARN([Libidn not found]) fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn) If you require that your users have installed `pkg-config' (which I cannot recommend generally), the above can be done more easily as follows. AC_ARG_WITH(libidn, AC_HELP_STRING([--with-libidn=[DIR]], [Support IDN (needs GNU Libidn)]), libidn=$withval, libidn=yes) if test "$libidn" != "no" ; then PKG_CHECK_MODULES(LIBIDN, libidn >= 0.0.0, [libidn=yes], [libidn=no]) if test "$libidn" != "yes" ; then libidn=no AC_MSG_WARN([Libidn not found]) else libidn=yes AC_DEFINE(LIBIDN, 1, [Define to 1 if you want Libidn.]) fi fi AC_MSG_CHECKING([if Libidn should be used]) AC_MSG_RESULT($libidn)  File: libidn.info, Node: Memory handling under Windows, Prev: Autoconf tests, Up: Preparation 2.6 Memory handling under Windows ================================= Several functions in the library allocates memory. The memory is expected to be de-allocated using the `free' function. Under Windows, it is sometimes necessary to de-allocate memory in the same module that allocated a memory region. The reason is that different modules use separate heap memory regions. To solve this problem we provide a function to de-allocate memory inside the library. Note that we do not recommend using this interface generally if you do not care about Windows portability. 2.7 Header file `idn-free.h' ============================ To use the function explained in this chapter, you need to include the file `idn-free.h' using: #include 2.8 Memory de-allocation function ================================= idn_free -------- -- Function: void idn_free (void * PTR) PTR: memory region to deallocate, or `NULL'. Deallocates memory region by calling `free()'. If `ptr' is `NULL' no operation is performed. Normally applications de-allocate strings allocated by libidn by calling `free()' directly. Under Windows, different parts of the same application may use different heap memory, and then it is important to deallocate memory allocated within the same module that allocated it. This function makes that possible.  File: libidn.info, Node: Utility Functions, Next: Stringprep Functions, Prev: Preparation, Up: Top 3 Utility Functions ******************* The rest of this library makes extensive use of Unicode characters. In order to interface this library with the outside world, your application may need to make various Unicode transformations. 3.1 Header file `stringprep.h' ============================== To use the functions explained in this chapter, you need to include the file `stringprep.h' using: #include 3.2 Unicode Encoding Transformation =================================== stringprep_unichar_to_utf8 -------------------------- -- Function: int stringprep_unichar_to_utf8 (uint32_t C, char * OUTBUF) C: a ISO10646 character code OUTBUF: output buffer, must have at least 6 bytes of space. If `NULL', the length will be computed and returned and nothing will be written to `outbuf'. Converts a single character to UTF-8. *Return value:* number of bytes written. stringprep_utf8_to_unichar -------------------------- -- Function: uint32_t stringprep_utf8_to_unichar (const char * P) P: a pointer to Unicode character encoded as UTF-8 Converts a sequence of bytes encoded as UTF-8 to a Unicode character. If `p' does not point to a valid UTF-8 encoded character, results are undefined. *Return value:* the resulting character. stringprep_ucs4_to_utf8 ----------------------- -- Function: char * stringprep_ucs4_to_utf8 (const uint32_t * STR, ssize_t LEN, size_t * ITEMS_READ, size_t * ITEMS_WRITTEN) STR: a UCS-4 encoded string LEN: the maximum length of `str' to use. If `len' < 0, then the string is terminated with a 0 character. ITEMS_READ: location to store number of characters read read, or `NULL'. ITEMS_WRITTEN: location to store number of bytes written or `NULL'. The value here stored does not include the trailing 0 byte. Convert a string from a 32-bit fixed width representation as UCS-4. to UTF-8. The result will be terminated with a 0 byte. *Return value:* a pointer to a newly allocated UTF-8 string. This value must be deallocated by the caller. If an error occurs, `NULL' will be returned. stringprep_utf8_to_ucs4 ----------------------- -- Function: uint32_t * stringprep_utf8_to_ucs4 (const char * STR, ssize_t LEN, size_t * ITEMS_WRITTEN) STR: a UTF-8 encoded string LEN: the maximum length of `str' to use. If `len' < 0, then the string is nul-terminated. ITEMS_WRITTEN: location to store the number of characters in the result, or `NULL'. Convert a string from UTF-8 to a 32-bit fixed width representation as UCS-4, assuming valid UTF-8 input. This function does no error checking on the input. *Return value:* a pointer to a newly allocated UCS-4 string. This value must be deallocated by the caller. 3.3 Unicode Normalization ========================= stringprep_ucs4_nfkc_normalize ------------------------------ -- Function: uint32_t * stringprep_ucs4_nfkc_normalize (const uint32_t * STR, ssize_t LEN) STR: a Unicode string. LEN: length of `str' array, or -1 if `str' is nul-terminated. Converts a UCS4 string into canonical form, see `stringprep_utf8_nfkc_normalize()' for more information. *Return value:* a newly allocated Unicode string, that is the NFKC normalized form of `str'. stringprep_utf8_nfkc_normalize ------------------------------ -- Function: char * stringprep_utf8_nfkc_normalize (const char * STR, ssize_t LEN) STR: a UTF-8 encoded string. LEN: length of `str', in bytes, or -1 if `str' is nul-terminated. Converts a string into canonical form, standardizing such issues as whether a character with an accent is represented as a base character and combining accent or as a single precomposed character. The normalization mode is NFKC (ALL COMPOSE). It standardizes differences that do not affect the text content, such as the above-mentioned accent representation. It standardizes the "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to the standard forms (in this case DIGIT THREE). Formatting information may be lost but for most text operations such characters should be considered the same. It returns a result with composed forms rather than a maximally decomposed form. *Return value:* a newly allocated string, that is the NFKC normalized form of `str'. 3.4 Character Set Conversion ============================ stringprep_locale_charset ------------------------- -- Function: const char * stringprep_locale_charset ( VOID) Find out current locale charset. The function respect the CHARSET environment variable, but typically uses nl_langinfo(CODESET) when it is supported. It fall back on "ASCII" if CHARSET isn't set and nl_langinfo isn't supported or return anything. Note that this function return the application's locale's preferred charset (or thread's locale's preffered charset, if your system support thread-specific locales). It does not return what the system may be using. Thus, if you receive data from external sources you cannot in general use this function to guess what charset it is encoded in. Use stringprep_convert from the external representation into the charset returned by this function, to have data in the locale encoding. *Return value:* Return the character set used by the current locale. It will never return NULL, but use "ASCII" as a fallback. stringprep_convert ------------------ -- Function: char * stringprep_convert (const char * STR, const char * TO_CODESET, const char * FROM_CODESET) STR: input zero-terminated string. TO_CODESET: name of destination character set. FROM_CODESET: name of origin character set, as used by `str'. Convert the string from one character set to another using the system's `iconv()' function. *Return value:* Returns newly allocated zero-terminated string which is `str' transcoded into to_codeset. stringprep_locale_to_utf8 ------------------------- -- Function: char * stringprep_locale_to_utf8 (const char * STR) STR: input zero terminated string. Convert string encoded in the locale's character set into UTF-8 by using `stringprep_convert()'. *Return value:* Returns newly allocated zero-terminated string which is `str' transcoded into UTF-8. stringprep_utf8_to_locale ------------------------- -- Function: char * stringprep_utf8_to_locale (const char * STR) STR: input zero terminated string. Convert string encoded in UTF-8 into the locale's character set by using `stringprep_convert()'. *Return value:* Returns newly allocated zero-terminated string which is `str' transcoded into the locale's character set.  File: libidn.info, Node: Stringprep Functions, Next: Punycode Functions, Prev: Utility Functions, Up: Top 4 Stringprep Functions ********************** Stringprep describes a framework for preparing Unicode text strings in order to increase the likelihood that string input and string comparison work in ways that make sense for typical users throughout the world. The stringprep protocol is useful for protocol identifier values, company and personal names, internationalized domain names, and other text strings. 4.1 Header file `stringprep.h' ============================== To use the functions explained in this chapter, you need to include the file `stringprep.h' using: #include 4.2 Defining A Stringprep Profile ================================= Further types and structures are defined for applications that want to specify their own stringprep profile. As these are fairly obscure, and by necessity tied to the implementation, we do not document them here. Look into the `stringprep.h' header file, and the `profiles.c' source code for the details. 4.3 Control Flags ================= -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_NFKC Disable the NFKC normalization, as well as selecting the non-NFKC case folding tables. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_BIDI Disable the BIDI step. Usually the profile specifies BIDI and NFKC settings, and applications should not override it unless in special situations. -- Stringprep flags: Stringprep_profile_flags STRINGPREP_NO_UNASSIGNED Make the library return with an error if string contains unassigned characters according to profile. 4.4 Core Functions ================== stringprep_4i ------------- -- Function: int stringprep_4i (uint32_t * UCS4, size_t * LEN, size_t MAXUCS4LEN, Stringprep_profile_flags FLAGS, const Stringprep_profile * PROFILE) UCS4: input/output array with string to prepare. LEN: on input, length of input array with Unicode code points, on exit, length of output array with Unicode code points. MAXUCS4LEN: maximum length of input/output array. FLAGS: a `Stringprep_profile_flags' value, or 0. PROFILE: pointer to `Stringprep_profile' to use. Prepare the input UCS-4 string according to the stringprep profile, and write back the result to the input string. The input is not required to be zero terminated (`ucs4'[`len'] = 0). The output will not be zero terminated unless `ucs4'[`len'] = 0. Instead, see `stringprep_4zi()' if your input is zero terminated or if you want the output to be. Since the stringprep operation can expand the string, `maxucs4len' indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The `flags' are one of `Stringprep_profile_flags' values, or 0. The `profile' contain the `Stringprep_profile' instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. *Return value:* Returns `STRINGPREP_OK' iff successful, or an `Stringprep_rc' error code. stringprep_4zi -------------- -- Function: int stringprep_4zi (uint32_t * UCS4, size_t MAXUCS4LEN, Stringprep_profile_flags FLAGS, const Stringprep_profile * PROFILE) UCS4: input/output array with zero terminated string to prepare. MAXUCS4LEN: maximum length of input/output array. FLAGS: a `Stringprep_profile_flags' value, or 0. PROFILE: pointer to `Stringprep_profile' to use. Prepare the input zero terminated UCS-4 string according to the stringprep profile, and write back the result to the input string. Since the stringprep operation can expand the string, `maxucs4len' indicate how large the buffer holding the string is. This function will not read or write to code points outside that size. The `flags' are one of `Stringprep_profile_flags' values, or 0. The `profile' contain the `Stringprep_profile' instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. *Return value:* Returns `STRINGPREP_OK' iff successful, or an `Stringprep_rc' error code. stringprep ---------- -- Function: int stringprep (char * IN, size_t MAXLEN, Stringprep_profile_flags FLAGS, const Stringprep_profile * PROFILE) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. FLAGS: a `Stringprep_profile_flags' value, or 0. PROFILE: pointer to `Stringprep_profile' to use. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and write back the result to the input string. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see `stringprep_locale_to_utf8()'. Since the stringprep operation can expand the string, `maxlen' indicate how large the buffer holding the string is. This function will not read or write to characters outside that size. The `flags' are one of `Stringprep_profile_flags' values, or 0. The `profile' contain the `Stringprep_profile' instructions to perform. Your application can define new profiles, possibly re-using the generic stringprep tables that always will be part of the library, or use one of the currently supported profiles. *Return value:* Returns `STRINGPREP_OK' iff successful, or an error code. stringprep_profile ------------------ -- Function: int stringprep_profile (const char * IN, char ** OUT, const char * PROFILE, Stringprep_profile_flags FLAGS) IN: input array with UTF-8 string to prepare. OUT: output variable with pointer to newly allocate string. PROFILE: name of stringprep profile to use. FLAGS: a `Stringprep_profile_flags' value, or 0. Prepare the input zero terminated UTF-8 string according to the stringprep profile, and return the result in a newly allocated variable. Note that you must convert strings entered in the systems locale into UTF-8 before using this function, see `stringprep_locale_to_utf8()'. The output `out' variable must be deallocated by the caller. The `flags' are one of `Stringprep_profile_flags' values, or 0. The `profile' specifies the name of the stringprep profile to use. It must be one of the internally supported stringprep profiles. *Return value:* Returns `STRINGPREP_OK' iff successful, or an error code. 4.5 Error Handling ================== stringprep_strerror ------------------- -- Function: const char * stringprep_strerror (Stringprep_rc RC) RC: a `Stringprep_rc' return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *STRINGPREP_OK:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *STRINGPREP_CONTAINS_UNASSIGNED:* String contain unassigned Unicode code points, which is forbidden by the profile. *STRINGPREP_CONTAINS_PROHIBITED:* String contain code points prohibited by the profile. *STRINGPREP_BIDI_BOTH_L_AND_RAL:* String contain code points with conflicting bidirection category. *STRINGPREP_BIDI_LEADTRAIL_NOT_RAL:* Leading and trailing character in string not of proper bidirectional category. *STRINGPREP_BIDI_CONTAINS_PROHIBITED:* Contains prohibited code points detected by bidirectional code. *STRINGPREP_TOO_SMALL_BUFFER:* Buffer handed to function was too small. This usually indicate a problem in the calling application. *STRINGPREP_PROFILE_ERROR:* The stringprep profile was inconsistent. This usually indicate an internal error in the library. *STRINGPREP_FLAG_ERROR:* The supplied flag conflicted with profile. This usually indicate a problem in the calling application. *STRINGPREP_UNKNOWN_PROFILE:* The supplied profile name was not known to the library. *STRINGPREP_NFKC_FAILED:* The Unicode NFKC operation failed. This usually indicate an internal error in the library. *STRINGPREP_MALLOC_ERROR:* The `malloc()' was out of memory. This is usually a fatal error. *Return value:* Returns a pointer to a statically allocated string containing a description of the error with the return code `rc'. 4.6 Stringprep Profile Macros ============================= -- Function: int stringprep_nameprep_no_unassigned (char * IN, int MAXLEN) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the nameprep profile. The AllowUnassigned flag is false, use `stringprep_nameprep' for true AllowUnassigned. Returns 0 iff successful, or an error code. -- Function: int stringprep_iscsi (char * IN, int MAXLEN) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft iSCSI stringprep profile. Returns 0 iff successful, or an error code. -- Function: int stringprep_plain (char * IN, int MAXLEN) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft SASL ANONYMOUS profile. Returns 0 iff successful, or an error code. -- Function: int stringprep_xmpp_nodeprep (char * IN, int MAXLEN) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP node identifier profile. Returns 0 iff successful, or an error code. -- Function: int stringprep_xmpp_resourceprep (char * IN, int MAXLEN) IN: input/ouput array with string to prepare. MAXLEN: maximum length of input/output array. Prepare the input UTF-8 string according to the draft XMPP resource identifier profile. Returns 0 iff successful, or an error code.  File: libidn.info, Node: Punycode Functions, Next: IDNA Functions, Prev: Stringprep Functions, Up: Top 5 Punycode Functions ******************** Punycode is a simple and efficient transfer encoding syntax designed for use with Internationalized Domain Names in Applications. It uniquely and reversibly transforms a Unicode string into an ASCII string. ASCII characters in the Unicode string are represented literally, and non-ASCII characters are represented by ASCII characters that are allowed in host name labels (letters, digits, and hyphens). A general algorithm called Bootstring allows a string of basic code points to uniquely represent any string of code points drawn from a larger set. Punycode is an instance of Bootstring that uses particular parameter values, appropriate for IDNA. 5.1 Header file `punycode.h' ============================ To use the functions explained in this chapter, you need to include the file `punycode.h' using: #include 5.2 Unicode Code Point Data Type ================================ The punycode function uses a special type to denote Unicode code points. It is guaranteed to always be a 32 bit unsigned integer. -- Punycode Unicode code point: uint32_t punycode_uint A unsigned integer that hold Unicode code points. 5.3 Core Functions ================== Note that the current implementation will fail if the `input_length' exceed 4294967295 (the size of `punycode_uint'). This restriction may be removed in the future. Meanwhile applications are encouraged to not depend on this problem, and use `sizeof' to initialize `input_length' and `output_length'. The functions provided are the following two entry points: punycode_encode --------------- -- Function: int punycode_encode (size_t INPUT_LENGTH, const punycode_uint [] INPUT, const unsigned char [] CASE_FLAGS, size_t * OUTPUT_LENGTH, char [] OUTPUT) INPUT_LENGTH: The number of code points in the `input' array and the number of flags in the `case_flags' array. INPUT: An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. CASE_FLAGS: A `NULL' pointer or an array of boolean values parallel to the `input' array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If `case_flags' is a `NULL' pointer then ASCII letters are left as they are, and other code points are treated as unflagged. OUTPUT_LENGTH: The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. OUTPUT: An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the `input' contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) Converts a sequence of code points (presumed to be Unicode code points) to Punycode. *Return value:* The return value can be any of the `Punycode_status' values defined above except `PUNYCODE_BAD_INPUT'. If not `PUNYCODE_SUCCESS', then `output_size' and `output' might contain garbage. punycode_decode --------------- -- Function: int punycode_decode (size_t INPUT_LENGTH, const char [] INPUT, size_t * OUTPUT_LENGTH, punycode_uint [] OUTPUT, unsigned char [] CASE_FLAGS) INPUT_LENGTH: The number of ASCII code points in the `input' array. INPUT: An array of ASCII code points (0..7F). OUTPUT_LENGTH: The caller passes in the maximum number of code points that it can receive into the `output' array (which is also the maximum number of flags that it can receive into the `case_flags' array, if `case_flags' is not a `NULL' pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied `output_length' is greater than that. OUTPUT: An array of code points like the input argument of `punycode_encode()' (see above). CASE_FLAGS: A `NULL' pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the `output' array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. Converts Punycode to a sequence of code points (presumed to be Unicode code points). *Return value:* The return value can be any of the `Punycode_status' values defined above. If not `PUNYCODE_SUCCESS', then `output_length', `output', and `case_flags' might contain garbage. 5.4 Error Handling ================== punycode_strerror ----------------- -- Function: const char * punycode_strerror (Punycode_status RC) RC: an `Punycode_status' return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *PUNYCODE_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *PUNYCODE_BAD_INPUT:* Input is invalid. *PUNYCODE_BIG_OUTPUT:* Output would exceed the space provided. *PUNYCODE_OVERFLOW:* Input needs wider integers to process. *Return value:* Returns a pointer to a statically allocated string containing a description of the error with the return code `rc'.  File: libidn.info, Node: IDNA Functions, Next: TLD Functions, Prev: Punycode Functions, Up: Top 6 IDNA Functions **************** Until now, there has been no standard method for domain names to use characters outside the ASCII repertoire. The IDNA document defines internationalized domain names (IDNs) and a mechanism called IDNA for handling them in a standard fashion. IDNs use characters drawn from a large repertoire (Unicode), but IDNA allows the non-ASCII characters to be represented using only the ASCII characters already allowed in so-called host names today. This backward-compatible representation is required in existing protocols like DNS, so that IDNs can be introduced with no changes to the existing infrastructure. IDNA is only meant for processing domain names, not free text. 6.1 Header file `idna.h' ======================== To use the functions explained in this chapter, you need to include the file `idna.h' using: #include 6.2 Control Flags ================= The IDNA `flags' parameter can take on the following values, or a bit-wise inclusive or of any subset of the parameters: -- Return code: Idna_flags IDNA_ALLOW_UNASSIGNED Allow unassigned Unicode code points. -- Return code: Idna_flags IDNA_USE_STD3_ASCII_RULES Check output to make sure it is a STD3 conforming host name. 6.3 Prefix String ================= -- Macro: #define IDNA_ACE_PREFIX String with the official IDNA prefix, `xn--'. 6.4 Core Functions ================== The idea behind the IDNA function names are as follows: the `idna_to_ascii_4i' and `idna_to_unicode_44i' functions are the core IDNA primitives. The `4' indicate that the function takes UCS-4 strings (i.e., Unicode code points encoded in a 32-bit unsigned integer type) of the specified length. The `i' indicate that the data is written "inline" into the buffer. This means the caller is responsible for allocating (and de-allocating) the string, and providing the library with the allocated length of the string. The output length is written in the output length variable. The remaining functions all contain the `z' indicator, which means the strings are zero terminated. All output strings are allocated by the library, and must be de-allocated by the caller. The `4' indicator again means that the string is UCS-4, the `8' means the strings are UTF-8 and the `l' indicator means the strings are encoded in the encoding used by the current locale. The functions provided are the following entry points: idna_to_ascii_4i ---------------- -- Function: int idna_to_ascii_4i (const uint32_t * IN, size_t INLEN, char * OUT, int FLAGS) IN: input array with unicode code points. INLEN: length of input array with unicode code points. OUT: output zero terminated string that must have room for at least 63 characters plus the terminating zero. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. The ToASCII operation takes a sequence of Unicode code points that make up one domain label and transforms it into a sequence of code points in the ASCII range (0..7F). If ToASCII succeeds, the original sequence and the resulting sequence are equivalent labels. It is important to note that the ToASCII operation can fail. ToASCII fails if any step of it fails. If any step of the ToASCII operation fails on any label in a domain name, that domain name MUST NOT be used as an internationalized domain name. The method for deadling with this failure is application-specific. The inputs to ToASCII are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a sequence of ASCII code points or a failure condition. ToASCII never alters a sequence of code points that are all in the ASCII range to begin with (although it could fail). Applying the ToASCII operation multiple times has exactly the same effect as applying it just once. *Return value:* Returns 0 on success, or an `Idna_rc' error code. idna_to_unicode_44i ------------------- -- Function: int idna_to_unicode_44i (const uint32_t * IN, size_t INLEN, uint32_t * OUT, size_t * OUTLEN, int FLAGS) IN: input array with unicode code points. INLEN: length of input array with unicode code points. OUT: output array with unicode code points. OUTLEN: on input, maximum size of output array with unicode code points, on exit, actual size of output array with unicode code points. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. The ToUnicode operation takes a sequence of Unicode code points that make up one domain label and returns a sequence of Unicode code points. If the input sequence is a label in ACE form, then the result is an equivalent internationalized label that is not in ACE form, otherwise the original sequence is returned unaltered. ToUnicode never fails. If any step fails, then the original input sequence is returned immediately in that step. The Punycode decoder can never output more code points than it inputs, but Nameprep can, and therefore ToUnicode can. Note that the number of octets needed to represent a sequence of code points depends on the particular character encoding used. The inputs to ToUnicode are a sequence of code points, the AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of ToUnicode is always a sequence of Unicode code points. *Return value:* Returns `Idna_rc' error condition, but it must only be used for debugging purposes. The output buffer is always guaranteed to contain the correct data according to the specification (sans malloc induced errors). NB! This means that you normally ignore the return code from this function, as checking it means breaking the standard. 6.5 Simplified ToASCII Interface ================================ idna_to_ascii_4z ---------------- -- Function: int idna_to_ascii_4z (const uint32_t * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero terminated input Unicode string. OUTPUT: pointer to newly allocated output string. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert UCS-4 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. idna_to_ascii_8z ---------------- -- Function: int idna_to_ascii_8z (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero terminated input UTF-8 string. OUTPUT: pointer to newly allocated output string. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert UTF-8 domain name to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. idna_to_ascii_lz ---------------- -- Function: int idna_to_ascii_lz (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero terminated input string encoded in the current locale's character set. OUTPUT: pointer to newly allocated output string. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert domain name in the locale's encoding to ASCII string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. 6.6 Simplified ToUnicode Interface ================================== idna_to_unicode_4z4z -------------------- -- Function: int idna_to_unicode_4z4z (const uint32_t * INPUT, uint32_t ** OUTPUT, int FLAGS) INPUT: zero-terminated Unicode string. OUTPUT: pointer to newly allocated output Unicode string. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert possibly ACE encoded domain name in UCS-4 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. idna_to_unicode_8z4z -------------------- -- Function: int idna_to_unicode_8z4z (const char * INPUT, uint32_t ** OUTPUT, int FLAGS) INPUT: zero-terminated UTF-8 string. OUTPUT: pointer to newly allocated output Unicode string. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert possibly ACE encoded domain name in UTF-8 format into a UCS-4 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. idna_to_unicode_8z8z -------------------- -- Function: int idna_to_unicode_8z8z (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero-terminated UTF-8 string. OUTPUT: pointer to newly allocated output UTF-8 string. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert possibly ACE encoded domain name in UTF-8 format into a UTF-8 string. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. idna_to_unicode_8zlz -------------------- -- Function: int idna_to_unicode_8zlz (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero-terminated UTF-8 string. OUTPUT: pointer to newly allocated output string encoded in the current locale's character set. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert possibly ACE encoded domain name in UTF-8 format into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. idna_to_unicode_lzlz -------------------- -- Function: int idna_to_unicode_lzlz (const char * INPUT, char ** OUTPUT, int FLAGS) INPUT: zero-terminated string encoded in the current locale's character set. OUTPUT: pointer to newly allocated output string encoded in the current locale's character set. FLAGS: an `Idna_flags' value, e.g., `IDNA_ALLOW_UNASSIGNED' or `IDNA_USE_STD3_ASCII_RULES'. Convert possibly ACE encoded domain name in the locale's character set into a string encoded in the current locale's character set. The domain name may contain several labels, separated by dots. The output buffer must be deallocated by the caller. *Return value:* Returns `IDNA_SUCCESS' on success, or error code. 6.7 Error Handling ================== idna_strerror ------------- -- Function: const char * idna_strerror (Idna_rc RC) RC: an `Idna_rc' return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *IDNA_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *IDNA_STRINGPREP_ERROR:* Error during string preparation. *IDNA_PUNYCODE_ERROR:* Error during punycode operation. *IDNA_CONTAINS_NON_LDH:* For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains non-LDH ASCII characters. *IDNA_CONTAINS_MINUS:* For IDNA_USE_STD3_ASCII_RULES, indicate that the string contains a leading or trailing hyphen-minus (U+002D). *IDNA_INVALID_LENGTH:* The final output string is not within the (inclusive) range 1 to 63 characters. *IDNA_NO_ACE_PREFIX:* The string does not contain the ACE prefix (for ToUnicode). *IDNA_ROUNDTRIP_VERIFY_ERROR:* The ToASCII operation on output string does not equal the input. *IDNA_CONTAINS_ACE_PREFIX:* The input contains the ACE prefix (for ToASCII). *IDNA_ICONV_ERROR:* Could not convert string in locale encoding. *IDNA_MALLOC_ERROR:* Could not allocate buffer (this is typically a fatal error). *IDNA_DLOPEN_ERROR:* Could not dlopen the libcidn DSO (only used internally in libc). *Return value:* Returns a pointer to a statically allocated string containing a description of the error with the return code `rc'.  File: libidn.info, Node: TLD Functions, Next: PR29 Functions, Prev: IDNA Functions, Up: Top 7 TLD Functions *************** Organizations that manage some Top Level Domains (TLDs) have published tables with characters they accept within the domain. The reason may be to reduce complexity that come from using the full Unicode range, and to protect themselves from future (backwards incompatible) changes in the IDN or Unicode specifications. Libidn implement an infrastructure for defining and checking strings against such tables. Libidn also ship some tables from TLDs that we have managed to get permission to use them from. Because these tables are even less static than Unicode or StringPrep tables, it is likely that they will be updated from time to time (even in backwards incompatible ways). The Libidn interface provide a "version" field for each TLD table, which can be compared for equality to guarantee the same operation over time. From a design point of view, you can regard the TLD tables for IDN as the "localization" step that come after the "internationalization" step provided by the IETF standards. The TLD functionality rely on up-to-date tables. The latest version of Libidn aim to provide these, but tables with unclear copying conditions, or generally experimental tables, are not included. Some such tables can be found at `https://github.com/gnuthor/tldchk'. 7.1 Header file `tld.h' ======================= To use the functions explained in this chapter, you need to include the file `tld.h' using: #include 7.2 Core Functions ================== tld_check_4t ------------ -- Function: int tld_check_4t (const uint32_t * IN, size_t INLEN, size_t * ERRPOS, const Tld_table * TLD) IN: Array of unicode code points to process. Does not need to be zero terminated. INLEN: Number of unicode code points. ERRPOS: Position of offending character is returned here. TLD: A `Tld_table' data structure representing the restrictions for which the input should be tested. Test each of the code points in `in' for whether or not they are allowed by the data structure in `tld', return the position of the first character for which this is not the case in `errpos'. *Return value:* Returns the `Tld_rc' value `TLD_SUCCESS' if all code points are valid or when `tld' is null, `TLD_INVALID' if a character is not allowed, or additional error codes on general failure conditions. tld_check_4tz ------------- -- Function: int tld_check_4tz (const uint32_t * IN, size_t * ERRPOS, const Tld_table * TLD) IN: Zero terminated array of unicode code points to process. ERRPOS: Position of offending character is returned here. TLD: A `Tld_table' data structure representing the restrictions for which the input should be tested. Test each of the code points in `in' for whether or not they are allowed by the data structure in `tld', return the position of the first character for which this is not the case in `errpos'. *Return value:* Returns the `Tld_rc' value `TLD_SUCCESS' if all code points are valid or when `tld' is null, `TLD_INVALID' if a character is not allowed, or additional error codes on general failure conditions. 7.3 Utility Functions ===================== tld_get_4 --------- -- Function: int tld_get_4 (const uint32_t * IN, size_t INLEN, char ** OUT) IN: Array of unicode code points to process. Does not need to be zero terminated. INLEN: Number of unicode code points. OUT: Zero terminated ascii result string pointer. Isolate the top-level domain of `in' and return it as an ASCII string in `out'. *Return value:* Return `TLD_SUCCESS' on success, or the corresponding `Tld_rc' error code otherwise. tld_get_4z ---------- -- Function: int tld_get_4z (const uint32_t * IN, char ** OUT) IN: Zero terminated array of unicode code points to process. OUT: Zero terminated ascii result string pointer. Isolate the top-level domain of `in' and return it as an ASCII string in `out'. *Return value:* Return `TLD_SUCCESS' on success, or the corresponding `Tld_rc' error code otherwise. tld_get_z --------- -- Function: int tld_get_z (const char * IN, char ** OUT) IN: Zero terminated character array to process. OUT: Zero terminated ascii result string pointer. Isolate the top-level domain of `in' and return it as an ASCII string in `out'. The input string `in' may be UTF-8, ISO-8859-1 or any ASCII compatible character encoding. *Return value:* Return `TLD_SUCCESS' on success, or the corresponding `Tld_rc' error code otherwise. tld_get_table ------------- -- Function: const Tld_table * tld_get_table (const char * TLD, const Tld_table ** TABLES) TLD: TLD name (e.g. "com") as zero terminated ASCII byte string. TABLES: Zero terminated array of `Tld_table' info-structures for TLDs. Get the TLD table for a named TLD by searching through the given TLD table array. *Return value:* Return structure corresponding to TLD `tld' by going thru `tables', or return `NULL' if no such structure is found. tld_default_table ----------------- -- Function: const Tld_table * tld_default_table (const char * TLD, const Tld_table ** OVERRIDES) TLD: TLD name (e.g. "com") as zero terminated ASCII byte string. OVERRIDES: Additional zero terminated array of `Tld_table' info-structures for TLDs, or `NULL' to only use library deault tables. Get the TLD table for a named TLD, using the internal defaults, possibly overrided by the (optional) supplied tables. *Return value:* Return structure corresponding to TLD `tld_str', first looking through `overrides' then thru built-in list, or `NULL' if no such structure found. 7.4 High-Level Wrapper Functions ================================ tld_check_4 ----------- -- Function: int tld_check_4 (const uint32_t * IN, size_t INLEN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Array of unicode code points to process. Does not need to be zero terminated. INLEN: Number of unicode code points. ERRPOS: Position of offending character is returned here. OVERRIDES: A `Tld_table' array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in `in' for whether or not they are allowed by the information in `overrides' or by the built-in TLD restriction data. When data for the same TLD is available both internally and in `overrides', the information in `overrides' takes precedence. If several entries for a specific TLD are found, the first one is used. If `overrides' is `NULL', only the built-in information is used. The position of the first offending character is returned in `errpos'. *Return value:* Returns the `Tld_rc' value `TLD_SUCCESS' if all code points are valid or when `tld' is null, `TLD_INVALID' if a character is not allowed, or additional error codes on general failure conditions. tld_check_4z ------------ -- Function: int tld_check_4z (const uint32_t * IN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Zero-terminated array of unicode code points to process. ERRPOS: Position of offending character is returned here. OVERRIDES: A `Tld_table' array of additional domain restriction structures that complement and supersede the built-in information. Test each of the code points in `in' for whether or not they are allowed by the information in `overrides' or by the built-in TLD restriction data. When data for the same TLD is available both internally and in `overrides', the information in `overrides' takes precedence. If several entries for a specific TLD are found, the first one is used. If `overrides' is `NULL', only the built-in information is used. The position of the first offending character is returned in `errpos'. *Return value:* Returns the `Tld_rc' value `TLD_SUCCESS' if all code points are valid or when `tld' is null, `TLD_INVALID' if a character is not allowed, or additional error codes on general failure conditions. tld_check_8z ------------ -- Function: int tld_check_8z (const char * IN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Zero-terminated UTF8 string to process. ERRPOS: Position of offending character is returned here. OVERRIDES: A `Tld_table' array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in `in' for whether or not they are allowed by the information in `overrides' or by the built-in TLD restriction data. When data for the same TLD is available both internally and in `overrides', the information in `overrides' takes precedence. If several entries for a specific TLD are found, the first one is used. If `overrides' is `NULL', only the built-in information is used. The position of the first offending character is returned in `errpos'. Note that the error position refers to the decoded character offset rather than the byte position in the string. *Return value:* Returns the `Tld_rc' value `TLD_SUCCESS' if all characters are valid or when `tld' is null, `TLD_INVALID' if a character is not allowed, or additional error codes on general failure conditions. tld_check_lz ------------ -- Function: int tld_check_lz (const char * IN, size_t * ERRPOS, const Tld_table ** OVERRIDES) IN: Zero-terminated string in the current locales encoding to process. ERRPOS: Position of offending character is returned here. OVERRIDES: A `Tld_table' array of additional domain restriction structures that complement and supersede the built-in information. Test each of the characters in `in' for whether or not they are allowed by the information in `overrides' or by the built-in TLD restriction data. When data for the same TLD is available both internally and in `overrides', the information in `overrides' takes precedence. If several entries for a specific TLD are found, the first one is used. If `overrides' is `NULL', only the built-in information is used. The position of the first offending character is returned in `errpos'. Note that the error position refers to the decoded character offset rather than the byte position in the string. *Return value:* Returns the `Tld_rc' value `TLD_SUCCESS' if all characters are valid or when `tld' is null, `TLD_INVALID' if a character is not allowed, or additional error codes on general failure conditions. 7.5 Error Handling ================== tld_strerror ------------ -- Function: const char * tld_strerror (Tld_rc RC) RC: tld return code Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *TLD_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *TLD_INVALID:* Invalid character found. *TLD_NODATA:* No input data was provided. *TLD_MALLOC_ERROR:* Error during memory allocation. *TLD_ICONV_ERROR:* Error during iconv string conversion. *TLD_NO_TLD:* No top-level domain found in domain string. *Return value:* Returns a pointer to a statically allocated string containing a description of the error with the return code `rc'.  File: libidn.info, Node: PR29 Functions, Next: Examples, Prev: TLD Functions, Up: Top 8 PR29 Functions **************** A deficiency in the specification of Unicode Normalization Forms has been found. The consequence is that some strings can be normalized into different strings by different implementations. In other words, two different implementations may return different output for the same input (because the interpretation of the specification is ambiguous). Further, an implementation invoked again on the one of the output strings may return a different string (because one of the interpretation of the ambiguous specification make normalization non-idempotent). Fortunately, only a select few character sequence exhibit this problem, and none of them are expected to occur in natural languages (due to different linguistic uses of the involved characters). A full discussion of the problem may be found at: `http://www.unicode.org/review/pr-29.html' The PR29 functions below allow you to detect the problem sequence. So when would you want to use these functions? For most applications, such as those using Nameprep for IDN, this is likely only to be an interoperability problem. Thus, you may not want to care about it, as the character sequences will rarely occur naturally. However, if you are using a profile, such as SASLPrep, to process authentication tokens; authorization tokens; or passwords, there is a real danger that attackers may try to use the peculiarities in these strings to attack parts of your system. As only a small number of strings, and no naturally occurring strings, exhibit this problem, the conservative approach of rejecting the strings is recommended. If this approach is not used, you should instead verify that all parts of your system, that process the tokens and passwords, use a NFKC implementation that produce the same output for the same input. Technically inclined readers may be interested in knowing more about the implementation aspects of the PR29 flaw. *Note PR29 discussion::. 8.1 Header file `pr29.h' ======================== To use the functions explained in this chapter, you need to include the file `pr29.h' using: #include 8.2 Core Functions ================== pr29_4 ------ -- Function: int pr29_4 (const uint32_t * IN, size_t LEN) IN: input array with unicode code points. LEN: length of input array with unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. *Return value:* Returns the `Pr29_rc' value `PR29_SUCCESS' on success, and `PR29_PROBLEM' if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). 8.3 Utility Functions ===================== pr29_4z ------- -- Function: int pr29_4z (const uint32_t * IN) IN: zero terminated array of Unicode code points. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. *Return value:* Returns the `Pr29_rc' value `PR29_SUCCESS' on success, and `PR29_PROBLEM' if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations). pr29_8z ------- -- Function: int pr29_8z (const char * IN) IN: zero terminated input UTF-8 string. Check the input to see if it may be normalized into different strings by different NFKC implementations, due to an anomaly in the NFKC specifications. *Return value:* Returns the `Pr29_rc' value `PR29_SUCCESS' on success, and `PR29_PROBLEM' if the input sequence is a "problem sequence" (i.e., may be normalized into different strings by different implementations), or `PR29_STRINGPREP_ERROR' if there was a problem converting the string from UTF-8 to UCS-4. 8.4 Error Handling ================== pr29_strerror ------------- -- Function: const char * pr29_strerror (Pr29_rc RC) RC: an `Pr29_rc' return code. Convert a return code integer to a text string. This string can be used to output a diagnostic message to the user. *PR29_SUCCESS:* Successful operation. This value is guaranteed to always be zero, the remaining ones are only guaranteed to hold non-zero values, for logical comparison purposes. *PR29_PROBLEM:* A problem sequence was encountered. *PR29_STRINGPREP_ERROR:* The character set conversion failed (only for `pr29_8z()'). *Return value:* Returns a pointer to a statically allocated string containing a description of the error with the return code `rc'.  File: libidn.info, Node: Examples, Next: Invoking idn, Prev: PR29 Functions, Up: Top 9 Examples ********** This chapter contains example code which illustrate how `Libidn' can be used when writing your own application. * Menu: * Example 1:: Example using stringprep. * Example 2:: Example using punycode. * Example 3:: Example using IDNA ToASCII. * Example 4:: Example using IDNA ToUnicode. * Example 5:: Example using TLD checking.  File: libidn.info, Node: Example 1, Next: Example 2, Up: Examples 9.1 Example 1 ============= This example demonstrates how the stringprep functions are used. /* example.c --- Example code showing how to use stringprep(). * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include #include #include #include /* setlocale() */ #include /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example example.c `pkg-config --cflags --libs libidn` * $ ./example * Input string encoded as `ISO-8859-1': ª * Before locale2utf8 (length 2): aa 0a * Before stringprep (length 3): c2 aa 0a * After stringprep (length 2): 61 0a * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input string encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Before locale2utf8 (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); printf ("Before stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); rc = stringprep (buf, BUFSIZ, 0, stringprep_nameprep); if (rc != STRINGPREP_OK) printf ("Stringprep failed (%d): %s\n", rc, stringprep_strerror (rc)); else { printf ("After stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); } return 0; }  File: libidn.info, Node: Example 2, Next: Example 3, Prev: Example 1, Up: Examples 9.2 Example 2 ============= This example demonstrates how the punycode functions are used. /* example2.c --- Example code showing how to use punycode. * Copyright (C) 2002-2013 Simon Josefsson * Copyright (C) 2002 Adam M. Costello * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include /* setlocale() */ /* * This file is derived from RFC 3492 written by Adam M. Costello. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. * */ #include #include #include #include #include /* For testing, we'll just set some compile-time limits rather than */ /* use malloc(), and set a compile-time option rather than using a */ /* command-line option. */ enum { unicode_max_length = 256, ace_max_length = 256 }; static void usage (char **argv) { fprintf (stderr, "\n" "%s -e reads code points and writes a Punycode string.\n" "%s -d reads a Punycode string and writes code points.\n" "\n" "Input and output are plain text in the native character set.\n" "Code points are in the form u+hex separated by whitespace.\n" "Although the specification allows Punycode strings to contain\n" "any characters from the ASCII repertoire, this test code\n" "supports only the printable characters, and needs the Punycode\n" "string to be followed by a newline.\n" "The case of the u in u+hex is the force-to-uppercase flag.\n", argv[0], argv[0]); exit (EXIT_FAILURE); } static void fail (const char *msg) { fputs (msg, stderr); exit (EXIT_FAILURE); } static const char too_big[] = "input or output is too large, recompile with larger limits\n"; static const char invalid_input[] = "invalid input\n"; static const char overflow[] = "arithmetic overflow\n"; static const char io_error[] = "I/O error\n"; /* The following string is used to convert printable */ /* characters between ASCII and the native charset: */ static const char print_ascii[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" " !\"#$%&'()*+,-./" "0123456789:;<=>?" "\0x40" /* at sign */ "ABCDEFGHIJKLMNO" "PQRSTUVWXYZ[\\]^_" "`abcdefghijklmno" "pqrstuvwxyz{|}~\n"; int main (int argc, char **argv) { enum punycode_status status; int r; size_t input_length, output_length, j; unsigned char case_flags[unicode_max_length]; setlocale (LC_ALL, ""); if (argc != 2) usage (argv); if (argv[1][0] != '-') usage (argv); if (argv[1][2] != 0) usage (argv); if (argv[1][1] == 'e') { uint32_t input[unicode_max_length]; unsigned long codept; char output[ace_max_length + 1], uplus[3]; int c; /* Read the input code points: */ input_length = 0; for (;;) { r = scanf ("%2s%lx", uplus, &codept); if (ferror (stdin)) fail (io_error); if (r == EOF || r == 0) break; if (r != 2 || uplus[1] != '+' || codept > (uint32_t) - 1) { fail (invalid_input); } if (input_length == unicode_max_length) fail (too_big); if (uplus[0] == 'u') case_flags[input_length] = 0; else if (uplus[0] == 'U') case_flags[input_length] = 1; else fail (invalid_input); input[input_length++] = codept; } /* Encode: */ output_length = ace_max_length; status = punycode_encode (input_length, input, case_flags, &output_length, output); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Convert to native charset and output: */ for (j = 0; j < output_length; ++j) { c = output[j]; assert (c >= 0 && c <= 127); if (print_ascii[c] == 0) fail (invalid_input); output[j] = print_ascii[c]; } output[j] = 0; r = puts (output); if (r == EOF) fail (io_error); return EXIT_SUCCESS; } if (argv[1][1] == 'd') { char input[ace_max_length + 2], *p, *pp; uint32_t output[unicode_max_length]; /* Read the Punycode input string and convert to ASCII: */ if (!fgets (input, ace_max_length + 2, stdin)) fail (io_error); if (ferror (stdin)) fail (io_error); if (feof (stdin)) fail (invalid_input); input_length = strlen (input) - 1; if (input[input_length] != '\n') fail (too_big); input[input_length] = 0; for (p = input; *p != 0; ++p) { pp = strchr (print_ascii, *p); if (pp == 0) fail (invalid_input); *p = pp - print_ascii; } /* Decode: */ output_length = unicode_max_length; status = punycode_decode (input_length, input, &output_length, output, case_flags); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Output the result: */ for (j = 0; j < output_length; ++j) { r = printf ("%s+%04lX\n", case_flags[j] ? "U" : "u", (unsigned long) output[j]); if (r < 0) fail (io_error); } return EXIT_SUCCESS; } usage (argv); return EXIT_SUCCESS; /* not reached, but quiets compiler warning */ }  File: libidn.info, Node: Example 3, Next: Example 4, Prev: Example 2, Up: Examples 9.3 Example 3 ============= This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names. /* example3.c --- Example ToASCII() code showing how to use Libidn. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include #include #include #include /* setlocale() */ #include /* stringprep_locale_charset() */ #include /* idna_to_ascii_lz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example3 example3.c `pkg-config --cflags --libs libidn` * $ ./example3 * Input domain encoded as `ISO-8859-1': www.räksmörgåsª.example * Read string (length 23): 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 aa 2e 65 78 61 6d 70 6c 65 * ACE label (length 33): 'www.xn--rksmrgsa-0zap8p.example' * 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); rc = idna_to_ascii_lz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToASCII() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", p[i] & 0xFF); printf ("\n"); free (p); return 0; }  File: libidn.info, Node: Example 4, Next: Example 5, Prev: Example 3, Up: Examples 9.4 Example 4 ============= This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names. /* example4.c --- Example ToUnicode() code showing how to use Libidn. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include #include #include #include /* setlocale() */ #include /* stringprep_locale_charset() */ #include /* idna_to_unicode_lzlz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example4 example4.c `pkg-config --cflags --libs libidn` * $ ./example4 * Input domain encoded as `ISO-8859-1': www.xn--rksmrgsa-0zap8p.example * Read string (length 33): 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * ACE label (length 23): 'www.räksmörgåsa.example' * 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 61 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); rc = idna_to_unicode_lzlz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToUnicode() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", p[i] & 0xFF); printf ("\n"); free (p); return 0; }  File: libidn.info, Node: Example 5, Prev: Example 4, Up: Examples 9.5 Example 5 ============= This example demonstrates how the library is used to check a string for invalid characters within a specific TLD. /* example5.c --- Example TLD checking. * Copyright (C) 2004-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #include #include #include /* Get stringprep_locale_charset, etc. */ #include /* Get idna_to_ascii_8z, etc. */ #include /* Get tld_check_4z. */ #include /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example5 example5.c `pkg-config --cflags --libs libidn` * $ ./example5 * Input domain encoded as `UTF-8': fooß.no * Read string (length 8): 66 6f 6f c3 9f 2e 6e 6f * ToASCII string (length 8): fooss.no * ToUnicode string: U+0066 U+006f U+006f U+0073 U+0073 U+002e U+006e U+006f * Domain accepted by TLD check * * $ ./example5 * Input domain encoded as `UTF-8': gr€€n.no * Read string (length 12): 67 72 e2 82 ac e2 82 ac 6e 2e 6e 6f * ToASCII string (length 16): xn--grn-l50aa.no * ToUnicode string: U+0067 U+0072 U+20ac U+20ac U+006e U+002e U+006e U+006f * Domain rejected by TLD check, Unicode position 2 * */ int main (void) { char buf[BUFSIZ]; char *p; uint32_t *r; int rc; size_t errpos, i; printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); rc = idna_to_ascii_8z (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("idna_to_ascii_8z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToASCII string (length %ld): %s\n", (long int) strlen (p), p); rc = idna_to_unicode_8z4z (p, &r, 0); free (p); if (rc != IDNA_SUCCESS) { printf ("idna_to_unicode_8z4z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToUnicode string: "); for (i = 0; r[i]; i++) printf ("U+%04x ", r[i]); printf ("\n"); rc = tld_check_4z (r, &errpos, NULL); free (r); if (rc == TLD_INVALID) { printf ("Domain rejected by TLD check, Unicode position %ld\n", (long int) errpos); return 1; } else if (rc != TLD_SUCCESS) { printf ("tld_check_4z() failed (%d): %s\n", rc, tld_strerror (rc)); return 2; } printf ("Domain accepted by TLD check\n"); return 0; }  File: libidn.info, Node: Invoking idn, Next: Emacs API, Prev: Examples, Up: Top 10 Invoking idn *************** 10.1 Name ========= GNU Libidn (idn) - Internationalized Domain Names command line tool 10.2 Description ================ `idn' allows internationalized string preparation (`stringprep'), encoding and decoding of punycode data, and IDNA ToASCII/ToUnicode operations to be performed on the command line. If strings are specified on the command line, they are used as input and the computed output is printed to standard output `stdout'. If no strings are specified on the command line, the program read data, line by line, from the standard input `stdin', and print the computed output to standard output. What processing is performed (e.g., ToASCII, or Punycode encode) is indicated by options. If any errors are encountered, the execution of the applications is aborted. All strings are expected to be encoded in the preferred charset used by your locale. Use `--debug' to find out what this charset is. You can override the charset used by setting environment variable `CHARSET'. To process a string that starts with `-', for example `-foo', use `--' to signal the end of parameters, as in `idn --quiet -a -- -foo'. 10.3 Options ============ `idn' recognizes these commands: -h, --help Print help and exit -V, --version Print version and exit -s, --stringprep Prepare string according to nameprep profile -d, --punycode-decode Decode Punycode -e, --punycode-encode Encode Punycode -a, --idna-to-ascii Convert to ACE according to IDNA (default mode) -u, --idna-to-unicode Convert from ACE according to IDNA --allow-unassigned Toggle IDNA AllowUnassigned flag (default off) --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off) --no-tld Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode -n, --nfkc Normalize string according to Unicode v3.2 NFKC -p, --profile=STRING Use specified stringprep profile instead Valid stringprep profiles: `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', `SASLprep' --debug Print debugging information --quiet Silent operation 10.4 Environment Variables ========================== The CHARSET environment variable can be used to override what character set to be used for decoding incoming data (i.e., on the command line or on the standard input stream), and to encode data to the standard output. If your system is set up correctly, however, the application will guess which character set is used automatically. Example usage: $ CHARSET=ISO-8859-1 idn --punycode-encode ... 10.5 Examples ============= Standard usage, reading input from standard input: jas@latte:~$ idn libidn 0.3.5 Copyright 2002, 2003 Simon Josefsson. GNU Libidn comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Libidn under the terms of the GNU Lesser General Public License. For more information about these matters, see the file named COPYING.LIB. Type each input string on a line by itself, terminated by a newline character. räksmörgås.se xn--rksmrgs-5wao1o.se jas@latte:~$ Reading input from command line, and disable printing copyright and license information: jas@latte:~$ idn --quiet räksmörgås.se blåbærgrød.no xn--rksmrgs-5wao1o.se xn--blbrgrd-fxak7p.no jas@latte:~$ Accessing a specific StringPrep profile directly: jas@latte:~$ idn --quiet --profile=SASLprep --stringprep teßtª teßta jas@latte:~$ 10.6 Troubleshooting ==================== Getting character data encoded right, and making sure Libidn use the same encoding, can be difficult. The reason for this is that most systems encode character data in more than one character encoding, i.e., using `UTF-8' together with `ISO-8859-1' or `ISO-2022-JP'. This problem is likely to continue to exist until only one character encoding come out as the evolutionary winner, or (more likely, at least to some extents) forever. The first step to troubleshooting character encoding problems with Libidn is to use the `--debug' parameter to find out which character set encoding `idn' believe your locale uses. jas@latte:~$ idn --debug --quiet "" system locale uses charset `UTF-8'. jas@latte:~$ If it prints `ANSI_X3.4-1968' (i.e., `US-ASCII'), this indicate you have not configured your locale properly. To configure the locale, you can, for example, use `LANG=sv_SE.UTF-8; export LANG' at a `/bin/sh' prompt, to set up your locale for a Swedish environment using `UTF-8' as the encoding. Sometimes `idn' appear to be unable to translate from your system locale into `UTF-8' (which is used internally), and you get an error like the following: jas@latte:~$ idn --quiet foo idn: could not convert from ISO-8859-1 to UTF-8. jas@latte:~$ The simplest explanation is that you haven't installed the `iconv' conversion tools. You can find it as a standalone library in GNU Libiconv (`http://www.gnu.org/software/libiconv/'). On many GNU/Linux systems, this library is part of the system, but you may have to install additional packages (e.g., `glibc-locale' for Debian) to be able to use it. Another explanation is that the error is correct and you are feeding `idn' invalid data. This can happen inadvertently if you are not careful with the character set encoding you use. For example, if your shell run in a `ISO-8859-1' environment, and you invoke `idn' with the `CHARSET' environment variable as follows, you will feed it `ISO-8859-1' characters but force it to believe they are `UTF-8'. Naturally this will lead to an error, unless the byte sequences happen to be valid `UTF-8'. Note that even if you don't get an error, the output may be incorrect in this situation, because `ISO-8859-1' and `UTF-8' does not in general encode the same characters as the same byte sequences. jas@latte:~$ idn --quiet --debug "" system locale uses charset `ISO-8859-1'. jas@latte:~$ CHARSET=UTF-8 idn --quiet --debug räksmörgås system locale uses charset `UTF-8'. input[0] = U+0072 input[1] = U+4af3 input[2] = U+006d input[3] = U+1b29e5 input[4] = U+0073 output[0] = U+0078 output[1] = U+006e output[2] = U+002d output[3] = U+002d output[4] = U+0072 output[5] = U+006d output[6] = U+0073 output[7] = U+002d output[8] = U+0068 output[9] = U+0069 output[10] = U+0036 output[11] = U+0064 output[12] = U+0035 output[13] = U+0039 output[14] = U+0037 output[15] = U+0035 output[16] = U+0035 output[17] = U+0032 output[18] = U+0061 xn--rms-hi6d597552a jas@latte:~$ The sense moral here is to forget about `CHARSET' (configure your locales properly instead) unless you know what you are doing, and if you want to use it, do it carefully, after verifying with `--debug' that you get the desired results.  File: libidn.info, Node: Emacs API, Next: Java API, Prev: Invoking idn, Up: Top 11 Emacs API ************ Included in Libidn are `punycode.el' and `idna.el' that provides an Emacs Lisp API to (a limited set of) the Libidn API. This section describes the API. Currently the IDNA API always set the `UseSTD3ASCIIRules' flag and clear the `AllowUnassigned' flag, in the future there may be functionality to specify these flags via the API. 11.1 Punycode Emacs API ======================= -- Variable: punycode-program Name of the GNU Libidn `idn' application. The default is `idn'. This variable can be customized. -- Variable: punycode-environment List of environment variable definitions prepended to `process-environment'. The default is `("CHARSET=UTF-8")'. This variable can be customized. -- Variable: punycode-encode-parameters List of parameters passed to PUNYCODE-PROGRAM to invoke punycode encoding mode. The default is `("--quiet" "--punycode-encode")'. This variable can be customized. -- Variable: punycode-decode-parameters Parameters passed to PUNYCODE-PROGRAM to invoke punycode decoding mode. The default is `("--quiet" "--punycode-decode")'. This variable can be customized. -- Function: punycode-encode string Returns a Punycode encoding of the STRING, after converting the input into UTF-8. -- Function: punycode-decode string Returns a possibly multibyte string which is the decoding of the STRING which is a punycode encoded string. 11.2 IDNA Emacs API =================== -- Variable: idna-program Name of the GNU Libidn `idn' application. The default is `idn'. This variable can be customized. -- Variable: idna-environment List of environment variable definitions prepended to `process-environment'. The default is `("CHARSET=UTF-8")'. This variable can be customized. -- Variable: idna-to-ascii-parameters List of parameters passed to IDNA-PROGRAM to invoke IDNA ToASCII mode. The default is `("--quiet" "--idna-to-ascii" "--usestd3asciirules")'. This variable can be customized. -- Variable: idna-to-unicode-parameters Parameters passed IDNA-PROGRAM to invoke IDNA ToUnicode mode. The default is `("--quiet" "--idna-to-unicode" "--usestd3asciirules")'. This variable can be customized. -- Function: idna-to-ascii string Returns an ASCII Compatible Encoding (ACE) of the string computed by the IDNA ToASCII operation on the input STRING, after converting the input to UTF-8. -- Function: idna-to-unicode string Returns a possibly multibyte string which is the output of the IDNA ToUnicode operation computed on the input STRING.  File: libidn.info, Node: Java API, Next: C# API, Prev: Emacs API, Up: Top 12 Java API *********** Libidn has been ported to the Java programming language, and as a consequence most of the API is available to native Java applications. This section contain notes on this support, complete documentation is pending. The Java library, if Libidn has been built with Java support (*note Downloading and Installing::), will be placed in `java/libidn-1.28.jar'. The source code is below `java/' in Maven directory layout, and there is a Maven `pom.xml' build script as well. Source code files are in `java/src/main/java/gnu/inet/encoding/'. 12.1 Overview ============= This package provides a Java implementation of the Internationalized Domain Names in Applications (IDNA) standard. It is written entirely in Java and does not require any additional libraries to be set up. The gnu.inet.encoding.IDNA class offers two public functions, toASCII and toUnicode which can be used as follows: gnu.inet.encoding.IDNA.toASCII("blöds.züg"); gnu.inet.encoding.IDNA.toUnicode("xn--blds-6qa.xn--zg-xka"); 12.2 Miscellaneous Programs =========================== The `java/src/util/java/' directory contains several programs that are related to the Java part of GNU Libidn, but that don't need to be included in the main source tree or the JAR file. 12.2.1 GenerateRFC3454 ---------------------- This program parses RFC3454 and creates the RFC3454.java program that is required during the StringPrep phase. The RFC can be found at various locations, for example at `http://www.ietf.org/rfc/rfc3454.txt'. Invoke the program as follows: $ java GenerateRFC3454 Creating RFC3454.java... Ok. 12.2.2 GenerateNFKC ------------------- The GenerateNFKC program parses the Unicode character database file and generates all the tables required for NFKC. This program requires the two files UnicodeData.txt and CompositionExclusions.txt of version 3.2 of the Unicode files. Note that RFC3454 (Stringprep) defines that Unicode version 3.2 is to be used, not the latest version. The Unicode data files can be found at `http://www.unicode.org/Public/'. Invoke the program as follows: $ java GenerateNFKC Creating CombiningClass.java... Ok. Creating DecompositionKeys.java... Ok. Creating DecompositionMappings.java... Ok. Creating Composition.java... Ok. 12.2.3 TestIDNA --------------- The TestIDNA program allows to test the IDNA implementation manually or against Simon Josefsson's test vectors. The test vectors can be found at the Libidn homepage, `http://www.gnu.org/software/libidn/'. To test the transformation manually, use: $ java -cp .:/usr/share/java/libidn.jar TestIDNA -a Input: Output: $ java -cp .:/usr/share/java/libidn.jar TestIDNA -u Input: Output: To test against draft-josefsson-idn-test-vectors.html, use: $ java -cp .:/usr/share/java/libidn/libidn.jar TestIDNA -t No errors detected! 12.2.4 TestNFKC --------------- The TestNFKC program allows to test the NFKC implementation manually or against the NormalizationTest.txt file from the Unicode data files. To test the normalization manually, use: $ java -cp .:/usr/share/java/libidn.jar TestNFKC Input: Output: To test against NormalizationTest.txt: $ java -cp .:/usr/share/java/libidn.jar TestNFKC No errors detected! 12.3 Possible Problems ====================== Beware of Bugs: This Java API needs a lot more testing, especially with "exotic" character sets. While it works for me, it may not work for you. Encoding of your Java sources: If you are using non-ASCII characters in your Java source code, make sure javac compiles your programs with the correct encoding. If necessary specify the encoding using the -encoding parameter. Java Unicode handling: Java 1.4 only handles 16-bit Unicode code points (i.e. characters in the Basic Multilingual Plane), this implementation therefore ignores all references to so-called Supplementary Characters (U+10000 to U+10FFFF). Starting from Java 1.5, these characters will also be supported by Java, but this will require changes to this library. See also the next section. 12.4 A Note on Java and Unicode =============================== This library uses Java's built-in 'char' datatype. Up to Java 1.4, this datatype only supports 16-bit Unicode code points, also called the Basic Multilingual Plane. For this reason, this library doesn't work for Supplementary Characters (i.e. characters from U+10000 to U+10FFFF). All references to such characters are silently ignored. Starting from Java 1.5, also Supplementary Characters will be supported. However, this will require changes in the present version of the library. Java 1.5 is currently in beta status. For more information refer to the documentation of java.lang.Character in the JDK API.  File: libidn.info, Node: C# API, Next: Acknowledgements, Prev: Java API, Up: Top 13 C# API ********* The Libidn library has been ported to the C# language. The port reside in the top-level `csharp/' directory. Currently, no further documentation about the implementation or the API is available. However, the C# port was based on the Java port, and the API is exactly the same as in the Java version. The help files for the Java API may thus be useful.  File: libidn.info, Node: Acknowledgements, Next: History, Prev: C# API, Up: Top 14 Acknowledgements ******************* The punycode implementation was taken from the IETF IDN Punycode specification, by Adam M. Costello. The TLD code was contributed by Thomas Jacob. The Java implementation was contributed by Oliver Hitz. The C# implementation was contributed by Alexander Gnauck. The Unicode tables were provided by Unicode, Inc. Some functions for dealing with Unicode (see nfkc.c and toutf8.c) were borrowed from GLib, downloaded from `http://www.gtk.org/'. The manual borrowed text from Libgcrypt by Werner Koch. Inspiration for many things that, consciously or not, have gone into this package is due to a number of free software package that the author has been exposed to. The author wishes to acknowledge the free software community in general, for giving an example on what role software development can play in the modern society. Several people reported bugs, sent patches or suggested improvements, see the file THANKS in the top-level directory of the source code.  File: libidn.info, Node: History, Next: PR29 discussion, Prev: Acknowledgements, Up: Top 15 History ********** The complete history of user visible changes is stored in the file `NEWS' in the top-level directory of the source code tree. The complete history of modifications to each file is stored in the file `ChangeLog' in the same directory. This section contain a condensed version of that information, in the form of "milestones" for the project. Stringprep implementation. Version 0.0.0 released on 2002-11-05. IDNA and Punycode implementations, part of the GNU project. Version 0.1.0 released on 2003-01-05. Uses official IDNA ACE prefix `xn--'. Version 0.1.7 released on 2003-02-12. Command line interface. Version 0.1.11 released on 2003-02-26. GNU Libc add-on proposed. Version 0.1.12 released on 2003-03-06. Interoperability testing during IDNConnect. Version 0.3.1 released on 2003-10-02. TLD restriction testing. Version 0.4.0 released on 2004-02-28. GNU Libc add-on integrated. Version 0.4.1 released on 2004-03-08. Native Java implementation. Version 0.4.2-0.4.9 released between 2004-03-20 and 2004-06-11. PR-29 functions for "problem sequences". Version 0.5.0 released on 2004-06-26. Many small portability fixes and wider use. Version 0.5.1 through 0.5.20, released between 2004-07-09 and 2005-10-23. Native C# implementation. Version 0.6.0 released on 2005-12-03. Windows support through cross-compilation. Version 0.6.1 released on 2006-01-20. Library declared stable by releasing v1.0. Version 1.0 released on 2007-07-31.  File: libidn.info, Node: PR29 discussion, Next: On Label Separators, Prev: History, Up: Top Appendix A PR29 discussion ************************** If you wish to experiment with a modified Unicode NFKC implementation according to the PR29 proposal, you may find the following bug report useful. However, I have not verified that the suggested modifications are correct. For reference, I'm including my response to the report as well. From: Rick McGowan Subject: Possible bug and status of PR 29 change(s) To: bug-libidn@gnu.org Date: Wed, 27 Oct 2004 14:49:17 -0700 Hello. On behalf of the Unicode Consortium editorial committee, I would like to find out more information about the PR 29 fixes, if any, and functions in Libidn. Your implementation was listed in the text of PR29 as needing investigation, so I am following up on several implementations. The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new draft of UAX #15 has been issued. I have looked at Libidn 0.5.8 (today), and there may still be a possible bug in NFKC.java and nfkc.c. ------------------------------------------------------ 1. In NFKC.java, this line in canonicalOrdering(): if (i > 0 && (last_cc == 0 || last_cc != cc)) { should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc)) { but I'm not sure of the sense of this comparison. ------------------------------------------------------ 2. In nfkc.c, function _g_utf8_normalize_wc() has this code: if (i > 0 && (last_cc == 0 || last_cc != cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { This appears to have the same bug as the current Python implementation (in Python 2.3.4). The code should be checking, as per new rule D2 UAX #15 update, that the next combining character is the same or HIGHER than the current one. It now checks to see if it's non-zero and not equal. The above line(s) should perhaps be changed to: if (i > 0 && (last_cc == 0 || last_cc < cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { but I'm not sure of the sense of the comparison (< or > or <=?) here. In the text of PR29, I will be marking Libidn as "needs change" and adding the version number that I checked. If any further change is made, please let me know the release version, and I'll update again. Regards, Rick McGowan From: Simon Josefsson Subject: Re: Possible bug and status of PR 29 change(s) To: Rick McGowan Cc: bug-libidn@gnu.org Date: Thu, 28 Oct 2004 09:47:47 +0200 Rick McGowan writes: > Hello. On behalf of the Unicode Consortium editorial committee, I would > like to find out more information about the PR 29 fixes, if any, and > functions in Libidn. Your implementation was listed in the text of PR29 as > needing investigation, so I am following up on several implementations. > > The UTC has accepted the proposed fix to D2 as outlined in PR29, and a new > draft of UAX #15 has been issued. > > I have looked at Libidn 0.5.8 (today), and there may still be a possible > bug in NFKC.java and nfkc.c. Hello Rick. I believe the current behavior is intentional. Libidn do not aim to implement latest-and-greatest NFKC, it aim to implement the NFKC functionality required for StringPrep and IDN. As you may know, StringPrep/IDN reference Unicode 3.2.0, and explicitly says any later changes (which I consider PR29 as) do not apply. In fact, I believe that would I incorporate the changes suggested in PR29, I would in fact be violating the IDN specifications. Thanks for looking into the code and finding the place where the change could be made. I'll see if I can mention this in the manual somewhere, for technically interested readers. Regards, Simon  File: libidn.info, Node: On Label Separators, Next: Copying Information, Prev: PR29 discussion, Up: Top Appendix B On Label Separators ****************************** Some strings contains characters whose NFKC normalized form contain the ASCII dot (0x2E, "."). Examples of these characters are U+2024 (ONE DOT LEADER) and U+248C (DIGIT FIVE FULL STOP). The strings have the interesting property that their IDNA ToASCII output will contain embedded dots. For example: ToASCII (hi U+248C com) = hi5.com ToASCII (räksmörgås U+2024 com) = xn--rksmrgs.com-l8as9u This demonstrate the two general cases: The first where the ASCII dot is part of an output that do not begin with the IDN prefix `xn--'. The second example illustrate when the dot is part of IDN prefixed with `xn--'. The input strings are, from the DNS point of view, a single label. The IDNA algorithm translate one label at a time. Thus, the output is expected to be only one label. What is important here is to make sure the DNS resolver receives the correct query. The DNS protocol does not use the dot to delimit labels on the wire, rather it uses length-value pairs. Thus the correct query would be for `{7}hi5.com' and `{22}xn--rksmrgs.com-l8as9u' respectively. Some implementations (1) have decided that these inputs strings are potentially confusing for the user. The string `hi U+248C com' looks like `hi5.com' on systems that support Unicode properly. These implementations do not follow RFC 3490. They yield: ToASCII (hi U+248C com) = hi5.com ToASCII (räksmörgås U+2024 com) = xn--rksmrgs-5wao1o.com The DNS query they perform are `{3}hi5{3}com' and `{18}xn--rksmrgs-5wao1o{3}com' respectively. Arguably, this leads to a better user experience, and suggests that the IDNA specification is sub-optimal in this area. B.1 Recommended Workaround ========================== It has been suggested to normalize the entire input string using NFKC before passing it to IDNA ToASCII. You may use `stringprep_utf8_nfkc_normalize' or `stringprep_ucs4_nfkc_normalize'. This appears to lead to similar behaviour as IE/Firefox, which would avoid the problem, but this needs to be confirmed. Feel free to discuss the issue with us. Alternative workarounds are being considered. Eventually Libidn may implement a new flag to the `idna_*' functions that implements a recommended way to work around this problem. ---------- Footnotes ---------- (1) Notably Microsoft's Internet Explorer and Mozilla's Firefox, but not Apple's Safari.  File: libidn.info, Node: Copying Information, Next: Function and Variable Index, Prev: On Label Separators, Up: Top Appendix C Copying Information ****************************** * Menu: * GNU Free Documentation License:: License for copying this manual.  File: libidn.info, Node: GNU Free Documentation License, Up: Copying Information C.1 GNU Free Documentation License ================================== Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. `http://fsf.org/' Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See `http://www.gnu.org/copyleft/'. Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING "Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site. "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. "Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents ==================================================== To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.  File: libidn.info, Node: Function and Variable Index, Next: Concept Index, Prev: Copying Information, Up: Top Function and Variable Index *************************** [index] * Menu: * idn_free: Memory handling under Windows. (line 31) * idna-to-ascii: Emacs API. (line 65) * idna-to-unicode: Emacs API. (line 70) * idna_strerror: IDNA Functions. (line 311) * idna_to_ascii_4i: IDNA Functions. (line 69) * idna_to_ascii_4z: IDNA Functions. (line 153) * idna_to_ascii_8z: IDNA Functions. (line 171) * idna_to_ascii_lz: IDNA Functions. (line 189) * idna_to_unicode_44i: IDNA Functions. (line 107) * idna_to_unicode_4z4z: IDNA Functions. (line 211) * idna_to_unicode_8z4z: IDNA Functions. (line 230) * idna_to_unicode_8z8z: IDNA Functions. (line 249) * idna_to_unicode_8zlz: IDNA Functions. (line 268) * idna_to_unicode_lzlz: IDNA Functions. (line 288) * pr29_4: PR29 Functions. (line 55) * pr29_4z: PR29 Functions. (line 75) * pr29_8z: PR29 Functions. (line 90) * pr29_strerror: PR29 Functions. (line 109) * punycode-decode: Emacs API. (line 39) * punycode-encode: Emacs API. (line 35) * punycode_decode: Punycode Functions. (line 96) * punycode_encode: Punycode Functions. (line 51) * punycode_strerror: Punycode Functions. (line 140) * stringprep: Stringprep Functions. (line 127) * stringprep_4i: Stringprep Functions. (line 57) * stringprep_4zi: Stringprep Functions. (line 96) * stringprep_check_version: Version Check. (line 17) * stringprep_convert: Utility Functions. (line 163) * stringprep_iscsi: Stringprep Functions. (line 254) * stringprep_locale_charset: Utility Functions. (line 141) * stringprep_locale_to_utf8: Utility Functions. (line 179) * stringprep_nameprep_no_unassigned: Stringprep Functions. (line 245) * stringprep_plain: Stringprep Functions. (line 262) * stringprep_profile: Stringprep Functions. (line 161) * stringprep_strerror: Stringprep Functions. (line 194) * stringprep_ucs4_nfkc_normalize: Utility Functions. (line 98) * stringprep_ucs4_to_utf8: Utility Functions. (line 52) * stringprep_unichar_to_utf8: Utility Functions. (line 25) * stringprep_utf8_nfkc_normalize: Utility Functions. (line 113) * stringprep_utf8_to_locale: Utility Functions. (line 191) * stringprep_utf8_to_ucs4: Utility Functions. (line 75) * stringprep_utf8_to_unichar: Utility Functions. (line 39) * stringprep_xmpp_nodeprep: Stringprep Functions. (line 270) * stringprep_xmpp_resourceprep: Stringprep Functions. (line 278) * tld_check_4: TLD Functions. (line 177) * tld_check_4t: TLD Functions. (line 44) * tld_check_4tz: TLD Functions. (line 68) * tld_check_4z: TLD Functions. (line 206) * tld_check_8z: TLD Functions. (line 232) * tld_check_lz: TLD Functions. (line 260) * tld_default_table: TLD Functions. (line 156) * tld_get_4: TLD Functions. (line 92) * tld_get_4z: TLD Functions. (line 109) * tld_get_table: TLD Functions. (line 139) * tld_get_z: TLD Functions. (line 123) * tld_strerror: TLD Functions. (line 291)  File: libidn.info, Node: Concept Index, Prev: Function and Variable Index, Up: Top Concept Index ************* [index] * Menu: * AIX: Supported Platforms. (line 74) * ARM: Supported Platforms. (line 128) * Autoconf tests: Autoconf tests. (line 6) * command line: Invoking idn. (line 6) * Compiling your application: Building the source. (line 6) * Configure tests: Autoconf tests. (line 6) * Contributing: Contributing. (line 7) * de-allocation: Memory handling under Windows. (line 6) * Debian: Supported Platforms. (line 10) * Download: Downloading and Installing. (line 6) * Examples: Examples. (line 6) * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * free: Memory handling under Windows. (line 6) * FreeBSD: Supported Platforms. (line 110) * Hacking: Contributing. (line 7) * heap memory: Memory handling under Windows. (line 6) * HP-UX: Supported Platforms. (line 82) * IBM: Supported Platforms. (line 136) * idn: Invoking idn. (line 6) * IDNA Functions: IDNA Functions. (line 6) * Installation: Downloading and Installing. (line 6) * invoking idn: Invoking idn. (line 6) * IRIX: Supported Platforms. (line 70) * MacOS X: Supported Platforms. (line 116) * Mandrake: Supported Platforms. (line 66) * Memory handling: Memory handling under Windows. (line 6) * Microsoft: Supported Platforms. (line 132) * mingw32: Supported Platforms. (line 132) * Motorola Coldfire: Supported Platforms. (line 124) * NetBSD: Supported Platforms. (line 100) * OpenBSD: Supported Platforms. (line 105) * OpenPower 720: Supported Platforms. (line 45) * OS/2: Supported Platforms. (line 136) * PR29 Functions: PR29 Functions. (line 6) * Punycode Functions: Punycode Functions. (line 6) * RedHat: Supported Platforms. (line 49) * RedHat Advanced Server: Supported Platforms. (line 58) * Reporting Bugs: Bug Reports. (line 6) * Solaris: Supported Platforms. (line 87) * Stringprep Functions: Stringprep Functions. (line 6) * SuSE: Supported Platforms. (line 31) * SuSE Linux: Supported Platforms. (line 36) * TLD Functions: TLD Functions. (line 6) * Tru64: Supported Platforms. (line 26) * uClibc: Supported Platforms. (line 124) * uClinux: Supported Platforms. (line 124) * Utility Functions: Utility Functions. (line 6) * Windows: Supported Platforms. (line 78)  Tag Table: Node: Top1017 Node: Introduction2717 Node: Getting Started5025 Node: Features6132 Node: Library Overview7473 Node: Supported Platforms8271 Node: Getting help11843 Node: Commercial Support12306 Node: Downloading and Installing13240 Node: Installing under Windows15530 Node: Bug Reports16916 Node: Contributing18306 Node: Preparation20278 Node: Header20992 Node: Initialization24007 Node: Version Check24204 Ref: stringprep_check_version24739 Node: Building the source25704 Node: Autoconf tests27564 Node: Memory handling under Windows29930 Ref: idn_free30878 Node: Utility Functions31414 Ref: stringprep_unichar_to_utf832078 Ref: stringprep_utf8_to_unichar32502 Ref: stringprep_ucs4_to_utf832890 Ref: stringprep_utf8_to_ucs433752 Ref: stringprep_ucs4_nfkc_normalize34505 Ref: stringprep_utf8_nfkc_normalize34987 Ref: stringprep_locale_charset36145 Ref: stringprep_convert37178 Ref: stringprep_locale_to_utf837734 Ref: stringprep_utf8_to_locale38114 Node: Stringprep Functions38462 Ref: stringprep_4i40373 Ref: stringprep_4zi41961 Ref: stringprep43173 Ref: stringprep_profile44498 Ref: stringprep_strerror45605 Node: Punycode Functions49204 Ref: punycode_encode50943 Ref: punycode_decode53138 Ref: punycode_strerror55250 Node: IDNA Functions56012 Ref: idna_to_ascii_4i58577 Ref: idna_to_unicode_44i60207 Ref: idna_to_ascii_4z62173 Ref: idna_to_ascii_8z62764 Ref: idna_to_ascii_lz63349 Ref: idna_to_unicode_4z4z64077 Ref: idna_to_unicode_8z4z64726 Ref: idna_to_unicode_8z8z65369 Ref: idna_to_unicode_8zlz66006 Ref: idna_to_unicode_lzlz66728 Ref: idna_strerror67533 Node: TLD Functions69150 Ref: tld_check_4t70790 Ref: tld_check_4tz71690 Ref: tld_get_472544 Ref: tld_get_4z73050 Ref: tld_get_z73461 Ref: tld_get_table73959 Ref: tld_default_table74492 Ref: tld_check_475217 Ref: tld_check_4z76466 Ref: tld_check_8z77632 Ref: tld_check_lz78899 Ref: tld_strerror80237 Node: PR29 Functions81060 Ref: pr29_483348 Ref: pr29_4z83979 Ref: pr29_8z84503 Ref: pr29_strerror85162 Node: Examples85873 Node: Example 186322 Node: Example 288901 Node: Example 395520 Node: Example 498062 Node: Example 5100613 Node: Invoking idn104098 Node: Emacs API111420 Node: Java API114177 Node: C# API119307 Node: Acknowledgements119772 Node: History120874 Node: PR29 discussion122518 Node: On Label Separators126386 Ref: On Label Separators-Footnote-1128860 Node: Copying Information128953 Node: GNU Free Documentation License129219 Node: Function and Variable Index154352 Node: Concept Index159338  End Tag Table  Local Variables: coding: utf-8 End: libidn-1.28/doc/Makefile.in0000644000000000000000000026044712167245610012427 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # -*- makefile -*- # Copyright (C) 2002-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # This file is automatically generated. DO NOT EDIT! -*- makefile -*- VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @ENABLE_GTK_DOC_TRUE@am__append_1 = . reference DIST_COMMON = $(srcdir)/gdoc.mk $(srcdir)/Makefile.gdoc \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am $(libidn_TEXINFOS) \ $(top_srcdir)/build-aux/mdate-sh $(srcdir)/version.texi \ $(srcdir)/stamp-vti $(top_srcdir)/build-aux/texinfo.tex \ $(dist_man_MANS) subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = AM_V_DVIPS = $(am__v_DVIPS_@AM_V@) am__v_DVIPS_ = $(am__v_DVIPS_@AM_DEFAULT_V@) am__v_DVIPS_0 = @echo " DVIPS " $@; am__v_DVIPS_1 = AM_V_MAKEINFO = $(am__v_MAKEINFO_@AM_V@) am__v_MAKEINFO_ = $(am__v_MAKEINFO_@AM_DEFAULT_V@) am__v_MAKEINFO_0 = @echo " MAKEINFO" $@; am__v_MAKEINFO_1 = AM_V_INFOHTML = $(am__v_INFOHTML_@AM_V@) am__v_INFOHTML_ = $(am__v_INFOHTML_@AM_DEFAULT_V@) am__v_INFOHTML_0 = @echo " INFOHTML" $@; am__v_INFOHTML_1 = AM_V_TEXI2DVI = $(am__v_TEXI2DVI_@AM_V@) am__v_TEXI2DVI_ = $(am__v_TEXI2DVI_@AM_DEFAULT_V@) am__v_TEXI2DVI_0 = @echo " TEXI2DVI" $@; am__v_TEXI2DVI_1 = AM_V_TEXI2PDF = $(am__v_TEXI2PDF_@AM_V@) am__v_TEXI2PDF_ = $(am__v_TEXI2PDF_@AM_DEFAULT_V@) am__v_TEXI2PDF_0 = @echo " TEXI2PDF" $@; am__v_TEXI2PDF_1 = AM_V_texinfo = $(am__v_texinfo_@AM_V@) am__v_texinfo_ = $(am__v_texinfo_@AM_DEFAULT_V@) am__v_texinfo_0 = -q am__v_texinfo_1 = AM_V_texidevnull = $(am__v_texidevnull_@AM_V@) am__v_texidevnull_ = $(am__v_texidevnull_@AM_DEFAULT_V@) am__v_texidevnull_0 = > /dev/null am__v_texidevnull_1 = INFO_DEPS = $(srcdir)/libidn.info TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux DVIS = libidn.dvi PDFS = libidn.pdf PSS = libidn.ps HTMLS = libidn.html TEXINFOS = libidn.texi TEXI2PDF = $(TEXI2DVI) --pdf --batch MAKEINFOHTML = $(MAKEINFO) --html DVIPS = dvips RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \ "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(imagesdir)" am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } man1dir = $(mandir)/man1 man3dir = $(mandir)/man3 NROFF = nroff MANS = $(dist_man_MANS) DATA = $(images_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = specifications tld java cyclo . reference DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = specifications tld java cyclo $(am__append_1) EXTRA_DIST = gdoc libidn.html libidn.ps libidn.pdf texinfo.css \ components.fig info_TEXINFOS = libidn.texi libidn_TEXINFOS = fdl-1.3.texi $(gdoc_TEXINFOS) libidn-components.eps \ libidn-components.png libidn-components.pdf imagesdir = $(infodir) images_DATA = libidn-components.png AM_MAKEINFOFLAGS = -I $(top_builddir)/doc -I $(top_srcdir)/examples TEXI2DVI = texi2dvi $(AM_MAKEINFOFLAGS) AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS) \ --no-split --number-sections --css-include=texinfo.css # Man pages. dist_man_MANS = idn.1 $(gdoc_MANS) MAINTAINERCLEANFILES = $(dist_man_MANS) # GDOC GDOC_BIN = $(srcdir)/gdoc GDOC_SRC = $(top_srcdir)/lib/idna.c $(top_srcdir)/lib/nfkc.c \ $(top_srcdir)/lib/pr29.c $(top_srcdir)/lib/punycode.c \ $(top_srcdir)/lib/stringprep.c $(top_srcdir)/lib/tld.c \ $(top_srcdir)/lib/toutf8.c $(top_srcdir)/lib/version.c \ $(top_srcdir)/lib/idn-free.c \ $(top_srcdir)/lib/strerror-idna.c $(top_srcdir)/lib/strerror-pr29.c \ $(top_srcdir)/lib/strerror-punycode.c \ $(top_srcdir)/lib/strerror-stringprep.c \ $(top_srcdir)/lib/strerror-tld.c GDOC_TEXI_PREFIX = texi/ GDOC_MAN_PREFIX = man/ GDOC_MAN_EXTRA_ARGS = -module $(PACKAGE) -sourceversion $(VERSION) \ -bugsto $(PACKAGE_BUGREPORT) -pkg-name "$(PACKAGE_NAME)" \ -includefuncprefix -seeinfo $(PACKAGE) \ -copyright "2002-2013 Simon Josefsson" \ -verbatimcopying BUILT_SOURCES = Makefile.gdoc # ### idna.c # # idna.c: idna_to_ascii_4i # idna.c: idna_to_unicode_44i # idna.c: idna_to_ascii_4z # idna.c: idna_to_ascii_8z # idna.c: idna_to_ascii_lz # idna.c: idna_to_unicode_4z4z # idna.c: idna_to_unicode_8z4z # idna.c: idna_to_unicode_8z8z # idna.c: idna_to_unicode_8zlz # idna.c: idna_to_unicode_lzlz # ### nfkc.c # # nfkc.c: stringprep_utf8_to_unichar # nfkc.c: stringprep_unichar_to_utf8 # nfkc.c: stringprep_utf8_to_ucs4 # nfkc.c: stringprep_ucs4_to_utf8 # nfkc.c: stringprep_utf8_nfkc_normalize # nfkc.c: stringprep_ucs4_nfkc_normalize # ### pr29.c # # pr29.c: pr29_4 # pr29.c: pr29_4z # pr29.c: pr29_8z # ### punycode.c # # punycode.c: punycode_encode # punycode.c: punycode_decode # ### stringprep.c # # stringprep.c: stringprep_4i # stringprep.c: stringprep_4zi # stringprep.c: stringprep # stringprep.c: stringprep_profile # ### tld.c # # tld.c: tld_get_table # tld.c: tld_default_table # tld.c: tld_get_4 # tld.c: tld_get_4z # tld.c: tld_get_z # tld.c: tld_check_4t # tld.c: tld_check_4tz # tld.c: tld_check_4 # tld.c: tld_check_4z # tld.c: tld_check_8z # tld.c: tld_check_lz # ### toutf8.c # # toutf8.c: stringprep_locale_charset # toutf8.c: stringprep_convert # toutf8.c: stringprep_locale_to_utf8 # toutf8.c: stringprep_utf8_to_locale # ### version.c # # version.c: stringprep_check_version # ### idn-free.c # # idn-free.c: idn_free # ### strerror-idna.c # # strerror-idna.c: idna_strerror # ### strerror-pr29.c # # strerror-pr29.c: pr29_strerror # ### strerror-punycode.c # # strerror-punycode.c: punycode_strerror # ### strerror-stringprep.c # # strerror-stringprep.c: stringprep_strerror # ### strerror-tld.c # # strerror-tld.c: tld_strerror gdoc_TEXINFOS = texi/idna.c.texi texi/idna_to_ascii_4i.texi \ texi/idna_to_unicode_44i.texi texi/idna_to_ascii_4z.texi \ texi/idna_to_ascii_8z.texi texi/idna_to_ascii_lz.texi \ texi/idna_to_unicode_4z4z.texi texi/idna_to_unicode_8z4z.texi \ texi/idna_to_unicode_8z8z.texi texi/idna_to_unicode_8zlz.texi \ texi/idna_to_unicode_lzlz.texi texi/nfkc.c.texi \ texi/stringprep_utf8_to_unichar.texi \ texi/stringprep_unichar_to_utf8.texi \ texi/stringprep_utf8_to_ucs4.texi \ texi/stringprep_ucs4_to_utf8.texi \ texi/stringprep_utf8_nfkc_normalize.texi \ texi/stringprep_ucs4_nfkc_normalize.texi texi/pr29.c.texi \ texi/pr29_4.texi texi/pr29_4z.texi texi/pr29_8z.texi \ texi/punycode.c.texi texi/punycode_encode.texi \ texi/punycode_decode.texi texi/stringprep.c.texi \ texi/stringprep_4i.texi texi/stringprep_4zi.texi \ texi/stringprep.texi texi/stringprep_profile.texi \ texi/tld.c.texi texi/tld_get_table.texi \ texi/tld_default_table.texi texi/tld_get_4.texi \ texi/tld_get_4z.texi texi/tld_get_z.texi \ texi/tld_check_4t.texi texi/tld_check_4tz.texi \ texi/tld_check_4.texi texi/tld_check_4z.texi \ texi/tld_check_8z.texi texi/tld_check_lz.texi \ texi/toutf8.c.texi texi/stringprep_locale_charset.texi \ texi/stringprep_convert.texi \ texi/stringprep_locale_to_utf8.texi \ texi/stringprep_utf8_to_locale.texi texi/version.c.texi \ texi/stringprep_check_version.texi texi/idn-free.c.texi \ texi/idn_free.texi texi/strerror-idna.c.texi \ texi/idna_strerror.texi texi/strerror-pr29.c.texi \ texi/pr29_strerror.texi texi/strerror-punycode.c.texi \ texi/punycode_strerror.texi texi/strerror-stringprep.c.texi \ texi/stringprep_strerror.texi texi/strerror-tld.c.texi \ texi/tld_strerror.texi gdoc_MANS = man/idna_to_ascii_4i.3 man/idna_to_unicode_44i.3 \ man/idna_to_ascii_4z.3 man/idna_to_ascii_8z.3 \ man/idna_to_ascii_lz.3 man/idna_to_unicode_4z4z.3 \ man/idna_to_unicode_8z4z.3 man/idna_to_unicode_8z8z.3 \ man/idna_to_unicode_8zlz.3 man/idna_to_unicode_lzlz.3 \ man/stringprep_utf8_to_unichar.3 \ man/stringprep_unichar_to_utf8.3 man/stringprep_utf8_to_ucs4.3 \ man/stringprep_ucs4_to_utf8.3 \ man/stringprep_utf8_nfkc_normalize.3 \ man/stringprep_ucs4_nfkc_normalize.3 man/pr29_4.3 \ man/pr29_4z.3 man/pr29_8z.3 man/punycode_encode.3 \ man/punycode_decode.3 man/stringprep_4i.3 man/stringprep_4zi.3 \ man/stringprep.3 man/stringprep_profile.3 man/tld_get_table.3 \ man/tld_default_table.3 man/tld_get_4.3 man/tld_get_4z.3 \ man/tld_get_z.3 man/tld_check_4t.3 man/tld_check_4tz.3 \ man/tld_check_4.3 man/tld_check_4z.3 man/tld_check_8z.3 \ man/tld_check_lz.3 man/stringprep_locale_charset.3 \ man/stringprep_convert.3 man/stringprep_locale_to_utf8.3 \ man/stringprep_utf8_to_locale.3 man/stringprep_check_version.3 \ man/idn_free.3 man/idna_strerror.3 man/pr29_strerror.3 \ man/punycode_strerror.3 man/stringprep_strerror.3 \ man/tld_strerror.3 all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .dvi .html .info .pdf .ps .texi $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/gdoc.mk $(srcdir)/Makefile.gdoc $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(srcdir)/gdoc.mk $(srcdir)/Makefile.gdoc: $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs .texi.info: $(AM_V_MAKEINFO)restore=: && backupdir="$(am__leading_dot)am$$$$" && \ am__cwd=`pwd` && $(am__cd) $(srcdir) && \ rm -rf $$backupdir && mkdir $$backupdir && \ if ($(MAKEINFO) --version) >/dev/null 2>&1; then \ for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \ done; \ else :; fi && \ cd "$$am__cwd"; \ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $@ $<; \ then \ rc=0; \ $(am__cd) $(srcdir); \ else \ rc=$$?; \ $(am__cd) $(srcdir) && \ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \ fi; \ rm -rf $$backupdir; exit $$rc .texi.dvi: $(AM_V_TEXI2DVI)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2DVI) $(AM_V_texinfo) --build-dir=$(@:.dvi=.t2d) -o $@ $(AM_V_texidevnull) \ $< .texi.pdf: $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \ $(TEXI2PDF) $(AM_V_texinfo) --build-dir=$(@:.pdf=.t2p) -o $@ $(AM_V_texidevnull) \ $< .texi.html: $(AM_V_MAKEINFO)rm -rf $(@:.html=.htp) $(AM_V_at)if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \ -o $(@:.html=.htp) $<; \ then \ rm -rf $@ && mv $(@:.html=.htp) $@; \ else \ rm -rf $(@:.html=.htp); exit 1; \ fi $(srcdir)/libidn.info: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) libidn.dvi: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) libidn.pdf: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) libidn.html: libidn.texi $(srcdir)/version.texi $(libidn_TEXINFOS) $(srcdir)/version.texi: $(srcdir)/stamp-vti $(srcdir)/stamp-vti: libidn.texi $(top_srcdir)/configure @(dir=.; test -f ./libidn.texi || dir=$(srcdir); \ set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/libidn.texi`; \ echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ echo "@set VERSION $(VERSION)") > vti.tmp @cmp -s vti.tmp $(srcdir)/version.texi \ || (echo "Updating $(srcdir)/version.texi"; \ cp vti.tmp $(srcdir)/version.texi) -@rm -f vti.tmp @cp $(srcdir)/version.texi $@ mostlyclean-vti: -rm -f vti.tmp maintainer-clean-vti: -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi .dvi.ps: $(AM_V_DVIPS)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ $(DVIPS) $(AM_V_texinfo) -o $@ $< uninstall-dvi-am: @$(NORMAL_UNINSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(dvidir)/$$f'"; \ rm -f "$(DESTDIR)$(dvidir)/$$f"; \ done uninstall-html-am: @$(NORMAL_UNINSTALL) @list='$(HTMLS)'; test -n "$(htmldir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \ done uninstall-info-am: @$(PRE_UNINSTALL) @if test -d '$(DESTDIR)$(infodir)' && $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \ if install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \ then :; else test ! -f "$(DESTDIR)$(infodir)/$$relfile" || exit 1; fi; \ done; \ else :; fi @$(NORMAL_UNINSTALL) @list='$(INFO_DEPS)'; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \ else :; fi); \ done uninstall-pdf-am: @$(NORMAL_UNINSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(pdfdir)/$$f'"; \ rm -f "$(DESTDIR)$(pdfdir)/$$f"; \ done uninstall-ps-am: @$(NORMAL_UNINSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \ rm -f "$(DESTDIR)$(psdir)/$$f"; \ done dist-info: $(INFO_DEPS) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; \ for base in $$list; do \ case $$base in \ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$base; then d=.; else d=$(srcdir); fi; \ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \ for file in $$d/$$base $$d/$$base-[0-9] $$d/$$base-[0-9][0-9] $$d/$$base_i[0-9] $$d/$$base_i[0-9][0-9]; do \ if test -f $$file; then \ relfile=`expr "$$file" : "$$d/\(.*\)"`; \ test -f "$(distdir)/$$relfile" || \ cp -p $$file "$(distdir)/$$relfile"; \ else :; fi; \ done; \ done mostlyclean-aminfo: -rm -rf libidn.t2d libidn.t2p clean-aminfo: -test -z "libidn.dvi libidn.pdf libidn.ps libidn.html" \ || rm -rf libidn.dvi libidn.pdf libidn.ps libidn.html maintainer-clean-aminfo: @list='$(INFO_DEPS)'; for i in $$list; do \ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \ done install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_man_MANS)'; \ test -n "$(man1dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.1[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ done; } uninstall-man1: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man1dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.1[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) install-man3: $(dist_man_MANS) @$(NORMAL_INSTALL) @list1=''; \ list2='$(dist_man_MANS)'; \ test -n "$(man3dir)" \ && test -n "`echo $$list1$$list2`" \ || exit 0; \ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ { for i in $$list1; do echo "$$i"; done; \ if test -n "$$list2"; then \ for i in $$list2; do echo "$$i"; done \ | sed -n '/\.3[a-z]*$$/p'; \ fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ done | \ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ sed 'N;N;s,\n, ,g' | { \ list=; while read file base inst; do \ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ fi; \ done; \ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ while read files; do \ test -z "$$files" || { \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ done; } uninstall-man3: @$(NORMAL_UNINSTALL) @list=''; test -n "$(man3dir)" || exit 0; \ files=`{ for i in $$list; do echo "$$i"; done; \ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ sed -n '/\.3[a-z]*$$/p'; \ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) install-imagesDATA: $(images_DATA) @$(NORMAL_INSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \ done uninstall-imagesDATA: @$(NORMAL_UNINSTALL) @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$(top_distdir)" distdir="$(distdir)" \ dist-info check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(INFO_DEPS) $(MANS) $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(imagesdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-aminfo clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: $(DVIS) html: html-recursive html-am: $(HTMLS) info: info-recursive info-am: $(INFO_DEPS) install-data-am: install-imagesDATA install-info-am install-man install-dvi: install-dvi-recursive install-dvi-am: $(DVIS) @$(NORMAL_INSTALL) @list='$(DVIS)'; test -n "$(dvidir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(dvidir)'"; \ $(MKDIR_P) "$(DESTDIR)$(dvidir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(dvidir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(dvidir)" || exit $$?; \ done install-exec-am: install-html: install-html-recursive install-html-am: $(HTMLS) @$(NORMAL_INSTALL) @list='$(HTMLS)'; list2=; test -n "$(htmldir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p" || test -d "$$p"; then d=; else d="$(srcdir)/"; fi; \ $(am__strip_dir) \ d2=$$d$$p; \ if test -d "$$d2"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(htmldir)/$$f'"; \ $(MKDIR_P) "$(DESTDIR)$(htmldir)/$$f" || exit 1; \ echo " $(INSTALL_DATA) '$$d2'/* '$(DESTDIR)$(htmldir)/$$f'"; \ $(INSTALL_DATA) "$$d2"/* "$(DESTDIR)$(htmldir)/$$f" || exit $$?; \ else \ list2="$$list2 $$d2"; \ fi; \ done; \ test -z "$$list2" || { echo "$$list2" | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(htmldir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(htmldir)" || exit $$?; \ done; } install-info: install-info-recursive install-info-am: $(INFO_DEPS) @$(NORMAL_INSTALL) @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(infodir)'"; \ $(MKDIR_P) "$(DESTDIR)$(infodir)" || exit 1; \ fi; \ for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ esac; \ if test -f $$file; then d=.; else d=$(srcdir); fi; \ file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \ for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \ $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \ if test -f $$ifile; then \ echo "$$ifile"; \ else : ; fi; \ done; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(infodir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(infodir)" || exit $$?; done @$(POST_INSTALL) @if $(am__can_run_installinfo); then \ list='$(INFO_DEPS)'; test -n "$(infodir)" || list=; \ for file in $$list; do \ relfile=`echo "$$file" | sed 's|^.*/||'`; \ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\ done; \ else : ; fi install-man: install-man1 install-man3 install-pdf: install-pdf-recursive install-pdf-am: $(PDFS) @$(NORMAL_INSTALL) @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pdfdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pdfdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pdfdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pdfdir)" || exit $$?; done install-ps: install-ps-recursive install-ps-am: $(PSS) @$(NORMAL_INSTALL) @list='$(PSS)'; test -n "$(psdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(psdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(psdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(psdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(psdir)" || exit $$?; done installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-aminfo \ maintainer-clean-generic maintainer-clean-vti mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ mostlyclean-libtool mostlyclean-vti pdf: pdf-recursive pdf-am: $(PDFS) ps: ps-recursive ps-am: $(PSS) uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-imagesDATA \ uninstall-info-am uninstall-man uninstall-pdf-am \ uninstall-ps-am uninstall-man: uninstall-man1 uninstall-man3 .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-aminfo clean-generic clean-libtool \ cscopelist-am ctags ctags-am dist-info distclean \ distclean-generic distclean-libtool distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-imagesDATA install-info install-info-am install-man \ install-man1 install-man3 install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-aminfo maintainer-clean-generic \ maintainer-clean-vti mostlyclean mostlyclean-aminfo \ mostlyclean-generic mostlyclean-libtool mostlyclean-vti pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-dvi-am uninstall-html-am uninstall-imagesDATA \ uninstall-info-am uninstall-man uninstall-man1 uninstall-man3 \ uninstall-pdf-am uninstall-ps-am libidn-components.eps: components.fig fig2dev -L eps $< $@ libidn-components.png: components.fig fig2dev -L png $< $@ libidn-components.pdf: components.fig fig2dev -L pdf $< $@ idn.1: $(top_srcdir)/src/idn.c $(top_srcdir)/src/idn.ggo \ $(top_srcdir)/configure.ac $(HELP2MAN) \ --name="Internationalized Domain Names command line tool" \ --output=$@ $(top_builddir)/src/idn$(EXEEXT) Makefile.gdoc: $(top_builddir)/configure Makefile.am gdoc.mk $(GDOC_SRC) echo '# This file is automatically generated. DO NOT EDIT! -*- makefile -*-' > Makefile.gdoc echo >> Makefile.gdoc echo 'gdoc_TEXINFOS =' >> Makefile.gdoc echo 'gdoc_MANS =' >> Makefile.gdoc echo >> Makefile.gdoc for file in $(GDOC_SRC); do \ shortfile=`basename $$file`; \ echo "#" >> Makefile.gdoc; \ echo "### $$shortfile" >> Makefile.gdoc; \ echo "#" >> Makefile.gdoc; \ echo "gdoc_TEXINFOS += $(GDOC_TEXI_PREFIX)$$shortfile.texi" >> Makefile.gdoc; \ echo "$(GDOC_TEXI_PREFIX)$$shortfile.texi: $$file" >> Makefile.gdoc; \ echo 'TABmkdir -p `dirname $$@`' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo 'TAB$$(PERL) $(GDOC_BIN) -texinfo $$(GDOC_TEXI_EXTRA_ARGS) $$< > $$@' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo >> Makefile.gdoc; \ functions=`$(PERL) $(srcdir)/gdoc -listfunc $$file`; \ for function in $$functions; do \ echo "# $$shortfile: $$function" >> Makefile.gdoc; \ echo "gdoc_TEXINFOS += $(GDOC_TEXI_PREFIX)$$function.texi" >> Makefile.gdoc; \ echo "$(GDOC_TEXI_PREFIX)$$function.texi: $$file" >> Makefile.gdoc; \ echo 'TABmkdir -p `dirname $$@`' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo 'TAB$$(PERL) $(GDOC_BIN) -texinfo $$(GDOC_TEXI_EXTRA_ARGS) -function'" $$function"' $$< > $$@' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo >> Makefile.gdoc; \ echo "gdoc_MANS += $(GDOC_MAN_PREFIX)$$function.3" >> Makefile.gdoc; \ echo "$(GDOC_MAN_PREFIX)$$function.3: $$file" >> Makefile.gdoc; \ echo 'TABmkdir -p `dirname $$@`' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo 'TAB$$(PERL) $(GDOC_BIN) -man $$(GDOC_MAN_EXTRA_ARGS) -function'" $$function"' $$< > $$@' | sed "s/TAB/ /" >> Makefile.gdoc; \ echo >> Makefile.gdoc; \ done; \ echo >> Makefile.gdoc; \ done $(MAKE) Makefile texi/idna.c.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/idna_to_ascii_4i.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_4i $< > $@ man/idna_to_ascii_4i.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_4i $< > $@ texi/idna_to_unicode_44i.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_44i $< > $@ man/idna_to_unicode_44i.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_44i $< > $@ texi/idna_to_ascii_4z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_4z $< > $@ man/idna_to_ascii_4z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_4z $< > $@ texi/idna_to_ascii_8z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_8z $< > $@ man/idna_to_ascii_8z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_8z $< > $@ texi/idna_to_ascii_lz.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_ascii_lz $< > $@ man/idna_to_ascii_lz.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_ascii_lz $< > $@ texi/idna_to_unicode_4z4z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_4z4z $< > $@ man/idna_to_unicode_4z4z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_4z4z $< > $@ texi/idna_to_unicode_8z4z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_8z4z $< > $@ man/idna_to_unicode_8z4z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_8z4z $< > $@ texi/idna_to_unicode_8z8z.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_8z8z $< > $@ man/idna_to_unicode_8z8z.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_8z8z $< > $@ texi/idna_to_unicode_8zlz.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_8zlz $< > $@ man/idna_to_unicode_8zlz.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_8zlz $< > $@ texi/idna_to_unicode_lzlz.texi: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_to_unicode_lzlz $< > $@ man/idna_to_unicode_lzlz.3: ../lib/idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_to_unicode_lzlz $< > $@ texi/nfkc.c.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/stringprep_utf8_to_unichar.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_to_unichar $< > $@ man/stringprep_utf8_to_unichar.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_to_unichar $< > $@ texi/stringprep_unichar_to_utf8.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_unichar_to_utf8 $< > $@ man/stringprep_unichar_to_utf8.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_unichar_to_utf8 $< > $@ texi/stringprep_utf8_to_ucs4.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_to_ucs4 $< > $@ man/stringprep_utf8_to_ucs4.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_to_ucs4 $< > $@ texi/stringprep_ucs4_to_utf8.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_ucs4_to_utf8 $< > $@ man/stringprep_ucs4_to_utf8.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_ucs4_to_utf8 $< > $@ texi/stringprep_utf8_nfkc_normalize.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_nfkc_normalize $< > $@ man/stringprep_utf8_nfkc_normalize.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_nfkc_normalize $< > $@ texi/stringprep_ucs4_nfkc_normalize.texi: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_ucs4_nfkc_normalize $< > $@ man/stringprep_ucs4_nfkc_normalize.3: ../lib/nfkc.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_ucs4_nfkc_normalize $< > $@ texi/pr29.c.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/pr29_4.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_4 $< > $@ man/pr29_4.3: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_4 $< > $@ texi/pr29_4z.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_4z $< > $@ man/pr29_4z.3: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_4z $< > $@ texi/pr29_8z.texi: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_8z $< > $@ man/pr29_8z.3: ../lib/pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_8z $< > $@ texi/punycode.c.texi: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/punycode_encode.texi: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function punycode_encode $< > $@ man/punycode_encode.3: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function punycode_encode $< > $@ texi/punycode_decode.texi: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function punycode_decode $< > $@ man/punycode_decode.3: ../lib/punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function punycode_decode $< > $@ texi/stringprep.c.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/stringprep_4i.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_4i $< > $@ man/stringprep_4i.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_4i $< > $@ texi/stringprep_4zi.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_4zi $< > $@ man/stringprep_4zi.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_4zi $< > $@ texi/stringprep.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep $< > $@ man/stringprep.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep $< > $@ texi/stringprep_profile.texi: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_profile $< > $@ man/stringprep_profile.3: ../lib/stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_profile $< > $@ texi/tld.c.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/tld_get_table.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_table $< > $@ man/tld_get_table.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_table $< > $@ texi/tld_default_table.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_default_table $< > $@ man/tld_default_table.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_default_table $< > $@ texi/tld_get_4.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_4 $< > $@ man/tld_get_4.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_4 $< > $@ texi/tld_get_4z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_4z $< > $@ man/tld_get_4z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_4z $< > $@ texi/tld_get_z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_get_z $< > $@ man/tld_get_z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_get_z $< > $@ texi/tld_check_4t.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4t $< > $@ man/tld_check_4t.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4t $< > $@ texi/tld_check_4tz.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4tz $< > $@ man/tld_check_4tz.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4tz $< > $@ texi/tld_check_4.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4 $< > $@ man/tld_check_4.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4 $< > $@ texi/tld_check_4z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_4z $< > $@ man/tld_check_4z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_4z $< > $@ texi/tld_check_8z.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_8z $< > $@ man/tld_check_8z.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_8z $< > $@ texi/tld_check_lz.texi: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_check_lz $< > $@ man/tld_check_lz.3: ../lib/tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_check_lz $< > $@ texi/toutf8.c.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/stringprep_locale_charset.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_locale_charset $< > $@ man/stringprep_locale_charset.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_locale_charset $< > $@ texi/stringprep_convert.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_convert $< > $@ man/stringprep_convert.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_convert $< > $@ texi/stringprep_locale_to_utf8.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_locale_to_utf8 $< > $@ man/stringprep_locale_to_utf8.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_locale_to_utf8 $< > $@ texi/stringprep_utf8_to_locale.texi: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_utf8_to_locale $< > $@ man/stringprep_utf8_to_locale.3: ../lib/toutf8.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_utf8_to_locale $< > $@ texi/version.c.texi: ../lib/version.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/stringprep_check_version.texi: ../lib/version.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_check_version $< > $@ man/stringprep_check_version.3: ../lib/version.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_check_version $< > $@ texi/idn-free.c.texi: ../lib/idn-free.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/idn_free.texi: ../lib/idn-free.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idn_free $< > $@ man/idn_free.3: ../lib/idn-free.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idn_free $< > $@ texi/strerror-idna.c.texi: ../lib/strerror-idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/idna_strerror.texi: ../lib/strerror-idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function idna_strerror $< > $@ man/idna_strerror.3: ../lib/strerror-idna.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function idna_strerror $< > $@ texi/strerror-pr29.c.texi: ../lib/strerror-pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/pr29_strerror.texi: ../lib/strerror-pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function pr29_strerror $< > $@ man/pr29_strerror.3: ../lib/strerror-pr29.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function pr29_strerror $< > $@ texi/strerror-punycode.c.texi: ../lib/strerror-punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/punycode_strerror.texi: ../lib/strerror-punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function punycode_strerror $< > $@ man/punycode_strerror.3: ../lib/strerror-punycode.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function punycode_strerror $< > $@ texi/strerror-stringprep.c.texi: ../lib/strerror-stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/stringprep_strerror.texi: ../lib/strerror-stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function stringprep_strerror $< > $@ man/stringprep_strerror.3: ../lib/strerror-stringprep.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function stringprep_strerror $< > $@ texi/strerror-tld.c.texi: ../lib/strerror-tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) $< > $@ texi/tld_strerror.texi: ../lib/strerror-tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -texinfo $(GDOC_TEXI_EXTRA_ARGS) -function tld_strerror $< > $@ man/tld_strerror.3: ../lib/strerror-tld.c mkdir -p `dirname $@` $(PERL) ./gdoc -man $(GDOC_MAN_EXTRA_ARGS) -function tld_strerror $< > $@ # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/doc/specifications/0000755000000000000000000000000012167253753013437 500000000000000libidn-1.28/doc/specifications/LineBreak-3.2.0.txt0000664000000000000000000200756611746453142016430 00000000000000# LineBreak-3.2.0.txt # # Line Break Properties # # This file is a supplement to the UnicodeData.txt file. # It contains both normative and informative data. # The format is two fields separated by a semicolon. # Field 1: Unicode value # Field 2: LineBreak property, consisting of one of the following values: # Normative: # "BK", "CR", "LF", "CM", "SG", "GL", "CB", "SP", "ZW" # Informative: # "XX", "OP", "CL", "QU", "NS", "EX", "SY", # "IS", "PR", "PO", "NU", "AL", "ID", "IN", "HY", # "BB", "BA", "SA", "AI", "B2" # - Assigned characters that are not listed explicitly are given the value # "AL". # - Unassigned characters are given the value "XX". # - Characters ranges are specified as for other property files in # the Unicode Character Database. # # The Unicode name of each character is provided in a comment for help # in identifying the characters. # # See UTR #14: Line Breaking Properties, for more information 0000;CM # 0001;CM # 0002;CM # 0003;CM # 0004;CM # 0005;CM # 0006;CM # 0007;CM # 0008;CM # 0009;BA # 000A;LF # 000B;CM # 000C;BK # 000D;CR # 000E;CM # 000F;CM # 0010;CM # 0011;CM # 0012;CM # 0013;CM # 0014;CM # 0015;CM # 0016;CM # 0017;CM # 0018;CM # 0019;CM # 001A;CM # 001B;CM # 001C;CM # 001D;CM # 001E;CM # 001F;CM # 0020;SP # SPACE 0021;EX # EXCLAMATION MARK 0022;QU # QUOTATION MARK 0023;AL # NUMBER SIGN 0024;PR # DOLLAR SIGN 0025;PO # PERCENT SIGN 0026;AL # AMPERSAND 0027;QU # APOSTROPHE 0028;OP # LEFT PARENTHESIS 0029;CL # RIGHT PARENTHESIS 002A;AL # ASTERISK 002B;PR # PLUS SIGN 002C;IS # COMMA 002D;HY # HYPHEN-MINUS 002E;IS # FULL STOP 002F;SY # SOLIDUS 0030;NU # DIGIT ZERO 0031;NU # DIGIT ONE 0032;NU # DIGIT TWO 0033;NU # DIGIT THREE 0034;NU # DIGIT FOUR 0035;NU # DIGIT FIVE 0036;NU # DIGIT SIX 0037;NU # DIGIT SEVEN 0038;NU # DIGIT EIGHT 0039;NU # DIGIT NINE 003A;IS # COLON 003B;IS # SEMICOLON 003C;AL # LESS-THAN SIGN 003D;AL # EQUALS SIGN 003E;AL # GREATER-THAN SIGN 003F;EX # QUESTION MARK 0040;AL # COMMERCIAL AT 0041;AL # LATIN CAPITAL LETTER A 0042;AL # LATIN CAPITAL LETTER B 0043;AL # LATIN CAPITAL LETTER C 0044;AL # LATIN CAPITAL LETTER D 0045;AL # LATIN CAPITAL LETTER E 0046;AL # LATIN CAPITAL LETTER F 0047;AL # LATIN CAPITAL LETTER G 0048;AL # LATIN CAPITAL LETTER H 0049;AL # LATIN CAPITAL LETTER I 004A;AL # LATIN CAPITAL LETTER J 004B;AL # LATIN CAPITAL LETTER K 004C;AL # LATIN CAPITAL LETTER L 004D;AL # LATIN CAPITAL LETTER M 004E;AL # LATIN CAPITAL LETTER N 004F;AL # LATIN CAPITAL LETTER O 0050;AL # LATIN CAPITAL LETTER P 0051;AL # LATIN CAPITAL LETTER Q 0052;AL # LATIN CAPITAL LETTER R 0053;AL # LATIN CAPITAL LETTER S 0054;AL # LATIN CAPITAL LETTER T 0055;AL # LATIN CAPITAL LETTER U 0056;AL # LATIN CAPITAL LETTER V 0057;AL # LATIN CAPITAL LETTER W 0058;AL # LATIN CAPITAL LETTER X 0059;AL # LATIN CAPITAL LETTER Y 005A;AL # LATIN CAPITAL LETTER Z 005B;OP # LEFT SQUARE BRACKET 005C;PR # REVERSE SOLIDUS 005D;CL # RIGHT SQUARE BRACKET 005E;AL # CIRCUMFLEX ACCENT 005F;AL # LOW LINE 0060;AL # GRAVE ACCENT 0061;AL # LATIN SMALL LETTER A 0062;AL # LATIN SMALL LETTER B 0063;AL # LATIN SMALL LETTER C 0064;AL # LATIN SMALL LETTER D 0065;AL # LATIN SMALL LETTER E 0066;AL # LATIN SMALL LETTER F 0067;AL # LATIN SMALL LETTER G 0068;AL # LATIN SMALL LETTER H 0069;AL # LATIN SMALL LETTER I 006A;AL # LATIN SMALL LETTER J 006B;AL # LATIN SMALL LETTER K 006C;AL # LATIN SMALL LETTER L 006D;AL # LATIN SMALL LETTER M 006E;AL # LATIN SMALL LETTER N 006F;AL # LATIN SMALL LETTER O 0070;AL # LATIN SMALL LETTER P 0071;AL # LATIN SMALL LETTER Q 0072;AL # LATIN SMALL LETTER R 0073;AL # LATIN SMALL LETTER S 0074;AL # LATIN SMALL LETTER T 0075;AL # LATIN SMALL LETTER U 0076;AL # LATIN SMALL LETTER V 0077;AL # LATIN SMALL LETTER W 0078;AL # LATIN SMALL LETTER X 0079;AL # LATIN SMALL LETTER Y 007A;AL # LATIN SMALL LETTER Z 007B;OP # LEFT CURLY BRACKET 007C;BA # VERTICAL LINE 007D;CL # RIGHT CURLY BRACKET 007E;AL # TILDE 007F;CM # 0080;CM # 0081;CM # 0082;CM # 0083;CM # 0084;CM # 0085;CM # 0086;CM # 0087;CM # 0088;CM # 0089;CM # 008A;CM # 008B;CM # 008C;CM # 008D;CM # 008E;CM # 008F;CM # 0090;CM # 0091;CM # 0092;CM # 0093;CM # 0094;CM # 0095;CM # 0096;CM # 0097;CM # 0098;CM # 0099;CM # 009A;CM # 009B;CM # 009C;CM # 009D;CM # 009E;CM # 009F;CM # 00A0;GL # NO-BREAK SPACE 00A1;AI # INVERTED EXCLAMATION MARK 00A2;PO # CENT SIGN 00A3;PR # POUND SIGN 00A4;PR # CURRENCY SIGN 00A5;PR # YEN SIGN 00A6;AL # BROKEN BAR 00A7;AI # SECTION SIGN 00A8;AI # DIAERESIS 00A9;AL # COPYRIGHT SIGN 00AA;AI # FEMININE ORDINAL INDICATOR 00AB;QU # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 00AC;AL # NOT SIGN 00AD;BA # SOFT HYPHEN 00AE;AL # REGISTERED SIGN 00AF;AL # MACRON 00B0;PO # DEGREE SIGN 00B1;PR # PLUS-MINUS SIGN 00B2;AI # SUPERSCRIPT TWO 00B3;AI # SUPERSCRIPT THREE 00B4;BB # ACUTE ACCENT 00B5;AL # MICRO SIGN 00B6;AI # PILCROW SIGN 00B7;AI # MIDDLE DOT 00B8;AI # CEDILLA 00B9;AI # SUPERSCRIPT ONE 00BA;AI # MASCULINE ORDINAL INDICATOR 00BB;QU # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 00BC;AI # VULGAR FRACTION ONE QUARTER 00BD;AI # VULGAR FRACTION ONE HALF 00BE;AI # VULGAR FRACTION THREE QUARTERS 00BF;AI # INVERTED QUESTION MARK 00C0;AL # LATIN CAPITAL LETTER A WITH GRAVE 00C1;AL # LATIN CAPITAL LETTER A WITH ACUTE 00C2;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00C3;AL # LATIN CAPITAL LETTER A WITH TILDE 00C4;AL # LATIN CAPITAL LETTER A WITH DIAERESIS 00C5;AL # LATIN CAPITAL LETTER A WITH RING ABOVE 00C6;AI # LATIN CAPITAL LETTER AE 00C7;AL # LATIN CAPITAL LETTER C WITH CEDILLA 00C8;AL # LATIN CAPITAL LETTER E WITH GRAVE 00C9;AL # LATIN CAPITAL LETTER E WITH ACUTE 00CA;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00CB;AL # LATIN CAPITAL LETTER E WITH DIAERESIS 00CC;AL # LATIN CAPITAL LETTER I WITH GRAVE 00CD;AL # LATIN CAPITAL LETTER I WITH ACUTE 00CE;AL # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00CF;AL # LATIN CAPITAL LETTER I WITH DIAERESIS 00D0;AI # LATIN CAPITAL LETTER ETH 00D1;AL # LATIN CAPITAL LETTER N WITH TILDE 00D2;AL # LATIN CAPITAL LETTER O WITH GRAVE 00D3;AL # LATIN CAPITAL LETTER O WITH ACUTE 00D4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00D5;AL # LATIN CAPITAL LETTER O WITH TILDE 00D6;AL # LATIN CAPITAL LETTER O WITH DIAERESIS 00D7;AI # MULTIPLICATION SIGN 00D8;AI # LATIN CAPITAL LETTER O WITH STROKE 00D9;AL # LATIN CAPITAL LETTER U WITH GRAVE 00DA;AL # LATIN CAPITAL LETTER U WITH ACUTE 00DB;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00DC;AL # LATIN CAPITAL LETTER U WITH DIAERESIS 00DD;AL # LATIN CAPITAL LETTER Y WITH ACUTE 00DE;AI # LATIN CAPITAL LETTER THORN 00DF;AI # LATIN SMALL LETTER SHARP S 00E0;AI # LATIN SMALL LETTER A WITH GRAVE 00E1;AI # LATIN SMALL LETTER A WITH ACUTE 00E2;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX 00E3;AL # LATIN SMALL LETTER A WITH TILDE 00E4;AL # LATIN SMALL LETTER A WITH DIAERESIS 00E5;AL # LATIN SMALL LETTER A WITH RING ABOVE 00E6;AI # LATIN SMALL LETTER AE 00E7;AL # LATIN SMALL LETTER C WITH CEDILLA 00E8;AI # LATIN SMALL LETTER E WITH GRAVE 00E9;AI # LATIN SMALL LETTER E WITH ACUTE 00EA;AI # LATIN SMALL LETTER E WITH CIRCUMFLEX 00EB;AL # LATIN SMALL LETTER E WITH DIAERESIS 00EC;AI # LATIN SMALL LETTER I WITH GRAVE 00ED;AI # LATIN SMALL LETTER I WITH ACUTE 00EE;AL # LATIN SMALL LETTER I WITH CIRCUMFLEX 00EF;AL # LATIN SMALL LETTER I WITH DIAERESIS 00F0;AI # LATIN SMALL LETTER ETH 00F1;AL # LATIN SMALL LETTER N WITH TILDE 00F2;AI # LATIN SMALL LETTER O WITH GRAVE 00F3;AI # LATIN SMALL LETTER O WITH ACUTE 00F4;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX 00F5;AL # LATIN SMALL LETTER O WITH TILDE 00F6;AL # LATIN SMALL LETTER O WITH DIAERESIS 00F7;AI # DIVISION SIGN 00F8;AI # LATIN SMALL LETTER O WITH STROKE 00F9;AI # LATIN SMALL LETTER U WITH GRAVE 00FA;AI # LATIN SMALL LETTER U WITH ACUTE 00FB;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX 00FC;AI # LATIN SMALL LETTER U WITH DIAERESIS 00FD;AL # LATIN SMALL LETTER Y WITH ACUTE 00FE;AI # LATIN SMALL LETTER THORN 00FF;AL # LATIN SMALL LETTER Y WITH DIAERESIS 0100;AL # LATIN CAPITAL LETTER A WITH MACRON 0101;AI # LATIN SMALL LETTER A WITH MACRON 0102;AL # LATIN CAPITAL LETTER A WITH BREVE 0103;AL # LATIN SMALL LETTER A WITH BREVE 0104;AL # LATIN CAPITAL LETTER A WITH OGONEK 0105;AL # LATIN SMALL LETTER A WITH OGONEK 0106;AL # LATIN CAPITAL LETTER C WITH ACUTE 0107;AL # LATIN SMALL LETTER C WITH ACUTE 0108;AL # LATIN CAPITAL LETTER C WITH CIRCUMFLEX 0109;AL # LATIN SMALL LETTER C WITH CIRCUMFLEX 010A;AL # LATIN CAPITAL LETTER C WITH DOT ABOVE 010B;AL # LATIN SMALL LETTER C WITH DOT ABOVE 010C;AL # LATIN CAPITAL LETTER C WITH CARON 010D;AL # LATIN SMALL LETTER C WITH CARON 010E;AL # LATIN CAPITAL LETTER D WITH CARON 010F;AL # LATIN SMALL LETTER D WITH CARON 0110;AL # LATIN CAPITAL LETTER D WITH STROKE 0111;AI # LATIN SMALL LETTER D WITH STROKE 0112;AL # LATIN CAPITAL LETTER E WITH MACRON 0113;AI # LATIN SMALL LETTER E WITH MACRON 0114;AL # LATIN CAPITAL LETTER E WITH BREVE 0115;AL # LATIN SMALL LETTER E WITH BREVE 0116;AL # LATIN CAPITAL LETTER E WITH DOT ABOVE 0117;AL # LATIN SMALL LETTER E WITH DOT ABOVE 0118;AL # LATIN CAPITAL LETTER E WITH OGONEK 0119;AL # LATIN SMALL LETTER E WITH OGONEK 011A;AL # LATIN CAPITAL LETTER E WITH CARON 011B;AI # LATIN SMALL LETTER E WITH CARON 011C;AL # LATIN CAPITAL LETTER G WITH CIRCUMFLEX 011D;AL # LATIN SMALL LETTER G WITH CIRCUMFLEX 011E;AL # LATIN CAPITAL LETTER G WITH BREVE 011F;AL # LATIN SMALL LETTER G WITH BREVE 0120;AL # LATIN CAPITAL LETTER G WITH DOT ABOVE 0121;AL # LATIN SMALL LETTER G WITH DOT ABOVE 0122;AL # LATIN CAPITAL LETTER G WITH CEDILLA 0123;AL # LATIN SMALL LETTER G WITH CEDILLA 0124;AL # LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0125;AL # LATIN SMALL LETTER H WITH CIRCUMFLEX 0126;AI # LATIN CAPITAL LETTER H WITH STROKE 0127;AI # LATIN SMALL LETTER H WITH STROKE 0128;AL # LATIN CAPITAL LETTER I WITH TILDE 0129;AL # LATIN SMALL LETTER I WITH TILDE 012A;AL # LATIN CAPITAL LETTER I WITH MACRON 012B;AI # LATIN SMALL LETTER I WITH MACRON 012C;AL # LATIN CAPITAL LETTER I WITH BREVE 012D;AL # LATIN SMALL LETTER I WITH BREVE 012E;AL # LATIN CAPITAL LETTER I WITH OGONEK 012F;AL # LATIN SMALL LETTER I WITH OGONEK 0130;AL # LATIN CAPITAL LETTER I WITH DOT ABOVE 0131;AI # LATIN SMALL LETTER DOTLESS I 0132;AI # LATIN CAPITAL LIGATURE IJ 0133;AI # LATIN SMALL LIGATURE IJ 0134;AL # LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0135;AL # LATIN SMALL LETTER J WITH CIRCUMFLEX 0136;AL # LATIN CAPITAL LETTER K WITH CEDILLA 0137;AL # LATIN SMALL LETTER K WITH CEDILLA 0138;AI # LATIN SMALL LETTER KRA 0139;AL # LATIN CAPITAL LETTER L WITH ACUTE 013A;AL # LATIN SMALL LETTER L WITH ACUTE 013B;AL # LATIN CAPITAL LETTER L WITH CEDILLA 013C;AL # LATIN SMALL LETTER L WITH CEDILLA 013D;AL # LATIN CAPITAL LETTER L WITH CARON 013E;AL # LATIN SMALL LETTER L WITH CARON 013F;AI # LATIN CAPITAL LETTER L WITH MIDDLE DOT 0140;AI # LATIN SMALL LETTER L WITH MIDDLE DOT 0141;AI # LATIN CAPITAL LETTER L WITH STROKE 0142;AI # LATIN SMALL LETTER L WITH STROKE 0143;AL # LATIN CAPITAL LETTER N WITH ACUTE 0144;AI # LATIN SMALL LETTER N WITH ACUTE 0145;AL # LATIN CAPITAL LETTER N WITH CEDILLA 0146;AL # LATIN SMALL LETTER N WITH CEDILLA 0147;AL # LATIN CAPITAL LETTER N WITH CARON 0148;AI # LATIN SMALL LETTER N WITH CARON 0149;AI # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 014A;AI # LATIN CAPITAL LETTER ENG 014B;AL # LATIN SMALL LETTER ENG 014C;AL # LATIN CAPITAL LETTER O WITH MACRON 014D;AI # LATIN SMALL LETTER O WITH MACRON 014E;AL # LATIN CAPITAL LETTER O WITH BREVE 014F;AL # LATIN SMALL LETTER O WITH BREVE 0150;AL # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0151;AL # LATIN SMALL LETTER O WITH DOUBLE ACUTE 0152;AI # LATIN CAPITAL LIGATURE OE 0153;AI # LATIN SMALL LIGATURE OE 0154;AL # LATIN CAPITAL LETTER R WITH ACUTE 0155;AL # LATIN SMALL LETTER R WITH ACUTE 0156;AL # LATIN CAPITAL LETTER R WITH CEDILLA 0157;AL # LATIN SMALL LETTER R WITH CEDILLA 0158;AL # LATIN CAPITAL LETTER R WITH CARON 0159;AL # LATIN SMALL LETTER R WITH CARON 015A;AL # LATIN CAPITAL LETTER S WITH ACUTE 015B;AL # LATIN SMALL LETTER S WITH ACUTE 015C;AL # LATIN CAPITAL LETTER S WITH CIRCUMFLEX 015D;AL # LATIN SMALL LETTER S WITH CIRCUMFLEX 015E;AL # LATIN CAPITAL LETTER S WITH CEDILLA 015F;AL # LATIN SMALL LETTER S WITH CEDILLA 0160;AL # LATIN CAPITAL LETTER S WITH CARON 0161;AL # LATIN SMALL LETTER S WITH CARON 0162;AL # LATIN CAPITAL LETTER T WITH CEDILLA 0163;AL # LATIN SMALL LETTER T WITH CEDILLA 0164;AL # LATIN CAPITAL LETTER T WITH CARON 0165;AL # LATIN SMALL LETTER T WITH CARON 0166;AI # LATIN CAPITAL LETTER T WITH STROKE 0167;AI # LATIN SMALL LETTER T WITH STROKE 0168;AL # LATIN CAPITAL LETTER U WITH TILDE 0169;AL # LATIN SMALL LETTER U WITH TILDE 016A;AL # LATIN CAPITAL LETTER U WITH MACRON 016B;AI # LATIN SMALL LETTER U WITH MACRON 016C;AL # LATIN CAPITAL LETTER U WITH BREVE 016D;AL # LATIN SMALL LETTER U WITH BREVE 016E;AL # LATIN CAPITAL LETTER U WITH RING ABOVE 016F;AL # LATIN SMALL LETTER U WITH RING ABOVE 0170;AL # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0171;AL # LATIN SMALL LETTER U WITH DOUBLE ACUTE 0172;AL # LATIN CAPITAL LETTER U WITH OGONEK 0173;AL # LATIN SMALL LETTER U WITH OGONEK 0174;AL # LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0175;AL # LATIN SMALL LETTER W WITH CIRCUMFLEX 0176;AL # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0177;AL # LATIN SMALL LETTER Y WITH CIRCUMFLEX 0178;AL # LATIN CAPITAL LETTER Y WITH DIAERESIS 0179;AL # LATIN CAPITAL LETTER Z WITH ACUTE 017A;AL # LATIN SMALL LETTER Z WITH ACUTE 017B;AL # LATIN CAPITAL LETTER Z WITH DOT ABOVE 017C;AL # LATIN SMALL LETTER Z WITH DOT ABOVE 017D;AL # LATIN CAPITAL LETTER Z WITH CARON 017E;AL # LATIN SMALL LETTER Z WITH CARON 017F;AL # LATIN SMALL LETTER LONG S 0180;AL # LATIN SMALL LETTER B WITH STROKE 0181;AL # LATIN CAPITAL LETTER B WITH HOOK 0182;AL # LATIN CAPITAL LETTER B WITH TOPBAR 0183;AL # LATIN SMALL LETTER B WITH TOPBAR 0184;AL # LATIN CAPITAL LETTER TONE SIX 0185;AL # LATIN SMALL LETTER TONE SIX 0186;AL # LATIN CAPITAL LETTER OPEN O 0187;AL # LATIN CAPITAL LETTER C WITH HOOK 0188;AL # LATIN SMALL LETTER C WITH HOOK 0189;AL # LATIN CAPITAL LETTER AFRICAN D 018A;AL # LATIN CAPITAL LETTER D WITH HOOK 018B;AL # LATIN CAPITAL LETTER D WITH TOPBAR 018C;AL # LATIN SMALL LETTER D WITH TOPBAR 018D;AL # LATIN SMALL LETTER TURNED DELTA 018E;AL # LATIN CAPITAL LETTER REVERSED E 018F;AL # LATIN CAPITAL LETTER SCHWA 0190;AL # LATIN CAPITAL LETTER OPEN E 0191;AL # LATIN CAPITAL LETTER F WITH HOOK 0192;AL # LATIN SMALL LETTER F WITH HOOK 0193;AL # LATIN CAPITAL LETTER G WITH HOOK 0194;AL # LATIN CAPITAL LETTER GAMMA 0195;AL # LATIN SMALL LETTER HV 0196;AL # LATIN CAPITAL LETTER IOTA 0197;AL # LATIN CAPITAL LETTER I WITH STROKE 0198;AL # LATIN CAPITAL LETTER K WITH HOOK 0199;AL # LATIN SMALL LETTER K WITH HOOK 019A;AL # LATIN SMALL LETTER L WITH BAR 019B;AL # LATIN SMALL LETTER LAMBDA WITH STROKE 019C;AL # LATIN CAPITAL LETTER TURNED M 019D;AL # LATIN CAPITAL LETTER N WITH LEFT HOOK 019E;AL # LATIN SMALL LETTER N WITH LONG RIGHT LEG 019F;AL # LATIN CAPITAL LETTER O WITH MIDDLE TILDE 01A0;AL # LATIN CAPITAL LETTER O WITH HORN 01A1;AL # LATIN SMALL LETTER O WITH HORN 01A2;AL # LATIN CAPITAL LETTER OI 01A3;AL # LATIN SMALL LETTER OI 01A4;AL # LATIN CAPITAL LETTER P WITH HOOK 01A5;AL # LATIN SMALL LETTER P WITH HOOK 01A6;AL # LATIN LETTER YR 01A7;AL # LATIN CAPITAL LETTER TONE TWO 01A8;AL # LATIN SMALL LETTER TONE TWO 01A9;AL # LATIN CAPITAL LETTER ESH 01AA;AL # LATIN LETTER REVERSED ESH LOOP 01AB;AL # LATIN SMALL LETTER T WITH PALATAL HOOK 01AC;AL # LATIN CAPITAL LETTER T WITH HOOK 01AD;AL # LATIN SMALL LETTER T WITH HOOK 01AE;AL # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK 01AF;AL # LATIN CAPITAL LETTER U WITH HORN 01B0;AL # LATIN SMALL LETTER U WITH HORN 01B1;AL # LATIN CAPITAL LETTER UPSILON 01B2;AL # LATIN CAPITAL LETTER V WITH HOOK 01B3;AL # LATIN CAPITAL LETTER Y WITH HOOK 01B4;AL # LATIN SMALL LETTER Y WITH HOOK 01B5;AL # LATIN CAPITAL LETTER Z WITH STROKE 01B6;AL # LATIN SMALL LETTER Z WITH STROKE 01B7;AL # LATIN CAPITAL LETTER EZH 01B8;AL # LATIN CAPITAL LETTER EZH REVERSED 01B9;AL # LATIN SMALL LETTER EZH REVERSED 01BA;AL # LATIN SMALL LETTER EZH WITH TAIL 01BB;AL # LATIN LETTER TWO WITH STROKE 01BC;AL # LATIN CAPITAL LETTER TONE FIVE 01BD;AL # LATIN SMALL LETTER TONE FIVE 01BE;AL # LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE 01BF;AL # LATIN LETTER WYNN 01C0;AL # LATIN LETTER DENTAL CLICK 01C1;AL # LATIN LETTER LATERAL CLICK 01C2;AL # LATIN LETTER ALVEOLAR CLICK 01C3;AL # LATIN LETTER RETROFLEX CLICK 01C4;AL # LATIN CAPITAL LETTER DZ WITH CARON 01C5;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 01C6;AL # LATIN SMALL LETTER DZ WITH CARON 01C7;AL # LATIN CAPITAL LETTER LJ 01C8;AL # LATIN CAPITAL LETTER L WITH SMALL LETTER J 01C9;AL # LATIN SMALL LETTER LJ 01CA;AL # LATIN CAPITAL LETTER NJ 01CB;AL # LATIN CAPITAL LETTER N WITH SMALL LETTER J 01CC;AL # LATIN SMALL LETTER NJ 01CD;AL # LATIN CAPITAL LETTER A WITH CARON 01CE;AI # LATIN SMALL LETTER A WITH CARON 01CF;AL # LATIN CAPITAL LETTER I WITH CARON 01D0;AI # LATIN SMALL LETTER I WITH CARON 01D1;AL # LATIN CAPITAL LETTER O WITH CARON 01D2;AI # LATIN SMALL LETTER O WITH CARON 01D3;AL # LATIN CAPITAL LETTER U WITH CARON 01D4;AI # LATIN SMALL LETTER U WITH CARON 01D5;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON 01D6;AI # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON 01D7;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE 01D8;AI # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE 01D9;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON 01DA;AI # LATIN SMALL LETTER U WITH DIAERESIS AND CARON 01DB;AL # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE 01DC;AI # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE 01DD;AL # LATIN SMALL LETTER TURNED E 01DE;AL # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON 01DF;AL # LATIN SMALL LETTER A WITH DIAERESIS AND MACRON 01E0;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON 01E1;AL # LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON 01E2;AL # LATIN CAPITAL LETTER AE WITH MACRON 01E3;AL # LATIN SMALL LETTER AE WITH MACRON 01E4;AL # LATIN CAPITAL LETTER G WITH STROKE 01E5;AL # LATIN SMALL LETTER G WITH STROKE 01E6;AL # LATIN CAPITAL LETTER G WITH CARON 01E7;AL # LATIN SMALL LETTER G WITH CARON 01E8;AL # LATIN CAPITAL LETTER K WITH CARON 01E9;AL # LATIN SMALL LETTER K WITH CARON 01EA;AL # LATIN CAPITAL LETTER O WITH OGONEK 01EB;AL # LATIN SMALL LETTER O WITH OGONEK 01EC;AL # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON 01ED;AL # LATIN SMALL LETTER O WITH OGONEK AND MACRON 01EE;AL # LATIN CAPITAL LETTER EZH WITH CARON 01EF;AL # LATIN SMALL LETTER EZH WITH CARON 01F0;AL # LATIN SMALL LETTER J WITH CARON 01F1;AL # LATIN CAPITAL LETTER DZ 01F2;AL # LATIN CAPITAL LETTER D WITH SMALL LETTER Z 01F3;AL # LATIN SMALL LETTER DZ 01F4;AL # LATIN CAPITAL LETTER G WITH ACUTE 01F5;AL # LATIN SMALL LETTER G WITH ACUTE 01F6;AL # LATIN CAPITAL LETTER HWAIR 01F7;AL # LATIN CAPITAL LETTER WYNN 01F8;AL # LATIN CAPITAL LETTER N WITH GRAVE 01F9;AL # LATIN SMALL LETTER N WITH GRAVE 01FA;AL # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 01FB;AL # LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE 01FC;AL # LATIN CAPITAL LETTER AE WITH ACUTE 01FD;AL # LATIN SMALL LETTER AE WITH ACUTE 01FE;AL # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 01FF;AL # LATIN SMALL LETTER O WITH STROKE AND ACUTE 0200;AL # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE 0201;AL # LATIN SMALL LETTER A WITH DOUBLE GRAVE 0202;AL # LATIN CAPITAL LETTER A WITH INVERTED BREVE 0203;AL # LATIN SMALL LETTER A WITH INVERTED BREVE 0204;AL # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE 0205;AL # LATIN SMALL LETTER E WITH DOUBLE GRAVE 0206;AL # LATIN CAPITAL LETTER E WITH INVERTED BREVE 0207;AL # LATIN SMALL LETTER E WITH INVERTED BREVE 0208;AL # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE 0209;AL # LATIN SMALL LETTER I WITH DOUBLE GRAVE 020A;AL # LATIN CAPITAL LETTER I WITH INVERTED BREVE 020B;AL # LATIN SMALL LETTER I WITH INVERTED BREVE 020C;AL # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE 020D;AL # LATIN SMALL LETTER O WITH DOUBLE GRAVE 020E;AL # LATIN CAPITAL LETTER O WITH INVERTED BREVE 020F;AL # LATIN SMALL LETTER O WITH INVERTED BREVE 0210;AL # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE 0211;AL # LATIN SMALL LETTER R WITH DOUBLE GRAVE 0212;AL # LATIN CAPITAL LETTER R WITH INVERTED BREVE 0213;AL # LATIN SMALL LETTER R WITH INVERTED BREVE 0214;AL # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE 0215;AL # LATIN SMALL LETTER U WITH DOUBLE GRAVE 0216;AL # LATIN CAPITAL LETTER U WITH INVERTED BREVE 0217;AL # LATIN SMALL LETTER U WITH INVERTED BREVE 0218;AL # LATIN CAPITAL LETTER S WITH COMMA BELOW 0219;AL # LATIN SMALL LETTER S WITH COMMA BELOW 021A;AL # LATIN CAPITAL LETTER T WITH COMMA BELOW 021B;AL # LATIN SMALL LETTER T WITH COMMA BELOW 021C;AL # LATIN CAPITAL LETTER YOGH 021D;AL # LATIN SMALL LETTER YOGH 021E;AL # LATIN CAPITAL LETTER H WITH CARON 021F;AL # LATIN SMALL LETTER H WITH CARON 0220;AL # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG 0222;AL # LATIN CAPITAL LETTER OU 0223;AL # LATIN SMALL LETTER OU 0224;AL # LATIN CAPITAL LETTER Z WITH HOOK 0225;AL # LATIN SMALL LETTER Z WITH HOOK 0226;AL # LATIN CAPITAL LETTER A WITH DOT ABOVE 0227;AL # LATIN SMALL LETTER A WITH DOT ABOVE 0228;AL # LATIN CAPITAL LETTER E WITH CEDILLA 0229;AL # LATIN SMALL LETTER E WITH CEDILLA 022A;AL # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON 022B;AL # LATIN SMALL LETTER O WITH DIAERESIS AND MACRON 022C;AL # LATIN CAPITAL LETTER O WITH TILDE AND MACRON 022D;AL # LATIN SMALL LETTER O WITH TILDE AND MACRON 022E;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE 022F;AL # LATIN SMALL LETTER O WITH DOT ABOVE 0230;AL # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON 0231;AL # LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON 0232;AL # LATIN CAPITAL LETTER Y WITH MACRON 0233;AL # LATIN SMALL LETTER Y WITH MACRON 0250;AL # LATIN SMALL LETTER TURNED A 0251;AI # LATIN SMALL LETTER ALPHA 0252;AL # LATIN SMALL LETTER TURNED ALPHA 0253;AL # LATIN SMALL LETTER B WITH HOOK 0254;AL # LATIN SMALL LETTER OPEN O 0255;AL # LATIN SMALL LETTER C WITH CURL 0256;AL # LATIN SMALL LETTER D WITH TAIL 0257;AL # LATIN SMALL LETTER D WITH HOOK 0258;AL # LATIN SMALL LETTER REVERSED E 0259;AL # LATIN SMALL LETTER SCHWA 025A;AL # LATIN SMALL LETTER SCHWA WITH HOOK 025B;AL # LATIN SMALL LETTER OPEN E 025C;AL # LATIN SMALL LETTER REVERSED OPEN E 025D;AL # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK 025E;AL # LATIN SMALL LETTER CLOSED REVERSED OPEN E 025F;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE 0260;AL # LATIN SMALL LETTER G WITH HOOK 0261;AI # LATIN SMALL LETTER SCRIPT G 0262;AL # LATIN LETTER SMALL CAPITAL G 0263;AL # LATIN SMALL LETTER GAMMA 0264;AL # LATIN SMALL LETTER RAMS HORN 0265;AL # LATIN SMALL LETTER TURNED H 0266;AL # LATIN SMALL LETTER H WITH HOOK 0267;AL # LATIN SMALL LETTER HENG WITH HOOK 0268;AL # LATIN SMALL LETTER I WITH STROKE 0269;AL # LATIN SMALL LETTER IOTA 026A;AL # LATIN LETTER SMALL CAPITAL I 026B;AL # LATIN SMALL LETTER L WITH MIDDLE TILDE 026C;AL # LATIN SMALL LETTER L WITH BELT 026D;AL # LATIN SMALL LETTER L WITH RETROFLEX HOOK 026E;AL # LATIN SMALL LETTER LEZH 026F;AL # LATIN SMALL LETTER TURNED M 0270;AL # LATIN SMALL LETTER TURNED M WITH LONG LEG 0271;AL # LATIN SMALL LETTER M WITH HOOK 0272;AL # LATIN SMALL LETTER N WITH LEFT HOOK 0273;AL # LATIN SMALL LETTER N WITH RETROFLEX HOOK 0274;AL # LATIN LETTER SMALL CAPITAL N 0275;AL # LATIN SMALL LETTER BARRED O 0276;AL # LATIN LETTER SMALL CAPITAL OE 0277;AL # LATIN SMALL LETTER CLOSED OMEGA 0278;AL # LATIN SMALL LETTER PHI 0279;AL # LATIN SMALL LETTER TURNED R 027A;AL # LATIN SMALL LETTER TURNED R WITH LONG LEG 027B;AL # LATIN SMALL LETTER TURNED R WITH HOOK 027C;AL # LATIN SMALL LETTER R WITH LONG LEG 027D;AL # LATIN SMALL LETTER R WITH TAIL 027E;AL # LATIN SMALL LETTER R WITH FISHHOOK 027F;AL # LATIN SMALL LETTER REVERSED R WITH FISHHOOK 0280;AL # LATIN LETTER SMALL CAPITAL R 0281;AL # LATIN LETTER SMALL CAPITAL INVERTED R 0282;AL # LATIN SMALL LETTER S WITH HOOK 0283;AL # LATIN SMALL LETTER ESH 0284;AL # LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK 0285;AL # LATIN SMALL LETTER SQUAT REVERSED ESH 0286;AL # LATIN SMALL LETTER ESH WITH CURL 0287;AL # LATIN SMALL LETTER TURNED T 0288;AL # LATIN SMALL LETTER T WITH RETROFLEX HOOK 0289;AL # LATIN SMALL LETTER U BAR 028A;AL # LATIN SMALL LETTER UPSILON 028B;AL # LATIN SMALL LETTER V WITH HOOK 028C;AL # LATIN SMALL LETTER TURNED V 028D;AL # LATIN SMALL LETTER TURNED W 028E;AL # LATIN SMALL LETTER TURNED Y 028F;AL # LATIN LETTER SMALL CAPITAL Y 0290;AL # LATIN SMALL LETTER Z WITH RETROFLEX HOOK 0291;AL # LATIN SMALL LETTER Z WITH CURL 0292;AL # LATIN SMALL LETTER EZH 0293;AL # LATIN SMALL LETTER EZH WITH CURL 0294;AL # LATIN LETTER GLOTTAL STOP 0295;AL # LATIN LETTER PHARYNGEAL VOICED FRICATIVE 0296;AL # LATIN LETTER INVERTED GLOTTAL STOP 0297;AL # LATIN LETTER STRETCHED C 0298;AL # LATIN LETTER BILABIAL CLICK 0299;AL # LATIN LETTER SMALL CAPITAL B 029A;AL # LATIN SMALL LETTER CLOSED OPEN E 029B;AL # LATIN LETTER SMALL CAPITAL G WITH HOOK 029C;AL # LATIN LETTER SMALL CAPITAL H 029D;AL # LATIN SMALL LETTER J WITH CROSSED-TAIL 029E;AL # LATIN SMALL LETTER TURNED K 029F;AL # LATIN LETTER SMALL CAPITAL L 02A0;AL # LATIN SMALL LETTER Q WITH HOOK 02A1;AL # LATIN LETTER GLOTTAL STOP WITH STROKE 02A2;AL # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE 02A3;AL # LATIN SMALL LETTER DZ DIGRAPH 02A4;AL # LATIN SMALL LETTER DEZH DIGRAPH 02A5;AL # LATIN SMALL LETTER DZ DIGRAPH WITH CURL 02A6;AL # LATIN SMALL LETTER TS DIGRAPH 02A7;AL # LATIN SMALL LETTER TESH DIGRAPH 02A8;AL # LATIN SMALL LETTER TC DIGRAPH WITH CURL 02A9;AL # LATIN SMALL LETTER FENG DIGRAPH 02AA;AL # LATIN SMALL LETTER LS DIGRAPH 02AB;AL # LATIN SMALL LETTER LZ DIGRAPH 02AC;AL # LATIN LETTER BILABIAL PERCUSSIVE 02AD;AL # LATIN LETTER BIDENTAL PERCUSSIVE 02B0;AL # MODIFIER LETTER SMALL H 02B1;AL # MODIFIER LETTER SMALL H WITH HOOK 02B2;AL # MODIFIER LETTER SMALL J 02B3;AL # MODIFIER LETTER SMALL R 02B4;AL # MODIFIER LETTER SMALL TURNED R 02B5;AL # MODIFIER LETTER SMALL TURNED R WITH HOOK 02B6;AL # MODIFIER LETTER SMALL CAPITAL INVERTED R 02B7;AL # MODIFIER LETTER SMALL W 02B8;AL # MODIFIER LETTER SMALL Y 02B9;AL # MODIFIER LETTER PRIME 02BA;AL # MODIFIER LETTER DOUBLE PRIME 02BB;AL # MODIFIER LETTER TURNED COMMA 02BC;AL # MODIFIER LETTER APOSTROPHE 02BD;AL # MODIFIER LETTER REVERSED COMMA 02BE;AL # MODIFIER LETTER RIGHT HALF RING 02BF;AL # MODIFIER LETTER LEFT HALF RING 02C0;AL # MODIFIER LETTER GLOTTAL STOP 02C1;AL # MODIFIER LETTER REVERSED GLOTTAL STOP 02C2;AL # MODIFIER LETTER LEFT ARROWHEAD 02C3;AL # MODIFIER LETTER RIGHT ARROWHEAD 02C4;AL # MODIFIER LETTER UP ARROWHEAD 02C5;AL # MODIFIER LETTER DOWN ARROWHEAD 02C6;AL # MODIFIER LETTER CIRCUMFLEX ACCENT 02C7;AI # CARON 02C8;BB # MODIFIER LETTER VERTICAL LINE 02C9;AI # MODIFIER LETTER MACRON 02CA;AI # MODIFIER LETTER ACUTE ACCENT 02CB;AI # MODIFIER LETTER GRAVE ACCENT 02CC;BB # MODIFIER LETTER LOW VERTICAL LINE 02CD;AI # MODIFIER LETTER LOW MACRON 02CE;AL # MODIFIER LETTER LOW GRAVE ACCENT 02CF;AL # MODIFIER LETTER LOW ACUTE ACCENT 02D0;AI # MODIFIER LETTER TRIANGULAR COLON 02D1;AL # MODIFIER LETTER HALF TRIANGULAR COLON 02D2;AL # MODIFIER LETTER CENTRED RIGHT HALF RING 02D3;AL # MODIFIER LETTER CENTRED LEFT HALF RING 02D4;AL # MODIFIER LETTER UP TACK 02D5;AL # MODIFIER LETTER DOWN TACK 02D6;AL # MODIFIER LETTER PLUS SIGN 02D7;AL # MODIFIER LETTER MINUS SIGN 02D8;AI # BREVE 02D9;AI # DOT ABOVE 02DA;AI # RING ABOVE 02DB;AI # OGONEK 02DC;AL # SMALL TILDE 02DD;AI # DOUBLE ACUTE ACCENT 02DE;AL # MODIFIER LETTER RHOTIC HOOK 02DF;AL # MODIFIER LETTER CROSS ACCENT 02E0;AL # MODIFIER LETTER SMALL GAMMA 02E1;AL # MODIFIER LETTER SMALL L 02E2;AL # MODIFIER LETTER SMALL S 02E3;AL # MODIFIER LETTER SMALL X 02E4;AL # MODIFIER LETTER SMALL REVERSED GLOTTAL STOP 02E5;AL # MODIFIER LETTER EXTRA-HIGH TONE BAR 02E6;AL # MODIFIER LETTER HIGH TONE BAR 02E7;AL # MODIFIER LETTER MID TONE BAR 02E8;AL # MODIFIER LETTER LOW TONE BAR 02E9;AL # MODIFIER LETTER EXTRA-LOW TONE BAR 02EA;AL # MODIFIER LETTER YIN DEPARTING TONE MARK 02EB;AL # MODIFIER LETTER YANG DEPARTING TONE MARK 02EC;AL # MODIFIER LETTER VOICING 02ED;AL # MODIFIER LETTER UNASPIRATED 02EE;AL # MODIFIER LETTER DOUBLE APOSTROPHE 0300;CM # COMBINING GRAVE ACCENT 0301;CM # COMBINING ACUTE ACCENT 0302;CM # COMBINING CIRCUMFLEX ACCENT 0303;CM # COMBINING TILDE 0304;CM # COMBINING MACRON 0305;CM # COMBINING OVERLINE 0306;CM # COMBINING BREVE 0307;CM # COMBINING DOT ABOVE 0308;CM # COMBINING DIAERESIS 0309;CM # COMBINING HOOK ABOVE 030A;CM # COMBINING RING ABOVE 030B;CM # COMBINING DOUBLE ACUTE ACCENT 030C;CM # COMBINING CARON 030D;CM # COMBINING VERTICAL LINE ABOVE 030E;CM # COMBINING DOUBLE VERTICAL LINE ABOVE 030F;CM # COMBINING DOUBLE GRAVE ACCENT 0310;CM # COMBINING CANDRABINDU 0311;CM # COMBINING INVERTED BREVE 0312;CM # COMBINING TURNED COMMA ABOVE 0313;CM # COMBINING COMMA ABOVE 0314;CM # COMBINING REVERSED COMMA ABOVE 0315;CM # COMBINING COMMA ABOVE RIGHT 0316;CM # COMBINING GRAVE ACCENT BELOW 0317;CM # COMBINING ACUTE ACCENT BELOW 0318;CM # COMBINING LEFT TACK BELOW 0319;CM # COMBINING RIGHT TACK BELOW 031A;CM # COMBINING LEFT ANGLE ABOVE 031B;CM # COMBINING HORN 031C;CM # COMBINING LEFT HALF RING BELOW 031D;CM # COMBINING UP TACK BELOW 031E;CM # COMBINING DOWN TACK BELOW 031F;CM # COMBINING PLUS SIGN BELOW 0320;CM # COMBINING MINUS SIGN BELOW 0321;CM # COMBINING PALATALIZED HOOK BELOW 0322;CM # COMBINING RETROFLEX HOOK BELOW 0323;CM # COMBINING DOT BELOW 0324;CM # COMBINING DIAERESIS BELOW 0325;CM # COMBINING RING BELOW 0326;CM # COMBINING COMMA BELOW 0327;CM # COMBINING CEDILLA 0328;CM # COMBINING OGONEK 0329;CM # COMBINING VERTICAL LINE BELOW 032A;CM # COMBINING BRIDGE BELOW 032B;CM # COMBINING INVERTED DOUBLE ARCH BELOW 032C;CM # COMBINING CARON BELOW 032D;CM # COMBINING CIRCUMFLEX ACCENT BELOW 032E;CM # COMBINING BREVE BELOW 032F;CM # COMBINING INVERTED BREVE BELOW 0330;CM # COMBINING TILDE BELOW 0331;CM # COMBINING MACRON BELOW 0332;CM # COMBINING LOW LINE 0333;CM # COMBINING DOUBLE LOW LINE 0334;CM # COMBINING TILDE OVERLAY 0335;CM # COMBINING SHORT STROKE OVERLAY 0336;CM # COMBINING LONG STROKE OVERLAY 0337;CM # COMBINING SHORT SOLIDUS OVERLAY 0338;CM # COMBINING LONG SOLIDUS OVERLAY 0339;CM # COMBINING RIGHT HALF RING BELOW 033A;CM # COMBINING INVERTED BRIDGE BELOW 033B;CM # COMBINING SQUARE BELOW 033C;CM # COMBINING SEAGULL BELOW 033D;CM # COMBINING X ABOVE 033E;CM # COMBINING VERTICAL TILDE 033F;CM # COMBINING DOUBLE OVERLINE 0340;CM # COMBINING GRAVE TONE MARK 0341;CM # COMBINING ACUTE TONE MARK 0342;CM # COMBINING GREEK PERISPOMENI 0343;CM # COMBINING GREEK KORONIS 0344;CM # COMBINING GREEK DIALYTIKA TONOS 0345;CM # COMBINING GREEK YPOGEGRAMMENI 0346;CM # COMBINING BRIDGE ABOVE 0347;CM # COMBINING EQUALS SIGN BELOW 0348;CM # COMBINING DOUBLE VERTICAL LINE BELOW 0349;CM # COMBINING LEFT ANGLE BELOW 034A;CM # COMBINING NOT TILDE ABOVE 034B;CM # COMBINING HOMOTHETIC ABOVE 034C;CM # COMBINING ALMOST EQUAL TO ABOVE 034D;CM # COMBINING LEFT RIGHT ARROW BELOW 034E;CM # COMBINING UPWARDS ARROW BELOW 034F;CM # COMBINING GRAPHEME JOINER 0360;CM # COMBINING DOUBLE TILDE 0361;CM # COMBINING DOUBLE INVERTED BREVE 0362;CM # COMBINING DOUBLE RIGHTWARDS ARROW BELOW 0363;CM # COMBINING LATIN SMALL LETTER A 0364;CM # COMBINING LATIN SMALL LETTER E 0365;CM # COMBINING LATIN SMALL LETTER I 0366;CM # COMBINING LATIN SMALL LETTER O 0367;CM # COMBINING LATIN SMALL LETTER U 0368;CM # COMBINING LATIN SMALL LETTER C 0369;CM # COMBINING LATIN SMALL LETTER D 036A;CM # COMBINING LATIN SMALL LETTER H 036B;CM # COMBINING LATIN SMALL LETTER M 036C;CM # COMBINING LATIN SMALL LETTER R 036D;CM # COMBINING LATIN SMALL LETTER T 036E;CM # COMBINING LATIN SMALL LETTER V 036F;CM # COMBINING LATIN SMALL LETTER X 0374;AL # GREEK NUMERAL SIGN 0375;AL # GREEK LOWER NUMERAL SIGN 037A;AL # GREEK YPOGEGRAMMENI 037E;AL # GREEK QUESTION MARK 0384;AL # GREEK TONOS 0385;AL # GREEK DIALYTIKA TONOS 0386;AL # GREEK CAPITAL LETTER ALPHA WITH TONOS 0387;AL # GREEK ANO TELEIA 0388;AL # GREEK CAPITAL LETTER EPSILON WITH TONOS 0389;AL # GREEK CAPITAL LETTER ETA WITH TONOS 038A;AL # GREEK CAPITAL LETTER IOTA WITH TONOS 038C;AL # GREEK CAPITAL LETTER OMICRON WITH TONOS 038E;AL # GREEK CAPITAL LETTER UPSILON WITH TONOS 038F;AL # GREEK CAPITAL LETTER OMEGA WITH TONOS 0390;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0391;AI # GREEK CAPITAL LETTER ALPHA 0392;AI # GREEK CAPITAL LETTER BETA 0393;AI # GREEK CAPITAL LETTER GAMMA 0394;AI # GREEK CAPITAL LETTER DELTA 0395;AI # GREEK CAPITAL LETTER EPSILON 0396;AI # GREEK CAPITAL LETTER ZETA 0397;AI # GREEK CAPITAL LETTER ETA 0398;AI # GREEK CAPITAL LETTER THETA 0399;AI # GREEK CAPITAL LETTER IOTA 039A;AI # GREEK CAPITAL LETTER KAPPA 039B;AI # GREEK CAPITAL LETTER LAMDA 039C;AI # GREEK CAPITAL LETTER MU 039D;AI # GREEK CAPITAL LETTER NU 039E;AI # GREEK CAPITAL LETTER XI 039F;AI # GREEK CAPITAL LETTER OMICRON 03A0;AI # GREEK CAPITAL LETTER PI 03A1;AI # GREEK CAPITAL LETTER RHO 03A3;AI # GREEK CAPITAL LETTER SIGMA 03A4;AI # GREEK CAPITAL LETTER TAU 03A5;AI # GREEK CAPITAL LETTER UPSILON 03A6;AI # GREEK CAPITAL LETTER PHI 03A7;AI # GREEK CAPITAL LETTER CHI 03A8;AI # GREEK CAPITAL LETTER PSI 03A9;AI # GREEK CAPITAL LETTER OMEGA 03AA;AL # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 03AB;AL # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 03AC;AL # GREEK SMALL LETTER ALPHA WITH TONOS 03AD;AL # GREEK SMALL LETTER EPSILON WITH TONOS 03AE;AL # GREEK SMALL LETTER ETA WITH TONOS 03AF;AL # GREEK SMALL LETTER IOTA WITH TONOS 03B0;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 03B1;AI # GREEK SMALL LETTER ALPHA 03B2;AI # GREEK SMALL LETTER BETA 03B3;AI # GREEK SMALL LETTER GAMMA 03B4;AI # GREEK SMALL LETTER DELTA 03B5;AI # GREEK SMALL LETTER EPSILON 03B6;AI # GREEK SMALL LETTER ZETA 03B7;AI # GREEK SMALL LETTER ETA 03B8;AI # GREEK SMALL LETTER THETA 03B9;AI # GREEK SMALL LETTER IOTA 03BA;AI # GREEK SMALL LETTER KAPPA 03BB;AI # GREEK SMALL LETTER LAMDA 03BC;AI # GREEK SMALL LETTER MU 03BD;AI # GREEK SMALL LETTER NU 03BE;AI # GREEK SMALL LETTER XI 03BF;AI # GREEK SMALL LETTER OMICRON 03C0;AI # GREEK SMALL LETTER PI 03C1;AI # GREEK SMALL LETTER RHO 03C2;AL # GREEK SMALL LETTER FINAL SIGMA 03C3;AI # GREEK SMALL LETTER SIGMA 03C4;AI # GREEK SMALL LETTER TAU 03C5;AI # GREEK SMALL LETTER UPSILON 03C6;AI # GREEK SMALL LETTER PHI 03C7;AI # GREEK SMALL LETTER CHI 03C8;AI # GREEK SMALL LETTER PSI 03C9;AI # GREEK SMALL LETTER OMEGA 03CA;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA 03CB;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA 03CC;AL # GREEK SMALL LETTER OMICRON WITH TONOS 03CD;AL # GREEK SMALL LETTER UPSILON WITH TONOS 03CE;AL # GREEK SMALL LETTER OMEGA WITH TONOS 03D0;AL # GREEK BETA SYMBOL 03D1;AL # GREEK THETA SYMBOL 03D2;AL # GREEK UPSILON WITH HOOK SYMBOL 03D3;AL # GREEK UPSILON WITH ACUTE AND HOOK SYMBOL 03D4;AL # GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL 03D5;AL # GREEK PHI SYMBOL 03D6;AL # GREEK PI SYMBOL 03D7;AL # GREEK KAI SYMBOL 03D8;AL # GREEK LETTER ARCHAIC KOPPA 03D9;AL # GREEK SMALL LETTER ARCHAIC KOPPA 03DA;AL # GREEK LETTER STIGMA 03DB;AL # GREEK SMALL LETTER STIGMA 03DC;AL # GREEK LETTER DIGAMMA 03DD;AL # GREEK SMALL LETTER DIGAMMA 03DE;AL # GREEK LETTER KOPPA 03DF;AL # GREEK SMALL LETTER KOPPA 03E0;AL # GREEK LETTER SAMPI 03E1;AL # GREEK SMALL LETTER SAMPI 03E2;AL # COPTIC CAPITAL LETTER SHEI 03E3;AL # COPTIC SMALL LETTER SHEI 03E4;AL # COPTIC CAPITAL LETTER FEI 03E5;AL # COPTIC SMALL LETTER FEI 03E6;AL # COPTIC CAPITAL LETTER KHEI 03E7;AL # COPTIC SMALL LETTER KHEI 03E8;AL # COPTIC CAPITAL LETTER HORI 03E9;AL # COPTIC SMALL LETTER HORI 03EA;AL # COPTIC CAPITAL LETTER GANGIA 03EB;AL # COPTIC SMALL LETTER GANGIA 03EC;AL # COPTIC CAPITAL LETTER SHIMA 03ED;AL # COPTIC SMALL LETTER SHIMA 03EE;AL # COPTIC CAPITAL LETTER DEI 03EF;AL # COPTIC SMALL LETTER DEI 03F0;AL # GREEK KAPPA SYMBOL 03F1;AL # GREEK RHO SYMBOL 03F2;AL # GREEK LUNATE SIGMA SYMBOL 03F3;AL # GREEK LETTER YOT 03F4;AL # GREEK CAPITAL THETA SYMBOL 03F5;AL # GREEK LUNATE EPSILON SYMBOL 03F6;AL # GREEK REVERSED LUNATE EPSILON SYMBOL 0400;AL # CYRILLIC CAPITAL LETTER IE WITH GRAVE 0401;AI # CYRILLIC CAPITAL LETTER IO 0402;AL # CYRILLIC CAPITAL LETTER DJE 0403;AL # CYRILLIC CAPITAL LETTER GJE 0404;AL # CYRILLIC CAPITAL LETTER UKRAINIAN IE 0405;AL # CYRILLIC CAPITAL LETTER DZE 0406;AL # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 0407;AL # CYRILLIC CAPITAL LETTER YI 0408;AL # CYRILLIC CAPITAL LETTER JE 0409;AL # CYRILLIC CAPITAL LETTER LJE 040A;AL # CYRILLIC CAPITAL LETTER NJE 040B;AL # CYRILLIC CAPITAL LETTER TSHE 040C;AL # CYRILLIC CAPITAL LETTER KJE 040D;AL # CYRILLIC CAPITAL LETTER I WITH GRAVE 040E;AL # CYRILLIC CAPITAL LETTER SHORT U 040F;AL # CYRILLIC CAPITAL LETTER DZHE 0410;AI # CYRILLIC CAPITAL LETTER A 0411;AI # CYRILLIC CAPITAL LETTER BE 0412;AI # CYRILLIC CAPITAL LETTER VE 0413;AI # CYRILLIC CAPITAL LETTER GHE 0414;AI # CYRILLIC CAPITAL LETTER DE 0415;AI # CYRILLIC CAPITAL LETTER IE 0416;AI # CYRILLIC CAPITAL LETTER ZHE 0417;AI # CYRILLIC CAPITAL LETTER ZE 0418;AI # CYRILLIC CAPITAL LETTER I 0419;AI # CYRILLIC CAPITAL LETTER SHORT I 041A;AI # CYRILLIC CAPITAL LETTER KA 041B;AI # CYRILLIC CAPITAL LETTER EL 041C;AI # CYRILLIC CAPITAL LETTER EM 041D;AI # CYRILLIC CAPITAL LETTER EN 041E;AI # CYRILLIC CAPITAL LETTER O 041F;AI # CYRILLIC CAPITAL LETTER PE 0420;AI # CYRILLIC CAPITAL LETTER ER 0421;AI # CYRILLIC CAPITAL LETTER ES 0422;AI # CYRILLIC CAPITAL LETTER TE 0423;AI # CYRILLIC CAPITAL LETTER U 0424;AI # CYRILLIC CAPITAL LETTER EF 0425;AI # CYRILLIC CAPITAL LETTER HA 0426;AI # CYRILLIC CAPITAL LETTER TSE 0427;AI # CYRILLIC CAPITAL LETTER CHE 0428;AI # CYRILLIC CAPITAL LETTER SHA 0429;AI # CYRILLIC CAPITAL LETTER SHCHA 042A;AI # CYRILLIC CAPITAL LETTER HARD SIGN 042B;AI # CYRILLIC CAPITAL LETTER YERU 042C;AI # CYRILLIC CAPITAL LETTER SOFT SIGN 042D;AI # CYRILLIC CAPITAL LETTER E 042E;AI # CYRILLIC CAPITAL LETTER YU 042F;AI # CYRILLIC CAPITAL LETTER YA 0430;AI # CYRILLIC SMALL LETTER A 0431;AI # CYRILLIC SMALL LETTER BE 0432;AI # CYRILLIC SMALL LETTER VE 0433;AI # CYRILLIC SMALL LETTER GHE 0434;AI # CYRILLIC SMALL LETTER DE 0435;AI # CYRILLIC SMALL LETTER IE 0436;AI # CYRILLIC SMALL LETTER ZHE 0437;AI # CYRILLIC SMALL LETTER ZE 0438;AI # CYRILLIC SMALL LETTER I 0439;AI # CYRILLIC SMALL LETTER SHORT I 043A;AI # CYRILLIC SMALL LETTER KA 043B;AI # CYRILLIC SMALL LETTER EL 043C;AI # CYRILLIC SMALL LETTER EM 043D;AI # CYRILLIC SMALL LETTER EN 043E;AI # CYRILLIC SMALL LETTER O 043F;AI # CYRILLIC SMALL LETTER PE 0440;AI # CYRILLIC SMALL LETTER ER 0441;AI # CYRILLIC SMALL LETTER ES 0442;AI # CYRILLIC SMALL LETTER TE 0443;AI # CYRILLIC SMALL LETTER U 0444;AI # CYRILLIC SMALL LETTER EF 0445;AI # CYRILLIC SMALL LETTER HA 0446;AI # CYRILLIC SMALL LETTER TSE 0447;AI # CYRILLIC SMALL LETTER CHE 0448;AI # CYRILLIC SMALL LETTER SHA 0449;AI # CYRILLIC SMALL LETTER SHCHA 044A;AI # CYRILLIC SMALL LETTER HARD SIGN 044B;AI # CYRILLIC SMALL LETTER YERU 044C;AI # CYRILLIC SMALL LETTER SOFT SIGN 044D;AI # CYRILLIC SMALL LETTER E 044E;AI # CYRILLIC SMALL LETTER YU 044F;AI # CYRILLIC SMALL LETTER YA 0450;AL # CYRILLIC SMALL LETTER IE WITH GRAVE 0451;AI # CYRILLIC SMALL LETTER IO 0452;AL # CYRILLIC SMALL LETTER DJE 0453;AL # CYRILLIC SMALL LETTER GJE 0454;AL # CYRILLIC SMALL LETTER UKRAINIAN IE 0455;AL # CYRILLIC SMALL LETTER DZE 0456;AL # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I 0457;AL # CYRILLIC SMALL LETTER YI 0458;AL # CYRILLIC SMALL LETTER JE 0459;AL # CYRILLIC SMALL LETTER LJE 045A;AL # CYRILLIC SMALL LETTER NJE 045B;AL # CYRILLIC SMALL LETTER TSHE 045C;AL # CYRILLIC SMALL LETTER KJE 045D;AL # CYRILLIC SMALL LETTER I WITH GRAVE 045E;AL # CYRILLIC SMALL LETTER SHORT U 045F;AL # CYRILLIC SMALL LETTER DZHE 0460;AL # CYRILLIC CAPITAL LETTER OMEGA 0461;AL # CYRILLIC SMALL LETTER OMEGA 0462;AL # CYRILLIC CAPITAL LETTER YAT 0463;AL # CYRILLIC SMALL LETTER YAT 0464;AL # CYRILLIC CAPITAL LETTER IOTIFIED E 0465;AL # CYRILLIC SMALL LETTER IOTIFIED E 0466;AL # CYRILLIC CAPITAL LETTER LITTLE YUS 0467;AL # CYRILLIC SMALL LETTER LITTLE YUS 0468;AL # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS 0469;AL # CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS 046A;AL # CYRILLIC CAPITAL LETTER BIG YUS 046B;AL # CYRILLIC SMALL LETTER BIG YUS 046C;AL # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS 046D;AL # CYRILLIC SMALL LETTER IOTIFIED BIG YUS 046E;AL # CYRILLIC CAPITAL LETTER KSI 046F;AL # CYRILLIC SMALL LETTER KSI 0470;AL # CYRILLIC CAPITAL LETTER PSI 0471;AL # CYRILLIC SMALL LETTER PSI 0472;AL # CYRILLIC CAPITAL LETTER FITA 0473;AL # CYRILLIC SMALL LETTER FITA 0474;AL # CYRILLIC CAPITAL LETTER IZHITSA 0475;AL # CYRILLIC SMALL LETTER IZHITSA 0476;AL # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0477;AL # CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0478;AL # CYRILLIC CAPITAL LETTER UK 0479;AL # CYRILLIC SMALL LETTER UK 047A;AL # CYRILLIC CAPITAL LETTER ROUND OMEGA 047B;AL # CYRILLIC SMALL LETTER ROUND OMEGA 047C;AL # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO 047D;AL # CYRILLIC SMALL LETTER OMEGA WITH TITLO 047E;AL # CYRILLIC CAPITAL LETTER OT 047F;AL # CYRILLIC SMALL LETTER OT 0480;AL # CYRILLIC CAPITAL LETTER KOPPA 0481;AL # CYRILLIC SMALL LETTER KOPPA 0482;AL # CYRILLIC THOUSANDS SIGN 0483;CM # COMBINING CYRILLIC TITLO 0484;CM # COMBINING CYRILLIC PALATALIZATION 0485;CM # COMBINING CYRILLIC DASIA PNEUMATA 0486;CM # COMBINING CYRILLIC PSILI PNEUMATA 0488;CM # COMBINING CYRILLIC HUNDRED THOUSANDS SIGN 0489;CM # COMBINING CYRILLIC MILLIONS SIGN 048A;AL # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL 048B;AL # CYRILLIC SMALL LETTER SHORT I WITH TAIL 048C;AL # CYRILLIC CAPITAL LETTER SEMISOFT SIGN 048D;AL # CYRILLIC SMALL LETTER SEMISOFT SIGN 048E;AL # CYRILLIC CAPITAL LETTER ER WITH TICK 048F;AL # CYRILLIC SMALL LETTER ER WITH TICK 0490;AL # CYRILLIC CAPITAL LETTER GHE WITH UPTURN 0491;AL # CYRILLIC SMALL LETTER GHE WITH UPTURN 0492;AL # CYRILLIC CAPITAL LETTER GHE WITH STROKE 0493;AL # CYRILLIC SMALL LETTER GHE WITH STROKE 0494;AL # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK 0495;AL # CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK 0496;AL # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER 0497;AL # CYRILLIC SMALL LETTER ZHE WITH DESCENDER 0498;AL # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER 0499;AL # CYRILLIC SMALL LETTER ZE WITH DESCENDER 049A;AL # CYRILLIC CAPITAL LETTER KA WITH DESCENDER 049B;AL # CYRILLIC SMALL LETTER KA WITH DESCENDER 049C;AL # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE 049D;AL # CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE 049E;AL # CYRILLIC CAPITAL LETTER KA WITH STROKE 049F;AL # CYRILLIC SMALL LETTER KA WITH STROKE 04A0;AL # CYRILLIC CAPITAL LETTER BASHKIR KA 04A1;AL # CYRILLIC SMALL LETTER BASHKIR KA 04A2;AL # CYRILLIC CAPITAL LETTER EN WITH DESCENDER 04A3;AL # CYRILLIC SMALL LETTER EN WITH DESCENDER 04A4;AL # CYRILLIC CAPITAL LIGATURE EN GHE 04A5;AL # CYRILLIC SMALL LIGATURE EN GHE 04A6;AL # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK 04A7;AL # CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK 04A8;AL # CYRILLIC CAPITAL LETTER ABKHASIAN HA 04A9;AL # CYRILLIC SMALL LETTER ABKHASIAN HA 04AA;AL # CYRILLIC CAPITAL LETTER ES WITH DESCENDER 04AB;AL # CYRILLIC SMALL LETTER ES WITH DESCENDER 04AC;AL # CYRILLIC CAPITAL LETTER TE WITH DESCENDER 04AD;AL # CYRILLIC SMALL LETTER TE WITH DESCENDER 04AE;AL # CYRILLIC CAPITAL LETTER STRAIGHT U 04AF;AL # CYRILLIC SMALL LETTER STRAIGHT U 04B0;AL # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE 04B1;AL # CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE 04B2;AL # CYRILLIC CAPITAL LETTER HA WITH DESCENDER 04B3;AL # CYRILLIC SMALL LETTER HA WITH DESCENDER 04B4;AL # CYRILLIC CAPITAL LIGATURE TE TSE 04B5;AL # CYRILLIC SMALL LIGATURE TE TSE 04B6;AL # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER 04B7;AL # CYRILLIC SMALL LETTER CHE WITH DESCENDER 04B8;AL # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE 04B9;AL # CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE 04BA;AL # CYRILLIC CAPITAL LETTER SHHA 04BB;AL # CYRILLIC SMALL LETTER SHHA 04BC;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE 04BD;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE 04BE;AL # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER 04BF;AL # CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER 04C0;AL # CYRILLIC LETTER PALOCHKA 04C1;AL # CYRILLIC CAPITAL LETTER ZHE WITH BREVE 04C2;AL # CYRILLIC SMALL LETTER ZHE WITH BREVE 04C3;AL # CYRILLIC CAPITAL LETTER KA WITH HOOK 04C4;AL # CYRILLIC SMALL LETTER KA WITH HOOK 04C5;AL # CYRILLIC CAPITAL LETTER EL WITH TAIL 04C6;AL # CYRILLIC SMALL LETTER EL WITH TAIL 04C7;AL # CYRILLIC CAPITAL LETTER EN WITH HOOK 04C8;AL # CYRILLIC SMALL LETTER EN WITH HOOK 04C9;AL # CYRILLIC CAPITAL LETTER EN WITH TAIL 04CA;AL # CYRILLIC SMALL LETTER EN WITH TAIL 04CB;AL # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE 04CC;AL # CYRILLIC SMALL LETTER KHAKASSIAN CHE 04CD;AL # CYRILLIC CAPITAL LETTER EM WITH TAIL 04CE;AL # CYRILLIC SMALL LETTER EM WITH TAIL 04D0;AL # CYRILLIC CAPITAL LETTER A WITH BREVE 04D1;AL # CYRILLIC SMALL LETTER A WITH BREVE 04D2;AL # CYRILLIC CAPITAL LETTER A WITH DIAERESIS 04D3;AL # CYRILLIC SMALL LETTER A WITH DIAERESIS 04D4;AL # CYRILLIC CAPITAL LIGATURE A IE 04D5;AL # CYRILLIC SMALL LIGATURE A IE 04D6;AL # CYRILLIC CAPITAL LETTER IE WITH BREVE 04D7;AL # CYRILLIC SMALL LETTER IE WITH BREVE 04D8;AL # CYRILLIC CAPITAL LETTER SCHWA 04D9;AL # CYRILLIC SMALL LETTER SCHWA 04DA;AL # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS 04DB;AL # CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS 04DC;AL # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS 04DD;AL # CYRILLIC SMALL LETTER ZHE WITH DIAERESIS 04DE;AL # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS 04DF;AL # CYRILLIC SMALL LETTER ZE WITH DIAERESIS 04E0;AL # CYRILLIC CAPITAL LETTER ABKHASIAN DZE 04E1;AL # CYRILLIC SMALL LETTER ABKHASIAN DZE 04E2;AL # CYRILLIC CAPITAL LETTER I WITH MACRON 04E3;AL # CYRILLIC SMALL LETTER I WITH MACRON 04E4;AL # CYRILLIC CAPITAL LETTER I WITH DIAERESIS 04E5;AL # CYRILLIC SMALL LETTER I WITH DIAERESIS 04E6;AL # CYRILLIC CAPITAL LETTER O WITH DIAERESIS 04E7;AL # CYRILLIC SMALL LETTER O WITH DIAERESIS 04E8;AL # CYRILLIC CAPITAL LETTER BARRED O 04E9;AL # CYRILLIC SMALL LETTER BARRED O 04EA;AL # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS 04EB;AL # CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS 04EC;AL # CYRILLIC CAPITAL LETTER E WITH DIAERESIS 04ED;AL # CYRILLIC SMALL LETTER E WITH DIAERESIS 04EE;AL # CYRILLIC CAPITAL LETTER U WITH MACRON 04EF;AL # CYRILLIC SMALL LETTER U WITH MACRON 04F0;AL # CYRILLIC CAPITAL LETTER U WITH DIAERESIS 04F1;AL # CYRILLIC SMALL LETTER U WITH DIAERESIS 04F2;AL # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE 04F3;AL # CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE 04F4;AL # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS 04F5;AL # CYRILLIC SMALL LETTER CHE WITH DIAERESIS 04F8;AL # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS 04F9;AL # CYRILLIC SMALL LETTER YERU WITH DIAERESIS 0500;AL # CYRILLIC CAPITAL LETTER KOMI DE 0501;AL # CYRILLIC SMALL LETTER KOMI DE 0502;AL # CYRILLIC CAPITAL LETTER KOMI DJE 0503;AL # CYRILLIC SMALL LETTER KOMI DJE 0504;AL # CYRILLIC CAPITAL LETTER KOMI ZJE 0505;AL # CYRILLIC SMALL LETTER KOMI ZJE 0506;AL # CYRILLIC CAPITAL LETTER KOMI DZJE 0507;AL # CYRILLIC SMALL LETTER KOMI DZJE 0508;AL # CYRILLIC CAPITAL LETTER KOMI LJE 0509;AL # CYRILLIC SMALL LETTER KOMI LJE 050A;AL # CYRILLIC CAPITAL LETTER KOMI NJE 050B;AL # CYRILLIC SMALL LETTER KOMI NJE 050C;AL # CYRILLIC CAPITAL LETTER KOMI SJE 050D;AL # CYRILLIC SMALL LETTER KOMI SJE 050E;AL # CYRILLIC CAPITAL LETTER KOMI TJE 050F;AL # CYRILLIC SMALL LETTER KOMI TJE 0531;AL # ARMENIAN CAPITAL LETTER AYB 0532;AL # ARMENIAN CAPITAL LETTER BEN 0533;AL # ARMENIAN CAPITAL LETTER GIM 0534;AL # ARMENIAN CAPITAL LETTER DA 0535;AL # ARMENIAN CAPITAL LETTER ECH 0536;AL # ARMENIAN CAPITAL LETTER ZA 0537;AL # ARMENIAN CAPITAL LETTER EH 0538;AL # ARMENIAN CAPITAL LETTER ET 0539;AL # ARMENIAN CAPITAL LETTER TO 053A;AL # ARMENIAN CAPITAL LETTER ZHE 053B;AL # ARMENIAN CAPITAL LETTER INI 053C;AL # ARMENIAN CAPITAL LETTER LIWN 053D;AL # ARMENIAN CAPITAL LETTER XEH 053E;AL # ARMENIAN CAPITAL LETTER CA 053F;AL # ARMENIAN CAPITAL LETTER KEN 0540;AL # ARMENIAN CAPITAL LETTER HO 0541;AL # ARMENIAN CAPITAL LETTER JA 0542;AL # ARMENIAN CAPITAL LETTER GHAD 0543;AL # ARMENIAN CAPITAL LETTER CHEH 0544;AL # ARMENIAN CAPITAL LETTER MEN 0545;AL # ARMENIAN CAPITAL LETTER YI 0546;AL # ARMENIAN CAPITAL LETTER NOW 0547;AL # ARMENIAN CAPITAL LETTER SHA 0548;AL # ARMENIAN CAPITAL LETTER VO 0549;AL # ARMENIAN CAPITAL LETTER CHA 054A;AL # ARMENIAN CAPITAL LETTER PEH 054B;AL # ARMENIAN CAPITAL LETTER JHEH 054C;AL # ARMENIAN CAPITAL LETTER RA 054D;AL # ARMENIAN CAPITAL LETTER SEH 054E;AL # ARMENIAN CAPITAL LETTER VEW 054F;AL # ARMENIAN CAPITAL LETTER TIWN 0550;AL # ARMENIAN CAPITAL LETTER REH 0551;AL # ARMENIAN CAPITAL LETTER CO 0552;AL # ARMENIAN CAPITAL LETTER YIWN 0553;AL # ARMENIAN CAPITAL LETTER PIWR 0554;AL # ARMENIAN CAPITAL LETTER KEH 0555;AL # ARMENIAN CAPITAL LETTER OH 0556;AL # ARMENIAN CAPITAL LETTER FEH 0559;AL # ARMENIAN MODIFIER LETTER LEFT HALF RING 055A;AL # ARMENIAN APOSTROPHE 055B;AL # ARMENIAN EMPHASIS MARK 055C;AL # ARMENIAN EXCLAMATION MARK 055D;AL # ARMENIAN COMMA 055E;AL # ARMENIAN QUESTION MARK 055F;AL # ARMENIAN ABBREVIATION MARK 0561;AL # ARMENIAN SMALL LETTER AYB 0562;AL # ARMENIAN SMALL LETTER BEN 0563;AL # ARMENIAN SMALL LETTER GIM 0564;AL # ARMENIAN SMALL LETTER DA 0565;AL # ARMENIAN SMALL LETTER ECH 0566;AL # ARMENIAN SMALL LETTER ZA 0567;AL # ARMENIAN SMALL LETTER EH 0568;AL # ARMENIAN SMALL LETTER ET 0569;AL # ARMENIAN SMALL LETTER TO 056A;AL # ARMENIAN SMALL LETTER ZHE 056B;AL # ARMENIAN SMALL LETTER INI 056C;AL # ARMENIAN SMALL LETTER LIWN 056D;AL # ARMENIAN SMALL LETTER XEH 056E;AL # ARMENIAN SMALL LETTER CA 056F;AL # ARMENIAN SMALL LETTER KEN 0570;AL # ARMENIAN SMALL LETTER HO 0571;AL # ARMENIAN SMALL LETTER JA 0572;AL # ARMENIAN SMALL LETTER GHAD 0573;AL # ARMENIAN SMALL LETTER CHEH 0574;AL # ARMENIAN SMALL LETTER MEN 0575;AL # ARMENIAN SMALL LETTER YI 0576;AL # ARMENIAN SMALL LETTER NOW 0577;AL # ARMENIAN SMALL LETTER SHA 0578;AL # ARMENIAN SMALL LETTER VO 0579;AL # ARMENIAN SMALL LETTER CHA 057A;AL # ARMENIAN SMALL LETTER PEH 057B;AL # ARMENIAN SMALL LETTER JHEH 057C;AL # ARMENIAN SMALL LETTER RA 057D;AL # ARMENIAN SMALL LETTER SEH 057E;AL # ARMENIAN SMALL LETTER VEW 057F;AL # ARMENIAN SMALL LETTER TIWN 0580;AL # ARMENIAN SMALL LETTER REH 0581;AL # ARMENIAN SMALL LETTER CO 0582;AL # ARMENIAN SMALL LETTER YIWN 0583;AL # ARMENIAN SMALL LETTER PIWR 0584;AL # ARMENIAN SMALL LETTER KEH 0585;AL # ARMENIAN SMALL LETTER OH 0586;AL # ARMENIAN SMALL LETTER FEH 0587;AL # ARMENIAN SMALL LIGATURE ECH YIWN 0589;IS # ARMENIAN FULL STOP 058A;BA # ARMENIAN HYPHEN 0591;CM # HEBREW ACCENT ETNAHTA 0592;CM # HEBREW ACCENT SEGOL 0593;CM # HEBREW ACCENT SHALSHELET 0594;CM # HEBREW ACCENT ZAQEF QATAN 0595;CM # HEBREW ACCENT ZAQEF GADOL 0596;CM # HEBREW ACCENT TIPEHA 0597;CM # HEBREW ACCENT REVIA 0598;CM # HEBREW ACCENT ZARQA 0599;CM # HEBREW ACCENT PASHTA 059A;CM # HEBREW ACCENT YETIV 059B;CM # HEBREW ACCENT TEVIR 059C;CM # HEBREW ACCENT GERESH 059D;CM # HEBREW ACCENT GERESH MUQDAM 059E;CM # HEBREW ACCENT GERSHAYIM 059F;CM # HEBREW ACCENT QARNEY PARA 05A0;CM # HEBREW ACCENT TELISHA GEDOLA 05A1;CM # HEBREW ACCENT PAZER 05A3;CM # HEBREW ACCENT MUNAH 05A4;CM # HEBREW ACCENT MAHAPAKH 05A5;CM # HEBREW ACCENT MERKHA 05A6;CM # HEBREW ACCENT MERKHA KEFULA 05A7;CM # HEBREW ACCENT DARGA 05A8;CM # HEBREW ACCENT QADMA 05A9;CM # HEBREW ACCENT TELISHA QETANA 05AA;CM # HEBREW ACCENT YERAH BEN YOMO 05AB;CM # HEBREW ACCENT OLE 05AC;CM # HEBREW ACCENT ILUY 05AD;CM # HEBREW ACCENT DEHI 05AE;CM # HEBREW ACCENT ZINOR 05AF;CM # HEBREW MARK MASORA CIRCLE 05B0;CM # HEBREW POINT SHEVA 05B1;CM # HEBREW POINT HATAF SEGOL 05B2;CM # HEBREW POINT HATAF PATAH 05B3;CM # HEBREW POINT HATAF QAMATS 05B4;CM # HEBREW POINT HIRIQ 05B5;CM # HEBREW POINT TSERE 05B6;CM # HEBREW POINT SEGOL 05B7;CM # HEBREW POINT PATAH 05B8;CM # HEBREW POINT QAMATS 05B9;CM # HEBREW POINT HOLAM 05BB;CM # HEBREW POINT QUBUTS 05BC;CM # HEBREW POINT DAGESH OR MAPIQ 05BD;CM # HEBREW POINT METEG 05BE;AL # HEBREW PUNCTUATION MAQAF 05BF;CM # HEBREW POINT RAFE 05C0;AL # HEBREW PUNCTUATION PASEQ 05C1;CM # HEBREW POINT SHIN DOT 05C2;CM # HEBREW POINT SIN DOT 05C3;AL # HEBREW PUNCTUATION SOF PASUQ 05C4;CM # HEBREW MARK UPPER DOT 05D0;AL # HEBREW LETTER ALEF 05D1;AL # HEBREW LETTER BET 05D2;AL # HEBREW LETTER GIMEL 05D3;AL # HEBREW LETTER DALET 05D4;AL # HEBREW LETTER HE 05D5;AL # HEBREW LETTER VAV 05D6;AL # HEBREW LETTER ZAYIN 05D7;AL # HEBREW LETTER HET 05D8;AL # HEBREW LETTER TET 05D9;AL # HEBREW LETTER YOD 05DA;AL # HEBREW LETTER FINAL KAF 05DB;AL # HEBREW LETTER KAF 05DC;AL # HEBREW LETTER LAMED 05DD;AL # HEBREW LETTER FINAL MEM 05DE;AL # HEBREW LETTER MEM 05DF;AL # HEBREW LETTER FINAL NUN 05E0;AL # HEBREW LETTER NUN 05E1;AL # HEBREW LETTER SAMEKH 05E2;AL # HEBREW LETTER AYIN 05E3;AL # HEBREW LETTER FINAL PE 05E4;AL # HEBREW LETTER PE 05E5;AL # HEBREW LETTER FINAL TSADI 05E6;AL # HEBREW LETTER TSADI 05E7;AL # HEBREW LETTER QOF 05E8;AL # HEBREW LETTER RESH 05E9;AL # HEBREW LETTER SHIN 05EA;AL # HEBREW LETTER TAV 05F0;AL # HEBREW LIGATURE YIDDISH DOUBLE VAV 05F1;AL # HEBREW LIGATURE YIDDISH VAV YOD 05F2;AL # HEBREW LIGATURE YIDDISH DOUBLE YOD 05F3;AL # HEBREW PUNCTUATION GERESH 05F4;AL # HEBREW PUNCTUATION GERSHAYIM 060C;AL # ARABIC COMMA 061B;AL # ARABIC SEMICOLON 061F;AL # ARABIC QUESTION MARK 0621;AL # ARABIC LETTER HAMZA 0622;AL # ARABIC LETTER ALEF WITH MADDA ABOVE 0623;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE 0624;AL # ARABIC LETTER WAW WITH HAMZA ABOVE 0625;AL # ARABIC LETTER ALEF WITH HAMZA BELOW 0626;AL # ARABIC LETTER YEH WITH HAMZA ABOVE 0627;AL # ARABIC LETTER ALEF 0628;AL # ARABIC LETTER BEH 0629;AL # ARABIC LETTER TEH MARBUTA 062A;AL # ARABIC LETTER TEH 062B;AL # ARABIC LETTER THEH 062C;AL # ARABIC LETTER JEEM 062D;AL # ARABIC LETTER HAH 062E;AL # ARABIC LETTER KHAH 062F;AL # ARABIC LETTER DAL 0630;AL # ARABIC LETTER THAL 0631;AL # ARABIC LETTER REH 0632;AL # ARABIC LETTER ZAIN 0633;AL # ARABIC LETTER SEEN 0634;AL # ARABIC LETTER SHEEN 0635;AL # ARABIC LETTER SAD 0636;AL # ARABIC LETTER DAD 0637;AL # ARABIC LETTER TAH 0638;AL # ARABIC LETTER ZAH 0639;AL # ARABIC LETTER AIN 063A;AL # ARABIC LETTER GHAIN 0640;AL # ARABIC TATWEEL 0641;AL # ARABIC LETTER FEH 0642;AL # ARABIC LETTER QAF 0643;AL # ARABIC LETTER KAF 0644;AL # ARABIC LETTER LAM 0645;AL # ARABIC LETTER MEEM 0646;AL # ARABIC LETTER NOON 0647;AL # ARABIC LETTER HEH 0648;AL # ARABIC LETTER WAW 0649;AL # ARABIC LETTER ALEF MAKSURA 064A;AL # ARABIC LETTER YEH 064B;CM # ARABIC FATHATAN 064C;CM # ARABIC DAMMATAN 064D;CM # ARABIC KASRATAN 064E;CM # ARABIC FATHA 064F;CM # ARABIC DAMMA 0650;CM # ARABIC KASRA 0651;CM # ARABIC SHADDA 0652;CM # ARABIC SUKUN 0653;CM # ARABIC MADDAH ABOVE 0654;CM # ARABIC HAMZA ABOVE 0655;CM # ARABIC HAMZA BELOW 0660;NU # ARABIC-INDIC DIGIT ZERO 0661;NU # ARABIC-INDIC DIGIT ONE 0662;NU # ARABIC-INDIC DIGIT TWO 0663;NU # ARABIC-INDIC DIGIT THREE 0664;NU # ARABIC-INDIC DIGIT FOUR 0665;NU # ARABIC-INDIC DIGIT FIVE 0666;NU # ARABIC-INDIC DIGIT SIX 0667;NU # ARABIC-INDIC DIGIT SEVEN 0668;NU # ARABIC-INDIC DIGIT EIGHT 0669;NU # ARABIC-INDIC DIGIT NINE 066A;AL # ARABIC PERCENT SIGN 066B;AL # ARABIC DECIMAL SEPARATOR 066C;AL # ARABIC THOUSANDS SEPARATOR 066D;AL # ARABIC FIVE POINTED STAR 066E;AL # ARABIC LETTER DOTLESS BEH 066F;AL # ARABIC LETTER DOTLESS QAF 0670;CM # ARABIC LETTER SUPERSCRIPT ALEF 0671;AL # ARABIC LETTER ALEF WASLA 0672;AL # ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE 0673;AL # ARABIC LETTER ALEF WITH WAVY HAMZA BELOW 0674;AL # ARABIC LETTER HIGH HAMZA 0675;AL # ARABIC LETTER HIGH HAMZA ALEF 0676;AL # ARABIC LETTER HIGH HAMZA WAW 0677;AL # ARABIC LETTER U WITH HAMZA ABOVE 0678;AL # ARABIC LETTER HIGH HAMZA YEH 0679;AL # ARABIC LETTER TTEH 067A;AL # ARABIC LETTER TTEHEH 067B;AL # ARABIC LETTER BEEH 067C;AL # ARABIC LETTER TEH WITH RING 067D;AL # ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS 067E;AL # ARABIC LETTER PEH 067F;AL # ARABIC LETTER TEHEH 0680;AL # ARABIC LETTER BEHEH 0681;AL # ARABIC LETTER HAH WITH HAMZA ABOVE 0682;AL # ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE 0683;AL # ARABIC LETTER NYEH 0684;AL # ARABIC LETTER DYEH 0685;AL # ARABIC LETTER HAH WITH THREE DOTS ABOVE 0686;AL # ARABIC LETTER TCHEH 0687;AL # ARABIC LETTER TCHEHEH 0688;AL # ARABIC LETTER DDAL 0689;AL # ARABIC LETTER DAL WITH RING 068A;AL # ARABIC LETTER DAL WITH DOT BELOW 068B;AL # ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH 068C;AL # ARABIC LETTER DAHAL 068D;AL # ARABIC LETTER DDAHAL 068E;AL # ARABIC LETTER DUL 068F;AL # ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS 0690;AL # ARABIC LETTER DAL WITH FOUR DOTS ABOVE 0691;AL # ARABIC LETTER RREH 0692;AL # ARABIC LETTER REH WITH SMALL V 0693;AL # ARABIC LETTER REH WITH RING 0694;AL # ARABIC LETTER REH WITH DOT BELOW 0695;AL # ARABIC LETTER REH WITH SMALL V BELOW 0696;AL # ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE 0697;AL # ARABIC LETTER REH WITH TWO DOTS ABOVE 0698;AL # ARABIC LETTER JEH 0699;AL # ARABIC LETTER REH WITH FOUR DOTS ABOVE 069A;AL # ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE 069B;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW 069C;AL # ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE 069D;AL # ARABIC LETTER SAD WITH TWO DOTS BELOW 069E;AL # ARABIC LETTER SAD WITH THREE DOTS ABOVE 069F;AL # ARABIC LETTER TAH WITH THREE DOTS ABOVE 06A0;AL # ARABIC LETTER AIN WITH THREE DOTS ABOVE 06A1;AL # ARABIC LETTER DOTLESS FEH 06A2;AL # ARABIC LETTER FEH WITH DOT MOVED BELOW 06A3;AL # ARABIC LETTER FEH WITH DOT BELOW 06A4;AL # ARABIC LETTER VEH 06A5;AL # ARABIC LETTER FEH WITH THREE DOTS BELOW 06A6;AL # ARABIC LETTER PEHEH 06A7;AL # ARABIC LETTER QAF WITH DOT ABOVE 06A8;AL # ARABIC LETTER QAF WITH THREE DOTS ABOVE 06A9;AL # ARABIC LETTER KEHEH 06AA;AL # ARABIC LETTER SWASH KAF 06AB;AL # ARABIC LETTER KAF WITH RING 06AC;AL # ARABIC LETTER KAF WITH DOT ABOVE 06AD;AL # ARABIC LETTER NG 06AE;AL # ARABIC LETTER KAF WITH THREE DOTS BELOW 06AF;AL # ARABIC LETTER GAF 06B0;AL # ARABIC LETTER GAF WITH RING 06B1;AL # ARABIC LETTER NGOEH 06B2;AL # ARABIC LETTER GAF WITH TWO DOTS BELOW 06B3;AL # ARABIC LETTER GUEH 06B4;AL # ARABIC LETTER GAF WITH THREE DOTS ABOVE 06B5;AL # ARABIC LETTER LAM WITH SMALL V 06B6;AL # ARABIC LETTER LAM WITH DOT ABOVE 06B7;AL # ARABIC LETTER LAM WITH THREE DOTS ABOVE 06B8;AL # ARABIC LETTER LAM WITH THREE DOTS BELOW 06B9;AL # ARABIC LETTER NOON WITH DOT BELOW 06BA;AL # ARABIC LETTER NOON GHUNNA 06BB;AL # ARABIC LETTER RNOON 06BC;AL # ARABIC LETTER NOON WITH RING 06BD;AL # ARABIC LETTER NOON WITH THREE DOTS ABOVE 06BE;AL # ARABIC LETTER HEH DOACHASHMEE 06BF;AL # ARABIC LETTER TCHEH WITH DOT ABOVE 06C0;AL # ARABIC LETTER HEH WITH YEH ABOVE 06C1;AL # ARABIC LETTER HEH GOAL 06C2;AL # ARABIC LETTER HEH GOAL WITH HAMZA ABOVE 06C3;AL # ARABIC LETTER TEH MARBUTA GOAL 06C4;AL # ARABIC LETTER WAW WITH RING 06C5;AL # ARABIC LETTER KIRGHIZ OE 06C6;AL # ARABIC LETTER OE 06C7;AL # ARABIC LETTER U 06C8;AL # ARABIC LETTER YU 06C9;AL # ARABIC LETTER KIRGHIZ YU 06CA;AL # ARABIC LETTER WAW WITH TWO DOTS ABOVE 06CB;AL # ARABIC LETTER VE 06CC;AL # ARABIC LETTER FARSI YEH 06CD;AL # ARABIC LETTER YEH WITH TAIL 06CE;AL # ARABIC LETTER YEH WITH SMALL V 06CF;AL # ARABIC LETTER WAW WITH DOT ABOVE 06D0;AL # ARABIC LETTER E 06D1;AL # ARABIC LETTER YEH WITH THREE DOTS BELOW 06D2;AL # ARABIC LETTER YEH BARREE 06D3;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE 06D4;AL # ARABIC FULL STOP 06D5;AL # ARABIC LETTER AE 06D6;CM # ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA 06D7;CM # ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA 06D8;CM # ARABIC SMALL HIGH MEEM INITIAL FORM 06D9;CM # ARABIC SMALL HIGH LAM ALEF 06DA;CM # ARABIC SMALL HIGH JEEM 06DB;CM # ARABIC SMALL HIGH THREE DOTS 06DC;CM # ARABIC SMALL HIGH SEEN 06DD;CM # ARABIC END OF AYAH 06DE;CM # ARABIC START OF RUB EL HIZB 06DF;CM # ARABIC SMALL HIGH ROUNDED ZERO 06E0;CM # ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO 06E1;CM # ARABIC SMALL HIGH DOTLESS HEAD OF KHAH 06E2;CM # ARABIC SMALL HIGH MEEM ISOLATED FORM 06E3;CM # ARABIC SMALL LOW SEEN 06E4;CM # ARABIC SMALL HIGH MADDA 06E5;AL # ARABIC SMALL WAW 06E6;AL # ARABIC SMALL YEH 06E7;CM # ARABIC SMALL HIGH YEH 06E8;CM # ARABIC SMALL HIGH NOON 06E9;AL # ARABIC PLACE OF SAJDAH 06EA;CM # ARABIC EMPTY CENTRE LOW STOP 06EB;CM # ARABIC EMPTY CENTRE HIGH STOP 06EC;CM # ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE 06ED;CM # ARABIC SMALL LOW MEEM 06F0;NU # EXTENDED ARABIC-INDIC DIGIT ZERO 06F1;NU # EXTENDED ARABIC-INDIC DIGIT ONE 06F2;NU # EXTENDED ARABIC-INDIC DIGIT TWO 06F3;NU # EXTENDED ARABIC-INDIC DIGIT THREE 06F4;NU # EXTENDED ARABIC-INDIC DIGIT FOUR 06F5;NU # EXTENDED ARABIC-INDIC DIGIT FIVE 06F6;NU # EXTENDED ARABIC-INDIC DIGIT SIX 06F7;NU # EXTENDED ARABIC-INDIC DIGIT SEVEN 06F8;NU # EXTENDED ARABIC-INDIC DIGIT EIGHT 06F9;NU # EXTENDED ARABIC-INDIC DIGIT NINE 06FA;AL # ARABIC LETTER SHEEN WITH DOT BELOW 06FB;AL # ARABIC LETTER DAD WITH DOT BELOW 06FC;AL # ARABIC LETTER GHAIN WITH DOT BELOW 06FD;AL # ARABIC SIGN SINDHI AMPERSAND 06FE;AL # ARABIC SIGN SINDHI POSTPOSITION MEN 0700;AL # SYRIAC END OF PARAGRAPH 0701;AL # SYRIAC SUPRALINEAR FULL STOP 0702;AL # SYRIAC SUBLINEAR FULL STOP 0703;AL # SYRIAC SUPRALINEAR COLON 0704;AL # SYRIAC SUBLINEAR COLON 0705;AL # SYRIAC HORIZONTAL COLON 0706;AL # SYRIAC COLON SKEWED LEFT 0707;AL # SYRIAC COLON SKEWED RIGHT 0708;AL # SYRIAC SUPRALINEAR COLON SKEWED LEFT 0709;AL # SYRIAC SUBLINEAR COLON SKEWED RIGHT 070A;AL # SYRIAC CONTRACTION 070B;AL # SYRIAC HARKLEAN OBELUS 070C;AL # SYRIAC HARKLEAN METOBELUS 070D;AL # SYRIAC HARKLEAN ASTERISCUS 070F;CM # SYRIAC ABBREVIATION MARK 0710;AL # SYRIAC LETTER ALAPH 0711;CM # SYRIAC LETTER SUPERSCRIPT ALAPH 0712;AL # SYRIAC LETTER BETH 0713;AL # SYRIAC LETTER GAMAL 0714;AL # SYRIAC LETTER GAMAL GARSHUNI 0715;AL # SYRIAC LETTER DALATH 0716;AL # SYRIAC LETTER DOTLESS DALATH RISH 0717;AL # SYRIAC LETTER HE 0718;AL # SYRIAC LETTER WAW 0719;AL # SYRIAC LETTER ZAIN 071A;AL # SYRIAC LETTER HETH 071B;AL # SYRIAC LETTER TETH 071C;AL # SYRIAC LETTER TETH GARSHUNI 071D;AL # SYRIAC LETTER YUDH 071E;AL # SYRIAC LETTER YUDH HE 071F;AL # SYRIAC LETTER KAPH 0720;AL # SYRIAC LETTER LAMADH 0721;AL # SYRIAC LETTER MIM 0722;AL # SYRIAC LETTER NUN 0723;AL # SYRIAC LETTER SEMKATH 0724;AL # SYRIAC LETTER FINAL SEMKATH 0725;AL # SYRIAC LETTER E 0726;AL # SYRIAC LETTER PE 0727;AL # SYRIAC LETTER REVERSED PE 0728;AL # SYRIAC LETTER SADHE 0729;AL # SYRIAC LETTER QAPH 072A;AL # SYRIAC LETTER RISH 072B;AL # SYRIAC LETTER SHIN 072C;AL # SYRIAC LETTER TAW 0730;CM # SYRIAC PTHAHA ABOVE 0731;CM # SYRIAC PTHAHA BELOW 0732;CM # SYRIAC PTHAHA DOTTED 0733;CM # SYRIAC ZQAPHA ABOVE 0734;CM # SYRIAC ZQAPHA BELOW 0735;CM # SYRIAC ZQAPHA DOTTED 0736;CM # SYRIAC RBASA ABOVE 0737;CM # SYRIAC RBASA BELOW 0738;CM # SYRIAC DOTTED ZLAMA HORIZONTAL 0739;CM # SYRIAC DOTTED ZLAMA ANGULAR 073A;CM # SYRIAC HBASA ABOVE 073B;CM # SYRIAC HBASA BELOW 073C;CM # SYRIAC HBASA-ESASA DOTTED 073D;CM # SYRIAC ESASA ABOVE 073E;CM # SYRIAC ESASA BELOW 073F;CM # SYRIAC RWAHA 0740;CM # SYRIAC FEMININE DOT 0741;CM # SYRIAC QUSHSHAYA 0742;CM # SYRIAC RUKKAKHA 0743;CM # SYRIAC TWO VERTICAL DOTS ABOVE 0744;CM # SYRIAC TWO VERTICAL DOTS BELOW 0745;CM # SYRIAC THREE DOTS ABOVE 0746;CM # SYRIAC THREE DOTS BELOW 0747;CM # SYRIAC OBLIQUE LINE ABOVE 0748;CM # SYRIAC OBLIQUE LINE BELOW 0749;CM # SYRIAC MUSIC 074A;CM # SYRIAC BARREKH 0780;AL # THAANA LETTER HAA 0781;AL # THAANA LETTER SHAVIYANI 0782;AL # THAANA LETTER NOONU 0783;AL # THAANA LETTER RAA 0784;AL # THAANA LETTER BAA 0785;AL # THAANA LETTER LHAVIYANI 0786;AL # THAANA LETTER KAAFU 0787;AL # THAANA LETTER ALIFU 0788;AL # THAANA LETTER VAAVU 0789;AL # THAANA LETTER MEEMU 078A;AL # THAANA LETTER FAAFU 078B;AL # THAANA LETTER DHAALU 078C;AL # THAANA LETTER THAA 078D;AL # THAANA LETTER LAAMU 078E;AL # THAANA LETTER GAAFU 078F;AL # THAANA LETTER GNAVIYANI 0790;AL # THAANA LETTER SEENU 0791;AL # THAANA LETTER DAVIYANI 0792;AL # THAANA LETTER ZAVIYANI 0793;AL # THAANA LETTER TAVIYANI 0794;AL # THAANA LETTER YAA 0795;AL # THAANA LETTER PAVIYANI 0796;AL # THAANA LETTER JAVIYANI 0797;AL # THAANA LETTER CHAVIYANI 0798;AL # THAANA LETTER TTAA 0799;AL # THAANA LETTER HHAA 079A;AL # THAANA LETTER KHAA 079B;AL # THAANA LETTER THAALU 079C;AL # THAANA LETTER ZAA 079D;AL # THAANA LETTER SHEENU 079E;AL # THAANA LETTER SAADHU 079F;AL # THAANA LETTER DAADHU 07A0;AL # THAANA LETTER TO 07A1;AL # THAANA LETTER ZO 07A2;AL # THAANA LETTER AINU 07A3;AL # THAANA LETTER GHAINU 07A4;AL # THAANA LETTER QAAFU 07A5;AL # THAANA LETTER WAAVU 07A6;CM # THAANA ABAFILI 07A7;CM # THAANA AABAAFILI 07A8;CM # THAANA IBIFILI 07A9;CM # THAANA EEBEEFILI 07AA;CM # THAANA UBUFILI 07AB;CM # THAANA OOBOOFILI 07AC;CM # THAANA EBEFILI 07AD;CM # THAANA EYBEYFILI 07AE;CM # THAANA OBOFILI 07AF;CM # THAANA OABOAFILI 07B0;CM # THAANA SUKUN 07B1;AL # THAANA LETTER NAA 0901;CM # DEVANAGARI SIGN CANDRABINDU 0902;CM # DEVANAGARI SIGN ANUSVARA 0903;CM # DEVANAGARI SIGN VISARGA 0905;AL # DEVANAGARI LETTER A 0906;AL # DEVANAGARI LETTER AA 0907;AL # DEVANAGARI LETTER I 0908;AL # DEVANAGARI LETTER II 0909;AL # DEVANAGARI LETTER U 090A;AL # DEVANAGARI LETTER UU 090B;AL # DEVANAGARI LETTER VOCALIC R 090C;AL # DEVANAGARI LETTER VOCALIC L 090D;AL # DEVANAGARI LETTER CANDRA E 090E;AL # DEVANAGARI LETTER SHORT E 090F;AL # DEVANAGARI LETTER E 0910;AL # DEVANAGARI LETTER AI 0911;AL # DEVANAGARI LETTER CANDRA O 0912;AL # DEVANAGARI LETTER SHORT O 0913;AL # DEVANAGARI LETTER O 0914;AL # DEVANAGARI LETTER AU 0915;AL # DEVANAGARI LETTER KA 0916;AL # DEVANAGARI LETTER KHA 0917;AL # DEVANAGARI LETTER GA 0918;AL # DEVANAGARI LETTER GHA 0919;AL # DEVANAGARI LETTER NGA 091A;AL # DEVANAGARI LETTER CA 091B;AL # DEVANAGARI LETTER CHA 091C;AL # DEVANAGARI LETTER JA 091D;AL # DEVANAGARI LETTER JHA 091E;AL # DEVANAGARI LETTER NYA 091F;AL # DEVANAGARI LETTER TTA 0920;AL # DEVANAGARI LETTER TTHA 0921;AL # DEVANAGARI LETTER DDA 0922;AL # DEVANAGARI LETTER DDHA 0923;AL # DEVANAGARI LETTER NNA 0924;AL # DEVANAGARI LETTER TA 0925;AL # DEVANAGARI LETTER THA 0926;AL # DEVANAGARI LETTER DA 0927;AL # DEVANAGARI LETTER DHA 0928;AL # DEVANAGARI LETTER NA 0929;AL # DEVANAGARI LETTER NNNA 092A;AL # DEVANAGARI LETTER PA 092B;AL # DEVANAGARI LETTER PHA 092C;AL # DEVANAGARI LETTER BA 092D;AL # DEVANAGARI LETTER BHA 092E;AL # DEVANAGARI LETTER MA 092F;AL # DEVANAGARI LETTER YA 0930;AL # DEVANAGARI LETTER RA 0931;AL # DEVANAGARI LETTER RRA 0932;AL # DEVANAGARI LETTER LA 0933;AL # DEVANAGARI LETTER LLA 0934;AL # DEVANAGARI LETTER LLLA 0935;AL # DEVANAGARI LETTER VA 0936;AL # DEVANAGARI LETTER SHA 0937;AL # DEVANAGARI LETTER SSA 0938;AL # DEVANAGARI LETTER SA 0939;AL # DEVANAGARI LETTER HA 093C;CM # DEVANAGARI SIGN NUKTA 093D;AL # DEVANAGARI SIGN AVAGRAHA 093E;CM # DEVANAGARI VOWEL SIGN AA 093F;CM # DEVANAGARI VOWEL SIGN I 0940;CM # DEVANAGARI VOWEL SIGN II 0941;CM # DEVANAGARI VOWEL SIGN U 0942;CM # DEVANAGARI VOWEL SIGN UU 0943;CM # DEVANAGARI VOWEL SIGN VOCALIC R 0944;CM # DEVANAGARI VOWEL SIGN VOCALIC RR 0945;CM # DEVANAGARI VOWEL SIGN CANDRA E 0946;CM # DEVANAGARI VOWEL SIGN SHORT E 0947;CM # DEVANAGARI VOWEL SIGN E 0948;CM # DEVANAGARI VOWEL SIGN AI 0949;CM # DEVANAGARI VOWEL SIGN CANDRA O 094A;CM # DEVANAGARI VOWEL SIGN SHORT O 094B;CM # DEVANAGARI VOWEL SIGN O 094C;CM # DEVANAGARI VOWEL SIGN AU 094D;CM # DEVANAGARI SIGN VIRAMA 0950;AL # DEVANAGARI OM 0951;CM # DEVANAGARI STRESS SIGN UDATTA 0952;CM # DEVANAGARI STRESS SIGN ANUDATTA 0953;CM # DEVANAGARI GRAVE ACCENT 0954;CM # DEVANAGARI ACUTE ACCENT 0958;AL # DEVANAGARI LETTER QA 0959;AL # DEVANAGARI LETTER KHHA 095A;AL # DEVANAGARI LETTER GHHA 095B;AL # DEVANAGARI LETTER ZA 095C;AL # DEVANAGARI LETTER DDDHA 095D;AL # DEVANAGARI LETTER RHA 095E;AL # DEVANAGARI LETTER FA 095F;AL # DEVANAGARI LETTER YYA 0960;AL # DEVANAGARI LETTER VOCALIC RR 0961;AL # DEVANAGARI LETTER VOCALIC LL 0962;CM # DEVANAGARI VOWEL SIGN VOCALIC L 0963;CM # DEVANAGARI VOWEL SIGN VOCALIC LL 0964;AL # DEVANAGARI DANDA 0965;AL # DEVANAGARI DOUBLE DANDA 0966;NU # DEVANAGARI DIGIT ZERO 0967;NU # DEVANAGARI DIGIT ONE 0968;NU # DEVANAGARI DIGIT TWO 0969;NU # DEVANAGARI DIGIT THREE 096A;NU # DEVANAGARI DIGIT FOUR 096B;NU # DEVANAGARI DIGIT FIVE 096C;NU # DEVANAGARI DIGIT SIX 096D;NU # DEVANAGARI DIGIT SEVEN 096E;NU # DEVANAGARI DIGIT EIGHT 096F;NU # DEVANAGARI DIGIT NINE 0970;AL # DEVANAGARI ABBREVIATION SIGN 0981;CM # BENGALI SIGN CANDRABINDU 0982;CM # BENGALI SIGN ANUSVARA 0983;CM # BENGALI SIGN VISARGA 0985;AL # BENGALI LETTER A 0986;AL # BENGALI LETTER AA 0987;AL # BENGALI LETTER I 0988;AL # BENGALI LETTER II 0989;AL # BENGALI LETTER U 098A;AL # BENGALI LETTER UU 098B;AL # BENGALI LETTER VOCALIC R 098C;AL # BENGALI LETTER VOCALIC L 098F;AL # BENGALI LETTER E 0990;AL # BENGALI LETTER AI 0993;AL # BENGALI LETTER O 0994;AL # BENGALI LETTER AU 0995;AL # BENGALI LETTER KA 0996;AL # BENGALI LETTER KHA 0997;AL # BENGALI LETTER GA 0998;AL # BENGALI LETTER GHA 0999;AL # BENGALI LETTER NGA 099A;AL # BENGALI LETTER CA 099B;AL # BENGALI LETTER CHA 099C;AL # BENGALI LETTER JA 099D;AL # BENGALI LETTER JHA 099E;AL # BENGALI LETTER NYA 099F;AL # BENGALI LETTER TTA 09A0;AL # BENGALI LETTER TTHA 09A1;AL # BENGALI LETTER DDA 09A2;AL # BENGALI LETTER DDHA 09A3;AL # BENGALI LETTER NNA 09A4;AL # BENGALI LETTER TA 09A5;AL # BENGALI LETTER THA 09A6;AL # BENGALI LETTER DA 09A7;AL # BENGALI LETTER DHA 09A8;AL # BENGALI LETTER NA 09AA;AL # BENGALI LETTER PA 09AB;AL # BENGALI LETTER PHA 09AC;AL # BENGALI LETTER BA 09AD;AL # BENGALI LETTER BHA 09AE;AL # BENGALI LETTER MA 09AF;AL # BENGALI LETTER YA 09B0;AL # BENGALI LETTER RA 09B2;AL # BENGALI LETTER LA 09B6;AL # BENGALI LETTER SHA 09B7;AL # BENGALI LETTER SSA 09B8;AL # BENGALI LETTER SA 09B9;AL # BENGALI LETTER HA 09BC;CM # BENGALI SIGN NUKTA 09BE;CM # BENGALI VOWEL SIGN AA 09BF;CM # BENGALI VOWEL SIGN I 09C0;CM # BENGALI VOWEL SIGN II 09C1;CM # BENGALI VOWEL SIGN U 09C2;CM # BENGALI VOWEL SIGN UU 09C3;CM # BENGALI VOWEL SIGN VOCALIC R 09C4;CM # BENGALI VOWEL SIGN VOCALIC RR 09C7;CM # BENGALI VOWEL SIGN E 09C8;CM # BENGALI VOWEL SIGN AI 09CB;CM # BENGALI VOWEL SIGN O 09CC;CM # BENGALI VOWEL SIGN AU 09CD;CM # BENGALI SIGN VIRAMA 09D7;CM # BENGALI AU LENGTH MARK 09DC;AL # BENGALI LETTER RRA 09DD;AL # BENGALI LETTER RHA 09DF;AL # BENGALI LETTER YYA 09E0;AL # BENGALI LETTER VOCALIC RR 09E1;AL # BENGALI LETTER VOCALIC LL 09E2;CM # BENGALI VOWEL SIGN VOCALIC L 09E3;CM # BENGALI VOWEL SIGN VOCALIC LL 09E6;NU # BENGALI DIGIT ZERO 09E7;NU # BENGALI DIGIT ONE 09E8;NU # BENGALI DIGIT TWO 09E9;NU # BENGALI DIGIT THREE 09EA;NU # BENGALI DIGIT FOUR 09EB;NU # BENGALI DIGIT FIVE 09EC;NU # BENGALI DIGIT SIX 09ED;NU # BENGALI DIGIT SEVEN 09EE;NU # BENGALI DIGIT EIGHT 09EF;NU # BENGALI DIGIT NINE 09F0;AL # BENGALI LETTER RA WITH MIDDLE DIAGONAL 09F1;AL # BENGALI LETTER RA WITH LOWER DIAGONAL 09F2;PR # BENGALI RUPEE MARK 09F3;PR # BENGALI RUPEE SIGN 09F4;AL # BENGALI CURRENCY NUMERATOR ONE 09F5;AL # BENGALI CURRENCY NUMERATOR TWO 09F6;AL # BENGALI CURRENCY NUMERATOR THREE 09F7;AL # BENGALI CURRENCY NUMERATOR FOUR 09F8;AL # BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR 09F9;AL # BENGALI CURRENCY DENOMINATOR SIXTEEN 09FA;AL # BENGALI ISSHAR 0A02;CM # GURMUKHI SIGN BINDI 0A05;AL # GURMUKHI LETTER A 0A06;AL # GURMUKHI LETTER AA 0A07;AL # GURMUKHI LETTER I 0A08;AL # GURMUKHI LETTER II 0A09;AL # GURMUKHI LETTER U 0A0A;AL # GURMUKHI LETTER UU 0A0F;AL # GURMUKHI LETTER EE 0A10;AL # GURMUKHI LETTER AI 0A13;AL # GURMUKHI LETTER OO 0A14;AL # GURMUKHI LETTER AU 0A15;AL # GURMUKHI LETTER KA 0A16;AL # GURMUKHI LETTER KHA 0A17;AL # GURMUKHI LETTER GA 0A18;AL # GURMUKHI LETTER GHA 0A19;AL # GURMUKHI LETTER NGA 0A1A;AL # GURMUKHI LETTER CA 0A1B;AL # GURMUKHI LETTER CHA 0A1C;AL # GURMUKHI LETTER JA 0A1D;AL # GURMUKHI LETTER JHA 0A1E;AL # GURMUKHI LETTER NYA 0A1F;AL # GURMUKHI LETTER TTA 0A20;AL # GURMUKHI LETTER TTHA 0A21;AL # GURMUKHI LETTER DDA 0A22;AL # GURMUKHI LETTER DDHA 0A23;AL # GURMUKHI LETTER NNA 0A24;AL # GURMUKHI LETTER TA 0A25;AL # GURMUKHI LETTER THA 0A26;AL # GURMUKHI LETTER DA 0A27;AL # GURMUKHI LETTER DHA 0A28;AL # GURMUKHI LETTER NA 0A2A;AL # GURMUKHI LETTER PA 0A2B;AL # GURMUKHI LETTER PHA 0A2C;AL # GURMUKHI LETTER BA 0A2D;AL # GURMUKHI LETTER BHA 0A2E;AL # GURMUKHI LETTER MA 0A2F;AL # GURMUKHI LETTER YA 0A30;AL # GURMUKHI LETTER RA 0A32;AL # GURMUKHI LETTER LA 0A33;AL # GURMUKHI LETTER LLA 0A35;AL # GURMUKHI LETTER VA 0A36;AL # GURMUKHI LETTER SHA 0A38;AL # GURMUKHI LETTER SA 0A39;AL # GURMUKHI LETTER HA 0A3C;CM # GURMUKHI SIGN NUKTA 0A3E;CM # GURMUKHI VOWEL SIGN AA 0A3F;CM # GURMUKHI VOWEL SIGN I 0A40;CM # GURMUKHI VOWEL SIGN II 0A41;CM # GURMUKHI VOWEL SIGN U 0A42;CM # GURMUKHI VOWEL SIGN UU 0A47;CM # GURMUKHI VOWEL SIGN EE 0A48;CM # GURMUKHI VOWEL SIGN AI 0A4B;CM # GURMUKHI VOWEL SIGN OO 0A4C;CM # GURMUKHI VOWEL SIGN AU 0A4D;CM # GURMUKHI SIGN VIRAMA 0A59;AL # GURMUKHI LETTER KHHA 0A5A;AL # GURMUKHI LETTER GHHA 0A5B;AL # GURMUKHI LETTER ZA 0A5C;AL # GURMUKHI LETTER RRA 0A5E;AL # GURMUKHI LETTER FA 0A66;NU # GURMUKHI DIGIT ZERO 0A67;NU # GURMUKHI DIGIT ONE 0A68;NU # GURMUKHI DIGIT TWO 0A69;NU # GURMUKHI DIGIT THREE 0A6A;NU # GURMUKHI DIGIT FOUR 0A6B;NU # GURMUKHI DIGIT FIVE 0A6C;NU # GURMUKHI DIGIT SIX 0A6D;NU # GURMUKHI DIGIT SEVEN 0A6E;NU # GURMUKHI DIGIT EIGHT 0A6F;NU # GURMUKHI DIGIT NINE 0A70;CM # GURMUKHI TIPPI 0A71;CM # GURMUKHI ADDAK 0A72;AL # GURMUKHI IRI 0A73;AL # GURMUKHI URA 0A74;AL # GURMUKHI EK ONKAR 0A81;CM # GUJARATI SIGN CANDRABINDU 0A82;CM # GUJARATI SIGN ANUSVARA 0A83;CM # GUJARATI SIGN VISARGA 0A85;AL # GUJARATI LETTER A 0A86;AL # GUJARATI LETTER AA 0A87;AL # GUJARATI LETTER I 0A88;AL # GUJARATI LETTER II 0A89;AL # GUJARATI LETTER U 0A8A;AL # GUJARATI LETTER UU 0A8B;AL # GUJARATI LETTER VOCALIC R 0A8D;AL # GUJARATI VOWEL CANDRA E 0A8F;AL # GUJARATI LETTER E 0A90;AL # GUJARATI LETTER AI 0A91;AL # GUJARATI VOWEL CANDRA O 0A93;AL # GUJARATI LETTER O 0A94;AL # GUJARATI LETTER AU 0A95;AL # GUJARATI LETTER KA 0A96;AL # GUJARATI LETTER KHA 0A97;AL # GUJARATI LETTER GA 0A98;AL # GUJARATI LETTER GHA 0A99;AL # GUJARATI LETTER NGA 0A9A;AL # GUJARATI LETTER CA 0A9B;AL # GUJARATI LETTER CHA 0A9C;AL # GUJARATI LETTER JA 0A9D;AL # GUJARATI LETTER JHA 0A9E;AL # GUJARATI LETTER NYA 0A9F;AL # GUJARATI LETTER TTA 0AA0;AL # GUJARATI LETTER TTHA 0AA1;AL # GUJARATI LETTER DDA 0AA2;AL # GUJARATI LETTER DDHA 0AA3;AL # GUJARATI LETTER NNA 0AA4;AL # GUJARATI LETTER TA 0AA5;AL # GUJARATI LETTER THA 0AA6;AL # GUJARATI LETTER DA 0AA7;AL # GUJARATI LETTER DHA 0AA8;AL # GUJARATI LETTER NA 0AAA;AL # GUJARATI LETTER PA 0AAB;AL # GUJARATI LETTER PHA 0AAC;AL # GUJARATI LETTER BA 0AAD;AL # GUJARATI LETTER BHA 0AAE;AL # GUJARATI LETTER MA 0AAF;AL # GUJARATI LETTER YA 0AB0;AL # GUJARATI LETTER RA 0AB2;AL # GUJARATI LETTER LA 0AB3;AL # GUJARATI LETTER LLA 0AB5;AL # GUJARATI LETTER VA 0AB6;AL # GUJARATI LETTER SHA 0AB7;AL # GUJARATI LETTER SSA 0AB8;AL # GUJARATI LETTER SA 0AB9;AL # GUJARATI LETTER HA 0ABC;CM # GUJARATI SIGN NUKTA 0ABD;AL # GUJARATI SIGN AVAGRAHA 0ABE;CM # GUJARATI VOWEL SIGN AA 0ABF;CM # GUJARATI VOWEL SIGN I 0AC0;CM # GUJARATI VOWEL SIGN II 0AC1;CM # GUJARATI VOWEL SIGN U 0AC2;CM # GUJARATI VOWEL SIGN UU 0AC3;CM # GUJARATI VOWEL SIGN VOCALIC R 0AC4;CM # GUJARATI VOWEL SIGN VOCALIC RR 0AC5;CM # GUJARATI VOWEL SIGN CANDRA E 0AC7;CM # GUJARATI VOWEL SIGN E 0AC8;CM # GUJARATI VOWEL SIGN AI 0AC9;CM # GUJARATI VOWEL SIGN CANDRA O 0ACB;CM # GUJARATI VOWEL SIGN O 0ACC;CM # GUJARATI VOWEL SIGN AU 0ACD;CM # GUJARATI SIGN VIRAMA 0AD0;AL # GUJARATI OM 0AE0;AL # GUJARATI LETTER VOCALIC RR 0AE6;NU # GUJARATI DIGIT ZERO 0AE7;NU # GUJARATI DIGIT ONE 0AE8;NU # GUJARATI DIGIT TWO 0AE9;NU # GUJARATI DIGIT THREE 0AEA;NU # GUJARATI DIGIT FOUR 0AEB;NU # GUJARATI DIGIT FIVE 0AEC;NU # GUJARATI DIGIT SIX 0AED;NU # GUJARATI DIGIT SEVEN 0AEE;NU # GUJARATI DIGIT EIGHT 0AEF;NU # GUJARATI DIGIT NINE 0B01;CM # ORIYA SIGN CANDRABINDU 0B02;CM # ORIYA SIGN ANUSVARA 0B03;CM # ORIYA SIGN VISARGA 0B05;AL # ORIYA LETTER A 0B06;AL # ORIYA LETTER AA 0B07;AL # ORIYA LETTER I 0B08;AL # ORIYA LETTER II 0B09;AL # ORIYA LETTER U 0B0A;AL # ORIYA LETTER UU 0B0B;AL # ORIYA LETTER VOCALIC R 0B0C;AL # ORIYA LETTER VOCALIC L 0B0F;AL # ORIYA LETTER E 0B10;AL # ORIYA LETTER AI 0B13;AL # ORIYA LETTER O 0B14;AL # ORIYA LETTER AU 0B15;AL # ORIYA LETTER KA 0B16;AL # ORIYA LETTER KHA 0B17;AL # ORIYA LETTER GA 0B18;AL # ORIYA LETTER GHA 0B19;AL # ORIYA LETTER NGA 0B1A;AL # ORIYA LETTER CA 0B1B;AL # ORIYA LETTER CHA 0B1C;AL # ORIYA LETTER JA 0B1D;AL # ORIYA LETTER JHA 0B1E;AL # ORIYA LETTER NYA 0B1F;AL # ORIYA LETTER TTA 0B20;AL # ORIYA LETTER TTHA 0B21;AL # ORIYA LETTER DDA 0B22;AL # ORIYA LETTER DDHA 0B23;AL # ORIYA LETTER NNA 0B24;AL # ORIYA LETTER TA 0B25;AL # ORIYA LETTER THA 0B26;AL # ORIYA LETTER DA 0B27;AL # ORIYA LETTER DHA 0B28;AL # ORIYA LETTER NA 0B2A;AL # ORIYA LETTER PA 0B2B;AL # ORIYA LETTER PHA 0B2C;AL # ORIYA LETTER BA 0B2D;AL # ORIYA LETTER BHA 0B2E;AL # ORIYA LETTER MA 0B2F;AL # ORIYA LETTER YA 0B30;AL # ORIYA LETTER RA 0B32;AL # ORIYA LETTER LA 0B33;AL # ORIYA LETTER LLA 0B36;AL # ORIYA LETTER SHA 0B37;AL # ORIYA LETTER SSA 0B38;AL # ORIYA LETTER SA 0B39;AL # ORIYA LETTER HA 0B3C;CM # ORIYA SIGN NUKTA 0B3D;AL # ORIYA SIGN AVAGRAHA 0B3E;CM # ORIYA VOWEL SIGN AA 0B3F;CM # ORIYA VOWEL SIGN I 0B40;CM # ORIYA VOWEL SIGN II 0B41;CM # ORIYA VOWEL SIGN U 0B42;CM # ORIYA VOWEL SIGN UU 0B43;CM # ORIYA VOWEL SIGN VOCALIC R 0B47;CM # ORIYA VOWEL SIGN E 0B48;CM # ORIYA VOWEL SIGN AI 0B4B;CM # ORIYA VOWEL SIGN O 0B4C;CM # ORIYA VOWEL SIGN AU 0B4D;CM # ORIYA SIGN VIRAMA 0B56;CM # ORIYA AI LENGTH MARK 0B57;CM # ORIYA AU LENGTH MARK 0B5C;AL # ORIYA LETTER RRA 0B5D;AL # ORIYA LETTER RHA 0B5F;AL # ORIYA LETTER YYA 0B60;AL # ORIYA LETTER VOCALIC RR 0B61;AL # ORIYA LETTER VOCALIC LL 0B66;NU # ORIYA DIGIT ZERO 0B67;NU # ORIYA DIGIT ONE 0B68;NU # ORIYA DIGIT TWO 0B69;NU # ORIYA DIGIT THREE 0B6A;NU # ORIYA DIGIT FOUR 0B6B;NU # ORIYA DIGIT FIVE 0B6C;NU # ORIYA DIGIT SIX 0B6D;NU # ORIYA DIGIT SEVEN 0B6E;NU # ORIYA DIGIT EIGHT 0B6F;NU # ORIYA DIGIT NINE 0B70;AL # ORIYA ISSHAR 0B82;CM # TAMIL SIGN ANUSVARA 0B83;AL # TAMIL SIGN VISARGA 0B85;AL # TAMIL LETTER A 0B86;AL # TAMIL LETTER AA 0B87;AL # TAMIL LETTER I 0B88;AL # TAMIL LETTER II 0B89;AL # TAMIL LETTER U 0B8A;AL # TAMIL LETTER UU 0B8E;AL # TAMIL LETTER E 0B8F;AL # TAMIL LETTER EE 0B90;AL # TAMIL LETTER AI 0B92;AL # TAMIL LETTER O 0B93;AL # TAMIL LETTER OO 0B94;AL # TAMIL LETTER AU 0B95;AL # TAMIL LETTER KA 0B99;AL # TAMIL LETTER NGA 0B9A;AL # TAMIL LETTER CA 0B9C;AL # TAMIL LETTER JA 0B9E;AL # TAMIL LETTER NYA 0B9F;AL # TAMIL LETTER TTA 0BA3;AL # TAMIL LETTER NNA 0BA4;AL # TAMIL LETTER TA 0BA8;AL # TAMIL LETTER NA 0BA9;AL # TAMIL LETTER NNNA 0BAA;AL # TAMIL LETTER PA 0BAE;AL # TAMIL LETTER MA 0BAF;AL # TAMIL LETTER YA 0BB0;AL # TAMIL LETTER RA 0BB1;AL # TAMIL LETTER RRA 0BB2;AL # TAMIL LETTER LA 0BB3;AL # TAMIL LETTER LLA 0BB4;AL # TAMIL LETTER LLLA 0BB5;AL # TAMIL LETTER VA 0BB7;AL # TAMIL LETTER SSA 0BB8;AL # TAMIL LETTER SA 0BB9;AL # TAMIL LETTER HA 0BBE;CM # TAMIL VOWEL SIGN AA 0BBF;CM # TAMIL VOWEL SIGN I 0BC0;CM # TAMIL VOWEL SIGN II 0BC1;CM # TAMIL VOWEL SIGN U 0BC2;CM # TAMIL VOWEL SIGN UU 0BC6;CM # TAMIL VOWEL SIGN E 0BC7;CM # TAMIL VOWEL SIGN EE 0BC8;CM # TAMIL VOWEL SIGN AI 0BCA;CM # TAMIL VOWEL SIGN O 0BCB;CM # TAMIL VOWEL SIGN OO 0BCC;CM # TAMIL VOWEL SIGN AU 0BCD;CM # TAMIL SIGN VIRAMA 0BD7;CM # TAMIL AU LENGTH MARK 0BE7;NU # TAMIL DIGIT ONE 0BE8;NU # TAMIL DIGIT TWO 0BE9;NU # TAMIL DIGIT THREE 0BEA;NU # TAMIL DIGIT FOUR 0BEB;NU # TAMIL DIGIT FIVE 0BEC;NU # TAMIL DIGIT SIX 0BED;NU # TAMIL DIGIT SEVEN 0BEE;NU # TAMIL DIGIT EIGHT 0BEF;NU # TAMIL DIGIT NINE 0BF0;AL # TAMIL NUMBER TEN 0BF1;AL # TAMIL NUMBER ONE HUNDRED 0BF2;AL # TAMIL NUMBER ONE THOUSAND 0C01;CM # TELUGU SIGN CANDRABINDU 0C02;CM # TELUGU SIGN ANUSVARA 0C03;CM # TELUGU SIGN VISARGA 0C05;AL # TELUGU LETTER A 0C06;AL # TELUGU LETTER AA 0C07;AL # TELUGU LETTER I 0C08;AL # TELUGU LETTER II 0C09;AL # TELUGU LETTER U 0C0A;AL # TELUGU LETTER UU 0C0B;AL # TELUGU LETTER VOCALIC R 0C0C;AL # TELUGU LETTER VOCALIC L 0C0E;AL # TELUGU LETTER E 0C0F;AL # TELUGU LETTER EE 0C10;AL # TELUGU LETTER AI 0C12;AL # TELUGU LETTER O 0C13;AL # TELUGU LETTER OO 0C14;AL # TELUGU LETTER AU 0C15;AL # TELUGU LETTER KA 0C16;AL # TELUGU LETTER KHA 0C17;AL # TELUGU LETTER GA 0C18;AL # TELUGU LETTER GHA 0C19;AL # TELUGU LETTER NGA 0C1A;AL # TELUGU LETTER CA 0C1B;AL # TELUGU LETTER CHA 0C1C;AL # TELUGU LETTER JA 0C1D;AL # TELUGU LETTER JHA 0C1E;AL # TELUGU LETTER NYA 0C1F;AL # TELUGU LETTER TTA 0C20;AL # TELUGU LETTER TTHA 0C21;AL # TELUGU LETTER DDA 0C22;AL # TELUGU LETTER DDHA 0C23;AL # TELUGU LETTER NNA 0C24;AL # TELUGU LETTER TA 0C25;AL # TELUGU LETTER THA 0C26;AL # TELUGU LETTER DA 0C27;AL # TELUGU LETTER DHA 0C28;AL # TELUGU LETTER NA 0C2A;AL # TELUGU LETTER PA 0C2B;AL # TELUGU LETTER PHA 0C2C;AL # TELUGU LETTER BA 0C2D;AL # TELUGU LETTER BHA 0C2E;AL # TELUGU LETTER MA 0C2F;AL # TELUGU LETTER YA 0C30;AL # TELUGU LETTER RA 0C31;AL # TELUGU LETTER RRA 0C32;AL # TELUGU LETTER LA 0C33;AL # TELUGU LETTER LLA 0C35;AL # TELUGU LETTER VA 0C36;AL # TELUGU LETTER SHA 0C37;AL # TELUGU LETTER SSA 0C38;AL # TELUGU LETTER SA 0C39;AL # TELUGU LETTER HA 0C3E;CM # TELUGU VOWEL SIGN AA 0C3F;CM # TELUGU VOWEL SIGN I 0C40;CM # TELUGU VOWEL SIGN II 0C41;CM # TELUGU VOWEL SIGN U 0C42;CM # TELUGU VOWEL SIGN UU 0C43;CM # TELUGU VOWEL SIGN VOCALIC R 0C44;CM # TELUGU VOWEL SIGN VOCALIC RR 0C46;CM # TELUGU VOWEL SIGN E 0C47;CM # TELUGU VOWEL SIGN EE 0C48;CM # TELUGU VOWEL SIGN AI 0C4A;CM # TELUGU VOWEL SIGN O 0C4B;CM # TELUGU VOWEL SIGN OO 0C4C;CM # TELUGU VOWEL SIGN AU 0C4D;CM # TELUGU SIGN VIRAMA 0C55;CM # TELUGU LENGTH MARK 0C56;CM # TELUGU AI LENGTH MARK 0C60;AL # TELUGU LETTER VOCALIC RR 0C61;AL # TELUGU LETTER VOCALIC LL 0C66;NU # TELUGU DIGIT ZERO 0C67;NU # TELUGU DIGIT ONE 0C68;NU # TELUGU DIGIT TWO 0C69;NU # TELUGU DIGIT THREE 0C6A;NU # TELUGU DIGIT FOUR 0C6B;NU # TELUGU DIGIT FIVE 0C6C;NU # TELUGU DIGIT SIX 0C6D;NU # TELUGU DIGIT SEVEN 0C6E;NU # TELUGU DIGIT EIGHT 0C6F;NU # TELUGU DIGIT NINE 0C82;CM # KANNADA SIGN ANUSVARA 0C83;CM # KANNADA SIGN VISARGA 0C85;AL # KANNADA LETTER A 0C86;AL # KANNADA LETTER AA 0C87;AL # KANNADA LETTER I 0C88;AL # KANNADA LETTER II 0C89;AL # KANNADA LETTER U 0C8A;AL # KANNADA LETTER UU 0C8B;AL # KANNADA LETTER VOCALIC R 0C8C;AL # KANNADA LETTER VOCALIC L 0C8E;AL # KANNADA LETTER E 0C8F;AL # KANNADA LETTER EE 0C90;AL # KANNADA LETTER AI 0C92;AL # KANNADA LETTER O 0C93;AL # KANNADA LETTER OO 0C94;AL # KANNADA LETTER AU 0C95;AL # KANNADA LETTER KA 0C96;AL # KANNADA LETTER KHA 0C97;AL # KANNADA LETTER GA 0C98;AL # KANNADA LETTER GHA 0C99;AL # KANNADA LETTER NGA 0C9A;AL # KANNADA LETTER CA 0C9B;AL # KANNADA LETTER CHA 0C9C;AL # KANNADA LETTER JA 0C9D;AL # KANNADA LETTER JHA 0C9E;AL # KANNADA LETTER NYA 0C9F;AL # KANNADA LETTER TTA 0CA0;AL # KANNADA LETTER TTHA 0CA1;AL # KANNADA LETTER DDA 0CA2;AL # KANNADA LETTER DDHA 0CA3;AL # KANNADA LETTER NNA 0CA4;AL # KANNADA LETTER TA 0CA5;AL # KANNADA LETTER THA 0CA6;AL # KANNADA LETTER DA 0CA7;AL # KANNADA LETTER DHA 0CA8;AL # KANNADA LETTER NA 0CAA;AL # KANNADA LETTER PA 0CAB;AL # KANNADA LETTER PHA 0CAC;AL # KANNADA LETTER BA 0CAD;AL # KANNADA LETTER BHA 0CAE;AL # KANNADA LETTER MA 0CAF;AL # KANNADA LETTER YA 0CB0;AL # KANNADA LETTER RA 0CB1;AL # KANNADA LETTER RRA 0CB2;AL # KANNADA LETTER LA 0CB3;AL # KANNADA LETTER LLA 0CB5;AL # KANNADA LETTER VA 0CB6;AL # KANNADA LETTER SHA 0CB7;AL # KANNADA LETTER SSA 0CB8;AL # KANNADA LETTER SA 0CB9;AL # KANNADA LETTER HA 0CBE;CM # KANNADA VOWEL SIGN AA 0CBF;CM # KANNADA VOWEL SIGN I 0CC0;CM # KANNADA VOWEL SIGN II 0CC1;CM # KANNADA VOWEL SIGN U 0CC2;CM # KANNADA VOWEL SIGN UU 0CC3;CM # KANNADA VOWEL SIGN VOCALIC R 0CC4;CM # KANNADA VOWEL SIGN VOCALIC RR 0CC6;CM # KANNADA VOWEL SIGN E 0CC7;CM # KANNADA VOWEL SIGN EE 0CC8;CM # KANNADA VOWEL SIGN AI 0CCA;CM # KANNADA VOWEL SIGN O 0CCB;CM # KANNADA VOWEL SIGN OO 0CCC;CM # KANNADA VOWEL SIGN AU 0CCD;CM # KANNADA SIGN VIRAMA 0CD5;CM # KANNADA LENGTH MARK 0CD6;CM # KANNADA AI LENGTH MARK 0CDE;AL # KANNADA LETTER FA 0CE0;AL # KANNADA LETTER VOCALIC RR 0CE1;AL # KANNADA LETTER VOCALIC LL 0CE6;NU # KANNADA DIGIT ZERO 0CE7;NU # KANNADA DIGIT ONE 0CE8;NU # KANNADA DIGIT TWO 0CE9;NU # KANNADA DIGIT THREE 0CEA;NU # KANNADA DIGIT FOUR 0CEB;NU # KANNADA DIGIT FIVE 0CEC;NU # KANNADA DIGIT SIX 0CED;NU # KANNADA DIGIT SEVEN 0CEE;NU # KANNADA DIGIT EIGHT 0CEF;NU # KANNADA DIGIT NINE 0D02;CM # MALAYALAM SIGN ANUSVARA 0D03;CM # MALAYALAM SIGN VISARGA 0D05;AL # MALAYALAM LETTER A 0D06;AL # MALAYALAM LETTER AA 0D07;AL # MALAYALAM LETTER I 0D08;AL # MALAYALAM LETTER II 0D09;AL # MALAYALAM LETTER U 0D0A;AL # MALAYALAM LETTER UU 0D0B;AL # MALAYALAM LETTER VOCALIC R 0D0C;AL # MALAYALAM LETTER VOCALIC L 0D0E;AL # MALAYALAM LETTER E 0D0F;AL # MALAYALAM LETTER EE 0D10;AL # MALAYALAM LETTER AI 0D12;AL # MALAYALAM LETTER O 0D13;AL # MALAYALAM LETTER OO 0D14;AL # MALAYALAM LETTER AU 0D15;AL # MALAYALAM LETTER KA 0D16;AL # MALAYALAM LETTER KHA 0D17;AL # MALAYALAM LETTER GA 0D18;AL # MALAYALAM LETTER GHA 0D19;AL # MALAYALAM LETTER NGA 0D1A;AL # MALAYALAM LETTER CA 0D1B;AL # MALAYALAM LETTER CHA 0D1C;AL # MALAYALAM LETTER JA 0D1D;AL # MALAYALAM LETTER JHA 0D1E;AL # MALAYALAM LETTER NYA 0D1F;AL # MALAYALAM LETTER TTA 0D20;AL # MALAYALAM LETTER TTHA 0D21;AL # MALAYALAM LETTER DDA 0D22;AL # MALAYALAM LETTER DDHA 0D23;AL # MALAYALAM LETTER NNA 0D24;AL # MALAYALAM LETTER TA 0D25;AL # MALAYALAM LETTER THA 0D26;AL # MALAYALAM LETTER DA 0D27;AL # MALAYALAM LETTER DHA 0D28;AL # MALAYALAM LETTER NA 0D2A;AL # MALAYALAM LETTER PA 0D2B;AL # MALAYALAM LETTER PHA 0D2C;AL # MALAYALAM LETTER BA 0D2D;AL # MALAYALAM LETTER BHA 0D2E;AL # MALAYALAM LETTER MA 0D2F;AL # MALAYALAM LETTER YA 0D30;AL # MALAYALAM LETTER RA 0D31;AL # MALAYALAM LETTER RRA 0D32;AL # MALAYALAM LETTER LA 0D33;AL # MALAYALAM LETTER LLA 0D34;AL # MALAYALAM LETTER LLLA 0D35;AL # MALAYALAM LETTER VA 0D36;AL # MALAYALAM LETTER SHA 0D37;AL # MALAYALAM LETTER SSA 0D38;AL # MALAYALAM LETTER SA 0D39;AL # MALAYALAM LETTER HA 0D3E;CM # MALAYALAM VOWEL SIGN AA 0D3F;CM # MALAYALAM VOWEL SIGN I 0D40;CM # MALAYALAM VOWEL SIGN II 0D41;CM # MALAYALAM VOWEL SIGN U 0D42;CM # MALAYALAM VOWEL SIGN UU 0D43;CM # MALAYALAM VOWEL SIGN VOCALIC R 0D46;CM # MALAYALAM VOWEL SIGN E 0D47;CM # MALAYALAM VOWEL SIGN EE 0D48;CM # MALAYALAM VOWEL SIGN AI 0D4A;CM # MALAYALAM VOWEL SIGN O 0D4B;CM # MALAYALAM VOWEL SIGN OO 0D4C;CM # MALAYALAM VOWEL SIGN AU 0D4D;CM # MALAYALAM SIGN VIRAMA 0D57;CM # MALAYALAM AU LENGTH MARK 0D60;AL # MALAYALAM LETTER VOCALIC RR 0D61;AL # MALAYALAM LETTER VOCALIC LL 0D66;NU # MALAYALAM DIGIT ZERO 0D67;NU # MALAYALAM DIGIT ONE 0D68;NU # MALAYALAM DIGIT TWO 0D69;NU # MALAYALAM DIGIT THREE 0D6A;NU # MALAYALAM DIGIT FOUR 0D6B;NU # MALAYALAM DIGIT FIVE 0D6C;NU # MALAYALAM DIGIT SIX 0D6D;NU # MALAYALAM DIGIT SEVEN 0D6E;NU # MALAYALAM DIGIT EIGHT 0D6F;NU # MALAYALAM DIGIT NINE 0D82;CM # SINHALA SIGN ANUSVARAYA 0D83;CM # SINHALA SIGN VISARGAYA 0D85;AL # SINHALA LETTER AYANNA 0D86;AL # SINHALA LETTER AAYANNA 0D87;AL # SINHALA LETTER AEYANNA 0D88;AL # SINHALA LETTER AEEYANNA 0D89;AL # SINHALA LETTER IYANNA 0D8A;AL # SINHALA LETTER IIYANNA 0D8B;AL # SINHALA LETTER UYANNA 0D8C;AL # SINHALA LETTER UUYANNA 0D8D;AL # SINHALA LETTER IRUYANNA 0D8E;AL # SINHALA LETTER IRUUYANNA 0D8F;AL # SINHALA LETTER ILUYANNA 0D90;AL # SINHALA LETTER ILUUYANNA 0D91;AL # SINHALA LETTER EYANNA 0D92;AL # SINHALA LETTER EEYANNA 0D93;AL # SINHALA LETTER AIYANNA 0D94;AL # SINHALA LETTER OYANNA 0D95;AL # SINHALA LETTER OOYANNA 0D96;AL # SINHALA LETTER AUYANNA 0D9A;AL # SINHALA LETTER ALPAPRAANA KAYANNA 0D9B;AL # SINHALA LETTER MAHAAPRAANA KAYANNA 0D9C;AL # SINHALA LETTER ALPAPRAANA GAYANNA 0D9D;AL # SINHALA LETTER MAHAAPRAANA GAYANNA 0D9E;AL # SINHALA LETTER KANTAJA NAASIKYAYA 0D9F;AL # SINHALA LETTER SANYAKA GAYANNA 0DA0;AL # SINHALA LETTER ALPAPRAANA CAYANNA 0DA1;AL # SINHALA LETTER MAHAAPRAANA CAYANNA 0DA2;AL # SINHALA LETTER ALPAPRAANA JAYANNA 0DA3;AL # SINHALA LETTER MAHAAPRAANA JAYANNA 0DA4;AL # SINHALA LETTER TAALUJA NAASIKYAYA 0DA5;AL # SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA 0DA6;AL # SINHALA LETTER SANYAKA JAYANNA 0DA7;AL # SINHALA LETTER ALPAPRAANA TTAYANNA 0DA8;AL # SINHALA LETTER MAHAAPRAANA TTAYANNA 0DA9;AL # SINHALA LETTER ALPAPRAANA DDAYANNA 0DAA;AL # SINHALA LETTER MAHAAPRAANA DDAYANNA 0DAB;AL # SINHALA LETTER MUURDHAJA NAYANNA 0DAC;AL # SINHALA LETTER SANYAKA DDAYANNA 0DAD;AL # SINHALA LETTER ALPAPRAANA TAYANNA 0DAE;AL # SINHALA LETTER MAHAAPRAANA TAYANNA 0DAF;AL # SINHALA LETTER ALPAPRAANA DAYANNA 0DB0;AL # SINHALA LETTER MAHAAPRAANA DAYANNA 0DB1;AL # SINHALA LETTER DANTAJA NAYANNA 0DB3;AL # SINHALA LETTER SANYAKA DAYANNA 0DB4;AL # SINHALA LETTER ALPAPRAANA PAYANNA 0DB5;AL # SINHALA LETTER MAHAAPRAANA PAYANNA 0DB6;AL # SINHALA LETTER ALPAPRAANA BAYANNA 0DB7;AL # SINHALA LETTER MAHAAPRAANA BAYANNA 0DB8;AL # SINHALA LETTER MAYANNA 0DB9;AL # SINHALA LETTER AMBA BAYANNA 0DBA;AL # SINHALA LETTER YAYANNA 0DBB;AL # SINHALA LETTER RAYANNA 0DBD;AL # SINHALA LETTER DANTAJA LAYANNA 0DC0;AL # SINHALA LETTER VAYANNA 0DC1;AL # SINHALA LETTER TAALUJA SAYANNA 0DC2;AL # SINHALA LETTER MUURDHAJA SAYANNA 0DC3;AL # SINHALA LETTER DANTAJA SAYANNA 0DC4;AL # SINHALA LETTER HAYANNA 0DC5;AL # SINHALA LETTER MUURDHAJA LAYANNA 0DC6;AL # SINHALA LETTER FAYANNA 0DCA;CM # SINHALA SIGN AL-LAKUNA 0DCF;CM # SINHALA VOWEL SIGN AELA-PILLA 0DD0;CM # SINHALA VOWEL SIGN KETTI AEDA-PILLA 0DD1;CM # SINHALA VOWEL SIGN DIGA AEDA-PILLA 0DD2;CM # SINHALA VOWEL SIGN KETTI IS-PILLA 0DD3;CM # SINHALA VOWEL SIGN DIGA IS-PILLA 0DD4;CM # SINHALA VOWEL SIGN KETTI PAA-PILLA 0DD6;CM # SINHALA VOWEL SIGN DIGA PAA-PILLA 0DD8;CM # SINHALA VOWEL SIGN GAETTA-PILLA 0DD9;CM # SINHALA VOWEL SIGN KOMBUVA 0DDA;CM # SINHALA VOWEL SIGN DIGA KOMBUVA 0DDB;CM # SINHALA VOWEL SIGN KOMBU DEKA 0DDC;CM # SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA 0DDD;CM # SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA 0DDE;CM # SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA 0DDF;CM # SINHALA VOWEL SIGN GAYANUKITTA 0DF2;CM # SINHALA VOWEL SIGN DIGA GAETTA-PILLA 0DF3;CM # SINHALA VOWEL SIGN DIGA GAYANUKITTA 0DF4;AL # SINHALA PUNCTUATION KUNDDALIYA 0E01;SA # THAI CHARACTER KO KAI 0E02;SA # THAI CHARACTER KHO KHAI 0E03;SA # THAI CHARACTER KHO KHUAT 0E04;SA # THAI CHARACTER KHO KHWAI 0E05;SA # THAI CHARACTER KHO KHON 0E06;SA # THAI CHARACTER KHO RAKHANG 0E07;SA # THAI CHARACTER NGO NGU 0E08;SA # THAI CHARACTER CHO CHAN 0E09;SA # THAI CHARACTER CHO CHING 0E0A;SA # THAI CHARACTER CHO CHANG 0E0B;SA # THAI CHARACTER SO SO 0E0C;SA # THAI CHARACTER CHO CHOE 0E0D;SA # THAI CHARACTER YO YING 0E0E;SA # THAI CHARACTER DO CHADA 0E0F;SA # THAI CHARACTER TO PATAK 0E10;SA # THAI CHARACTER THO THAN 0E11;SA # THAI CHARACTER THO NANGMONTHO 0E12;SA # THAI CHARACTER THO PHUTHAO 0E13;SA # THAI CHARACTER NO NEN 0E14;SA # THAI CHARACTER DO DEK 0E15;SA # THAI CHARACTER TO TAO 0E16;SA # THAI CHARACTER THO THUNG 0E17;SA # THAI CHARACTER THO THAHAN 0E18;SA # THAI CHARACTER THO THONG 0E19;SA # THAI CHARACTER NO NU 0E1A;SA # THAI CHARACTER BO BAIMAI 0E1B;SA # THAI CHARACTER PO PLA 0E1C;SA # THAI CHARACTER PHO PHUNG 0E1D;SA # THAI CHARACTER FO FA 0E1E;SA # THAI CHARACTER PHO PHAN 0E1F;SA # THAI CHARACTER FO FAN 0E20;SA # THAI CHARACTER PHO SAMPHAO 0E21;SA # THAI CHARACTER MO MA 0E22;SA # THAI CHARACTER YO YAK 0E23;SA # THAI CHARACTER RO RUA 0E24;SA # THAI CHARACTER RU 0E25;SA # THAI CHARACTER LO LING 0E26;SA # THAI CHARACTER LU 0E27;SA # THAI CHARACTER WO WAEN 0E28;SA # THAI CHARACTER SO SALA 0E29;SA # THAI CHARACTER SO RUSI 0E2A;SA # THAI CHARACTER SO SUA 0E2B;SA # THAI CHARACTER HO HIP 0E2C;SA # THAI CHARACTER LO CHULA 0E2D;SA # THAI CHARACTER O ANG 0E2E;SA # THAI CHARACTER HO NOKHUK 0E2F;SA # THAI CHARACTER PAIYANNOI 0E30;SA # THAI CHARACTER SARA A 0E31;CM # THAI CHARACTER MAI HAN-AKAT 0E32;SA # THAI CHARACTER SARA AA 0E33;SA # THAI CHARACTER SARA AM 0E34;CM # THAI CHARACTER SARA I 0E35;CM # THAI CHARACTER SARA II 0E36;CM # THAI CHARACTER SARA UE 0E37;CM # THAI CHARACTER SARA UEE 0E38;CM # THAI CHARACTER SARA U 0E39;CM # THAI CHARACTER SARA UU 0E3A;CM # THAI CHARACTER PHINTHU 0E3F;PR # THAI CURRENCY SYMBOL BAHT 0E40;SA # THAI CHARACTER SARA E 0E41;SA # THAI CHARACTER SARA AE 0E42;SA # THAI CHARACTER SARA O 0E43;SA # THAI CHARACTER SARA AI MAIMUAN 0E44;SA # THAI CHARACTER SARA AI MAIMALAI 0E45;SA # THAI CHARACTER LAKKHANGYAO 0E46;SA # THAI CHARACTER MAIYAMOK 0E47;CM # THAI CHARACTER MAITAIKHU 0E48;CM # THAI CHARACTER MAI EK 0E49;CM # THAI CHARACTER MAI THO 0E4A;CM # THAI CHARACTER MAI TRI 0E4B;CM # THAI CHARACTER MAI CHATTAWA 0E4C;CM # THAI CHARACTER THANTHAKHAT 0E4D;CM # THAI CHARACTER NIKHAHIT 0E4E;CM # THAI CHARACTER YAMAKKAN 0E4F;AL # THAI CHARACTER FONGMAN 0E50;NU # THAI DIGIT ZERO 0E51;NU # THAI DIGIT ONE 0E52;NU # THAI DIGIT TWO 0E53;NU # THAI DIGIT THREE 0E54;NU # THAI DIGIT FOUR 0E55;NU # THAI DIGIT FIVE 0E56;NU # THAI DIGIT SIX 0E57;NU # THAI DIGIT SEVEN 0E58;NU # THAI DIGIT EIGHT 0E59;NU # THAI DIGIT NINE 0E5A;NS # THAI CHARACTER ANGKHANKHU 0E5B;NS # THAI CHARACTER KHOMUT 0E81;SA # LAO LETTER KO 0E82;SA # LAO LETTER KHO SUNG 0E84;SA # LAO LETTER KHO TAM 0E87;SA # LAO LETTER NGO 0E88;SA # LAO LETTER CO 0E8A;SA # LAO LETTER SO TAM 0E8D;SA # LAO LETTER NYO 0E94;SA # LAO LETTER DO 0E95;SA # LAO LETTER TO 0E96;SA # LAO LETTER THO SUNG 0E97;SA # LAO LETTER THO TAM 0E99;SA # LAO LETTER NO 0E9A;SA # LAO LETTER BO 0E9B;SA # LAO LETTER PO 0E9C;SA # LAO LETTER PHO SUNG 0E9D;SA # LAO LETTER FO TAM 0E9E;SA # LAO LETTER PHO TAM 0E9F;SA # LAO LETTER FO SUNG 0EA1;SA # LAO LETTER MO 0EA2;SA # LAO LETTER YO 0EA3;SA # LAO LETTER LO LING 0EA5;SA # LAO LETTER LO LOOT 0EA7;SA # LAO LETTER WO 0EAA;SA # LAO LETTER SO SUNG 0EAB;SA # LAO LETTER HO SUNG 0EAD;SA # LAO LETTER O 0EAE;SA # LAO LETTER HO TAM 0EAF;SA # LAO ELLIPSIS 0EB0;SA # LAO VOWEL SIGN A 0EB1;CM # LAO VOWEL SIGN MAI KAN 0EB2;SA # LAO VOWEL SIGN AA 0EB3;SA # LAO VOWEL SIGN AM 0EB4;CM # LAO VOWEL SIGN I 0EB5;CM # LAO VOWEL SIGN II 0EB6;CM # LAO VOWEL SIGN Y 0EB7;CM # LAO VOWEL SIGN YY 0EB8;CM # LAO VOWEL SIGN U 0EB9;CM # LAO VOWEL SIGN UU 0EBB;CM # LAO VOWEL SIGN MAI KON 0EBC;CM # LAO SEMIVOWEL SIGN LO 0EBD;SA # LAO SEMIVOWEL SIGN NYO 0EC0;SA # LAO VOWEL SIGN E 0EC1;SA # LAO VOWEL SIGN EI 0EC2;SA # LAO VOWEL SIGN O 0EC3;SA # LAO VOWEL SIGN AY 0EC4;SA # LAO VOWEL SIGN AI 0EC6;SA # LAO KO LA 0EC8;CM # LAO TONE MAI EK 0EC9;CM # LAO TONE MAI THO 0ECA;CM # LAO TONE MAI TI 0ECB;CM # LAO TONE MAI CATAWA 0ECC;CM # LAO CANCELLATION MARK 0ECD;CM # LAO NIGGAHITA 0ED0;NU # LAO DIGIT ZERO 0ED1;NU # LAO DIGIT ONE 0ED2;NU # LAO DIGIT TWO 0ED3;NU # LAO DIGIT THREE 0ED4;NU # LAO DIGIT FOUR 0ED5;NU # LAO DIGIT FIVE 0ED6;NU # LAO DIGIT SIX 0ED7;NU # LAO DIGIT SEVEN 0ED8;NU # LAO DIGIT EIGHT 0ED9;NU # LAO DIGIT NINE 0EDC;SA # LAO HO NO 0EDD;SA # LAO HO MO 0F00;AL # TIBETAN SYLLABLE OM 0F01;AL # TIBETAN MARK GTER YIG MGO TRUNCATED A 0F02;AL # TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA 0F03;AL # TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA 0F04;AL # TIBETAN MARK INITIAL YIG MGO MDUN MA 0F05;AL # TIBETAN MARK CLOSING YIG MGO SGAB MA 0F06;AL # TIBETAN MARK CARET YIG MGO PHUR SHAD MA 0F07;AL # TIBETAN MARK YIG MGO TSHEG SHAD MA 0F08;AL # TIBETAN MARK SBRUL SHAD 0F09;AL # TIBETAN MARK BSKUR YIG MGO 0F0A;AL # TIBETAN MARK BKA- SHOG YIG MGO 0F0B;BA # TIBETAN MARK INTERSYLLABIC TSHEG 0F0C;GL # TIBETAN MARK DELIMITER TSHEG BSTAR 0F0D;AL # TIBETAN MARK SHAD 0F0E;AL # TIBETAN MARK NYIS SHAD 0F0F;AL # TIBETAN MARK TSHEG SHAD 0F10;AL # TIBETAN MARK NYIS TSHEG SHAD 0F11;AL # TIBETAN MARK RIN CHEN SPUNGS SHAD 0F12;AL # TIBETAN MARK RGYA GRAM SHAD 0F13;AL # TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN 0F14;AL # TIBETAN MARK GTER TSHEG 0F15;AL # TIBETAN LOGOTYPE SIGN CHAD RTAGS 0F16;AL # TIBETAN LOGOTYPE SIGN LHAG RTAGS 0F17;AL # TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS 0F18;CM # TIBETAN ASTROLOGICAL SIGN -KHYUD PA 0F19;CM # TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS 0F1A;AL # TIBETAN SIGN RDEL DKAR GCIG 0F1B;AL # TIBETAN SIGN RDEL DKAR GNYIS 0F1C;AL # TIBETAN SIGN RDEL DKAR GSUM 0F1D;AL # TIBETAN SIGN RDEL NAG GCIG 0F1E;AL # TIBETAN SIGN RDEL NAG GNYIS 0F1F;AL # TIBETAN SIGN RDEL DKAR RDEL NAG 0F20;NU # TIBETAN DIGIT ZERO 0F21;NU # TIBETAN DIGIT ONE 0F22;NU # TIBETAN DIGIT TWO 0F23;NU # TIBETAN DIGIT THREE 0F24;NU # TIBETAN DIGIT FOUR 0F25;NU # TIBETAN DIGIT FIVE 0F26;NU # TIBETAN DIGIT SIX 0F27;NU # TIBETAN DIGIT SEVEN 0F28;NU # TIBETAN DIGIT EIGHT 0F29;NU # TIBETAN DIGIT NINE 0F2A;AL # TIBETAN DIGIT HALF ONE 0F2B;AL # TIBETAN DIGIT HALF TWO 0F2C;AL # TIBETAN DIGIT HALF THREE 0F2D;AL # TIBETAN DIGIT HALF FOUR 0F2E;AL # TIBETAN DIGIT HALF FIVE 0F2F;AL # TIBETAN DIGIT HALF SIX 0F30;AL # TIBETAN DIGIT HALF SEVEN 0F31;AL # TIBETAN DIGIT HALF EIGHT 0F32;AL # TIBETAN DIGIT HALF NINE 0F33;AL # TIBETAN DIGIT HALF ZERO 0F34;AL # TIBETAN MARK BSDUS RTAGS 0F35;CM # TIBETAN MARK NGAS BZUNG NYI ZLA 0F36;AL # TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN 0F37;CM # TIBETAN MARK NGAS BZUNG SGOR RTAGS 0F38;AL # TIBETAN MARK CHE MGO 0F39;CM # TIBETAN MARK TSA -PHRU 0F3A;OP # TIBETAN MARK GUG RTAGS GYON 0F3B;CL # TIBETAN MARK GUG RTAGS GYAS 0F3C;OP # TIBETAN MARK ANG KHANG GYON 0F3D;CL # TIBETAN MARK ANG KHANG GYAS 0F3E;CM # TIBETAN SIGN YAR TSHES 0F3F;CM # TIBETAN SIGN MAR TSHES 0F40;AL # TIBETAN LETTER KA 0F41;AL # TIBETAN LETTER KHA 0F42;AL # TIBETAN LETTER GA 0F43;AL # TIBETAN LETTER GHA 0F44;AL # TIBETAN LETTER NGA 0F45;AL # TIBETAN LETTER CA 0F46;AL # TIBETAN LETTER CHA 0F47;AL # TIBETAN LETTER JA 0F49;AL # TIBETAN LETTER NYA 0F4A;AL # TIBETAN LETTER TTA 0F4B;AL # TIBETAN LETTER TTHA 0F4C;AL # TIBETAN LETTER DDA 0F4D;AL # TIBETAN LETTER DDHA 0F4E;AL # TIBETAN LETTER NNA 0F4F;AL # TIBETAN LETTER TA 0F50;AL # TIBETAN LETTER THA 0F51;AL # TIBETAN LETTER DA 0F52;AL # TIBETAN LETTER DHA 0F53;AL # TIBETAN LETTER NA 0F54;AL # TIBETAN LETTER PA 0F55;AL # TIBETAN LETTER PHA 0F56;AL # TIBETAN LETTER BA 0F57;AL # TIBETAN LETTER BHA 0F58;AL # TIBETAN LETTER MA 0F59;AL # TIBETAN LETTER TSA 0F5A;AL # TIBETAN LETTER TSHA 0F5B;AL # TIBETAN LETTER DZA 0F5C;AL # TIBETAN LETTER DZHA 0F5D;AL # TIBETAN LETTER WA 0F5E;AL # TIBETAN LETTER ZHA 0F5F;AL # TIBETAN LETTER ZA 0F60;AL # TIBETAN LETTER -A 0F61;AL # TIBETAN LETTER YA 0F62;AL # TIBETAN LETTER RA 0F63;AL # TIBETAN LETTER LA 0F64;AL # TIBETAN LETTER SHA 0F65;AL # TIBETAN LETTER SSA 0F66;AL # TIBETAN LETTER SA 0F67;AL # TIBETAN LETTER HA 0F68;AL # TIBETAN LETTER A 0F69;AL # TIBETAN LETTER KSSA 0F6A;AL # TIBETAN LETTER FIXED-FORM RA 0F71;CM # TIBETAN VOWEL SIGN AA 0F72;CM # TIBETAN VOWEL SIGN I 0F73;CM # TIBETAN VOWEL SIGN II 0F74;CM # TIBETAN VOWEL SIGN U 0F75;CM # TIBETAN VOWEL SIGN UU 0F76;CM # TIBETAN VOWEL SIGN VOCALIC R 0F77;CM # TIBETAN VOWEL SIGN VOCALIC RR 0F78;CM # TIBETAN VOWEL SIGN VOCALIC L 0F79;CM # TIBETAN VOWEL SIGN VOCALIC LL 0F7A;CM # TIBETAN VOWEL SIGN E 0F7B;CM # TIBETAN VOWEL SIGN EE 0F7C;CM # TIBETAN VOWEL SIGN O 0F7D;CM # TIBETAN VOWEL SIGN OO 0F7E;CM # TIBETAN SIGN RJES SU NGA RO 0F7F;CM # TIBETAN SIGN RNAM BCAD 0F80;CM # TIBETAN VOWEL SIGN REVERSED I 0F81;CM # TIBETAN VOWEL SIGN REVERSED II 0F82;CM # TIBETAN SIGN NYI ZLA NAA DA 0F83;CM # TIBETAN SIGN SNA LDAN 0F84;CM # TIBETAN MARK HALANTA 0F85;AL # TIBETAN MARK PALUTA 0F86;CM # TIBETAN SIGN LCI RTAGS 0F87;CM # TIBETAN SIGN YANG RTAGS 0F88;AL # TIBETAN SIGN LCE TSA CAN 0F89;AL # TIBETAN SIGN MCHU CAN 0F8A;AL # TIBETAN SIGN GRU CAN RGYINGS 0F8B;AL # TIBETAN SIGN GRU MED RGYINGS 0F90;CM # TIBETAN SUBJOINED LETTER KA 0F91;CM # TIBETAN SUBJOINED LETTER KHA 0F92;CM # TIBETAN SUBJOINED LETTER GA 0F93;CM # TIBETAN SUBJOINED LETTER GHA 0F94;CM # TIBETAN SUBJOINED LETTER NGA 0F95;CM # TIBETAN SUBJOINED LETTER CA 0F96;CM # TIBETAN SUBJOINED LETTER CHA 0F97;CM # TIBETAN SUBJOINED LETTER JA 0F99;CM # TIBETAN SUBJOINED LETTER NYA 0F9A;CM # TIBETAN SUBJOINED LETTER TTA 0F9B;CM # TIBETAN SUBJOINED LETTER TTHA 0F9C;CM # TIBETAN SUBJOINED LETTER DDA 0F9D;CM # TIBETAN SUBJOINED LETTER DDHA 0F9E;CM # TIBETAN SUBJOINED LETTER NNA 0F9F;CM # TIBETAN SUBJOINED LETTER TA 0FA0;CM # TIBETAN SUBJOINED LETTER THA 0FA1;CM # TIBETAN SUBJOINED LETTER DA 0FA2;CM # TIBETAN SUBJOINED LETTER DHA 0FA3;CM # TIBETAN SUBJOINED LETTER NA 0FA4;CM # TIBETAN SUBJOINED LETTER PA 0FA5;CM # TIBETAN SUBJOINED LETTER PHA 0FA6;CM # TIBETAN SUBJOINED LETTER BA 0FA7;CM # TIBETAN SUBJOINED LETTER BHA 0FA8;CM # TIBETAN SUBJOINED LETTER MA 0FA9;CM # TIBETAN SUBJOINED LETTER TSA 0FAA;CM # TIBETAN SUBJOINED LETTER TSHA 0FAB;CM # TIBETAN SUBJOINED LETTER DZA 0FAC;CM # TIBETAN SUBJOINED LETTER DZHA 0FAD;CM # TIBETAN SUBJOINED LETTER WA 0FAE;CM # TIBETAN SUBJOINED LETTER ZHA 0FAF;CM # TIBETAN SUBJOINED LETTER ZA 0FB0;CM # TIBETAN SUBJOINED LETTER -A 0FB1;CM # TIBETAN SUBJOINED LETTER YA 0FB2;CM # TIBETAN SUBJOINED LETTER RA 0FB3;CM # TIBETAN SUBJOINED LETTER LA 0FB4;CM # TIBETAN SUBJOINED LETTER SHA 0FB5;CM # TIBETAN SUBJOINED LETTER SSA 0FB6;CM # TIBETAN SUBJOINED LETTER SA 0FB7;CM # TIBETAN SUBJOINED LETTER HA 0FB8;CM # TIBETAN SUBJOINED LETTER A 0FB9;CM # TIBETAN SUBJOINED LETTER KSSA 0FBA;CM # TIBETAN SUBJOINED LETTER FIXED-FORM WA 0FBB;CM # TIBETAN SUBJOINED LETTER FIXED-FORM YA 0FBC;CM # TIBETAN SUBJOINED LETTER FIXED-FORM RA 0FBE;AL # TIBETAN KU RU KHA 0FBF;AL # TIBETAN KU RU KHA BZHI MIG CAN 0FC0;AL # TIBETAN CANTILLATION SIGN HEAVY BEAT 0FC1;AL # TIBETAN CANTILLATION SIGN LIGHT BEAT 0FC2;AL # TIBETAN CANTILLATION SIGN CANG TE-U 0FC3;AL # TIBETAN CANTILLATION SIGN SBUB -CHAL 0FC4;AL # TIBETAN SYMBOL DRIL BU 0FC5;AL # TIBETAN SYMBOL RDO RJE 0FC6;CM # TIBETAN SYMBOL PADMA GDAN 0FC7;AL # TIBETAN SYMBOL RDO RJE RGYA GRAM 0FC8;AL # TIBETAN SYMBOL PHUR PA 0FC9;AL # TIBETAN SYMBOL NOR BU 0FCA;AL # TIBETAN SYMBOL NOR BU NYIS -KHYIL 0FCB;AL # TIBETAN SYMBOL NOR BU GSUM -KHYIL 0FCC;AL # TIBETAN SYMBOL NOR BU BZHI -KHYIL 0FCF;AL # TIBETAN SIGN RDEL NAG GSUM 1000;SA # MYANMAR LETTER KA 1001;SA # MYANMAR LETTER KHA 1002;SA # MYANMAR LETTER GA 1003;SA # MYANMAR LETTER GHA 1004;SA # MYANMAR LETTER NGA 1005;SA # MYANMAR LETTER CA 1006;SA # MYANMAR LETTER CHA 1007;SA # MYANMAR LETTER JA 1008;SA # MYANMAR LETTER JHA 1009;SA # MYANMAR LETTER NYA 100A;SA # MYANMAR LETTER NNYA 100B;SA # MYANMAR LETTER TTA 100C;SA # MYANMAR LETTER TTHA 100D;SA # MYANMAR LETTER DDA 100E;SA # MYANMAR LETTER DDHA 100F;SA # MYANMAR LETTER NNA 1010;SA # MYANMAR LETTER TA 1011;SA # MYANMAR LETTER THA 1012;SA # MYANMAR LETTER DA 1013;SA # MYANMAR LETTER DHA 1014;SA # MYANMAR LETTER NA 1015;SA # MYANMAR LETTER PA 1016;SA # MYANMAR LETTER PHA 1017;SA # MYANMAR LETTER BA 1018;SA # MYANMAR LETTER BHA 1019;SA # MYANMAR LETTER MA 101A;SA # MYANMAR LETTER YA 101B;SA # MYANMAR LETTER RA 101C;SA # MYANMAR LETTER LA 101D;SA # MYANMAR LETTER WA 101E;SA # MYANMAR LETTER SA 101F;SA # MYANMAR LETTER HA 1020;SA # MYANMAR LETTER LLA 1021;SA # MYANMAR LETTER A 1023;SA # MYANMAR LETTER I 1024;SA # MYANMAR LETTER II 1025;SA # MYANMAR LETTER U 1026;SA # MYANMAR LETTER UU 1027;SA # MYANMAR LETTER E 1029;SA # MYANMAR LETTER O 102A;SA # MYANMAR LETTER AU 102C;CM # MYANMAR VOWEL SIGN AA 102D;CM # MYANMAR VOWEL SIGN I 102E;CM # MYANMAR VOWEL SIGN II 102F;CM # MYANMAR VOWEL SIGN U 1030;CM # MYANMAR VOWEL SIGN UU 1031;CM # MYANMAR VOWEL SIGN E 1032;CM # MYANMAR VOWEL SIGN AI 1036;CM # MYANMAR SIGN ANUSVARA 1037;CM # MYANMAR SIGN DOT BELOW 1038;CM # MYANMAR SIGN VISARGA 1039;CM # MYANMAR SIGN VIRAMA 1040;NU # MYANMAR DIGIT ZERO 1041;NU # MYANMAR DIGIT ONE 1042;NU # MYANMAR DIGIT TWO 1043;NU # MYANMAR DIGIT THREE 1044;NU # MYANMAR DIGIT FOUR 1045;NU # MYANMAR DIGIT FIVE 1046;NU # MYANMAR DIGIT SIX 1047;NU # MYANMAR DIGIT SEVEN 1048;NU # MYANMAR DIGIT EIGHT 1049;NU # MYANMAR DIGIT NINE 104A;AL # MYANMAR SIGN LITTLE SECTION 104B;AL # MYANMAR SIGN SECTION 104C;AL # MYANMAR SYMBOL LOCATIVE 104D;AL # MYANMAR SYMBOL COMPLETED 104E;AL # MYANMAR SYMBOL AFOREMENTIONED 104F;AL # MYANMAR SYMBOL GENITIVE 1050;SA # MYANMAR LETTER SHA 1051;SA # MYANMAR LETTER SSA 1052;SA # MYANMAR LETTER VOCALIC R 1053;SA # MYANMAR LETTER VOCALIC RR 1054;SA # MYANMAR LETTER VOCALIC L 1055;SA # MYANMAR LETTER VOCALIC LL 1056;CM # MYANMAR VOWEL SIGN VOCALIC R 1057;CM # MYANMAR VOWEL SIGN VOCALIC RR 1058;CM # MYANMAR VOWEL SIGN VOCALIC L 1059;CM # MYANMAR VOWEL SIGN VOCALIC LL 10A0;AL # GEORGIAN CAPITAL LETTER AN 10A1;AL # GEORGIAN CAPITAL LETTER BAN 10A2;AL # GEORGIAN CAPITAL LETTER GAN 10A3;AL # GEORGIAN CAPITAL LETTER DON 10A4;AL # GEORGIAN CAPITAL LETTER EN 10A5;AL # GEORGIAN CAPITAL LETTER VIN 10A6;AL # GEORGIAN CAPITAL LETTER ZEN 10A7;AL # GEORGIAN CAPITAL LETTER TAN 10A8;AL # GEORGIAN CAPITAL LETTER IN 10A9;AL # GEORGIAN CAPITAL LETTER KAN 10AA;AL # GEORGIAN CAPITAL LETTER LAS 10AB;AL # GEORGIAN CAPITAL LETTER MAN 10AC;AL # GEORGIAN CAPITAL LETTER NAR 10AD;AL # GEORGIAN CAPITAL LETTER ON 10AE;AL # GEORGIAN CAPITAL LETTER PAR 10AF;AL # GEORGIAN CAPITAL LETTER ZHAR 10B0;AL # GEORGIAN CAPITAL LETTER RAE 10B1;AL # GEORGIAN CAPITAL LETTER SAN 10B2;AL # GEORGIAN CAPITAL LETTER TAR 10B3;AL # GEORGIAN CAPITAL LETTER UN 10B4;AL # GEORGIAN CAPITAL LETTER PHAR 10B5;AL # GEORGIAN CAPITAL LETTER KHAR 10B6;AL # GEORGIAN CAPITAL LETTER GHAN 10B7;AL # GEORGIAN CAPITAL LETTER QAR 10B8;AL # GEORGIAN CAPITAL LETTER SHIN 10B9;AL # GEORGIAN CAPITAL LETTER CHIN 10BA;AL # GEORGIAN CAPITAL LETTER CAN 10BB;AL # GEORGIAN CAPITAL LETTER JIL 10BC;AL # GEORGIAN CAPITAL LETTER CIL 10BD;AL # GEORGIAN CAPITAL LETTER CHAR 10BE;AL # GEORGIAN CAPITAL LETTER XAN 10BF;AL # GEORGIAN CAPITAL LETTER JHAN 10C0;AL # GEORGIAN CAPITAL LETTER HAE 10C1;AL # GEORGIAN CAPITAL LETTER HE 10C2;AL # GEORGIAN CAPITAL LETTER HIE 10C3;AL # GEORGIAN CAPITAL LETTER WE 10C4;AL # GEORGIAN CAPITAL LETTER HAR 10C5;AL # GEORGIAN CAPITAL LETTER HOE 10D0;AL # GEORGIAN LETTER AN 10D1;AL # GEORGIAN LETTER BAN 10D2;AL # GEORGIAN LETTER GAN 10D3;AL # GEORGIAN LETTER DON 10D4;AL # GEORGIAN LETTER EN 10D5;AL # GEORGIAN LETTER VIN 10D6;AL # GEORGIAN LETTER ZEN 10D7;AL # GEORGIAN LETTER TAN 10D8;AL # GEORGIAN LETTER IN 10D9;AL # GEORGIAN LETTER KAN 10DA;AL # GEORGIAN LETTER LAS 10DB;AL # GEORGIAN LETTER MAN 10DC;AL # GEORGIAN LETTER NAR 10DD;AL # GEORGIAN LETTER ON 10DE;AL # GEORGIAN LETTER PAR 10DF;AL # GEORGIAN LETTER ZHAR 10E0;AL # GEORGIAN LETTER RAE 10E1;AL # GEORGIAN LETTER SAN 10E2;AL # GEORGIAN LETTER TAR 10E3;AL # GEORGIAN LETTER UN 10E4;AL # GEORGIAN LETTER PHAR 10E5;AL # GEORGIAN LETTER KHAR 10E6;AL # GEORGIAN LETTER GHAN 10E7;AL # GEORGIAN LETTER QAR 10E8;AL # GEORGIAN LETTER SHIN 10E9;AL # GEORGIAN LETTER CHIN 10EA;AL # GEORGIAN LETTER CAN 10EB;AL # GEORGIAN LETTER JIL 10EC;AL # GEORGIAN LETTER CIL 10ED;AL # GEORGIAN LETTER CHAR 10EE;AL # GEORGIAN LETTER XAN 10EF;AL # GEORGIAN LETTER JHAN 10F0;AL # GEORGIAN LETTER HAE 10F1;AL # GEORGIAN LETTER HE 10F2;AL # GEORGIAN LETTER HIE 10F3;AL # GEORGIAN LETTER WE 10F4;AL # GEORGIAN LETTER HAR 10F5;AL # GEORGIAN LETTER HOE 10F6;AL # GEORGIAN LETTER FI 10F7;AL # GEORGIAN LETTER YN 10F8;AL # GEORGIAN LETTER ELIFI 10FB;AL # GEORGIAN PARAGRAPH SEPARATOR 1100;ID # HANGUL CHOSEONG KIYEOK 1101;ID # HANGUL CHOSEONG SSANGKIYEOK 1102;ID # HANGUL CHOSEONG NIEUN 1103;ID # HANGUL CHOSEONG TIKEUT 1104;ID # HANGUL CHOSEONG SSANGTIKEUT 1105;ID # HANGUL CHOSEONG RIEUL 1106;ID # HANGUL CHOSEONG MIEUM 1107;ID # HANGUL CHOSEONG PIEUP 1108;ID # HANGUL CHOSEONG SSANGPIEUP 1109;ID # HANGUL CHOSEONG SIOS 110A;ID # HANGUL CHOSEONG SSANGSIOS 110B;ID # HANGUL CHOSEONG IEUNG 110C;ID # HANGUL CHOSEONG CIEUC 110D;ID # HANGUL CHOSEONG SSANGCIEUC 110E;ID # HANGUL CHOSEONG CHIEUCH 110F;ID # HANGUL CHOSEONG KHIEUKH 1110;ID # HANGUL CHOSEONG THIEUTH 1111;ID # HANGUL CHOSEONG PHIEUPH 1112;ID # HANGUL CHOSEONG HIEUH 1113;ID # HANGUL CHOSEONG NIEUN-KIYEOK 1114;ID # HANGUL CHOSEONG SSANGNIEUN 1115;ID # HANGUL CHOSEONG NIEUN-TIKEUT 1116;ID # HANGUL CHOSEONG NIEUN-PIEUP 1117;ID # HANGUL CHOSEONG TIKEUT-KIYEOK 1118;ID # HANGUL CHOSEONG RIEUL-NIEUN 1119;ID # HANGUL CHOSEONG SSANGRIEUL 111A;ID # HANGUL CHOSEONG RIEUL-HIEUH 111B;ID # HANGUL CHOSEONG KAPYEOUNRIEUL 111C;ID # HANGUL CHOSEONG MIEUM-PIEUP 111D;ID # HANGUL CHOSEONG KAPYEOUNMIEUM 111E;ID # HANGUL CHOSEONG PIEUP-KIYEOK 111F;ID # HANGUL CHOSEONG PIEUP-NIEUN 1120;ID # HANGUL CHOSEONG PIEUP-TIKEUT 1121;ID # HANGUL CHOSEONG PIEUP-SIOS 1122;ID # HANGUL CHOSEONG PIEUP-SIOS-KIYEOK 1123;ID # HANGUL CHOSEONG PIEUP-SIOS-TIKEUT 1124;ID # HANGUL CHOSEONG PIEUP-SIOS-PIEUP 1125;ID # HANGUL CHOSEONG PIEUP-SSANGSIOS 1126;ID # HANGUL CHOSEONG PIEUP-SIOS-CIEUC 1127;ID # HANGUL CHOSEONG PIEUP-CIEUC 1128;ID # HANGUL CHOSEONG PIEUP-CHIEUCH 1129;ID # HANGUL CHOSEONG PIEUP-THIEUTH 112A;ID # HANGUL CHOSEONG PIEUP-PHIEUPH 112B;ID # HANGUL CHOSEONG KAPYEOUNPIEUP 112C;ID # HANGUL CHOSEONG KAPYEOUNSSANGPIEUP 112D;ID # HANGUL CHOSEONG SIOS-KIYEOK 112E;ID # HANGUL CHOSEONG SIOS-NIEUN 112F;ID # HANGUL CHOSEONG SIOS-TIKEUT 1130;ID # HANGUL CHOSEONG SIOS-RIEUL 1131;ID # HANGUL CHOSEONG SIOS-MIEUM 1132;ID # HANGUL CHOSEONG SIOS-PIEUP 1133;ID # HANGUL CHOSEONG SIOS-PIEUP-KIYEOK 1134;ID # HANGUL CHOSEONG SIOS-SSANGSIOS 1135;ID # HANGUL CHOSEONG SIOS-IEUNG 1136;ID # HANGUL CHOSEONG SIOS-CIEUC 1137;ID # HANGUL CHOSEONG SIOS-CHIEUCH 1138;ID # HANGUL CHOSEONG SIOS-KHIEUKH 1139;ID # HANGUL CHOSEONG SIOS-THIEUTH 113A;ID # HANGUL CHOSEONG SIOS-PHIEUPH 113B;ID # HANGUL CHOSEONG SIOS-HIEUH 113C;ID # HANGUL CHOSEONG CHITUEUMSIOS 113D;ID # HANGUL CHOSEONG CHITUEUMSSANGSIOS 113E;ID # HANGUL CHOSEONG CEONGCHIEUMSIOS 113F;ID # HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS 1140;ID # HANGUL CHOSEONG PANSIOS 1141;ID # HANGUL CHOSEONG IEUNG-KIYEOK 1142;ID # HANGUL CHOSEONG IEUNG-TIKEUT 1143;ID # HANGUL CHOSEONG IEUNG-MIEUM 1144;ID # HANGUL CHOSEONG IEUNG-PIEUP 1145;ID # HANGUL CHOSEONG IEUNG-SIOS 1146;ID # HANGUL CHOSEONG IEUNG-PANSIOS 1147;ID # HANGUL CHOSEONG SSANGIEUNG 1148;ID # HANGUL CHOSEONG IEUNG-CIEUC 1149;ID # HANGUL CHOSEONG IEUNG-CHIEUCH 114A;ID # HANGUL CHOSEONG IEUNG-THIEUTH 114B;ID # HANGUL CHOSEONG IEUNG-PHIEUPH 114C;ID # HANGUL CHOSEONG YESIEUNG 114D;ID # HANGUL CHOSEONG CIEUC-IEUNG 114E;ID # HANGUL CHOSEONG CHITUEUMCIEUC 114F;ID # HANGUL CHOSEONG CHITUEUMSSANGCIEUC 1150;ID # HANGUL CHOSEONG CEONGCHIEUMCIEUC 1151;ID # HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC 1152;ID # HANGUL CHOSEONG CHIEUCH-KHIEUKH 1153;ID # HANGUL CHOSEONG CHIEUCH-HIEUH 1154;ID # HANGUL CHOSEONG CHITUEUMCHIEUCH 1155;ID # HANGUL CHOSEONG CEONGCHIEUMCHIEUCH 1156;ID # HANGUL CHOSEONG PHIEUPH-PIEUP 1157;ID # HANGUL CHOSEONG KAPYEOUNPHIEUPH 1158;ID # HANGUL CHOSEONG SSANGHIEUH 1159;ID # HANGUL CHOSEONG YEORINHIEUH 115F;ID # HANGUL CHOSEONG FILLER 1160;CM # HANGUL JUNGSEONG FILLER 1161;CM # HANGUL JUNGSEONG A 1162;CM # HANGUL JUNGSEONG AE 1163;CM # HANGUL JUNGSEONG YA 1164;CM # HANGUL JUNGSEONG YAE 1165;CM # HANGUL JUNGSEONG EO 1166;CM # HANGUL JUNGSEONG E 1167;CM # HANGUL JUNGSEONG YEO 1168;CM # HANGUL JUNGSEONG YE 1169;CM # HANGUL JUNGSEONG O 116A;CM # HANGUL JUNGSEONG WA 116B;CM # HANGUL JUNGSEONG WAE 116C;CM # HANGUL JUNGSEONG OE 116D;CM # HANGUL JUNGSEONG YO 116E;CM # HANGUL JUNGSEONG U 116F;CM # HANGUL JUNGSEONG WEO 1170;CM # HANGUL JUNGSEONG WE 1171;CM # HANGUL JUNGSEONG WI 1172;CM # HANGUL JUNGSEONG YU 1173;CM # HANGUL JUNGSEONG EU 1174;CM # HANGUL JUNGSEONG YI 1175;CM # HANGUL JUNGSEONG I 1176;CM # HANGUL JUNGSEONG A-O 1177;CM # HANGUL JUNGSEONG A-U 1178;CM # HANGUL JUNGSEONG YA-O 1179;CM # HANGUL JUNGSEONG YA-YO 117A;CM # HANGUL JUNGSEONG EO-O 117B;CM # HANGUL JUNGSEONG EO-U 117C;CM # HANGUL JUNGSEONG EO-EU 117D;CM # HANGUL JUNGSEONG YEO-O 117E;CM # HANGUL JUNGSEONG YEO-U 117F;CM # HANGUL JUNGSEONG O-EO 1180;CM # HANGUL JUNGSEONG O-E 1181;CM # HANGUL JUNGSEONG O-YE 1182;CM # HANGUL JUNGSEONG O-O 1183;CM # HANGUL JUNGSEONG O-U 1184;CM # HANGUL JUNGSEONG YO-YA 1185;CM # HANGUL JUNGSEONG YO-YAE 1186;CM # HANGUL JUNGSEONG YO-YEO 1187;CM # HANGUL JUNGSEONG YO-O 1188;CM # HANGUL JUNGSEONG YO-I 1189;CM # HANGUL JUNGSEONG U-A 118A;CM # HANGUL JUNGSEONG U-AE 118B;CM # HANGUL JUNGSEONG U-EO-EU 118C;CM # HANGUL JUNGSEONG U-YE 118D;CM # HANGUL JUNGSEONG U-U 118E;CM # HANGUL JUNGSEONG YU-A 118F;CM # HANGUL JUNGSEONG YU-EO 1190;CM # HANGUL JUNGSEONG YU-E 1191;CM # HANGUL JUNGSEONG YU-YEO 1192;CM # HANGUL JUNGSEONG YU-YE 1193;CM # HANGUL JUNGSEONG YU-U 1194;CM # HANGUL JUNGSEONG YU-I 1195;CM # HANGUL JUNGSEONG EU-U 1196;CM # HANGUL JUNGSEONG EU-EU 1197;CM # HANGUL JUNGSEONG YI-U 1198;CM # HANGUL JUNGSEONG I-A 1199;CM # HANGUL JUNGSEONG I-YA 119A;CM # HANGUL JUNGSEONG I-O 119B;CM # HANGUL JUNGSEONG I-U 119C;CM # HANGUL JUNGSEONG I-EU 119D;CM # HANGUL JUNGSEONG I-ARAEA 119E;CM # HANGUL JUNGSEONG ARAEA 119F;CM # HANGUL JUNGSEONG ARAEA-EO 11A0;CM # HANGUL JUNGSEONG ARAEA-U 11A1;CM # HANGUL JUNGSEONG ARAEA-I 11A2;CM # HANGUL JUNGSEONG SSANGARAEA 11A8;CM # HANGUL JONGSEONG KIYEOK 11A9;CM # HANGUL JONGSEONG SSANGKIYEOK 11AA;CM # HANGUL JONGSEONG KIYEOK-SIOS 11AB;CM # HANGUL JONGSEONG NIEUN 11AC;CM # HANGUL JONGSEONG NIEUN-CIEUC 11AD;CM # HANGUL JONGSEONG NIEUN-HIEUH 11AE;CM # HANGUL JONGSEONG TIKEUT 11AF;CM # HANGUL JONGSEONG RIEUL 11B0;CM # HANGUL JONGSEONG RIEUL-KIYEOK 11B1;CM # HANGUL JONGSEONG RIEUL-MIEUM 11B2;CM # HANGUL JONGSEONG RIEUL-PIEUP 11B3;CM # HANGUL JONGSEONG RIEUL-SIOS 11B4;CM # HANGUL JONGSEONG RIEUL-THIEUTH 11B5;CM # HANGUL JONGSEONG RIEUL-PHIEUPH 11B6;CM # HANGUL JONGSEONG RIEUL-HIEUH 11B7;CM # HANGUL JONGSEONG MIEUM 11B8;CM # HANGUL JONGSEONG PIEUP 11B9;CM # HANGUL JONGSEONG PIEUP-SIOS 11BA;CM # HANGUL JONGSEONG SIOS 11BB;CM # HANGUL JONGSEONG SSANGSIOS 11BC;CM # HANGUL JONGSEONG IEUNG 11BD;CM # HANGUL JONGSEONG CIEUC 11BE;CM # HANGUL JONGSEONG CHIEUCH 11BF;CM # HANGUL JONGSEONG KHIEUKH 11C0;CM # HANGUL JONGSEONG THIEUTH 11C1;CM # HANGUL JONGSEONG PHIEUPH 11C2;CM # HANGUL JONGSEONG HIEUH 11C3;CM # HANGUL JONGSEONG KIYEOK-RIEUL 11C4;CM # HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK 11C5;CM # HANGUL JONGSEONG NIEUN-KIYEOK 11C6;CM # HANGUL JONGSEONG NIEUN-TIKEUT 11C7;CM # HANGUL JONGSEONG NIEUN-SIOS 11C8;CM # HANGUL JONGSEONG NIEUN-PANSIOS 11C9;CM # HANGUL JONGSEONG NIEUN-THIEUTH 11CA;CM # HANGUL JONGSEONG TIKEUT-KIYEOK 11CB;CM # HANGUL JONGSEONG TIKEUT-RIEUL 11CC;CM # HANGUL JONGSEONG RIEUL-KIYEOK-SIOS 11CD;CM # HANGUL JONGSEONG RIEUL-NIEUN 11CE;CM # HANGUL JONGSEONG RIEUL-TIKEUT 11CF;CM # HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH 11D0;CM # HANGUL JONGSEONG SSANGRIEUL 11D1;CM # HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK 11D2;CM # HANGUL JONGSEONG RIEUL-MIEUM-SIOS 11D3;CM # HANGUL JONGSEONG RIEUL-PIEUP-SIOS 11D4;CM # HANGUL JONGSEONG RIEUL-PIEUP-HIEUH 11D5;CM # HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP 11D6;CM # HANGUL JONGSEONG RIEUL-SSANGSIOS 11D7;CM # HANGUL JONGSEONG RIEUL-PANSIOS 11D8;CM # HANGUL JONGSEONG RIEUL-KHIEUKH 11D9;CM # HANGUL JONGSEONG RIEUL-YEORINHIEUH 11DA;CM # HANGUL JONGSEONG MIEUM-KIYEOK 11DB;CM # HANGUL JONGSEONG MIEUM-RIEUL 11DC;CM # HANGUL JONGSEONG MIEUM-PIEUP 11DD;CM # HANGUL JONGSEONG MIEUM-SIOS 11DE;CM # HANGUL JONGSEONG MIEUM-SSANGSIOS 11DF;CM # HANGUL JONGSEONG MIEUM-PANSIOS 11E0;CM # HANGUL JONGSEONG MIEUM-CHIEUCH 11E1;CM # HANGUL JONGSEONG MIEUM-HIEUH 11E2;CM # HANGUL JONGSEONG KAPYEOUNMIEUM 11E3;CM # HANGUL JONGSEONG PIEUP-RIEUL 11E4;CM # HANGUL JONGSEONG PIEUP-PHIEUPH 11E5;CM # HANGUL JONGSEONG PIEUP-HIEUH 11E6;CM # HANGUL JONGSEONG KAPYEOUNPIEUP 11E7;CM # HANGUL JONGSEONG SIOS-KIYEOK 11E8;CM # HANGUL JONGSEONG SIOS-TIKEUT 11E9;CM # HANGUL JONGSEONG SIOS-RIEUL 11EA;CM # HANGUL JONGSEONG SIOS-PIEUP 11EB;CM # HANGUL JONGSEONG PANSIOS 11EC;CM # HANGUL JONGSEONG IEUNG-KIYEOK 11ED;CM # HANGUL JONGSEONG IEUNG-SSANGKIYEOK 11EE;CM # HANGUL JONGSEONG SSANGIEUNG 11EF;CM # HANGUL JONGSEONG IEUNG-KHIEUKH 11F0;CM # HANGUL JONGSEONG YESIEUNG 11F1;CM # HANGUL JONGSEONG YESIEUNG-SIOS 11F2;CM # HANGUL JONGSEONG YESIEUNG-PANSIOS 11F3;CM # HANGUL JONGSEONG PHIEUPH-PIEUP 11F4;CM # HANGUL JONGSEONG KAPYEOUNPHIEUPH 11F5;CM # HANGUL JONGSEONG HIEUH-NIEUN 11F6;CM # HANGUL JONGSEONG HIEUH-RIEUL 11F7;CM # HANGUL JONGSEONG HIEUH-MIEUM 11F8;CM # HANGUL JONGSEONG HIEUH-PIEUP 11F9;CM # HANGUL JONGSEONG YEORINHIEUH 1200;AL # ETHIOPIC SYLLABLE HA 1201;AL # ETHIOPIC SYLLABLE HU 1202;AL # ETHIOPIC SYLLABLE HI 1203;AL # ETHIOPIC SYLLABLE HAA 1204;AL # ETHIOPIC SYLLABLE HEE 1205;AL # ETHIOPIC SYLLABLE HE 1206;AL # ETHIOPIC SYLLABLE HO 1208;AL # ETHIOPIC SYLLABLE LA 1209;AL # ETHIOPIC SYLLABLE LU 120A;AL # ETHIOPIC SYLLABLE LI 120B;AL # ETHIOPIC SYLLABLE LAA 120C;AL # ETHIOPIC SYLLABLE LEE 120D;AL # ETHIOPIC SYLLABLE LE 120E;AL # ETHIOPIC SYLLABLE LO 120F;AL # ETHIOPIC SYLLABLE LWA 1210;AL # ETHIOPIC SYLLABLE HHA 1211;AL # ETHIOPIC SYLLABLE HHU 1212;AL # ETHIOPIC SYLLABLE HHI 1213;AL # ETHIOPIC SYLLABLE HHAA 1214;AL # ETHIOPIC SYLLABLE HHEE 1215;AL # ETHIOPIC SYLLABLE HHE 1216;AL # ETHIOPIC SYLLABLE HHO 1217;AL # ETHIOPIC SYLLABLE HHWA 1218;AL # ETHIOPIC SYLLABLE MA 1219;AL # ETHIOPIC SYLLABLE MU 121A;AL # ETHIOPIC SYLLABLE MI 121B;AL # ETHIOPIC SYLLABLE MAA 121C;AL # ETHIOPIC SYLLABLE MEE 121D;AL # ETHIOPIC SYLLABLE ME 121E;AL # ETHIOPIC SYLLABLE MO 121F;AL # ETHIOPIC SYLLABLE MWA 1220;AL # ETHIOPIC SYLLABLE SZA 1221;AL # ETHIOPIC SYLLABLE SZU 1222;AL # ETHIOPIC SYLLABLE SZI 1223;AL # ETHIOPIC SYLLABLE SZAA 1224;AL # ETHIOPIC SYLLABLE SZEE 1225;AL # ETHIOPIC SYLLABLE SZE 1226;AL # ETHIOPIC SYLLABLE SZO 1227;AL # ETHIOPIC SYLLABLE SZWA 1228;AL # ETHIOPIC SYLLABLE RA 1229;AL # ETHIOPIC SYLLABLE RU 122A;AL # ETHIOPIC SYLLABLE RI 122B;AL # ETHIOPIC SYLLABLE RAA 122C;AL # ETHIOPIC SYLLABLE REE 122D;AL # ETHIOPIC SYLLABLE RE 122E;AL # ETHIOPIC SYLLABLE RO 122F;AL # ETHIOPIC SYLLABLE RWA 1230;AL # ETHIOPIC SYLLABLE SA 1231;AL # ETHIOPIC SYLLABLE SU 1232;AL # ETHIOPIC SYLLABLE SI 1233;AL # ETHIOPIC SYLLABLE SAA 1234;AL # ETHIOPIC SYLLABLE SEE 1235;AL # ETHIOPIC SYLLABLE SE 1236;AL # ETHIOPIC SYLLABLE SO 1237;AL # ETHIOPIC SYLLABLE SWA 1238;AL # ETHIOPIC SYLLABLE SHA 1239;AL # ETHIOPIC SYLLABLE SHU 123A;AL # ETHIOPIC SYLLABLE SHI 123B;AL # ETHIOPIC SYLLABLE SHAA 123C;AL # ETHIOPIC SYLLABLE SHEE 123D;AL # ETHIOPIC SYLLABLE SHE 123E;AL # ETHIOPIC SYLLABLE SHO 123F;AL # ETHIOPIC SYLLABLE SHWA 1240;AL # ETHIOPIC SYLLABLE QA 1241;AL # ETHIOPIC SYLLABLE QU 1242;AL # ETHIOPIC SYLLABLE QI 1243;AL # ETHIOPIC SYLLABLE QAA 1244;AL # ETHIOPIC SYLLABLE QEE 1245;AL # ETHIOPIC SYLLABLE QE 1246;AL # ETHIOPIC SYLLABLE QO 1248;AL # ETHIOPIC SYLLABLE QWA 124A;AL # ETHIOPIC SYLLABLE QWI 124B;AL # ETHIOPIC SYLLABLE QWAA 124C;AL # ETHIOPIC SYLLABLE QWEE 124D;AL # ETHIOPIC SYLLABLE QWE 1250;AL # ETHIOPIC SYLLABLE QHA 1251;AL # ETHIOPIC SYLLABLE QHU 1252;AL # ETHIOPIC SYLLABLE QHI 1253;AL # ETHIOPIC SYLLABLE QHAA 1254;AL # ETHIOPIC SYLLABLE QHEE 1255;AL # ETHIOPIC SYLLABLE QHE 1256;AL # ETHIOPIC SYLLABLE QHO 1258;AL # ETHIOPIC SYLLABLE QHWA 125A;AL # ETHIOPIC SYLLABLE QHWI 125B;AL # ETHIOPIC SYLLABLE QHWAA 125C;AL # ETHIOPIC SYLLABLE QHWEE 125D;AL # ETHIOPIC SYLLABLE QHWE 1260;AL # ETHIOPIC SYLLABLE BA 1261;AL # ETHIOPIC SYLLABLE BU 1262;AL # ETHIOPIC SYLLABLE BI 1263;AL # ETHIOPIC SYLLABLE BAA 1264;AL # ETHIOPIC SYLLABLE BEE 1265;AL # ETHIOPIC SYLLABLE BE 1266;AL # ETHIOPIC SYLLABLE BO 1267;AL # ETHIOPIC SYLLABLE BWA 1268;AL # ETHIOPIC SYLLABLE VA 1269;AL # ETHIOPIC SYLLABLE VU 126A;AL # ETHIOPIC SYLLABLE VI 126B;AL # ETHIOPIC SYLLABLE VAA 126C;AL # ETHIOPIC SYLLABLE VEE 126D;AL # ETHIOPIC SYLLABLE VE 126E;AL # ETHIOPIC SYLLABLE VO 126F;AL # ETHIOPIC SYLLABLE VWA 1270;AL # ETHIOPIC SYLLABLE TA 1271;AL # ETHIOPIC SYLLABLE TU 1272;AL # ETHIOPIC SYLLABLE TI 1273;AL # ETHIOPIC SYLLABLE TAA 1274;AL # ETHIOPIC SYLLABLE TEE 1275;AL # ETHIOPIC SYLLABLE TE 1276;AL # ETHIOPIC SYLLABLE TO 1277;AL # ETHIOPIC SYLLABLE TWA 1278;AL # ETHIOPIC SYLLABLE CA 1279;AL # ETHIOPIC SYLLABLE CU 127A;AL # ETHIOPIC SYLLABLE CI 127B;AL # ETHIOPIC SYLLABLE CAA 127C;AL # ETHIOPIC SYLLABLE CEE 127D;AL # ETHIOPIC SYLLABLE CE 127E;AL # ETHIOPIC SYLLABLE CO 127F;AL # ETHIOPIC SYLLABLE CWA 1280;AL # ETHIOPIC SYLLABLE XA 1281;AL # ETHIOPIC SYLLABLE XU 1282;AL # ETHIOPIC SYLLABLE XI 1283;AL # ETHIOPIC SYLLABLE XAA 1284;AL # ETHIOPIC SYLLABLE XEE 1285;AL # ETHIOPIC SYLLABLE XE 1286;AL # ETHIOPIC SYLLABLE XO 1288;AL # ETHIOPIC SYLLABLE XWA 128A;AL # ETHIOPIC SYLLABLE XWI 128B;AL # ETHIOPIC SYLLABLE XWAA 128C;AL # ETHIOPIC SYLLABLE XWEE 128D;AL # ETHIOPIC SYLLABLE XWE 1290;AL # ETHIOPIC SYLLABLE NA 1291;AL # ETHIOPIC SYLLABLE NU 1292;AL # ETHIOPIC SYLLABLE NI 1293;AL # ETHIOPIC SYLLABLE NAA 1294;AL # ETHIOPIC SYLLABLE NEE 1295;AL # ETHIOPIC SYLLABLE NE 1296;AL # ETHIOPIC SYLLABLE NO 1297;AL # ETHIOPIC SYLLABLE NWA 1298;AL # ETHIOPIC SYLLABLE NYA 1299;AL # ETHIOPIC SYLLABLE NYU 129A;AL # ETHIOPIC SYLLABLE NYI 129B;AL # ETHIOPIC SYLLABLE NYAA 129C;AL # ETHIOPIC SYLLABLE NYEE 129D;AL # ETHIOPIC SYLLABLE NYE 129E;AL # ETHIOPIC SYLLABLE NYO 129F;AL # ETHIOPIC SYLLABLE NYWA 12A0;AL # ETHIOPIC SYLLABLE GLOTTAL A 12A1;AL # ETHIOPIC SYLLABLE GLOTTAL U 12A2;AL # ETHIOPIC SYLLABLE GLOTTAL I 12A3;AL # ETHIOPIC SYLLABLE GLOTTAL AA 12A4;AL # ETHIOPIC SYLLABLE GLOTTAL EE 12A5;AL # ETHIOPIC SYLLABLE GLOTTAL E 12A6;AL # ETHIOPIC SYLLABLE GLOTTAL O 12A7;AL # ETHIOPIC SYLLABLE GLOTTAL WA 12A8;AL # ETHIOPIC SYLLABLE KA 12A9;AL # ETHIOPIC SYLLABLE KU 12AA;AL # ETHIOPIC SYLLABLE KI 12AB;AL # ETHIOPIC SYLLABLE KAA 12AC;AL # ETHIOPIC SYLLABLE KEE 12AD;AL # ETHIOPIC SYLLABLE KE 12AE;AL # ETHIOPIC SYLLABLE KO 12B0;AL # ETHIOPIC SYLLABLE KWA 12B2;AL # ETHIOPIC SYLLABLE KWI 12B3;AL # ETHIOPIC SYLLABLE KWAA 12B4;AL # ETHIOPIC SYLLABLE KWEE 12B5;AL # ETHIOPIC SYLLABLE KWE 12B8;AL # ETHIOPIC SYLLABLE KXA 12B9;AL # ETHIOPIC SYLLABLE KXU 12BA;AL # ETHIOPIC SYLLABLE KXI 12BB;AL # ETHIOPIC SYLLABLE KXAA 12BC;AL # ETHIOPIC SYLLABLE KXEE 12BD;AL # ETHIOPIC SYLLABLE KXE 12BE;AL # ETHIOPIC SYLLABLE KXO 12C0;AL # ETHIOPIC SYLLABLE KXWA 12C2;AL # ETHIOPIC SYLLABLE KXWI 12C3;AL # ETHIOPIC SYLLABLE KXWAA 12C4;AL # ETHIOPIC SYLLABLE KXWEE 12C5;AL # ETHIOPIC SYLLABLE KXWE 12C8;AL # ETHIOPIC SYLLABLE WA 12C9;AL # ETHIOPIC SYLLABLE WU 12CA;AL # ETHIOPIC SYLLABLE WI 12CB;AL # ETHIOPIC SYLLABLE WAA 12CC;AL # ETHIOPIC SYLLABLE WEE 12CD;AL # ETHIOPIC SYLLABLE WE 12CE;AL # ETHIOPIC SYLLABLE WO 12D0;AL # ETHIOPIC SYLLABLE PHARYNGEAL A 12D1;AL # ETHIOPIC SYLLABLE PHARYNGEAL U 12D2;AL # ETHIOPIC SYLLABLE PHARYNGEAL I 12D3;AL # ETHIOPIC SYLLABLE PHARYNGEAL AA 12D4;AL # ETHIOPIC SYLLABLE PHARYNGEAL EE 12D5;AL # ETHIOPIC SYLLABLE PHARYNGEAL E 12D6;AL # ETHIOPIC SYLLABLE PHARYNGEAL O 12D8;AL # ETHIOPIC SYLLABLE ZA 12D9;AL # ETHIOPIC SYLLABLE ZU 12DA;AL # ETHIOPIC SYLLABLE ZI 12DB;AL # ETHIOPIC SYLLABLE ZAA 12DC;AL # ETHIOPIC SYLLABLE ZEE 12DD;AL # ETHIOPIC SYLLABLE ZE 12DE;AL # ETHIOPIC SYLLABLE ZO 12DF;AL # ETHIOPIC SYLLABLE ZWA 12E0;AL # ETHIOPIC SYLLABLE ZHA 12E1;AL # ETHIOPIC SYLLABLE ZHU 12E2;AL # ETHIOPIC SYLLABLE ZHI 12E3;AL # ETHIOPIC SYLLABLE ZHAA 12E4;AL # ETHIOPIC SYLLABLE ZHEE 12E5;AL # ETHIOPIC SYLLABLE ZHE 12E6;AL # ETHIOPIC SYLLABLE ZHO 12E7;AL # ETHIOPIC SYLLABLE ZHWA 12E8;AL # ETHIOPIC SYLLABLE YA 12E9;AL # ETHIOPIC SYLLABLE YU 12EA;AL # ETHIOPIC SYLLABLE YI 12EB;AL # ETHIOPIC SYLLABLE YAA 12EC;AL # ETHIOPIC SYLLABLE YEE 12ED;AL # ETHIOPIC SYLLABLE YE 12EE;AL # ETHIOPIC SYLLABLE YO 12F0;AL # ETHIOPIC SYLLABLE DA 12F1;AL # ETHIOPIC SYLLABLE DU 12F2;AL # ETHIOPIC SYLLABLE DI 12F3;AL # ETHIOPIC SYLLABLE DAA 12F4;AL # ETHIOPIC SYLLABLE DEE 12F5;AL # ETHIOPIC SYLLABLE DE 12F6;AL # ETHIOPIC SYLLABLE DO 12F7;AL # ETHIOPIC SYLLABLE DWA 12F8;AL # ETHIOPIC SYLLABLE DDA 12F9;AL # ETHIOPIC SYLLABLE DDU 12FA;AL # ETHIOPIC SYLLABLE DDI 12FB;AL # ETHIOPIC SYLLABLE DDAA 12FC;AL # ETHIOPIC SYLLABLE DDEE 12FD;AL # ETHIOPIC SYLLABLE DDE 12FE;AL # ETHIOPIC SYLLABLE DDO 12FF;AL # ETHIOPIC SYLLABLE DDWA 1300;AL # ETHIOPIC SYLLABLE JA 1301;AL # ETHIOPIC SYLLABLE JU 1302;AL # ETHIOPIC SYLLABLE JI 1303;AL # ETHIOPIC SYLLABLE JAA 1304;AL # ETHIOPIC SYLLABLE JEE 1305;AL # ETHIOPIC SYLLABLE JE 1306;AL # ETHIOPIC SYLLABLE JO 1307;AL # ETHIOPIC SYLLABLE JWA 1308;AL # ETHIOPIC SYLLABLE GA 1309;AL # ETHIOPIC SYLLABLE GU 130A;AL # ETHIOPIC SYLLABLE GI 130B;AL # ETHIOPIC SYLLABLE GAA 130C;AL # ETHIOPIC SYLLABLE GEE 130D;AL # ETHIOPIC SYLLABLE GE 130E;AL # ETHIOPIC SYLLABLE GO 1310;AL # ETHIOPIC SYLLABLE GWA 1312;AL # ETHIOPIC SYLLABLE GWI 1313;AL # ETHIOPIC SYLLABLE GWAA 1314;AL # ETHIOPIC SYLLABLE GWEE 1315;AL # ETHIOPIC SYLLABLE GWE 1318;AL # ETHIOPIC SYLLABLE GGA 1319;AL # ETHIOPIC SYLLABLE GGU 131A;AL # ETHIOPIC SYLLABLE GGI 131B;AL # ETHIOPIC SYLLABLE GGAA 131C;AL # ETHIOPIC SYLLABLE GGEE 131D;AL # ETHIOPIC SYLLABLE GGE 131E;AL # ETHIOPIC SYLLABLE GGO 1320;AL # ETHIOPIC SYLLABLE THA 1321;AL # ETHIOPIC SYLLABLE THU 1322;AL # ETHIOPIC SYLLABLE THI 1323;AL # ETHIOPIC SYLLABLE THAA 1324;AL # ETHIOPIC SYLLABLE THEE 1325;AL # ETHIOPIC SYLLABLE THE 1326;AL # ETHIOPIC SYLLABLE THO 1327;AL # ETHIOPIC SYLLABLE THWA 1328;AL # ETHIOPIC SYLLABLE CHA 1329;AL # ETHIOPIC SYLLABLE CHU 132A;AL # ETHIOPIC SYLLABLE CHI 132B;AL # ETHIOPIC SYLLABLE CHAA 132C;AL # ETHIOPIC SYLLABLE CHEE 132D;AL # ETHIOPIC SYLLABLE CHE 132E;AL # ETHIOPIC SYLLABLE CHO 132F;AL # ETHIOPIC SYLLABLE CHWA 1330;AL # ETHIOPIC SYLLABLE PHA 1331;AL # ETHIOPIC SYLLABLE PHU 1332;AL # ETHIOPIC SYLLABLE PHI 1333;AL # ETHIOPIC SYLLABLE PHAA 1334;AL # ETHIOPIC SYLLABLE PHEE 1335;AL # ETHIOPIC SYLLABLE PHE 1336;AL # ETHIOPIC SYLLABLE PHO 1337;AL # ETHIOPIC SYLLABLE PHWA 1338;AL # ETHIOPIC SYLLABLE TSA 1339;AL # ETHIOPIC SYLLABLE TSU 133A;AL # ETHIOPIC SYLLABLE TSI 133B;AL # ETHIOPIC SYLLABLE TSAA 133C;AL # ETHIOPIC SYLLABLE TSEE 133D;AL # ETHIOPIC SYLLABLE TSE 133E;AL # ETHIOPIC SYLLABLE TSO 133F;AL # ETHIOPIC SYLLABLE TSWA 1340;AL # ETHIOPIC SYLLABLE TZA 1341;AL # ETHIOPIC SYLLABLE TZU 1342;AL # ETHIOPIC SYLLABLE TZI 1343;AL # ETHIOPIC SYLLABLE TZAA 1344;AL # ETHIOPIC SYLLABLE TZEE 1345;AL # ETHIOPIC SYLLABLE TZE 1346;AL # ETHIOPIC SYLLABLE TZO 1348;AL # ETHIOPIC SYLLABLE FA 1349;AL # ETHIOPIC SYLLABLE FU 134A;AL # ETHIOPIC SYLLABLE FI 134B;AL # ETHIOPIC SYLLABLE FAA 134C;AL # ETHIOPIC SYLLABLE FEE 134D;AL # ETHIOPIC SYLLABLE FE 134E;AL # ETHIOPIC SYLLABLE FO 134F;AL # ETHIOPIC SYLLABLE FWA 1350;AL # ETHIOPIC SYLLABLE PA 1351;AL # ETHIOPIC SYLLABLE PU 1352;AL # ETHIOPIC SYLLABLE PI 1353;AL # ETHIOPIC SYLLABLE PAA 1354;AL # ETHIOPIC SYLLABLE PEE 1355;AL # ETHIOPIC SYLLABLE PE 1356;AL # ETHIOPIC SYLLABLE PO 1357;AL # ETHIOPIC SYLLABLE PWA 1358;AL # ETHIOPIC SYLLABLE RYA 1359;AL # ETHIOPIC SYLLABLE MYA 135A;AL # ETHIOPIC SYLLABLE FYA 1361;BA # ETHIOPIC WORDSPACE 1362;AL # ETHIOPIC FULL STOP 1363;AL # ETHIOPIC COMMA 1364;AL # ETHIOPIC SEMICOLON 1365;AL # ETHIOPIC COLON 1366;AL # ETHIOPIC PREFACE COLON 1367;AL # ETHIOPIC QUESTION MARK 1368;AL # ETHIOPIC PARAGRAPH SEPARATOR 1369;NU # ETHIOPIC DIGIT ONE 136A;NU # ETHIOPIC DIGIT TWO 136B;NU # ETHIOPIC DIGIT THREE 136C;NU # ETHIOPIC DIGIT FOUR 136D;NU # ETHIOPIC DIGIT FIVE 136E;NU # ETHIOPIC DIGIT SIX 136F;NU # ETHIOPIC DIGIT SEVEN 1370;NU # ETHIOPIC DIGIT EIGHT 1371;NU # ETHIOPIC DIGIT NINE 1372;AL # ETHIOPIC NUMBER TEN 1373;AL # ETHIOPIC NUMBER TWENTY 1374;AL # ETHIOPIC NUMBER THIRTY 1375;AL # ETHIOPIC NUMBER FORTY 1376;AL # ETHIOPIC NUMBER FIFTY 1377;AL # ETHIOPIC NUMBER SIXTY 1378;AL # ETHIOPIC NUMBER SEVENTY 1379;AL # ETHIOPIC NUMBER EIGHTY 137A;AL # ETHIOPIC NUMBER NINETY 137B;AL # ETHIOPIC NUMBER HUNDRED 137C;AL # ETHIOPIC NUMBER TEN THOUSAND 13A0;AL # CHEROKEE LETTER A 13A1;AL # CHEROKEE LETTER E 13A2;AL # CHEROKEE LETTER I 13A3;AL # CHEROKEE LETTER O 13A4;AL # CHEROKEE LETTER U 13A5;AL # CHEROKEE LETTER V 13A6;AL # CHEROKEE LETTER GA 13A7;AL # CHEROKEE LETTER KA 13A8;AL # CHEROKEE LETTER GE 13A9;AL # CHEROKEE LETTER GI 13AA;AL # CHEROKEE LETTER GO 13AB;AL # CHEROKEE LETTER GU 13AC;AL # CHEROKEE LETTER GV 13AD;AL # CHEROKEE LETTER HA 13AE;AL # CHEROKEE LETTER HE 13AF;AL # CHEROKEE LETTER HI 13B0;AL # CHEROKEE LETTER HO 13B1;AL # CHEROKEE LETTER HU 13B2;AL # CHEROKEE LETTER HV 13B3;AL # CHEROKEE LETTER LA 13B4;AL # CHEROKEE LETTER LE 13B5;AL # CHEROKEE LETTER LI 13B6;AL # CHEROKEE LETTER LO 13B7;AL # CHEROKEE LETTER LU 13B8;AL # CHEROKEE LETTER LV 13B9;AL # CHEROKEE LETTER MA 13BA;AL # CHEROKEE LETTER ME 13BB;AL # CHEROKEE LETTER MI 13BC;AL # CHEROKEE LETTER MO 13BD;AL # CHEROKEE LETTER MU 13BE;AL # CHEROKEE LETTER NA 13BF;AL # CHEROKEE LETTER HNA 13C0;AL # CHEROKEE LETTER NAH 13C1;AL # CHEROKEE LETTER NE 13C2;AL # CHEROKEE LETTER NI 13C3;AL # CHEROKEE LETTER NO 13C4;AL # CHEROKEE LETTER NU 13C5;AL # CHEROKEE LETTER NV 13C6;AL # CHEROKEE LETTER QUA 13C7;AL # CHEROKEE LETTER QUE 13C8;AL # CHEROKEE LETTER QUI 13C9;AL # CHEROKEE LETTER QUO 13CA;AL # CHEROKEE LETTER QUU 13CB;AL # CHEROKEE LETTER QUV 13CC;AL # CHEROKEE LETTER SA 13CD;AL # CHEROKEE LETTER S 13CE;AL # CHEROKEE LETTER SE 13CF;AL # CHEROKEE LETTER SI 13D0;AL # CHEROKEE LETTER SO 13D1;AL # CHEROKEE LETTER SU 13D2;AL # CHEROKEE LETTER SV 13D3;AL # CHEROKEE LETTER DA 13D4;AL # CHEROKEE LETTER TA 13D5;AL # CHEROKEE LETTER DE 13D6;AL # CHEROKEE LETTER TE 13D7;AL # CHEROKEE LETTER DI 13D8;AL # CHEROKEE LETTER TI 13D9;AL # CHEROKEE LETTER DO 13DA;AL # CHEROKEE LETTER DU 13DB;AL # CHEROKEE LETTER DV 13DC;AL # CHEROKEE LETTER DLA 13DD;AL # CHEROKEE LETTER TLA 13DE;AL # CHEROKEE LETTER TLE 13DF;AL # CHEROKEE LETTER TLI 13E0;AL # CHEROKEE LETTER TLO 13E1;AL # CHEROKEE LETTER TLU 13E2;AL # CHEROKEE LETTER TLV 13E3;AL # CHEROKEE LETTER TSA 13E4;AL # CHEROKEE LETTER TSE 13E5;AL # CHEROKEE LETTER TSI 13E6;AL # CHEROKEE LETTER TSO 13E7;AL # CHEROKEE LETTER TSU 13E8;AL # CHEROKEE LETTER TSV 13E9;AL # CHEROKEE LETTER WA 13EA;AL # CHEROKEE LETTER WE 13EB;AL # CHEROKEE LETTER WI 13EC;AL # CHEROKEE LETTER WO 13ED;AL # CHEROKEE LETTER WU 13EE;AL # CHEROKEE LETTER WV 13EF;AL # CHEROKEE LETTER YA 13F0;AL # CHEROKEE LETTER YE 13F1;AL # CHEROKEE LETTER YI 13F2;AL # CHEROKEE LETTER YO 13F3;AL # CHEROKEE LETTER YU 13F4;AL # CHEROKEE LETTER YV 1401;AL # CANADIAN SYLLABICS E 1402;AL # CANADIAN SYLLABICS AAI 1403;AL # CANADIAN SYLLABICS I 1404;AL # CANADIAN SYLLABICS II 1405;AL # CANADIAN SYLLABICS O 1406;AL # CANADIAN SYLLABICS OO 1407;AL # CANADIAN SYLLABICS Y-CREE OO 1408;AL # CANADIAN SYLLABICS CARRIER EE 1409;AL # CANADIAN SYLLABICS CARRIER I 140A;AL # CANADIAN SYLLABICS A 140B;AL # CANADIAN SYLLABICS AA 140C;AL # CANADIAN SYLLABICS WE 140D;AL # CANADIAN SYLLABICS WEST-CREE WE 140E;AL # CANADIAN SYLLABICS WI 140F;AL # CANADIAN SYLLABICS WEST-CREE WI 1410;AL # CANADIAN SYLLABICS WII 1411;AL # CANADIAN SYLLABICS WEST-CREE WII 1412;AL # CANADIAN SYLLABICS WO 1413;AL # CANADIAN SYLLABICS WEST-CREE WO 1414;AL # CANADIAN SYLLABICS WOO 1415;AL # CANADIAN SYLLABICS WEST-CREE WOO 1416;AL # CANADIAN SYLLABICS NASKAPI WOO 1417;AL # CANADIAN SYLLABICS WA 1418;AL # CANADIAN SYLLABICS WEST-CREE WA 1419;AL # CANADIAN SYLLABICS WAA 141A;AL # CANADIAN SYLLABICS WEST-CREE WAA 141B;AL # CANADIAN SYLLABICS NASKAPI WAA 141C;AL # CANADIAN SYLLABICS AI 141D;AL # CANADIAN SYLLABICS Y-CREE W 141E;AL # CANADIAN SYLLABICS GLOTTAL STOP 141F;AL # CANADIAN SYLLABICS FINAL ACUTE 1420;AL # CANADIAN SYLLABICS FINAL GRAVE 1421;AL # CANADIAN SYLLABICS FINAL BOTTOM HALF RING 1422;AL # CANADIAN SYLLABICS FINAL TOP HALF RING 1423;AL # CANADIAN SYLLABICS FINAL RIGHT HALF RING 1424;AL # CANADIAN SYLLABICS FINAL RING 1425;AL # CANADIAN SYLLABICS FINAL DOUBLE ACUTE 1426;AL # CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES 1427;AL # CANADIAN SYLLABICS FINAL MIDDLE DOT 1428;AL # CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE 1429;AL # CANADIAN SYLLABICS FINAL PLUS 142A;AL # CANADIAN SYLLABICS FINAL DOWN TACK 142B;AL # CANADIAN SYLLABICS EN 142C;AL # CANADIAN SYLLABICS IN 142D;AL # CANADIAN SYLLABICS ON 142E;AL # CANADIAN SYLLABICS AN 142F;AL # CANADIAN SYLLABICS PE 1430;AL # CANADIAN SYLLABICS PAAI 1431;AL # CANADIAN SYLLABICS PI 1432;AL # CANADIAN SYLLABICS PII 1433;AL # CANADIAN SYLLABICS PO 1434;AL # CANADIAN SYLLABICS POO 1435;AL # CANADIAN SYLLABICS Y-CREE POO 1436;AL # CANADIAN SYLLABICS CARRIER HEE 1437;AL # CANADIAN SYLLABICS CARRIER HI 1438;AL # CANADIAN SYLLABICS PA 1439;AL # CANADIAN SYLLABICS PAA 143A;AL # CANADIAN SYLLABICS PWE 143B;AL # CANADIAN SYLLABICS WEST-CREE PWE 143C;AL # CANADIAN SYLLABICS PWI 143D;AL # CANADIAN SYLLABICS WEST-CREE PWI 143E;AL # CANADIAN SYLLABICS PWII 143F;AL # CANADIAN SYLLABICS WEST-CREE PWII 1440;AL # CANADIAN SYLLABICS PWO 1441;AL # CANADIAN SYLLABICS WEST-CREE PWO 1442;AL # CANADIAN SYLLABICS PWOO 1443;AL # CANADIAN SYLLABICS WEST-CREE PWOO 1444;AL # CANADIAN SYLLABICS PWA 1445;AL # CANADIAN SYLLABICS WEST-CREE PWA 1446;AL # CANADIAN SYLLABICS PWAA 1447;AL # CANADIAN SYLLABICS WEST-CREE PWAA 1448;AL # CANADIAN SYLLABICS Y-CREE PWAA 1449;AL # CANADIAN SYLLABICS P 144A;AL # CANADIAN SYLLABICS WEST-CREE P 144B;AL # CANADIAN SYLLABICS CARRIER H 144C;AL # CANADIAN SYLLABICS TE 144D;AL # CANADIAN SYLLABICS TAAI 144E;AL # CANADIAN SYLLABICS TI 144F;AL # CANADIAN SYLLABICS TII 1450;AL # CANADIAN SYLLABICS TO 1451;AL # CANADIAN SYLLABICS TOO 1452;AL # CANADIAN SYLLABICS Y-CREE TOO 1453;AL # CANADIAN SYLLABICS CARRIER DEE 1454;AL # CANADIAN SYLLABICS CARRIER DI 1455;AL # CANADIAN SYLLABICS TA 1456;AL # CANADIAN SYLLABICS TAA 1457;AL # CANADIAN SYLLABICS TWE 1458;AL # CANADIAN SYLLABICS WEST-CREE TWE 1459;AL # CANADIAN SYLLABICS TWI 145A;AL # CANADIAN SYLLABICS WEST-CREE TWI 145B;AL # CANADIAN SYLLABICS TWII 145C;AL # CANADIAN SYLLABICS WEST-CREE TWII 145D;AL # CANADIAN SYLLABICS TWO 145E;AL # CANADIAN SYLLABICS WEST-CREE TWO 145F;AL # CANADIAN SYLLABICS TWOO 1460;AL # CANADIAN SYLLABICS WEST-CREE TWOO 1461;AL # CANADIAN SYLLABICS TWA 1462;AL # CANADIAN SYLLABICS WEST-CREE TWA 1463;AL # CANADIAN SYLLABICS TWAA 1464;AL # CANADIAN SYLLABICS WEST-CREE TWAA 1465;AL # CANADIAN SYLLABICS NASKAPI TWAA 1466;AL # CANADIAN SYLLABICS T 1467;AL # CANADIAN SYLLABICS TTE 1468;AL # CANADIAN SYLLABICS TTI 1469;AL # CANADIAN SYLLABICS TTO 146A;AL # CANADIAN SYLLABICS TTA 146B;AL # CANADIAN SYLLABICS KE 146C;AL # CANADIAN SYLLABICS KAAI 146D;AL # CANADIAN SYLLABICS KI 146E;AL # CANADIAN SYLLABICS KII 146F;AL # CANADIAN SYLLABICS KO 1470;AL # CANADIAN SYLLABICS KOO 1471;AL # CANADIAN SYLLABICS Y-CREE KOO 1472;AL # CANADIAN SYLLABICS KA 1473;AL # CANADIAN SYLLABICS KAA 1474;AL # CANADIAN SYLLABICS KWE 1475;AL # CANADIAN SYLLABICS WEST-CREE KWE 1476;AL # CANADIAN SYLLABICS KWI 1477;AL # CANADIAN SYLLABICS WEST-CREE KWI 1478;AL # CANADIAN SYLLABICS KWII 1479;AL # CANADIAN SYLLABICS WEST-CREE KWII 147A;AL # CANADIAN SYLLABICS KWO 147B;AL # CANADIAN SYLLABICS WEST-CREE KWO 147C;AL # CANADIAN SYLLABICS KWOO 147D;AL # CANADIAN SYLLABICS WEST-CREE KWOO 147E;AL # CANADIAN SYLLABICS KWA 147F;AL # CANADIAN SYLLABICS WEST-CREE KWA 1480;AL # CANADIAN SYLLABICS KWAA 1481;AL # CANADIAN SYLLABICS WEST-CREE KWAA 1482;AL # CANADIAN SYLLABICS NASKAPI KWAA 1483;AL # CANADIAN SYLLABICS K 1484;AL # CANADIAN SYLLABICS KW 1485;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KEH 1486;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KIH 1487;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KOH 1488;AL # CANADIAN SYLLABICS SOUTH-SLAVEY KAH 1489;AL # CANADIAN SYLLABICS CE 148A;AL # CANADIAN SYLLABICS CAAI 148B;AL # CANADIAN SYLLABICS CI 148C;AL # CANADIAN SYLLABICS CII 148D;AL # CANADIAN SYLLABICS CO 148E;AL # CANADIAN SYLLABICS COO 148F;AL # CANADIAN SYLLABICS Y-CREE COO 1490;AL # CANADIAN SYLLABICS CA 1491;AL # CANADIAN SYLLABICS CAA 1492;AL # CANADIAN SYLLABICS CWE 1493;AL # CANADIAN SYLLABICS WEST-CREE CWE 1494;AL # CANADIAN SYLLABICS CWI 1495;AL # CANADIAN SYLLABICS WEST-CREE CWI 1496;AL # CANADIAN SYLLABICS CWII 1497;AL # CANADIAN SYLLABICS WEST-CREE CWII 1498;AL # CANADIAN SYLLABICS CWO 1499;AL # CANADIAN SYLLABICS WEST-CREE CWO 149A;AL # CANADIAN SYLLABICS CWOO 149B;AL # CANADIAN SYLLABICS WEST-CREE CWOO 149C;AL # CANADIAN SYLLABICS CWA 149D;AL # CANADIAN SYLLABICS WEST-CREE CWA 149E;AL # CANADIAN SYLLABICS CWAA 149F;AL # CANADIAN SYLLABICS WEST-CREE CWAA 14A0;AL # CANADIAN SYLLABICS NASKAPI CWAA 14A1;AL # CANADIAN SYLLABICS C 14A2;AL # CANADIAN SYLLABICS SAYISI TH 14A3;AL # CANADIAN SYLLABICS ME 14A4;AL # CANADIAN SYLLABICS MAAI 14A5;AL # CANADIAN SYLLABICS MI 14A6;AL # CANADIAN SYLLABICS MII 14A7;AL # CANADIAN SYLLABICS MO 14A8;AL # CANADIAN SYLLABICS MOO 14A9;AL # CANADIAN SYLLABICS Y-CREE MOO 14AA;AL # CANADIAN SYLLABICS MA 14AB;AL # CANADIAN SYLLABICS MAA 14AC;AL # CANADIAN SYLLABICS MWE 14AD;AL # CANADIAN SYLLABICS WEST-CREE MWE 14AE;AL # CANADIAN SYLLABICS MWI 14AF;AL # CANADIAN SYLLABICS WEST-CREE MWI 14B0;AL # CANADIAN SYLLABICS MWII 14B1;AL # CANADIAN SYLLABICS WEST-CREE MWII 14B2;AL # CANADIAN SYLLABICS MWO 14B3;AL # CANADIAN SYLLABICS WEST-CREE MWO 14B4;AL # CANADIAN SYLLABICS MWOO 14B5;AL # CANADIAN SYLLABICS WEST-CREE MWOO 14B6;AL # CANADIAN SYLLABICS MWA 14B7;AL # CANADIAN SYLLABICS WEST-CREE MWA 14B8;AL # CANADIAN SYLLABICS MWAA 14B9;AL # CANADIAN SYLLABICS WEST-CREE MWAA 14BA;AL # CANADIAN SYLLABICS NASKAPI MWAA 14BB;AL # CANADIAN SYLLABICS M 14BC;AL # CANADIAN SYLLABICS WEST-CREE M 14BD;AL # CANADIAN SYLLABICS MH 14BE;AL # CANADIAN SYLLABICS ATHAPASCAN M 14BF;AL # CANADIAN SYLLABICS SAYISI M 14C0;AL # CANADIAN SYLLABICS NE 14C1;AL # CANADIAN SYLLABICS NAAI 14C2;AL # CANADIAN SYLLABICS NI 14C3;AL # CANADIAN SYLLABICS NII 14C4;AL # CANADIAN SYLLABICS NO 14C5;AL # CANADIAN SYLLABICS NOO 14C6;AL # CANADIAN SYLLABICS Y-CREE NOO 14C7;AL # CANADIAN SYLLABICS NA 14C8;AL # CANADIAN SYLLABICS NAA 14C9;AL # CANADIAN SYLLABICS NWE 14CA;AL # CANADIAN SYLLABICS WEST-CREE NWE 14CB;AL # CANADIAN SYLLABICS NWA 14CC;AL # CANADIAN SYLLABICS WEST-CREE NWA 14CD;AL # CANADIAN SYLLABICS NWAA 14CE;AL # CANADIAN SYLLABICS WEST-CREE NWAA 14CF;AL # CANADIAN SYLLABICS NASKAPI NWAA 14D0;AL # CANADIAN SYLLABICS N 14D1;AL # CANADIAN SYLLABICS CARRIER NG 14D2;AL # CANADIAN SYLLABICS NH 14D3;AL # CANADIAN SYLLABICS LE 14D4;AL # CANADIAN SYLLABICS LAAI 14D5;AL # CANADIAN SYLLABICS LI 14D6;AL # CANADIAN SYLLABICS LII 14D7;AL # CANADIAN SYLLABICS LO 14D8;AL # CANADIAN SYLLABICS LOO 14D9;AL # CANADIAN SYLLABICS Y-CREE LOO 14DA;AL # CANADIAN SYLLABICS LA 14DB;AL # CANADIAN SYLLABICS LAA 14DC;AL # CANADIAN SYLLABICS LWE 14DD;AL # CANADIAN SYLLABICS WEST-CREE LWE 14DE;AL # CANADIAN SYLLABICS LWI 14DF;AL # CANADIAN SYLLABICS WEST-CREE LWI 14E0;AL # CANADIAN SYLLABICS LWII 14E1;AL # CANADIAN SYLLABICS WEST-CREE LWII 14E2;AL # CANADIAN SYLLABICS LWO 14E3;AL # CANADIAN SYLLABICS WEST-CREE LWO 14E4;AL # CANADIAN SYLLABICS LWOO 14E5;AL # CANADIAN SYLLABICS WEST-CREE LWOO 14E6;AL # CANADIAN SYLLABICS LWA 14E7;AL # CANADIAN SYLLABICS WEST-CREE LWA 14E8;AL # CANADIAN SYLLABICS LWAA 14E9;AL # CANADIAN SYLLABICS WEST-CREE LWAA 14EA;AL # CANADIAN SYLLABICS L 14EB;AL # CANADIAN SYLLABICS WEST-CREE L 14EC;AL # CANADIAN SYLLABICS MEDIAL L 14ED;AL # CANADIAN SYLLABICS SE 14EE;AL # CANADIAN SYLLABICS SAAI 14EF;AL # CANADIAN SYLLABICS SI 14F0;AL # CANADIAN SYLLABICS SII 14F1;AL # CANADIAN SYLLABICS SO 14F2;AL # CANADIAN SYLLABICS SOO 14F3;AL # CANADIAN SYLLABICS Y-CREE SOO 14F4;AL # CANADIAN SYLLABICS SA 14F5;AL # CANADIAN SYLLABICS SAA 14F6;AL # CANADIAN SYLLABICS SWE 14F7;AL # CANADIAN SYLLABICS WEST-CREE SWE 14F8;AL # CANADIAN SYLLABICS SWI 14F9;AL # CANADIAN SYLLABICS WEST-CREE SWI 14FA;AL # CANADIAN SYLLABICS SWII 14FB;AL # CANADIAN SYLLABICS WEST-CREE SWII 14FC;AL # CANADIAN SYLLABICS SWO 14FD;AL # CANADIAN SYLLABICS WEST-CREE SWO 14FE;AL # CANADIAN SYLLABICS SWOO 14FF;AL # CANADIAN SYLLABICS WEST-CREE SWOO 1500;AL # CANADIAN SYLLABICS SWA 1501;AL # CANADIAN SYLLABICS WEST-CREE SWA 1502;AL # CANADIAN SYLLABICS SWAA 1503;AL # CANADIAN SYLLABICS WEST-CREE SWAA 1504;AL # CANADIAN SYLLABICS NASKAPI SWAA 1505;AL # CANADIAN SYLLABICS S 1506;AL # CANADIAN SYLLABICS ATHAPASCAN S 1507;AL # CANADIAN SYLLABICS SW 1508;AL # CANADIAN SYLLABICS BLACKFOOT S 1509;AL # CANADIAN SYLLABICS MOOSE-CREE SK 150A;AL # CANADIAN SYLLABICS NASKAPI SKW 150B;AL # CANADIAN SYLLABICS NASKAPI S-W 150C;AL # CANADIAN SYLLABICS NASKAPI SPWA 150D;AL # CANADIAN SYLLABICS NASKAPI STWA 150E;AL # CANADIAN SYLLABICS NASKAPI SKWA 150F;AL # CANADIAN SYLLABICS NASKAPI SCWA 1510;AL # CANADIAN SYLLABICS SHE 1511;AL # CANADIAN SYLLABICS SHI 1512;AL # CANADIAN SYLLABICS SHII 1513;AL # CANADIAN SYLLABICS SHO 1514;AL # CANADIAN SYLLABICS SHOO 1515;AL # CANADIAN SYLLABICS SHA 1516;AL # CANADIAN SYLLABICS SHAA 1517;AL # CANADIAN SYLLABICS SHWE 1518;AL # CANADIAN SYLLABICS WEST-CREE SHWE 1519;AL # CANADIAN SYLLABICS SHWI 151A;AL # CANADIAN SYLLABICS WEST-CREE SHWI 151B;AL # CANADIAN SYLLABICS SHWII 151C;AL # CANADIAN SYLLABICS WEST-CREE SHWII 151D;AL # CANADIAN SYLLABICS SHWO 151E;AL # CANADIAN SYLLABICS WEST-CREE SHWO 151F;AL # CANADIAN SYLLABICS SHWOO 1520;AL # CANADIAN SYLLABICS WEST-CREE SHWOO 1521;AL # CANADIAN SYLLABICS SHWA 1522;AL # CANADIAN SYLLABICS WEST-CREE SHWA 1523;AL # CANADIAN SYLLABICS SHWAA 1524;AL # CANADIAN SYLLABICS WEST-CREE SHWAA 1525;AL # CANADIAN SYLLABICS SH 1526;AL # CANADIAN SYLLABICS YE 1527;AL # CANADIAN SYLLABICS YAAI 1528;AL # CANADIAN SYLLABICS YI 1529;AL # CANADIAN SYLLABICS YII 152A;AL # CANADIAN SYLLABICS YO 152B;AL # CANADIAN SYLLABICS YOO 152C;AL # CANADIAN SYLLABICS Y-CREE YOO 152D;AL # CANADIAN SYLLABICS YA 152E;AL # CANADIAN SYLLABICS YAA 152F;AL # CANADIAN SYLLABICS YWE 1530;AL # CANADIAN SYLLABICS WEST-CREE YWE 1531;AL # CANADIAN SYLLABICS YWI 1532;AL # CANADIAN SYLLABICS WEST-CREE YWI 1533;AL # CANADIAN SYLLABICS YWII 1534;AL # CANADIAN SYLLABICS WEST-CREE YWII 1535;AL # CANADIAN SYLLABICS YWO 1536;AL # CANADIAN SYLLABICS WEST-CREE YWO 1537;AL # CANADIAN SYLLABICS YWOO 1538;AL # CANADIAN SYLLABICS WEST-CREE YWOO 1539;AL # CANADIAN SYLLABICS YWA 153A;AL # CANADIAN SYLLABICS WEST-CREE YWA 153B;AL # CANADIAN SYLLABICS YWAA 153C;AL # CANADIAN SYLLABICS WEST-CREE YWAA 153D;AL # CANADIAN SYLLABICS NASKAPI YWAA 153E;AL # CANADIAN SYLLABICS Y 153F;AL # CANADIAN SYLLABICS BIBLE-CREE Y 1540;AL # CANADIAN SYLLABICS WEST-CREE Y 1541;AL # CANADIAN SYLLABICS SAYISI YI 1542;AL # CANADIAN SYLLABICS RE 1543;AL # CANADIAN SYLLABICS R-CREE RE 1544;AL # CANADIAN SYLLABICS WEST-CREE LE 1545;AL # CANADIAN SYLLABICS RAAI 1546;AL # CANADIAN SYLLABICS RI 1547;AL # CANADIAN SYLLABICS RII 1548;AL # CANADIAN SYLLABICS RO 1549;AL # CANADIAN SYLLABICS ROO 154A;AL # CANADIAN SYLLABICS WEST-CREE LO 154B;AL # CANADIAN SYLLABICS RA 154C;AL # CANADIAN SYLLABICS RAA 154D;AL # CANADIAN SYLLABICS WEST-CREE LA 154E;AL # CANADIAN SYLLABICS RWAA 154F;AL # CANADIAN SYLLABICS WEST-CREE RWAA 1550;AL # CANADIAN SYLLABICS R 1551;AL # CANADIAN SYLLABICS WEST-CREE R 1552;AL # CANADIAN SYLLABICS MEDIAL R 1553;AL # CANADIAN SYLLABICS FE 1554;AL # CANADIAN SYLLABICS FAAI 1555;AL # CANADIAN SYLLABICS FI 1556;AL # CANADIAN SYLLABICS FII 1557;AL # CANADIAN SYLLABICS FO 1558;AL # CANADIAN SYLLABICS FOO 1559;AL # CANADIAN SYLLABICS FA 155A;AL # CANADIAN SYLLABICS FAA 155B;AL # CANADIAN SYLLABICS FWAA 155C;AL # CANADIAN SYLLABICS WEST-CREE FWAA 155D;AL # CANADIAN SYLLABICS F 155E;AL # CANADIAN SYLLABICS THE 155F;AL # CANADIAN SYLLABICS N-CREE THE 1560;AL # CANADIAN SYLLABICS THI 1561;AL # CANADIAN SYLLABICS N-CREE THI 1562;AL # CANADIAN SYLLABICS THII 1563;AL # CANADIAN SYLLABICS N-CREE THII 1564;AL # CANADIAN SYLLABICS THO 1565;AL # CANADIAN SYLLABICS THOO 1566;AL # CANADIAN SYLLABICS THA 1567;AL # CANADIAN SYLLABICS THAA 1568;AL # CANADIAN SYLLABICS THWAA 1569;AL # CANADIAN SYLLABICS WEST-CREE THWAA 156A;AL # CANADIAN SYLLABICS TH 156B;AL # CANADIAN SYLLABICS TTHE 156C;AL # CANADIAN SYLLABICS TTHI 156D;AL # CANADIAN SYLLABICS TTHO 156E;AL # CANADIAN SYLLABICS TTHA 156F;AL # CANADIAN SYLLABICS TTH 1570;AL # CANADIAN SYLLABICS TYE 1571;AL # CANADIAN SYLLABICS TYI 1572;AL # CANADIAN SYLLABICS TYO 1573;AL # CANADIAN SYLLABICS TYA 1574;AL # CANADIAN SYLLABICS NUNAVIK HE 1575;AL # CANADIAN SYLLABICS NUNAVIK HI 1576;AL # CANADIAN SYLLABICS NUNAVIK HII 1577;AL # CANADIAN SYLLABICS NUNAVIK HO 1578;AL # CANADIAN SYLLABICS NUNAVIK HOO 1579;AL # CANADIAN SYLLABICS NUNAVIK HA 157A;AL # CANADIAN SYLLABICS NUNAVIK HAA 157B;AL # CANADIAN SYLLABICS NUNAVIK H 157C;AL # CANADIAN SYLLABICS NUNAVUT H 157D;AL # CANADIAN SYLLABICS HK 157E;AL # CANADIAN SYLLABICS QAAI 157F;AL # CANADIAN SYLLABICS QI 1580;AL # CANADIAN SYLLABICS QII 1581;AL # CANADIAN SYLLABICS QO 1582;AL # CANADIAN SYLLABICS QOO 1583;AL # CANADIAN SYLLABICS QA 1584;AL # CANADIAN SYLLABICS QAA 1585;AL # CANADIAN SYLLABICS Q 1586;AL # CANADIAN SYLLABICS TLHE 1587;AL # CANADIAN SYLLABICS TLHI 1588;AL # CANADIAN SYLLABICS TLHO 1589;AL # CANADIAN SYLLABICS TLHA 158A;AL # CANADIAN SYLLABICS WEST-CREE RE 158B;AL # CANADIAN SYLLABICS WEST-CREE RI 158C;AL # CANADIAN SYLLABICS WEST-CREE RO 158D;AL # CANADIAN SYLLABICS WEST-CREE RA 158E;AL # CANADIAN SYLLABICS NGAAI 158F;AL # CANADIAN SYLLABICS NGI 1590;AL # CANADIAN SYLLABICS NGII 1591;AL # CANADIAN SYLLABICS NGO 1592;AL # CANADIAN SYLLABICS NGOO 1593;AL # CANADIAN SYLLABICS NGA 1594;AL # CANADIAN SYLLABICS NGAA 1595;AL # CANADIAN SYLLABICS NG 1596;AL # CANADIAN SYLLABICS NNG 1597;AL # CANADIAN SYLLABICS SAYISI SHE 1598;AL # CANADIAN SYLLABICS SAYISI SHI 1599;AL # CANADIAN SYLLABICS SAYISI SHO 159A;AL # CANADIAN SYLLABICS SAYISI SHA 159B;AL # CANADIAN SYLLABICS WOODS-CREE THE 159C;AL # CANADIAN SYLLABICS WOODS-CREE THI 159D;AL # CANADIAN SYLLABICS WOODS-CREE THO 159E;AL # CANADIAN SYLLABICS WOODS-CREE THA 159F;AL # CANADIAN SYLLABICS WOODS-CREE TH 15A0;AL # CANADIAN SYLLABICS LHI 15A1;AL # CANADIAN SYLLABICS LHII 15A2;AL # CANADIAN SYLLABICS LHO 15A3;AL # CANADIAN SYLLABICS LHOO 15A4;AL # CANADIAN SYLLABICS LHA 15A5;AL # CANADIAN SYLLABICS LHAA 15A6;AL # CANADIAN SYLLABICS LH 15A7;AL # CANADIAN SYLLABICS TH-CREE THE 15A8;AL # CANADIAN SYLLABICS TH-CREE THI 15A9;AL # CANADIAN SYLLABICS TH-CREE THII 15AA;AL # CANADIAN SYLLABICS TH-CREE THO 15AB;AL # CANADIAN SYLLABICS TH-CREE THOO 15AC;AL # CANADIAN SYLLABICS TH-CREE THA 15AD;AL # CANADIAN SYLLABICS TH-CREE THAA 15AE;AL # CANADIAN SYLLABICS TH-CREE TH 15AF;AL # CANADIAN SYLLABICS AIVILIK B 15B0;AL # CANADIAN SYLLABICS BLACKFOOT E 15B1;AL # CANADIAN SYLLABICS BLACKFOOT I 15B2;AL # CANADIAN SYLLABICS BLACKFOOT O 15B3;AL # CANADIAN SYLLABICS BLACKFOOT A 15B4;AL # CANADIAN SYLLABICS BLACKFOOT WE 15B5;AL # CANADIAN SYLLABICS BLACKFOOT WI 15B6;AL # CANADIAN SYLLABICS BLACKFOOT WO 15B7;AL # CANADIAN SYLLABICS BLACKFOOT WA 15B8;AL # CANADIAN SYLLABICS BLACKFOOT NE 15B9;AL # CANADIAN SYLLABICS BLACKFOOT NI 15BA;AL # CANADIAN SYLLABICS BLACKFOOT NO 15BB;AL # CANADIAN SYLLABICS BLACKFOOT NA 15BC;AL # CANADIAN SYLLABICS BLACKFOOT KE 15BD;AL # CANADIAN SYLLABICS BLACKFOOT KI 15BE;AL # CANADIAN SYLLABICS BLACKFOOT KO 15BF;AL # CANADIAN SYLLABICS BLACKFOOT KA 15C0;AL # CANADIAN SYLLABICS SAYISI HE 15C1;AL # CANADIAN SYLLABICS SAYISI HI 15C2;AL # CANADIAN SYLLABICS SAYISI HO 15C3;AL # CANADIAN SYLLABICS SAYISI HA 15C4;AL # CANADIAN SYLLABICS CARRIER GHU 15C5;AL # CANADIAN SYLLABICS CARRIER GHO 15C6;AL # CANADIAN SYLLABICS CARRIER GHE 15C7;AL # CANADIAN SYLLABICS CARRIER GHEE 15C8;AL # CANADIAN SYLLABICS CARRIER GHI 15C9;AL # CANADIAN SYLLABICS CARRIER GHA 15CA;AL # CANADIAN SYLLABICS CARRIER RU 15CB;AL # CANADIAN SYLLABICS CARRIER RO 15CC;AL # CANADIAN SYLLABICS CARRIER RE 15CD;AL # CANADIAN SYLLABICS CARRIER REE 15CE;AL # CANADIAN SYLLABICS CARRIER RI 15CF;AL # CANADIAN SYLLABICS CARRIER RA 15D0;AL # CANADIAN SYLLABICS CARRIER WU 15D1;AL # CANADIAN SYLLABICS CARRIER WO 15D2;AL # CANADIAN SYLLABICS CARRIER WE 15D3;AL # CANADIAN SYLLABICS CARRIER WEE 15D4;AL # CANADIAN SYLLABICS CARRIER WI 15D5;AL # CANADIAN SYLLABICS CARRIER WA 15D6;AL # CANADIAN SYLLABICS CARRIER HWU 15D7;AL # CANADIAN SYLLABICS CARRIER HWO 15D8;AL # CANADIAN SYLLABICS CARRIER HWE 15D9;AL # CANADIAN SYLLABICS CARRIER HWEE 15DA;AL # CANADIAN SYLLABICS CARRIER HWI 15DB;AL # CANADIAN SYLLABICS CARRIER HWA 15DC;AL # CANADIAN SYLLABICS CARRIER THU 15DD;AL # CANADIAN SYLLABICS CARRIER THO 15DE;AL # CANADIAN SYLLABICS CARRIER THE 15DF;AL # CANADIAN SYLLABICS CARRIER THEE 15E0;AL # CANADIAN SYLLABICS CARRIER THI 15E1;AL # CANADIAN SYLLABICS CARRIER THA 15E2;AL # CANADIAN SYLLABICS CARRIER TTU 15E3;AL # CANADIAN SYLLABICS CARRIER TTO 15E4;AL # CANADIAN SYLLABICS CARRIER TTE 15E5;AL # CANADIAN SYLLABICS CARRIER TTEE 15E6;AL # CANADIAN SYLLABICS CARRIER TTI 15E7;AL # CANADIAN SYLLABICS CARRIER TTA 15E8;AL # CANADIAN SYLLABICS CARRIER PU 15E9;AL # CANADIAN SYLLABICS CARRIER PO 15EA;AL # CANADIAN SYLLABICS CARRIER PE 15EB;AL # CANADIAN SYLLABICS CARRIER PEE 15EC;AL # CANADIAN SYLLABICS CARRIER PI 15ED;AL # CANADIAN SYLLABICS CARRIER PA 15EE;AL # CANADIAN SYLLABICS CARRIER P 15EF;AL # CANADIAN SYLLABICS CARRIER GU 15F0;AL # CANADIAN SYLLABICS CARRIER GO 15F1;AL # CANADIAN SYLLABICS CARRIER GE 15F2;AL # CANADIAN SYLLABICS CARRIER GEE 15F3;AL # CANADIAN SYLLABICS CARRIER GI 15F4;AL # CANADIAN SYLLABICS CARRIER GA 15F5;AL # CANADIAN SYLLABICS CARRIER KHU 15F6;AL # CANADIAN SYLLABICS CARRIER KHO 15F7;AL # CANADIAN SYLLABICS CARRIER KHE 15F8;AL # CANADIAN SYLLABICS CARRIER KHEE 15F9;AL # CANADIAN SYLLABICS CARRIER KHI 15FA;AL # CANADIAN SYLLABICS CARRIER KHA 15FB;AL # CANADIAN SYLLABICS CARRIER KKU 15FC;AL # CANADIAN SYLLABICS CARRIER KKO 15FD;AL # CANADIAN SYLLABICS CARRIER KKE 15FE;AL # CANADIAN SYLLABICS CARRIER KKEE 15FF;AL # CANADIAN SYLLABICS CARRIER KKI 1600;AL # CANADIAN SYLLABICS CARRIER KKA 1601;AL # CANADIAN SYLLABICS CARRIER KK 1602;AL # CANADIAN SYLLABICS CARRIER NU 1603;AL # CANADIAN SYLLABICS CARRIER NO 1604;AL # CANADIAN SYLLABICS CARRIER NE 1605;AL # CANADIAN SYLLABICS CARRIER NEE 1606;AL # CANADIAN SYLLABICS CARRIER NI 1607;AL # CANADIAN SYLLABICS CARRIER NA 1608;AL # CANADIAN SYLLABICS CARRIER MU 1609;AL # CANADIAN SYLLABICS CARRIER MO 160A;AL # CANADIAN SYLLABICS CARRIER ME 160B;AL # CANADIAN SYLLABICS CARRIER MEE 160C;AL # CANADIAN SYLLABICS CARRIER MI 160D;AL # CANADIAN SYLLABICS CARRIER MA 160E;AL # CANADIAN SYLLABICS CARRIER YU 160F;AL # CANADIAN SYLLABICS CARRIER YO 1610;AL # CANADIAN SYLLABICS CARRIER YE 1611;AL # CANADIAN SYLLABICS CARRIER YEE 1612;AL # CANADIAN SYLLABICS CARRIER YI 1613;AL # CANADIAN SYLLABICS CARRIER YA 1614;AL # CANADIAN SYLLABICS CARRIER JU 1615;AL # CANADIAN SYLLABICS SAYISI JU 1616;AL # CANADIAN SYLLABICS CARRIER JO 1617;AL # CANADIAN SYLLABICS CARRIER JE 1618;AL # CANADIAN SYLLABICS CARRIER JEE 1619;AL # CANADIAN SYLLABICS CARRIER JI 161A;AL # CANADIAN SYLLABICS SAYISI JI 161B;AL # CANADIAN SYLLABICS CARRIER JA 161C;AL # CANADIAN SYLLABICS CARRIER JJU 161D;AL # CANADIAN SYLLABICS CARRIER JJO 161E;AL # CANADIAN SYLLABICS CARRIER JJE 161F;AL # CANADIAN SYLLABICS CARRIER JJEE 1620;AL # CANADIAN SYLLABICS CARRIER JJI 1621;AL # CANADIAN SYLLABICS CARRIER JJA 1622;AL # CANADIAN SYLLABICS CARRIER LU 1623;AL # CANADIAN SYLLABICS CARRIER LO 1624;AL # CANADIAN SYLLABICS CARRIER LE 1625;AL # CANADIAN SYLLABICS CARRIER LEE 1626;AL # CANADIAN SYLLABICS CARRIER LI 1627;AL # CANADIAN SYLLABICS CARRIER LA 1628;AL # CANADIAN SYLLABICS CARRIER DLU 1629;AL # CANADIAN SYLLABICS CARRIER DLO 162A;AL # CANADIAN SYLLABICS CARRIER DLE 162B;AL # CANADIAN SYLLABICS CARRIER DLEE 162C;AL # CANADIAN SYLLABICS CARRIER DLI 162D;AL # CANADIAN SYLLABICS CARRIER DLA 162E;AL # CANADIAN SYLLABICS CARRIER LHU 162F;AL # CANADIAN SYLLABICS CARRIER LHO 1630;AL # CANADIAN SYLLABICS CARRIER LHE 1631;AL # CANADIAN SYLLABICS CARRIER LHEE 1632;AL # CANADIAN SYLLABICS CARRIER LHI 1633;AL # CANADIAN SYLLABICS CARRIER LHA 1634;AL # CANADIAN SYLLABICS CARRIER TLHU 1635;AL # CANADIAN SYLLABICS CARRIER TLHO 1636;AL # CANADIAN SYLLABICS CARRIER TLHE 1637;AL # CANADIAN SYLLABICS CARRIER TLHEE 1638;AL # CANADIAN SYLLABICS CARRIER TLHI 1639;AL # CANADIAN SYLLABICS CARRIER TLHA 163A;AL # CANADIAN SYLLABICS CARRIER TLU 163B;AL # CANADIAN SYLLABICS CARRIER TLO 163C;AL # CANADIAN SYLLABICS CARRIER TLE 163D;AL # CANADIAN SYLLABICS CARRIER TLEE 163E;AL # CANADIAN SYLLABICS CARRIER TLI 163F;AL # CANADIAN SYLLABICS CARRIER TLA 1640;AL # CANADIAN SYLLABICS CARRIER ZU 1641;AL # CANADIAN SYLLABICS CARRIER ZO 1642;AL # CANADIAN SYLLABICS CARRIER ZE 1643;AL # CANADIAN SYLLABICS CARRIER ZEE 1644;AL # CANADIAN SYLLABICS CARRIER ZI 1645;AL # CANADIAN SYLLABICS CARRIER ZA 1646;AL # CANADIAN SYLLABICS CARRIER Z 1647;AL # CANADIAN SYLLABICS CARRIER INITIAL Z 1648;AL # CANADIAN SYLLABICS CARRIER DZU 1649;AL # CANADIAN SYLLABICS CARRIER DZO 164A;AL # CANADIAN SYLLABICS CARRIER DZE 164B;AL # CANADIAN SYLLABICS CARRIER DZEE 164C;AL # CANADIAN SYLLABICS CARRIER DZI 164D;AL # CANADIAN SYLLABICS CARRIER DZA 164E;AL # CANADIAN SYLLABICS CARRIER SU 164F;AL # CANADIAN SYLLABICS CARRIER SO 1650;AL # CANADIAN SYLLABICS CARRIER SE 1651;AL # CANADIAN SYLLABICS CARRIER SEE 1652;AL # CANADIAN SYLLABICS CARRIER SI 1653;AL # CANADIAN SYLLABICS CARRIER SA 1654;AL # CANADIAN SYLLABICS CARRIER SHU 1655;AL # CANADIAN SYLLABICS CARRIER SHO 1656;AL # CANADIAN SYLLABICS CARRIER SHE 1657;AL # CANADIAN SYLLABICS CARRIER SHEE 1658;AL # CANADIAN SYLLABICS CARRIER SHI 1659;AL # CANADIAN SYLLABICS CARRIER SHA 165A;AL # CANADIAN SYLLABICS CARRIER SH 165B;AL # CANADIAN SYLLABICS CARRIER TSU 165C;AL # CANADIAN SYLLABICS CARRIER TSO 165D;AL # CANADIAN SYLLABICS CARRIER TSE 165E;AL # CANADIAN SYLLABICS CARRIER TSEE 165F;AL # CANADIAN SYLLABICS CARRIER TSI 1660;AL # CANADIAN SYLLABICS CARRIER TSA 1661;AL # CANADIAN SYLLABICS CARRIER CHU 1662;AL # CANADIAN SYLLABICS CARRIER CHO 1663;AL # CANADIAN SYLLABICS CARRIER CHE 1664;AL # CANADIAN SYLLABICS CARRIER CHEE 1665;AL # CANADIAN SYLLABICS CARRIER CHI 1666;AL # CANADIAN SYLLABICS CARRIER CHA 1667;AL # CANADIAN SYLLABICS CARRIER TTSU 1668;AL # CANADIAN SYLLABICS CARRIER TTSO 1669;AL # CANADIAN SYLLABICS CARRIER TTSE 166A;AL # CANADIAN SYLLABICS CARRIER TTSEE 166B;AL # CANADIAN SYLLABICS CARRIER TTSI 166C;AL # CANADIAN SYLLABICS CARRIER TTSA 166D;AL # CANADIAN SYLLABICS CHI SIGN 166E;AL # CANADIAN SYLLABICS FULL STOP 166F;AL # CANADIAN SYLLABICS QAI 1670;AL # CANADIAN SYLLABICS NGAI 1671;AL # CANADIAN SYLLABICS NNGI 1672;AL # CANADIAN SYLLABICS NNGII 1673;AL # CANADIAN SYLLABICS NNGO 1674;AL # CANADIAN SYLLABICS NNGOO 1675;AL # CANADIAN SYLLABICS NNGA 1676;AL # CANADIAN SYLLABICS NNGAA 1680;BA # OGHAM SPACE MARK 1681;AL # OGHAM LETTER BEITH 1682;AL # OGHAM LETTER LUIS 1683;AL # OGHAM LETTER FEARN 1684;AL # OGHAM LETTER SAIL 1685;AL # OGHAM LETTER NION 1686;AL # OGHAM LETTER UATH 1687;AL # OGHAM LETTER DAIR 1688;AL # OGHAM LETTER TINNE 1689;AL # OGHAM LETTER COLL 168A;AL # OGHAM LETTER CEIRT 168B;AL # OGHAM LETTER MUIN 168C;AL # OGHAM LETTER GORT 168D;AL # OGHAM LETTER NGEADAL 168E;AL # OGHAM LETTER STRAIF 168F;AL # OGHAM LETTER RUIS 1690;AL # OGHAM LETTER AILM 1691;AL # OGHAM LETTER ONN 1692;AL # OGHAM LETTER UR 1693;AL # OGHAM LETTER EADHADH 1694;AL # OGHAM LETTER IODHADH 1695;AL # OGHAM LETTER EABHADH 1696;AL # OGHAM LETTER OR 1697;AL # OGHAM LETTER UILLEANN 1698;AL # OGHAM LETTER IFIN 1699;AL # OGHAM LETTER EAMHANCHOLL 169A;AL # OGHAM LETTER PEITH 169B;OP # OGHAM FEATHER MARK 169C;CL # OGHAM REVERSED FEATHER MARK 16A0;AL # RUNIC LETTER FEHU FEOH FE F 16A1;AL # RUNIC LETTER V 16A2;AL # RUNIC LETTER URUZ UR U 16A3;AL # RUNIC LETTER YR 16A4;AL # RUNIC LETTER Y 16A5;AL # RUNIC LETTER W 16A6;AL # RUNIC LETTER THURISAZ THURS THORN 16A7;AL # RUNIC LETTER ETH 16A8;AL # RUNIC LETTER ANSUZ A 16A9;AL # RUNIC LETTER OS O 16AA;AL # RUNIC LETTER AC A 16AB;AL # RUNIC LETTER AESC 16AC;AL # RUNIC LETTER LONG-BRANCH-OSS O 16AD;AL # RUNIC LETTER SHORT-TWIG-OSS O 16AE;AL # RUNIC LETTER O 16AF;AL # RUNIC LETTER OE 16B0;AL # RUNIC LETTER ON 16B1;AL # RUNIC LETTER RAIDO RAD REID R 16B2;AL # RUNIC LETTER KAUNA 16B3;AL # RUNIC LETTER CEN 16B4;AL # RUNIC LETTER KAUN K 16B5;AL # RUNIC LETTER G 16B6;AL # RUNIC LETTER ENG 16B7;AL # RUNIC LETTER GEBO GYFU G 16B8;AL # RUNIC LETTER GAR 16B9;AL # RUNIC LETTER WUNJO WYNN W 16BA;AL # RUNIC LETTER HAGLAZ H 16BB;AL # RUNIC LETTER HAEGL H 16BC;AL # RUNIC LETTER LONG-BRANCH-HAGALL H 16BD;AL # RUNIC LETTER SHORT-TWIG-HAGALL H 16BE;AL # RUNIC LETTER NAUDIZ NYD NAUD N 16BF;AL # RUNIC LETTER SHORT-TWIG-NAUD N 16C0;AL # RUNIC LETTER DOTTED-N 16C1;AL # RUNIC LETTER ISAZ IS ISS I 16C2;AL # RUNIC LETTER E 16C3;AL # RUNIC LETTER JERAN J 16C4;AL # RUNIC LETTER GER 16C5;AL # RUNIC LETTER LONG-BRANCH-AR AE 16C6;AL # RUNIC LETTER SHORT-TWIG-AR A 16C7;AL # RUNIC LETTER IWAZ EOH 16C8;AL # RUNIC LETTER PERTHO PEORTH P 16C9;AL # RUNIC LETTER ALGIZ EOLHX 16CA;AL # RUNIC LETTER SOWILO S 16CB;AL # RUNIC LETTER SIGEL LONG-BRANCH-SOL S 16CC;AL # RUNIC LETTER SHORT-TWIG-SOL S 16CD;AL # RUNIC LETTER C 16CE;AL # RUNIC LETTER Z 16CF;AL # RUNIC LETTER TIWAZ TIR TYR T 16D0;AL # RUNIC LETTER SHORT-TWIG-TYR T 16D1;AL # RUNIC LETTER D 16D2;AL # RUNIC LETTER BERKANAN BEORC BJARKAN B 16D3;AL # RUNIC LETTER SHORT-TWIG-BJARKAN B 16D4;AL # RUNIC LETTER DOTTED-P 16D5;AL # RUNIC LETTER OPEN-P 16D6;AL # RUNIC LETTER EHWAZ EH E 16D7;AL # RUNIC LETTER MANNAZ MAN M 16D8;AL # RUNIC LETTER LONG-BRANCH-MADR M 16D9;AL # RUNIC LETTER SHORT-TWIG-MADR M 16DA;AL # RUNIC LETTER LAUKAZ LAGU LOGR L 16DB;AL # RUNIC LETTER DOTTED-L 16DC;AL # RUNIC LETTER INGWAZ 16DD;AL # RUNIC LETTER ING 16DE;AL # RUNIC LETTER DAGAZ DAEG D 16DF;AL # RUNIC LETTER OTHALAN ETHEL O 16E0;AL # RUNIC LETTER EAR 16E1;AL # RUNIC LETTER IOR 16E2;AL # RUNIC LETTER CWEORTH 16E3;AL # RUNIC LETTER CALC 16E4;AL # RUNIC LETTER CEALC 16E5;AL # RUNIC LETTER STAN 16E6;AL # RUNIC LETTER LONG-BRANCH-YR 16E7;AL # RUNIC LETTER SHORT-TWIG-YR 16E8;AL # RUNIC LETTER ICELANDIC-YR 16E9;AL # RUNIC LETTER Q 16EA;AL # RUNIC LETTER X 16EB;AL # RUNIC SINGLE PUNCTUATION 16EC;AL # RUNIC MULTIPLE PUNCTUATION 16ED;AL # RUNIC CROSS PUNCTUATION 16EE;AL # RUNIC ARLAUG SYMBOL 16EF;AL # RUNIC TVIMADUR SYMBOL 16F0;AL # RUNIC BELGTHOR SYMBOL 1700;AL # TAGALOG LETTER A 1701;AL # TAGALOG LETTER I 1702;AL # TAGALOG LETTER U 1703;AL # TAGALOG LETTER KA 1704;AL # TAGALOG LETTER GA 1705;AL # TAGALOG LETTER NGA 1706;AL # TAGALOG LETTER TA 1707;AL # TAGALOG LETTER DA 1708;AL # TAGALOG LETTER NA 1709;AL # TAGALOG LETTER PA 170A;AL # TAGALOG LETTER BA 170B;AL # TAGALOG LETTER MA 170C;AL # TAGALOG LETTER YA 170E;AL # TAGALOG LETTER LA 170F;AL # TAGALOG LETTER WA 1710;AL # TAGALOG LETTER SA 1711;AL # TAGALOG LETTER HA 1712;CM # TAGALOG VOWEL SIGN I 1713;CM # TAGALOG VOWEL SIGN U 1714;CM # TAGALOG SIGN VIRAMA 1720;AL # HANUNOO LETTER A 1721;AL # HANUNOO LETTER I 1722;AL # HANUNOO LETTER U 1723;AL # HANUNOO LETTER KA 1724;AL # HANUNOO LETTER GA 1725;AL # HANUNOO LETTER NGA 1726;AL # HANUNOO LETTER TA 1727;AL # HANUNOO LETTER DA 1728;AL # HANUNOO LETTER NA 1729;AL # HANUNOO LETTER PA 172A;AL # HANUNOO LETTER BA 172B;AL # HANUNOO LETTER MA 172C;AL # HANUNOO LETTER YA 172D;AL # HANUNOO LETTER RA 172E;AL # HANUNOO LETTER LA 172F;AL # HANUNOO LETTER WA 1730;AL # HANUNOO LETTER SA 1731;AL # HANUNOO LETTER HA 1732;CM # HANUNOO VOWEL SIGN I 1733;CM # HANUNOO VOWEL SIGN U 1734;CM # HANUNOO SIGN PAMUDPOD 1735;AL # PHILIPPINE SINGLE PUNCTUATION 1736;AL # PHILIPPINE DOUBLE PUNCTUATION 1740;AL # BUHID LETTER A 1741;AL # BUHID LETTER I 1742;AL # BUHID LETTER U 1743;AL # BUHID LETTER KA 1744;AL # BUHID LETTER GA 1745;AL # BUHID LETTER NGA 1746;AL # BUHID LETTER TA 1747;AL # BUHID LETTER DA 1748;AL # BUHID LETTER NA 1749;AL # BUHID LETTER PA 174A;AL # BUHID LETTER BA 174B;AL # BUHID LETTER MA 174C;AL # BUHID LETTER YA 174D;AL # BUHID LETTER RA 174E;AL # BUHID LETTER LA 174F;AL # BUHID LETTER WA 1750;AL # BUHID LETTER SA 1751;AL # BUHID LETTER HA 1752;CM # BUHID VOWEL SIGN I 1753;CM # BUHID VOWEL SIGN U 1760;AL # TAGBANWA LETTER A 1761;AL # TAGBANWA LETTER I 1762;AL # TAGBANWA LETTER U 1763;AL # TAGBANWA LETTER KA 1764;AL # TAGBANWA LETTER GA 1765;AL # TAGBANWA LETTER NGA 1766;AL # TAGBANWA LETTER TA 1767;AL # TAGBANWA LETTER DA 1768;AL # TAGBANWA LETTER NA 1769;AL # TAGBANWA LETTER PA 176A;AL # TAGBANWA LETTER BA 176B;AL # TAGBANWA LETTER MA 176C;AL # TAGBANWA LETTER YA 176E;AL # TAGBANWA LETTER LA 176F;AL # TAGBANWA LETTER WA 1770;AL # TAGBANWA LETTER SA 1772;CM # TAGBANWA VOWEL SIGN I 1773;CM # TAGBANWA VOWEL SIGN U 1780;SA # KHMER LETTER KA 1781;SA # KHMER LETTER KHA 1782;SA # KHMER LETTER KO 1783;SA # KHMER LETTER KHO 1784;SA # KHMER LETTER NGO 1785;SA # KHMER LETTER CA 1786;SA # KHMER LETTER CHA 1787;SA # KHMER LETTER CO 1788;SA # KHMER LETTER CHO 1789;SA # KHMER LETTER NYO 178A;SA # KHMER LETTER DA 178B;SA # KHMER LETTER TTHA 178C;SA # KHMER LETTER DO 178D;SA # KHMER LETTER TTHO 178E;SA # KHMER LETTER NNO 178F;SA # KHMER LETTER TA 1790;SA # KHMER LETTER THA 1791;SA # KHMER LETTER TO 1792;SA # KHMER LETTER THO 1793;SA # KHMER LETTER NO 1794;SA # KHMER LETTER BA 1795;SA # KHMER LETTER PHA 1796;SA # KHMER LETTER PO 1797;SA # KHMER LETTER PHO 1798;SA # KHMER LETTER MO 1799;SA # KHMER LETTER YO 179A;SA # KHMER LETTER RO 179B;SA # KHMER LETTER LO 179C;SA # KHMER LETTER VO 179D;SA # KHMER LETTER SHA 179E;SA # KHMER LETTER SSO 179F;SA # KHMER LETTER SA 17A0;SA # KHMER LETTER HA 17A1;SA # KHMER LETTER LA 17A2;SA # KHMER LETTER QA 17A3;SA # KHMER INDEPENDENT VOWEL QAQ 17A4;SA # KHMER INDEPENDENT VOWEL QAA 17A5;SA # KHMER INDEPENDENT VOWEL QI 17A6;SA # KHMER INDEPENDENT VOWEL QII 17A7;SA # KHMER INDEPENDENT VOWEL QU 17A8;SA # KHMER INDEPENDENT VOWEL QUK 17A9;SA # KHMER INDEPENDENT VOWEL QUU 17AA;SA # KHMER INDEPENDENT VOWEL QUUV 17AB;SA # KHMER INDEPENDENT VOWEL RY 17AC;SA # KHMER INDEPENDENT VOWEL RYY 17AD;SA # KHMER INDEPENDENT VOWEL LY 17AE;SA # KHMER INDEPENDENT VOWEL LYY 17AF;SA # KHMER INDEPENDENT VOWEL QE 17B0;SA # KHMER INDEPENDENT VOWEL QAI 17B1;SA # KHMER INDEPENDENT VOWEL QOO TYPE ONE 17B2;SA # KHMER INDEPENDENT VOWEL QOO TYPE TWO 17B3;SA # KHMER INDEPENDENT VOWEL QAU 17B4;CM # KHMER VOWEL INHERENT AQ 17B5;CM # KHMER VOWEL INHERENT AA 17B6;CM # KHMER VOWEL SIGN AA 17B7;CM # KHMER VOWEL SIGN I 17B8;CM # KHMER VOWEL SIGN II 17B9;CM # KHMER VOWEL SIGN Y 17BA;CM # KHMER VOWEL SIGN YY 17BB;CM # KHMER VOWEL SIGN U 17BC;CM # KHMER VOWEL SIGN UU 17BD;CM # KHMER VOWEL SIGN UA 17BE;CM # KHMER VOWEL SIGN OE 17BF;CM # KHMER VOWEL SIGN YA 17C0;CM # KHMER VOWEL SIGN IE 17C1;CM # KHMER VOWEL SIGN E 17C2;CM # KHMER VOWEL SIGN AE 17C3;CM # KHMER VOWEL SIGN AI 17C4;CM # KHMER VOWEL SIGN OO 17C5;CM # KHMER VOWEL SIGN AU 17C6;CM # KHMER SIGN NIKAHIT 17C7;CM # KHMER SIGN REAHMUK 17C8;CM # KHMER SIGN YUUKALEAPINTU 17C9;CM # KHMER SIGN MUUSIKATOAN 17CA;CM # KHMER SIGN TRIISAP 17CB;CM # KHMER SIGN BANTOC 17CC;CM # KHMER SIGN ROBAT 17CD;CM # KHMER SIGN TOANDAKHIAT 17CE;CM # KHMER SIGN KAKABAT 17CF;CM # KHMER SIGN AHSDA 17D0;CM # KHMER SIGN SAMYOK SANNYA 17D1;CM # KHMER SIGN VIRIAM 17D2;CM # KHMER SIGN COENG 17D3;CM # KHMER SIGN BATHAMASAT 17D4;NS # KHMER SIGN KHAN 17D5;BA # KHMER SIGN BARIYOOSAN 17D6;NS # KHMER SIGN CAMNUC PII KUUH 17D7;NS # KHMER SIGN LEK TOO 17D8;NS # KHMER SIGN BEYYAL 17D9;NS # KHMER SIGN PHNAEK MUAN 17DA;NS # KHMER SIGN KOOMUUT 17DB;PR # KHMER CURRENCY SYMBOL RIEL 17DC;AL # KHMER SIGN AVAKRAHASANYA 17E0;NU # KHMER DIGIT ZERO 17E1;NU # KHMER DIGIT ONE 17E2;NU # KHMER DIGIT TWO 17E3;NU # KHMER DIGIT THREE 17E4;NU # KHMER DIGIT FOUR 17E5;NU # KHMER DIGIT FIVE 17E6;NU # KHMER DIGIT SIX 17E7;NU # KHMER DIGIT SEVEN 17E8;NU # KHMER DIGIT EIGHT 17E9;NU # KHMER DIGIT NINE 1800;AL # MONGOLIAN BIRGA 1801;AL # MONGOLIAN ELLIPSIS 1802;AL # MONGOLIAN COMMA 1803;AL # MONGOLIAN FULL STOP 1804;AL # MONGOLIAN COLON 1805;AL # MONGOLIAN FOUR DOTS 1806;BB # MONGOLIAN TODO SOFT HYPHEN 1807;AL # MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER 1808;AL # MONGOLIAN MANCHU COMMA 1809;AL # MONGOLIAN MANCHU FULL STOP 180A;AL # MONGOLIAN NIRUGU 180B;CM # MONGOLIAN FREE VARIATION SELECTOR ONE 180C;CM # MONGOLIAN FREE VARIATION SELECTOR TWO 180D;CM # MONGOLIAN FREE VARIATION SELECTOR THREE 180E;CM # MONGOLIAN VOWEL SEPARATOR 1810;NU # MONGOLIAN DIGIT ZERO 1811;NU # MONGOLIAN DIGIT ONE 1812;NU # MONGOLIAN DIGIT TWO 1813;NU # MONGOLIAN DIGIT THREE 1814;NU # MONGOLIAN DIGIT FOUR 1815;NU # MONGOLIAN DIGIT FIVE 1816;NU # MONGOLIAN DIGIT SIX 1817;NU # MONGOLIAN DIGIT SEVEN 1818;NU # MONGOLIAN DIGIT EIGHT 1819;NU # MONGOLIAN DIGIT NINE 1820;AL # MONGOLIAN LETTER A 1821;AL # MONGOLIAN LETTER E 1822;AL # MONGOLIAN LETTER I 1823;AL # MONGOLIAN LETTER O 1824;AL # MONGOLIAN LETTER U 1825;AL # MONGOLIAN LETTER OE 1826;AL # MONGOLIAN LETTER UE 1827;AL # MONGOLIAN LETTER EE 1828;AL # MONGOLIAN LETTER NA 1829;AL # MONGOLIAN LETTER ANG 182A;AL # MONGOLIAN LETTER BA 182B;AL # MONGOLIAN LETTER PA 182C;AL # MONGOLIAN LETTER QA 182D;AL # MONGOLIAN LETTER GA 182E;AL # MONGOLIAN LETTER MA 182F;AL # MONGOLIAN LETTER LA 1830;AL # MONGOLIAN LETTER SA 1831;AL # MONGOLIAN LETTER SHA 1832;AL # MONGOLIAN LETTER TA 1833;AL # MONGOLIAN LETTER DA 1834;AL # MONGOLIAN LETTER CHA 1835;AL # MONGOLIAN LETTER JA 1836;AL # MONGOLIAN LETTER YA 1837;AL # MONGOLIAN LETTER RA 1838;AL # MONGOLIAN LETTER WA 1839;AL # MONGOLIAN LETTER FA 183A;AL # MONGOLIAN LETTER KA 183B;AL # MONGOLIAN LETTER KHA 183C;AL # MONGOLIAN LETTER TSA 183D;AL # MONGOLIAN LETTER ZA 183E;AL # MONGOLIAN LETTER HAA 183F;AL # MONGOLIAN LETTER ZRA 1840;AL # MONGOLIAN LETTER LHA 1841;AL # MONGOLIAN LETTER ZHI 1842;AL # MONGOLIAN LETTER CHI 1843;AL # MONGOLIAN LETTER TODO LONG VOWEL SIGN 1844;AL # MONGOLIAN LETTER TODO E 1845;AL # MONGOLIAN LETTER TODO I 1846;AL # MONGOLIAN LETTER TODO O 1847;AL # MONGOLIAN LETTER TODO U 1848;AL # MONGOLIAN LETTER TODO OE 1849;AL # MONGOLIAN LETTER TODO UE 184A;AL # MONGOLIAN LETTER TODO ANG 184B;AL # MONGOLIAN LETTER TODO BA 184C;AL # MONGOLIAN LETTER TODO PA 184D;AL # MONGOLIAN LETTER TODO QA 184E;AL # MONGOLIAN LETTER TODO GA 184F;AL # MONGOLIAN LETTER TODO MA 1850;AL # MONGOLIAN LETTER TODO TA 1851;AL # MONGOLIAN LETTER TODO DA 1852;AL # MONGOLIAN LETTER TODO CHA 1853;AL # MONGOLIAN LETTER TODO JA 1854;AL # MONGOLIAN LETTER TODO TSA 1855;AL # MONGOLIAN LETTER TODO YA 1856;AL # MONGOLIAN LETTER TODO WA 1857;AL # MONGOLIAN LETTER TODO KA 1858;AL # MONGOLIAN LETTER TODO GAA 1859;AL # MONGOLIAN LETTER TODO HAA 185A;AL # MONGOLIAN LETTER TODO JIA 185B;AL # MONGOLIAN LETTER TODO NIA 185C;AL # MONGOLIAN LETTER TODO DZA 185D;AL # MONGOLIAN LETTER SIBE E 185E;AL # MONGOLIAN LETTER SIBE I 185F;AL # MONGOLIAN LETTER SIBE IY 1860;AL # MONGOLIAN LETTER SIBE UE 1861;AL # MONGOLIAN LETTER SIBE U 1862;AL # MONGOLIAN LETTER SIBE ANG 1863;AL # MONGOLIAN LETTER SIBE KA 1864;AL # MONGOLIAN LETTER SIBE GA 1865;AL # MONGOLIAN LETTER SIBE HA 1866;AL # MONGOLIAN LETTER SIBE PA 1867;AL # MONGOLIAN LETTER SIBE SHA 1868;AL # MONGOLIAN LETTER SIBE TA 1869;AL # MONGOLIAN LETTER SIBE DA 186A;AL # MONGOLIAN LETTER SIBE JA 186B;AL # MONGOLIAN LETTER SIBE FA 186C;AL # MONGOLIAN LETTER SIBE GAA 186D;AL # MONGOLIAN LETTER SIBE HAA 186E;AL # MONGOLIAN LETTER SIBE TSA 186F;AL # MONGOLIAN LETTER SIBE ZA 1870;AL # MONGOLIAN LETTER SIBE RAA 1871;AL # MONGOLIAN LETTER SIBE CHA 1872;AL # MONGOLIAN LETTER SIBE ZHA 1873;AL # MONGOLIAN LETTER MANCHU I 1874;AL # MONGOLIAN LETTER MANCHU KA 1875;AL # MONGOLIAN LETTER MANCHU RA 1876;AL # MONGOLIAN LETTER MANCHU FA 1877;AL # MONGOLIAN LETTER MANCHU ZHA 1880;AL # MONGOLIAN LETTER ALI GALI ANUSVARA ONE 1881;AL # MONGOLIAN LETTER ALI GALI VISARGA ONE 1882;AL # MONGOLIAN LETTER ALI GALI DAMARU 1883;AL # MONGOLIAN LETTER ALI GALI UBADAMA 1884;AL # MONGOLIAN LETTER ALI GALI INVERTED UBADAMA 1885;AL # MONGOLIAN LETTER ALI GALI BALUDA 1886;AL # MONGOLIAN LETTER ALI GALI THREE BALUDA 1887;AL # MONGOLIAN LETTER ALI GALI A 1888;AL # MONGOLIAN LETTER ALI GALI I 1889;AL # MONGOLIAN LETTER ALI GALI KA 188A;AL # MONGOLIAN LETTER ALI GALI NGA 188B;AL # MONGOLIAN LETTER ALI GALI CA 188C;AL # MONGOLIAN LETTER ALI GALI TTA 188D;AL # MONGOLIAN LETTER ALI GALI TTHA 188E;AL # MONGOLIAN LETTER ALI GALI DDA 188F;AL # MONGOLIAN LETTER ALI GALI NNA 1890;AL # MONGOLIAN LETTER ALI GALI TA 1891;AL # MONGOLIAN LETTER ALI GALI DA 1892;AL # MONGOLIAN LETTER ALI GALI PA 1893;AL # MONGOLIAN LETTER ALI GALI PHA 1894;AL # MONGOLIAN LETTER ALI GALI SSA 1895;AL # MONGOLIAN LETTER ALI GALI ZHA 1896;AL # MONGOLIAN LETTER ALI GALI ZA 1897;AL # MONGOLIAN LETTER ALI GALI AH 1898;AL # MONGOLIAN LETTER TODO ALI GALI TA 1899;AL # MONGOLIAN LETTER TODO ALI GALI ZHA 189A;AL # MONGOLIAN LETTER MANCHU ALI GALI GHA 189B;AL # MONGOLIAN LETTER MANCHU ALI GALI NGA 189C;AL # MONGOLIAN LETTER MANCHU ALI GALI CA 189D;AL # MONGOLIAN LETTER MANCHU ALI GALI JHA 189E;AL # MONGOLIAN LETTER MANCHU ALI GALI TTA 189F;AL # MONGOLIAN LETTER MANCHU ALI GALI DDHA 18A0;AL # MONGOLIAN LETTER MANCHU ALI GALI TA 18A1;AL # MONGOLIAN LETTER MANCHU ALI GALI DHA 18A2;AL # MONGOLIAN LETTER MANCHU ALI GALI SSA 18A3;AL # MONGOLIAN LETTER MANCHU ALI GALI CYA 18A4;AL # MONGOLIAN LETTER MANCHU ALI GALI ZHA 18A5;AL # MONGOLIAN LETTER MANCHU ALI GALI ZA 18A6;AL # MONGOLIAN LETTER ALI GALI HALF U 18A7;AL # MONGOLIAN LETTER ALI GALI HALF YA 18A8;AL # MONGOLIAN LETTER MANCHU ALI GALI BHA 18A9;CM # MONGOLIAN LETTER ALI GALI DAGALGA 1E00;AL # LATIN CAPITAL LETTER A WITH RING BELOW 1E01;AL # LATIN SMALL LETTER A WITH RING BELOW 1E02;AL # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E03;AL # LATIN SMALL LETTER B WITH DOT ABOVE 1E04;AL # LATIN CAPITAL LETTER B WITH DOT BELOW 1E05;AL # LATIN SMALL LETTER B WITH DOT BELOW 1E06;AL # LATIN CAPITAL LETTER B WITH LINE BELOW 1E07;AL # LATIN SMALL LETTER B WITH LINE BELOW 1E08;AL # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE 1E09;AL # LATIN SMALL LETTER C WITH CEDILLA AND ACUTE 1E0A;AL # LATIN CAPITAL LETTER D WITH DOT ABOVE 1E0B;AL # LATIN SMALL LETTER D WITH DOT ABOVE 1E0C;AL # LATIN CAPITAL LETTER D WITH DOT BELOW 1E0D;AL # LATIN SMALL LETTER D WITH DOT BELOW 1E0E;AL # LATIN CAPITAL LETTER D WITH LINE BELOW 1E0F;AL # LATIN SMALL LETTER D WITH LINE BELOW 1E10;AL # LATIN CAPITAL LETTER D WITH CEDILLA 1E11;AL # LATIN SMALL LETTER D WITH CEDILLA 1E12;AL # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW 1E13;AL # LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW 1E14;AL # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE 1E15;AL # LATIN SMALL LETTER E WITH MACRON AND GRAVE 1E16;AL # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE 1E17;AL # LATIN SMALL LETTER E WITH MACRON AND ACUTE 1E18;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW 1E19;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW 1E1A;AL # LATIN CAPITAL LETTER E WITH TILDE BELOW 1E1B;AL # LATIN SMALL LETTER E WITH TILDE BELOW 1E1C;AL # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE 1E1D;AL # LATIN SMALL LETTER E WITH CEDILLA AND BREVE 1E1E;AL # LATIN CAPITAL LETTER F WITH DOT ABOVE 1E1F;AL # LATIN SMALL LETTER F WITH DOT ABOVE 1E20;AL # LATIN CAPITAL LETTER G WITH MACRON 1E21;AL # LATIN SMALL LETTER G WITH MACRON 1E22;AL # LATIN CAPITAL LETTER H WITH DOT ABOVE 1E23;AL # LATIN SMALL LETTER H WITH DOT ABOVE 1E24;AL # LATIN CAPITAL LETTER H WITH DOT BELOW 1E25;AL # LATIN SMALL LETTER H WITH DOT BELOW 1E26;AL # LATIN CAPITAL LETTER H WITH DIAERESIS 1E27;AL # LATIN SMALL LETTER H WITH DIAERESIS 1E28;AL # LATIN CAPITAL LETTER H WITH CEDILLA 1E29;AL # LATIN SMALL LETTER H WITH CEDILLA 1E2A;AL # LATIN CAPITAL LETTER H WITH BREVE BELOW 1E2B;AL # LATIN SMALL LETTER H WITH BREVE BELOW 1E2C;AL # LATIN CAPITAL LETTER I WITH TILDE BELOW 1E2D;AL # LATIN SMALL LETTER I WITH TILDE BELOW 1E2E;AL # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE 1E2F;AL # LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE 1E30;AL # LATIN CAPITAL LETTER K WITH ACUTE 1E31;AL # LATIN SMALL LETTER K WITH ACUTE 1E32;AL # LATIN CAPITAL LETTER K WITH DOT BELOW 1E33;AL # LATIN SMALL LETTER K WITH DOT BELOW 1E34;AL # LATIN CAPITAL LETTER K WITH LINE BELOW 1E35;AL # LATIN SMALL LETTER K WITH LINE BELOW 1E36;AL # LATIN CAPITAL LETTER L WITH DOT BELOW 1E37;AL # LATIN SMALL LETTER L WITH DOT BELOW 1E38;AL # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON 1E39;AL # LATIN SMALL LETTER L WITH DOT BELOW AND MACRON 1E3A;AL # LATIN CAPITAL LETTER L WITH LINE BELOW 1E3B;AL # LATIN SMALL LETTER L WITH LINE BELOW 1E3C;AL # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW 1E3D;AL # LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW 1E3E;AL # LATIN CAPITAL LETTER M WITH ACUTE 1E3F;AL # LATIN SMALL LETTER M WITH ACUTE 1E40;AL # LATIN CAPITAL LETTER M WITH DOT ABOVE 1E41;AL # LATIN SMALL LETTER M WITH DOT ABOVE 1E42;AL # LATIN CAPITAL LETTER M WITH DOT BELOW 1E43;AL # LATIN SMALL LETTER M WITH DOT BELOW 1E44;AL # LATIN CAPITAL LETTER N WITH DOT ABOVE 1E45;AL # LATIN SMALL LETTER N WITH DOT ABOVE 1E46;AL # LATIN CAPITAL LETTER N WITH DOT BELOW 1E47;AL # LATIN SMALL LETTER N WITH DOT BELOW 1E48;AL # LATIN CAPITAL LETTER N WITH LINE BELOW 1E49;AL # LATIN SMALL LETTER N WITH LINE BELOW 1E4A;AL # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW 1E4B;AL # LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW 1E4C;AL # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE 1E4D;AL # LATIN SMALL LETTER O WITH TILDE AND ACUTE 1E4E;AL # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS 1E4F;AL # LATIN SMALL LETTER O WITH TILDE AND DIAERESIS 1E50;AL # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE 1E51;AL # LATIN SMALL LETTER O WITH MACRON AND GRAVE 1E52;AL # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE 1E53;AL # LATIN SMALL LETTER O WITH MACRON AND ACUTE 1E54;AL # LATIN CAPITAL LETTER P WITH ACUTE 1E55;AL # LATIN SMALL LETTER P WITH ACUTE 1E56;AL # LATIN CAPITAL LETTER P WITH DOT ABOVE 1E57;AL # LATIN SMALL LETTER P WITH DOT ABOVE 1E58;AL # LATIN CAPITAL LETTER R WITH DOT ABOVE 1E59;AL # LATIN SMALL LETTER R WITH DOT ABOVE 1E5A;AL # LATIN CAPITAL LETTER R WITH DOT BELOW 1E5B;AL # LATIN SMALL LETTER R WITH DOT BELOW 1E5C;AL # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON 1E5D;AL # LATIN SMALL LETTER R WITH DOT BELOW AND MACRON 1E5E;AL # LATIN CAPITAL LETTER R WITH LINE BELOW 1E5F;AL # LATIN SMALL LETTER R WITH LINE BELOW 1E60;AL # LATIN CAPITAL LETTER S WITH DOT ABOVE 1E61;AL # LATIN SMALL LETTER S WITH DOT ABOVE 1E62;AL # LATIN CAPITAL LETTER S WITH DOT BELOW 1E63;AL # LATIN SMALL LETTER S WITH DOT BELOW 1E64;AL # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE 1E65;AL # LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE 1E66;AL # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE 1E67;AL # LATIN SMALL LETTER S WITH CARON AND DOT ABOVE 1E68;AL # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE 1E69;AL # LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE 1E6A;AL # LATIN CAPITAL LETTER T WITH DOT ABOVE 1E6B;AL # LATIN SMALL LETTER T WITH DOT ABOVE 1E6C;AL # LATIN CAPITAL LETTER T WITH DOT BELOW 1E6D;AL # LATIN SMALL LETTER T WITH DOT BELOW 1E6E;AL # LATIN CAPITAL LETTER T WITH LINE BELOW 1E6F;AL # LATIN SMALL LETTER T WITH LINE BELOW 1E70;AL # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW 1E71;AL # LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW 1E72;AL # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW 1E73;AL # LATIN SMALL LETTER U WITH DIAERESIS BELOW 1E74;AL # LATIN CAPITAL LETTER U WITH TILDE BELOW 1E75;AL # LATIN SMALL LETTER U WITH TILDE BELOW 1E76;AL # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW 1E77;AL # LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW 1E78;AL # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE 1E79;AL # LATIN SMALL LETTER U WITH TILDE AND ACUTE 1E7A;AL # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS 1E7B;AL # LATIN SMALL LETTER U WITH MACRON AND DIAERESIS 1E7C;AL # LATIN CAPITAL LETTER V WITH TILDE 1E7D;AL # LATIN SMALL LETTER V WITH TILDE 1E7E;AL # LATIN CAPITAL LETTER V WITH DOT BELOW 1E7F;AL # LATIN SMALL LETTER V WITH DOT BELOW 1E80;AL # LATIN CAPITAL LETTER W WITH GRAVE 1E81;AL # LATIN SMALL LETTER W WITH GRAVE 1E82;AL # LATIN CAPITAL LETTER W WITH ACUTE 1E83;AL # LATIN SMALL LETTER W WITH ACUTE 1E84;AL # LATIN CAPITAL LETTER W WITH DIAERESIS 1E85;AL # LATIN SMALL LETTER W WITH DIAERESIS 1E86;AL # LATIN CAPITAL LETTER W WITH DOT ABOVE 1E87;AL # LATIN SMALL LETTER W WITH DOT ABOVE 1E88;AL # LATIN CAPITAL LETTER W WITH DOT BELOW 1E89;AL # LATIN SMALL LETTER W WITH DOT BELOW 1E8A;AL # LATIN CAPITAL LETTER X WITH DOT ABOVE 1E8B;AL # LATIN SMALL LETTER X WITH DOT ABOVE 1E8C;AL # LATIN CAPITAL LETTER X WITH DIAERESIS 1E8D;AL # LATIN SMALL LETTER X WITH DIAERESIS 1E8E;AL # LATIN CAPITAL LETTER Y WITH DOT ABOVE 1E8F;AL # LATIN SMALL LETTER Y WITH DOT ABOVE 1E90;AL # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX 1E91;AL # LATIN SMALL LETTER Z WITH CIRCUMFLEX 1E92;AL # LATIN CAPITAL LETTER Z WITH DOT BELOW 1E93;AL # LATIN SMALL LETTER Z WITH DOT BELOW 1E94;AL # LATIN CAPITAL LETTER Z WITH LINE BELOW 1E95;AL # LATIN SMALL LETTER Z WITH LINE BELOW 1E96;AL # LATIN SMALL LETTER H WITH LINE BELOW 1E97;AL # LATIN SMALL LETTER T WITH DIAERESIS 1E98;AL # LATIN SMALL LETTER W WITH RING ABOVE 1E99;AL # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A;AL # LATIN SMALL LETTER A WITH RIGHT HALF RING 1E9B;AL # LATIN SMALL LETTER LONG S WITH DOT ABOVE 1EA0;AL # LATIN CAPITAL LETTER A WITH DOT BELOW 1EA1;AL # LATIN SMALL LETTER A WITH DOT BELOW 1EA2;AL # LATIN CAPITAL LETTER A WITH HOOK ABOVE 1EA3;AL # LATIN SMALL LETTER A WITH HOOK ABOVE 1EA4;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 1EA5;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE 1EA6;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 1EA7;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE 1EA8;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 1EA9;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 1EAA;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 1EAB;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE 1EAC;AL # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 1EAD;AL # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW 1EAE;AL # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 1EAF;AL # LATIN SMALL LETTER A WITH BREVE AND ACUTE 1EB0;AL # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 1EB1;AL # LATIN SMALL LETTER A WITH BREVE AND GRAVE 1EB2;AL # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 1EB3;AL # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE 1EB4;AL # LATIN CAPITAL LETTER A WITH BREVE AND TILDE 1EB5;AL # LATIN SMALL LETTER A WITH BREVE AND TILDE 1EB6;AL # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 1EB7;AL # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW 1EB8;AL # LATIN CAPITAL LETTER E WITH DOT BELOW 1EB9;AL # LATIN SMALL LETTER E WITH DOT BELOW 1EBA;AL # LATIN CAPITAL LETTER E WITH HOOK ABOVE 1EBB;AL # LATIN SMALL LETTER E WITH HOOK ABOVE 1EBC;AL # LATIN CAPITAL LETTER E WITH TILDE 1EBD;AL # LATIN SMALL LETTER E WITH TILDE 1EBE;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 1EBF;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE 1EC0;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 1EC1;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE 1EC2;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 1EC3;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 1EC4;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 1EC5;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE 1EC6;AL # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 1EC7;AL # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW 1EC8;AL # LATIN CAPITAL LETTER I WITH HOOK ABOVE 1EC9;AL # LATIN SMALL LETTER I WITH HOOK ABOVE 1ECA;AL # LATIN CAPITAL LETTER I WITH DOT BELOW 1ECB;AL # LATIN SMALL LETTER I WITH DOT BELOW 1ECC;AL # LATIN CAPITAL LETTER O WITH DOT BELOW 1ECD;AL # LATIN SMALL LETTER O WITH DOT BELOW 1ECE;AL # LATIN CAPITAL LETTER O WITH HOOK ABOVE 1ECF;AL # LATIN SMALL LETTER O WITH HOOK ABOVE 1ED0;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 1ED1;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE 1ED2;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 1ED3;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE 1ED4;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 1ED5;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 1ED6;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 1ED7;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE 1ED8;AL # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 1ED9;AL # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW 1EDA;AL # LATIN CAPITAL LETTER O WITH HORN AND ACUTE 1EDB;AL # LATIN SMALL LETTER O WITH HORN AND ACUTE 1EDC;AL # LATIN CAPITAL LETTER O WITH HORN AND GRAVE 1EDD;AL # LATIN SMALL LETTER O WITH HORN AND GRAVE 1EDE;AL # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 1EDF;AL # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE 1EE0;AL # LATIN CAPITAL LETTER O WITH HORN AND TILDE 1EE1;AL # LATIN SMALL LETTER O WITH HORN AND TILDE 1EE2;AL # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 1EE3;AL # LATIN SMALL LETTER O WITH HORN AND DOT BELOW 1EE4;AL # LATIN CAPITAL LETTER U WITH DOT BELOW 1EE5;AL # LATIN SMALL LETTER U WITH DOT BELOW 1EE6;AL # LATIN CAPITAL LETTER U WITH HOOK ABOVE 1EE7;AL # LATIN SMALL LETTER U WITH HOOK ABOVE 1EE8;AL # LATIN CAPITAL LETTER U WITH HORN AND ACUTE 1EE9;AL # LATIN SMALL LETTER U WITH HORN AND ACUTE 1EEA;AL # LATIN CAPITAL LETTER U WITH HORN AND GRAVE 1EEB;AL # LATIN SMALL LETTER U WITH HORN AND GRAVE 1EEC;AL # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE 1EED;AL # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE 1EEE;AL # LATIN CAPITAL LETTER U WITH HORN AND TILDE 1EEF;AL # LATIN SMALL LETTER U WITH HORN AND TILDE 1EF0;AL # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW 1EF1;AL # LATIN SMALL LETTER U WITH HORN AND DOT BELOW 1EF2;AL # LATIN CAPITAL LETTER Y WITH GRAVE 1EF3;AL # LATIN SMALL LETTER Y WITH GRAVE 1EF4;AL # LATIN CAPITAL LETTER Y WITH DOT BELOW 1EF5;AL # LATIN SMALL LETTER Y WITH DOT BELOW 1EF6;AL # LATIN CAPITAL LETTER Y WITH HOOK ABOVE 1EF7;AL # LATIN SMALL LETTER Y WITH HOOK ABOVE 1EF8;AL # LATIN CAPITAL LETTER Y WITH TILDE 1EF9;AL # LATIN SMALL LETTER Y WITH TILDE 1F00;AL # GREEK SMALL LETTER ALPHA WITH PSILI 1F01;AL # GREEK SMALL LETTER ALPHA WITH DASIA 1F02;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA 1F03;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA 1F04;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA 1F05;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA 1F06;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI 1F07;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI 1F08;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI 1F09;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA 1F0A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA 1F0B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA 1F0C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA 1F0D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA 1F0E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI 1F0F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 1F10;AL # GREEK SMALL LETTER EPSILON WITH PSILI 1F11;AL # GREEK SMALL LETTER EPSILON WITH DASIA 1F12;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA 1F13;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA 1F14;AL # GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA 1F15;AL # GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA 1F18;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI 1F19;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA 1F1A;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA 1F1B;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA 1F1C;AL # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA 1F1D;AL # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA 1F20;AL # GREEK SMALL LETTER ETA WITH PSILI 1F21;AL # GREEK SMALL LETTER ETA WITH DASIA 1F22;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA 1F23;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA 1F24;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA 1F25;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA 1F26;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI 1F27;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI 1F28;AL # GREEK CAPITAL LETTER ETA WITH PSILI 1F29;AL # GREEK CAPITAL LETTER ETA WITH DASIA 1F2A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA 1F2B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA 1F2C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA 1F2D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 1F2E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 1F2F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI 1F30;AL # GREEK SMALL LETTER IOTA WITH PSILI 1F31;AL # GREEK SMALL LETTER IOTA WITH DASIA 1F32;AL # GREEK SMALL LETTER IOTA WITH PSILI AND VARIA 1F33;AL # GREEK SMALL LETTER IOTA WITH DASIA AND VARIA 1F34;AL # GREEK SMALL LETTER IOTA WITH PSILI AND OXIA 1F35;AL # GREEK SMALL LETTER IOTA WITH DASIA AND OXIA 1F36;AL # GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI 1F37;AL # GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI 1F38;AL # GREEK CAPITAL LETTER IOTA WITH PSILI 1F39;AL # GREEK CAPITAL LETTER IOTA WITH DASIA 1F3A;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA 1F3B;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA 1F3C;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA 1F3D;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 1F3E;AL # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 1F3F;AL # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI 1F40;AL # GREEK SMALL LETTER OMICRON WITH PSILI 1F41;AL # GREEK SMALL LETTER OMICRON WITH DASIA 1F42;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA 1F43;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA 1F44;AL # GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA 1F45;AL # GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA 1F48;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI 1F49;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA 1F4A;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA 1F4B;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA 1F4C;AL # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA 1F4D;AL # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA 1F50;AL # GREEK SMALL LETTER UPSILON WITH PSILI 1F51;AL # GREEK SMALL LETTER UPSILON WITH DASIA 1F52;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 1F53;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA 1F54;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 1F55;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA 1F56;AL # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 1F57;AL # GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI 1F59;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA 1F5B;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA 1F5D;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 1F5F;AL # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI 1F60;AL # GREEK SMALL LETTER OMEGA WITH PSILI 1F61;AL # GREEK SMALL LETTER OMEGA WITH DASIA 1F62;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA 1F63;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA 1F64;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA 1F65;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA 1F66;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI 1F67;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI 1F68;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI 1F69;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA 1F6A;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA 1F6B;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA 1F6C;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA 1F6D;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 1F6E;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 1F6F;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI 1F70;AL # GREEK SMALL LETTER ALPHA WITH VARIA 1F71;AL # GREEK SMALL LETTER ALPHA WITH OXIA 1F72;AL # GREEK SMALL LETTER EPSILON WITH VARIA 1F73;AL # GREEK SMALL LETTER EPSILON WITH OXIA 1F74;AL # GREEK SMALL LETTER ETA WITH VARIA 1F75;AL # GREEK SMALL LETTER ETA WITH OXIA 1F76;AL # GREEK SMALL LETTER IOTA WITH VARIA 1F77;AL # GREEK SMALL LETTER IOTA WITH OXIA 1F78;AL # GREEK SMALL LETTER OMICRON WITH VARIA 1F79;AL # GREEK SMALL LETTER OMICRON WITH OXIA 1F7A;AL # GREEK SMALL LETTER UPSILON WITH VARIA 1F7B;AL # GREEK SMALL LETTER UPSILON WITH OXIA 1F7C;AL # GREEK SMALL LETTER OMEGA WITH VARIA 1F7D;AL # GREEK SMALL LETTER OMEGA WITH OXIA 1F80;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 1F81;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 1F82;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F83;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F84;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F85;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F86;AL # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F87;AL # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F88;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F89;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F8A;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8B;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8C;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8D;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8E;AL # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8F;AL # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F90;AL # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 1F91;AL # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 1F92;AL # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F93;AL # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F94;AL # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F95;AL # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F96;AL # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F97;AL # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F98;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F99;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F9A;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9B;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9C;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9D;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9E;AL # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9F;AL # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FA0;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 1FA1;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 1FA2;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1FA3;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1FA4;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1FA5;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1FA6;AL # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1FA7;AL # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1FA8;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA9;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FAA;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAB;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAC;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAD;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAE;AL # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAF;AL # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FB0;AL # GREEK SMALL LETTER ALPHA WITH VRACHY 1FB1;AL # GREEK SMALL LETTER ALPHA WITH MACRON 1FB2;AL # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB3;AL # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 1FB4;AL # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FB6;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI 1FB7;AL # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 1FB8;AL # GREEK CAPITAL LETTER ALPHA WITH VRACHY 1FB9;AL # GREEK CAPITAL LETTER ALPHA WITH MACRON 1FBA;AL # GREEK CAPITAL LETTER ALPHA WITH VARIA 1FBB;AL # GREEK CAPITAL LETTER ALPHA WITH OXIA 1FBC;AL # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBD;AL # GREEK KORONIS 1FBE;AL # GREEK PROSGEGRAMMENI 1FBF;AL # GREEK PSILI 1FC0;AL # GREEK PERISPOMENI 1FC1;AL # GREEK DIALYTIKA AND PERISPOMENI 1FC2;AL # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 1FC3;AL # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 1FC4;AL # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 1FC6;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI 1FC7;AL # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 1FC8;AL # GREEK CAPITAL LETTER EPSILON WITH VARIA 1FC9;AL # GREEK CAPITAL LETTER EPSILON WITH OXIA 1FCA;AL # GREEK CAPITAL LETTER ETA WITH VARIA 1FCB;AL # GREEK CAPITAL LETTER ETA WITH OXIA 1FCC;AL # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FCD;AL # GREEK PSILI AND VARIA 1FCE;AL # GREEK PSILI AND OXIA 1FCF;AL # GREEK PSILI AND PERISPOMENI 1FD0;AL # GREEK SMALL LETTER IOTA WITH VRACHY 1FD1;AL # GREEK SMALL LETTER IOTA WITH MACRON 1FD2;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 1FD3;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 1FD6;AL # GREEK SMALL LETTER IOTA WITH PERISPOMENI 1FD7;AL # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 1FD8;AL # GREEK CAPITAL LETTER IOTA WITH VRACHY 1FD9;AL # GREEK CAPITAL LETTER IOTA WITH MACRON 1FDA;AL # GREEK CAPITAL LETTER IOTA WITH VARIA 1FDB;AL # GREEK CAPITAL LETTER IOTA WITH OXIA 1FDD;AL # GREEK DASIA AND VARIA 1FDE;AL # GREEK DASIA AND OXIA 1FDF;AL # GREEK DASIA AND PERISPOMENI 1FE0;AL # GREEK SMALL LETTER UPSILON WITH VRACHY 1FE1;AL # GREEK SMALL LETTER UPSILON WITH MACRON 1FE2;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 1FE3;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 1FE4;AL # GREEK SMALL LETTER RHO WITH PSILI 1FE5;AL # GREEK SMALL LETTER RHO WITH DASIA 1FE6;AL # GREEK SMALL LETTER UPSILON WITH PERISPOMENI 1FE7;AL # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 1FE8;AL # GREEK CAPITAL LETTER UPSILON WITH VRACHY 1FE9;AL # GREEK CAPITAL LETTER UPSILON WITH MACRON 1FEA;AL # GREEK CAPITAL LETTER UPSILON WITH VARIA 1FEB;AL # GREEK CAPITAL LETTER UPSILON WITH OXIA 1FEC;AL # GREEK CAPITAL LETTER RHO WITH DASIA 1FED;AL # GREEK DIALYTIKA AND VARIA 1FEE;AL # GREEK DIALYTIKA AND OXIA 1FEF;AL # GREEK VARIA 1FF2;AL # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 1FF3;AL # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FF4;AL # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 1FF6;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI 1FF7;AL # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF8;AL # GREEK CAPITAL LETTER OMICRON WITH VARIA 1FF9;AL # GREEK CAPITAL LETTER OMICRON WITH OXIA 1FFA;AL # GREEK CAPITAL LETTER OMEGA WITH VARIA 1FFB;AL # GREEK CAPITAL LETTER OMEGA WITH OXIA 1FFC;AL # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 1FFD;AL # GREEK OXIA 1FFE;AL # GREEK DASIA 2000;BA # EN QUAD 2001;BA # EM QUAD 2002;BA # EN SPACE 2003;BA # EM SPACE 2004;BA # THREE-PER-EM SPACE 2005;BA # FOUR-PER-EM SPACE 2006;BA # SIX-PER-EM SPACE 2007;GL # FIGURE SPACE 2008;BA # PUNCTUATION SPACE 2009;BA # THIN SPACE 200A;BA # HAIR SPACE 200B;ZW # ZERO WIDTH SPACE 200C;CM # ZERO WIDTH NON-JOINER 200D;CM # ZERO WIDTH JOINER 200E;CM # LEFT-TO-RIGHT MARK 200F;CM # RIGHT-TO-LEFT MARK 2010;BA # HYPHEN 2011;GL # NON-BREAKING HYPHEN 2012;BA # FIGURE DASH 2013;BA # EN DASH 2014;B2 # EM DASH 2015;AI # HORIZONTAL BAR 2016;AI # DOUBLE VERTICAL LINE 2017;AL # DOUBLE LOW LINE 2018;QU # LEFT SINGLE QUOTATION MARK 2019;QU # RIGHT SINGLE QUOTATION MARK 201A;OP # SINGLE LOW-9 QUOTATION MARK 201B;QU # SINGLE HIGH-REVERSED-9 QUOTATION MARK 201C;QU # LEFT DOUBLE QUOTATION MARK 201D;QU # RIGHT DOUBLE QUOTATION MARK 201E;OP # DOUBLE LOW-9 QUOTATION MARK 201F;QU # DOUBLE HIGH-REVERSED-9 QUOTATION MARK 2020;AI # DAGGER 2021;AI # DOUBLE DAGGER 2022;AL # BULLET 2023;AL # TRIANGULAR BULLET 2024;IN # ONE DOT LEADER 2025;IN # TWO DOT LEADER 2026;IN # HORIZONTAL ELLIPSIS 2027;BA # HYPHENATION POINT 2028;BK # LINE SEPARATOR 2029;BK # PARAGRAPH SEPARATOR 202A;CM # LEFT-TO-RIGHT EMBEDDING 202B;CM # RIGHT-TO-LEFT EMBEDDING 202C;CM # POP DIRECTIONAL FORMATTING 202D;CM # LEFT-TO-RIGHT OVERRIDE 202E;CM # RIGHT-TO-LEFT OVERRIDE 202F;GL # NARROW NO-BREAK SPACE 2030;PO # PER MILLE SIGN 2031;PO # PER TEN THOUSAND SIGN 2032;PO # PRIME 2033;PO # DOUBLE PRIME 2034;PO # TRIPLE PRIME 2035;PO # REVERSED PRIME 2036;PO # REVERSED DOUBLE PRIME 2037;PO # REVERSED TRIPLE PRIME 2038;AL # CARET 2039;QU # SINGLE LEFT-POINTING ANGLE QUOTATION MARK 203A;QU # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 203B;AI # REFERENCE MARK 203C;NS # DOUBLE EXCLAMATION MARK 203D;AL # INTERROBANG 203E;AL # OVERLINE 203F;AL # UNDERTIE 2040;AL # CHARACTER TIE 2041;AL # CARET INSERTION POINT 2042;AL # ASTERISM 2043;AL # HYPHEN BULLET 2044;NS # FRACTION SLASH 2045;OP # LEFT SQUARE BRACKET WITH QUILL 2046;CL # RIGHT SQUARE BRACKET WITH QUILL 2047;AL # DOUBLE QUESTION MARK 2048;AL # QUESTION EXCLAMATION MARK 2049;AL # EXCLAMATION QUESTION MARK 204A;AL # TIRONIAN SIGN ET 204B;AL # REVERSED PILCROW SIGN 204C;AL # BLACK LEFTWARDS BULLET 204D;AL # BLACK RIGHTWARDS BULLET 204E;AL # LOW ASTERISK 204F;AL # REVERSED SEMICOLON 2050;AL # CLOSE UP 2051;AL # TWO ASTERISKS ALIGNED VERTICALLY 2052;AL # COMMERCIAL MINUS SIGN 2057;AL # QUADRUPLE PRIME 205F;BA # MEDIUM MATHEMATICAL SPACE 2060;GL # WORD JOINER 2061;AL # FUNCTION APPLICATION 2062;AL # INVISIBLE TIMES 2063;AL # INVISIBLE SEPARATOR 206A;CM # INHIBIT SYMMETRIC SWAPPING 206B;CM # ACTIVATE SYMMETRIC SWAPPING 206C;CM # INHIBIT ARABIC FORM SHAPING 206D;CM # ACTIVATE ARABIC FORM SHAPING 206E;CM # NATIONAL DIGIT SHAPES 206F;CM # NOMINAL DIGIT SHAPES 2070;AL # SUPERSCRIPT ZERO 2071;AL # SUPERSCRIPT LATIN SMALL LETTER I 2074;AI # SUPERSCRIPT FOUR 2075;AL # SUPERSCRIPT FIVE 2076;AL # SUPERSCRIPT SIX 2077;AL # SUPERSCRIPT SEVEN 2078;AL # SUPERSCRIPT EIGHT 2079;AL # SUPERSCRIPT NINE 207A;AL # SUPERSCRIPT PLUS SIGN 207B;AL # SUPERSCRIPT MINUS 207C;AL # SUPERSCRIPT EQUALS SIGN 207D;OP # SUPERSCRIPT LEFT PARENTHESIS 207E;CL # SUPERSCRIPT RIGHT PARENTHESIS 207F;AI # SUPERSCRIPT LATIN SMALL LETTER N 2080;AL # SUBSCRIPT ZERO 2081;AI # SUBSCRIPT ONE 2082;AI # SUBSCRIPT TWO 2083;AI # SUBSCRIPT THREE 2084;AI # SUBSCRIPT FOUR 2085;AL # SUBSCRIPT FIVE 2086;AL # SUBSCRIPT SIX 2087;AL # SUBSCRIPT SEVEN 2088;AL # SUBSCRIPT EIGHT 2089;AL # SUBSCRIPT NINE 208A;AL # SUBSCRIPT PLUS SIGN 208B;AL # SUBSCRIPT MINUS 208C;AL # SUBSCRIPT EQUALS SIGN 208D;OP # SUBSCRIPT LEFT PARENTHESIS 208E;CL # SUBSCRIPT RIGHT PARENTHESIS 20A0;PR # EURO-CURRENCY SIGN 20A1;PR # COLON SIGN 20A2;PR # CRUZEIRO SIGN 20A3;PR # FRENCH FRANC SIGN 20A4;PR # LIRA SIGN 20A5;PR # MILL SIGN 20A6;PR # NAIRA SIGN 20A7;PO # PESETA SIGN 20A8;PR # RUPEE SIGN 20A9;PR # WON SIGN 20AA;PR # NEW SHEQEL SIGN 20AB;PR # DONG SIGN 20AC;PR # EURO SIGN 20AD;PR # KIP SIGN 20AE;PR # TUGRIK SIGN 20AF;PR # DRACHMA SIGN 20B0;PR # GERMAN PENNY SIGN 20B1;PR # PESO SIGN 20D0;CM # COMBINING LEFT HARPOON ABOVE 20D1;CM # COMBINING RIGHT HARPOON ABOVE 20D2;CM # COMBINING LONG VERTICAL LINE OVERLAY 20D3;CM # COMBINING SHORT VERTICAL LINE OVERLAY 20D4;CM # COMBINING ANTICLOCKWISE ARROW ABOVE 20D5;CM # COMBINING CLOCKWISE ARROW ABOVE 20D6;CM # COMBINING LEFT ARROW ABOVE 20D7;CM # COMBINING RIGHT ARROW ABOVE 20D8;CM # COMBINING RING OVERLAY 20D9;CM # COMBINING CLOCKWISE RING OVERLAY 20DA;CM # COMBINING ANTICLOCKWISE RING OVERLAY 20DB;CM # COMBINING THREE DOTS ABOVE 20DC;CM # COMBINING FOUR DOTS ABOVE 20DD;CM # COMBINING ENCLOSING CIRCLE 20DE;CM # COMBINING ENCLOSING SQUARE 20DF;CM # COMBINING ENCLOSING DIAMOND 20E0;CM # COMBINING ENCLOSING CIRCLE BACKSLASH 20E1;CM # COMBINING LEFT RIGHT ARROW ABOVE 20E2;CM # COMBINING ENCLOSING SCREEN 20E3;CM # COMBINING ENCLOSING KEYCAP 20E4;CM # COMBINING ENCLOSING UPWARD POINTING TRIANGLE 20E5;CM # COMBINING REVERSE SOLIDUS OVERLAY 20E6;CM # COMBINING DOUBLE VERTICAL STROKE OVERLAY 20E7;CM # COMBINING ANNUITY SYMBOL 20E8;CM # COMBINING TRIPLE UNDERDOT 20E9;CM # COMBINING WIDE BRIDGE ABOVE 20EA;CM # COMBINING LEFTWARDS ARROW OVERLAY 2100;AL # ACCOUNT OF 2101;AL # ADDRESSED TO THE SUBJECT 2102;AL # DOUBLE-STRUCK CAPITAL C 2103;PO # DEGREE CELSIUS 2104;AL # CENTRE LINE SYMBOL 2105;AI # CARE OF 2106;AL # CADA UNA 2107;AL # EULER CONSTANT 2108;AL # SCRUPLE 2109;PO # DEGREE FAHRENHEIT 210A;AL # SCRIPT SMALL G 210B;AL # SCRIPT CAPITAL H 210C;AL # BLACK-LETTER CAPITAL H 210D;AL # DOUBLE-STRUCK CAPITAL H 210E;AL # PLANCK CONSTANT 210F;AL # PLANCK CONSTANT OVER TWO PI 2110;AL # SCRIPT CAPITAL I 2111;AL # BLACK-LETTER CAPITAL I 2112;AL # SCRIPT CAPITAL L 2113;AI # SCRIPT SMALL L 2114;AL # L B BAR SYMBOL 2115;AL # DOUBLE-STRUCK CAPITAL N 2116;PR # NUMERO SIGN 2117;AL # SOUND RECORDING COPYRIGHT 2118;AL # SCRIPT CAPITAL P 2119;AL # DOUBLE-STRUCK CAPITAL P 211A;AL # DOUBLE-STRUCK CAPITAL Q 211B;AL # SCRIPT CAPITAL R 211C;AL # BLACK-LETTER CAPITAL R 211D;AL # DOUBLE-STRUCK CAPITAL R 211E;AL # PRESCRIPTION TAKE 211F;AL # RESPONSE 2120;AL # SERVICE MARK 2121;AI # TELEPHONE SIGN 2122;AI # TRADE MARK SIGN 2123;AL # VERSICLE 2124;AL # DOUBLE-STRUCK CAPITAL Z 2125;AL # OUNCE SIGN 2126;PO # OHM SIGN 2127;AL # INVERTED OHM SIGN 2128;AL # BLACK-LETTER CAPITAL Z 2129;AL # TURNED GREEK SMALL LETTER IOTA 212A;AL # KELVIN SIGN 212B;AI # ANGSTROM SIGN 212C;AL # SCRIPT CAPITAL B 212D;AL # BLACK-LETTER CAPITAL C 212E;AL # ESTIMATED SYMBOL 212F;AL # SCRIPT SMALL E 2130;AL # SCRIPT CAPITAL E 2131;AL # SCRIPT CAPITAL F 2132;AL # TURNED CAPITAL F 2133;AL # SCRIPT CAPITAL M 2134;AL # SCRIPT SMALL O 2135;AL # ALEF SYMBOL 2136;AL # BET SYMBOL 2137;AL # GIMEL SYMBOL 2138;AL # DALET SYMBOL 2139;AL # INFORMATION SOURCE 213A;AL # ROTATED CAPITAL Q 213D;AL # DOUBLE-STRUCK SMALL GAMMA 213E;AL # DOUBLE-STRUCK CAPITAL GAMMA 213F;AL # DOUBLE-STRUCK CAPITAL PI 2140;AI # DOUBLE-STRUCK N-ARY SUMMATION 2141;AL # TURNED SANS-SERIF CAPITAL G 2142;AL # TURNED SANS-SERIF CAPITAL L 2143;AL # REVERSED SANS-SERIF CAPITAL L 2144;AL # TURNED SANS-SERIF CAPITAL Y 2145;AL # DOUBLE-STRUCK ITALIC CAPITAL D 2146;AL # DOUBLE-STRUCK ITALIC SMALL D 2147;AL # DOUBLE-STRUCK ITALIC SMALL E 2148;AL # DOUBLE-STRUCK ITALIC SMALL I 2149;AL # DOUBLE-STRUCK ITALIC SMALL J 214A;AL # PROPERTY LINE 214B;AL # TURNED AMPERSAND 2153;AL # VULGAR FRACTION ONE THIRD 2154;AI # VULGAR FRACTION TWO THIRDS 2155;AI # VULGAR FRACTION ONE FIFTH 2156;AL # VULGAR FRACTION TWO FIFTHS 2157;AL # VULGAR FRACTION THREE FIFTHS 2158;AL # VULGAR FRACTION FOUR FIFTHS 2159;AL # VULGAR FRACTION ONE SIXTH 215A;AL # VULGAR FRACTION FIVE SIXTHS 215B;AI # VULGAR FRACTION ONE EIGHTH 215C;AL # VULGAR FRACTION THREE EIGHTHS 215D;AL # VULGAR FRACTION FIVE EIGHTHS 215E;AI # VULGAR FRACTION SEVEN EIGHTHS 215F;AL # FRACTION NUMERATOR ONE 2160;AI # ROMAN NUMERAL ONE 2161;AI # ROMAN NUMERAL TWO 2162;AI # ROMAN NUMERAL THREE 2163;AI # ROMAN NUMERAL FOUR 2164;AI # ROMAN NUMERAL FIVE 2165;AI # ROMAN NUMERAL SIX 2166;AI # ROMAN NUMERAL SEVEN 2167;AI # ROMAN NUMERAL EIGHT 2168;AI # ROMAN NUMERAL NINE 2169;AI # ROMAN NUMERAL TEN 216A;AI # ROMAN NUMERAL ELEVEN 216B;AI # ROMAN NUMERAL TWELVE 216C;AL # ROMAN NUMERAL FIFTY 216D;AL # ROMAN NUMERAL ONE HUNDRED 216E;AL # ROMAN NUMERAL FIVE HUNDRED 216F;AL # ROMAN NUMERAL ONE THOUSAND 2170;AI # SMALL ROMAN NUMERAL ONE 2171;AI # SMALL ROMAN NUMERAL TWO 2172;AI # SMALL ROMAN NUMERAL THREE 2173;AI # SMALL ROMAN NUMERAL FOUR 2174;AI # SMALL ROMAN NUMERAL FIVE 2175;AI # SMALL ROMAN NUMERAL SIX 2176;AI # SMALL ROMAN NUMERAL SEVEN 2177;AI # SMALL ROMAN NUMERAL EIGHT 2178;AI # SMALL ROMAN NUMERAL NINE 2179;AI # SMALL ROMAN NUMERAL TEN 217A;AL # SMALL ROMAN NUMERAL ELEVEN 217B;AL # SMALL ROMAN NUMERAL TWELVE 217C;AL # SMALL ROMAN NUMERAL FIFTY 217D;AL # SMALL ROMAN NUMERAL ONE HUNDRED 217E;AL # SMALL ROMAN NUMERAL FIVE HUNDRED 217F;AL # SMALL ROMAN NUMERAL ONE THOUSAND 2180;AL # ROMAN NUMERAL ONE THOUSAND C D 2181;AL # ROMAN NUMERAL FIVE THOUSAND 2182;AL # ROMAN NUMERAL TEN THOUSAND 2183;AL # ROMAN NUMERAL REVERSED ONE HUNDRED 2190;AI # LEFTWARDS ARROW 2191;AI # UPWARDS ARROW 2192;AI # RIGHTWARDS ARROW 2193;AI # DOWNWARDS ARROW 2194;AI # LEFT RIGHT ARROW 2195;AI # UP DOWN ARROW 2196;AI # NORTH WEST ARROW 2197;AI # NORTH EAST ARROW 2198;AI # SOUTH EAST ARROW 2199;AI # SOUTH WEST ARROW 219A;AL # LEFTWARDS ARROW WITH STROKE 219B;AL # RIGHTWARDS ARROW WITH STROKE 219C;AL # LEFTWARDS WAVE ARROW 219D;AL # RIGHTWARDS WAVE ARROW 219E;AL # LEFTWARDS TWO HEADED ARROW 219F;AL # UPWARDS TWO HEADED ARROW 21A0;AL # RIGHTWARDS TWO HEADED ARROW 21A1;AL # DOWNWARDS TWO HEADED ARROW 21A2;AL # LEFTWARDS ARROW WITH TAIL 21A3;AL # RIGHTWARDS ARROW WITH TAIL 21A4;AL # LEFTWARDS ARROW FROM BAR 21A5;AL # UPWARDS ARROW FROM BAR 21A6;AL # RIGHTWARDS ARROW FROM BAR 21A7;AL # DOWNWARDS ARROW FROM BAR 21A8;AL # UP DOWN ARROW WITH BASE 21A9;AL # LEFTWARDS ARROW WITH HOOK 21AA;AL # RIGHTWARDS ARROW WITH HOOK 21AB;AL # LEFTWARDS ARROW WITH LOOP 21AC;AL # RIGHTWARDS ARROW WITH LOOP 21AD;AL # LEFT RIGHT WAVE ARROW 21AE;AL # LEFT RIGHT ARROW WITH STROKE 21AF;AL # DOWNWARDS ZIGZAG ARROW 21B0;AL # UPWARDS ARROW WITH TIP LEFTWARDS 21B1;AL # UPWARDS ARROW WITH TIP RIGHTWARDS 21B2;AL # DOWNWARDS ARROW WITH TIP LEFTWARDS 21B3;AL # DOWNWARDS ARROW WITH TIP RIGHTWARDS 21B4;AL # RIGHTWARDS ARROW WITH CORNER DOWNWARDS 21B5;AL # DOWNWARDS ARROW WITH CORNER LEFTWARDS 21B6;AL # ANTICLOCKWISE TOP SEMICIRCLE ARROW 21B7;AL # CLOCKWISE TOP SEMICIRCLE ARROW 21B8;AL # NORTH WEST ARROW TO LONG BAR 21B9;AL # LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR 21BA;AL # ANTICLOCKWISE OPEN CIRCLE ARROW 21BB;AL # CLOCKWISE OPEN CIRCLE ARROW 21BC;AL # LEFTWARDS HARPOON WITH BARB UPWARDS 21BD;AL # LEFTWARDS HARPOON WITH BARB DOWNWARDS 21BE;AL # UPWARDS HARPOON WITH BARB RIGHTWARDS 21BF;AL # UPWARDS HARPOON WITH BARB LEFTWARDS 21C0;AL # RIGHTWARDS HARPOON WITH BARB UPWARDS 21C1;AL # RIGHTWARDS HARPOON WITH BARB DOWNWARDS 21C2;AL # DOWNWARDS HARPOON WITH BARB RIGHTWARDS 21C3;AL # DOWNWARDS HARPOON WITH BARB LEFTWARDS 21C4;AL # RIGHTWARDS ARROW OVER LEFTWARDS ARROW 21C5;AL # UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW 21C6;AL # LEFTWARDS ARROW OVER RIGHTWARDS ARROW 21C7;AL # LEFTWARDS PAIRED ARROWS 21C8;AL # UPWARDS PAIRED ARROWS 21C9;AL # RIGHTWARDS PAIRED ARROWS 21CA;AL # DOWNWARDS PAIRED ARROWS 21CB;AL # LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON 21CC;AL # RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON 21CD;AL # LEFTWARDS DOUBLE ARROW WITH STROKE 21CE;AL # LEFT RIGHT DOUBLE ARROW WITH STROKE 21CF;AL # RIGHTWARDS DOUBLE ARROW WITH STROKE 21D0;AL # LEFTWARDS DOUBLE ARROW 21D1;AL # UPWARDS DOUBLE ARROW 21D2;AI # RIGHTWARDS DOUBLE ARROW 21D3;AL # DOWNWARDS DOUBLE ARROW 21D4;AI # LEFT RIGHT DOUBLE ARROW 21D5;AL # UP DOWN DOUBLE ARROW 21D6;AL # NORTH WEST DOUBLE ARROW 21D7;AL # NORTH EAST DOUBLE ARROW 21D8;AL # SOUTH EAST DOUBLE ARROW 21D9;AL # SOUTH WEST DOUBLE ARROW 21DA;AL # LEFTWARDS TRIPLE ARROW 21DB;AL # RIGHTWARDS TRIPLE ARROW 21DC;AL # LEFTWARDS SQUIGGLE ARROW 21DD;AL # RIGHTWARDS SQUIGGLE ARROW 21DE;AL # UPWARDS ARROW WITH DOUBLE STROKE 21DF;AL # DOWNWARDS ARROW WITH DOUBLE STROKE 21E0;AL # LEFTWARDS DASHED ARROW 21E1;AL # UPWARDS DASHED ARROW 21E2;AL # RIGHTWARDS DASHED ARROW 21E3;AL # DOWNWARDS DASHED ARROW 21E4;AL # LEFTWARDS ARROW TO BAR 21E5;AL # RIGHTWARDS ARROW TO BAR 21E6;AL # LEFTWARDS WHITE ARROW 21E7;AL # UPWARDS WHITE ARROW 21E8;AL # RIGHTWARDS WHITE ARROW 21E9;AL # DOWNWARDS WHITE ARROW 21EA;AL # UPWARDS WHITE ARROW FROM BAR 21EB;AL # UPWARDS WHITE ARROW ON PEDESTAL 21EC;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR 21ED;AL # UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR 21EE;AL # UPWARDS WHITE DOUBLE ARROW 21EF;AL # UPWARDS WHITE DOUBLE ARROW ON PEDESTAL 21F0;AL # RIGHTWARDS WHITE ARROW FROM WALL 21F1;AL # NORTH WEST ARROW TO CORNER 21F2;AL # SOUTH EAST ARROW TO CORNER 21F3;AL # UP DOWN WHITE ARROW 21F4;AL # RIGHT ARROW WITH SMALL CIRCLE 21F5;AL # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW 21F6;AL # THREE RIGHTWARDS ARROWS 21F7;AL # LEFTWARDS ARROW WITH VERTICAL STROKE 21F8;AL # RIGHTWARDS ARROW WITH VERTICAL STROKE 21F9;AL # LEFT RIGHT ARROW WITH VERTICAL STROKE 21FA;AL # LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE 21FB;AL # RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE 21FC;AL # LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE 21FD;AL # LEFTWARDS OPEN-HEADED ARROW 21FE;AL # RIGHTWARDS OPEN-HEADED ARROW 21FF;AL # LEFT RIGHT OPEN-HEADED ARROW 2200;AI # FOR ALL 2201;AL # COMPLEMENT 2202;AI # PARTIAL DIFFERENTIAL 2203;AI # THERE EXISTS 2204;AL # THERE DOES NOT EXIST 2205;AL # EMPTY SET 2206;AL # INCREMENT 2207;AI # NABLA 2208;AI # ELEMENT OF 2209;AL # NOT AN ELEMENT OF 220A;AL # SMALL ELEMENT OF 220B;AI # CONTAINS AS MEMBER 220C;AL # DOES NOT CONTAIN AS MEMBER 220D;AL # SMALL CONTAINS AS MEMBER 220E;AL # END OF PROOF 220F;AI # N-ARY PRODUCT 2210;AL # N-ARY COPRODUCT 2211;AI # N-ARY SUMMATION 2212;PR # MINUS SIGN 2213;PR # MINUS-OR-PLUS SIGN 2214;AL # DOT PLUS 2215;AI # DIVISION SLASH 2216;AL # SET MINUS 2217;AL # ASTERISK OPERATOR 2218;AL # RING OPERATOR 2219;AL # BULLET OPERATOR 221A;AI # SQUARE ROOT 221B;AL # CUBE ROOT 221C;AL # FOURTH ROOT 221D;AI # PROPORTIONAL TO 221E;AI # INFINITY 221F;AI # RIGHT ANGLE 2220;AI # ANGLE 2221;AL # MEASURED ANGLE 2222;AL # SPHERICAL ANGLE 2223;AI # DIVIDES 2224;AL # DOES NOT DIVIDE 2225;AI # PARALLEL TO 2226;AL # NOT PARALLEL TO 2227;AI # LOGICAL AND 2228;AI # LOGICAL OR 2229;AI # INTERSECTION 222A;AI # UNION 222B;AI # INTEGRAL 222C;AI # DOUBLE INTEGRAL 222D;AL # TRIPLE INTEGRAL 222E;AI # CONTOUR INTEGRAL 222F;AL # SURFACE INTEGRAL 2230;AL # VOLUME INTEGRAL 2231;AL # CLOCKWISE INTEGRAL 2232;AL # CLOCKWISE CONTOUR INTEGRAL 2233;AL # ANTICLOCKWISE CONTOUR INTEGRAL 2234;AI # THEREFORE 2235;AI # BECAUSE 2236;AI # RATIO 2237;AI # PROPORTION 2238;AL # DOT MINUS 2239;AL # EXCESS 223A;AL # GEOMETRIC PROPORTION 223B;AL # HOMOTHETIC 223C;AI # TILDE OPERATOR 223D;AI # REVERSED TILDE 223E;AL # INVERTED LAZY S 223F;AL # SINE WAVE 2240;AL # WREATH PRODUCT 2241;AL # NOT TILDE 2242;AL # MINUS TILDE 2243;AL # ASYMPTOTICALLY EQUAL TO 2244;AL # NOT ASYMPTOTICALLY EQUAL TO 2245;AL # APPROXIMATELY EQUAL TO 2246;AL # APPROXIMATELY BUT NOT ACTUALLY EQUAL TO 2247;AL # NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO 2248;AI # ALMOST EQUAL TO 2249;AL # NOT ALMOST EQUAL TO 224A;AL # ALMOST EQUAL OR EQUAL TO 224B;AL # TRIPLE TILDE 224C;AI # ALL EQUAL TO 224D;AL # EQUIVALENT TO 224E;AL # GEOMETRICALLY EQUIVALENT TO 224F;AL # DIFFERENCE BETWEEN 2250;AL # APPROACHES THE LIMIT 2251;AL # GEOMETRICALLY EQUAL TO 2252;AI # APPROXIMATELY EQUAL TO OR THE IMAGE OF 2253;AL # IMAGE OF OR APPROXIMATELY EQUAL TO 2254;AL # COLON EQUALS 2255;AL # EQUALS COLON 2256;AL # RING IN EQUAL TO 2257;AL # RING EQUAL TO 2258;AL # CORRESPONDS TO 2259;AL # ESTIMATES 225A;AL # EQUIANGULAR TO 225B;AL # STAR EQUALS 225C;AL # DELTA EQUAL TO 225D;AL # EQUAL TO BY DEFINITION 225E;AL # MEASURED BY 225F;AL # QUESTIONED EQUAL TO 2260;AI # NOT EQUAL TO 2261;AI # IDENTICAL TO 2262;AL # NOT IDENTICAL TO 2263;AL # STRICTLY EQUIVALENT TO 2264;AI # LESS-THAN OR EQUAL TO 2265;AI # GREATER-THAN OR EQUAL TO 2266;AI # LESS-THAN OVER EQUAL TO 2267;AI # GREATER-THAN OVER EQUAL TO 2268;AL # LESS-THAN BUT NOT EQUAL TO 2269;AL # GREATER-THAN BUT NOT EQUAL TO 226A;AI # MUCH LESS-THAN 226B;AI # MUCH GREATER-THAN 226C;AL # BETWEEN 226D;AL # NOT EQUIVALENT TO 226E;AI # NOT LESS-THAN 226F;AI # NOT GREATER-THAN 2270;AL # NEITHER LESS-THAN NOR EQUAL TO 2271;AL # NEITHER GREATER-THAN NOR EQUAL TO 2272;AL # LESS-THAN OR EQUIVALENT TO 2273;AL # GREATER-THAN OR EQUIVALENT TO 2274;AL # NEITHER LESS-THAN NOR EQUIVALENT TO 2275;AL # NEITHER GREATER-THAN NOR EQUIVALENT TO 2276;AL # LESS-THAN OR GREATER-THAN 2277;AL # GREATER-THAN OR LESS-THAN 2278;AL # NEITHER LESS-THAN NOR GREATER-THAN 2279;AL # NEITHER GREATER-THAN NOR LESS-THAN 227A;AL # PRECEDES 227B;AL # SUCCEEDS 227C;AL # PRECEDES OR EQUAL TO 227D;AL # SUCCEEDS OR EQUAL TO 227E;AL # PRECEDES OR EQUIVALENT TO 227F;AL # SUCCEEDS OR EQUIVALENT TO 2280;AL # DOES NOT PRECEDE 2281;AL # DOES NOT SUCCEED 2282;AI # SUBSET OF 2283;AI # SUPERSET OF 2284;AL # NOT A SUBSET OF 2285;AL # NOT A SUPERSET OF 2286;AI # SUBSET OF OR EQUAL TO 2287;AI # SUPERSET OF OR EQUAL TO 2288;AL # NEITHER A SUBSET OF NOR EQUAL TO 2289;AL # NEITHER A SUPERSET OF NOR EQUAL TO 228A;AL # SUBSET OF WITH NOT EQUAL TO 228B;AL # SUPERSET OF WITH NOT EQUAL TO 228C;AL # MULTISET 228D;AL # MULTISET MULTIPLICATION 228E;AL # MULTISET UNION 228F;AL # SQUARE IMAGE OF 2290;AL # SQUARE ORIGINAL OF 2291;AL # SQUARE IMAGE OF OR EQUAL TO 2292;AL # SQUARE ORIGINAL OF OR EQUAL TO 2293;AL # SQUARE CAP 2294;AL # SQUARE CUP 2295;AI # CIRCLED PLUS 2296;AL # CIRCLED MINUS 2297;AL # CIRCLED TIMES 2298;AL # CIRCLED DIVISION SLASH 2299;AI # CIRCLED DOT OPERATOR 229A;AL # CIRCLED RING OPERATOR 229B;AL # CIRCLED ASTERISK OPERATOR 229C;AL # CIRCLED EQUALS 229D;AL # CIRCLED DASH 229E;AL # SQUARED PLUS 229F;AL # SQUARED MINUS 22A0;AL # SQUARED TIMES 22A1;AL # SQUARED DOT OPERATOR 22A2;AL # RIGHT TACK 22A3;AL # LEFT TACK 22A4;AL # DOWN TACK 22A5;AI # UP TACK 22A6;AL # ASSERTION 22A7;AL # MODELS 22A8;AL # TRUE 22A9;AL # FORCES 22AA;AL # TRIPLE VERTICAL BAR RIGHT TURNSTILE 22AB;AL # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE 22AC;AL # DOES NOT PROVE 22AD;AL # NOT TRUE 22AE;AL # DOES NOT FORCE 22AF;AL # NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE 22B0;AL # PRECEDES UNDER RELATION 22B1;AL # SUCCEEDS UNDER RELATION 22B2;AL # NORMAL SUBGROUP OF 22B3;AL # CONTAINS AS NORMAL SUBGROUP 22B4;AL # NORMAL SUBGROUP OF OR EQUAL TO 22B5;AL # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO 22B6;AL # ORIGINAL OF 22B7;AL # IMAGE OF 22B8;AL # MULTIMAP 22B9;AL # HERMITIAN CONJUGATE MATRIX 22BA;AL # INTERCALATE 22BB;AL # XOR 22BC;AL # NAND 22BD;AL # NOR 22BE;AL # RIGHT ANGLE WITH ARC 22BF;AI # RIGHT TRIANGLE 22C0;AL # N-ARY LOGICAL AND 22C1;AL # N-ARY LOGICAL OR 22C2;AL # N-ARY INTERSECTION 22C3;AL # N-ARY UNION 22C4;AL # DIAMOND OPERATOR 22C5;AL # DOT OPERATOR 22C6;AL # STAR OPERATOR 22C7;AL # DIVISION TIMES 22C8;AL # BOWTIE 22C9;AL # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT 22CA;AL # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT 22CB;AL # LEFT SEMIDIRECT PRODUCT 22CC;AL # RIGHT SEMIDIRECT PRODUCT 22CD;AL # REVERSED TILDE EQUALS 22CE;AL # CURLY LOGICAL OR 22CF;AL # CURLY LOGICAL AND 22D0;AL # DOUBLE SUBSET 22D1;AL # DOUBLE SUPERSET 22D2;AL # DOUBLE INTERSECTION 22D3;AL # DOUBLE UNION 22D4;AL # PITCHFORK 22D5;AL # EQUAL AND PARALLEL TO 22D6;AL # LESS-THAN WITH DOT 22D7;AL # GREATER-THAN WITH DOT 22D8;AL # VERY MUCH LESS-THAN 22D9;AL # VERY MUCH GREATER-THAN 22DA;AL # LESS-THAN EQUAL TO OR GREATER-THAN 22DB;AL # GREATER-THAN EQUAL TO OR LESS-THAN 22DC;AL # EQUAL TO OR LESS-THAN 22DD;AL # EQUAL TO OR GREATER-THAN 22DE;AL # EQUAL TO OR PRECEDES 22DF;AL # EQUAL TO OR SUCCEEDS 22E0;AL # DOES NOT PRECEDE OR EQUAL 22E1;AL # DOES NOT SUCCEED OR EQUAL 22E2;AL # NOT SQUARE IMAGE OF OR EQUAL TO 22E3;AL # NOT SQUARE ORIGINAL OF OR EQUAL TO 22E4;AL # SQUARE IMAGE OF OR NOT EQUAL TO 22E5;AL # SQUARE ORIGINAL OF OR NOT EQUAL TO 22E6;AL # LESS-THAN BUT NOT EQUIVALENT TO 22E7;AL # GREATER-THAN BUT NOT EQUIVALENT TO 22E8;AL # PRECEDES BUT NOT EQUIVALENT TO 22E9;AL # SUCCEEDS BUT NOT EQUIVALENT TO 22EA;AL # NOT NORMAL SUBGROUP OF 22EB;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP 22EC;AL # NOT NORMAL SUBGROUP OF OR EQUAL TO 22ED;AL # DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL 22EE;AL # VERTICAL ELLIPSIS 22EF;AL # MIDLINE HORIZONTAL ELLIPSIS 22F0;AL # UP RIGHT DIAGONAL ELLIPSIS 22F1;AL # DOWN RIGHT DIAGONAL ELLIPSIS 22F2;AL # ELEMENT OF WITH LONG HORIZONTAL STROKE 22F3;AL # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F4;AL # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F5;AL # ELEMENT OF WITH DOT ABOVE 22F6;AL # ELEMENT OF WITH OVERBAR 22F7;AL # SMALL ELEMENT OF WITH OVERBAR 22F8;AL # ELEMENT OF WITH UNDERBAR 22F9;AL # ELEMENT OF WITH TWO HORIZONTAL STROKES 22FA;AL # CONTAINS WITH LONG HORIZONTAL STROKE 22FB;AL # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FC;AL # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FD;AL # CONTAINS WITH OVERBAR 22FE;AL # SMALL CONTAINS WITH OVERBAR 22FF;AL # Z NOTATION BAG MEMBERSHIP 2300;AL # DIAMETER SIGN 2301;AL # ELECTRIC ARROW 2302;AL # HOUSE 2303;AL # UP ARROWHEAD 2304;AL # DOWN ARROWHEAD 2305;AL # PROJECTIVE 2306;AL # PERSPECTIVE 2307;AL # WAVY LINE 2308;AL # LEFT CEILING 2309;AL # RIGHT CEILING 230A;AL # LEFT FLOOR 230B;AL # RIGHT FLOOR 230C;AL # BOTTOM RIGHT CROP 230D;AL # BOTTOM LEFT CROP 230E;AL # TOP RIGHT CROP 230F;AL # TOP LEFT CROP 2310;AL # REVERSED NOT SIGN 2311;AL # SQUARE LOZENGE 2312;AI # ARC 2313;AL # SEGMENT 2314;AL # SECTOR 2315;AL # TELEPHONE RECORDER 2316;AL # POSITION INDICATOR 2317;AL # VIEWDATA SQUARE 2318;AL # PLACE OF INTEREST SIGN 2319;AL # TURNED NOT SIGN 231A;AL # WATCH 231B;AL # HOURGLASS 231C;AL # TOP LEFT CORNER 231D;AL # TOP RIGHT CORNER 231E;AL # BOTTOM LEFT CORNER 231F;AL # BOTTOM RIGHT CORNER 2320;AL # TOP HALF INTEGRAL 2321;AL # BOTTOM HALF INTEGRAL 2322;AL # FROWN 2323;AL # SMILE 2324;AL # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS 2325;AL # OPTION KEY 2326;AL # ERASE TO THE RIGHT 2327;AL # X IN A RECTANGLE BOX 2328;AL # KEYBOARD 2329;OP # LEFT-POINTING ANGLE BRACKET 232A;CL # RIGHT-POINTING ANGLE BRACKET 232B;AL # ERASE TO THE LEFT 232C;AL # BENZENE RING 232D;AL # CYLINDRICITY 232E;AL # ALL AROUND-PROFILE 232F;AL # SYMMETRY 2330;AL # TOTAL RUNOUT 2331;AL # DIMENSION ORIGIN 2332;AL # CONICAL TAPER 2333;AL # SLOPE 2334;AL # COUNTERBORE 2335;AL # COUNTERSINK 2336;AL # APL FUNCTIONAL SYMBOL I-BEAM 2337;AL # APL FUNCTIONAL SYMBOL SQUISH QUAD 2338;AL # APL FUNCTIONAL SYMBOL QUAD EQUAL 2339;AL # APL FUNCTIONAL SYMBOL QUAD DIVIDE 233A;AL # APL FUNCTIONAL SYMBOL QUAD DIAMOND 233B;AL # APL FUNCTIONAL SYMBOL QUAD JOT 233C;AL # APL FUNCTIONAL SYMBOL QUAD CIRCLE 233D;AL # APL FUNCTIONAL SYMBOL CIRCLE STILE 233E;AL # APL FUNCTIONAL SYMBOL CIRCLE JOT 233F;AL # APL FUNCTIONAL SYMBOL SLASH BAR 2340;AL # APL FUNCTIONAL SYMBOL BACKSLASH BAR 2341;AL # APL FUNCTIONAL SYMBOL QUAD SLASH 2342;AL # APL FUNCTIONAL SYMBOL QUAD BACKSLASH 2343;AL # APL FUNCTIONAL SYMBOL QUAD LESS-THAN 2344;AL # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN 2345;AL # APL FUNCTIONAL SYMBOL LEFTWARDS VANE 2346;AL # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE 2347;AL # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW 2348;AL # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW 2349;AL # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH 234A;AL # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR 234B;AL # APL FUNCTIONAL SYMBOL DELTA STILE 234C;AL # APL FUNCTIONAL SYMBOL QUAD DOWN CARET 234D;AL # APL FUNCTIONAL SYMBOL QUAD DELTA 234E;AL # APL FUNCTIONAL SYMBOL DOWN TACK JOT 234F;AL # APL FUNCTIONAL SYMBOL UPWARDS VANE 2350;AL # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW 2351;AL # APL FUNCTIONAL SYMBOL UP TACK OVERBAR 2352;AL # APL FUNCTIONAL SYMBOL DEL STILE 2353;AL # APL FUNCTIONAL SYMBOL QUAD UP CARET 2354;AL # APL FUNCTIONAL SYMBOL QUAD DEL 2355;AL # APL FUNCTIONAL SYMBOL UP TACK JOT 2356;AL # APL FUNCTIONAL SYMBOL DOWNWARDS VANE 2357;AL # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW 2358;AL # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR 2359;AL # APL FUNCTIONAL SYMBOL DELTA UNDERBAR 235A;AL # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR 235B;AL # APL FUNCTIONAL SYMBOL JOT UNDERBAR 235C;AL # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR 235D;AL # APL FUNCTIONAL SYMBOL UP SHOE JOT 235E;AL # APL FUNCTIONAL SYMBOL QUOTE QUAD 235F;AL # APL FUNCTIONAL SYMBOL CIRCLE STAR 2360;AL # APL FUNCTIONAL SYMBOL QUAD COLON 2361;AL # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS 2362;AL # APL FUNCTIONAL SYMBOL DEL DIAERESIS 2363;AL # APL FUNCTIONAL SYMBOL STAR DIAERESIS 2364;AL # APL FUNCTIONAL SYMBOL JOT DIAERESIS 2365;AL # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS 2366;AL # APL FUNCTIONAL SYMBOL DOWN SHOE STILE 2367;AL # APL FUNCTIONAL SYMBOL LEFT SHOE STILE 2368;AL # APL FUNCTIONAL SYMBOL TILDE DIAERESIS 2369;AL # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS 236A;AL # APL FUNCTIONAL SYMBOL COMMA BAR 236B;AL # APL FUNCTIONAL SYMBOL DEL TILDE 236C;AL # APL FUNCTIONAL SYMBOL ZILDE 236D;AL # APL FUNCTIONAL SYMBOL STILE TILDE 236E;AL # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR 236F;AL # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL 2370;AL # APL FUNCTIONAL SYMBOL QUAD QUESTION 2371;AL # APL FUNCTIONAL SYMBOL DOWN CARET TILDE 2372;AL # APL FUNCTIONAL SYMBOL UP CARET TILDE 2373;AL # APL FUNCTIONAL SYMBOL IOTA 2374;AL # APL FUNCTIONAL SYMBOL RHO 2375;AL # APL FUNCTIONAL SYMBOL OMEGA 2376;AL # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR 2377;AL # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR 2378;AL # APL FUNCTIONAL SYMBOL IOTA UNDERBAR 2379;AL # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR 237A;AL # APL FUNCTIONAL SYMBOL ALPHA 237B;AL # NOT CHECK MARK 237C;AL # RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW 237D;AL # SHOULDERED OPEN BOX 237E;AL # BELL SYMBOL 237F;AL # VERTICAL LINE WITH MIDDLE DOT 2380;AL # INSERTION SYMBOL 2381;AL # CONTINUOUS UNDERLINE SYMBOL 2382;AL # DISCONTINUOUS UNDERLINE SYMBOL 2383;AL # EMPHASIS SYMBOL 2384;AL # COMPOSITION SYMBOL 2385;AL # WHITE SQUARE WITH CENTRE VERTICAL LINE 2386;AL # ENTER SYMBOL 2387;AL # ALTERNATIVE KEY SYMBOL 2388;AL # HELM SYMBOL 2389;AL # CIRCLED HORIZONTAL BAR WITH NOTCH 238A;AL # CIRCLED TRIANGLE DOWN 238B;AL # BROKEN CIRCLE WITH NORTHWEST ARROW 238C;AL # UNDO SYMBOL 238D;AL # MONOSTABLE SYMBOL 238E;AL # HYSTERESIS SYMBOL 238F;AL # OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL 2390;AL # OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL 2391;AL # PASSIVE-PULL-DOWN-OUTPUT SYMBOL 2392;AL # PASSIVE-PULL-UP-OUTPUT SYMBOL 2393;AL # DIRECT CURRENT SYMBOL FORM TWO 2394;AL # SOFTWARE-FUNCTION SYMBOL 2395;AL # APL FUNCTIONAL SYMBOL QUAD 2396;AL # DECIMAL SEPARATOR KEY SYMBOL 2397;AL # PREVIOUS PAGE 2398;AL # NEXT PAGE 2399;AL # PRINT SCREEN SYMBOL 239A;AL # CLEAR SCREEN SYMBOL 239B;AL # LEFT PARENTHESIS UPPER HOOK 239C;AL # LEFT PARENTHESIS EXTENSION 239D;AL # LEFT PARENTHESIS LOWER HOOK 239E;AL # RIGHT PARENTHESIS UPPER HOOK 239F;AL # RIGHT PARENTHESIS EXTENSION 23A0;AL # RIGHT PARENTHESIS LOWER HOOK 23A1;AL # LEFT SQUARE BRACKET UPPER CORNER 23A2;AL # LEFT SQUARE BRACKET EXTENSION 23A3;AL # LEFT SQUARE BRACKET LOWER CORNER 23A4;AL # RIGHT SQUARE BRACKET UPPER CORNER 23A5;AL # RIGHT SQUARE BRACKET EXTENSION 23A6;AL # RIGHT SQUARE BRACKET LOWER CORNER 23A7;AL # LEFT CURLY BRACKET UPPER HOOK 23A8;AL # LEFT CURLY BRACKET MIDDLE PIECE 23A9;AL # LEFT CURLY BRACKET LOWER HOOK 23AA;AL # CURLY BRACKET EXTENSION 23AB;AL # RIGHT CURLY BRACKET UPPER HOOK 23AC;AL # RIGHT CURLY BRACKET MIDDLE PIECE 23AD;AL # RIGHT CURLY BRACKET LOWER HOOK 23AE;AL # INTEGRAL EXTENSION 23AF;AL # HORIZONTAL LINE EXTENSION 23B0;AL # UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION 23B1;AL # UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION 23B2;AL # SUMMATION TOP 23B3;AL # SUMMATION BOTTOM 23B4;OP # TOP SQUARE BRACKET 23B5;CL # BOTTOM SQUARE BRACKET 23B6;QU # BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET 23B7;AL # RADICAL SYMBOL BOTTOM 23B8;AL # LEFT VERTICAL BOX LINE 23B9;AL # RIGHT VERTICAL BOX LINE 23BA;AL # HORIZONTAL SCAN LINE-1 23BB;AL # HORIZONTAL SCAN LINE-3 23BC;AL # HORIZONTAL SCAN LINE-7 23BD;AL # HORIZONTAL SCAN LINE-9 23BE;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT 23BF;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT 23C0;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE 23C1;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE 23C2;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE 23C3;AL # DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE 23C4;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE 23C5;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE 23C6;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE 23C7;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE 23C8;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE 23C9;AL # DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL 23CA;AL # DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL 23CB;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT 23CC;AL # DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT 23CD;AL # SQUARE FOOT 23CE;AL # RETURN SYMBOL 2400;AL # SYMBOL FOR NULL 2401;AL # SYMBOL FOR START OF HEADING 2402;AL # SYMBOL FOR START OF TEXT 2403;AL # SYMBOL FOR END OF TEXT 2404;AL # SYMBOL FOR END OF TRANSMISSION 2405;AL # SYMBOL FOR ENQUIRY 2406;AL # SYMBOL FOR ACKNOWLEDGE 2407;AL # SYMBOL FOR BELL 2408;AL # SYMBOL FOR BACKSPACE 2409;AL # SYMBOL FOR HORIZONTAL TABULATION 240A;AL # SYMBOL FOR LINE FEED 240B;AL # SYMBOL FOR VERTICAL TABULATION 240C;AL # SYMBOL FOR FORM FEED 240D;AL # SYMBOL FOR CARRIAGE RETURN 240E;AL # SYMBOL FOR SHIFT OUT 240F;AL # SYMBOL FOR SHIFT IN 2410;AL # SYMBOL FOR DATA LINK ESCAPE 2411;AL # SYMBOL FOR DEVICE CONTROL ONE 2412;AL # SYMBOL FOR DEVICE CONTROL TWO 2413;AL # SYMBOL FOR DEVICE CONTROL THREE 2414;AL # SYMBOL FOR DEVICE CONTROL FOUR 2415;AL # SYMBOL FOR NEGATIVE ACKNOWLEDGE 2416;AL # SYMBOL FOR SYNCHRONOUS IDLE 2417;AL # SYMBOL FOR END OF TRANSMISSION BLOCK 2418;AL # SYMBOL FOR CANCEL 2419;AL # SYMBOL FOR END OF MEDIUM 241A;AL # SYMBOL FOR SUBSTITUTE 241B;AL # SYMBOL FOR ESCAPE 241C;AL # SYMBOL FOR FILE SEPARATOR 241D;AL # SYMBOL FOR GROUP SEPARATOR 241E;AL # SYMBOL FOR RECORD SEPARATOR 241F;AL # SYMBOL FOR UNIT SEPARATOR 2420;AL # SYMBOL FOR SPACE 2421;AL # SYMBOL FOR DELETE 2422;AL # BLANK SYMBOL 2423;AL # OPEN BOX 2424;AL # SYMBOL FOR NEWLINE 2425;AL # SYMBOL FOR DELETE FORM TWO 2426;AL # SYMBOL FOR SUBSTITUTE FORM TWO 2440;AL # OCR HOOK 2441;AL # OCR CHAIR 2442;AL # OCR FORK 2443;AL # OCR INVERTED FORK 2444;AL # OCR BELT BUCKLE 2445;AL # OCR BOW TIE 2446;AL # OCR BRANCH BANK IDENTIFICATION 2447;AL # OCR AMOUNT OF CHECK 2448;AL # OCR DASH 2449;AL # OCR CUSTOMER ACCOUNT NUMBER 244A;AL # OCR DOUBLE BACKSLASH 2460;AI # CIRCLED DIGIT ONE 2461;AI # CIRCLED DIGIT TWO 2462;AI # CIRCLED DIGIT THREE 2463;AI # CIRCLED DIGIT FOUR 2464;AI # CIRCLED DIGIT FIVE 2465;AI # CIRCLED DIGIT SIX 2466;AI # CIRCLED DIGIT SEVEN 2467;AI # CIRCLED DIGIT EIGHT 2468;AI # CIRCLED DIGIT NINE 2469;AI # CIRCLED NUMBER TEN 246A;AI # CIRCLED NUMBER ELEVEN 246B;AI # CIRCLED NUMBER TWELVE 246C;AI # CIRCLED NUMBER THIRTEEN 246D;AI # CIRCLED NUMBER FOURTEEN 246E;AI # CIRCLED NUMBER FIFTEEN 246F;AI # CIRCLED NUMBER SIXTEEN 2470;AI # CIRCLED NUMBER SEVENTEEN 2471;AI # CIRCLED NUMBER EIGHTEEN 2472;AI # CIRCLED NUMBER NINETEEN 2473;AI # CIRCLED NUMBER TWENTY 2474;AI # PARENTHESIZED DIGIT ONE 2475;AI # PARENTHESIZED DIGIT TWO 2476;AI # PARENTHESIZED DIGIT THREE 2477;AI # PARENTHESIZED DIGIT FOUR 2478;AI # PARENTHESIZED DIGIT FIVE 2479;AI # PARENTHESIZED DIGIT SIX 247A;AI # PARENTHESIZED DIGIT SEVEN 247B;AI # PARENTHESIZED DIGIT EIGHT 247C;AI # PARENTHESIZED DIGIT NINE 247D;AI # PARENTHESIZED NUMBER TEN 247E;AI # PARENTHESIZED NUMBER ELEVEN 247F;AI # PARENTHESIZED NUMBER TWELVE 2480;AI # PARENTHESIZED NUMBER THIRTEEN 2481;AI # PARENTHESIZED NUMBER FOURTEEN 2482;AI # PARENTHESIZED NUMBER FIFTEEN 2483;AI # PARENTHESIZED NUMBER SIXTEEN 2484;AI # PARENTHESIZED NUMBER SEVENTEEN 2485;AI # PARENTHESIZED NUMBER EIGHTEEN 2486;AI # PARENTHESIZED NUMBER NINETEEN 2487;AI # PARENTHESIZED NUMBER TWENTY 2488;AI # DIGIT ONE FULL STOP 2489;AI # DIGIT TWO FULL STOP 248A;AI # DIGIT THREE FULL STOP 248B;AI # DIGIT FOUR FULL STOP 248C;AI # DIGIT FIVE FULL STOP 248D;AI # DIGIT SIX FULL STOP 248E;AI # DIGIT SEVEN FULL STOP 248F;AI # DIGIT EIGHT FULL STOP 2490;AI # DIGIT NINE FULL STOP 2491;AI # NUMBER TEN FULL STOP 2492;AI # NUMBER ELEVEN FULL STOP 2493;AI # NUMBER TWELVE FULL STOP 2494;AI # NUMBER THIRTEEN FULL STOP 2495;AI # NUMBER FOURTEEN FULL STOP 2496;AI # NUMBER FIFTEEN FULL STOP 2497;AI # NUMBER SIXTEEN FULL STOP 2498;AI # NUMBER SEVENTEEN FULL STOP 2499;AI # NUMBER EIGHTEEN FULL STOP 249A;AI # NUMBER NINETEEN FULL STOP 249B;AI # NUMBER TWENTY FULL STOP 249C;AI # PARENTHESIZED LATIN SMALL LETTER A 249D;AI # PARENTHESIZED LATIN SMALL LETTER B 249E;AI # PARENTHESIZED LATIN SMALL LETTER C 249F;AI # PARENTHESIZED LATIN SMALL LETTER D 24A0;AI # PARENTHESIZED LATIN SMALL LETTER E 24A1;AI # PARENTHESIZED LATIN SMALL LETTER F 24A2;AI # PARENTHESIZED LATIN SMALL LETTER G 24A3;AI # PARENTHESIZED LATIN SMALL LETTER H 24A4;AI # PARENTHESIZED LATIN SMALL LETTER I 24A5;AI # PARENTHESIZED LATIN SMALL LETTER J 24A6;AI # PARENTHESIZED LATIN SMALL LETTER K 24A7;AI # PARENTHESIZED LATIN SMALL LETTER L 24A8;AI # PARENTHESIZED LATIN SMALL LETTER M 24A9;AI # PARENTHESIZED LATIN SMALL LETTER N 24AA;AI # PARENTHESIZED LATIN SMALL LETTER O 24AB;AI # PARENTHESIZED LATIN SMALL LETTER P 24AC;AI # PARENTHESIZED LATIN SMALL LETTER Q 24AD;AI # PARENTHESIZED LATIN SMALL LETTER R 24AE;AI # PARENTHESIZED LATIN SMALL LETTER S 24AF;AI # PARENTHESIZED LATIN SMALL LETTER T 24B0;AI # PARENTHESIZED LATIN SMALL LETTER U 24B1;AI # PARENTHESIZED LATIN SMALL LETTER V 24B2;AI # PARENTHESIZED LATIN SMALL LETTER W 24B3;AI # PARENTHESIZED LATIN SMALL LETTER X 24B4;AI # PARENTHESIZED LATIN SMALL LETTER Y 24B5;AI # PARENTHESIZED LATIN SMALL LETTER Z 24B6;AI # CIRCLED LATIN CAPITAL LETTER A 24B7;AI # CIRCLED LATIN CAPITAL LETTER B 24B8;AI # CIRCLED LATIN CAPITAL LETTER C 24B9;AI # CIRCLED LATIN CAPITAL LETTER D 24BA;AI # CIRCLED LATIN CAPITAL LETTER E 24BB;AI # CIRCLED LATIN CAPITAL LETTER F 24BC;AI # CIRCLED LATIN CAPITAL LETTER G 24BD;AI # CIRCLED LATIN CAPITAL LETTER H 24BE;AI # CIRCLED LATIN CAPITAL LETTER I 24BF;AI # CIRCLED LATIN CAPITAL LETTER J 24C0;AL # CIRCLED LATIN CAPITAL LETTER K 24C1;AL # CIRCLED LATIN CAPITAL LETTER L 24C2;AL # CIRCLED LATIN CAPITAL LETTER M 24C3;AL # CIRCLED LATIN CAPITAL LETTER N 24C4;AL # CIRCLED LATIN CAPITAL LETTER O 24C5;AL # CIRCLED LATIN CAPITAL LETTER P 24C6;AL # CIRCLED LATIN CAPITAL LETTER Q 24C7;AL # CIRCLED LATIN CAPITAL LETTER R 24C8;AL # CIRCLED LATIN CAPITAL LETTER S 24C9;AL # CIRCLED LATIN CAPITAL LETTER T 24CA;AL # CIRCLED LATIN CAPITAL LETTER U 24CB;AL # CIRCLED LATIN CAPITAL LETTER V 24CC;AL # CIRCLED LATIN CAPITAL LETTER W 24CD;AL # CIRCLED LATIN CAPITAL LETTER X 24CE;AL # CIRCLED LATIN CAPITAL LETTER Y 24CF;AL # CIRCLED LATIN CAPITAL LETTER Z 24D0;AI # CIRCLED LATIN SMALL LETTER A 24D1;AI # CIRCLED LATIN SMALL LETTER B 24D2;AI # CIRCLED LATIN SMALL LETTER C 24D3;AI # CIRCLED LATIN SMALL LETTER D 24D4;AI # CIRCLED LATIN SMALL LETTER E 24D5;AI # CIRCLED LATIN SMALL LETTER F 24D6;AI # CIRCLED LATIN SMALL LETTER G 24D7;AI # CIRCLED LATIN SMALL LETTER H 24D8;AI # CIRCLED LATIN SMALL LETTER I 24D9;AI # CIRCLED LATIN SMALL LETTER J 24DA;AI # CIRCLED LATIN SMALL LETTER K 24DB;AI # CIRCLED LATIN SMALL LETTER L 24DC;AI # CIRCLED LATIN SMALL LETTER M 24DD;AI # CIRCLED LATIN SMALL LETTER N 24DE;AI # CIRCLED LATIN SMALL LETTER O 24DF;AI # CIRCLED LATIN SMALL LETTER P 24E0;AI # CIRCLED LATIN SMALL LETTER Q 24E1;AI # CIRCLED LATIN SMALL LETTER R 24E2;AI # CIRCLED LATIN SMALL LETTER S 24E3;AI # CIRCLED LATIN SMALL LETTER T 24E4;AI # CIRCLED LATIN SMALL LETTER U 24E5;AI # CIRCLED LATIN SMALL LETTER V 24E6;AI # CIRCLED LATIN SMALL LETTER W 24E7;AI # CIRCLED LATIN SMALL LETTER X 24E8;AI # CIRCLED LATIN SMALL LETTER Y 24E9;AI # CIRCLED LATIN SMALL LETTER Z 24EA;AL # CIRCLED DIGIT ZERO 24EB;AI # NEGATIVE CIRCLED NUMBER ELEVEN 24EC;AI # NEGATIVE CIRCLED NUMBER TWELVE 24ED;AI # NEGATIVE CIRCLED NUMBER THIRTEEN 24EE;AI # NEGATIVE CIRCLED NUMBER FOURTEEN 24EF;AI # NEGATIVE CIRCLED NUMBER FIFTEEN 24F0;AI # NEGATIVE CIRCLED NUMBER SIXTEEN 24F1;AI # NEGATIVE CIRCLED NUMBER SEVENTEEN 24F2;AI # NEGATIVE CIRCLED NUMBER EIGHTEEN 24F3;AI # NEGATIVE CIRCLED NUMBER NINETEEN 24F4;AI # NEGATIVE CIRCLED NUMBER TWENTY 24F5;AI # DOUBLE CIRCLED DIGIT ONE 24F6;AI # DOUBLE CIRCLED DIGIT TWO 24F7;AI # DOUBLE CIRCLED DIGIT THREE 24F8;AI # DOUBLE CIRCLED DIGIT FOUR 24F9;AI # DOUBLE CIRCLED DIGIT FIVE 24FA;AI # DOUBLE CIRCLED DIGIT SIX 24FB;AI # DOUBLE CIRCLED DIGIT SEVEN 24FC;AI # DOUBLE CIRCLED DIGIT EIGHT 24FD;AI # DOUBLE CIRCLED DIGIT NINE 24FE;AI # DOUBLE CIRCLED NUMBER TEN 2500;AI # BOX DRAWINGS LIGHT HORIZONTAL 2501;AI # BOX DRAWINGS HEAVY HORIZONTAL 2502;AI # BOX DRAWINGS LIGHT VERTICAL 2503;AI # BOX DRAWINGS HEAVY VERTICAL 2504;AI # BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL 2505;AI # BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL 2506;AI # BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL 2507;AI # BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL 2508;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL 2509;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL 250A;AI # BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL 250B;AI # BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL 250C;AI # BOX DRAWINGS LIGHT DOWN AND RIGHT 250D;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY 250E;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT 250F;AI # BOX DRAWINGS HEAVY DOWN AND RIGHT 2510;AI # BOX DRAWINGS LIGHT DOWN AND LEFT 2511;AI # BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY 2512;AI # BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT 2513;AI # BOX DRAWINGS HEAVY DOWN AND LEFT 2514;AI # BOX DRAWINGS LIGHT UP AND RIGHT 2515;AI # BOX DRAWINGS UP LIGHT AND RIGHT HEAVY 2516;AI # BOX DRAWINGS UP HEAVY AND RIGHT LIGHT 2517;AI # BOX DRAWINGS HEAVY UP AND RIGHT 2518;AI # BOX DRAWINGS LIGHT UP AND LEFT 2519;AI # BOX DRAWINGS UP LIGHT AND LEFT HEAVY 251A;AI # BOX DRAWINGS UP HEAVY AND LEFT LIGHT 251B;AI # BOX DRAWINGS HEAVY UP AND LEFT 251C;AI # BOX DRAWINGS LIGHT VERTICAL AND RIGHT 251D;AI # BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY 251E;AI # BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT 251F;AI # BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT 2520;AI # BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT 2521;AI # BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY 2522;AI # BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY 2523;AI # BOX DRAWINGS HEAVY VERTICAL AND RIGHT 2524;AI # BOX DRAWINGS LIGHT VERTICAL AND LEFT 2525;AI # BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY 2526;AI # BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT 2527;AI # BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT 2528;AI # BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT 2529;AI # BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY 252A;AI # BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY 252B;AI # BOX DRAWINGS HEAVY VERTICAL AND LEFT 252C;AI # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 252D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT 252E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT 252F;AI # BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY 2530;AI # BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT 2531;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY 2532;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY 2533;AI # BOX DRAWINGS HEAVY DOWN AND HORIZONTAL 2534;AI # BOX DRAWINGS LIGHT UP AND HORIZONTAL 2535;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT 2536;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT 2537;AI # BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY 2538;AI # BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT 2539;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY 253A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY 253B;AI # BOX DRAWINGS HEAVY UP AND HORIZONTAL 253C;AI # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 253D;AI # BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT 253E;AI # BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT 253F;AI # BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY 2540;AI # BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT 2541;AI # BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT 2542;AI # BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT 2543;AI # BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT 2544;AI # BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT 2545;AI # BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT 2546;AI # BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT 2547;AI # BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY 2548;AI # BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY 2549;AI # BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY 254A;AI # BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY 254B;AI # BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL 254C;AL # BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL 254D;AL # BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL 254E;AL # BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL 254F;AL # BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL 2550;AI # BOX DRAWINGS DOUBLE HORIZONTAL 2551;AI # BOX DRAWINGS DOUBLE VERTICAL 2552;AI # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE 2553;AI # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE 2554;AI # BOX DRAWINGS DOUBLE DOWN AND RIGHT 2555;AI # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE 2556;AI # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE 2557;AI # BOX DRAWINGS DOUBLE DOWN AND LEFT 2558;AI # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE 2559;AI # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE 255A;AI # BOX DRAWINGS DOUBLE UP AND RIGHT 255B;AI # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE 255C;AI # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE 255D;AI # BOX DRAWINGS DOUBLE UP AND LEFT 255E;AI # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE 255F;AI # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE 2560;AI # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT 2561;AI # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE 2562;AI # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE 2563;AI # BOX DRAWINGS DOUBLE VERTICAL AND LEFT 2564;AI # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE 2565;AI # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE 2566;AI # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL 2567;AI # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE 2568;AI # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE 2569;AI # BOX DRAWINGS DOUBLE UP AND HORIZONTAL 256A;AI # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE 256B;AI # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE 256C;AI # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL 256D;AI # BOX DRAWINGS LIGHT ARC DOWN AND RIGHT 256E;AI # BOX DRAWINGS LIGHT ARC DOWN AND LEFT 256F;AI # BOX DRAWINGS LIGHT ARC UP AND LEFT 2570;AI # BOX DRAWINGS LIGHT ARC UP AND RIGHT 2571;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT 2572;AI # BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT 2573;AI # BOX DRAWINGS LIGHT DIAGONAL CROSS 2574;AI # BOX DRAWINGS LIGHT LEFT 2575;AL # BOX DRAWINGS LIGHT UP 2576;AL # BOX DRAWINGS LIGHT RIGHT 2577;AL # BOX DRAWINGS LIGHT DOWN 2578;AL # BOX DRAWINGS HEAVY LEFT 2579;AL # BOX DRAWINGS HEAVY UP 257A;AL # BOX DRAWINGS HEAVY RIGHT 257B;AL # BOX DRAWINGS HEAVY DOWN 257C;AL # BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT 257D;AL # BOX DRAWINGS LIGHT UP AND HEAVY DOWN 257E;AL # BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT 257F;AL # BOX DRAWINGS HEAVY UP AND LIGHT DOWN 2580;AI # UPPER HALF BLOCK 2581;AI # LOWER ONE EIGHTH BLOCK 2582;AI # LOWER ONE QUARTER BLOCK 2583;AI # LOWER THREE EIGHTHS BLOCK 2584;AI # LOWER HALF BLOCK 2585;AI # LOWER FIVE EIGHTHS BLOCK 2586;AI # LOWER THREE QUARTERS BLOCK 2587;AI # LOWER SEVEN EIGHTHS BLOCK 2588;AI # FULL BLOCK 2589;AI # LEFT SEVEN EIGHTHS BLOCK 258A;AI # LEFT THREE QUARTERS BLOCK 258B;AI # LEFT FIVE EIGHTHS BLOCK 258C;AI # LEFT HALF BLOCK 258D;AI # LEFT THREE EIGHTHS BLOCK 258E;AI # LEFT ONE QUARTER BLOCK 258F;AI # LEFT ONE EIGHTH BLOCK 2590;AL # RIGHT HALF BLOCK 2591;AL # LIGHT SHADE 2592;AI # MEDIUM SHADE 2593;AI # DARK SHADE 2594;AI # UPPER ONE EIGHTH BLOCK 2595;AI # RIGHT ONE EIGHTH BLOCK 2596;AL # QUADRANT LOWER LEFT 2597;AL # QUADRANT LOWER RIGHT 2598;AL # QUADRANT UPPER LEFT 2599;AL # QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT 259A;AL # QUADRANT UPPER LEFT AND LOWER RIGHT 259B;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT 259C;AL # QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT 259D;AL # QUADRANT UPPER RIGHT 259E;AL # QUADRANT UPPER RIGHT AND LOWER LEFT 259F;AL # QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT 25A0;AI # BLACK SQUARE 25A1;AI # WHITE SQUARE 25A2;AL # WHITE SQUARE WITH ROUNDED CORNERS 25A3;AI # WHITE SQUARE CONTAINING BLACK SMALL SQUARE 25A4;AI # SQUARE WITH HORIZONTAL FILL 25A5;AI # SQUARE WITH VERTICAL FILL 25A6;AI # SQUARE WITH ORTHOGONAL CROSSHATCH FILL 25A7;AI # SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL 25A8;AI # SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL 25A9;AI # SQUARE WITH DIAGONAL CROSSHATCH FILL 25AA;AL # BLACK SMALL SQUARE 25AB;AL # WHITE SMALL SQUARE 25AC;AL # BLACK RECTANGLE 25AD;AL # WHITE RECTANGLE 25AE;AL # BLACK VERTICAL RECTANGLE 25AF;AL # WHITE VERTICAL RECTANGLE 25B0;AL # BLACK PARALLELOGRAM 25B1;AL # WHITE PARALLELOGRAM 25B2;AI # BLACK UP-POINTING TRIANGLE 25B3;AI # WHITE UP-POINTING TRIANGLE 25B4;AL # BLACK UP-POINTING SMALL TRIANGLE 25B5;AL # WHITE UP-POINTING SMALL TRIANGLE 25B6;AI # BLACK RIGHT-POINTING TRIANGLE 25B7;AI # WHITE RIGHT-POINTING TRIANGLE 25B8;AL # BLACK RIGHT-POINTING SMALL TRIANGLE 25B9;AL # WHITE RIGHT-POINTING SMALL TRIANGLE 25BA;AL # BLACK RIGHT-POINTING POINTER 25BB;AL # WHITE RIGHT-POINTING POINTER 25BC;AI # BLACK DOWN-POINTING TRIANGLE 25BD;AI # WHITE DOWN-POINTING TRIANGLE 25BE;AL # BLACK DOWN-POINTING SMALL TRIANGLE 25BF;AL # WHITE DOWN-POINTING SMALL TRIANGLE 25C0;AI # BLACK LEFT-POINTING TRIANGLE 25C1;AI # WHITE LEFT-POINTING TRIANGLE 25C2;AL # BLACK LEFT-POINTING SMALL TRIANGLE 25C3;AL # WHITE LEFT-POINTING SMALL TRIANGLE 25C4;AL # BLACK LEFT-POINTING POINTER 25C5;AL # WHITE LEFT-POINTING POINTER 25C6;AI # BLACK DIAMOND 25C7;AI # WHITE DIAMOND 25C8;AI # WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND 25C9;AL # FISHEYE 25CA;AL # LOZENGE 25CB;AI # WHITE CIRCLE 25CC;AL # DOTTED CIRCLE 25CD;AL # CIRCLE WITH VERTICAL FILL 25CE;AI # BULLSEYE 25CF;AI # BLACK CIRCLE 25D0;AI # CIRCLE WITH LEFT HALF BLACK 25D1;AI # CIRCLE WITH RIGHT HALF BLACK 25D2;AL # CIRCLE WITH LOWER HALF BLACK 25D3;AL # CIRCLE WITH UPPER HALF BLACK 25D4;AL # CIRCLE WITH UPPER RIGHT QUADRANT BLACK 25D5;AL # CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK 25D6;AL # LEFT HALF BLACK CIRCLE 25D7;AL # RIGHT HALF BLACK CIRCLE 25D8;AL # INVERSE BULLET 25D9;AL # INVERSE WHITE CIRCLE 25DA;AL # UPPER HALF INVERSE WHITE CIRCLE 25DB;AL # LOWER HALF INVERSE WHITE CIRCLE 25DC;AL # UPPER LEFT QUADRANT CIRCULAR ARC 25DD;AL # UPPER RIGHT QUADRANT CIRCULAR ARC 25DE;AL # LOWER RIGHT QUADRANT CIRCULAR ARC 25DF;AL # LOWER LEFT QUADRANT CIRCULAR ARC 25E0;AL # UPPER HALF CIRCLE 25E1;AL # LOWER HALF CIRCLE 25E2;AI # BLACK LOWER RIGHT TRIANGLE 25E3;AI # BLACK LOWER LEFT TRIANGLE 25E4;AI # BLACK UPPER LEFT TRIANGLE 25E5;AI # BLACK UPPER RIGHT TRIANGLE 25E6;AL # WHITE BULLET 25E7;AL # SQUARE WITH LEFT HALF BLACK 25E8;AL # SQUARE WITH RIGHT HALF BLACK 25E9;AL # SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK 25EA;AL # SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK 25EB;AL # WHITE SQUARE WITH VERTICAL BISECTING LINE 25EC;AL # WHITE UP-POINTING TRIANGLE WITH DOT 25ED;AL # UP-POINTING TRIANGLE WITH LEFT HALF BLACK 25EE;AL # UP-POINTING TRIANGLE WITH RIGHT HALF BLACK 25EF;AI # LARGE CIRCLE 25F0;AL # WHITE SQUARE WITH UPPER LEFT QUADRANT 25F1;AL # WHITE SQUARE WITH LOWER LEFT QUADRANT 25F2;AL # WHITE SQUARE WITH LOWER RIGHT QUADRANT 25F3;AL # WHITE SQUARE WITH UPPER RIGHT QUADRANT 25F4;AL # WHITE CIRCLE WITH UPPER LEFT QUADRANT 25F5;AL # WHITE CIRCLE WITH LOWER LEFT QUADRANT 25F6;AL # WHITE CIRCLE WITH LOWER RIGHT QUADRANT 25F7;AL # WHITE CIRCLE WITH UPPER RIGHT QUADRANT 25F8;AL # UPPER LEFT TRIANGLE 25F9;AL # UPPER RIGHT TRIANGLE 25FA;AL # LOWER LEFT TRIANGLE 25FB;AL # WHITE MEDIUM SQUARE 25FC;AL # BLACK MEDIUM SQUARE 25FD;AL # WHITE MEDIUM SMALL SQUARE 25FE;AL # BLACK MEDIUM SMALL SQUARE 25FF;AL # LOWER RIGHT TRIANGLE 2600;AL # BLACK SUN WITH RAYS 2601;AL # CLOUD 2602;AL # UMBRELLA 2603;AL # SNOWMAN 2604;AL # COMET 2605;AI # BLACK STAR 2606;AI # WHITE STAR 2607;AL # LIGHTNING 2608;AL # THUNDERSTORM 2609;AI # SUN 260A;AL # ASCENDING NODE 260B;AL # DESCENDING NODE 260C;AL # CONJUNCTION 260D;AL # OPPOSITION 260E;AI # BLACK TELEPHONE 260F;AI # WHITE TELEPHONE 2610;AL # BALLOT BOX 2611;AL # BALLOT BOX WITH CHECK 2612;AL # BALLOT BOX WITH X 2613;AL # SALTIRE 2616;AI # WHITE SHOGI PIECE 2617;AI # BLACK SHOGI PIECE 2619;AL # REVERSED ROTATED FLORAL HEART BULLET 261A;AL # BLACK LEFT POINTING INDEX 261B;AL # BLACK RIGHT POINTING INDEX 261C;AI # WHITE LEFT POINTING INDEX 261D;AL # WHITE UP POINTING INDEX 261E;AI # WHITE RIGHT POINTING INDEX 261F;AL # WHITE DOWN POINTING INDEX 2620;AL # SKULL AND CROSSBONES 2621;AL # CAUTION SIGN 2622;AL # RADIOACTIVE SIGN 2623;AL # BIOHAZARD SIGN 2624;AL # CADUCEUS 2625;AL # ANKH 2626;AL # ORTHODOX CROSS 2627;AL # CHI RHO 2628;AL # CROSS OF LORRAINE 2629;AL # CROSS OF JERUSALEM 262A;AL # STAR AND CRESCENT 262B;AL # FARSI SYMBOL 262C;AL # ADI SHAKTI 262D;AL # HAMMER AND SICKLE 262E;AL # PEACE SYMBOL 262F;AL # YIN YANG 2630;AL # TRIGRAM FOR HEAVEN 2631;AL # TRIGRAM FOR LAKE 2632;AL # TRIGRAM FOR FIRE 2633;AL # TRIGRAM FOR THUNDER 2634;AL # TRIGRAM FOR WIND 2635;AL # TRIGRAM FOR WATER 2636;AL # TRIGRAM FOR MOUNTAIN 2637;AL # TRIGRAM FOR EARTH 2638;AL # WHEEL OF DHARMA 2639;AL # WHITE FROWNING FACE 263A;AL # WHITE SMILING FACE 263B;AL # BLACK SMILING FACE 263C;AL # WHITE SUN WITH RAYS 263D;AL # FIRST QUARTER MOON 263E;AL # LAST QUARTER MOON 263F;AL # MERCURY 2640;AI # FEMALE SIGN 2641;AL # EARTH 2642;AI # MALE SIGN 2643;AL # JUPITER 2644;AL # SATURN 2645;AL # URANUS 2646;AL # NEPTUNE 2647;AL # PLUTO 2648;AL # ARIES 2649;AL # TAURUS 264A;AL # GEMINI 264B;AL # CANCER 264C;AL # LEO 264D;AL # VIRGO 264E;AL # LIBRA 264F;AL # SCORPIUS 2650;AL # SAGITTARIUS 2651;AL # CAPRICORN 2652;AL # AQUARIUS 2653;AL # PISCES 2654;AL # WHITE CHESS KING 2655;AL # WHITE CHESS QUEEN 2656;AL # WHITE CHESS ROOK 2657;AL # WHITE CHESS BISHOP 2658;AL # WHITE CHESS KNIGHT 2659;AL # WHITE CHESS PAWN 265A;AL # BLACK CHESS KING 265B;AL # BLACK CHESS QUEEN 265C;AL # BLACK CHESS ROOK 265D;AL # BLACK CHESS BISHOP 265E;AL # BLACK CHESS KNIGHT 265F;AL # BLACK CHESS PAWN 2660;AI # BLACK SPADE SUIT 2661;AI # WHITE HEART SUIT 2662;AL # WHITE DIAMOND SUIT 2663;AI # BLACK CLUB SUIT 2664;AI # WHITE SPADE SUIT 2665;AI # BLACK HEART SUIT 2666;AL # BLACK DIAMOND SUIT 2667;AI # WHITE CLUB SUIT 2668;AI # HOT SPRINGS 2669;AI # QUARTER NOTE 266A;AI # EIGHTH NOTE 266B;AL # BEAMED EIGHTH NOTES 266C;AI # BEAMED SIXTEENTH NOTES 266D;AI # MUSIC FLAT SIGN 266E;AL # MUSIC NATURAL SIGN 266F;AI # MUSIC SHARP SIGN 2670;AL # WEST SYRIAC CROSS 2671;AL # EAST SYRIAC CROSS 2672;AL # UNIVERSAL RECYCLING SYMBOL 2673;AL # RECYCLING SYMBOL FOR TYPE-1 PLASTICS 2674;AL # RECYCLING SYMBOL FOR TYPE-2 PLASTICS 2675;AL # RECYCLING SYMBOL FOR TYPE-3 PLASTICS 2676;AL # RECYCLING SYMBOL FOR TYPE-4 PLASTICS 2677;AL # RECYCLING SYMBOL FOR TYPE-5 PLASTICS 2678;AL # RECYCLING SYMBOL FOR TYPE-6 PLASTICS 2679;AL # RECYCLING SYMBOL FOR TYPE-7 PLASTICS 267A;AL # RECYCLING SYMBOL FOR GENERIC MATERIALS 267B;AL # BLACK UNIVERSAL RECYCLING SYMBOL 267C;AL # RECYCLED PAPER SYMBOL 267D;AL # PARTIALLY-RECYCLED PAPER SYMBOL 2680;AL # DIE FACE-1 2681;AL # DIE FACE-2 2682;AL # DIE FACE-3 2683;AL # DIE FACE-4 2684;AL # DIE FACE-5 2685;AL # DIE FACE-6 2686;AL # WHITE CIRCLE WITH DOT RIGHT 2687;AL # WHITE CIRCLE WITH TWO DOTS 2688;AL # BLACK CIRCLE WITH WHITE DOT RIGHT 2689;AL # BLACK CIRCLE WITH TWO WHITE DOTS 2701;AL # UPPER BLADE SCISSORS 2702;AL # BLACK SCISSORS 2703;AL # LOWER BLADE SCISSORS 2704;AL # WHITE SCISSORS 2706;AL # TELEPHONE LOCATION SIGN 2707;AL # TAPE DRIVE 2708;AL # AIRPLANE 2709;AL # ENVELOPE 270C;AL # VICTORY HAND 270D;AL # WRITING HAND 270E;AL # LOWER RIGHT PENCIL 270F;AL # PENCIL 2710;AL # UPPER RIGHT PENCIL 2711;AL # WHITE NIB 2712;AL # BLACK NIB 2713;AL # CHECK MARK 2714;AL # HEAVY CHECK MARK 2715;AL # MULTIPLICATION X 2716;AL # HEAVY MULTIPLICATION X 2717;AL # BALLOT X 2718;AL # HEAVY BALLOT X 2719;AL # OUTLINED GREEK CROSS 271A;AL # HEAVY GREEK CROSS 271B;AL # OPEN CENTRE CROSS 271C;AL # HEAVY OPEN CENTRE CROSS 271D;AL # LATIN CROSS 271E;AL # SHADOWED WHITE LATIN CROSS 271F;AL # OUTLINED LATIN CROSS 2720;AL # MALTESE CROSS 2721;AL # STAR OF DAVID 2722;AL # FOUR TEARDROP-SPOKED ASTERISK 2723;AL # FOUR BALLOON-SPOKED ASTERISK 2724;AL # HEAVY FOUR BALLOON-SPOKED ASTERISK 2725;AL # FOUR CLUB-SPOKED ASTERISK 2726;AL # BLACK FOUR POINTED STAR 2727;AL # WHITE FOUR POINTED STAR 2729;AL # STRESS OUTLINED WHITE STAR 272A;AL # CIRCLED WHITE STAR 272B;AL # OPEN CENTRE BLACK STAR 272C;AL # BLACK CENTRE WHITE STAR 272D;AL # OUTLINED BLACK STAR 272E;AL # HEAVY OUTLINED BLACK STAR 272F;AL # PINWHEEL STAR 2730;AL # SHADOWED WHITE STAR 2731;AL # HEAVY ASTERISK 2732;AL # OPEN CENTRE ASTERISK 2733;AL # EIGHT SPOKED ASTERISK 2734;AL # EIGHT POINTED BLACK STAR 2735;AL # EIGHT POINTED PINWHEEL STAR 2736;AL # SIX POINTED BLACK STAR 2737;AL # EIGHT POINTED RECTILINEAR BLACK STAR 2738;AL # HEAVY EIGHT POINTED RECTILINEAR BLACK STAR 2739;AL # TWELVE POINTED BLACK STAR 273A;AL # SIXTEEN POINTED ASTERISK 273B;AL # TEARDROP-SPOKED ASTERISK 273C;AL # OPEN CENTRE TEARDROP-SPOKED ASTERISK 273D;AL # HEAVY TEARDROP-SPOKED ASTERISK 273E;AL # SIX PETALLED BLACK AND WHITE FLORETTE 273F;AL # BLACK FLORETTE 2740;AL # WHITE FLORETTE 2741;AL # EIGHT PETALLED OUTLINED BLACK FLORETTE 2742;AL # CIRCLED OPEN CENTRE EIGHT POINTED STAR 2743;AL # HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK 2744;AL # SNOWFLAKE 2745;AL # TIGHT TRIFOLIATE SNOWFLAKE 2746;AL # HEAVY CHEVRON SNOWFLAKE 2747;AL # SPARKLE 2748;AL # HEAVY SPARKLE 2749;AL # BALLOON-SPOKED ASTERISK 274A;AL # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK 274B;AL # HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK 274D;AL # SHADOWED WHITE CIRCLE 274F;AL # LOWER RIGHT DROP-SHADOWED WHITE SQUARE 2750;AL # UPPER RIGHT DROP-SHADOWED WHITE SQUARE 2751;AL # LOWER RIGHT SHADOWED WHITE SQUARE 2752;AL # UPPER RIGHT SHADOWED WHITE SQUARE 2756;AL # BLACK DIAMOND MINUS WHITE X 2758;AL # LIGHT VERTICAL BAR 2759;AL # MEDIUM VERTICAL BAR 275A;AL # HEAVY VERTICAL BAR 275B;QU # HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT 275C;QU # HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT 275D;QU # HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT 275E;QU # HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT 2761;AL # CURVED STEM PARAGRAPH SIGN ORNAMENT 2762;EX # HEAVY EXCLAMATION MARK ORNAMENT 2763;EX # HEAVY HEART EXCLAMATION MARK ORNAMENT 2764;AL # HEAVY BLACK HEART 2765;AL # ROTATED HEAVY BLACK HEART BULLET 2766;AL # FLORAL HEART 2767;AL # ROTATED FLORAL HEART BULLET 2768;OP # MEDIUM LEFT PARENTHESIS ORNAMENT 2769;CL # MEDIUM RIGHT PARENTHESIS ORNAMENT 276A;OP # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT 276B;CL # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT 276C;OP # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT 276D;CL # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT 276E;OP # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT 276F;CL # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT 2770;OP # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT 2771;CL # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT 2772;OP # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT 2773;CL # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT 2774;OP # MEDIUM LEFT CURLY BRACKET ORNAMENT 2775;CL # MEDIUM RIGHT CURLY BRACKET ORNAMENT 2776;AL # DINGBAT NEGATIVE CIRCLED DIGIT ONE 2777;AL # DINGBAT NEGATIVE CIRCLED DIGIT TWO 2778;AL # DINGBAT NEGATIVE CIRCLED DIGIT THREE 2779;AL # DINGBAT NEGATIVE CIRCLED DIGIT FOUR 277A;AL # DINGBAT NEGATIVE CIRCLED DIGIT FIVE 277B;AL # DINGBAT NEGATIVE CIRCLED DIGIT SIX 277C;AL # DINGBAT NEGATIVE CIRCLED DIGIT SEVEN 277D;AL # DINGBAT NEGATIVE CIRCLED DIGIT EIGHT 277E;AL # DINGBAT NEGATIVE CIRCLED DIGIT NINE 277F;AL # DINGBAT NEGATIVE CIRCLED NUMBER TEN 2780;AL # DINGBAT CIRCLED SANS-SERIF DIGIT ONE 2781;AL # DINGBAT CIRCLED SANS-SERIF DIGIT TWO 2782;AL # DINGBAT CIRCLED SANS-SERIF DIGIT THREE 2783;AL # DINGBAT CIRCLED SANS-SERIF DIGIT FOUR 2784;AL # DINGBAT CIRCLED SANS-SERIF DIGIT FIVE 2785;AL # DINGBAT CIRCLED SANS-SERIF DIGIT SIX 2786;AL # DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN 2787;AL # DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT 2788;AL # DINGBAT CIRCLED SANS-SERIF DIGIT NINE 2789;AL # DINGBAT CIRCLED SANS-SERIF NUMBER TEN 278A;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE 278B;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO 278C;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE 278D;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR 278E;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE 278F;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX 2790;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN 2791;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT 2792;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE 2793;AL # DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN 2794;AL # HEAVY WIDE-HEADED RIGHTWARDS ARROW 2798;AL # HEAVY SOUTH EAST ARROW 2799;AL # HEAVY RIGHTWARDS ARROW 279A;AL # HEAVY NORTH EAST ARROW 279B;AL # DRAFTING POINT RIGHTWARDS ARROW 279C;AL # HEAVY ROUND-TIPPED RIGHTWARDS ARROW 279D;AL # TRIANGLE-HEADED RIGHTWARDS ARROW 279E;AL # HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW 279F;AL # DASHED TRIANGLE-HEADED RIGHTWARDS ARROW 27A0;AL # HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW 27A1;AL # BLACK RIGHTWARDS ARROW 27A2;AL # THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD 27A3;AL # THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD 27A4;AL # BLACK RIGHTWARDS ARROWHEAD 27A5;AL # HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW 27A6;AL # HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW 27A7;AL # SQUAT BLACK RIGHTWARDS ARROW 27A8;AL # HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW 27A9;AL # RIGHT-SHADED WHITE RIGHTWARDS ARROW 27AA;AL # LEFT-SHADED WHITE RIGHTWARDS ARROW 27AB;AL # BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW 27AC;AL # FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW 27AD;AL # HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27AE;AL # HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27AF;AL # NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27B1;AL # NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW 27B2;AL # CIRCLED HEAVY WHITE RIGHTWARDS ARROW 27B3;AL # WHITE-FEATHERED RIGHTWARDS ARROW 27B4;AL # BLACK-FEATHERED SOUTH EAST ARROW 27B5;AL # BLACK-FEATHERED RIGHTWARDS ARROW 27B6;AL # BLACK-FEATHERED NORTH EAST ARROW 27B7;AL # HEAVY BLACK-FEATHERED SOUTH EAST ARROW 27B8;AL # HEAVY BLACK-FEATHERED RIGHTWARDS ARROW 27B9;AL # HEAVY BLACK-FEATHERED NORTH EAST ARROW 27BA;AL # TEARDROP-BARBED RIGHTWARDS ARROW 27BB;AL # HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW 27BC;AL # WEDGE-TAILED RIGHTWARDS ARROW 27BD;AL # HEAVY WEDGE-TAILED RIGHTWARDS ARROW 27BE;AL # OPEN-OUTLINED RIGHTWARDS ARROW 27D0;AL # WHITE DIAMOND WITH CENTRED DOT 27D1;AL # AND WITH DOT 27D2;AL # ELEMENT OF OPENING UPWARDS 27D3;AL # LOWER RIGHT CORNER WITH DOT 27D4;AL # UPPER LEFT CORNER WITH DOT 27D5;AL # LEFT OUTER JOIN 27D6;AL # RIGHT OUTER JOIN 27D7;AL # FULL OUTER JOIN 27D8;AL # LARGE UP TACK 27D9;AL # LARGE DOWN TACK 27DA;AL # LEFT AND RIGHT DOUBLE TURNSTILE 27DB;AL # LEFT AND RIGHT TACK 27DC;AL # LEFT MULTIMAP 27DD;AL # LONG RIGHT TACK 27DE;AL # LONG LEFT TACK 27DF;AL # UP TACK WITH CIRCLE ABOVE 27E0;AL # LOZENGE DIVIDED BY HORIZONTAL RULE 27E1;AL # WHITE CONCAVE-SIDED DIAMOND 27E2;AL # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK 27E3;AL # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK 27E4;AL # WHITE SQUARE WITH LEFTWARDS TICK 27E5;AL # WHITE SQUARE WITH RIGHTWARDS TICK 27E6;OP # MATHEMATICAL LEFT WHITE SQUARE BRACKET 27E7;CL # MATHEMATICAL RIGHT WHITE SQUARE BRACKET 27E8;OP # MATHEMATICAL LEFT ANGLE BRACKET 27E9;CL # MATHEMATICAL RIGHT ANGLE BRACKET 27EA;OP # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET 27EB;CL # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET 27F0;AL # UPWARDS QUADRUPLE ARROW 27F1;AL # DOWNWARDS QUADRUPLE ARROW 27F2;AL # ANTICLOCKWISE GAPPED CIRCLE ARROW 27F3;AL # CLOCKWISE GAPPED CIRCLE ARROW 27F4;AL # RIGHT ARROW WITH CIRCLED PLUS 27F5;AL # LONG LEFTWARDS ARROW 27F6;AL # LONG RIGHTWARDS ARROW 27F7;AL # LONG LEFT RIGHT ARROW 27F8;AL # LONG LEFTWARDS DOUBLE ARROW 27F9;AL # LONG RIGHTWARDS DOUBLE ARROW 27FA;AL # LONG LEFT RIGHT DOUBLE ARROW 27FB;AL # LONG LEFTWARDS ARROW FROM BAR 27FC;AL # LONG RIGHTWARDS ARROW FROM BAR 27FD;AL # LONG LEFTWARDS DOUBLE ARROW FROM BAR 27FE;AL # LONG RIGHTWARDS DOUBLE ARROW FROM BAR 27FF;AL # LONG RIGHTWARDS SQUIGGLE ARROW 2800;AL # BRAILLE PATTERN BLANK 2801;AL # BRAILLE PATTERN DOTS-1 2802;AL # BRAILLE PATTERN DOTS-2 2803;AL # BRAILLE PATTERN DOTS-12 2804;AL # BRAILLE PATTERN DOTS-3 2805;AL # BRAILLE PATTERN DOTS-13 2806;AL # BRAILLE PATTERN DOTS-23 2807;AL # BRAILLE PATTERN DOTS-123 2808;AL # BRAILLE PATTERN DOTS-4 2809;AL # BRAILLE PATTERN DOTS-14 280A;AL # BRAILLE PATTERN DOTS-24 280B;AL # BRAILLE PATTERN DOTS-124 280C;AL # BRAILLE PATTERN DOTS-34 280D;AL # BRAILLE PATTERN DOTS-134 280E;AL # BRAILLE PATTERN DOTS-234 280F;AL # BRAILLE PATTERN DOTS-1234 2810;AL # BRAILLE PATTERN DOTS-5 2811;AL # BRAILLE PATTERN DOTS-15 2812;AL # BRAILLE PATTERN DOTS-25 2813;AL # BRAILLE PATTERN DOTS-125 2814;AL # BRAILLE PATTERN DOTS-35 2815;AL # BRAILLE PATTERN DOTS-135 2816;AL # BRAILLE PATTERN DOTS-235 2817;AL # BRAILLE PATTERN DOTS-1235 2818;AL # BRAILLE PATTERN DOTS-45 2819;AL # BRAILLE PATTERN DOTS-145 281A;AL # BRAILLE PATTERN DOTS-245 281B;AL # BRAILLE PATTERN DOTS-1245 281C;AL # BRAILLE PATTERN DOTS-345 281D;AL # BRAILLE PATTERN DOTS-1345 281E;AL # BRAILLE PATTERN DOTS-2345 281F;AL # BRAILLE PATTERN DOTS-12345 2820;AL # BRAILLE PATTERN DOTS-6 2821;AL # BRAILLE PATTERN DOTS-16 2822;AL # BRAILLE PATTERN DOTS-26 2823;AL # BRAILLE PATTERN DOTS-126 2824;AL # BRAILLE PATTERN DOTS-36 2825;AL # BRAILLE PATTERN DOTS-136 2826;AL # BRAILLE PATTERN DOTS-236 2827;AL # BRAILLE PATTERN DOTS-1236 2828;AL # BRAILLE PATTERN DOTS-46 2829;AL # BRAILLE PATTERN DOTS-146 282A;AL # BRAILLE PATTERN DOTS-246 282B;AL # BRAILLE PATTERN DOTS-1246 282C;AL # BRAILLE PATTERN DOTS-346 282D;AL # BRAILLE PATTERN DOTS-1346 282E;AL # BRAILLE PATTERN DOTS-2346 282F;AL # BRAILLE PATTERN DOTS-12346 2830;AL # BRAILLE PATTERN DOTS-56 2831;AL # BRAILLE PATTERN DOTS-156 2832;AL # BRAILLE PATTERN DOTS-256 2833;AL # BRAILLE PATTERN DOTS-1256 2834;AL # BRAILLE PATTERN DOTS-356 2835;AL # BRAILLE PATTERN DOTS-1356 2836;AL # BRAILLE PATTERN DOTS-2356 2837;AL # BRAILLE PATTERN DOTS-12356 2838;AL # BRAILLE PATTERN DOTS-456 2839;AL # BRAILLE PATTERN DOTS-1456 283A;AL # BRAILLE PATTERN DOTS-2456 283B;AL # BRAILLE PATTERN DOTS-12456 283C;AL # BRAILLE PATTERN DOTS-3456 283D;AL # BRAILLE PATTERN DOTS-13456 283E;AL # BRAILLE PATTERN DOTS-23456 283F;AL # BRAILLE PATTERN DOTS-123456 2840;AL # BRAILLE PATTERN DOTS-7 2841;AL # BRAILLE PATTERN DOTS-17 2842;AL # BRAILLE PATTERN DOTS-27 2843;AL # BRAILLE PATTERN DOTS-127 2844;AL # BRAILLE PATTERN DOTS-37 2845;AL # BRAILLE PATTERN DOTS-137 2846;AL # BRAILLE PATTERN DOTS-237 2847;AL # BRAILLE PATTERN DOTS-1237 2848;AL # BRAILLE PATTERN DOTS-47 2849;AL # BRAILLE PATTERN DOTS-147 284A;AL # BRAILLE PATTERN DOTS-247 284B;AL # BRAILLE PATTERN DOTS-1247 284C;AL # BRAILLE PATTERN DOTS-347 284D;AL # BRAILLE PATTERN DOTS-1347 284E;AL # BRAILLE PATTERN DOTS-2347 284F;AL # BRAILLE PATTERN DOTS-12347 2850;AL # BRAILLE PATTERN DOTS-57 2851;AL # BRAILLE PATTERN DOTS-157 2852;AL # BRAILLE PATTERN DOTS-257 2853;AL # BRAILLE PATTERN DOTS-1257 2854;AL # BRAILLE PATTERN DOTS-357 2855;AL # BRAILLE PATTERN DOTS-1357 2856;AL # BRAILLE PATTERN DOTS-2357 2857;AL # BRAILLE PATTERN DOTS-12357 2858;AL # BRAILLE PATTERN DOTS-457 2859;AL # BRAILLE PATTERN DOTS-1457 285A;AL # BRAILLE PATTERN DOTS-2457 285B;AL # BRAILLE PATTERN DOTS-12457 285C;AL # BRAILLE PATTERN DOTS-3457 285D;AL # BRAILLE PATTERN DOTS-13457 285E;AL # BRAILLE PATTERN DOTS-23457 285F;AL # BRAILLE PATTERN DOTS-123457 2860;AL # BRAILLE PATTERN DOTS-67 2861;AL # BRAILLE PATTERN DOTS-167 2862;AL # BRAILLE PATTERN DOTS-267 2863;AL # BRAILLE PATTERN DOTS-1267 2864;AL # BRAILLE PATTERN DOTS-367 2865;AL # BRAILLE PATTERN DOTS-1367 2866;AL # BRAILLE PATTERN DOTS-2367 2867;AL # BRAILLE PATTERN DOTS-12367 2868;AL # BRAILLE PATTERN DOTS-467 2869;AL # BRAILLE PATTERN DOTS-1467 286A;AL # BRAILLE PATTERN DOTS-2467 286B;AL # BRAILLE PATTERN DOTS-12467 286C;AL # BRAILLE PATTERN DOTS-3467 286D;AL # BRAILLE PATTERN DOTS-13467 286E;AL # BRAILLE PATTERN DOTS-23467 286F;AL # BRAILLE PATTERN DOTS-123467 2870;AL # BRAILLE PATTERN DOTS-567 2871;AL # BRAILLE PATTERN DOTS-1567 2872;AL # BRAILLE PATTERN DOTS-2567 2873;AL # BRAILLE PATTERN DOTS-12567 2874;AL # BRAILLE PATTERN DOTS-3567 2875;AL # BRAILLE PATTERN DOTS-13567 2876;AL # BRAILLE PATTERN DOTS-23567 2877;AL # BRAILLE PATTERN DOTS-123567 2878;AL # BRAILLE PATTERN DOTS-4567 2879;AL # BRAILLE PATTERN DOTS-14567 287A;AL # BRAILLE PATTERN DOTS-24567 287B;AL # BRAILLE PATTERN DOTS-124567 287C;AL # BRAILLE PATTERN DOTS-34567 287D;AL # BRAILLE PATTERN DOTS-134567 287E;AL # BRAILLE PATTERN DOTS-234567 287F;AL # BRAILLE PATTERN DOTS-1234567 2880;AL # BRAILLE PATTERN DOTS-8 2881;AL # BRAILLE PATTERN DOTS-18 2882;AL # BRAILLE PATTERN DOTS-28 2883;AL # BRAILLE PATTERN DOTS-128 2884;AL # BRAILLE PATTERN DOTS-38 2885;AL # BRAILLE PATTERN DOTS-138 2886;AL # BRAILLE PATTERN DOTS-238 2887;AL # BRAILLE PATTERN DOTS-1238 2888;AL # BRAILLE PATTERN DOTS-48 2889;AL # BRAILLE PATTERN DOTS-148 288A;AL # BRAILLE PATTERN DOTS-248 288B;AL # BRAILLE PATTERN DOTS-1248 288C;AL # BRAILLE PATTERN DOTS-348 288D;AL # BRAILLE PATTERN DOTS-1348 288E;AL # BRAILLE PATTERN DOTS-2348 288F;AL # BRAILLE PATTERN DOTS-12348 2890;AL # BRAILLE PATTERN DOTS-58 2891;AL # BRAILLE PATTERN DOTS-158 2892;AL # BRAILLE PATTERN DOTS-258 2893;AL # BRAILLE PATTERN DOTS-1258 2894;AL # BRAILLE PATTERN DOTS-358 2895;AL # BRAILLE PATTERN DOTS-1358 2896;AL # BRAILLE PATTERN DOTS-2358 2897;AL # BRAILLE PATTERN DOTS-12358 2898;AL # BRAILLE PATTERN DOTS-458 2899;AL # BRAILLE PATTERN DOTS-1458 289A;AL # BRAILLE PATTERN DOTS-2458 289B;AL # BRAILLE PATTERN DOTS-12458 289C;AL # BRAILLE PATTERN DOTS-3458 289D;AL # BRAILLE PATTERN DOTS-13458 289E;AL # BRAILLE PATTERN DOTS-23458 289F;AL # BRAILLE PATTERN DOTS-123458 28A0;AL # BRAILLE PATTERN DOTS-68 28A1;AL # BRAILLE PATTERN DOTS-168 28A2;AL # BRAILLE PATTERN DOTS-268 28A3;AL # BRAILLE PATTERN DOTS-1268 28A4;AL # BRAILLE PATTERN DOTS-368 28A5;AL # BRAILLE PATTERN DOTS-1368 28A6;AL # BRAILLE PATTERN DOTS-2368 28A7;AL # BRAILLE PATTERN DOTS-12368 28A8;AL # BRAILLE PATTERN DOTS-468 28A9;AL # BRAILLE PATTERN DOTS-1468 28AA;AL # BRAILLE PATTERN DOTS-2468 28AB;AL # BRAILLE PATTERN DOTS-12468 28AC;AL # BRAILLE PATTERN DOTS-3468 28AD;AL # BRAILLE PATTERN DOTS-13468 28AE;AL # BRAILLE PATTERN DOTS-23468 28AF;AL # BRAILLE PATTERN DOTS-123468 28B0;AL # BRAILLE PATTERN DOTS-568 28B1;AL # BRAILLE PATTERN DOTS-1568 28B2;AL # BRAILLE PATTERN DOTS-2568 28B3;AL # BRAILLE PATTERN DOTS-12568 28B4;AL # BRAILLE PATTERN DOTS-3568 28B5;AL # BRAILLE PATTERN DOTS-13568 28B6;AL # BRAILLE PATTERN DOTS-23568 28B7;AL # BRAILLE PATTERN DOTS-123568 28B8;AL # BRAILLE PATTERN DOTS-4568 28B9;AL # BRAILLE PATTERN DOTS-14568 28BA;AL # BRAILLE PATTERN DOTS-24568 28BB;AL # BRAILLE PATTERN DOTS-124568 28BC;AL # BRAILLE PATTERN DOTS-34568 28BD;AL # BRAILLE PATTERN DOTS-134568 28BE;AL # BRAILLE PATTERN DOTS-234568 28BF;AL # BRAILLE PATTERN DOTS-1234568 28C0;AL # BRAILLE PATTERN DOTS-78 28C1;AL # BRAILLE PATTERN DOTS-178 28C2;AL # BRAILLE PATTERN DOTS-278 28C3;AL # BRAILLE PATTERN DOTS-1278 28C4;AL # BRAILLE PATTERN DOTS-378 28C5;AL # BRAILLE PATTERN DOTS-1378 28C6;AL # BRAILLE PATTERN DOTS-2378 28C7;AL # BRAILLE PATTERN DOTS-12378 28C8;AL # BRAILLE PATTERN DOTS-478 28C9;AL # BRAILLE PATTERN DOTS-1478 28CA;AL # BRAILLE PATTERN DOTS-2478 28CB;AL # BRAILLE PATTERN DOTS-12478 28CC;AL # BRAILLE PATTERN DOTS-3478 28CD;AL # BRAILLE PATTERN DOTS-13478 28CE;AL # BRAILLE PATTERN DOTS-23478 28CF;AL # BRAILLE PATTERN DOTS-123478 28D0;AL # BRAILLE PATTERN DOTS-578 28D1;AL # BRAILLE PATTERN DOTS-1578 28D2;AL # BRAILLE PATTERN DOTS-2578 28D3;AL # BRAILLE PATTERN DOTS-12578 28D4;AL # BRAILLE PATTERN DOTS-3578 28D5;AL # BRAILLE PATTERN DOTS-13578 28D6;AL # BRAILLE PATTERN DOTS-23578 28D7;AL # BRAILLE PATTERN DOTS-123578 28D8;AL # BRAILLE PATTERN DOTS-4578 28D9;AL # BRAILLE PATTERN DOTS-14578 28DA;AL # BRAILLE PATTERN DOTS-24578 28DB;AL # BRAILLE PATTERN DOTS-124578 28DC;AL # BRAILLE PATTERN DOTS-34578 28DD;AL # BRAILLE PATTERN DOTS-134578 28DE;AL # BRAILLE PATTERN DOTS-234578 28DF;AL # BRAILLE PATTERN DOTS-1234578 28E0;AL # BRAILLE PATTERN DOTS-678 28E1;AL # BRAILLE PATTERN DOTS-1678 28E2;AL # BRAILLE PATTERN DOTS-2678 28E3;AL # BRAILLE PATTERN DOTS-12678 28E4;AL # BRAILLE PATTERN DOTS-3678 28E5;AL # BRAILLE PATTERN DOTS-13678 28E6;AL # BRAILLE PATTERN DOTS-23678 28E7;AL # BRAILLE PATTERN DOTS-123678 28E8;AL # BRAILLE PATTERN DOTS-4678 28E9;AL # BRAILLE PATTERN DOTS-14678 28EA;AL # BRAILLE PATTERN DOTS-24678 28EB;AL # BRAILLE PATTERN DOTS-124678 28EC;AL # BRAILLE PATTERN DOTS-34678 28ED;AL # BRAILLE PATTERN DOTS-134678 28EE;AL # BRAILLE PATTERN DOTS-234678 28EF;AL # BRAILLE PATTERN DOTS-1234678 28F0;AL # BRAILLE PATTERN DOTS-5678 28F1;AL # BRAILLE PATTERN DOTS-15678 28F2;AL # BRAILLE PATTERN DOTS-25678 28F3;AL # BRAILLE PATTERN DOTS-125678 28F4;AL # BRAILLE PATTERN DOTS-35678 28F5;AL # BRAILLE PATTERN DOTS-135678 28F6;AL # BRAILLE PATTERN DOTS-235678 28F7;AL # BRAILLE PATTERN DOTS-1235678 28F8;AL # BRAILLE PATTERN DOTS-45678 28F9;AL # BRAILLE PATTERN DOTS-145678 28FA;AL # BRAILLE PATTERN DOTS-245678 28FB;AL # BRAILLE PATTERN DOTS-1245678 28FC;AL # BRAILLE PATTERN DOTS-345678 28FD;AL # BRAILLE PATTERN DOTS-1345678 28FE;AL # BRAILLE PATTERN DOTS-2345678 28FF;AL # BRAILLE PATTERN DOTS-12345678 2900;AL # RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE 2901;AL # RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE 2902;AL # LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE 2903;AL # RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE 2904;AL # LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE 2905;AL # RIGHTWARDS TWO-HEADED ARROW FROM BAR 2906;AL # LEFTWARDS DOUBLE ARROW FROM BAR 2907;AL # RIGHTWARDS DOUBLE ARROW FROM BAR 2908;AL # DOWNWARDS ARROW WITH HORIZONTAL STROKE 2909;AL # UPWARDS ARROW WITH HORIZONTAL STROKE 290A;AL # UPWARDS TRIPLE ARROW 290B;AL # DOWNWARDS TRIPLE ARROW 290C;AL # LEFTWARDS DOUBLE DASH ARROW 290D;AL # RIGHTWARDS DOUBLE DASH ARROW 290E;AL # LEFTWARDS TRIPLE DASH ARROW 290F;AL # RIGHTWARDS TRIPLE DASH ARROW 2910;AL # RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW 2911;AL # RIGHTWARDS ARROW WITH DOTTED STEM 2912;AL # UPWARDS ARROW TO BAR 2913;AL # DOWNWARDS ARROW TO BAR 2914;AL # RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE 2915;AL # RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE 2916;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL 2917;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE 2918;AL # RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE 2919;AL # LEFTWARDS ARROW-TAIL 291A;AL # RIGHTWARDS ARROW-TAIL 291B;AL # LEFTWARDS DOUBLE ARROW-TAIL 291C;AL # RIGHTWARDS DOUBLE ARROW-TAIL 291D;AL # LEFTWARDS ARROW TO BLACK DIAMOND 291E;AL # RIGHTWARDS ARROW TO BLACK DIAMOND 291F;AL # LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND 2920;AL # RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND 2921;AL # NORTH WEST AND SOUTH EAST ARROW 2922;AL # NORTH EAST AND SOUTH WEST ARROW 2923;AL # NORTH WEST ARROW WITH HOOK 2924;AL # NORTH EAST ARROW WITH HOOK 2925;AL # SOUTH EAST ARROW WITH HOOK 2926;AL # SOUTH WEST ARROW WITH HOOK 2927;AL # NORTH WEST ARROW AND NORTH EAST ARROW 2928;AL # NORTH EAST ARROW AND SOUTH EAST ARROW 2929;AL # SOUTH EAST ARROW AND SOUTH WEST ARROW 292A;AL # SOUTH WEST ARROW AND NORTH WEST ARROW 292B;AL # RISING DIAGONAL CROSSING FALLING DIAGONAL 292C;AL # FALLING DIAGONAL CROSSING RISING DIAGONAL 292D;AL # SOUTH EAST ARROW CROSSING NORTH EAST ARROW 292E;AL # NORTH EAST ARROW CROSSING SOUTH EAST ARROW 292F;AL # FALLING DIAGONAL CROSSING NORTH EAST ARROW 2930;AL # RISING DIAGONAL CROSSING SOUTH EAST ARROW 2931;AL # NORTH EAST ARROW CROSSING NORTH WEST ARROW 2932;AL # NORTH WEST ARROW CROSSING NORTH EAST ARROW 2933;AL # WAVE ARROW POINTING DIRECTLY RIGHT 2934;AL # ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS 2935;AL # ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS 2936;AL # ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS 2937;AL # ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS 2938;AL # RIGHT-SIDE ARC CLOCKWISE ARROW 2939;AL # LEFT-SIDE ARC ANTICLOCKWISE ARROW 293A;AL # TOP ARC ANTICLOCKWISE ARROW 293B;AL # BOTTOM ARC ANTICLOCKWISE ARROW 293C;AL # TOP ARC CLOCKWISE ARROW WITH MINUS 293D;AL # TOP ARC ANTICLOCKWISE ARROW WITH PLUS 293E;AL # LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW 293F;AL # LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW 2940;AL # ANTICLOCKWISE CLOSED CIRCLE ARROW 2941;AL # CLOCKWISE CLOSED CIRCLE ARROW 2942;AL # RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW 2943;AL # LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW 2944;AL # SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW 2945;AL # RIGHTWARDS ARROW WITH PLUS BELOW 2946;AL # LEFTWARDS ARROW WITH PLUS BELOW 2947;AL # RIGHTWARDS ARROW THROUGH X 2948;AL # LEFT RIGHT ARROW THROUGH SMALL CIRCLE 2949;AL # UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE 294A;AL # LEFT BARB UP RIGHT BARB DOWN HARPOON 294B;AL # LEFT BARB DOWN RIGHT BARB UP HARPOON 294C;AL # UP BARB RIGHT DOWN BARB LEFT HARPOON 294D;AL # UP BARB LEFT DOWN BARB RIGHT HARPOON 294E;AL # LEFT BARB UP RIGHT BARB UP HARPOON 294F;AL # UP BARB RIGHT DOWN BARB RIGHT HARPOON 2950;AL # LEFT BARB DOWN RIGHT BARB DOWN HARPOON 2951;AL # UP BARB LEFT DOWN BARB LEFT HARPOON 2952;AL # LEFTWARDS HARPOON WITH BARB UP TO BAR 2953;AL # RIGHTWARDS HARPOON WITH BARB UP TO BAR 2954;AL # UPWARDS HARPOON WITH BARB RIGHT TO BAR 2955;AL # DOWNWARDS HARPOON WITH BARB RIGHT TO BAR 2956;AL # LEFTWARDS HARPOON WITH BARB DOWN TO BAR 2957;AL # RIGHTWARDS HARPOON WITH BARB DOWN TO BAR 2958;AL # UPWARDS HARPOON WITH BARB LEFT TO BAR 2959;AL # DOWNWARDS HARPOON WITH BARB LEFT TO BAR 295A;AL # LEFTWARDS HARPOON WITH BARB UP FROM BAR 295B;AL # RIGHTWARDS HARPOON WITH BARB UP FROM BAR 295C;AL # UPWARDS HARPOON WITH BARB RIGHT FROM BAR 295D;AL # DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR 295E;AL # LEFTWARDS HARPOON WITH BARB DOWN FROM BAR 295F;AL # RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR 2960;AL # UPWARDS HARPOON WITH BARB LEFT FROM BAR 2961;AL # DOWNWARDS HARPOON WITH BARB LEFT FROM BAR 2962;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN 2963;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT 2964;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN 2965;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT 2966;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP 2967;AL # LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN 2968;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP 2969;AL # RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN 296A;AL # LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH 296B;AL # LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH 296C;AL # RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH 296D;AL # RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH 296E;AL # UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT 296F;AL # DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT 2970;AL # RIGHT DOUBLE ARROW WITH ROUNDED HEAD 2971;AL # EQUALS SIGN ABOVE RIGHTWARDS ARROW 2972;AL # TILDE OPERATOR ABOVE RIGHTWARDS ARROW 2973;AL # LEFTWARDS ARROW ABOVE TILDE OPERATOR 2974;AL # RIGHTWARDS ARROW ABOVE TILDE OPERATOR 2975;AL # RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO 2976;AL # LESS-THAN ABOVE LEFTWARDS ARROW 2977;AL # LEFTWARDS ARROW THROUGH LESS-THAN 2978;AL # GREATER-THAN ABOVE RIGHTWARDS ARROW 2979;AL # SUBSET ABOVE RIGHTWARDS ARROW 297A;AL # LEFTWARDS ARROW THROUGH SUBSET 297B;AL # SUPERSET ABOVE LEFTWARDS ARROW 297C;AL # LEFT FISH TAIL 297D;AL # RIGHT FISH TAIL 297E;AL # UP FISH TAIL 297F;AL # DOWN FISH TAIL 2980;AL # TRIPLE VERTICAL BAR DELIMITER 2981;AL # Z NOTATION SPOT 2982;AL # Z NOTATION TYPE COLON 2983;OP # LEFT WHITE CURLY BRACKET 2984;CL # RIGHT WHITE CURLY BRACKET 2985;OP # LEFT WHITE PARENTHESIS 2986;CL # RIGHT WHITE PARENTHESIS 2987;OP # Z NOTATION LEFT IMAGE BRACKET 2988;CL # Z NOTATION RIGHT IMAGE BRACKET 2989;OP # Z NOTATION LEFT BINDING BRACKET 298A;CL # Z NOTATION RIGHT BINDING BRACKET 298B;OP # LEFT SQUARE BRACKET WITH UNDERBAR 298C;CL # RIGHT SQUARE BRACKET WITH UNDERBAR 298D;OP # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER 298E;CL # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 298F;OP # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 2990;CL # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER 2991;OP # LEFT ANGLE BRACKET WITH DOT 2992;CL # RIGHT ANGLE BRACKET WITH DOT 2993;OP # LEFT ARC LESS-THAN BRACKET 2994;CL # RIGHT ARC GREATER-THAN BRACKET 2995;OP # DOUBLE LEFT ARC GREATER-THAN BRACKET 2996;CL # DOUBLE RIGHT ARC LESS-THAN BRACKET 2997;OP # LEFT BLACK TORTOISE SHELL BRACKET 2998;CL # RIGHT BLACK TORTOISE SHELL BRACKET 2999;AL # DOTTED FENCE 299A;AL # VERTICAL ZIGZAG LINE 299B;AL # MEASURED ANGLE OPENING LEFT 299C;AL # RIGHT ANGLE VARIANT WITH SQUARE 299D;AL # MEASURED RIGHT ANGLE WITH DOT 299E;AL # ANGLE WITH S INSIDE 299F;AL # ACUTE ANGLE 29A0;AL # SPHERICAL ANGLE OPENING LEFT 29A1;AL # SPHERICAL ANGLE OPENING UP 29A2;AL # TURNED ANGLE 29A3;AL # REVERSED ANGLE 29A4;AL # ANGLE WITH UNDERBAR 29A5;AL # REVERSED ANGLE WITH UNDERBAR 29A6;AL # OBLIQUE ANGLE OPENING UP 29A7;AL # OBLIQUE ANGLE OPENING DOWN 29A8;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT 29A9;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT 29AA;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT 29AB;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT 29AC;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP 29AD;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP 29AE;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN 29AF;AL # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN 29B0;AL # REVERSED EMPTY SET 29B1;AL # EMPTY SET WITH OVERBAR 29B2;AL # EMPTY SET WITH SMALL CIRCLE ABOVE 29B3;AL # EMPTY SET WITH RIGHT ARROW ABOVE 29B4;AL # EMPTY SET WITH LEFT ARROW ABOVE 29B5;AL # CIRCLE WITH HORIZONTAL BAR 29B6;AL # CIRCLED VERTICAL BAR 29B7;AL # CIRCLED PARALLEL 29B8;AL # CIRCLED REVERSE SOLIDUS 29B9;AL # CIRCLED PERPENDICULAR 29BA;AL # CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR 29BB;AL # CIRCLE WITH SUPERIMPOSED X 29BC;AL # CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN 29BD;AL # UP ARROW THROUGH CIRCLE 29BE;AL # CIRCLED WHITE BULLET 29BF;AL # CIRCLED BULLET 29C0;AL # CIRCLED LESS-THAN 29C1;AL # CIRCLED GREATER-THAN 29C2;AL # CIRCLE WITH SMALL CIRCLE TO THE RIGHT 29C3;AL # CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT 29C4;AL # SQUARED RISING DIAGONAL SLASH 29C5;AL # SQUARED FALLING DIAGONAL SLASH 29C6;AL # SQUARED ASTERISK 29C7;AL # SQUARED SMALL CIRCLE 29C8;AL # SQUARED SQUARE 29C9;AL # TWO JOINED SQUARES 29CA;AL # TRIANGLE WITH DOT ABOVE 29CB;AL # TRIANGLE WITH UNDERBAR 29CC;AL # S IN TRIANGLE 29CD;AL # TRIANGLE WITH SERIFS AT BOTTOM 29CE;AL # RIGHT TRIANGLE ABOVE LEFT TRIANGLE 29CF;AL # LEFT TRIANGLE BESIDE VERTICAL BAR 29D0;AL # VERTICAL BAR BESIDE RIGHT TRIANGLE 29D1;AL # BOWTIE WITH LEFT HALF BLACK 29D2;AL # BOWTIE WITH RIGHT HALF BLACK 29D3;AL # BLACK BOWTIE 29D4;AL # TIMES WITH LEFT HALF BLACK 29D5;AL # TIMES WITH RIGHT HALF BLACK 29D6;AL # WHITE HOURGLASS 29D7;AL # BLACK HOURGLASS 29D8;OP # LEFT WIGGLY FENCE 29D9;CL # RIGHT WIGGLY FENCE 29DA;OP # LEFT DOUBLE WIGGLY FENCE 29DB;CL # RIGHT DOUBLE WIGGLY FENCE 29DC;AL # INCOMPLETE INFINITY 29DD;AL # TIE OVER INFINITY 29DE;AL # INFINITY NEGATED WITH VERTICAL BAR 29DF;AL # DOUBLE-ENDED MULTIMAP 29E0;AL # SQUARE WITH CONTOURED OUTLINE 29E1;AL # INCREASES AS 29E2;AL # SHUFFLE PRODUCT 29E3;AL # EQUALS SIGN AND SLANTED PARALLEL 29E4;AL # EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE 29E5;AL # IDENTICAL TO AND SLANTED PARALLEL 29E6;AL # GLEICH STARK 29E7;AL # THERMODYNAMIC 29E8;AL # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK 29E9;AL # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK 29EA;AL # BLACK DIAMOND WITH DOWN ARROW 29EB;AL # BLACK LOZENGE 29EC;AL # WHITE CIRCLE WITH DOWN ARROW 29ED;AL # BLACK CIRCLE WITH DOWN ARROW 29EE;AL # ERROR-BARRED WHITE SQUARE 29EF;AL # ERROR-BARRED BLACK SQUARE 29F0;AL # ERROR-BARRED WHITE DIAMOND 29F1;AL # ERROR-BARRED BLACK DIAMOND 29F2;AL # ERROR-BARRED WHITE CIRCLE 29F3;AL # ERROR-BARRED BLACK CIRCLE 29F4;AL # RULE-DELAYED 29F5;AL # REVERSE SOLIDUS OPERATOR 29F6;AL # SOLIDUS WITH OVERBAR 29F7;AL # REVERSE SOLIDUS WITH HORIZONTAL STROKE 29F8;AL # BIG SOLIDUS 29F9;AL # BIG REVERSE SOLIDUS 29FA;AL # DOUBLE PLUS 29FB;AL # TRIPLE PLUS 29FC;OP # LEFT-POINTING CURVED ANGLE BRACKET 29FD;CL # RIGHT-POINTING CURVED ANGLE BRACKET 29FE;AL # TINY 29FF;AL # MINY 2A00;AL # N-ARY CIRCLED DOT OPERATOR 2A01;AL # N-ARY CIRCLED PLUS OPERATOR 2A02;AL # N-ARY CIRCLED TIMES OPERATOR 2A03;AL # N-ARY UNION OPERATOR WITH DOT 2A04;AL # N-ARY UNION OPERATOR WITH PLUS 2A05;AL # N-ARY SQUARE INTERSECTION OPERATOR 2A06;AL # N-ARY SQUARE UNION OPERATOR 2A07;AL # TWO LOGICAL AND OPERATOR 2A08;AL # TWO LOGICAL OR OPERATOR 2A09;AL # N-ARY TIMES OPERATOR 2A0A;AL # MODULO TWO SUM 2A0B;AL # SUMMATION WITH INTEGRAL 2A0C;AL # QUADRUPLE INTEGRAL OPERATOR 2A0D;AL # FINITE PART INTEGRAL 2A0E;AL # INTEGRAL WITH DOUBLE STROKE 2A0F;AL # INTEGRAL AVERAGE WITH SLASH 2A10;AL # CIRCULATION FUNCTION 2A11;AL # ANTICLOCKWISE INTEGRATION 2A12;AL # LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE 2A13;AL # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE 2A14;AL # LINE INTEGRATION NOT INCLUDING THE POLE 2A15;AL # INTEGRAL AROUND A POINT OPERATOR 2A16;AL # QUATERNION INTEGRAL OPERATOR 2A17;AL # INTEGRAL WITH LEFTWARDS ARROW WITH HOOK 2A18;AL # INTEGRAL WITH TIMES SIGN 2A19;AL # INTEGRAL WITH INTERSECTION 2A1A;AL # INTEGRAL WITH UNION 2A1B;AL # INTEGRAL WITH OVERBAR 2A1C;AL # INTEGRAL WITH UNDERBAR 2A1D;AL # JOIN 2A1E;AL # LARGE LEFT TRIANGLE OPERATOR 2A1F;AL # Z NOTATION SCHEMA COMPOSITION 2A20;AL # Z NOTATION SCHEMA PIPING 2A21;AL # Z NOTATION SCHEMA PROJECTION 2A22;AL # PLUS SIGN WITH SMALL CIRCLE ABOVE 2A23;AL # PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE 2A24;AL # PLUS SIGN WITH TILDE ABOVE 2A25;AL # PLUS SIGN WITH DOT BELOW 2A26;AL # PLUS SIGN WITH TILDE BELOW 2A27;AL # PLUS SIGN WITH SUBSCRIPT TWO 2A28;AL # PLUS SIGN WITH BLACK TRIANGLE 2A29;AL # MINUS SIGN WITH COMMA ABOVE 2A2A;AL # MINUS SIGN WITH DOT BELOW 2A2B;AL # MINUS SIGN WITH FALLING DOTS 2A2C;AL # MINUS SIGN WITH RISING DOTS 2A2D;AL # PLUS SIGN IN LEFT HALF CIRCLE 2A2E;AL # PLUS SIGN IN RIGHT HALF CIRCLE 2A2F;AL # VECTOR OR CROSS PRODUCT 2A30;AL # MULTIPLICATION SIGN WITH DOT ABOVE 2A31;AL # MULTIPLICATION SIGN WITH UNDERBAR 2A32;AL # SEMIDIRECT PRODUCT WITH BOTTOM CLOSED 2A33;AL # SMASH PRODUCT 2A34;AL # MULTIPLICATION SIGN IN LEFT HALF CIRCLE 2A35;AL # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE 2A36;AL # CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT 2A37;AL # MULTIPLICATION SIGN IN DOUBLE CIRCLE 2A38;AL # CIRCLED DIVISION SIGN 2A39;AL # PLUS SIGN IN TRIANGLE 2A3A;AL # MINUS SIGN IN TRIANGLE 2A3B;AL # MULTIPLICATION SIGN IN TRIANGLE 2A3C;AL # INTERIOR PRODUCT 2A3D;AL # RIGHTHAND INTERIOR PRODUCT 2A3E;AL # Z NOTATION RELATIONAL COMPOSITION 2A3F;AL # AMALGAMATION OR COPRODUCT 2A40;AL # INTERSECTION WITH DOT 2A41;AL # UNION WITH MINUS SIGN 2A42;AL # UNION WITH OVERBAR 2A43;AL # INTERSECTION WITH OVERBAR 2A44;AL # INTERSECTION WITH LOGICAL AND 2A45;AL # UNION WITH LOGICAL OR 2A46;AL # UNION ABOVE INTERSECTION 2A47;AL # INTERSECTION ABOVE UNION 2A48;AL # UNION ABOVE BAR ABOVE INTERSECTION 2A49;AL # INTERSECTION ABOVE BAR ABOVE UNION 2A4A;AL # UNION BESIDE AND JOINED WITH UNION 2A4B;AL # INTERSECTION BESIDE AND JOINED WITH INTERSECTION 2A4C;AL # CLOSED UNION WITH SERIFS 2A4D;AL # CLOSED INTERSECTION WITH SERIFS 2A4E;AL # DOUBLE SQUARE INTERSECTION 2A4F;AL # DOUBLE SQUARE UNION 2A50;AL # CLOSED UNION WITH SERIFS AND SMASH PRODUCT 2A51;AL # LOGICAL AND WITH DOT ABOVE 2A52;AL # LOGICAL OR WITH DOT ABOVE 2A53;AL # DOUBLE LOGICAL AND 2A54;AL # DOUBLE LOGICAL OR 2A55;AL # TWO INTERSECTING LOGICAL AND 2A56;AL # TWO INTERSECTING LOGICAL OR 2A57;AL # SLOPING LARGE OR 2A58;AL # SLOPING LARGE AND 2A59;AL # LOGICAL OR OVERLAPPING LOGICAL AND 2A5A;AL # LOGICAL AND WITH MIDDLE STEM 2A5B;AL # LOGICAL OR WITH MIDDLE STEM 2A5C;AL # LOGICAL AND WITH HORIZONTAL DASH 2A5D;AL # LOGICAL OR WITH HORIZONTAL DASH 2A5E;AL # LOGICAL AND WITH DOUBLE OVERBAR 2A5F;AL # LOGICAL AND WITH UNDERBAR 2A60;AL # LOGICAL AND WITH DOUBLE UNDERBAR 2A61;AL # SMALL VEE WITH UNDERBAR 2A62;AL # LOGICAL OR WITH DOUBLE OVERBAR 2A63;AL # LOGICAL OR WITH DOUBLE UNDERBAR 2A64;AL # Z NOTATION DOMAIN ANTIRESTRICTION 2A65;AL # Z NOTATION RANGE ANTIRESTRICTION 2A66;AL # EQUALS SIGN WITH DOT BELOW 2A67;AL # IDENTICAL WITH DOT ABOVE 2A68;AL # TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE 2A69;AL # TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE 2A6A;AL # TILDE OPERATOR WITH DOT ABOVE 2A6B;AL # TILDE OPERATOR WITH RISING DOTS 2A6C;AL # SIMILAR MINUS SIMILAR 2A6D;AL # CONGRUENT WITH DOT ABOVE 2A6E;AL # EQUALS WITH ASTERISK 2A6F;AL # ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT 2A70;AL # APPROXIMATELY EQUAL OR EQUAL TO 2A71;AL # EQUALS SIGN ABOVE PLUS SIGN 2A72;AL # PLUS SIGN ABOVE EQUALS SIGN 2A73;AL # EQUALS SIGN ABOVE TILDE OPERATOR 2A74;AL # DOUBLE COLON EQUAL 2A75;AL # TWO CONSECUTIVE EQUALS SIGNS 2A76;AL # THREE CONSECUTIVE EQUALS SIGNS 2A77;AL # EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW 2A78;AL # EQUIVALENT WITH FOUR DOTS ABOVE 2A79;AL # LESS-THAN WITH CIRCLE INSIDE 2A7A;AL # GREATER-THAN WITH CIRCLE INSIDE 2A7B;AL # LESS-THAN WITH QUESTION MARK ABOVE 2A7C;AL # GREATER-THAN WITH QUESTION MARK ABOVE 2A7D;AL # LESS-THAN OR SLANTED EQUAL TO 2A7E;AL # GREATER-THAN OR SLANTED EQUAL TO 2A7F;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A80;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A81;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A82;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A83;AL # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT 2A84;AL # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT 2A85;AL # LESS-THAN OR APPROXIMATE 2A86;AL # GREATER-THAN OR APPROXIMATE 2A87;AL # LESS-THAN AND SINGLE-LINE NOT EQUAL TO 2A88;AL # GREATER-THAN AND SINGLE-LINE NOT EQUAL TO 2A89;AL # LESS-THAN AND NOT APPROXIMATE 2A8A;AL # GREATER-THAN AND NOT APPROXIMATE 2A8B;AL # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN 2A8C;AL # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN 2A8D;AL # LESS-THAN ABOVE SIMILAR OR EQUAL 2A8E;AL # GREATER-THAN ABOVE SIMILAR OR EQUAL 2A8F;AL # LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN 2A90;AL # GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN 2A91;AL # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL 2A92;AL # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL 2A93;AL # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL 2A94;AL # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL 2A95;AL # SLANTED EQUAL TO OR LESS-THAN 2A96;AL # SLANTED EQUAL TO OR GREATER-THAN 2A97;AL # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE 2A98;AL # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE 2A99;AL # DOUBLE-LINE EQUAL TO OR LESS-THAN 2A9A;AL # DOUBLE-LINE EQUAL TO OR GREATER-THAN 2A9B;AL # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN 2A9C;AL # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN 2A9D;AL # SIMILAR OR LESS-THAN 2A9E;AL # SIMILAR OR GREATER-THAN 2A9F;AL # SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN 2AA0;AL # SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN 2AA1;AL # DOUBLE NESTED LESS-THAN 2AA2;AL # DOUBLE NESTED GREATER-THAN 2AA3;AL # DOUBLE NESTED LESS-THAN WITH UNDERBAR 2AA4;AL # GREATER-THAN OVERLAPPING LESS-THAN 2AA5;AL # GREATER-THAN BESIDE LESS-THAN 2AA6;AL # LESS-THAN CLOSED BY CURVE 2AA7;AL # GREATER-THAN CLOSED BY CURVE 2AA8;AL # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AA9;AL # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AAA;AL # SMALLER THAN 2AAB;AL # LARGER THAN 2AAC;AL # SMALLER THAN OR EQUAL TO 2AAD;AL # LARGER THAN OR EQUAL TO 2AAE;AL # EQUALS SIGN WITH BUMPY ABOVE 2AAF;AL # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN 2AB0;AL # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN 2AB1;AL # PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO 2AB2;AL # SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO 2AB3;AL # PRECEDES ABOVE EQUALS SIGN 2AB4;AL # SUCCEEDS ABOVE EQUALS SIGN 2AB5;AL # PRECEDES ABOVE NOT EQUAL TO 2AB6;AL # SUCCEEDS ABOVE NOT EQUAL TO 2AB7;AL # PRECEDES ABOVE ALMOST EQUAL TO 2AB8;AL # SUCCEEDS ABOVE ALMOST EQUAL TO 2AB9;AL # PRECEDES ABOVE NOT ALMOST EQUAL TO 2ABA;AL # SUCCEEDS ABOVE NOT ALMOST EQUAL TO 2ABB;AL # DOUBLE PRECEDES 2ABC;AL # DOUBLE SUCCEEDS 2ABD;AL # SUBSET WITH DOT 2ABE;AL # SUPERSET WITH DOT 2ABF;AL # SUBSET WITH PLUS SIGN BELOW 2AC0;AL # SUPERSET WITH PLUS SIGN BELOW 2AC1;AL # SUBSET WITH MULTIPLICATION SIGN BELOW 2AC2;AL # SUPERSET WITH MULTIPLICATION SIGN BELOW 2AC3;AL # SUBSET OF OR EQUAL TO WITH DOT ABOVE 2AC4;AL # SUPERSET OF OR EQUAL TO WITH DOT ABOVE 2AC5;AL # SUBSET OF ABOVE EQUALS SIGN 2AC6;AL # SUPERSET OF ABOVE EQUALS SIGN 2AC7;AL # SUBSET OF ABOVE TILDE OPERATOR 2AC8;AL # SUPERSET OF ABOVE TILDE OPERATOR 2AC9;AL # SUBSET OF ABOVE ALMOST EQUAL TO 2ACA;AL # SUPERSET OF ABOVE ALMOST EQUAL TO 2ACB;AL # SUBSET OF ABOVE NOT EQUAL TO 2ACC;AL # SUPERSET OF ABOVE NOT EQUAL TO 2ACD;AL # SQUARE LEFT OPEN BOX OPERATOR 2ACE;AL # SQUARE RIGHT OPEN BOX OPERATOR 2ACF;AL # CLOSED SUBSET 2AD0;AL # CLOSED SUPERSET 2AD1;AL # CLOSED SUBSET OR EQUAL TO 2AD2;AL # CLOSED SUPERSET OR EQUAL TO 2AD3;AL # SUBSET ABOVE SUPERSET 2AD4;AL # SUPERSET ABOVE SUBSET 2AD5;AL # SUBSET ABOVE SUBSET 2AD6;AL # SUPERSET ABOVE SUPERSET 2AD7;AL # SUPERSET BESIDE SUBSET 2AD8;AL # SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET 2AD9;AL # ELEMENT OF OPENING DOWNWARDS 2ADA;AL # PITCHFORK WITH TEE TOP 2ADB;AL # TRANSVERSAL INTERSECTION 2ADC;AL # FORKING 2ADD;AL # NONFORKING 2ADE;AL # SHORT LEFT TACK 2ADF;AL # SHORT DOWN TACK 2AE0;AL # SHORT UP TACK 2AE1;AL # PERPENDICULAR WITH S 2AE2;AL # VERTICAL BAR TRIPLE RIGHT TURNSTILE 2AE3;AL # DOUBLE VERTICAL BAR LEFT TURNSTILE 2AE4;AL # VERTICAL BAR DOUBLE LEFT TURNSTILE 2AE5;AL # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE 2AE6;AL # LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL 2AE7;AL # SHORT DOWN TACK WITH OVERBAR 2AE8;AL # SHORT UP TACK WITH UNDERBAR 2AE9;AL # SHORT UP TACK ABOVE SHORT DOWN TACK 2AEA;AL # DOUBLE DOWN TACK 2AEB;AL # DOUBLE UP TACK 2AEC;AL # DOUBLE STROKE NOT SIGN 2AED;AL # REVERSED DOUBLE STROKE NOT SIGN 2AEE;AL # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH 2AEF;AL # VERTICAL LINE WITH CIRCLE ABOVE 2AF0;AL # VERTICAL LINE WITH CIRCLE BELOW 2AF1;AL # DOWN TACK WITH CIRCLE BELOW 2AF2;AL # PARALLEL WITH HORIZONTAL STROKE 2AF3;AL # PARALLEL WITH TILDE OPERATOR 2AF4;AL # TRIPLE VERTICAL BAR BINARY RELATION 2AF5;AL # TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE 2AF6;AL # TRIPLE COLON OPERATOR 2AF7;AL # TRIPLE NESTED LESS-THAN 2AF8;AL # TRIPLE NESTED GREATER-THAN 2AF9;AL # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO 2AFA;AL # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO 2AFB;AL # TRIPLE SOLIDUS BINARY RELATION 2AFC;AL # LARGE TRIPLE VERTICAL BAR OPERATOR 2AFD;AL # DOUBLE SOLIDUS OPERATOR 2AFE;AL # WHITE VERTICAL BAR 2AFF;AL # N-ARY WHITE VERTICAL BAR 2E80;ID # CJK RADICAL REPEAT 2E81;ID # CJK RADICAL CLIFF 2E82;ID # CJK RADICAL SECOND ONE 2E83;ID # CJK RADICAL SECOND TWO 2E84;ID # CJK RADICAL SECOND THREE 2E85;ID # CJK RADICAL PERSON 2E86;ID # CJK RADICAL BOX 2E87;ID # CJK RADICAL TABLE 2E88;ID # CJK RADICAL KNIFE ONE 2E89;ID # CJK RADICAL KNIFE TWO 2E8A;ID # CJK RADICAL DIVINATION 2E8B;ID # CJK RADICAL SEAL 2E8C;ID # CJK RADICAL SMALL ONE 2E8D;ID # CJK RADICAL SMALL TWO 2E8E;ID # CJK RADICAL LAME ONE 2E8F;ID # CJK RADICAL LAME TWO 2E90;ID # CJK RADICAL LAME THREE 2E91;ID # CJK RADICAL LAME FOUR 2E92;ID # CJK RADICAL SNAKE 2E93;ID # CJK RADICAL THREAD 2E94;ID # CJK RADICAL SNOUT ONE 2E95;ID # CJK RADICAL SNOUT TWO 2E96;ID # CJK RADICAL HEART ONE 2E97;ID # CJK RADICAL HEART TWO 2E98;ID # CJK RADICAL HAND 2E99;ID # CJK RADICAL RAP 2E9B;ID # CJK RADICAL CHOKE 2E9C;ID # CJK RADICAL SUN 2E9D;ID # CJK RADICAL MOON 2E9E;ID # CJK RADICAL DEATH 2E9F;ID # CJK RADICAL MOTHER 2EA0;ID # CJK RADICAL CIVILIAN 2EA1;ID # CJK RADICAL WATER ONE 2EA2;ID # CJK RADICAL WATER TWO 2EA3;ID # CJK RADICAL FIRE 2EA4;ID # CJK RADICAL PAW ONE 2EA5;ID # CJK RADICAL PAW TWO 2EA6;ID # CJK RADICAL SIMPLIFIED HALF TREE TRUNK 2EA7;ID # CJK RADICAL COW 2EA8;ID # CJK RADICAL DOG 2EA9;ID # CJK RADICAL JADE 2EAA;ID # CJK RADICAL BOLT OF CLOTH 2EAB;ID # CJK RADICAL EYE 2EAC;ID # CJK RADICAL SPIRIT ONE 2EAD;ID # CJK RADICAL SPIRIT TWO 2EAE;ID # CJK RADICAL BAMBOO 2EAF;ID # CJK RADICAL SILK 2EB0;ID # CJK RADICAL C-SIMPLIFIED SILK 2EB1;ID # CJK RADICAL NET ONE 2EB2;ID # CJK RADICAL NET TWO 2EB3;ID # CJK RADICAL NET THREE 2EB4;ID # CJK RADICAL NET FOUR 2EB5;ID # CJK RADICAL MESH 2EB6;ID # CJK RADICAL SHEEP 2EB7;ID # CJK RADICAL RAM 2EB8;ID # CJK RADICAL EWE 2EB9;ID # CJK RADICAL OLD 2EBA;ID # CJK RADICAL BRUSH ONE 2EBB;ID # CJK RADICAL BRUSH TWO 2EBC;ID # CJK RADICAL MEAT 2EBD;ID # CJK RADICAL MORTAR 2EBE;ID # CJK RADICAL GRASS ONE 2EBF;ID # CJK RADICAL GRASS TWO 2EC0;ID # CJK RADICAL GRASS THREE 2EC1;ID # CJK RADICAL TIGER 2EC2;ID # CJK RADICAL CLOTHES 2EC3;ID # CJK RADICAL WEST ONE 2EC4;ID # CJK RADICAL WEST TWO 2EC5;ID # CJK RADICAL C-SIMPLIFIED SEE 2EC6;ID # CJK RADICAL SIMPLIFIED HORN 2EC7;ID # CJK RADICAL HORN 2EC8;ID # CJK RADICAL C-SIMPLIFIED SPEECH 2EC9;ID # CJK RADICAL C-SIMPLIFIED SHELL 2ECA;ID # CJK RADICAL FOOT 2ECB;ID # CJK RADICAL C-SIMPLIFIED CART 2ECC;ID # CJK RADICAL SIMPLIFIED WALK 2ECD;ID # CJK RADICAL WALK ONE 2ECE;ID # CJK RADICAL WALK TWO 2ECF;ID # CJK RADICAL CITY 2ED0;ID # CJK RADICAL C-SIMPLIFIED GOLD 2ED1;ID # CJK RADICAL LONG ONE 2ED2;ID # CJK RADICAL LONG TWO 2ED3;ID # CJK RADICAL C-SIMPLIFIED LONG 2ED4;ID # CJK RADICAL C-SIMPLIFIED GATE 2ED5;ID # CJK RADICAL MOUND ONE 2ED6;ID # CJK RADICAL MOUND TWO 2ED7;ID # CJK RADICAL RAIN 2ED8;ID # CJK RADICAL BLUE 2ED9;ID # CJK RADICAL C-SIMPLIFIED TANNED LEATHER 2EDA;ID # CJK RADICAL C-SIMPLIFIED LEAF 2EDB;ID # CJK RADICAL C-SIMPLIFIED WIND 2EDC;ID # CJK RADICAL C-SIMPLIFIED FLY 2EDD;ID # CJK RADICAL EAT ONE 2EDE;ID # CJK RADICAL EAT TWO 2EDF;ID # CJK RADICAL EAT THREE 2EE0;ID # CJK RADICAL C-SIMPLIFIED EAT 2EE1;ID # CJK RADICAL HEAD 2EE2;ID # CJK RADICAL C-SIMPLIFIED HORSE 2EE3;ID # CJK RADICAL BONE 2EE4;ID # CJK RADICAL GHOST 2EE5;ID # CJK RADICAL C-SIMPLIFIED FISH 2EE6;ID # CJK RADICAL C-SIMPLIFIED BIRD 2EE7;ID # CJK RADICAL C-SIMPLIFIED SALT 2EE8;ID # CJK RADICAL SIMPLIFIED WHEAT 2EE9;ID # CJK RADICAL SIMPLIFIED YELLOW 2EEA;ID # CJK RADICAL C-SIMPLIFIED FROG 2EEB;ID # CJK RADICAL J-SIMPLIFIED EVEN 2EEC;ID # CJK RADICAL C-SIMPLIFIED EVEN 2EED;ID # CJK RADICAL J-SIMPLIFIED TOOTH 2EEE;ID # CJK RADICAL C-SIMPLIFIED TOOTH 2EEF;ID # CJK RADICAL J-SIMPLIFIED DRAGON 2EF0;ID # CJK RADICAL C-SIMPLIFIED DRAGON 2EF1;ID # CJK RADICAL TURTLE 2EF2;ID # CJK RADICAL J-SIMPLIFIED TURTLE 2EF3;ID # CJK RADICAL C-SIMPLIFIED TURTLE 2F00;ID # KANGXI RADICAL ONE 2F01;ID # KANGXI RADICAL LINE 2F02;ID # KANGXI RADICAL DOT 2F03;ID # KANGXI RADICAL SLASH 2F04;ID # KANGXI RADICAL SECOND 2F05;ID # KANGXI RADICAL HOOK 2F06;ID # KANGXI RADICAL TWO 2F07;ID # KANGXI RADICAL LID 2F08;ID # KANGXI RADICAL MAN 2F09;ID # KANGXI RADICAL LEGS 2F0A;ID # KANGXI RADICAL ENTER 2F0B;ID # KANGXI RADICAL EIGHT 2F0C;ID # KANGXI RADICAL DOWN BOX 2F0D;ID # KANGXI RADICAL COVER 2F0E;ID # KANGXI RADICAL ICE 2F0F;ID # KANGXI RADICAL TABLE 2F10;ID # KANGXI RADICAL OPEN BOX 2F11;ID # KANGXI RADICAL KNIFE 2F12;ID # KANGXI RADICAL POWER 2F13;ID # KANGXI RADICAL WRAP 2F14;ID # KANGXI RADICAL SPOON 2F15;ID # KANGXI RADICAL RIGHT OPEN BOX 2F16;ID # KANGXI RADICAL HIDING ENCLOSURE 2F17;ID # KANGXI RADICAL TEN 2F18;ID # KANGXI RADICAL DIVINATION 2F19;ID # KANGXI RADICAL SEAL 2F1A;ID # KANGXI RADICAL CLIFF 2F1B;ID # KANGXI RADICAL PRIVATE 2F1C;ID # KANGXI RADICAL AGAIN 2F1D;ID # KANGXI RADICAL MOUTH 2F1E;ID # KANGXI RADICAL ENCLOSURE 2F1F;ID # KANGXI RADICAL EARTH 2F20;ID # KANGXI RADICAL SCHOLAR 2F21;ID # KANGXI RADICAL GO 2F22;ID # KANGXI RADICAL GO SLOWLY 2F23;ID # KANGXI RADICAL EVENING 2F24;ID # KANGXI RADICAL BIG 2F25;ID # KANGXI RADICAL WOMAN 2F26;ID # KANGXI RADICAL CHILD 2F27;ID # KANGXI RADICAL ROOF 2F28;ID # KANGXI RADICAL INCH 2F29;ID # KANGXI RADICAL SMALL 2F2A;ID # KANGXI RADICAL LAME 2F2B;ID # KANGXI RADICAL CORPSE 2F2C;ID # KANGXI RADICAL SPROUT 2F2D;ID # KANGXI RADICAL MOUNTAIN 2F2E;ID # KANGXI RADICAL RIVER 2F2F;ID # KANGXI RADICAL WORK 2F30;ID # KANGXI RADICAL ONESELF 2F31;ID # KANGXI RADICAL TURBAN 2F32;ID # KANGXI RADICAL DRY 2F33;ID # KANGXI RADICAL SHORT THREAD 2F34;ID # KANGXI RADICAL DOTTED CLIFF 2F35;ID # KANGXI RADICAL LONG STRIDE 2F36;ID # KANGXI RADICAL TWO HANDS 2F37;ID # KANGXI RADICAL SHOOT 2F38;ID # KANGXI RADICAL BOW 2F39;ID # KANGXI RADICAL SNOUT 2F3A;ID # KANGXI RADICAL BRISTLE 2F3B;ID # KANGXI RADICAL STEP 2F3C;ID # KANGXI RADICAL HEART 2F3D;ID # KANGXI RADICAL HALBERD 2F3E;ID # KANGXI RADICAL DOOR 2F3F;ID # KANGXI RADICAL HAND 2F40;ID # KANGXI RADICAL BRANCH 2F41;ID # KANGXI RADICAL RAP 2F42;ID # KANGXI RADICAL SCRIPT 2F43;ID # KANGXI RADICAL DIPPER 2F44;ID # KANGXI RADICAL AXE 2F45;ID # KANGXI RADICAL SQUARE 2F46;ID # KANGXI RADICAL NOT 2F47;ID # KANGXI RADICAL SUN 2F48;ID # KANGXI RADICAL SAY 2F49;ID # KANGXI RADICAL MOON 2F4A;ID # KANGXI RADICAL TREE 2F4B;ID # KANGXI RADICAL LACK 2F4C;ID # KANGXI RADICAL STOP 2F4D;ID # KANGXI RADICAL DEATH 2F4E;ID # KANGXI RADICAL WEAPON 2F4F;ID # KANGXI RADICAL DO NOT 2F50;ID # KANGXI RADICAL COMPARE 2F51;ID # KANGXI RADICAL FUR 2F52;ID # KANGXI RADICAL CLAN 2F53;ID # KANGXI RADICAL STEAM 2F54;ID # KANGXI RADICAL WATER 2F55;ID # KANGXI RADICAL FIRE 2F56;ID # KANGXI RADICAL CLAW 2F57;ID # KANGXI RADICAL FATHER 2F58;ID # KANGXI RADICAL DOUBLE X 2F59;ID # KANGXI RADICAL HALF TREE TRUNK 2F5A;ID # KANGXI RADICAL SLICE 2F5B;ID # KANGXI RADICAL FANG 2F5C;ID # KANGXI RADICAL COW 2F5D;ID # KANGXI RADICAL DOG 2F5E;ID # KANGXI RADICAL PROFOUND 2F5F;ID # KANGXI RADICAL JADE 2F60;ID # KANGXI RADICAL MELON 2F61;ID # KANGXI RADICAL TILE 2F62;ID # KANGXI RADICAL SWEET 2F63;ID # KANGXI RADICAL LIFE 2F64;ID # KANGXI RADICAL USE 2F65;ID # KANGXI RADICAL FIELD 2F66;ID # KANGXI RADICAL BOLT OF CLOTH 2F67;ID # KANGXI RADICAL SICKNESS 2F68;ID # KANGXI RADICAL DOTTED TENT 2F69;ID # KANGXI RADICAL WHITE 2F6A;ID # KANGXI RADICAL SKIN 2F6B;ID # KANGXI RADICAL DISH 2F6C;ID # KANGXI RADICAL EYE 2F6D;ID # KANGXI RADICAL SPEAR 2F6E;ID # KANGXI RADICAL ARROW 2F6F;ID # KANGXI RADICAL STONE 2F70;ID # KANGXI RADICAL SPIRIT 2F71;ID # KANGXI RADICAL TRACK 2F72;ID # KANGXI RADICAL GRAIN 2F73;ID # KANGXI RADICAL CAVE 2F74;ID # KANGXI RADICAL STAND 2F75;ID # KANGXI RADICAL BAMBOO 2F76;ID # KANGXI RADICAL RICE 2F77;ID # KANGXI RADICAL SILK 2F78;ID # KANGXI RADICAL JAR 2F79;ID # KANGXI RADICAL NET 2F7A;ID # KANGXI RADICAL SHEEP 2F7B;ID # KANGXI RADICAL FEATHER 2F7C;ID # KANGXI RADICAL OLD 2F7D;ID # KANGXI RADICAL AND 2F7E;ID # KANGXI RADICAL PLOW 2F7F;ID # KANGXI RADICAL EAR 2F80;ID # KANGXI RADICAL BRUSH 2F81;ID # KANGXI RADICAL MEAT 2F82;ID # KANGXI RADICAL MINISTER 2F83;ID # KANGXI RADICAL SELF 2F84;ID # KANGXI RADICAL ARRIVE 2F85;ID # KANGXI RADICAL MORTAR 2F86;ID # KANGXI RADICAL TONGUE 2F87;ID # KANGXI RADICAL OPPOSE 2F88;ID # KANGXI RADICAL BOAT 2F89;ID # KANGXI RADICAL STOPPING 2F8A;ID # KANGXI RADICAL COLOR 2F8B;ID # KANGXI RADICAL GRASS 2F8C;ID # KANGXI RADICAL TIGER 2F8D;ID # KANGXI RADICAL INSECT 2F8E;ID # KANGXI RADICAL BLOOD 2F8F;ID # KANGXI RADICAL WALK ENCLOSURE 2F90;ID # KANGXI RADICAL CLOTHES 2F91;ID # KANGXI RADICAL WEST 2F92;ID # KANGXI RADICAL SEE 2F93;ID # KANGXI RADICAL HORN 2F94;ID # KANGXI RADICAL SPEECH 2F95;ID # KANGXI RADICAL VALLEY 2F96;ID # KANGXI RADICAL BEAN 2F97;ID # KANGXI RADICAL PIG 2F98;ID # KANGXI RADICAL BADGER 2F99;ID # KANGXI RADICAL SHELL 2F9A;ID # KANGXI RADICAL RED 2F9B;ID # KANGXI RADICAL RUN 2F9C;ID # KANGXI RADICAL FOOT 2F9D;ID # KANGXI RADICAL BODY 2F9E;ID # KANGXI RADICAL CART 2F9F;ID # KANGXI RADICAL BITTER 2FA0;ID # KANGXI RADICAL MORNING 2FA1;ID # KANGXI RADICAL WALK 2FA2;ID # KANGXI RADICAL CITY 2FA3;ID # KANGXI RADICAL WINE 2FA4;ID # KANGXI RADICAL DISTINGUISH 2FA5;ID # KANGXI RADICAL VILLAGE 2FA6;ID # KANGXI RADICAL GOLD 2FA7;ID # KANGXI RADICAL LONG 2FA8;ID # KANGXI RADICAL GATE 2FA9;ID # KANGXI RADICAL MOUND 2FAA;ID # KANGXI RADICAL SLAVE 2FAB;ID # KANGXI RADICAL SHORT TAILED BIRD 2FAC;ID # KANGXI RADICAL RAIN 2FAD;ID # KANGXI RADICAL BLUE 2FAE;ID # KANGXI RADICAL WRONG 2FAF;ID # KANGXI RADICAL FACE 2FB0;ID # KANGXI RADICAL LEATHER 2FB1;ID # KANGXI RADICAL TANNED LEATHER 2FB2;ID # KANGXI RADICAL LEEK 2FB3;ID # KANGXI RADICAL SOUND 2FB4;ID # KANGXI RADICAL LEAF 2FB5;ID # KANGXI RADICAL WIND 2FB6;ID # KANGXI RADICAL FLY 2FB7;ID # KANGXI RADICAL EAT 2FB8;ID # KANGXI RADICAL HEAD 2FB9;ID # KANGXI RADICAL FRAGRANT 2FBA;ID # KANGXI RADICAL HORSE 2FBB;ID # KANGXI RADICAL BONE 2FBC;ID # KANGXI RADICAL TALL 2FBD;ID # KANGXI RADICAL HAIR 2FBE;ID # KANGXI RADICAL FIGHT 2FBF;ID # KANGXI RADICAL SACRIFICIAL WINE 2FC0;ID # KANGXI RADICAL CAULDRON 2FC1;ID # KANGXI RADICAL GHOST 2FC2;ID # KANGXI RADICAL FISH 2FC3;ID # KANGXI RADICAL BIRD 2FC4;ID # KANGXI RADICAL SALT 2FC5;ID # KANGXI RADICAL DEER 2FC6;ID # KANGXI RADICAL WHEAT 2FC7;ID # KANGXI RADICAL HEMP 2FC8;ID # KANGXI RADICAL YELLOW 2FC9;ID # KANGXI RADICAL MILLET 2FCA;ID # KANGXI RADICAL BLACK 2FCB;ID # KANGXI RADICAL EMBROIDERY 2FCC;ID # KANGXI RADICAL FROG 2FCD;ID # KANGXI RADICAL TRIPOD 2FCE;ID # KANGXI RADICAL DRUM 2FCF;ID # KANGXI RADICAL RAT 2FD0;ID # KANGXI RADICAL NOSE 2FD1;ID # KANGXI RADICAL EVEN 2FD2;ID # KANGXI RADICAL TOOTH 2FD3;ID # KANGXI RADICAL DRAGON 2FD4;ID # KANGXI RADICAL TURTLE 2FD5;ID # KANGXI RADICAL FLUTE 2FF0;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT 2FF1;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW 2FF2;ID # IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT 2FF3;ID # IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW 2FF4;ID # IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND 2FF5;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE 2FF6;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW 2FF7;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT 2FF8;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT 2FF9;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT 2FFA;ID # IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT 2FFB;ID # IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID 3000;ID # IDEOGRAPHIC SPACE 3001;CL # IDEOGRAPHIC COMMA 3002;CL # IDEOGRAPHIC FULL STOP 3003;ID # DITTO MARK 3004;ID # JAPANESE INDUSTRIAL STANDARD SYMBOL 3005;NS # IDEOGRAPHIC ITERATION MARK 3006;ID # IDEOGRAPHIC CLOSING MARK 3007;ID # IDEOGRAPHIC NUMBER ZERO 3008;OP # LEFT ANGLE BRACKET 3009;CL # RIGHT ANGLE BRACKET 300A;OP # LEFT DOUBLE ANGLE BRACKET 300B;CL # RIGHT DOUBLE ANGLE BRACKET 300C;OP # LEFT CORNER BRACKET 300D;CL # RIGHT CORNER BRACKET 300E;OP # LEFT WHITE CORNER BRACKET 300F;CL # RIGHT WHITE CORNER BRACKET 3010;OP # LEFT BLACK LENTICULAR BRACKET 3011;CL # RIGHT BLACK LENTICULAR BRACKET 3012;ID # POSTAL MARK 3013;ID # GETA MARK 3014;OP # LEFT TORTOISE SHELL BRACKET 3015;CL # RIGHT TORTOISE SHELL BRACKET 3016;OP # LEFT WHITE LENTICULAR BRACKET 3017;CL # RIGHT WHITE LENTICULAR BRACKET 3018;OP # LEFT WHITE TORTOISE SHELL BRACKET 3019;CL # RIGHT WHITE TORTOISE SHELL BRACKET 301A;OP # LEFT WHITE SQUARE BRACKET 301B;CL # RIGHT WHITE SQUARE BRACKET 301C;NS # WAVE DASH 301D;OP # REVERSED DOUBLE PRIME QUOTATION MARK 301E;CL # DOUBLE PRIME QUOTATION MARK 301F;CL # LOW DOUBLE PRIME QUOTATION MARK 3020;ID # POSTAL MARK FACE 3021;ID # HANGZHOU NUMERAL ONE 3022;ID # HANGZHOU NUMERAL TWO 3023;ID # HANGZHOU NUMERAL THREE 3024;ID # HANGZHOU NUMERAL FOUR 3025;ID # HANGZHOU NUMERAL FIVE 3026;ID # HANGZHOU NUMERAL SIX 3027;ID # HANGZHOU NUMERAL SEVEN 3028;ID # HANGZHOU NUMERAL EIGHT 3029;ID # HANGZHOU NUMERAL NINE 302A;CM # IDEOGRAPHIC LEVEL TONE MARK 302B;CM # IDEOGRAPHIC RISING TONE MARK 302C;CM # IDEOGRAPHIC DEPARTING TONE MARK 302D;CM # IDEOGRAPHIC ENTERING TONE MARK 302E;CM # HANGUL SINGLE DOT TONE MARK 302F;CM # HANGUL DOUBLE DOT TONE MARK 3030;ID # WAVY DASH 3031;ID # VERTICAL KANA REPEAT MARK 3032;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK 3033;ID # VERTICAL KANA REPEAT MARK UPPER HALF 3034;ID # VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF 3035;ID # VERTICAL KANA REPEAT MARK LOWER HALF 3036;ID # CIRCLED POSTAL MARK 3037;ID # IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL 3038;ID # HANGZHOU NUMERAL TEN 3039;ID # HANGZHOU NUMERAL TWENTY 303A;ID # HANGZHOU NUMERAL THIRTY 303B;NS # VERTICAL IDEOGRAPHIC ITERATION MARK 303C;NS # MASU MARK 303D;ID # PART ALTERNATION MARK 303E;ID # IDEOGRAPHIC VARIATION INDICATOR 303F;ID # IDEOGRAPHIC HALF FILL SPACE 3041;NS # HIRAGANA LETTER SMALL A 3042;ID # HIRAGANA LETTER A 3043;NS # HIRAGANA LETTER SMALL I 3044;ID # HIRAGANA LETTER I 3045;NS # HIRAGANA LETTER SMALL U 3046;ID # HIRAGANA LETTER U 3047;NS # HIRAGANA LETTER SMALL E 3048;ID # HIRAGANA LETTER E 3049;NS # HIRAGANA LETTER SMALL O 304A;ID # HIRAGANA LETTER O 304B;ID # HIRAGANA LETTER KA 304C;ID # HIRAGANA LETTER GA 304D;ID # HIRAGANA LETTER KI 304E;ID # HIRAGANA LETTER GI 304F;ID # HIRAGANA LETTER KU 3050;ID # HIRAGANA LETTER GU 3051;ID # HIRAGANA LETTER KE 3052;ID # HIRAGANA LETTER GE 3053;ID # HIRAGANA LETTER KO 3054;ID # HIRAGANA LETTER GO 3055;ID # HIRAGANA LETTER SA 3056;ID # HIRAGANA LETTER ZA 3057;ID # HIRAGANA LETTER SI 3058;ID # HIRAGANA LETTER ZI 3059;ID # HIRAGANA LETTER SU 305A;ID # HIRAGANA LETTER ZU 305B;ID # HIRAGANA LETTER SE 305C;ID # HIRAGANA LETTER ZE 305D;ID # HIRAGANA LETTER SO 305E;ID # HIRAGANA LETTER ZO 305F;ID # HIRAGANA LETTER TA 3060;ID # HIRAGANA LETTER DA 3061;ID # HIRAGANA LETTER TI 3062;ID # HIRAGANA LETTER DI 3063;NS # HIRAGANA LETTER SMALL TU 3064;ID # HIRAGANA LETTER TU 3065;ID # HIRAGANA LETTER DU 3066;ID # HIRAGANA LETTER TE 3067;ID # HIRAGANA LETTER DE 3068;ID # HIRAGANA LETTER TO 3069;ID # HIRAGANA LETTER DO 306A;ID # HIRAGANA LETTER NA 306B;ID # HIRAGANA LETTER NI 306C;ID # HIRAGANA LETTER NU 306D;ID # HIRAGANA LETTER NE 306E;ID # HIRAGANA LETTER NO 306F;ID # HIRAGANA LETTER HA 3070;ID # HIRAGANA LETTER BA 3071;ID # HIRAGANA LETTER PA 3072;ID # HIRAGANA LETTER HI 3073;ID # HIRAGANA LETTER BI 3074;ID # HIRAGANA LETTER PI 3075;ID # HIRAGANA LETTER HU 3076;ID # HIRAGANA LETTER BU 3077;ID # HIRAGANA LETTER PU 3078;ID # HIRAGANA LETTER HE 3079;ID # HIRAGANA LETTER BE 307A;ID # HIRAGANA LETTER PE 307B;ID # HIRAGANA LETTER HO 307C;ID # HIRAGANA LETTER BO 307D;ID # HIRAGANA LETTER PO 307E;ID # HIRAGANA LETTER MA 307F;ID # HIRAGANA LETTER MI 3080;ID # HIRAGANA LETTER MU 3081;ID # HIRAGANA LETTER ME 3082;ID # HIRAGANA LETTER MO 3083;NS # HIRAGANA LETTER SMALL YA 3084;ID # HIRAGANA LETTER YA 3085;NS # HIRAGANA LETTER SMALL YU 3086;ID # HIRAGANA LETTER YU 3087;NS # HIRAGANA LETTER SMALL YO 3088;ID # HIRAGANA LETTER YO 3089;ID # HIRAGANA LETTER RA 308A;ID # HIRAGANA LETTER RI 308B;ID # HIRAGANA LETTER RU 308C;ID # HIRAGANA LETTER RE 308D;ID # HIRAGANA LETTER RO 308E;NS # HIRAGANA LETTER SMALL WA 308F;ID # HIRAGANA LETTER WA 3090;ID # HIRAGANA LETTER WI 3091;ID # HIRAGANA LETTER WE 3092;ID # HIRAGANA LETTER WO 3093;ID # HIRAGANA LETTER N 3094;ID # HIRAGANA LETTER VU 3095;NS # HIRAGANA LETTER SMALL KA 3096;NS # HIRAGANA LETTER SMALL KE 3099;CM # COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK 309A;CM # COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 309B;NS # KATAKANA-HIRAGANA VOICED SOUND MARK 309C;NS # KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK 309D;NS # HIRAGANA ITERATION MARK 309E;NS # HIRAGANA VOICED ITERATION MARK 309F;ID # HIRAGANA DIGRAPH YORI 30A0;NS # KATAKANA-HIRAGANA DOUBLE HYPHEN 30A1;NS # KATAKANA LETTER SMALL A 30A2;ID # KATAKANA LETTER A 30A3;NS # KATAKANA LETTER SMALL I 30A4;ID # KATAKANA LETTER I 30A5;NS # KATAKANA LETTER SMALL U 30A6;ID # KATAKANA LETTER U 30A7;NS # KATAKANA LETTER SMALL E 30A8;ID # KATAKANA LETTER E 30A9;NS # KATAKANA LETTER SMALL O 30AA;ID # KATAKANA LETTER O 30AB;ID # KATAKANA LETTER KA 30AC;ID # KATAKANA LETTER GA 30AD;ID # KATAKANA LETTER KI 30AE;ID # KATAKANA LETTER GI 30AF;ID # KATAKANA LETTER KU 30B0;ID # KATAKANA LETTER GU 30B1;ID # KATAKANA LETTER KE 30B2;ID # KATAKANA LETTER GE 30B3;ID # KATAKANA LETTER KO 30B4;ID # KATAKANA LETTER GO 30B5;ID # KATAKANA LETTER SA 30B6;ID # KATAKANA LETTER ZA 30B7;ID # KATAKANA LETTER SI 30B8;ID # KATAKANA LETTER ZI 30B9;ID # KATAKANA LETTER SU 30BA;ID # KATAKANA LETTER ZU 30BB;ID # KATAKANA LETTER SE 30BC;ID # KATAKANA LETTER ZE 30BD;ID # KATAKANA LETTER SO 30BE;ID # KATAKANA LETTER ZO 30BF;ID # KATAKANA LETTER TA 30C0;ID # KATAKANA LETTER DA 30C1;ID # KATAKANA LETTER TI 30C2;ID # KATAKANA LETTER DI 30C3;NS # KATAKANA LETTER SMALL TU 30C4;ID # KATAKANA LETTER TU 30C5;ID # KATAKANA LETTER DU 30C6;ID # KATAKANA LETTER TE 30C7;ID # KATAKANA LETTER DE 30C8;ID # KATAKANA LETTER TO 30C9;ID # KATAKANA LETTER DO 30CA;ID # KATAKANA LETTER NA 30CB;ID # KATAKANA LETTER NI 30CC;ID # KATAKANA LETTER NU 30CD;ID # KATAKANA LETTER NE 30CE;ID # KATAKANA LETTER NO 30CF;ID # KATAKANA LETTER HA 30D0;ID # KATAKANA LETTER BA 30D1;ID # KATAKANA LETTER PA 30D2;ID # KATAKANA LETTER HI 30D3;ID # KATAKANA LETTER BI 30D4;ID # KATAKANA LETTER PI 30D5;ID # KATAKANA LETTER HU 30D6;ID # KATAKANA LETTER BU 30D7;ID # KATAKANA LETTER PU 30D8;ID # KATAKANA LETTER HE 30D9;ID # KATAKANA LETTER BE 30DA;ID # KATAKANA LETTER PE 30DB;ID # KATAKANA LETTER HO 30DC;ID # KATAKANA LETTER BO 30DD;ID # KATAKANA LETTER PO 30DE;ID # KATAKANA LETTER MA 30DF;ID # KATAKANA LETTER MI 30E0;ID # KATAKANA LETTER MU 30E1;ID # KATAKANA LETTER ME 30E2;ID # KATAKANA LETTER MO 30E3;NS # KATAKANA LETTER SMALL YA 30E4;ID # KATAKANA LETTER YA 30E5;NS # KATAKANA LETTER SMALL YU 30E6;ID # KATAKANA LETTER YU 30E7;NS # KATAKANA LETTER SMALL YO 30E8;ID # KATAKANA LETTER YO 30E9;ID # KATAKANA LETTER RA 30EA;ID # KATAKANA LETTER RI 30EB;ID # KATAKANA LETTER RU 30EC;ID # KATAKANA LETTER RE 30ED;ID # KATAKANA LETTER RO 30EE;NS # KATAKANA LETTER SMALL WA 30EF;ID # KATAKANA LETTER WA 30F0;ID # KATAKANA LETTER WI 30F1;ID # KATAKANA LETTER WE 30F2;ID # KATAKANA LETTER WO 30F3;ID # KATAKANA LETTER N 30F4;ID # KATAKANA LETTER VU 30F5;NS # KATAKANA LETTER SMALL KA 30F6;NS # KATAKANA LETTER SMALL KE 30F7;ID # KATAKANA LETTER VA 30F8;ID # KATAKANA LETTER VI 30F9;ID # KATAKANA LETTER VE 30FA;ID # KATAKANA LETTER VO 30FB;NS # KATAKANA MIDDLE DOT 30FC;ID # KATAKANA-HIRAGANA PROLONGED SOUND MARK 30FD;NS # KATAKANA ITERATION MARK 30FE;ID # KATAKANA VOICED ITERATION MARK 30FF;ID # KATAKANA DIGRAPH KOTO 3105;ID # BOPOMOFO LETTER B 3106;ID # BOPOMOFO LETTER P 3107;ID # BOPOMOFO LETTER M 3108;ID # BOPOMOFO LETTER F 3109;ID # BOPOMOFO LETTER D 310A;ID # BOPOMOFO LETTER T 310B;ID # BOPOMOFO LETTER N 310C;ID # BOPOMOFO LETTER L 310D;ID # BOPOMOFO LETTER G 310E;ID # BOPOMOFO LETTER K 310F;ID # BOPOMOFO LETTER H 3110;ID # BOPOMOFO LETTER J 3111;ID # BOPOMOFO LETTER Q 3112;ID # BOPOMOFO LETTER X 3113;ID # BOPOMOFO LETTER ZH 3114;ID # BOPOMOFO LETTER CH 3115;ID # BOPOMOFO LETTER SH 3116;ID # BOPOMOFO LETTER R 3117;ID # BOPOMOFO LETTER Z 3118;ID # BOPOMOFO LETTER C 3119;ID # BOPOMOFO LETTER S 311A;ID # BOPOMOFO LETTER A 311B;ID # BOPOMOFO LETTER O 311C;ID # BOPOMOFO LETTER E 311D;ID # BOPOMOFO LETTER EH 311E;ID # BOPOMOFO LETTER AI 311F;ID # BOPOMOFO LETTER EI 3120;ID # BOPOMOFO LETTER AU 3121;ID # BOPOMOFO LETTER OU 3122;ID # BOPOMOFO LETTER AN 3123;ID # BOPOMOFO LETTER EN 3124;ID # BOPOMOFO LETTER ANG 3125;ID # BOPOMOFO LETTER ENG 3126;ID # BOPOMOFO LETTER ER 3127;ID # BOPOMOFO LETTER I 3128;ID # BOPOMOFO LETTER U 3129;ID # BOPOMOFO LETTER IU 312A;ID # BOPOMOFO LETTER V 312B;ID # BOPOMOFO LETTER NG 312C;ID # BOPOMOFO LETTER GN 3131;ID # HANGUL LETTER KIYEOK 3132;ID # HANGUL LETTER SSANGKIYEOK 3133;ID # HANGUL LETTER KIYEOK-SIOS 3134;ID # HANGUL LETTER NIEUN 3135;ID # HANGUL LETTER NIEUN-CIEUC 3136;ID # HANGUL LETTER NIEUN-HIEUH 3137;ID # HANGUL LETTER TIKEUT 3138;ID # HANGUL LETTER SSANGTIKEUT 3139;ID # HANGUL LETTER RIEUL 313A;ID # HANGUL LETTER RIEUL-KIYEOK 313B;ID # HANGUL LETTER RIEUL-MIEUM 313C;ID # HANGUL LETTER RIEUL-PIEUP 313D;ID # HANGUL LETTER RIEUL-SIOS 313E;ID # HANGUL LETTER RIEUL-THIEUTH 313F;ID # HANGUL LETTER RIEUL-PHIEUPH 3140;ID # HANGUL LETTER RIEUL-HIEUH 3141;ID # HANGUL LETTER MIEUM 3142;ID # HANGUL LETTER PIEUP 3143;ID # HANGUL LETTER SSANGPIEUP 3144;ID # HANGUL LETTER PIEUP-SIOS 3145;ID # HANGUL LETTER SIOS 3146;ID # HANGUL LETTER SSANGSIOS 3147;ID # HANGUL LETTER IEUNG 3148;ID # HANGUL LETTER CIEUC 3149;ID # HANGUL LETTER SSANGCIEUC 314A;ID # HANGUL LETTER CHIEUCH 314B;ID # HANGUL LETTER KHIEUKH 314C;ID # HANGUL LETTER THIEUTH 314D;ID # HANGUL LETTER PHIEUPH 314E;ID # HANGUL LETTER HIEUH 314F;ID # HANGUL LETTER A 3150;ID # HANGUL LETTER AE 3151;ID # HANGUL LETTER YA 3152;ID # HANGUL LETTER YAE 3153;ID # HANGUL LETTER EO 3154;ID # HANGUL LETTER E 3155;ID # HANGUL LETTER YEO 3156;ID # HANGUL LETTER YE 3157;ID # HANGUL LETTER O 3158;ID # HANGUL LETTER WA 3159;ID # HANGUL LETTER WAE 315A;ID # HANGUL LETTER OE 315B;ID # HANGUL LETTER YO 315C;ID # HANGUL LETTER U 315D;ID # HANGUL LETTER WEO 315E;ID # HANGUL LETTER WE 315F;ID # HANGUL LETTER WI 3160;ID # HANGUL LETTER YU 3161;ID # HANGUL LETTER EU 3162;ID # HANGUL LETTER YI 3163;ID # HANGUL LETTER I 3164;ID # HANGUL FILLER 3165;ID # HANGUL LETTER SSANGNIEUN 3166;ID # HANGUL LETTER NIEUN-TIKEUT 3167;ID # HANGUL LETTER NIEUN-SIOS 3168;ID # HANGUL LETTER NIEUN-PANSIOS 3169;ID # HANGUL LETTER RIEUL-KIYEOK-SIOS 316A;ID # HANGUL LETTER RIEUL-TIKEUT 316B;ID # HANGUL LETTER RIEUL-PIEUP-SIOS 316C;ID # HANGUL LETTER RIEUL-PANSIOS 316D;ID # HANGUL LETTER RIEUL-YEORINHIEUH 316E;ID # HANGUL LETTER MIEUM-PIEUP 316F;ID # HANGUL LETTER MIEUM-SIOS 3170;ID # HANGUL LETTER MIEUM-PANSIOS 3171;ID # HANGUL LETTER KAPYEOUNMIEUM 3172;ID # HANGUL LETTER PIEUP-KIYEOK 3173;ID # HANGUL LETTER PIEUP-TIKEUT 3174;ID # HANGUL LETTER PIEUP-SIOS-KIYEOK 3175;ID # HANGUL LETTER PIEUP-SIOS-TIKEUT 3176;ID # HANGUL LETTER PIEUP-CIEUC 3177;ID # HANGUL LETTER PIEUP-THIEUTH 3178;ID # HANGUL LETTER KAPYEOUNPIEUP 3179;ID # HANGUL LETTER KAPYEOUNSSANGPIEUP 317A;ID # HANGUL LETTER SIOS-KIYEOK 317B;ID # HANGUL LETTER SIOS-NIEUN 317C;ID # HANGUL LETTER SIOS-TIKEUT 317D;ID # HANGUL LETTER SIOS-PIEUP 317E;ID # HANGUL LETTER SIOS-CIEUC 317F;ID # HANGUL LETTER PANSIOS 3180;ID # HANGUL LETTER SSANGIEUNG 3181;ID # HANGUL LETTER YESIEUNG 3182;ID # HANGUL LETTER YESIEUNG-SIOS 3183;ID # HANGUL LETTER YESIEUNG-PANSIOS 3184;ID # HANGUL LETTER KAPYEOUNPHIEUPH 3185;ID # HANGUL LETTER SSANGHIEUH 3186;ID # HANGUL LETTER YEORINHIEUH 3187;ID # HANGUL LETTER YO-YA 3188;ID # HANGUL LETTER YO-YAE 3189;ID # HANGUL LETTER YO-I 318A;ID # HANGUL LETTER YU-YEO 318B;ID # HANGUL LETTER YU-YE 318C;ID # HANGUL LETTER YU-I 318D;ID # HANGUL LETTER ARAEA 318E;ID # HANGUL LETTER ARAEAE 3190;ID # IDEOGRAPHIC ANNOTATION LINKING MARK 3191;ID # IDEOGRAPHIC ANNOTATION REVERSE MARK 3192;ID # IDEOGRAPHIC ANNOTATION ONE MARK 3193;ID # IDEOGRAPHIC ANNOTATION TWO MARK 3194;ID # IDEOGRAPHIC ANNOTATION THREE MARK 3195;ID # IDEOGRAPHIC ANNOTATION FOUR MARK 3196;ID # IDEOGRAPHIC ANNOTATION TOP MARK 3197;ID # IDEOGRAPHIC ANNOTATION MIDDLE MARK 3198;ID # IDEOGRAPHIC ANNOTATION BOTTOM MARK 3199;ID # IDEOGRAPHIC ANNOTATION FIRST MARK 319A;ID # IDEOGRAPHIC ANNOTATION SECOND MARK 319B;ID # IDEOGRAPHIC ANNOTATION THIRD MARK 319C;ID # IDEOGRAPHIC ANNOTATION FOURTH MARK 319D;ID # IDEOGRAPHIC ANNOTATION HEAVEN MARK 319E;ID # IDEOGRAPHIC ANNOTATION EARTH MARK 319F;ID # IDEOGRAPHIC ANNOTATION MAN MARK 31A0;ID # BOPOMOFO LETTER BU 31A1;ID # BOPOMOFO LETTER ZI 31A2;ID # BOPOMOFO LETTER JI 31A3;ID # BOPOMOFO LETTER GU 31A4;ID # BOPOMOFO LETTER EE 31A5;ID # BOPOMOFO LETTER ENN 31A6;ID # BOPOMOFO LETTER OO 31A7;ID # BOPOMOFO LETTER ONN 31A8;ID # BOPOMOFO LETTER IR 31A9;ID # BOPOMOFO LETTER ANN 31AA;ID # BOPOMOFO LETTER INN 31AB;ID # BOPOMOFO LETTER UNN 31AC;ID # BOPOMOFO LETTER IM 31AD;ID # BOPOMOFO LETTER NGG 31AE;ID # BOPOMOFO LETTER AINN 31AF;ID # BOPOMOFO LETTER AUNN 31B0;ID # BOPOMOFO LETTER AM 31B1;ID # BOPOMOFO LETTER OM 31B2;ID # BOPOMOFO LETTER ONG 31B3;ID # BOPOMOFO LETTER INNN 31B4;ID # BOPOMOFO FINAL LETTER P 31B5;ID # BOPOMOFO FINAL LETTER T 31B6;ID # BOPOMOFO FINAL LETTER K 31B7;ID # BOPOMOFO FINAL LETTER H 31F0;NS # KATAKANA LETTER SMALL KU 31F1;NS # KATAKANA LETTER SMALL SI 31F2;NS # KATAKANA LETTER SMALL SU 31F3;NS # KATAKANA LETTER SMALL TO 31F4;NS # KATAKANA LETTER SMALL NU 31F5;NS # KATAKANA LETTER SMALL HA 31F6;NS # KATAKANA LETTER SMALL HI 31F7;NS # KATAKANA LETTER SMALL HU 31F8;NS # KATAKANA LETTER SMALL HE 31F9;NS # KATAKANA LETTER SMALL HO 31FA;NS # KATAKANA LETTER SMALL MU 31FB;NS # KATAKANA LETTER SMALL RA 31FC;NS # KATAKANA LETTER SMALL RI 31FD;NS # KATAKANA LETTER SMALL RU 31FE;NS # KATAKANA LETTER SMALL RE 31FF;NS # KATAKANA LETTER SMALL RO 3200;ID # PARENTHESIZED HANGUL KIYEOK 3201;ID # PARENTHESIZED HANGUL NIEUN 3202;ID # PARENTHESIZED HANGUL TIKEUT 3203;ID # PARENTHESIZED HANGUL RIEUL 3204;ID # PARENTHESIZED HANGUL MIEUM 3205;ID # PARENTHESIZED HANGUL PIEUP 3206;ID # PARENTHESIZED HANGUL SIOS 3207;ID # PARENTHESIZED HANGUL IEUNG 3208;ID # PARENTHESIZED HANGUL CIEUC 3209;ID # PARENTHESIZED HANGUL CHIEUCH 320A;ID # PARENTHESIZED HANGUL KHIEUKH 320B;ID # PARENTHESIZED HANGUL THIEUTH 320C;ID # PARENTHESIZED HANGUL PHIEUPH 320D;ID # PARENTHESIZED HANGUL HIEUH 320E;ID # PARENTHESIZED HANGUL KIYEOK A 320F;ID # PARENTHESIZED HANGUL NIEUN A 3210;ID # PARENTHESIZED HANGUL TIKEUT A 3211;ID # PARENTHESIZED HANGUL RIEUL A 3212;ID # PARENTHESIZED HANGUL MIEUM A 3213;ID # PARENTHESIZED HANGUL PIEUP A 3214;ID # PARENTHESIZED HANGUL SIOS A 3215;ID # PARENTHESIZED HANGUL IEUNG A 3216;ID # PARENTHESIZED HANGUL CIEUC A 3217;ID # PARENTHESIZED HANGUL CHIEUCH A 3218;ID # PARENTHESIZED HANGUL KHIEUKH A 3219;ID # PARENTHESIZED HANGUL THIEUTH A 321A;ID # PARENTHESIZED HANGUL PHIEUPH A 321B;ID # PARENTHESIZED HANGUL HIEUH A 321C;ID # PARENTHESIZED HANGUL CIEUC U 3220;ID # PARENTHESIZED IDEOGRAPH ONE 3221;ID # PARENTHESIZED IDEOGRAPH TWO 3222;ID # PARENTHESIZED IDEOGRAPH THREE 3223;ID # PARENTHESIZED IDEOGRAPH FOUR 3224;ID # PARENTHESIZED IDEOGRAPH FIVE 3225;ID # PARENTHESIZED IDEOGRAPH SIX 3226;ID # PARENTHESIZED IDEOGRAPH SEVEN 3227;ID # PARENTHESIZED IDEOGRAPH EIGHT 3228;ID # PARENTHESIZED IDEOGRAPH NINE 3229;ID # PARENTHESIZED IDEOGRAPH TEN 322A;ID # PARENTHESIZED IDEOGRAPH MOON 322B;ID # PARENTHESIZED IDEOGRAPH FIRE 322C;ID # PARENTHESIZED IDEOGRAPH WATER 322D;ID # PARENTHESIZED IDEOGRAPH WOOD 322E;ID # PARENTHESIZED IDEOGRAPH METAL 322F;ID # PARENTHESIZED IDEOGRAPH EARTH 3230;ID # PARENTHESIZED IDEOGRAPH SUN 3231;ID # PARENTHESIZED IDEOGRAPH STOCK 3232;ID # PARENTHESIZED IDEOGRAPH HAVE 3233;ID # PARENTHESIZED IDEOGRAPH SOCIETY 3234;ID # PARENTHESIZED IDEOGRAPH NAME 3235;ID # PARENTHESIZED IDEOGRAPH SPECIAL 3236;ID # PARENTHESIZED IDEOGRAPH FINANCIAL 3237;ID # PARENTHESIZED IDEOGRAPH CONGRATULATION 3238;ID # PARENTHESIZED IDEOGRAPH LABOR 3239;ID # PARENTHESIZED IDEOGRAPH REPRESENT 323A;ID # PARENTHESIZED IDEOGRAPH CALL 323B;ID # PARENTHESIZED IDEOGRAPH STUDY 323C;ID # PARENTHESIZED IDEOGRAPH SUPERVISE 323D;ID # PARENTHESIZED IDEOGRAPH ENTERPRISE 323E;ID # PARENTHESIZED IDEOGRAPH RESOURCE 323F;ID # PARENTHESIZED IDEOGRAPH ALLIANCE 3240;ID # PARENTHESIZED IDEOGRAPH FESTIVAL 3241;ID # PARENTHESIZED IDEOGRAPH REST 3242;ID # PARENTHESIZED IDEOGRAPH SELF 3243;ID # PARENTHESIZED IDEOGRAPH REACH 3251;ID # CIRCLED NUMBER TWENTY ONE 3252;ID # CIRCLED NUMBER TWENTY TWO 3253;ID # CIRCLED NUMBER TWENTY THREE 3254;ID # CIRCLED NUMBER TWENTY FOUR 3255;ID # CIRCLED NUMBER TWENTY FIVE 3256;ID # CIRCLED NUMBER TWENTY SIX 3257;ID # CIRCLED NUMBER TWENTY SEVEN 3258;ID # CIRCLED NUMBER TWENTY EIGHT 3259;ID # CIRCLED NUMBER TWENTY NINE 325A;ID # CIRCLED NUMBER THIRTY 325B;ID # CIRCLED NUMBER THIRTY ONE 325C;ID # CIRCLED NUMBER THIRTY TWO 325D;ID # CIRCLED NUMBER THIRTY THREE 325E;ID # CIRCLED NUMBER THIRTY FOUR 325F;ID # CIRCLED NUMBER THIRTY FIVE 3260;ID # CIRCLED HANGUL KIYEOK 3261;ID # CIRCLED HANGUL NIEUN 3262;ID # CIRCLED HANGUL TIKEUT 3263;ID # CIRCLED HANGUL RIEUL 3264;ID # CIRCLED HANGUL MIEUM 3265;ID # CIRCLED HANGUL PIEUP 3266;ID # CIRCLED HANGUL SIOS 3267;ID # CIRCLED HANGUL IEUNG 3268;ID # CIRCLED HANGUL CIEUC 3269;ID # CIRCLED HANGUL CHIEUCH 326A;ID # CIRCLED HANGUL KHIEUKH 326B;ID # CIRCLED HANGUL THIEUTH 326C;ID # CIRCLED HANGUL PHIEUPH 326D;ID # CIRCLED HANGUL HIEUH 326E;ID # CIRCLED HANGUL KIYEOK A 326F;ID # CIRCLED HANGUL NIEUN A 3270;ID # CIRCLED HANGUL TIKEUT A 3271;ID # CIRCLED HANGUL RIEUL A 3272;ID # CIRCLED HANGUL MIEUM A 3273;ID # CIRCLED HANGUL PIEUP A 3274;ID # CIRCLED HANGUL SIOS A 3275;ID # CIRCLED HANGUL IEUNG A 3276;ID # CIRCLED HANGUL CIEUC A 3277;ID # CIRCLED HANGUL CHIEUCH A 3278;ID # CIRCLED HANGUL KHIEUKH A 3279;ID # CIRCLED HANGUL THIEUTH A 327A;ID # CIRCLED HANGUL PHIEUPH A 327B;ID # CIRCLED HANGUL HIEUH A 327F;ID # KOREAN STANDARD SYMBOL 3280;ID # CIRCLED IDEOGRAPH ONE 3281;ID # CIRCLED IDEOGRAPH TWO 3282;ID # CIRCLED IDEOGRAPH THREE 3283;ID # CIRCLED IDEOGRAPH FOUR 3284;ID # CIRCLED IDEOGRAPH FIVE 3285;ID # CIRCLED IDEOGRAPH SIX 3286;ID # CIRCLED IDEOGRAPH SEVEN 3287;ID # CIRCLED IDEOGRAPH EIGHT 3288;ID # CIRCLED IDEOGRAPH NINE 3289;ID # CIRCLED IDEOGRAPH TEN 328A;ID # CIRCLED IDEOGRAPH MOON 328B;ID # CIRCLED IDEOGRAPH FIRE 328C;ID # CIRCLED IDEOGRAPH WATER 328D;ID # CIRCLED IDEOGRAPH WOOD 328E;ID # CIRCLED IDEOGRAPH METAL 328F;ID # CIRCLED IDEOGRAPH EARTH 3290;ID # CIRCLED IDEOGRAPH SUN 3291;ID # CIRCLED IDEOGRAPH STOCK 3292;ID # CIRCLED IDEOGRAPH HAVE 3293;ID # CIRCLED IDEOGRAPH SOCIETY 3294;ID # CIRCLED IDEOGRAPH NAME 3295;ID # CIRCLED IDEOGRAPH SPECIAL 3296;ID # CIRCLED IDEOGRAPH FINANCIAL 3297;ID # CIRCLED IDEOGRAPH CONGRATULATION 3298;ID # CIRCLED IDEOGRAPH LABOR 3299;ID # CIRCLED IDEOGRAPH SECRET 329A;ID # CIRCLED IDEOGRAPH MALE 329B;ID # CIRCLED IDEOGRAPH FEMALE 329C;ID # CIRCLED IDEOGRAPH SUITABLE 329D;ID # CIRCLED IDEOGRAPH EXCELLENT 329E;ID # CIRCLED IDEOGRAPH PRINT 329F;ID # CIRCLED IDEOGRAPH ATTENTION 32A0;ID # CIRCLED IDEOGRAPH ITEM 32A1;ID # CIRCLED IDEOGRAPH REST 32A2;ID # CIRCLED IDEOGRAPH COPY 32A3;ID # CIRCLED IDEOGRAPH CORRECT 32A4;ID # CIRCLED IDEOGRAPH HIGH 32A5;ID # CIRCLED IDEOGRAPH CENTRE 32A6;ID # CIRCLED IDEOGRAPH LOW 32A7;ID # CIRCLED IDEOGRAPH LEFT 32A8;ID # CIRCLED IDEOGRAPH RIGHT 32A9;ID # CIRCLED IDEOGRAPH MEDICINE 32AA;ID # CIRCLED IDEOGRAPH RELIGION 32AB;ID # CIRCLED IDEOGRAPH STUDY 32AC;ID # CIRCLED IDEOGRAPH SUPERVISE 32AD;ID # CIRCLED IDEOGRAPH ENTERPRISE 32AE;ID # CIRCLED IDEOGRAPH RESOURCE 32AF;ID # CIRCLED IDEOGRAPH ALLIANCE 32B0;ID # CIRCLED IDEOGRAPH NIGHT 32B1;ID # CIRCLED NUMBER THIRTY SIX 32B2;ID # CIRCLED NUMBER THIRTY SEVEN 32B3;ID # CIRCLED NUMBER THIRTY EIGHT 32B4;ID # CIRCLED NUMBER THIRTY NINE 32B5;ID # CIRCLED NUMBER FORTY 32B6;ID # CIRCLED NUMBER FORTY ONE 32B7;ID # CIRCLED NUMBER FORTY TWO 32B8;ID # CIRCLED NUMBER FORTY THREE 32B9;ID # CIRCLED NUMBER FORTY FOUR 32BA;ID # CIRCLED NUMBER FORTY FIVE 32BB;ID # CIRCLED NUMBER FORTY SIX 32BC;ID # CIRCLED NUMBER FORTY SEVEN 32BD;ID # CIRCLED NUMBER FORTY EIGHT 32BE;ID # CIRCLED NUMBER FORTY NINE 32BF;ID # CIRCLED NUMBER FIFTY 32C0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY 32C1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY 32C2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH 32C3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL 32C4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY 32C5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE 32C6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY 32C7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST 32C8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER 32C9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER 32CA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER 32CB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER 32D0;ID # CIRCLED KATAKANA A 32D1;ID # CIRCLED KATAKANA I 32D2;ID # CIRCLED KATAKANA U 32D3;ID # CIRCLED KATAKANA E 32D4;ID # CIRCLED KATAKANA O 32D5;ID # CIRCLED KATAKANA KA 32D6;ID # CIRCLED KATAKANA KI 32D7;ID # CIRCLED KATAKANA KU 32D8;ID # CIRCLED KATAKANA KE 32D9;ID # CIRCLED KATAKANA KO 32DA;ID # CIRCLED KATAKANA SA 32DB;ID # CIRCLED KATAKANA SI 32DC;ID # CIRCLED KATAKANA SU 32DD;ID # CIRCLED KATAKANA SE 32DE;ID # CIRCLED KATAKANA SO 32DF;ID # CIRCLED KATAKANA TA 32E0;ID # CIRCLED KATAKANA TI 32E1;ID # CIRCLED KATAKANA TU 32E2;ID # CIRCLED KATAKANA TE 32E3;ID # CIRCLED KATAKANA TO 32E4;ID # CIRCLED KATAKANA NA 32E5;ID # CIRCLED KATAKANA NI 32E6;ID # CIRCLED KATAKANA NU 32E7;ID # CIRCLED KATAKANA NE 32E8;ID # CIRCLED KATAKANA NO 32E9;ID # CIRCLED KATAKANA HA 32EA;ID # CIRCLED KATAKANA HI 32EB;ID # CIRCLED KATAKANA HU 32EC;ID # CIRCLED KATAKANA HE 32ED;ID # CIRCLED KATAKANA HO 32EE;ID # CIRCLED KATAKANA MA 32EF;ID # CIRCLED KATAKANA MI 32F0;ID # CIRCLED KATAKANA MU 32F1;ID # CIRCLED KATAKANA ME 32F2;ID # CIRCLED KATAKANA MO 32F3;ID # CIRCLED KATAKANA YA 32F4;ID # CIRCLED KATAKANA YU 32F5;ID # CIRCLED KATAKANA YO 32F6;ID # CIRCLED KATAKANA RA 32F7;ID # CIRCLED KATAKANA RI 32F8;ID # CIRCLED KATAKANA RU 32F9;ID # CIRCLED KATAKANA RE 32FA;ID # CIRCLED KATAKANA RO 32FB;ID # CIRCLED KATAKANA WA 32FC;ID # CIRCLED KATAKANA WI 32FD;ID # CIRCLED KATAKANA WE 32FE;ID # CIRCLED KATAKANA WO 3300;ID # SQUARE APAATO 3301;ID # SQUARE ARUHUA 3302;ID # SQUARE ANPEA 3303;ID # SQUARE AARU 3304;ID # SQUARE ININGU 3305;ID # SQUARE INTI 3306;ID # SQUARE UON 3307;ID # SQUARE ESUKUUDO 3308;ID # SQUARE EEKAA 3309;ID # SQUARE ONSU 330A;ID # SQUARE OOMU 330B;ID # SQUARE KAIRI 330C;ID # SQUARE KARATTO 330D;ID # SQUARE KARORII 330E;ID # SQUARE GARON 330F;ID # SQUARE GANMA 3310;ID # SQUARE GIGA 3311;ID # SQUARE GINII 3312;ID # SQUARE KYURII 3313;ID # SQUARE GIRUDAA 3314;ID # SQUARE KIRO 3315;ID # SQUARE KIROGURAMU 3316;ID # SQUARE KIROMEETORU 3317;ID # SQUARE KIROWATTO 3318;ID # SQUARE GURAMU 3319;ID # SQUARE GURAMUTON 331A;ID # SQUARE KURUZEIRO 331B;ID # SQUARE KUROONE 331C;ID # SQUARE KEESU 331D;ID # SQUARE KORUNA 331E;ID # SQUARE KOOPO 331F;ID # SQUARE SAIKURU 3320;ID # SQUARE SANTIIMU 3321;ID # SQUARE SIRINGU 3322;ID # SQUARE SENTI 3323;ID # SQUARE SENTO 3324;ID # SQUARE DAASU 3325;ID # SQUARE DESI 3326;ID # SQUARE DORU 3327;ID # SQUARE TON 3328;ID # SQUARE NANO 3329;ID # SQUARE NOTTO 332A;ID # SQUARE HAITU 332B;ID # SQUARE PAASENTO 332C;ID # SQUARE PAATU 332D;ID # SQUARE BAARERU 332E;ID # SQUARE PIASUTORU 332F;ID # SQUARE PIKURU 3330;ID # SQUARE PIKO 3331;ID # SQUARE BIRU 3332;ID # SQUARE HUARADDO 3333;ID # SQUARE HUIITO 3334;ID # SQUARE BUSSYERU 3335;ID # SQUARE HURAN 3336;ID # SQUARE HEKUTAARU 3337;ID # SQUARE PESO 3338;ID # SQUARE PENIHI 3339;ID # SQUARE HERUTU 333A;ID # SQUARE PENSU 333B;ID # SQUARE PEEZI 333C;ID # SQUARE BEETA 333D;ID # SQUARE POINTO 333E;ID # SQUARE BORUTO 333F;ID # SQUARE HON 3340;ID # SQUARE PONDO 3341;ID # SQUARE HOORU 3342;ID # SQUARE HOON 3343;ID # SQUARE MAIKURO 3344;ID # SQUARE MAIRU 3345;ID # SQUARE MAHHA 3346;ID # SQUARE MARUKU 3347;ID # SQUARE MANSYON 3348;ID # SQUARE MIKURON 3349;ID # SQUARE MIRI 334A;ID # SQUARE MIRIBAARU 334B;ID # SQUARE MEGA 334C;ID # SQUARE MEGATON 334D;ID # SQUARE MEETORU 334E;ID # SQUARE YAADO 334F;ID # SQUARE YAARU 3350;ID # SQUARE YUAN 3351;ID # SQUARE RITTORU 3352;ID # SQUARE RIRA 3353;ID # SQUARE RUPII 3354;ID # SQUARE RUUBURU 3355;ID # SQUARE REMU 3356;ID # SQUARE RENTOGEN 3357;ID # SQUARE WATTO 3358;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO 3359;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE 335A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO 335B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE 335C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR 335D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE 335E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX 335F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN 3360;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT 3361;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE 3362;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN 3363;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN 3364;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE 3365;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN 3366;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN 3367;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN 3368;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN 3369;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN 336A;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN 336B;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN 336C;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY 336D;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE 336E;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO 336F;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE 3370;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR 3371;ID # SQUARE HPA 3372;ID # SQUARE DA 3373;ID # SQUARE AU 3374;ID # SQUARE BAR 3375;ID # SQUARE OV 3376;ID # SQUARE PC 337B;ID # SQUARE ERA NAME HEISEI 337C;ID # SQUARE ERA NAME SYOUWA 337D;ID # SQUARE ERA NAME TAISYOU 337E;ID # SQUARE ERA NAME MEIZI 337F;ID # SQUARE CORPORATION 3380;ID # SQUARE PA AMPS 3381;ID # SQUARE NA 3382;ID # SQUARE MU A 3383;ID # SQUARE MA 3384;ID # SQUARE KA 3385;ID # SQUARE KB 3386;ID # SQUARE MB 3387;ID # SQUARE GB 3388;ID # SQUARE CAL 3389;ID # SQUARE KCAL 338A;ID # SQUARE PF 338B;ID # SQUARE NF 338C;ID # SQUARE MU F 338D;ID # SQUARE MU G 338E;ID # SQUARE MG 338F;ID # SQUARE KG 3390;ID # SQUARE HZ 3391;ID # SQUARE KHZ 3392;ID # SQUARE MHZ 3393;ID # SQUARE GHZ 3394;ID # SQUARE THZ 3395;ID # SQUARE MU L 3396;ID # SQUARE ML 3397;ID # SQUARE DL 3398;ID # SQUARE KL 3399;ID # SQUARE FM 339A;ID # SQUARE NM 339B;ID # SQUARE MU M 339C;ID # SQUARE MM 339D;ID # SQUARE CM 339E;ID # SQUARE KM 339F;ID # SQUARE MM SQUARED 33A0;ID # SQUARE CM SQUARED 33A1;ID # SQUARE M SQUARED 33A2;ID # SQUARE KM SQUARED 33A3;ID # SQUARE MM CUBED 33A4;ID # SQUARE CM CUBED 33A5;ID # SQUARE M CUBED 33A6;ID # SQUARE KM CUBED 33A7;ID # SQUARE M OVER S 33A8;ID # SQUARE M OVER S SQUARED 33A9;ID # SQUARE PA 33AA;ID # SQUARE KPA 33AB;ID # SQUARE MPA 33AC;ID # SQUARE GPA 33AD;ID # SQUARE RAD 33AE;ID # SQUARE RAD OVER S 33AF;ID # SQUARE RAD OVER S SQUARED 33B0;ID # SQUARE PS 33B1;ID # SQUARE NS 33B2;ID # SQUARE MU S 33B3;ID # SQUARE MS 33B4;ID # SQUARE PV 33B5;ID # SQUARE NV 33B6;ID # SQUARE MU V 33B7;ID # SQUARE MV 33B8;ID # SQUARE KV 33B9;ID # SQUARE MV MEGA 33BA;ID # SQUARE PW 33BB;ID # SQUARE NW 33BC;ID # SQUARE MU W 33BD;ID # SQUARE MW 33BE;ID # SQUARE KW 33BF;ID # SQUARE MW MEGA 33C0;ID # SQUARE K OHM 33C1;ID # SQUARE M OHM 33C2;ID # SQUARE AM 33C3;ID # SQUARE BQ 33C4;ID # SQUARE CC 33C5;ID # SQUARE CD 33C6;ID # SQUARE C OVER KG 33C7;ID # SQUARE CO 33C8;ID # SQUARE DB 33C9;ID # SQUARE GY 33CA;ID # SQUARE HA 33CB;ID # SQUARE HP 33CC;ID # SQUARE IN 33CD;ID # SQUARE KK 33CE;ID # SQUARE KM CAPITAL 33CF;ID # SQUARE KT 33D0;ID # SQUARE LM 33D1;ID # SQUARE LN 33D2;ID # SQUARE LOG 33D3;ID # SQUARE LX 33D4;ID # SQUARE MB SMALL 33D5;ID # SQUARE MIL 33D6;ID # SQUARE MOL 33D7;ID # SQUARE PH 33D8;ID # SQUARE PM 33D9;ID # SQUARE PPM 33DA;ID # SQUARE PR 33DB;ID # SQUARE SR 33DC;ID # SQUARE SV 33DD;ID # SQUARE WB 33E0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE 33E1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO 33E2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE 33E3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR 33E4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE 33E5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX 33E6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN 33E7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT 33E8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE 33E9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN 33EA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN 33EB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE 33EC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN 33ED;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN 33EE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN 33EF;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN 33F0;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN 33F1;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN 33F2;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN 33F3;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY 33F4;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE 33F5;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO 33F6;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE 33F7;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR 33F8;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE 33F9;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX 33FA;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN 33FB;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT 33FC;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE 33FD;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY 33FE;ID # IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE 3400..4DB5;ID # .. 4E00..9FA5;ID # .. A000;ID # YI SYLLABLE IT A001;ID # YI SYLLABLE IX A002;ID # YI SYLLABLE I A003;ID # YI SYLLABLE IP A004;ID # YI SYLLABLE IET A005;ID # YI SYLLABLE IEX A006;ID # YI SYLLABLE IE A007;ID # YI SYLLABLE IEP A008;ID # YI SYLLABLE AT A009;ID # YI SYLLABLE AX A00A;ID # YI SYLLABLE A A00B;ID # YI SYLLABLE AP A00C;ID # YI SYLLABLE UOX A00D;ID # YI SYLLABLE UO A00E;ID # YI SYLLABLE UOP A00F;ID # YI SYLLABLE OT A010;ID # YI SYLLABLE OX A011;ID # YI SYLLABLE O A012;ID # YI SYLLABLE OP A013;ID # YI SYLLABLE EX A014;ID # YI SYLLABLE E A015;ID # YI SYLLABLE WU A016;ID # YI SYLLABLE BIT A017;ID # YI SYLLABLE BIX A018;ID # YI SYLLABLE BI A019;ID # YI SYLLABLE BIP A01A;ID # YI SYLLABLE BIET A01B;ID # YI SYLLABLE BIEX A01C;ID # YI SYLLABLE BIE A01D;ID # YI SYLLABLE BIEP A01E;ID # YI SYLLABLE BAT A01F;ID # YI SYLLABLE BAX A020;ID # YI SYLLABLE BA A021;ID # YI SYLLABLE BAP A022;ID # YI SYLLABLE BUOX A023;ID # YI SYLLABLE BUO A024;ID # YI SYLLABLE BUOP A025;ID # YI SYLLABLE BOT A026;ID # YI SYLLABLE BOX A027;ID # YI SYLLABLE BO A028;ID # YI SYLLABLE BOP A029;ID # YI SYLLABLE BEX A02A;ID # YI SYLLABLE BE A02B;ID # YI SYLLABLE BEP A02C;ID # YI SYLLABLE BUT A02D;ID # YI SYLLABLE BUX A02E;ID # YI SYLLABLE BU A02F;ID # YI SYLLABLE BUP A030;ID # YI SYLLABLE BURX A031;ID # YI SYLLABLE BUR A032;ID # YI SYLLABLE BYT A033;ID # YI SYLLABLE BYX A034;ID # YI SYLLABLE BY A035;ID # YI SYLLABLE BYP A036;ID # YI SYLLABLE BYRX A037;ID # YI SYLLABLE BYR A038;ID # YI SYLLABLE PIT A039;ID # YI SYLLABLE PIX A03A;ID # YI SYLLABLE PI A03B;ID # YI SYLLABLE PIP A03C;ID # YI SYLLABLE PIEX A03D;ID # YI SYLLABLE PIE A03E;ID # YI SYLLABLE PIEP A03F;ID # YI SYLLABLE PAT A040;ID # YI SYLLABLE PAX A041;ID # YI SYLLABLE PA A042;ID # YI SYLLABLE PAP A043;ID # YI SYLLABLE PUOX A044;ID # YI SYLLABLE PUO A045;ID # YI SYLLABLE PUOP A046;ID # YI SYLLABLE POT A047;ID # YI SYLLABLE POX A048;ID # YI SYLLABLE PO A049;ID # YI SYLLABLE POP A04A;ID # YI SYLLABLE PUT A04B;ID # YI SYLLABLE PUX A04C;ID # YI SYLLABLE PU A04D;ID # YI SYLLABLE PUP A04E;ID # YI SYLLABLE PURX A04F;ID # YI SYLLABLE PUR A050;ID # YI SYLLABLE PYT A051;ID # YI SYLLABLE PYX A052;ID # YI SYLLABLE PY A053;ID # YI SYLLABLE PYP A054;ID # YI SYLLABLE PYRX A055;ID # YI SYLLABLE PYR A056;ID # YI SYLLABLE BBIT A057;ID # YI SYLLABLE BBIX A058;ID # YI SYLLABLE BBI A059;ID # YI SYLLABLE BBIP A05A;ID # YI SYLLABLE BBIET A05B;ID # YI SYLLABLE BBIEX A05C;ID # YI SYLLABLE BBIE A05D;ID # YI SYLLABLE BBIEP A05E;ID # YI SYLLABLE BBAT A05F;ID # YI SYLLABLE BBAX A060;ID # YI SYLLABLE BBA A061;ID # YI SYLLABLE BBAP A062;ID # YI SYLLABLE BBUOX A063;ID # YI SYLLABLE BBUO A064;ID # YI SYLLABLE BBUOP A065;ID # YI SYLLABLE BBOT A066;ID # YI SYLLABLE BBOX A067;ID # YI SYLLABLE BBO A068;ID # YI SYLLABLE BBOP A069;ID # YI SYLLABLE BBEX A06A;ID # YI SYLLABLE BBE A06B;ID # YI SYLLABLE BBEP A06C;ID # YI SYLLABLE BBUT A06D;ID # YI SYLLABLE BBUX A06E;ID # YI SYLLABLE BBU A06F;ID # YI SYLLABLE BBUP A070;ID # YI SYLLABLE BBURX A071;ID # YI SYLLABLE BBUR A072;ID # YI SYLLABLE BBYT A073;ID # YI SYLLABLE BBYX A074;ID # YI SYLLABLE BBY A075;ID # YI SYLLABLE BBYP A076;ID # YI SYLLABLE NBIT A077;ID # YI SYLLABLE NBIX A078;ID # YI SYLLABLE NBI A079;ID # YI SYLLABLE NBIP A07A;ID # YI SYLLABLE NBIEX A07B;ID # YI SYLLABLE NBIE A07C;ID # YI SYLLABLE NBIEP A07D;ID # YI SYLLABLE NBAT A07E;ID # YI SYLLABLE NBAX A07F;ID # YI SYLLABLE NBA A080;ID # YI SYLLABLE NBAP A081;ID # YI SYLLABLE NBOT A082;ID # YI SYLLABLE NBOX A083;ID # YI SYLLABLE NBO A084;ID # YI SYLLABLE NBOP A085;ID # YI SYLLABLE NBUT A086;ID # YI SYLLABLE NBUX A087;ID # YI SYLLABLE NBU A088;ID # YI SYLLABLE NBUP A089;ID # YI SYLLABLE NBURX A08A;ID # YI SYLLABLE NBUR A08B;ID # YI SYLLABLE NBYT A08C;ID # YI SYLLABLE NBYX A08D;ID # YI SYLLABLE NBY A08E;ID # YI SYLLABLE NBYP A08F;ID # YI SYLLABLE NBYRX A090;ID # YI SYLLABLE NBYR A091;ID # YI SYLLABLE HMIT A092;ID # YI SYLLABLE HMIX A093;ID # YI SYLLABLE HMI A094;ID # YI SYLLABLE HMIP A095;ID # YI SYLLABLE HMIEX A096;ID # YI SYLLABLE HMIE A097;ID # YI SYLLABLE HMIEP A098;ID # YI SYLLABLE HMAT A099;ID # YI SYLLABLE HMAX A09A;ID # YI SYLLABLE HMA A09B;ID # YI SYLLABLE HMAP A09C;ID # YI SYLLABLE HMUOX A09D;ID # YI SYLLABLE HMUO A09E;ID # YI SYLLABLE HMUOP A09F;ID # YI SYLLABLE HMOT A0A0;ID # YI SYLLABLE HMOX A0A1;ID # YI SYLLABLE HMO A0A2;ID # YI SYLLABLE HMOP A0A3;ID # YI SYLLABLE HMUT A0A4;ID # YI SYLLABLE HMUX A0A5;ID # YI SYLLABLE HMU A0A6;ID # YI SYLLABLE HMUP A0A7;ID # YI SYLLABLE HMURX A0A8;ID # YI SYLLABLE HMUR A0A9;ID # YI SYLLABLE HMYX A0AA;ID # YI SYLLABLE HMY A0AB;ID # YI SYLLABLE HMYP A0AC;ID # YI SYLLABLE HMYRX A0AD;ID # YI SYLLABLE HMYR A0AE;ID # YI SYLLABLE MIT A0AF;ID # YI SYLLABLE MIX A0B0;ID # YI SYLLABLE MI A0B1;ID # YI SYLLABLE MIP A0B2;ID # YI SYLLABLE MIEX A0B3;ID # YI SYLLABLE MIE A0B4;ID # YI SYLLABLE MIEP A0B5;ID # YI SYLLABLE MAT A0B6;ID # YI SYLLABLE MAX A0B7;ID # YI SYLLABLE MA A0B8;ID # YI SYLLABLE MAP A0B9;ID # YI SYLLABLE MUOT A0BA;ID # YI SYLLABLE MUOX A0BB;ID # YI SYLLABLE MUO A0BC;ID # YI SYLLABLE MUOP A0BD;ID # YI SYLLABLE MOT A0BE;ID # YI SYLLABLE MOX A0BF;ID # YI SYLLABLE MO A0C0;ID # YI SYLLABLE MOP A0C1;ID # YI SYLLABLE MEX A0C2;ID # YI SYLLABLE ME A0C3;ID # YI SYLLABLE MUT A0C4;ID # YI SYLLABLE MUX A0C5;ID # YI SYLLABLE MU A0C6;ID # YI SYLLABLE MUP A0C7;ID # YI SYLLABLE MURX A0C8;ID # YI SYLLABLE MUR A0C9;ID # YI SYLLABLE MYT A0CA;ID # YI SYLLABLE MYX A0CB;ID # YI SYLLABLE MY A0CC;ID # YI SYLLABLE MYP A0CD;ID # YI SYLLABLE FIT A0CE;ID # YI SYLLABLE FIX A0CF;ID # YI SYLLABLE FI A0D0;ID # YI SYLLABLE FIP A0D1;ID # YI SYLLABLE FAT A0D2;ID # YI SYLLABLE FAX A0D3;ID # YI SYLLABLE FA A0D4;ID # YI SYLLABLE FAP A0D5;ID # YI SYLLABLE FOX A0D6;ID # YI SYLLABLE FO A0D7;ID # YI SYLLABLE FOP A0D8;ID # YI SYLLABLE FUT A0D9;ID # YI SYLLABLE FUX A0DA;ID # YI SYLLABLE FU A0DB;ID # YI SYLLABLE FUP A0DC;ID # YI SYLLABLE FURX A0DD;ID # YI SYLLABLE FUR A0DE;ID # YI SYLLABLE FYT A0DF;ID # YI SYLLABLE FYX A0E0;ID # YI SYLLABLE FY A0E1;ID # YI SYLLABLE FYP A0E2;ID # YI SYLLABLE VIT A0E3;ID # YI SYLLABLE VIX A0E4;ID # YI SYLLABLE VI A0E5;ID # YI SYLLABLE VIP A0E6;ID # YI SYLLABLE VIET A0E7;ID # YI SYLLABLE VIEX A0E8;ID # YI SYLLABLE VIE A0E9;ID # YI SYLLABLE VIEP A0EA;ID # YI SYLLABLE VAT A0EB;ID # YI SYLLABLE VAX A0EC;ID # YI SYLLABLE VA A0ED;ID # YI SYLLABLE VAP A0EE;ID # YI SYLLABLE VOT A0EF;ID # YI SYLLABLE VOX A0F0;ID # YI SYLLABLE VO A0F1;ID # YI SYLLABLE VOP A0F2;ID # YI SYLLABLE VEX A0F3;ID # YI SYLLABLE VEP A0F4;ID # YI SYLLABLE VUT A0F5;ID # YI SYLLABLE VUX A0F6;ID # YI SYLLABLE VU A0F7;ID # YI SYLLABLE VUP A0F8;ID # YI SYLLABLE VURX A0F9;ID # YI SYLLABLE VUR A0FA;ID # YI SYLLABLE VYT A0FB;ID # YI SYLLABLE VYX A0FC;ID # YI SYLLABLE VY A0FD;ID # YI SYLLABLE VYP A0FE;ID # YI SYLLABLE VYRX A0FF;ID # YI SYLLABLE VYR A100;ID # YI SYLLABLE DIT A101;ID # YI SYLLABLE DIX A102;ID # YI SYLLABLE DI A103;ID # YI SYLLABLE DIP A104;ID # YI SYLLABLE DIEX A105;ID # YI SYLLABLE DIE A106;ID # YI SYLLABLE DIEP A107;ID # YI SYLLABLE DAT A108;ID # YI SYLLABLE DAX A109;ID # YI SYLLABLE DA A10A;ID # YI SYLLABLE DAP A10B;ID # YI SYLLABLE DUOX A10C;ID # YI SYLLABLE DUO A10D;ID # YI SYLLABLE DOT A10E;ID # YI SYLLABLE DOX A10F;ID # YI SYLLABLE DO A110;ID # YI SYLLABLE DOP A111;ID # YI SYLLABLE DEX A112;ID # YI SYLLABLE DE A113;ID # YI SYLLABLE DEP A114;ID # YI SYLLABLE DUT A115;ID # YI SYLLABLE DUX A116;ID # YI SYLLABLE DU A117;ID # YI SYLLABLE DUP A118;ID # YI SYLLABLE DURX A119;ID # YI SYLLABLE DUR A11A;ID # YI SYLLABLE TIT A11B;ID # YI SYLLABLE TIX A11C;ID # YI SYLLABLE TI A11D;ID # YI SYLLABLE TIP A11E;ID # YI SYLLABLE TIEX A11F;ID # YI SYLLABLE TIE A120;ID # YI SYLLABLE TIEP A121;ID # YI SYLLABLE TAT A122;ID # YI SYLLABLE TAX A123;ID # YI SYLLABLE TA A124;ID # YI SYLLABLE TAP A125;ID # YI SYLLABLE TUOT A126;ID # YI SYLLABLE TUOX A127;ID # YI SYLLABLE TUO A128;ID # YI SYLLABLE TUOP A129;ID # YI SYLLABLE TOT A12A;ID # YI SYLLABLE TOX A12B;ID # YI SYLLABLE TO A12C;ID # YI SYLLABLE TOP A12D;ID # YI SYLLABLE TEX A12E;ID # YI SYLLABLE TE A12F;ID # YI SYLLABLE TEP A130;ID # YI SYLLABLE TUT A131;ID # YI SYLLABLE TUX A132;ID # YI SYLLABLE TU A133;ID # YI SYLLABLE TUP A134;ID # YI SYLLABLE TURX A135;ID # YI SYLLABLE TUR A136;ID # YI SYLLABLE DDIT A137;ID # YI SYLLABLE DDIX A138;ID # YI SYLLABLE DDI A139;ID # YI SYLLABLE DDIP A13A;ID # YI SYLLABLE DDIEX A13B;ID # YI SYLLABLE DDIE A13C;ID # YI SYLLABLE DDIEP A13D;ID # YI SYLLABLE DDAT A13E;ID # YI SYLLABLE DDAX A13F;ID # YI SYLLABLE DDA A140;ID # YI SYLLABLE DDAP A141;ID # YI SYLLABLE DDUOX A142;ID # YI SYLLABLE DDUO A143;ID # YI SYLLABLE DDUOP A144;ID # YI SYLLABLE DDOT A145;ID # YI SYLLABLE DDOX A146;ID # YI SYLLABLE DDO A147;ID # YI SYLLABLE DDOP A148;ID # YI SYLLABLE DDEX A149;ID # YI SYLLABLE DDE A14A;ID # YI SYLLABLE DDEP A14B;ID # YI SYLLABLE DDUT A14C;ID # YI SYLLABLE DDUX A14D;ID # YI SYLLABLE DDU A14E;ID # YI SYLLABLE DDUP A14F;ID # YI SYLLABLE DDURX A150;ID # YI SYLLABLE DDUR A151;ID # YI SYLLABLE NDIT A152;ID # YI SYLLABLE NDIX A153;ID # YI SYLLABLE NDI A154;ID # YI SYLLABLE NDIP A155;ID # YI SYLLABLE NDIEX A156;ID # YI SYLLABLE NDIE A157;ID # YI SYLLABLE NDAT A158;ID # YI SYLLABLE NDAX A159;ID # YI SYLLABLE NDA A15A;ID # YI SYLLABLE NDAP A15B;ID # YI SYLLABLE NDOT A15C;ID # YI SYLLABLE NDOX A15D;ID # YI SYLLABLE NDO A15E;ID # YI SYLLABLE NDOP A15F;ID # YI SYLLABLE NDEX A160;ID # YI SYLLABLE NDE A161;ID # YI SYLLABLE NDEP A162;ID # YI SYLLABLE NDUT A163;ID # YI SYLLABLE NDUX A164;ID # YI SYLLABLE NDU A165;ID # YI SYLLABLE NDUP A166;ID # YI SYLLABLE NDURX A167;ID # YI SYLLABLE NDUR A168;ID # YI SYLLABLE HNIT A169;ID # YI SYLLABLE HNIX A16A;ID # YI SYLLABLE HNI A16B;ID # YI SYLLABLE HNIP A16C;ID # YI SYLLABLE HNIET A16D;ID # YI SYLLABLE HNIEX A16E;ID # YI SYLLABLE HNIE A16F;ID # YI SYLLABLE HNIEP A170;ID # YI SYLLABLE HNAT A171;ID # YI SYLLABLE HNAX A172;ID # YI SYLLABLE HNA A173;ID # YI SYLLABLE HNAP A174;ID # YI SYLLABLE HNUOX A175;ID # YI SYLLABLE HNUO A176;ID # YI SYLLABLE HNOT A177;ID # YI SYLLABLE HNOX A178;ID # YI SYLLABLE HNOP A179;ID # YI SYLLABLE HNEX A17A;ID # YI SYLLABLE HNE A17B;ID # YI SYLLABLE HNEP A17C;ID # YI SYLLABLE HNUT A17D;ID # YI SYLLABLE NIT A17E;ID # YI SYLLABLE NIX A17F;ID # YI SYLLABLE NI A180;ID # YI SYLLABLE NIP A181;ID # YI SYLLABLE NIEX A182;ID # YI SYLLABLE NIE A183;ID # YI SYLLABLE NIEP A184;ID # YI SYLLABLE NAX A185;ID # YI SYLLABLE NA A186;ID # YI SYLLABLE NAP A187;ID # YI SYLLABLE NUOX A188;ID # YI SYLLABLE NUO A189;ID # YI SYLLABLE NUOP A18A;ID # YI SYLLABLE NOT A18B;ID # YI SYLLABLE NOX A18C;ID # YI SYLLABLE NO A18D;ID # YI SYLLABLE NOP A18E;ID # YI SYLLABLE NEX A18F;ID # YI SYLLABLE NE A190;ID # YI SYLLABLE NEP A191;ID # YI SYLLABLE NUT A192;ID # YI SYLLABLE NUX A193;ID # YI SYLLABLE NU A194;ID # YI SYLLABLE NUP A195;ID # YI SYLLABLE NURX A196;ID # YI SYLLABLE NUR A197;ID # YI SYLLABLE HLIT A198;ID # YI SYLLABLE HLIX A199;ID # YI SYLLABLE HLI A19A;ID # YI SYLLABLE HLIP A19B;ID # YI SYLLABLE HLIEX A19C;ID # YI SYLLABLE HLIE A19D;ID # YI SYLLABLE HLIEP A19E;ID # YI SYLLABLE HLAT A19F;ID # YI SYLLABLE HLAX A1A0;ID # YI SYLLABLE HLA A1A1;ID # YI SYLLABLE HLAP A1A2;ID # YI SYLLABLE HLUOX A1A3;ID # YI SYLLABLE HLUO A1A4;ID # YI SYLLABLE HLUOP A1A5;ID # YI SYLLABLE HLOX A1A6;ID # YI SYLLABLE HLO A1A7;ID # YI SYLLABLE HLOP A1A8;ID # YI SYLLABLE HLEX A1A9;ID # YI SYLLABLE HLE A1AA;ID # YI SYLLABLE HLEP A1AB;ID # YI SYLLABLE HLUT A1AC;ID # YI SYLLABLE HLUX A1AD;ID # YI SYLLABLE HLU A1AE;ID # YI SYLLABLE HLUP A1AF;ID # YI SYLLABLE HLURX A1B0;ID # YI SYLLABLE HLUR A1B1;ID # YI SYLLABLE HLYT A1B2;ID # YI SYLLABLE HLYX A1B3;ID # YI SYLLABLE HLY A1B4;ID # YI SYLLABLE HLYP A1B5;ID # YI SYLLABLE HLYRX A1B6;ID # YI SYLLABLE HLYR A1B7;ID # YI SYLLABLE LIT A1B8;ID # YI SYLLABLE LIX A1B9;ID # YI SYLLABLE LI A1BA;ID # YI SYLLABLE LIP A1BB;ID # YI SYLLABLE LIET A1BC;ID # YI SYLLABLE LIEX A1BD;ID # YI SYLLABLE LIE A1BE;ID # YI SYLLABLE LIEP A1BF;ID # YI SYLLABLE LAT A1C0;ID # YI SYLLABLE LAX A1C1;ID # YI SYLLABLE LA A1C2;ID # YI SYLLABLE LAP A1C3;ID # YI SYLLABLE LUOT A1C4;ID # YI SYLLABLE LUOX A1C5;ID # YI SYLLABLE LUO A1C6;ID # YI SYLLABLE LUOP A1C7;ID # YI SYLLABLE LOT A1C8;ID # YI SYLLABLE LOX A1C9;ID # YI SYLLABLE LO A1CA;ID # YI SYLLABLE LOP A1CB;ID # YI SYLLABLE LEX A1CC;ID # YI SYLLABLE LE A1CD;ID # YI SYLLABLE LEP A1CE;ID # YI SYLLABLE LUT A1CF;ID # YI SYLLABLE LUX A1D0;ID # YI SYLLABLE LU A1D1;ID # YI SYLLABLE LUP A1D2;ID # YI SYLLABLE LURX A1D3;ID # YI SYLLABLE LUR A1D4;ID # YI SYLLABLE LYT A1D5;ID # YI SYLLABLE LYX A1D6;ID # YI SYLLABLE LY A1D7;ID # YI SYLLABLE LYP A1D8;ID # YI SYLLABLE LYRX A1D9;ID # YI SYLLABLE LYR A1DA;ID # YI SYLLABLE GIT A1DB;ID # YI SYLLABLE GIX A1DC;ID # YI SYLLABLE GI A1DD;ID # YI SYLLABLE GIP A1DE;ID # YI SYLLABLE GIET A1DF;ID # YI SYLLABLE GIEX A1E0;ID # YI SYLLABLE GIE A1E1;ID # YI SYLLABLE GIEP A1E2;ID # YI SYLLABLE GAT A1E3;ID # YI SYLLABLE GAX A1E4;ID # YI SYLLABLE GA A1E5;ID # YI SYLLABLE GAP A1E6;ID # YI SYLLABLE GUOT A1E7;ID # YI SYLLABLE GUOX A1E8;ID # YI SYLLABLE GUO A1E9;ID # YI SYLLABLE GUOP A1EA;ID # YI SYLLABLE GOT A1EB;ID # YI SYLLABLE GOX A1EC;ID # YI SYLLABLE GO A1ED;ID # YI SYLLABLE GOP A1EE;ID # YI SYLLABLE GET A1EF;ID # YI SYLLABLE GEX A1F0;ID # YI SYLLABLE GE A1F1;ID # YI SYLLABLE GEP A1F2;ID # YI SYLLABLE GUT A1F3;ID # YI SYLLABLE GUX A1F4;ID # YI SYLLABLE GU A1F5;ID # YI SYLLABLE GUP A1F6;ID # YI SYLLABLE GURX A1F7;ID # YI SYLLABLE GUR A1F8;ID # YI SYLLABLE KIT A1F9;ID # YI SYLLABLE KIX A1FA;ID # YI SYLLABLE KI A1FB;ID # YI SYLLABLE KIP A1FC;ID # YI SYLLABLE KIEX A1FD;ID # YI SYLLABLE KIE A1FE;ID # YI SYLLABLE KIEP A1FF;ID # YI SYLLABLE KAT A200;ID # YI SYLLABLE KAX A201;ID # YI SYLLABLE KA A202;ID # YI SYLLABLE KAP A203;ID # YI SYLLABLE KUOX A204;ID # YI SYLLABLE KUO A205;ID # YI SYLLABLE KUOP A206;ID # YI SYLLABLE KOT A207;ID # YI SYLLABLE KOX A208;ID # YI SYLLABLE KO A209;ID # YI SYLLABLE KOP A20A;ID # YI SYLLABLE KET A20B;ID # YI SYLLABLE KEX A20C;ID # YI SYLLABLE KE A20D;ID # YI SYLLABLE KEP A20E;ID # YI SYLLABLE KUT A20F;ID # YI SYLLABLE KUX A210;ID # YI SYLLABLE KU A211;ID # YI SYLLABLE KUP A212;ID # YI SYLLABLE KURX A213;ID # YI SYLLABLE KUR A214;ID # YI SYLLABLE GGIT A215;ID # YI SYLLABLE GGIX A216;ID # YI SYLLABLE GGI A217;ID # YI SYLLABLE GGIEX A218;ID # YI SYLLABLE GGIE A219;ID # YI SYLLABLE GGIEP A21A;ID # YI SYLLABLE GGAT A21B;ID # YI SYLLABLE GGAX A21C;ID # YI SYLLABLE GGA A21D;ID # YI SYLLABLE GGAP A21E;ID # YI SYLLABLE GGUOT A21F;ID # YI SYLLABLE GGUOX A220;ID # YI SYLLABLE GGUO A221;ID # YI SYLLABLE GGUOP A222;ID # YI SYLLABLE GGOT A223;ID # YI SYLLABLE GGOX A224;ID # YI SYLLABLE GGO A225;ID # YI SYLLABLE GGOP A226;ID # YI SYLLABLE GGET A227;ID # YI SYLLABLE GGEX A228;ID # YI SYLLABLE GGE A229;ID # YI SYLLABLE GGEP A22A;ID # YI SYLLABLE GGUT A22B;ID # YI SYLLABLE GGUX A22C;ID # YI SYLLABLE GGU A22D;ID # YI SYLLABLE GGUP A22E;ID # YI SYLLABLE GGURX A22F;ID # YI SYLLABLE GGUR A230;ID # YI SYLLABLE MGIEX A231;ID # YI SYLLABLE MGIE A232;ID # YI SYLLABLE MGAT A233;ID # YI SYLLABLE MGAX A234;ID # YI SYLLABLE MGA A235;ID # YI SYLLABLE MGAP A236;ID # YI SYLLABLE MGUOX A237;ID # YI SYLLABLE MGUO A238;ID # YI SYLLABLE MGUOP A239;ID # YI SYLLABLE MGOT A23A;ID # YI SYLLABLE MGOX A23B;ID # YI SYLLABLE MGO A23C;ID # YI SYLLABLE MGOP A23D;ID # YI SYLLABLE MGEX A23E;ID # YI SYLLABLE MGE A23F;ID # YI SYLLABLE MGEP A240;ID # YI SYLLABLE MGUT A241;ID # YI SYLLABLE MGUX A242;ID # YI SYLLABLE MGU A243;ID # YI SYLLABLE MGUP A244;ID # YI SYLLABLE MGURX A245;ID # YI SYLLABLE MGUR A246;ID # YI SYLLABLE HXIT A247;ID # YI SYLLABLE HXIX A248;ID # YI SYLLABLE HXI A249;ID # YI SYLLABLE HXIP A24A;ID # YI SYLLABLE HXIET A24B;ID # YI SYLLABLE HXIEX A24C;ID # YI SYLLABLE HXIE A24D;ID # YI SYLLABLE HXIEP A24E;ID # YI SYLLABLE HXAT A24F;ID # YI SYLLABLE HXAX A250;ID # YI SYLLABLE HXA A251;ID # YI SYLLABLE HXAP A252;ID # YI SYLLABLE HXUOT A253;ID # YI SYLLABLE HXUOX A254;ID # YI SYLLABLE HXUO A255;ID # YI SYLLABLE HXUOP A256;ID # YI SYLLABLE HXOT A257;ID # YI SYLLABLE HXOX A258;ID # YI SYLLABLE HXO A259;ID # YI SYLLABLE HXOP A25A;ID # YI SYLLABLE HXEX A25B;ID # YI SYLLABLE HXE A25C;ID # YI SYLLABLE HXEP A25D;ID # YI SYLLABLE NGIEX A25E;ID # YI SYLLABLE NGIE A25F;ID # YI SYLLABLE NGIEP A260;ID # YI SYLLABLE NGAT A261;ID # YI SYLLABLE NGAX A262;ID # YI SYLLABLE NGA A263;ID # YI SYLLABLE NGAP A264;ID # YI SYLLABLE NGUOT A265;ID # YI SYLLABLE NGUOX A266;ID # YI SYLLABLE NGUO A267;ID # YI SYLLABLE NGOT A268;ID # YI SYLLABLE NGOX A269;ID # YI SYLLABLE NGO A26A;ID # YI SYLLABLE NGOP A26B;ID # YI SYLLABLE NGEX A26C;ID # YI SYLLABLE NGE A26D;ID # YI SYLLABLE NGEP A26E;ID # YI SYLLABLE HIT A26F;ID # YI SYLLABLE HIEX A270;ID # YI SYLLABLE HIE A271;ID # YI SYLLABLE HAT A272;ID # YI SYLLABLE HAX A273;ID # YI SYLLABLE HA A274;ID # YI SYLLABLE HAP A275;ID # YI SYLLABLE HUOT A276;ID # YI SYLLABLE HUOX A277;ID # YI SYLLABLE HUO A278;ID # YI SYLLABLE HUOP A279;ID # YI SYLLABLE HOT A27A;ID # YI SYLLABLE HOX A27B;ID # YI SYLLABLE HO A27C;ID # YI SYLLABLE HOP A27D;ID # YI SYLLABLE HEX A27E;ID # YI SYLLABLE HE A27F;ID # YI SYLLABLE HEP A280;ID # YI SYLLABLE WAT A281;ID # YI SYLLABLE WAX A282;ID # YI SYLLABLE WA A283;ID # YI SYLLABLE WAP A284;ID # YI SYLLABLE WUOX A285;ID # YI SYLLABLE WUO A286;ID # YI SYLLABLE WUOP A287;ID # YI SYLLABLE WOX A288;ID # YI SYLLABLE WO A289;ID # YI SYLLABLE WOP A28A;ID # YI SYLLABLE WEX A28B;ID # YI SYLLABLE WE A28C;ID # YI SYLLABLE WEP A28D;ID # YI SYLLABLE ZIT A28E;ID # YI SYLLABLE ZIX A28F;ID # YI SYLLABLE ZI A290;ID # YI SYLLABLE ZIP A291;ID # YI SYLLABLE ZIEX A292;ID # YI SYLLABLE ZIE A293;ID # YI SYLLABLE ZIEP A294;ID # YI SYLLABLE ZAT A295;ID # YI SYLLABLE ZAX A296;ID # YI SYLLABLE ZA A297;ID # YI SYLLABLE ZAP A298;ID # YI SYLLABLE ZUOX A299;ID # YI SYLLABLE ZUO A29A;ID # YI SYLLABLE ZUOP A29B;ID # YI SYLLABLE ZOT A29C;ID # YI SYLLABLE ZOX A29D;ID # YI SYLLABLE ZO A29E;ID # YI SYLLABLE ZOP A29F;ID # YI SYLLABLE ZEX A2A0;ID # YI SYLLABLE ZE A2A1;ID # YI SYLLABLE ZEP A2A2;ID # YI SYLLABLE ZUT A2A3;ID # YI SYLLABLE ZUX A2A4;ID # YI SYLLABLE ZU A2A5;ID # YI SYLLABLE ZUP A2A6;ID # YI SYLLABLE ZURX A2A7;ID # YI SYLLABLE ZUR A2A8;ID # YI SYLLABLE ZYT A2A9;ID # YI SYLLABLE ZYX A2AA;ID # YI SYLLABLE ZY A2AB;ID # YI SYLLABLE ZYP A2AC;ID # YI SYLLABLE ZYRX A2AD;ID # YI SYLLABLE ZYR A2AE;ID # YI SYLLABLE CIT A2AF;ID # YI SYLLABLE CIX A2B0;ID # YI SYLLABLE CI A2B1;ID # YI SYLLABLE CIP A2B2;ID # YI SYLLABLE CIET A2B3;ID # YI SYLLABLE CIEX A2B4;ID # YI SYLLABLE CIE A2B5;ID # YI SYLLABLE CIEP A2B6;ID # YI SYLLABLE CAT A2B7;ID # YI SYLLABLE CAX A2B8;ID # YI SYLLABLE CA A2B9;ID # YI SYLLABLE CAP A2BA;ID # YI SYLLABLE CUOX A2BB;ID # YI SYLLABLE CUO A2BC;ID # YI SYLLABLE CUOP A2BD;ID # YI SYLLABLE COT A2BE;ID # YI SYLLABLE COX A2BF;ID # YI SYLLABLE CO A2C0;ID # YI SYLLABLE COP A2C1;ID # YI SYLLABLE CEX A2C2;ID # YI SYLLABLE CE A2C3;ID # YI SYLLABLE CEP A2C4;ID # YI SYLLABLE CUT A2C5;ID # YI SYLLABLE CUX A2C6;ID # YI SYLLABLE CU A2C7;ID # YI SYLLABLE CUP A2C8;ID # YI SYLLABLE CURX A2C9;ID # YI SYLLABLE CUR A2CA;ID # YI SYLLABLE CYT A2CB;ID # YI SYLLABLE CYX A2CC;ID # YI SYLLABLE CY A2CD;ID # YI SYLLABLE CYP A2CE;ID # YI SYLLABLE CYRX A2CF;ID # YI SYLLABLE CYR A2D0;ID # YI SYLLABLE ZZIT A2D1;ID # YI SYLLABLE ZZIX A2D2;ID # YI SYLLABLE ZZI A2D3;ID # YI SYLLABLE ZZIP A2D4;ID # YI SYLLABLE ZZIET A2D5;ID # YI SYLLABLE ZZIEX A2D6;ID # YI SYLLABLE ZZIE A2D7;ID # YI SYLLABLE ZZIEP A2D8;ID # YI SYLLABLE ZZAT A2D9;ID # YI SYLLABLE ZZAX A2DA;ID # YI SYLLABLE ZZA A2DB;ID # YI SYLLABLE ZZAP A2DC;ID # YI SYLLABLE ZZOX A2DD;ID # YI SYLLABLE ZZO A2DE;ID # YI SYLLABLE ZZOP A2DF;ID # YI SYLLABLE ZZEX A2E0;ID # YI SYLLABLE ZZE A2E1;ID # YI SYLLABLE ZZEP A2E2;ID # YI SYLLABLE ZZUX A2E3;ID # YI SYLLABLE ZZU A2E4;ID # YI SYLLABLE ZZUP A2E5;ID # YI SYLLABLE ZZURX A2E6;ID # YI SYLLABLE ZZUR A2E7;ID # YI SYLLABLE ZZYT A2E8;ID # YI SYLLABLE ZZYX A2E9;ID # YI SYLLABLE ZZY A2EA;ID # YI SYLLABLE ZZYP A2EB;ID # YI SYLLABLE ZZYRX A2EC;ID # YI SYLLABLE ZZYR A2ED;ID # YI SYLLABLE NZIT A2EE;ID # YI SYLLABLE NZIX A2EF;ID # YI SYLLABLE NZI A2F0;ID # YI SYLLABLE NZIP A2F1;ID # YI SYLLABLE NZIEX A2F2;ID # YI SYLLABLE NZIE A2F3;ID # YI SYLLABLE NZIEP A2F4;ID # YI SYLLABLE NZAT A2F5;ID # YI SYLLABLE NZAX A2F6;ID # YI SYLLABLE NZA A2F7;ID # YI SYLLABLE NZAP A2F8;ID # YI SYLLABLE NZUOX A2F9;ID # YI SYLLABLE NZUO A2FA;ID # YI SYLLABLE NZOX A2FB;ID # YI SYLLABLE NZOP A2FC;ID # YI SYLLABLE NZEX A2FD;ID # YI SYLLABLE NZE A2FE;ID # YI SYLLABLE NZUX A2FF;ID # YI SYLLABLE NZU A300;ID # YI SYLLABLE NZUP A301;ID # YI SYLLABLE NZURX A302;ID # YI SYLLABLE NZUR A303;ID # YI SYLLABLE NZYT A304;ID # YI SYLLABLE NZYX A305;ID # YI SYLLABLE NZY A306;ID # YI SYLLABLE NZYP A307;ID # YI SYLLABLE NZYRX A308;ID # YI SYLLABLE NZYR A309;ID # YI SYLLABLE SIT A30A;ID # YI SYLLABLE SIX A30B;ID # YI SYLLABLE SI A30C;ID # YI SYLLABLE SIP A30D;ID # YI SYLLABLE SIEX A30E;ID # YI SYLLABLE SIE A30F;ID # YI SYLLABLE SIEP A310;ID # YI SYLLABLE SAT A311;ID # YI SYLLABLE SAX A312;ID # YI SYLLABLE SA A313;ID # YI SYLLABLE SAP A314;ID # YI SYLLABLE SUOX A315;ID # YI SYLLABLE SUO A316;ID # YI SYLLABLE SUOP A317;ID # YI SYLLABLE SOT A318;ID # YI SYLLABLE SOX A319;ID # YI SYLLABLE SO A31A;ID # YI SYLLABLE SOP A31B;ID # YI SYLLABLE SEX A31C;ID # YI SYLLABLE SE A31D;ID # YI SYLLABLE SEP A31E;ID # YI SYLLABLE SUT A31F;ID # YI SYLLABLE SUX A320;ID # YI SYLLABLE SU A321;ID # YI SYLLABLE SUP A322;ID # YI SYLLABLE SURX A323;ID # YI SYLLABLE SUR A324;ID # YI SYLLABLE SYT A325;ID # YI SYLLABLE SYX A326;ID # YI SYLLABLE SY A327;ID # YI SYLLABLE SYP A328;ID # YI SYLLABLE SYRX A329;ID # YI SYLLABLE SYR A32A;ID # YI SYLLABLE SSIT A32B;ID # YI SYLLABLE SSIX A32C;ID # YI SYLLABLE SSI A32D;ID # YI SYLLABLE SSIP A32E;ID # YI SYLLABLE SSIEX A32F;ID # YI SYLLABLE SSIE A330;ID # YI SYLLABLE SSIEP A331;ID # YI SYLLABLE SSAT A332;ID # YI SYLLABLE SSAX A333;ID # YI SYLLABLE SSA A334;ID # YI SYLLABLE SSAP A335;ID # YI SYLLABLE SSOT A336;ID # YI SYLLABLE SSOX A337;ID # YI SYLLABLE SSO A338;ID # YI SYLLABLE SSOP A339;ID # YI SYLLABLE SSEX A33A;ID # YI SYLLABLE SSE A33B;ID # YI SYLLABLE SSEP A33C;ID # YI SYLLABLE SSUT A33D;ID # YI SYLLABLE SSUX A33E;ID # YI SYLLABLE SSU A33F;ID # YI SYLLABLE SSUP A340;ID # YI SYLLABLE SSYT A341;ID # YI SYLLABLE SSYX A342;ID # YI SYLLABLE SSY A343;ID # YI SYLLABLE SSYP A344;ID # YI SYLLABLE SSYRX A345;ID # YI SYLLABLE SSYR A346;ID # YI SYLLABLE ZHAT A347;ID # YI SYLLABLE ZHAX A348;ID # YI SYLLABLE ZHA A349;ID # YI SYLLABLE ZHAP A34A;ID # YI SYLLABLE ZHUOX A34B;ID # YI SYLLABLE ZHUO A34C;ID # YI SYLLABLE ZHUOP A34D;ID # YI SYLLABLE ZHOT A34E;ID # YI SYLLABLE ZHOX A34F;ID # YI SYLLABLE ZHO A350;ID # YI SYLLABLE ZHOP A351;ID # YI SYLLABLE ZHET A352;ID # YI SYLLABLE ZHEX A353;ID # YI SYLLABLE ZHE A354;ID # YI SYLLABLE ZHEP A355;ID # YI SYLLABLE ZHUT A356;ID # YI SYLLABLE ZHUX A357;ID # YI SYLLABLE ZHU A358;ID # YI SYLLABLE ZHUP A359;ID # YI SYLLABLE ZHURX A35A;ID # YI SYLLABLE ZHUR A35B;ID # YI SYLLABLE ZHYT A35C;ID # YI SYLLABLE ZHYX A35D;ID # YI SYLLABLE ZHY A35E;ID # YI SYLLABLE ZHYP A35F;ID # YI SYLLABLE ZHYRX A360;ID # YI SYLLABLE ZHYR A361;ID # YI SYLLABLE CHAT A362;ID # YI SYLLABLE CHAX A363;ID # YI SYLLABLE CHA A364;ID # YI SYLLABLE CHAP A365;ID # YI SYLLABLE CHUOT A366;ID # YI SYLLABLE CHUOX A367;ID # YI SYLLABLE CHUO A368;ID # YI SYLLABLE CHUOP A369;ID # YI SYLLABLE CHOT A36A;ID # YI SYLLABLE CHOX A36B;ID # YI SYLLABLE CHO A36C;ID # YI SYLLABLE CHOP A36D;ID # YI SYLLABLE CHET A36E;ID # YI SYLLABLE CHEX A36F;ID # YI SYLLABLE CHE A370;ID # YI SYLLABLE CHEP A371;ID # YI SYLLABLE CHUX A372;ID # YI SYLLABLE CHU A373;ID # YI SYLLABLE CHUP A374;ID # YI SYLLABLE CHURX A375;ID # YI SYLLABLE CHUR A376;ID # YI SYLLABLE CHYT A377;ID # YI SYLLABLE CHYX A378;ID # YI SYLLABLE CHY A379;ID # YI SYLLABLE CHYP A37A;ID # YI SYLLABLE CHYRX A37B;ID # YI SYLLABLE CHYR A37C;ID # YI SYLLABLE RRAX A37D;ID # YI SYLLABLE RRA A37E;ID # YI SYLLABLE RRUOX A37F;ID # YI SYLLABLE RRUO A380;ID # YI SYLLABLE RROT A381;ID # YI SYLLABLE RROX A382;ID # YI SYLLABLE RRO A383;ID # YI SYLLABLE RROP A384;ID # YI SYLLABLE RRET A385;ID # YI SYLLABLE RREX A386;ID # YI SYLLABLE RRE A387;ID # YI SYLLABLE RREP A388;ID # YI SYLLABLE RRUT A389;ID # YI SYLLABLE RRUX A38A;ID # YI SYLLABLE RRU A38B;ID # YI SYLLABLE RRUP A38C;ID # YI SYLLABLE RRURX A38D;ID # YI SYLLABLE RRUR A38E;ID # YI SYLLABLE RRYT A38F;ID # YI SYLLABLE RRYX A390;ID # YI SYLLABLE RRY A391;ID # YI SYLLABLE RRYP A392;ID # YI SYLLABLE RRYRX A393;ID # YI SYLLABLE RRYR A394;ID # YI SYLLABLE NRAT A395;ID # YI SYLLABLE NRAX A396;ID # YI SYLLABLE NRA A397;ID # YI SYLLABLE NRAP A398;ID # YI SYLLABLE NROX A399;ID # YI SYLLABLE NRO A39A;ID # YI SYLLABLE NROP A39B;ID # YI SYLLABLE NRET A39C;ID # YI SYLLABLE NREX A39D;ID # YI SYLLABLE NRE A39E;ID # YI SYLLABLE NREP A39F;ID # YI SYLLABLE NRUT A3A0;ID # YI SYLLABLE NRUX A3A1;ID # YI SYLLABLE NRU A3A2;ID # YI SYLLABLE NRUP A3A3;ID # YI SYLLABLE NRURX A3A4;ID # YI SYLLABLE NRUR A3A5;ID # YI SYLLABLE NRYT A3A6;ID # YI SYLLABLE NRYX A3A7;ID # YI SYLLABLE NRY A3A8;ID # YI SYLLABLE NRYP A3A9;ID # YI SYLLABLE NRYRX A3AA;ID # YI SYLLABLE NRYR A3AB;ID # YI SYLLABLE SHAT A3AC;ID # YI SYLLABLE SHAX A3AD;ID # YI SYLLABLE SHA A3AE;ID # YI SYLLABLE SHAP A3AF;ID # YI SYLLABLE SHUOX A3B0;ID # YI SYLLABLE SHUO A3B1;ID # YI SYLLABLE SHUOP A3B2;ID # YI SYLLABLE SHOT A3B3;ID # YI SYLLABLE SHOX A3B4;ID # YI SYLLABLE SHO A3B5;ID # YI SYLLABLE SHOP A3B6;ID # YI SYLLABLE SHET A3B7;ID # YI SYLLABLE SHEX A3B8;ID # YI SYLLABLE SHE A3B9;ID # YI SYLLABLE SHEP A3BA;ID # YI SYLLABLE SHUT A3BB;ID # YI SYLLABLE SHUX A3BC;ID # YI SYLLABLE SHU A3BD;ID # YI SYLLABLE SHUP A3BE;ID # YI SYLLABLE SHURX A3BF;ID # YI SYLLABLE SHUR A3C0;ID # YI SYLLABLE SHYT A3C1;ID # YI SYLLABLE SHYX A3C2;ID # YI SYLLABLE SHY A3C3;ID # YI SYLLABLE SHYP A3C4;ID # YI SYLLABLE SHYRX A3C5;ID # YI SYLLABLE SHYR A3C6;ID # YI SYLLABLE RAT A3C7;ID # YI SYLLABLE RAX A3C8;ID # YI SYLLABLE RA A3C9;ID # YI SYLLABLE RAP A3CA;ID # YI SYLLABLE RUOX A3CB;ID # YI SYLLABLE RUO A3CC;ID # YI SYLLABLE RUOP A3CD;ID # YI SYLLABLE ROT A3CE;ID # YI SYLLABLE ROX A3CF;ID # YI SYLLABLE RO A3D0;ID # YI SYLLABLE ROP A3D1;ID # YI SYLLABLE REX A3D2;ID # YI SYLLABLE RE A3D3;ID # YI SYLLABLE REP A3D4;ID # YI SYLLABLE RUT A3D5;ID # YI SYLLABLE RUX A3D6;ID # YI SYLLABLE RU A3D7;ID # YI SYLLABLE RUP A3D8;ID # YI SYLLABLE RURX A3D9;ID # YI SYLLABLE RUR A3DA;ID # YI SYLLABLE RYT A3DB;ID # YI SYLLABLE RYX A3DC;ID # YI SYLLABLE RY A3DD;ID # YI SYLLABLE RYP A3DE;ID # YI SYLLABLE RYRX A3DF;ID # YI SYLLABLE RYR A3E0;ID # YI SYLLABLE JIT A3E1;ID # YI SYLLABLE JIX A3E2;ID # YI SYLLABLE JI A3E3;ID # YI SYLLABLE JIP A3E4;ID # YI SYLLABLE JIET A3E5;ID # YI SYLLABLE JIEX A3E6;ID # YI SYLLABLE JIE A3E7;ID # YI SYLLABLE JIEP A3E8;ID # YI SYLLABLE JUOT A3E9;ID # YI SYLLABLE JUOX A3EA;ID # YI SYLLABLE JUO A3EB;ID # YI SYLLABLE JUOP A3EC;ID # YI SYLLABLE JOT A3ED;ID # YI SYLLABLE JOX A3EE;ID # YI SYLLABLE JO A3EF;ID # YI SYLLABLE JOP A3F0;ID # YI SYLLABLE JUT A3F1;ID # YI SYLLABLE JUX A3F2;ID # YI SYLLABLE JU A3F3;ID # YI SYLLABLE JUP A3F4;ID # YI SYLLABLE JURX A3F5;ID # YI SYLLABLE JUR A3F6;ID # YI SYLLABLE JYT A3F7;ID # YI SYLLABLE JYX A3F8;ID # YI SYLLABLE JY A3F9;ID # YI SYLLABLE JYP A3FA;ID # YI SYLLABLE JYRX A3FB;ID # YI SYLLABLE JYR A3FC;ID # YI SYLLABLE QIT A3FD;ID # YI SYLLABLE QIX A3FE;ID # YI SYLLABLE QI A3FF;ID # YI SYLLABLE QIP A400;ID # YI SYLLABLE QIET A401;ID # YI SYLLABLE QIEX A402;ID # YI SYLLABLE QIE A403;ID # YI SYLLABLE QIEP A404;ID # YI SYLLABLE QUOT A405;ID # YI SYLLABLE QUOX A406;ID # YI SYLLABLE QUO A407;ID # YI SYLLABLE QUOP A408;ID # YI SYLLABLE QOT A409;ID # YI SYLLABLE QOX A40A;ID # YI SYLLABLE QO A40B;ID # YI SYLLABLE QOP A40C;ID # YI SYLLABLE QUT A40D;ID # YI SYLLABLE QUX A40E;ID # YI SYLLABLE QU A40F;ID # YI SYLLABLE QUP A410;ID # YI SYLLABLE QURX A411;ID # YI SYLLABLE QUR A412;ID # YI SYLLABLE QYT A413;ID # YI SYLLABLE QYX A414;ID # YI SYLLABLE QY A415;ID # YI SYLLABLE QYP A416;ID # YI SYLLABLE QYRX A417;ID # YI SYLLABLE QYR A418;ID # YI SYLLABLE JJIT A419;ID # YI SYLLABLE JJIX A41A;ID # YI SYLLABLE JJI A41B;ID # YI SYLLABLE JJIP A41C;ID # YI SYLLABLE JJIET A41D;ID # YI SYLLABLE JJIEX A41E;ID # YI SYLLABLE JJIE A41F;ID # YI SYLLABLE JJIEP A420;ID # YI SYLLABLE JJUOX A421;ID # YI SYLLABLE JJUO A422;ID # YI SYLLABLE JJUOP A423;ID # YI SYLLABLE JJOT A424;ID # YI SYLLABLE JJOX A425;ID # YI SYLLABLE JJO A426;ID # YI SYLLABLE JJOP A427;ID # YI SYLLABLE JJUT A428;ID # YI SYLLABLE JJUX A429;ID # YI SYLLABLE JJU A42A;ID # YI SYLLABLE JJUP A42B;ID # YI SYLLABLE JJURX A42C;ID # YI SYLLABLE JJUR A42D;ID # YI SYLLABLE JJYT A42E;ID # YI SYLLABLE JJYX A42F;ID # YI SYLLABLE JJY A430;ID # YI SYLLABLE JJYP A431;ID # YI SYLLABLE NJIT A432;ID # YI SYLLABLE NJIX A433;ID # YI SYLLABLE NJI A434;ID # YI SYLLABLE NJIP A435;ID # YI SYLLABLE NJIET A436;ID # YI SYLLABLE NJIEX A437;ID # YI SYLLABLE NJIE A438;ID # YI SYLLABLE NJIEP A439;ID # YI SYLLABLE NJUOX A43A;ID # YI SYLLABLE NJUO A43B;ID # YI SYLLABLE NJOT A43C;ID # YI SYLLABLE NJOX A43D;ID # YI SYLLABLE NJO A43E;ID # YI SYLLABLE NJOP A43F;ID # YI SYLLABLE NJUX A440;ID # YI SYLLABLE NJU A441;ID # YI SYLLABLE NJUP A442;ID # YI SYLLABLE NJURX A443;ID # YI SYLLABLE NJUR A444;ID # YI SYLLABLE NJYT A445;ID # YI SYLLABLE NJYX A446;ID # YI SYLLABLE NJY A447;ID # YI SYLLABLE NJYP A448;ID # YI SYLLABLE NJYRX A449;ID # YI SYLLABLE NJYR A44A;ID # YI SYLLABLE NYIT A44B;ID # YI SYLLABLE NYIX A44C;ID # YI SYLLABLE NYI A44D;ID # YI SYLLABLE NYIP A44E;ID # YI SYLLABLE NYIET A44F;ID # YI SYLLABLE NYIEX A450;ID # YI SYLLABLE NYIE A451;ID # YI SYLLABLE NYIEP A452;ID # YI SYLLABLE NYUOX A453;ID # YI SYLLABLE NYUO A454;ID # YI SYLLABLE NYUOP A455;ID # YI SYLLABLE NYOT A456;ID # YI SYLLABLE NYOX A457;ID # YI SYLLABLE NYO A458;ID # YI SYLLABLE NYOP A459;ID # YI SYLLABLE NYUT A45A;ID # YI SYLLABLE NYUX A45B;ID # YI SYLLABLE NYU A45C;ID # YI SYLLABLE NYUP A45D;ID # YI SYLLABLE XIT A45E;ID # YI SYLLABLE XIX A45F;ID # YI SYLLABLE XI A460;ID # YI SYLLABLE XIP A461;ID # YI SYLLABLE XIET A462;ID # YI SYLLABLE XIEX A463;ID # YI SYLLABLE XIE A464;ID # YI SYLLABLE XIEP A465;ID # YI SYLLABLE XUOX A466;ID # YI SYLLABLE XUO A467;ID # YI SYLLABLE XOT A468;ID # YI SYLLABLE XOX A469;ID # YI SYLLABLE XO A46A;ID # YI SYLLABLE XOP A46B;ID # YI SYLLABLE XYT A46C;ID # YI SYLLABLE XYX A46D;ID # YI SYLLABLE XY A46E;ID # YI SYLLABLE XYP A46F;ID # YI SYLLABLE XYRX A470;ID # YI SYLLABLE XYR A471;ID # YI SYLLABLE YIT A472;ID # YI SYLLABLE YIX A473;ID # YI SYLLABLE YI A474;ID # YI SYLLABLE YIP A475;ID # YI SYLLABLE YIET A476;ID # YI SYLLABLE YIEX A477;ID # YI SYLLABLE YIE A478;ID # YI SYLLABLE YIEP A479;ID # YI SYLLABLE YUOT A47A;ID # YI SYLLABLE YUOX A47B;ID # YI SYLLABLE YUO A47C;ID # YI SYLLABLE YUOP A47D;ID # YI SYLLABLE YOT A47E;ID # YI SYLLABLE YOX A47F;ID # YI SYLLABLE YO A480;ID # YI SYLLABLE YOP A481;ID # YI SYLLABLE YUT A482;ID # YI SYLLABLE YUX A483;ID # YI SYLLABLE YU A484;ID # YI SYLLABLE YUP A485;ID # YI SYLLABLE YURX A486;ID # YI SYLLABLE YUR A487;ID # YI SYLLABLE YYT A488;ID # YI SYLLABLE YYX A489;ID # YI SYLLABLE YY A48A;ID # YI SYLLABLE YYP A48B;ID # YI SYLLABLE YYRX A48C;ID # YI SYLLABLE YYR A490;ID # YI RADICAL QOT A491;ID # YI RADICAL LI A492;ID # YI RADICAL KIT A493;ID # YI RADICAL NYIP A494;ID # YI RADICAL CYP A495;ID # YI RADICAL SSI A496;ID # YI RADICAL GGOP A497;ID # YI RADICAL GEP A498;ID # YI RADICAL MI A499;ID # YI RADICAL HXIT A49A;ID # YI RADICAL LYR A49B;ID # YI RADICAL BBUT A49C;ID # YI RADICAL MOP A49D;ID # YI RADICAL YO A49E;ID # YI RADICAL PUT A49F;ID # YI RADICAL HXUO A4A0;ID # YI RADICAL TAT A4A1;ID # YI RADICAL GA A4A2;ID # YI RADICAL ZUP A4A3;ID # YI RADICAL CYT A4A4;ID # YI RADICAL DDUR A4A5;ID # YI RADICAL BUR A4A6;ID # YI RADICAL GGUO A4A7;ID # YI RADICAL NYOP A4A8;ID # YI RADICAL TU A4A9;ID # YI RADICAL OP A4AA;ID # YI RADICAL JJUT A4AB;ID # YI RADICAL ZOT A4AC;ID # YI RADICAL PYT A4AD;ID # YI RADICAL HMO A4AE;ID # YI RADICAL YIT A4AF;ID # YI RADICAL VUR A4B0;ID # YI RADICAL SHY A4B1;ID # YI RADICAL VEP A4B2;ID # YI RADICAL ZA A4B3;ID # YI RADICAL JO A4B4;ID # YI RADICAL NZUP A4B5;ID # YI RADICAL JJY A4B6;ID # YI RADICAL GOT A4B7;ID # YI RADICAL JJIE A4B8;ID # YI RADICAL WO A4B9;ID # YI RADICAL DU A4BA;ID # YI RADICAL SHUR A4BB;ID # YI RADICAL LIE A4BC;ID # YI RADICAL CY A4BD;ID # YI RADICAL CUOP A4BE;ID # YI RADICAL CIP A4BF;ID # YI RADICAL HXOP A4C0;ID # YI RADICAL SHAT A4C1;ID # YI RADICAL ZUR A4C2;ID # YI RADICAL SHOP A4C3;ID # YI RADICAL CHE A4C4;ID # YI RADICAL ZZIET A4C5;ID # YI RADICAL NBIE A4C6;ID # YI RADICAL KE AC00..D7A3;ID # .. D800..DB7F;SG # .. DB80..DBFF;SG # .. DC00..DFFF;SG # .. E000..F8FF;XX # .. F900;ID # CJK COMPATIBILITY IDEOGRAPH-F900 F901;ID # CJK COMPATIBILITY IDEOGRAPH-F901 F902;ID # CJK COMPATIBILITY IDEOGRAPH-F902 F903;ID # CJK COMPATIBILITY IDEOGRAPH-F903 F904;ID # CJK COMPATIBILITY IDEOGRAPH-F904 F905;ID # CJK COMPATIBILITY IDEOGRAPH-F905 F906;ID # CJK COMPATIBILITY IDEOGRAPH-F906 F907;ID # CJK COMPATIBILITY IDEOGRAPH-F907 F908;ID # CJK COMPATIBILITY IDEOGRAPH-F908 F909;ID # CJK COMPATIBILITY IDEOGRAPH-F909 F90A;ID # CJK COMPATIBILITY IDEOGRAPH-F90A F90B;ID # CJK COMPATIBILITY IDEOGRAPH-F90B F90C;ID # CJK COMPATIBILITY IDEOGRAPH-F90C F90D;ID # CJK COMPATIBILITY IDEOGRAPH-F90D F90E;ID # CJK COMPATIBILITY IDEOGRAPH-F90E F90F;ID # CJK COMPATIBILITY IDEOGRAPH-F90F F910;ID # CJK COMPATIBILITY IDEOGRAPH-F910 F911;ID # CJK COMPATIBILITY IDEOGRAPH-F911 F912;ID # CJK COMPATIBILITY IDEOGRAPH-F912 F913;ID # CJK COMPATIBILITY IDEOGRAPH-F913 F914;ID # CJK COMPATIBILITY IDEOGRAPH-F914 F915;ID # CJK COMPATIBILITY IDEOGRAPH-F915 F916;ID # CJK COMPATIBILITY IDEOGRAPH-F916 F917;ID # CJK COMPATIBILITY IDEOGRAPH-F917 F918;ID # CJK COMPATIBILITY IDEOGRAPH-F918 F919;ID # CJK COMPATIBILITY IDEOGRAPH-F919 F91A;ID # CJK COMPATIBILITY IDEOGRAPH-F91A F91B;ID # CJK COMPATIBILITY IDEOGRAPH-F91B F91C;ID # CJK COMPATIBILITY IDEOGRAPH-F91C F91D;ID # CJK COMPATIBILITY IDEOGRAPH-F91D F91E;ID # CJK COMPATIBILITY IDEOGRAPH-F91E F91F;ID # CJK COMPATIBILITY IDEOGRAPH-F91F F920;ID # CJK COMPATIBILITY IDEOGRAPH-F920 F921;ID # CJK COMPATIBILITY IDEOGRAPH-F921 F922;ID # CJK COMPATIBILITY IDEOGRAPH-F922 F923;ID # CJK COMPATIBILITY IDEOGRAPH-F923 F924;ID # CJK COMPATIBILITY IDEOGRAPH-F924 F925;ID # CJK COMPATIBILITY IDEOGRAPH-F925 F926;ID # CJK COMPATIBILITY IDEOGRAPH-F926 F927;ID # CJK COMPATIBILITY IDEOGRAPH-F927 F928;ID # CJK COMPATIBILITY IDEOGRAPH-F928 F929;ID # CJK COMPATIBILITY IDEOGRAPH-F929 F92A;ID # CJK COMPATIBILITY IDEOGRAPH-F92A F92B;ID # CJK COMPATIBILITY IDEOGRAPH-F92B F92C;ID # CJK COMPATIBILITY IDEOGRAPH-F92C F92D;ID # CJK COMPATIBILITY IDEOGRAPH-F92D F92E;ID # CJK COMPATIBILITY IDEOGRAPH-F92E F92F;ID # CJK COMPATIBILITY IDEOGRAPH-F92F F930;ID # CJK COMPATIBILITY IDEOGRAPH-F930 F931;ID # CJK COMPATIBILITY IDEOGRAPH-F931 F932;ID # CJK COMPATIBILITY IDEOGRAPH-F932 F933;ID # CJK COMPATIBILITY IDEOGRAPH-F933 F934;ID # CJK COMPATIBILITY IDEOGRAPH-F934 F935;ID # CJK COMPATIBILITY IDEOGRAPH-F935 F936;ID # CJK COMPATIBILITY IDEOGRAPH-F936 F937;ID # CJK COMPATIBILITY IDEOGRAPH-F937 F938;ID # CJK COMPATIBILITY IDEOGRAPH-F938 F939;ID # CJK COMPATIBILITY IDEOGRAPH-F939 F93A;ID # CJK COMPATIBILITY IDEOGRAPH-F93A F93B;ID # CJK COMPATIBILITY IDEOGRAPH-F93B F93C;ID # CJK COMPATIBILITY IDEOGRAPH-F93C F93D;ID # CJK COMPATIBILITY IDEOGRAPH-F93D F93E;ID # CJK COMPATIBILITY IDEOGRAPH-F93E F93F;ID # CJK COMPATIBILITY IDEOGRAPH-F93F F940;ID # CJK COMPATIBILITY IDEOGRAPH-F940 F941;ID # CJK COMPATIBILITY IDEOGRAPH-F941 F942;ID # CJK COMPATIBILITY IDEOGRAPH-F942 F943;ID # CJK COMPATIBILITY IDEOGRAPH-F943 F944;ID # CJK COMPATIBILITY IDEOGRAPH-F944 F945;ID # CJK COMPATIBILITY IDEOGRAPH-F945 F946;ID # CJK COMPATIBILITY IDEOGRAPH-F946 F947;ID # CJK COMPATIBILITY IDEOGRAPH-F947 F948;ID # CJK COMPATIBILITY IDEOGRAPH-F948 F949;ID # CJK COMPATIBILITY IDEOGRAPH-F949 F94A;ID # CJK COMPATIBILITY IDEOGRAPH-F94A F94B;ID # CJK COMPATIBILITY IDEOGRAPH-F94B F94C;ID # CJK COMPATIBILITY IDEOGRAPH-F94C F94D;ID # CJK COMPATIBILITY IDEOGRAPH-F94D F94E;ID # CJK COMPATIBILITY IDEOGRAPH-F94E F94F;ID # CJK COMPATIBILITY IDEOGRAPH-F94F F950;ID # CJK COMPATIBILITY IDEOGRAPH-F950 F951;ID # CJK COMPATIBILITY IDEOGRAPH-F951 F952;ID # CJK COMPATIBILITY IDEOGRAPH-F952 F953;ID # CJK COMPATIBILITY IDEOGRAPH-F953 F954;ID # CJK COMPATIBILITY IDEOGRAPH-F954 F955;ID # CJK COMPATIBILITY IDEOGRAPH-F955 F956;ID # CJK COMPATIBILITY IDEOGRAPH-F956 F957;ID # CJK COMPATIBILITY IDEOGRAPH-F957 F958;ID # CJK COMPATIBILITY IDEOGRAPH-F958 F959;ID # CJK COMPATIBILITY IDEOGRAPH-F959 F95A;ID # CJK COMPATIBILITY IDEOGRAPH-F95A F95B;ID # CJK COMPATIBILITY IDEOGRAPH-F95B F95C;ID # CJK COMPATIBILITY IDEOGRAPH-F95C F95D;ID # CJK COMPATIBILITY IDEOGRAPH-F95D F95E;ID # CJK COMPATIBILITY IDEOGRAPH-F95E F95F;ID # CJK COMPATIBILITY IDEOGRAPH-F95F F960;ID # CJK COMPATIBILITY IDEOGRAPH-F960 F961;ID # CJK COMPATIBILITY IDEOGRAPH-F961 F962;ID # CJK COMPATIBILITY IDEOGRAPH-F962 F963;ID # CJK COMPATIBILITY IDEOGRAPH-F963 F964;ID # CJK COMPATIBILITY IDEOGRAPH-F964 F965;ID # CJK COMPATIBILITY IDEOGRAPH-F965 F966;ID # CJK COMPATIBILITY IDEOGRAPH-F966 F967;ID # CJK COMPATIBILITY IDEOGRAPH-F967 F968;ID # CJK COMPATIBILITY IDEOGRAPH-F968 F969;ID # CJK COMPATIBILITY IDEOGRAPH-F969 F96A;ID # CJK COMPATIBILITY IDEOGRAPH-F96A F96B;ID # CJK COMPATIBILITY IDEOGRAPH-F96B F96C;ID # CJK COMPATIBILITY IDEOGRAPH-F96C F96D;ID # CJK COMPATIBILITY IDEOGRAPH-F96D F96E;ID # CJK COMPATIBILITY IDEOGRAPH-F96E F96F;ID # CJK COMPATIBILITY IDEOGRAPH-F96F F970;ID # CJK COMPATIBILITY IDEOGRAPH-F970 F971;ID # CJK COMPATIBILITY IDEOGRAPH-F971 F972;ID # CJK COMPATIBILITY IDEOGRAPH-F972 F973;ID # CJK COMPATIBILITY IDEOGRAPH-F973 F974;ID # CJK COMPATIBILITY IDEOGRAPH-F974 F975;ID # CJK COMPATIBILITY IDEOGRAPH-F975 F976;ID # CJK COMPATIBILITY IDEOGRAPH-F976 F977;ID # CJK COMPATIBILITY IDEOGRAPH-F977 F978;ID # CJK COMPATIBILITY IDEOGRAPH-F978 F979;ID # CJK COMPATIBILITY IDEOGRAPH-F979 F97A;ID # CJK COMPATIBILITY IDEOGRAPH-F97A F97B;ID # CJK COMPATIBILITY IDEOGRAPH-F97B F97C;ID # CJK COMPATIBILITY IDEOGRAPH-F97C F97D;ID # CJK COMPATIBILITY IDEOGRAPH-F97D F97E;ID # CJK COMPATIBILITY IDEOGRAPH-F97E F97F;ID # CJK COMPATIBILITY IDEOGRAPH-F97F F980;ID # CJK COMPATIBILITY IDEOGRAPH-F980 F981;ID # CJK COMPATIBILITY IDEOGRAPH-F981 F982;ID # CJK COMPATIBILITY IDEOGRAPH-F982 F983;ID # CJK COMPATIBILITY IDEOGRAPH-F983 F984;ID # CJK COMPATIBILITY IDEOGRAPH-F984 F985;ID # CJK COMPATIBILITY IDEOGRAPH-F985 F986;ID # CJK COMPATIBILITY IDEOGRAPH-F986 F987;ID # CJK COMPATIBILITY IDEOGRAPH-F987 F988;ID # CJK COMPATIBILITY IDEOGRAPH-F988 F989;ID # CJK COMPATIBILITY IDEOGRAPH-F989 F98A;ID # CJK COMPATIBILITY IDEOGRAPH-F98A F98B;ID # CJK COMPATIBILITY IDEOGRAPH-F98B F98C;ID # CJK COMPATIBILITY IDEOGRAPH-F98C F98D;ID # CJK COMPATIBILITY IDEOGRAPH-F98D F98E;ID # CJK COMPATIBILITY IDEOGRAPH-F98E F98F;ID # CJK COMPATIBILITY IDEOGRAPH-F98F F990;ID # CJK COMPATIBILITY IDEOGRAPH-F990 F991;ID # CJK COMPATIBILITY IDEOGRAPH-F991 F992;ID # CJK COMPATIBILITY IDEOGRAPH-F992 F993;ID # CJK COMPATIBILITY IDEOGRAPH-F993 F994;ID # CJK COMPATIBILITY IDEOGRAPH-F994 F995;ID # CJK COMPATIBILITY IDEOGRAPH-F995 F996;ID # CJK COMPATIBILITY IDEOGRAPH-F996 F997;ID # CJK COMPATIBILITY IDEOGRAPH-F997 F998;ID # CJK COMPATIBILITY IDEOGRAPH-F998 F999;ID # CJK COMPATIBILITY IDEOGRAPH-F999 F99A;ID # CJK COMPATIBILITY IDEOGRAPH-F99A F99B;ID # CJK COMPATIBILITY IDEOGRAPH-F99B F99C;ID # CJK COMPATIBILITY IDEOGRAPH-F99C F99D;ID # CJK COMPATIBILITY IDEOGRAPH-F99D F99E;ID # CJK COMPATIBILITY IDEOGRAPH-F99E F99F;ID # CJK COMPATIBILITY IDEOGRAPH-F99F F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-F9A0 F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-F9A1 F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-F9A2 F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-F9A3 F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-F9A4 F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-F9A5 F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-F9A6 F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-F9A7 F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-F9A8 F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-F9A9 F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-F9AA F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-F9AB F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-F9AC F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-F9AD F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-F9AE F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-F9AF F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-F9B0 F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-F9B1 F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-F9B2 F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-F9B3 F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-F9B4 F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-F9B5 F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-F9B6 F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-F9B7 F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-F9B8 F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-F9B9 F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-F9BA F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-F9BB F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-F9BC F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-F9BD F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-F9BE F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-F9BF F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-F9C0 F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-F9C1 F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-F9C2 F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-F9C3 F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-F9C4 F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-F9C5 F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-F9C6 F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-F9C7 F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-F9C8 F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-F9C9 F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-F9CA F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-F9CB F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-F9CC F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-F9CD F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-F9CE F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-F9CF F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-F9D0 F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-F9D1 F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-F9D2 F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-F9D3 F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-F9D4 F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-F9D5 F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-F9D6 F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-F9D7 F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-F9D8 F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-F9D9 F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-F9DA F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-F9DB F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-F9DC F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-F9DD F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-F9DE F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-F9DF F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-F9E0 F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-F9E1 F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-F9E2 F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-F9E3 F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-F9E4 F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-F9E5 F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-F9E6 F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-F9E7 F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-F9E8 F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-F9E9 F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-F9EA F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-F9EB F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-F9EC F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-F9ED F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-F9EE F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-F9EF F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-F9F0 F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-F9F1 F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-F9F2 F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-F9F3 F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-F9F4 F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-F9F5 F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-F9F6 F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-F9F7 F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-F9F8 F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-F9F9 F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-F9FA F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-F9FB F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-F9FC F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-F9FD F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-F9FE F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-F9FF FA00;ID # CJK COMPATIBILITY IDEOGRAPH-FA00 FA01;ID # CJK COMPATIBILITY IDEOGRAPH-FA01 FA02;ID # CJK COMPATIBILITY IDEOGRAPH-FA02 FA03;ID # CJK COMPATIBILITY IDEOGRAPH-FA03 FA04;ID # CJK COMPATIBILITY IDEOGRAPH-FA04 FA05;ID # CJK COMPATIBILITY IDEOGRAPH-FA05 FA06;ID # CJK COMPATIBILITY IDEOGRAPH-FA06 FA07;ID # CJK COMPATIBILITY IDEOGRAPH-FA07 FA08;ID # CJK COMPATIBILITY IDEOGRAPH-FA08 FA09;ID # CJK COMPATIBILITY IDEOGRAPH-FA09 FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-FA0A FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-FA0B FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-FA0C FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-FA0D FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-FA0E FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-FA0F FA10;ID # CJK COMPATIBILITY IDEOGRAPH-FA10 FA11;ID # CJK COMPATIBILITY IDEOGRAPH-FA11 FA12;ID # CJK COMPATIBILITY IDEOGRAPH-FA12 FA13;ID # CJK COMPATIBILITY IDEOGRAPH-FA13 FA14;ID # CJK COMPATIBILITY IDEOGRAPH-FA14 FA15;ID # CJK COMPATIBILITY IDEOGRAPH-FA15 FA16;ID # CJK COMPATIBILITY IDEOGRAPH-FA16 FA17;ID # CJK COMPATIBILITY IDEOGRAPH-FA17 FA18;ID # CJK COMPATIBILITY IDEOGRAPH-FA18 FA19;ID # CJK COMPATIBILITY IDEOGRAPH-FA19 FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-FA1A FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-FA1B FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-FA1C FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-FA1D FA1E;ID # CJK COMPATIBILITY IDEOGRAPH-FA1E FA1F;ID # CJK COMPATIBILITY IDEOGRAPH-FA1F FA20;ID # CJK COMPATIBILITY IDEOGRAPH-FA20 FA21;ID # CJK COMPATIBILITY IDEOGRAPH-FA21 FA22;ID # CJK COMPATIBILITY IDEOGRAPH-FA22 FA23;ID # CJK COMPATIBILITY IDEOGRAPH-FA23 FA24;ID # CJK COMPATIBILITY IDEOGRAPH-FA24 FA25;ID # CJK COMPATIBILITY IDEOGRAPH-FA25 FA26;ID # CJK COMPATIBILITY IDEOGRAPH-FA26 FA27;ID # CJK COMPATIBILITY IDEOGRAPH-FA27 FA28;ID # CJK COMPATIBILITY IDEOGRAPH-FA28 FA29;ID # CJK COMPATIBILITY IDEOGRAPH-FA29 FA2A;ID # CJK COMPATIBILITY IDEOGRAPH-FA2A FA2B;ID # CJK COMPATIBILITY IDEOGRAPH-FA2B FA2C;ID # CJK COMPATIBILITY IDEOGRAPH-FA2C FA2D;ID # CJK COMPATIBILITY IDEOGRAPH-FA2D FA30;ID # CJK COMPATIBILITY IDEOGRAPH-FA30 FA31;ID # CJK COMPATIBILITY IDEOGRAPH-FA31 FA32;ID # CJK COMPATIBILITY IDEOGRAPH-FA32 FA33;ID # CJK COMPATIBILITY IDEOGRAPH-FA33 FA34;ID # CJK COMPATIBILITY IDEOGRAPH-FA34 FA35;ID # CJK COMPATIBILITY IDEOGRAPH-FA35 FA36;ID # CJK COMPATIBILITY IDEOGRAPH-FA36 FA37;ID # CJK COMPATIBILITY IDEOGRAPH-FA37 FA38;ID # CJK COMPATIBILITY IDEOGRAPH-FA38 FA39;ID # CJK COMPATIBILITY IDEOGRAPH-FA39 FA3A;ID # CJK COMPATIBILITY IDEOGRAPH-FA3A FA3B;ID # CJK COMPATIBILITY IDEOGRAPH-FA3B FA3C;ID # CJK COMPATIBILITY IDEOGRAPH-FA3C FA3D;ID # CJK COMPATIBILITY IDEOGRAPH-FA3D FA3E;ID # CJK COMPATIBILITY IDEOGRAPH-FA3E FA3F;ID # CJK COMPATIBILITY IDEOGRAPH-FA3F FA40;ID # CJK COMPATIBILITY IDEOGRAPH-FA40 FA41;ID # CJK COMPATIBILITY IDEOGRAPH-FA41 FA42;ID # CJK COMPATIBILITY IDEOGRAPH-FA42 FA43;ID # CJK COMPATIBILITY IDEOGRAPH-FA43 FA44;ID # CJK COMPATIBILITY IDEOGRAPH-FA44 FA45;ID # CJK COMPATIBILITY IDEOGRAPH-FA45 FA46;ID # CJK COMPATIBILITY IDEOGRAPH-FA46 FA47;ID # CJK COMPATIBILITY IDEOGRAPH-FA47 FA48;ID # CJK COMPATIBILITY IDEOGRAPH-FA48 FA49;ID # CJK COMPATIBILITY IDEOGRAPH-FA49 FA4A;ID # CJK COMPATIBILITY IDEOGRAPH-FA4A FA4B;ID # CJK COMPATIBILITY IDEOGRAPH-FA4B FA4C;ID # CJK COMPATIBILITY IDEOGRAPH-FA4C FA4D;ID # CJK COMPATIBILITY IDEOGRAPH-FA4D FA4E;ID # CJK COMPATIBILITY IDEOGRAPH-FA4E FA4F;ID # CJK COMPATIBILITY IDEOGRAPH-FA4F FA50;ID # CJK COMPATIBILITY IDEOGRAPH-FA50 FA51;ID # CJK COMPATIBILITY IDEOGRAPH-FA51 FA52;ID # CJK COMPATIBILITY IDEOGRAPH-FA52 FA53;ID # CJK COMPATIBILITY IDEOGRAPH-FA53 FA54;ID # CJK COMPATIBILITY IDEOGRAPH-FA54 FA55;ID # CJK COMPATIBILITY IDEOGRAPH-FA55 FA56;ID # CJK COMPATIBILITY IDEOGRAPH-FA56 FA57;ID # CJK COMPATIBILITY IDEOGRAPH-FA57 FA58;ID # CJK COMPATIBILITY IDEOGRAPH-FA58 FA59;ID # CJK COMPATIBILITY IDEOGRAPH-FA59 FA5A;ID # CJK COMPATIBILITY IDEOGRAPH-FA5A FA5B;ID # CJK COMPATIBILITY IDEOGRAPH-FA5B FA5C;ID # CJK COMPATIBILITY IDEOGRAPH-FA5C FA5D;ID # CJK COMPATIBILITY IDEOGRAPH-FA5D FA5E;ID # CJK COMPATIBILITY IDEOGRAPH-FA5E FA5F;ID # CJK COMPATIBILITY IDEOGRAPH-FA5F FA60;ID # CJK COMPATIBILITY IDEOGRAPH-FA60 FA61;ID # CJK COMPATIBILITY IDEOGRAPH-FA61 FA62;ID # CJK COMPATIBILITY IDEOGRAPH-FA62 FA63;ID # CJK COMPATIBILITY IDEOGRAPH-FA63 FA64;ID # CJK COMPATIBILITY IDEOGRAPH-FA64 FA65;ID # CJK COMPATIBILITY IDEOGRAPH-FA65 FA66;ID # CJK COMPATIBILITY IDEOGRAPH-FA66 FA67;ID # CJK COMPATIBILITY IDEOGRAPH-FA67 FA68;ID # CJK COMPATIBILITY IDEOGRAPH-FA68 FA69;ID # CJK COMPATIBILITY IDEOGRAPH-FA69 FA6A;ID # CJK COMPATIBILITY IDEOGRAPH-FA6A FB00;AL # LATIN SMALL LIGATURE FF FB01;AL # LATIN SMALL LIGATURE FI FB02;AL # LATIN SMALL LIGATURE FL FB03;AL # LATIN SMALL LIGATURE FFI FB04;AL # LATIN SMALL LIGATURE FFL FB05;AL # LATIN SMALL LIGATURE LONG S T FB06;AL # LATIN SMALL LIGATURE ST FB13;AL # ARMENIAN SMALL LIGATURE MEN NOW FB14;AL # ARMENIAN SMALL LIGATURE MEN ECH FB15;AL # ARMENIAN SMALL LIGATURE MEN INI FB16;AL # ARMENIAN SMALL LIGATURE VEW NOW FB17;AL # ARMENIAN SMALL LIGATURE MEN XEH FB1D;AL # HEBREW LETTER YOD WITH HIRIQ FB1E;CM # HEBREW POINT JUDEO-SPANISH VARIKA FB1F;AL # HEBREW LIGATURE YIDDISH YOD YOD PATAH FB20;AL # HEBREW LETTER ALTERNATIVE AYIN FB21;AL # HEBREW LETTER WIDE ALEF FB22;AL # HEBREW LETTER WIDE DALET FB23;AL # HEBREW LETTER WIDE HE FB24;AL # HEBREW LETTER WIDE KAF FB25;AL # HEBREW LETTER WIDE LAMED FB26;AL # HEBREW LETTER WIDE FINAL MEM FB27;AL # HEBREW LETTER WIDE RESH FB28;AL # HEBREW LETTER WIDE TAV FB29;AL # HEBREW LETTER ALTERNATIVE PLUS SIGN FB2A;AL # HEBREW LETTER SHIN WITH SHIN DOT FB2B;AL # HEBREW LETTER SHIN WITH SIN DOT FB2C;AL # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT FB2D;AL # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT FB2E;AL # HEBREW LETTER ALEF WITH PATAH FB2F;AL # HEBREW LETTER ALEF WITH QAMATS FB30;AL # HEBREW LETTER ALEF WITH MAPIQ FB31;AL # HEBREW LETTER BET WITH DAGESH FB32;AL # HEBREW LETTER GIMEL WITH DAGESH FB33;AL # HEBREW LETTER DALET WITH DAGESH FB34;AL # HEBREW LETTER HE WITH MAPIQ FB35;AL # HEBREW LETTER VAV WITH DAGESH FB36;AL # HEBREW LETTER ZAYIN WITH DAGESH FB38;AL # HEBREW LETTER TET WITH DAGESH FB39;AL # HEBREW LETTER YOD WITH DAGESH FB3A;AL # HEBREW LETTER FINAL KAF WITH DAGESH FB3B;AL # HEBREW LETTER KAF WITH DAGESH FB3C;AL # HEBREW LETTER LAMED WITH DAGESH FB3E;AL # HEBREW LETTER MEM WITH DAGESH FB40;AL # HEBREW LETTER NUN WITH DAGESH FB41;AL # HEBREW LETTER SAMEKH WITH DAGESH FB43;AL # HEBREW LETTER FINAL PE WITH DAGESH FB44;AL # HEBREW LETTER PE WITH DAGESH FB46;AL # HEBREW LETTER TSADI WITH DAGESH FB47;AL # HEBREW LETTER QOF WITH DAGESH FB48;AL # HEBREW LETTER RESH WITH DAGESH FB49;AL # HEBREW LETTER SHIN WITH DAGESH FB4A;AL # HEBREW LETTER TAV WITH DAGESH FB4B;AL # HEBREW LETTER VAV WITH HOLAM FB4C;AL # HEBREW LETTER BET WITH RAFE FB4D;AL # HEBREW LETTER KAF WITH RAFE FB4E;AL # HEBREW LETTER PE WITH RAFE FB4F;AL # HEBREW LIGATURE ALEF LAMED FB50;AL # ARABIC LETTER ALEF WASLA ISOLATED FORM FB51;AL # ARABIC LETTER ALEF WASLA FINAL FORM FB52;AL # ARABIC LETTER BEEH ISOLATED FORM FB53;AL # ARABIC LETTER BEEH FINAL FORM FB54;AL # ARABIC LETTER BEEH INITIAL FORM FB55;AL # ARABIC LETTER BEEH MEDIAL FORM FB56;AL # ARABIC LETTER PEH ISOLATED FORM FB57;AL # ARABIC LETTER PEH FINAL FORM FB58;AL # ARABIC LETTER PEH INITIAL FORM FB59;AL # ARABIC LETTER PEH MEDIAL FORM FB5A;AL # ARABIC LETTER BEHEH ISOLATED FORM FB5B;AL # ARABIC LETTER BEHEH FINAL FORM FB5C;AL # ARABIC LETTER BEHEH INITIAL FORM FB5D;AL # ARABIC LETTER BEHEH MEDIAL FORM FB5E;AL # ARABIC LETTER TTEHEH ISOLATED FORM FB5F;AL # ARABIC LETTER TTEHEH FINAL FORM FB60;AL # ARABIC LETTER TTEHEH INITIAL FORM FB61;AL # ARABIC LETTER TTEHEH MEDIAL FORM FB62;AL # ARABIC LETTER TEHEH ISOLATED FORM FB63;AL # ARABIC LETTER TEHEH FINAL FORM FB64;AL # ARABIC LETTER TEHEH INITIAL FORM FB65;AL # ARABIC LETTER TEHEH MEDIAL FORM FB66;AL # ARABIC LETTER TTEH ISOLATED FORM FB67;AL # ARABIC LETTER TTEH FINAL FORM FB68;AL # ARABIC LETTER TTEH INITIAL FORM FB69;AL # ARABIC LETTER TTEH MEDIAL FORM FB6A;AL # ARABIC LETTER VEH ISOLATED FORM FB6B;AL # ARABIC LETTER VEH FINAL FORM FB6C;AL # ARABIC LETTER VEH INITIAL FORM FB6D;AL # ARABIC LETTER VEH MEDIAL FORM FB6E;AL # ARABIC LETTER PEHEH ISOLATED FORM FB6F;AL # ARABIC LETTER PEHEH FINAL FORM FB70;AL # ARABIC LETTER PEHEH INITIAL FORM FB71;AL # ARABIC LETTER PEHEH MEDIAL FORM FB72;AL # ARABIC LETTER DYEH ISOLATED FORM FB73;AL # ARABIC LETTER DYEH FINAL FORM FB74;AL # ARABIC LETTER DYEH INITIAL FORM FB75;AL # ARABIC LETTER DYEH MEDIAL FORM FB76;AL # ARABIC LETTER NYEH ISOLATED FORM FB77;AL # ARABIC LETTER NYEH FINAL FORM FB78;AL # ARABIC LETTER NYEH INITIAL FORM FB79;AL # ARABIC LETTER NYEH MEDIAL FORM FB7A;AL # ARABIC LETTER TCHEH ISOLATED FORM FB7B;AL # ARABIC LETTER TCHEH FINAL FORM FB7C;AL # ARABIC LETTER TCHEH INITIAL FORM FB7D;AL # ARABIC LETTER TCHEH MEDIAL FORM FB7E;AL # ARABIC LETTER TCHEHEH ISOLATED FORM FB7F;AL # ARABIC LETTER TCHEHEH FINAL FORM FB80;AL # ARABIC LETTER TCHEHEH INITIAL FORM FB81;AL # ARABIC LETTER TCHEHEH MEDIAL FORM FB82;AL # ARABIC LETTER DDAHAL ISOLATED FORM FB83;AL # ARABIC LETTER DDAHAL FINAL FORM FB84;AL # ARABIC LETTER DAHAL ISOLATED FORM FB85;AL # ARABIC LETTER DAHAL FINAL FORM FB86;AL # ARABIC LETTER DUL ISOLATED FORM FB87;AL # ARABIC LETTER DUL FINAL FORM FB88;AL # ARABIC LETTER DDAL ISOLATED FORM FB89;AL # ARABIC LETTER DDAL FINAL FORM FB8A;AL # ARABIC LETTER JEH ISOLATED FORM FB8B;AL # ARABIC LETTER JEH FINAL FORM FB8C;AL # ARABIC LETTER RREH ISOLATED FORM FB8D;AL # ARABIC LETTER RREH FINAL FORM FB8E;AL # ARABIC LETTER KEHEH ISOLATED FORM FB8F;AL # ARABIC LETTER KEHEH FINAL FORM FB90;AL # ARABIC LETTER KEHEH INITIAL FORM FB91;AL # ARABIC LETTER KEHEH MEDIAL FORM FB92;AL # ARABIC LETTER GAF ISOLATED FORM FB93;AL # ARABIC LETTER GAF FINAL FORM FB94;AL # ARABIC LETTER GAF INITIAL FORM FB95;AL # ARABIC LETTER GAF MEDIAL FORM FB96;AL # ARABIC LETTER GUEH ISOLATED FORM FB97;AL # ARABIC LETTER GUEH FINAL FORM FB98;AL # ARABIC LETTER GUEH INITIAL FORM FB99;AL # ARABIC LETTER GUEH MEDIAL FORM FB9A;AL # ARABIC LETTER NGOEH ISOLATED FORM FB9B;AL # ARABIC LETTER NGOEH FINAL FORM FB9C;AL # ARABIC LETTER NGOEH INITIAL FORM FB9D;AL # ARABIC LETTER NGOEH MEDIAL FORM FB9E;AL # ARABIC LETTER NOON GHUNNA ISOLATED FORM FB9F;AL # ARABIC LETTER NOON GHUNNA FINAL FORM FBA0;AL # ARABIC LETTER RNOON ISOLATED FORM FBA1;AL # ARABIC LETTER RNOON FINAL FORM FBA2;AL # ARABIC LETTER RNOON INITIAL FORM FBA3;AL # ARABIC LETTER RNOON MEDIAL FORM FBA4;AL # ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM FBA5;AL # ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM FBA6;AL # ARABIC LETTER HEH GOAL ISOLATED FORM FBA7;AL # ARABIC LETTER HEH GOAL FINAL FORM FBA8;AL # ARABIC LETTER HEH GOAL INITIAL FORM FBA9;AL # ARABIC LETTER HEH GOAL MEDIAL FORM FBAA;AL # ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM FBAB;AL # ARABIC LETTER HEH DOACHASHMEE FINAL FORM FBAC;AL # ARABIC LETTER HEH DOACHASHMEE INITIAL FORM FBAD;AL # ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM FBAE;AL # ARABIC LETTER YEH BARREE ISOLATED FORM FBAF;AL # ARABIC LETTER YEH BARREE FINAL FORM FBB0;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM FBB1;AL # ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM FBD3;AL # ARABIC LETTER NG ISOLATED FORM FBD4;AL # ARABIC LETTER NG FINAL FORM FBD5;AL # ARABIC LETTER NG INITIAL FORM FBD6;AL # ARABIC LETTER NG MEDIAL FORM FBD7;AL # ARABIC LETTER U ISOLATED FORM FBD8;AL # ARABIC LETTER U FINAL FORM FBD9;AL # ARABIC LETTER OE ISOLATED FORM FBDA;AL # ARABIC LETTER OE FINAL FORM FBDB;AL # ARABIC LETTER YU ISOLATED FORM FBDC;AL # ARABIC LETTER YU FINAL FORM FBDD;AL # ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM FBDE;AL # ARABIC LETTER VE ISOLATED FORM FBDF;AL # ARABIC LETTER VE FINAL FORM FBE0;AL # ARABIC LETTER KIRGHIZ OE ISOLATED FORM FBE1;AL # ARABIC LETTER KIRGHIZ OE FINAL FORM FBE2;AL # ARABIC LETTER KIRGHIZ YU ISOLATED FORM FBE3;AL # ARABIC LETTER KIRGHIZ YU FINAL FORM FBE4;AL # ARABIC LETTER E ISOLATED FORM FBE5;AL # ARABIC LETTER E FINAL FORM FBE6;AL # ARABIC LETTER E INITIAL FORM FBE7;AL # ARABIC LETTER E MEDIAL FORM FBE8;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM FBE9;AL # ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM FBEA;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM FBEB;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM FBEC;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM FBED;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM FBEE;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM FBEF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM FBF0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM FBF1;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM FBF2;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM FBF3;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM FBF4;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM FBF5;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM FBF6;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM FBF7;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM FBF8;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM FBF9;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM FBFA;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM FBFB;AL # ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM FBFC;AL # ARABIC LETTER FARSI YEH ISOLATED FORM FBFD;AL # ARABIC LETTER FARSI YEH FINAL FORM FBFE;AL # ARABIC LETTER FARSI YEH INITIAL FORM FBFF;AL # ARABIC LETTER FARSI YEH MEDIAL FORM FC00;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM FC01;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM FC02;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM FC03;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM FC04;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM FC05;AL # ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM FC06;AL # ARABIC LIGATURE BEH WITH HAH ISOLATED FORM FC07;AL # ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM FC08;AL # ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM FC09;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM FC0A;AL # ARABIC LIGATURE BEH WITH YEH ISOLATED FORM FC0B;AL # ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM FC0C;AL # ARABIC LIGATURE TEH WITH HAH ISOLATED FORM FC0D;AL # ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM FC0E;AL # ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM FC0F;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM FC10;AL # ARABIC LIGATURE TEH WITH YEH ISOLATED FORM FC11;AL # ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM FC12;AL # ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM FC13;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM FC14;AL # ARABIC LIGATURE THEH WITH YEH ISOLATED FORM FC15;AL # ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM FC16;AL # ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM FC17;AL # ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM FC18;AL # ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM FC19;AL # ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM FC1A;AL # ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM FC1B;AL # ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM FC1C;AL # ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM FC1D;AL # ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM FC1E;AL # ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM FC1F;AL # ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM FC20;AL # ARABIC LIGATURE SAD WITH HAH ISOLATED FORM FC21;AL # ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM FC22;AL # ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM FC23;AL # ARABIC LIGATURE DAD WITH HAH ISOLATED FORM FC24;AL # ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM FC25;AL # ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM FC26;AL # ARABIC LIGATURE TAH WITH HAH ISOLATED FORM FC27;AL # ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM FC28;AL # ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM FC29;AL # ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM FC2A;AL # ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM FC2B;AL # ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM FC2C;AL # ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM FC2D;AL # ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM FC2E;AL # ARABIC LIGATURE FEH WITH HAH ISOLATED FORM FC2F;AL # ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM FC30;AL # ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM FC31;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM FC32;AL # ARABIC LIGATURE FEH WITH YEH ISOLATED FORM FC33;AL # ARABIC LIGATURE QAF WITH HAH ISOLATED FORM FC34;AL # ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM FC35;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM FC36;AL # ARABIC LIGATURE QAF WITH YEH ISOLATED FORM FC37;AL # ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM FC38;AL # ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM FC39;AL # ARABIC LIGATURE KAF WITH HAH ISOLATED FORM FC3A;AL # ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM FC3B;AL # ARABIC LIGATURE KAF WITH LAM ISOLATED FORM FC3C;AL # ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM FC3D;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM FC3E;AL # ARABIC LIGATURE KAF WITH YEH ISOLATED FORM FC3F;AL # ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM FC40;AL # ARABIC LIGATURE LAM WITH HAH ISOLATED FORM FC41;AL # ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM FC42;AL # ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM FC43;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM FC44;AL # ARABIC LIGATURE LAM WITH YEH ISOLATED FORM FC45;AL # ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM FC46;AL # ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM FC47;AL # ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM FC48;AL # ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM FC49;AL # ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM FC4A;AL # ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM FC4B;AL # ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM FC4C;AL # ARABIC LIGATURE NOON WITH HAH ISOLATED FORM FC4D;AL # ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM FC4E;AL # ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM FC4F;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM FC50;AL # ARABIC LIGATURE NOON WITH YEH ISOLATED FORM FC51;AL # ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM FC52;AL # ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM FC53;AL # ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM FC54;AL # ARABIC LIGATURE HEH WITH YEH ISOLATED FORM FC55;AL # ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM FC56;AL # ARABIC LIGATURE YEH WITH HAH ISOLATED FORM FC57;AL # ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM FC58;AL # ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM FC59;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM FC5A;AL # ARABIC LIGATURE YEH WITH YEH ISOLATED FORM FC5B;AL # ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM FC5C;AL # ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM FC5D;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM FC5E;AL # ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM FC5F;AL # ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM FC60;AL # ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM FC61;AL # ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM FC62;AL # ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM FC63;AL # ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM FC64;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM FC65;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM FC66;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM FC67;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM FC68;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM FC69;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM FC6A;AL # ARABIC LIGATURE BEH WITH REH FINAL FORM FC6B;AL # ARABIC LIGATURE BEH WITH ZAIN FINAL FORM FC6C;AL # ARABIC LIGATURE BEH WITH MEEM FINAL FORM FC6D;AL # ARABIC LIGATURE BEH WITH NOON FINAL FORM FC6E;AL # ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM FC6F;AL # ARABIC LIGATURE BEH WITH YEH FINAL FORM FC70;AL # ARABIC LIGATURE TEH WITH REH FINAL FORM FC71;AL # ARABIC LIGATURE TEH WITH ZAIN FINAL FORM FC72;AL # ARABIC LIGATURE TEH WITH MEEM FINAL FORM FC73;AL # ARABIC LIGATURE TEH WITH NOON FINAL FORM FC74;AL # ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM FC75;AL # ARABIC LIGATURE TEH WITH YEH FINAL FORM FC76;AL # ARABIC LIGATURE THEH WITH REH FINAL FORM FC77;AL # ARABIC LIGATURE THEH WITH ZAIN FINAL FORM FC78;AL # ARABIC LIGATURE THEH WITH MEEM FINAL FORM FC79;AL # ARABIC LIGATURE THEH WITH NOON FINAL FORM FC7A;AL # ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM FC7B;AL # ARABIC LIGATURE THEH WITH YEH FINAL FORM FC7C;AL # ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM FC7D;AL # ARABIC LIGATURE FEH WITH YEH FINAL FORM FC7E;AL # ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM FC7F;AL # ARABIC LIGATURE QAF WITH YEH FINAL FORM FC80;AL # ARABIC LIGATURE KAF WITH ALEF FINAL FORM FC81;AL # ARABIC LIGATURE KAF WITH LAM FINAL FORM FC82;AL # ARABIC LIGATURE KAF WITH MEEM FINAL FORM FC83;AL # ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM FC84;AL # ARABIC LIGATURE KAF WITH YEH FINAL FORM FC85;AL # ARABIC LIGATURE LAM WITH MEEM FINAL FORM FC86;AL # ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM FC87;AL # ARABIC LIGATURE LAM WITH YEH FINAL FORM FC88;AL # ARABIC LIGATURE MEEM WITH ALEF FINAL FORM FC89;AL # ARABIC LIGATURE MEEM WITH MEEM FINAL FORM FC8A;AL # ARABIC LIGATURE NOON WITH REH FINAL FORM FC8B;AL # ARABIC LIGATURE NOON WITH ZAIN FINAL FORM FC8C;AL # ARABIC LIGATURE NOON WITH MEEM FINAL FORM FC8D;AL # ARABIC LIGATURE NOON WITH NOON FINAL FORM FC8E;AL # ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM FC8F;AL # ARABIC LIGATURE NOON WITH YEH FINAL FORM FC90;AL # ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM FC91;AL # ARABIC LIGATURE YEH WITH REH FINAL FORM FC92;AL # ARABIC LIGATURE YEH WITH ZAIN FINAL FORM FC93;AL # ARABIC LIGATURE YEH WITH MEEM FINAL FORM FC94;AL # ARABIC LIGATURE YEH WITH NOON FINAL FORM FC95;AL # ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM FC96;AL # ARABIC LIGATURE YEH WITH YEH FINAL FORM FC97;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM FC98;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM FC99;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM FC9A;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM FC9B;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM FC9C;AL # ARABIC LIGATURE BEH WITH JEEM INITIAL FORM FC9D;AL # ARABIC LIGATURE BEH WITH HAH INITIAL FORM FC9E;AL # ARABIC LIGATURE BEH WITH KHAH INITIAL FORM FC9F;AL # ARABIC LIGATURE BEH WITH MEEM INITIAL FORM FCA0;AL # ARABIC LIGATURE BEH WITH HEH INITIAL FORM FCA1;AL # ARABIC LIGATURE TEH WITH JEEM INITIAL FORM FCA2;AL # ARABIC LIGATURE TEH WITH HAH INITIAL FORM FCA3;AL # ARABIC LIGATURE TEH WITH KHAH INITIAL FORM FCA4;AL # ARABIC LIGATURE TEH WITH MEEM INITIAL FORM FCA5;AL # ARABIC LIGATURE TEH WITH HEH INITIAL FORM FCA6;AL # ARABIC LIGATURE THEH WITH MEEM INITIAL FORM FCA7;AL # ARABIC LIGATURE JEEM WITH HAH INITIAL FORM FCA8;AL # ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM FCA9;AL # ARABIC LIGATURE HAH WITH JEEM INITIAL FORM FCAA;AL # ARABIC LIGATURE HAH WITH MEEM INITIAL FORM FCAB;AL # ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM FCAC;AL # ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM FCAD;AL # ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM FCAE;AL # ARABIC LIGATURE SEEN WITH HAH INITIAL FORM FCAF;AL # ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM FCB0;AL # ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM FCB1;AL # ARABIC LIGATURE SAD WITH HAH INITIAL FORM FCB2;AL # ARABIC LIGATURE SAD WITH KHAH INITIAL FORM FCB3;AL # ARABIC LIGATURE SAD WITH MEEM INITIAL FORM FCB4;AL # ARABIC LIGATURE DAD WITH JEEM INITIAL FORM FCB5;AL # ARABIC LIGATURE DAD WITH HAH INITIAL FORM FCB6;AL # ARABIC LIGATURE DAD WITH KHAH INITIAL FORM FCB7;AL # ARABIC LIGATURE DAD WITH MEEM INITIAL FORM FCB8;AL # ARABIC LIGATURE TAH WITH HAH INITIAL FORM FCB9;AL # ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM FCBA;AL # ARABIC LIGATURE AIN WITH JEEM INITIAL FORM FCBB;AL # ARABIC LIGATURE AIN WITH MEEM INITIAL FORM FCBC;AL # ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM FCBD;AL # ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM FCBE;AL # ARABIC LIGATURE FEH WITH JEEM INITIAL FORM FCBF;AL # ARABIC LIGATURE FEH WITH HAH INITIAL FORM FCC0;AL # ARABIC LIGATURE FEH WITH KHAH INITIAL FORM FCC1;AL # ARABIC LIGATURE FEH WITH MEEM INITIAL FORM FCC2;AL # ARABIC LIGATURE QAF WITH HAH INITIAL FORM FCC3;AL # ARABIC LIGATURE QAF WITH MEEM INITIAL FORM FCC4;AL # ARABIC LIGATURE KAF WITH JEEM INITIAL FORM FCC5;AL # ARABIC LIGATURE KAF WITH HAH INITIAL FORM FCC6;AL # ARABIC LIGATURE KAF WITH KHAH INITIAL FORM FCC7;AL # ARABIC LIGATURE KAF WITH LAM INITIAL FORM FCC8;AL # ARABIC LIGATURE KAF WITH MEEM INITIAL FORM FCC9;AL # ARABIC LIGATURE LAM WITH JEEM INITIAL FORM FCCA;AL # ARABIC LIGATURE LAM WITH HAH INITIAL FORM FCCB;AL # ARABIC LIGATURE LAM WITH KHAH INITIAL FORM FCCC;AL # ARABIC LIGATURE LAM WITH MEEM INITIAL FORM FCCD;AL # ARABIC LIGATURE LAM WITH HEH INITIAL FORM FCCE;AL # ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM FCCF;AL # ARABIC LIGATURE MEEM WITH HAH INITIAL FORM FCD0;AL # ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM FCD1;AL # ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM FCD2;AL # ARABIC LIGATURE NOON WITH JEEM INITIAL FORM FCD3;AL # ARABIC LIGATURE NOON WITH HAH INITIAL FORM FCD4;AL # ARABIC LIGATURE NOON WITH KHAH INITIAL FORM FCD5;AL # ARABIC LIGATURE NOON WITH MEEM INITIAL FORM FCD6;AL # ARABIC LIGATURE NOON WITH HEH INITIAL FORM FCD7;AL # ARABIC LIGATURE HEH WITH JEEM INITIAL FORM FCD8;AL # ARABIC LIGATURE HEH WITH MEEM INITIAL FORM FCD9;AL # ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM FCDA;AL # ARABIC LIGATURE YEH WITH JEEM INITIAL FORM FCDB;AL # ARABIC LIGATURE YEH WITH HAH INITIAL FORM FCDC;AL # ARABIC LIGATURE YEH WITH KHAH INITIAL FORM FCDD;AL # ARABIC LIGATURE YEH WITH MEEM INITIAL FORM FCDE;AL # ARABIC LIGATURE YEH WITH HEH INITIAL FORM FCDF;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM FCE0;AL # ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM FCE1;AL # ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM FCE2;AL # ARABIC LIGATURE BEH WITH HEH MEDIAL FORM FCE3;AL # ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM FCE4;AL # ARABIC LIGATURE TEH WITH HEH MEDIAL FORM FCE5;AL # ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM FCE6;AL # ARABIC LIGATURE THEH WITH HEH MEDIAL FORM FCE7;AL # ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM FCE8;AL # ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM FCE9;AL # ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM FCEA;AL # ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM FCEB;AL # ARABIC LIGATURE KAF WITH LAM MEDIAL FORM FCEC;AL # ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM FCED;AL # ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM FCEE;AL # ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM FCEF;AL # ARABIC LIGATURE NOON WITH HEH MEDIAL FORM FCF0;AL # ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM FCF1;AL # ARABIC LIGATURE YEH WITH HEH MEDIAL FORM FCF2;AL # ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM FCF3;AL # ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM FCF4;AL # ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM FCF5;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM FCF6;AL # ARABIC LIGATURE TAH WITH YEH ISOLATED FORM FCF7;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM FCF8;AL # ARABIC LIGATURE AIN WITH YEH ISOLATED FORM FCF9;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM FCFA;AL # ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM FCFB;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM FCFC;AL # ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM FCFD;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM FCFE;AL # ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM FCFF;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM FD00;AL # ARABIC LIGATURE HAH WITH YEH ISOLATED FORM FD01;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM FD02;AL # ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM FD03;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM FD04;AL # ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM FD05;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM FD06;AL # ARABIC LIGATURE SAD WITH YEH ISOLATED FORM FD07;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM FD08;AL # ARABIC LIGATURE DAD WITH YEH ISOLATED FORM FD09;AL # ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM FD0A;AL # ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM FD0B;AL # ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM FD0C;AL # ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM FD0D;AL # ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM FD0E;AL # ARABIC LIGATURE SEEN WITH REH ISOLATED FORM FD0F;AL # ARABIC LIGATURE SAD WITH REH ISOLATED FORM FD10;AL # ARABIC LIGATURE DAD WITH REH ISOLATED FORM FD11;AL # ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM FD12;AL # ARABIC LIGATURE TAH WITH YEH FINAL FORM FD13;AL # ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM FD14;AL # ARABIC LIGATURE AIN WITH YEH FINAL FORM FD15;AL # ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM FD16;AL # ARABIC LIGATURE GHAIN WITH YEH FINAL FORM FD17;AL # ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM FD18;AL # ARABIC LIGATURE SEEN WITH YEH FINAL FORM FD19;AL # ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM FD1A;AL # ARABIC LIGATURE SHEEN WITH YEH FINAL FORM FD1B;AL # ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM FD1C;AL # ARABIC LIGATURE HAH WITH YEH FINAL FORM FD1D;AL # ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM FD1E;AL # ARABIC LIGATURE JEEM WITH YEH FINAL FORM FD1F;AL # ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM FD20;AL # ARABIC LIGATURE KHAH WITH YEH FINAL FORM FD21;AL # ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM FD22;AL # ARABIC LIGATURE SAD WITH YEH FINAL FORM FD23;AL # ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM FD24;AL # ARABIC LIGATURE DAD WITH YEH FINAL FORM FD25;AL # ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM FD26;AL # ARABIC LIGATURE SHEEN WITH HAH FINAL FORM FD27;AL # ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM FD28;AL # ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM FD29;AL # ARABIC LIGATURE SHEEN WITH REH FINAL FORM FD2A;AL # ARABIC LIGATURE SEEN WITH REH FINAL FORM FD2B;AL # ARABIC LIGATURE SAD WITH REH FINAL FORM FD2C;AL # ARABIC LIGATURE DAD WITH REH FINAL FORM FD2D;AL # ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM FD2E;AL # ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM FD2F;AL # ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM FD30;AL # ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM FD31;AL # ARABIC LIGATURE SEEN WITH HEH INITIAL FORM FD32;AL # ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM FD33;AL # ARABIC LIGATURE TAH WITH MEEM INITIAL FORM FD34;AL # ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM FD35;AL # ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM FD36;AL # ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM FD37;AL # ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM FD38;AL # ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM FD39;AL # ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM FD3A;AL # ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM FD3B;AL # ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM FD3C;AL # ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM FD3D;AL # ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM FD3E;OP # ORNATE LEFT PARENTHESIS FD3F;CL # ORNATE RIGHT PARENTHESIS FD50;AL # ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM FD51;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM FD52;AL # ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM FD53;AL # ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM FD54;AL # ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM FD55;AL # ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM FD56;AL # ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM FD57;AL # ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM FD58;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM FD59;AL # ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM FD5A;AL # ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM FD5B;AL # ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM FD5C;AL # ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM FD5D;AL # ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM FD5E;AL # ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM FD5F;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM FD60;AL # ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM FD61;AL # ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM FD62;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM FD63;AL # ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM FD64;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM FD65;AL # ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM FD66;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM FD67;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM FD68;AL # ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM FD69;AL # ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM FD6A;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM FD6B;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM FD6C;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM FD6D;AL # ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM FD6E;AL # ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM FD6F;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM FD70;AL # ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM FD71;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM FD72;AL # ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM FD73;AL # ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM FD74;AL # ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM FD75;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM FD76;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM FD77;AL # ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM FD78;AL # ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM FD79;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM FD7A;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM FD7B;AL # ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM FD7C;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM FD7D;AL # ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM FD7E;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM FD7F;AL # ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM FD80;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM FD81;AL # ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM FD82;AL # ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM FD83;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM FD84;AL # ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM FD85;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM FD86;AL # ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM FD87;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM FD88;AL # ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM FD89;AL # ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM FD8A;AL # ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM FD8B;AL # ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM FD8C;AL # ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM FD8D;AL # ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM FD8E;AL # ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM FD8F;AL # ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM FD92;AL # ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM FD93;AL # ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM FD94;AL # ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM FD95;AL # ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM FD96;AL # ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM FD97;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM FD98;AL # ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM FD99;AL # ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM FD9A;AL # ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM FD9B;AL # ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM FD9C;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM FD9D;AL # ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM FD9E;AL # ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM FD9F;AL # ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM FDA0;AL # ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM FDA1;AL # ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM FDA2;AL # ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM FDA3;AL # ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM FDA4;AL # ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM FDA5;AL # ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM FDA6;AL # ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM FDA7;AL # ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM FDA8;AL # ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM FDA9;AL # ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM FDAA;AL # ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM FDAB;AL # ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM FDAC;AL # ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM FDAD;AL # ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM FDAE;AL # ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM FDAF;AL # ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM FDB0;AL # ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM FDB1;AL # ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM FDB2;AL # ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM FDB3;AL # ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM FDB4;AL # ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM FDB5;AL # ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM FDB6;AL # ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM FDB7;AL # ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM FDB8;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM FDB9;AL # ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM FDBA;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM FDBB;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM FDBC;AL # ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM FDBD;AL # ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM FDBE;AL # ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM FDBF;AL # ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM FDC0;AL # ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM FDC1;AL # ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM FDC2;AL # ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM FDC3;AL # ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM FDC4;AL # ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM FDC5;AL # ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM FDC6;AL # ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM FDC7;AL # ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM FDF0;AL # ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM FDF1;AL # ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM FDF2;AL # ARABIC LIGATURE ALLAH ISOLATED FORM FDF3;AL # ARABIC LIGATURE AKBAR ISOLATED FORM FDF4;AL # ARABIC LIGATURE MOHAMMAD ISOLATED FORM FDF5;AL # ARABIC LIGATURE SALAM ISOLATED FORM FDF6;AL # ARABIC LIGATURE RASOUL ISOLATED FORM FDF7;AL # ARABIC LIGATURE ALAYHE ISOLATED FORM FDF8;AL # ARABIC LIGATURE WASALLAM ISOLATED FORM FDF9;AL # ARABIC LIGATURE SALLA ISOLATED FORM FDFA;AL # ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM FDFB;AL # ARABIC LIGATURE JALLAJALALOUHOU FDFC;PO # RIAL SIGN FE00;CM # VARIATION SELECTOR-1 FE01;CM # VARIATION SELECTOR-2 FE02;CM # VARIATION SELECTOR-3 FE03;CM # VARIATION SELECTOR-4 FE04;CM # VARIATION SELECTOR-5 FE05;CM # VARIATION SELECTOR-6 FE06;CM # VARIATION SELECTOR-7 FE07;CM # VARIATION SELECTOR-8 FE08;CM # VARIATION SELECTOR-9 FE09;CM # VARIATION SELECTOR-10 FE0A;CM # VARIATION SELECTOR-11 FE0B;CM # VARIATION SELECTOR-12 FE0C;CM # VARIATION SELECTOR-13 FE0D;CM # VARIATION SELECTOR-14 FE0E;CM # VARIATION SELECTOR-15 FE0F;CM # VARIATION SELECTOR-16 FE20;CM # COMBINING LIGATURE LEFT HALF FE21;CM # COMBINING LIGATURE RIGHT HALF FE22;CM # COMBINING DOUBLE TILDE LEFT HALF FE23;CM # COMBINING DOUBLE TILDE RIGHT HALF FE30;ID # PRESENTATION FORM FOR VERTICAL TWO DOT LEADER FE31;ID # PRESENTATION FORM FOR VERTICAL EM DASH FE32;ID # PRESENTATION FORM FOR VERTICAL EN DASH FE33;ID # PRESENTATION FORM FOR VERTICAL LOW LINE FE34;ID # PRESENTATION FORM FOR VERTICAL WAVY LOW LINE FE35;OP # PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS FE36;CL # PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS FE37;OP # PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET FE38;CL # PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET FE39;OP # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET FE3A;CL # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET FE3B;OP # PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET FE3C;CL # PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET FE3D;OP # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET FE3E;CL # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET FE3F;OP # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET FE40;CL # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET FE41;OP # PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET FE42;CL # PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET FE43;OP # PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET FE44;CL # PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET FE45;ID # SESAME DOT FE46;ID # WHITE SESAME DOT FE49;ID # DASHED OVERLINE FE4A;ID # CENTRELINE OVERLINE FE4B;ID # WAVY OVERLINE FE4C;ID # DOUBLE WAVY OVERLINE FE4D;ID # DASHED LOW LINE FE4E;ID # CENTRELINE LOW LINE FE4F;ID # WAVY LOW LINE FE50;CL # SMALL COMMA FE51;ID # SMALL IDEOGRAPHIC COMMA FE52;CL # SMALL FULL STOP FE54;NS # SMALL SEMICOLON FE55;NS # SMALL COLON FE56;EX # SMALL QUESTION MARK FE57;EX # SMALL EXCLAMATION MARK FE58;ID # SMALL EM DASH FE59;OP # SMALL LEFT PARENTHESIS FE5A;CL # SMALL RIGHT PARENTHESIS FE5B;OP # SMALL LEFT CURLY BRACKET FE5C;CL # SMALL RIGHT CURLY BRACKET FE5D;OP # SMALL LEFT TORTOISE SHELL BRACKET FE5E;CL # SMALL RIGHT TORTOISE SHELL BRACKET FE5F;ID # SMALL NUMBER SIGN FE60;ID # SMALL AMPERSAND FE61;ID # SMALL ASTERISK FE62;ID # SMALL PLUS SIGN FE63;ID # SMALL HYPHEN-MINUS FE64;ID # SMALL LESS-THAN SIGN FE65;ID # SMALL GREATER-THAN SIGN FE66;ID # SMALL EQUALS SIGN FE68;ID # SMALL REVERSE SOLIDUS FE69;PR # SMALL DOLLAR SIGN FE6A;PO # SMALL PERCENT SIGN FE6B;ID # SMALL COMMERCIAL AT FE70;AL # ARABIC FATHATAN ISOLATED FORM FE71;AL # ARABIC TATWEEL WITH FATHATAN ABOVE FE72;AL # ARABIC DAMMATAN ISOLATED FORM FE73;AL # ARABIC TAIL FRAGMENT FE74;AL # ARABIC KASRATAN ISOLATED FORM FE76;AL # ARABIC FATHA ISOLATED FORM FE77;AL # ARABIC FATHA MEDIAL FORM FE78;AL # ARABIC DAMMA ISOLATED FORM FE79;AL # ARABIC DAMMA MEDIAL FORM FE7A;AL # ARABIC KASRA ISOLATED FORM FE7B;AL # ARABIC KASRA MEDIAL FORM FE7C;AL # ARABIC SHADDA ISOLATED FORM FE7D;AL # ARABIC SHADDA MEDIAL FORM FE7E;AL # ARABIC SUKUN ISOLATED FORM FE7F;AL # ARABIC SUKUN MEDIAL FORM FE80;AL # ARABIC LETTER HAMZA ISOLATED FORM FE81;AL # ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM FE82;AL # ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM FE83;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM FE84;AL # ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM FE85;AL # ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM FE86;AL # ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM FE87;AL # ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM FE88;AL # ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM FE89;AL # ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM FE8A;AL # ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM FE8B;AL # ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM FE8C;AL # ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM FE8D;AL # ARABIC LETTER ALEF ISOLATED FORM FE8E;AL # ARABIC LETTER ALEF FINAL FORM FE8F;AL # ARABIC LETTER BEH ISOLATED FORM FE90;AL # ARABIC LETTER BEH FINAL FORM FE91;AL # ARABIC LETTER BEH INITIAL FORM FE92;AL # ARABIC LETTER BEH MEDIAL FORM FE93;AL # ARABIC LETTER TEH MARBUTA ISOLATED FORM FE94;AL # ARABIC LETTER TEH MARBUTA FINAL FORM FE95;AL # ARABIC LETTER TEH ISOLATED FORM FE96;AL # ARABIC LETTER TEH FINAL FORM FE97;AL # ARABIC LETTER TEH INITIAL FORM FE98;AL # ARABIC LETTER TEH MEDIAL FORM FE99;AL # ARABIC LETTER THEH ISOLATED FORM FE9A;AL # ARABIC LETTER THEH FINAL FORM FE9B;AL # ARABIC LETTER THEH INITIAL FORM FE9C;AL # ARABIC LETTER THEH MEDIAL FORM FE9D;AL # ARABIC LETTER JEEM ISOLATED FORM FE9E;AL # ARABIC LETTER JEEM FINAL FORM FE9F;AL # ARABIC LETTER JEEM INITIAL FORM FEA0;AL # ARABIC LETTER JEEM MEDIAL FORM FEA1;AL # ARABIC LETTER HAH ISOLATED FORM FEA2;AL # ARABIC LETTER HAH FINAL FORM FEA3;AL # ARABIC LETTER HAH INITIAL FORM FEA4;AL # ARABIC LETTER HAH MEDIAL FORM FEA5;AL # ARABIC LETTER KHAH ISOLATED FORM FEA6;AL # ARABIC LETTER KHAH FINAL FORM FEA7;AL # ARABIC LETTER KHAH INITIAL FORM FEA8;AL # ARABIC LETTER KHAH MEDIAL FORM FEA9;AL # ARABIC LETTER DAL ISOLATED FORM FEAA;AL # ARABIC LETTER DAL FINAL FORM FEAB;AL # ARABIC LETTER THAL ISOLATED FORM FEAC;AL # ARABIC LETTER THAL FINAL FORM FEAD;AL # ARABIC LETTER REH ISOLATED FORM FEAE;AL # ARABIC LETTER REH FINAL FORM FEAF;AL # ARABIC LETTER ZAIN ISOLATED FORM FEB0;AL # ARABIC LETTER ZAIN FINAL FORM FEB1;AL # ARABIC LETTER SEEN ISOLATED FORM FEB2;AL # ARABIC LETTER SEEN FINAL FORM FEB3;AL # ARABIC LETTER SEEN INITIAL FORM FEB4;AL # ARABIC LETTER SEEN MEDIAL FORM FEB5;AL # ARABIC LETTER SHEEN ISOLATED FORM FEB6;AL # ARABIC LETTER SHEEN FINAL FORM FEB7;AL # ARABIC LETTER SHEEN INITIAL FORM FEB8;AL # ARABIC LETTER SHEEN MEDIAL FORM FEB9;AL # ARABIC LETTER SAD ISOLATED FORM FEBA;AL # ARABIC LETTER SAD FINAL FORM FEBB;AL # ARABIC LETTER SAD INITIAL FORM FEBC;AL # ARABIC LETTER SAD MEDIAL FORM FEBD;AL # ARABIC LETTER DAD ISOLATED FORM FEBE;AL # ARABIC LETTER DAD FINAL FORM FEBF;AL # ARABIC LETTER DAD INITIAL FORM FEC0;AL # ARABIC LETTER DAD MEDIAL FORM FEC1;AL # ARABIC LETTER TAH ISOLATED FORM FEC2;AL # ARABIC LETTER TAH FINAL FORM FEC3;AL # ARABIC LETTER TAH INITIAL FORM FEC4;AL # ARABIC LETTER TAH MEDIAL FORM FEC5;AL # ARABIC LETTER ZAH ISOLATED FORM FEC6;AL # ARABIC LETTER ZAH FINAL FORM FEC7;AL # ARABIC LETTER ZAH INITIAL FORM FEC8;AL # ARABIC LETTER ZAH MEDIAL FORM FEC9;AL # ARABIC LETTER AIN ISOLATED FORM FECA;AL # ARABIC LETTER AIN FINAL FORM FECB;AL # ARABIC LETTER AIN INITIAL FORM FECC;AL # ARABIC LETTER AIN MEDIAL FORM FECD;AL # ARABIC LETTER GHAIN ISOLATED FORM FECE;AL # ARABIC LETTER GHAIN FINAL FORM FECF;AL # ARABIC LETTER GHAIN INITIAL FORM FED0;AL # ARABIC LETTER GHAIN MEDIAL FORM FED1;AL # ARABIC LETTER FEH ISOLATED FORM FED2;AL # ARABIC LETTER FEH FINAL FORM FED3;AL # ARABIC LETTER FEH INITIAL FORM FED4;AL # ARABIC LETTER FEH MEDIAL FORM FED5;AL # ARABIC LETTER QAF ISOLATED FORM FED6;AL # ARABIC LETTER QAF FINAL FORM FED7;AL # ARABIC LETTER QAF INITIAL FORM FED8;AL # ARABIC LETTER QAF MEDIAL FORM FED9;AL # ARABIC LETTER KAF ISOLATED FORM FEDA;AL # ARABIC LETTER KAF FINAL FORM FEDB;AL # ARABIC LETTER KAF INITIAL FORM FEDC;AL # ARABIC LETTER KAF MEDIAL FORM FEDD;AL # ARABIC LETTER LAM ISOLATED FORM FEDE;AL # ARABIC LETTER LAM FINAL FORM FEDF;AL # ARABIC LETTER LAM INITIAL FORM FEE0;AL # ARABIC LETTER LAM MEDIAL FORM FEE1;AL # ARABIC LETTER MEEM ISOLATED FORM FEE2;AL # ARABIC LETTER MEEM FINAL FORM FEE3;AL # ARABIC LETTER MEEM INITIAL FORM FEE4;AL # ARABIC LETTER MEEM MEDIAL FORM FEE5;AL # ARABIC LETTER NOON ISOLATED FORM FEE6;AL # ARABIC LETTER NOON FINAL FORM FEE7;AL # ARABIC LETTER NOON INITIAL FORM FEE8;AL # ARABIC LETTER NOON MEDIAL FORM FEE9;AL # ARABIC LETTER HEH ISOLATED FORM FEEA;AL # ARABIC LETTER HEH FINAL FORM FEEB;AL # ARABIC LETTER HEH INITIAL FORM FEEC;AL # ARABIC LETTER HEH MEDIAL FORM FEED;AL # ARABIC LETTER WAW ISOLATED FORM FEEE;AL # ARABIC LETTER WAW FINAL FORM FEEF;AL # ARABIC LETTER ALEF MAKSURA ISOLATED FORM FEF0;AL # ARABIC LETTER ALEF MAKSURA FINAL FORM FEF1;AL # ARABIC LETTER YEH ISOLATED FORM FEF2;AL # ARABIC LETTER YEH FINAL FORM FEF3;AL # ARABIC LETTER YEH INITIAL FORM FEF4;AL # ARABIC LETTER YEH MEDIAL FORM FEF5;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM FEF6;AL # ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM FEF7;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM FEF8;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM FEF9;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM FEFA;AL # ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM FEFB;AL # ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM FEFC;AL # ARABIC LIGATURE LAM WITH ALEF FINAL FORM FEFF;GL # ZERO WIDTH NO-BREAK SPACE FF01;EX # FULLWIDTH EXCLAMATION MARK FF02;ID # FULLWIDTH QUOTATION MARK FF03;ID # FULLWIDTH NUMBER SIGN FF04;PR # FULLWIDTH DOLLAR SIGN FF05;PO # FULLWIDTH PERCENT SIGN FF06;ID # FULLWIDTH AMPERSAND FF07;ID # FULLWIDTH APOSTROPHE FF08;OP # FULLWIDTH LEFT PARENTHESIS FF09;CL # FULLWIDTH RIGHT PARENTHESIS FF0A;ID # FULLWIDTH ASTERISK FF0B;ID # FULLWIDTH PLUS SIGN FF0C;CL # FULLWIDTH COMMA FF0D;ID # FULLWIDTH HYPHEN-MINUS FF0E;CL # FULLWIDTH FULL STOP FF0F;ID # FULLWIDTH SOLIDUS FF10;ID # FULLWIDTH DIGIT ZERO FF11;ID # FULLWIDTH DIGIT ONE FF12;ID # FULLWIDTH DIGIT TWO FF13;ID # FULLWIDTH DIGIT THREE FF14;ID # FULLWIDTH DIGIT FOUR FF15;ID # FULLWIDTH DIGIT FIVE FF16;ID # FULLWIDTH DIGIT SIX FF17;ID # FULLWIDTH DIGIT SEVEN FF18;ID # FULLWIDTH DIGIT EIGHT FF19;ID # FULLWIDTH DIGIT NINE FF1A;NS # FULLWIDTH COLON FF1B;NS # FULLWIDTH SEMICOLON FF1C;ID # FULLWIDTH LESS-THAN SIGN FF1D;ID # FULLWIDTH EQUALS SIGN FF1E;ID # FULLWIDTH GREATER-THAN SIGN FF1F;EX # FULLWIDTH QUESTION MARK FF20;ID # FULLWIDTH COMMERCIAL AT FF21;ID # FULLWIDTH LATIN CAPITAL LETTER A FF22;ID # FULLWIDTH LATIN CAPITAL LETTER B FF23;ID # FULLWIDTH LATIN CAPITAL LETTER C FF24;ID # FULLWIDTH LATIN CAPITAL LETTER D FF25;ID # FULLWIDTH LATIN CAPITAL LETTER E FF26;ID # FULLWIDTH LATIN CAPITAL LETTER F FF27;ID # FULLWIDTH LATIN CAPITAL LETTER G FF28;ID # FULLWIDTH LATIN CAPITAL LETTER H FF29;ID # FULLWIDTH LATIN CAPITAL LETTER I FF2A;ID # FULLWIDTH LATIN CAPITAL LETTER J FF2B;ID # FULLWIDTH LATIN CAPITAL LETTER K FF2C;ID # FULLWIDTH LATIN CAPITAL LETTER L FF2D;ID # FULLWIDTH LATIN CAPITAL LETTER M FF2E;ID # FULLWIDTH LATIN CAPITAL LETTER N FF2F;ID # FULLWIDTH LATIN CAPITAL LETTER O FF30;ID # FULLWIDTH LATIN CAPITAL LETTER P FF31;ID # FULLWIDTH LATIN CAPITAL LETTER Q FF32;ID # FULLWIDTH LATIN CAPITAL LETTER R FF33;ID # FULLWIDTH LATIN CAPITAL LETTER S FF34;ID # FULLWIDTH LATIN CAPITAL LETTER T FF35;ID # FULLWIDTH LATIN CAPITAL LETTER U FF36;ID # FULLWIDTH LATIN CAPITAL LETTER V FF37;ID # FULLWIDTH LATIN CAPITAL LETTER W FF38;ID # FULLWIDTH LATIN CAPITAL LETTER X FF39;ID # FULLWIDTH LATIN CAPITAL LETTER Y FF3A;ID # FULLWIDTH LATIN CAPITAL LETTER Z FF3B;OP # FULLWIDTH LEFT SQUARE BRACKET FF3C;ID # FULLWIDTH REVERSE SOLIDUS FF3D;CL # FULLWIDTH RIGHT SQUARE BRACKET FF3E;ID # FULLWIDTH CIRCUMFLEX ACCENT FF3F;ID # FULLWIDTH LOW LINE FF40;ID # FULLWIDTH GRAVE ACCENT FF41;ID # FULLWIDTH LATIN SMALL LETTER A FF42;ID # FULLWIDTH LATIN SMALL LETTER B FF43;ID # FULLWIDTH LATIN SMALL LETTER C FF44;ID # FULLWIDTH LATIN SMALL LETTER D FF45;ID # FULLWIDTH LATIN SMALL LETTER E FF46;ID # FULLWIDTH LATIN SMALL LETTER F FF47;ID # FULLWIDTH LATIN SMALL LETTER G FF48;ID # FULLWIDTH LATIN SMALL LETTER H FF49;ID # FULLWIDTH LATIN SMALL LETTER I FF4A;ID # FULLWIDTH LATIN SMALL LETTER J FF4B;ID # FULLWIDTH LATIN SMALL LETTER K FF4C;ID # FULLWIDTH LATIN SMALL LETTER L FF4D;ID # FULLWIDTH LATIN SMALL LETTER M FF4E;ID # FULLWIDTH LATIN SMALL LETTER N FF4F;ID # FULLWIDTH LATIN SMALL LETTER O FF50;ID # FULLWIDTH LATIN SMALL LETTER P FF51;ID # FULLWIDTH LATIN SMALL LETTER Q FF52;ID # FULLWIDTH LATIN SMALL LETTER R FF53;ID # FULLWIDTH LATIN SMALL LETTER S FF54;ID # FULLWIDTH LATIN SMALL LETTER T FF55;ID # FULLWIDTH LATIN SMALL LETTER U FF56;ID # FULLWIDTH LATIN SMALL LETTER V FF57;ID # FULLWIDTH LATIN SMALL LETTER W FF58;ID # FULLWIDTH LATIN SMALL LETTER X FF59;ID # FULLWIDTH LATIN SMALL LETTER Y FF5A;ID # FULLWIDTH LATIN SMALL LETTER Z FF5B;OP # FULLWIDTH LEFT CURLY BRACKET FF5C;ID # FULLWIDTH VERTICAL LINE FF5D;CL # FULLWIDTH RIGHT CURLY BRACKET FF5E;ID # FULLWIDTH TILDE FF5F;OP # FULLWIDTH LEFT WHITE PARENTHESIS FF60;CL # FULLWIDTH RIGHT WHITE PARENTHESIS FF61;CL # HALFWIDTH IDEOGRAPHIC FULL STOP FF62;OP # HALFWIDTH LEFT CORNER BRACKET FF63;CL # HALFWIDTH RIGHT CORNER BRACKET FF64;CL # HALFWIDTH IDEOGRAPHIC COMMA FF65;NS # HALFWIDTH KATAKANA MIDDLE DOT FF66;AL # HALFWIDTH KATAKANA LETTER WO FF67;NS # HALFWIDTH KATAKANA LETTER SMALL A FF68;NS # HALFWIDTH KATAKANA LETTER SMALL I FF69;NS # HALFWIDTH KATAKANA LETTER SMALL U FF6A;NS # HALFWIDTH KATAKANA LETTER SMALL E FF6B;NS # HALFWIDTH KATAKANA LETTER SMALL O FF6C;NS # HALFWIDTH KATAKANA LETTER SMALL YA FF6D;NS # HALFWIDTH KATAKANA LETTER SMALL YU FF6E;NS # HALFWIDTH KATAKANA LETTER SMALL YO FF6F;NS # HALFWIDTH KATAKANA LETTER SMALL TU FF70;NS # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK FF71;AL # HALFWIDTH KATAKANA LETTER A FF72;AL # HALFWIDTH KATAKANA LETTER I FF73;AL # HALFWIDTH KATAKANA LETTER U FF74;AL # HALFWIDTH KATAKANA LETTER E FF75;AL # HALFWIDTH KATAKANA LETTER O FF76;AL # HALFWIDTH KATAKANA LETTER KA FF77;AL # HALFWIDTH KATAKANA LETTER KI FF78;AL # HALFWIDTH KATAKANA LETTER KU FF79;AL # HALFWIDTH KATAKANA LETTER KE FF7A;AL # HALFWIDTH KATAKANA LETTER KO FF7B;AL # HALFWIDTH KATAKANA LETTER SA FF7C;AL # HALFWIDTH KATAKANA LETTER SI FF7D;AL # HALFWIDTH KATAKANA LETTER SU FF7E;AL # HALFWIDTH KATAKANA LETTER SE FF7F;AL # HALFWIDTH KATAKANA LETTER SO FF80;AL # HALFWIDTH KATAKANA LETTER TA FF81;AL # HALFWIDTH KATAKANA LETTER TI FF82;AL # HALFWIDTH KATAKANA LETTER TU FF83;AL # HALFWIDTH KATAKANA LETTER TE FF84;AL # HALFWIDTH KATAKANA LETTER TO FF85;AL # HALFWIDTH KATAKANA LETTER NA FF86;AL # HALFWIDTH KATAKANA LETTER NI FF87;AL # HALFWIDTH KATAKANA LETTER NU FF88;AL # HALFWIDTH KATAKANA LETTER NE FF89;AL # HALFWIDTH KATAKANA LETTER NO FF8A;AL # HALFWIDTH KATAKANA LETTER HA FF8B;AL # HALFWIDTH KATAKANA LETTER HI FF8C;AL # HALFWIDTH KATAKANA LETTER HU FF8D;AL # HALFWIDTH KATAKANA LETTER HE FF8E;AL # HALFWIDTH KATAKANA LETTER HO FF8F;AL # HALFWIDTH KATAKANA LETTER MA FF90;AL # HALFWIDTH KATAKANA LETTER MI FF91;AL # HALFWIDTH KATAKANA LETTER MU FF92;AL # HALFWIDTH KATAKANA LETTER ME FF93;AL # HALFWIDTH KATAKANA LETTER MO FF94;AL # HALFWIDTH KATAKANA LETTER YA FF95;AL # HALFWIDTH KATAKANA LETTER YU FF96;AL # HALFWIDTH KATAKANA LETTER YO FF97;AL # HALFWIDTH KATAKANA LETTER RA FF98;AL # HALFWIDTH KATAKANA LETTER RI FF99;AL # HALFWIDTH KATAKANA LETTER RU FF9A;AL # HALFWIDTH KATAKANA LETTER RE FF9B;AL # HALFWIDTH KATAKANA LETTER RO FF9C;AL # HALFWIDTH KATAKANA LETTER WA FF9D;AL # HALFWIDTH KATAKANA LETTER N FF9E;NS # HALFWIDTH KATAKANA VOICED SOUND MARK FF9F;NS # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK FFA0;AL # HALFWIDTH HANGUL FILLER FFA1;AL # HALFWIDTH HANGUL LETTER KIYEOK FFA2;AL # HALFWIDTH HANGUL LETTER SSANGKIYEOK FFA3;AL # HALFWIDTH HANGUL LETTER KIYEOK-SIOS FFA4;AL # HALFWIDTH HANGUL LETTER NIEUN FFA5;AL # HALFWIDTH HANGUL LETTER NIEUN-CIEUC FFA6;AL # HALFWIDTH HANGUL LETTER NIEUN-HIEUH FFA7;AL # HALFWIDTH HANGUL LETTER TIKEUT FFA8;AL # HALFWIDTH HANGUL LETTER SSANGTIKEUT FFA9;AL # HALFWIDTH HANGUL LETTER RIEUL FFAA;AL # HALFWIDTH HANGUL LETTER RIEUL-KIYEOK FFAB;AL # HALFWIDTH HANGUL LETTER RIEUL-MIEUM FFAC;AL # HALFWIDTH HANGUL LETTER RIEUL-PIEUP FFAD;AL # HALFWIDTH HANGUL LETTER RIEUL-SIOS FFAE;AL # HALFWIDTH HANGUL LETTER RIEUL-THIEUTH FFAF;AL # HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH FFB0;AL # HALFWIDTH HANGUL LETTER RIEUL-HIEUH FFB1;AL # HALFWIDTH HANGUL LETTER MIEUM FFB2;AL # HALFWIDTH HANGUL LETTER PIEUP FFB3;AL # HALFWIDTH HANGUL LETTER SSANGPIEUP FFB4;AL # HALFWIDTH HANGUL LETTER PIEUP-SIOS FFB5;AL # HALFWIDTH HANGUL LETTER SIOS FFB6;AL # HALFWIDTH HANGUL LETTER SSANGSIOS FFB7;AL # HALFWIDTH HANGUL LETTER IEUNG FFB8;AL # HALFWIDTH HANGUL LETTER CIEUC FFB9;AL # HALFWIDTH HANGUL LETTER SSANGCIEUC FFBA;AL # HALFWIDTH HANGUL LETTER CHIEUCH FFBB;AL # HALFWIDTH HANGUL LETTER KHIEUKH FFBC;AL # HALFWIDTH HANGUL LETTER THIEUTH FFBD;AL # HALFWIDTH HANGUL LETTER PHIEUPH FFBE;AL # HALFWIDTH HANGUL LETTER HIEUH FFC2;AL # HALFWIDTH HANGUL LETTER A FFC3;AL # HALFWIDTH HANGUL LETTER AE FFC4;AL # HALFWIDTH HANGUL LETTER YA FFC5;AL # HALFWIDTH HANGUL LETTER YAE FFC6;AL # HALFWIDTH HANGUL LETTER EO FFC7;AL # HALFWIDTH HANGUL LETTER E FFCA;AL # HALFWIDTH HANGUL LETTER YEO FFCB;AL # HALFWIDTH HANGUL LETTER YE FFCC;AL # HALFWIDTH HANGUL LETTER O FFCD;AL # HALFWIDTH HANGUL LETTER WA FFCE;AL # HALFWIDTH HANGUL LETTER WAE FFCF;AL # HALFWIDTH HANGUL LETTER OE FFD2;AL # HALFWIDTH HANGUL LETTER YO FFD3;AL # HALFWIDTH HANGUL LETTER U FFD4;AL # HALFWIDTH HANGUL LETTER WEO FFD5;AL # HALFWIDTH HANGUL LETTER WE FFD6;AL # HALFWIDTH HANGUL LETTER WI FFD7;AL # HALFWIDTH HANGUL LETTER YU FFDA;AL # HALFWIDTH HANGUL LETTER EU FFDB;AL # HALFWIDTH HANGUL LETTER YI FFDC;AL # HALFWIDTH HANGUL LETTER I FFE0;PO # FULLWIDTH CENT SIGN FFE1;PR # FULLWIDTH POUND SIGN FFE2;ID # FULLWIDTH NOT SIGN FFE3;ID # FULLWIDTH MACRON FFE4;ID # FULLWIDTH BROKEN BAR FFE5;PR # FULLWIDTH YEN SIGN FFE6;PR # FULLWIDTH WON SIGN FFE8;AL # HALFWIDTH FORMS LIGHT VERTICAL FFE9;AL # HALFWIDTH LEFTWARDS ARROW FFEA;AL # HALFWIDTH UPWARDS ARROW FFEB;AL # HALFWIDTH RIGHTWARDS ARROW FFEC;AL # HALFWIDTH DOWNWARDS ARROW FFED;AL # HALFWIDTH BLACK SQUARE FFEE;AL # HALFWIDTH WHITE CIRCLE FFF9;CM # INTERLINEAR ANNOTATION ANCHOR FFFA;CM # INTERLINEAR ANNOTATION SEPARATOR FFFB;CM # INTERLINEAR ANNOTATION TERMINATOR FFFC;CB # OBJECT REPLACEMENT CHARACTER FFFD;AI # REPLACEMENT CHARACTER 10300;AL # OLD ITALIC LETTER A 10301;AL # OLD ITALIC LETTER BE 10302;AL # OLD ITALIC LETTER KE 10303;AL # OLD ITALIC LETTER DE 10304;AL # OLD ITALIC LETTER E 10305;AL # OLD ITALIC LETTER VE 10306;AL # OLD ITALIC LETTER ZE 10307;AL # OLD ITALIC LETTER HE 10308;AL # OLD ITALIC LETTER THE 10309;AL # OLD ITALIC LETTER I 1030A;AL # OLD ITALIC LETTER KA 1030B;AL # OLD ITALIC LETTER EL 1030C;AL # OLD ITALIC LETTER EM 1030D;AL # OLD ITALIC LETTER EN 1030E;AL # OLD ITALIC LETTER ESH 1030F;AL # OLD ITALIC LETTER O 10310;AL # OLD ITALIC LETTER PE 10311;AL # OLD ITALIC LETTER SHE 10312;AL # OLD ITALIC LETTER KU 10313;AL # OLD ITALIC LETTER ER 10314;AL # OLD ITALIC LETTER ES 10315;AL # OLD ITALIC LETTER TE 10316;AL # OLD ITALIC LETTER U 10317;AL # OLD ITALIC LETTER EKS 10318;AL # OLD ITALIC LETTER PHE 10319;AL # OLD ITALIC LETTER KHE 1031A;AL # OLD ITALIC LETTER EF 1031B;AL # OLD ITALIC LETTER ERS 1031C;AL # OLD ITALIC LETTER CHE 1031D;AL # OLD ITALIC LETTER II 1031E;AL # OLD ITALIC LETTER UU 10320;AL # OLD ITALIC NUMERAL ONE 10321;AL # OLD ITALIC NUMERAL FIVE 10322;AL # OLD ITALIC NUMERAL TEN 10323;AL # OLD ITALIC NUMERAL FIFTY 10330;AL # GOTHIC LETTER AHSA 10331;AL # GOTHIC LETTER BAIRKAN 10332;AL # GOTHIC LETTER GIBA 10333;AL # GOTHIC LETTER DAGS 10334;AL # GOTHIC LETTER AIHVUS 10335;AL # GOTHIC LETTER QAIRTHRA 10336;AL # GOTHIC LETTER IUJA 10337;AL # GOTHIC LETTER HAGL 10338;AL # GOTHIC LETTER THIUTH 10339;AL # GOTHIC LETTER EIS 1033A;AL # GOTHIC LETTER KUSMA 1033B;AL # GOTHIC LETTER LAGUS 1033C;AL # GOTHIC LETTER MANNA 1033D;AL # GOTHIC LETTER NAUTHS 1033E;AL # GOTHIC LETTER JER 1033F;AL # GOTHIC LETTER URUS 10340;AL # GOTHIC LETTER PAIRTHRA 10341;AL # GOTHIC LETTER NINETY 10342;AL # GOTHIC LETTER RAIDA 10343;AL # GOTHIC LETTER SAUIL 10344;AL # GOTHIC LETTER TEIWS 10345;AL # GOTHIC LETTER WINJA 10346;AL # GOTHIC LETTER FAIHU 10347;AL # GOTHIC LETTER IGGWS 10348;AL # GOTHIC LETTER HWAIR 10349;AL # GOTHIC LETTER OTHAL 1034A;AL # GOTHIC LETTER NINE HUNDRED 10400;AL # DESERET CAPITAL LETTER LONG I 10401;AL # DESERET CAPITAL LETTER LONG E 10402;AL # DESERET CAPITAL LETTER LONG A 10403;AL # DESERET CAPITAL LETTER LONG AH 10404;AL # DESERET CAPITAL LETTER LONG O 10405;AL # DESERET CAPITAL LETTER LONG OO 10406;AL # DESERET CAPITAL LETTER SHORT I 10407;AL # DESERET CAPITAL LETTER SHORT E 10408;AL # DESERET CAPITAL LETTER SHORT A 10409;AL # DESERET CAPITAL LETTER SHORT AH 1040A;AL # DESERET CAPITAL LETTER SHORT O 1040B;AL # DESERET CAPITAL LETTER SHORT OO 1040C;AL # DESERET CAPITAL LETTER AY 1040D;AL # DESERET CAPITAL LETTER OW 1040E;AL # DESERET CAPITAL LETTER WU 1040F;AL # DESERET CAPITAL LETTER YEE 10410;AL # DESERET CAPITAL LETTER H 10411;AL # DESERET CAPITAL LETTER PEE 10412;AL # DESERET CAPITAL LETTER BEE 10413;AL # DESERET CAPITAL LETTER TEE 10414;AL # DESERET CAPITAL LETTER DEE 10415;AL # DESERET CAPITAL LETTER CHEE 10416;AL # DESERET CAPITAL LETTER JEE 10417;AL # DESERET CAPITAL LETTER KAY 10418;AL # DESERET CAPITAL LETTER GAY 10419;AL # DESERET CAPITAL LETTER EF 1041A;AL # DESERET CAPITAL LETTER VEE 1041B;AL # DESERET CAPITAL LETTER ETH 1041C;AL # DESERET CAPITAL LETTER THEE 1041D;AL # DESERET CAPITAL LETTER ES 1041E;AL # DESERET CAPITAL LETTER ZEE 1041F;AL # DESERET CAPITAL LETTER ESH 10420;AL # DESERET CAPITAL LETTER ZHEE 10421;AL # DESERET CAPITAL LETTER ER 10422;AL # DESERET CAPITAL LETTER EL 10423;AL # DESERET CAPITAL LETTER EM 10424;AL # DESERET CAPITAL LETTER EN 10425;AL # DESERET CAPITAL LETTER ENG 10428;AL # DESERET SMALL LETTER LONG I 10429;AL # DESERET SMALL LETTER LONG E 1042A;AL # DESERET SMALL LETTER LONG A 1042B;AL # DESERET SMALL LETTER LONG AH 1042C;AL # DESERET SMALL LETTER LONG O 1042D;AL # DESERET SMALL LETTER LONG OO 1042E;AL # DESERET SMALL LETTER SHORT I 1042F;AL # DESERET SMALL LETTER SHORT E 10430;AL # DESERET SMALL LETTER SHORT A 10431;AL # DESERET SMALL LETTER SHORT AH 10432;AL # DESERET SMALL LETTER SHORT O 10433;AL # DESERET SMALL LETTER SHORT OO 10434;AL # DESERET SMALL LETTER AY 10435;AL # DESERET SMALL LETTER OW 10436;AL # DESERET SMALL LETTER WU 10437;AL # DESERET SMALL LETTER YEE 10438;AL # DESERET SMALL LETTER H 10439;AL # DESERET SMALL LETTER PEE 1043A;AL # DESERET SMALL LETTER BEE 1043B;AL # DESERET SMALL LETTER TEE 1043C;AL # DESERET SMALL LETTER DEE 1043D;AL # DESERET SMALL LETTER CHEE 1043E;AL # DESERET SMALL LETTER JEE 1043F;AL # DESERET SMALL LETTER KAY 10440;AL # DESERET SMALL LETTER GAY 10441;AL # DESERET SMALL LETTER EF 10442;AL # DESERET SMALL LETTER VEE 10443;AL # DESERET SMALL LETTER ETH 10444;AL # DESERET SMALL LETTER THEE 10445;AL # DESERET SMALL LETTER ES 10446;AL # DESERET SMALL LETTER ZEE 10447;AL # DESERET SMALL LETTER ESH 10448;AL # DESERET SMALL LETTER ZHEE 10449;AL # DESERET SMALL LETTER ER 1044A;AL # DESERET SMALL LETTER EL 1044B;AL # DESERET SMALL LETTER EM 1044C;AL # DESERET SMALL LETTER EN 1044D;AL # DESERET SMALL LETTER ENG 1D000;AL # BYZANTINE MUSICAL SYMBOL PSILI 1D001;AL # BYZANTINE MUSICAL SYMBOL DASEIA 1D002;AL # BYZANTINE MUSICAL SYMBOL PERISPOMENI 1D003;AL # BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON 1D004;AL # BYZANTINE MUSICAL SYMBOL OXEIA DIPLI 1D005;AL # BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON 1D006;AL # BYZANTINE MUSICAL SYMBOL VAREIA DIPLI 1D007;AL # BYZANTINE MUSICAL SYMBOL KATHISTI 1D008;AL # BYZANTINE MUSICAL SYMBOL SYRMATIKI 1D009;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI 1D00A;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS 1D00B;AL # BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI 1D00C;AL # BYZANTINE MUSICAL SYMBOL KREMASTI 1D00D;AL # BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON 1D00E;AL # BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON 1D00F;AL # BYZANTINE MUSICAL SYMBOL TELEIA 1D010;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA 1D011;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS 1D012;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI 1D013;AL # BYZANTINE MUSICAL SYMBOL SYNEVMA 1D014;AL # BYZANTINE MUSICAL SYMBOL THITA 1D015;AL # BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION 1D016;AL # BYZANTINE MUSICAL SYMBOL GORGON ARCHAION 1D017;AL # BYZANTINE MUSICAL SYMBOL PSILON 1D018;AL # BYZANTINE MUSICAL SYMBOL CHAMILON 1D019;AL # BYZANTINE MUSICAL SYMBOL VATHY 1D01A;AL # BYZANTINE MUSICAL SYMBOL ISON ARCHAION 1D01B;AL # BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION 1D01C;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION 1D01D;AL # BYZANTINE MUSICAL SYMBOL SAXIMATA 1D01E;AL # BYZANTINE MUSICAL SYMBOL PARICHON 1D01F;AL # BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA 1D020;AL # BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION 1D021;AL # BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION 1D022;AL # BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION 1D023;AL # BYZANTINE MUSICAL SYMBOL APOTHEMA 1D024;AL # BYZANTINE MUSICAL SYMBOL KLASMA 1D025;AL # BYZANTINE MUSICAL SYMBOL REVMA 1D026;AL # BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION 1D027;AL # BYZANTINE MUSICAL SYMBOL TINAGMA 1D028;AL # BYZANTINE MUSICAL SYMBOL ANATRICHISMA 1D029;AL # BYZANTINE MUSICAL SYMBOL SEISMA 1D02A;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION 1D02B;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU 1D02C;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION 1D02D;AL # BYZANTINE MUSICAL SYMBOL THEMA 1D02E;AL # BYZANTINE MUSICAL SYMBOL LEMOI 1D02F;AL # BYZANTINE MUSICAL SYMBOL DYO 1D030;AL # BYZANTINE MUSICAL SYMBOL TRIA 1D031;AL # BYZANTINE MUSICAL SYMBOL TESSERA 1D032;AL # BYZANTINE MUSICAL SYMBOL KRATIMATA 1D033;AL # BYZANTINE MUSICAL SYMBOL APESO EXO NEO 1D034;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION 1D035;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORA 1D036;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION 1D037;AL # BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON 1D038;AL # BYZANTINE MUSICAL SYMBOL PELASTON 1D039;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON 1D03A;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA 1D03B;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION 1D03C;AL # BYZANTINE MUSICAL SYMBOL RAPISMA 1D03D;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION 1D03E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION 1D03F;AL # BYZANTINE MUSICAL SYMBOL ICHADIN 1D040;AL # BYZANTINE MUSICAL SYMBOL NANA 1D041;AL # BYZANTINE MUSICAL SYMBOL PETASMA 1D042;AL # BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO 1D043;AL # BYZANTINE MUSICAL SYMBOL TROMIKON ALLO 1D044;AL # BYZANTINE MUSICAL SYMBOL STRAGGISMATA 1D045;AL # BYZANTINE MUSICAL SYMBOL GRONTHISMATA 1D046;AL # BYZANTINE MUSICAL SYMBOL ISON NEO 1D047;AL # BYZANTINE MUSICAL SYMBOL OLIGON NEO 1D048;AL # BYZANTINE MUSICAL SYMBOL OXEIA NEO 1D049;AL # BYZANTINE MUSICAL SYMBOL PETASTI 1D04A;AL # BYZANTINE MUSICAL SYMBOL KOUFISMA 1D04B;AL # BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA 1D04C;AL # BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA 1D04D;AL # BYZANTINE MUSICAL SYMBOL PELASTON NEO 1D04E;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO 1D04F;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO 1D050;AL # BYZANTINE MUSICAL SYMBOL YPSILI 1D051;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO 1D052;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO 1D053;AL # BYZANTINE MUSICAL SYMBOL YPORROI 1D054;AL # BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON 1D055;AL # BYZANTINE MUSICAL SYMBOL ELAFRON 1D056;AL # BYZANTINE MUSICAL SYMBOL CHAMILI 1D057;AL # BYZANTINE MUSICAL SYMBOL MIKRON ISON 1D058;AL # BYZANTINE MUSICAL SYMBOL VAREIA NEO 1D059;AL # BYZANTINE MUSICAL SYMBOL PIASMA NEO 1D05A;AL # BYZANTINE MUSICAL SYMBOL PSIFISTON NEO 1D05B;AL # BYZANTINE MUSICAL SYMBOL OMALON 1D05C;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOMA 1D05D;AL # BYZANTINE MUSICAL SYMBOL LYGISMA 1D05E;AL # BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO 1D05F;AL # BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO 1D060;AL # BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA 1D061;AL # BYZANTINE MUSICAL SYMBOL KYLISMA 1D062;AL # BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA 1D063;AL # BYZANTINE MUSICAL SYMBOL TROMIKON NEO 1D064;AL # BYZANTINE MUSICAL SYMBOL EKSTREPTON 1D065;AL # BYZANTINE MUSICAL SYMBOL SYNAGMA NEO 1D066;AL # BYZANTINE MUSICAL SYMBOL SYRMA 1D067;AL # BYZANTINE MUSICAL SYMBOL CHOREVMA NEO 1D068;AL # BYZANTINE MUSICAL SYMBOL EPEGERMA 1D069;AL # BYZANTINE MUSICAL SYMBOL SEISMA NEO 1D06A;AL # BYZANTINE MUSICAL SYMBOL XIRON KLASMA 1D06B;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON 1D06C;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA 1D06D;AL # BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA 1D06E;AL # BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA 1D06F;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA 1D070;AL # BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA 1D071;AL # BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA 1D072;AL # BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON 1D073;AL # BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON 1D074;AL # BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON 1D075;AL # BYZANTINE MUSICAL SYMBOL OYRANISMA NEO 1D076;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO 1D077;AL # BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO 1D078;AL # BYZANTINE MUSICAL SYMBOL THEMA APLOUN 1D079;AL # BYZANTINE MUSICAL SYMBOL THES KAI APOTHES 1D07A;AL # BYZANTINE MUSICAL SYMBOL KATAVASMA 1D07B;AL # BYZANTINE MUSICAL SYMBOL ENDOFONON 1D07C;AL # BYZANTINE MUSICAL SYMBOL YFEN KATO 1D07D;AL # BYZANTINE MUSICAL SYMBOL YFEN ANO 1D07E;AL # BYZANTINE MUSICAL SYMBOL STAVROS 1D07F;AL # BYZANTINE MUSICAL SYMBOL KLASMA ANO 1D080;AL # BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION 1D081;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION 1D082;AL # BYZANTINE MUSICAL SYMBOL KRATIMA ALLO 1D083;AL # BYZANTINE MUSICAL SYMBOL KRATIMA NEO 1D084;AL # BYZANTINE MUSICAL SYMBOL APODERMA NEO 1D085;AL # BYZANTINE MUSICAL SYMBOL APLI 1D086;AL # BYZANTINE MUSICAL SYMBOL DIPLI 1D087;AL # BYZANTINE MUSICAL SYMBOL TRIPLI 1D088;AL # BYZANTINE MUSICAL SYMBOL TETRAPLI 1D089;AL # BYZANTINE MUSICAL SYMBOL KORONIS 1D08A;AL # BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU 1D08B;AL # BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON 1D08C;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON 1D08D;AL # BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON 1D08E;AL # BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU 1D08F;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO ANO 1D090;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA 1D091;AL # BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA 1D092;AL # BYZANTINE MUSICAL SYMBOL DIGORGON 1D093;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO 1D094;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO 1D095;AL # BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA 1D096;AL # BYZANTINE MUSICAL SYMBOL TRIGORGON 1D097;AL # BYZANTINE MUSICAL SYMBOL ARGON 1D098;AL # BYZANTINE MUSICAL SYMBOL IMIDIARGON 1D099;AL # BYZANTINE MUSICAL SYMBOL DIARGON 1D09A;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI 1D09B;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI 1D09C;AL # BYZANTINE MUSICAL SYMBOL AGOGI ARGI 1D09D;AL # BYZANTINE MUSICAL SYMBOL AGOGI METRIA 1D09E;AL # BYZANTINE MUSICAL SYMBOL AGOGI MESI 1D09F;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGI 1D0A0;AL # BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI 1D0A1;AL # BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI 1D0A2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS 1D0A3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS 1D0A4;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS 1D0A5;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS 1D0A6;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS 1D0A7;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS 1D0A8;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS 1D0A9;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS 1D0AA;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS 1D0AB;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS 1D0AC;AL # BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS 1D0AD;AL # BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS 1D0AE;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS 1D0AF;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS 1D0B0;AL # BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS 1D0B1;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS 1D0B2;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS 1D0B3;AL # BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS 1D0B4;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN 1D0B5;AL # BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN 1D0B6;AL # BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU 1D0B7;AL # BYZANTINE MUSICAL SYMBOL IMIFONON 1D0B8;AL # BYZANTINE MUSICAL SYMBOL IMIFTHORON 1D0B9;AL # BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU 1D0BA;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA 1D0BB;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA 1D0BC;AL # BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS 1D0BD;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI 1D0BE;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI 1D0BF;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE 1D0C0;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO 1D0C1;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO 1D0C2;AL # BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO 1D0C3;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS 1D0C4;AL # BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS 1D0C5;AL # BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS 1D0C6;AL # BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI 1D0C7;AL # BYZANTINE MUSICAL SYMBOL FTHORA NENANO 1D0C8;AL # BYZANTINE MUSICAL SYMBOL CHROA ZYGOS 1D0C9;AL # BYZANTINE MUSICAL SYMBOL CHROA KLITON 1D0CA;AL # BYZANTINE MUSICAL SYMBOL CHROA SPATHI 1D0CB;AL # BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION 1D0CC;AL # BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA 1D0CD;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION 1D0CE;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION 1D0CF;AL # BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION 1D0D0;AL # BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA 1D0D1;AL # BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA 1D0D2;AL # BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA 1D0D3;AL # BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA 1D0D4;AL # BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA 1D0D5;AL # BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA 1D0D6;AL # BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA 1D0D7;AL # BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA 1D0D8;AL # BYZANTINE MUSICAL SYMBOL GENIKI DIESIS 1D0D9;AL # BYZANTINE MUSICAL SYMBOL GENIKI YFESIS 1D0DA;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI 1D0DB;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI 1D0DC;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI 1D0DD;AL # BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS 1D0DE;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS 1D0DF;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU 1D0E0;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU 1D0E1;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU 1D0E2;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS 1D0E3;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU 1D0E4;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU 1D0E5;AL # BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU 1D0E6;AL # BYZANTINE MUSICAL SYMBOL DIGRAMMA GG 1D0E7;AL # BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU 1D0E8;AL # BYZANTINE MUSICAL SYMBOL STIGMA 1D0E9;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO PA 1D0EA;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO VOU 1D0EB;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO GA 1D0EC;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO DI 1D0ED;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO KE 1D0EE;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO ZO 1D0EF;AL # BYZANTINE MUSICAL SYMBOL ARKTIKO NI 1D0F0;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO 1D0F1;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO 1D0F2;AL # BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO 1D0F3;AL # BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO 1D0F4;AL # BYZANTINE MUSICAL SYMBOL KLASMA KATO 1D0F5;AL # BYZANTINE MUSICAL SYMBOL GORGON NEO KATO 1D100;AL # MUSICAL SYMBOL SINGLE BARLINE 1D101;AL # MUSICAL SYMBOL DOUBLE BARLINE 1D102;AL # MUSICAL SYMBOL FINAL BARLINE 1D103;AL # MUSICAL SYMBOL REVERSE FINAL BARLINE 1D104;AL # MUSICAL SYMBOL DASHED BARLINE 1D105;AL # MUSICAL SYMBOL SHORT BARLINE 1D106;AL # MUSICAL SYMBOL LEFT REPEAT SIGN 1D107;AL # MUSICAL SYMBOL RIGHT REPEAT SIGN 1D108;AL # MUSICAL SYMBOL REPEAT DOTS 1D109;AL # MUSICAL SYMBOL DAL SEGNO 1D10A;AL # MUSICAL SYMBOL DA CAPO 1D10B;AL # MUSICAL SYMBOL SEGNO 1D10C;AL # MUSICAL SYMBOL CODA 1D10D;AL # MUSICAL SYMBOL REPEATED FIGURE-1 1D10E;AL # MUSICAL SYMBOL REPEATED FIGURE-2 1D10F;AL # MUSICAL SYMBOL REPEATED FIGURE-3 1D110;AL # MUSICAL SYMBOL FERMATA 1D111;AL # MUSICAL SYMBOL FERMATA BELOW 1D112;AL # MUSICAL SYMBOL BREATH MARK 1D113;AL # MUSICAL SYMBOL CAESURA 1D114;AL # MUSICAL SYMBOL BRACE 1D115;AL # MUSICAL SYMBOL BRACKET 1D116;AL # MUSICAL SYMBOL ONE-LINE STAFF 1D117;AL # MUSICAL SYMBOL TWO-LINE STAFF 1D118;AL # MUSICAL SYMBOL THREE-LINE STAFF 1D119;AL # MUSICAL SYMBOL FOUR-LINE STAFF 1D11A;AL # MUSICAL SYMBOL FIVE-LINE STAFF 1D11B;AL # MUSICAL SYMBOL SIX-LINE STAFF 1D11C;AL # MUSICAL SYMBOL SIX-STRING FRETBOARD 1D11D;AL # MUSICAL SYMBOL FOUR-STRING FRETBOARD 1D11E;AL # MUSICAL SYMBOL G CLEF 1D11F;AL # MUSICAL SYMBOL G CLEF OTTAVA ALTA 1D120;AL # MUSICAL SYMBOL G CLEF OTTAVA BASSA 1D121;AL # MUSICAL SYMBOL C CLEF 1D122;AL # MUSICAL SYMBOL F CLEF 1D123;AL # MUSICAL SYMBOL F CLEF OTTAVA ALTA 1D124;AL # MUSICAL SYMBOL F CLEF OTTAVA BASSA 1D125;AL # MUSICAL SYMBOL DRUM CLEF-1 1D126;AL # MUSICAL SYMBOL DRUM CLEF-2 1D12A;AL # MUSICAL SYMBOL DOUBLE SHARP 1D12B;AL # MUSICAL SYMBOL DOUBLE FLAT 1D12C;AL # MUSICAL SYMBOL FLAT UP 1D12D;AL # MUSICAL SYMBOL FLAT DOWN 1D12E;AL # MUSICAL SYMBOL NATURAL UP 1D12F;AL # MUSICAL SYMBOL NATURAL DOWN 1D130;AL # MUSICAL SYMBOL SHARP UP 1D131;AL # MUSICAL SYMBOL SHARP DOWN 1D132;AL # MUSICAL SYMBOL QUARTER TONE SHARP 1D133;AL # MUSICAL SYMBOL QUARTER TONE FLAT 1D134;AL # MUSICAL SYMBOL COMMON TIME 1D135;AL # MUSICAL SYMBOL CUT TIME 1D136;AL # MUSICAL SYMBOL OTTAVA ALTA 1D137;AL # MUSICAL SYMBOL OTTAVA BASSA 1D138;AL # MUSICAL SYMBOL QUINDICESIMA ALTA 1D139;AL # MUSICAL SYMBOL QUINDICESIMA BASSA 1D13A;AL # MUSICAL SYMBOL MULTI REST 1D13B;AL # MUSICAL SYMBOL WHOLE REST 1D13C;AL # MUSICAL SYMBOL HALF REST 1D13D;AL # MUSICAL SYMBOL QUARTER REST 1D13E;AL # MUSICAL SYMBOL EIGHTH REST 1D13F;AL # MUSICAL SYMBOL SIXTEENTH REST 1D140;AL # MUSICAL SYMBOL THIRTY-SECOND REST 1D141;AL # MUSICAL SYMBOL SIXTY-FOURTH REST 1D142;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST 1D143;AL # MUSICAL SYMBOL X NOTEHEAD 1D144;AL # MUSICAL SYMBOL PLUS NOTEHEAD 1D145;AL # MUSICAL SYMBOL CIRCLE X NOTEHEAD 1D146;AL # MUSICAL SYMBOL SQUARE NOTEHEAD WHITE 1D147;AL # MUSICAL SYMBOL SQUARE NOTEHEAD BLACK 1D148;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE 1D149;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK 1D14A;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE 1D14B;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK 1D14C;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE 1D14D;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK 1D14E;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE 1D14F;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK 1D150;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE 1D151;AL # MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK 1D152;AL # MUSICAL SYMBOL MOON NOTEHEAD WHITE 1D153;AL # MUSICAL SYMBOL MOON NOTEHEAD BLACK 1D154;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE 1D155;AL # MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK 1D156;AL # MUSICAL SYMBOL PARENTHESIS NOTEHEAD 1D157;AL # MUSICAL SYMBOL VOID NOTEHEAD 1D158;AL # MUSICAL SYMBOL NOTEHEAD BLACK 1D159;AL # MUSICAL SYMBOL NULL NOTEHEAD 1D15A;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE 1D15B;AL # MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK 1D15C;AL # MUSICAL SYMBOL BREVE 1D15D;AL # MUSICAL SYMBOL WHOLE NOTE 1D15E;AL # MUSICAL SYMBOL HALF NOTE 1D15F;AL # MUSICAL SYMBOL QUARTER NOTE 1D160;AL # MUSICAL SYMBOL EIGHTH NOTE 1D161;AL # MUSICAL SYMBOL SIXTEENTH NOTE 1D162;AL # MUSICAL SYMBOL THIRTY-SECOND NOTE 1D163;AL # MUSICAL SYMBOL SIXTY-FOURTH NOTE 1D164;AL # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE 1D165;CM # MUSICAL SYMBOL COMBINING STEM 1D166;CM # MUSICAL SYMBOL COMBINING SPRECHGESANG STEM 1D167;CM # MUSICAL SYMBOL COMBINING TREMOLO-1 1D168;CM # MUSICAL SYMBOL COMBINING TREMOLO-2 1D169;CM # MUSICAL SYMBOL COMBINING TREMOLO-3 1D16A;AL # MUSICAL SYMBOL FINGERED TREMOLO-1 1D16B;AL # MUSICAL SYMBOL FINGERED TREMOLO-2 1D16C;AL # MUSICAL SYMBOL FINGERED TREMOLO-3 1D16D;CM # MUSICAL SYMBOL COMBINING AUGMENTATION DOT 1D16E;CM # MUSICAL SYMBOL COMBINING FLAG-1 1D16F;CM # MUSICAL SYMBOL COMBINING FLAG-2 1D170;CM # MUSICAL SYMBOL COMBINING FLAG-3 1D171;CM # MUSICAL SYMBOL COMBINING FLAG-4 1D172;CM # MUSICAL SYMBOL COMBINING FLAG-5 1D173;CM # MUSICAL SYMBOL BEGIN BEAM 1D174;CM # MUSICAL SYMBOL END BEAM 1D175;CM # MUSICAL SYMBOL BEGIN TIE 1D176;CM # MUSICAL SYMBOL END TIE 1D177;CM # MUSICAL SYMBOL BEGIN SLUR 1D178;CM # MUSICAL SYMBOL END SLUR 1D179;CM # MUSICAL SYMBOL BEGIN PHRASE 1D17A;CM # MUSICAL SYMBOL END PHRASE 1D17B;CM # MUSICAL SYMBOL COMBINING ACCENT 1D17C;CM # MUSICAL SYMBOL COMBINING STACCATO 1D17D;CM # MUSICAL SYMBOL COMBINING TENUTO 1D17E;CM # MUSICAL SYMBOL COMBINING STACCATISSIMO 1D17F;CM # MUSICAL SYMBOL COMBINING MARCATO 1D180;CM # MUSICAL SYMBOL COMBINING MARCATO-STACCATO 1D181;CM # MUSICAL SYMBOL COMBINING ACCENT-STACCATO 1D182;CM # MUSICAL SYMBOL COMBINING LOURE 1D183;AL # MUSICAL SYMBOL ARPEGGIATO UP 1D184;AL # MUSICAL SYMBOL ARPEGGIATO DOWN 1D185;CM # MUSICAL SYMBOL COMBINING DOIT 1D186;CM # MUSICAL SYMBOL COMBINING RIP 1D187;CM # MUSICAL SYMBOL COMBINING FLIP 1D188;CM # MUSICAL SYMBOL COMBINING SMEAR 1D189;CM # MUSICAL SYMBOL COMBINING BEND 1D18A;CM # MUSICAL SYMBOL COMBINING DOUBLE TONGUE 1D18B;CM # MUSICAL SYMBOL COMBINING TRIPLE TONGUE 1D18C;AL # MUSICAL SYMBOL RINFORZANDO 1D18D;AL # MUSICAL SYMBOL SUBITO 1D18E;AL # MUSICAL SYMBOL Z 1D18F;AL # MUSICAL SYMBOL PIANO 1D190;AL # MUSICAL SYMBOL MEZZO 1D191;AL # MUSICAL SYMBOL FORTE 1D192;AL # MUSICAL SYMBOL CRESCENDO 1D193;AL # MUSICAL SYMBOL DECRESCENDO 1D194;AL # MUSICAL SYMBOL GRACE NOTE SLASH 1D195;AL # MUSICAL SYMBOL GRACE NOTE NO SLASH 1D196;AL # MUSICAL SYMBOL TR 1D197;AL # MUSICAL SYMBOL TURN 1D198;AL # MUSICAL SYMBOL INVERTED TURN 1D199;AL # MUSICAL SYMBOL TURN SLASH 1D19A;AL # MUSICAL SYMBOL TURN UP 1D19B;AL # MUSICAL SYMBOL ORNAMENT STROKE-1 1D19C;AL # MUSICAL SYMBOL ORNAMENT STROKE-2 1D19D;AL # MUSICAL SYMBOL ORNAMENT STROKE-3 1D19E;AL # MUSICAL SYMBOL ORNAMENT STROKE-4 1D19F;AL # MUSICAL SYMBOL ORNAMENT STROKE-5 1D1A0;AL # MUSICAL SYMBOL ORNAMENT STROKE-6 1D1A1;AL # MUSICAL SYMBOL ORNAMENT STROKE-7 1D1A2;AL # MUSICAL SYMBOL ORNAMENT STROKE-8 1D1A3;AL # MUSICAL SYMBOL ORNAMENT STROKE-9 1D1A4;AL # MUSICAL SYMBOL ORNAMENT STROKE-10 1D1A5;AL # MUSICAL SYMBOL ORNAMENT STROKE-11 1D1A6;AL # MUSICAL SYMBOL HAUPTSTIMME 1D1A7;AL # MUSICAL SYMBOL NEBENSTIMME 1D1A8;AL # MUSICAL SYMBOL END OF STIMME 1D1A9;AL # MUSICAL SYMBOL DEGREE SLASH 1D1AA;CM # MUSICAL SYMBOL COMBINING DOWN BOW 1D1AB;CM # MUSICAL SYMBOL COMBINING UP BOW 1D1AC;CM # MUSICAL SYMBOL COMBINING HARMONIC 1D1AD;CM # MUSICAL SYMBOL COMBINING SNAP PIZZICATO 1D1AE;AL # MUSICAL SYMBOL PEDAL MARK 1D1AF;AL # MUSICAL SYMBOL PEDAL UP MARK 1D1B0;AL # MUSICAL SYMBOL HALF PEDAL MARK 1D1B1;AL # MUSICAL SYMBOL GLISSANDO UP 1D1B2;AL # MUSICAL SYMBOL GLISSANDO DOWN 1D1B3;AL # MUSICAL SYMBOL WITH FINGERNAILS 1D1B4;AL # MUSICAL SYMBOL DAMP 1D1B5;AL # MUSICAL SYMBOL DAMP ALL 1D1B6;AL # MUSICAL SYMBOL MAXIMA 1D1B7;AL # MUSICAL SYMBOL LONGA 1D1B8;AL # MUSICAL SYMBOL BREVIS 1D1B9;AL # MUSICAL SYMBOL SEMIBREVIS WHITE 1D1BA;AL # MUSICAL SYMBOL SEMIBREVIS BLACK 1D1BB;AL # MUSICAL SYMBOL MINIMA 1D1BC;AL # MUSICAL SYMBOL MINIMA BLACK 1D1BD;AL # MUSICAL SYMBOL SEMIMINIMA WHITE 1D1BE;AL # MUSICAL SYMBOL SEMIMINIMA BLACK 1D1BF;AL # MUSICAL SYMBOL FUSA WHITE 1D1C0;AL # MUSICAL SYMBOL FUSA BLACK 1D1C1;AL # MUSICAL SYMBOL LONGA PERFECTA REST 1D1C2;AL # MUSICAL SYMBOL LONGA IMPERFECTA REST 1D1C3;AL # MUSICAL SYMBOL BREVIS REST 1D1C4;AL # MUSICAL SYMBOL SEMIBREVIS REST 1D1C5;AL # MUSICAL SYMBOL MINIMA REST 1D1C6;AL # MUSICAL SYMBOL SEMIMINIMA REST 1D1C7;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA 1D1C8;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA 1D1C9;AL # MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1 1D1CA;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA 1D1CB;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA 1D1CC;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1 1D1CD;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2 1D1CE;AL # MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3 1D1CF;AL # MUSICAL SYMBOL CROIX 1D1D0;AL # MUSICAL SYMBOL GREGORIAN C CLEF 1D1D1;AL # MUSICAL SYMBOL GREGORIAN F CLEF 1D1D2;AL # MUSICAL SYMBOL SQUARE B 1D1D3;AL # MUSICAL SYMBOL VIRGA 1D1D4;AL # MUSICAL SYMBOL PODATUS 1D1D5;AL # MUSICAL SYMBOL CLIVIS 1D1D6;AL # MUSICAL SYMBOL SCANDICUS 1D1D7;AL # MUSICAL SYMBOL CLIMACUS 1D1D8;AL # MUSICAL SYMBOL TORCULUS 1D1D9;AL # MUSICAL SYMBOL PORRECTUS 1D1DA;AL # MUSICAL SYMBOL PORRECTUS FLEXUS 1D1DB;AL # MUSICAL SYMBOL SCANDICUS FLEXUS 1D1DC;AL # MUSICAL SYMBOL TORCULUS RESUPINUS 1D1DD;AL # MUSICAL SYMBOL PES SUBPUNCTIS 1D400;AL # MATHEMATICAL BOLD CAPITAL A 1D401;AL # MATHEMATICAL BOLD CAPITAL B 1D402;AL # MATHEMATICAL BOLD CAPITAL C 1D403;AL # MATHEMATICAL BOLD CAPITAL D 1D404;AL # MATHEMATICAL BOLD CAPITAL E 1D405;AL # MATHEMATICAL BOLD CAPITAL F 1D406;AL # MATHEMATICAL BOLD CAPITAL G 1D407;AL # MATHEMATICAL BOLD CAPITAL H 1D408;AL # MATHEMATICAL BOLD CAPITAL I 1D409;AL # MATHEMATICAL BOLD CAPITAL J 1D40A;AL # MATHEMATICAL BOLD CAPITAL K 1D40B;AL # MATHEMATICAL BOLD CAPITAL L 1D40C;AL # MATHEMATICAL BOLD CAPITAL M 1D40D;AL # MATHEMATICAL BOLD CAPITAL N 1D40E;AL # MATHEMATICAL BOLD CAPITAL O 1D40F;AL # MATHEMATICAL BOLD CAPITAL P 1D410;AL # MATHEMATICAL BOLD CAPITAL Q 1D411;AL # MATHEMATICAL BOLD CAPITAL R 1D412;AL # MATHEMATICAL BOLD CAPITAL S 1D413;AL # MATHEMATICAL BOLD CAPITAL T 1D414;AL # MATHEMATICAL BOLD CAPITAL U 1D415;AL # MATHEMATICAL BOLD CAPITAL V 1D416;AL # MATHEMATICAL BOLD CAPITAL W 1D417;AL # MATHEMATICAL BOLD CAPITAL X 1D418;AL # MATHEMATICAL BOLD CAPITAL Y 1D419;AL # MATHEMATICAL BOLD CAPITAL Z 1D41A;AL # MATHEMATICAL BOLD SMALL A 1D41B;AL # MATHEMATICAL BOLD SMALL B 1D41C;AL # MATHEMATICAL BOLD SMALL C 1D41D;AL # MATHEMATICAL BOLD SMALL D 1D41E;AL # MATHEMATICAL BOLD SMALL E 1D41F;AL # MATHEMATICAL BOLD SMALL F 1D420;AL # MATHEMATICAL BOLD SMALL G 1D421;AL # MATHEMATICAL BOLD SMALL H 1D422;AL # MATHEMATICAL BOLD SMALL I 1D423;AL # MATHEMATICAL BOLD SMALL J 1D424;AL # MATHEMATICAL BOLD SMALL K 1D425;AL # MATHEMATICAL BOLD SMALL L 1D426;AL # MATHEMATICAL BOLD SMALL M 1D427;AL # MATHEMATICAL BOLD SMALL N 1D428;AL # MATHEMATICAL BOLD SMALL O 1D429;AL # MATHEMATICAL BOLD SMALL P 1D42A;AL # MATHEMATICAL BOLD SMALL Q 1D42B;AL # MATHEMATICAL BOLD SMALL R 1D42C;AL # MATHEMATICAL BOLD SMALL S 1D42D;AL # MATHEMATICAL BOLD SMALL T 1D42E;AL # MATHEMATICAL BOLD SMALL U 1D42F;AL # MATHEMATICAL BOLD SMALL V 1D430;AL # MATHEMATICAL BOLD SMALL W 1D431;AL # MATHEMATICAL BOLD SMALL X 1D432;AL # MATHEMATICAL BOLD SMALL Y 1D433;AL # MATHEMATICAL BOLD SMALL Z 1D434;AL # MATHEMATICAL ITALIC CAPITAL A 1D435;AL # MATHEMATICAL ITALIC CAPITAL B 1D436;AL # MATHEMATICAL ITALIC CAPITAL C 1D437;AL # MATHEMATICAL ITALIC CAPITAL D 1D438;AL # MATHEMATICAL ITALIC CAPITAL E 1D439;AL # MATHEMATICAL ITALIC CAPITAL F 1D43A;AL # MATHEMATICAL ITALIC CAPITAL G 1D43B;AL # MATHEMATICAL ITALIC CAPITAL H 1D43C;AL # MATHEMATICAL ITALIC CAPITAL I 1D43D;AL # MATHEMATICAL ITALIC CAPITAL J 1D43E;AL # MATHEMATICAL ITALIC CAPITAL K 1D43F;AL # MATHEMATICAL ITALIC CAPITAL L 1D440;AL # MATHEMATICAL ITALIC CAPITAL M 1D441;AL # MATHEMATICAL ITALIC CAPITAL N 1D442;AL # MATHEMATICAL ITALIC CAPITAL O 1D443;AL # MATHEMATICAL ITALIC CAPITAL P 1D444;AL # MATHEMATICAL ITALIC CAPITAL Q 1D445;AL # MATHEMATICAL ITALIC CAPITAL R 1D446;AL # MATHEMATICAL ITALIC CAPITAL S 1D447;AL # MATHEMATICAL ITALIC CAPITAL T 1D448;AL # MATHEMATICAL ITALIC CAPITAL U 1D449;AL # MATHEMATICAL ITALIC CAPITAL V 1D44A;AL # MATHEMATICAL ITALIC CAPITAL W 1D44B;AL # MATHEMATICAL ITALIC CAPITAL X 1D44C;AL # MATHEMATICAL ITALIC CAPITAL Y 1D44D;AL # MATHEMATICAL ITALIC CAPITAL Z 1D44E;AL # MATHEMATICAL ITALIC SMALL A 1D44F;AL # MATHEMATICAL ITALIC SMALL B 1D450;AL # MATHEMATICAL ITALIC SMALL C 1D451;AL # MATHEMATICAL ITALIC SMALL D 1D452;AL # MATHEMATICAL ITALIC SMALL E 1D453;AL # MATHEMATICAL ITALIC SMALL F 1D454;AL # MATHEMATICAL ITALIC SMALL G 1D456;AL # MATHEMATICAL ITALIC SMALL I 1D457;AL # MATHEMATICAL ITALIC SMALL J 1D458;AL # MATHEMATICAL ITALIC SMALL K 1D459;AL # MATHEMATICAL ITALIC SMALL L 1D45A;AL # MATHEMATICAL ITALIC SMALL M 1D45B;AL # MATHEMATICAL ITALIC SMALL N 1D45C;AL # MATHEMATICAL ITALIC SMALL O 1D45D;AL # MATHEMATICAL ITALIC SMALL P 1D45E;AL # MATHEMATICAL ITALIC SMALL Q 1D45F;AL # MATHEMATICAL ITALIC SMALL R 1D460;AL # MATHEMATICAL ITALIC SMALL S 1D461;AL # MATHEMATICAL ITALIC SMALL T 1D462;AL # MATHEMATICAL ITALIC SMALL U 1D463;AL # MATHEMATICAL ITALIC SMALL V 1D464;AL # MATHEMATICAL ITALIC SMALL W 1D465;AL # MATHEMATICAL ITALIC SMALL X 1D466;AL # MATHEMATICAL ITALIC SMALL Y 1D467;AL # MATHEMATICAL ITALIC SMALL Z 1D468;AL # MATHEMATICAL BOLD ITALIC CAPITAL A 1D469;AL # MATHEMATICAL BOLD ITALIC CAPITAL B 1D46A;AL # MATHEMATICAL BOLD ITALIC CAPITAL C 1D46B;AL # MATHEMATICAL BOLD ITALIC CAPITAL D 1D46C;AL # MATHEMATICAL BOLD ITALIC CAPITAL E 1D46D;AL # MATHEMATICAL BOLD ITALIC CAPITAL F 1D46E;AL # MATHEMATICAL BOLD ITALIC CAPITAL G 1D46F;AL # MATHEMATICAL BOLD ITALIC CAPITAL H 1D470;AL # MATHEMATICAL BOLD ITALIC CAPITAL I 1D471;AL # MATHEMATICAL BOLD ITALIC CAPITAL J 1D472;AL # MATHEMATICAL BOLD ITALIC CAPITAL K 1D473;AL # MATHEMATICAL BOLD ITALIC CAPITAL L 1D474;AL # MATHEMATICAL BOLD ITALIC CAPITAL M 1D475;AL # MATHEMATICAL BOLD ITALIC CAPITAL N 1D476;AL # MATHEMATICAL BOLD ITALIC CAPITAL O 1D477;AL # MATHEMATICAL BOLD ITALIC CAPITAL P 1D478;AL # MATHEMATICAL BOLD ITALIC CAPITAL Q 1D479;AL # MATHEMATICAL BOLD ITALIC CAPITAL R 1D47A;AL # MATHEMATICAL BOLD ITALIC CAPITAL S 1D47B;AL # MATHEMATICAL BOLD ITALIC CAPITAL T 1D47C;AL # MATHEMATICAL BOLD ITALIC CAPITAL U 1D47D;AL # MATHEMATICAL BOLD ITALIC CAPITAL V 1D47E;AL # MATHEMATICAL BOLD ITALIC CAPITAL W 1D47F;AL # MATHEMATICAL BOLD ITALIC CAPITAL X 1D480;AL # MATHEMATICAL BOLD ITALIC CAPITAL Y 1D481;AL # MATHEMATICAL BOLD ITALIC CAPITAL Z 1D482;AL # MATHEMATICAL BOLD ITALIC SMALL A 1D483;AL # MATHEMATICAL BOLD ITALIC SMALL B 1D484;AL # MATHEMATICAL BOLD ITALIC SMALL C 1D485;AL # MATHEMATICAL BOLD ITALIC SMALL D 1D486;AL # MATHEMATICAL BOLD ITALIC SMALL E 1D487;AL # MATHEMATICAL BOLD ITALIC SMALL F 1D488;AL # MATHEMATICAL BOLD ITALIC SMALL G 1D489;AL # MATHEMATICAL BOLD ITALIC SMALL H 1D48A;AL # MATHEMATICAL BOLD ITALIC SMALL I 1D48B;AL # MATHEMATICAL BOLD ITALIC SMALL J 1D48C;AL # MATHEMATICAL BOLD ITALIC SMALL K 1D48D;AL # MATHEMATICAL BOLD ITALIC SMALL L 1D48E;AL # MATHEMATICAL BOLD ITALIC SMALL M 1D48F;AL # MATHEMATICAL BOLD ITALIC SMALL N 1D490;AL # MATHEMATICAL BOLD ITALIC SMALL O 1D491;AL # MATHEMATICAL BOLD ITALIC SMALL P 1D492;AL # MATHEMATICAL BOLD ITALIC SMALL Q 1D493;AL # MATHEMATICAL BOLD ITALIC SMALL R 1D494;AL # MATHEMATICAL BOLD ITALIC SMALL S 1D495;AL # MATHEMATICAL BOLD ITALIC SMALL T 1D496;AL # MATHEMATICAL BOLD ITALIC SMALL U 1D497;AL # MATHEMATICAL BOLD ITALIC SMALL V 1D498;AL # MATHEMATICAL BOLD ITALIC SMALL W 1D499;AL # MATHEMATICAL BOLD ITALIC SMALL X 1D49A;AL # MATHEMATICAL BOLD ITALIC SMALL Y 1D49B;AL # MATHEMATICAL BOLD ITALIC SMALL Z 1D49C;AL # MATHEMATICAL SCRIPT CAPITAL A 1D49E;AL # MATHEMATICAL SCRIPT CAPITAL C 1D49F;AL # MATHEMATICAL SCRIPT CAPITAL D 1D4A2;AL # MATHEMATICAL SCRIPT CAPITAL G 1D4A5;AL # MATHEMATICAL SCRIPT CAPITAL J 1D4A6;AL # MATHEMATICAL SCRIPT CAPITAL K 1D4A9;AL # MATHEMATICAL SCRIPT CAPITAL N 1D4AA;AL # MATHEMATICAL SCRIPT CAPITAL O 1D4AB;AL # MATHEMATICAL SCRIPT CAPITAL P 1D4AC;AL # MATHEMATICAL SCRIPT CAPITAL Q 1D4AE;AL # MATHEMATICAL SCRIPT CAPITAL S 1D4AF;AL # MATHEMATICAL SCRIPT CAPITAL T 1D4B0;AL # MATHEMATICAL SCRIPT CAPITAL U 1D4B1;AL # MATHEMATICAL SCRIPT CAPITAL V 1D4B2;AL # MATHEMATICAL SCRIPT CAPITAL W 1D4B3;AL # MATHEMATICAL SCRIPT CAPITAL X 1D4B4;AL # MATHEMATICAL SCRIPT CAPITAL Y 1D4B5;AL # MATHEMATICAL SCRIPT CAPITAL Z 1D4B6;AL # MATHEMATICAL SCRIPT SMALL A 1D4B7;AL # MATHEMATICAL SCRIPT SMALL B 1D4B8;AL # MATHEMATICAL SCRIPT SMALL C 1D4B9;AL # MATHEMATICAL SCRIPT SMALL D 1D4BB;AL # MATHEMATICAL SCRIPT SMALL F 1D4BD;AL # MATHEMATICAL SCRIPT SMALL H 1D4BE;AL # MATHEMATICAL SCRIPT SMALL I 1D4BF;AL # MATHEMATICAL SCRIPT SMALL J 1D4C0;AL # MATHEMATICAL SCRIPT SMALL K 1D4C2;AL # MATHEMATICAL SCRIPT SMALL M 1D4C3;AL # MATHEMATICAL SCRIPT SMALL N 1D4C5;AL # MATHEMATICAL SCRIPT SMALL P 1D4C6;AL # MATHEMATICAL SCRIPT SMALL Q 1D4C7;AL # MATHEMATICAL SCRIPT SMALL R 1D4C8;AL # MATHEMATICAL SCRIPT SMALL S 1D4C9;AL # MATHEMATICAL SCRIPT SMALL T 1D4CA;AL # MATHEMATICAL SCRIPT SMALL U 1D4CB;AL # MATHEMATICAL SCRIPT SMALL V 1D4CC;AL # MATHEMATICAL SCRIPT SMALL W 1D4CD;AL # MATHEMATICAL SCRIPT SMALL X 1D4CE;AL # MATHEMATICAL SCRIPT SMALL Y 1D4CF;AL # MATHEMATICAL SCRIPT SMALL Z 1D4D0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL A 1D4D1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL B 1D4D2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL C 1D4D3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL D 1D4D4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL E 1D4D5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL F 1D4D6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL G 1D4D7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL H 1D4D8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL I 1D4D9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL J 1D4DA;AL # MATHEMATICAL BOLD SCRIPT CAPITAL K 1D4DB;AL # MATHEMATICAL BOLD SCRIPT CAPITAL L 1D4DC;AL # MATHEMATICAL BOLD SCRIPT CAPITAL M 1D4DD;AL # MATHEMATICAL BOLD SCRIPT CAPITAL N 1D4DE;AL # MATHEMATICAL BOLD SCRIPT CAPITAL O 1D4DF;AL # MATHEMATICAL BOLD SCRIPT CAPITAL P 1D4E0;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Q 1D4E1;AL # MATHEMATICAL BOLD SCRIPT CAPITAL R 1D4E2;AL # MATHEMATICAL BOLD SCRIPT CAPITAL S 1D4E3;AL # MATHEMATICAL BOLD SCRIPT CAPITAL T 1D4E4;AL # MATHEMATICAL BOLD SCRIPT CAPITAL U 1D4E5;AL # MATHEMATICAL BOLD SCRIPT CAPITAL V 1D4E6;AL # MATHEMATICAL BOLD SCRIPT CAPITAL W 1D4E7;AL # MATHEMATICAL BOLD SCRIPT CAPITAL X 1D4E8;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Y 1D4E9;AL # MATHEMATICAL BOLD SCRIPT CAPITAL Z 1D4EA;AL # MATHEMATICAL BOLD SCRIPT SMALL A 1D4EB;AL # MATHEMATICAL BOLD SCRIPT SMALL B 1D4EC;AL # MATHEMATICAL BOLD SCRIPT SMALL C 1D4ED;AL # MATHEMATICAL BOLD SCRIPT SMALL D 1D4EE;AL # MATHEMATICAL BOLD SCRIPT SMALL E 1D4EF;AL # MATHEMATICAL BOLD SCRIPT SMALL F 1D4F0;AL # MATHEMATICAL BOLD SCRIPT SMALL G 1D4F1;AL # MATHEMATICAL BOLD SCRIPT SMALL H 1D4F2;AL # MATHEMATICAL BOLD SCRIPT SMALL I 1D4F3;AL # MATHEMATICAL BOLD SCRIPT SMALL J 1D4F4;AL # MATHEMATICAL BOLD SCRIPT SMALL K 1D4F5;AL # MATHEMATICAL BOLD SCRIPT SMALL L 1D4F6;AL # MATHEMATICAL BOLD SCRIPT SMALL M 1D4F7;AL # MATHEMATICAL BOLD SCRIPT SMALL N 1D4F8;AL # MATHEMATICAL BOLD SCRIPT SMALL O 1D4F9;AL # MATHEMATICAL BOLD SCRIPT SMALL P 1D4FA;AL # MATHEMATICAL BOLD SCRIPT SMALL Q 1D4FB;AL # MATHEMATICAL BOLD SCRIPT SMALL R 1D4FC;AL # MATHEMATICAL BOLD SCRIPT SMALL S 1D4FD;AL # MATHEMATICAL BOLD SCRIPT SMALL T 1D4FE;AL # MATHEMATICAL BOLD SCRIPT SMALL U 1D4FF;AL # MATHEMATICAL BOLD SCRIPT SMALL V 1D500;AL # MATHEMATICAL BOLD SCRIPT SMALL W 1D501;AL # MATHEMATICAL BOLD SCRIPT SMALL X 1D502;AL # MATHEMATICAL BOLD SCRIPT SMALL Y 1D503;AL # MATHEMATICAL BOLD SCRIPT SMALL Z 1D504;AL # MATHEMATICAL FRAKTUR CAPITAL A 1D505;AL # MATHEMATICAL FRAKTUR CAPITAL B 1D507;AL # MATHEMATICAL FRAKTUR CAPITAL D 1D508;AL # MATHEMATICAL FRAKTUR CAPITAL E 1D509;AL # MATHEMATICAL FRAKTUR CAPITAL F 1D50A;AL # MATHEMATICAL FRAKTUR CAPITAL G 1D50D;AL # MATHEMATICAL FRAKTUR CAPITAL J 1D50E;AL # MATHEMATICAL FRAKTUR CAPITAL K 1D50F;AL # MATHEMATICAL FRAKTUR CAPITAL L 1D510;AL # MATHEMATICAL FRAKTUR CAPITAL M 1D511;AL # MATHEMATICAL FRAKTUR CAPITAL N 1D512;AL # MATHEMATICAL FRAKTUR CAPITAL O 1D513;AL # MATHEMATICAL FRAKTUR CAPITAL P 1D514;AL # MATHEMATICAL FRAKTUR CAPITAL Q 1D516;AL # MATHEMATICAL FRAKTUR CAPITAL S 1D517;AL # MATHEMATICAL FRAKTUR CAPITAL T 1D518;AL # MATHEMATICAL FRAKTUR CAPITAL U 1D519;AL # MATHEMATICAL FRAKTUR CAPITAL V 1D51A;AL # MATHEMATICAL FRAKTUR CAPITAL W 1D51B;AL # MATHEMATICAL FRAKTUR CAPITAL X 1D51C;AL # MATHEMATICAL FRAKTUR CAPITAL Y 1D51E;AL # MATHEMATICAL FRAKTUR SMALL A 1D51F;AL # MATHEMATICAL FRAKTUR SMALL B 1D520;AL # MATHEMATICAL FRAKTUR SMALL C 1D521;AL # MATHEMATICAL FRAKTUR SMALL D 1D522;AL # MATHEMATICAL FRAKTUR SMALL E 1D523;AL # MATHEMATICAL FRAKTUR SMALL F 1D524;AL # MATHEMATICAL FRAKTUR SMALL G 1D525;AL # MATHEMATICAL FRAKTUR SMALL H 1D526;AL # MATHEMATICAL FRAKTUR SMALL I 1D527;AL # MATHEMATICAL FRAKTUR SMALL J 1D528;AL # MATHEMATICAL FRAKTUR SMALL K 1D529;AL # MATHEMATICAL FRAKTUR SMALL L 1D52A;AL # MATHEMATICAL FRAKTUR SMALL M 1D52B;AL # MATHEMATICAL FRAKTUR SMALL N 1D52C;AL # MATHEMATICAL FRAKTUR SMALL O 1D52D;AL # MATHEMATICAL FRAKTUR SMALL P 1D52E;AL # MATHEMATICAL FRAKTUR SMALL Q 1D52F;AL # MATHEMATICAL FRAKTUR SMALL R 1D530;AL # MATHEMATICAL FRAKTUR SMALL S 1D531;AL # MATHEMATICAL FRAKTUR SMALL T 1D532;AL # MATHEMATICAL FRAKTUR SMALL U 1D533;AL # MATHEMATICAL FRAKTUR SMALL V 1D534;AL # MATHEMATICAL FRAKTUR SMALL W 1D535;AL # MATHEMATICAL FRAKTUR SMALL X 1D536;AL # MATHEMATICAL FRAKTUR SMALL Y 1D537;AL # MATHEMATICAL FRAKTUR SMALL Z 1D538;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL A 1D539;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL B 1D53B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL D 1D53C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL E 1D53D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL F 1D53E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL G 1D540;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL I 1D541;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL J 1D542;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL K 1D543;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL L 1D544;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL M 1D546;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL O 1D54A;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL S 1D54B;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL T 1D54C;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL U 1D54D;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL V 1D54E;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL W 1D54F;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL X 1D550;AL # MATHEMATICAL DOUBLE-STRUCK CAPITAL Y 1D552;AL # MATHEMATICAL DOUBLE-STRUCK SMALL A 1D553;AL # MATHEMATICAL DOUBLE-STRUCK SMALL B 1D554;AL # MATHEMATICAL DOUBLE-STRUCK SMALL C 1D555;AL # MATHEMATICAL DOUBLE-STRUCK SMALL D 1D556;AL # MATHEMATICAL DOUBLE-STRUCK SMALL E 1D557;AL # MATHEMATICAL DOUBLE-STRUCK SMALL F 1D558;AL # MATHEMATICAL DOUBLE-STRUCK SMALL G 1D559;AL # MATHEMATICAL DOUBLE-STRUCK SMALL H 1D55A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL I 1D55B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL J 1D55C;AL # MATHEMATICAL DOUBLE-STRUCK SMALL K 1D55D;AL # MATHEMATICAL DOUBLE-STRUCK SMALL L 1D55E;AL # MATHEMATICAL DOUBLE-STRUCK SMALL M 1D55F;AL # MATHEMATICAL DOUBLE-STRUCK SMALL N 1D560;AL # MATHEMATICAL DOUBLE-STRUCK SMALL O 1D561;AL # MATHEMATICAL DOUBLE-STRUCK SMALL P 1D562;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Q 1D563;AL # MATHEMATICAL DOUBLE-STRUCK SMALL R 1D564;AL # MATHEMATICAL DOUBLE-STRUCK SMALL S 1D565;AL # MATHEMATICAL DOUBLE-STRUCK SMALL T 1D566;AL # MATHEMATICAL DOUBLE-STRUCK SMALL U 1D567;AL # MATHEMATICAL DOUBLE-STRUCK SMALL V 1D568;AL # MATHEMATICAL DOUBLE-STRUCK SMALL W 1D569;AL # MATHEMATICAL DOUBLE-STRUCK SMALL X 1D56A;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Y 1D56B;AL # MATHEMATICAL DOUBLE-STRUCK SMALL Z 1D56C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL A 1D56D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL B 1D56E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL C 1D56F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL D 1D570;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL E 1D571;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL F 1D572;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL G 1D573;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL H 1D574;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL I 1D575;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL J 1D576;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL K 1D577;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL L 1D578;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL M 1D579;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL N 1D57A;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL O 1D57B;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL P 1D57C;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Q 1D57D;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL R 1D57E;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL S 1D57F;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL T 1D580;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL U 1D581;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL V 1D582;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL W 1D583;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL X 1D584;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Y 1D585;AL # MATHEMATICAL BOLD FRAKTUR CAPITAL Z 1D586;AL # MATHEMATICAL BOLD FRAKTUR SMALL A 1D587;AL # MATHEMATICAL BOLD FRAKTUR SMALL B 1D588;AL # MATHEMATICAL BOLD FRAKTUR SMALL C 1D589;AL # MATHEMATICAL BOLD FRAKTUR SMALL D 1D58A;AL # MATHEMATICAL BOLD FRAKTUR SMALL E 1D58B;AL # MATHEMATICAL BOLD FRAKTUR SMALL F 1D58C;AL # MATHEMATICAL BOLD FRAKTUR SMALL G 1D58D;AL # MATHEMATICAL BOLD FRAKTUR SMALL H 1D58E;AL # MATHEMATICAL BOLD FRAKTUR SMALL I 1D58F;AL # MATHEMATICAL BOLD FRAKTUR SMALL J 1D590;AL # MATHEMATICAL BOLD FRAKTUR SMALL K 1D591;AL # MATHEMATICAL BOLD FRAKTUR SMALL L 1D592;AL # MATHEMATICAL BOLD FRAKTUR SMALL M 1D593;AL # MATHEMATICAL BOLD FRAKTUR SMALL N 1D594;AL # MATHEMATICAL BOLD FRAKTUR SMALL O 1D595;AL # MATHEMATICAL BOLD FRAKTUR SMALL P 1D596;AL # MATHEMATICAL BOLD FRAKTUR SMALL Q 1D597;AL # MATHEMATICAL BOLD FRAKTUR SMALL R 1D598;AL # MATHEMATICAL BOLD FRAKTUR SMALL S 1D599;AL # MATHEMATICAL BOLD FRAKTUR SMALL T 1D59A;AL # MATHEMATICAL BOLD FRAKTUR SMALL U 1D59B;AL # MATHEMATICAL BOLD FRAKTUR SMALL V 1D59C;AL # MATHEMATICAL BOLD FRAKTUR SMALL W 1D59D;AL # MATHEMATICAL BOLD FRAKTUR SMALL X 1D59E;AL # MATHEMATICAL BOLD FRAKTUR SMALL Y 1D59F;AL # MATHEMATICAL BOLD FRAKTUR SMALL Z 1D5A0;AL # MATHEMATICAL SANS-SERIF CAPITAL A 1D5A1;AL # MATHEMATICAL SANS-SERIF CAPITAL B 1D5A2;AL # MATHEMATICAL SANS-SERIF CAPITAL C 1D5A3;AL # MATHEMATICAL SANS-SERIF CAPITAL D 1D5A4;AL # MATHEMATICAL SANS-SERIF CAPITAL E 1D5A5;AL # MATHEMATICAL SANS-SERIF CAPITAL F 1D5A6;AL # MATHEMATICAL SANS-SERIF CAPITAL G 1D5A7;AL # MATHEMATICAL SANS-SERIF CAPITAL H 1D5A8;AL # MATHEMATICAL SANS-SERIF CAPITAL I 1D5A9;AL # MATHEMATICAL SANS-SERIF CAPITAL J 1D5AA;AL # MATHEMATICAL SANS-SERIF CAPITAL K 1D5AB;AL # MATHEMATICAL SANS-SERIF CAPITAL L 1D5AC;AL # MATHEMATICAL SANS-SERIF CAPITAL M 1D5AD;AL # MATHEMATICAL SANS-SERIF CAPITAL N 1D5AE;AL # MATHEMATICAL SANS-SERIF CAPITAL O 1D5AF;AL # MATHEMATICAL SANS-SERIF CAPITAL P 1D5B0;AL # MATHEMATICAL SANS-SERIF CAPITAL Q 1D5B1;AL # MATHEMATICAL SANS-SERIF CAPITAL R 1D5B2;AL # MATHEMATICAL SANS-SERIF CAPITAL S 1D5B3;AL # MATHEMATICAL SANS-SERIF CAPITAL T 1D5B4;AL # MATHEMATICAL SANS-SERIF CAPITAL U 1D5B5;AL # MATHEMATICAL SANS-SERIF CAPITAL V 1D5B6;AL # MATHEMATICAL SANS-SERIF CAPITAL W 1D5B7;AL # MATHEMATICAL SANS-SERIF CAPITAL X 1D5B8;AL # MATHEMATICAL SANS-SERIF CAPITAL Y 1D5B9;AL # MATHEMATICAL SANS-SERIF CAPITAL Z 1D5BA;AL # MATHEMATICAL SANS-SERIF SMALL A 1D5BB;AL # MATHEMATICAL SANS-SERIF SMALL B 1D5BC;AL # MATHEMATICAL SANS-SERIF SMALL C 1D5BD;AL # MATHEMATICAL SANS-SERIF SMALL D 1D5BE;AL # MATHEMATICAL SANS-SERIF SMALL E 1D5BF;AL # MATHEMATICAL SANS-SERIF SMALL F 1D5C0;AL # MATHEMATICAL SANS-SERIF SMALL G 1D5C1;AL # MATHEMATICAL SANS-SERIF SMALL H 1D5C2;AL # MATHEMATICAL SANS-SERIF SMALL I 1D5C3;AL # MATHEMATICAL SANS-SERIF SMALL J 1D5C4;AL # MATHEMATICAL SANS-SERIF SMALL K 1D5C5;AL # MATHEMATICAL SANS-SERIF SMALL L 1D5C6;AL # MATHEMATICAL SANS-SERIF SMALL M 1D5C7;AL # MATHEMATICAL SANS-SERIF SMALL N 1D5C8;AL # MATHEMATICAL SANS-SERIF SMALL O 1D5C9;AL # MATHEMATICAL SANS-SERIF SMALL P 1D5CA;AL # MATHEMATICAL SANS-SERIF SMALL Q 1D5CB;AL # MATHEMATICAL SANS-SERIF SMALL R 1D5CC;AL # MATHEMATICAL SANS-SERIF SMALL S 1D5CD;AL # MATHEMATICAL SANS-SERIF SMALL T 1D5CE;AL # MATHEMATICAL SANS-SERIF SMALL U 1D5CF;AL # MATHEMATICAL SANS-SERIF SMALL V 1D5D0;AL # MATHEMATICAL SANS-SERIF SMALL W 1D5D1;AL # MATHEMATICAL SANS-SERIF SMALL X 1D5D2;AL # MATHEMATICAL SANS-SERIF SMALL Y 1D5D3;AL # MATHEMATICAL SANS-SERIF SMALL Z 1D5D4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL A 1D5D5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL B 1D5D6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL C 1D5D7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL D 1D5D8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL E 1D5D9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL F 1D5DA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL G 1D5DB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL H 1D5DC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL I 1D5DD;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL J 1D5DE;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL K 1D5DF;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL L 1D5E0;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL M 1D5E1;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL N 1D5E2;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL O 1D5E3;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL P 1D5E4;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Q 1D5E5;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL R 1D5E6;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL S 1D5E7;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL T 1D5E8;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL U 1D5E9;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL V 1D5EA;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL W 1D5EB;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL X 1D5EC;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Y 1D5ED;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL Z 1D5EE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL A 1D5EF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL B 1D5F0;AL # MATHEMATICAL SANS-SERIF BOLD SMALL C 1D5F1;AL # MATHEMATICAL SANS-SERIF BOLD SMALL D 1D5F2;AL # MATHEMATICAL SANS-SERIF BOLD SMALL E 1D5F3;AL # MATHEMATICAL SANS-SERIF BOLD SMALL F 1D5F4;AL # MATHEMATICAL SANS-SERIF BOLD SMALL G 1D5F5;AL # MATHEMATICAL SANS-SERIF BOLD SMALL H 1D5F6;AL # MATHEMATICAL SANS-SERIF BOLD SMALL I 1D5F7;AL # MATHEMATICAL SANS-SERIF BOLD SMALL J 1D5F8;AL # MATHEMATICAL SANS-SERIF BOLD SMALL K 1D5F9;AL # MATHEMATICAL SANS-SERIF BOLD SMALL L 1D5FA;AL # MATHEMATICAL SANS-SERIF BOLD SMALL M 1D5FB;AL # MATHEMATICAL SANS-SERIF BOLD SMALL N 1D5FC;AL # MATHEMATICAL SANS-SERIF BOLD SMALL O 1D5FD;AL # MATHEMATICAL SANS-SERIF BOLD SMALL P 1D5FE;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Q 1D5FF;AL # MATHEMATICAL SANS-SERIF BOLD SMALL R 1D600;AL # MATHEMATICAL SANS-SERIF BOLD SMALL S 1D601;AL # MATHEMATICAL SANS-SERIF BOLD SMALL T 1D602;AL # MATHEMATICAL SANS-SERIF BOLD SMALL U 1D603;AL # MATHEMATICAL SANS-SERIF BOLD SMALL V 1D604;AL # MATHEMATICAL SANS-SERIF BOLD SMALL W 1D605;AL # MATHEMATICAL SANS-SERIF BOLD SMALL X 1D606;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Y 1D607;AL # MATHEMATICAL SANS-SERIF BOLD SMALL Z 1D608;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL A 1D609;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL B 1D60A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL C 1D60B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL D 1D60C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL E 1D60D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL F 1D60E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL G 1D60F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL H 1D610;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL I 1D611;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL J 1D612;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL K 1D613;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL L 1D614;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL M 1D615;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL N 1D616;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL O 1D617;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL P 1D618;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q 1D619;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL R 1D61A;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL S 1D61B;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL T 1D61C;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL U 1D61D;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL V 1D61E;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL W 1D61F;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL X 1D620;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y 1D621;AL # MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z 1D622;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL A 1D623;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL B 1D624;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL C 1D625;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL D 1D626;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL E 1D627;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL F 1D628;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL G 1D629;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL H 1D62A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL I 1D62B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL J 1D62C;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL K 1D62D;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL L 1D62E;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL M 1D62F;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL N 1D630;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL O 1D631;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL P 1D632;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Q 1D633;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL R 1D634;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL S 1D635;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL T 1D636;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL U 1D637;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL V 1D638;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL W 1D639;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL X 1D63A;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Y 1D63B;AL # MATHEMATICAL SANS-SERIF ITALIC SMALL Z 1D63C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A 1D63D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B 1D63E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C 1D63F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D 1D640;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E 1D641;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F 1D642;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G 1D643;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H 1D644;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I 1D645;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J 1D646;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K 1D647;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L 1D648;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M 1D649;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N 1D64A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O 1D64B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P 1D64C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q 1D64D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R 1D64E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S 1D64F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T 1D650;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U 1D651;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V 1D652;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W 1D653;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X 1D654;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y 1D655;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z 1D656;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A 1D657;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B 1D658;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C 1D659;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D 1D65A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E 1D65B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F 1D65C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G 1D65D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H 1D65E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I 1D65F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J 1D660;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K 1D661;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L 1D662;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M 1D663;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N 1D664;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O 1D665;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P 1D666;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q 1D667;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R 1D668;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S 1D669;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T 1D66A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U 1D66B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V 1D66C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W 1D66D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X 1D66E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y 1D66F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z 1D670;AL # MATHEMATICAL MONOSPACE CAPITAL A 1D671;AL # MATHEMATICAL MONOSPACE CAPITAL B 1D672;AL # MATHEMATICAL MONOSPACE CAPITAL C 1D673;AL # MATHEMATICAL MONOSPACE CAPITAL D 1D674;AL # MATHEMATICAL MONOSPACE CAPITAL E 1D675;AL # MATHEMATICAL MONOSPACE CAPITAL F 1D676;AL # MATHEMATICAL MONOSPACE CAPITAL G 1D677;AL # MATHEMATICAL MONOSPACE CAPITAL H 1D678;AL # MATHEMATICAL MONOSPACE CAPITAL I 1D679;AL # MATHEMATICAL MONOSPACE CAPITAL J 1D67A;AL # MATHEMATICAL MONOSPACE CAPITAL K 1D67B;AL # MATHEMATICAL MONOSPACE CAPITAL L 1D67C;AL # MATHEMATICAL MONOSPACE CAPITAL M 1D67D;AL # MATHEMATICAL MONOSPACE CAPITAL N 1D67E;AL # MATHEMATICAL MONOSPACE CAPITAL O 1D67F;AL # MATHEMATICAL MONOSPACE CAPITAL P 1D680;AL # MATHEMATICAL MONOSPACE CAPITAL Q 1D681;AL # MATHEMATICAL MONOSPACE CAPITAL R 1D682;AL # MATHEMATICAL MONOSPACE CAPITAL S 1D683;AL # MATHEMATICAL MONOSPACE CAPITAL T 1D684;AL # MATHEMATICAL MONOSPACE CAPITAL U 1D685;AL # MATHEMATICAL MONOSPACE CAPITAL V 1D686;AL # MATHEMATICAL MONOSPACE CAPITAL W 1D687;AL # MATHEMATICAL MONOSPACE CAPITAL X 1D688;AL # MATHEMATICAL MONOSPACE CAPITAL Y 1D689;AL # MATHEMATICAL MONOSPACE CAPITAL Z 1D68A;AL # MATHEMATICAL MONOSPACE SMALL A 1D68B;AL # MATHEMATICAL MONOSPACE SMALL B 1D68C;AL # MATHEMATICAL MONOSPACE SMALL C 1D68D;AL # MATHEMATICAL MONOSPACE SMALL D 1D68E;AL # MATHEMATICAL MONOSPACE SMALL E 1D68F;AL # MATHEMATICAL MONOSPACE SMALL F 1D690;AL # MATHEMATICAL MONOSPACE SMALL G 1D691;AL # MATHEMATICAL MONOSPACE SMALL H 1D692;AL # MATHEMATICAL MONOSPACE SMALL I 1D693;AL # MATHEMATICAL MONOSPACE SMALL J 1D694;AL # MATHEMATICAL MONOSPACE SMALL K 1D695;AL # MATHEMATICAL MONOSPACE SMALL L 1D696;AL # MATHEMATICAL MONOSPACE SMALL M 1D697;AL # MATHEMATICAL MONOSPACE SMALL N 1D698;AL # MATHEMATICAL MONOSPACE SMALL O 1D699;AL # MATHEMATICAL MONOSPACE SMALL P 1D69A;AL # MATHEMATICAL MONOSPACE SMALL Q 1D69B;AL # MATHEMATICAL MONOSPACE SMALL R 1D69C;AL # MATHEMATICAL MONOSPACE SMALL S 1D69D;AL # MATHEMATICAL MONOSPACE SMALL T 1D69E;AL # MATHEMATICAL MONOSPACE SMALL U 1D69F;AL # MATHEMATICAL MONOSPACE SMALL V 1D6A0;AL # MATHEMATICAL MONOSPACE SMALL W 1D6A1;AL # MATHEMATICAL MONOSPACE SMALL X 1D6A2;AL # MATHEMATICAL MONOSPACE SMALL Y 1D6A3;AL # MATHEMATICAL MONOSPACE SMALL Z 1D6A8;AL # MATHEMATICAL BOLD CAPITAL ALPHA 1D6A9;AL # MATHEMATICAL BOLD CAPITAL BETA 1D6AA;AL # MATHEMATICAL BOLD CAPITAL GAMMA 1D6AB;AL # MATHEMATICAL BOLD CAPITAL DELTA 1D6AC;AL # MATHEMATICAL BOLD CAPITAL EPSILON 1D6AD;AL # MATHEMATICAL BOLD CAPITAL ZETA 1D6AE;AL # MATHEMATICAL BOLD CAPITAL ETA 1D6AF;AL # MATHEMATICAL BOLD CAPITAL THETA 1D6B0;AL # MATHEMATICAL BOLD CAPITAL IOTA 1D6B1;AL # MATHEMATICAL BOLD CAPITAL KAPPA 1D6B2;AL # MATHEMATICAL BOLD CAPITAL LAMDA 1D6B3;AL # MATHEMATICAL BOLD CAPITAL MU 1D6B4;AL # MATHEMATICAL BOLD CAPITAL NU 1D6B5;AL # MATHEMATICAL BOLD CAPITAL XI 1D6B6;AL # MATHEMATICAL BOLD CAPITAL OMICRON 1D6B7;AL # MATHEMATICAL BOLD CAPITAL PI 1D6B8;AL # MATHEMATICAL BOLD CAPITAL RHO 1D6B9;AL # MATHEMATICAL BOLD CAPITAL THETA SYMBOL 1D6BA;AL # MATHEMATICAL BOLD CAPITAL SIGMA 1D6BB;AL # MATHEMATICAL BOLD CAPITAL TAU 1D6BC;AL # MATHEMATICAL BOLD CAPITAL UPSILON 1D6BD;AL # MATHEMATICAL BOLD CAPITAL PHI 1D6BE;AL # MATHEMATICAL BOLD CAPITAL CHI 1D6BF;AL # MATHEMATICAL BOLD CAPITAL PSI 1D6C0;AL # MATHEMATICAL BOLD CAPITAL OMEGA 1D6C1;AL # MATHEMATICAL BOLD NABLA 1D6C2;AL # MATHEMATICAL BOLD SMALL ALPHA 1D6C3;AL # MATHEMATICAL BOLD SMALL BETA 1D6C4;AL # MATHEMATICAL BOLD SMALL GAMMA 1D6C5;AL # MATHEMATICAL BOLD SMALL DELTA 1D6C6;AL # MATHEMATICAL BOLD SMALL EPSILON 1D6C7;AL # MATHEMATICAL BOLD SMALL ZETA 1D6C8;AL # MATHEMATICAL BOLD SMALL ETA 1D6C9;AL # MATHEMATICAL BOLD SMALL THETA 1D6CA;AL # MATHEMATICAL BOLD SMALL IOTA 1D6CB;AL # MATHEMATICAL BOLD SMALL KAPPA 1D6CC;AL # MATHEMATICAL BOLD SMALL LAMDA 1D6CD;AL # MATHEMATICAL BOLD SMALL MU 1D6CE;AL # MATHEMATICAL BOLD SMALL NU 1D6CF;AL # MATHEMATICAL BOLD SMALL XI 1D6D0;AL # MATHEMATICAL BOLD SMALL OMICRON 1D6D1;AL # MATHEMATICAL BOLD SMALL PI 1D6D2;AL # MATHEMATICAL BOLD SMALL RHO 1D6D3;AL # MATHEMATICAL BOLD SMALL FINAL SIGMA 1D6D4;AL # MATHEMATICAL BOLD SMALL SIGMA 1D6D5;AL # MATHEMATICAL BOLD SMALL TAU 1D6D6;AL # MATHEMATICAL BOLD SMALL UPSILON 1D6D7;AL # MATHEMATICAL BOLD SMALL PHI 1D6D8;AL # MATHEMATICAL BOLD SMALL CHI 1D6D9;AL # MATHEMATICAL BOLD SMALL PSI 1D6DA;AL # MATHEMATICAL BOLD SMALL OMEGA 1D6DB;AL # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL 1D6DC;AL # MATHEMATICAL BOLD EPSILON SYMBOL 1D6DD;AL # MATHEMATICAL BOLD THETA SYMBOL 1D6DE;AL # MATHEMATICAL BOLD KAPPA SYMBOL 1D6DF;AL # MATHEMATICAL BOLD PHI SYMBOL 1D6E0;AL # MATHEMATICAL BOLD RHO SYMBOL 1D6E1;AL # MATHEMATICAL BOLD PI SYMBOL 1D6E2;AL # MATHEMATICAL ITALIC CAPITAL ALPHA 1D6E3;AL # MATHEMATICAL ITALIC CAPITAL BETA 1D6E4;AL # MATHEMATICAL ITALIC CAPITAL GAMMA 1D6E5;AL # MATHEMATICAL ITALIC CAPITAL DELTA 1D6E6;AL # MATHEMATICAL ITALIC CAPITAL EPSILON 1D6E7;AL # MATHEMATICAL ITALIC CAPITAL ZETA 1D6E8;AL # MATHEMATICAL ITALIC CAPITAL ETA 1D6E9;AL # MATHEMATICAL ITALIC CAPITAL THETA 1D6EA;AL # MATHEMATICAL ITALIC CAPITAL IOTA 1D6EB;AL # MATHEMATICAL ITALIC CAPITAL KAPPA 1D6EC;AL # MATHEMATICAL ITALIC CAPITAL LAMDA 1D6ED;AL # MATHEMATICAL ITALIC CAPITAL MU 1D6EE;AL # MATHEMATICAL ITALIC CAPITAL NU 1D6EF;AL # MATHEMATICAL ITALIC CAPITAL XI 1D6F0;AL # MATHEMATICAL ITALIC CAPITAL OMICRON 1D6F1;AL # MATHEMATICAL ITALIC CAPITAL PI 1D6F2;AL # MATHEMATICAL ITALIC CAPITAL RHO 1D6F3;AL # MATHEMATICAL ITALIC CAPITAL THETA SYMBOL 1D6F4;AL # MATHEMATICAL ITALIC CAPITAL SIGMA 1D6F5;AL # MATHEMATICAL ITALIC CAPITAL TAU 1D6F6;AL # MATHEMATICAL ITALIC CAPITAL UPSILON 1D6F7;AL # MATHEMATICAL ITALIC CAPITAL PHI 1D6F8;AL # MATHEMATICAL ITALIC CAPITAL CHI 1D6F9;AL # MATHEMATICAL ITALIC CAPITAL PSI 1D6FA;AL # MATHEMATICAL ITALIC CAPITAL OMEGA 1D6FB;AL # MATHEMATICAL ITALIC NABLA 1D6FC;AL # MATHEMATICAL ITALIC SMALL ALPHA 1D6FD;AL # MATHEMATICAL ITALIC SMALL BETA 1D6FE;AL # MATHEMATICAL ITALIC SMALL GAMMA 1D6FF;AL # MATHEMATICAL ITALIC SMALL DELTA 1D700;AL # MATHEMATICAL ITALIC SMALL EPSILON 1D701;AL # MATHEMATICAL ITALIC SMALL ZETA 1D702;AL # MATHEMATICAL ITALIC SMALL ETA 1D703;AL # MATHEMATICAL ITALIC SMALL THETA 1D704;AL # MATHEMATICAL ITALIC SMALL IOTA 1D705;AL # MATHEMATICAL ITALIC SMALL KAPPA 1D706;AL # MATHEMATICAL ITALIC SMALL LAMDA 1D707;AL # MATHEMATICAL ITALIC SMALL MU 1D708;AL # MATHEMATICAL ITALIC SMALL NU 1D709;AL # MATHEMATICAL ITALIC SMALL XI 1D70A;AL # MATHEMATICAL ITALIC SMALL OMICRON 1D70B;AL # MATHEMATICAL ITALIC SMALL PI 1D70C;AL # MATHEMATICAL ITALIC SMALL RHO 1D70D;AL # MATHEMATICAL ITALIC SMALL FINAL SIGMA 1D70E;AL # MATHEMATICAL ITALIC SMALL SIGMA 1D70F;AL # MATHEMATICAL ITALIC SMALL TAU 1D710;AL # MATHEMATICAL ITALIC SMALL UPSILON 1D711;AL # MATHEMATICAL ITALIC SMALL PHI 1D712;AL # MATHEMATICAL ITALIC SMALL CHI 1D713;AL # MATHEMATICAL ITALIC SMALL PSI 1D714;AL # MATHEMATICAL ITALIC SMALL OMEGA 1D715;AL # MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL 1D716;AL # MATHEMATICAL ITALIC EPSILON SYMBOL 1D717;AL # MATHEMATICAL ITALIC THETA SYMBOL 1D718;AL # MATHEMATICAL ITALIC KAPPA SYMBOL 1D719;AL # MATHEMATICAL ITALIC PHI SYMBOL 1D71A;AL # MATHEMATICAL ITALIC RHO SYMBOL 1D71B;AL # MATHEMATICAL ITALIC PI SYMBOL 1D71C;AL # MATHEMATICAL BOLD ITALIC CAPITAL ALPHA 1D71D;AL # MATHEMATICAL BOLD ITALIC CAPITAL BETA 1D71E;AL # MATHEMATICAL BOLD ITALIC CAPITAL GAMMA 1D71F;AL # MATHEMATICAL BOLD ITALIC CAPITAL DELTA 1D720;AL # MATHEMATICAL BOLD ITALIC CAPITAL EPSILON 1D721;AL # MATHEMATICAL BOLD ITALIC CAPITAL ZETA 1D722;AL # MATHEMATICAL BOLD ITALIC CAPITAL ETA 1D723;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA 1D724;AL # MATHEMATICAL BOLD ITALIC CAPITAL IOTA 1D725;AL # MATHEMATICAL BOLD ITALIC CAPITAL KAPPA 1D726;AL # MATHEMATICAL BOLD ITALIC CAPITAL LAMDA 1D727;AL # MATHEMATICAL BOLD ITALIC CAPITAL MU 1D728;AL # MATHEMATICAL BOLD ITALIC CAPITAL NU 1D729;AL # MATHEMATICAL BOLD ITALIC CAPITAL XI 1D72A;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMICRON 1D72B;AL # MATHEMATICAL BOLD ITALIC CAPITAL PI 1D72C;AL # MATHEMATICAL BOLD ITALIC CAPITAL RHO 1D72D;AL # MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL 1D72E;AL # MATHEMATICAL BOLD ITALIC CAPITAL SIGMA 1D72F;AL # MATHEMATICAL BOLD ITALIC CAPITAL TAU 1D730;AL # MATHEMATICAL BOLD ITALIC CAPITAL UPSILON 1D731;AL # MATHEMATICAL BOLD ITALIC CAPITAL PHI 1D732;AL # MATHEMATICAL BOLD ITALIC CAPITAL CHI 1D733;AL # MATHEMATICAL BOLD ITALIC CAPITAL PSI 1D734;AL # MATHEMATICAL BOLD ITALIC CAPITAL OMEGA 1D735;AL # MATHEMATICAL BOLD ITALIC NABLA 1D736;AL # MATHEMATICAL BOLD ITALIC SMALL ALPHA 1D737;AL # MATHEMATICAL BOLD ITALIC SMALL BETA 1D738;AL # MATHEMATICAL BOLD ITALIC SMALL GAMMA 1D739;AL # MATHEMATICAL BOLD ITALIC SMALL DELTA 1D73A;AL # MATHEMATICAL BOLD ITALIC SMALL EPSILON 1D73B;AL # MATHEMATICAL BOLD ITALIC SMALL ZETA 1D73C;AL # MATHEMATICAL BOLD ITALIC SMALL ETA 1D73D;AL # MATHEMATICAL BOLD ITALIC SMALL THETA 1D73E;AL # MATHEMATICAL BOLD ITALIC SMALL IOTA 1D73F;AL # MATHEMATICAL BOLD ITALIC SMALL KAPPA 1D740;AL # MATHEMATICAL BOLD ITALIC SMALL LAMDA 1D741;AL # MATHEMATICAL BOLD ITALIC SMALL MU 1D742;AL # MATHEMATICAL BOLD ITALIC SMALL NU 1D743;AL # MATHEMATICAL BOLD ITALIC SMALL XI 1D744;AL # MATHEMATICAL BOLD ITALIC SMALL OMICRON 1D745;AL # MATHEMATICAL BOLD ITALIC SMALL PI 1D746;AL # MATHEMATICAL BOLD ITALIC SMALL RHO 1D747;AL # MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA 1D748;AL # MATHEMATICAL BOLD ITALIC SMALL SIGMA 1D749;AL # MATHEMATICAL BOLD ITALIC SMALL TAU 1D74A;AL # MATHEMATICAL BOLD ITALIC SMALL UPSILON 1D74B;AL # MATHEMATICAL BOLD ITALIC SMALL PHI 1D74C;AL # MATHEMATICAL BOLD ITALIC SMALL CHI 1D74D;AL # MATHEMATICAL BOLD ITALIC SMALL PSI 1D74E;AL # MATHEMATICAL BOLD ITALIC SMALL OMEGA 1D74F;AL # MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL 1D750;AL # MATHEMATICAL BOLD ITALIC EPSILON SYMBOL 1D751;AL # MATHEMATICAL BOLD ITALIC THETA SYMBOL 1D752;AL # MATHEMATICAL BOLD ITALIC KAPPA SYMBOL 1D753;AL # MATHEMATICAL BOLD ITALIC PHI SYMBOL 1D754;AL # MATHEMATICAL BOLD ITALIC RHO SYMBOL 1D755;AL # MATHEMATICAL BOLD ITALIC PI SYMBOL 1D756;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA 1D757;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA 1D758;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA 1D759;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA 1D75A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON 1D75B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA 1D75C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA 1D75D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA 1D75E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA 1D75F;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA 1D760;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA 1D761;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL MU 1D762;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL NU 1D763;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL XI 1D764;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON 1D765;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PI 1D766;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO 1D767;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL 1D768;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA 1D769;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU 1D76A;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON 1D76B;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI 1D76C;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI 1D76D;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI 1D76E;AL # MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA 1D76F;AL # MATHEMATICAL SANS-SERIF BOLD NABLA 1D770;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA 1D771;AL # MATHEMATICAL SANS-SERIF BOLD SMALL BETA 1D772;AL # MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA 1D773;AL # MATHEMATICAL SANS-SERIF BOLD SMALL DELTA 1D774;AL # MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON 1D775;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ZETA 1D776;AL # MATHEMATICAL SANS-SERIF BOLD SMALL ETA 1D777;AL # MATHEMATICAL SANS-SERIF BOLD SMALL THETA 1D778;AL # MATHEMATICAL SANS-SERIF BOLD SMALL IOTA 1D779;AL # MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA 1D77A;AL # MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA 1D77B;AL # MATHEMATICAL SANS-SERIF BOLD SMALL MU 1D77C;AL # MATHEMATICAL SANS-SERIF BOLD SMALL NU 1D77D;AL # MATHEMATICAL SANS-SERIF BOLD SMALL XI 1D77E;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON 1D77F;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PI 1D780;AL # MATHEMATICAL SANS-SERIF BOLD SMALL RHO 1D781;AL # MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA 1D782;AL # MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA 1D783;AL # MATHEMATICAL SANS-SERIF BOLD SMALL TAU 1D784;AL # MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON 1D785;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PHI 1D786;AL # MATHEMATICAL SANS-SERIF BOLD SMALL CHI 1D787;AL # MATHEMATICAL SANS-SERIF BOLD SMALL PSI 1D788;AL # MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA 1D789;AL # MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL 1D78A;AL # MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL 1D78B;AL # MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL 1D78C;AL # MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL 1D78D;AL # MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL 1D78E;AL # MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL 1D78F;AL # MATHEMATICAL SANS-SERIF BOLD PI SYMBOL 1D790;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA 1D791;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA 1D792;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA 1D793;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA 1D794;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON 1D795;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA 1D796;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA 1D797;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA 1D798;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA 1D799;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA 1D79A;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA 1D79B;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU 1D79C;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU 1D79D;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI 1D79E;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON 1D79F;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI 1D7A0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO 1D7A1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL 1D7A2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA 1D7A3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU 1D7A4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON 1D7A5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI 1D7A6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI 1D7A7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI 1D7A8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA 1D7A9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA 1D7AA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA 1D7AB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA 1D7AC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA 1D7AD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA 1D7AE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON 1D7AF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA 1D7B0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA 1D7B1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA 1D7B2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA 1D7B3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA 1D7B4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA 1D7B5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU 1D7B6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU 1D7B7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI 1D7B8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON 1D7B9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI 1D7BA;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO 1D7BB;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA 1D7BC;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA 1D7BD;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU 1D7BE;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON 1D7BF;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI 1D7C0;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI 1D7C1;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI 1D7C2;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA 1D7C3;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL 1D7C4;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL 1D7C5;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL 1D7C6;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL 1D7C7;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL 1D7C8;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL 1D7C9;AL # MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL 1D7CE;NU # MATHEMATICAL BOLD DIGIT ZERO 1D7CF;NU # MATHEMATICAL BOLD DIGIT ONE 1D7D0;NU # MATHEMATICAL BOLD DIGIT TWO 1D7D1;NU # MATHEMATICAL BOLD DIGIT THREE 1D7D2;NU # MATHEMATICAL BOLD DIGIT FOUR 1D7D3;NU # MATHEMATICAL BOLD DIGIT FIVE 1D7D4;NU # MATHEMATICAL BOLD DIGIT SIX 1D7D5;NU # MATHEMATICAL BOLD DIGIT SEVEN 1D7D6;NU # MATHEMATICAL BOLD DIGIT EIGHT 1D7D7;NU # MATHEMATICAL BOLD DIGIT NINE 1D7D8;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO 1D7D9;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT ONE 1D7DA;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT TWO 1D7DB;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT THREE 1D7DC;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR 1D7DD;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE 1D7DE;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SIX 1D7DF;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN 1D7E0;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT 1D7E1;NU # MATHEMATICAL DOUBLE-STRUCK DIGIT NINE 1D7E2;NU # MATHEMATICAL SANS-SERIF DIGIT ZERO 1D7E3;NU # MATHEMATICAL SANS-SERIF DIGIT ONE 1D7E4;NU # MATHEMATICAL SANS-SERIF DIGIT TWO 1D7E5;NU # MATHEMATICAL SANS-SERIF DIGIT THREE 1D7E6;NU # MATHEMATICAL SANS-SERIF DIGIT FOUR 1D7E7;NU # MATHEMATICAL SANS-SERIF DIGIT FIVE 1D7E8;NU # MATHEMATICAL SANS-SERIF DIGIT SIX 1D7E9;NU # MATHEMATICAL SANS-SERIF DIGIT SEVEN 1D7EA;NU # MATHEMATICAL SANS-SERIF DIGIT EIGHT 1D7EB;NU # MATHEMATICAL SANS-SERIF DIGIT NINE 1D7EC;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO 1D7ED;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT ONE 1D7EE;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT TWO 1D7EF;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT THREE 1D7F0;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR 1D7F1;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE 1D7F2;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SIX 1D7F3;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN 1D7F4;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT 1D7F5;NU # MATHEMATICAL SANS-SERIF BOLD DIGIT NINE 1D7F6;NU # MATHEMATICAL MONOSPACE DIGIT ZERO 1D7F7;NU # MATHEMATICAL MONOSPACE DIGIT ONE 1D7F8;NU # MATHEMATICAL MONOSPACE DIGIT TWO 1D7F9;NU # MATHEMATICAL MONOSPACE DIGIT THREE 1D7FA;NU # MATHEMATICAL MONOSPACE DIGIT FOUR 1D7FB;NU # MATHEMATICAL MONOSPACE DIGIT FIVE 1D7FC;NU # MATHEMATICAL MONOSPACE DIGIT SIX 1D7FD;NU # MATHEMATICAL MONOSPACE DIGIT SEVEN 1D7FE;NU # MATHEMATICAL MONOSPACE DIGIT EIGHT 1D7FF;NU # MATHEMATICAL MONOSPACE DIGIT NINE 20000..2A6D6;ID # .. 2F800;ID # CJK COMPATIBILITY IDEOGRAPH-2F800 2F801;ID # CJK COMPATIBILITY IDEOGRAPH-2F801 2F802;ID # CJK COMPATIBILITY IDEOGRAPH-2F802 2F803;ID # CJK COMPATIBILITY IDEOGRAPH-2F803 2F804;ID # CJK COMPATIBILITY IDEOGRAPH-2F804 2F805;ID # CJK COMPATIBILITY IDEOGRAPH-2F805 2F806;ID # CJK COMPATIBILITY IDEOGRAPH-2F806 2F807;ID # CJK COMPATIBILITY IDEOGRAPH-2F807 2F808;ID # CJK COMPATIBILITY IDEOGRAPH-2F808 2F809;ID # CJK COMPATIBILITY IDEOGRAPH-2F809 2F80A;ID # CJK COMPATIBILITY IDEOGRAPH-2F80A 2F80B;ID # CJK COMPATIBILITY IDEOGRAPH-2F80B 2F80C;ID # CJK COMPATIBILITY IDEOGRAPH-2F80C 2F80D;ID # CJK COMPATIBILITY IDEOGRAPH-2F80D 2F80E;ID # CJK COMPATIBILITY IDEOGRAPH-2F80E 2F80F;ID # CJK COMPATIBILITY IDEOGRAPH-2F80F 2F810;ID # CJK COMPATIBILITY IDEOGRAPH-2F810 2F811;ID # CJK COMPATIBILITY IDEOGRAPH-2F811 2F812;ID # CJK COMPATIBILITY IDEOGRAPH-2F812 2F813;ID # CJK COMPATIBILITY IDEOGRAPH-2F813 2F814;ID # CJK COMPATIBILITY IDEOGRAPH-2F814 2F815;ID # CJK COMPATIBILITY IDEOGRAPH-2F815 2F816;ID # CJK COMPATIBILITY IDEOGRAPH-2F816 2F817;ID # CJK COMPATIBILITY IDEOGRAPH-2F817 2F818;ID # CJK COMPATIBILITY IDEOGRAPH-2F818 2F819;ID # CJK COMPATIBILITY IDEOGRAPH-2F819 2F81A;ID # CJK COMPATIBILITY IDEOGRAPH-2F81A 2F81B;ID # CJK COMPATIBILITY IDEOGRAPH-2F81B 2F81C;ID # CJK COMPATIBILITY IDEOGRAPH-2F81C 2F81D;ID # CJK COMPATIBILITY IDEOGRAPH-2F81D 2F81E;ID # CJK COMPATIBILITY IDEOGRAPH-2F81E 2F81F;ID # CJK COMPATIBILITY IDEOGRAPH-2F81F 2F820;ID # CJK COMPATIBILITY IDEOGRAPH-2F820 2F821;ID # CJK COMPATIBILITY IDEOGRAPH-2F821 2F822;ID # CJK COMPATIBILITY IDEOGRAPH-2F822 2F823;ID # CJK COMPATIBILITY IDEOGRAPH-2F823 2F824;ID # CJK COMPATIBILITY IDEOGRAPH-2F824 2F825;ID # CJK COMPATIBILITY IDEOGRAPH-2F825 2F826;ID # CJK COMPATIBILITY IDEOGRAPH-2F826 2F827;ID # CJK COMPATIBILITY IDEOGRAPH-2F827 2F828;ID # CJK COMPATIBILITY IDEOGRAPH-2F828 2F829;ID # CJK COMPATIBILITY IDEOGRAPH-2F829 2F82A;ID # CJK COMPATIBILITY IDEOGRAPH-2F82A 2F82B;ID # CJK COMPATIBILITY IDEOGRAPH-2F82B 2F82C;ID # CJK COMPATIBILITY IDEOGRAPH-2F82C 2F82D;ID # CJK COMPATIBILITY IDEOGRAPH-2F82D 2F82E;ID # CJK COMPATIBILITY IDEOGRAPH-2F82E 2F82F;ID # CJK COMPATIBILITY IDEOGRAPH-2F82F 2F830;ID # CJK COMPATIBILITY IDEOGRAPH-2F830 2F831;ID # CJK COMPATIBILITY IDEOGRAPH-2F831 2F832;ID # CJK COMPATIBILITY IDEOGRAPH-2F832 2F833;ID # CJK COMPATIBILITY IDEOGRAPH-2F833 2F834;ID # CJK COMPATIBILITY IDEOGRAPH-2F834 2F835;ID # CJK COMPATIBILITY IDEOGRAPH-2F835 2F836;ID # CJK COMPATIBILITY IDEOGRAPH-2F836 2F837;ID # CJK COMPATIBILITY IDEOGRAPH-2F837 2F838;ID # CJK COMPATIBILITY IDEOGRAPH-2F838 2F839;ID # CJK COMPATIBILITY IDEOGRAPH-2F839 2F83A;ID # CJK COMPATIBILITY IDEOGRAPH-2F83A 2F83B;ID # CJK COMPATIBILITY IDEOGRAPH-2F83B 2F83C;ID # CJK COMPATIBILITY IDEOGRAPH-2F83C 2F83D;ID # CJK COMPATIBILITY IDEOGRAPH-2F83D 2F83E;ID # CJK COMPATIBILITY IDEOGRAPH-2F83E 2F83F;ID # CJK COMPATIBILITY IDEOGRAPH-2F83F 2F840;ID # CJK COMPATIBILITY IDEOGRAPH-2F840 2F841;ID # CJK COMPATIBILITY IDEOGRAPH-2F841 2F842;ID # CJK COMPATIBILITY IDEOGRAPH-2F842 2F843;ID # CJK COMPATIBILITY IDEOGRAPH-2F843 2F844;ID # CJK COMPATIBILITY IDEOGRAPH-2F844 2F845;ID # CJK COMPATIBILITY IDEOGRAPH-2F845 2F846;ID # CJK COMPATIBILITY IDEOGRAPH-2F846 2F847;ID # CJK COMPATIBILITY IDEOGRAPH-2F847 2F848;ID # CJK COMPATIBILITY IDEOGRAPH-2F848 2F849;ID # CJK COMPATIBILITY IDEOGRAPH-2F849 2F84A;ID # CJK COMPATIBILITY IDEOGRAPH-2F84A 2F84B;ID # CJK COMPATIBILITY IDEOGRAPH-2F84B 2F84C;ID # CJK COMPATIBILITY IDEOGRAPH-2F84C 2F84D;ID # CJK COMPATIBILITY IDEOGRAPH-2F84D 2F84E;ID # CJK COMPATIBILITY IDEOGRAPH-2F84E 2F84F;ID # CJK COMPATIBILITY IDEOGRAPH-2F84F 2F850;ID # CJK COMPATIBILITY IDEOGRAPH-2F850 2F851;ID # CJK COMPATIBILITY IDEOGRAPH-2F851 2F852;ID # CJK COMPATIBILITY IDEOGRAPH-2F852 2F853;ID # CJK COMPATIBILITY IDEOGRAPH-2F853 2F854;ID # CJK COMPATIBILITY IDEOGRAPH-2F854 2F855;ID # CJK COMPATIBILITY IDEOGRAPH-2F855 2F856;ID # CJK COMPATIBILITY IDEOGRAPH-2F856 2F857;ID # CJK COMPATIBILITY IDEOGRAPH-2F857 2F858;ID # CJK COMPATIBILITY IDEOGRAPH-2F858 2F859;ID # CJK COMPATIBILITY IDEOGRAPH-2F859 2F85A;ID # CJK COMPATIBILITY IDEOGRAPH-2F85A 2F85B;ID # CJK COMPATIBILITY IDEOGRAPH-2F85B 2F85C;ID # CJK COMPATIBILITY IDEOGRAPH-2F85C 2F85D;ID # CJK COMPATIBILITY IDEOGRAPH-2F85D 2F85E;ID # CJK COMPATIBILITY IDEOGRAPH-2F85E 2F85F;ID # CJK COMPATIBILITY IDEOGRAPH-2F85F 2F860;ID # CJK COMPATIBILITY IDEOGRAPH-2F860 2F861;ID # CJK COMPATIBILITY IDEOGRAPH-2F861 2F862;ID # CJK COMPATIBILITY IDEOGRAPH-2F862 2F863;ID # CJK COMPATIBILITY IDEOGRAPH-2F863 2F864;ID # CJK COMPATIBILITY IDEOGRAPH-2F864 2F865;ID # CJK COMPATIBILITY IDEOGRAPH-2F865 2F866;ID # CJK COMPATIBILITY IDEOGRAPH-2F866 2F867;ID # CJK COMPATIBILITY IDEOGRAPH-2F867 2F868;ID # CJK COMPATIBILITY IDEOGRAPH-2F868 2F869;ID # CJK COMPATIBILITY IDEOGRAPH-2F869 2F86A;ID # CJK COMPATIBILITY IDEOGRAPH-2F86A 2F86B;ID # CJK COMPATIBILITY IDEOGRAPH-2F86B 2F86C;ID # CJK COMPATIBILITY IDEOGRAPH-2F86C 2F86D;ID # CJK COMPATIBILITY IDEOGRAPH-2F86D 2F86E;ID # CJK COMPATIBILITY IDEOGRAPH-2F86E 2F86F;ID # CJK COMPATIBILITY IDEOGRAPH-2F86F 2F870;ID # CJK COMPATIBILITY IDEOGRAPH-2F870 2F871;ID # CJK COMPATIBILITY IDEOGRAPH-2F871 2F872;ID # CJK COMPATIBILITY IDEOGRAPH-2F872 2F873;ID # CJK COMPATIBILITY IDEOGRAPH-2F873 2F874;ID # CJK COMPATIBILITY IDEOGRAPH-2F874 2F875;ID # CJK COMPATIBILITY IDEOGRAPH-2F875 2F876;ID # CJK COMPATIBILITY IDEOGRAPH-2F876 2F877;ID # CJK COMPATIBILITY IDEOGRAPH-2F877 2F878;ID # CJK COMPATIBILITY IDEOGRAPH-2F878 2F879;ID # CJK COMPATIBILITY IDEOGRAPH-2F879 2F87A;ID # CJK COMPATIBILITY IDEOGRAPH-2F87A 2F87B;ID # CJK COMPATIBILITY IDEOGRAPH-2F87B 2F87C;ID # CJK COMPATIBILITY IDEOGRAPH-2F87C 2F87D;ID # CJK COMPATIBILITY IDEOGRAPH-2F87D 2F87E;ID # CJK COMPATIBILITY IDEOGRAPH-2F87E 2F87F;ID # CJK COMPATIBILITY IDEOGRAPH-2F87F 2F880;ID # CJK COMPATIBILITY IDEOGRAPH-2F880 2F881;ID # CJK COMPATIBILITY IDEOGRAPH-2F881 2F882;ID # CJK COMPATIBILITY IDEOGRAPH-2F882 2F883;ID # CJK COMPATIBILITY IDEOGRAPH-2F883 2F884;ID # CJK COMPATIBILITY IDEOGRAPH-2F884 2F885;ID # CJK COMPATIBILITY IDEOGRAPH-2F885 2F886;ID # CJK COMPATIBILITY IDEOGRAPH-2F886 2F887;ID # CJK COMPATIBILITY IDEOGRAPH-2F887 2F888;ID # CJK COMPATIBILITY IDEOGRAPH-2F888 2F889;ID # CJK COMPATIBILITY IDEOGRAPH-2F889 2F88A;ID # CJK COMPATIBILITY IDEOGRAPH-2F88A 2F88B;ID # CJK COMPATIBILITY IDEOGRAPH-2F88B 2F88C;ID # CJK COMPATIBILITY IDEOGRAPH-2F88C 2F88D;ID # CJK COMPATIBILITY IDEOGRAPH-2F88D 2F88E;ID # CJK COMPATIBILITY IDEOGRAPH-2F88E 2F88F;ID # CJK COMPATIBILITY IDEOGRAPH-2F88F 2F890;ID # CJK COMPATIBILITY IDEOGRAPH-2F890 2F891;ID # CJK COMPATIBILITY IDEOGRAPH-2F891 2F892;ID # CJK COMPATIBILITY IDEOGRAPH-2F892 2F893;ID # CJK COMPATIBILITY IDEOGRAPH-2F893 2F894;ID # CJK COMPATIBILITY IDEOGRAPH-2F894 2F895;ID # CJK COMPATIBILITY IDEOGRAPH-2F895 2F896;ID # CJK COMPATIBILITY IDEOGRAPH-2F896 2F897;ID # CJK COMPATIBILITY IDEOGRAPH-2F897 2F898;ID # CJK COMPATIBILITY IDEOGRAPH-2F898 2F899;ID # CJK COMPATIBILITY IDEOGRAPH-2F899 2F89A;ID # CJK COMPATIBILITY IDEOGRAPH-2F89A 2F89B;ID # CJK COMPATIBILITY IDEOGRAPH-2F89B 2F89C;ID # CJK COMPATIBILITY IDEOGRAPH-2F89C 2F89D;ID # CJK COMPATIBILITY IDEOGRAPH-2F89D 2F89E;ID # CJK COMPATIBILITY IDEOGRAPH-2F89E 2F89F;ID # CJK COMPATIBILITY IDEOGRAPH-2F89F 2F8A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A0 2F8A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A1 2F8A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A2 2F8A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A3 2F8A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A4 2F8A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A5 2F8A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A6 2F8A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A7 2F8A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A8 2F8A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8A9 2F8AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AA 2F8AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AB 2F8AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AC 2F8AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AD 2F8AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AE 2F8AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8AF 2F8B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B0 2F8B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B1 2F8B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B2 2F8B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B3 2F8B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B4 2F8B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B5 2F8B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B6 2F8B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B7 2F8B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B8 2F8B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8B9 2F8BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BA 2F8BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BB 2F8BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BC 2F8BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BD 2F8BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BE 2F8BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8BF 2F8C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C0 2F8C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C1 2F8C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C2 2F8C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C3 2F8C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C4 2F8C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C5 2F8C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C6 2F8C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C7 2F8C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C8 2F8C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8C9 2F8CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CA 2F8CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CB 2F8CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CC 2F8CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CD 2F8CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CE 2F8CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8CF 2F8D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D0 2F8D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D1 2F8D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D2 2F8D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D3 2F8D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D4 2F8D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D5 2F8D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D6 2F8D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D7 2F8D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D8 2F8D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8D9 2F8DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DA 2F8DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DB 2F8DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DC 2F8DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DD 2F8DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DE 2F8DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8DF 2F8E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E0 2F8E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E1 2F8E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E2 2F8E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E3 2F8E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E4 2F8E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E5 2F8E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E6 2F8E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E7 2F8E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E8 2F8E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8E9 2F8EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EA 2F8EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EB 2F8EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EC 2F8ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F8ED 2F8EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EE 2F8EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8EF 2F8F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F0 2F8F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F1 2F8F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F2 2F8F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F3 2F8F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F4 2F8F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F5 2F8F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F6 2F8F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F7 2F8F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F8 2F8F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F8F9 2F8FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FA 2F8FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FB 2F8FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FC 2F8FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FD 2F8FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FE 2F8FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F8FF 2F900;ID # CJK COMPATIBILITY IDEOGRAPH-2F900 2F901;ID # CJK COMPATIBILITY IDEOGRAPH-2F901 2F902;ID # CJK COMPATIBILITY IDEOGRAPH-2F902 2F903;ID # CJK COMPATIBILITY IDEOGRAPH-2F903 2F904;ID # CJK COMPATIBILITY IDEOGRAPH-2F904 2F905;ID # CJK COMPATIBILITY IDEOGRAPH-2F905 2F906;ID # CJK COMPATIBILITY IDEOGRAPH-2F906 2F907;ID # CJK COMPATIBILITY IDEOGRAPH-2F907 2F908;ID # CJK COMPATIBILITY IDEOGRAPH-2F908 2F909;ID # CJK COMPATIBILITY IDEOGRAPH-2F909 2F90A;ID # CJK COMPATIBILITY IDEOGRAPH-2F90A 2F90B;ID # CJK COMPATIBILITY IDEOGRAPH-2F90B 2F90C;ID # CJK COMPATIBILITY IDEOGRAPH-2F90C 2F90D;ID # CJK COMPATIBILITY IDEOGRAPH-2F90D 2F90E;ID # CJK COMPATIBILITY IDEOGRAPH-2F90E 2F90F;ID # CJK COMPATIBILITY IDEOGRAPH-2F90F 2F910;ID # CJK COMPATIBILITY IDEOGRAPH-2F910 2F911;ID # CJK COMPATIBILITY IDEOGRAPH-2F911 2F912;ID # CJK COMPATIBILITY IDEOGRAPH-2F912 2F913;ID # CJK COMPATIBILITY IDEOGRAPH-2F913 2F914;ID # CJK COMPATIBILITY IDEOGRAPH-2F914 2F915;ID # CJK COMPATIBILITY IDEOGRAPH-2F915 2F916;ID # CJK COMPATIBILITY IDEOGRAPH-2F916 2F917;ID # CJK COMPATIBILITY IDEOGRAPH-2F917 2F918;ID # CJK COMPATIBILITY IDEOGRAPH-2F918 2F919;ID # CJK COMPATIBILITY IDEOGRAPH-2F919 2F91A;ID # CJK COMPATIBILITY IDEOGRAPH-2F91A 2F91B;ID # CJK COMPATIBILITY IDEOGRAPH-2F91B 2F91C;ID # CJK COMPATIBILITY IDEOGRAPH-2F91C 2F91D;ID # CJK COMPATIBILITY IDEOGRAPH-2F91D 2F91E;ID # CJK COMPATIBILITY IDEOGRAPH-2F91E 2F91F;ID # CJK COMPATIBILITY IDEOGRAPH-2F91F 2F920;ID # CJK COMPATIBILITY IDEOGRAPH-2F920 2F921;ID # CJK COMPATIBILITY IDEOGRAPH-2F921 2F922;ID # CJK COMPATIBILITY IDEOGRAPH-2F922 2F923;ID # CJK COMPATIBILITY IDEOGRAPH-2F923 2F924;ID # CJK COMPATIBILITY IDEOGRAPH-2F924 2F925;ID # CJK COMPATIBILITY IDEOGRAPH-2F925 2F926;ID # CJK COMPATIBILITY IDEOGRAPH-2F926 2F927;ID # CJK COMPATIBILITY IDEOGRAPH-2F927 2F928;ID # CJK COMPATIBILITY IDEOGRAPH-2F928 2F929;ID # CJK COMPATIBILITY IDEOGRAPH-2F929 2F92A;ID # CJK COMPATIBILITY IDEOGRAPH-2F92A 2F92B;ID # CJK COMPATIBILITY IDEOGRAPH-2F92B 2F92C;ID # CJK COMPATIBILITY IDEOGRAPH-2F92C 2F92D;ID # CJK COMPATIBILITY IDEOGRAPH-2F92D 2F92E;ID # CJK COMPATIBILITY IDEOGRAPH-2F92E 2F92F;ID # CJK COMPATIBILITY IDEOGRAPH-2F92F 2F930;ID # CJK COMPATIBILITY IDEOGRAPH-2F930 2F931;ID # CJK COMPATIBILITY IDEOGRAPH-2F931 2F932;ID # CJK COMPATIBILITY IDEOGRAPH-2F932 2F933;ID # CJK COMPATIBILITY IDEOGRAPH-2F933 2F934;ID # CJK COMPATIBILITY IDEOGRAPH-2F934 2F935;ID # CJK COMPATIBILITY IDEOGRAPH-2F935 2F936;ID # CJK COMPATIBILITY IDEOGRAPH-2F936 2F937;ID # CJK COMPATIBILITY IDEOGRAPH-2F937 2F938;ID # CJK COMPATIBILITY IDEOGRAPH-2F938 2F939;ID # CJK COMPATIBILITY IDEOGRAPH-2F939 2F93A;ID # CJK COMPATIBILITY IDEOGRAPH-2F93A 2F93B;ID # CJK COMPATIBILITY IDEOGRAPH-2F93B 2F93C;ID # CJK COMPATIBILITY IDEOGRAPH-2F93C 2F93D;ID # CJK COMPATIBILITY IDEOGRAPH-2F93D 2F93E;ID # CJK COMPATIBILITY IDEOGRAPH-2F93E 2F93F;ID # CJK COMPATIBILITY IDEOGRAPH-2F93F 2F940;ID # CJK COMPATIBILITY IDEOGRAPH-2F940 2F941;ID # CJK COMPATIBILITY IDEOGRAPH-2F941 2F942;ID # CJK COMPATIBILITY IDEOGRAPH-2F942 2F943;ID # CJK COMPATIBILITY IDEOGRAPH-2F943 2F944;ID # CJK COMPATIBILITY IDEOGRAPH-2F944 2F945;ID # CJK COMPATIBILITY IDEOGRAPH-2F945 2F946;ID # CJK COMPATIBILITY IDEOGRAPH-2F946 2F947;ID # CJK COMPATIBILITY IDEOGRAPH-2F947 2F948;ID # CJK COMPATIBILITY IDEOGRAPH-2F948 2F949;ID # CJK COMPATIBILITY IDEOGRAPH-2F949 2F94A;ID # CJK COMPATIBILITY IDEOGRAPH-2F94A 2F94B;ID # CJK COMPATIBILITY IDEOGRAPH-2F94B 2F94C;ID # CJK COMPATIBILITY IDEOGRAPH-2F94C 2F94D;ID # CJK COMPATIBILITY IDEOGRAPH-2F94D 2F94E;ID # CJK COMPATIBILITY IDEOGRAPH-2F94E 2F94F;ID # CJK COMPATIBILITY IDEOGRAPH-2F94F 2F950;ID # CJK COMPATIBILITY IDEOGRAPH-2F950 2F951;ID # CJK COMPATIBILITY IDEOGRAPH-2F951 2F952;ID # CJK COMPATIBILITY IDEOGRAPH-2F952 2F953;ID # CJK COMPATIBILITY IDEOGRAPH-2F953 2F954;ID # CJK COMPATIBILITY IDEOGRAPH-2F954 2F955;ID # CJK COMPATIBILITY IDEOGRAPH-2F955 2F956;ID # CJK COMPATIBILITY IDEOGRAPH-2F956 2F957;ID # CJK COMPATIBILITY IDEOGRAPH-2F957 2F958;ID # CJK COMPATIBILITY IDEOGRAPH-2F958 2F959;ID # CJK COMPATIBILITY IDEOGRAPH-2F959 2F95A;ID # CJK COMPATIBILITY IDEOGRAPH-2F95A 2F95B;ID # CJK COMPATIBILITY IDEOGRAPH-2F95B 2F95C;ID # CJK COMPATIBILITY IDEOGRAPH-2F95C 2F95D;ID # CJK COMPATIBILITY IDEOGRAPH-2F95D 2F95E;ID # CJK COMPATIBILITY IDEOGRAPH-2F95E 2F95F;ID # CJK COMPATIBILITY IDEOGRAPH-2F95F 2F960;ID # CJK COMPATIBILITY IDEOGRAPH-2F960 2F961;ID # CJK COMPATIBILITY IDEOGRAPH-2F961 2F962;ID # CJK COMPATIBILITY IDEOGRAPH-2F962 2F963;ID # CJK COMPATIBILITY IDEOGRAPH-2F963 2F964;ID # CJK COMPATIBILITY IDEOGRAPH-2F964 2F965;ID # CJK COMPATIBILITY IDEOGRAPH-2F965 2F966;ID # CJK COMPATIBILITY IDEOGRAPH-2F966 2F967;ID # CJK COMPATIBILITY IDEOGRAPH-2F967 2F968;ID # CJK COMPATIBILITY IDEOGRAPH-2F968 2F969;ID # CJK COMPATIBILITY IDEOGRAPH-2F969 2F96A;ID # CJK COMPATIBILITY IDEOGRAPH-2F96A 2F96B;ID # CJK COMPATIBILITY IDEOGRAPH-2F96B 2F96C;ID # CJK COMPATIBILITY IDEOGRAPH-2F96C 2F96D;ID # CJK COMPATIBILITY IDEOGRAPH-2F96D 2F96E;ID # CJK COMPATIBILITY IDEOGRAPH-2F96E 2F96F;ID # CJK COMPATIBILITY IDEOGRAPH-2F96F 2F970;ID # CJK COMPATIBILITY IDEOGRAPH-2F970 2F971;ID # CJK COMPATIBILITY IDEOGRAPH-2F971 2F972;ID # CJK COMPATIBILITY IDEOGRAPH-2F972 2F973;ID # CJK COMPATIBILITY IDEOGRAPH-2F973 2F974;ID # CJK COMPATIBILITY IDEOGRAPH-2F974 2F975;ID # CJK COMPATIBILITY IDEOGRAPH-2F975 2F976;ID # CJK COMPATIBILITY IDEOGRAPH-2F976 2F977;ID # CJK COMPATIBILITY IDEOGRAPH-2F977 2F978;ID # CJK COMPATIBILITY IDEOGRAPH-2F978 2F979;ID # CJK COMPATIBILITY IDEOGRAPH-2F979 2F97A;ID # CJK COMPATIBILITY IDEOGRAPH-2F97A 2F97B;ID # CJK COMPATIBILITY IDEOGRAPH-2F97B 2F97C;ID # CJK COMPATIBILITY IDEOGRAPH-2F97C 2F97D;ID # CJK COMPATIBILITY IDEOGRAPH-2F97D 2F97E;ID # CJK COMPATIBILITY IDEOGRAPH-2F97E 2F97F;ID # CJK COMPATIBILITY IDEOGRAPH-2F97F 2F980;ID # CJK COMPATIBILITY IDEOGRAPH-2F980 2F981;ID # CJK COMPATIBILITY IDEOGRAPH-2F981 2F982;ID # CJK COMPATIBILITY IDEOGRAPH-2F982 2F983;ID # CJK COMPATIBILITY IDEOGRAPH-2F983 2F984;ID # CJK COMPATIBILITY IDEOGRAPH-2F984 2F985;ID # CJK COMPATIBILITY IDEOGRAPH-2F985 2F986;ID # CJK COMPATIBILITY IDEOGRAPH-2F986 2F987;ID # CJK COMPATIBILITY IDEOGRAPH-2F987 2F988;ID # CJK COMPATIBILITY IDEOGRAPH-2F988 2F989;ID # CJK COMPATIBILITY IDEOGRAPH-2F989 2F98A;ID # CJK COMPATIBILITY IDEOGRAPH-2F98A 2F98B;ID # CJK COMPATIBILITY IDEOGRAPH-2F98B 2F98C;ID # CJK COMPATIBILITY IDEOGRAPH-2F98C 2F98D;ID # CJK COMPATIBILITY IDEOGRAPH-2F98D 2F98E;ID # CJK COMPATIBILITY IDEOGRAPH-2F98E 2F98F;ID # CJK COMPATIBILITY IDEOGRAPH-2F98F 2F990;ID # CJK COMPATIBILITY IDEOGRAPH-2F990 2F991;ID # CJK COMPATIBILITY IDEOGRAPH-2F991 2F992;ID # CJK COMPATIBILITY IDEOGRAPH-2F992 2F993;ID # CJK COMPATIBILITY IDEOGRAPH-2F993 2F994;ID # CJK COMPATIBILITY IDEOGRAPH-2F994 2F995;ID # CJK COMPATIBILITY IDEOGRAPH-2F995 2F996;ID # CJK COMPATIBILITY IDEOGRAPH-2F996 2F997;ID # CJK COMPATIBILITY IDEOGRAPH-2F997 2F998;ID # CJK COMPATIBILITY IDEOGRAPH-2F998 2F999;ID # CJK COMPATIBILITY IDEOGRAPH-2F999 2F99A;ID # CJK COMPATIBILITY IDEOGRAPH-2F99A 2F99B;ID # CJK COMPATIBILITY IDEOGRAPH-2F99B 2F99C;ID # CJK COMPATIBILITY IDEOGRAPH-2F99C 2F99D;ID # CJK COMPATIBILITY IDEOGRAPH-2F99D 2F99E;ID # CJK COMPATIBILITY IDEOGRAPH-2F99E 2F99F;ID # CJK COMPATIBILITY IDEOGRAPH-2F99F 2F9A0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A0 2F9A1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A1 2F9A2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A2 2F9A3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A3 2F9A4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A4 2F9A5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A5 2F9A6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A6 2F9A7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A7 2F9A8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A8 2F9A9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9A9 2F9AA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AA 2F9AB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AB 2F9AC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AC 2F9AD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AD 2F9AE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AE 2F9AF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9AF 2F9B0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B0 2F9B1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B1 2F9B2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B2 2F9B3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B3 2F9B4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B4 2F9B5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B5 2F9B6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B6 2F9B7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B7 2F9B8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B8 2F9B9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9B9 2F9BA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BA 2F9BB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BB 2F9BC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BC 2F9BD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BD 2F9BE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BE 2F9BF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9BF 2F9C0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C0 2F9C1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C1 2F9C2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C2 2F9C3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C3 2F9C4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C4 2F9C5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C5 2F9C6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C6 2F9C7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C7 2F9C8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C8 2F9C9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9C9 2F9CA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CA 2F9CB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CB 2F9CC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CC 2F9CD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CD 2F9CE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CE 2F9CF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9CF 2F9D0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D0 2F9D1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D1 2F9D2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D2 2F9D3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D3 2F9D4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D4 2F9D5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D5 2F9D6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D6 2F9D7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D7 2F9D8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D8 2F9D9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9D9 2F9DA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DA 2F9DB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DB 2F9DC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DC 2F9DD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DD 2F9DE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DE 2F9DF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9DF 2F9E0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E0 2F9E1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E1 2F9E2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E2 2F9E3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E3 2F9E4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E4 2F9E5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E5 2F9E6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E6 2F9E7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E7 2F9E8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E8 2F9E9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9E9 2F9EA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EA 2F9EB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EB 2F9EC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EC 2F9ED;ID # CJK COMPATIBILITY IDEOGRAPH-2F9ED 2F9EE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EE 2F9EF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9EF 2F9F0;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F0 2F9F1;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F1 2F9F2;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F2 2F9F3;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F3 2F9F4;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F4 2F9F5;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F5 2F9F6;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F6 2F9F7;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F7 2F9F8;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F8 2F9F9;ID # CJK COMPATIBILITY IDEOGRAPH-2F9F9 2F9FA;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FA 2F9FB;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FB 2F9FC;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FC 2F9FD;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FD 2F9FE;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FE 2F9FF;ID # CJK COMPATIBILITY IDEOGRAPH-2F9FF 2FA00;ID # CJK COMPATIBILITY IDEOGRAPH-2FA00 2FA01;ID # CJK COMPATIBILITY IDEOGRAPH-2FA01 2FA02;ID # CJK COMPATIBILITY IDEOGRAPH-2FA02 2FA03;ID # CJK COMPATIBILITY IDEOGRAPH-2FA03 2FA04;ID # CJK COMPATIBILITY IDEOGRAPH-2FA04 2FA05;ID # CJK COMPATIBILITY IDEOGRAPH-2FA05 2FA06;ID # CJK COMPATIBILITY IDEOGRAPH-2FA06 2FA07;ID # CJK COMPATIBILITY IDEOGRAPH-2FA07 2FA08;ID # CJK COMPATIBILITY IDEOGRAPH-2FA08 2FA09;ID # CJK COMPATIBILITY IDEOGRAPH-2FA09 2FA0A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0A 2FA0B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0B 2FA0C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0C 2FA0D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0D 2FA0E;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0E 2FA0F;ID # CJK COMPATIBILITY IDEOGRAPH-2FA0F 2FA10;ID # CJK COMPATIBILITY IDEOGRAPH-2FA10 2FA11;ID # CJK COMPATIBILITY IDEOGRAPH-2FA11 2FA12;ID # CJK COMPATIBILITY IDEOGRAPH-2FA12 2FA13;ID # CJK COMPATIBILITY IDEOGRAPH-2FA13 2FA14;ID # CJK COMPATIBILITY IDEOGRAPH-2FA14 2FA15;ID # CJK COMPATIBILITY IDEOGRAPH-2FA15 2FA16;ID # CJK COMPATIBILITY IDEOGRAPH-2FA16 2FA17;ID # CJK COMPATIBILITY IDEOGRAPH-2FA17 2FA18;ID # CJK COMPATIBILITY IDEOGRAPH-2FA18 2FA19;ID # CJK COMPATIBILITY IDEOGRAPH-2FA19 2FA1A;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1A 2FA1B;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1B 2FA1C;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1C 2FA1D;ID # CJK COMPATIBILITY IDEOGRAPH-2FA1D E0001;CM # LANGUAGE TAG E0020;CM # TAG SPACE E0021;CM # TAG EXCLAMATION MARK E0022;CM # TAG QUOTATION MARK E0023;CM # TAG NUMBER SIGN E0024;CM # TAG DOLLAR SIGN E0025;CM # TAG PERCENT SIGN E0026;CM # TAG AMPERSAND E0027;CM # TAG APOSTROPHE E0028;CM # TAG LEFT PARENTHESIS E0029;CM # TAG RIGHT PARENTHESIS E002A;CM # TAG ASTERISK E002B;CM # TAG PLUS SIGN E002C;CM # TAG COMMA E002D;CM # TAG HYPHEN-MINUS E002E;CM # TAG FULL STOP E002F;CM # TAG SOLIDUS E0030;CM # TAG DIGIT ZERO E0031;CM # TAG DIGIT ONE E0032;CM # TAG DIGIT TWO E0033;CM # TAG DIGIT THREE E0034;CM # TAG DIGIT FOUR E0035;CM # TAG DIGIT FIVE E0036;CM # TAG DIGIT SIX E0037;CM # TAG DIGIT SEVEN E0038;CM # TAG DIGIT EIGHT E0039;CM # TAG DIGIT NINE E003A;CM # TAG COLON E003B;CM # TAG SEMICOLON E003C;CM # TAG LESS-THAN SIGN E003D;CM # TAG EQUALS SIGN E003E;CM # TAG GREATER-THAN SIGN E003F;CM # TAG QUESTION MARK E0040;CM # TAG COMMERCIAL AT E0041;CM # TAG LATIN CAPITAL LETTER A E0042;CM # TAG LATIN CAPITAL LETTER B E0043;CM # TAG LATIN CAPITAL LETTER C E0044;CM # TAG LATIN CAPITAL LETTER D E0045;CM # TAG LATIN CAPITAL LETTER E E0046;CM # TAG LATIN CAPITAL LETTER F E0047;CM # TAG LATIN CAPITAL LETTER G E0048;CM # TAG LATIN CAPITAL LETTER H E0049;CM # TAG LATIN CAPITAL LETTER I E004A;CM # TAG LATIN CAPITAL LETTER J E004B;CM # TAG LATIN CAPITAL LETTER K E004C;CM # TAG LATIN CAPITAL LETTER L E004D;CM # TAG LATIN CAPITAL LETTER M E004E;CM # TAG LATIN CAPITAL LETTER N E004F;CM # TAG LATIN CAPITAL LETTER O E0050;CM # TAG LATIN CAPITAL LETTER P E0051;CM # TAG LATIN CAPITAL LETTER Q E0052;CM # TAG LATIN CAPITAL LETTER R E0053;CM # TAG LATIN CAPITAL LETTER S E0054;CM # TAG LATIN CAPITAL LETTER T E0055;CM # TAG LATIN CAPITAL LETTER U E0056;CM # TAG LATIN CAPITAL LETTER V E0057;CM # TAG LATIN CAPITAL LETTER W E0058;CM # TAG LATIN CAPITAL LETTER X E0059;CM # TAG LATIN CAPITAL LETTER Y E005A;CM # TAG LATIN CAPITAL LETTER Z E005B;CM # TAG LEFT SQUARE BRACKET E005C;CM # TAG REVERSE SOLIDUS E005D;CM # TAG RIGHT SQUARE BRACKET E005E;CM # TAG CIRCUMFLEX ACCENT E005F;CM # TAG LOW LINE E0060;CM # TAG GRAVE ACCENT E0061;CM # TAG LATIN SMALL LETTER A E0062;CM # TAG LATIN SMALL LETTER B E0063;CM # TAG LATIN SMALL LETTER C E0064;CM # TAG LATIN SMALL LETTER D E0065;CM # TAG LATIN SMALL LETTER E E0066;CM # TAG LATIN SMALL LETTER F E0067;CM # TAG LATIN SMALL LETTER G E0068;CM # TAG LATIN SMALL LETTER H E0069;CM # TAG LATIN SMALL LETTER I E006A;CM # TAG LATIN SMALL LETTER J E006B;CM # TAG LATIN SMALL LETTER K E006C;CM # TAG LATIN SMALL LETTER L E006D;CM # TAG LATIN SMALL LETTER M E006E;CM # TAG LATIN SMALL LETTER N E006F;CM # TAG LATIN SMALL LETTER O E0070;CM # TAG LATIN SMALL LETTER P E0071;CM # TAG LATIN SMALL LETTER Q E0072;CM # TAG LATIN SMALL LETTER R E0073;CM # TAG LATIN SMALL LETTER S E0074;CM # TAG LATIN SMALL LETTER T E0075;CM # TAG LATIN SMALL LETTER U E0076;CM # TAG LATIN SMALL LETTER V E0077;CM # TAG LATIN SMALL LETTER W E0078;CM # TAG LATIN SMALL LETTER X E0079;CM # TAG LATIN SMALL LETTER Y E007A;CM # TAG LATIN SMALL LETTER Z E007B;CM # TAG LEFT CURLY BRACKET E007C;CM # TAG VERTICAL LINE E007D;CM # TAG RIGHT CURLY BRACKET E007E;CM # TAG TILDE E007F;CM # CANCEL TAG F0000..FFFFD;XX # .. 100000..10FFFD;XX # .. libidn-1.28/doc/specifications/UnicodeData-3.2.0.txt0000664000000000000000000314257511746453142016755 000000000000000000;;Cc;0;BN;;;;;N;NULL;;;; 0001;;Cc;0;BN;;;;;N;START OF HEADING;;;; 0002;;Cc;0;BN;;;;;N;START OF TEXT;;;; 0003;;Cc;0;BN;;;;;N;END OF TEXT;;;; 0004;;Cc;0;BN;;;;;N;END OF TRANSMISSION;;;; 0005;;Cc;0;BN;;;;;N;ENQUIRY;;;; 0006;;Cc;0;BN;;;;;N;ACKNOWLEDGE;;;; 0007;;Cc;0;BN;;;;;N;BELL;;;; 0008;;Cc;0;BN;;;;;N;BACKSPACE;;;; 0009;;Cc;0;S;;;;;N;CHARACTER TABULATION;;;; 000A;;Cc;0;B;;;;;N;LINE FEED (LF);;;; 000B;;Cc;0;S;;;;;N;LINE TABULATION;;;; 000C;;Cc;0;WS;;;;;N;FORM FEED (FF);;;; 000D;;Cc;0;B;;;;;N;CARRIAGE RETURN (CR);;;; 000E;;Cc;0;BN;;;;;N;SHIFT OUT;;;; 000F;;Cc;0;BN;;;;;N;SHIFT IN;;;; 0010;;Cc;0;BN;;;;;N;DATA LINK ESCAPE;;;; 0011;;Cc;0;BN;;;;;N;DEVICE CONTROL ONE;;;; 0012;;Cc;0;BN;;;;;N;DEVICE CONTROL TWO;;;; 0013;;Cc;0;BN;;;;;N;DEVICE CONTROL THREE;;;; 0014;;Cc;0;BN;;;;;N;DEVICE CONTROL FOUR;;;; 0015;;Cc;0;BN;;;;;N;NEGATIVE ACKNOWLEDGE;;;; 0016;;Cc;0;BN;;;;;N;SYNCHRONOUS IDLE;;;; 0017;;Cc;0;BN;;;;;N;END OF TRANSMISSION BLOCK;;;; 0018;;Cc;0;BN;;;;;N;CANCEL;;;; 0019;;Cc;0;BN;;;;;N;END OF MEDIUM;;;; 001A;;Cc;0;BN;;;;;N;SUBSTITUTE;;;; 001B;;Cc;0;BN;;;;;N;ESCAPE;;;; 001C;;Cc;0;B;;;;;N;INFORMATION SEPARATOR FOUR;;;; 001D;;Cc;0;B;;;;;N;INFORMATION SEPARATOR THREE;;;; 001E;;Cc;0;B;;;;;N;INFORMATION SEPARATOR TWO;;;; 001F;;Cc;0;S;;;;;N;INFORMATION SEPARATOR ONE;;;; 0020;SPACE;Zs;0;WS;;;;;N;;;;; 0021;EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; 0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;; 0023;NUMBER SIGN;Po;0;ET;;;;;N;;;;; 0024;DOLLAR SIGN;Sc;0;ET;;;;;N;;;;; 0025;PERCENT SIGN;Po;0;ET;;;;;N;;;;; 0026;AMPERSAND;Po;0;ON;;;;;N;;;;; 0027;APOSTROPHE;Po;0;ON;;;;;N;APOSTROPHE-QUOTE;;;; 0028;LEFT PARENTHESIS;Ps;0;ON;;;;;Y;OPENING PARENTHESIS;;;; 0029;RIGHT PARENTHESIS;Pe;0;ON;;;;;Y;CLOSING PARENTHESIS;;;; 002A;ASTERISK;Po;0;ON;;;;;N;;;;; 002B;PLUS SIGN;Sm;0;ET;;;;;N;;;;; 002C;COMMA;Po;0;CS;;;;;N;;;;; 002D;HYPHEN-MINUS;Pd;0;ET;;;;;N;;;;; 002E;FULL STOP;Po;0;CS;;;;;N;PERIOD;;;; 002F;SOLIDUS;Po;0;ES;;;;;N;SLASH;;;; 0030;DIGIT ZERO;Nd;0;EN;;0;0;0;N;;;;; 0031;DIGIT ONE;Nd;0;EN;;1;1;1;N;;;;; 0032;DIGIT TWO;Nd;0;EN;;2;2;2;N;;;;; 0033;DIGIT THREE;Nd;0;EN;;3;3;3;N;;;;; 0034;DIGIT FOUR;Nd;0;EN;;4;4;4;N;;;;; 0035;DIGIT FIVE;Nd;0;EN;;5;5;5;N;;;;; 0036;DIGIT SIX;Nd;0;EN;;6;6;6;N;;;;; 0037;DIGIT SEVEN;Nd;0;EN;;7;7;7;N;;;;; 0038;DIGIT EIGHT;Nd;0;EN;;8;8;8;N;;;;; 0039;DIGIT NINE;Nd;0;EN;;9;9;9;N;;;;; 003A;COLON;Po;0;CS;;;;;N;;;;; 003B;SEMICOLON;Po;0;ON;;;;;N;;;;; 003C;LESS-THAN SIGN;Sm;0;ON;;;;;Y;;;;; 003D;EQUALS SIGN;Sm;0;ON;;;;;N;;;;; 003E;GREATER-THAN SIGN;Sm;0;ON;;;;;Y;;;;; 003F;QUESTION MARK;Po;0;ON;;;;;N;;;;; 0040;COMMERCIAL AT;Po;0;ON;;;;;N;;;;; 0041;LATIN CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0061; 0042;LATIN CAPITAL LETTER B;Lu;0;L;;;;;N;;;;0062; 0043;LATIN CAPITAL LETTER C;Lu;0;L;;;;;N;;;;0063; 0044;LATIN CAPITAL LETTER D;Lu;0;L;;;;;N;;;;0064; 0045;LATIN CAPITAL LETTER E;Lu;0;L;;;;;N;;;;0065; 0046;LATIN CAPITAL LETTER F;Lu;0;L;;;;;N;;;;0066; 0047;LATIN CAPITAL LETTER G;Lu;0;L;;;;;N;;;;0067; 0048;LATIN CAPITAL LETTER H;Lu;0;L;;;;;N;;;;0068; 0049;LATIN CAPITAL LETTER I;Lu;0;L;;;;;N;;;;0069; 004A;LATIN CAPITAL LETTER J;Lu;0;L;;;;;N;;;;006A; 004B;LATIN CAPITAL LETTER K;Lu;0;L;;;;;N;;;;006B; 004C;LATIN CAPITAL LETTER L;Lu;0;L;;;;;N;;;;006C; 004D;LATIN CAPITAL LETTER M;Lu;0;L;;;;;N;;;;006D; 004E;LATIN CAPITAL LETTER N;Lu;0;L;;;;;N;;;;006E; 004F;LATIN CAPITAL LETTER O;Lu;0;L;;;;;N;;;;006F; 0050;LATIN CAPITAL LETTER P;Lu;0;L;;;;;N;;;;0070; 0051;LATIN CAPITAL LETTER Q;Lu;0;L;;;;;N;;;;0071; 0052;LATIN CAPITAL LETTER R;Lu;0;L;;;;;N;;;;0072; 0053;LATIN CAPITAL LETTER S;Lu;0;L;;;;;N;;;;0073; 0054;LATIN CAPITAL LETTER T;Lu;0;L;;;;;N;;;;0074; 0055;LATIN CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0075; 0056;LATIN CAPITAL LETTER V;Lu;0;L;;;;;N;;;;0076; 0057;LATIN CAPITAL LETTER W;Lu;0;L;;;;;N;;;;0077; 0058;LATIN CAPITAL LETTER X;Lu;0;L;;;;;N;;;;0078; 0059;LATIN CAPITAL LETTER Y;Lu;0;L;;;;;N;;;;0079; 005A;LATIN CAPITAL LETTER Z;Lu;0;L;;;;;N;;;;007A; 005B;LEFT SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING SQUARE BRACKET;;;; 005C;REVERSE SOLIDUS;Po;0;ON;;;;;N;BACKSLASH;;;; 005D;RIGHT SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING SQUARE BRACKET;;;; 005E;CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;SPACING CIRCUMFLEX;;;; 005F;LOW LINE;Pc;0;ON;;;;;N;SPACING UNDERSCORE;;;; 0060;GRAVE ACCENT;Sk;0;ON;;;;;N;SPACING GRAVE;;;; 0061;LATIN SMALL LETTER A;Ll;0;L;;;;;N;;;0041;;0041 0062;LATIN SMALL LETTER B;Ll;0;L;;;;;N;;;0042;;0042 0063;LATIN SMALL LETTER C;Ll;0;L;;;;;N;;;0043;;0043 0064;LATIN SMALL LETTER D;Ll;0;L;;;;;N;;;0044;;0044 0065;LATIN SMALL LETTER E;Ll;0;L;;;;;N;;;0045;;0045 0066;LATIN SMALL LETTER F;Ll;0;L;;;;;N;;;0046;;0046 0067;LATIN SMALL LETTER G;Ll;0;L;;;;;N;;;0047;;0047 0068;LATIN SMALL LETTER H;Ll;0;L;;;;;N;;;0048;;0048 0069;LATIN SMALL LETTER I;Ll;0;L;;;;;N;;;0049;;0049 006A;LATIN SMALL LETTER J;Ll;0;L;;;;;N;;;004A;;004A 006B;LATIN SMALL LETTER K;Ll;0;L;;;;;N;;;004B;;004B 006C;LATIN SMALL LETTER L;Ll;0;L;;;;;N;;;004C;;004C 006D;LATIN SMALL LETTER M;Ll;0;L;;;;;N;;;004D;;004D 006E;LATIN SMALL LETTER N;Ll;0;L;;;;;N;;;004E;;004E 006F;LATIN SMALL LETTER O;Ll;0;L;;;;;N;;;004F;;004F 0070;LATIN SMALL LETTER P;Ll;0;L;;;;;N;;;0050;;0050 0071;LATIN SMALL LETTER Q;Ll;0;L;;;;;N;;;0051;;0051 0072;LATIN SMALL LETTER R;Ll;0;L;;;;;N;;;0052;;0052 0073;LATIN SMALL LETTER S;Ll;0;L;;;;;N;;;0053;;0053 0074;LATIN SMALL LETTER T;Ll;0;L;;;;;N;;;0054;;0054 0075;LATIN SMALL LETTER U;Ll;0;L;;;;;N;;;0055;;0055 0076;LATIN SMALL LETTER V;Ll;0;L;;;;;N;;;0056;;0056 0077;LATIN SMALL LETTER W;Ll;0;L;;;;;N;;;0057;;0057 0078;LATIN SMALL LETTER X;Ll;0;L;;;;;N;;;0058;;0058 0079;LATIN SMALL LETTER Y;Ll;0;L;;;;;N;;;0059;;0059 007A;LATIN SMALL LETTER Z;Ll;0;L;;;;;N;;;005A;;005A 007B;LEFT CURLY BRACKET;Ps;0;ON;;;;;Y;OPENING CURLY BRACKET;;;; 007C;VERTICAL LINE;Sm;0;ON;;;;;N;VERTICAL BAR;;;; 007D;RIGHT CURLY BRACKET;Pe;0;ON;;;;;Y;CLOSING CURLY BRACKET;;;; 007E;TILDE;Sm;0;ON;;;;;N;;;;; 007F;;Cc;0;BN;;;;;N;DELETE;;;; 0080;;Cc;0;BN;;;;;N;;;;; 0081;;Cc;0;BN;;;;;N;;;;; 0082;;Cc;0;BN;;;;;N;BREAK PERMITTED HERE;;;; 0083;;Cc;0;BN;;;;;N;NO BREAK HERE;;;; 0084;;Cc;0;BN;;;;;N;;;;; 0085;;Cc;0;B;;;;;N;NEXT LINE (NEL);;;; 0086;;Cc;0;BN;;;;;N;START OF SELECTED AREA;;;; 0087;;Cc;0;BN;;;;;N;END OF SELECTED AREA;;;; 0088;;Cc;0;BN;;;;;N;CHARACTER TABULATION SET;;;; 0089;;Cc;0;BN;;;;;N;CHARACTER TABULATION WITH JUSTIFICATION;;;; 008A;;Cc;0;BN;;;;;N;LINE TABULATION SET;;;; 008B;;Cc;0;BN;;;;;N;PARTIAL LINE FORWARD;;;; 008C;;Cc;0;BN;;;;;N;PARTIAL LINE BACKWARD;;;; 008D;;Cc;0;BN;;;;;N;REVERSE LINE FEED;;;; 008E;;Cc;0;BN;;;;;N;SINGLE SHIFT TWO;;;; 008F;;Cc;0;BN;;;;;N;SINGLE SHIFT THREE;;;; 0090;;Cc;0;BN;;;;;N;DEVICE CONTROL STRING;;;; 0091;;Cc;0;BN;;;;;N;PRIVATE USE ONE;;;; 0092;;Cc;0;BN;;;;;N;PRIVATE USE TWO;;;; 0093;;Cc;0;BN;;;;;N;SET TRANSMIT STATE;;;; 0094;;Cc;0;BN;;;;;N;CANCEL CHARACTER;;;; 0095;;Cc;0;BN;;;;;N;MESSAGE WAITING;;;; 0096;;Cc;0;BN;;;;;N;START OF GUARDED AREA;;;; 0097;;Cc;0;BN;;;;;N;END OF GUARDED AREA;;;; 0098;;Cc;0;BN;;;;;N;START OF STRING;;;; 0099;;Cc;0;BN;;;;;N;;;;; 009A;;Cc;0;BN;;;;;N;SINGLE CHARACTER INTRODUCER;;;; 009B;;Cc;0;BN;;;;;N;CONTROL SEQUENCE INTRODUCER;;;; 009C;;Cc;0;BN;;;;;N;STRING TERMINATOR;;;; 009D;;Cc;0;BN;;;;;N;OPERATING SYSTEM COMMAND;;;; 009E;;Cc;0;BN;;;;;N;PRIVACY MESSAGE;;;; 009F;;Cc;0;BN;;;;;N;APPLICATION PROGRAM COMMAND;;;; 00A0;NO-BREAK SPACE;Zs;0;CS; 0020;;;;N;NON-BREAKING SPACE;;;; 00A1;INVERTED EXCLAMATION MARK;Po;0;ON;;;;;N;;;;; 00A2;CENT SIGN;Sc;0;ET;;;;;N;;;;; 00A3;POUND SIGN;Sc;0;ET;;;;;N;;;;; 00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; 00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;; 00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;; 00A7;SECTION SIGN;So;0;ON;;;;;N;;;;; 00A8;DIAERESIS;Sk;0;ON; 0020 0308;;;;N;SPACING DIAERESIS;;;; 00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;; 00AA;FEMININE ORDINAL INDICATOR;Ll;0;L; 0061;;;;N;;;;; 00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;*;;; 00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;; 00AD;SOFT HYPHEN;Pd;0;ON;;;;;N;;;;; 00AE;REGISTERED SIGN;So;0;ON;;;;;N;REGISTERED TRADE MARK SIGN;;;; 00AF;MACRON;Sk;0;ON; 0020 0304;;;;N;SPACING MACRON;;;; 00B0;DEGREE SIGN;So;0;ET;;;;;N;;;;; 00B1;PLUS-MINUS SIGN;Sm;0;ET;;;;;N;PLUS-OR-MINUS SIGN;;;; 00B2;SUPERSCRIPT TWO;No;0;EN; 0032;2;2;2;N;SUPERSCRIPT DIGIT TWO;;;; 00B3;SUPERSCRIPT THREE;No;0;EN; 0033;3;3;3;N;SUPERSCRIPT DIGIT THREE;;;; 00B4;ACUTE ACCENT;Sk;0;ON; 0020 0301;;;;N;SPACING ACUTE;;;; 00B5;MICRO SIGN;Ll;0;L; 03BC;;;;N;;;039C;;039C 00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;; 00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;; 00B8;CEDILLA;Sk;0;ON; 0020 0327;;;;N;SPACING CEDILLA;;;; 00B9;SUPERSCRIPT ONE;No;0;EN; 0031;1;1;1;N;SUPERSCRIPT DIGIT ONE;;;; 00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L; 006F;;;;N;;;;; 00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;*;;; 00BC;VULGAR FRACTION ONE QUARTER;No;0;ON; 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;; 00BD;VULGAR FRACTION ONE HALF;No;0;ON; 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;; 00BE;VULGAR FRACTION THREE QUARTERS;No;0;ON; 0033 2044 0034;;;3/4;N;FRACTION THREE QUARTERS;;;; 00BF;INVERTED QUESTION MARK;Po;0;ON;;;;;N;;;;; 00C0;LATIN CAPITAL LETTER A WITH GRAVE;Lu;0;L;0041 0300;;;;N;LATIN CAPITAL LETTER A GRAVE;;;00E0; 00C1;LATIN CAPITAL LETTER A WITH ACUTE;Lu;0;L;0041 0301;;;;N;LATIN CAPITAL LETTER A ACUTE;;;00E1; 00C2;LATIN CAPITAL LETTER A WITH CIRCUMFLEX;Lu;0;L;0041 0302;;;;N;LATIN CAPITAL LETTER A CIRCUMFLEX;;;00E2; 00C3;LATIN CAPITAL LETTER A WITH TILDE;Lu;0;L;0041 0303;;;;N;LATIN CAPITAL LETTER A TILDE;;;00E3; 00C4;LATIN CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0041 0308;;;;N;LATIN CAPITAL LETTER A DIAERESIS;;;00E4; 00C5;LATIN CAPITAL LETTER A WITH RING ABOVE;Lu;0;L;0041 030A;;;;N;LATIN CAPITAL LETTER A RING;;;00E5; 00C6;LATIN CAPITAL LETTER AE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER A E;ash *;;00E6; 00C7;LATIN CAPITAL LETTER C WITH CEDILLA;Lu;0;L;0043 0327;;;;N;LATIN CAPITAL LETTER C CEDILLA;;;00E7; 00C8;LATIN CAPITAL LETTER E WITH GRAVE;Lu;0;L;0045 0300;;;;N;LATIN CAPITAL LETTER E GRAVE;;;00E8; 00C9;LATIN CAPITAL LETTER E WITH ACUTE;Lu;0;L;0045 0301;;;;N;LATIN CAPITAL LETTER E ACUTE;;;00E9; 00CA;LATIN CAPITAL LETTER E WITH CIRCUMFLEX;Lu;0;L;0045 0302;;;;N;LATIN CAPITAL LETTER E CIRCUMFLEX;;;00EA; 00CB;LATIN CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;0045 0308;;;;N;LATIN CAPITAL LETTER E DIAERESIS;;;00EB; 00CC;LATIN CAPITAL LETTER I WITH GRAVE;Lu;0;L;0049 0300;;;;N;LATIN CAPITAL LETTER I GRAVE;;;00EC; 00CD;LATIN CAPITAL LETTER I WITH ACUTE;Lu;0;L;0049 0301;;;;N;LATIN CAPITAL LETTER I ACUTE;;;00ED; 00CE;LATIN CAPITAL LETTER I WITH CIRCUMFLEX;Lu;0;L;0049 0302;;;;N;LATIN CAPITAL LETTER I CIRCUMFLEX;;;00EE; 00CF;LATIN CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0049 0308;;;;N;LATIN CAPITAL LETTER I DIAERESIS;;;00EF; 00D0;LATIN CAPITAL LETTER ETH;Lu;0;L;;;;;N;;Icelandic;;00F0; 00D1;LATIN CAPITAL LETTER N WITH TILDE;Lu;0;L;004E 0303;;;;N;LATIN CAPITAL LETTER N TILDE;;;00F1; 00D2;LATIN CAPITAL LETTER O WITH GRAVE;Lu;0;L;004F 0300;;;;N;LATIN CAPITAL LETTER O GRAVE;;;00F2; 00D3;LATIN CAPITAL LETTER O WITH ACUTE;Lu;0;L;004F 0301;;;;N;LATIN CAPITAL LETTER O ACUTE;;;00F3; 00D4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX;Lu;0;L;004F 0302;;;;N;LATIN CAPITAL LETTER O CIRCUMFLEX;;;00F4; 00D5;LATIN CAPITAL LETTER O WITH TILDE;Lu;0;L;004F 0303;;;;N;LATIN CAPITAL LETTER O TILDE;;;00F5; 00D6;LATIN CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;004F 0308;;;;N;LATIN CAPITAL LETTER O DIAERESIS;;;00F6; 00D7;MULTIPLICATION SIGN;Sm;0;ON;;;;;N;;;;; 00D8;LATIN CAPITAL LETTER O WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O SLASH;;;00F8; 00D9;LATIN CAPITAL LETTER U WITH GRAVE;Lu;0;L;0055 0300;;;;N;LATIN CAPITAL LETTER U GRAVE;;;00F9; 00DA;LATIN CAPITAL LETTER U WITH ACUTE;Lu;0;L;0055 0301;;;;N;LATIN CAPITAL LETTER U ACUTE;;;00FA; 00DB;LATIN CAPITAL LETTER U WITH CIRCUMFLEX;Lu;0;L;0055 0302;;;;N;LATIN CAPITAL LETTER U CIRCUMFLEX;;;00FB; 00DC;LATIN CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0055 0308;;;;N;LATIN CAPITAL LETTER U DIAERESIS;;;00FC; 00DD;LATIN CAPITAL LETTER Y WITH ACUTE;Lu;0;L;0059 0301;;;;N;LATIN CAPITAL LETTER Y ACUTE;;;00FD; 00DE;LATIN CAPITAL LETTER THORN;Lu;0;L;;;;;N;;Icelandic;;00FE; 00DF;LATIN SMALL LETTER SHARP S;Ll;0;L;;;;;N;;German;;; 00E0;LATIN SMALL LETTER A WITH GRAVE;Ll;0;L;0061 0300;;;;N;LATIN SMALL LETTER A GRAVE;;00C0;;00C0 00E1;LATIN SMALL LETTER A WITH ACUTE;Ll;0;L;0061 0301;;;;N;LATIN SMALL LETTER A ACUTE;;00C1;;00C1 00E2;LATIN SMALL LETTER A WITH CIRCUMFLEX;Ll;0;L;0061 0302;;;;N;LATIN SMALL LETTER A CIRCUMFLEX;;00C2;;00C2 00E3;LATIN SMALL LETTER A WITH TILDE;Ll;0;L;0061 0303;;;;N;LATIN SMALL LETTER A TILDE;;00C3;;00C3 00E4;LATIN SMALL LETTER A WITH DIAERESIS;Ll;0;L;0061 0308;;;;N;LATIN SMALL LETTER A DIAERESIS;;00C4;;00C4 00E5;LATIN SMALL LETTER A WITH RING ABOVE;Ll;0;L;0061 030A;;;;N;LATIN SMALL LETTER A RING;;00C5;;00C5 00E6;LATIN SMALL LETTER AE;Ll;0;L;;;;;N;LATIN SMALL LETTER A E;ash *;00C6;;00C6 00E7;LATIN SMALL LETTER C WITH CEDILLA;Ll;0;L;0063 0327;;;;N;LATIN SMALL LETTER C CEDILLA;;00C7;;00C7 00E8;LATIN SMALL LETTER E WITH GRAVE;Ll;0;L;0065 0300;;;;N;LATIN SMALL LETTER E GRAVE;;00C8;;00C8 00E9;LATIN SMALL LETTER E WITH ACUTE;Ll;0;L;0065 0301;;;;N;LATIN SMALL LETTER E ACUTE;;00C9;;00C9 00EA;LATIN SMALL LETTER E WITH CIRCUMFLEX;Ll;0;L;0065 0302;;;;N;LATIN SMALL LETTER E CIRCUMFLEX;;00CA;;00CA 00EB;LATIN SMALL LETTER E WITH DIAERESIS;Ll;0;L;0065 0308;;;;N;LATIN SMALL LETTER E DIAERESIS;;00CB;;00CB 00EC;LATIN SMALL LETTER I WITH GRAVE;Ll;0;L;0069 0300;;;;N;LATIN SMALL LETTER I GRAVE;;00CC;;00CC 00ED;LATIN SMALL LETTER I WITH ACUTE;Ll;0;L;0069 0301;;;;N;LATIN SMALL LETTER I ACUTE;;00CD;;00CD 00EE;LATIN SMALL LETTER I WITH CIRCUMFLEX;Ll;0;L;0069 0302;;;;N;LATIN SMALL LETTER I CIRCUMFLEX;;00CE;;00CE 00EF;LATIN SMALL LETTER I WITH DIAERESIS;Ll;0;L;0069 0308;;;;N;LATIN SMALL LETTER I DIAERESIS;;00CF;;00CF 00F0;LATIN SMALL LETTER ETH;Ll;0;L;;;;;N;;Icelandic;00D0;;00D0 00F1;LATIN SMALL LETTER N WITH TILDE;Ll;0;L;006E 0303;;;;N;LATIN SMALL LETTER N TILDE;;00D1;;00D1 00F2;LATIN SMALL LETTER O WITH GRAVE;Ll;0;L;006F 0300;;;;N;LATIN SMALL LETTER O GRAVE;;00D2;;00D2 00F3;LATIN SMALL LETTER O WITH ACUTE;Ll;0;L;006F 0301;;;;N;LATIN SMALL LETTER O ACUTE;;00D3;;00D3 00F4;LATIN SMALL LETTER O WITH CIRCUMFLEX;Ll;0;L;006F 0302;;;;N;LATIN SMALL LETTER O CIRCUMFLEX;;00D4;;00D4 00F5;LATIN SMALL LETTER O WITH TILDE;Ll;0;L;006F 0303;;;;N;LATIN SMALL LETTER O TILDE;;00D5;;00D5 00F6;LATIN SMALL LETTER O WITH DIAERESIS;Ll;0;L;006F 0308;;;;N;LATIN SMALL LETTER O DIAERESIS;;00D6;;00D6 00F7;DIVISION SIGN;Sm;0;ON;;;;;N;;;;; 00F8;LATIN SMALL LETTER O WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER O SLASH;;00D8;;00D8 00F9;LATIN SMALL LETTER U WITH GRAVE;Ll;0;L;0075 0300;;;;N;LATIN SMALL LETTER U GRAVE;;00D9;;00D9 00FA;LATIN SMALL LETTER U WITH ACUTE;Ll;0;L;0075 0301;;;;N;LATIN SMALL LETTER U ACUTE;;00DA;;00DA 00FB;LATIN SMALL LETTER U WITH CIRCUMFLEX;Ll;0;L;0075 0302;;;;N;LATIN SMALL LETTER U CIRCUMFLEX;;00DB;;00DB 00FC;LATIN SMALL LETTER U WITH DIAERESIS;Ll;0;L;0075 0308;;;;N;LATIN SMALL LETTER U DIAERESIS;;00DC;;00DC 00FD;LATIN SMALL LETTER Y WITH ACUTE;Ll;0;L;0079 0301;;;;N;LATIN SMALL LETTER Y ACUTE;;00DD;;00DD 00FE;LATIN SMALL LETTER THORN;Ll;0;L;;;;;N;;Icelandic;00DE;;00DE 00FF;LATIN SMALL LETTER Y WITH DIAERESIS;Ll;0;L;0079 0308;;;;N;LATIN SMALL LETTER Y DIAERESIS;;0178;;0178 0100;LATIN CAPITAL LETTER A WITH MACRON;Lu;0;L;0041 0304;;;;N;LATIN CAPITAL LETTER A MACRON;;;0101; 0101;LATIN SMALL LETTER A WITH MACRON;Ll;0;L;0061 0304;;;;N;LATIN SMALL LETTER A MACRON;;0100;;0100 0102;LATIN CAPITAL LETTER A WITH BREVE;Lu;0;L;0041 0306;;;;N;LATIN CAPITAL LETTER A BREVE;;;0103; 0103;LATIN SMALL LETTER A WITH BREVE;Ll;0;L;0061 0306;;;;N;LATIN SMALL LETTER A BREVE;;0102;;0102 0104;LATIN CAPITAL LETTER A WITH OGONEK;Lu;0;L;0041 0328;;;;N;LATIN CAPITAL LETTER A OGONEK;;;0105; 0105;LATIN SMALL LETTER A WITH OGONEK;Ll;0;L;0061 0328;;;;N;LATIN SMALL LETTER A OGONEK;;0104;;0104 0106;LATIN CAPITAL LETTER C WITH ACUTE;Lu;0;L;0043 0301;;;;N;LATIN CAPITAL LETTER C ACUTE;;;0107; 0107;LATIN SMALL LETTER C WITH ACUTE;Ll;0;L;0063 0301;;;;N;LATIN SMALL LETTER C ACUTE;;0106;;0106 0108;LATIN CAPITAL LETTER C WITH CIRCUMFLEX;Lu;0;L;0043 0302;;;;N;LATIN CAPITAL LETTER C CIRCUMFLEX;;;0109; 0109;LATIN SMALL LETTER C WITH CIRCUMFLEX;Ll;0;L;0063 0302;;;;N;LATIN SMALL LETTER C CIRCUMFLEX;;0108;;0108 010A;LATIN CAPITAL LETTER C WITH DOT ABOVE;Lu;0;L;0043 0307;;;;N;LATIN CAPITAL LETTER C DOT;;;010B; 010B;LATIN SMALL LETTER C WITH DOT ABOVE;Ll;0;L;0063 0307;;;;N;LATIN SMALL LETTER C DOT;;010A;;010A 010C;LATIN CAPITAL LETTER C WITH CARON;Lu;0;L;0043 030C;;;;N;LATIN CAPITAL LETTER C HACEK;;;010D; 010D;LATIN SMALL LETTER C WITH CARON;Ll;0;L;0063 030C;;;;N;LATIN SMALL LETTER C HACEK;;010C;;010C 010E;LATIN CAPITAL LETTER D WITH CARON;Lu;0;L;0044 030C;;;;N;LATIN CAPITAL LETTER D HACEK;;;010F; 010F;LATIN SMALL LETTER D WITH CARON;Ll;0;L;0064 030C;;;;N;LATIN SMALL LETTER D HACEK;;010E;;010E 0110;LATIN CAPITAL LETTER D WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D BAR;;;0111; 0111;LATIN SMALL LETTER D WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER D BAR;;0110;;0110 0112;LATIN CAPITAL LETTER E WITH MACRON;Lu;0;L;0045 0304;;;;N;LATIN CAPITAL LETTER E MACRON;;;0113; 0113;LATIN SMALL LETTER E WITH MACRON;Ll;0;L;0065 0304;;;;N;LATIN SMALL LETTER E MACRON;;0112;;0112 0114;LATIN CAPITAL LETTER E WITH BREVE;Lu;0;L;0045 0306;;;;N;LATIN CAPITAL LETTER E BREVE;;;0115; 0115;LATIN SMALL LETTER E WITH BREVE;Ll;0;L;0065 0306;;;;N;LATIN SMALL LETTER E BREVE;;0114;;0114 0116;LATIN CAPITAL LETTER E WITH DOT ABOVE;Lu;0;L;0045 0307;;;;N;LATIN CAPITAL LETTER E DOT;;;0117; 0117;LATIN SMALL LETTER E WITH DOT ABOVE;Ll;0;L;0065 0307;;;;N;LATIN SMALL LETTER E DOT;;0116;;0116 0118;LATIN CAPITAL LETTER E WITH OGONEK;Lu;0;L;0045 0328;;;;N;LATIN CAPITAL LETTER E OGONEK;;;0119; 0119;LATIN SMALL LETTER E WITH OGONEK;Ll;0;L;0065 0328;;;;N;LATIN SMALL LETTER E OGONEK;;0118;;0118 011A;LATIN CAPITAL LETTER E WITH CARON;Lu;0;L;0045 030C;;;;N;LATIN CAPITAL LETTER E HACEK;;;011B; 011B;LATIN SMALL LETTER E WITH CARON;Ll;0;L;0065 030C;;;;N;LATIN SMALL LETTER E HACEK;;011A;;011A 011C;LATIN CAPITAL LETTER G WITH CIRCUMFLEX;Lu;0;L;0047 0302;;;;N;LATIN CAPITAL LETTER G CIRCUMFLEX;;;011D; 011D;LATIN SMALL LETTER G WITH CIRCUMFLEX;Ll;0;L;0067 0302;;;;N;LATIN SMALL LETTER G CIRCUMFLEX;;011C;;011C 011E;LATIN CAPITAL LETTER G WITH BREVE;Lu;0;L;0047 0306;;;;N;LATIN CAPITAL LETTER G BREVE;;;011F; 011F;LATIN SMALL LETTER G WITH BREVE;Ll;0;L;0067 0306;;;;N;LATIN SMALL LETTER G BREVE;;011E;;011E 0120;LATIN CAPITAL LETTER G WITH DOT ABOVE;Lu;0;L;0047 0307;;;;N;LATIN CAPITAL LETTER G DOT;;;0121; 0121;LATIN SMALL LETTER G WITH DOT ABOVE;Ll;0;L;0067 0307;;;;N;LATIN SMALL LETTER G DOT;;0120;;0120 0122;LATIN CAPITAL LETTER G WITH CEDILLA;Lu;0;L;0047 0327;;;;N;LATIN CAPITAL LETTER G CEDILLA;;;0123; 0123;LATIN SMALL LETTER G WITH CEDILLA;Ll;0;L;0067 0327;;;;N;LATIN SMALL LETTER G CEDILLA;;0122;;0122 0124;LATIN CAPITAL LETTER H WITH CIRCUMFLEX;Lu;0;L;0048 0302;;;;N;LATIN CAPITAL LETTER H CIRCUMFLEX;;;0125; 0125;LATIN SMALL LETTER H WITH CIRCUMFLEX;Ll;0;L;0068 0302;;;;N;LATIN SMALL LETTER H CIRCUMFLEX;;0124;;0124 0126;LATIN CAPITAL LETTER H WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER H BAR;;;0127; 0127;LATIN SMALL LETTER H WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER H BAR;;0126;;0126 0128;LATIN CAPITAL LETTER I WITH TILDE;Lu;0;L;0049 0303;;;;N;LATIN CAPITAL LETTER I TILDE;;;0129; 0129;LATIN SMALL LETTER I WITH TILDE;Ll;0;L;0069 0303;;;;N;LATIN SMALL LETTER I TILDE;;0128;;0128 012A;LATIN CAPITAL LETTER I WITH MACRON;Lu;0;L;0049 0304;;;;N;LATIN CAPITAL LETTER I MACRON;;;012B; 012B;LATIN SMALL LETTER I WITH MACRON;Ll;0;L;0069 0304;;;;N;LATIN SMALL LETTER I MACRON;;012A;;012A 012C;LATIN CAPITAL LETTER I WITH BREVE;Lu;0;L;0049 0306;;;;N;LATIN CAPITAL LETTER I BREVE;;;012D; 012D;LATIN SMALL LETTER I WITH BREVE;Ll;0;L;0069 0306;;;;N;LATIN SMALL LETTER I BREVE;;012C;;012C 012E;LATIN CAPITAL LETTER I WITH OGONEK;Lu;0;L;0049 0328;;;;N;LATIN CAPITAL LETTER I OGONEK;;;012F; 012F;LATIN SMALL LETTER I WITH OGONEK;Ll;0;L;0069 0328;;;;N;LATIN SMALL LETTER I OGONEK;;012E;;012E 0130;LATIN CAPITAL LETTER I WITH DOT ABOVE;Lu;0;L;0049 0307;;;;N;LATIN CAPITAL LETTER I DOT;;;0069; 0131;LATIN SMALL LETTER DOTLESS I;Ll;0;L;;;;;N;;;0049;;0049 0132;LATIN CAPITAL LIGATURE IJ;Lu;0;L; 0049 004A;;;;N;LATIN CAPITAL LETTER I J;;;0133; 0133;LATIN SMALL LIGATURE IJ;Ll;0;L; 0069 006A;;;;N;LATIN SMALL LETTER I J;;0132;;0132 0134;LATIN CAPITAL LETTER J WITH CIRCUMFLEX;Lu;0;L;004A 0302;;;;N;LATIN CAPITAL LETTER J CIRCUMFLEX;;;0135; 0135;LATIN SMALL LETTER J WITH CIRCUMFLEX;Ll;0;L;006A 0302;;;;N;LATIN SMALL LETTER J CIRCUMFLEX;;0134;;0134 0136;LATIN CAPITAL LETTER K WITH CEDILLA;Lu;0;L;004B 0327;;;;N;LATIN CAPITAL LETTER K CEDILLA;;;0137; 0137;LATIN SMALL LETTER K WITH CEDILLA;Ll;0;L;006B 0327;;;;N;LATIN SMALL LETTER K CEDILLA;;0136;;0136 0138;LATIN SMALL LETTER KRA;Ll;0;L;;;;;N;;Greenlandic;;; 0139;LATIN CAPITAL LETTER L WITH ACUTE;Lu;0;L;004C 0301;;;;N;LATIN CAPITAL LETTER L ACUTE;;;013A; 013A;LATIN SMALL LETTER L WITH ACUTE;Ll;0;L;006C 0301;;;;N;LATIN SMALL LETTER L ACUTE;;0139;;0139 013B;LATIN CAPITAL LETTER L WITH CEDILLA;Lu;0;L;004C 0327;;;;N;LATIN CAPITAL LETTER L CEDILLA;;;013C; 013C;LATIN SMALL LETTER L WITH CEDILLA;Ll;0;L;006C 0327;;;;N;LATIN SMALL LETTER L CEDILLA;;013B;;013B 013D;LATIN CAPITAL LETTER L WITH CARON;Lu;0;L;004C 030C;;;;N;LATIN CAPITAL LETTER L HACEK;;;013E; 013E;LATIN SMALL LETTER L WITH CARON;Ll;0;L;006C 030C;;;;N;LATIN SMALL LETTER L HACEK;;013D;;013D 013F;LATIN CAPITAL LETTER L WITH MIDDLE DOT;Lu;0;L; 004C 00B7;;;;N;;;;0140; 0140;LATIN SMALL LETTER L WITH MIDDLE DOT;Ll;0;L; 006C 00B7;;;;N;;;013F;;013F 0141;LATIN CAPITAL LETTER L WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER L SLASH;;;0142; 0142;LATIN SMALL LETTER L WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER L SLASH;;0141;;0141 0143;LATIN CAPITAL LETTER N WITH ACUTE;Lu;0;L;004E 0301;;;;N;LATIN CAPITAL LETTER N ACUTE;;;0144; 0144;LATIN SMALL LETTER N WITH ACUTE;Ll;0;L;006E 0301;;;;N;LATIN SMALL LETTER N ACUTE;;0143;;0143 0145;LATIN CAPITAL LETTER N WITH CEDILLA;Lu;0;L;004E 0327;;;;N;LATIN CAPITAL LETTER N CEDILLA;;;0146; 0146;LATIN SMALL LETTER N WITH CEDILLA;Ll;0;L;006E 0327;;;;N;LATIN SMALL LETTER N CEDILLA;;0145;;0145 0147;LATIN CAPITAL LETTER N WITH CARON;Lu;0;L;004E 030C;;;;N;LATIN CAPITAL LETTER N HACEK;;;0148; 0148;LATIN SMALL LETTER N WITH CARON;Ll;0;L;006E 030C;;;;N;LATIN SMALL LETTER N HACEK;;0147;;0147 0149;LATIN SMALL LETTER N PRECEDED BY APOSTROPHE;Ll;0;L; 02BC 006E;;;;N;LATIN SMALL LETTER APOSTROPHE N;;;; 014A;LATIN CAPITAL LETTER ENG;Lu;0;L;;;;;N;;Sami;;014B; 014B;LATIN SMALL LETTER ENG;Ll;0;L;;;;;N;;Sami;014A;;014A 014C;LATIN CAPITAL LETTER O WITH MACRON;Lu;0;L;004F 0304;;;;N;LATIN CAPITAL LETTER O MACRON;;;014D; 014D;LATIN SMALL LETTER O WITH MACRON;Ll;0;L;006F 0304;;;;N;LATIN SMALL LETTER O MACRON;;014C;;014C 014E;LATIN CAPITAL LETTER O WITH BREVE;Lu;0;L;004F 0306;;;;N;LATIN CAPITAL LETTER O BREVE;;;014F; 014F;LATIN SMALL LETTER O WITH BREVE;Ll;0;L;006F 0306;;;;N;LATIN SMALL LETTER O BREVE;;014E;;014E 0150;LATIN CAPITAL LETTER O WITH DOUBLE ACUTE;Lu;0;L;004F 030B;;;;N;LATIN CAPITAL LETTER O DOUBLE ACUTE;;;0151; 0151;LATIN SMALL LETTER O WITH DOUBLE ACUTE;Ll;0;L;006F 030B;;;;N;LATIN SMALL LETTER O DOUBLE ACUTE;;0150;;0150 0152;LATIN CAPITAL LIGATURE OE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O E;;;0153; 0153;LATIN SMALL LIGATURE OE;Ll;0;L;;;;;N;LATIN SMALL LETTER O E;;0152;;0152 0154;LATIN CAPITAL LETTER R WITH ACUTE;Lu;0;L;0052 0301;;;;N;LATIN CAPITAL LETTER R ACUTE;;;0155; 0155;LATIN SMALL LETTER R WITH ACUTE;Ll;0;L;0072 0301;;;;N;LATIN SMALL LETTER R ACUTE;;0154;;0154 0156;LATIN CAPITAL LETTER R WITH CEDILLA;Lu;0;L;0052 0327;;;;N;LATIN CAPITAL LETTER R CEDILLA;;;0157; 0157;LATIN SMALL LETTER R WITH CEDILLA;Ll;0;L;0072 0327;;;;N;LATIN SMALL LETTER R CEDILLA;;0156;;0156 0158;LATIN CAPITAL LETTER R WITH CARON;Lu;0;L;0052 030C;;;;N;LATIN CAPITAL LETTER R HACEK;;;0159; 0159;LATIN SMALL LETTER R WITH CARON;Ll;0;L;0072 030C;;;;N;LATIN SMALL LETTER R HACEK;;0158;;0158 015A;LATIN CAPITAL LETTER S WITH ACUTE;Lu;0;L;0053 0301;;;;N;LATIN CAPITAL LETTER S ACUTE;;;015B; 015B;LATIN SMALL LETTER S WITH ACUTE;Ll;0;L;0073 0301;;;;N;LATIN SMALL LETTER S ACUTE;;015A;;015A 015C;LATIN CAPITAL LETTER S WITH CIRCUMFLEX;Lu;0;L;0053 0302;;;;N;LATIN CAPITAL LETTER S CIRCUMFLEX;;;015D; 015D;LATIN SMALL LETTER S WITH CIRCUMFLEX;Ll;0;L;0073 0302;;;;N;LATIN SMALL LETTER S CIRCUMFLEX;;015C;;015C 015E;LATIN CAPITAL LETTER S WITH CEDILLA;Lu;0;L;0053 0327;;;;N;LATIN CAPITAL LETTER S CEDILLA;*;;015F; 015F;LATIN SMALL LETTER S WITH CEDILLA;Ll;0;L;0073 0327;;;;N;LATIN SMALL LETTER S CEDILLA;*;015E;;015E 0160;LATIN CAPITAL LETTER S WITH CARON;Lu;0;L;0053 030C;;;;N;LATIN CAPITAL LETTER S HACEK;;;0161; 0161;LATIN SMALL LETTER S WITH CARON;Ll;0;L;0073 030C;;;;N;LATIN SMALL LETTER S HACEK;;0160;;0160 0162;LATIN CAPITAL LETTER T WITH CEDILLA;Lu;0;L;0054 0327;;;;N;LATIN CAPITAL LETTER T CEDILLA;*;;0163; 0163;LATIN SMALL LETTER T WITH CEDILLA;Ll;0;L;0074 0327;;;;N;LATIN SMALL LETTER T CEDILLA;*;0162;;0162 0164;LATIN CAPITAL LETTER T WITH CARON;Lu;0;L;0054 030C;;;;N;LATIN CAPITAL LETTER T HACEK;;;0165; 0165;LATIN SMALL LETTER T WITH CARON;Ll;0;L;0074 030C;;;;N;LATIN SMALL LETTER T HACEK;;0164;;0164 0166;LATIN CAPITAL LETTER T WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T BAR;;;0167; 0167;LATIN SMALL LETTER T WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER T BAR;;0166;;0166 0168;LATIN CAPITAL LETTER U WITH TILDE;Lu;0;L;0055 0303;;;;N;LATIN CAPITAL LETTER U TILDE;;;0169; 0169;LATIN SMALL LETTER U WITH TILDE;Ll;0;L;0075 0303;;;;N;LATIN SMALL LETTER U TILDE;;0168;;0168 016A;LATIN CAPITAL LETTER U WITH MACRON;Lu;0;L;0055 0304;;;;N;LATIN CAPITAL LETTER U MACRON;;;016B; 016B;LATIN SMALL LETTER U WITH MACRON;Ll;0;L;0075 0304;;;;N;LATIN SMALL LETTER U MACRON;;016A;;016A 016C;LATIN CAPITAL LETTER U WITH BREVE;Lu;0;L;0055 0306;;;;N;LATIN CAPITAL LETTER U BREVE;;;016D; 016D;LATIN SMALL LETTER U WITH BREVE;Ll;0;L;0075 0306;;;;N;LATIN SMALL LETTER U BREVE;;016C;;016C 016E;LATIN CAPITAL LETTER U WITH RING ABOVE;Lu;0;L;0055 030A;;;;N;LATIN CAPITAL LETTER U RING;;;016F; 016F;LATIN SMALL LETTER U WITH RING ABOVE;Ll;0;L;0075 030A;;;;N;LATIN SMALL LETTER U RING;;016E;;016E 0170;LATIN CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0055 030B;;;;N;LATIN CAPITAL LETTER U DOUBLE ACUTE;;;0171; 0171;LATIN SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0075 030B;;;;N;LATIN SMALL LETTER U DOUBLE ACUTE;;0170;;0170 0172;LATIN CAPITAL LETTER U WITH OGONEK;Lu;0;L;0055 0328;;;;N;LATIN CAPITAL LETTER U OGONEK;;;0173; 0173;LATIN SMALL LETTER U WITH OGONEK;Ll;0;L;0075 0328;;;;N;LATIN SMALL LETTER U OGONEK;;0172;;0172 0174;LATIN CAPITAL LETTER W WITH CIRCUMFLEX;Lu;0;L;0057 0302;;;;N;LATIN CAPITAL LETTER W CIRCUMFLEX;;;0175; 0175;LATIN SMALL LETTER W WITH CIRCUMFLEX;Ll;0;L;0077 0302;;;;N;LATIN SMALL LETTER W CIRCUMFLEX;;0174;;0174 0176;LATIN CAPITAL LETTER Y WITH CIRCUMFLEX;Lu;0;L;0059 0302;;;;N;LATIN CAPITAL LETTER Y CIRCUMFLEX;;;0177; 0177;LATIN SMALL LETTER Y WITH CIRCUMFLEX;Ll;0;L;0079 0302;;;;N;LATIN SMALL LETTER Y CIRCUMFLEX;;0176;;0176 0178;LATIN CAPITAL LETTER Y WITH DIAERESIS;Lu;0;L;0059 0308;;;;N;LATIN CAPITAL LETTER Y DIAERESIS;;;00FF; 0179;LATIN CAPITAL LETTER Z WITH ACUTE;Lu;0;L;005A 0301;;;;N;LATIN CAPITAL LETTER Z ACUTE;;;017A; 017A;LATIN SMALL LETTER Z WITH ACUTE;Ll;0;L;007A 0301;;;;N;LATIN SMALL LETTER Z ACUTE;;0179;;0179 017B;LATIN CAPITAL LETTER Z WITH DOT ABOVE;Lu;0;L;005A 0307;;;;N;LATIN CAPITAL LETTER Z DOT;;;017C; 017C;LATIN SMALL LETTER Z WITH DOT ABOVE;Ll;0;L;007A 0307;;;;N;LATIN SMALL LETTER Z DOT;;017B;;017B 017D;LATIN CAPITAL LETTER Z WITH CARON;Lu;0;L;005A 030C;;;;N;LATIN CAPITAL LETTER Z HACEK;;;017E; 017E;LATIN SMALL LETTER Z WITH CARON;Ll;0;L;007A 030C;;;;N;LATIN SMALL LETTER Z HACEK;;017D;;017D 017F;LATIN SMALL LETTER LONG S;Ll;0;L; 0073;;;;N;;;0053;;0053 0180;LATIN SMALL LETTER B WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER B BAR;;;; 0181;LATIN CAPITAL LETTER B WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B HOOK;;;0253; 0182;LATIN CAPITAL LETTER B WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER B TOPBAR;;;0183; 0183;LATIN SMALL LETTER B WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER B TOPBAR;;0182;;0182 0184;LATIN CAPITAL LETTER TONE SIX;Lu;0;L;;;;;N;;;;0185; 0185;LATIN SMALL LETTER TONE SIX;Ll;0;L;;;;;N;;;0184;;0184 0186;LATIN CAPITAL LETTER OPEN O;Lu;0;L;;;;;N;;;;0254; 0187;LATIN CAPITAL LETTER C WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER C HOOK;;;0188; 0188;LATIN SMALL LETTER C WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER C HOOK;;0187;;0187 0189;LATIN CAPITAL LETTER AFRICAN D;Lu;0;L;;;;;N;;*;;0256; 018A;LATIN CAPITAL LETTER D WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D HOOK;;;0257; 018B;LATIN CAPITAL LETTER D WITH TOPBAR;Lu;0;L;;;;;N;LATIN CAPITAL LETTER D TOPBAR;;;018C; 018C;LATIN SMALL LETTER D WITH TOPBAR;Ll;0;L;;;;;N;LATIN SMALL LETTER D TOPBAR;;018B;;018B 018D;LATIN SMALL LETTER TURNED DELTA;Ll;0;L;;;;;N;;;;; 018E;LATIN CAPITAL LETTER REVERSED E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER TURNED E;;;01DD; 018F;LATIN CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;0259; 0190;LATIN CAPITAL LETTER OPEN E;Lu;0;L;;;;;N;LATIN CAPITAL LETTER EPSILON;;;025B; 0191;LATIN CAPITAL LETTER F WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER F HOOK;;;0192; 0192;LATIN SMALL LETTER F WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT F;;0191;;0191 0193;LATIN CAPITAL LETTER G WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G HOOK;;;0260; 0194;LATIN CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;0263; 0195;LATIN SMALL LETTER HV;Ll;0;L;;;;;N;LATIN SMALL LETTER H V;hwair;01F6;;01F6 0196;LATIN CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;0269; 0197;LATIN CAPITAL LETTER I WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED I;;;0268; 0198;LATIN CAPITAL LETTER K WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER K HOOK;;;0199; 0199;LATIN SMALL LETTER K WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER K HOOK;;0198;;0198 019A;LATIN SMALL LETTER L WITH BAR;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED L;;;; 019B;LATIN SMALL LETTER LAMBDA WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED LAMBDA;;;; 019C;LATIN CAPITAL LETTER TURNED M;Lu;0;L;;;;;N;;;;026F; 019D;LATIN CAPITAL LETTER N WITH LEFT HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER N HOOK;;;0272; 019E;LATIN SMALL LETTER N WITH LONG RIGHT LEG;Ll;0;L;;;;;N;;;0220;;0220 019F;LATIN CAPITAL LETTER O WITH MIDDLE TILDE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER BARRED O;*;;0275; 01A0;LATIN CAPITAL LETTER O WITH HORN;Lu;0;L;004F 031B;;;;N;LATIN CAPITAL LETTER O HORN;;;01A1; 01A1;LATIN SMALL LETTER O WITH HORN;Ll;0;L;006F 031B;;;;N;LATIN SMALL LETTER O HORN;;01A0;;01A0 01A2;LATIN CAPITAL LETTER OI;Lu;0;L;;;;;N;LATIN CAPITAL LETTER O I;gha;;01A3; 01A3;LATIN SMALL LETTER OI;Ll;0;L;;;;;N;LATIN SMALL LETTER O I;gha;01A2;;01A2 01A4;LATIN CAPITAL LETTER P WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER P HOOK;;;01A5; 01A5;LATIN SMALL LETTER P WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER P HOOK;;01A4;;01A4 01A6;LATIN LETTER YR;Lu;0;L;;;;;N;LATIN LETTER Y R;*;;0280; 01A7;LATIN CAPITAL LETTER TONE TWO;Lu;0;L;;;;;N;;;;01A8; 01A8;LATIN SMALL LETTER TONE TWO;Ll;0;L;;;;;N;;;01A7;;01A7 01A9;LATIN CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;0283; 01AA;LATIN LETTER REVERSED ESH LOOP;Ll;0;L;;;;;N;;;;; 01AB;LATIN SMALL LETTER T WITH PALATAL HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T PALATAL HOOK;;;; 01AC;LATIN CAPITAL LETTER T WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T HOOK;;;01AD; 01AD;LATIN SMALL LETTER T WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T HOOK;;01AC;;01AC 01AE;LATIN CAPITAL LETTER T WITH RETROFLEX HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER T RETROFLEX HOOK;;;0288; 01AF;LATIN CAPITAL LETTER U WITH HORN;Lu;0;L;0055 031B;;;;N;LATIN CAPITAL LETTER U HORN;;;01B0; 01B0;LATIN SMALL LETTER U WITH HORN;Ll;0;L;0075 031B;;;;N;LATIN SMALL LETTER U HORN;;01AF;;01AF 01B1;LATIN CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;028A; 01B2;LATIN CAPITAL LETTER V WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER SCRIPT V;;;028B; 01B3;LATIN CAPITAL LETTER Y WITH HOOK;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Y HOOK;;;01B4; 01B4;LATIN SMALL LETTER Y WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Y HOOK;;01B3;;01B3 01B5;LATIN CAPITAL LETTER Z WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER Z BAR;;;01B6; 01B6;LATIN SMALL LETTER Z WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER Z BAR;;01B5;;01B5 01B7;LATIN CAPITAL LETTER EZH;Lu;0;L;;;;;N;LATIN CAPITAL LETTER YOGH;;;0292; 01B8;LATIN CAPITAL LETTER EZH REVERSED;Lu;0;L;;;;;N;LATIN CAPITAL LETTER REVERSED YOGH;;;01B9; 01B9;LATIN SMALL LETTER EZH REVERSED;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED YOGH;;01B8;;01B8 01BA;LATIN SMALL LETTER EZH WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH WITH TAIL;;;; 01BB;LATIN LETTER TWO WITH STROKE;Lo;0;L;;;;;N;LATIN LETTER TWO BAR;;;; 01BC;LATIN CAPITAL LETTER TONE FIVE;Lu;0;L;;;;;N;;;;01BD; 01BD;LATIN SMALL LETTER TONE FIVE;Ll;0;L;;;;;N;;;01BC;;01BC 01BE;LATIN LETTER INVERTED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER INVERTED GLOTTAL STOP BAR;;;; 01BF;LATIN LETTER WYNN;Ll;0;L;;;;;N;;;01F7;;01F7 01C0;LATIN LETTER DENTAL CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE;;;; 01C1;LATIN LETTER LATERAL CLICK;Lo;0;L;;;;;N;LATIN LETTER DOUBLE PIPE;;;; 01C2;LATIN LETTER ALVEOLAR CLICK;Lo;0;L;;;;;N;LATIN LETTER PIPE DOUBLE BAR;;;; 01C3;LATIN LETTER RETROFLEX CLICK;Lo;0;L;;;;;N;LATIN LETTER EXCLAMATION MARK;;;; 01C4;LATIN CAPITAL LETTER DZ WITH CARON;Lu;0;L; 0044 017D;;;;N;LATIN CAPITAL LETTER D Z HACEK;;;01C6;01C5 01C5;LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON;Lt;0;L; 0044 017E;;;;N;LATIN LETTER CAPITAL D SMALL Z HACEK;;01C4;01C6; 01C6;LATIN SMALL LETTER DZ WITH CARON;Ll;0;L; 0064 017E;;;;N;LATIN SMALL LETTER D Z HACEK;;01C4;;01C5 01C7;LATIN CAPITAL LETTER LJ;Lu;0;L; 004C 004A;;;;N;LATIN CAPITAL LETTER L J;;;01C9;01C8 01C8;LATIN CAPITAL LETTER L WITH SMALL LETTER J;Lt;0;L; 004C 006A;;;;N;LATIN LETTER CAPITAL L SMALL J;;01C7;01C9; 01C9;LATIN SMALL LETTER LJ;Ll;0;L; 006C 006A;;;;N;LATIN SMALL LETTER L J;;01C7;;01C8 01CA;LATIN CAPITAL LETTER NJ;Lu;0;L; 004E 004A;;;;N;LATIN CAPITAL LETTER N J;;;01CC;01CB 01CB;LATIN CAPITAL LETTER N WITH SMALL LETTER J;Lt;0;L; 004E 006A;;;;N;LATIN LETTER CAPITAL N SMALL J;;01CA;01CC; 01CC;LATIN SMALL LETTER NJ;Ll;0;L; 006E 006A;;;;N;LATIN SMALL LETTER N J;;01CA;;01CB 01CD;LATIN CAPITAL LETTER A WITH CARON;Lu;0;L;0041 030C;;;;N;LATIN CAPITAL LETTER A HACEK;;;01CE; 01CE;LATIN SMALL LETTER A WITH CARON;Ll;0;L;0061 030C;;;;N;LATIN SMALL LETTER A HACEK;;01CD;;01CD 01CF;LATIN CAPITAL LETTER I WITH CARON;Lu;0;L;0049 030C;;;;N;LATIN CAPITAL LETTER I HACEK;;;01D0; 01D0;LATIN SMALL LETTER I WITH CARON;Ll;0;L;0069 030C;;;;N;LATIN SMALL LETTER I HACEK;;01CF;;01CF 01D1;LATIN CAPITAL LETTER O WITH CARON;Lu;0;L;004F 030C;;;;N;LATIN CAPITAL LETTER O HACEK;;;01D2; 01D2;LATIN SMALL LETTER O WITH CARON;Ll;0;L;006F 030C;;;;N;LATIN SMALL LETTER O HACEK;;01D1;;01D1 01D3;LATIN CAPITAL LETTER U WITH CARON;Lu;0;L;0055 030C;;;;N;LATIN CAPITAL LETTER U HACEK;;;01D4; 01D4;LATIN SMALL LETTER U WITH CARON;Ll;0;L;0075 030C;;;;N;LATIN SMALL LETTER U HACEK;;01D3;;01D3 01D5;LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON;Lu;0;L;00DC 0304;;;;N;LATIN CAPITAL LETTER U DIAERESIS MACRON;;;01D6; 01D6;LATIN SMALL LETTER U WITH DIAERESIS AND MACRON;Ll;0;L;00FC 0304;;;;N;LATIN SMALL LETTER U DIAERESIS MACRON;;01D5;;01D5 01D7;LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE;Lu;0;L;00DC 0301;;;;N;LATIN CAPITAL LETTER U DIAERESIS ACUTE;;;01D8; 01D8;LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE;Ll;0;L;00FC 0301;;;;N;LATIN SMALL LETTER U DIAERESIS ACUTE;;01D7;;01D7 01D9;LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON;Lu;0;L;00DC 030C;;;;N;LATIN CAPITAL LETTER U DIAERESIS HACEK;;;01DA; 01DA;LATIN SMALL LETTER U WITH DIAERESIS AND CARON;Ll;0;L;00FC 030C;;;;N;LATIN SMALL LETTER U DIAERESIS HACEK;;01D9;;01D9 01DB;LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE;Lu;0;L;00DC 0300;;;;N;LATIN CAPITAL LETTER U DIAERESIS GRAVE;;;01DC; 01DC;LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE;Ll;0;L;00FC 0300;;;;N;LATIN SMALL LETTER U DIAERESIS GRAVE;;01DB;;01DB 01DD;LATIN SMALL LETTER TURNED E;Ll;0;L;;;;;N;;;018E;;018E 01DE;LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON;Lu;0;L;00C4 0304;;;;N;LATIN CAPITAL LETTER A DIAERESIS MACRON;;;01DF; 01DF;LATIN SMALL LETTER A WITH DIAERESIS AND MACRON;Ll;0;L;00E4 0304;;;;N;LATIN SMALL LETTER A DIAERESIS MACRON;;01DE;;01DE 01E0;LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON;Lu;0;L;0226 0304;;;;N;LATIN CAPITAL LETTER A DOT MACRON;;;01E1; 01E1;LATIN SMALL LETTER A WITH DOT ABOVE AND MACRON;Ll;0;L;0227 0304;;;;N;LATIN SMALL LETTER A DOT MACRON;;01E0;;01E0 01E2;LATIN CAPITAL LETTER AE WITH MACRON;Lu;0;L;00C6 0304;;;;N;LATIN CAPITAL LETTER A E MACRON;ash *;;01E3; 01E3;LATIN SMALL LETTER AE WITH MACRON;Ll;0;L;00E6 0304;;;;N;LATIN SMALL LETTER A E MACRON;ash *;01E2;;01E2 01E4;LATIN CAPITAL LETTER G WITH STROKE;Lu;0;L;;;;;N;LATIN CAPITAL LETTER G BAR;;;01E5; 01E5;LATIN SMALL LETTER G WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER G BAR;;01E4;;01E4 01E6;LATIN CAPITAL LETTER G WITH CARON;Lu;0;L;0047 030C;;;;N;LATIN CAPITAL LETTER G HACEK;;;01E7; 01E7;LATIN SMALL LETTER G WITH CARON;Ll;0;L;0067 030C;;;;N;LATIN SMALL LETTER G HACEK;;01E6;;01E6 01E8;LATIN CAPITAL LETTER K WITH CARON;Lu;0;L;004B 030C;;;;N;LATIN CAPITAL LETTER K HACEK;;;01E9; 01E9;LATIN SMALL LETTER K WITH CARON;Ll;0;L;006B 030C;;;;N;LATIN SMALL LETTER K HACEK;;01E8;;01E8 01EA;LATIN CAPITAL LETTER O WITH OGONEK;Lu;0;L;004F 0328;;;;N;LATIN CAPITAL LETTER O OGONEK;;;01EB; 01EB;LATIN SMALL LETTER O WITH OGONEK;Ll;0;L;006F 0328;;;;N;LATIN SMALL LETTER O OGONEK;;01EA;;01EA 01EC;LATIN CAPITAL LETTER O WITH OGONEK AND MACRON;Lu;0;L;01EA 0304;;;;N;LATIN CAPITAL LETTER O OGONEK MACRON;;;01ED; 01ED;LATIN SMALL LETTER O WITH OGONEK AND MACRON;Ll;0;L;01EB 0304;;;;N;LATIN SMALL LETTER O OGONEK MACRON;;01EC;;01EC 01EE;LATIN CAPITAL LETTER EZH WITH CARON;Lu;0;L;01B7 030C;;;;N;LATIN CAPITAL LETTER YOGH HACEK;;;01EF; 01EF;LATIN SMALL LETTER EZH WITH CARON;Ll;0;L;0292 030C;;;;N;LATIN SMALL LETTER YOGH HACEK;;01EE;;01EE 01F0;LATIN SMALL LETTER J WITH CARON;Ll;0;L;006A 030C;;;;N;LATIN SMALL LETTER J HACEK;;;; 01F1;LATIN CAPITAL LETTER DZ;Lu;0;L; 0044 005A;;;;N;;;;01F3;01F2 01F2;LATIN CAPITAL LETTER D WITH SMALL LETTER Z;Lt;0;L; 0044 007A;;;;N;;;01F1;01F3; 01F3;LATIN SMALL LETTER DZ;Ll;0;L; 0064 007A;;;;N;;;01F1;;01F2 01F4;LATIN CAPITAL LETTER G WITH ACUTE;Lu;0;L;0047 0301;;;;N;;;;01F5; 01F5;LATIN SMALL LETTER G WITH ACUTE;Ll;0;L;0067 0301;;;;N;;;01F4;;01F4 01F6;LATIN CAPITAL LETTER HWAIR;Lu;0;L;;;;;N;;;;0195; 01F7;LATIN CAPITAL LETTER WYNN;Lu;0;L;;;;;N;;;;01BF; 01F8;LATIN CAPITAL LETTER N WITH GRAVE;Lu;0;L;004E 0300;;;;N;;;;01F9; 01F9;LATIN SMALL LETTER N WITH GRAVE;Ll;0;L;006E 0300;;;;N;;;01F8;;01F8 01FA;LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE;Lu;0;L;00C5 0301;;;;N;;;;01FB; 01FB;LATIN SMALL LETTER A WITH RING ABOVE AND ACUTE;Ll;0;L;00E5 0301;;;;N;;;01FA;;01FA 01FC;LATIN CAPITAL LETTER AE WITH ACUTE;Lu;0;L;00C6 0301;;;;N;;ash *;;01FD; 01FD;LATIN SMALL LETTER AE WITH ACUTE;Ll;0;L;00E6 0301;;;;N;;ash *;01FC;;01FC 01FE;LATIN CAPITAL LETTER O WITH STROKE AND ACUTE;Lu;0;L;00D8 0301;;;;N;;;;01FF; 01FF;LATIN SMALL LETTER O WITH STROKE AND ACUTE;Ll;0;L;00F8 0301;;;;N;;;01FE;;01FE 0200;LATIN CAPITAL LETTER A WITH DOUBLE GRAVE;Lu;0;L;0041 030F;;;;N;;;;0201; 0201;LATIN SMALL LETTER A WITH DOUBLE GRAVE;Ll;0;L;0061 030F;;;;N;;;0200;;0200 0202;LATIN CAPITAL LETTER A WITH INVERTED BREVE;Lu;0;L;0041 0311;;;;N;;;;0203; 0203;LATIN SMALL LETTER A WITH INVERTED BREVE;Ll;0;L;0061 0311;;;;N;;;0202;;0202 0204;LATIN CAPITAL LETTER E WITH DOUBLE GRAVE;Lu;0;L;0045 030F;;;;N;;;;0205; 0205;LATIN SMALL LETTER E WITH DOUBLE GRAVE;Ll;0;L;0065 030F;;;;N;;;0204;;0204 0206;LATIN CAPITAL LETTER E WITH INVERTED BREVE;Lu;0;L;0045 0311;;;;N;;;;0207; 0207;LATIN SMALL LETTER E WITH INVERTED BREVE;Ll;0;L;0065 0311;;;;N;;;0206;;0206 0208;LATIN CAPITAL LETTER I WITH DOUBLE GRAVE;Lu;0;L;0049 030F;;;;N;;;;0209; 0209;LATIN SMALL LETTER I WITH DOUBLE GRAVE;Ll;0;L;0069 030F;;;;N;;;0208;;0208 020A;LATIN CAPITAL LETTER I WITH INVERTED BREVE;Lu;0;L;0049 0311;;;;N;;;;020B; 020B;LATIN SMALL LETTER I WITH INVERTED BREVE;Ll;0;L;0069 0311;;;;N;;;020A;;020A 020C;LATIN CAPITAL LETTER O WITH DOUBLE GRAVE;Lu;0;L;004F 030F;;;;N;;;;020D; 020D;LATIN SMALL LETTER O WITH DOUBLE GRAVE;Ll;0;L;006F 030F;;;;N;;;020C;;020C 020E;LATIN CAPITAL LETTER O WITH INVERTED BREVE;Lu;0;L;004F 0311;;;;N;;;;020F; 020F;LATIN SMALL LETTER O WITH INVERTED BREVE;Ll;0;L;006F 0311;;;;N;;;020E;;020E 0210;LATIN CAPITAL LETTER R WITH DOUBLE GRAVE;Lu;0;L;0052 030F;;;;N;;;;0211; 0211;LATIN SMALL LETTER R WITH DOUBLE GRAVE;Ll;0;L;0072 030F;;;;N;;;0210;;0210 0212;LATIN CAPITAL LETTER R WITH INVERTED BREVE;Lu;0;L;0052 0311;;;;N;;;;0213; 0213;LATIN SMALL LETTER R WITH INVERTED BREVE;Ll;0;L;0072 0311;;;;N;;;0212;;0212 0214;LATIN CAPITAL LETTER U WITH DOUBLE GRAVE;Lu;0;L;0055 030F;;;;N;;;;0215; 0215;LATIN SMALL LETTER U WITH DOUBLE GRAVE;Ll;0;L;0075 030F;;;;N;;;0214;;0214 0216;LATIN CAPITAL LETTER U WITH INVERTED BREVE;Lu;0;L;0055 0311;;;;N;;;;0217; 0217;LATIN SMALL LETTER U WITH INVERTED BREVE;Ll;0;L;0075 0311;;;;N;;;0216;;0216 0218;LATIN CAPITAL LETTER S WITH COMMA BELOW;Lu;0;L;0053 0326;;;;N;;*;;0219; 0219;LATIN SMALL LETTER S WITH COMMA BELOW;Ll;0;L;0073 0326;;;;N;;*;0218;;0218 021A;LATIN CAPITAL LETTER T WITH COMMA BELOW;Lu;0;L;0054 0326;;;;N;;*;;021B; 021B;LATIN SMALL LETTER T WITH COMMA BELOW;Ll;0;L;0074 0326;;;;N;;*;021A;;021A 021C;LATIN CAPITAL LETTER YOGH;Lu;0;L;;;;;N;;;;021D; 021D;LATIN SMALL LETTER YOGH;Ll;0;L;;;;;N;;;021C;;021C 021E;LATIN CAPITAL LETTER H WITH CARON;Lu;0;L;0048 030C;;;;N;;;;021F; 021F;LATIN SMALL LETTER H WITH CARON;Ll;0;L;0068 030C;;;;N;;;021E;;021E 0220;LATIN CAPITAL LETTER N WITH LONG RIGHT LEG;Lu;0;L;;;;;N;;;;019E; 0222;LATIN CAPITAL LETTER OU;Lu;0;L;;;;;N;;;;0223; 0223;LATIN SMALL LETTER OU;Ll;0;L;;;;;N;;;0222;;0222 0224;LATIN CAPITAL LETTER Z WITH HOOK;Lu;0;L;;;;;N;;;;0225; 0225;LATIN SMALL LETTER Z WITH HOOK;Ll;0;L;;;;;N;;;0224;;0224 0226;LATIN CAPITAL LETTER A WITH DOT ABOVE;Lu;0;L;0041 0307;;;;N;;;;0227; 0227;LATIN SMALL LETTER A WITH DOT ABOVE;Ll;0;L;0061 0307;;;;N;;;0226;;0226 0228;LATIN CAPITAL LETTER E WITH CEDILLA;Lu;0;L;0045 0327;;;;N;;;;0229; 0229;LATIN SMALL LETTER E WITH CEDILLA;Ll;0;L;0065 0327;;;;N;;;0228;;0228 022A;LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON;Lu;0;L;00D6 0304;;;;N;;;;022B; 022B;LATIN SMALL LETTER O WITH DIAERESIS AND MACRON;Ll;0;L;00F6 0304;;;;N;;;022A;;022A 022C;LATIN CAPITAL LETTER O WITH TILDE AND MACRON;Lu;0;L;00D5 0304;;;;N;;;;022D; 022D;LATIN SMALL LETTER O WITH TILDE AND MACRON;Ll;0;L;00F5 0304;;;;N;;;022C;;022C 022E;LATIN CAPITAL LETTER O WITH DOT ABOVE;Lu;0;L;004F 0307;;;;N;;;;022F; 022F;LATIN SMALL LETTER O WITH DOT ABOVE;Ll;0;L;006F 0307;;;;N;;;022E;;022E 0230;LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON;Lu;0;L;022E 0304;;;;N;;;;0231; 0231;LATIN SMALL LETTER O WITH DOT ABOVE AND MACRON;Ll;0;L;022F 0304;;;;N;;;0230;;0230 0232;LATIN CAPITAL LETTER Y WITH MACRON;Lu;0;L;0059 0304;;;;N;;;;0233; 0233;LATIN SMALL LETTER Y WITH MACRON;Ll;0;L;0079 0304;;;;N;;;0232;;0232 0250;LATIN SMALL LETTER TURNED A;Ll;0;L;;;;;N;;;;; 0251;LATIN SMALL LETTER ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT A;;;; 0252;LATIN SMALL LETTER TURNED ALPHA;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED SCRIPT A;;;; 0253;LATIN SMALL LETTER B WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER B HOOK;;0181;;0181 0254;LATIN SMALL LETTER OPEN O;Ll;0;L;;;;;N;;;0186;;0186 0255;LATIN SMALL LETTER C WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER C CURL;;;; 0256;LATIN SMALL LETTER D WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER D RETROFLEX HOOK;;0189;;0189 0257;LATIN SMALL LETTER D WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER D HOOK;;018A;;018A 0258;LATIN SMALL LETTER REVERSED E;Ll;0;L;;;;;N;;;;; 0259;LATIN SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;018F;;018F 025A;LATIN SMALL LETTER SCHWA WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCHWA HOOK;;;; 025B;LATIN SMALL LETTER OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER EPSILON;;0190;;0190 025C;LATIN SMALL LETTER REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON;;;; 025D;LATIN SMALL LETTER REVERSED OPEN E WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED EPSILON HOOK;;;; 025E;LATIN SMALL LETTER CLOSED REVERSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED REVERSED EPSILON;;;; 025F;LATIN SMALL LETTER DOTLESS J WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR;;;; 0260;LATIN SMALL LETTER G WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER G HOOK;;0193;;0193 0261;LATIN SMALL LETTER SCRIPT G;Ll;0;L;;;;;N;;;;; 0262;LATIN LETTER SMALL CAPITAL G;Ll;0;L;;;;;N;;;;; 0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194 0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;; 0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;;; 0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;; 0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;; 0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197 0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196 026A;LATIN LETTER SMALL CAPITAL I;Ll;0;L;;;;;N;;;;; 026B;LATIN SMALL LETTER L WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;; 026C;LATIN SMALL LETTER L WITH BELT;Ll;0;L;;;;;N;LATIN SMALL LETTER L BELT;;;; 026D;LATIN SMALL LETTER L WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER L RETROFLEX HOOK;;;; 026E;LATIN SMALL LETTER LEZH;Ll;0;L;;;;;N;LATIN SMALL LETTER L YOGH;;;; 026F;LATIN SMALL LETTER TURNED M;Ll;0;L;;;;;N;;;019C;;019C 0270;LATIN SMALL LETTER TURNED M WITH LONG LEG;Ll;0;L;;;;;N;;;;; 0271;LATIN SMALL LETTER M WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER M HOOK;;;; 0272;LATIN SMALL LETTER N WITH LEFT HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N HOOK;;019D;;019D 0273;LATIN SMALL LETTER N WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER N RETROFLEX HOOK;;;; 0274;LATIN LETTER SMALL CAPITAL N;Ll;0;L;;;;;N;;;;; 0275;LATIN SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;019F;;019F 0276;LATIN LETTER SMALL CAPITAL OE;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL O E;;;; 0277;LATIN SMALL LETTER CLOSED OMEGA;Ll;0;L;;;;;N;;;;; 0278;LATIN SMALL LETTER PHI;Ll;0;L;;;;;N;;;;; 0279;LATIN SMALL LETTER TURNED R;Ll;0;L;;;;;N;;;;; 027A;LATIN SMALL LETTER TURNED R WITH LONG LEG;Ll;0;L;;;;;N;;;;; 027B;LATIN SMALL LETTER TURNED R WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER TURNED R HOOK;;;; 027C;LATIN SMALL LETTER R WITH LONG LEG;Ll;0;L;;;;;N;;;;; 027D;LATIN SMALL LETTER R WITH TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER R HOOK;;;; 027E;LATIN SMALL LETTER R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER FISHHOOK R;;;; 027F;LATIN SMALL LETTER REVERSED R WITH FISHHOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER REVERSED FISHHOOK R;;;; 0280;LATIN LETTER SMALL CAPITAL R;Ll;0;L;;;;;N;;*;01A6;;01A6 0281;LATIN LETTER SMALL CAPITAL INVERTED R;Ll;0;L;;;;;N;;;;; 0282;LATIN SMALL LETTER S WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER S HOOK;;;; 0283;LATIN SMALL LETTER ESH;Ll;0;L;;;;;N;;;01A9;;01A9 0284;LATIN SMALL LETTER DOTLESS J WITH STROKE AND HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER DOTLESS J BAR HOOK;;;; 0285;LATIN SMALL LETTER SQUAT REVERSED ESH;Ll;0;L;;;;;N;;;;; 0286;LATIN SMALL LETTER ESH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER ESH CURL;;;; 0287;LATIN SMALL LETTER TURNED T;Ll;0;L;;;;;N;;;;; 0288;LATIN SMALL LETTER T WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER T RETROFLEX HOOK;;01AE;;01AE 0289;LATIN SMALL LETTER U BAR;Ll;0;L;;;;;N;;;;; 028A;LATIN SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;01B1;;01B1 028B;LATIN SMALL LETTER V WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER SCRIPT V;;01B2;;01B2 028C;LATIN SMALL LETTER TURNED V;Ll;0;L;;;;;N;;;;; 028D;LATIN SMALL LETTER TURNED W;Ll;0;L;;;;;N;;;;; 028E;LATIN SMALL LETTER TURNED Y;Ll;0;L;;;;;N;;;;; 028F;LATIN LETTER SMALL CAPITAL Y;Ll;0;L;;;;;N;;;;; 0290;LATIN SMALL LETTER Z WITH RETROFLEX HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Z RETROFLEX HOOK;;;; 0291;LATIN SMALL LETTER Z WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER Z CURL;;;; 0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7 0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;; 0294;LATIN LETTER GLOTTAL STOP;Ll;0;L;;;;;N;;;;; 0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;; 0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;; 0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;; 0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;; 0299;LATIN LETTER SMALL CAPITAL B;Ll;0;L;;;;;N;;;;; 029A;LATIN SMALL LETTER CLOSED OPEN E;Ll;0;L;;;;;N;LATIN SMALL LETTER CLOSED EPSILON;;;; 029B;LATIN LETTER SMALL CAPITAL G WITH HOOK;Ll;0;L;;;;;N;LATIN LETTER SMALL CAPITAL G HOOK;;;; 029C;LATIN LETTER SMALL CAPITAL H;Ll;0;L;;;;;N;;;;; 029D;LATIN SMALL LETTER J WITH CROSSED-TAIL;Ll;0;L;;;;;N;LATIN SMALL LETTER CROSSED-TAIL J;;;; 029E;LATIN SMALL LETTER TURNED K;Ll;0;L;;;;;N;;;;; 029F;LATIN LETTER SMALL CAPITAL L;Ll;0;L;;;;;N;;;;; 02A0;LATIN SMALL LETTER Q WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER Q HOOK;;;; 02A1;LATIN LETTER GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER GLOTTAL STOP BAR;;;; 02A2;LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP BAR;;;; 02A3;LATIN SMALL LETTER DZ DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z;;;; 02A4;LATIN SMALL LETTER DEZH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER D YOGH;;;; 02A5;LATIN SMALL LETTER DZ DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER D Z CURL;;;; 02A6;LATIN SMALL LETTER TS DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T S;;;; 02A7;LATIN SMALL LETTER TESH DIGRAPH;Ll;0;L;;;;;N;LATIN SMALL LETTER T ESH;;;; 02A8;LATIN SMALL LETTER TC DIGRAPH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER T C CURL;;;; 02A9;LATIN SMALL LETTER FENG DIGRAPH;Ll;0;L;;;;;N;;;;; 02AA;LATIN SMALL LETTER LS DIGRAPH;Ll;0;L;;;;;N;;;;; 02AB;LATIN SMALL LETTER LZ DIGRAPH;Ll;0;L;;;;;N;;;;; 02AC;LATIN LETTER BILABIAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; 02AD;LATIN LETTER BIDENTAL PERCUSSIVE;Ll;0;L;;;;;N;;;;; 02B0;MODIFIER LETTER SMALL H;Lm;0;L; 0068;;;;N;;;;; 02B1;MODIFIER LETTER SMALL H WITH HOOK;Lm;0;L; 0266;;;;N;MODIFIER LETTER SMALL H HOOK;;;; 02B2;MODIFIER LETTER SMALL J;Lm;0;L; 006A;;;;N;;;;; 02B3;MODIFIER LETTER SMALL R;Lm;0;L; 0072;;;;N;;;;; 02B4;MODIFIER LETTER SMALL TURNED R;Lm;0;L; 0279;;;;N;;;;; 02B5;MODIFIER LETTER SMALL TURNED R WITH HOOK;Lm;0;L; 027B;;;;N;MODIFIER LETTER SMALL TURNED R HOOK;;;; 02B6;MODIFIER LETTER SMALL CAPITAL INVERTED R;Lm;0;L; 0281;;;;N;;;;; 02B7;MODIFIER LETTER SMALL W;Lm;0;L; 0077;;;;N;;;;; 02B8;MODIFIER LETTER SMALL Y;Lm;0;L; 0079;;;;N;;;;; 02B9;MODIFIER LETTER PRIME;Sk;0;ON;;;;;N;;;;; 02BA;MODIFIER LETTER DOUBLE PRIME;Sk;0;ON;;;;;N;;;;; 02BB;MODIFIER LETTER TURNED COMMA;Lm;0;L;;;;;N;;;;; 02BC;MODIFIER LETTER APOSTROPHE;Lm;0;L;;;;;N;;;;; 02BD;MODIFIER LETTER REVERSED COMMA;Lm;0;L;;;;;N;;;;; 02BE;MODIFIER LETTER RIGHT HALF RING;Lm;0;L;;;;;N;;;;; 02BF;MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; 02C0;MODIFIER LETTER GLOTTAL STOP;Lm;0;L;;;;;N;;;;; 02C1;MODIFIER LETTER REVERSED GLOTTAL STOP;Lm;0;L;;;;;N;;;;; 02C2;MODIFIER LETTER LEFT ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C3;MODIFIER LETTER RIGHT ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C4;MODIFIER LETTER UP ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C5;MODIFIER LETTER DOWN ARROWHEAD;Sk;0;ON;;;;;N;;;;; 02C6;MODIFIER LETTER CIRCUMFLEX ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER CIRCUMFLEX;;;; 02C7;CARON;Sk;0;ON;;;;;N;MODIFIER LETTER HACEK;Mandarin Chinese third tone;;; 02C8;MODIFIER LETTER VERTICAL LINE;Sk;0;ON;;;;;N;;;;; 02C9;MODIFIER LETTER MACRON;Sk;0;ON;;;;;N;;Mandarin Chinese first tone;;; 02CA;MODIFIER LETTER ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER ACUTE;Mandarin Chinese second tone;;; 02CB;MODIFIER LETTER GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER GRAVE;Mandarin Chinese fourth tone;;; 02CC;MODIFIER LETTER LOW VERTICAL LINE;Sk;0;ON;;;;;N;;;;; 02CD;MODIFIER LETTER LOW MACRON;Sk;0;ON;;;;;N;;;;; 02CE;MODIFIER LETTER LOW GRAVE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW GRAVE;;;; 02CF;MODIFIER LETTER LOW ACUTE ACCENT;Sk;0;ON;;;;;N;MODIFIER LETTER LOW ACUTE;;;; 02D0;MODIFIER LETTER TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; 02D1;MODIFIER LETTER HALF TRIANGULAR COLON;Lm;0;L;;;;;N;;;;; 02D2;MODIFIER LETTER CENTRED RIGHT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED RIGHT HALF RING;;;; 02D3;MODIFIER LETTER CENTRED LEFT HALF RING;Sk;0;ON;;;;;N;MODIFIER LETTER CENTERED LEFT HALF RING;;;; 02D4;MODIFIER LETTER UP TACK;Sk;0;ON;;;;;N;;;;; 02D5;MODIFIER LETTER DOWN TACK;Sk;0;ON;;;;;N;;;;; 02D6;MODIFIER LETTER PLUS SIGN;Sk;0;ON;;;;;N;;;;; 02D7;MODIFIER LETTER MINUS SIGN;Sk;0;ON;;;;;N;;;;; 02D8;BREVE;Sk;0;ON; 0020 0306;;;;N;SPACING BREVE;;;; 02D9;DOT ABOVE;Sk;0;ON; 0020 0307;;;;N;SPACING DOT ABOVE;Mandarin Chinese light tone;;; 02DA;RING ABOVE;Sk;0;ON; 0020 030A;;;;N;SPACING RING ABOVE;;;; 02DB;OGONEK;Sk;0;ON; 0020 0328;;;;N;SPACING OGONEK;;;; 02DC;SMALL TILDE;Sk;0;ON; 0020 0303;;;;N;SPACING TILDE;;;; 02DD;DOUBLE ACUTE ACCENT;Sk;0;ON; 0020 030B;;;;N;SPACING DOUBLE ACUTE;;;; 02DE;MODIFIER LETTER RHOTIC HOOK;Sk;0;ON;;;;;N;;;;; 02DF;MODIFIER LETTER CROSS ACCENT;Sk;0;ON;;;;;N;;;;; 02E0;MODIFIER LETTER SMALL GAMMA;Lm;0;L; 0263;;;;N;;;;; 02E1;MODIFIER LETTER SMALL L;Lm;0;L; 006C;;;;N;;;;; 02E2;MODIFIER LETTER SMALL S;Lm;0;L; 0073;;;;N;;;;; 02E3;MODIFIER LETTER SMALL X;Lm;0;L; 0078;;;;N;;;;; 02E4;MODIFIER LETTER SMALL REVERSED GLOTTAL STOP;Lm;0;L; 0295;;;;N;;;;; 02E5;MODIFIER LETTER EXTRA-HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; 02E6;MODIFIER LETTER HIGH TONE BAR;Sk;0;ON;;;;;N;;;;; 02E7;MODIFIER LETTER MID TONE BAR;Sk;0;ON;;;;;N;;;;; 02E8;MODIFIER LETTER LOW TONE BAR;Sk;0;ON;;;;;N;;;;; 02E9;MODIFIER LETTER EXTRA-LOW TONE BAR;Sk;0;ON;;;;;N;;;;; 02EA;MODIFIER LETTER YIN DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; 02EB;MODIFIER LETTER YANG DEPARTING TONE MARK;Sk;0;ON;;;;;N;;;;; 02EC;MODIFIER LETTER VOICING;Sk;0;ON;;;;;N;;;;; 02ED;MODIFIER LETTER UNASPIRATED;Sk;0;ON;;;;;N;;;;; 02EE;MODIFIER LETTER DOUBLE APOSTROPHE;Lm;0;L;;;;;N;;;;; 0300;COMBINING GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING GRAVE;Varia;;; 0301;COMBINING ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING ACUTE;Oxia, Tonos;;; 0302;COMBINING CIRCUMFLEX ACCENT;Mn;230;NSM;;;;;N;NON-SPACING CIRCUMFLEX;;;; 0303;COMBINING TILDE;Mn;230;NSM;;;;;N;NON-SPACING TILDE;;;; 0304;COMBINING MACRON;Mn;230;NSM;;;;;N;NON-SPACING MACRON;;;; 0305;COMBINING OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING OVERSCORE;;;; 0306;COMBINING BREVE;Mn;230;NSM;;;;;N;NON-SPACING BREVE;Vrachy;;; 0307;COMBINING DOT ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOT ABOVE;;;; 0308;COMBINING DIAERESIS;Mn;230;NSM;;;;;N;NON-SPACING DIAERESIS;Dialytika;;; 0309;COMBINING HOOK ABOVE;Mn;230;NSM;;;;;N;NON-SPACING HOOK ABOVE;;;; 030A;COMBINING RING ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RING ABOVE;;;; 030B;COMBINING DOUBLE ACUTE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE ACUTE;;;; 030C;COMBINING CARON;Mn;230;NSM;;;;;N;NON-SPACING HACEK;;;; 030D;COMBINING VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL LINE ABOVE;;;; 030E;COMBINING DOUBLE VERTICAL LINE ABOVE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE VERTICAL LINE ABOVE;;;; 030F;COMBINING DOUBLE GRAVE ACCENT;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE GRAVE;;;; 0310;COMBINING CANDRABINDU;Mn;230;NSM;;;;;N;NON-SPACING CANDRABINDU;;;; 0311;COMBINING INVERTED BREVE;Mn;230;NSM;;;;;N;NON-SPACING INVERTED BREVE;;;; 0312;COMBINING TURNED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING TURNED COMMA ABOVE;;;; 0313;COMBINING COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING COMMA ABOVE;Psili;;; 0314;COMBINING REVERSED COMMA ABOVE;Mn;230;NSM;;;;;N;NON-SPACING REVERSED COMMA ABOVE;Dasia;;; 0315;COMBINING COMMA ABOVE RIGHT;Mn;232;NSM;;;;;N;NON-SPACING COMMA ABOVE RIGHT;;;; 0316;COMBINING GRAVE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING GRAVE BELOW;;;; 0317;COMBINING ACUTE ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING ACUTE BELOW;;;; 0318;COMBINING LEFT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT TACK BELOW;;;; 0319;COMBINING RIGHT TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT TACK BELOW;;;; 031A;COMBINING LEFT ANGLE ABOVE;Mn;232;NSM;;;;;N;NON-SPACING LEFT ANGLE ABOVE;;;; 031B;COMBINING HORN;Mn;216;NSM;;;;;N;NON-SPACING HORN;;;; 031C;COMBINING LEFT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING LEFT HALF RING BELOW;;;; 031D;COMBINING UP TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING UP TACK BELOW;;;; 031E;COMBINING DOWN TACK BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOWN TACK BELOW;;;; 031F;COMBINING PLUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING PLUS SIGN BELOW;;;; 0320;COMBINING MINUS SIGN BELOW;Mn;220;NSM;;;;;N;NON-SPACING MINUS SIGN BELOW;;;; 0321;COMBINING PALATALIZED HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING PALATALIZED HOOK BELOW;;;; 0322;COMBINING RETROFLEX HOOK BELOW;Mn;202;NSM;;;;;N;NON-SPACING RETROFLEX HOOK BELOW;;;; 0323;COMBINING DOT BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOT BELOW;;;; 0324;COMBINING DIAERESIS BELOW;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE DOT BELOW;;;; 0325;COMBINING RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RING BELOW;;;; 0326;COMBINING COMMA BELOW;Mn;220;NSM;;;;;N;NON-SPACING COMMA BELOW;;;; 0327;COMBINING CEDILLA;Mn;202;NSM;;;;;N;NON-SPACING CEDILLA;;;; 0328;COMBINING OGONEK;Mn;202;NSM;;;;;N;NON-SPACING OGONEK;;;; 0329;COMBINING VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;NON-SPACING VERTICAL LINE BELOW;;;; 032A;COMBINING BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BRIDGE BELOW;;;; 032B;COMBINING INVERTED DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED DOUBLE ARCH BELOW;;;; 032C;COMBINING CARON BELOW;Mn;220;NSM;;;;;N;NON-SPACING HACEK BELOW;;;; 032D;COMBINING CIRCUMFLEX ACCENT BELOW;Mn;220;NSM;;;;;N;NON-SPACING CIRCUMFLEX BELOW;;;; 032E;COMBINING BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING BREVE BELOW;;;; 032F;COMBINING INVERTED BREVE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BREVE BELOW;;;; 0330;COMBINING TILDE BELOW;Mn;220;NSM;;;;;N;NON-SPACING TILDE BELOW;;;; 0331;COMBINING MACRON BELOW;Mn;220;NSM;;;;;N;NON-SPACING MACRON BELOW;;;; 0332;COMBINING LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING UNDERSCORE;;;; 0333;COMBINING DOUBLE LOW LINE;Mn;220;NSM;;;;;N;NON-SPACING DOUBLE UNDERSCORE;;;; 0334;COMBINING TILDE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING TILDE OVERLAY;;;; 0335;COMBINING SHORT STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT BAR OVERLAY;;;; 0336;COMBINING LONG STROKE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG BAR OVERLAY;;;; 0337;COMBINING SHORT SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT SLASH OVERLAY;;;; 0338;COMBINING LONG SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG SLASH OVERLAY;;;; 0339;COMBINING RIGHT HALF RING BELOW;Mn;220;NSM;;;;;N;NON-SPACING RIGHT HALF RING BELOW;;;; 033A;COMBINING INVERTED BRIDGE BELOW;Mn;220;NSM;;;;;N;NON-SPACING INVERTED BRIDGE BELOW;;;; 033B;COMBINING SQUARE BELOW;Mn;220;NSM;;;;;N;NON-SPACING SQUARE BELOW;;;; 033C;COMBINING SEAGULL BELOW;Mn;220;NSM;;;;;N;NON-SPACING SEAGULL BELOW;;;; 033D;COMBINING X ABOVE;Mn;230;NSM;;;;;N;NON-SPACING X ABOVE;;;; 033E;COMBINING VERTICAL TILDE;Mn;230;NSM;;;;;N;NON-SPACING VERTICAL TILDE;;;; 033F;COMBINING DOUBLE OVERLINE;Mn;230;NSM;;;;;N;NON-SPACING DOUBLE OVERSCORE;;;; 0340;COMBINING GRAVE TONE MARK;Mn;230;NSM;0300;;;;N;NON-SPACING GRAVE TONE MARK;Vietnamese;;; 0341;COMBINING ACUTE TONE MARK;Mn;230;NSM;0301;;;;N;NON-SPACING ACUTE TONE MARK;Vietnamese;;; 0342;COMBINING GREEK PERISPOMENI;Mn;230;NSM;;;;;N;;;;; 0343;COMBINING GREEK KORONIS;Mn;230;NSM;0313;;;;N;;;;; 0344;COMBINING GREEK DIALYTIKA TONOS;Mn;230;NSM;0308 0301;;;;N;GREEK NON-SPACING DIAERESIS TONOS;;;; 0345;COMBINING GREEK YPOGEGRAMMENI;Mn;240;NSM;;;;;N;GREEK NON-SPACING IOTA BELOW;;0399;;0399 0346;COMBINING BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; 0347;COMBINING EQUALS SIGN BELOW;Mn;220;NSM;;;;;N;;;;; 0348;COMBINING DOUBLE VERTICAL LINE BELOW;Mn;220;NSM;;;;;N;;;;; 0349;COMBINING LEFT ANGLE BELOW;Mn;220;NSM;;;;;N;;;;; 034A;COMBINING NOT TILDE ABOVE;Mn;230;NSM;;;;;N;;;;; 034B;COMBINING HOMOTHETIC ABOVE;Mn;230;NSM;;;;;N;;;;; 034C;COMBINING ALMOST EQUAL TO ABOVE;Mn;230;NSM;;;;;N;;;;; 034D;COMBINING LEFT RIGHT ARROW BELOW;Mn;220;NSM;;;;;N;;;;; 034E;COMBINING UPWARDS ARROW BELOW;Mn;220;NSM;;;;;N;;;;; 034F;COMBINING GRAPHEME JOINER;Mn;0;NSM;;;;;N;;;;; 0360;COMBINING DOUBLE TILDE;Mn;234;NSM;;;;;N;;;;; 0361;COMBINING DOUBLE INVERTED BREVE;Mn;234;NSM;;;;;N;;;;; 0362;COMBINING DOUBLE RIGHTWARDS ARROW BELOW;Mn;233;NSM;;;;;N;;;;; 0363;COMBINING LATIN SMALL LETTER A;Mn;230;NSM;;;;;N;;;;; 0364;COMBINING LATIN SMALL LETTER E;Mn;230;NSM;;;;;N;;;;; 0365;COMBINING LATIN SMALL LETTER I;Mn;230;NSM;;;;;N;;;;; 0366;COMBINING LATIN SMALL LETTER O;Mn;230;NSM;;;;;N;;;;; 0367;COMBINING LATIN SMALL LETTER U;Mn;230;NSM;;;;;N;;;;; 0368;COMBINING LATIN SMALL LETTER C;Mn;230;NSM;;;;;N;;;;; 0369;COMBINING LATIN SMALL LETTER D;Mn;230;NSM;;;;;N;;;;; 036A;COMBINING LATIN SMALL LETTER H;Mn;230;NSM;;;;;N;;;;; 036B;COMBINING LATIN SMALL LETTER M;Mn;230;NSM;;;;;N;;;;; 036C;COMBINING LATIN SMALL LETTER R;Mn;230;NSM;;;;;N;;;;; 036D;COMBINING LATIN SMALL LETTER T;Mn;230;NSM;;;;;N;;;;; 036E;COMBINING LATIN SMALL LETTER V;Mn;230;NSM;;;;;N;;;;; 036F;COMBINING LATIN SMALL LETTER X;Mn;230;NSM;;;;;N;;;;; 0374;GREEK NUMERAL SIGN;Sk;0;ON;02B9;;;;N;GREEK UPPER NUMERAL SIGN;Dexia keraia;;; 0375;GREEK LOWER NUMERAL SIGN;Sk;0;ON;;;;;N;;Aristeri keraia;;; 037A;GREEK YPOGEGRAMMENI;Lm;0;L; 0020 0345;;;;N;GREEK SPACING IOTA BELOW;;;; 037E;GREEK QUESTION MARK;Po;0;ON;003B;;;;N;;Erotimatiko;;; 0384;GREEK TONOS;Sk;0;ON; 0020 0301;;;;N;GREEK SPACING TONOS;;;; 0385;GREEK DIALYTIKA TONOS;Sk;0;ON;00A8 0301;;;;N;GREEK SPACING DIAERESIS TONOS;;;; 0386;GREEK CAPITAL LETTER ALPHA WITH TONOS;Lu;0;L;0391 0301;;;;N;GREEK CAPITAL LETTER ALPHA TONOS;;;03AC; 0387;GREEK ANO TELEIA;Po;0;ON;00B7;;;;N;;;;; 0388;GREEK CAPITAL LETTER EPSILON WITH TONOS;Lu;0;L;0395 0301;;;;N;GREEK CAPITAL LETTER EPSILON TONOS;;;03AD; 0389;GREEK CAPITAL LETTER ETA WITH TONOS;Lu;0;L;0397 0301;;;;N;GREEK CAPITAL LETTER ETA TONOS;;;03AE; 038A;GREEK CAPITAL LETTER IOTA WITH TONOS;Lu;0;L;0399 0301;;;;N;GREEK CAPITAL LETTER IOTA TONOS;;;03AF; 038C;GREEK CAPITAL LETTER OMICRON WITH TONOS;Lu;0;L;039F 0301;;;;N;GREEK CAPITAL LETTER OMICRON TONOS;;;03CC; 038E;GREEK CAPITAL LETTER UPSILON WITH TONOS;Lu;0;L;03A5 0301;;;;N;GREEK CAPITAL LETTER UPSILON TONOS;;;03CD; 038F;GREEK CAPITAL LETTER OMEGA WITH TONOS;Lu;0;L;03A9 0301;;;;N;GREEK CAPITAL LETTER OMEGA TONOS;;;03CE; 0390;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS;Ll;0;L;03CA 0301;;;;N;GREEK SMALL LETTER IOTA DIAERESIS TONOS;;;; 0391;GREEK CAPITAL LETTER ALPHA;Lu;0;L;;;;;N;;;;03B1; 0392;GREEK CAPITAL LETTER BETA;Lu;0;L;;;;;N;;;;03B2; 0393;GREEK CAPITAL LETTER GAMMA;Lu;0;L;;;;;N;;;;03B3; 0394;GREEK CAPITAL LETTER DELTA;Lu;0;L;;;;;N;;;;03B4; 0395;GREEK CAPITAL LETTER EPSILON;Lu;0;L;;;;;N;;;;03B5; 0396;GREEK CAPITAL LETTER ZETA;Lu;0;L;;;;;N;;;;03B6; 0397;GREEK CAPITAL LETTER ETA;Lu;0;L;;;;;N;;;;03B7; 0398;GREEK CAPITAL LETTER THETA;Lu;0;L;;;;;N;;;;03B8; 0399;GREEK CAPITAL LETTER IOTA;Lu;0;L;;;;;N;;;;03B9; 039A;GREEK CAPITAL LETTER KAPPA;Lu;0;L;;;;;N;;;;03BA; 039B;GREEK CAPITAL LETTER LAMDA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER LAMBDA;;;03BB; 039C;GREEK CAPITAL LETTER MU;Lu;0;L;;;;;N;;;;03BC; 039D;GREEK CAPITAL LETTER NU;Lu;0;L;;;;;N;;;;03BD; 039E;GREEK CAPITAL LETTER XI;Lu;0;L;;;;;N;;;;03BE; 039F;GREEK CAPITAL LETTER OMICRON;Lu;0;L;;;;;N;;;;03BF; 03A0;GREEK CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;03C0; 03A1;GREEK CAPITAL LETTER RHO;Lu;0;L;;;;;N;;;;03C1; 03A3;GREEK CAPITAL LETTER SIGMA;Lu;0;L;;;;;N;;;;03C3; 03A4;GREEK CAPITAL LETTER TAU;Lu;0;L;;;;;N;;;;03C4; 03A5;GREEK CAPITAL LETTER UPSILON;Lu;0;L;;;;;N;;;;03C5; 03A6;GREEK CAPITAL LETTER PHI;Lu;0;L;;;;;N;;;;03C6; 03A7;GREEK CAPITAL LETTER CHI;Lu;0;L;;;;;N;;;;03C7; 03A8;GREEK CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;03C8; 03A9;GREEK CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;03C9; 03AA;GREEK CAPITAL LETTER IOTA WITH DIALYTIKA;Lu;0;L;0399 0308;;;;N;GREEK CAPITAL LETTER IOTA DIAERESIS;;;03CA; 03AB;GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA;Lu;0;L;03A5 0308;;;;N;GREEK CAPITAL LETTER UPSILON DIAERESIS;;;03CB; 03AC;GREEK SMALL LETTER ALPHA WITH TONOS;Ll;0;L;03B1 0301;;;;N;GREEK SMALL LETTER ALPHA TONOS;;0386;;0386 03AD;GREEK SMALL LETTER EPSILON WITH TONOS;Ll;0;L;03B5 0301;;;;N;GREEK SMALL LETTER EPSILON TONOS;;0388;;0388 03AE;GREEK SMALL LETTER ETA WITH TONOS;Ll;0;L;03B7 0301;;;;N;GREEK SMALL LETTER ETA TONOS;;0389;;0389 03AF;GREEK SMALL LETTER IOTA WITH TONOS;Ll;0;L;03B9 0301;;;;N;GREEK SMALL LETTER IOTA TONOS;;038A;;038A 03B0;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS;Ll;0;L;03CB 0301;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS TONOS;;;; 03B1;GREEK SMALL LETTER ALPHA;Ll;0;L;;;;;N;;;0391;;0391 03B2;GREEK SMALL LETTER BETA;Ll;0;L;;;;;N;;;0392;;0392 03B3;GREEK SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0393;;0393 03B4;GREEK SMALL LETTER DELTA;Ll;0;L;;;;;N;;;0394;;0394 03B5;GREEK SMALL LETTER EPSILON;Ll;0;L;;;;;N;;;0395;;0395 03B6;GREEK SMALL LETTER ZETA;Ll;0;L;;;;;N;;;0396;;0396 03B7;GREEK SMALL LETTER ETA;Ll;0;L;;;;;N;;;0397;;0397 03B8;GREEK SMALL LETTER THETA;Ll;0;L;;;;;N;;;0398;;0398 03B9;GREEK SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0399;;0399 03BA;GREEK SMALL LETTER KAPPA;Ll;0;L;;;;;N;;;039A;;039A 03BB;GREEK SMALL LETTER LAMDA;Ll;0;L;;;;;N;GREEK SMALL LETTER LAMBDA;;039B;;039B 03BC;GREEK SMALL LETTER MU;Ll;0;L;;;;;N;;;039C;;039C 03BD;GREEK SMALL LETTER NU;Ll;0;L;;;;;N;;;039D;;039D 03BE;GREEK SMALL LETTER XI;Ll;0;L;;;;;N;;;039E;;039E 03BF;GREEK SMALL LETTER OMICRON;Ll;0;L;;;;;N;;;039F;;039F 03C0;GREEK SMALL LETTER PI;Ll;0;L;;;;;N;;;03A0;;03A0 03C1;GREEK SMALL LETTER RHO;Ll;0;L;;;;;N;;;03A1;;03A1 03C2;GREEK SMALL LETTER FINAL SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 03C3;GREEK SMALL LETTER SIGMA;Ll;0;L;;;;;N;;;03A3;;03A3 03C4;GREEK SMALL LETTER TAU;Ll;0;L;;;;;N;;;03A4;;03A4 03C5;GREEK SMALL LETTER UPSILON;Ll;0;L;;;;;N;;;03A5;;03A5 03C6;GREEK SMALL LETTER PHI;Ll;0;L;;;;;N;;;03A6;;03A6 03C7;GREEK SMALL LETTER CHI;Ll;0;L;;;;;N;;;03A7;;03A7 03C8;GREEK SMALL LETTER PSI;Ll;0;L;;;;;N;;;03A8;;03A8 03C9;GREEK SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;03A9;;03A9 03CA;GREEK SMALL LETTER IOTA WITH DIALYTIKA;Ll;0;L;03B9 0308;;;;N;GREEK SMALL LETTER IOTA DIAERESIS;;03AA;;03AA 03CB;GREEK SMALL LETTER UPSILON WITH DIALYTIKA;Ll;0;L;03C5 0308;;;;N;GREEK SMALL LETTER UPSILON DIAERESIS;;03AB;;03AB 03CC;GREEK SMALL LETTER OMICRON WITH TONOS;Ll;0;L;03BF 0301;;;;N;GREEK SMALL LETTER OMICRON TONOS;;038C;;038C 03CD;GREEK SMALL LETTER UPSILON WITH TONOS;Ll;0;L;03C5 0301;;;;N;GREEK SMALL LETTER UPSILON TONOS;;038E;;038E 03CE;GREEK SMALL LETTER OMEGA WITH TONOS;Ll;0;L;03C9 0301;;;;N;GREEK SMALL LETTER OMEGA TONOS;;038F;;038F 03D0;GREEK BETA SYMBOL;Ll;0;L; 03B2;;;;N;GREEK SMALL LETTER CURLED BETA;;0392;;0392 03D1;GREEK THETA SYMBOL;Ll;0;L; 03B8;;;;N;GREEK SMALL LETTER SCRIPT THETA;;0398;;0398 03D2;GREEK UPSILON WITH HOOK SYMBOL;Lu;0;L; 03A5;;;;N;GREEK CAPITAL LETTER UPSILON HOOK;;;; 03D3;GREEK UPSILON WITH ACUTE AND HOOK SYMBOL;Lu;0;L;03D2 0301;;;;N;GREEK CAPITAL LETTER UPSILON HOOK TONOS;;;; 03D4;GREEK UPSILON WITH DIAERESIS AND HOOK SYMBOL;Lu;0;L;03D2 0308;;;;N;GREEK CAPITAL LETTER UPSILON HOOK DIAERESIS;;;; 03D5;GREEK PHI SYMBOL;Ll;0;L; 03C6;;;;N;GREEK SMALL LETTER SCRIPT PHI;;03A6;;03A6 03D6;GREEK PI SYMBOL;Ll;0;L; 03C0;;;;N;GREEK SMALL LETTER OMEGA PI;;03A0;;03A0 03D7;GREEK KAI SYMBOL;Ll;0;L;;;;;N;;;;; 03D8;GREEK LETTER ARCHAIC KOPPA;Lu;0;L;;;;;N;;*;;03D9; 03D9;GREEK SMALL LETTER ARCHAIC KOPPA;Ll;0;L;;;;;N;;*;03D8;;03D8 03DA;GREEK LETTER STIGMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER STIGMA;;;03DB; 03DB;GREEK SMALL LETTER STIGMA;Ll;0;L;;;;;N;;;03DA;;03DA 03DC;GREEK LETTER DIGAMMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DIGAMMA;;;03DD; 03DD;GREEK SMALL LETTER DIGAMMA;Ll;0;L;;;;;N;;;03DC;;03DC 03DE;GREEK LETTER KOPPA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KOPPA;;;03DF; 03DF;GREEK SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;03DE;;03DE 03E0;GREEK LETTER SAMPI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SAMPI;;;03E1; 03E1;GREEK SMALL LETTER SAMPI;Ll;0;L;;;;;N;;;03E0;;03E0 03E2;COPTIC CAPITAL LETTER SHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHEI;;;03E3; 03E3;COPTIC SMALL LETTER SHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER SHEI;;03E2;;03E2 03E4;COPTIC CAPITAL LETTER FEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER FEI;;;03E5; 03E5;COPTIC SMALL LETTER FEI;Ll;0;L;;;;;N;GREEK SMALL LETTER FEI;;03E4;;03E4 03E6;COPTIC CAPITAL LETTER KHEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER KHEI;;;03E7; 03E7;COPTIC SMALL LETTER KHEI;Ll;0;L;;;;;N;GREEK SMALL LETTER KHEI;;03E6;;03E6 03E8;COPTIC CAPITAL LETTER HORI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER HORI;;;03E9; 03E9;COPTIC SMALL LETTER HORI;Ll;0;L;;;;;N;GREEK SMALL LETTER HORI;;03E8;;03E8 03EA;COPTIC CAPITAL LETTER GANGIA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER GANGIA;;;03EB; 03EB;COPTIC SMALL LETTER GANGIA;Ll;0;L;;;;;N;GREEK SMALL LETTER GANGIA;;03EA;;03EA 03EC;COPTIC CAPITAL LETTER SHIMA;Lu;0;L;;;;;N;GREEK CAPITAL LETTER SHIMA;;;03ED; 03ED;COPTIC SMALL LETTER SHIMA;Ll;0;L;;;;;N;GREEK SMALL LETTER SHIMA;;03EC;;03EC 03EE;COPTIC CAPITAL LETTER DEI;Lu;0;L;;;;;N;GREEK CAPITAL LETTER DEI;;;03EF; 03EF;COPTIC SMALL LETTER DEI;Ll;0;L;;;;;N;GREEK SMALL LETTER DEI;;03EE;;03EE 03F0;GREEK KAPPA SYMBOL;Ll;0;L; 03BA;;;;N;GREEK SMALL LETTER SCRIPT KAPPA;;039A;;039A 03F1;GREEK RHO SYMBOL;Ll;0;L; 03C1;;;;N;GREEK SMALL LETTER TAILED RHO;;03A1;;03A1 03F2;GREEK LUNATE SIGMA SYMBOL;Ll;0;L; 03C2;;;;N;GREEK SMALL LETTER LUNATE SIGMA;;03A3;;03A3 03F3;GREEK LETTER YOT;Ll;0;L;;;;;N;;;;; 03F4;GREEK CAPITAL THETA SYMBOL;Lu;0;L; 0398;;;;N;;;;03B8; 03F5;GREEK LUNATE EPSILON SYMBOL;Ll;0;L; 03B5;;;;N;;;0395;;0395 03F6;GREEK REVERSED LUNATE EPSILON SYMBOL;Sm;0;ON;;;;;N;;;;; 0400;CYRILLIC CAPITAL LETTER IE WITH GRAVE;Lu;0;L;0415 0300;;;;N;;;;0450; 0401;CYRILLIC CAPITAL LETTER IO;Lu;0;L;0415 0308;;;;N;;;;0451; 0402;CYRILLIC CAPITAL LETTER DJE;Lu;0;L;;;;;N;;Serbocroatian;;0452; 0403;CYRILLIC CAPITAL LETTER GJE;Lu;0;L;0413 0301;;;;N;;;;0453; 0404;CYRILLIC CAPITAL LETTER UKRAINIAN IE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER E;;;0454; 0405;CYRILLIC CAPITAL LETTER DZE;Lu;0;L;;;;;N;;;;0455; 0406;CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER I;;;0456; 0407;CYRILLIC CAPITAL LETTER YI;Lu;0;L;0406 0308;;;;N;;Ukrainian;;0457; 0408;CYRILLIC CAPITAL LETTER JE;Lu;0;L;;;;;N;;;;0458; 0409;CYRILLIC CAPITAL LETTER LJE;Lu;0;L;;;;;N;;;;0459; 040A;CYRILLIC CAPITAL LETTER NJE;Lu;0;L;;;;;N;;;;045A; 040B;CYRILLIC CAPITAL LETTER TSHE;Lu;0;L;;;;;N;;Serbocroatian;;045B; 040C;CYRILLIC CAPITAL LETTER KJE;Lu;0;L;041A 0301;;;;N;;;;045C; 040D;CYRILLIC CAPITAL LETTER I WITH GRAVE;Lu;0;L;0418 0300;;;;N;;;;045D; 040E;CYRILLIC CAPITAL LETTER SHORT U;Lu;0;L;0423 0306;;;;N;;Byelorussian;;045E; 040F;CYRILLIC CAPITAL LETTER DZHE;Lu;0;L;;;;;N;;;;045F; 0410;CYRILLIC CAPITAL LETTER A;Lu;0;L;;;;;N;;;;0430; 0411;CYRILLIC CAPITAL LETTER BE;Lu;0;L;;;;;N;;;;0431; 0412;CYRILLIC CAPITAL LETTER VE;Lu;0;L;;;;;N;;;;0432; 0413;CYRILLIC CAPITAL LETTER GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE;;;0433; 0414;CYRILLIC CAPITAL LETTER DE;Lu;0;L;;;;;N;;;;0434; 0415;CYRILLIC CAPITAL LETTER IE;Lu;0;L;;;;;N;;;;0435; 0416;CYRILLIC CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;0436; 0417;CYRILLIC CAPITAL LETTER ZE;Lu;0;L;;;;;N;;;;0437; 0418;CYRILLIC CAPITAL LETTER I;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER II;;;0438; 0419;CYRILLIC CAPITAL LETTER SHORT I;Lu;0;L;0418 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT II;;;0439; 041A;CYRILLIC CAPITAL LETTER KA;Lu;0;L;;;;;N;;;;043A; 041B;CYRILLIC CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;043B; 041C;CYRILLIC CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;043C; 041D;CYRILLIC CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;043D; 041E;CYRILLIC CAPITAL LETTER O;Lu;0;L;;;;;N;;;;043E; 041F;CYRILLIC CAPITAL LETTER PE;Lu;0;L;;;;;N;;;;043F; 0420;CYRILLIC CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;0440; 0421;CYRILLIC CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;0441; 0422;CYRILLIC CAPITAL LETTER TE;Lu;0;L;;;;;N;;;;0442; 0423;CYRILLIC CAPITAL LETTER U;Lu;0;L;;;;;N;;;;0443; 0424;CYRILLIC CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;0444; 0425;CYRILLIC CAPITAL LETTER HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA;;;0445; 0426;CYRILLIC CAPITAL LETTER TSE;Lu;0;L;;;;;N;;;;0446; 0427;CYRILLIC CAPITAL LETTER CHE;Lu;0;L;;;;;N;;;;0447; 0428;CYRILLIC CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0448; 0429;CYRILLIC CAPITAL LETTER SHCHA;Lu;0;L;;;;;N;;;;0449; 042A;CYRILLIC CAPITAL LETTER HARD SIGN;Lu;0;L;;;;;N;;;;044A; 042B;CYRILLIC CAPITAL LETTER YERU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER YERI;;;044B; 042C;CYRILLIC CAPITAL LETTER SOFT SIGN;Lu;0;L;;;;;N;;;;044C; 042D;CYRILLIC CAPITAL LETTER E;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED E;;;044D; 042E;CYRILLIC CAPITAL LETTER YU;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IU;;;044E; 042F;CYRILLIC CAPITAL LETTER YA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IA;;;044F; 0430;CYRILLIC SMALL LETTER A;Ll;0;L;;;;;N;;;0410;;0410 0431;CYRILLIC SMALL LETTER BE;Ll;0;L;;;;;N;;;0411;;0411 0432;CYRILLIC SMALL LETTER VE;Ll;0;L;;;;;N;;;0412;;0412 0433;CYRILLIC SMALL LETTER GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE;;0413;;0413 0434;CYRILLIC SMALL LETTER DE;Ll;0;L;;;;;N;;;0414;;0414 0435;CYRILLIC SMALL LETTER IE;Ll;0;L;;;;;N;;;0415;;0415 0436;CYRILLIC SMALL LETTER ZHE;Ll;0;L;;;;;N;;;0416;;0416 0437;CYRILLIC SMALL LETTER ZE;Ll;0;L;;;;;N;;;0417;;0417 0438;CYRILLIC SMALL LETTER I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER II;;0418;;0418 0439;CYRILLIC SMALL LETTER SHORT I;Ll;0;L;0438 0306;;;;N;CYRILLIC SMALL LETTER SHORT II;;0419;;0419 043A;CYRILLIC SMALL LETTER KA;Ll;0;L;;;;;N;;;041A;;041A 043B;CYRILLIC SMALL LETTER EL;Ll;0;L;;;;;N;;;041B;;041B 043C;CYRILLIC SMALL LETTER EM;Ll;0;L;;;;;N;;;041C;;041C 043D;CYRILLIC SMALL LETTER EN;Ll;0;L;;;;;N;;;041D;;041D 043E;CYRILLIC SMALL LETTER O;Ll;0;L;;;;;N;;;041E;;041E 043F;CYRILLIC SMALL LETTER PE;Ll;0;L;;;;;N;;;041F;;041F 0440;CYRILLIC SMALL LETTER ER;Ll;0;L;;;;;N;;;0420;;0420 0441;CYRILLIC SMALL LETTER ES;Ll;0;L;;;;;N;;;0421;;0421 0442;CYRILLIC SMALL LETTER TE;Ll;0;L;;;;;N;;;0422;;0422 0443;CYRILLIC SMALL LETTER U;Ll;0;L;;;;;N;;;0423;;0423 0444;CYRILLIC SMALL LETTER EF;Ll;0;L;;;;;N;;;0424;;0424 0445;CYRILLIC SMALL LETTER HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA;;0425;;0425 0446;CYRILLIC SMALL LETTER TSE;Ll;0;L;;;;;N;;;0426;;0426 0447;CYRILLIC SMALL LETTER CHE;Ll;0;L;;;;;N;;;0427;;0427 0448;CYRILLIC SMALL LETTER SHA;Ll;0;L;;;;;N;;;0428;;0428 0449;CYRILLIC SMALL LETTER SHCHA;Ll;0;L;;;;;N;;;0429;;0429 044A;CYRILLIC SMALL LETTER HARD SIGN;Ll;0;L;;;;;N;;;042A;;042A 044B;CYRILLIC SMALL LETTER YERU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER YERI;;042B;;042B 044C;CYRILLIC SMALL LETTER SOFT SIGN;Ll;0;L;;;;;N;;;042C;;042C 044D;CYRILLIC SMALL LETTER E;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED E;;042D;;042D 044E;CYRILLIC SMALL LETTER YU;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IU;;042E;;042E 044F;CYRILLIC SMALL LETTER YA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IA;;042F;;042F 0450;CYRILLIC SMALL LETTER IE WITH GRAVE;Ll;0;L;0435 0300;;;;N;;;0400;;0400 0451;CYRILLIC SMALL LETTER IO;Ll;0;L;0435 0308;;;;N;;;0401;;0401 0452;CYRILLIC SMALL LETTER DJE;Ll;0;L;;;;;N;;Serbocroatian;0402;;0402 0453;CYRILLIC SMALL LETTER GJE;Ll;0;L;0433 0301;;;;N;;;0403;;0403 0454;CYRILLIC SMALL LETTER UKRAINIAN IE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER E;;0404;;0404 0455;CYRILLIC SMALL LETTER DZE;Ll;0;L;;;;;N;;;0405;;0405 0456;CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER I;;0406;;0406 0457;CYRILLIC SMALL LETTER YI;Ll;0;L;0456 0308;;;;N;;Ukrainian;0407;;0407 0458;CYRILLIC SMALL LETTER JE;Ll;0;L;;;;;N;;;0408;;0408 0459;CYRILLIC SMALL LETTER LJE;Ll;0;L;;;;;N;;;0409;;0409 045A;CYRILLIC SMALL LETTER NJE;Ll;0;L;;;;;N;;;040A;;040A 045B;CYRILLIC SMALL LETTER TSHE;Ll;0;L;;;;;N;;Serbocroatian;040B;;040B 045C;CYRILLIC SMALL LETTER KJE;Ll;0;L;043A 0301;;;;N;;;040C;;040C 045D;CYRILLIC SMALL LETTER I WITH GRAVE;Ll;0;L;0438 0300;;;;N;;;040D;;040D 045E;CYRILLIC SMALL LETTER SHORT U;Ll;0;L;0443 0306;;;;N;;Byelorussian;040E;;040E 045F;CYRILLIC SMALL LETTER DZHE;Ll;0;L;;;;;N;;;040F;;040F 0460;CYRILLIC CAPITAL LETTER OMEGA;Lu;0;L;;;;;N;;;;0461; 0461;CYRILLIC SMALL LETTER OMEGA;Ll;0;L;;;;;N;;;0460;;0460 0462;CYRILLIC CAPITAL LETTER YAT;Lu;0;L;;;;;N;;;;0463; 0463;CYRILLIC SMALL LETTER YAT;Ll;0;L;;;;;N;;;0462;;0462 0464;CYRILLIC CAPITAL LETTER IOTIFIED E;Lu;0;L;;;;;N;;;;0465; 0465;CYRILLIC SMALL LETTER IOTIFIED E;Ll;0;L;;;;;N;;;0464;;0464 0466;CYRILLIC CAPITAL LETTER LITTLE YUS;Lu;0;L;;;;;N;;;;0467; 0467;CYRILLIC SMALL LETTER LITTLE YUS;Ll;0;L;;;;;N;;;0466;;0466 0468;CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS;Lu;0;L;;;;;N;;;;0469; 0469;CYRILLIC SMALL LETTER IOTIFIED LITTLE YUS;Ll;0;L;;;;;N;;;0468;;0468 046A;CYRILLIC CAPITAL LETTER BIG YUS;Lu;0;L;;;;;N;;;;046B; 046B;CYRILLIC SMALL LETTER BIG YUS;Ll;0;L;;;;;N;;;046A;;046A 046C;CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS;Lu;0;L;;;;;N;;;;046D; 046D;CYRILLIC SMALL LETTER IOTIFIED BIG YUS;Ll;0;L;;;;;N;;;046C;;046C 046E;CYRILLIC CAPITAL LETTER KSI;Lu;0;L;;;;;N;;;;046F; 046F;CYRILLIC SMALL LETTER KSI;Ll;0;L;;;;;N;;;046E;;046E 0470;CYRILLIC CAPITAL LETTER PSI;Lu;0;L;;;;;N;;;;0471; 0471;CYRILLIC SMALL LETTER PSI;Ll;0;L;;;;;N;;;0470;;0470 0472;CYRILLIC CAPITAL LETTER FITA;Lu;0;L;;;;;N;;;;0473; 0473;CYRILLIC SMALL LETTER FITA;Ll;0;L;;;;;N;;;0472;;0472 0474;CYRILLIC CAPITAL LETTER IZHITSA;Lu;0;L;;;;;N;;;;0475; 0475;CYRILLIC SMALL LETTER IZHITSA;Ll;0;L;;;;;N;;;0474;;0474 0476;CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Lu;0;L;0474 030F;;;;N;CYRILLIC CAPITAL LETTER IZHITSA DOUBLE GRAVE;;;0477; 0477;CYRILLIC SMALL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT;Ll;0;L;0475 030F;;;;N;CYRILLIC SMALL LETTER IZHITSA DOUBLE GRAVE;;0476;;0476 0478;CYRILLIC CAPITAL LETTER UK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER UK DIGRAPH;;;0479; 0479;CYRILLIC SMALL LETTER UK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER UK DIGRAPH;;0478;;0478 047A;CYRILLIC CAPITAL LETTER ROUND OMEGA;Lu;0;L;;;;;N;;;;047B; 047B;CYRILLIC SMALL LETTER ROUND OMEGA;Ll;0;L;;;;;N;;;047A;;047A 047C;CYRILLIC CAPITAL LETTER OMEGA WITH TITLO;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER OMEGA TITLO;;;047D; 047D;CYRILLIC SMALL LETTER OMEGA WITH TITLO;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER OMEGA TITLO;;047C;;047C 047E;CYRILLIC CAPITAL LETTER OT;Lu;0;L;;;;;N;;;;047F; 047F;CYRILLIC SMALL LETTER OT;Ll;0;L;;;;;N;;;047E;;047E 0480;CYRILLIC CAPITAL LETTER KOPPA;Lu;0;L;;;;;N;;;;0481; 0481;CYRILLIC SMALL LETTER KOPPA;Ll;0;L;;;;;N;;;0480;;0480 0482;CYRILLIC THOUSANDS SIGN;So;0;L;;;;;N;;;;; 0483;COMBINING CYRILLIC TITLO;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING TITLO;;;; 0484;COMBINING CYRILLIC PALATALIZATION;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PALATALIZATION;;;; 0485;COMBINING CYRILLIC DASIA PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING DASIA PNEUMATA;;;; 0486;COMBINING CYRILLIC PSILI PNEUMATA;Mn;230;NSM;;;;;N;CYRILLIC NON-SPACING PSILI PNEUMATA;;;; 0488;COMBINING CYRILLIC HUNDRED THOUSANDS SIGN;Me;0;NSM;;;;;N;;;;; 0489;COMBINING CYRILLIC MILLIONS SIGN;Me;0;NSM;;;;;N;;;;; 048A;CYRILLIC CAPITAL LETTER SHORT I WITH TAIL;Lu;0;L;;;;;N;;;;048B; 048B;CYRILLIC SMALL LETTER SHORT I WITH TAIL;Ll;0;L;;;;;N;;;048A;;048A 048C;CYRILLIC CAPITAL LETTER SEMISOFT SIGN;Lu;0;L;;;;;N;;;;048D; 048D;CYRILLIC SMALL LETTER SEMISOFT SIGN;Ll;0;L;;;;;N;;;048C;;048C 048E;CYRILLIC CAPITAL LETTER ER WITH TICK;Lu;0;L;;;;;N;;;;048F; 048F;CYRILLIC SMALL LETTER ER WITH TICK;Ll;0;L;;;;;N;;;048E;;048E 0490;CYRILLIC CAPITAL LETTER GHE WITH UPTURN;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE WITH UPTURN;;;0491; 0491;CYRILLIC SMALL LETTER GHE WITH UPTURN;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE WITH UPTURN;;0490;;0490 0492;CYRILLIC CAPITAL LETTER GHE WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE BAR;;;0493; 0493;CYRILLIC SMALL LETTER GHE WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE BAR;;0492;;0492 0494;CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER GE HOOK;;;0495; 0495;CYRILLIC SMALL LETTER GHE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER GE HOOK;;0494;;0494 0496;CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZHE WITH RIGHT DESCENDER;;;0497; 0497;CYRILLIC SMALL LETTER ZHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZHE WITH RIGHT DESCENDER;;0496;;0496 0498;CYRILLIC CAPITAL LETTER ZE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ZE CEDILLA;;;0499; 0499;CYRILLIC SMALL LETTER ZE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ZE CEDILLA;;0498;;0498 049A;CYRILLIC CAPITAL LETTER KA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA WITH RIGHT DESCENDER;;;049B; 049B;CYRILLIC SMALL LETTER KA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA WITH RIGHT DESCENDER;;049A;;049A 049C;CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA VERTICAL BAR;;;049D; 049D;CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA VERTICAL BAR;;049C;;049C 049E;CYRILLIC CAPITAL LETTER KA WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA BAR;;;049F; 049F;CYRILLIC SMALL LETTER KA WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA BAR;;049E;;049E 04A0;CYRILLIC CAPITAL LETTER BASHKIR KA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER REVERSED GE KA;;;04A1; 04A1;CYRILLIC SMALL LETTER BASHKIR KA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER REVERSED GE KA;;04A0;;04A0 04A2;CYRILLIC CAPITAL LETTER EN WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN WITH RIGHT DESCENDER;;;04A3; 04A3;CYRILLIC SMALL LETTER EN WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN WITH RIGHT DESCENDER;;04A2;;04A2 04A4;CYRILLIC CAPITAL LIGATURE EN GHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN GE;;;04A5; 04A5;CYRILLIC SMALL LIGATURE EN GHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN GE;;04A4;;04A4 04A6;CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER PE HOOK;Abkhasian;;04A7; 04A7;CYRILLIC SMALL LETTER PE WITH MIDDLE HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER PE HOOK;Abkhasian;04A6;;04A6 04A8;CYRILLIC CAPITAL LETTER ABKHASIAN HA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER O HOOK;;;04A9; 04A9;CYRILLIC SMALL LETTER ABKHASIAN HA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER O HOOK;;04A8;;04A8 04AA;CYRILLIC CAPITAL LETTER ES WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER ES CEDILLA;;;04AB; 04AB;CYRILLIC SMALL LETTER ES WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER ES CEDILLA;;04AA;;04AA 04AC;CYRILLIC CAPITAL LETTER TE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE WITH RIGHT DESCENDER;;;04AD; 04AD;CYRILLIC SMALL LETTER TE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE WITH RIGHT DESCENDER;;04AC;;04AC 04AE;CYRILLIC CAPITAL LETTER STRAIGHT U;Lu;0;L;;;;;N;;;;04AF; 04AF;CYRILLIC SMALL LETTER STRAIGHT U;Ll;0;L;;;;;N;;;04AE;;04AE 04B0;CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER STRAIGHT U BAR;;;04B1; 04B1;CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER STRAIGHT U BAR;;04B0;;04B0 04B2;CYRILLIC CAPITAL LETTER HA WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KHA WITH RIGHT DESCENDER;;;04B3; 04B3;CYRILLIC SMALL LETTER HA WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KHA WITH RIGHT DESCENDER;;04B2;;04B2 04B4;CYRILLIC CAPITAL LIGATURE TE TSE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER TE TSE;Abkhasian;;04B5; 04B5;CYRILLIC SMALL LIGATURE TE TSE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER TE TSE;Abkhasian;04B4;;04B4 04B6;CYRILLIC CAPITAL LETTER CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH RIGHT DESCENDER;;;04B7; 04B7;CYRILLIC SMALL LETTER CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH RIGHT DESCENDER;;04B6;;04B6 04B8;CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE VERTICAL BAR;;;04B9; 04B9;CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE VERTICAL BAR;;04B8;;04B8 04BA;CYRILLIC CAPITAL LETTER SHHA;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER H;;;04BB; 04BB;CYRILLIC SMALL LETTER SHHA;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER H;;04BA;;04BA 04BC;CYRILLIC CAPITAL LETTER ABKHASIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK;;;04BD; 04BD;CYRILLIC SMALL LETTER ABKHASIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK;;04BC;;04BC 04BE;CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER IE HOOK OGONEK;;;04BF; 04BF;CYRILLIC SMALL LETTER ABKHASIAN CHE WITH DESCENDER;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER IE HOOK OGONEK;;04BE;;04BE 04C0;CYRILLIC LETTER PALOCHKA;Lu;0;L;;;;;N;CYRILLIC LETTER I;;;; 04C1;CYRILLIC CAPITAL LETTER ZHE WITH BREVE;Lu;0;L;0416 0306;;;;N;CYRILLIC CAPITAL LETTER SHORT ZHE;;;04C2; 04C2;CYRILLIC SMALL LETTER ZHE WITH BREVE;Ll;0;L;0436 0306;;;;N;CYRILLIC SMALL LETTER SHORT ZHE;;04C1;;04C1 04C3;CYRILLIC CAPITAL LETTER KA WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER KA HOOK;;;04C4; 04C4;CYRILLIC SMALL LETTER KA WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER KA HOOK;;04C3;;04C3 04C5;CYRILLIC CAPITAL LETTER EL WITH TAIL;Lu;0;L;;;;;N;;;;04C6; 04C6;CYRILLIC SMALL LETTER EL WITH TAIL;Ll;0;L;;;;;N;;;04C5;;04C5 04C7;CYRILLIC CAPITAL LETTER EN WITH HOOK;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER EN HOOK;;;04C8; 04C8;CYRILLIC SMALL LETTER EN WITH HOOK;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER EN HOOK;;04C7;;04C7 04C9;CYRILLIC CAPITAL LETTER EN WITH TAIL;Lu;0;L;;;;;N;;;;04CA; 04CA;CYRILLIC SMALL LETTER EN WITH TAIL;Ll;0;L;;;;;N;;;04C9;;04C9 04CB;CYRILLIC CAPITAL LETTER KHAKASSIAN CHE;Lu;0;L;;;;;N;CYRILLIC CAPITAL LETTER CHE WITH LEFT DESCENDER;;;04CC; 04CC;CYRILLIC SMALL LETTER KHAKASSIAN CHE;Ll;0;L;;;;;N;CYRILLIC SMALL LETTER CHE WITH LEFT DESCENDER;;04CB;;04CB 04CD;CYRILLIC CAPITAL LETTER EM WITH TAIL;Lu;0;L;;;;;N;;;;04CE; 04CE;CYRILLIC SMALL LETTER EM WITH TAIL;Ll;0;L;;;;;N;;;04CD;;04CD 04D0;CYRILLIC CAPITAL LETTER A WITH BREVE;Lu;0;L;0410 0306;;;;N;;;;04D1; 04D1;CYRILLIC SMALL LETTER A WITH BREVE;Ll;0;L;0430 0306;;;;N;;;04D0;;04D0 04D2;CYRILLIC CAPITAL LETTER A WITH DIAERESIS;Lu;0;L;0410 0308;;;;N;;;;04D3; 04D3;CYRILLIC SMALL LETTER A WITH DIAERESIS;Ll;0;L;0430 0308;;;;N;;;04D2;;04D2 04D4;CYRILLIC CAPITAL LIGATURE A IE;Lu;0;L;;;;;N;;;;04D5; 04D5;CYRILLIC SMALL LIGATURE A IE;Ll;0;L;;;;;N;;;04D4;;04D4 04D6;CYRILLIC CAPITAL LETTER IE WITH BREVE;Lu;0;L;0415 0306;;;;N;;;;04D7; 04D7;CYRILLIC SMALL LETTER IE WITH BREVE;Ll;0;L;0435 0306;;;;N;;;04D6;;04D6 04D8;CYRILLIC CAPITAL LETTER SCHWA;Lu;0;L;;;;;N;;;;04D9; 04D9;CYRILLIC SMALL LETTER SCHWA;Ll;0;L;;;;;N;;;04D8;;04D8 04DA;CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS;Lu;0;L;04D8 0308;;;;N;;;;04DB; 04DB;CYRILLIC SMALL LETTER SCHWA WITH DIAERESIS;Ll;0;L;04D9 0308;;;;N;;;04DA;;04DA 04DC;CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS;Lu;0;L;0416 0308;;;;N;;;;04DD; 04DD;CYRILLIC SMALL LETTER ZHE WITH DIAERESIS;Ll;0;L;0436 0308;;;;N;;;04DC;;04DC 04DE;CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS;Lu;0;L;0417 0308;;;;N;;;;04DF; 04DF;CYRILLIC SMALL LETTER ZE WITH DIAERESIS;Ll;0;L;0437 0308;;;;N;;;04DE;;04DE 04E0;CYRILLIC CAPITAL LETTER ABKHASIAN DZE;Lu;0;L;;;;;N;;;;04E1; 04E1;CYRILLIC SMALL LETTER ABKHASIAN DZE;Ll;0;L;;;;;N;;;04E0;;04E0 04E2;CYRILLIC CAPITAL LETTER I WITH MACRON;Lu;0;L;0418 0304;;;;N;;;;04E3; 04E3;CYRILLIC SMALL LETTER I WITH MACRON;Ll;0;L;0438 0304;;;;N;;;04E2;;04E2 04E4;CYRILLIC CAPITAL LETTER I WITH DIAERESIS;Lu;0;L;0418 0308;;;;N;;;;04E5; 04E5;CYRILLIC SMALL LETTER I WITH DIAERESIS;Ll;0;L;0438 0308;;;;N;;;04E4;;04E4 04E6;CYRILLIC CAPITAL LETTER O WITH DIAERESIS;Lu;0;L;041E 0308;;;;N;;;;04E7; 04E7;CYRILLIC SMALL LETTER O WITH DIAERESIS;Ll;0;L;043E 0308;;;;N;;;04E6;;04E6 04E8;CYRILLIC CAPITAL LETTER BARRED O;Lu;0;L;;;;;N;;;;04E9; 04E9;CYRILLIC SMALL LETTER BARRED O;Ll;0;L;;;;;N;;;04E8;;04E8 04EA;CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS;Lu;0;L;04E8 0308;;;;N;;;;04EB; 04EB;CYRILLIC SMALL LETTER BARRED O WITH DIAERESIS;Ll;0;L;04E9 0308;;;;N;;;04EA;;04EA 04EC;CYRILLIC CAPITAL LETTER E WITH DIAERESIS;Lu;0;L;042D 0308;;;;N;;;;04ED; 04ED;CYRILLIC SMALL LETTER E WITH DIAERESIS;Ll;0;L;044D 0308;;;;N;;;04EC;;04EC 04EE;CYRILLIC CAPITAL LETTER U WITH MACRON;Lu;0;L;0423 0304;;;;N;;;;04EF; 04EF;CYRILLIC SMALL LETTER U WITH MACRON;Ll;0;L;0443 0304;;;;N;;;04EE;;04EE 04F0;CYRILLIC CAPITAL LETTER U WITH DIAERESIS;Lu;0;L;0423 0308;;;;N;;;;04F1; 04F1;CYRILLIC SMALL LETTER U WITH DIAERESIS;Ll;0;L;0443 0308;;;;N;;;04F0;;04F0 04F2;CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE;Lu;0;L;0423 030B;;;;N;;;;04F3; 04F3;CYRILLIC SMALL LETTER U WITH DOUBLE ACUTE;Ll;0;L;0443 030B;;;;N;;;04F2;;04F2 04F4;CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS;Lu;0;L;0427 0308;;;;N;;;;04F5; 04F5;CYRILLIC SMALL LETTER CHE WITH DIAERESIS;Ll;0;L;0447 0308;;;;N;;;04F4;;04F4 04F8;CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS;Lu;0;L;042B 0308;;;;N;;;;04F9; 04F9;CYRILLIC SMALL LETTER YERU WITH DIAERESIS;Ll;0;L;044B 0308;;;;N;;;04F8;;04F8 0500;CYRILLIC CAPITAL LETTER KOMI DE;Lu;0;L;;;;;N;;;;0501; 0501;CYRILLIC SMALL LETTER KOMI DE;Ll;0;L;;;;;N;;;0500;;0500 0502;CYRILLIC CAPITAL LETTER KOMI DJE;Lu;0;L;;;;;N;;;;0503; 0503;CYRILLIC SMALL LETTER KOMI DJE;Ll;0;L;;;;;N;;;0502;;0502 0504;CYRILLIC CAPITAL LETTER KOMI ZJE;Lu;0;L;;;;;N;;;;0505; 0505;CYRILLIC SMALL LETTER KOMI ZJE;Ll;0;L;;;;;N;;;0504;;0504 0506;CYRILLIC CAPITAL LETTER KOMI DZJE;Lu;0;L;;;;;N;;;;0507; 0507;CYRILLIC SMALL LETTER KOMI DZJE;Ll;0;L;;;;;N;;;0506;;0506 0508;CYRILLIC CAPITAL LETTER KOMI LJE;Lu;0;L;;;;;N;;;;0509; 0509;CYRILLIC SMALL LETTER KOMI LJE;Ll;0;L;;;;;N;;;0508;;0508 050A;CYRILLIC CAPITAL LETTER KOMI NJE;Lu;0;L;;;;;N;;;;050B; 050B;CYRILLIC SMALL LETTER KOMI NJE;Ll;0;L;;;;;N;;;050A;;050A 050C;CYRILLIC CAPITAL LETTER KOMI SJE;Lu;0;L;;;;;N;;;;050D; 050D;CYRILLIC SMALL LETTER KOMI SJE;Ll;0;L;;;;;N;;;050C;;050C 050E;CYRILLIC CAPITAL LETTER KOMI TJE;Lu;0;L;;;;;N;;;;050F; 050F;CYRILLIC SMALL LETTER KOMI TJE;Ll;0;L;;;;;N;;;050E;;050E 0531;ARMENIAN CAPITAL LETTER AYB;Lu;0;L;;;;;N;;;;0561; 0532;ARMENIAN CAPITAL LETTER BEN;Lu;0;L;;;;;N;;;;0562; 0533;ARMENIAN CAPITAL LETTER GIM;Lu;0;L;;;;;N;;;;0563; 0534;ARMENIAN CAPITAL LETTER DA;Lu;0;L;;;;;N;;;;0564; 0535;ARMENIAN CAPITAL LETTER ECH;Lu;0;L;;;;;N;;;;0565; 0536;ARMENIAN CAPITAL LETTER ZA;Lu;0;L;;;;;N;;;;0566; 0537;ARMENIAN CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;0567; 0538;ARMENIAN CAPITAL LETTER ET;Lu;0;L;;;;;N;;;;0568; 0539;ARMENIAN CAPITAL LETTER TO;Lu;0;L;;;;;N;;;;0569; 053A;ARMENIAN CAPITAL LETTER ZHE;Lu;0;L;;;;;N;;;;056A; 053B;ARMENIAN CAPITAL LETTER INI;Lu;0;L;;;;;N;;;;056B; 053C;ARMENIAN CAPITAL LETTER LIWN;Lu;0;L;;;;;N;;;;056C; 053D;ARMENIAN CAPITAL LETTER XEH;Lu;0;L;;;;;N;;;;056D; 053E;ARMENIAN CAPITAL LETTER CA;Lu;0;L;;;;;N;;;;056E; 053F;ARMENIAN CAPITAL LETTER KEN;Lu;0;L;;;;;N;;;;056F; 0540;ARMENIAN CAPITAL LETTER HO;Lu;0;L;;;;;N;;;;0570; 0541;ARMENIAN CAPITAL LETTER JA;Lu;0;L;;;;;N;;;;0571; 0542;ARMENIAN CAPITAL LETTER GHAD;Lu;0;L;;;;;N;ARMENIAN CAPITAL LETTER LAD;;;0572; 0543;ARMENIAN CAPITAL LETTER CHEH;Lu;0;L;;;;;N;;;;0573; 0544;ARMENIAN CAPITAL LETTER MEN;Lu;0;L;;;;;N;;;;0574; 0545;ARMENIAN CAPITAL LETTER YI;Lu;0;L;;;;;N;;;;0575; 0546;ARMENIAN CAPITAL LETTER NOW;Lu;0;L;;;;;N;;;;0576; 0547;ARMENIAN CAPITAL LETTER SHA;Lu;0;L;;;;;N;;;;0577; 0548;ARMENIAN CAPITAL LETTER VO;Lu;0;L;;;;;N;;;;0578; 0549;ARMENIAN CAPITAL LETTER CHA;Lu;0;L;;;;;N;;;;0579; 054A;ARMENIAN CAPITAL LETTER PEH;Lu;0;L;;;;;N;;;;057A; 054B;ARMENIAN CAPITAL LETTER JHEH;Lu;0;L;;;;;N;;;;057B; 054C;ARMENIAN CAPITAL LETTER RA;Lu;0;L;;;;;N;;;;057C; 054D;ARMENIAN CAPITAL LETTER SEH;Lu;0;L;;;;;N;;;;057D; 054E;ARMENIAN CAPITAL LETTER VEW;Lu;0;L;;;;;N;;;;057E; 054F;ARMENIAN CAPITAL LETTER TIWN;Lu;0;L;;;;;N;;;;057F; 0550;ARMENIAN CAPITAL LETTER REH;Lu;0;L;;;;;N;;;;0580; 0551;ARMENIAN CAPITAL LETTER CO;Lu;0;L;;;;;N;;;;0581; 0552;ARMENIAN CAPITAL LETTER YIWN;Lu;0;L;;;;;N;;;;0582; 0553;ARMENIAN CAPITAL LETTER PIWR;Lu;0;L;;;;;N;;;;0583; 0554;ARMENIAN CAPITAL LETTER KEH;Lu;0;L;;;;;N;;;;0584; 0555;ARMENIAN CAPITAL LETTER OH;Lu;0;L;;;;;N;;;;0585; 0556;ARMENIAN CAPITAL LETTER FEH;Lu;0;L;;;;;N;;;;0586; 0559;ARMENIAN MODIFIER LETTER LEFT HALF RING;Lm;0;L;;;;;N;;;;; 055A;ARMENIAN APOSTROPHE;Po;0;L;;;;;N;ARMENIAN MODIFIER LETTER RIGHT HALF RING;;;; 055B;ARMENIAN EMPHASIS MARK;Po;0;L;;;;;N;;;;; 055C;ARMENIAN EXCLAMATION MARK;Po;0;L;;;;;N;;;;; 055D;ARMENIAN COMMA;Po;0;L;;;;;N;;;;; 055E;ARMENIAN QUESTION MARK;Po;0;L;;;;;N;;;;; 055F;ARMENIAN ABBREVIATION MARK;Po;0;L;;;;;N;;;;; 0561;ARMENIAN SMALL LETTER AYB;Ll;0;L;;;;;N;;;0531;;0531 0562;ARMENIAN SMALL LETTER BEN;Ll;0;L;;;;;N;;;0532;;0532 0563;ARMENIAN SMALL LETTER GIM;Ll;0;L;;;;;N;;;0533;;0533 0564;ARMENIAN SMALL LETTER DA;Ll;0;L;;;;;N;;;0534;;0534 0565;ARMENIAN SMALL LETTER ECH;Ll;0;L;;;;;N;;;0535;;0535 0566;ARMENIAN SMALL LETTER ZA;Ll;0;L;;;;;N;;;0536;;0536 0567;ARMENIAN SMALL LETTER EH;Ll;0;L;;;;;N;;;0537;;0537 0568;ARMENIAN SMALL LETTER ET;Ll;0;L;;;;;N;;;0538;;0538 0569;ARMENIAN SMALL LETTER TO;Ll;0;L;;;;;N;;;0539;;0539 056A;ARMENIAN SMALL LETTER ZHE;Ll;0;L;;;;;N;;;053A;;053A 056B;ARMENIAN SMALL LETTER INI;Ll;0;L;;;;;N;;;053B;;053B 056C;ARMENIAN SMALL LETTER LIWN;Ll;0;L;;;;;N;;;053C;;053C 056D;ARMENIAN SMALL LETTER XEH;Ll;0;L;;;;;N;;;053D;;053D 056E;ARMENIAN SMALL LETTER CA;Ll;0;L;;;;;N;;;053E;;053E 056F;ARMENIAN SMALL LETTER KEN;Ll;0;L;;;;;N;;;053F;;053F 0570;ARMENIAN SMALL LETTER HO;Ll;0;L;;;;;N;;;0540;;0540 0571;ARMENIAN SMALL LETTER JA;Ll;0;L;;;;;N;;;0541;;0541 0572;ARMENIAN SMALL LETTER GHAD;Ll;0;L;;;;;N;ARMENIAN SMALL LETTER LAD;;0542;;0542 0573;ARMENIAN SMALL LETTER CHEH;Ll;0;L;;;;;N;;;0543;;0543 0574;ARMENIAN SMALL LETTER MEN;Ll;0;L;;;;;N;;;0544;;0544 0575;ARMENIAN SMALL LETTER YI;Ll;0;L;;;;;N;;;0545;;0545 0576;ARMENIAN SMALL LETTER NOW;Ll;0;L;;;;;N;;;0546;;0546 0577;ARMENIAN SMALL LETTER SHA;Ll;0;L;;;;;N;;;0547;;0547 0578;ARMENIAN SMALL LETTER VO;Ll;0;L;;;;;N;;;0548;;0548 0579;ARMENIAN SMALL LETTER CHA;Ll;0;L;;;;;N;;;0549;;0549 057A;ARMENIAN SMALL LETTER PEH;Ll;0;L;;;;;N;;;054A;;054A 057B;ARMENIAN SMALL LETTER JHEH;Ll;0;L;;;;;N;;;054B;;054B 057C;ARMENIAN SMALL LETTER RA;Ll;0;L;;;;;N;;;054C;;054C 057D;ARMENIAN SMALL LETTER SEH;Ll;0;L;;;;;N;;;054D;;054D 057E;ARMENIAN SMALL LETTER VEW;Ll;0;L;;;;;N;;;054E;;054E 057F;ARMENIAN SMALL LETTER TIWN;Ll;0;L;;;;;N;;;054F;;054F 0580;ARMENIAN SMALL LETTER REH;Ll;0;L;;;;;N;;;0550;;0550 0581;ARMENIAN SMALL LETTER CO;Ll;0;L;;;;;N;;;0551;;0551 0582;ARMENIAN SMALL LETTER YIWN;Ll;0;L;;;;;N;;;0552;;0552 0583;ARMENIAN SMALL LETTER PIWR;Ll;0;L;;;;;N;;;0553;;0553 0584;ARMENIAN SMALL LETTER KEH;Ll;0;L;;;;;N;;;0554;;0554 0585;ARMENIAN SMALL LETTER OH;Ll;0;L;;;;;N;;;0555;;0555 0586;ARMENIAN SMALL LETTER FEH;Ll;0;L;;;;;N;;;0556;;0556 0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L; 0565 0582;;;;N;;;;; 0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;; 058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;; 0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;; 0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;; 0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;; 0594;HEBREW ACCENT ZAQEF QATAN;Mn;230;NSM;;;;;N;;;;; 0595;HEBREW ACCENT ZAQEF GADOL;Mn;230;NSM;;;;;N;;;;; 0596;HEBREW ACCENT TIPEHA;Mn;220;NSM;;;;;N;;*;;; 0597;HEBREW ACCENT REVIA;Mn;230;NSM;;;;;N;;;;; 0598;HEBREW ACCENT ZARQA;Mn;230;NSM;;;;;N;;*;;; 0599;HEBREW ACCENT PASHTA;Mn;230;NSM;;;;;N;;;;; 059A;HEBREW ACCENT YETIV;Mn;222;NSM;;;;;N;;;;; 059B;HEBREW ACCENT TEVIR;Mn;220;NSM;;;;;N;;;;; 059C;HEBREW ACCENT GERESH;Mn;230;NSM;;;;;N;;;;; 059D;HEBREW ACCENT GERESH MUQDAM;Mn;230;NSM;;;;;N;;;;; 059E;HEBREW ACCENT GERSHAYIM;Mn;230;NSM;;;;;N;;;;; 059F;HEBREW ACCENT QARNEY PARA;Mn;230;NSM;;;;;N;;;;; 05A0;HEBREW ACCENT TELISHA GEDOLA;Mn;230;NSM;;;;;N;;;;; 05A1;HEBREW ACCENT PAZER;Mn;230;NSM;;;;;N;;;;; 05A3;HEBREW ACCENT MUNAH;Mn;220;NSM;;;;;N;;;;; 05A4;HEBREW ACCENT MAHAPAKH;Mn;220;NSM;;;;;N;;;;; 05A5;HEBREW ACCENT MERKHA;Mn;220;NSM;;;;;N;;*;;; 05A6;HEBREW ACCENT MERKHA KEFULA;Mn;220;NSM;;;;;N;;;;; 05A7;HEBREW ACCENT DARGA;Mn;220;NSM;;;;;N;;;;; 05A8;HEBREW ACCENT QADMA;Mn;230;NSM;;;;;N;;*;;; 05A9;HEBREW ACCENT TELISHA QETANA;Mn;230;NSM;;;;;N;;;;; 05AA;HEBREW ACCENT YERAH BEN YOMO;Mn;220;NSM;;;;;N;;*;;; 05AB;HEBREW ACCENT OLE;Mn;230;NSM;;;;;N;;;;; 05AC;HEBREW ACCENT ILUY;Mn;230;NSM;;;;;N;;;;; 05AD;HEBREW ACCENT DEHI;Mn;222;NSM;;;;;N;;;;; 05AE;HEBREW ACCENT ZINOR;Mn;228;NSM;;;;;N;;;;; 05AF;HEBREW MARK MASORA CIRCLE;Mn;230;NSM;;;;;N;;;;; 05B0;HEBREW POINT SHEVA;Mn;10;NSM;;;;;N;;;;; 05B1;HEBREW POINT HATAF SEGOL;Mn;11;NSM;;;;;N;;;;; 05B2;HEBREW POINT HATAF PATAH;Mn;12;NSM;;;;;N;;;;; 05B3;HEBREW POINT HATAF QAMATS;Mn;13;NSM;;;;;N;;;;; 05B4;HEBREW POINT HIRIQ;Mn;14;NSM;;;;;N;;;;; 05B5;HEBREW POINT TSERE;Mn;15;NSM;;;;;N;;;;; 05B6;HEBREW POINT SEGOL;Mn;16;NSM;;;;;N;;;;; 05B7;HEBREW POINT PATAH;Mn;17;NSM;;;;;N;;;;; 05B8;HEBREW POINT QAMATS;Mn;18;NSM;;;;;N;;;;; 05B9;HEBREW POINT HOLAM;Mn;19;NSM;;;;;N;;;;; 05BB;HEBREW POINT QUBUTS;Mn;20;NSM;;;;;N;;;;; 05BC;HEBREW POINT DAGESH OR MAPIQ;Mn;21;NSM;;;;;N;HEBREW POINT DAGESH;or shuruq;;; 05BD;HEBREW POINT METEG;Mn;22;NSM;;;;;N;;*;;; 05BE;HEBREW PUNCTUATION MAQAF;Po;0;R;;;;;N;;;;; 05BF;HEBREW POINT RAFE;Mn;23;NSM;;;;;N;;;;; 05C0;HEBREW PUNCTUATION PASEQ;Po;0;R;;;;;N;HEBREW POINT PASEQ;*;;; 05C1;HEBREW POINT SHIN DOT;Mn;24;NSM;;;;;N;;;;; 05C2;HEBREW POINT SIN DOT;Mn;25;NSM;;;;;N;;;;; 05C3;HEBREW PUNCTUATION SOF PASUQ;Po;0;R;;;;;N;;*;;; 05C4;HEBREW MARK UPPER DOT;Mn;230;NSM;;;;;N;;;;; 05D0;HEBREW LETTER ALEF;Lo;0;R;;;;;N;;;;; 05D1;HEBREW LETTER BET;Lo;0;R;;;;;N;;;;; 05D2;HEBREW LETTER GIMEL;Lo;0;R;;;;;N;;;;; 05D3;HEBREW LETTER DALET;Lo;0;R;;;;;N;;;;; 05D4;HEBREW LETTER HE;Lo;0;R;;;;;N;;;;; 05D5;HEBREW LETTER VAV;Lo;0;R;;;;;N;;;;; 05D6;HEBREW LETTER ZAYIN;Lo;0;R;;;;;N;;;;; 05D7;HEBREW LETTER HET;Lo;0;R;;;;;N;;;;; 05D8;HEBREW LETTER TET;Lo;0;R;;;;;N;;;;; 05D9;HEBREW LETTER YOD;Lo;0;R;;;;;N;;;;; 05DA;HEBREW LETTER FINAL KAF;Lo;0;R;;;;;N;;;;; 05DB;HEBREW LETTER KAF;Lo;0;R;;;;;N;;;;; 05DC;HEBREW LETTER LAMED;Lo;0;R;;;;;N;;;;; 05DD;HEBREW LETTER FINAL MEM;Lo;0;R;;;;;N;;;;; 05DE;HEBREW LETTER MEM;Lo;0;R;;;;;N;;;;; 05DF;HEBREW LETTER FINAL NUN;Lo;0;R;;;;;N;;;;; 05E0;HEBREW LETTER NUN;Lo;0;R;;;;;N;;;;; 05E1;HEBREW LETTER SAMEKH;Lo;0;R;;;;;N;;;;; 05E2;HEBREW LETTER AYIN;Lo;0;R;;;;;N;;;;; 05E3;HEBREW LETTER FINAL PE;Lo;0;R;;;;;N;;;;; 05E4;HEBREW LETTER PE;Lo;0;R;;;;;N;;;;; 05E5;HEBREW LETTER FINAL TSADI;Lo;0;R;;;;;N;;;;; 05E6;HEBREW LETTER TSADI;Lo;0;R;;;;;N;;;;; 05E7;HEBREW LETTER QOF;Lo;0;R;;;;;N;;;;; 05E8;HEBREW LETTER RESH;Lo;0;R;;;;;N;;;;; 05E9;HEBREW LETTER SHIN;Lo;0;R;;;;;N;;;;; 05EA;HEBREW LETTER TAV;Lo;0;R;;;;;N;;;;; 05F0;HEBREW LIGATURE YIDDISH DOUBLE VAV;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE VAV;;;; 05F1;HEBREW LIGATURE YIDDISH VAV YOD;Lo;0;R;;;;;N;HEBREW LETTER VAV YOD;;;; 05F2;HEBREW LIGATURE YIDDISH DOUBLE YOD;Lo;0;R;;;;;N;HEBREW LETTER DOUBLE YOD;;;; 05F3;HEBREW PUNCTUATION GERESH;Po;0;R;;;;;N;;;;; 05F4;HEBREW PUNCTUATION GERSHAYIM;Po;0;R;;;;;N;;;;; 060C;ARABIC COMMA;Po;0;CS;;;;;N;;;;; 061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;; 061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;; 0621;ARABIC LETTER HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH;;;; 0622;ARABIC LETTER ALEF WITH MADDA ABOVE;Lo;0;AL;0627 0653;;;;N;ARABIC LETTER MADDAH ON ALEF;;;; 0623;ARABIC LETTER ALEF WITH HAMZA ABOVE;Lo;0;AL;0627 0654;;;;N;ARABIC LETTER HAMZAH ON ALEF;;;; 0624;ARABIC LETTER WAW WITH HAMZA ABOVE;Lo;0;AL;0648 0654;;;;N;ARABIC LETTER HAMZAH ON WAW;;;; 0625;ARABIC LETTER ALEF WITH HAMZA BELOW;Lo;0;AL;0627 0655;;;;N;ARABIC LETTER HAMZAH UNDER ALEF;;;; 0626;ARABIC LETTER YEH WITH HAMZA ABOVE;Lo;0;AL;064A 0654;;;;N;ARABIC LETTER HAMZAH ON YA;;;; 0627;ARABIC LETTER ALEF;Lo;0;AL;;;;;N;;;;; 0628;ARABIC LETTER BEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA;;;; 0629;ARABIC LETTER TEH MARBUTA;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH;;;; 062A;ARABIC LETTER TEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA;;;; 062B;ARABIC LETTER THEH;Lo;0;AL;;;;;N;ARABIC LETTER THAA;;;; 062C;ARABIC LETTER JEEM;Lo;0;AL;;;;;N;;;;; 062D;ARABIC LETTER HAH;Lo;0;AL;;;;;N;ARABIC LETTER HAA;;;; 062E;ARABIC LETTER KHAH;Lo;0;AL;;;;;N;ARABIC LETTER KHAA;;;; 062F;ARABIC LETTER DAL;Lo;0;AL;;;;;N;;;;; 0630;ARABIC LETTER THAL;Lo;0;AL;;;;;N;;;;; 0631;ARABIC LETTER REH;Lo;0;AL;;;;;N;ARABIC LETTER RA;;;; 0632;ARABIC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; 0633;ARABIC LETTER SEEN;Lo;0;AL;;;;;N;;;;; 0634;ARABIC LETTER SHEEN;Lo;0;AL;;;;;N;;;;; 0635;ARABIC LETTER SAD;Lo;0;AL;;;;;N;;;;; 0636;ARABIC LETTER DAD;Lo;0;AL;;;;;N;;;;; 0637;ARABIC LETTER TAH;Lo;0;AL;;;;;N;;;;; 0638;ARABIC LETTER ZAH;Lo;0;AL;;;;;N;ARABIC LETTER DHAH;;;; 0639;ARABIC LETTER AIN;Lo;0;AL;;;;;N;;;;; 063A;ARABIC LETTER GHAIN;Lo;0;AL;;;;;N;;;;; 0640;ARABIC TATWEEL;Lm;0;AL;;;;;N;;;;; 0641;ARABIC LETTER FEH;Lo;0;AL;;;;;N;ARABIC LETTER FA;;;; 0642;ARABIC LETTER QAF;Lo;0;AL;;;;;N;;;;; 0643;ARABIC LETTER KAF;Lo;0;AL;;;;;N;ARABIC LETTER CAF;;;; 0644;ARABIC LETTER LAM;Lo;0;AL;;;;;N;;;;; 0645;ARABIC LETTER MEEM;Lo;0;AL;;;;;N;;;;; 0646;ARABIC LETTER NOON;Lo;0;AL;;;;;N;;;;; 0647;ARABIC LETTER HEH;Lo;0;AL;;;;;N;ARABIC LETTER HA;;;; 0648;ARABIC LETTER WAW;Lo;0;AL;;;;;N;;;;; 0649;ARABIC LETTER ALEF MAKSURA;Lo;0;AL;;;;;N;ARABIC LETTER ALEF MAQSURAH;;;; 064A;ARABIC LETTER YEH;Lo;0;AL;;;;;N;ARABIC LETTER YA;;;; 064B;ARABIC FATHATAN;Mn;27;NSM;;;;;N;;;;; 064C;ARABIC DAMMATAN;Mn;28;NSM;;;;;N;;;;; 064D;ARABIC KASRATAN;Mn;29;NSM;;;;;N;;;;; 064E;ARABIC FATHA;Mn;30;NSM;;;;;N;ARABIC FATHAH;;;; 064F;ARABIC DAMMA;Mn;31;NSM;;;;;N;ARABIC DAMMAH;;;; 0650;ARABIC KASRA;Mn;32;NSM;;;;;N;ARABIC KASRAH;;;; 0651;ARABIC SHADDA;Mn;33;NSM;;;;;N;ARABIC SHADDAH;;;; 0652;ARABIC SUKUN;Mn;34;NSM;;;;;N;;;;; 0653;ARABIC MADDAH ABOVE;Mn;230;NSM;;;;;N;;;;; 0654;ARABIC HAMZA ABOVE;Mn;230;NSM;;;;;N;;;;; 0655;ARABIC HAMZA BELOW;Mn;220;NSM;;;;;N;;;;; 0660;ARABIC-INDIC DIGIT ZERO;Nd;0;AN;;0;0;0;N;;;;; 0661;ARABIC-INDIC DIGIT ONE;Nd;0;AN;;1;1;1;N;;;;; 0662;ARABIC-INDIC DIGIT TWO;Nd;0;AN;;2;2;2;N;;;;; 0663;ARABIC-INDIC DIGIT THREE;Nd;0;AN;;3;3;3;N;;;;; 0664;ARABIC-INDIC DIGIT FOUR;Nd;0;AN;;4;4;4;N;;;;; 0665;ARABIC-INDIC DIGIT FIVE;Nd;0;AN;;5;5;5;N;;;;; 0666;ARABIC-INDIC DIGIT SIX;Nd;0;AN;;6;6;6;N;;;;; 0667;ARABIC-INDIC DIGIT SEVEN;Nd;0;AN;;7;7;7;N;;;;; 0668;ARABIC-INDIC DIGIT EIGHT;Nd;0;AN;;8;8;8;N;;;;; 0669;ARABIC-INDIC DIGIT NINE;Nd;0;AN;;9;9;9;N;;;;; 066A;ARABIC PERCENT SIGN;Po;0;ET;;;;;N;;;;; 066B;ARABIC DECIMAL SEPARATOR;Po;0;AN;;;;;N;;;;; 066C;ARABIC THOUSANDS SEPARATOR;Po;0;AN;;;;;N;;;;; 066D;ARABIC FIVE POINTED STAR;Po;0;AL;;;;;N;;;;; 066E;ARABIC LETTER DOTLESS BEH;Lo;0;AL;;;;;N;;;;; 066F;ARABIC LETTER DOTLESS QAF;Lo;0;AL;;;;;N;;;;; 0670;ARABIC LETTER SUPERSCRIPT ALEF;Mn;35;NSM;;;;;N;ARABIC ALEF ABOVE;;;; 0671;ARABIC LETTER ALEF WASLA;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAT WASL ON ALEF;;;; 0672;ARABIC LETTER ALEF WITH WAVY HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH ON ALEF;;;; 0673;ARABIC LETTER ALEF WITH WAVY HAMZA BELOW;Lo;0;AL;;;;;N;ARABIC LETTER WAVY HAMZAH UNDER ALEF;;;; 0674;ARABIC LETTER HIGH HAMZA;Lo;0;AL;;;;;N;ARABIC LETTER HIGH HAMZAH;;;; 0675;ARABIC LETTER HIGH HAMZA ALEF;Lo;0;AL; 0627 0674;;;;N;ARABIC LETTER HIGH HAMZAH ALEF;;;; 0676;ARABIC LETTER HIGH HAMZA WAW;Lo;0;AL; 0648 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW;;;; 0677;ARABIC LETTER U WITH HAMZA ABOVE;Lo;0;AL; 06C7 0674;;;;N;ARABIC LETTER HIGH HAMZAH WAW WITH DAMMAH;;;; 0678;ARABIC LETTER HIGH HAMZA YEH;Lo;0;AL; 064A 0674;;;;N;ARABIC LETTER HIGH HAMZAH YA;;;; 0679;ARABIC LETTER TTEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH SMALL TAH;;;; 067A;ARABIC LETTER TTEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH TWO DOTS VERTICAL ABOVE;;;; 067B;ARABIC LETTER BEEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH TWO DOTS VERTICAL BELOW;;;; 067C;ARABIC LETTER TEH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH RING;;;; 067D;ARABIC LETTER TEH WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS ABOVE DOWNWARD;;;; 067E;ARABIC LETTER PEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH THREE DOTS BELOW;;;; 067F;ARABIC LETTER TEHEH;Lo;0;AL;;;;;N;ARABIC LETTER TAA WITH FOUR DOTS ABOVE;;;; 0680;ARABIC LETTER BEHEH;Lo;0;AL;;;;;N;ARABIC LETTER BAA WITH FOUR DOTS BELOW;;;; 0681;ARABIC LETTER HAH WITH HAMZA ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAMZAH ON HAA;;;; 0682;ARABIC LETTER HAH WITH TWO DOTS VERTICAL ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH TWO DOTS VERTICAL ABOVE;;;; 0683;ARABIC LETTER NYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS;;;; 0684;ARABIC LETTER DYEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE TWO DOTS VERTICAL;;;; 0685;ARABIC LETTER HAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH THREE DOTS ABOVE;;;; 0686;ARABIC LETTER TCHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE THREE DOTS DOWNWARD;;;; 0687;ARABIC LETTER TCHEHEH;Lo;0;AL;;;;;N;ARABIC LETTER HAA WITH MIDDLE FOUR DOTS;;;; 0688;ARABIC LETTER DDAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH SMALL TAH;;;; 0689;ARABIC LETTER DAL WITH RING;Lo;0;AL;;;;;N;;;;; 068A;ARABIC LETTER DAL WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 068B;ARABIC LETTER DAL WITH DOT BELOW AND SMALL TAH;Lo;0;AL;;;;;N;;;;; 068C;ARABIC LETTER DAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS ABOVE;;;; 068D;ARABIC LETTER DDAHAL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH TWO DOTS BELOW;;;; 068E;ARABIC LETTER DUL;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE;;;; 068F;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARDS;Lo;0;AL;;;;;N;ARABIC LETTER DAL WITH THREE DOTS ABOVE DOWNWARD;;;; 0690;ARABIC LETTER DAL WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 0691;ARABIC LETTER RREH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL TAH;;;; 0692;ARABIC LETTER REH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V;;;; 0693;ARABIC LETTER REH WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH RING;;;; 0694;ARABIC LETTER REH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW;;;; 0695;ARABIC LETTER REH WITH SMALL V BELOW;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH SMALL V BELOW;;;; 0696;ARABIC LETTER REH WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH DOT BELOW AND DOT ABOVE;;;; 0697;ARABIC LETTER REH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH TWO DOTS ABOVE;;;; 0698;ARABIC LETTER JEH;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH THREE DOTS ABOVE;;;; 0699;ARABIC LETTER REH WITH FOUR DOTS ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER RA WITH FOUR DOTS ABOVE;;;; 069A;ARABIC LETTER SEEN WITH DOT BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;; 069B;ARABIC LETTER SEEN WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; 069C;ARABIC LETTER SEEN WITH THREE DOTS BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 069D;ARABIC LETTER SAD WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; 069E;ARABIC LETTER SAD WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 069F;ARABIC LETTER TAH WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06A0;ARABIC LETTER AIN WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06A1;ARABIC LETTER DOTLESS FEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS FA;;;; 06A2;ARABIC LETTER FEH WITH DOT MOVED BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT MOVED BELOW;;;; 06A3;ARABIC LETTER FEH WITH DOT BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH DOT BELOW;;;; 06A4;ARABIC LETTER VEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS ABOVE;;;; 06A5;ARABIC LETTER FEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH THREE DOTS BELOW;;;; 06A6;ARABIC LETTER PEHEH;Lo;0;AL;;;;;N;ARABIC LETTER FA WITH FOUR DOTS ABOVE;;;; 06A7;ARABIC LETTER QAF WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06A8;ARABIC LETTER QAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06A9;ARABIC LETTER KEHEH;Lo;0;AL;;;;;N;ARABIC LETTER OPEN CAF;;;; 06AA;ARABIC LETTER SWASH KAF;Lo;0;AL;;;;;N;ARABIC LETTER SWASH CAF;;;; 06AB;ARABIC LETTER KAF WITH RING;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH RING;;;; 06AC;ARABIC LETTER KAF WITH DOT ABOVE;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH DOT ABOVE;;;; 06AD;ARABIC LETTER NG;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS ABOVE;;;; 06AE;ARABIC LETTER KAF WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER CAF WITH THREE DOTS BELOW;;;; 06AF;ARABIC LETTER GAF;Lo;0;AL;;;;;N;;*;;; 06B0;ARABIC LETTER GAF WITH RING;Lo;0;AL;;;;;N;;;;; 06B1;ARABIC LETTER NGOEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS ABOVE;;;; 06B2;ARABIC LETTER GAF WITH TWO DOTS BELOW;Lo;0;AL;;;;;N;;;;; 06B3;ARABIC LETTER GUEH;Lo;0;AL;;;;;N;ARABIC LETTER GAF WITH TWO DOTS VERTICAL BELOW;;;; 06B4;ARABIC LETTER GAF WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06B5;ARABIC LETTER LAM WITH SMALL V;Lo;0;AL;;;;;N;;;;; 06B6;ARABIC LETTER LAM WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06B7;ARABIC LETTER LAM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06B8;ARABIC LETTER LAM WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; 06B9;ARABIC LETTER NOON WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06BA;ARABIC LETTER NOON GHUNNA;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON;;;; 06BB;ARABIC LETTER RNOON;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS NOON WITH SMALL TAH;;;; 06BC;ARABIC LETTER NOON WITH RING;Lo;0;AL;;;;;N;;;;; 06BD;ARABIC LETTER NOON WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06BE;ARABIC LETTER HEH DOACHASHMEE;Lo;0;AL;;;;;N;ARABIC LETTER KNOTTED HA;;;; 06BF;ARABIC LETTER TCHEH WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06C0;ARABIC LETTER HEH WITH YEH ABOVE;Lo;0;AL;06D5 0654;;;;N;ARABIC LETTER HAMZAH ON HA;;;; 06C1;ARABIC LETTER HEH GOAL;Lo;0;AL;;;;;N;ARABIC LETTER HA GOAL;;;; 06C2;ARABIC LETTER HEH GOAL WITH HAMZA ABOVE;Lo;0;AL;06C1 0654;;;;N;ARABIC LETTER HAMZAH ON HA GOAL;;;; 06C3;ARABIC LETTER TEH MARBUTA GOAL;Lo;0;AL;;;;;N;ARABIC LETTER TAA MARBUTAH GOAL;;;; 06C4;ARABIC LETTER WAW WITH RING;Lo;0;AL;;;;;N;;;;; 06C5;ARABIC LETTER KIRGHIZ OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH BAR;;;; 06C6;ARABIC LETTER OE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH SMALL V;;;; 06C7;ARABIC LETTER U;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH DAMMAH;;;; 06C8;ARABIC LETTER YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH ALEF ABOVE;;;; 06C9;ARABIC LETTER KIRGHIZ YU;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH INVERTED SMALL V;;;; 06CA;ARABIC LETTER WAW WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;; 06CB;ARABIC LETTER VE;Lo;0;AL;;;;;N;ARABIC LETTER WAW WITH THREE DOTS ABOVE;;;; 06CC;ARABIC LETTER FARSI YEH;Lo;0;AL;;;;;N;ARABIC LETTER DOTLESS YA;;;; 06CD;ARABIC LETTER YEH WITH TAIL;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TAIL;;;; 06CE;ARABIC LETTER YEH WITH SMALL V;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH SMALL V;;;; 06CF;ARABIC LETTER WAW WITH DOT ABOVE;Lo;0;AL;;;;;N;;;;; 06D0;ARABIC LETTER E;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH TWO DOTS VERTICAL BELOW;*;;; 06D1;ARABIC LETTER YEH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;ARABIC LETTER YA WITH THREE DOTS BELOW;;;; 06D2;ARABIC LETTER YEH BARREE;Lo;0;AL;;;;;N;ARABIC LETTER YA BARREE;;;; 06D3;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE;Lo;0;AL;06D2 0654;;;;N;ARABIC LETTER HAMZAH ON YA BARREE;;;; 06D4;ARABIC FULL STOP;Po;0;AL;;;;;N;ARABIC PERIOD;;;; 06D5;ARABIC LETTER AE;Lo;0;AL;;;;;N;;;;; 06D6;ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; 06D7;ARABIC SMALL HIGH LIGATURE QAF WITH LAM WITH ALEF MAKSURA;Mn;230;NSM;;;;;N;;;;; 06D8;ARABIC SMALL HIGH MEEM INITIAL FORM;Mn;230;NSM;;;;;N;;;;; 06D9;ARABIC SMALL HIGH LAM ALEF;Mn;230;NSM;;;;;N;;;;; 06DA;ARABIC SMALL HIGH JEEM;Mn;230;NSM;;;;;N;;;;; 06DB;ARABIC SMALL HIGH THREE DOTS;Mn;230;NSM;;;;;N;;;;; 06DC;ARABIC SMALL HIGH SEEN;Mn;230;NSM;;;;;N;;;;; 06DD;ARABIC END OF AYAH;Cf;0;AL;;;;;N;;;;; 06DE;ARABIC START OF RUB EL HIZB;Me;0;NSM;;;;;N;;;;; 06DF;ARABIC SMALL HIGH ROUNDED ZERO;Mn;230;NSM;;;;;N;;;;; 06E0;ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO;Mn;230;NSM;;;;;N;;;;; 06E1;ARABIC SMALL HIGH DOTLESS HEAD OF KHAH;Mn;230;NSM;;;;;N;;;;; 06E2;ARABIC SMALL HIGH MEEM ISOLATED FORM;Mn;230;NSM;;;;;N;;;;; 06E3;ARABIC SMALL LOW SEEN;Mn;220;NSM;;;;;N;;;;; 06E4;ARABIC SMALL HIGH MADDA;Mn;230;NSM;;;;;N;;;;; 06E5;ARABIC SMALL WAW;Lm;0;AL;;;;;N;;;;; 06E6;ARABIC SMALL YEH;Lm;0;AL;;;;;N;;;;; 06E7;ARABIC SMALL HIGH YEH;Mn;230;NSM;;;;;N;;;;; 06E8;ARABIC SMALL HIGH NOON;Mn;230;NSM;;;;;N;;;;; 06E9;ARABIC PLACE OF SAJDAH;So;0;ON;;;;;N;;;;; 06EA;ARABIC EMPTY CENTRE LOW STOP;Mn;220;NSM;;;;;N;;;;; 06EB;ARABIC EMPTY CENTRE HIGH STOP;Mn;230;NSM;;;;;N;;;;; 06EC;ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE;Mn;230;NSM;;;;;N;;;;; 06ED;ARABIC SMALL LOW MEEM;Mn;220;NSM;;;;;N;;;;; 06F0;EXTENDED ARABIC-INDIC DIGIT ZERO;Nd;0;EN;;0;0;0;N;EASTERN ARABIC-INDIC DIGIT ZERO;;;; 06F1;EXTENDED ARABIC-INDIC DIGIT ONE;Nd;0;EN;;1;1;1;N;EASTERN ARABIC-INDIC DIGIT ONE;;;; 06F2;EXTENDED ARABIC-INDIC DIGIT TWO;Nd;0;EN;;2;2;2;N;EASTERN ARABIC-INDIC DIGIT TWO;;;; 06F3;EXTENDED ARABIC-INDIC DIGIT THREE;Nd;0;EN;;3;3;3;N;EASTERN ARABIC-INDIC DIGIT THREE;;;; 06F4;EXTENDED ARABIC-INDIC DIGIT FOUR;Nd;0;EN;;4;4;4;N;EASTERN ARABIC-INDIC DIGIT FOUR;;;; 06F5;EXTENDED ARABIC-INDIC DIGIT FIVE;Nd;0;EN;;5;5;5;N;EASTERN ARABIC-INDIC DIGIT FIVE;;;; 06F6;EXTENDED ARABIC-INDIC DIGIT SIX;Nd;0;EN;;6;6;6;N;EASTERN ARABIC-INDIC DIGIT SIX;;;; 06F7;EXTENDED ARABIC-INDIC DIGIT SEVEN;Nd;0;EN;;7;7;7;N;EASTERN ARABIC-INDIC DIGIT SEVEN;;;; 06F8;EXTENDED ARABIC-INDIC DIGIT EIGHT;Nd;0;EN;;8;8;8;N;EASTERN ARABIC-INDIC DIGIT EIGHT;;;; 06F9;EXTENDED ARABIC-INDIC DIGIT NINE;Nd;0;EN;;9;9;9;N;EASTERN ARABIC-INDIC DIGIT NINE;;;; 06FA;ARABIC LETTER SHEEN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06FB;ARABIC LETTER DAD WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06FC;ARABIC LETTER GHAIN WITH DOT BELOW;Lo;0;AL;;;;;N;;;;; 06FD;ARABIC SIGN SINDHI AMPERSAND;So;0;AL;;;;;N;;;;; 06FE;ARABIC SIGN SINDHI POSTPOSITION MEN;So;0;AL;;;;;N;;;;; 0700;SYRIAC END OF PARAGRAPH;Po;0;AL;;;;;N;;;;; 0701;SYRIAC SUPRALINEAR FULL STOP;Po;0;AL;;;;;N;;;;; 0702;SYRIAC SUBLINEAR FULL STOP;Po;0;AL;;;;;N;;;;; 0703;SYRIAC SUPRALINEAR COLON;Po;0;AL;;;;;N;;;;; 0704;SYRIAC SUBLINEAR COLON;Po;0;AL;;;;;N;;;;; 0705;SYRIAC HORIZONTAL COLON;Po;0;AL;;;;;N;;;;; 0706;SYRIAC COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; 0707;SYRIAC COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; 0708;SYRIAC SUPRALINEAR COLON SKEWED LEFT;Po;0;AL;;;;;N;;;;; 0709;SYRIAC SUBLINEAR COLON SKEWED RIGHT;Po;0;AL;;;;;N;;;;; 070A;SYRIAC CONTRACTION;Po;0;AL;;;;;N;;;;; 070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;; 070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;; 070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;; 070F;SYRIAC ABBREVIATION MARK;Cf;0;BN;;;;;N;;;;; 0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;; 0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;; 0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;; 0713;SYRIAC LETTER GAMAL;Lo;0;AL;;;;;N;;;;; 0714;SYRIAC LETTER GAMAL GARSHUNI;Lo;0;AL;;;;;N;;;;; 0715;SYRIAC LETTER DALATH;Lo;0;AL;;;;;N;;;;; 0716;SYRIAC LETTER DOTLESS DALATH RISH;Lo;0;AL;;;;;N;;;;; 0717;SYRIAC LETTER HE;Lo;0;AL;;;;;N;;;;; 0718;SYRIAC LETTER WAW;Lo;0;AL;;;;;N;;;;; 0719;SYRIAC LETTER ZAIN;Lo;0;AL;;;;;N;;;;; 071A;SYRIAC LETTER HETH;Lo;0;AL;;;;;N;;;;; 071B;SYRIAC LETTER TETH;Lo;0;AL;;;;;N;;;;; 071C;SYRIAC LETTER TETH GARSHUNI;Lo;0;AL;;;;;N;;;;; 071D;SYRIAC LETTER YUDH;Lo;0;AL;;;;;N;;;;; 071E;SYRIAC LETTER YUDH HE;Lo;0;AL;;;;;N;;;;; 071F;SYRIAC LETTER KAPH;Lo;0;AL;;;;;N;;;;; 0720;SYRIAC LETTER LAMADH;Lo;0;AL;;;;;N;;;;; 0721;SYRIAC LETTER MIM;Lo;0;AL;;;;;N;;;;; 0722;SYRIAC LETTER NUN;Lo;0;AL;;;;;N;;;;; 0723;SYRIAC LETTER SEMKATH;Lo;0;AL;;;;;N;;;;; 0724;SYRIAC LETTER FINAL SEMKATH;Lo;0;AL;;;;;N;;;;; 0725;SYRIAC LETTER E;Lo;0;AL;;;;;N;;;;; 0726;SYRIAC LETTER PE;Lo;0;AL;;;;;N;;;;; 0727;SYRIAC LETTER REVERSED PE;Lo;0;AL;;;;;N;;;;; 0728;SYRIAC LETTER SADHE;Lo;0;AL;;;;;N;;;;; 0729;SYRIAC LETTER QAPH;Lo;0;AL;;;;;N;;;;; 072A;SYRIAC LETTER RISH;Lo;0;AL;;;;;N;;;;; 072B;SYRIAC LETTER SHIN;Lo;0;AL;;;;;N;;;;; 072C;SYRIAC LETTER TAW;Lo;0;AL;;;;;N;;;;; 0730;SYRIAC PTHAHA ABOVE;Mn;230;NSM;;;;;N;;;;; 0731;SYRIAC PTHAHA BELOW;Mn;220;NSM;;;;;N;;;;; 0732;SYRIAC PTHAHA DOTTED;Mn;230;NSM;;;;;N;;;;; 0733;SYRIAC ZQAPHA ABOVE;Mn;230;NSM;;;;;N;;;;; 0734;SYRIAC ZQAPHA BELOW;Mn;220;NSM;;;;;N;;;;; 0735;SYRIAC ZQAPHA DOTTED;Mn;230;NSM;;;;;N;;;;; 0736;SYRIAC RBASA ABOVE;Mn;230;NSM;;;;;N;;;;; 0737;SYRIAC RBASA BELOW;Mn;220;NSM;;;;;N;;;;; 0738;SYRIAC DOTTED ZLAMA HORIZONTAL;Mn;220;NSM;;;;;N;;;;; 0739;SYRIAC DOTTED ZLAMA ANGULAR;Mn;220;NSM;;;;;N;;;;; 073A;SYRIAC HBASA ABOVE;Mn;230;NSM;;;;;N;;;;; 073B;SYRIAC HBASA BELOW;Mn;220;NSM;;;;;N;;;;; 073C;SYRIAC HBASA-ESASA DOTTED;Mn;220;NSM;;;;;N;;;;; 073D;SYRIAC ESASA ABOVE;Mn;230;NSM;;;;;N;;;;; 073E;SYRIAC ESASA BELOW;Mn;220;NSM;;;;;N;;;;; 073F;SYRIAC RWAHA;Mn;230;NSM;;;;;N;;;;; 0740;SYRIAC FEMININE DOT;Mn;230;NSM;;;;;N;;;;; 0741;SYRIAC QUSHSHAYA;Mn;230;NSM;;;;;N;;;;; 0742;SYRIAC RUKKAKHA;Mn;220;NSM;;;;;N;;;;; 0743;SYRIAC TWO VERTICAL DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; 0744;SYRIAC TWO VERTICAL DOTS BELOW;Mn;220;NSM;;;;;N;;;;; 0745;SYRIAC THREE DOTS ABOVE;Mn;230;NSM;;;;;N;;;;; 0746;SYRIAC THREE DOTS BELOW;Mn;220;NSM;;;;;N;;;;; 0747;SYRIAC OBLIQUE LINE ABOVE;Mn;230;NSM;;;;;N;;;;; 0748;SYRIAC OBLIQUE LINE BELOW;Mn;220;NSM;;;;;N;;;;; 0749;SYRIAC MUSIC;Mn;230;NSM;;;;;N;;;;; 074A;SYRIAC BARREKH;Mn;230;NSM;;;;;N;;;;; 0780;THAANA LETTER HAA;Lo;0;AL;;;;;N;;;;; 0781;THAANA LETTER SHAVIYANI;Lo;0;AL;;;;;N;;;;; 0782;THAANA LETTER NOONU;Lo;0;AL;;;;;N;;;;; 0783;THAANA LETTER RAA;Lo;0;AL;;;;;N;;;;; 0784;THAANA LETTER BAA;Lo;0;AL;;;;;N;;;;; 0785;THAANA LETTER LHAVIYANI;Lo;0;AL;;;;;N;;;;; 0786;THAANA LETTER KAAFU;Lo;0;AL;;;;;N;;;;; 0787;THAANA LETTER ALIFU;Lo;0;AL;;;;;N;;;;; 0788;THAANA LETTER VAAVU;Lo;0;AL;;;;;N;;;;; 0789;THAANA LETTER MEEMU;Lo;0;AL;;;;;N;;;;; 078A;THAANA LETTER FAAFU;Lo;0;AL;;;;;N;;;;; 078B;THAANA LETTER DHAALU;Lo;0;AL;;;;;N;;;;; 078C;THAANA LETTER THAA;Lo;0;AL;;;;;N;;;;; 078D;THAANA LETTER LAAMU;Lo;0;AL;;;;;N;;;;; 078E;THAANA LETTER GAAFU;Lo;0;AL;;;;;N;;;;; 078F;THAANA LETTER GNAVIYANI;Lo;0;AL;;;;;N;;;;; 0790;THAANA LETTER SEENU;Lo;0;AL;;;;;N;;;;; 0791;THAANA LETTER DAVIYANI;Lo;0;AL;;;;;N;;;;; 0792;THAANA LETTER ZAVIYANI;Lo;0;AL;;;;;N;;;;; 0793;THAANA LETTER TAVIYANI;Lo;0;AL;;;;;N;;;;; 0794;THAANA LETTER YAA;Lo;0;AL;;;;;N;;;;; 0795;THAANA LETTER PAVIYANI;Lo;0;AL;;;;;N;;;;; 0796;THAANA LETTER JAVIYANI;Lo;0;AL;;;;;N;;;;; 0797;THAANA LETTER CHAVIYANI;Lo;0;AL;;;;;N;;;;; 0798;THAANA LETTER TTAA;Lo;0;AL;;;;;N;;;;; 0799;THAANA LETTER HHAA;Lo;0;AL;;;;;N;;;;; 079A;THAANA LETTER KHAA;Lo;0;AL;;;;;N;;;;; 079B;THAANA LETTER THAALU;Lo;0;AL;;;;;N;;;;; 079C;THAANA LETTER ZAA;Lo;0;AL;;;;;N;;;;; 079D;THAANA LETTER SHEENU;Lo;0;AL;;;;;N;;;;; 079E;THAANA LETTER SAADHU;Lo;0;AL;;;;;N;;;;; 079F;THAANA LETTER DAADHU;Lo;0;AL;;;;;N;;;;; 07A0;THAANA LETTER TO;Lo;0;AL;;;;;N;;;;; 07A1;THAANA LETTER ZO;Lo;0;AL;;;;;N;;;;; 07A2;THAANA LETTER AINU;Lo;0;AL;;;;;N;;;;; 07A3;THAANA LETTER GHAINU;Lo;0;AL;;;;;N;;;;; 07A4;THAANA LETTER QAAFU;Lo;0;AL;;;;;N;;;;; 07A5;THAANA LETTER WAAVU;Lo;0;AL;;;;;N;;;;; 07A6;THAANA ABAFILI;Mn;0;NSM;;;;;N;;;;; 07A7;THAANA AABAAFILI;Mn;0;NSM;;;;;N;;;;; 07A8;THAANA IBIFILI;Mn;0;NSM;;;;;N;;;;; 07A9;THAANA EEBEEFILI;Mn;0;NSM;;;;;N;;;;; 07AA;THAANA UBUFILI;Mn;0;NSM;;;;;N;;;;; 07AB;THAANA OOBOOFILI;Mn;0;NSM;;;;;N;;;;; 07AC;THAANA EBEFILI;Mn;0;NSM;;;;;N;;;;; 07AD;THAANA EYBEYFILI;Mn;0;NSM;;;;;N;;;;; 07AE;THAANA OBOFILI;Mn;0;NSM;;;;;N;;;;; 07AF;THAANA OABOAFILI;Mn;0;NSM;;;;;N;;;;; 07B0;THAANA SUKUN;Mn;0;NSM;;;;;N;;;;; 07B1;THAANA LETTER NAA;Lo;0;AL;;;;;N;;;;; 0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 0903;DEVANAGARI SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0905;DEVANAGARI LETTER A;Lo;0;L;;;;;N;;;;; 0906;DEVANAGARI LETTER AA;Lo;0;L;;;;;N;;;;; 0907;DEVANAGARI LETTER I;Lo;0;L;;;;;N;;;;; 0908;DEVANAGARI LETTER II;Lo;0;L;;;;;N;;;;; 0909;DEVANAGARI LETTER U;Lo;0;L;;;;;N;;;;; 090A;DEVANAGARI LETTER UU;Lo;0;L;;;;;N;;;;; 090B;DEVANAGARI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 090C;DEVANAGARI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 090D;DEVANAGARI LETTER CANDRA E;Lo;0;L;;;;;N;;;;; 090E;DEVANAGARI LETTER SHORT E;Lo;0;L;;;;;N;;;;; 090F;DEVANAGARI LETTER E;Lo;0;L;;;;;N;;;;; 0910;DEVANAGARI LETTER AI;Lo;0;L;;;;;N;;;;; 0911;DEVANAGARI LETTER CANDRA O;Lo;0;L;;;;;N;;;;; 0912;DEVANAGARI LETTER SHORT O;Lo;0;L;;;;;N;;;;; 0913;DEVANAGARI LETTER O;Lo;0;L;;;;;N;;;;; 0914;DEVANAGARI LETTER AU;Lo;0;L;;;;;N;;;;; 0915;DEVANAGARI LETTER KA;Lo;0;L;;;;;N;;;;; 0916;DEVANAGARI LETTER KHA;Lo;0;L;;;;;N;;;;; 0917;DEVANAGARI LETTER GA;Lo;0;L;;;;;N;;;;; 0918;DEVANAGARI LETTER GHA;Lo;0;L;;;;;N;;;;; 0919;DEVANAGARI LETTER NGA;Lo;0;L;;;;;N;;;;; 091A;DEVANAGARI LETTER CA;Lo;0;L;;;;;N;;;;; 091B;DEVANAGARI LETTER CHA;Lo;0;L;;;;;N;;;;; 091C;DEVANAGARI LETTER JA;Lo;0;L;;;;;N;;;;; 091D;DEVANAGARI LETTER JHA;Lo;0;L;;;;;N;;;;; 091E;DEVANAGARI LETTER NYA;Lo;0;L;;;;;N;;;;; 091F;DEVANAGARI LETTER TTA;Lo;0;L;;;;;N;;;;; 0920;DEVANAGARI LETTER TTHA;Lo;0;L;;;;;N;;;;; 0921;DEVANAGARI LETTER DDA;Lo;0;L;;;;;N;;;;; 0922;DEVANAGARI LETTER DDHA;Lo;0;L;;;;;N;;;;; 0923;DEVANAGARI LETTER NNA;Lo;0;L;;;;;N;;;;; 0924;DEVANAGARI LETTER TA;Lo;0;L;;;;;N;;;;; 0925;DEVANAGARI LETTER THA;Lo;0;L;;;;;N;;;;; 0926;DEVANAGARI LETTER DA;Lo;0;L;;;;;N;;;;; 0927;DEVANAGARI LETTER DHA;Lo;0;L;;;;;N;;;;; 0928;DEVANAGARI LETTER NA;Lo;0;L;;;;;N;;;;; 0929;DEVANAGARI LETTER NNNA;Lo;0;L;0928 093C;;;;N;;;;; 092A;DEVANAGARI LETTER PA;Lo;0;L;;;;;N;;;;; 092B;DEVANAGARI LETTER PHA;Lo;0;L;;;;;N;;;;; 092C;DEVANAGARI LETTER BA;Lo;0;L;;;;;N;;;;; 092D;DEVANAGARI LETTER BHA;Lo;0;L;;;;;N;;;;; 092E;DEVANAGARI LETTER MA;Lo;0;L;;;;;N;;;;; 092F;DEVANAGARI LETTER YA;Lo;0;L;;;;;N;;;;; 0930;DEVANAGARI LETTER RA;Lo;0;L;;;;;N;;;;; 0931;DEVANAGARI LETTER RRA;Lo;0;L;0930 093C;;;;N;;;;; 0932;DEVANAGARI LETTER LA;Lo;0;L;;;;;N;;;;; 0933;DEVANAGARI LETTER LLA;Lo;0;L;;;;;N;;;;; 0934;DEVANAGARI LETTER LLLA;Lo;0;L;0933 093C;;;;N;;;;; 0935;DEVANAGARI LETTER VA;Lo;0;L;;;;;N;;;;; 0936;DEVANAGARI LETTER SHA;Lo;0;L;;;;;N;;;;; 0937;DEVANAGARI LETTER SSA;Lo;0;L;;;;;N;;;;; 0938;DEVANAGARI LETTER SA;Lo;0;L;;;;;N;;;;; 0939;DEVANAGARI LETTER HA;Lo;0;L;;;;;N;;;;; 093C;DEVANAGARI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 093D;DEVANAGARI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; 093E;DEVANAGARI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 093F;DEVANAGARI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0940;DEVANAGARI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0941;DEVANAGARI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0942;DEVANAGARI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0943;DEVANAGARI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0944;DEVANAGARI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; 0945;DEVANAGARI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; 0946;DEVANAGARI VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;; 0947;DEVANAGARI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0948;DEVANAGARI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 0949;DEVANAGARI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; 094A;DEVANAGARI VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;; 094B;DEVANAGARI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; 094C;DEVANAGARI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; 094D;DEVANAGARI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0950;DEVANAGARI OM;Lo;0;L;;;;;N;;;;; 0951;DEVANAGARI STRESS SIGN UDATTA;Mn;230;NSM;;;;;N;;;;; 0952;DEVANAGARI STRESS SIGN ANUDATTA;Mn;220;NSM;;;;;N;;;;; 0953;DEVANAGARI GRAVE ACCENT;Mn;230;NSM;;;;;N;;;;; 0954;DEVANAGARI ACUTE ACCENT;Mn;230;NSM;;;;;N;;;;; 0958;DEVANAGARI LETTER QA;Lo;0;L;0915 093C;;;;N;;;;; 0959;DEVANAGARI LETTER KHHA;Lo;0;L;0916 093C;;;;N;;;;; 095A;DEVANAGARI LETTER GHHA;Lo;0;L;0917 093C;;;;N;;;;; 095B;DEVANAGARI LETTER ZA;Lo;0;L;091C 093C;;;;N;;;;; 095C;DEVANAGARI LETTER DDDHA;Lo;0;L;0921 093C;;;;N;;;;; 095D;DEVANAGARI LETTER RHA;Lo;0;L;0922 093C;;;;N;;;;; 095E;DEVANAGARI LETTER FA;Lo;0;L;092B 093C;;;;N;;;;; 095F;DEVANAGARI LETTER YYA;Lo;0;L;092F 093C;;;;N;;;;; 0960;DEVANAGARI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0961;DEVANAGARI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0962;DEVANAGARI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; 0963;DEVANAGARI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; 0964;DEVANAGARI DANDA;Po;0;L;;;;;N;;;;; 0965;DEVANAGARI DOUBLE DANDA;Po;0;L;;;;;N;;;;; 0966;DEVANAGARI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0967;DEVANAGARI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0968;DEVANAGARI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0969;DEVANAGARI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 096A;DEVANAGARI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 096B;DEVANAGARI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 096C;DEVANAGARI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 096D;DEVANAGARI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 096E;DEVANAGARI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 096F;DEVANAGARI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0970;DEVANAGARI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; 0981;BENGALI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0982;BENGALI SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0983;BENGALI SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0985;BENGALI LETTER A;Lo;0;L;;;;;N;;;;; 0986;BENGALI LETTER AA;Lo;0;L;;;;;N;;;;; 0987;BENGALI LETTER I;Lo;0;L;;;;;N;;;;; 0988;BENGALI LETTER II;Lo;0;L;;;;;N;;;;; 0989;BENGALI LETTER U;Lo;0;L;;;;;N;;;;; 098A;BENGALI LETTER UU;Lo;0;L;;;;;N;;;;; 098B;BENGALI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 098C;BENGALI LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 098F;BENGALI LETTER E;Lo;0;L;;;;;N;;;;; 0990;BENGALI LETTER AI;Lo;0;L;;;;;N;;;;; 0993;BENGALI LETTER O;Lo;0;L;;;;;N;;;;; 0994;BENGALI LETTER AU;Lo;0;L;;;;;N;;;;; 0995;BENGALI LETTER KA;Lo;0;L;;;;;N;;;;; 0996;BENGALI LETTER KHA;Lo;0;L;;;;;N;;;;; 0997;BENGALI LETTER GA;Lo;0;L;;;;;N;;;;; 0998;BENGALI LETTER GHA;Lo;0;L;;;;;N;;;;; 0999;BENGALI LETTER NGA;Lo;0;L;;;;;N;;;;; 099A;BENGALI LETTER CA;Lo;0;L;;;;;N;;;;; 099B;BENGALI LETTER CHA;Lo;0;L;;;;;N;;;;; 099C;BENGALI LETTER JA;Lo;0;L;;;;;N;;;;; 099D;BENGALI LETTER JHA;Lo;0;L;;;;;N;;;;; 099E;BENGALI LETTER NYA;Lo;0;L;;;;;N;;;;; 099F;BENGALI LETTER TTA;Lo;0;L;;;;;N;;;;; 09A0;BENGALI LETTER TTHA;Lo;0;L;;;;;N;;;;; 09A1;BENGALI LETTER DDA;Lo;0;L;;;;;N;;;;; 09A2;BENGALI LETTER DDHA;Lo;0;L;;;;;N;;;;; 09A3;BENGALI LETTER NNA;Lo;0;L;;;;;N;;;;; 09A4;BENGALI LETTER TA;Lo;0;L;;;;;N;;;;; 09A5;BENGALI LETTER THA;Lo;0;L;;;;;N;;;;; 09A6;BENGALI LETTER DA;Lo;0;L;;;;;N;;;;; 09A7;BENGALI LETTER DHA;Lo;0;L;;;;;N;;;;; 09A8;BENGALI LETTER NA;Lo;0;L;;;;;N;;;;; 09AA;BENGALI LETTER PA;Lo;0;L;;;;;N;;;;; 09AB;BENGALI LETTER PHA;Lo;0;L;;;;;N;;;;; 09AC;BENGALI LETTER BA;Lo;0;L;;;;;N;;;;; 09AD;BENGALI LETTER BHA;Lo;0;L;;;;;N;;;;; 09AE;BENGALI LETTER MA;Lo;0;L;;;;;N;;;;; 09AF;BENGALI LETTER YA;Lo;0;L;;;;;N;;;;; 09B0;BENGALI LETTER RA;Lo;0;L;;;;;N;;;;; 09B2;BENGALI LETTER LA;Lo;0;L;;;;;N;;;;; 09B6;BENGALI LETTER SHA;Lo;0;L;;;;;N;;;;; 09B7;BENGALI LETTER SSA;Lo;0;L;;;;;N;;;;; 09B8;BENGALI LETTER SA;Lo;0;L;;;;;N;;;;; 09B9;BENGALI LETTER HA;Lo;0;L;;;;;N;;;;; 09BC;BENGALI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 09BE;BENGALI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 09BF;BENGALI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 09C0;BENGALI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 09C1;BENGALI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 09C2;BENGALI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 09C3;BENGALI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 09C4;BENGALI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; 09C7;BENGALI VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 09C8;BENGALI VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 09CB;BENGALI VOWEL SIGN O;Mc;0;L;09C7 09BE;;;;N;;;;; 09CC;BENGALI VOWEL SIGN AU;Mc;0;L;09C7 09D7;;;;N;;;;; 09CD;BENGALI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 09D7;BENGALI AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 09DC;BENGALI LETTER RRA;Lo;0;L;09A1 09BC;;;;N;;;;; 09DD;BENGALI LETTER RHA;Lo;0;L;09A2 09BC;;;;N;;;;; 09DF;BENGALI LETTER YYA;Lo;0;L;09AF 09BC;;;;N;;;;; 09E0;BENGALI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 09E1;BENGALI LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 09E2;BENGALI VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; 09E3;BENGALI VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; 09E6;BENGALI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 09E7;BENGALI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 09E8;BENGALI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 09E9;BENGALI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 09EA;BENGALI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 09EB;BENGALI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 09EC;BENGALI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 09ED;BENGALI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 09EE;BENGALI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 09EF;BENGALI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 09F0;BENGALI LETTER RA WITH MIDDLE DIAGONAL;Lo;0;L;;;;;N;;Assamese;;; 09F1;BENGALI LETTER RA WITH LOWER DIAGONAL;Lo;0;L;;;;;N;BENGALI LETTER VA WITH LOWER DIAGONAL;Assamese;;; 09F2;BENGALI RUPEE MARK;Sc;0;ET;;;;;N;;;;; 09F3;BENGALI RUPEE SIGN;Sc;0;ET;;;;;N;;;;; 09F4;BENGALI CURRENCY NUMERATOR ONE;No;0;L;;;;1;N;;;;; 09F5;BENGALI CURRENCY NUMERATOR TWO;No;0;L;;;;2;N;;;;; 09F6;BENGALI CURRENCY NUMERATOR THREE;No;0;L;;;;3;N;;;;; 09F7;BENGALI CURRENCY NUMERATOR FOUR;No;0;L;;;;4;N;;;;; 09F8;BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR;No;0;L;;;;;N;;;;; 09F9;BENGALI CURRENCY DENOMINATOR SIXTEEN;No;0;L;;;;16;N;;;;; 09FA;BENGALI ISSHAR;So;0;L;;;;;N;;;;; 0A02;GURMUKHI SIGN BINDI;Mn;0;NSM;;;;;N;;;;; 0A05;GURMUKHI LETTER A;Lo;0;L;;;;;N;;;;; 0A06;GURMUKHI LETTER AA;Lo;0;L;;;;;N;;;;; 0A07;GURMUKHI LETTER I;Lo;0;L;;;;;N;;;;; 0A08;GURMUKHI LETTER II;Lo;0;L;;;;;N;;;;; 0A09;GURMUKHI LETTER U;Lo;0;L;;;;;N;;;;; 0A0A;GURMUKHI LETTER UU;Lo;0;L;;;;;N;;;;; 0A0F;GURMUKHI LETTER EE;Lo;0;L;;;;;N;;;;; 0A10;GURMUKHI LETTER AI;Lo;0;L;;;;;N;;;;; 0A13;GURMUKHI LETTER OO;Lo;0;L;;;;;N;;;;; 0A14;GURMUKHI LETTER AU;Lo;0;L;;;;;N;;;;; 0A15;GURMUKHI LETTER KA;Lo;0;L;;;;;N;;;;; 0A16;GURMUKHI LETTER KHA;Lo;0;L;;;;;N;;;;; 0A17;GURMUKHI LETTER GA;Lo;0;L;;;;;N;;;;; 0A18;GURMUKHI LETTER GHA;Lo;0;L;;;;;N;;;;; 0A19;GURMUKHI LETTER NGA;Lo;0;L;;;;;N;;;;; 0A1A;GURMUKHI LETTER CA;Lo;0;L;;;;;N;;;;; 0A1B;GURMUKHI LETTER CHA;Lo;0;L;;;;;N;;;;; 0A1C;GURMUKHI LETTER JA;Lo;0;L;;;;;N;;;;; 0A1D;GURMUKHI LETTER JHA;Lo;0;L;;;;;N;;;;; 0A1E;GURMUKHI LETTER NYA;Lo;0;L;;;;;N;;;;; 0A1F;GURMUKHI LETTER TTA;Lo;0;L;;;;;N;;;;; 0A20;GURMUKHI LETTER TTHA;Lo;0;L;;;;;N;;;;; 0A21;GURMUKHI LETTER DDA;Lo;0;L;;;;;N;;;;; 0A22;GURMUKHI LETTER DDHA;Lo;0;L;;;;;N;;;;; 0A23;GURMUKHI LETTER NNA;Lo;0;L;;;;;N;;;;; 0A24;GURMUKHI LETTER TA;Lo;0;L;;;;;N;;;;; 0A25;GURMUKHI LETTER THA;Lo;0;L;;;;;N;;;;; 0A26;GURMUKHI LETTER DA;Lo;0;L;;;;;N;;;;; 0A27;GURMUKHI LETTER DHA;Lo;0;L;;;;;N;;;;; 0A28;GURMUKHI LETTER NA;Lo;0;L;;;;;N;;;;; 0A2A;GURMUKHI LETTER PA;Lo;0;L;;;;;N;;;;; 0A2B;GURMUKHI LETTER PHA;Lo;0;L;;;;;N;;;;; 0A2C;GURMUKHI LETTER BA;Lo;0;L;;;;;N;;;;; 0A2D;GURMUKHI LETTER BHA;Lo;0;L;;;;;N;;;;; 0A2E;GURMUKHI LETTER MA;Lo;0;L;;;;;N;;;;; 0A2F;GURMUKHI LETTER YA;Lo;0;L;;;;;N;;;;; 0A30;GURMUKHI LETTER RA;Lo;0;L;;;;;N;;;;; 0A32;GURMUKHI LETTER LA;Lo;0;L;;;;;N;;;;; 0A33;GURMUKHI LETTER LLA;Lo;0;L;0A32 0A3C;;;;N;;;;; 0A35;GURMUKHI LETTER VA;Lo;0;L;;;;;N;;;;; 0A36;GURMUKHI LETTER SHA;Lo;0;L;0A38 0A3C;;;;N;;;;; 0A38;GURMUKHI LETTER SA;Lo;0;L;;;;;N;;;;; 0A39;GURMUKHI LETTER HA;Lo;0;L;;;;;N;;;;; 0A3C;GURMUKHI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 0A3E;GURMUKHI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0A3F;GURMUKHI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0A40;GURMUKHI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0A41;GURMUKHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0A42;GURMUKHI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0A47;GURMUKHI VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; 0A48;GURMUKHI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 0A4B;GURMUKHI VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; 0A4C;GURMUKHI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; 0A4D;GURMUKHI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0A59;GURMUKHI LETTER KHHA;Lo;0;L;0A16 0A3C;;;;N;;;;; 0A5A;GURMUKHI LETTER GHHA;Lo;0;L;0A17 0A3C;;;;N;;;;; 0A5B;GURMUKHI LETTER ZA;Lo;0;L;0A1C 0A3C;;;;N;;;;; 0A5C;GURMUKHI LETTER RRA;Lo;0;L;;;;;N;;;;; 0A5E;GURMUKHI LETTER FA;Lo;0;L;0A2B 0A3C;;;;N;;;;; 0A66;GURMUKHI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0A67;GURMUKHI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0A68;GURMUKHI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0A69;GURMUKHI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0A6A;GURMUKHI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0A6B;GURMUKHI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0A6C;GURMUKHI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0A6D;GURMUKHI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0A6E;GURMUKHI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0A6F;GURMUKHI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0A70;GURMUKHI TIPPI;Mn;0;NSM;;;;;N;;;;; 0A71;GURMUKHI ADDAK;Mn;0;NSM;;;;;N;;;;; 0A72;GURMUKHI IRI;Lo;0;L;;;;;N;;;;; 0A73;GURMUKHI URA;Lo;0;L;;;;;N;;;;; 0A74;GURMUKHI EK ONKAR;Lo;0;L;;;;;N;;;;; 0A81;GUJARATI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0A82;GUJARATI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 0A83;GUJARATI SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0A85;GUJARATI LETTER A;Lo;0;L;;;;;N;;;;; 0A86;GUJARATI LETTER AA;Lo;0;L;;;;;N;;;;; 0A87;GUJARATI LETTER I;Lo;0;L;;;;;N;;;;; 0A88;GUJARATI LETTER II;Lo;0;L;;;;;N;;;;; 0A89;GUJARATI LETTER U;Lo;0;L;;;;;N;;;;; 0A8A;GUJARATI LETTER UU;Lo;0;L;;;;;N;;;;; 0A8B;GUJARATI LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0A8D;GUJARATI VOWEL CANDRA E;Lo;0;L;;;;;N;;;;; 0A8F;GUJARATI LETTER E;Lo;0;L;;;;;N;;;;; 0A90;GUJARATI LETTER AI;Lo;0;L;;;;;N;;;;; 0A91;GUJARATI VOWEL CANDRA O;Lo;0;L;;;;;N;;;;; 0A93;GUJARATI LETTER O;Lo;0;L;;;;;N;;;;; 0A94;GUJARATI LETTER AU;Lo;0;L;;;;;N;;;;; 0A95;GUJARATI LETTER KA;Lo;0;L;;;;;N;;;;; 0A96;GUJARATI LETTER KHA;Lo;0;L;;;;;N;;;;; 0A97;GUJARATI LETTER GA;Lo;0;L;;;;;N;;;;; 0A98;GUJARATI LETTER GHA;Lo;0;L;;;;;N;;;;; 0A99;GUJARATI LETTER NGA;Lo;0;L;;;;;N;;;;; 0A9A;GUJARATI LETTER CA;Lo;0;L;;;;;N;;;;; 0A9B;GUJARATI LETTER CHA;Lo;0;L;;;;;N;;;;; 0A9C;GUJARATI LETTER JA;Lo;0;L;;;;;N;;;;; 0A9D;GUJARATI LETTER JHA;Lo;0;L;;;;;N;;;;; 0A9E;GUJARATI LETTER NYA;Lo;0;L;;;;;N;;;;; 0A9F;GUJARATI LETTER TTA;Lo;0;L;;;;;N;;;;; 0AA0;GUJARATI LETTER TTHA;Lo;0;L;;;;;N;;;;; 0AA1;GUJARATI LETTER DDA;Lo;0;L;;;;;N;;;;; 0AA2;GUJARATI LETTER DDHA;Lo;0;L;;;;;N;;;;; 0AA3;GUJARATI LETTER NNA;Lo;0;L;;;;;N;;;;; 0AA4;GUJARATI LETTER TA;Lo;0;L;;;;;N;;;;; 0AA5;GUJARATI LETTER THA;Lo;0;L;;;;;N;;;;; 0AA6;GUJARATI LETTER DA;Lo;0;L;;;;;N;;;;; 0AA7;GUJARATI LETTER DHA;Lo;0;L;;;;;N;;;;; 0AA8;GUJARATI LETTER NA;Lo;0;L;;;;;N;;;;; 0AAA;GUJARATI LETTER PA;Lo;0;L;;;;;N;;;;; 0AAB;GUJARATI LETTER PHA;Lo;0;L;;;;;N;;;;; 0AAC;GUJARATI LETTER BA;Lo;0;L;;;;;N;;;;; 0AAD;GUJARATI LETTER BHA;Lo;0;L;;;;;N;;;;; 0AAE;GUJARATI LETTER MA;Lo;0;L;;;;;N;;;;; 0AAF;GUJARATI LETTER YA;Lo;0;L;;;;;N;;;;; 0AB0;GUJARATI LETTER RA;Lo;0;L;;;;;N;;;;; 0AB2;GUJARATI LETTER LA;Lo;0;L;;;;;N;;;;; 0AB3;GUJARATI LETTER LLA;Lo;0;L;;;;;N;;;;; 0AB5;GUJARATI LETTER VA;Lo;0;L;;;;;N;;;;; 0AB6;GUJARATI LETTER SHA;Lo;0;L;;;;;N;;;;; 0AB7;GUJARATI LETTER SSA;Lo;0;L;;;;;N;;;;; 0AB8;GUJARATI LETTER SA;Lo;0;L;;;;;N;;;;; 0AB9;GUJARATI LETTER HA;Lo;0;L;;;;;N;;;;; 0ABC;GUJARATI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 0ABD;GUJARATI SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; 0ABE;GUJARATI VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0ABF;GUJARATI VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0AC0;GUJARATI VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0AC1;GUJARATI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0AC2;GUJARATI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0AC3;GUJARATI VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0AC4;GUJARATI VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;; 0AC5;GUJARATI VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; 0AC7;GUJARATI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0AC8;GUJARATI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 0AC9;GUJARATI VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; 0ACB;GUJARATI VOWEL SIGN O;Mc;0;L;;;;;N;;;;; 0ACC;GUJARATI VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; 0ACD;GUJARATI SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0AD0;GUJARATI OM;Lo;0;L;;;;;N;;;;; 0AE0;GUJARATI LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0AE6;GUJARATI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0AE7;GUJARATI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0AE8;GUJARATI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0AE9;GUJARATI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0AEA;GUJARATI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0AEB;GUJARATI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0AEC;GUJARATI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;; 0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0B03;ORIYA SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0B05;ORIYA LETTER A;Lo;0;L;;;;;N;;;;; 0B06;ORIYA LETTER AA;Lo;0;L;;;;;N;;;;; 0B07;ORIYA LETTER I;Lo;0;L;;;;;N;;;;; 0B08;ORIYA LETTER II;Lo;0;L;;;;;N;;;;; 0B09;ORIYA LETTER U;Lo;0;L;;;;;N;;;;; 0B0A;ORIYA LETTER UU;Lo;0;L;;;;;N;;;;; 0B0B;ORIYA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0B0C;ORIYA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0B0F;ORIYA LETTER E;Lo;0;L;;;;;N;;;;; 0B10;ORIYA LETTER AI;Lo;0;L;;;;;N;;;;; 0B13;ORIYA LETTER O;Lo;0;L;;;;;N;;;;; 0B14;ORIYA LETTER AU;Lo;0;L;;;;;N;;;;; 0B15;ORIYA LETTER KA;Lo;0;L;;;;;N;;;;; 0B16;ORIYA LETTER KHA;Lo;0;L;;;;;N;;;;; 0B17;ORIYA LETTER GA;Lo;0;L;;;;;N;;;;; 0B18;ORIYA LETTER GHA;Lo;0;L;;;;;N;;;;; 0B19;ORIYA LETTER NGA;Lo;0;L;;;;;N;;;;; 0B1A;ORIYA LETTER CA;Lo;0;L;;;;;N;;;;; 0B1B;ORIYA LETTER CHA;Lo;0;L;;;;;N;;;;; 0B1C;ORIYA LETTER JA;Lo;0;L;;;;;N;;;;; 0B1D;ORIYA LETTER JHA;Lo;0;L;;;;;N;;;;; 0B1E;ORIYA LETTER NYA;Lo;0;L;;;;;N;;;;; 0B1F;ORIYA LETTER TTA;Lo;0;L;;;;;N;;;;; 0B20;ORIYA LETTER TTHA;Lo;0;L;;;;;N;;;;; 0B21;ORIYA LETTER DDA;Lo;0;L;;;;;N;;;;; 0B22;ORIYA LETTER DDHA;Lo;0;L;;;;;N;;;;; 0B23;ORIYA LETTER NNA;Lo;0;L;;;;;N;;;;; 0B24;ORIYA LETTER TA;Lo;0;L;;;;;N;;;;; 0B25;ORIYA LETTER THA;Lo;0;L;;;;;N;;;;; 0B26;ORIYA LETTER DA;Lo;0;L;;;;;N;;;;; 0B27;ORIYA LETTER DHA;Lo;0;L;;;;;N;;;;; 0B28;ORIYA LETTER NA;Lo;0;L;;;;;N;;;;; 0B2A;ORIYA LETTER PA;Lo;0;L;;;;;N;;;;; 0B2B;ORIYA LETTER PHA;Lo;0;L;;;;;N;;;;; 0B2C;ORIYA LETTER BA;Lo;0;L;;;;;N;;;;; 0B2D;ORIYA LETTER BHA;Lo;0;L;;;;;N;;;;; 0B2E;ORIYA LETTER MA;Lo;0;L;;;;;N;;;;; 0B2F;ORIYA LETTER YA;Lo;0;L;;;;;N;;;;; 0B30;ORIYA LETTER RA;Lo;0;L;;;;;N;;;;; 0B32;ORIYA LETTER LA;Lo;0;L;;;;;N;;;;; 0B33;ORIYA LETTER LLA;Lo;0;L;;;;;N;;;;; 0B36;ORIYA LETTER SHA;Lo;0;L;;;;;N;;;;; 0B37;ORIYA LETTER SSA;Lo;0;L;;;;;N;;;;; 0B38;ORIYA LETTER SA;Lo;0;L;;;;;N;;;;; 0B39;ORIYA LETTER HA;Lo;0;L;;;;;N;;;;; 0B3C;ORIYA SIGN NUKTA;Mn;7;NSM;;;;;N;;;;; 0B3D;ORIYA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;; 0B3E;ORIYA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0B3F;ORIYA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0B40;ORIYA VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0B41;ORIYA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0B42;ORIYA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0B43;ORIYA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0B47;ORIYA VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 0B48;ORIYA VOWEL SIGN AI;Mc;0;L;0B47 0B56;;;;N;;;;; 0B4B;ORIYA VOWEL SIGN O;Mc;0;L;0B47 0B3E;;;;N;;;;; 0B4C;ORIYA VOWEL SIGN AU;Mc;0;L;0B47 0B57;;;;N;;;;; 0B4D;ORIYA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0B56;ORIYA AI LENGTH MARK;Mn;0;NSM;;;;;N;;;;; 0B57;ORIYA AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 0B5C;ORIYA LETTER RRA;Lo;0;L;0B21 0B3C;;;;N;;;;; 0B5D;ORIYA LETTER RHA;Lo;0;L;0B22 0B3C;;;;N;;;;; 0B5F;ORIYA LETTER YYA;Lo;0;L;;;;;N;;;;; 0B60;ORIYA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0B61;ORIYA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0B66;ORIYA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0B67;ORIYA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0B68;ORIYA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0B69;ORIYA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0B6A;ORIYA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0B6B;ORIYA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0B6C;ORIYA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0B6D;ORIYA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0B6E;ORIYA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0B6F;ORIYA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0B70;ORIYA ISSHAR;So;0;L;;;;;N;;;;; 0B82;TAMIL SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 0B83;TAMIL SIGN VISARGA;Lo;0;L;;;;;N;;;;; 0B85;TAMIL LETTER A;Lo;0;L;;;;;N;;;;; 0B86;TAMIL LETTER AA;Lo;0;L;;;;;N;;;;; 0B87;TAMIL LETTER I;Lo;0;L;;;;;N;;;;; 0B88;TAMIL LETTER II;Lo;0;L;;;;;N;;;;; 0B89;TAMIL LETTER U;Lo;0;L;;;;;N;;;;; 0B8A;TAMIL LETTER UU;Lo;0;L;;;;;N;;;;; 0B8E;TAMIL LETTER E;Lo;0;L;;;;;N;;;;; 0B8F;TAMIL LETTER EE;Lo;0;L;;;;;N;;;;; 0B90;TAMIL LETTER AI;Lo;0;L;;;;;N;;;;; 0B92;TAMIL LETTER O;Lo;0;L;;;;;N;;;;; 0B93;TAMIL LETTER OO;Lo;0;L;;;;;N;;;;; 0B94;TAMIL LETTER AU;Lo;0;L;0B92 0BD7;;;;N;;;;; 0B95;TAMIL LETTER KA;Lo;0;L;;;;;N;;;;; 0B99;TAMIL LETTER NGA;Lo;0;L;;;;;N;;;;; 0B9A;TAMIL LETTER CA;Lo;0;L;;;;;N;;;;; 0B9C;TAMIL LETTER JA;Lo;0;L;;;;;N;;;;; 0B9E;TAMIL LETTER NYA;Lo;0;L;;;;;N;;;;; 0B9F;TAMIL LETTER TTA;Lo;0;L;;;;;N;;;;; 0BA3;TAMIL LETTER NNA;Lo;0;L;;;;;N;;;;; 0BA4;TAMIL LETTER TA;Lo;0;L;;;;;N;;;;; 0BA8;TAMIL LETTER NA;Lo;0;L;;;;;N;;;;; 0BA9;TAMIL LETTER NNNA;Lo;0;L;;;;;N;;;;; 0BAA;TAMIL LETTER PA;Lo;0;L;;;;;N;;;;; 0BAE;TAMIL LETTER MA;Lo;0;L;;;;;N;;;;; 0BAF;TAMIL LETTER YA;Lo;0;L;;;;;N;;;;; 0BB0;TAMIL LETTER RA;Lo;0;L;;;;;N;;;;; 0BB1;TAMIL LETTER RRA;Lo;0;L;;;;;N;;;;; 0BB2;TAMIL LETTER LA;Lo;0;L;;;;;N;;;;; 0BB3;TAMIL LETTER LLA;Lo;0;L;;;;;N;;;;; 0BB4;TAMIL LETTER LLLA;Lo;0;L;;;;;N;;;;; 0BB5;TAMIL LETTER VA;Lo;0;L;;;;;N;;;;; 0BB7;TAMIL LETTER SSA;Lo;0;L;;;;;N;;;;; 0BB8;TAMIL LETTER SA;Lo;0;L;;;;;N;;;;; 0BB9;TAMIL LETTER HA;Lo;0;L;;;;;N;;;;; 0BBE;TAMIL VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0BBF;TAMIL VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0BC0;TAMIL VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 0BC1;TAMIL VOWEL SIGN U;Mc;0;L;;;;;N;;;;; 0BC2;TAMIL VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; 0BC6;TAMIL VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 0BC7;TAMIL VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; 0BC8;TAMIL VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 0BCA;TAMIL VOWEL SIGN O;Mc;0;L;0BC6 0BBE;;;;N;;;;; 0BCB;TAMIL VOWEL SIGN OO;Mc;0;L;0BC7 0BBE;;;;N;;;;; 0BCC;TAMIL VOWEL SIGN AU;Mc;0;L;0BC6 0BD7;;;;N;;;;; 0BCD;TAMIL SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0BD7;TAMIL AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 0BE7;TAMIL DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0BE8;TAMIL DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0BE9;TAMIL DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0BEA;TAMIL DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0BEB;TAMIL DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0BEC;TAMIL DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0BED;TAMIL DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0BEE;TAMIL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0BEF;TAMIL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0BF0;TAMIL NUMBER TEN;No;0;L;;;;10;N;;;;; 0BF1;TAMIL NUMBER ONE HUNDRED;No;0;L;;;;100;N;;;;; 0BF2;TAMIL NUMBER ONE THOUSAND;No;0;L;;;;1000;N;;;;; 0C01;TELUGU SIGN CANDRABINDU;Mc;0;L;;;;;N;;;;; 0C02;TELUGU SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0C03;TELUGU SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0C05;TELUGU LETTER A;Lo;0;L;;;;;N;;;;; 0C06;TELUGU LETTER AA;Lo;0;L;;;;;N;;;;; 0C07;TELUGU LETTER I;Lo;0;L;;;;;N;;;;; 0C08;TELUGU LETTER II;Lo;0;L;;;;;N;;;;; 0C09;TELUGU LETTER U;Lo;0;L;;;;;N;;;;; 0C0A;TELUGU LETTER UU;Lo;0;L;;;;;N;;;;; 0C0B;TELUGU LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0C0C;TELUGU LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0C0E;TELUGU LETTER E;Lo;0;L;;;;;N;;;;; 0C0F;TELUGU LETTER EE;Lo;0;L;;;;;N;;;;; 0C10;TELUGU LETTER AI;Lo;0;L;;;;;N;;;;; 0C12;TELUGU LETTER O;Lo;0;L;;;;;N;;;;; 0C13;TELUGU LETTER OO;Lo;0;L;;;;;N;;;;; 0C14;TELUGU LETTER AU;Lo;0;L;;;;;N;;;;; 0C15;TELUGU LETTER KA;Lo;0;L;;;;;N;;;;; 0C16;TELUGU LETTER KHA;Lo;0;L;;;;;N;;;;; 0C17;TELUGU LETTER GA;Lo;0;L;;;;;N;;;;; 0C18;TELUGU LETTER GHA;Lo;0;L;;;;;N;;;;; 0C19;TELUGU LETTER NGA;Lo;0;L;;;;;N;;;;; 0C1A;TELUGU LETTER CA;Lo;0;L;;;;;N;;;;; 0C1B;TELUGU LETTER CHA;Lo;0;L;;;;;N;;;;; 0C1C;TELUGU LETTER JA;Lo;0;L;;;;;N;;;;; 0C1D;TELUGU LETTER JHA;Lo;0;L;;;;;N;;;;; 0C1E;TELUGU LETTER NYA;Lo;0;L;;;;;N;;;;; 0C1F;TELUGU LETTER TTA;Lo;0;L;;;;;N;;;;; 0C20;TELUGU LETTER TTHA;Lo;0;L;;;;;N;;;;; 0C21;TELUGU LETTER DDA;Lo;0;L;;;;;N;;;;; 0C22;TELUGU LETTER DDHA;Lo;0;L;;;;;N;;;;; 0C23;TELUGU LETTER NNA;Lo;0;L;;;;;N;;;;; 0C24;TELUGU LETTER TA;Lo;0;L;;;;;N;;;;; 0C25;TELUGU LETTER THA;Lo;0;L;;;;;N;;;;; 0C26;TELUGU LETTER DA;Lo;0;L;;;;;N;;;;; 0C27;TELUGU LETTER DHA;Lo;0;L;;;;;N;;;;; 0C28;TELUGU LETTER NA;Lo;0;L;;;;;N;;;;; 0C2A;TELUGU LETTER PA;Lo;0;L;;;;;N;;;;; 0C2B;TELUGU LETTER PHA;Lo;0;L;;;;;N;;;;; 0C2C;TELUGU LETTER BA;Lo;0;L;;;;;N;;;;; 0C2D;TELUGU LETTER BHA;Lo;0;L;;;;;N;;;;; 0C2E;TELUGU LETTER MA;Lo;0;L;;;;;N;;;;; 0C2F;TELUGU LETTER YA;Lo;0;L;;;;;N;;;;; 0C30;TELUGU LETTER RA;Lo;0;L;;;;;N;;;;; 0C31;TELUGU LETTER RRA;Lo;0;L;;;;;N;;;;; 0C32;TELUGU LETTER LA;Lo;0;L;;;;;N;;;;; 0C33;TELUGU LETTER LLA;Lo;0;L;;;;;N;;;;; 0C35;TELUGU LETTER VA;Lo;0;L;;;;;N;;;;; 0C36;TELUGU LETTER SHA;Lo;0;L;;;;;N;;;;; 0C37;TELUGU LETTER SSA;Lo;0;L;;;;;N;;;;; 0C38;TELUGU LETTER SA;Lo;0;L;;;;;N;;;;; 0C39;TELUGU LETTER HA;Lo;0;L;;;;;N;;;;; 0C3E;TELUGU VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;; 0C3F;TELUGU VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0C40;TELUGU VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 0C41;TELUGU VOWEL SIGN U;Mc;0;L;;;;;N;;;;; 0C42;TELUGU VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; 0C43;TELUGU VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; 0C44;TELUGU VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; 0C46;TELUGU VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0C47;TELUGU VOWEL SIGN EE;Mn;0;NSM;;;;;N;;;;; 0C48;TELUGU VOWEL SIGN AI;Mn;0;NSM;0C46 0C56;;;;N;;;;; 0C4A;TELUGU VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;; 0C4B;TELUGU VOWEL SIGN OO;Mn;0;NSM;;;;;N;;;;; 0C4C;TELUGU VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; 0C4D;TELUGU SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0C55;TELUGU LENGTH MARK;Mn;84;NSM;;;;;N;;;;; 0C56;TELUGU AI LENGTH MARK;Mn;91;NSM;;;;;N;;;;; 0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0C66;TELUGU DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0C67;TELUGU DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0C68;TELUGU DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0C69;TELUGU DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0C6A;TELUGU DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0C6B;TELUGU DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0C6C;TELUGU DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0C6D;TELUGU DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0C6E;TELUGU DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0C6F;TELUGU DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0C82;KANNADA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0C83;KANNADA SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0C85;KANNADA LETTER A;Lo;0;L;;;;;N;;;;; 0C86;KANNADA LETTER AA;Lo;0;L;;;;;N;;;;; 0C87;KANNADA LETTER I;Lo;0;L;;;;;N;;;;; 0C88;KANNADA LETTER II;Lo;0;L;;;;;N;;;;; 0C89;KANNADA LETTER U;Lo;0;L;;;;;N;;;;; 0C8A;KANNADA LETTER UU;Lo;0;L;;;;;N;;;;; 0C8B;KANNADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0C8C;KANNADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0C8E;KANNADA LETTER E;Lo;0;L;;;;;N;;;;; 0C8F;KANNADA LETTER EE;Lo;0;L;;;;;N;;;;; 0C90;KANNADA LETTER AI;Lo;0;L;;;;;N;;;;; 0C92;KANNADA LETTER O;Lo;0;L;;;;;N;;;;; 0C93;KANNADA LETTER OO;Lo;0;L;;;;;N;;;;; 0C94;KANNADA LETTER AU;Lo;0;L;;;;;N;;;;; 0C95;KANNADA LETTER KA;Lo;0;L;;;;;N;;;;; 0C96;KANNADA LETTER KHA;Lo;0;L;;;;;N;;;;; 0C97;KANNADA LETTER GA;Lo;0;L;;;;;N;;;;; 0C98;KANNADA LETTER GHA;Lo;0;L;;;;;N;;;;; 0C99;KANNADA LETTER NGA;Lo;0;L;;;;;N;;;;; 0C9A;KANNADA LETTER CA;Lo;0;L;;;;;N;;;;; 0C9B;KANNADA LETTER CHA;Lo;0;L;;;;;N;;;;; 0C9C;KANNADA LETTER JA;Lo;0;L;;;;;N;;;;; 0C9D;KANNADA LETTER JHA;Lo;0;L;;;;;N;;;;; 0C9E;KANNADA LETTER NYA;Lo;0;L;;;;;N;;;;; 0C9F;KANNADA LETTER TTA;Lo;0;L;;;;;N;;;;; 0CA0;KANNADA LETTER TTHA;Lo;0;L;;;;;N;;;;; 0CA1;KANNADA LETTER DDA;Lo;0;L;;;;;N;;;;; 0CA2;KANNADA LETTER DDHA;Lo;0;L;;;;;N;;;;; 0CA3;KANNADA LETTER NNA;Lo;0;L;;;;;N;;;;; 0CA4;KANNADA LETTER TA;Lo;0;L;;;;;N;;;;; 0CA5;KANNADA LETTER THA;Lo;0;L;;;;;N;;;;; 0CA6;KANNADA LETTER DA;Lo;0;L;;;;;N;;;;; 0CA7;KANNADA LETTER DHA;Lo;0;L;;;;;N;;;;; 0CA8;KANNADA LETTER NA;Lo;0;L;;;;;N;;;;; 0CAA;KANNADA LETTER PA;Lo;0;L;;;;;N;;;;; 0CAB;KANNADA LETTER PHA;Lo;0;L;;;;;N;;;;; 0CAC;KANNADA LETTER BA;Lo;0;L;;;;;N;;;;; 0CAD;KANNADA LETTER BHA;Lo;0;L;;;;;N;;;;; 0CAE;KANNADA LETTER MA;Lo;0;L;;;;;N;;;;; 0CAF;KANNADA LETTER YA;Lo;0;L;;;;;N;;;;; 0CB0;KANNADA LETTER RA;Lo;0;L;;;;;N;;;;; 0CB1;KANNADA LETTER RRA;Lo;0;L;;;;;N;;;;; 0CB2;KANNADA LETTER LA;Lo;0;L;;;;;N;;;;; 0CB3;KANNADA LETTER LLA;Lo;0;L;;;;;N;;;;; 0CB5;KANNADA LETTER VA;Lo;0;L;;;;;N;;;;; 0CB6;KANNADA LETTER SHA;Lo;0;L;;;;;N;;;;; 0CB7;KANNADA LETTER SSA;Lo;0;L;;;;;N;;;;; 0CB8;KANNADA LETTER SA;Lo;0;L;;;;;N;;;;; 0CB9;KANNADA LETTER HA;Lo;0;L;;;;;N;;;;; 0CBE;KANNADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0CBF;KANNADA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0CC0;KANNADA VOWEL SIGN II;Mc;0;L;0CBF 0CD5;;;;N;;;;; 0CC1;KANNADA VOWEL SIGN U;Mc;0;L;;;;;N;;;;; 0CC2;KANNADA VOWEL SIGN UU;Mc;0;L;;;;;N;;;;; 0CC3;KANNADA VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; 0CC4;KANNADA VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; 0CC6;KANNADA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;; 0CC7;KANNADA VOWEL SIGN EE;Mc;0;L;0CC6 0CD5;;;;N;;;;; 0CC8;KANNADA VOWEL SIGN AI;Mc;0;L;0CC6 0CD6;;;;N;;;;; 0CCA;KANNADA VOWEL SIGN O;Mc;0;L;0CC6 0CC2;;;;N;;;;; 0CCB;KANNADA VOWEL SIGN OO;Mc;0;L;0CCA 0CD5;;;;N;;;;; 0CCC;KANNADA VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;; 0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;; 0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;; 0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;; 0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0CE1;KANNADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0CE6;KANNADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0CE7;KANNADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0CE8;KANNADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0CE9;KANNADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0CEA;KANNADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0CEB;KANNADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0CEC;KANNADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0CED;KANNADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0CEE;KANNADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0CEF;KANNADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0D02;MALAYALAM SIGN ANUSVARA;Mc;0;L;;;;;N;;;;; 0D03;MALAYALAM SIGN VISARGA;Mc;0;L;;;;;N;;;;; 0D05;MALAYALAM LETTER A;Lo;0;L;;;;;N;;;;; 0D06;MALAYALAM LETTER AA;Lo;0;L;;;;;N;;;;; 0D07;MALAYALAM LETTER I;Lo;0;L;;;;;N;;;;; 0D08;MALAYALAM LETTER II;Lo;0;L;;;;;N;;;;; 0D09;MALAYALAM LETTER U;Lo;0;L;;;;;N;;;;; 0D0A;MALAYALAM LETTER UU;Lo;0;L;;;;;N;;;;; 0D0B;MALAYALAM LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 0D0C;MALAYALAM LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 0D0E;MALAYALAM LETTER E;Lo;0;L;;;;;N;;;;; 0D0F;MALAYALAM LETTER EE;Lo;0;L;;;;;N;;;;; 0D10;MALAYALAM LETTER AI;Lo;0;L;;;;;N;;;;; 0D12;MALAYALAM LETTER O;Lo;0;L;;;;;N;;;;; 0D13;MALAYALAM LETTER OO;Lo;0;L;;;;;N;;;;; 0D14;MALAYALAM LETTER AU;Lo;0;L;;;;;N;;;;; 0D15;MALAYALAM LETTER KA;Lo;0;L;;;;;N;;;;; 0D16;MALAYALAM LETTER KHA;Lo;0;L;;;;;N;;;;; 0D17;MALAYALAM LETTER GA;Lo;0;L;;;;;N;;;;; 0D18;MALAYALAM LETTER GHA;Lo;0;L;;;;;N;;;;; 0D19;MALAYALAM LETTER NGA;Lo;0;L;;;;;N;;;;; 0D1A;MALAYALAM LETTER CA;Lo;0;L;;;;;N;;;;; 0D1B;MALAYALAM LETTER CHA;Lo;0;L;;;;;N;;;;; 0D1C;MALAYALAM LETTER JA;Lo;0;L;;;;;N;;;;; 0D1D;MALAYALAM LETTER JHA;Lo;0;L;;;;;N;;;;; 0D1E;MALAYALAM LETTER NYA;Lo;0;L;;;;;N;;;;; 0D1F;MALAYALAM LETTER TTA;Lo;0;L;;;;;N;;;;; 0D20;MALAYALAM LETTER TTHA;Lo;0;L;;;;;N;;;;; 0D21;MALAYALAM LETTER DDA;Lo;0;L;;;;;N;;;;; 0D22;MALAYALAM LETTER DDHA;Lo;0;L;;;;;N;;;;; 0D23;MALAYALAM LETTER NNA;Lo;0;L;;;;;N;;;;; 0D24;MALAYALAM LETTER TA;Lo;0;L;;;;;N;;;;; 0D25;MALAYALAM LETTER THA;Lo;0;L;;;;;N;;;;; 0D26;MALAYALAM LETTER DA;Lo;0;L;;;;;N;;;;; 0D27;MALAYALAM LETTER DHA;Lo;0;L;;;;;N;;;;; 0D28;MALAYALAM LETTER NA;Lo;0;L;;;;;N;;;;; 0D2A;MALAYALAM LETTER PA;Lo;0;L;;;;;N;;;;; 0D2B;MALAYALAM LETTER PHA;Lo;0;L;;;;;N;;;;; 0D2C;MALAYALAM LETTER BA;Lo;0;L;;;;;N;;;;; 0D2D;MALAYALAM LETTER BHA;Lo;0;L;;;;;N;;;;; 0D2E;MALAYALAM LETTER MA;Lo;0;L;;;;;N;;;;; 0D2F;MALAYALAM LETTER YA;Lo;0;L;;;;;N;;;;; 0D30;MALAYALAM LETTER RA;Lo;0;L;;;;;N;;;;; 0D31;MALAYALAM LETTER RRA;Lo;0;L;;;;;N;;;;; 0D32;MALAYALAM LETTER LA;Lo;0;L;;;;;N;;;;; 0D33;MALAYALAM LETTER LLA;Lo;0;L;;;;;N;;;;; 0D34;MALAYALAM LETTER LLLA;Lo;0;L;;;;;N;;;;; 0D35;MALAYALAM LETTER VA;Lo;0;L;;;;;N;;;;; 0D36;MALAYALAM LETTER SHA;Lo;0;L;;;;;N;;;;; 0D37;MALAYALAM LETTER SSA;Lo;0;L;;;;;N;;;;; 0D38;MALAYALAM LETTER SA;Lo;0;L;;;;;N;;;;; 0D39;MALAYALAM LETTER HA;Lo;0;L;;;;;N;;;;; 0D3E;MALAYALAM VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 0D3F;MALAYALAM VOWEL SIGN I;Mc;0;L;;;;;N;;;;; 0D40;MALAYALAM VOWEL SIGN II;Mc;0;L;;;;;N;;;;; 0D41;MALAYALAM VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 0D42;MALAYALAM VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 0D43;MALAYALAM VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;; 0D46;MALAYALAM VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 0D47;MALAYALAM VOWEL SIGN EE;Mc;0;L;;;;;N;;;;; 0D48;MALAYALAM VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 0D4A;MALAYALAM VOWEL SIGN O;Mc;0;L;0D46 0D3E;;;;N;;;;; 0D4B;MALAYALAM VOWEL SIGN OO;Mc;0;L;0D47 0D3E;;;;N;;;;; 0D4C;MALAYALAM VOWEL SIGN AU;Mc;0;L;0D46 0D57;;;;N;;;;; 0D4D;MALAYALAM SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0D57;MALAYALAM AU LENGTH MARK;Mc;0;L;;;;;N;;;;; 0D60;MALAYALAM LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0D61;MALAYALAM LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 0D66;MALAYALAM DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0D67;MALAYALAM DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0D68;MALAYALAM DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0D69;MALAYALAM DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0D6A;MALAYALAM DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0D6B;MALAYALAM DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0D6C;MALAYALAM DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0D6D;MALAYALAM DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0D6E;MALAYALAM DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0D6F;MALAYALAM DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0D82;SINHALA SIGN ANUSVARAYA;Mc;0;L;;;;;N;;;;; 0D83;SINHALA SIGN VISARGAYA;Mc;0;L;;;;;N;;;;; 0D85;SINHALA LETTER AYANNA;Lo;0;L;;;;;N;;;;; 0D86;SINHALA LETTER AAYANNA;Lo;0;L;;;;;N;;;;; 0D87;SINHALA LETTER AEYANNA;Lo;0;L;;;;;N;;;;; 0D88;SINHALA LETTER AEEYANNA;Lo;0;L;;;;;N;;;;; 0D89;SINHALA LETTER IYANNA;Lo;0;L;;;;;N;;;;; 0D8A;SINHALA LETTER IIYANNA;Lo;0;L;;;;;N;;;;; 0D8B;SINHALA LETTER UYANNA;Lo;0;L;;;;;N;;;;; 0D8C;SINHALA LETTER UUYANNA;Lo;0;L;;;;;N;;;;; 0D8D;SINHALA LETTER IRUYANNA;Lo;0;L;;;;;N;;;;; 0D8E;SINHALA LETTER IRUUYANNA;Lo;0;L;;;;;N;;;;; 0D8F;SINHALA LETTER ILUYANNA;Lo;0;L;;;;;N;;;;; 0D90;SINHALA LETTER ILUUYANNA;Lo;0;L;;;;;N;;;;; 0D91;SINHALA LETTER EYANNA;Lo;0;L;;;;;N;;;;; 0D92;SINHALA LETTER EEYANNA;Lo;0;L;;;;;N;;;;; 0D93;SINHALA LETTER AIYANNA;Lo;0;L;;;;;N;;;;; 0D94;SINHALA LETTER OYANNA;Lo;0;L;;;;;N;;;;; 0D95;SINHALA LETTER OOYANNA;Lo;0;L;;;;;N;;;;; 0D96;SINHALA LETTER AUYANNA;Lo;0;L;;;;;N;;;;; 0D9A;SINHALA LETTER ALPAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; 0D9B;SINHALA LETTER MAHAAPRAANA KAYANNA;Lo;0;L;;;;;N;;;;; 0D9C;SINHALA LETTER ALPAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; 0D9D;SINHALA LETTER MAHAAPRAANA GAYANNA;Lo;0;L;;;;;N;;;;; 0D9E;SINHALA LETTER KANTAJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; 0D9F;SINHALA LETTER SANYAKA GAYANNA;Lo;0;L;;;;;N;;;;; 0DA0;SINHALA LETTER ALPAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; 0DA1;SINHALA LETTER MAHAAPRAANA CAYANNA;Lo;0;L;;;;;N;;;;; 0DA2;SINHALA LETTER ALPAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; 0DA3;SINHALA LETTER MAHAAPRAANA JAYANNA;Lo;0;L;;;;;N;;;;; 0DA4;SINHALA LETTER TAALUJA NAASIKYAYA;Lo;0;L;;;;;N;;;;; 0DA5;SINHALA LETTER TAALUJA SANYOOGA NAAKSIKYAYA;Lo;0;L;;;;;N;;;;; 0DA6;SINHALA LETTER SANYAKA JAYANNA;Lo;0;L;;;;;N;;;;; 0DA7;SINHALA LETTER ALPAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; 0DA8;SINHALA LETTER MAHAAPRAANA TTAYANNA;Lo;0;L;;;;;N;;;;; 0DA9;SINHALA LETTER ALPAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; 0DAA;SINHALA LETTER MAHAAPRAANA DDAYANNA;Lo;0;L;;;;;N;;;;; 0DAB;SINHALA LETTER MUURDHAJA NAYANNA;Lo;0;L;;;;;N;;;;; 0DAC;SINHALA LETTER SANYAKA DDAYANNA;Lo;0;L;;;;;N;;;;; 0DAD;SINHALA LETTER ALPAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; 0DAE;SINHALA LETTER MAHAAPRAANA TAYANNA;Lo;0;L;;;;;N;;;;; 0DAF;SINHALA LETTER ALPAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; 0DB0;SINHALA LETTER MAHAAPRAANA DAYANNA;Lo;0;L;;;;;N;;;;; 0DB1;SINHALA LETTER DANTAJA NAYANNA;Lo;0;L;;;;;N;;;;; 0DB3;SINHALA LETTER SANYAKA DAYANNA;Lo;0;L;;;;;N;;;;; 0DB4;SINHALA LETTER ALPAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; 0DB5;SINHALA LETTER MAHAAPRAANA PAYANNA;Lo;0;L;;;;;N;;;;; 0DB6;SINHALA LETTER ALPAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; 0DB7;SINHALA LETTER MAHAAPRAANA BAYANNA;Lo;0;L;;;;;N;;;;; 0DB8;SINHALA LETTER MAYANNA;Lo;0;L;;;;;N;;;;; 0DB9;SINHALA LETTER AMBA BAYANNA;Lo;0;L;;;;;N;;;;; 0DBA;SINHALA LETTER YAYANNA;Lo;0;L;;;;;N;;;;; 0DBB;SINHALA LETTER RAYANNA;Lo;0;L;;;;;N;;;;; 0DBD;SINHALA LETTER DANTAJA LAYANNA;Lo;0;L;;;;;N;;;;; 0DC0;SINHALA LETTER VAYANNA;Lo;0;L;;;;;N;;;;; 0DC1;SINHALA LETTER TAALUJA SAYANNA;Lo;0;L;;;;;N;;;;; 0DC2;SINHALA LETTER MUURDHAJA SAYANNA;Lo;0;L;;;;;N;;;;; 0DC3;SINHALA LETTER DANTAJA SAYANNA;Lo;0;L;;;;;N;;;;; 0DC4;SINHALA LETTER HAYANNA;Lo;0;L;;;;;N;;;;; 0DC5;SINHALA LETTER MUURDHAJA LAYANNA;Lo;0;L;;;;;N;;;;; 0DC6;SINHALA LETTER FAYANNA;Lo;0;L;;;;;N;;;;; 0DCA;SINHALA SIGN AL-LAKUNA;Mn;9;NSM;;;;;N;;;;; 0DCF;SINHALA VOWEL SIGN AELA-PILLA;Mc;0;L;;;;;N;;;;; 0DD0;SINHALA VOWEL SIGN KETTI AEDA-PILLA;Mc;0;L;;;;;N;;;;; 0DD1;SINHALA VOWEL SIGN DIGA AEDA-PILLA;Mc;0;L;;;;;N;;;;; 0DD2;SINHALA VOWEL SIGN KETTI IS-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD3;SINHALA VOWEL SIGN DIGA IS-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD4;SINHALA VOWEL SIGN KETTI PAA-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD6;SINHALA VOWEL SIGN DIGA PAA-PILLA;Mn;0;NSM;;;;;N;;;;; 0DD8;SINHALA VOWEL SIGN GAETTA-PILLA;Mc;0;L;;;;;N;;;;; 0DD9;SINHALA VOWEL SIGN KOMBUVA;Mc;0;L;;;;;N;;;;; 0DDA;SINHALA VOWEL SIGN DIGA KOMBUVA;Mc;0;L;0DD9 0DCA;;;;N;;;;; 0DDB;SINHALA VOWEL SIGN KOMBU DEKA;Mc;0;L;;;;;N;;;;; 0DDC;SINHALA VOWEL SIGN KOMBUVA HAA AELA-PILLA;Mc;0;L;0DD9 0DCF;;;;N;;;;; 0DDD;SINHALA VOWEL SIGN KOMBUVA HAA DIGA AELA-PILLA;Mc;0;L;0DDC 0DCA;;;;N;;;;; 0DDE;SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA;Mc;0;L;0DD9 0DDF;;;;N;;;;; 0DDF;SINHALA VOWEL SIGN GAYANUKITTA;Mc;0;L;;;;;N;;;;; 0DF2;SINHALA VOWEL SIGN DIGA GAETTA-PILLA;Mc;0;L;;;;;N;;;;; 0DF3;SINHALA VOWEL SIGN DIGA GAYANUKITTA;Mc;0;L;;;;;N;;;;; 0DF4;SINHALA PUNCTUATION KUNDDALIYA;Po;0;L;;;;;N;;;;; 0E01;THAI CHARACTER KO KAI;Lo;0;L;;;;;N;THAI LETTER KO KAI;;;; 0E02;THAI CHARACTER KHO KHAI;Lo;0;L;;;;;N;THAI LETTER KHO KHAI;;;; 0E03;THAI CHARACTER KHO KHUAT;Lo;0;L;;;;;N;THAI LETTER KHO KHUAT;;;; 0E04;THAI CHARACTER KHO KHWAI;Lo;0;L;;;;;N;THAI LETTER KHO KHWAI;;;; 0E05;THAI CHARACTER KHO KHON;Lo;0;L;;;;;N;THAI LETTER KHO KHON;;;; 0E06;THAI CHARACTER KHO RAKHANG;Lo;0;L;;;;;N;THAI LETTER KHO RAKHANG;;;; 0E07;THAI CHARACTER NGO NGU;Lo;0;L;;;;;N;THAI LETTER NGO NGU;;;; 0E08;THAI CHARACTER CHO CHAN;Lo;0;L;;;;;N;THAI LETTER CHO CHAN;;;; 0E09;THAI CHARACTER CHO CHING;Lo;0;L;;;;;N;THAI LETTER CHO CHING;;;; 0E0A;THAI CHARACTER CHO CHANG;Lo;0;L;;;;;N;THAI LETTER CHO CHANG;;;; 0E0B;THAI CHARACTER SO SO;Lo;0;L;;;;;N;THAI LETTER SO SO;;;; 0E0C;THAI CHARACTER CHO CHOE;Lo;0;L;;;;;N;THAI LETTER CHO CHOE;;;; 0E0D;THAI CHARACTER YO YING;Lo;0;L;;;;;N;THAI LETTER YO YING;;;; 0E0E;THAI CHARACTER DO CHADA;Lo;0;L;;;;;N;THAI LETTER DO CHADA;;;; 0E0F;THAI CHARACTER TO PATAK;Lo;0;L;;;;;N;THAI LETTER TO PATAK;;;; 0E10;THAI CHARACTER THO THAN;Lo;0;L;;;;;N;THAI LETTER THO THAN;;;; 0E11;THAI CHARACTER THO NANGMONTHO;Lo;0;L;;;;;N;THAI LETTER THO NANGMONTHO;;;; 0E12;THAI CHARACTER THO PHUTHAO;Lo;0;L;;;;;N;THAI LETTER THO PHUTHAO;;;; 0E13;THAI CHARACTER NO NEN;Lo;0;L;;;;;N;THAI LETTER NO NEN;;;; 0E14;THAI CHARACTER DO DEK;Lo;0;L;;;;;N;THAI LETTER DO DEK;;;; 0E15;THAI CHARACTER TO TAO;Lo;0;L;;;;;N;THAI LETTER TO TAO;;;; 0E16;THAI CHARACTER THO THUNG;Lo;0;L;;;;;N;THAI LETTER THO THUNG;;;; 0E17;THAI CHARACTER THO THAHAN;Lo;0;L;;;;;N;THAI LETTER THO THAHAN;;;; 0E18;THAI CHARACTER THO THONG;Lo;0;L;;;;;N;THAI LETTER THO THONG;;;; 0E19;THAI CHARACTER NO NU;Lo;0;L;;;;;N;THAI LETTER NO NU;;;; 0E1A;THAI CHARACTER BO BAIMAI;Lo;0;L;;;;;N;THAI LETTER BO BAIMAI;;;; 0E1B;THAI CHARACTER PO PLA;Lo;0;L;;;;;N;THAI LETTER PO PLA;;;; 0E1C;THAI CHARACTER PHO PHUNG;Lo;0;L;;;;;N;THAI LETTER PHO PHUNG;;;; 0E1D;THAI CHARACTER FO FA;Lo;0;L;;;;;N;THAI LETTER FO FA;;;; 0E1E;THAI CHARACTER PHO PHAN;Lo;0;L;;;;;N;THAI LETTER PHO PHAN;;;; 0E1F;THAI CHARACTER FO FAN;Lo;0;L;;;;;N;THAI LETTER FO FAN;;;; 0E20;THAI CHARACTER PHO SAMPHAO;Lo;0;L;;;;;N;THAI LETTER PHO SAMPHAO;;;; 0E21;THAI CHARACTER MO MA;Lo;0;L;;;;;N;THAI LETTER MO MA;;;; 0E22;THAI CHARACTER YO YAK;Lo;0;L;;;;;N;THAI LETTER YO YAK;;;; 0E23;THAI CHARACTER RO RUA;Lo;0;L;;;;;N;THAI LETTER RO RUA;;;; 0E24;THAI CHARACTER RU;Lo;0;L;;;;;N;THAI LETTER RU;;;; 0E25;THAI CHARACTER LO LING;Lo;0;L;;;;;N;THAI LETTER LO LING;;;; 0E26;THAI CHARACTER LU;Lo;0;L;;;;;N;THAI LETTER LU;;;; 0E27;THAI CHARACTER WO WAEN;Lo;0;L;;;;;N;THAI LETTER WO WAEN;;;; 0E28;THAI CHARACTER SO SALA;Lo;0;L;;;;;N;THAI LETTER SO SALA;;;; 0E29;THAI CHARACTER SO RUSI;Lo;0;L;;;;;N;THAI LETTER SO RUSI;;;; 0E2A;THAI CHARACTER SO SUA;Lo;0;L;;;;;N;THAI LETTER SO SUA;;;; 0E2B;THAI CHARACTER HO HIP;Lo;0;L;;;;;N;THAI LETTER HO HIP;;;; 0E2C;THAI CHARACTER LO CHULA;Lo;0;L;;;;;N;THAI LETTER LO CHULA;;;; 0E2D;THAI CHARACTER O ANG;Lo;0;L;;;;;N;THAI LETTER O ANG;;;; 0E2E;THAI CHARACTER HO NOKHUK;Lo;0;L;;;;;N;THAI LETTER HO NOK HUK;;;; 0E2F;THAI CHARACTER PAIYANNOI;Lo;0;L;;;;;N;THAI PAI YAN NOI;paiyan noi;;; 0E30;THAI CHARACTER SARA A;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA A;;;; 0E31;THAI CHARACTER MAI HAN-AKAT;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI HAN-AKAT;;;; 0E32;THAI CHARACTER SARA AA;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AA;;;; 0E33;THAI CHARACTER SARA AM;Lo;0;L; 0E4D 0E32;;;;N;THAI VOWEL SIGN SARA AM;;;; 0E34;THAI CHARACTER SARA I;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA I;;;; 0E35;THAI CHARACTER SARA II;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA II;;;; 0E36;THAI CHARACTER SARA UE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UE;;;; 0E37;THAI CHARACTER SARA UEE;Mn;0;NSM;;;;;N;THAI VOWEL SIGN SARA UEE;sara uue;;; 0E38;THAI CHARACTER SARA U;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA U;;;; 0E39;THAI CHARACTER SARA UU;Mn;103;NSM;;;;;N;THAI VOWEL SIGN SARA UU;;;; 0E3A;THAI CHARACTER PHINTHU;Mn;9;NSM;;;;;N;THAI VOWEL SIGN PHINTHU;;;; 0E3F;THAI CURRENCY SYMBOL BAHT;Sc;0;ET;;;;;N;THAI BAHT SIGN;;;; 0E40;THAI CHARACTER SARA E;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA E;;;; 0E41;THAI CHARACTER SARA AE;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA AE;;;; 0E42;THAI CHARACTER SARA O;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA O;;;; 0E43;THAI CHARACTER SARA AI MAIMUAN;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MUAN;sara ai mai muan;;; 0E44;THAI CHARACTER SARA AI MAIMALAI;Lo;0;L;;;;;N;THAI VOWEL SIGN SARA MAI MALAI;sara ai mai malai;;; 0E45;THAI CHARACTER LAKKHANGYAO;Lo;0;L;;;;;N;THAI LAK KHANG YAO;lakkhang yao;;; 0E46;THAI CHARACTER MAIYAMOK;Lm;0;L;;;;;N;THAI MAI YAMOK;mai yamok;;; 0E47;THAI CHARACTER MAITAIKHU;Mn;0;NSM;;;;;N;THAI VOWEL SIGN MAI TAI KHU;mai taikhu;;; 0E48;THAI CHARACTER MAI EK;Mn;107;NSM;;;;;N;THAI TONE MAI EK;;;; 0E49;THAI CHARACTER MAI THO;Mn;107;NSM;;;;;N;THAI TONE MAI THO;;;; 0E4A;THAI CHARACTER MAI TRI;Mn;107;NSM;;;;;N;THAI TONE MAI TRI;;;; 0E4B;THAI CHARACTER MAI CHATTAWA;Mn;107;NSM;;;;;N;THAI TONE MAI CHATTAWA;;;; 0E4C;THAI CHARACTER THANTHAKHAT;Mn;0;NSM;;;;;N;THAI THANTHAKHAT;;;; 0E4D;THAI CHARACTER NIKHAHIT;Mn;0;NSM;;;;;N;THAI NIKKHAHIT;nikkhahit;;; 0E4E;THAI CHARACTER YAMAKKAN;Mn;0;NSM;;;;;N;THAI YAMAKKAN;;;; 0E4F;THAI CHARACTER FONGMAN;Po;0;L;;;;;N;THAI FONGMAN;;;; 0E50;THAI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0E51;THAI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0E52;THAI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0E53;THAI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0E54;THAI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0E55;THAI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0E56;THAI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0E57;THAI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0E58;THAI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0E59;THAI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0E5A;THAI CHARACTER ANGKHANKHU;Po;0;L;;;;;N;THAI ANGKHANKHU;;;; 0E5B;THAI CHARACTER KHOMUT;Po;0;L;;;;;N;THAI KHOMUT;;;; 0E81;LAO LETTER KO;Lo;0;L;;;;;N;;;;; 0E82;LAO LETTER KHO SUNG;Lo;0;L;;;;;N;;;;; 0E84;LAO LETTER KHO TAM;Lo;0;L;;;;;N;;;;; 0E87;LAO LETTER NGO;Lo;0;L;;;;;N;;;;; 0E88;LAO LETTER CO;Lo;0;L;;;;;N;;;;; 0E8A;LAO LETTER SO TAM;Lo;0;L;;;;;N;;;;; 0E8D;LAO LETTER NYO;Lo;0;L;;;;;N;;;;; 0E94;LAO LETTER DO;Lo;0;L;;;;;N;;;;; 0E95;LAO LETTER TO;Lo;0;L;;;;;N;;;;; 0E96;LAO LETTER THO SUNG;Lo;0;L;;;;;N;;;;; 0E97;LAO LETTER THO TAM;Lo;0;L;;;;;N;;;;; 0E99;LAO LETTER NO;Lo;0;L;;;;;N;;;;; 0E9A;LAO LETTER BO;Lo;0;L;;;;;N;;;;; 0E9B;LAO LETTER PO;Lo;0;L;;;;;N;;;;; 0E9C;LAO LETTER PHO SUNG;Lo;0;L;;;;;N;;;;; 0E9D;LAO LETTER FO TAM;Lo;0;L;;;;;N;;;;; 0E9E;LAO LETTER PHO TAM;Lo;0;L;;;;;N;;;;; 0E9F;LAO LETTER FO SUNG;Lo;0;L;;;;;N;;;;; 0EA1;LAO LETTER MO;Lo;0;L;;;;;N;;;;; 0EA2;LAO LETTER YO;Lo;0;L;;;;;N;;;;; 0EA3;LAO LETTER LO LING;Lo;0;L;;;;;N;;;;; 0EA5;LAO LETTER LO LOOT;Lo;0;L;;;;;N;;;;; 0EA7;LAO LETTER WO;Lo;0;L;;;;;N;;;;; 0EAA;LAO LETTER SO SUNG;Lo;0;L;;;;;N;;;;; 0EAB;LAO LETTER HO SUNG;Lo;0;L;;;;;N;;;;; 0EAD;LAO LETTER O;Lo;0;L;;;;;N;;;;; 0EAE;LAO LETTER HO TAM;Lo;0;L;;;;;N;;;;; 0EAF;LAO ELLIPSIS;Lo;0;L;;;;;N;;;;; 0EB0;LAO VOWEL SIGN A;Lo;0;L;;;;;N;;;;; 0EB1;LAO VOWEL SIGN MAI KAN;Mn;0;NSM;;;;;N;;;;; 0EB2;LAO VOWEL SIGN AA;Lo;0;L;;;;;N;;;;; 0EB3;LAO VOWEL SIGN AM;Lo;0;L; 0ECD 0EB2;;;;N;;;;; 0EB4;LAO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 0EB5;LAO VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 0EB6;LAO VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; 0EB7;LAO VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; 0EB8;LAO VOWEL SIGN U;Mn;118;NSM;;;;;N;;;;; 0EB9;LAO VOWEL SIGN UU;Mn;118;NSM;;;;;N;;;;; 0EBB;LAO VOWEL SIGN MAI KON;Mn;0;NSM;;;;;N;;;;; 0EBC;LAO SEMIVOWEL SIGN LO;Mn;0;NSM;;;;;N;;;;; 0EBD;LAO SEMIVOWEL SIGN NYO;Lo;0;L;;;;;N;;;;; 0EC0;LAO VOWEL SIGN E;Lo;0;L;;;;;N;;;;; 0EC1;LAO VOWEL SIGN EI;Lo;0;L;;;;;N;;;;; 0EC2;LAO VOWEL SIGN O;Lo;0;L;;;;;N;;;;; 0EC3;LAO VOWEL SIGN AY;Lo;0;L;;;;;N;;;;; 0EC4;LAO VOWEL SIGN AI;Lo;0;L;;;;;N;;;;; 0EC6;LAO KO LA;Lm;0;L;;;;;N;;;;; 0EC8;LAO TONE MAI EK;Mn;122;NSM;;;;;N;;;;; 0EC9;LAO TONE MAI THO;Mn;122;NSM;;;;;N;;;;; 0ECA;LAO TONE MAI TI;Mn;122;NSM;;;;;N;;;;; 0ECB;LAO TONE MAI CATAWA;Mn;122;NSM;;;;;N;;;;; 0ECC;LAO CANCELLATION MARK;Mn;0;NSM;;;;;N;;;;; 0ECD;LAO NIGGAHITA;Mn;0;NSM;;;;;N;;;;; 0ED0;LAO DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0ED1;LAO DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0ED2;LAO DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0ED3;LAO DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0ED4;LAO DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0ED5;LAO DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0ED6;LAO DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0ED7;LAO DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0ED8;LAO DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0EDC;LAO HO NO;Lo;0;L; 0EAB 0E99;;;;N;;;;; 0EDD;LAO HO MO;Lo;0;L; 0EAB 0EA1;;;;N;;;;; 0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;; 0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;ter yik go a thung;;; 0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;ter yik go wum nam chey ma;;; 0F03;TIBETAN MARK GTER YIG MGO -UM GTER TSHEG MA;So;0;L;;;;;N;;ter yik go wum ter tsek ma;;; 0F04;TIBETAN MARK INITIAL YIG MGO MDUN MA;Po;0;L;;;;;N;TIBETAN SINGLE ORNAMENT;yik go dun ma;;; 0F05;TIBETAN MARK CLOSING YIG MGO SGAB MA;Po;0;L;;;;;N;;yik go kab ma;;; 0F06;TIBETAN MARK CARET YIG MGO PHUR SHAD MA;Po;0;L;;;;;N;;yik go pur shey ma;;; 0F07;TIBETAN MARK YIG MGO TSHEG SHAD MA;Po;0;L;;;;;N;;yik go tsek shey ma;;; 0F08;TIBETAN MARK SBRUL SHAD;Po;0;L;;;;;N;TIBETAN RGYANSHAD;drul shey;;; 0F09;TIBETAN MARK BSKUR YIG MGO;Po;0;L;;;;;N;;kur yik go;;; 0F0A;TIBETAN MARK BKA- SHOG YIG MGO;Po;0;L;;;;;N;;ka sho yik go;;; 0F0B;TIBETAN MARK INTERSYLLABIC TSHEG;Po;0;L;;;;;N;TIBETAN TSEG;tsek;;; 0F0C;TIBETAN MARK DELIMITER TSHEG BSTAR;Po;0;L; 0F0B;;;;N;;tsek tar;;; 0F0D;TIBETAN MARK SHAD;Po;0;L;;;;;N;TIBETAN SHAD;shey;;; 0F0E;TIBETAN MARK NYIS SHAD;Po;0;L;;;;;N;TIBETAN DOUBLE SHAD;nyi shey;;; 0F0F;TIBETAN MARK TSHEG SHAD;Po;0;L;;;;;N;;tsek shey;;; 0F10;TIBETAN MARK NYIS TSHEG SHAD;Po;0;L;;;;;N;;nyi tsek shey;;; 0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;rinchen pung shey;;; 0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;gya tram shey;;; 0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;dzu ta me long chen;;; 0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;ter tsek;;; 0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;che ta;;; 0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;hlak ta;;; 0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;trachen char ta;;; 0F18;TIBETAN ASTROLOGICAL SIGN -KHYUD PA;Mn;220;NSM;;;;;N;;kyu pa;;; 0F19;TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS;Mn;220;NSM;;;;;N;;dong tsu;;; 0F1A;TIBETAN SIGN RDEL DKAR GCIG;So;0;L;;;;;N;;deka chig;;; 0F1B;TIBETAN SIGN RDEL DKAR GNYIS;So;0;L;;;;;N;;deka nyi;;; 0F1C;TIBETAN SIGN RDEL DKAR GSUM;So;0;L;;;;;N;;deka sum;;; 0F1D;TIBETAN SIGN RDEL NAG GCIG;So;0;L;;;;;N;;dena chig;;; 0F1E;TIBETAN SIGN RDEL NAG GNYIS;So;0;L;;;;;N;;dena nyi;;; 0F1F;TIBETAN SIGN RDEL DKAR RDEL NAG;So;0;L;;;;;N;;deka dena;;; 0F20;TIBETAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 0F21;TIBETAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 0F22;TIBETAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 0F23;TIBETAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 0F24;TIBETAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 0F25;TIBETAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 0F26;TIBETAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 0F27;TIBETAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 0F28;TIBETAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 0F29;TIBETAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 0F2A;TIBETAN DIGIT HALF ONE;No;0;L;;;;1/2;N;;;;; 0F2B;TIBETAN DIGIT HALF TWO;No;0;L;;;;3/2;N;;;;; 0F2C;TIBETAN DIGIT HALF THREE;No;0;L;;;;5/2;N;;;;; 0F2D;TIBETAN DIGIT HALF FOUR;No;0;L;;;;7/2;N;;;;; 0F2E;TIBETAN DIGIT HALF FIVE;No;0;L;;;;9/2;N;;;;; 0F2F;TIBETAN DIGIT HALF SIX;No;0;L;;;;11/2;N;;;;; 0F30;TIBETAN DIGIT HALF SEVEN;No;0;L;;;;13/2;N;;;;; 0F31;TIBETAN DIGIT HALF EIGHT;No;0;L;;;;15/2;N;;;;; 0F32;TIBETAN DIGIT HALF NINE;No;0;L;;;;17/2;N;;;;; 0F33;TIBETAN DIGIT HALF ZERO;No;0;L;;;;-1/2;N;;;;; 0F34;TIBETAN MARK BSDUS RTAGS;So;0;L;;;;;N;;du ta;;; 0F35;TIBETAN MARK NGAS BZUNG NYI ZLA;Mn;220;NSM;;;;;N;TIBETAN HONORIFIC UNDER RING;nge zung nyi da;;; 0F36;TIBETAN MARK CARET -DZUD RTAGS BZHI MIG CAN;So;0;L;;;;;N;;dzu ta shi mig chen;;; 0F37;TIBETAN MARK NGAS BZUNG SGOR RTAGS;Mn;220;NSM;;;;;N;TIBETAN UNDER RING;nge zung gor ta;;; 0F38;TIBETAN MARK CHE MGO;So;0;L;;;;;N;;che go;;; 0F39;TIBETAN MARK TSA -PHRU;Mn;216;NSM;;;;;N;TIBETAN LENITION MARK;tsa tru;;; 0F3A;TIBETAN MARK GUG RTAGS GYON;Ps;0;ON;;;;;N;;gug ta yun;;; 0F3B;TIBETAN MARK GUG RTAGS GYAS;Pe;0;ON;;;;;N;;gug ta ye;;; 0F3C;TIBETAN MARK ANG KHANG GYON;Ps;0;ON;;;;;N;TIBETAN LEFT BRACE;ang kang yun;;; 0F3D;TIBETAN MARK ANG KHANG GYAS;Pe;0;ON;;;;;N;TIBETAN RIGHT BRACE;ang kang ye;;; 0F3E;TIBETAN SIGN YAR TSHES;Mc;0;L;;;;;N;;yar tse;;; 0F3F;TIBETAN SIGN MAR TSHES;Mc;0;L;;;;;N;;mar tse;;; 0F40;TIBETAN LETTER KA;Lo;0;L;;;;;N;;;;; 0F41;TIBETAN LETTER KHA;Lo;0;L;;;;;N;;;;; 0F42;TIBETAN LETTER GA;Lo;0;L;;;;;N;;;;; 0F43;TIBETAN LETTER GHA;Lo;0;L;0F42 0FB7;;;;N;;;;; 0F44;TIBETAN LETTER NGA;Lo;0;L;;;;;N;;;;; 0F45;TIBETAN LETTER CA;Lo;0;L;;;;;N;;;;; 0F46;TIBETAN LETTER CHA;Lo;0;L;;;;;N;;;;; 0F47;TIBETAN LETTER JA;Lo;0;L;;;;;N;;;;; 0F49;TIBETAN LETTER NYA;Lo;0;L;;;;;N;;;;; 0F4A;TIBETAN LETTER TTA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED TA;;;; 0F4B;TIBETAN LETTER TTHA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED THA;;;; 0F4C;TIBETAN LETTER DDA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED DA;;;; 0F4D;TIBETAN LETTER DDHA;Lo;0;L;0F4C 0FB7;;;;N;;;;; 0F4E;TIBETAN LETTER NNA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED NA;;;; 0F4F;TIBETAN LETTER TA;Lo;0;L;;;;;N;;;;; 0F50;TIBETAN LETTER THA;Lo;0;L;;;;;N;;;;; 0F51;TIBETAN LETTER DA;Lo;0;L;;;;;N;;;;; 0F52;TIBETAN LETTER DHA;Lo;0;L;0F51 0FB7;;;;N;;;;; 0F53;TIBETAN LETTER NA;Lo;0;L;;;;;N;;;;; 0F54;TIBETAN LETTER PA;Lo;0;L;;;;;N;;;;; 0F55;TIBETAN LETTER PHA;Lo;0;L;;;;;N;;;;; 0F56;TIBETAN LETTER BA;Lo;0;L;;;;;N;;;;; 0F57;TIBETAN LETTER BHA;Lo;0;L;0F56 0FB7;;;;N;;;;; 0F58;TIBETAN LETTER MA;Lo;0;L;;;;;N;;;;; 0F59;TIBETAN LETTER TSA;Lo;0;L;;;;;N;;;;; 0F5A;TIBETAN LETTER TSHA;Lo;0;L;;;;;N;;;;; 0F5B;TIBETAN LETTER DZA;Lo;0;L;;;;;N;;;;; 0F5C;TIBETAN LETTER DZHA;Lo;0;L;0F5B 0FB7;;;;N;;;;; 0F5D;TIBETAN LETTER WA;Lo;0;L;;;;;N;;;;; 0F5E;TIBETAN LETTER ZHA;Lo;0;L;;;;;N;;;;; 0F5F;TIBETAN LETTER ZA;Lo;0;L;;;;;N;;;;; 0F60;TIBETAN LETTER -A;Lo;0;L;;;;;N;TIBETAN LETTER AA;;;; 0F61;TIBETAN LETTER YA;Lo;0;L;;;;;N;;;;; 0F62;TIBETAN LETTER RA;Lo;0;L;;;;;N;;*;;; 0F63;TIBETAN LETTER LA;Lo;0;L;;;;;N;;;;; 0F64;TIBETAN LETTER SHA;Lo;0;L;;;;;N;;;;; 0F65;TIBETAN LETTER SSA;Lo;0;L;;;;;N;TIBETAN LETTER REVERSED SHA;;;; 0F66;TIBETAN LETTER SA;Lo;0;L;;;;;N;;;;; 0F67;TIBETAN LETTER HA;Lo;0;L;;;;;N;;;;; 0F68;TIBETAN LETTER A;Lo;0;L;;;;;N;;;;; 0F69;TIBETAN LETTER KSSA;Lo;0;L;0F40 0FB5;;;;N;;;;; 0F6A;TIBETAN LETTER FIXED-FORM RA;Lo;0;L;;;;;N;;*;;; 0F71;TIBETAN VOWEL SIGN AA;Mn;129;NSM;;;;;N;;;;; 0F72;TIBETAN VOWEL SIGN I;Mn;130;NSM;;;;;N;;;;; 0F73;TIBETAN VOWEL SIGN II;Mn;0;NSM;0F71 0F72;;;;N;;;;; 0F74;TIBETAN VOWEL SIGN U;Mn;132;NSM;;;;;N;;;;; 0F75;TIBETAN VOWEL SIGN UU;Mn;0;NSM;0F71 0F74;;;;N;;;;; 0F76;TIBETAN VOWEL SIGN VOCALIC R;Mn;0;NSM;0FB2 0F80;;;;N;;;;; 0F77;TIBETAN VOWEL SIGN VOCALIC RR;Mn;0;NSM; 0FB2 0F81;;;;N;;;;; 0F78;TIBETAN VOWEL SIGN VOCALIC L;Mn;0;NSM;0FB3 0F80;;;;N;;;;; 0F79;TIBETAN VOWEL SIGN VOCALIC LL;Mn;0;NSM; 0FB3 0F81;;;;N;;;;; 0F7A;TIBETAN VOWEL SIGN E;Mn;130;NSM;;;;;N;;;;; 0F7B;TIBETAN VOWEL SIGN EE;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AI;;;; 0F7C;TIBETAN VOWEL SIGN O;Mn;130;NSM;;;;;N;;;;; 0F7D;TIBETAN VOWEL SIGN OO;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN AU;;;; 0F7E;TIBETAN SIGN RJES SU NGA RO;Mn;0;NSM;;;;;N;TIBETAN ANUSVARA;je su nga ro;;; 0F7F;TIBETAN SIGN RNAM BCAD;Mc;0;L;;;;;N;TIBETAN VISARGA;nam chey;;; 0F80;TIBETAN VOWEL SIGN REVERSED I;Mn;130;NSM;;;;;N;TIBETAN VOWEL SIGN SHORT I;;;; 0F81;TIBETAN VOWEL SIGN REVERSED II;Mn;0;NSM;0F71 0F80;;;;N;;;;; 0F82;TIBETAN SIGN NYI ZLA NAA DA;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU WITH ORNAMENT;nyi da na da;;; 0F83;TIBETAN SIGN SNA LDAN;Mn;230;NSM;;;;;N;TIBETAN CANDRABINDU;nan de;;; 0F84;TIBETAN MARK HALANTA;Mn;9;NSM;;;;;N;TIBETAN VIRAMA;;;; 0F85;TIBETAN MARK PALUTA;Po;0;L;;;;;N;TIBETAN CHUCHENYIGE;;;; 0F86;TIBETAN SIGN LCI RTAGS;Mn;230;NSM;;;;;N;;ji ta;;; 0F87;TIBETAN SIGN YANG RTAGS;Mn;230;NSM;;;;;N;;yang ta;;; 0F88;TIBETAN SIGN LCE TSA CAN;Lo;0;L;;;;;N;;che tsa chen;;; 0F89;TIBETAN SIGN MCHU CAN;Lo;0;L;;;;;N;;chu chen;;; 0F8A;TIBETAN SIGN GRU CAN RGYINGS;Lo;0;L;;;;;N;;tru chen ging;;; 0F8B;TIBETAN SIGN GRU MED RGYINGS;Lo;0;L;;;;;N;;tru me ging;;; 0F90;TIBETAN SUBJOINED LETTER KA;Mn;0;NSM;;;;;N;;;;; 0F91;TIBETAN SUBJOINED LETTER KHA;Mn;0;NSM;;;;;N;;;;; 0F92;TIBETAN SUBJOINED LETTER GA;Mn;0;NSM;;;;;N;;;;; 0F93;TIBETAN SUBJOINED LETTER GHA;Mn;0;NSM;0F92 0FB7;;;;N;;;;; 0F94;TIBETAN SUBJOINED LETTER NGA;Mn;0;NSM;;;;;N;;;;; 0F95;TIBETAN SUBJOINED LETTER CA;Mn;0;NSM;;;;;N;;;;; 0F96;TIBETAN SUBJOINED LETTER CHA;Mn;0;NSM;;;;;N;;;;; 0F97;TIBETAN SUBJOINED LETTER JA;Mn;0;NSM;;;;;N;;;;; 0F99;TIBETAN SUBJOINED LETTER NYA;Mn;0;NSM;;;;;N;;;;; 0F9A;TIBETAN SUBJOINED LETTER TTA;Mn;0;NSM;;;;;N;;;;; 0F9B;TIBETAN SUBJOINED LETTER TTHA;Mn;0;NSM;;;;;N;;;;; 0F9C;TIBETAN SUBJOINED LETTER DDA;Mn;0;NSM;;;;;N;;;;; 0F9D;TIBETAN SUBJOINED LETTER DDHA;Mn;0;NSM;0F9C 0FB7;;;;N;;;;; 0F9E;TIBETAN SUBJOINED LETTER NNA;Mn;0;NSM;;;;;N;;;;; 0F9F;TIBETAN SUBJOINED LETTER TA;Mn;0;NSM;;;;;N;;;;; 0FA0;TIBETAN SUBJOINED LETTER THA;Mn;0;NSM;;;;;N;;;;; 0FA1;TIBETAN SUBJOINED LETTER DA;Mn;0;NSM;;;;;N;;;;; 0FA2;TIBETAN SUBJOINED LETTER DHA;Mn;0;NSM;0FA1 0FB7;;;;N;;;;; 0FA3;TIBETAN SUBJOINED LETTER NA;Mn;0;NSM;;;;;N;;;;; 0FA4;TIBETAN SUBJOINED LETTER PA;Mn;0;NSM;;;;;N;;;;; 0FA5;TIBETAN SUBJOINED LETTER PHA;Mn;0;NSM;;;;;N;;;;; 0FA6;TIBETAN SUBJOINED LETTER BA;Mn;0;NSM;;;;;N;;;;; 0FA7;TIBETAN SUBJOINED LETTER BHA;Mn;0;NSM;0FA6 0FB7;;;;N;;;;; 0FA8;TIBETAN SUBJOINED LETTER MA;Mn;0;NSM;;;;;N;;;;; 0FA9;TIBETAN SUBJOINED LETTER TSA;Mn;0;NSM;;;;;N;;;;; 0FAA;TIBETAN SUBJOINED LETTER TSHA;Mn;0;NSM;;;;;N;;;;; 0FAB;TIBETAN SUBJOINED LETTER DZA;Mn;0;NSM;;;;;N;;;;; 0FAC;TIBETAN SUBJOINED LETTER DZHA;Mn;0;NSM;0FAB 0FB7;;;;N;;;;; 0FAD;TIBETAN SUBJOINED LETTER WA;Mn;0;NSM;;;;;N;;*;;; 0FAE;TIBETAN SUBJOINED LETTER ZHA;Mn;0;NSM;;;;;N;;;;; 0FAF;TIBETAN SUBJOINED LETTER ZA;Mn;0;NSM;;;;;N;;;;; 0FB0;TIBETAN SUBJOINED LETTER -A;Mn;0;NSM;;;;;N;;;;; 0FB1;TIBETAN SUBJOINED LETTER YA;Mn;0;NSM;;;;;N;;*;;; 0FB2;TIBETAN SUBJOINED LETTER RA;Mn;0;NSM;;;;;N;;*;;; 0FB3;TIBETAN SUBJOINED LETTER LA;Mn;0;NSM;;;;;N;;;;; 0FB4;TIBETAN SUBJOINED LETTER SHA;Mn;0;NSM;;;;;N;;;;; 0FB5;TIBETAN SUBJOINED LETTER SSA;Mn;0;NSM;;;;;N;;;;; 0FB6;TIBETAN SUBJOINED LETTER SA;Mn;0;NSM;;;;;N;;;;; 0FB7;TIBETAN SUBJOINED LETTER HA;Mn;0;NSM;;;;;N;;;;; 0FB8;TIBETAN SUBJOINED LETTER A;Mn;0;NSM;;;;;N;;;;; 0FB9;TIBETAN SUBJOINED LETTER KSSA;Mn;0;NSM;0F90 0FB5;;;;N;;;;; 0FBA;TIBETAN SUBJOINED LETTER FIXED-FORM WA;Mn;0;NSM;;;;;N;;*;;; 0FBB;TIBETAN SUBJOINED LETTER FIXED-FORM YA;Mn;0;NSM;;;;;N;;*;;; 0FBC;TIBETAN SUBJOINED LETTER FIXED-FORM RA;Mn;0;NSM;;;;;N;;*;;; 0FBE;TIBETAN KU RU KHA;So;0;L;;;;;N;;kuruka;;; 0FBF;TIBETAN KU RU KHA BZHI MIG CAN;So;0;L;;;;;N;;kuruka shi mik chen;;; 0FC0;TIBETAN CANTILLATION SIGN HEAVY BEAT;So;0;L;;;;;N;;;;; 0FC1;TIBETAN CANTILLATION SIGN LIGHT BEAT;So;0;L;;;;;N;;;;; 0FC2;TIBETAN CANTILLATION SIGN CANG TE-U;So;0;L;;;;;N;;chang tyu;;; 0FC3;TIBETAN CANTILLATION SIGN SBUB -CHAL;So;0;L;;;;;N;;bub chey;;; 0FC4;TIBETAN SYMBOL DRIL BU;So;0;L;;;;;N;;drilbu;;; 0FC5;TIBETAN SYMBOL RDO RJE;So;0;L;;;;;N;;dorje;;; 0FC6;TIBETAN SYMBOL PADMA GDAN;Mn;220;NSM;;;;;N;;pema den;;; 0FC7;TIBETAN SYMBOL RDO RJE RGYA GRAM;So;0;L;;;;;N;;dorje gya dram;;; 0FC8;TIBETAN SYMBOL PHUR PA;So;0;L;;;;;N;;phurba;;; 0FC9;TIBETAN SYMBOL NOR BU;So;0;L;;;;;N;;norbu;;; 0FCA;TIBETAN SYMBOL NOR BU NYIS -KHYIL;So;0;L;;;;;N;;norbu nyi khyi;;; 0FCB;TIBETAN SYMBOL NOR BU GSUM -KHYIL;So;0;L;;;;;N;;norbu sum khyi;;; 0FCC;TIBETAN SYMBOL NOR BU BZHI -KHYIL;So;0;L;;;;;N;;norbu shi khyi;;; 0FCF;TIBETAN SIGN RDEL NAG GSUM;So;0;L;;;;;N;;dena sum;;; 1000;MYANMAR LETTER KA;Lo;0;L;;;;;N;;;;; 1001;MYANMAR LETTER KHA;Lo;0;L;;;;;N;;;;; 1002;MYANMAR LETTER GA;Lo;0;L;;;;;N;;;;; 1003;MYANMAR LETTER GHA;Lo;0;L;;;;;N;;;;; 1004;MYANMAR LETTER NGA;Lo;0;L;;;;;N;;;;; 1005;MYANMAR LETTER CA;Lo;0;L;;;;;N;;;;; 1006;MYANMAR LETTER CHA;Lo;0;L;;;;;N;;;;; 1007;MYANMAR LETTER JA;Lo;0;L;;;;;N;;;;; 1008;MYANMAR LETTER JHA;Lo;0;L;;;;;N;;;;; 1009;MYANMAR LETTER NYA;Lo;0;L;;;;;N;;;;; 100A;MYANMAR LETTER NNYA;Lo;0;L;;;;;N;;;;; 100B;MYANMAR LETTER TTA;Lo;0;L;;;;;N;;;;; 100C;MYANMAR LETTER TTHA;Lo;0;L;;;;;N;;;;; 100D;MYANMAR LETTER DDA;Lo;0;L;;;;;N;;;;; 100E;MYANMAR LETTER DDHA;Lo;0;L;;;;;N;;;;; 100F;MYANMAR LETTER NNA;Lo;0;L;;;;;N;;;;; 1010;MYANMAR LETTER TA;Lo;0;L;;;;;N;;;;; 1011;MYANMAR LETTER THA;Lo;0;L;;;;;N;;;;; 1012;MYANMAR LETTER DA;Lo;0;L;;;;;N;;;;; 1013;MYANMAR LETTER DHA;Lo;0;L;;;;;N;;;;; 1014;MYANMAR LETTER NA;Lo;0;L;;;;;N;;;;; 1015;MYANMAR LETTER PA;Lo;0;L;;;;;N;;;;; 1016;MYANMAR LETTER PHA;Lo;0;L;;;;;N;;;;; 1017;MYANMAR LETTER BA;Lo;0;L;;;;;N;;;;; 1018;MYANMAR LETTER BHA;Lo;0;L;;;;;N;;;;; 1019;MYANMAR LETTER MA;Lo;0;L;;;;;N;;;;; 101A;MYANMAR LETTER YA;Lo;0;L;;;;;N;;;;; 101B;MYANMAR LETTER RA;Lo;0;L;;;;;N;;;;; 101C;MYANMAR LETTER LA;Lo;0;L;;;;;N;;;;; 101D;MYANMAR LETTER WA;Lo;0;L;;;;;N;;;;; 101E;MYANMAR LETTER SA;Lo;0;L;;;;;N;;;;; 101F;MYANMAR LETTER HA;Lo;0;L;;;;;N;;;;; 1020;MYANMAR LETTER LLA;Lo;0;L;;;;;N;;;;; 1021;MYANMAR LETTER A;Lo;0;L;;;;;N;;;;; 1023;MYANMAR LETTER I;Lo;0;L;;;;;N;;;;; 1024;MYANMAR LETTER II;Lo;0;L;;;;;N;;;;; 1025;MYANMAR LETTER U;Lo;0;L;;;;;N;;;;; 1026;MYANMAR LETTER UU;Lo;0;L;1025 102E;;;;N;;;;; 1027;MYANMAR LETTER E;Lo;0;L;;;;;N;;;;; 1029;MYANMAR LETTER O;Lo;0;L;;;;;N;;;;; 102A;MYANMAR LETTER AU;Lo;0;L;;;;;N;;;;; 102C;MYANMAR VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 102D;MYANMAR VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 102E;MYANMAR VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 102F;MYANMAR VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1030;MYANMAR VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 1031;MYANMAR VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 1032;MYANMAR VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;; 1036;MYANMAR SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;; 1037;MYANMAR SIGN DOT BELOW;Mn;7;NSM;;;;;N;;;;; 1038;MYANMAR SIGN VISARGA;Mc;0;L;;;;;N;;;;; 1039;MYANMAR SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 1040;MYANMAR DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 1041;MYANMAR DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 1042;MYANMAR DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 1043;MYANMAR DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 1044;MYANMAR DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 1045;MYANMAR DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 1046;MYANMAR DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 1047;MYANMAR DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 1048;MYANMAR DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1049;MYANMAR DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 104A;MYANMAR SIGN LITTLE SECTION;Po;0;L;;;;;N;;;;; 104B;MYANMAR SIGN SECTION;Po;0;L;;;;;N;;;;; 104C;MYANMAR SYMBOL LOCATIVE;Po;0;L;;;;;N;;;;; 104D;MYANMAR SYMBOL COMPLETED;Po;0;L;;;;;N;;;;; 104E;MYANMAR SYMBOL AFOREMENTIONED;Po;0;L;;;;;N;;;;; 104F;MYANMAR SYMBOL GENITIVE;Po;0;L;;;;;N;;;;; 1050;MYANMAR LETTER SHA;Lo;0;L;;;;;N;;;;; 1051;MYANMAR LETTER SSA;Lo;0;L;;;;;N;;;;; 1052;MYANMAR LETTER VOCALIC R;Lo;0;L;;;;;N;;;;; 1053;MYANMAR LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 1054;MYANMAR LETTER VOCALIC L;Lo;0;L;;;;;N;;;;; 1055;MYANMAR LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; 1056;MYANMAR VOWEL SIGN VOCALIC R;Mc;0;L;;;;;N;;;;; 1057;MYANMAR VOWEL SIGN VOCALIC RR;Mc;0;L;;;;;N;;;;; 1058;MYANMAR VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;; 1059;MYANMAR VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;; 10A0;GEORGIAN CAPITAL LETTER AN;Lu;0;L;;;;;N;;Khutsuri;;; 10A1;GEORGIAN CAPITAL LETTER BAN;Lu;0;L;;;;;N;;Khutsuri;;; 10A2;GEORGIAN CAPITAL LETTER GAN;Lu;0;L;;;;;N;;Khutsuri;;; 10A3;GEORGIAN CAPITAL LETTER DON;Lu;0;L;;;;;N;;Khutsuri;;; 10A4;GEORGIAN CAPITAL LETTER EN;Lu;0;L;;;;;N;;Khutsuri;;; 10A5;GEORGIAN CAPITAL LETTER VIN;Lu;0;L;;;;;N;;Khutsuri;;; 10A6;GEORGIAN CAPITAL LETTER ZEN;Lu;0;L;;;;;N;;Khutsuri;;; 10A7;GEORGIAN CAPITAL LETTER TAN;Lu;0;L;;;;;N;;Khutsuri;;; 10A8;GEORGIAN CAPITAL LETTER IN;Lu;0;L;;;;;N;;Khutsuri;;; 10A9;GEORGIAN CAPITAL LETTER KAN;Lu;0;L;;;;;N;;Khutsuri;;; 10AA;GEORGIAN CAPITAL LETTER LAS;Lu;0;L;;;;;N;;Khutsuri;;; 10AB;GEORGIAN CAPITAL LETTER MAN;Lu;0;L;;;;;N;;Khutsuri;;; 10AC;GEORGIAN CAPITAL LETTER NAR;Lu;0;L;;;;;N;;Khutsuri;;; 10AD;GEORGIAN CAPITAL LETTER ON;Lu;0;L;;;;;N;;Khutsuri;;; 10AE;GEORGIAN CAPITAL LETTER PAR;Lu;0;L;;;;;N;;Khutsuri;;; 10AF;GEORGIAN CAPITAL LETTER ZHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B0;GEORGIAN CAPITAL LETTER RAE;Lu;0;L;;;;;N;;Khutsuri;;; 10B1;GEORGIAN CAPITAL LETTER SAN;Lu;0;L;;;;;N;;Khutsuri;;; 10B2;GEORGIAN CAPITAL LETTER TAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B3;GEORGIAN CAPITAL LETTER UN;Lu;0;L;;;;;N;;Khutsuri;;; 10B4;GEORGIAN CAPITAL LETTER PHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B5;GEORGIAN CAPITAL LETTER KHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B6;GEORGIAN CAPITAL LETTER GHAN;Lu;0;L;;;;;N;;Khutsuri;;; 10B7;GEORGIAN CAPITAL LETTER QAR;Lu;0;L;;;;;N;;Khutsuri;;; 10B8;GEORGIAN CAPITAL LETTER SHIN;Lu;0;L;;;;;N;;Khutsuri;;; 10B9;GEORGIAN CAPITAL LETTER CHIN;Lu;0;L;;;;;N;;Khutsuri;;; 10BA;GEORGIAN CAPITAL LETTER CAN;Lu;0;L;;;;;N;;Khutsuri;;; 10BB;GEORGIAN CAPITAL LETTER JIL;Lu;0;L;;;;;N;;Khutsuri;;; 10BC;GEORGIAN CAPITAL LETTER CIL;Lu;0;L;;;;;N;;Khutsuri;;; 10BD;GEORGIAN CAPITAL LETTER CHAR;Lu;0;L;;;;;N;;Khutsuri;;; 10BE;GEORGIAN CAPITAL LETTER XAN;Lu;0;L;;;;;N;;Khutsuri;;; 10BF;GEORGIAN CAPITAL LETTER JHAN;Lu;0;L;;;;;N;;Khutsuri;;; 10C0;GEORGIAN CAPITAL LETTER HAE;Lu;0;L;;;;;N;;Khutsuri;;; 10C1;GEORGIAN CAPITAL LETTER HE;Lu;0;L;;;;;N;;Khutsuri;;; 10C2;GEORGIAN CAPITAL LETTER HIE;Lu;0;L;;;;;N;;Khutsuri;;; 10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;Khutsuri;;; 10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;Khutsuri;;; 10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;Khutsuri;;; 10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;; 10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;; 10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;; 10D3;GEORGIAN LETTER DON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER DON;;;; 10D4;GEORGIAN LETTER EN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER EN;;;; 10D5;GEORGIAN LETTER VIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER VIN;;;; 10D6;GEORGIAN LETTER ZEN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZEN;;;; 10D7;GEORGIAN LETTER TAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAN;;;; 10D8;GEORGIAN LETTER IN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER IN;;;; 10D9;GEORGIAN LETTER KAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KAN;;;; 10DA;GEORGIAN LETTER LAS;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER LAS;;;; 10DB;GEORGIAN LETTER MAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER MAN;;;; 10DC;GEORGIAN LETTER NAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER NAR;;;; 10DD;GEORGIAN LETTER ON;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ON;;;; 10DE;GEORGIAN LETTER PAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PAR;;;; 10DF;GEORGIAN LETTER ZHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER ZHAR;;;; 10E0;GEORGIAN LETTER RAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER RAE;;;; 10E1;GEORGIAN LETTER SAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SAN;;;; 10E2;GEORGIAN LETTER TAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER TAR;;;; 10E3;GEORGIAN LETTER UN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER UN;;;; 10E4;GEORGIAN LETTER PHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER PHAR;;;; 10E5;GEORGIAN LETTER KHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER KHAR;;;; 10E6;GEORGIAN LETTER GHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GHAN;;;; 10E7;GEORGIAN LETTER QAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER QAR;;;; 10E8;GEORGIAN LETTER SHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER SHIN;;;; 10E9;GEORGIAN LETTER CHIN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHIN;;;; 10EA;GEORGIAN LETTER CAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CAN;;;; 10EB;GEORGIAN LETTER JIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JIL;;;; 10EC;GEORGIAN LETTER CIL;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CIL;;;; 10ED;GEORGIAN LETTER CHAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER CHAR;;;; 10EE;GEORGIAN LETTER XAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER XAN;;;; 10EF;GEORGIAN LETTER JHAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER JHAN;;;; 10F0;GEORGIAN LETTER HAE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAE;;;; 10F1;GEORGIAN LETTER HE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HE;;;; 10F2;GEORGIAN LETTER HIE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HIE;;;; 10F3;GEORGIAN LETTER WE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER WE;;;; 10F4;GEORGIAN LETTER HAR;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HAR;;;; 10F5;GEORGIAN LETTER HOE;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER HOE;;;; 10F6;GEORGIAN LETTER FI;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER FI;;;; 10F7;GEORGIAN LETTER YN;Lo;0;L;;;;;N;;;;; 10F8;GEORGIAN LETTER ELIFI;Lo;0;L;;;;;N;;;;; 10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; 1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;; 1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;; 1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;n *;;; 1103;HANGUL CHOSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;; 1104;HANGUL CHOSEONG SSANGTIKEUT;Lo;0;L;;;;;N;;dd *;;; 1105;HANGUL CHOSEONG RIEUL;Lo;0;L;;;;;N;;r *;;; 1106;HANGUL CHOSEONG MIEUM;Lo;0;L;;;;;N;;m *;;; 1107;HANGUL CHOSEONG PIEUP;Lo;0;L;;;;;N;;b *;;; 1108;HANGUL CHOSEONG SSANGPIEUP;Lo;0;L;;;;;N;;bb *;;; 1109;HANGUL CHOSEONG SIOS;Lo;0;L;;;;;N;;s *;;; 110A;HANGUL CHOSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;; 110B;HANGUL CHOSEONG IEUNG;Lo;0;L;;;;;N;;;;; 110C;HANGUL CHOSEONG CIEUC;Lo;0;L;;;;;N;;j *;;; 110D;HANGUL CHOSEONG SSANGCIEUC;Lo;0;L;;;;;N;;jj *;;; 110E;HANGUL CHOSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;; 110F;HANGUL CHOSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;; 1110;HANGUL CHOSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;; 1111;HANGUL CHOSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;; 1112;HANGUL CHOSEONG HIEUH;Lo;0;L;;;;;N;;h *;;; 1113;HANGUL CHOSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; 1114;HANGUL CHOSEONG SSANGNIEUN;Lo;0;L;;;;;N;;;;; 1115;HANGUL CHOSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; 1116;HANGUL CHOSEONG NIEUN-PIEUP;Lo;0;L;;;;;N;;;;; 1117;HANGUL CHOSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; 1118;HANGUL CHOSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; 1119;HANGUL CHOSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; 111A;HANGUL CHOSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;;;; 111B;HANGUL CHOSEONG KAPYEOUNRIEUL;Lo;0;L;;;;;N;;;;; 111C;HANGUL CHOSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; 111D;HANGUL CHOSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; 111E;HANGUL CHOSEONG PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; 111F;HANGUL CHOSEONG PIEUP-NIEUN;Lo;0;L;;;;;N;;;;; 1120;HANGUL CHOSEONG PIEUP-TIKEUT;Lo;0;L;;;;;N;;;;; 1121;HANGUL CHOSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;;;; 1122;HANGUL CHOSEONG PIEUP-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 1123;HANGUL CHOSEONG PIEUP-SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; 1124;HANGUL CHOSEONG PIEUP-SIOS-PIEUP;Lo;0;L;;;;;N;;;;; 1125;HANGUL CHOSEONG PIEUP-SSANGSIOS;Lo;0;L;;;;;N;;;;; 1126;HANGUL CHOSEONG PIEUP-SIOS-CIEUC;Lo;0;L;;;;;N;;;;; 1127;HANGUL CHOSEONG PIEUP-CIEUC;Lo;0;L;;;;;N;;;;; 1128;HANGUL CHOSEONG PIEUP-CHIEUCH;Lo;0;L;;;;;N;;;;; 1129;HANGUL CHOSEONG PIEUP-THIEUTH;Lo;0;L;;;;;N;;;;; 112A;HANGUL CHOSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; 112B;HANGUL CHOSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; 112C;HANGUL CHOSEONG KAPYEOUNSSANGPIEUP;Lo;0;L;;;;;N;;;;; 112D;HANGUL CHOSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 112E;HANGUL CHOSEONG SIOS-NIEUN;Lo;0;L;;;;;N;;;;; 112F;HANGUL CHOSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; 1130;HANGUL CHOSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; 1131;HANGUL CHOSEONG SIOS-MIEUM;Lo;0;L;;;;;N;;;;; 1132;HANGUL CHOSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; 1133;HANGUL CHOSEONG SIOS-PIEUP-KIYEOK;Lo;0;L;;;;;N;;;;; 1134;HANGUL CHOSEONG SIOS-SSANGSIOS;Lo;0;L;;;;;N;;;;; 1135;HANGUL CHOSEONG SIOS-IEUNG;Lo;0;L;;;;;N;;;;; 1136;HANGUL CHOSEONG SIOS-CIEUC;Lo;0;L;;;;;N;;;;; 1137;HANGUL CHOSEONG SIOS-CHIEUCH;Lo;0;L;;;;;N;;;;; 1138;HANGUL CHOSEONG SIOS-KHIEUKH;Lo;0;L;;;;;N;;;;; 1139;HANGUL CHOSEONG SIOS-THIEUTH;Lo;0;L;;;;;N;;;;; 113A;HANGUL CHOSEONG SIOS-PHIEUPH;Lo;0;L;;;;;N;;;;; 113B;HANGUL CHOSEONG SIOS-HIEUH;Lo;0;L;;;;;N;;;;; 113C;HANGUL CHOSEONG CHITUEUMSIOS;Lo;0;L;;;;;N;;;;; 113D;HANGUL CHOSEONG CHITUEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; 113E;HANGUL CHOSEONG CEONGCHIEUMSIOS;Lo;0;L;;;;;N;;;;; 113F;HANGUL CHOSEONG CEONGCHIEUMSSANGSIOS;Lo;0;L;;;;;N;;;;; 1140;HANGUL CHOSEONG PANSIOS;Lo;0;L;;;;;N;;;;; 1141;HANGUL CHOSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; 1142;HANGUL CHOSEONG IEUNG-TIKEUT;Lo;0;L;;;;;N;;;;; 1143;HANGUL CHOSEONG IEUNG-MIEUM;Lo;0;L;;;;;N;;;;; 1144;HANGUL CHOSEONG IEUNG-PIEUP;Lo;0;L;;;;;N;;;;; 1145;HANGUL CHOSEONG IEUNG-SIOS;Lo;0;L;;;;;N;;;;; 1146;HANGUL CHOSEONG IEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; 1147;HANGUL CHOSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; 1148;HANGUL CHOSEONG IEUNG-CIEUC;Lo;0;L;;;;;N;;;;; 1149;HANGUL CHOSEONG IEUNG-CHIEUCH;Lo;0;L;;;;;N;;;;; 114A;HANGUL CHOSEONG IEUNG-THIEUTH;Lo;0;L;;;;;N;;;;; 114B;HANGUL CHOSEONG IEUNG-PHIEUPH;Lo;0;L;;;;;N;;;;; 114C;HANGUL CHOSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; 114D;HANGUL CHOSEONG CIEUC-IEUNG;Lo;0;L;;;;;N;;;;; 114E;HANGUL CHOSEONG CHITUEUMCIEUC;Lo;0;L;;;;;N;;;;; 114F;HANGUL CHOSEONG CHITUEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; 1150;HANGUL CHOSEONG CEONGCHIEUMCIEUC;Lo;0;L;;;;;N;;;;; 1151;HANGUL CHOSEONG CEONGCHIEUMSSANGCIEUC;Lo;0;L;;;;;N;;;;; 1152;HANGUL CHOSEONG CHIEUCH-KHIEUKH;Lo;0;L;;;;;N;;;;; 1153;HANGUL CHOSEONG CHIEUCH-HIEUH;Lo;0;L;;;;;N;;;;; 1154;HANGUL CHOSEONG CHITUEUMCHIEUCH;Lo;0;L;;;;;N;;;;; 1155;HANGUL CHOSEONG CEONGCHIEUMCHIEUCH;Lo;0;L;;;;;N;;;;; 1156;HANGUL CHOSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; 1157;HANGUL CHOSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; 1158;HANGUL CHOSEONG SSANGHIEUH;Lo;0;L;;;;;N;;;;; 1159;HANGUL CHOSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; 115F;HANGUL CHOSEONG FILLER;Lo;0;L;;;;;N;;;;; 1160;HANGUL JUNGSEONG FILLER;Lo;0;L;;;;;N;;;;; 1161;HANGUL JUNGSEONG A;Lo;0;L;;;;;N;;;;; 1162;HANGUL JUNGSEONG AE;Lo;0;L;;;;;N;;;;; 1163;HANGUL JUNGSEONG YA;Lo;0;L;;;;;N;;;;; 1164;HANGUL JUNGSEONG YAE;Lo;0;L;;;;;N;;;;; 1165;HANGUL JUNGSEONG EO;Lo;0;L;;;;;N;;;;; 1166;HANGUL JUNGSEONG E;Lo;0;L;;;;;N;;;;; 1167;HANGUL JUNGSEONG YEO;Lo;0;L;;;;;N;;;;; 1168;HANGUL JUNGSEONG YE;Lo;0;L;;;;;N;;;;; 1169;HANGUL JUNGSEONG O;Lo;0;L;;;;;N;;;;; 116A;HANGUL JUNGSEONG WA;Lo;0;L;;;;;N;;;;; 116B;HANGUL JUNGSEONG WAE;Lo;0;L;;;;;N;;;;; 116C;HANGUL JUNGSEONG OE;Lo;0;L;;;;;N;;;;; 116D;HANGUL JUNGSEONG YO;Lo;0;L;;;;;N;;;;; 116E;HANGUL JUNGSEONG U;Lo;0;L;;;;;N;;;;; 116F;HANGUL JUNGSEONG WEO;Lo;0;L;;;;;N;;;;; 1170;HANGUL JUNGSEONG WE;Lo;0;L;;;;;N;;;;; 1171;HANGUL JUNGSEONG WI;Lo;0;L;;;;;N;;;;; 1172;HANGUL JUNGSEONG YU;Lo;0;L;;;;;N;;;;; 1173;HANGUL JUNGSEONG EU;Lo;0;L;;;;;N;;;;; 1174;HANGUL JUNGSEONG YI;Lo;0;L;;;;;N;;;;; 1175;HANGUL JUNGSEONG I;Lo;0;L;;;;;N;;;;; 1176;HANGUL JUNGSEONG A-O;Lo;0;L;;;;;N;;;;; 1177;HANGUL JUNGSEONG A-U;Lo;0;L;;;;;N;;;;; 1178;HANGUL JUNGSEONG YA-O;Lo;0;L;;;;;N;;;;; 1179;HANGUL JUNGSEONG YA-YO;Lo;0;L;;;;;N;;;;; 117A;HANGUL JUNGSEONG EO-O;Lo;0;L;;;;;N;;;;; 117B;HANGUL JUNGSEONG EO-U;Lo;0;L;;;;;N;;;;; 117C;HANGUL JUNGSEONG EO-EU;Lo;0;L;;;;;N;;;;; 117D;HANGUL JUNGSEONG YEO-O;Lo;0;L;;;;;N;;;;; 117E;HANGUL JUNGSEONG YEO-U;Lo;0;L;;;;;N;;;;; 117F;HANGUL JUNGSEONG O-EO;Lo;0;L;;;;;N;;;;; 1180;HANGUL JUNGSEONG O-E;Lo;0;L;;;;;N;;;;; 1181;HANGUL JUNGSEONG O-YE;Lo;0;L;;;;;N;;;;; 1182;HANGUL JUNGSEONG O-O;Lo;0;L;;;;;N;;;;; 1183;HANGUL JUNGSEONG O-U;Lo;0;L;;;;;N;;;;; 1184;HANGUL JUNGSEONG YO-YA;Lo;0;L;;;;;N;;;;; 1185;HANGUL JUNGSEONG YO-YAE;Lo;0;L;;;;;N;;;;; 1186;HANGUL JUNGSEONG YO-YEO;Lo;0;L;;;;;N;;;;; 1187;HANGUL JUNGSEONG YO-O;Lo;0;L;;;;;N;;;;; 1188;HANGUL JUNGSEONG YO-I;Lo;0;L;;;;;N;;;;; 1189;HANGUL JUNGSEONG U-A;Lo;0;L;;;;;N;;;;; 118A;HANGUL JUNGSEONG U-AE;Lo;0;L;;;;;N;;;;; 118B;HANGUL JUNGSEONG U-EO-EU;Lo;0;L;;;;;N;;;;; 118C;HANGUL JUNGSEONG U-YE;Lo;0;L;;;;;N;;;;; 118D;HANGUL JUNGSEONG U-U;Lo;0;L;;;;;N;;;;; 118E;HANGUL JUNGSEONG YU-A;Lo;0;L;;;;;N;;;;; 118F;HANGUL JUNGSEONG YU-EO;Lo;0;L;;;;;N;;;;; 1190;HANGUL JUNGSEONG YU-E;Lo;0;L;;;;;N;;;;; 1191;HANGUL JUNGSEONG YU-YEO;Lo;0;L;;;;;N;;;;; 1192;HANGUL JUNGSEONG YU-YE;Lo;0;L;;;;;N;;;;; 1193;HANGUL JUNGSEONG YU-U;Lo;0;L;;;;;N;;;;; 1194;HANGUL JUNGSEONG YU-I;Lo;0;L;;;;;N;;;;; 1195;HANGUL JUNGSEONG EU-U;Lo;0;L;;;;;N;;;;; 1196;HANGUL JUNGSEONG EU-EU;Lo;0;L;;;;;N;;;;; 1197;HANGUL JUNGSEONG YI-U;Lo;0;L;;;;;N;;;;; 1198;HANGUL JUNGSEONG I-A;Lo;0;L;;;;;N;;;;; 1199;HANGUL JUNGSEONG I-YA;Lo;0;L;;;;;N;;;;; 119A;HANGUL JUNGSEONG I-O;Lo;0;L;;;;;N;;;;; 119B;HANGUL JUNGSEONG I-U;Lo;0;L;;;;;N;;;;; 119C;HANGUL JUNGSEONG I-EU;Lo;0;L;;;;;N;;;;; 119D;HANGUL JUNGSEONG I-ARAEA;Lo;0;L;;;;;N;;;;; 119E;HANGUL JUNGSEONG ARAEA;Lo;0;L;;;;;N;;;;; 119F;HANGUL JUNGSEONG ARAEA-EO;Lo;0;L;;;;;N;;;;; 11A0;HANGUL JUNGSEONG ARAEA-U;Lo;0;L;;;;;N;;;;; 11A1;HANGUL JUNGSEONG ARAEA-I;Lo;0;L;;;;;N;;;;; 11A2;HANGUL JUNGSEONG SSANGARAEA;Lo;0;L;;;;;N;;;;; 11A8;HANGUL JONGSEONG KIYEOK;Lo;0;L;;;;;N;;g *;;; 11A9;HANGUL JONGSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;gg *;;; 11AA;HANGUL JONGSEONG KIYEOK-SIOS;Lo;0;L;;;;;N;;gs *;;; 11AB;HANGUL JONGSEONG NIEUN;Lo;0;L;;;;;N;;n *;;; 11AC;HANGUL JONGSEONG NIEUN-CIEUC;Lo;0;L;;;;;N;;nj *;;; 11AD;HANGUL JONGSEONG NIEUN-HIEUH;Lo;0;L;;;;;N;;nh *;;; 11AE;HANGUL JONGSEONG TIKEUT;Lo;0;L;;;;;N;;d *;;; 11AF;HANGUL JONGSEONG RIEUL;Lo;0;L;;;;;N;;l *;;; 11B0;HANGUL JONGSEONG RIEUL-KIYEOK;Lo;0;L;;;;;N;;lg *;;; 11B1;HANGUL JONGSEONG RIEUL-MIEUM;Lo;0;L;;;;;N;;lm *;;; 11B2;HANGUL JONGSEONG RIEUL-PIEUP;Lo;0;L;;;;;N;;lb *;;; 11B3;HANGUL JONGSEONG RIEUL-SIOS;Lo;0;L;;;;;N;;ls *;;; 11B4;HANGUL JONGSEONG RIEUL-THIEUTH;Lo;0;L;;;;;N;;lt *;;; 11B5;HANGUL JONGSEONG RIEUL-PHIEUPH;Lo;0;L;;;;;N;;lp *;;; 11B6;HANGUL JONGSEONG RIEUL-HIEUH;Lo;0;L;;;;;N;;lh *;;; 11B7;HANGUL JONGSEONG MIEUM;Lo;0;L;;;;;N;;m *;;; 11B8;HANGUL JONGSEONG PIEUP;Lo;0;L;;;;;N;;b *;;; 11B9;HANGUL JONGSEONG PIEUP-SIOS;Lo;0;L;;;;;N;;bs *;;; 11BA;HANGUL JONGSEONG SIOS;Lo;0;L;;;;;N;;s *;;; 11BB;HANGUL JONGSEONG SSANGSIOS;Lo;0;L;;;;;N;;ss *;;; 11BC;HANGUL JONGSEONG IEUNG;Lo;0;L;;;;;N;;ng *;;; 11BD;HANGUL JONGSEONG CIEUC;Lo;0;L;;;;;N;;j *;;; 11BE;HANGUL JONGSEONG CHIEUCH;Lo;0;L;;;;;N;;c *;;; 11BF;HANGUL JONGSEONG KHIEUKH;Lo;0;L;;;;;N;;k *;;; 11C0;HANGUL JONGSEONG THIEUTH;Lo;0;L;;;;;N;;t *;;; 11C1;HANGUL JONGSEONG PHIEUPH;Lo;0;L;;;;;N;;p *;;; 11C2;HANGUL JONGSEONG HIEUH;Lo;0;L;;;;;N;;h *;;; 11C3;HANGUL JONGSEONG KIYEOK-RIEUL;Lo;0;L;;;;;N;;;;; 11C4;HANGUL JONGSEONG KIYEOK-SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 11C5;HANGUL JONGSEONG NIEUN-KIYEOK;Lo;0;L;;;;;N;;;;; 11C6;HANGUL JONGSEONG NIEUN-TIKEUT;Lo;0;L;;;;;N;;;;; 11C7;HANGUL JONGSEONG NIEUN-SIOS;Lo;0;L;;;;;N;;;;; 11C8;HANGUL JONGSEONG NIEUN-PANSIOS;Lo;0;L;;;;;N;;;;; 11C9;HANGUL JONGSEONG NIEUN-THIEUTH;Lo;0;L;;;;;N;;;;; 11CA;HANGUL JONGSEONG TIKEUT-KIYEOK;Lo;0;L;;;;;N;;;;; 11CB;HANGUL JONGSEONG TIKEUT-RIEUL;Lo;0;L;;;;;N;;;;; 11CC;HANGUL JONGSEONG RIEUL-KIYEOK-SIOS;Lo;0;L;;;;;N;;;;; 11CD;HANGUL JONGSEONG RIEUL-NIEUN;Lo;0;L;;;;;N;;;;; 11CE;HANGUL JONGSEONG RIEUL-TIKEUT;Lo;0;L;;;;;N;;;;; 11CF;HANGUL JONGSEONG RIEUL-TIKEUT-HIEUH;Lo;0;L;;;;;N;;;;; 11D0;HANGUL JONGSEONG SSANGRIEUL;Lo;0;L;;;;;N;;;;; 11D1;HANGUL JONGSEONG RIEUL-MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; 11D2;HANGUL JONGSEONG RIEUL-MIEUM-SIOS;Lo;0;L;;;;;N;;;;; 11D3;HANGUL JONGSEONG RIEUL-PIEUP-SIOS;Lo;0;L;;;;;N;;;;; 11D4;HANGUL JONGSEONG RIEUL-PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; 11D5;HANGUL JONGSEONG RIEUL-KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; 11D6;HANGUL JONGSEONG RIEUL-SSANGSIOS;Lo;0;L;;;;;N;;;;; 11D7;HANGUL JONGSEONG RIEUL-PANSIOS;Lo;0;L;;;;;N;;;;; 11D8;HANGUL JONGSEONG RIEUL-KHIEUKH;Lo;0;L;;;;;N;;;;; 11D9;HANGUL JONGSEONG RIEUL-YEORINHIEUH;Lo;0;L;;;;;N;;;;; 11DA;HANGUL JONGSEONG MIEUM-KIYEOK;Lo;0;L;;;;;N;;;;; 11DB;HANGUL JONGSEONG MIEUM-RIEUL;Lo;0;L;;;;;N;;;;; 11DC;HANGUL JONGSEONG MIEUM-PIEUP;Lo;0;L;;;;;N;;;;; 11DD;HANGUL JONGSEONG MIEUM-SIOS;Lo;0;L;;;;;N;;;;; 11DE;HANGUL JONGSEONG MIEUM-SSANGSIOS;Lo;0;L;;;;;N;;;;; 11DF;HANGUL JONGSEONG MIEUM-PANSIOS;Lo;0;L;;;;;N;;;;; 11E0;HANGUL JONGSEONG MIEUM-CHIEUCH;Lo;0;L;;;;;N;;;;; 11E1;HANGUL JONGSEONG MIEUM-HIEUH;Lo;0;L;;;;;N;;;;; 11E2;HANGUL JONGSEONG KAPYEOUNMIEUM;Lo;0;L;;;;;N;;;;; 11E3;HANGUL JONGSEONG PIEUP-RIEUL;Lo;0;L;;;;;N;;;;; 11E4;HANGUL JONGSEONG PIEUP-PHIEUPH;Lo;0;L;;;;;N;;;;; 11E5;HANGUL JONGSEONG PIEUP-HIEUH;Lo;0;L;;;;;N;;;;; 11E6;HANGUL JONGSEONG KAPYEOUNPIEUP;Lo;0;L;;;;;N;;;;; 11E7;HANGUL JONGSEONG SIOS-KIYEOK;Lo;0;L;;;;;N;;;;; 11E8;HANGUL JONGSEONG SIOS-TIKEUT;Lo;0;L;;;;;N;;;;; 11E9;HANGUL JONGSEONG SIOS-RIEUL;Lo;0;L;;;;;N;;;;; 11EA;HANGUL JONGSEONG SIOS-PIEUP;Lo;0;L;;;;;N;;;;; 11EB;HANGUL JONGSEONG PANSIOS;Lo;0;L;;;;;N;;;;; 11EC;HANGUL JONGSEONG IEUNG-KIYEOK;Lo;0;L;;;;;N;;;;; 11ED;HANGUL JONGSEONG IEUNG-SSANGKIYEOK;Lo;0;L;;;;;N;;;;; 11EE;HANGUL JONGSEONG SSANGIEUNG;Lo;0;L;;;;;N;;;;; 11EF;HANGUL JONGSEONG IEUNG-KHIEUKH;Lo;0;L;;;;;N;;;;; 11F0;HANGUL JONGSEONG YESIEUNG;Lo;0;L;;;;;N;;;;; 11F1;HANGUL JONGSEONG YESIEUNG-SIOS;Lo;0;L;;;;;N;;;;; 11F2;HANGUL JONGSEONG YESIEUNG-PANSIOS;Lo;0;L;;;;;N;;;;; 11F3;HANGUL JONGSEONG PHIEUPH-PIEUP;Lo;0;L;;;;;N;;;;; 11F4;HANGUL JONGSEONG KAPYEOUNPHIEUPH;Lo;0;L;;;;;N;;;;; 11F5;HANGUL JONGSEONG HIEUH-NIEUN;Lo;0;L;;;;;N;;;;; 11F6;HANGUL JONGSEONG HIEUH-RIEUL;Lo;0;L;;;;;N;;;;; 11F7;HANGUL JONGSEONG HIEUH-MIEUM;Lo;0;L;;;;;N;;;;; 11F8;HANGUL JONGSEONG HIEUH-PIEUP;Lo;0;L;;;;;N;;;;; 11F9;HANGUL JONGSEONG YEORINHIEUH;Lo;0;L;;;;;N;;;;; 1200;ETHIOPIC SYLLABLE HA;Lo;0;L;;;;;N;;;;; 1201;ETHIOPIC SYLLABLE HU;Lo;0;L;;;;;N;;;;; 1202;ETHIOPIC SYLLABLE HI;Lo;0;L;;;;;N;;;;; 1203;ETHIOPIC SYLLABLE HAA;Lo;0;L;;;;;N;;;;; 1204;ETHIOPIC SYLLABLE HEE;Lo;0;L;;;;;N;;;;; 1205;ETHIOPIC SYLLABLE HE;Lo;0;L;;;;;N;;;;; 1206;ETHIOPIC SYLLABLE HO;Lo;0;L;;;;;N;;;;; 1208;ETHIOPIC SYLLABLE LA;Lo;0;L;;;;;N;;;;; 1209;ETHIOPIC SYLLABLE LU;Lo;0;L;;;;;N;;;;; 120A;ETHIOPIC SYLLABLE LI;Lo;0;L;;;;;N;;;;; 120B;ETHIOPIC SYLLABLE LAA;Lo;0;L;;;;;N;;;;; 120C;ETHIOPIC SYLLABLE LEE;Lo;0;L;;;;;N;;;;; 120D;ETHIOPIC SYLLABLE LE;Lo;0;L;;;;;N;;;;; 120E;ETHIOPIC SYLLABLE LO;Lo;0;L;;;;;N;;;;; 120F;ETHIOPIC SYLLABLE LWA;Lo;0;L;;;;;N;;;;; 1210;ETHIOPIC SYLLABLE HHA;Lo;0;L;;;;;N;;;;; 1211;ETHIOPIC SYLLABLE HHU;Lo;0;L;;;;;N;;;;; 1212;ETHIOPIC SYLLABLE HHI;Lo;0;L;;;;;N;;;;; 1213;ETHIOPIC SYLLABLE HHAA;Lo;0;L;;;;;N;;;;; 1214;ETHIOPIC SYLLABLE HHEE;Lo;0;L;;;;;N;;;;; 1215;ETHIOPIC SYLLABLE HHE;Lo;0;L;;;;;N;;;;; 1216;ETHIOPIC SYLLABLE HHO;Lo;0;L;;;;;N;;;;; 1217;ETHIOPIC SYLLABLE HHWA;Lo;0;L;;;;;N;;;;; 1218;ETHIOPIC SYLLABLE MA;Lo;0;L;;;;;N;;;;; 1219;ETHIOPIC SYLLABLE MU;Lo;0;L;;;;;N;;;;; 121A;ETHIOPIC SYLLABLE MI;Lo;0;L;;;;;N;;;;; 121B;ETHIOPIC SYLLABLE MAA;Lo;0;L;;;;;N;;;;; 121C;ETHIOPIC SYLLABLE MEE;Lo;0;L;;;;;N;;;;; 121D;ETHIOPIC SYLLABLE ME;Lo;0;L;;;;;N;;;;; 121E;ETHIOPIC SYLLABLE MO;Lo;0;L;;;;;N;;;;; 121F;ETHIOPIC SYLLABLE MWA;Lo;0;L;;;;;N;;;;; 1220;ETHIOPIC SYLLABLE SZA;Lo;0;L;;;;;N;;;;; 1221;ETHIOPIC SYLLABLE SZU;Lo;0;L;;;;;N;;;;; 1222;ETHIOPIC SYLLABLE SZI;Lo;0;L;;;;;N;;;;; 1223;ETHIOPIC SYLLABLE SZAA;Lo;0;L;;;;;N;;;;; 1224;ETHIOPIC SYLLABLE SZEE;Lo;0;L;;;;;N;;;;; 1225;ETHIOPIC SYLLABLE SZE;Lo;0;L;;;;;N;;;;; 1226;ETHIOPIC SYLLABLE SZO;Lo;0;L;;;;;N;;;;; 1227;ETHIOPIC SYLLABLE SZWA;Lo;0;L;;;;;N;;;;; 1228;ETHIOPIC SYLLABLE RA;Lo;0;L;;;;;N;;;;; 1229;ETHIOPIC SYLLABLE RU;Lo;0;L;;;;;N;;;;; 122A;ETHIOPIC SYLLABLE RI;Lo;0;L;;;;;N;;;;; 122B;ETHIOPIC SYLLABLE RAA;Lo;0;L;;;;;N;;;;; 122C;ETHIOPIC SYLLABLE REE;Lo;0;L;;;;;N;;;;; 122D;ETHIOPIC SYLLABLE RE;Lo;0;L;;;;;N;;;;; 122E;ETHIOPIC SYLLABLE RO;Lo;0;L;;;;;N;;;;; 122F;ETHIOPIC SYLLABLE RWA;Lo;0;L;;;;;N;;;;; 1230;ETHIOPIC SYLLABLE SA;Lo;0;L;;;;;N;;;;; 1231;ETHIOPIC SYLLABLE SU;Lo;0;L;;;;;N;;;;; 1232;ETHIOPIC SYLLABLE SI;Lo;0;L;;;;;N;;;;; 1233;ETHIOPIC SYLLABLE SAA;Lo;0;L;;;;;N;;;;; 1234;ETHIOPIC SYLLABLE SEE;Lo;0;L;;;;;N;;;;; 1235;ETHIOPIC SYLLABLE SE;Lo;0;L;;;;;N;;;;; 1236;ETHIOPIC SYLLABLE SO;Lo;0;L;;;;;N;;;;; 1237;ETHIOPIC SYLLABLE SWA;Lo;0;L;;;;;N;;;;; 1238;ETHIOPIC SYLLABLE SHA;Lo;0;L;;;;;N;;;;; 1239;ETHIOPIC SYLLABLE SHU;Lo;0;L;;;;;N;;;;; 123A;ETHIOPIC SYLLABLE SHI;Lo;0;L;;;;;N;;;;; 123B;ETHIOPIC SYLLABLE SHAA;Lo;0;L;;;;;N;;;;; 123C;ETHIOPIC SYLLABLE SHEE;Lo;0;L;;;;;N;;;;; 123D;ETHIOPIC SYLLABLE SHE;Lo;0;L;;;;;N;;;;; 123E;ETHIOPIC SYLLABLE SHO;Lo;0;L;;;;;N;;;;; 123F;ETHIOPIC SYLLABLE SHWA;Lo;0;L;;;;;N;;;;; 1240;ETHIOPIC SYLLABLE QA;Lo;0;L;;;;;N;;;;; 1241;ETHIOPIC SYLLABLE QU;Lo;0;L;;;;;N;;;;; 1242;ETHIOPIC SYLLABLE QI;Lo;0;L;;;;;N;;;;; 1243;ETHIOPIC SYLLABLE QAA;Lo;0;L;;;;;N;;;;; 1244;ETHIOPIC SYLLABLE QEE;Lo;0;L;;;;;N;;;;; 1245;ETHIOPIC SYLLABLE QE;Lo;0;L;;;;;N;;;;; 1246;ETHIOPIC SYLLABLE QO;Lo;0;L;;;;;N;;;;; 1248;ETHIOPIC SYLLABLE QWA;Lo;0;L;;;;;N;;;;; 124A;ETHIOPIC SYLLABLE QWI;Lo;0;L;;;;;N;;;;; 124B;ETHIOPIC SYLLABLE QWAA;Lo;0;L;;;;;N;;;;; 124C;ETHIOPIC SYLLABLE QWEE;Lo;0;L;;;;;N;;;;; 124D;ETHIOPIC SYLLABLE QWE;Lo;0;L;;;;;N;;;;; 1250;ETHIOPIC SYLLABLE QHA;Lo;0;L;;;;;N;;;;; 1251;ETHIOPIC SYLLABLE QHU;Lo;0;L;;;;;N;;;;; 1252;ETHIOPIC SYLLABLE QHI;Lo;0;L;;;;;N;;;;; 1253;ETHIOPIC SYLLABLE QHAA;Lo;0;L;;;;;N;;;;; 1254;ETHIOPIC SYLLABLE QHEE;Lo;0;L;;;;;N;;;;; 1255;ETHIOPIC SYLLABLE QHE;Lo;0;L;;;;;N;;;;; 1256;ETHIOPIC SYLLABLE QHO;Lo;0;L;;;;;N;;;;; 1258;ETHIOPIC SYLLABLE QHWA;Lo;0;L;;;;;N;;;;; 125A;ETHIOPIC SYLLABLE QHWI;Lo;0;L;;;;;N;;;;; 125B;ETHIOPIC SYLLABLE QHWAA;Lo;0;L;;;;;N;;;;; 125C;ETHIOPIC SYLLABLE QHWEE;Lo;0;L;;;;;N;;;;; 125D;ETHIOPIC SYLLABLE QHWE;Lo;0;L;;;;;N;;;;; 1260;ETHIOPIC SYLLABLE BA;Lo;0;L;;;;;N;;;;; 1261;ETHIOPIC SYLLABLE BU;Lo;0;L;;;;;N;;;;; 1262;ETHIOPIC SYLLABLE BI;Lo;0;L;;;;;N;;;;; 1263;ETHIOPIC SYLLABLE BAA;Lo;0;L;;;;;N;;;;; 1264;ETHIOPIC SYLLABLE BEE;Lo;0;L;;;;;N;;;;; 1265;ETHIOPIC SYLLABLE BE;Lo;0;L;;;;;N;;;;; 1266;ETHIOPIC SYLLABLE BO;Lo;0;L;;;;;N;;;;; 1267;ETHIOPIC SYLLABLE BWA;Lo;0;L;;;;;N;;;;; 1268;ETHIOPIC SYLLABLE VA;Lo;0;L;;;;;N;;;;; 1269;ETHIOPIC SYLLABLE VU;Lo;0;L;;;;;N;;;;; 126A;ETHIOPIC SYLLABLE VI;Lo;0;L;;;;;N;;;;; 126B;ETHIOPIC SYLLABLE VAA;Lo;0;L;;;;;N;;;;; 126C;ETHIOPIC SYLLABLE VEE;Lo;0;L;;;;;N;;;;; 126D;ETHIOPIC SYLLABLE VE;Lo;0;L;;;;;N;;;;; 126E;ETHIOPIC SYLLABLE VO;Lo;0;L;;;;;N;;;;; 126F;ETHIOPIC SYLLABLE VWA;Lo;0;L;;;;;N;;;;; 1270;ETHIOPIC SYLLABLE TA;Lo;0;L;;;;;N;;;;; 1271;ETHIOPIC SYLLABLE TU;Lo;0;L;;;;;N;;;;; 1272;ETHIOPIC SYLLABLE TI;Lo;0;L;;;;;N;;;;; 1273;ETHIOPIC SYLLABLE TAA;Lo;0;L;;;;;N;;;;; 1274;ETHIOPIC SYLLABLE TEE;Lo;0;L;;;;;N;;;;; 1275;ETHIOPIC SYLLABLE TE;Lo;0;L;;;;;N;;;;; 1276;ETHIOPIC SYLLABLE TO;Lo;0;L;;;;;N;;;;; 1277;ETHIOPIC SYLLABLE TWA;Lo;0;L;;;;;N;;;;; 1278;ETHIOPIC SYLLABLE CA;Lo;0;L;;;;;N;;;;; 1279;ETHIOPIC SYLLABLE CU;Lo;0;L;;;;;N;;;;; 127A;ETHIOPIC SYLLABLE CI;Lo;0;L;;;;;N;;;;; 127B;ETHIOPIC SYLLABLE CAA;Lo;0;L;;;;;N;;;;; 127C;ETHIOPIC SYLLABLE CEE;Lo;0;L;;;;;N;;;;; 127D;ETHIOPIC SYLLABLE CE;Lo;0;L;;;;;N;;;;; 127E;ETHIOPIC SYLLABLE CO;Lo;0;L;;;;;N;;;;; 127F;ETHIOPIC SYLLABLE CWA;Lo;0;L;;;;;N;;;;; 1280;ETHIOPIC SYLLABLE XA;Lo;0;L;;;;;N;;;;; 1281;ETHIOPIC SYLLABLE XU;Lo;0;L;;;;;N;;;;; 1282;ETHIOPIC SYLLABLE XI;Lo;0;L;;;;;N;;;;; 1283;ETHIOPIC SYLLABLE XAA;Lo;0;L;;;;;N;;;;; 1284;ETHIOPIC SYLLABLE XEE;Lo;0;L;;;;;N;;;;; 1285;ETHIOPIC SYLLABLE XE;Lo;0;L;;;;;N;;;;; 1286;ETHIOPIC SYLLABLE XO;Lo;0;L;;;;;N;;;;; 1288;ETHIOPIC SYLLABLE XWA;Lo;0;L;;;;;N;;;;; 128A;ETHIOPIC SYLLABLE XWI;Lo;0;L;;;;;N;;;;; 128B;ETHIOPIC SYLLABLE XWAA;Lo;0;L;;;;;N;;;;; 128C;ETHIOPIC SYLLABLE XWEE;Lo;0;L;;;;;N;;;;; 128D;ETHIOPIC SYLLABLE XWE;Lo;0;L;;;;;N;;;;; 1290;ETHIOPIC SYLLABLE NA;Lo;0;L;;;;;N;;;;; 1291;ETHIOPIC SYLLABLE NU;Lo;0;L;;;;;N;;;;; 1292;ETHIOPIC SYLLABLE NI;Lo;0;L;;;;;N;;;;; 1293;ETHIOPIC SYLLABLE NAA;Lo;0;L;;;;;N;;;;; 1294;ETHIOPIC SYLLABLE NEE;Lo;0;L;;;;;N;;;;; 1295;ETHIOPIC SYLLABLE NE;Lo;0;L;;;;;N;;;;; 1296;ETHIOPIC SYLLABLE NO;Lo;0;L;;;;;N;;;;; 1297;ETHIOPIC SYLLABLE NWA;Lo;0;L;;;;;N;;;;; 1298;ETHIOPIC SYLLABLE NYA;Lo;0;L;;;;;N;;;;; 1299;ETHIOPIC SYLLABLE NYU;Lo;0;L;;;;;N;;;;; 129A;ETHIOPIC SYLLABLE NYI;Lo;0;L;;;;;N;;;;; 129B;ETHIOPIC SYLLABLE NYAA;Lo;0;L;;;;;N;;;;; 129C;ETHIOPIC SYLLABLE NYEE;Lo;0;L;;;;;N;;;;; 129D;ETHIOPIC SYLLABLE NYE;Lo;0;L;;;;;N;;;;; 129E;ETHIOPIC SYLLABLE NYO;Lo;0;L;;;;;N;;;;; 129F;ETHIOPIC SYLLABLE NYWA;Lo;0;L;;;;;N;;;;; 12A0;ETHIOPIC SYLLABLE GLOTTAL A;Lo;0;L;;;;;N;;;;; 12A1;ETHIOPIC SYLLABLE GLOTTAL U;Lo;0;L;;;;;N;;;;; 12A2;ETHIOPIC SYLLABLE GLOTTAL I;Lo;0;L;;;;;N;;;;; 12A3;ETHIOPIC SYLLABLE GLOTTAL AA;Lo;0;L;;;;;N;;;;; 12A4;ETHIOPIC SYLLABLE GLOTTAL EE;Lo;0;L;;;;;N;;;;; 12A5;ETHIOPIC SYLLABLE GLOTTAL E;Lo;0;L;;;;;N;;;;; 12A6;ETHIOPIC SYLLABLE GLOTTAL O;Lo;0;L;;;;;N;;;;; 12A7;ETHIOPIC SYLLABLE GLOTTAL WA;Lo;0;L;;;;;N;;;;; 12A8;ETHIOPIC SYLLABLE KA;Lo;0;L;;;;;N;;;;; 12A9;ETHIOPIC SYLLABLE KU;Lo;0;L;;;;;N;;;;; 12AA;ETHIOPIC SYLLABLE KI;Lo;0;L;;;;;N;;;;; 12AB;ETHIOPIC SYLLABLE KAA;Lo;0;L;;;;;N;;;;; 12AC;ETHIOPIC SYLLABLE KEE;Lo;0;L;;;;;N;;;;; 12AD;ETHIOPIC SYLLABLE KE;Lo;0;L;;;;;N;;;;; 12AE;ETHIOPIC SYLLABLE KO;Lo;0;L;;;;;N;;;;; 12B0;ETHIOPIC SYLLABLE KWA;Lo;0;L;;;;;N;;;;; 12B2;ETHIOPIC SYLLABLE KWI;Lo;0;L;;;;;N;;;;; 12B3;ETHIOPIC SYLLABLE KWAA;Lo;0;L;;;;;N;;;;; 12B4;ETHIOPIC SYLLABLE KWEE;Lo;0;L;;;;;N;;;;; 12B5;ETHIOPIC SYLLABLE KWE;Lo;0;L;;;;;N;;;;; 12B8;ETHIOPIC SYLLABLE KXA;Lo;0;L;;;;;N;;;;; 12B9;ETHIOPIC SYLLABLE KXU;Lo;0;L;;;;;N;;;;; 12BA;ETHIOPIC SYLLABLE KXI;Lo;0;L;;;;;N;;;;; 12BB;ETHIOPIC SYLLABLE KXAA;Lo;0;L;;;;;N;;;;; 12BC;ETHIOPIC SYLLABLE KXEE;Lo;0;L;;;;;N;;;;; 12BD;ETHIOPIC SYLLABLE KXE;Lo;0;L;;;;;N;;;;; 12BE;ETHIOPIC SYLLABLE KXO;Lo;0;L;;;;;N;;;;; 12C0;ETHIOPIC SYLLABLE KXWA;Lo;0;L;;;;;N;;;;; 12C2;ETHIOPIC SYLLABLE KXWI;Lo;0;L;;;;;N;;;;; 12C3;ETHIOPIC SYLLABLE KXWAA;Lo;0;L;;;;;N;;;;; 12C4;ETHIOPIC SYLLABLE KXWEE;Lo;0;L;;;;;N;;;;; 12C5;ETHIOPIC SYLLABLE KXWE;Lo;0;L;;;;;N;;;;; 12C8;ETHIOPIC SYLLABLE WA;Lo;0;L;;;;;N;;;;; 12C9;ETHIOPIC SYLLABLE WU;Lo;0;L;;;;;N;;;;; 12CA;ETHIOPIC SYLLABLE WI;Lo;0;L;;;;;N;;;;; 12CB;ETHIOPIC SYLLABLE WAA;Lo;0;L;;;;;N;;;;; 12CC;ETHIOPIC SYLLABLE WEE;Lo;0;L;;;;;N;;;;; 12CD;ETHIOPIC SYLLABLE WE;Lo;0;L;;;;;N;;;;; 12CE;ETHIOPIC SYLLABLE WO;Lo;0;L;;;;;N;;;;; 12D0;ETHIOPIC SYLLABLE PHARYNGEAL A;Lo;0;L;;;;;N;;;;; 12D1;ETHIOPIC SYLLABLE PHARYNGEAL U;Lo;0;L;;;;;N;;;;; 12D2;ETHIOPIC SYLLABLE PHARYNGEAL I;Lo;0;L;;;;;N;;;;; 12D3;ETHIOPIC SYLLABLE PHARYNGEAL AA;Lo;0;L;;;;;N;;;;; 12D4;ETHIOPIC SYLLABLE PHARYNGEAL EE;Lo;0;L;;;;;N;;;;; 12D5;ETHIOPIC SYLLABLE PHARYNGEAL E;Lo;0;L;;;;;N;;;;; 12D6;ETHIOPIC SYLLABLE PHARYNGEAL O;Lo;0;L;;;;;N;;;;; 12D8;ETHIOPIC SYLLABLE ZA;Lo;0;L;;;;;N;;;;; 12D9;ETHIOPIC SYLLABLE ZU;Lo;0;L;;;;;N;;;;; 12DA;ETHIOPIC SYLLABLE ZI;Lo;0;L;;;;;N;;;;; 12DB;ETHIOPIC SYLLABLE ZAA;Lo;0;L;;;;;N;;;;; 12DC;ETHIOPIC SYLLABLE ZEE;Lo;0;L;;;;;N;;;;; 12DD;ETHIOPIC SYLLABLE ZE;Lo;0;L;;;;;N;;;;; 12DE;ETHIOPIC SYLLABLE ZO;Lo;0;L;;;;;N;;;;; 12DF;ETHIOPIC SYLLABLE ZWA;Lo;0;L;;;;;N;;;;; 12E0;ETHIOPIC SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; 12E1;ETHIOPIC SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; 12E2;ETHIOPIC SYLLABLE ZHI;Lo;0;L;;;;;N;;;;; 12E3;ETHIOPIC SYLLABLE ZHAA;Lo;0;L;;;;;N;;;;; 12E4;ETHIOPIC SYLLABLE ZHEE;Lo;0;L;;;;;N;;;;; 12E5;ETHIOPIC SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; 12E6;ETHIOPIC SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; 12E7;ETHIOPIC SYLLABLE ZHWA;Lo;0;L;;;;;N;;;;; 12E8;ETHIOPIC SYLLABLE YA;Lo;0;L;;;;;N;;;;; 12E9;ETHIOPIC SYLLABLE YU;Lo;0;L;;;;;N;;;;; 12EA;ETHIOPIC SYLLABLE YI;Lo;0;L;;;;;N;;;;; 12EB;ETHIOPIC SYLLABLE YAA;Lo;0;L;;;;;N;;;;; 12EC;ETHIOPIC SYLLABLE YEE;Lo;0;L;;;;;N;;;;; 12ED;ETHIOPIC SYLLABLE YE;Lo;0;L;;;;;N;;;;; 12EE;ETHIOPIC SYLLABLE YO;Lo;0;L;;;;;N;;;;; 12F0;ETHIOPIC SYLLABLE DA;Lo;0;L;;;;;N;;;;; 12F1;ETHIOPIC SYLLABLE DU;Lo;0;L;;;;;N;;;;; 12F2;ETHIOPIC SYLLABLE DI;Lo;0;L;;;;;N;;;;; 12F3;ETHIOPIC SYLLABLE DAA;Lo;0;L;;;;;N;;;;; 12F4;ETHIOPIC SYLLABLE DEE;Lo;0;L;;;;;N;;;;; 12F5;ETHIOPIC SYLLABLE DE;Lo;0;L;;;;;N;;;;; 12F6;ETHIOPIC SYLLABLE DO;Lo;0;L;;;;;N;;;;; 12F7;ETHIOPIC SYLLABLE DWA;Lo;0;L;;;;;N;;;;; 12F8;ETHIOPIC SYLLABLE DDA;Lo;0;L;;;;;N;;;;; 12F9;ETHIOPIC SYLLABLE DDU;Lo;0;L;;;;;N;;;;; 12FA;ETHIOPIC SYLLABLE DDI;Lo;0;L;;;;;N;;;;; 12FB;ETHIOPIC SYLLABLE DDAA;Lo;0;L;;;;;N;;;;; 12FC;ETHIOPIC SYLLABLE DDEE;Lo;0;L;;;;;N;;;;; 12FD;ETHIOPIC SYLLABLE DDE;Lo;0;L;;;;;N;;;;; 12FE;ETHIOPIC SYLLABLE DDO;Lo;0;L;;;;;N;;;;; 12FF;ETHIOPIC SYLLABLE DDWA;Lo;0;L;;;;;N;;;;; 1300;ETHIOPIC SYLLABLE JA;Lo;0;L;;;;;N;;;;; 1301;ETHIOPIC SYLLABLE JU;Lo;0;L;;;;;N;;;;; 1302;ETHIOPIC SYLLABLE JI;Lo;0;L;;;;;N;;;;; 1303;ETHIOPIC SYLLABLE JAA;Lo;0;L;;;;;N;;;;; 1304;ETHIOPIC SYLLABLE JEE;Lo;0;L;;;;;N;;;;; 1305;ETHIOPIC SYLLABLE JE;Lo;0;L;;;;;N;;;;; 1306;ETHIOPIC SYLLABLE JO;Lo;0;L;;;;;N;;;;; 1307;ETHIOPIC SYLLABLE JWA;Lo;0;L;;;;;N;;;;; 1308;ETHIOPIC SYLLABLE GA;Lo;0;L;;;;;N;;;;; 1309;ETHIOPIC SYLLABLE GU;Lo;0;L;;;;;N;;;;; 130A;ETHIOPIC SYLLABLE GI;Lo;0;L;;;;;N;;;;; 130B;ETHIOPIC SYLLABLE GAA;Lo;0;L;;;;;N;;;;; 130C;ETHIOPIC SYLLABLE GEE;Lo;0;L;;;;;N;;;;; 130D;ETHIOPIC SYLLABLE GE;Lo;0;L;;;;;N;;;;; 130E;ETHIOPIC SYLLABLE GO;Lo;0;L;;;;;N;;;;; 1310;ETHIOPIC SYLLABLE GWA;Lo;0;L;;;;;N;;;;; 1312;ETHIOPIC SYLLABLE GWI;Lo;0;L;;;;;N;;;;; 1313;ETHIOPIC SYLLABLE GWAA;Lo;0;L;;;;;N;;;;; 1314;ETHIOPIC SYLLABLE GWEE;Lo;0;L;;;;;N;;;;; 1315;ETHIOPIC SYLLABLE GWE;Lo;0;L;;;;;N;;;;; 1318;ETHIOPIC SYLLABLE GGA;Lo;0;L;;;;;N;;;;; 1319;ETHIOPIC SYLLABLE GGU;Lo;0;L;;;;;N;;;;; 131A;ETHIOPIC SYLLABLE GGI;Lo;0;L;;;;;N;;;;; 131B;ETHIOPIC SYLLABLE GGAA;Lo;0;L;;;;;N;;;;; 131C;ETHIOPIC SYLLABLE GGEE;Lo;0;L;;;;;N;;;;; 131D;ETHIOPIC SYLLABLE GGE;Lo;0;L;;;;;N;;;;; 131E;ETHIOPIC SYLLABLE GGO;Lo;0;L;;;;;N;;;;; 1320;ETHIOPIC SYLLABLE THA;Lo;0;L;;;;;N;;;;; 1321;ETHIOPIC SYLLABLE THU;Lo;0;L;;;;;N;;;;; 1322;ETHIOPIC SYLLABLE THI;Lo;0;L;;;;;N;;;;; 1323;ETHIOPIC SYLLABLE THAA;Lo;0;L;;;;;N;;;;; 1324;ETHIOPIC SYLLABLE THEE;Lo;0;L;;;;;N;;;;; 1325;ETHIOPIC SYLLABLE THE;Lo;0;L;;;;;N;;;;; 1326;ETHIOPIC SYLLABLE THO;Lo;0;L;;;;;N;;;;; 1327;ETHIOPIC SYLLABLE THWA;Lo;0;L;;;;;N;;;;; 1328;ETHIOPIC SYLLABLE CHA;Lo;0;L;;;;;N;;;;; 1329;ETHIOPIC SYLLABLE CHU;Lo;0;L;;;;;N;;;;; 132A;ETHIOPIC SYLLABLE CHI;Lo;0;L;;;;;N;;;;; 132B;ETHIOPIC SYLLABLE CHAA;Lo;0;L;;;;;N;;;;; 132C;ETHIOPIC SYLLABLE CHEE;Lo;0;L;;;;;N;;;;; 132D;ETHIOPIC SYLLABLE CHE;Lo;0;L;;;;;N;;;;; 132E;ETHIOPIC SYLLABLE CHO;Lo;0;L;;;;;N;;;;; 132F;ETHIOPIC SYLLABLE CHWA;Lo;0;L;;;;;N;;;;; 1330;ETHIOPIC SYLLABLE PHA;Lo;0;L;;;;;N;;;;; 1331;ETHIOPIC SYLLABLE PHU;Lo;0;L;;;;;N;;;;; 1332;ETHIOPIC SYLLABLE PHI;Lo;0;L;;;;;N;;;;; 1333;ETHIOPIC SYLLABLE PHAA;Lo;0;L;;;;;N;;;;; 1334;ETHIOPIC SYLLABLE PHEE;Lo;0;L;;;;;N;;;;; 1335;ETHIOPIC SYLLABLE PHE;Lo;0;L;;;;;N;;;;; 1336;ETHIOPIC SYLLABLE PHO;Lo;0;L;;;;;N;;;;; 1337;ETHIOPIC SYLLABLE PHWA;Lo;0;L;;;;;N;;;;; 1338;ETHIOPIC SYLLABLE TSA;Lo;0;L;;;;;N;;;;; 1339;ETHIOPIC SYLLABLE TSU;Lo;0;L;;;;;N;;;;; 133A;ETHIOPIC SYLLABLE TSI;Lo;0;L;;;;;N;;;;; 133B;ETHIOPIC SYLLABLE TSAA;Lo;0;L;;;;;N;;;;; 133C;ETHIOPIC SYLLABLE TSEE;Lo;0;L;;;;;N;;;;; 133D;ETHIOPIC SYLLABLE TSE;Lo;0;L;;;;;N;;;;; 133E;ETHIOPIC SYLLABLE TSO;Lo;0;L;;;;;N;;;;; 133F;ETHIOPIC SYLLABLE TSWA;Lo;0;L;;;;;N;;;;; 1340;ETHIOPIC SYLLABLE TZA;Lo;0;L;;;;;N;;;;; 1341;ETHIOPIC SYLLABLE TZU;Lo;0;L;;;;;N;;;;; 1342;ETHIOPIC SYLLABLE TZI;Lo;0;L;;;;;N;;;;; 1343;ETHIOPIC SYLLABLE TZAA;Lo;0;L;;;;;N;;;;; 1344;ETHIOPIC SYLLABLE TZEE;Lo;0;L;;;;;N;;;;; 1345;ETHIOPIC SYLLABLE TZE;Lo;0;L;;;;;N;;;;; 1346;ETHIOPIC SYLLABLE TZO;Lo;0;L;;;;;N;;;;; 1348;ETHIOPIC SYLLABLE FA;Lo;0;L;;;;;N;;;;; 1349;ETHIOPIC SYLLABLE FU;Lo;0;L;;;;;N;;;;; 134A;ETHIOPIC SYLLABLE FI;Lo;0;L;;;;;N;;;;; 134B;ETHIOPIC SYLLABLE FAA;Lo;0;L;;;;;N;;;;; 134C;ETHIOPIC SYLLABLE FEE;Lo;0;L;;;;;N;;;;; 134D;ETHIOPIC SYLLABLE FE;Lo;0;L;;;;;N;;;;; 134E;ETHIOPIC SYLLABLE FO;Lo;0;L;;;;;N;;;;; 134F;ETHIOPIC SYLLABLE FWA;Lo;0;L;;;;;N;;;;; 1350;ETHIOPIC SYLLABLE PA;Lo;0;L;;;;;N;;;;; 1351;ETHIOPIC SYLLABLE PU;Lo;0;L;;;;;N;;;;; 1352;ETHIOPIC SYLLABLE PI;Lo;0;L;;;;;N;;;;; 1353;ETHIOPIC SYLLABLE PAA;Lo;0;L;;;;;N;;;;; 1354;ETHIOPIC SYLLABLE PEE;Lo;0;L;;;;;N;;;;; 1355;ETHIOPIC SYLLABLE PE;Lo;0;L;;;;;N;;;;; 1356;ETHIOPIC SYLLABLE PO;Lo;0;L;;;;;N;;;;; 1357;ETHIOPIC SYLLABLE PWA;Lo;0;L;;;;;N;;;;; 1358;ETHIOPIC SYLLABLE RYA;Lo;0;L;;;;;N;;;;; 1359;ETHIOPIC SYLLABLE MYA;Lo;0;L;;;;;N;;;;; 135A;ETHIOPIC SYLLABLE FYA;Lo;0;L;;;;;N;;;;; 1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;; 1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;; 1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;; 1364;ETHIOPIC SEMICOLON;Po;0;L;;;;;N;;;;; 1365;ETHIOPIC COLON;Po;0;L;;;;;N;;;;; 1366;ETHIOPIC PREFACE COLON;Po;0;L;;;;;N;;;;; 1367;ETHIOPIC QUESTION MARK;Po;0;L;;;;;N;;;;; 1368;ETHIOPIC PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;; 1369;ETHIOPIC DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 136A;ETHIOPIC DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 136B;ETHIOPIC DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 136C;ETHIOPIC DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 136D;ETHIOPIC DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 136E;ETHIOPIC DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 136F;ETHIOPIC DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 1370;ETHIOPIC DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1371;ETHIOPIC DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1372;ETHIOPIC NUMBER TEN;No;0;L;;;;10;N;;;;; 1373;ETHIOPIC NUMBER TWENTY;No;0;L;;;;20;N;;;;; 1374;ETHIOPIC NUMBER THIRTY;No;0;L;;;;30;N;;;;; 1375;ETHIOPIC NUMBER FORTY;No;0;L;;;;40;N;;;;; 1376;ETHIOPIC NUMBER FIFTY;No;0;L;;;;50;N;;;;; 1377;ETHIOPIC NUMBER SIXTY;No;0;L;;;;60;N;;;;; 1378;ETHIOPIC NUMBER SEVENTY;No;0;L;;;;70;N;;;;; 1379;ETHIOPIC NUMBER EIGHTY;No;0;L;;;;80;N;;;;; 137A;ETHIOPIC NUMBER NINETY;No;0;L;;;;90;N;;;;; 137B;ETHIOPIC NUMBER HUNDRED;No;0;L;;;;100;N;;;;; 137C;ETHIOPIC NUMBER TEN THOUSAND;No;0;L;;;;10000;N;;;;; 13A0;CHEROKEE LETTER A;Lo;0;L;;;;;N;;;;; 13A1;CHEROKEE LETTER E;Lo;0;L;;;;;N;;;;; 13A2;CHEROKEE LETTER I;Lo;0;L;;;;;N;;;;; 13A3;CHEROKEE LETTER O;Lo;0;L;;;;;N;;;;; 13A4;CHEROKEE LETTER U;Lo;0;L;;;;;N;;;;; 13A5;CHEROKEE LETTER V;Lo;0;L;;;;;N;;;;; 13A6;CHEROKEE LETTER GA;Lo;0;L;;;;;N;;;;; 13A7;CHEROKEE LETTER KA;Lo;0;L;;;;;N;;;;; 13A8;CHEROKEE LETTER GE;Lo;0;L;;;;;N;;;;; 13A9;CHEROKEE LETTER GI;Lo;0;L;;;;;N;;;;; 13AA;CHEROKEE LETTER GO;Lo;0;L;;;;;N;;;;; 13AB;CHEROKEE LETTER GU;Lo;0;L;;;;;N;;;;; 13AC;CHEROKEE LETTER GV;Lo;0;L;;;;;N;;;;; 13AD;CHEROKEE LETTER HA;Lo;0;L;;;;;N;;;;; 13AE;CHEROKEE LETTER HE;Lo;0;L;;;;;N;;;;; 13AF;CHEROKEE LETTER HI;Lo;0;L;;;;;N;;;;; 13B0;CHEROKEE LETTER HO;Lo;0;L;;;;;N;;;;; 13B1;CHEROKEE LETTER HU;Lo;0;L;;;;;N;;;;; 13B2;CHEROKEE LETTER HV;Lo;0;L;;;;;N;;;;; 13B3;CHEROKEE LETTER LA;Lo;0;L;;;;;N;;;;; 13B4;CHEROKEE LETTER LE;Lo;0;L;;;;;N;;;;; 13B5;CHEROKEE LETTER LI;Lo;0;L;;;;;N;;;;; 13B6;CHEROKEE LETTER LO;Lo;0;L;;;;;N;;;;; 13B7;CHEROKEE LETTER LU;Lo;0;L;;;;;N;;;;; 13B8;CHEROKEE LETTER LV;Lo;0;L;;;;;N;;;;; 13B9;CHEROKEE LETTER MA;Lo;0;L;;;;;N;;;;; 13BA;CHEROKEE LETTER ME;Lo;0;L;;;;;N;;;;; 13BB;CHEROKEE LETTER MI;Lo;0;L;;;;;N;;;;; 13BC;CHEROKEE LETTER MO;Lo;0;L;;;;;N;;;;; 13BD;CHEROKEE LETTER MU;Lo;0;L;;;;;N;;;;; 13BE;CHEROKEE LETTER NA;Lo;0;L;;;;;N;;;;; 13BF;CHEROKEE LETTER HNA;Lo;0;L;;;;;N;;;;; 13C0;CHEROKEE LETTER NAH;Lo;0;L;;;;;N;;;;; 13C1;CHEROKEE LETTER NE;Lo;0;L;;;;;N;;;;; 13C2;CHEROKEE LETTER NI;Lo;0;L;;;;;N;;;;; 13C3;CHEROKEE LETTER NO;Lo;0;L;;;;;N;;;;; 13C4;CHEROKEE LETTER NU;Lo;0;L;;;;;N;;;;; 13C5;CHEROKEE LETTER NV;Lo;0;L;;;;;N;;;;; 13C6;CHEROKEE LETTER QUA;Lo;0;L;;;;;N;;;;; 13C7;CHEROKEE LETTER QUE;Lo;0;L;;;;;N;;;;; 13C8;CHEROKEE LETTER QUI;Lo;0;L;;;;;N;;;;; 13C9;CHEROKEE LETTER QUO;Lo;0;L;;;;;N;;;;; 13CA;CHEROKEE LETTER QUU;Lo;0;L;;;;;N;;;;; 13CB;CHEROKEE LETTER QUV;Lo;0;L;;;;;N;;;;; 13CC;CHEROKEE LETTER SA;Lo;0;L;;;;;N;;;;; 13CD;CHEROKEE LETTER S;Lo;0;L;;;;;N;;;;; 13CE;CHEROKEE LETTER SE;Lo;0;L;;;;;N;;;;; 13CF;CHEROKEE LETTER SI;Lo;0;L;;;;;N;;;;; 13D0;CHEROKEE LETTER SO;Lo;0;L;;;;;N;;;;; 13D1;CHEROKEE LETTER SU;Lo;0;L;;;;;N;;;;; 13D2;CHEROKEE LETTER SV;Lo;0;L;;;;;N;;;;; 13D3;CHEROKEE LETTER DA;Lo;0;L;;;;;N;;;;; 13D4;CHEROKEE LETTER TA;Lo;0;L;;;;;N;;;;; 13D5;CHEROKEE LETTER DE;Lo;0;L;;;;;N;;;;; 13D6;CHEROKEE LETTER TE;Lo;0;L;;;;;N;;;;; 13D7;CHEROKEE LETTER DI;Lo;0;L;;;;;N;;;;; 13D8;CHEROKEE LETTER TI;Lo;0;L;;;;;N;;;;; 13D9;CHEROKEE LETTER DO;Lo;0;L;;;;;N;;;;; 13DA;CHEROKEE LETTER DU;Lo;0;L;;;;;N;;;;; 13DB;CHEROKEE LETTER DV;Lo;0;L;;;;;N;;;;; 13DC;CHEROKEE LETTER DLA;Lo;0;L;;;;;N;;;;; 13DD;CHEROKEE LETTER TLA;Lo;0;L;;;;;N;;;;; 13DE;CHEROKEE LETTER TLE;Lo;0;L;;;;;N;;;;; 13DF;CHEROKEE LETTER TLI;Lo;0;L;;;;;N;;;;; 13E0;CHEROKEE LETTER TLO;Lo;0;L;;;;;N;;;;; 13E1;CHEROKEE LETTER TLU;Lo;0;L;;;;;N;;;;; 13E2;CHEROKEE LETTER TLV;Lo;0;L;;;;;N;;;;; 13E3;CHEROKEE LETTER TSA;Lo;0;L;;;;;N;;;;; 13E4;CHEROKEE LETTER TSE;Lo;0;L;;;;;N;;;;; 13E5;CHEROKEE LETTER TSI;Lo;0;L;;;;;N;;;;; 13E6;CHEROKEE LETTER TSO;Lo;0;L;;;;;N;;;;; 13E7;CHEROKEE LETTER TSU;Lo;0;L;;;;;N;;;;; 13E8;CHEROKEE LETTER TSV;Lo;0;L;;;;;N;;;;; 13E9;CHEROKEE LETTER WA;Lo;0;L;;;;;N;;;;; 13EA;CHEROKEE LETTER WE;Lo;0;L;;;;;N;;;;; 13EB;CHEROKEE LETTER WI;Lo;0;L;;;;;N;;;;; 13EC;CHEROKEE LETTER WO;Lo;0;L;;;;;N;;;;; 13ED;CHEROKEE LETTER WU;Lo;0;L;;;;;N;;;;; 13EE;CHEROKEE LETTER WV;Lo;0;L;;;;;N;;;;; 13EF;CHEROKEE LETTER YA;Lo;0;L;;;;;N;;;;; 13F0;CHEROKEE LETTER YE;Lo;0;L;;;;;N;;;;; 13F1;CHEROKEE LETTER YI;Lo;0;L;;;;;N;;;;; 13F2;CHEROKEE LETTER YO;Lo;0;L;;;;;N;;;;; 13F3;CHEROKEE LETTER YU;Lo;0;L;;;;;N;;;;; 13F4;CHEROKEE LETTER YV;Lo;0;L;;;;;N;;;;; 1401;CANADIAN SYLLABICS E;Lo;0;L;;;;;N;;;;; 1402;CANADIAN SYLLABICS AAI;Lo;0;L;;;;;N;;;;; 1403;CANADIAN SYLLABICS I;Lo;0;L;;;;;N;;;;; 1404;CANADIAN SYLLABICS II;Lo;0;L;;;;;N;;;;; 1405;CANADIAN SYLLABICS O;Lo;0;L;;;;;N;;;;; 1406;CANADIAN SYLLABICS OO;Lo;0;L;;;;;N;;;;; 1407;CANADIAN SYLLABICS Y-CREE OO;Lo;0;L;;;;;N;;;;; 1408;CANADIAN SYLLABICS CARRIER EE;Lo;0;L;;;;;N;;;;; 1409;CANADIAN SYLLABICS CARRIER I;Lo;0;L;;;;;N;;;;; 140A;CANADIAN SYLLABICS A;Lo;0;L;;;;;N;;;;; 140B;CANADIAN SYLLABICS AA;Lo;0;L;;;;;N;;;;; 140C;CANADIAN SYLLABICS WE;Lo;0;L;;;;;N;;;;; 140D;CANADIAN SYLLABICS WEST-CREE WE;Lo;0;L;;;;;N;;;;; 140E;CANADIAN SYLLABICS WI;Lo;0;L;;;;;N;;;;; 140F;CANADIAN SYLLABICS WEST-CREE WI;Lo;0;L;;;;;N;;;;; 1410;CANADIAN SYLLABICS WII;Lo;0;L;;;;;N;;;;; 1411;CANADIAN SYLLABICS WEST-CREE WII;Lo;0;L;;;;;N;;;;; 1412;CANADIAN SYLLABICS WO;Lo;0;L;;;;;N;;;;; 1413;CANADIAN SYLLABICS WEST-CREE WO;Lo;0;L;;;;;N;;;;; 1414;CANADIAN SYLLABICS WOO;Lo;0;L;;;;;N;;;;; 1415;CANADIAN SYLLABICS WEST-CREE WOO;Lo;0;L;;;;;N;;;;; 1416;CANADIAN SYLLABICS NASKAPI WOO;Lo;0;L;;;;;N;;;;; 1417;CANADIAN SYLLABICS WA;Lo;0;L;;;;;N;;;;; 1418;CANADIAN SYLLABICS WEST-CREE WA;Lo;0;L;;;;;N;;;;; 1419;CANADIAN SYLLABICS WAA;Lo;0;L;;;;;N;;;;; 141A;CANADIAN SYLLABICS WEST-CREE WAA;Lo;0;L;;;;;N;;;;; 141B;CANADIAN SYLLABICS NASKAPI WAA;Lo;0;L;;;;;N;;;;; 141C;CANADIAN SYLLABICS AI;Lo;0;L;;;;;N;;;;; 141D;CANADIAN SYLLABICS Y-CREE W;Lo;0;L;;;;;N;;;;; 141E;CANADIAN SYLLABICS GLOTTAL STOP;Lo;0;L;;;;;N;;;;; 141F;CANADIAN SYLLABICS FINAL ACUTE;Lo;0;L;;;;;N;;;;; 1420;CANADIAN SYLLABICS FINAL GRAVE;Lo;0;L;;;;;N;;;;; 1421;CANADIAN SYLLABICS FINAL BOTTOM HALF RING;Lo;0;L;;;;;N;;;;; 1422;CANADIAN SYLLABICS FINAL TOP HALF RING;Lo;0;L;;;;;N;;;;; 1423;CANADIAN SYLLABICS FINAL RIGHT HALF RING;Lo;0;L;;;;;N;;;;; 1424;CANADIAN SYLLABICS FINAL RING;Lo;0;L;;;;;N;;;;; 1425;CANADIAN SYLLABICS FINAL DOUBLE ACUTE;Lo;0;L;;;;;N;;;;; 1426;CANADIAN SYLLABICS FINAL DOUBLE SHORT VERTICAL STROKES;Lo;0;L;;;;;N;;;;; 1427;CANADIAN SYLLABICS FINAL MIDDLE DOT;Lo;0;L;;;;;N;;;;; 1428;CANADIAN SYLLABICS FINAL SHORT HORIZONTAL STROKE;Lo;0;L;;;;;N;;;;; 1429;CANADIAN SYLLABICS FINAL PLUS;Lo;0;L;;;;;N;;;;; 142A;CANADIAN SYLLABICS FINAL DOWN TACK;Lo;0;L;;;;;N;;;;; 142B;CANADIAN SYLLABICS EN;Lo;0;L;;;;;N;;;;; 142C;CANADIAN SYLLABICS IN;Lo;0;L;;;;;N;;;;; 142D;CANADIAN SYLLABICS ON;Lo;0;L;;;;;N;;;;; 142E;CANADIAN SYLLABICS AN;Lo;0;L;;;;;N;;;;; 142F;CANADIAN SYLLABICS PE;Lo;0;L;;;;;N;;;;; 1430;CANADIAN SYLLABICS PAAI;Lo;0;L;;;;;N;;;;; 1431;CANADIAN SYLLABICS PI;Lo;0;L;;;;;N;;;;; 1432;CANADIAN SYLLABICS PII;Lo;0;L;;;;;N;;;;; 1433;CANADIAN SYLLABICS PO;Lo;0;L;;;;;N;;;;; 1434;CANADIAN SYLLABICS POO;Lo;0;L;;;;;N;;;;; 1435;CANADIAN SYLLABICS Y-CREE POO;Lo;0;L;;;;;N;;;;; 1436;CANADIAN SYLLABICS CARRIER HEE;Lo;0;L;;;;;N;;;;; 1437;CANADIAN SYLLABICS CARRIER HI;Lo;0;L;;;;;N;;;;; 1438;CANADIAN SYLLABICS PA;Lo;0;L;;;;;N;;;;; 1439;CANADIAN SYLLABICS PAA;Lo;0;L;;;;;N;;;;; 143A;CANADIAN SYLLABICS PWE;Lo;0;L;;;;;N;;;;; 143B;CANADIAN SYLLABICS WEST-CREE PWE;Lo;0;L;;;;;N;;;;; 143C;CANADIAN SYLLABICS PWI;Lo;0;L;;;;;N;;;;; 143D;CANADIAN SYLLABICS WEST-CREE PWI;Lo;0;L;;;;;N;;;;; 143E;CANADIAN SYLLABICS PWII;Lo;0;L;;;;;N;;;;; 143F;CANADIAN SYLLABICS WEST-CREE PWII;Lo;0;L;;;;;N;;;;; 1440;CANADIAN SYLLABICS PWO;Lo;0;L;;;;;N;;;;; 1441;CANADIAN SYLLABICS WEST-CREE PWO;Lo;0;L;;;;;N;;;;; 1442;CANADIAN SYLLABICS PWOO;Lo;0;L;;;;;N;;;;; 1443;CANADIAN SYLLABICS WEST-CREE PWOO;Lo;0;L;;;;;N;;;;; 1444;CANADIAN SYLLABICS PWA;Lo;0;L;;;;;N;;;;; 1445;CANADIAN SYLLABICS WEST-CREE PWA;Lo;0;L;;;;;N;;;;; 1446;CANADIAN SYLLABICS PWAA;Lo;0;L;;;;;N;;;;; 1447;CANADIAN SYLLABICS WEST-CREE PWAA;Lo;0;L;;;;;N;;;;; 1448;CANADIAN SYLLABICS Y-CREE PWAA;Lo;0;L;;;;;N;;;;; 1449;CANADIAN SYLLABICS P;Lo;0;L;;;;;N;;;;; 144A;CANADIAN SYLLABICS WEST-CREE P;Lo;0;L;;;;;N;;;;; 144B;CANADIAN SYLLABICS CARRIER H;Lo;0;L;;;;;N;;;;; 144C;CANADIAN SYLLABICS TE;Lo;0;L;;;;;N;;;;; 144D;CANADIAN SYLLABICS TAAI;Lo;0;L;;;;;N;;;;; 144E;CANADIAN SYLLABICS TI;Lo;0;L;;;;;N;;;;; 144F;CANADIAN SYLLABICS TII;Lo;0;L;;;;;N;;;;; 1450;CANADIAN SYLLABICS TO;Lo;0;L;;;;;N;;;;; 1451;CANADIAN SYLLABICS TOO;Lo;0;L;;;;;N;;;;; 1452;CANADIAN SYLLABICS Y-CREE TOO;Lo;0;L;;;;;N;;;;; 1453;CANADIAN SYLLABICS CARRIER DEE;Lo;0;L;;;;;N;;;;; 1454;CANADIAN SYLLABICS CARRIER DI;Lo;0;L;;;;;N;;;;; 1455;CANADIAN SYLLABICS TA;Lo;0;L;;;;;N;;;;; 1456;CANADIAN SYLLABICS TAA;Lo;0;L;;;;;N;;;;; 1457;CANADIAN SYLLABICS TWE;Lo;0;L;;;;;N;;;;; 1458;CANADIAN SYLLABICS WEST-CREE TWE;Lo;0;L;;;;;N;;;;; 1459;CANADIAN SYLLABICS TWI;Lo;0;L;;;;;N;;;;; 145A;CANADIAN SYLLABICS WEST-CREE TWI;Lo;0;L;;;;;N;;;;; 145B;CANADIAN SYLLABICS TWII;Lo;0;L;;;;;N;;;;; 145C;CANADIAN SYLLABICS WEST-CREE TWII;Lo;0;L;;;;;N;;;;; 145D;CANADIAN SYLLABICS TWO;Lo;0;L;;;;;N;;;;; 145E;CANADIAN SYLLABICS WEST-CREE TWO;Lo;0;L;;;;;N;;;;; 145F;CANADIAN SYLLABICS TWOO;Lo;0;L;;;;;N;;;;; 1460;CANADIAN SYLLABICS WEST-CREE TWOO;Lo;0;L;;;;;N;;;;; 1461;CANADIAN SYLLABICS TWA;Lo;0;L;;;;;N;;;;; 1462;CANADIAN SYLLABICS WEST-CREE TWA;Lo;0;L;;;;;N;;;;; 1463;CANADIAN SYLLABICS TWAA;Lo;0;L;;;;;N;;;;; 1464;CANADIAN SYLLABICS WEST-CREE TWAA;Lo;0;L;;;;;N;;;;; 1465;CANADIAN SYLLABICS NASKAPI TWAA;Lo;0;L;;;;;N;;;;; 1466;CANADIAN SYLLABICS T;Lo;0;L;;;;;N;;;;; 1467;CANADIAN SYLLABICS TTE;Lo;0;L;;;;;N;;;;; 1468;CANADIAN SYLLABICS TTI;Lo;0;L;;;;;N;;;;; 1469;CANADIAN SYLLABICS TTO;Lo;0;L;;;;;N;;;;; 146A;CANADIAN SYLLABICS TTA;Lo;0;L;;;;;N;;;;; 146B;CANADIAN SYLLABICS KE;Lo;0;L;;;;;N;;;;; 146C;CANADIAN SYLLABICS KAAI;Lo;0;L;;;;;N;;;;; 146D;CANADIAN SYLLABICS KI;Lo;0;L;;;;;N;;;;; 146E;CANADIAN SYLLABICS KII;Lo;0;L;;;;;N;;;;; 146F;CANADIAN SYLLABICS KO;Lo;0;L;;;;;N;;;;; 1470;CANADIAN SYLLABICS KOO;Lo;0;L;;;;;N;;;;; 1471;CANADIAN SYLLABICS Y-CREE KOO;Lo;0;L;;;;;N;;;;; 1472;CANADIAN SYLLABICS KA;Lo;0;L;;;;;N;;;;; 1473;CANADIAN SYLLABICS KAA;Lo;0;L;;;;;N;;;;; 1474;CANADIAN SYLLABICS KWE;Lo;0;L;;;;;N;;;;; 1475;CANADIAN SYLLABICS WEST-CREE KWE;Lo;0;L;;;;;N;;;;; 1476;CANADIAN SYLLABICS KWI;Lo;0;L;;;;;N;;;;; 1477;CANADIAN SYLLABICS WEST-CREE KWI;Lo;0;L;;;;;N;;;;; 1478;CANADIAN SYLLABICS KWII;Lo;0;L;;;;;N;;;;; 1479;CANADIAN SYLLABICS WEST-CREE KWII;Lo;0;L;;;;;N;;;;; 147A;CANADIAN SYLLABICS KWO;Lo;0;L;;;;;N;;;;; 147B;CANADIAN SYLLABICS WEST-CREE KWO;Lo;0;L;;;;;N;;;;; 147C;CANADIAN SYLLABICS KWOO;Lo;0;L;;;;;N;;;;; 147D;CANADIAN SYLLABICS WEST-CREE KWOO;Lo;0;L;;;;;N;;;;; 147E;CANADIAN SYLLABICS KWA;Lo;0;L;;;;;N;;;;; 147F;CANADIAN SYLLABICS WEST-CREE KWA;Lo;0;L;;;;;N;;;;; 1480;CANADIAN SYLLABICS KWAA;Lo;0;L;;;;;N;;;;; 1481;CANADIAN SYLLABICS WEST-CREE KWAA;Lo;0;L;;;;;N;;;;; 1482;CANADIAN SYLLABICS NASKAPI KWAA;Lo;0;L;;;;;N;;;;; 1483;CANADIAN SYLLABICS K;Lo;0;L;;;;;N;;;;; 1484;CANADIAN SYLLABICS KW;Lo;0;L;;;;;N;;;;; 1485;CANADIAN SYLLABICS SOUTH-SLAVEY KEH;Lo;0;L;;;;;N;;;;; 1486;CANADIAN SYLLABICS SOUTH-SLAVEY KIH;Lo;0;L;;;;;N;;;;; 1487;CANADIAN SYLLABICS SOUTH-SLAVEY KOH;Lo;0;L;;;;;N;;;;; 1488;CANADIAN SYLLABICS SOUTH-SLAVEY KAH;Lo;0;L;;;;;N;;;;; 1489;CANADIAN SYLLABICS CE;Lo;0;L;;;;;N;;;;; 148A;CANADIAN SYLLABICS CAAI;Lo;0;L;;;;;N;;;;; 148B;CANADIAN SYLLABICS CI;Lo;0;L;;;;;N;;;;; 148C;CANADIAN SYLLABICS CII;Lo;0;L;;;;;N;;;;; 148D;CANADIAN SYLLABICS CO;Lo;0;L;;;;;N;;;;; 148E;CANADIAN SYLLABICS COO;Lo;0;L;;;;;N;;;;; 148F;CANADIAN SYLLABICS Y-CREE COO;Lo;0;L;;;;;N;;;;; 1490;CANADIAN SYLLABICS CA;Lo;0;L;;;;;N;;;;; 1491;CANADIAN SYLLABICS CAA;Lo;0;L;;;;;N;;;;; 1492;CANADIAN SYLLABICS CWE;Lo;0;L;;;;;N;;;;; 1493;CANADIAN SYLLABICS WEST-CREE CWE;Lo;0;L;;;;;N;;;;; 1494;CANADIAN SYLLABICS CWI;Lo;0;L;;;;;N;;;;; 1495;CANADIAN SYLLABICS WEST-CREE CWI;Lo;0;L;;;;;N;;;;; 1496;CANADIAN SYLLABICS CWII;Lo;0;L;;;;;N;;;;; 1497;CANADIAN SYLLABICS WEST-CREE CWII;Lo;0;L;;;;;N;;;;; 1498;CANADIAN SYLLABICS CWO;Lo;0;L;;;;;N;;;;; 1499;CANADIAN SYLLABICS WEST-CREE CWO;Lo;0;L;;;;;N;;;;; 149A;CANADIAN SYLLABICS CWOO;Lo;0;L;;;;;N;;;;; 149B;CANADIAN SYLLABICS WEST-CREE CWOO;Lo;0;L;;;;;N;;;;; 149C;CANADIAN SYLLABICS CWA;Lo;0;L;;;;;N;;;;; 149D;CANADIAN SYLLABICS WEST-CREE CWA;Lo;0;L;;;;;N;;;;; 149E;CANADIAN SYLLABICS CWAA;Lo;0;L;;;;;N;;;;; 149F;CANADIAN SYLLABICS WEST-CREE CWAA;Lo;0;L;;;;;N;;;;; 14A0;CANADIAN SYLLABICS NASKAPI CWAA;Lo;0;L;;;;;N;;;;; 14A1;CANADIAN SYLLABICS C;Lo;0;L;;;;;N;;;;; 14A2;CANADIAN SYLLABICS SAYISI TH;Lo;0;L;;;;;N;;;;; 14A3;CANADIAN SYLLABICS ME;Lo;0;L;;;;;N;;;;; 14A4;CANADIAN SYLLABICS MAAI;Lo;0;L;;;;;N;;;;; 14A5;CANADIAN SYLLABICS MI;Lo;0;L;;;;;N;;;;; 14A6;CANADIAN SYLLABICS MII;Lo;0;L;;;;;N;;;;; 14A7;CANADIAN SYLLABICS MO;Lo;0;L;;;;;N;;;;; 14A8;CANADIAN SYLLABICS MOO;Lo;0;L;;;;;N;;;;; 14A9;CANADIAN SYLLABICS Y-CREE MOO;Lo;0;L;;;;;N;;;;; 14AA;CANADIAN SYLLABICS MA;Lo;0;L;;;;;N;;;;; 14AB;CANADIAN SYLLABICS MAA;Lo;0;L;;;;;N;;;;; 14AC;CANADIAN SYLLABICS MWE;Lo;0;L;;;;;N;;;;; 14AD;CANADIAN SYLLABICS WEST-CREE MWE;Lo;0;L;;;;;N;;;;; 14AE;CANADIAN SYLLABICS MWI;Lo;0;L;;;;;N;;;;; 14AF;CANADIAN SYLLABICS WEST-CREE MWI;Lo;0;L;;;;;N;;;;; 14B0;CANADIAN SYLLABICS MWII;Lo;0;L;;;;;N;;;;; 14B1;CANADIAN SYLLABICS WEST-CREE MWII;Lo;0;L;;;;;N;;;;; 14B2;CANADIAN SYLLABICS MWO;Lo;0;L;;;;;N;;;;; 14B3;CANADIAN SYLLABICS WEST-CREE MWO;Lo;0;L;;;;;N;;;;; 14B4;CANADIAN SYLLABICS MWOO;Lo;0;L;;;;;N;;;;; 14B5;CANADIAN SYLLABICS WEST-CREE MWOO;Lo;0;L;;;;;N;;;;; 14B6;CANADIAN SYLLABICS MWA;Lo;0;L;;;;;N;;;;; 14B7;CANADIAN SYLLABICS WEST-CREE MWA;Lo;0;L;;;;;N;;;;; 14B8;CANADIAN SYLLABICS MWAA;Lo;0;L;;;;;N;;;;; 14B9;CANADIAN SYLLABICS WEST-CREE MWAA;Lo;0;L;;;;;N;;;;; 14BA;CANADIAN SYLLABICS NASKAPI MWAA;Lo;0;L;;;;;N;;;;; 14BB;CANADIAN SYLLABICS M;Lo;0;L;;;;;N;;;;; 14BC;CANADIAN SYLLABICS WEST-CREE M;Lo;0;L;;;;;N;;;;; 14BD;CANADIAN SYLLABICS MH;Lo;0;L;;;;;N;;;;; 14BE;CANADIAN SYLLABICS ATHAPASCAN M;Lo;0;L;;;;;N;;;;; 14BF;CANADIAN SYLLABICS SAYISI M;Lo;0;L;;;;;N;;;;; 14C0;CANADIAN SYLLABICS NE;Lo;0;L;;;;;N;;;;; 14C1;CANADIAN SYLLABICS NAAI;Lo;0;L;;;;;N;;;;; 14C2;CANADIAN SYLLABICS NI;Lo;0;L;;;;;N;;;;; 14C3;CANADIAN SYLLABICS NII;Lo;0;L;;;;;N;;;;; 14C4;CANADIAN SYLLABICS NO;Lo;0;L;;;;;N;;;;; 14C5;CANADIAN SYLLABICS NOO;Lo;0;L;;;;;N;;;;; 14C6;CANADIAN SYLLABICS Y-CREE NOO;Lo;0;L;;;;;N;;;;; 14C7;CANADIAN SYLLABICS NA;Lo;0;L;;;;;N;;;;; 14C8;CANADIAN SYLLABICS NAA;Lo;0;L;;;;;N;;;;; 14C9;CANADIAN SYLLABICS NWE;Lo;0;L;;;;;N;;;;; 14CA;CANADIAN SYLLABICS WEST-CREE NWE;Lo;0;L;;;;;N;;;;; 14CB;CANADIAN SYLLABICS NWA;Lo;0;L;;;;;N;;;;; 14CC;CANADIAN SYLLABICS WEST-CREE NWA;Lo;0;L;;;;;N;;;;; 14CD;CANADIAN SYLLABICS NWAA;Lo;0;L;;;;;N;;;;; 14CE;CANADIAN SYLLABICS WEST-CREE NWAA;Lo;0;L;;;;;N;;;;; 14CF;CANADIAN SYLLABICS NASKAPI NWAA;Lo;0;L;;;;;N;;;;; 14D0;CANADIAN SYLLABICS N;Lo;0;L;;;;;N;;;;; 14D1;CANADIAN SYLLABICS CARRIER NG;Lo;0;L;;;;;N;;;;; 14D2;CANADIAN SYLLABICS NH;Lo;0;L;;;;;N;;;;; 14D3;CANADIAN SYLLABICS LE;Lo;0;L;;;;;N;;;;; 14D4;CANADIAN SYLLABICS LAAI;Lo;0;L;;;;;N;;;;; 14D5;CANADIAN SYLLABICS LI;Lo;0;L;;;;;N;;;;; 14D6;CANADIAN SYLLABICS LII;Lo;0;L;;;;;N;;;;; 14D7;CANADIAN SYLLABICS LO;Lo;0;L;;;;;N;;;;; 14D8;CANADIAN SYLLABICS LOO;Lo;0;L;;;;;N;;;;; 14D9;CANADIAN SYLLABICS Y-CREE LOO;Lo;0;L;;;;;N;;;;; 14DA;CANADIAN SYLLABICS LA;Lo;0;L;;;;;N;;;;; 14DB;CANADIAN SYLLABICS LAA;Lo;0;L;;;;;N;;;;; 14DC;CANADIAN SYLLABICS LWE;Lo;0;L;;;;;N;;;;; 14DD;CANADIAN SYLLABICS WEST-CREE LWE;Lo;0;L;;;;;N;;;;; 14DE;CANADIAN SYLLABICS LWI;Lo;0;L;;;;;N;;;;; 14DF;CANADIAN SYLLABICS WEST-CREE LWI;Lo;0;L;;;;;N;;;;; 14E0;CANADIAN SYLLABICS LWII;Lo;0;L;;;;;N;;;;; 14E1;CANADIAN SYLLABICS WEST-CREE LWII;Lo;0;L;;;;;N;;;;; 14E2;CANADIAN SYLLABICS LWO;Lo;0;L;;;;;N;;;;; 14E3;CANADIAN SYLLABICS WEST-CREE LWO;Lo;0;L;;;;;N;;;;; 14E4;CANADIAN SYLLABICS LWOO;Lo;0;L;;;;;N;;;;; 14E5;CANADIAN SYLLABICS WEST-CREE LWOO;Lo;0;L;;;;;N;;;;; 14E6;CANADIAN SYLLABICS LWA;Lo;0;L;;;;;N;;;;; 14E7;CANADIAN SYLLABICS WEST-CREE LWA;Lo;0;L;;;;;N;;;;; 14E8;CANADIAN SYLLABICS LWAA;Lo;0;L;;;;;N;;;;; 14E9;CANADIAN SYLLABICS WEST-CREE LWAA;Lo;0;L;;;;;N;;;;; 14EA;CANADIAN SYLLABICS L;Lo;0;L;;;;;N;;;;; 14EB;CANADIAN SYLLABICS WEST-CREE L;Lo;0;L;;;;;N;;;;; 14EC;CANADIAN SYLLABICS MEDIAL L;Lo;0;L;;;;;N;;;;; 14ED;CANADIAN SYLLABICS SE;Lo;0;L;;;;;N;;;;; 14EE;CANADIAN SYLLABICS SAAI;Lo;0;L;;;;;N;;;;; 14EF;CANADIAN SYLLABICS SI;Lo;0;L;;;;;N;;;;; 14F0;CANADIAN SYLLABICS SII;Lo;0;L;;;;;N;;;;; 14F1;CANADIAN SYLLABICS SO;Lo;0;L;;;;;N;;;;; 14F2;CANADIAN SYLLABICS SOO;Lo;0;L;;;;;N;;;;; 14F3;CANADIAN SYLLABICS Y-CREE SOO;Lo;0;L;;;;;N;;;;; 14F4;CANADIAN SYLLABICS SA;Lo;0;L;;;;;N;;;;; 14F5;CANADIAN SYLLABICS SAA;Lo;0;L;;;;;N;;;;; 14F6;CANADIAN SYLLABICS SWE;Lo;0;L;;;;;N;;;;; 14F7;CANADIAN SYLLABICS WEST-CREE SWE;Lo;0;L;;;;;N;;;;; 14F8;CANADIAN SYLLABICS SWI;Lo;0;L;;;;;N;;;;; 14F9;CANADIAN SYLLABICS WEST-CREE SWI;Lo;0;L;;;;;N;;;;; 14FA;CANADIAN SYLLABICS SWII;Lo;0;L;;;;;N;;;;; 14FB;CANADIAN SYLLABICS WEST-CREE SWII;Lo;0;L;;;;;N;;;;; 14FC;CANADIAN SYLLABICS SWO;Lo;0;L;;;;;N;;;;; 14FD;CANADIAN SYLLABICS WEST-CREE SWO;Lo;0;L;;;;;N;;;;; 14FE;CANADIAN SYLLABICS SWOO;Lo;0;L;;;;;N;;;;; 14FF;CANADIAN SYLLABICS WEST-CREE SWOO;Lo;0;L;;;;;N;;;;; 1500;CANADIAN SYLLABICS SWA;Lo;0;L;;;;;N;;;;; 1501;CANADIAN SYLLABICS WEST-CREE SWA;Lo;0;L;;;;;N;;;;; 1502;CANADIAN SYLLABICS SWAA;Lo;0;L;;;;;N;;;;; 1503;CANADIAN SYLLABICS WEST-CREE SWAA;Lo;0;L;;;;;N;;;;; 1504;CANADIAN SYLLABICS NASKAPI SWAA;Lo;0;L;;;;;N;;;;; 1505;CANADIAN SYLLABICS S;Lo;0;L;;;;;N;;;;; 1506;CANADIAN SYLLABICS ATHAPASCAN S;Lo;0;L;;;;;N;;;;; 1507;CANADIAN SYLLABICS SW;Lo;0;L;;;;;N;;;;; 1508;CANADIAN SYLLABICS BLACKFOOT S;Lo;0;L;;;;;N;;;;; 1509;CANADIAN SYLLABICS MOOSE-CREE SK;Lo;0;L;;;;;N;;;;; 150A;CANADIAN SYLLABICS NASKAPI SKW;Lo;0;L;;;;;N;;;;; 150B;CANADIAN SYLLABICS NASKAPI S-W;Lo;0;L;;;;;N;;;;; 150C;CANADIAN SYLLABICS NASKAPI SPWA;Lo;0;L;;;;;N;;;;; 150D;CANADIAN SYLLABICS NASKAPI STWA;Lo;0;L;;;;;N;;;;; 150E;CANADIAN SYLLABICS NASKAPI SKWA;Lo;0;L;;;;;N;;;;; 150F;CANADIAN SYLLABICS NASKAPI SCWA;Lo;0;L;;;;;N;;;;; 1510;CANADIAN SYLLABICS SHE;Lo;0;L;;;;;N;;;;; 1511;CANADIAN SYLLABICS SHI;Lo;0;L;;;;;N;;;;; 1512;CANADIAN SYLLABICS SHII;Lo;0;L;;;;;N;;;;; 1513;CANADIAN SYLLABICS SHO;Lo;0;L;;;;;N;;;;; 1514;CANADIAN SYLLABICS SHOO;Lo;0;L;;;;;N;;;;; 1515;CANADIAN SYLLABICS SHA;Lo;0;L;;;;;N;;;;; 1516;CANADIAN SYLLABICS SHAA;Lo;0;L;;;;;N;;;;; 1517;CANADIAN SYLLABICS SHWE;Lo;0;L;;;;;N;;;;; 1518;CANADIAN SYLLABICS WEST-CREE SHWE;Lo;0;L;;;;;N;;;;; 1519;CANADIAN SYLLABICS SHWI;Lo;0;L;;;;;N;;;;; 151A;CANADIAN SYLLABICS WEST-CREE SHWI;Lo;0;L;;;;;N;;;;; 151B;CANADIAN SYLLABICS SHWII;Lo;0;L;;;;;N;;;;; 151C;CANADIAN SYLLABICS WEST-CREE SHWII;Lo;0;L;;;;;N;;;;; 151D;CANADIAN SYLLABICS SHWO;Lo;0;L;;;;;N;;;;; 151E;CANADIAN SYLLABICS WEST-CREE SHWO;Lo;0;L;;;;;N;;;;; 151F;CANADIAN SYLLABICS SHWOO;Lo;0;L;;;;;N;;;;; 1520;CANADIAN SYLLABICS WEST-CREE SHWOO;Lo;0;L;;;;;N;;;;; 1521;CANADIAN SYLLABICS SHWA;Lo;0;L;;;;;N;;;;; 1522;CANADIAN SYLLABICS WEST-CREE SHWA;Lo;0;L;;;;;N;;;;; 1523;CANADIAN SYLLABICS SHWAA;Lo;0;L;;;;;N;;;;; 1524;CANADIAN SYLLABICS WEST-CREE SHWAA;Lo;0;L;;;;;N;;;;; 1525;CANADIAN SYLLABICS SH;Lo;0;L;;;;;N;;;;; 1526;CANADIAN SYLLABICS YE;Lo;0;L;;;;;N;;;;; 1527;CANADIAN SYLLABICS YAAI;Lo;0;L;;;;;N;;;;; 1528;CANADIAN SYLLABICS YI;Lo;0;L;;;;;N;;;;; 1529;CANADIAN SYLLABICS YII;Lo;0;L;;;;;N;;;;; 152A;CANADIAN SYLLABICS YO;Lo;0;L;;;;;N;;;;; 152B;CANADIAN SYLLABICS YOO;Lo;0;L;;;;;N;;;;; 152C;CANADIAN SYLLABICS Y-CREE YOO;Lo;0;L;;;;;N;;;;; 152D;CANADIAN SYLLABICS YA;Lo;0;L;;;;;N;;;;; 152E;CANADIAN SYLLABICS YAA;Lo;0;L;;;;;N;;;;; 152F;CANADIAN SYLLABICS YWE;Lo;0;L;;;;;N;;;;; 1530;CANADIAN SYLLABICS WEST-CREE YWE;Lo;0;L;;;;;N;;;;; 1531;CANADIAN SYLLABICS YWI;Lo;0;L;;;;;N;;;;; 1532;CANADIAN SYLLABICS WEST-CREE YWI;Lo;0;L;;;;;N;;;;; 1533;CANADIAN SYLLABICS YWII;Lo;0;L;;;;;N;;;;; 1534;CANADIAN SYLLABICS WEST-CREE YWII;Lo;0;L;;;;;N;;;;; 1535;CANADIAN SYLLABICS YWO;Lo;0;L;;;;;N;;;;; 1536;CANADIAN SYLLABICS WEST-CREE YWO;Lo;0;L;;;;;N;;;;; 1537;CANADIAN SYLLABICS YWOO;Lo;0;L;;;;;N;;;;; 1538;CANADIAN SYLLABICS WEST-CREE YWOO;Lo;0;L;;;;;N;;;;; 1539;CANADIAN SYLLABICS YWA;Lo;0;L;;;;;N;;;;; 153A;CANADIAN SYLLABICS WEST-CREE YWA;Lo;0;L;;;;;N;;;;; 153B;CANADIAN SYLLABICS YWAA;Lo;0;L;;;;;N;;;;; 153C;CANADIAN SYLLABICS WEST-CREE YWAA;Lo;0;L;;;;;N;;;;; 153D;CANADIAN SYLLABICS NASKAPI YWAA;Lo;0;L;;;;;N;;;;; 153E;CANADIAN SYLLABICS Y;Lo;0;L;;;;;N;;;;; 153F;CANADIAN SYLLABICS BIBLE-CREE Y;Lo;0;L;;;;;N;;;;; 1540;CANADIAN SYLLABICS WEST-CREE Y;Lo;0;L;;;;;N;;;;; 1541;CANADIAN SYLLABICS SAYISI YI;Lo;0;L;;;;;N;;;;; 1542;CANADIAN SYLLABICS RE;Lo;0;L;;;;;N;;;;; 1543;CANADIAN SYLLABICS R-CREE RE;Lo;0;L;;;;;N;;;;; 1544;CANADIAN SYLLABICS WEST-CREE LE;Lo;0;L;;;;;N;;;;; 1545;CANADIAN SYLLABICS RAAI;Lo;0;L;;;;;N;;;;; 1546;CANADIAN SYLLABICS RI;Lo;0;L;;;;;N;;;;; 1547;CANADIAN SYLLABICS RII;Lo;0;L;;;;;N;;;;; 1548;CANADIAN SYLLABICS RO;Lo;0;L;;;;;N;;;;; 1549;CANADIAN SYLLABICS ROO;Lo;0;L;;;;;N;;;;; 154A;CANADIAN SYLLABICS WEST-CREE LO;Lo;0;L;;;;;N;;;;; 154B;CANADIAN SYLLABICS RA;Lo;0;L;;;;;N;;;;; 154C;CANADIAN SYLLABICS RAA;Lo;0;L;;;;;N;;;;; 154D;CANADIAN SYLLABICS WEST-CREE LA;Lo;0;L;;;;;N;;;;; 154E;CANADIAN SYLLABICS RWAA;Lo;0;L;;;;;N;;;;; 154F;CANADIAN SYLLABICS WEST-CREE RWAA;Lo;0;L;;;;;N;;;;; 1550;CANADIAN SYLLABICS R;Lo;0;L;;;;;N;;;;; 1551;CANADIAN SYLLABICS WEST-CREE R;Lo;0;L;;;;;N;;;;; 1552;CANADIAN SYLLABICS MEDIAL R;Lo;0;L;;;;;N;;;;; 1553;CANADIAN SYLLABICS FE;Lo;0;L;;;;;N;;;;; 1554;CANADIAN SYLLABICS FAAI;Lo;0;L;;;;;N;;;;; 1555;CANADIAN SYLLABICS FI;Lo;0;L;;;;;N;;;;; 1556;CANADIAN SYLLABICS FII;Lo;0;L;;;;;N;;;;; 1557;CANADIAN SYLLABICS FO;Lo;0;L;;;;;N;;;;; 1558;CANADIAN SYLLABICS FOO;Lo;0;L;;;;;N;;;;; 1559;CANADIAN SYLLABICS FA;Lo;0;L;;;;;N;;;;; 155A;CANADIAN SYLLABICS FAA;Lo;0;L;;;;;N;;;;; 155B;CANADIAN SYLLABICS FWAA;Lo;0;L;;;;;N;;;;; 155C;CANADIAN SYLLABICS WEST-CREE FWAA;Lo;0;L;;;;;N;;;;; 155D;CANADIAN SYLLABICS F;Lo;0;L;;;;;N;;;;; 155E;CANADIAN SYLLABICS THE;Lo;0;L;;;;;N;;;;; 155F;CANADIAN SYLLABICS N-CREE THE;Lo;0;L;;;;;N;;;;; 1560;CANADIAN SYLLABICS THI;Lo;0;L;;;;;N;;;;; 1561;CANADIAN SYLLABICS N-CREE THI;Lo;0;L;;;;;N;;;;; 1562;CANADIAN SYLLABICS THII;Lo;0;L;;;;;N;;;;; 1563;CANADIAN SYLLABICS N-CREE THII;Lo;0;L;;;;;N;;;;; 1564;CANADIAN SYLLABICS THO;Lo;0;L;;;;;N;;;;; 1565;CANADIAN SYLLABICS THOO;Lo;0;L;;;;;N;;;;; 1566;CANADIAN SYLLABICS THA;Lo;0;L;;;;;N;;;;; 1567;CANADIAN SYLLABICS THAA;Lo;0;L;;;;;N;;;;; 1568;CANADIAN SYLLABICS THWAA;Lo;0;L;;;;;N;;;;; 1569;CANADIAN SYLLABICS WEST-CREE THWAA;Lo;0;L;;;;;N;;;;; 156A;CANADIAN SYLLABICS TH;Lo;0;L;;;;;N;;;;; 156B;CANADIAN SYLLABICS TTHE;Lo;0;L;;;;;N;;;;; 156C;CANADIAN SYLLABICS TTHI;Lo;0;L;;;;;N;;;;; 156D;CANADIAN SYLLABICS TTHO;Lo;0;L;;;;;N;;;;; 156E;CANADIAN SYLLABICS TTHA;Lo;0;L;;;;;N;;;;; 156F;CANADIAN SYLLABICS TTH;Lo;0;L;;;;;N;;;;; 1570;CANADIAN SYLLABICS TYE;Lo;0;L;;;;;N;;;;; 1571;CANADIAN SYLLABICS TYI;Lo;0;L;;;;;N;;;;; 1572;CANADIAN SYLLABICS TYO;Lo;0;L;;;;;N;;;;; 1573;CANADIAN SYLLABICS TYA;Lo;0;L;;;;;N;;;;; 1574;CANADIAN SYLLABICS NUNAVIK HE;Lo;0;L;;;;;N;;;;; 1575;CANADIAN SYLLABICS NUNAVIK HI;Lo;0;L;;;;;N;;;;; 1576;CANADIAN SYLLABICS NUNAVIK HII;Lo;0;L;;;;;N;;;;; 1577;CANADIAN SYLLABICS NUNAVIK HO;Lo;0;L;;;;;N;;;;; 1578;CANADIAN SYLLABICS NUNAVIK HOO;Lo;0;L;;;;;N;;;;; 1579;CANADIAN SYLLABICS NUNAVIK HA;Lo;0;L;;;;;N;;;;; 157A;CANADIAN SYLLABICS NUNAVIK HAA;Lo;0;L;;;;;N;;;;; 157B;CANADIAN SYLLABICS NUNAVIK H;Lo;0;L;;;;;N;;;;; 157C;CANADIAN SYLLABICS NUNAVUT H;Lo;0;L;;;;;N;;;;; 157D;CANADIAN SYLLABICS HK;Lo;0;L;;;;;N;;;;; 157E;CANADIAN SYLLABICS QAAI;Lo;0;L;;;;;N;;;;; 157F;CANADIAN SYLLABICS QI;Lo;0;L;;;;;N;;;;; 1580;CANADIAN SYLLABICS QII;Lo;0;L;;;;;N;;;;; 1581;CANADIAN SYLLABICS QO;Lo;0;L;;;;;N;;;;; 1582;CANADIAN SYLLABICS QOO;Lo;0;L;;;;;N;;;;; 1583;CANADIAN SYLLABICS QA;Lo;0;L;;;;;N;;;;; 1584;CANADIAN SYLLABICS QAA;Lo;0;L;;;;;N;;;;; 1585;CANADIAN SYLLABICS Q;Lo;0;L;;;;;N;;;;; 1586;CANADIAN SYLLABICS TLHE;Lo;0;L;;;;;N;;;;; 1587;CANADIAN SYLLABICS TLHI;Lo;0;L;;;;;N;;;;; 1588;CANADIAN SYLLABICS TLHO;Lo;0;L;;;;;N;;;;; 1589;CANADIAN SYLLABICS TLHA;Lo;0;L;;;;;N;;;;; 158A;CANADIAN SYLLABICS WEST-CREE RE;Lo;0;L;;;;;N;;;;; 158B;CANADIAN SYLLABICS WEST-CREE RI;Lo;0;L;;;;;N;;;;; 158C;CANADIAN SYLLABICS WEST-CREE RO;Lo;0;L;;;;;N;;;;; 158D;CANADIAN SYLLABICS WEST-CREE RA;Lo;0;L;;;;;N;;;;; 158E;CANADIAN SYLLABICS NGAAI;Lo;0;L;;;;;N;;;;; 158F;CANADIAN SYLLABICS NGI;Lo;0;L;;;;;N;;;;; 1590;CANADIAN SYLLABICS NGII;Lo;0;L;;;;;N;;;;; 1591;CANADIAN SYLLABICS NGO;Lo;0;L;;;;;N;;;;; 1592;CANADIAN SYLLABICS NGOO;Lo;0;L;;;;;N;;;;; 1593;CANADIAN SYLLABICS NGA;Lo;0;L;;;;;N;;;;; 1594;CANADIAN SYLLABICS NGAA;Lo;0;L;;;;;N;;;;; 1595;CANADIAN SYLLABICS NG;Lo;0;L;;;;;N;;;;; 1596;CANADIAN SYLLABICS NNG;Lo;0;L;;;;;N;;;;; 1597;CANADIAN SYLLABICS SAYISI SHE;Lo;0;L;;;;;N;;;;; 1598;CANADIAN SYLLABICS SAYISI SHI;Lo;0;L;;;;;N;;;;; 1599;CANADIAN SYLLABICS SAYISI SHO;Lo;0;L;;;;;N;;;;; 159A;CANADIAN SYLLABICS SAYISI SHA;Lo;0;L;;;;;N;;;;; 159B;CANADIAN SYLLABICS WOODS-CREE THE;Lo;0;L;;;;;N;;;;; 159C;CANADIAN SYLLABICS WOODS-CREE THI;Lo;0;L;;;;;N;;;;; 159D;CANADIAN SYLLABICS WOODS-CREE THO;Lo;0;L;;;;;N;;;;; 159E;CANADIAN SYLLABICS WOODS-CREE THA;Lo;0;L;;;;;N;;;;; 159F;CANADIAN SYLLABICS WOODS-CREE TH;Lo;0;L;;;;;N;;;;; 15A0;CANADIAN SYLLABICS LHI;Lo;0;L;;;;;N;;;;; 15A1;CANADIAN SYLLABICS LHII;Lo;0;L;;;;;N;;;;; 15A2;CANADIAN SYLLABICS LHO;Lo;0;L;;;;;N;;;;; 15A3;CANADIAN SYLLABICS LHOO;Lo;0;L;;;;;N;;;;; 15A4;CANADIAN SYLLABICS LHA;Lo;0;L;;;;;N;;;;; 15A5;CANADIAN SYLLABICS LHAA;Lo;0;L;;;;;N;;;;; 15A6;CANADIAN SYLLABICS LH;Lo;0;L;;;;;N;;;;; 15A7;CANADIAN SYLLABICS TH-CREE THE;Lo;0;L;;;;;N;;;;; 15A8;CANADIAN SYLLABICS TH-CREE THI;Lo;0;L;;;;;N;;;;; 15A9;CANADIAN SYLLABICS TH-CREE THII;Lo;0;L;;;;;N;;;;; 15AA;CANADIAN SYLLABICS TH-CREE THO;Lo;0;L;;;;;N;;;;; 15AB;CANADIAN SYLLABICS TH-CREE THOO;Lo;0;L;;;;;N;;;;; 15AC;CANADIAN SYLLABICS TH-CREE THA;Lo;0;L;;;;;N;;;;; 15AD;CANADIAN SYLLABICS TH-CREE THAA;Lo;0;L;;;;;N;;;;; 15AE;CANADIAN SYLLABICS TH-CREE TH;Lo;0;L;;;;;N;;;;; 15AF;CANADIAN SYLLABICS AIVILIK B;Lo;0;L;;;;;N;;;;; 15B0;CANADIAN SYLLABICS BLACKFOOT E;Lo;0;L;;;;;N;;;;; 15B1;CANADIAN SYLLABICS BLACKFOOT I;Lo;0;L;;;;;N;;;;; 15B2;CANADIAN SYLLABICS BLACKFOOT O;Lo;0;L;;;;;N;;;;; 15B3;CANADIAN SYLLABICS BLACKFOOT A;Lo;0;L;;;;;N;;;;; 15B4;CANADIAN SYLLABICS BLACKFOOT WE;Lo;0;L;;;;;N;;;;; 15B5;CANADIAN SYLLABICS BLACKFOOT WI;Lo;0;L;;;;;N;;;;; 15B6;CANADIAN SYLLABICS BLACKFOOT WO;Lo;0;L;;;;;N;;;;; 15B7;CANADIAN SYLLABICS BLACKFOOT WA;Lo;0;L;;;;;N;;;;; 15B8;CANADIAN SYLLABICS BLACKFOOT NE;Lo;0;L;;;;;N;;;;; 15B9;CANADIAN SYLLABICS BLACKFOOT NI;Lo;0;L;;;;;N;;;;; 15BA;CANADIAN SYLLABICS BLACKFOOT NO;Lo;0;L;;;;;N;;;;; 15BB;CANADIAN SYLLABICS BLACKFOOT NA;Lo;0;L;;;;;N;;;;; 15BC;CANADIAN SYLLABICS BLACKFOOT KE;Lo;0;L;;;;;N;;;;; 15BD;CANADIAN SYLLABICS BLACKFOOT KI;Lo;0;L;;;;;N;;;;; 15BE;CANADIAN SYLLABICS BLACKFOOT KO;Lo;0;L;;;;;N;;;;; 15BF;CANADIAN SYLLABICS BLACKFOOT KA;Lo;0;L;;;;;N;;;;; 15C0;CANADIAN SYLLABICS SAYISI HE;Lo;0;L;;;;;N;;;;; 15C1;CANADIAN SYLLABICS SAYISI HI;Lo;0;L;;;;;N;;;;; 15C2;CANADIAN SYLLABICS SAYISI HO;Lo;0;L;;;;;N;;;;; 15C3;CANADIAN SYLLABICS SAYISI HA;Lo;0;L;;;;;N;;;;; 15C4;CANADIAN SYLLABICS CARRIER GHU;Lo;0;L;;;;;N;;;;; 15C5;CANADIAN SYLLABICS CARRIER GHO;Lo;0;L;;;;;N;;;;; 15C6;CANADIAN SYLLABICS CARRIER GHE;Lo;0;L;;;;;N;;;;; 15C7;CANADIAN SYLLABICS CARRIER GHEE;Lo;0;L;;;;;N;;;;; 15C8;CANADIAN SYLLABICS CARRIER GHI;Lo;0;L;;;;;N;;;;; 15C9;CANADIAN SYLLABICS CARRIER GHA;Lo;0;L;;;;;N;;;;; 15CA;CANADIAN SYLLABICS CARRIER RU;Lo;0;L;;;;;N;;;;; 15CB;CANADIAN SYLLABICS CARRIER RO;Lo;0;L;;;;;N;;;;; 15CC;CANADIAN SYLLABICS CARRIER RE;Lo;0;L;;;;;N;;;;; 15CD;CANADIAN SYLLABICS CARRIER REE;Lo;0;L;;;;;N;;;;; 15CE;CANADIAN SYLLABICS CARRIER RI;Lo;0;L;;;;;N;;;;; 15CF;CANADIAN SYLLABICS CARRIER RA;Lo;0;L;;;;;N;;;;; 15D0;CANADIAN SYLLABICS CARRIER WU;Lo;0;L;;;;;N;;;;; 15D1;CANADIAN SYLLABICS CARRIER WO;Lo;0;L;;;;;N;;;;; 15D2;CANADIAN SYLLABICS CARRIER WE;Lo;0;L;;;;;N;;;;; 15D3;CANADIAN SYLLABICS CARRIER WEE;Lo;0;L;;;;;N;;;;; 15D4;CANADIAN SYLLABICS CARRIER WI;Lo;0;L;;;;;N;;;;; 15D5;CANADIAN SYLLABICS CARRIER WA;Lo;0;L;;;;;N;;;;; 15D6;CANADIAN SYLLABICS CARRIER HWU;Lo;0;L;;;;;N;;;;; 15D7;CANADIAN SYLLABICS CARRIER HWO;Lo;0;L;;;;;N;;;;; 15D8;CANADIAN SYLLABICS CARRIER HWE;Lo;0;L;;;;;N;;;;; 15D9;CANADIAN SYLLABICS CARRIER HWEE;Lo;0;L;;;;;N;;;;; 15DA;CANADIAN SYLLABICS CARRIER HWI;Lo;0;L;;;;;N;;;;; 15DB;CANADIAN SYLLABICS CARRIER HWA;Lo;0;L;;;;;N;;;;; 15DC;CANADIAN SYLLABICS CARRIER THU;Lo;0;L;;;;;N;;;;; 15DD;CANADIAN SYLLABICS CARRIER THO;Lo;0;L;;;;;N;;;;; 15DE;CANADIAN SYLLABICS CARRIER THE;Lo;0;L;;;;;N;;;;; 15DF;CANADIAN SYLLABICS CARRIER THEE;Lo;0;L;;;;;N;;;;; 15E0;CANADIAN SYLLABICS CARRIER THI;Lo;0;L;;;;;N;;;;; 15E1;CANADIAN SYLLABICS CARRIER THA;Lo;0;L;;;;;N;;;;; 15E2;CANADIAN SYLLABICS CARRIER TTU;Lo;0;L;;;;;N;;;;; 15E3;CANADIAN SYLLABICS CARRIER TTO;Lo;0;L;;;;;N;;;;; 15E4;CANADIAN SYLLABICS CARRIER TTE;Lo;0;L;;;;;N;;;;; 15E5;CANADIAN SYLLABICS CARRIER TTEE;Lo;0;L;;;;;N;;;;; 15E6;CANADIAN SYLLABICS CARRIER TTI;Lo;0;L;;;;;N;;;;; 15E7;CANADIAN SYLLABICS CARRIER TTA;Lo;0;L;;;;;N;;;;; 15E8;CANADIAN SYLLABICS CARRIER PU;Lo;0;L;;;;;N;;;;; 15E9;CANADIAN SYLLABICS CARRIER PO;Lo;0;L;;;;;N;;;;; 15EA;CANADIAN SYLLABICS CARRIER PE;Lo;0;L;;;;;N;;;;; 15EB;CANADIAN SYLLABICS CARRIER PEE;Lo;0;L;;;;;N;;;;; 15EC;CANADIAN SYLLABICS CARRIER PI;Lo;0;L;;;;;N;;;;; 15ED;CANADIAN SYLLABICS CARRIER PA;Lo;0;L;;;;;N;;;;; 15EE;CANADIAN SYLLABICS CARRIER P;Lo;0;L;;;;;N;;;;; 15EF;CANADIAN SYLLABICS CARRIER GU;Lo;0;L;;;;;N;;;;; 15F0;CANADIAN SYLLABICS CARRIER GO;Lo;0;L;;;;;N;;;;; 15F1;CANADIAN SYLLABICS CARRIER GE;Lo;0;L;;;;;N;;;;; 15F2;CANADIAN SYLLABICS CARRIER GEE;Lo;0;L;;;;;N;;;;; 15F3;CANADIAN SYLLABICS CARRIER GI;Lo;0;L;;;;;N;;;;; 15F4;CANADIAN SYLLABICS CARRIER GA;Lo;0;L;;;;;N;;;;; 15F5;CANADIAN SYLLABICS CARRIER KHU;Lo;0;L;;;;;N;;;;; 15F6;CANADIAN SYLLABICS CARRIER KHO;Lo;0;L;;;;;N;;;;; 15F7;CANADIAN SYLLABICS CARRIER KHE;Lo;0;L;;;;;N;;;;; 15F8;CANADIAN SYLLABICS CARRIER KHEE;Lo;0;L;;;;;N;;;;; 15F9;CANADIAN SYLLABICS CARRIER KHI;Lo;0;L;;;;;N;;;;; 15FA;CANADIAN SYLLABICS CARRIER KHA;Lo;0;L;;;;;N;;;;; 15FB;CANADIAN SYLLABICS CARRIER KKU;Lo;0;L;;;;;N;;;;; 15FC;CANADIAN SYLLABICS CARRIER KKO;Lo;0;L;;;;;N;;;;; 15FD;CANADIAN SYLLABICS CARRIER KKE;Lo;0;L;;;;;N;;;;; 15FE;CANADIAN SYLLABICS CARRIER KKEE;Lo;0;L;;;;;N;;;;; 15FF;CANADIAN SYLLABICS CARRIER KKI;Lo;0;L;;;;;N;;;;; 1600;CANADIAN SYLLABICS CARRIER KKA;Lo;0;L;;;;;N;;;;; 1601;CANADIAN SYLLABICS CARRIER KK;Lo;0;L;;;;;N;;;;; 1602;CANADIAN SYLLABICS CARRIER NU;Lo;0;L;;;;;N;;;;; 1603;CANADIAN SYLLABICS CARRIER NO;Lo;0;L;;;;;N;;;;; 1604;CANADIAN SYLLABICS CARRIER NE;Lo;0;L;;;;;N;;;;; 1605;CANADIAN SYLLABICS CARRIER NEE;Lo;0;L;;;;;N;;;;; 1606;CANADIAN SYLLABICS CARRIER NI;Lo;0;L;;;;;N;;;;; 1607;CANADIAN SYLLABICS CARRIER NA;Lo;0;L;;;;;N;;;;; 1608;CANADIAN SYLLABICS CARRIER MU;Lo;0;L;;;;;N;;;;; 1609;CANADIAN SYLLABICS CARRIER MO;Lo;0;L;;;;;N;;;;; 160A;CANADIAN SYLLABICS CARRIER ME;Lo;0;L;;;;;N;;;;; 160B;CANADIAN SYLLABICS CARRIER MEE;Lo;0;L;;;;;N;;;;; 160C;CANADIAN SYLLABICS CARRIER MI;Lo;0;L;;;;;N;;;;; 160D;CANADIAN SYLLABICS CARRIER MA;Lo;0;L;;;;;N;;;;; 160E;CANADIAN SYLLABICS CARRIER YU;Lo;0;L;;;;;N;;;;; 160F;CANADIAN SYLLABICS CARRIER YO;Lo;0;L;;;;;N;;;;; 1610;CANADIAN SYLLABICS CARRIER YE;Lo;0;L;;;;;N;;;;; 1611;CANADIAN SYLLABICS CARRIER YEE;Lo;0;L;;;;;N;;;;; 1612;CANADIAN SYLLABICS CARRIER YI;Lo;0;L;;;;;N;;;;; 1613;CANADIAN SYLLABICS CARRIER YA;Lo;0;L;;;;;N;;;;; 1614;CANADIAN SYLLABICS CARRIER JU;Lo;0;L;;;;;N;;;;; 1615;CANADIAN SYLLABICS SAYISI JU;Lo;0;L;;;;;N;;;;; 1616;CANADIAN SYLLABICS CARRIER JO;Lo;0;L;;;;;N;;;;; 1617;CANADIAN SYLLABICS CARRIER JE;Lo;0;L;;;;;N;;;;; 1618;CANADIAN SYLLABICS CARRIER JEE;Lo;0;L;;;;;N;;;;; 1619;CANADIAN SYLLABICS CARRIER JI;Lo;0;L;;;;;N;;;;; 161A;CANADIAN SYLLABICS SAYISI JI;Lo;0;L;;;;;N;;;;; 161B;CANADIAN SYLLABICS CARRIER JA;Lo;0;L;;;;;N;;;;; 161C;CANADIAN SYLLABICS CARRIER JJU;Lo;0;L;;;;;N;;;;; 161D;CANADIAN SYLLABICS CARRIER JJO;Lo;0;L;;;;;N;;;;; 161E;CANADIAN SYLLABICS CARRIER JJE;Lo;0;L;;;;;N;;;;; 161F;CANADIAN SYLLABICS CARRIER JJEE;Lo;0;L;;;;;N;;;;; 1620;CANADIAN SYLLABICS CARRIER JJI;Lo;0;L;;;;;N;;;;; 1621;CANADIAN SYLLABICS CARRIER JJA;Lo;0;L;;;;;N;;;;; 1622;CANADIAN SYLLABICS CARRIER LU;Lo;0;L;;;;;N;;;;; 1623;CANADIAN SYLLABICS CARRIER LO;Lo;0;L;;;;;N;;;;; 1624;CANADIAN SYLLABICS CARRIER LE;Lo;0;L;;;;;N;;;;; 1625;CANADIAN SYLLABICS CARRIER LEE;Lo;0;L;;;;;N;;;;; 1626;CANADIAN SYLLABICS CARRIER LI;Lo;0;L;;;;;N;;;;; 1627;CANADIAN SYLLABICS CARRIER LA;Lo;0;L;;;;;N;;;;; 1628;CANADIAN SYLLABICS CARRIER DLU;Lo;0;L;;;;;N;;;;; 1629;CANADIAN SYLLABICS CARRIER DLO;Lo;0;L;;;;;N;;;;; 162A;CANADIAN SYLLABICS CARRIER DLE;Lo;0;L;;;;;N;;;;; 162B;CANADIAN SYLLABICS CARRIER DLEE;Lo;0;L;;;;;N;;;;; 162C;CANADIAN SYLLABICS CARRIER DLI;Lo;0;L;;;;;N;;;;; 162D;CANADIAN SYLLABICS CARRIER DLA;Lo;0;L;;;;;N;;;;; 162E;CANADIAN SYLLABICS CARRIER LHU;Lo;0;L;;;;;N;;;;; 162F;CANADIAN SYLLABICS CARRIER LHO;Lo;0;L;;;;;N;;;;; 1630;CANADIAN SYLLABICS CARRIER LHE;Lo;0;L;;;;;N;;;;; 1631;CANADIAN SYLLABICS CARRIER LHEE;Lo;0;L;;;;;N;;;;; 1632;CANADIAN SYLLABICS CARRIER LHI;Lo;0;L;;;;;N;;;;; 1633;CANADIAN SYLLABICS CARRIER LHA;Lo;0;L;;;;;N;;;;; 1634;CANADIAN SYLLABICS CARRIER TLHU;Lo;0;L;;;;;N;;;;; 1635;CANADIAN SYLLABICS CARRIER TLHO;Lo;0;L;;;;;N;;;;; 1636;CANADIAN SYLLABICS CARRIER TLHE;Lo;0;L;;;;;N;;;;; 1637;CANADIAN SYLLABICS CARRIER TLHEE;Lo;0;L;;;;;N;;;;; 1638;CANADIAN SYLLABICS CARRIER TLHI;Lo;0;L;;;;;N;;;;; 1639;CANADIAN SYLLABICS CARRIER TLHA;Lo;0;L;;;;;N;;;;; 163A;CANADIAN SYLLABICS CARRIER TLU;Lo;0;L;;;;;N;;;;; 163B;CANADIAN SYLLABICS CARRIER TLO;Lo;0;L;;;;;N;;;;; 163C;CANADIAN SYLLABICS CARRIER TLE;Lo;0;L;;;;;N;;;;; 163D;CANADIAN SYLLABICS CARRIER TLEE;Lo;0;L;;;;;N;;;;; 163E;CANADIAN SYLLABICS CARRIER TLI;Lo;0;L;;;;;N;;;;; 163F;CANADIAN SYLLABICS CARRIER TLA;Lo;0;L;;;;;N;;;;; 1640;CANADIAN SYLLABICS CARRIER ZU;Lo;0;L;;;;;N;;;;; 1641;CANADIAN SYLLABICS CARRIER ZO;Lo;0;L;;;;;N;;;;; 1642;CANADIAN SYLLABICS CARRIER ZE;Lo;0;L;;;;;N;;;;; 1643;CANADIAN SYLLABICS CARRIER ZEE;Lo;0;L;;;;;N;;;;; 1644;CANADIAN SYLLABICS CARRIER ZI;Lo;0;L;;;;;N;;;;; 1645;CANADIAN SYLLABICS CARRIER ZA;Lo;0;L;;;;;N;;;;; 1646;CANADIAN SYLLABICS CARRIER Z;Lo;0;L;;;;;N;;;;; 1647;CANADIAN SYLLABICS CARRIER INITIAL Z;Lo;0;L;;;;;N;;;;; 1648;CANADIAN SYLLABICS CARRIER DZU;Lo;0;L;;;;;N;;;;; 1649;CANADIAN SYLLABICS CARRIER DZO;Lo;0;L;;;;;N;;;;; 164A;CANADIAN SYLLABICS CARRIER DZE;Lo;0;L;;;;;N;;;;; 164B;CANADIAN SYLLABICS CARRIER DZEE;Lo;0;L;;;;;N;;;;; 164C;CANADIAN SYLLABICS CARRIER DZI;Lo;0;L;;;;;N;;;;; 164D;CANADIAN SYLLABICS CARRIER DZA;Lo;0;L;;;;;N;;;;; 164E;CANADIAN SYLLABICS CARRIER SU;Lo;0;L;;;;;N;;;;; 164F;CANADIAN SYLLABICS CARRIER SO;Lo;0;L;;;;;N;;;;; 1650;CANADIAN SYLLABICS CARRIER SE;Lo;0;L;;;;;N;;;;; 1651;CANADIAN SYLLABICS CARRIER SEE;Lo;0;L;;;;;N;;;;; 1652;CANADIAN SYLLABICS CARRIER SI;Lo;0;L;;;;;N;;;;; 1653;CANADIAN SYLLABICS CARRIER SA;Lo;0;L;;;;;N;;;;; 1654;CANADIAN SYLLABICS CARRIER SHU;Lo;0;L;;;;;N;;;;; 1655;CANADIAN SYLLABICS CARRIER SHO;Lo;0;L;;;;;N;;;;; 1656;CANADIAN SYLLABICS CARRIER SHE;Lo;0;L;;;;;N;;;;; 1657;CANADIAN SYLLABICS CARRIER SHEE;Lo;0;L;;;;;N;;;;; 1658;CANADIAN SYLLABICS CARRIER SHI;Lo;0;L;;;;;N;;;;; 1659;CANADIAN SYLLABICS CARRIER SHA;Lo;0;L;;;;;N;;;;; 165A;CANADIAN SYLLABICS CARRIER SH;Lo;0;L;;;;;N;;;;; 165B;CANADIAN SYLLABICS CARRIER TSU;Lo;0;L;;;;;N;;;;; 165C;CANADIAN SYLLABICS CARRIER TSO;Lo;0;L;;;;;N;;;;; 165D;CANADIAN SYLLABICS CARRIER TSE;Lo;0;L;;;;;N;;;;; 165E;CANADIAN SYLLABICS CARRIER TSEE;Lo;0;L;;;;;N;;;;; 165F;CANADIAN SYLLABICS CARRIER TSI;Lo;0;L;;;;;N;;;;; 1660;CANADIAN SYLLABICS CARRIER TSA;Lo;0;L;;;;;N;;;;; 1661;CANADIAN SYLLABICS CARRIER CHU;Lo;0;L;;;;;N;;;;; 1662;CANADIAN SYLLABICS CARRIER CHO;Lo;0;L;;;;;N;;;;; 1663;CANADIAN SYLLABICS CARRIER CHE;Lo;0;L;;;;;N;;;;; 1664;CANADIAN SYLLABICS CARRIER CHEE;Lo;0;L;;;;;N;;;;; 1665;CANADIAN SYLLABICS CARRIER CHI;Lo;0;L;;;;;N;;;;; 1666;CANADIAN SYLLABICS CARRIER CHA;Lo;0;L;;;;;N;;;;; 1667;CANADIAN SYLLABICS CARRIER TTSU;Lo;0;L;;;;;N;;;;; 1668;CANADIAN SYLLABICS CARRIER TTSO;Lo;0;L;;;;;N;;;;; 1669;CANADIAN SYLLABICS CARRIER TTSE;Lo;0;L;;;;;N;;;;; 166A;CANADIAN SYLLABICS CARRIER TTSEE;Lo;0;L;;;;;N;;;;; 166B;CANADIAN SYLLABICS CARRIER TTSI;Lo;0;L;;;;;N;;;;; 166C;CANADIAN SYLLABICS CARRIER TTSA;Lo;0;L;;;;;N;;;;; 166D;CANADIAN SYLLABICS CHI SIGN;Po;0;L;;;;;N;;;;; 166E;CANADIAN SYLLABICS FULL STOP;Po;0;L;;;;;N;;;;; 166F;CANADIAN SYLLABICS QAI;Lo;0;L;;;;;N;;;;; 1670;CANADIAN SYLLABICS NGAI;Lo;0;L;;;;;N;;;;; 1671;CANADIAN SYLLABICS NNGI;Lo;0;L;;;;;N;;;;; 1672;CANADIAN SYLLABICS NNGII;Lo;0;L;;;;;N;;;;; 1673;CANADIAN SYLLABICS NNGO;Lo;0;L;;;;;N;;;;; 1674;CANADIAN SYLLABICS NNGOO;Lo;0;L;;;;;N;;;;; 1675;CANADIAN SYLLABICS NNGA;Lo;0;L;;;;;N;;;;; 1676;CANADIAN SYLLABICS NNGAA;Lo;0;L;;;;;N;;;;; 1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;; 1681;OGHAM LETTER BEITH;Lo;0;L;;;;;N;;;;; 1682;OGHAM LETTER LUIS;Lo;0;L;;;;;N;;;;; 1683;OGHAM LETTER FEARN;Lo;0;L;;;;;N;;;;; 1684;OGHAM LETTER SAIL;Lo;0;L;;;;;N;;;;; 1685;OGHAM LETTER NION;Lo;0;L;;;;;N;;;;; 1686;OGHAM LETTER UATH;Lo;0;L;;;;;N;;;;; 1687;OGHAM LETTER DAIR;Lo;0;L;;;;;N;;;;; 1688;OGHAM LETTER TINNE;Lo;0;L;;;;;N;;;;; 1689;OGHAM LETTER COLL;Lo;0;L;;;;;N;;;;; 168A;OGHAM LETTER CEIRT;Lo;0;L;;;;;N;;;;; 168B;OGHAM LETTER MUIN;Lo;0;L;;;;;N;;;;; 168C;OGHAM LETTER GORT;Lo;0;L;;;;;N;;;;; 168D;OGHAM LETTER NGEADAL;Lo;0;L;;;;;N;;;;; 168E;OGHAM LETTER STRAIF;Lo;0;L;;;;;N;;;;; 168F;OGHAM LETTER RUIS;Lo;0;L;;;;;N;;;;; 1690;OGHAM LETTER AILM;Lo;0;L;;;;;N;;;;; 1691;OGHAM LETTER ONN;Lo;0;L;;;;;N;;;;; 1692;OGHAM LETTER UR;Lo;0;L;;;;;N;;;;; 1693;OGHAM LETTER EADHADH;Lo;0;L;;;;;N;;;;; 1694;OGHAM LETTER IODHADH;Lo;0;L;;;;;N;;;;; 1695;OGHAM LETTER EABHADH;Lo;0;L;;;;;N;;;;; 1696;OGHAM LETTER OR;Lo;0;L;;;;;N;;;;; 1697;OGHAM LETTER UILLEANN;Lo;0;L;;;;;N;;;;; 1698;OGHAM LETTER IFIN;Lo;0;L;;;;;N;;;;; 1699;OGHAM LETTER EAMHANCHOLL;Lo;0;L;;;;;N;;;;; 169A;OGHAM LETTER PEITH;Lo;0;L;;;;;N;;;;; 169B;OGHAM FEATHER MARK;Ps;0;ON;;;;;N;;;;; 169C;OGHAM REVERSED FEATHER MARK;Pe;0;ON;;;;;N;;;;; 16A0;RUNIC LETTER FEHU FEOH FE F;Lo;0;L;;;;;N;;;;; 16A1;RUNIC LETTER V;Lo;0;L;;;;;N;;;;; 16A2;RUNIC LETTER URUZ UR U;Lo;0;L;;;;;N;;;;; 16A3;RUNIC LETTER YR;Lo;0;L;;;;;N;;;;; 16A4;RUNIC LETTER Y;Lo;0;L;;;;;N;;;;; 16A5;RUNIC LETTER W;Lo;0;L;;;;;N;;;;; 16A6;RUNIC LETTER THURISAZ THURS THORN;Lo;0;L;;;;;N;;;;; 16A7;RUNIC LETTER ETH;Lo;0;L;;;;;N;;;;; 16A8;RUNIC LETTER ANSUZ A;Lo;0;L;;;;;N;;;;; 16A9;RUNIC LETTER OS O;Lo;0;L;;;;;N;;;;; 16AA;RUNIC LETTER AC A;Lo;0;L;;;;;N;;;;; 16AB;RUNIC LETTER AESC;Lo;0;L;;;;;N;;;;; 16AC;RUNIC LETTER LONG-BRANCH-OSS O;Lo;0;L;;;;;N;;;;; 16AD;RUNIC LETTER SHORT-TWIG-OSS O;Lo;0;L;;;;;N;;;;; 16AE;RUNIC LETTER O;Lo;0;L;;;;;N;;;;; 16AF;RUNIC LETTER OE;Lo;0;L;;;;;N;;;;; 16B0;RUNIC LETTER ON;Lo;0;L;;;;;N;;;;; 16B1;RUNIC LETTER RAIDO RAD REID R;Lo;0;L;;;;;N;;;;; 16B2;RUNIC LETTER KAUNA;Lo;0;L;;;;;N;;;;; 16B3;RUNIC LETTER CEN;Lo;0;L;;;;;N;;;;; 16B4;RUNIC LETTER KAUN K;Lo;0;L;;;;;N;;;;; 16B5;RUNIC LETTER G;Lo;0;L;;;;;N;;;;; 16B6;RUNIC LETTER ENG;Lo;0;L;;;;;N;;;;; 16B7;RUNIC LETTER GEBO GYFU G;Lo;0;L;;;;;N;;;;; 16B8;RUNIC LETTER GAR;Lo;0;L;;;;;N;;;;; 16B9;RUNIC LETTER WUNJO WYNN W;Lo;0;L;;;;;N;;;;; 16BA;RUNIC LETTER HAGLAZ H;Lo;0;L;;;;;N;;;;; 16BB;RUNIC LETTER HAEGL H;Lo;0;L;;;;;N;;;;; 16BC;RUNIC LETTER LONG-BRANCH-HAGALL H;Lo;0;L;;;;;N;;;;; 16BD;RUNIC LETTER SHORT-TWIG-HAGALL H;Lo;0;L;;;;;N;;;;; 16BE;RUNIC LETTER NAUDIZ NYD NAUD N;Lo;0;L;;;;;N;;;;; 16BF;RUNIC LETTER SHORT-TWIG-NAUD N;Lo;0;L;;;;;N;;;;; 16C0;RUNIC LETTER DOTTED-N;Lo;0;L;;;;;N;;;;; 16C1;RUNIC LETTER ISAZ IS ISS I;Lo;0;L;;;;;N;;;;; 16C2;RUNIC LETTER E;Lo;0;L;;;;;N;;;;; 16C3;RUNIC LETTER JERAN J;Lo;0;L;;;;;N;;;;; 16C4;RUNIC LETTER GER;Lo;0;L;;;;;N;;;;; 16C5;RUNIC LETTER LONG-BRANCH-AR AE;Lo;0;L;;;;;N;;;;; 16C6;RUNIC LETTER SHORT-TWIG-AR A;Lo;0;L;;;;;N;;;;; 16C7;RUNIC LETTER IWAZ EOH;Lo;0;L;;;;;N;;;;; 16C8;RUNIC LETTER PERTHO PEORTH P;Lo;0;L;;;;;N;;;;; 16C9;RUNIC LETTER ALGIZ EOLHX;Lo;0;L;;;;;N;;;;; 16CA;RUNIC LETTER SOWILO S;Lo;0;L;;;;;N;;;;; 16CB;RUNIC LETTER SIGEL LONG-BRANCH-SOL S;Lo;0;L;;;;;N;;;;; 16CC;RUNIC LETTER SHORT-TWIG-SOL S;Lo;0;L;;;;;N;;;;; 16CD;RUNIC LETTER C;Lo;0;L;;;;;N;;;;; 16CE;RUNIC LETTER Z;Lo;0;L;;;;;N;;;;; 16CF;RUNIC LETTER TIWAZ TIR TYR T;Lo;0;L;;;;;N;;;;; 16D0;RUNIC LETTER SHORT-TWIG-TYR T;Lo;0;L;;;;;N;;;;; 16D1;RUNIC LETTER D;Lo;0;L;;;;;N;;;;; 16D2;RUNIC LETTER BERKANAN BEORC BJARKAN B;Lo;0;L;;;;;N;;;;; 16D3;RUNIC LETTER SHORT-TWIG-BJARKAN B;Lo;0;L;;;;;N;;;;; 16D4;RUNIC LETTER DOTTED-P;Lo;0;L;;;;;N;;;;; 16D5;RUNIC LETTER OPEN-P;Lo;0;L;;;;;N;;;;; 16D6;RUNIC LETTER EHWAZ EH E;Lo;0;L;;;;;N;;;;; 16D7;RUNIC LETTER MANNAZ MAN M;Lo;0;L;;;;;N;;;;; 16D8;RUNIC LETTER LONG-BRANCH-MADR M;Lo;0;L;;;;;N;;;;; 16D9;RUNIC LETTER SHORT-TWIG-MADR M;Lo;0;L;;;;;N;;;;; 16DA;RUNIC LETTER LAUKAZ LAGU LOGR L;Lo;0;L;;;;;N;;;;; 16DB;RUNIC LETTER DOTTED-L;Lo;0;L;;;;;N;;;;; 16DC;RUNIC LETTER INGWAZ;Lo;0;L;;;;;N;;;;; 16DD;RUNIC LETTER ING;Lo;0;L;;;;;N;;;;; 16DE;RUNIC LETTER DAGAZ DAEG D;Lo;0;L;;;;;N;;;;; 16DF;RUNIC LETTER OTHALAN ETHEL O;Lo;0;L;;;;;N;;;;; 16E0;RUNIC LETTER EAR;Lo;0;L;;;;;N;;;;; 16E1;RUNIC LETTER IOR;Lo;0;L;;;;;N;;;;; 16E2;RUNIC LETTER CWEORTH;Lo;0;L;;;;;N;;;;; 16E3;RUNIC LETTER CALC;Lo;0;L;;;;;N;;;;; 16E4;RUNIC LETTER CEALC;Lo;0;L;;;;;N;;;;; 16E5;RUNIC LETTER STAN;Lo;0;L;;;;;N;;;;; 16E6;RUNIC LETTER LONG-BRANCH-YR;Lo;0;L;;;;;N;;;;; 16E7;RUNIC LETTER SHORT-TWIG-YR;Lo;0;L;;;;;N;;;;; 16E8;RUNIC LETTER ICELANDIC-YR;Lo;0;L;;;;;N;;;;; 16E9;RUNIC LETTER Q;Lo;0;L;;;;;N;;;;; 16EA;RUNIC LETTER X;Lo;0;L;;;;;N;;;;; 16EB;RUNIC SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; 16EC;RUNIC MULTIPLE PUNCTUATION;Po;0;L;;;;;N;;;;; 16ED;RUNIC CROSS PUNCTUATION;Po;0;L;;;;;N;;;;; 16EE;RUNIC ARLAUG SYMBOL;Nl;0;L;;;;17;N;;golden number 17;;; 16EF;RUNIC TVIMADUR SYMBOL;Nl;0;L;;;;18;N;;golden number 18;;; 16F0;RUNIC BELGTHOR SYMBOL;Nl;0;L;;;;19;N;;golden number 19;;; 1700;TAGALOG LETTER A;Lo;0;L;;;;;N;;;;; 1701;TAGALOG LETTER I;Lo;0;L;;;;;N;;;;; 1702;TAGALOG LETTER U;Lo;0;L;;;;;N;;;;; 1703;TAGALOG LETTER KA;Lo;0;L;;;;;N;;;;; 1704;TAGALOG LETTER GA;Lo;0;L;;;;;N;;;;; 1705;TAGALOG LETTER NGA;Lo;0;L;;;;;N;;;;; 1706;TAGALOG LETTER TA;Lo;0;L;;;;;N;;;;; 1707;TAGALOG LETTER DA;Lo;0;L;;;;;N;;;;; 1708;TAGALOG LETTER NA;Lo;0;L;;;;;N;;;;; 1709;TAGALOG LETTER PA;Lo;0;L;;;;;N;;;;; 170A;TAGALOG LETTER BA;Lo;0;L;;;;;N;;;;; 170B;TAGALOG LETTER MA;Lo;0;L;;;;;N;;;;; 170C;TAGALOG LETTER YA;Lo;0;L;;;;;N;;;;; 170E;TAGALOG LETTER LA;Lo;0;L;;;;;N;;;;; 170F;TAGALOG LETTER WA;Lo;0;L;;;;;N;;;;; 1710;TAGALOG LETTER SA;Lo;0;L;;;;;N;;;;; 1711;TAGALOG LETTER HA;Lo;0;L;;;;;N;;;;; 1712;TAGALOG VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1713;TAGALOG VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1714;TAGALOG SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 1720;HANUNOO LETTER A;Lo;0;L;;;;;N;;;;; 1721;HANUNOO LETTER I;Lo;0;L;;;;;N;;;;; 1722;HANUNOO LETTER U;Lo;0;L;;;;;N;;;;; 1723;HANUNOO LETTER KA;Lo;0;L;;;;;N;;;;; 1724;HANUNOO LETTER GA;Lo;0;L;;;;;N;;;;; 1725;HANUNOO LETTER NGA;Lo;0;L;;;;;N;;;;; 1726;HANUNOO LETTER TA;Lo;0;L;;;;;N;;;;; 1727;HANUNOO LETTER DA;Lo;0;L;;;;;N;;;;; 1728;HANUNOO LETTER NA;Lo;0;L;;;;;N;;;;; 1729;HANUNOO LETTER PA;Lo;0;L;;;;;N;;;;; 172A;HANUNOO LETTER BA;Lo;0;L;;;;;N;;;;; 172B;HANUNOO LETTER MA;Lo;0;L;;;;;N;;;;; 172C;HANUNOO LETTER YA;Lo;0;L;;;;;N;;;;; 172D;HANUNOO LETTER RA;Lo;0;L;;;;;N;;;;; 172E;HANUNOO LETTER LA;Lo;0;L;;;;;N;;;;; 172F;HANUNOO LETTER WA;Lo;0;L;;;;;N;;;;; 1730;HANUNOO LETTER SA;Lo;0;L;;;;;N;;;;; 1731;HANUNOO LETTER HA;Lo;0;L;;;;;N;;;;; 1732;HANUNOO VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1733;HANUNOO VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1734;HANUNOO SIGN PAMUDPOD;Mn;9;NSM;;;;;N;;;;; 1735;PHILIPPINE SINGLE PUNCTUATION;Po;0;L;;;;;N;;;;; 1736;PHILIPPINE DOUBLE PUNCTUATION;Po;0;L;;;;;N;;;;; 1740;BUHID LETTER A;Lo;0;L;;;;;N;;;;; 1741;BUHID LETTER I;Lo;0;L;;;;;N;;;;; 1742;BUHID LETTER U;Lo;0;L;;;;;N;;;;; 1743;BUHID LETTER KA;Lo;0;L;;;;;N;;;;; 1744;BUHID LETTER GA;Lo;0;L;;;;;N;;;;; 1745;BUHID LETTER NGA;Lo;0;L;;;;;N;;;;; 1746;BUHID LETTER TA;Lo;0;L;;;;;N;;;;; 1747;BUHID LETTER DA;Lo;0;L;;;;;N;;;;; 1748;BUHID LETTER NA;Lo;0;L;;;;;N;;;;; 1749;BUHID LETTER PA;Lo;0;L;;;;;N;;;;; 174A;BUHID LETTER BA;Lo;0;L;;;;;N;;;;; 174B;BUHID LETTER MA;Lo;0;L;;;;;N;;;;; 174C;BUHID LETTER YA;Lo;0;L;;;;;N;;;;; 174D;BUHID LETTER RA;Lo;0;L;;;;;N;;;;; 174E;BUHID LETTER LA;Lo;0;L;;;;;N;;;;; 174F;BUHID LETTER WA;Lo;0;L;;;;;N;;;;; 1750;BUHID LETTER SA;Lo;0;L;;;;;N;;;;; 1751;BUHID LETTER HA;Lo;0;L;;;;;N;;;;; 1752;BUHID VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1753;BUHID VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1760;TAGBANWA LETTER A;Lo;0;L;;;;;N;;;;; 1761;TAGBANWA LETTER I;Lo;0;L;;;;;N;;;;; 1762;TAGBANWA LETTER U;Lo;0;L;;;;;N;;;;; 1763;TAGBANWA LETTER KA;Lo;0;L;;;;;N;;;;; 1764;TAGBANWA LETTER GA;Lo;0;L;;;;;N;;;;; 1765;TAGBANWA LETTER NGA;Lo;0;L;;;;;N;;;;; 1766;TAGBANWA LETTER TA;Lo;0;L;;;;;N;;;;; 1767;TAGBANWA LETTER DA;Lo;0;L;;;;;N;;;;; 1768;TAGBANWA LETTER NA;Lo;0;L;;;;;N;;;;; 1769;TAGBANWA LETTER PA;Lo;0;L;;;;;N;;;;; 176A;TAGBANWA LETTER BA;Lo;0;L;;;;;N;;;;; 176B;TAGBANWA LETTER MA;Lo;0;L;;;;;N;;;;; 176C;TAGBANWA LETTER YA;Lo;0;L;;;;;N;;;;; 176E;TAGBANWA LETTER LA;Lo;0;L;;;;;N;;;;; 176F;TAGBANWA LETTER WA;Lo;0;L;;;;;N;;;;; 1770;TAGBANWA LETTER SA;Lo;0;L;;;;;N;;;;; 1772;TAGBANWA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 1773;TAGBANWA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 1780;KHMER LETTER KA;Lo;0;L;;;;;N;;;;; 1781;KHMER LETTER KHA;Lo;0;L;;;;;N;;;;; 1782;KHMER LETTER KO;Lo;0;L;;;;;N;;;;; 1783;KHMER LETTER KHO;Lo;0;L;;;;;N;;;;; 1784;KHMER LETTER NGO;Lo;0;L;;;;;N;;;;; 1785;KHMER LETTER CA;Lo;0;L;;;;;N;;;;; 1786;KHMER LETTER CHA;Lo;0;L;;;;;N;;;;; 1787;KHMER LETTER CO;Lo;0;L;;;;;N;;;;; 1788;KHMER LETTER CHO;Lo;0;L;;;;;N;;;;; 1789;KHMER LETTER NYO;Lo;0;L;;;;;N;;;;; 178A;KHMER LETTER DA;Lo;0;L;;;;;N;;;;; 178B;KHMER LETTER TTHA;Lo;0;L;;;;;N;;;;; 178C;KHMER LETTER DO;Lo;0;L;;;;;N;;;;; 178D;KHMER LETTER TTHO;Lo;0;L;;;;;N;;;;; 178E;KHMER LETTER NNO;Lo;0;L;;;;;N;;;;; 178F;KHMER LETTER TA;Lo;0;L;;;;;N;;;;; 1790;KHMER LETTER THA;Lo;0;L;;;;;N;;;;; 1791;KHMER LETTER TO;Lo;0;L;;;;;N;;;;; 1792;KHMER LETTER THO;Lo;0;L;;;;;N;;;;; 1793;KHMER LETTER NO;Lo;0;L;;;;;N;;;;; 1794;KHMER LETTER BA;Lo;0;L;;;;;N;;;;; 1795;KHMER LETTER PHA;Lo;0;L;;;;;N;;;;; 1796;KHMER LETTER PO;Lo;0;L;;;;;N;;;;; 1797;KHMER LETTER PHO;Lo;0;L;;;;;N;;;;; 1798;KHMER LETTER MO;Lo;0;L;;;;;N;;;;; 1799;KHMER LETTER YO;Lo;0;L;;;;;N;;;;; 179A;KHMER LETTER RO;Lo;0;L;;;;;N;;;;; 179B;KHMER LETTER LO;Lo;0;L;;;;;N;;;;; 179C;KHMER LETTER VO;Lo;0;L;;;;;N;;;;; 179D;KHMER LETTER SHA;Lo;0;L;;;;;N;;;;; 179E;KHMER LETTER SSO;Lo;0;L;;;;;N;;;;; 179F;KHMER LETTER SA;Lo;0;L;;;;;N;;;;; 17A0;KHMER LETTER HA;Lo;0;L;;;;;N;;;;; 17A1;KHMER LETTER LA;Lo;0;L;;;;;N;;;;; 17A2;KHMER LETTER QA;Lo;0;L;;;;;N;;;;; 17A3;KHMER INDEPENDENT VOWEL QAQ;Lo;0;L;;;;;N;;;;; 17A4;KHMER INDEPENDENT VOWEL QAA;Lo;0;L;;;;;N;;;;; 17A5;KHMER INDEPENDENT VOWEL QI;Lo;0;L;;;;;N;;;;; 17A6;KHMER INDEPENDENT VOWEL QII;Lo;0;L;;;;;N;;;;; 17A7;KHMER INDEPENDENT VOWEL QU;Lo;0;L;;;;;N;;;;; 17A8;KHMER INDEPENDENT VOWEL QUK;Lo;0;L;;;;;N;;;;; 17A9;KHMER INDEPENDENT VOWEL QUU;Lo;0;L;;;;;N;;;;; 17AA;KHMER INDEPENDENT VOWEL QUUV;Lo;0;L;;;;;N;;;;; 17AB;KHMER INDEPENDENT VOWEL RY;Lo;0;L;;;;;N;;;;; 17AC;KHMER INDEPENDENT VOWEL RYY;Lo;0;L;;;;;N;;;;; 17AD;KHMER INDEPENDENT VOWEL LY;Lo;0;L;;;;;N;;;;; 17AE;KHMER INDEPENDENT VOWEL LYY;Lo;0;L;;;;;N;;;;; 17AF;KHMER INDEPENDENT VOWEL QE;Lo;0;L;;;;;N;;;;; 17B0;KHMER INDEPENDENT VOWEL QAI;Lo;0;L;;;;;N;;;;; 17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;; 17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;; 17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;; 17B4;KHMER VOWEL INHERENT AQ;Mc;0;L;;;;;N;;;;; 17B5;KHMER VOWEL INHERENT AA;Mc;0;L;;;;;N;;;;; 17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;; 17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;; 17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;; 17B9;KHMER VOWEL SIGN Y;Mn;0;NSM;;;;;N;;;;; 17BA;KHMER VOWEL SIGN YY;Mn;0;NSM;;;;;N;;;;; 17BB;KHMER VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;; 17BC;KHMER VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;; 17BD;KHMER VOWEL SIGN UA;Mn;0;NSM;;;;;N;;;;; 17BE;KHMER VOWEL SIGN OE;Mc;0;L;;;;;N;;;;; 17BF;KHMER VOWEL SIGN YA;Mc;0;L;;;;;N;;;;; 17C0;KHMER VOWEL SIGN IE;Mc;0;L;;;;;N;;;;; 17C1;KHMER VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 17C2;KHMER VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; 17C3;KHMER VOWEL SIGN AI;Mc;0;L;;;;;N;;;;; 17C4;KHMER VOWEL SIGN OO;Mc;0;L;;;;;N;;;;; 17C5;KHMER VOWEL SIGN AU;Mc;0;L;;;;;N;;;;; 17C6;KHMER SIGN NIKAHIT;Mn;0;NSM;;;;;N;;;;; 17C7;KHMER SIGN REAHMUK;Mc;0;L;;;;;N;;;;; 17C8;KHMER SIGN YUUKALEAPINTU;Mc;0;L;;;;;N;;;;; 17C9;KHMER SIGN MUUSIKATOAN;Mn;0;NSM;;;;;N;;;;; 17CA;KHMER SIGN TRIISAP;Mn;0;NSM;;;;;N;;;;; 17CB;KHMER SIGN BANTOC;Mn;0;NSM;;;;;N;;;;; 17CC;KHMER SIGN ROBAT;Mn;0;NSM;;;;;N;;;;; 17CD;KHMER SIGN TOANDAKHIAT;Mn;0;NSM;;;;;N;;;;; 17CE;KHMER SIGN KAKABAT;Mn;0;NSM;;;;;N;;;;; 17CF;KHMER SIGN AHSDA;Mn;0;NSM;;;;;N;;;;; 17D0;KHMER SIGN SAMYOK SANNYA;Mn;0;NSM;;;;;N;;;;; 17D1;KHMER SIGN VIRIAM;Mn;0;NSM;;;;;N;;;;; 17D2;KHMER SIGN COENG;Mn;9;NSM;;;;;N;;;;; 17D3;KHMER SIGN BATHAMASAT;Mn;0;NSM;;;;;N;;;;; 17D4;KHMER SIGN KHAN;Po;0;L;;;;;N;;;;; 17D5;KHMER SIGN BARIYOOSAN;Po;0;L;;;;;N;;;;; 17D6;KHMER SIGN CAMNUC PII KUUH;Po;0;L;;;;;N;;;;; 17D7;KHMER SIGN LEK TOO;Lm;0;L;;;;;N;;;;; 17D8;KHMER SIGN BEYYAL;Po;0;L;;;;;N;;;;; 17D9;KHMER SIGN PHNAEK MUAN;Po;0;L;;;;;N;;;;; 17DA;KHMER SIGN KOOMUUT;Po;0;L;;;;;N;;;;; 17DB;KHMER CURRENCY SYMBOL RIEL;Sc;0;ET;;;;;N;;;;; 17DC;KHMER SIGN AVAKRAHASANYA;Lo;0;L;;;;;N;;;;; 17E0;KHMER DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 17E1;KHMER DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 17E2;KHMER DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 17E3;KHMER DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 17E4;KHMER DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 17E5;KHMER DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 17E6;KHMER DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 17E7;KHMER DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 17E8;KHMER DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 17E9;KHMER DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1800;MONGOLIAN BIRGA;Po;0;ON;;;;;N;;;;; 1801;MONGOLIAN ELLIPSIS;Po;0;ON;;;;;N;;;;; 1802;MONGOLIAN COMMA;Po;0;ON;;;;;N;;;;; 1803;MONGOLIAN FULL STOP;Po;0;ON;;;;;N;;;;; 1804;MONGOLIAN COLON;Po;0;ON;;;;;N;;;;; 1805;MONGOLIAN FOUR DOTS;Po;0;ON;;;;;N;;;;; 1806;MONGOLIAN TODO SOFT HYPHEN;Pd;0;ON;;;;;N;;;;; 1807;MONGOLIAN SIBE SYLLABLE BOUNDARY MARKER;Po;0;ON;;;;;N;;;;; 1808;MONGOLIAN MANCHU COMMA;Po;0;ON;;;;;N;;;;; 1809;MONGOLIAN MANCHU FULL STOP;Po;0;ON;;;;;N;;;;; 180A;MONGOLIAN NIRUGU;Po;0;ON;;;;;N;;;;; 180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;; 180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;; 180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;; 180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;; 1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 1813;MONGOLIAN DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; 1814;MONGOLIAN DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; 1815;MONGOLIAN DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; 1816;MONGOLIAN DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; 1817;MONGOLIAN DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 1818;MONGOLIAN DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1819;MONGOLIAN DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1820;MONGOLIAN LETTER A;Lo;0;L;;;;;N;;;;; 1821;MONGOLIAN LETTER E;Lo;0;L;;;;;N;;;;; 1822;MONGOLIAN LETTER I;Lo;0;L;;;;;N;;;;; 1823;MONGOLIAN LETTER O;Lo;0;L;;;;;N;;;;; 1824;MONGOLIAN LETTER U;Lo;0;L;;;;;N;;;;; 1825;MONGOLIAN LETTER OE;Lo;0;L;;;;;N;;;;; 1826;MONGOLIAN LETTER UE;Lo;0;L;;;;;N;;;;; 1827;MONGOLIAN LETTER EE;Lo;0;L;;;;;N;;;;; 1828;MONGOLIAN LETTER NA;Lo;0;L;;;;;N;;;;; 1829;MONGOLIAN LETTER ANG;Lo;0;L;;;;;N;;;;; 182A;MONGOLIAN LETTER BA;Lo;0;L;;;;;N;;;;; 182B;MONGOLIAN LETTER PA;Lo;0;L;;;;;N;;;;; 182C;MONGOLIAN LETTER QA;Lo;0;L;;;;;N;;;;; 182D;MONGOLIAN LETTER GA;Lo;0;L;;;;;N;;;;; 182E;MONGOLIAN LETTER MA;Lo;0;L;;;;;N;;;;; 182F;MONGOLIAN LETTER LA;Lo;0;L;;;;;N;;;;; 1830;MONGOLIAN LETTER SA;Lo;0;L;;;;;N;;;;; 1831;MONGOLIAN LETTER SHA;Lo;0;L;;;;;N;;;;; 1832;MONGOLIAN LETTER TA;Lo;0;L;;;;;N;;;;; 1833;MONGOLIAN LETTER DA;Lo;0;L;;;;;N;;;;; 1834;MONGOLIAN LETTER CHA;Lo;0;L;;;;;N;;;;; 1835;MONGOLIAN LETTER JA;Lo;0;L;;;;;N;;;;; 1836;MONGOLIAN LETTER YA;Lo;0;L;;;;;N;;;;; 1837;MONGOLIAN LETTER RA;Lo;0;L;;;;;N;;;;; 1838;MONGOLIAN LETTER WA;Lo;0;L;;;;;N;;;;; 1839;MONGOLIAN LETTER FA;Lo;0;L;;;;;N;;;;; 183A;MONGOLIAN LETTER KA;Lo;0;L;;;;;N;;;;; 183B;MONGOLIAN LETTER KHA;Lo;0;L;;;;;N;;;;; 183C;MONGOLIAN LETTER TSA;Lo;0;L;;;;;N;;;;; 183D;MONGOLIAN LETTER ZA;Lo;0;L;;;;;N;;;;; 183E;MONGOLIAN LETTER HAA;Lo;0;L;;;;;N;;;;; 183F;MONGOLIAN LETTER ZRA;Lo;0;L;;;;;N;;;;; 1840;MONGOLIAN LETTER LHA;Lo;0;L;;;;;N;;;;; 1841;MONGOLIAN LETTER ZHI;Lo;0;L;;;;;N;;;;; 1842;MONGOLIAN LETTER CHI;Lo;0;L;;;;;N;;;;; 1843;MONGOLIAN LETTER TODO LONG VOWEL SIGN;Lm;0;L;;;;;N;;;;; 1844;MONGOLIAN LETTER TODO E;Lo;0;L;;;;;N;;;;; 1845;MONGOLIAN LETTER TODO I;Lo;0;L;;;;;N;;;;; 1846;MONGOLIAN LETTER TODO O;Lo;0;L;;;;;N;;;;; 1847;MONGOLIAN LETTER TODO U;Lo;0;L;;;;;N;;;;; 1848;MONGOLIAN LETTER TODO OE;Lo;0;L;;;;;N;;;;; 1849;MONGOLIAN LETTER TODO UE;Lo;0;L;;;;;N;;;;; 184A;MONGOLIAN LETTER TODO ANG;Lo;0;L;;;;;N;;;;; 184B;MONGOLIAN LETTER TODO BA;Lo;0;L;;;;;N;;;;; 184C;MONGOLIAN LETTER TODO PA;Lo;0;L;;;;;N;;;;; 184D;MONGOLIAN LETTER TODO QA;Lo;0;L;;;;;N;;;;; 184E;MONGOLIAN LETTER TODO GA;Lo;0;L;;;;;N;;;;; 184F;MONGOLIAN LETTER TODO MA;Lo;0;L;;;;;N;;;;; 1850;MONGOLIAN LETTER TODO TA;Lo;0;L;;;;;N;;;;; 1851;MONGOLIAN LETTER TODO DA;Lo;0;L;;;;;N;;;;; 1852;MONGOLIAN LETTER TODO CHA;Lo;0;L;;;;;N;;;;; 1853;MONGOLIAN LETTER TODO JA;Lo;0;L;;;;;N;;;;; 1854;MONGOLIAN LETTER TODO TSA;Lo;0;L;;;;;N;;;;; 1855;MONGOLIAN LETTER TODO YA;Lo;0;L;;;;;N;;;;; 1856;MONGOLIAN LETTER TODO WA;Lo;0;L;;;;;N;;;;; 1857;MONGOLIAN LETTER TODO KA;Lo;0;L;;;;;N;;;;; 1858;MONGOLIAN LETTER TODO GAA;Lo;0;L;;;;;N;;;;; 1859;MONGOLIAN LETTER TODO HAA;Lo;0;L;;;;;N;;;;; 185A;MONGOLIAN LETTER TODO JIA;Lo;0;L;;;;;N;;;;; 185B;MONGOLIAN LETTER TODO NIA;Lo;0;L;;;;;N;;;;; 185C;MONGOLIAN LETTER TODO DZA;Lo;0;L;;;;;N;;;;; 185D;MONGOLIAN LETTER SIBE E;Lo;0;L;;;;;N;;;;; 185E;MONGOLIAN LETTER SIBE I;Lo;0;L;;;;;N;;;;; 185F;MONGOLIAN LETTER SIBE IY;Lo;0;L;;;;;N;;;;; 1860;MONGOLIAN LETTER SIBE UE;Lo;0;L;;;;;N;;;;; 1861;MONGOLIAN LETTER SIBE U;Lo;0;L;;;;;N;;;;; 1862;MONGOLIAN LETTER SIBE ANG;Lo;0;L;;;;;N;;;;; 1863;MONGOLIAN LETTER SIBE KA;Lo;0;L;;;;;N;;;;; 1864;MONGOLIAN LETTER SIBE GA;Lo;0;L;;;;;N;;;;; 1865;MONGOLIAN LETTER SIBE HA;Lo;0;L;;;;;N;;;;; 1866;MONGOLIAN LETTER SIBE PA;Lo;0;L;;;;;N;;;;; 1867;MONGOLIAN LETTER SIBE SHA;Lo;0;L;;;;;N;;;;; 1868;MONGOLIAN LETTER SIBE TA;Lo;0;L;;;;;N;;;;; 1869;MONGOLIAN LETTER SIBE DA;Lo;0;L;;;;;N;;;;; 186A;MONGOLIAN LETTER SIBE JA;Lo;0;L;;;;;N;;;;; 186B;MONGOLIAN LETTER SIBE FA;Lo;0;L;;;;;N;;;;; 186C;MONGOLIAN LETTER SIBE GAA;Lo;0;L;;;;;N;;;;; 186D;MONGOLIAN LETTER SIBE HAA;Lo;0;L;;;;;N;;;;; 186E;MONGOLIAN LETTER SIBE TSA;Lo;0;L;;;;;N;;;;; 186F;MONGOLIAN LETTER SIBE ZA;Lo;0;L;;;;;N;;;;; 1870;MONGOLIAN LETTER SIBE RAA;Lo;0;L;;;;;N;;;;; 1871;MONGOLIAN LETTER SIBE CHA;Lo;0;L;;;;;N;;;;; 1872;MONGOLIAN LETTER SIBE ZHA;Lo;0;L;;;;;N;;;;; 1873;MONGOLIAN LETTER MANCHU I;Lo;0;L;;;;;N;;;;; 1874;MONGOLIAN LETTER MANCHU KA;Lo;0;L;;;;;N;;;;; 1875;MONGOLIAN LETTER MANCHU RA;Lo;0;L;;;;;N;;;;; 1876;MONGOLIAN LETTER MANCHU FA;Lo;0;L;;;;;N;;;;; 1877;MONGOLIAN LETTER MANCHU ZHA;Lo;0;L;;;;;N;;;;; 1880;MONGOLIAN LETTER ALI GALI ANUSVARA ONE;Lo;0;L;;;;;N;;;;; 1881;MONGOLIAN LETTER ALI GALI VISARGA ONE;Lo;0;L;;;;;N;;;;; 1882;MONGOLIAN LETTER ALI GALI DAMARU;Lo;0;L;;;;;N;;;;; 1883;MONGOLIAN LETTER ALI GALI UBADAMA;Lo;0;L;;;;;N;;;;; 1884;MONGOLIAN LETTER ALI GALI INVERTED UBADAMA;Lo;0;L;;;;;N;;;;; 1885;MONGOLIAN LETTER ALI GALI BALUDA;Lo;0;L;;;;;N;;;;; 1886;MONGOLIAN LETTER ALI GALI THREE BALUDA;Lo;0;L;;;;;N;;;;; 1887;MONGOLIAN LETTER ALI GALI A;Lo;0;L;;;;;N;;;;; 1888;MONGOLIAN LETTER ALI GALI I;Lo;0;L;;;;;N;;;;; 1889;MONGOLIAN LETTER ALI GALI KA;Lo;0;L;;;;;N;;;;; 188A;MONGOLIAN LETTER ALI GALI NGA;Lo;0;L;;;;;N;;;;; 188B;MONGOLIAN LETTER ALI GALI CA;Lo;0;L;;;;;N;;;;; 188C;MONGOLIAN LETTER ALI GALI TTA;Lo;0;L;;;;;N;;;;; 188D;MONGOLIAN LETTER ALI GALI TTHA;Lo;0;L;;;;;N;;;;; 188E;MONGOLIAN LETTER ALI GALI DDA;Lo;0;L;;;;;N;;;;; 188F;MONGOLIAN LETTER ALI GALI NNA;Lo;0;L;;;;;N;;;;; 1890;MONGOLIAN LETTER ALI GALI TA;Lo;0;L;;;;;N;;;;; 1891;MONGOLIAN LETTER ALI GALI DA;Lo;0;L;;;;;N;;;;; 1892;MONGOLIAN LETTER ALI GALI PA;Lo;0;L;;;;;N;;;;; 1893;MONGOLIAN LETTER ALI GALI PHA;Lo;0;L;;;;;N;;;;; 1894;MONGOLIAN LETTER ALI GALI SSA;Lo;0;L;;;;;N;;;;; 1895;MONGOLIAN LETTER ALI GALI ZHA;Lo;0;L;;;;;N;;;;; 1896;MONGOLIAN LETTER ALI GALI ZA;Lo;0;L;;;;;N;;;;; 1897;MONGOLIAN LETTER ALI GALI AH;Lo;0;L;;;;;N;;;;; 1898;MONGOLIAN LETTER TODO ALI GALI TA;Lo;0;L;;;;;N;;;;; 1899;MONGOLIAN LETTER TODO ALI GALI ZHA;Lo;0;L;;;;;N;;;;; 189A;MONGOLIAN LETTER MANCHU ALI GALI GHA;Lo;0;L;;;;;N;;;;; 189B;MONGOLIAN LETTER MANCHU ALI GALI NGA;Lo;0;L;;;;;N;;;;; 189C;MONGOLIAN LETTER MANCHU ALI GALI CA;Lo;0;L;;;;;N;;;;; 189D;MONGOLIAN LETTER MANCHU ALI GALI JHA;Lo;0;L;;;;;N;;;;; 189E;MONGOLIAN LETTER MANCHU ALI GALI TTA;Lo;0;L;;;;;N;;;;; 189F;MONGOLIAN LETTER MANCHU ALI GALI DDHA;Lo;0;L;;;;;N;;;;; 18A0;MONGOLIAN LETTER MANCHU ALI GALI TA;Lo;0;L;;;;;N;;;;; 18A1;MONGOLIAN LETTER MANCHU ALI GALI DHA;Lo;0;L;;;;;N;;;;; 18A2;MONGOLIAN LETTER MANCHU ALI GALI SSA;Lo;0;L;;;;;N;;;;; 18A3;MONGOLIAN LETTER MANCHU ALI GALI CYA;Lo;0;L;;;;;N;;;;; 18A4;MONGOLIAN LETTER MANCHU ALI GALI ZHA;Lo;0;L;;;;;N;;;;; 18A5;MONGOLIAN LETTER MANCHU ALI GALI ZA;Lo;0;L;;;;;N;;;;; 18A6;MONGOLIAN LETTER ALI GALI HALF U;Lo;0;L;;;;;N;;;;; 18A7;MONGOLIAN LETTER ALI GALI HALF YA;Lo;0;L;;;;;N;;;;; 18A8;MONGOLIAN LETTER MANCHU ALI GALI BHA;Lo;0;L;;;;;N;;;;; 18A9;MONGOLIAN LETTER ALI GALI DAGALGA;Mn;228;NSM;;;;;N;;;;; 1E00;LATIN CAPITAL LETTER A WITH RING BELOW;Lu;0;L;0041 0325;;;;N;;;;1E01; 1E01;LATIN SMALL LETTER A WITH RING BELOW;Ll;0;L;0061 0325;;;;N;;;1E00;;1E00 1E02;LATIN CAPITAL LETTER B WITH DOT ABOVE;Lu;0;L;0042 0307;;;;N;;;;1E03; 1E03;LATIN SMALL LETTER B WITH DOT ABOVE;Ll;0;L;0062 0307;;;;N;;;1E02;;1E02 1E04;LATIN CAPITAL LETTER B WITH DOT BELOW;Lu;0;L;0042 0323;;;;N;;;;1E05; 1E05;LATIN SMALL LETTER B WITH DOT BELOW;Ll;0;L;0062 0323;;;;N;;;1E04;;1E04 1E06;LATIN CAPITAL LETTER B WITH LINE BELOW;Lu;0;L;0042 0331;;;;N;;;;1E07; 1E07;LATIN SMALL LETTER B WITH LINE BELOW;Ll;0;L;0062 0331;;;;N;;;1E06;;1E06 1E08;LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE;Lu;0;L;00C7 0301;;;;N;;;;1E09; 1E09;LATIN SMALL LETTER C WITH CEDILLA AND ACUTE;Ll;0;L;00E7 0301;;;;N;;;1E08;;1E08 1E0A;LATIN CAPITAL LETTER D WITH DOT ABOVE;Lu;0;L;0044 0307;;;;N;;;;1E0B; 1E0B;LATIN SMALL LETTER D WITH DOT ABOVE;Ll;0;L;0064 0307;;;;N;;;1E0A;;1E0A 1E0C;LATIN CAPITAL LETTER D WITH DOT BELOW;Lu;0;L;0044 0323;;;;N;;;;1E0D; 1E0D;LATIN SMALL LETTER D WITH DOT BELOW;Ll;0;L;0064 0323;;;;N;;;1E0C;;1E0C 1E0E;LATIN CAPITAL LETTER D WITH LINE BELOW;Lu;0;L;0044 0331;;;;N;;;;1E0F; 1E0F;LATIN SMALL LETTER D WITH LINE BELOW;Ll;0;L;0064 0331;;;;N;;;1E0E;;1E0E 1E10;LATIN CAPITAL LETTER D WITH CEDILLA;Lu;0;L;0044 0327;;;;N;;;;1E11; 1E11;LATIN SMALL LETTER D WITH CEDILLA;Ll;0;L;0064 0327;;;;N;;;1E10;;1E10 1E12;LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW;Lu;0;L;0044 032D;;;;N;;;;1E13; 1E13;LATIN SMALL LETTER D WITH CIRCUMFLEX BELOW;Ll;0;L;0064 032D;;;;N;;;1E12;;1E12 1E14;LATIN CAPITAL LETTER E WITH MACRON AND GRAVE;Lu;0;L;0112 0300;;;;N;;;;1E15; 1E15;LATIN SMALL LETTER E WITH MACRON AND GRAVE;Ll;0;L;0113 0300;;;;N;;;1E14;;1E14 1E16;LATIN CAPITAL LETTER E WITH MACRON AND ACUTE;Lu;0;L;0112 0301;;;;N;;;;1E17; 1E17;LATIN SMALL LETTER E WITH MACRON AND ACUTE;Ll;0;L;0113 0301;;;;N;;;1E16;;1E16 1E18;LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW;Lu;0;L;0045 032D;;;;N;;;;1E19; 1E19;LATIN SMALL LETTER E WITH CIRCUMFLEX BELOW;Ll;0;L;0065 032D;;;;N;;;1E18;;1E18 1E1A;LATIN CAPITAL LETTER E WITH TILDE BELOW;Lu;0;L;0045 0330;;;;N;;;;1E1B; 1E1B;LATIN SMALL LETTER E WITH TILDE BELOW;Ll;0;L;0065 0330;;;;N;;;1E1A;;1E1A 1E1C;LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE;Lu;0;L;0228 0306;;;;N;;;;1E1D; 1E1D;LATIN SMALL LETTER E WITH CEDILLA AND BREVE;Ll;0;L;0229 0306;;;;N;;;1E1C;;1E1C 1E1E;LATIN CAPITAL LETTER F WITH DOT ABOVE;Lu;0;L;0046 0307;;;;N;;;;1E1F; 1E1F;LATIN SMALL LETTER F WITH DOT ABOVE;Ll;0;L;0066 0307;;;;N;;;1E1E;;1E1E 1E20;LATIN CAPITAL LETTER G WITH MACRON;Lu;0;L;0047 0304;;;;N;;;;1E21; 1E21;LATIN SMALL LETTER G WITH MACRON;Ll;0;L;0067 0304;;;;N;;;1E20;;1E20 1E22;LATIN CAPITAL LETTER H WITH DOT ABOVE;Lu;0;L;0048 0307;;;;N;;;;1E23; 1E23;LATIN SMALL LETTER H WITH DOT ABOVE;Ll;0;L;0068 0307;;;;N;;;1E22;;1E22 1E24;LATIN CAPITAL LETTER H WITH DOT BELOW;Lu;0;L;0048 0323;;;;N;;;;1E25; 1E25;LATIN SMALL LETTER H WITH DOT BELOW;Ll;0;L;0068 0323;;;;N;;;1E24;;1E24 1E26;LATIN CAPITAL LETTER H WITH DIAERESIS;Lu;0;L;0048 0308;;;;N;;;;1E27; 1E27;LATIN SMALL LETTER H WITH DIAERESIS;Ll;0;L;0068 0308;;;;N;;;1E26;;1E26 1E28;LATIN CAPITAL LETTER H WITH CEDILLA;Lu;0;L;0048 0327;;;;N;;;;1E29; 1E29;LATIN SMALL LETTER H WITH CEDILLA;Ll;0;L;0068 0327;;;;N;;;1E28;;1E28 1E2A;LATIN CAPITAL LETTER H WITH BREVE BELOW;Lu;0;L;0048 032E;;;;N;;;;1E2B; 1E2B;LATIN SMALL LETTER H WITH BREVE BELOW;Ll;0;L;0068 032E;;;;N;;;1E2A;;1E2A 1E2C;LATIN CAPITAL LETTER I WITH TILDE BELOW;Lu;0;L;0049 0330;;;;N;;;;1E2D; 1E2D;LATIN SMALL LETTER I WITH TILDE BELOW;Ll;0;L;0069 0330;;;;N;;;1E2C;;1E2C 1E2E;LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE;Lu;0;L;00CF 0301;;;;N;;;;1E2F; 1E2F;LATIN SMALL LETTER I WITH DIAERESIS AND ACUTE;Ll;0;L;00EF 0301;;;;N;;;1E2E;;1E2E 1E30;LATIN CAPITAL LETTER K WITH ACUTE;Lu;0;L;004B 0301;;;;N;;;;1E31; 1E31;LATIN SMALL LETTER K WITH ACUTE;Ll;0;L;006B 0301;;;;N;;;1E30;;1E30 1E32;LATIN CAPITAL LETTER K WITH DOT BELOW;Lu;0;L;004B 0323;;;;N;;;;1E33; 1E33;LATIN SMALL LETTER K WITH DOT BELOW;Ll;0;L;006B 0323;;;;N;;;1E32;;1E32 1E34;LATIN CAPITAL LETTER K WITH LINE BELOW;Lu;0;L;004B 0331;;;;N;;;;1E35; 1E35;LATIN SMALL LETTER K WITH LINE BELOW;Ll;0;L;006B 0331;;;;N;;;1E34;;1E34 1E36;LATIN CAPITAL LETTER L WITH DOT BELOW;Lu;0;L;004C 0323;;;;N;;;;1E37; 1E37;LATIN SMALL LETTER L WITH DOT BELOW;Ll;0;L;006C 0323;;;;N;;;1E36;;1E36 1E38;LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON;Lu;0;L;1E36 0304;;;;N;;;;1E39; 1E39;LATIN SMALL LETTER L WITH DOT BELOW AND MACRON;Ll;0;L;1E37 0304;;;;N;;;1E38;;1E38 1E3A;LATIN CAPITAL LETTER L WITH LINE BELOW;Lu;0;L;004C 0331;;;;N;;;;1E3B; 1E3B;LATIN SMALL LETTER L WITH LINE BELOW;Ll;0;L;006C 0331;;;;N;;;1E3A;;1E3A 1E3C;LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW;Lu;0;L;004C 032D;;;;N;;;;1E3D; 1E3D;LATIN SMALL LETTER L WITH CIRCUMFLEX BELOW;Ll;0;L;006C 032D;;;;N;;;1E3C;;1E3C 1E3E;LATIN CAPITAL LETTER M WITH ACUTE;Lu;0;L;004D 0301;;;;N;;;;1E3F; 1E3F;LATIN SMALL LETTER M WITH ACUTE;Ll;0;L;006D 0301;;;;N;;;1E3E;;1E3E 1E40;LATIN CAPITAL LETTER M WITH DOT ABOVE;Lu;0;L;004D 0307;;;;N;;;;1E41; 1E41;LATIN SMALL LETTER M WITH DOT ABOVE;Ll;0;L;006D 0307;;;;N;;;1E40;;1E40 1E42;LATIN CAPITAL LETTER M WITH DOT BELOW;Lu;0;L;004D 0323;;;;N;;;;1E43; 1E43;LATIN SMALL LETTER M WITH DOT BELOW;Ll;0;L;006D 0323;;;;N;;;1E42;;1E42 1E44;LATIN CAPITAL LETTER N WITH DOT ABOVE;Lu;0;L;004E 0307;;;;N;;;;1E45; 1E45;LATIN SMALL LETTER N WITH DOT ABOVE;Ll;0;L;006E 0307;;;;N;;;1E44;;1E44 1E46;LATIN CAPITAL LETTER N WITH DOT BELOW;Lu;0;L;004E 0323;;;;N;;;;1E47; 1E47;LATIN SMALL LETTER N WITH DOT BELOW;Ll;0;L;006E 0323;;;;N;;;1E46;;1E46 1E48;LATIN CAPITAL LETTER N WITH LINE BELOW;Lu;0;L;004E 0331;;;;N;;;;1E49; 1E49;LATIN SMALL LETTER N WITH LINE BELOW;Ll;0;L;006E 0331;;;;N;;;1E48;;1E48 1E4A;LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW;Lu;0;L;004E 032D;;;;N;;;;1E4B; 1E4B;LATIN SMALL LETTER N WITH CIRCUMFLEX BELOW;Ll;0;L;006E 032D;;;;N;;;1E4A;;1E4A 1E4C;LATIN CAPITAL LETTER O WITH TILDE AND ACUTE;Lu;0;L;00D5 0301;;;;N;;;;1E4D; 1E4D;LATIN SMALL LETTER O WITH TILDE AND ACUTE;Ll;0;L;00F5 0301;;;;N;;;1E4C;;1E4C 1E4E;LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS;Lu;0;L;00D5 0308;;;;N;;;;1E4F; 1E4F;LATIN SMALL LETTER O WITH TILDE AND DIAERESIS;Ll;0;L;00F5 0308;;;;N;;;1E4E;;1E4E 1E50;LATIN CAPITAL LETTER O WITH MACRON AND GRAVE;Lu;0;L;014C 0300;;;;N;;;;1E51; 1E51;LATIN SMALL LETTER O WITH MACRON AND GRAVE;Ll;0;L;014D 0300;;;;N;;;1E50;;1E50 1E52;LATIN CAPITAL LETTER O WITH MACRON AND ACUTE;Lu;0;L;014C 0301;;;;N;;;;1E53; 1E53;LATIN SMALL LETTER O WITH MACRON AND ACUTE;Ll;0;L;014D 0301;;;;N;;;1E52;;1E52 1E54;LATIN CAPITAL LETTER P WITH ACUTE;Lu;0;L;0050 0301;;;;N;;;;1E55; 1E55;LATIN SMALL LETTER P WITH ACUTE;Ll;0;L;0070 0301;;;;N;;;1E54;;1E54 1E56;LATIN CAPITAL LETTER P WITH DOT ABOVE;Lu;0;L;0050 0307;;;;N;;;;1E57; 1E57;LATIN SMALL LETTER P WITH DOT ABOVE;Ll;0;L;0070 0307;;;;N;;;1E56;;1E56 1E58;LATIN CAPITAL LETTER R WITH DOT ABOVE;Lu;0;L;0052 0307;;;;N;;;;1E59; 1E59;LATIN SMALL LETTER R WITH DOT ABOVE;Ll;0;L;0072 0307;;;;N;;;1E58;;1E58 1E5A;LATIN CAPITAL LETTER R WITH DOT BELOW;Lu;0;L;0052 0323;;;;N;;;;1E5B; 1E5B;LATIN SMALL LETTER R WITH DOT BELOW;Ll;0;L;0072 0323;;;;N;;;1E5A;;1E5A 1E5C;LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON;Lu;0;L;1E5A 0304;;;;N;;;;1E5D; 1E5D;LATIN SMALL LETTER R WITH DOT BELOW AND MACRON;Ll;0;L;1E5B 0304;;;;N;;;1E5C;;1E5C 1E5E;LATIN CAPITAL LETTER R WITH LINE BELOW;Lu;0;L;0052 0331;;;;N;;;;1E5F; 1E5F;LATIN SMALL LETTER R WITH LINE BELOW;Ll;0;L;0072 0331;;;;N;;;1E5E;;1E5E 1E60;LATIN CAPITAL LETTER S WITH DOT ABOVE;Lu;0;L;0053 0307;;;;N;;;;1E61; 1E61;LATIN SMALL LETTER S WITH DOT ABOVE;Ll;0;L;0073 0307;;;;N;;;1E60;;1E60 1E62;LATIN CAPITAL LETTER S WITH DOT BELOW;Lu;0;L;0053 0323;;;;N;;;;1E63; 1E63;LATIN SMALL LETTER S WITH DOT BELOW;Ll;0;L;0073 0323;;;;N;;;1E62;;1E62 1E64;LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE;Lu;0;L;015A 0307;;;;N;;;;1E65; 1E65;LATIN SMALL LETTER S WITH ACUTE AND DOT ABOVE;Ll;0;L;015B 0307;;;;N;;;1E64;;1E64 1E66;LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE;Lu;0;L;0160 0307;;;;N;;;;1E67; 1E67;LATIN SMALL LETTER S WITH CARON AND DOT ABOVE;Ll;0;L;0161 0307;;;;N;;;1E66;;1E66 1E68;LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE;Lu;0;L;1E62 0307;;;;N;;;;1E69; 1E69;LATIN SMALL LETTER S WITH DOT BELOW AND DOT ABOVE;Ll;0;L;1E63 0307;;;;N;;;1E68;;1E68 1E6A;LATIN CAPITAL LETTER T WITH DOT ABOVE;Lu;0;L;0054 0307;;;;N;;;;1E6B; 1E6B;LATIN SMALL LETTER T WITH DOT ABOVE;Ll;0;L;0074 0307;;;;N;;;1E6A;;1E6A 1E6C;LATIN CAPITAL LETTER T WITH DOT BELOW;Lu;0;L;0054 0323;;;;N;;;;1E6D; 1E6D;LATIN SMALL LETTER T WITH DOT BELOW;Ll;0;L;0074 0323;;;;N;;;1E6C;;1E6C 1E6E;LATIN CAPITAL LETTER T WITH LINE BELOW;Lu;0;L;0054 0331;;;;N;;;;1E6F; 1E6F;LATIN SMALL LETTER T WITH LINE BELOW;Ll;0;L;0074 0331;;;;N;;;1E6E;;1E6E 1E70;LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW;Lu;0;L;0054 032D;;;;N;;;;1E71; 1E71;LATIN SMALL LETTER T WITH CIRCUMFLEX BELOW;Ll;0;L;0074 032D;;;;N;;;1E70;;1E70 1E72;LATIN CAPITAL LETTER U WITH DIAERESIS BELOW;Lu;0;L;0055 0324;;;;N;;;;1E73; 1E73;LATIN SMALL LETTER U WITH DIAERESIS BELOW;Ll;0;L;0075 0324;;;;N;;;1E72;;1E72 1E74;LATIN CAPITAL LETTER U WITH TILDE BELOW;Lu;0;L;0055 0330;;;;N;;;;1E75; 1E75;LATIN SMALL LETTER U WITH TILDE BELOW;Ll;0;L;0075 0330;;;;N;;;1E74;;1E74 1E76;LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW;Lu;0;L;0055 032D;;;;N;;;;1E77; 1E77;LATIN SMALL LETTER U WITH CIRCUMFLEX BELOW;Ll;0;L;0075 032D;;;;N;;;1E76;;1E76 1E78;LATIN CAPITAL LETTER U WITH TILDE AND ACUTE;Lu;0;L;0168 0301;;;;N;;;;1E79; 1E79;LATIN SMALL LETTER U WITH TILDE AND ACUTE;Ll;0;L;0169 0301;;;;N;;;1E78;;1E78 1E7A;LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS;Lu;0;L;016A 0308;;;;N;;;;1E7B; 1E7B;LATIN SMALL LETTER U WITH MACRON AND DIAERESIS;Ll;0;L;016B 0308;;;;N;;;1E7A;;1E7A 1E7C;LATIN CAPITAL LETTER V WITH TILDE;Lu;0;L;0056 0303;;;;N;;;;1E7D; 1E7D;LATIN SMALL LETTER V WITH TILDE;Ll;0;L;0076 0303;;;;N;;;1E7C;;1E7C 1E7E;LATIN CAPITAL LETTER V WITH DOT BELOW;Lu;0;L;0056 0323;;;;N;;;;1E7F; 1E7F;LATIN SMALL LETTER V WITH DOT BELOW;Ll;0;L;0076 0323;;;;N;;;1E7E;;1E7E 1E80;LATIN CAPITAL LETTER W WITH GRAVE;Lu;0;L;0057 0300;;;;N;;;;1E81; 1E81;LATIN SMALL LETTER W WITH GRAVE;Ll;0;L;0077 0300;;;;N;;;1E80;;1E80 1E82;LATIN CAPITAL LETTER W WITH ACUTE;Lu;0;L;0057 0301;;;;N;;;;1E83; 1E83;LATIN SMALL LETTER W WITH ACUTE;Ll;0;L;0077 0301;;;;N;;;1E82;;1E82 1E84;LATIN CAPITAL LETTER W WITH DIAERESIS;Lu;0;L;0057 0308;;;;N;;;;1E85; 1E85;LATIN SMALL LETTER W WITH DIAERESIS;Ll;0;L;0077 0308;;;;N;;;1E84;;1E84 1E86;LATIN CAPITAL LETTER W WITH DOT ABOVE;Lu;0;L;0057 0307;;;;N;;;;1E87; 1E87;LATIN SMALL LETTER W WITH DOT ABOVE;Ll;0;L;0077 0307;;;;N;;;1E86;;1E86 1E88;LATIN CAPITAL LETTER W WITH DOT BELOW;Lu;0;L;0057 0323;;;;N;;;;1E89; 1E89;LATIN SMALL LETTER W WITH DOT BELOW;Ll;0;L;0077 0323;;;;N;;;1E88;;1E88 1E8A;LATIN CAPITAL LETTER X WITH DOT ABOVE;Lu;0;L;0058 0307;;;;N;;;;1E8B; 1E8B;LATIN SMALL LETTER X WITH DOT ABOVE;Ll;0;L;0078 0307;;;;N;;;1E8A;;1E8A 1E8C;LATIN CAPITAL LETTER X WITH DIAERESIS;Lu;0;L;0058 0308;;;;N;;;;1E8D; 1E8D;LATIN SMALL LETTER X WITH DIAERESIS;Ll;0;L;0078 0308;;;;N;;;1E8C;;1E8C 1E8E;LATIN CAPITAL LETTER Y WITH DOT ABOVE;Lu;0;L;0059 0307;;;;N;;;;1E8F; 1E8F;LATIN SMALL LETTER Y WITH DOT ABOVE;Ll;0;L;0079 0307;;;;N;;;1E8E;;1E8E 1E90;LATIN CAPITAL LETTER Z WITH CIRCUMFLEX;Lu;0;L;005A 0302;;;;N;;;;1E91; 1E91;LATIN SMALL LETTER Z WITH CIRCUMFLEX;Ll;0;L;007A 0302;;;;N;;;1E90;;1E90 1E92;LATIN CAPITAL LETTER Z WITH DOT BELOW;Lu;0;L;005A 0323;;;;N;;;;1E93; 1E93;LATIN SMALL LETTER Z WITH DOT BELOW;Ll;0;L;007A 0323;;;;N;;;1E92;;1E92 1E94;LATIN CAPITAL LETTER Z WITH LINE BELOW;Lu;0;L;005A 0331;;;;N;;;;1E95; 1E95;LATIN SMALL LETTER Z WITH LINE BELOW;Ll;0;L;007A 0331;;;;N;;;1E94;;1E94 1E96;LATIN SMALL LETTER H WITH LINE BELOW;Ll;0;L;0068 0331;;;;N;;;;; 1E97;LATIN SMALL LETTER T WITH DIAERESIS;Ll;0;L;0074 0308;;;;N;;;;; 1E98;LATIN SMALL LETTER W WITH RING ABOVE;Ll;0;L;0077 030A;;;;N;;;;; 1E99;LATIN SMALL LETTER Y WITH RING ABOVE;Ll;0;L;0079 030A;;;;N;;;;; 1E9A;LATIN SMALL LETTER A WITH RIGHT HALF RING;Ll;0;L; 0061 02BE;;;;N;;;;; 1E9B;LATIN SMALL LETTER LONG S WITH DOT ABOVE;Ll;0;L;017F 0307;;;;N;;;1E60;;1E60 1EA0;LATIN CAPITAL LETTER A WITH DOT BELOW;Lu;0;L;0041 0323;;;;N;;;;1EA1; 1EA1;LATIN SMALL LETTER A WITH DOT BELOW;Ll;0;L;0061 0323;;;;N;;;1EA0;;1EA0 1EA2;LATIN CAPITAL LETTER A WITH HOOK ABOVE;Lu;0;L;0041 0309;;;;N;;;;1EA3; 1EA3;LATIN SMALL LETTER A WITH HOOK ABOVE;Ll;0;L;0061 0309;;;;N;;;1EA2;;1EA2 1EA4;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00C2 0301;;;;N;;;;1EA5; 1EA5;LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00E2 0301;;;;N;;;1EA4;;1EA4 1EA6;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00C2 0300;;;;N;;;;1EA7; 1EA7;LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00E2 0300;;;;N;;;1EA6;;1EA6 1EA8;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00C2 0309;;;;N;;;;1EA9; 1EA9;LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00E2 0309;;;;N;;;1EA8;;1EA8 1EAA;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE;Lu;0;L;00C2 0303;;;;N;;;;1EAB; 1EAB;LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE;Ll;0;L;00E2 0303;;;;N;;;1EAA;;1EAA 1EAC;LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EA0 0302;;;;N;;;;1EAD; 1EAD;LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EA1 0302;;;;N;;;1EAC;;1EAC 1EAE;LATIN CAPITAL LETTER A WITH BREVE AND ACUTE;Lu;0;L;0102 0301;;;;N;;;;1EAF; 1EAF;LATIN SMALL LETTER A WITH BREVE AND ACUTE;Ll;0;L;0103 0301;;;;N;;;1EAE;;1EAE 1EB0;LATIN CAPITAL LETTER A WITH BREVE AND GRAVE;Lu;0;L;0102 0300;;;;N;;;;1EB1; 1EB1;LATIN SMALL LETTER A WITH BREVE AND GRAVE;Ll;0;L;0103 0300;;;;N;;;1EB0;;1EB0 1EB2;LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE;Lu;0;L;0102 0309;;;;N;;;;1EB3; 1EB3;LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE;Ll;0;L;0103 0309;;;;N;;;1EB2;;1EB2 1EB4;LATIN CAPITAL LETTER A WITH BREVE AND TILDE;Lu;0;L;0102 0303;;;;N;;;;1EB5; 1EB5;LATIN SMALL LETTER A WITH BREVE AND TILDE;Ll;0;L;0103 0303;;;;N;;;1EB4;;1EB4 1EB6;LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW;Lu;0;L;1EA0 0306;;;;N;;;;1EB7; 1EB7;LATIN SMALL LETTER A WITH BREVE AND DOT BELOW;Ll;0;L;1EA1 0306;;;;N;;;1EB6;;1EB6 1EB8;LATIN CAPITAL LETTER E WITH DOT BELOW;Lu;0;L;0045 0323;;;;N;;;;1EB9; 1EB9;LATIN SMALL LETTER E WITH DOT BELOW;Ll;0;L;0065 0323;;;;N;;;1EB8;;1EB8 1EBA;LATIN CAPITAL LETTER E WITH HOOK ABOVE;Lu;0;L;0045 0309;;;;N;;;;1EBB; 1EBB;LATIN SMALL LETTER E WITH HOOK ABOVE;Ll;0;L;0065 0309;;;;N;;;1EBA;;1EBA 1EBC;LATIN CAPITAL LETTER E WITH TILDE;Lu;0;L;0045 0303;;;;N;;;;1EBD; 1EBD;LATIN SMALL LETTER E WITH TILDE;Ll;0;L;0065 0303;;;;N;;;1EBC;;1EBC 1EBE;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00CA 0301;;;;N;;;;1EBF; 1EBF;LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00EA 0301;;;;N;;;1EBE;;1EBE 1EC0;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00CA 0300;;;;N;;;;1EC1; 1EC1;LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00EA 0300;;;;N;;;1EC0;;1EC0 1EC2;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00CA 0309;;;;N;;;;1EC3; 1EC3;LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00EA 0309;;;;N;;;1EC2;;1EC2 1EC4;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE;Lu;0;L;00CA 0303;;;;N;;;;1EC5; 1EC5;LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE;Ll;0;L;00EA 0303;;;;N;;;1EC4;;1EC4 1EC6;LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1EB8 0302;;;;N;;;;1EC7; 1EC7;LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1EB9 0302;;;;N;;;1EC6;;1EC6 1EC8;LATIN CAPITAL LETTER I WITH HOOK ABOVE;Lu;0;L;0049 0309;;;;N;;;;1EC9; 1EC9;LATIN SMALL LETTER I WITH HOOK ABOVE;Ll;0;L;0069 0309;;;;N;;;1EC8;;1EC8 1ECA;LATIN CAPITAL LETTER I WITH DOT BELOW;Lu;0;L;0049 0323;;;;N;;;;1ECB; 1ECB;LATIN SMALL LETTER I WITH DOT BELOW;Ll;0;L;0069 0323;;;;N;;;1ECA;;1ECA 1ECC;LATIN CAPITAL LETTER O WITH DOT BELOW;Lu;0;L;004F 0323;;;;N;;;;1ECD; 1ECD;LATIN SMALL LETTER O WITH DOT BELOW;Ll;0;L;006F 0323;;;;N;;;1ECC;;1ECC 1ECE;LATIN CAPITAL LETTER O WITH HOOK ABOVE;Lu;0;L;004F 0309;;;;N;;;;1ECF; 1ECF;LATIN SMALL LETTER O WITH HOOK ABOVE;Ll;0;L;006F 0309;;;;N;;;1ECE;;1ECE 1ED0;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE;Lu;0;L;00D4 0301;;;;N;;;;1ED1; 1ED1;LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE;Ll;0;L;00F4 0301;;;;N;;;1ED0;;1ED0 1ED2;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE;Lu;0;L;00D4 0300;;;;N;;;;1ED3; 1ED3;LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE;Ll;0;L;00F4 0300;;;;N;;;1ED2;;1ED2 1ED4;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Lu;0;L;00D4 0309;;;;N;;;;1ED5; 1ED5;LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE;Ll;0;L;00F4 0309;;;;N;;;1ED4;;1ED4 1ED6;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE;Lu;0;L;00D4 0303;;;;N;;;;1ED7; 1ED7;LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE;Ll;0;L;00F4 0303;;;;N;;;1ED6;;1ED6 1ED8;LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Lu;0;L;1ECC 0302;;;;N;;;;1ED9; 1ED9;LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW;Ll;0;L;1ECD 0302;;;;N;;;1ED8;;1ED8 1EDA;LATIN CAPITAL LETTER O WITH HORN AND ACUTE;Lu;0;L;01A0 0301;;;;N;;;;1EDB; 1EDB;LATIN SMALL LETTER O WITH HORN AND ACUTE;Ll;0;L;01A1 0301;;;;N;;;1EDA;;1EDA 1EDC;LATIN CAPITAL LETTER O WITH HORN AND GRAVE;Lu;0;L;01A0 0300;;;;N;;;;1EDD; 1EDD;LATIN SMALL LETTER O WITH HORN AND GRAVE;Ll;0;L;01A1 0300;;;;N;;;1EDC;;1EDC 1EDE;LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE;Lu;0;L;01A0 0309;;;;N;;;;1EDF; 1EDF;LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE;Ll;0;L;01A1 0309;;;;N;;;1EDE;;1EDE 1EE0;LATIN CAPITAL LETTER O WITH HORN AND TILDE;Lu;0;L;01A0 0303;;;;N;;;;1EE1; 1EE1;LATIN SMALL LETTER O WITH HORN AND TILDE;Ll;0;L;01A1 0303;;;;N;;;1EE0;;1EE0 1EE2;LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW;Lu;0;L;01A0 0323;;;;N;;;;1EE3; 1EE3;LATIN SMALL LETTER O WITH HORN AND DOT BELOW;Ll;0;L;01A1 0323;;;;N;;;1EE2;;1EE2 1EE4;LATIN CAPITAL LETTER U WITH DOT BELOW;Lu;0;L;0055 0323;;;;N;;;;1EE5; 1EE5;LATIN SMALL LETTER U WITH DOT BELOW;Ll;0;L;0075 0323;;;;N;;;1EE4;;1EE4 1EE6;LATIN CAPITAL LETTER U WITH HOOK ABOVE;Lu;0;L;0055 0309;;;;N;;;;1EE7; 1EE7;LATIN SMALL LETTER U WITH HOOK ABOVE;Ll;0;L;0075 0309;;;;N;;;1EE6;;1EE6 1EE8;LATIN CAPITAL LETTER U WITH HORN AND ACUTE;Lu;0;L;01AF 0301;;;;N;;;;1EE9; 1EE9;LATIN SMALL LETTER U WITH HORN AND ACUTE;Ll;0;L;01B0 0301;;;;N;;;1EE8;;1EE8 1EEA;LATIN CAPITAL LETTER U WITH HORN AND GRAVE;Lu;0;L;01AF 0300;;;;N;;;;1EEB; 1EEB;LATIN SMALL LETTER U WITH HORN AND GRAVE;Ll;0;L;01B0 0300;;;;N;;;1EEA;;1EEA 1EEC;LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE;Lu;0;L;01AF 0309;;;;N;;;;1EED; 1EED;LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE;Ll;0;L;01B0 0309;;;;N;;;1EEC;;1EEC 1EEE;LATIN CAPITAL LETTER U WITH HORN AND TILDE;Lu;0;L;01AF 0303;;;;N;;;;1EEF; 1EEF;LATIN SMALL LETTER U WITH HORN AND TILDE;Ll;0;L;01B0 0303;;;;N;;;1EEE;;1EEE 1EF0;LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW;Lu;0;L;01AF 0323;;;;N;;;;1EF1; 1EF1;LATIN SMALL LETTER U WITH HORN AND DOT BELOW;Ll;0;L;01B0 0323;;;;N;;;1EF0;;1EF0 1EF2;LATIN CAPITAL LETTER Y WITH GRAVE;Lu;0;L;0059 0300;;;;N;;;;1EF3; 1EF3;LATIN SMALL LETTER Y WITH GRAVE;Ll;0;L;0079 0300;;;;N;;;1EF2;;1EF2 1EF4;LATIN CAPITAL LETTER Y WITH DOT BELOW;Lu;0;L;0059 0323;;;;N;;;;1EF5; 1EF5;LATIN SMALL LETTER Y WITH DOT BELOW;Ll;0;L;0079 0323;;;;N;;;1EF4;;1EF4 1EF6;LATIN CAPITAL LETTER Y WITH HOOK ABOVE;Lu;0;L;0059 0309;;;;N;;;;1EF7; 1EF7;LATIN SMALL LETTER Y WITH HOOK ABOVE;Ll;0;L;0079 0309;;;;N;;;1EF6;;1EF6 1EF8;LATIN CAPITAL LETTER Y WITH TILDE;Lu;0;L;0059 0303;;;;N;;;;1EF9; 1EF9;LATIN SMALL LETTER Y WITH TILDE;Ll;0;L;0079 0303;;;;N;;;1EF8;;1EF8 1F00;GREEK SMALL LETTER ALPHA WITH PSILI;Ll;0;L;03B1 0313;;;;N;;;1F08;;1F08 1F01;GREEK SMALL LETTER ALPHA WITH DASIA;Ll;0;L;03B1 0314;;;;N;;;1F09;;1F09 1F02;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA;Ll;0;L;1F00 0300;;;;N;;;1F0A;;1F0A 1F03;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA;Ll;0;L;1F01 0300;;;;N;;;1F0B;;1F0B 1F04;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA;Ll;0;L;1F00 0301;;;;N;;;1F0C;;1F0C 1F05;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA;Ll;0;L;1F01 0301;;;;N;;;1F0D;;1F0D 1F06;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI;Ll;0;L;1F00 0342;;;;N;;;1F0E;;1F0E 1F07;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI;Ll;0;L;1F01 0342;;;;N;;;1F0F;;1F0F 1F08;GREEK CAPITAL LETTER ALPHA WITH PSILI;Lu;0;L;0391 0313;;;;N;;;;1F00; 1F09;GREEK CAPITAL LETTER ALPHA WITH DASIA;Lu;0;L;0391 0314;;;;N;;;;1F01; 1F0A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA;Lu;0;L;1F08 0300;;;;N;;;;1F02; 1F0B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA;Lu;0;L;1F09 0300;;;;N;;;;1F03; 1F0C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA;Lu;0;L;1F08 0301;;;;N;;;;1F04; 1F0D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA;Lu;0;L;1F09 0301;;;;N;;;;1F05; 1F0E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI;Lu;0;L;1F08 0342;;;;N;;;;1F06; 1F0F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI;Lu;0;L;1F09 0342;;;;N;;;;1F07; 1F10;GREEK SMALL LETTER EPSILON WITH PSILI;Ll;0;L;03B5 0313;;;;N;;;1F18;;1F18 1F11;GREEK SMALL LETTER EPSILON WITH DASIA;Ll;0;L;03B5 0314;;;;N;;;1F19;;1F19 1F12;GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA;Ll;0;L;1F10 0300;;;;N;;;1F1A;;1F1A 1F13;GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA;Ll;0;L;1F11 0300;;;;N;;;1F1B;;1F1B 1F14;GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA;Ll;0;L;1F10 0301;;;;N;;;1F1C;;1F1C 1F15;GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA;Ll;0;L;1F11 0301;;;;N;;;1F1D;;1F1D 1F18;GREEK CAPITAL LETTER EPSILON WITH PSILI;Lu;0;L;0395 0313;;;;N;;;;1F10; 1F19;GREEK CAPITAL LETTER EPSILON WITH DASIA;Lu;0;L;0395 0314;;;;N;;;;1F11; 1F1A;GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA;Lu;0;L;1F18 0300;;;;N;;;;1F12; 1F1B;GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA;Lu;0;L;1F19 0300;;;;N;;;;1F13; 1F1C;GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA;Lu;0;L;1F18 0301;;;;N;;;;1F14; 1F1D;GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA;Lu;0;L;1F19 0301;;;;N;;;;1F15; 1F20;GREEK SMALL LETTER ETA WITH PSILI;Ll;0;L;03B7 0313;;;;N;;;1F28;;1F28 1F21;GREEK SMALL LETTER ETA WITH DASIA;Ll;0;L;03B7 0314;;;;N;;;1F29;;1F29 1F22;GREEK SMALL LETTER ETA WITH PSILI AND VARIA;Ll;0;L;1F20 0300;;;;N;;;1F2A;;1F2A 1F23;GREEK SMALL LETTER ETA WITH DASIA AND VARIA;Ll;0;L;1F21 0300;;;;N;;;1F2B;;1F2B 1F24;GREEK SMALL LETTER ETA WITH PSILI AND OXIA;Ll;0;L;1F20 0301;;;;N;;;1F2C;;1F2C 1F25;GREEK SMALL LETTER ETA WITH DASIA AND OXIA;Ll;0;L;1F21 0301;;;;N;;;1F2D;;1F2D 1F26;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI;Ll;0;L;1F20 0342;;;;N;;;1F2E;;1F2E 1F27;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI;Ll;0;L;1F21 0342;;;;N;;;1F2F;;1F2F 1F28;GREEK CAPITAL LETTER ETA WITH PSILI;Lu;0;L;0397 0313;;;;N;;;;1F20; 1F29;GREEK CAPITAL LETTER ETA WITH DASIA;Lu;0;L;0397 0314;;;;N;;;;1F21; 1F2A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA;Lu;0;L;1F28 0300;;;;N;;;;1F22; 1F2B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA;Lu;0;L;1F29 0300;;;;N;;;;1F23; 1F2C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA;Lu;0;L;1F28 0301;;;;N;;;;1F24; 1F2D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA;Lu;0;L;1F29 0301;;;;N;;;;1F25; 1F2E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI;Lu;0;L;1F28 0342;;;;N;;;;1F26; 1F2F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI;Lu;0;L;1F29 0342;;;;N;;;;1F27; 1F30;GREEK SMALL LETTER IOTA WITH PSILI;Ll;0;L;03B9 0313;;;;N;;;1F38;;1F38 1F31;GREEK SMALL LETTER IOTA WITH DASIA;Ll;0;L;03B9 0314;;;;N;;;1F39;;1F39 1F32;GREEK SMALL LETTER IOTA WITH PSILI AND VARIA;Ll;0;L;1F30 0300;;;;N;;;1F3A;;1F3A 1F33;GREEK SMALL LETTER IOTA WITH DASIA AND VARIA;Ll;0;L;1F31 0300;;;;N;;;1F3B;;1F3B 1F34;GREEK SMALL LETTER IOTA WITH PSILI AND OXIA;Ll;0;L;1F30 0301;;;;N;;;1F3C;;1F3C 1F35;GREEK SMALL LETTER IOTA WITH DASIA AND OXIA;Ll;0;L;1F31 0301;;;;N;;;1F3D;;1F3D 1F36;GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI;Ll;0;L;1F30 0342;;;;N;;;1F3E;;1F3E 1F37;GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI;Ll;0;L;1F31 0342;;;;N;;;1F3F;;1F3F 1F38;GREEK CAPITAL LETTER IOTA WITH PSILI;Lu;0;L;0399 0313;;;;N;;;;1F30; 1F39;GREEK CAPITAL LETTER IOTA WITH DASIA;Lu;0;L;0399 0314;;;;N;;;;1F31; 1F3A;GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA;Lu;0;L;1F38 0300;;;;N;;;;1F32; 1F3B;GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA;Lu;0;L;1F39 0300;;;;N;;;;1F33; 1F3C;GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA;Lu;0;L;1F38 0301;;;;N;;;;1F34; 1F3D;GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA;Lu;0;L;1F39 0301;;;;N;;;;1F35; 1F3E;GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI;Lu;0;L;1F38 0342;;;;N;;;;1F36; 1F3F;GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI;Lu;0;L;1F39 0342;;;;N;;;;1F37; 1F40;GREEK SMALL LETTER OMICRON WITH PSILI;Ll;0;L;03BF 0313;;;;N;;;1F48;;1F48 1F41;GREEK SMALL LETTER OMICRON WITH DASIA;Ll;0;L;03BF 0314;;;;N;;;1F49;;1F49 1F42;GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA;Ll;0;L;1F40 0300;;;;N;;;1F4A;;1F4A 1F43;GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA;Ll;0;L;1F41 0300;;;;N;;;1F4B;;1F4B 1F44;GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA;Ll;0;L;1F40 0301;;;;N;;;1F4C;;1F4C 1F45;GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA;Ll;0;L;1F41 0301;;;;N;;;1F4D;;1F4D 1F48;GREEK CAPITAL LETTER OMICRON WITH PSILI;Lu;0;L;039F 0313;;;;N;;;;1F40; 1F49;GREEK CAPITAL LETTER OMICRON WITH DASIA;Lu;0;L;039F 0314;;;;N;;;;1F41; 1F4A;GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA;Lu;0;L;1F48 0300;;;;N;;;;1F42; 1F4B;GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA;Lu;0;L;1F49 0300;;;;N;;;;1F43; 1F4C;GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA;Lu;0;L;1F48 0301;;;;N;;;;1F44; 1F4D;GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA;Lu;0;L;1F49 0301;;;;N;;;;1F45; 1F50;GREEK SMALL LETTER UPSILON WITH PSILI;Ll;0;L;03C5 0313;;;;N;;;;; 1F51;GREEK SMALL LETTER UPSILON WITH DASIA;Ll;0;L;03C5 0314;;;;N;;;1F59;;1F59 1F52;GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA;Ll;0;L;1F50 0300;;;;N;;;;; 1F53;GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA;Ll;0;L;1F51 0300;;;;N;;;1F5B;;1F5B 1F54;GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA;Ll;0;L;1F50 0301;;;;N;;;;; 1F55;GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA;Ll;0;L;1F51 0301;;;;N;;;1F5D;;1F5D 1F56;GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI;Ll;0;L;1F50 0342;;;;N;;;;; 1F57;GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI;Ll;0;L;1F51 0342;;;;N;;;1F5F;;1F5F 1F59;GREEK CAPITAL LETTER UPSILON WITH DASIA;Lu;0;L;03A5 0314;;;;N;;;;1F51; 1F5B;GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA;Lu;0;L;1F59 0300;;;;N;;;;1F53; 1F5D;GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA;Lu;0;L;1F59 0301;;;;N;;;;1F55; 1F5F;GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI;Lu;0;L;1F59 0342;;;;N;;;;1F57; 1F60;GREEK SMALL LETTER OMEGA WITH PSILI;Ll;0;L;03C9 0313;;;;N;;;1F68;;1F68 1F61;GREEK SMALL LETTER OMEGA WITH DASIA;Ll;0;L;03C9 0314;;;;N;;;1F69;;1F69 1F62;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA;Ll;0;L;1F60 0300;;;;N;;;1F6A;;1F6A 1F63;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA;Ll;0;L;1F61 0300;;;;N;;;1F6B;;1F6B 1F64;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA;Ll;0;L;1F60 0301;;;;N;;;1F6C;;1F6C 1F65;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA;Ll;0;L;1F61 0301;;;;N;;;1F6D;;1F6D 1F66;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI;Ll;0;L;1F60 0342;;;;N;;;1F6E;;1F6E 1F67;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI;Ll;0;L;1F61 0342;;;;N;;;1F6F;;1F6F 1F68;GREEK CAPITAL LETTER OMEGA WITH PSILI;Lu;0;L;03A9 0313;;;;N;;;;1F60; 1F69;GREEK CAPITAL LETTER OMEGA WITH DASIA;Lu;0;L;03A9 0314;;;;N;;;;1F61; 1F6A;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA;Lu;0;L;1F68 0300;;;;N;;;;1F62; 1F6B;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA;Lu;0;L;1F69 0300;;;;N;;;;1F63; 1F6C;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA;Lu;0;L;1F68 0301;;;;N;;;;1F64; 1F6D;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA;Lu;0;L;1F69 0301;;;;N;;;;1F65; 1F6E;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI;Lu;0;L;1F68 0342;;;;N;;;;1F66; 1F6F;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI;Lu;0;L;1F69 0342;;;;N;;;;1F67; 1F70;GREEK SMALL LETTER ALPHA WITH VARIA;Ll;0;L;03B1 0300;;;;N;;;1FBA;;1FBA 1F71;GREEK SMALL LETTER ALPHA WITH OXIA;Ll;0;L;03AC;;;;N;;;1FBB;;1FBB 1F72;GREEK SMALL LETTER EPSILON WITH VARIA;Ll;0;L;03B5 0300;;;;N;;;1FC8;;1FC8 1F73;GREEK SMALL LETTER EPSILON WITH OXIA;Ll;0;L;03AD;;;;N;;;1FC9;;1FC9 1F74;GREEK SMALL LETTER ETA WITH VARIA;Ll;0;L;03B7 0300;;;;N;;;1FCA;;1FCA 1F75;GREEK SMALL LETTER ETA WITH OXIA;Ll;0;L;03AE;;;;N;;;1FCB;;1FCB 1F76;GREEK SMALL LETTER IOTA WITH VARIA;Ll;0;L;03B9 0300;;;;N;;;1FDA;;1FDA 1F77;GREEK SMALL LETTER IOTA WITH OXIA;Ll;0;L;03AF;;;;N;;;1FDB;;1FDB 1F78;GREEK SMALL LETTER OMICRON WITH VARIA;Ll;0;L;03BF 0300;;;;N;;;1FF8;;1FF8 1F79;GREEK SMALL LETTER OMICRON WITH OXIA;Ll;0;L;03CC;;;;N;;;1FF9;;1FF9 1F7A;GREEK SMALL LETTER UPSILON WITH VARIA;Ll;0;L;03C5 0300;;;;N;;;1FEA;;1FEA 1F7B;GREEK SMALL LETTER UPSILON WITH OXIA;Ll;0;L;03CD;;;;N;;;1FEB;;1FEB 1F7C;GREEK SMALL LETTER OMEGA WITH VARIA;Ll;0;L;03C9 0300;;;;N;;;1FFA;;1FFA 1F7D;GREEK SMALL LETTER OMEGA WITH OXIA;Ll;0;L;03CE;;;;N;;;1FFB;;1FFB 1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 0345;;;;N;;;1F88;;1F88 1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 0345;;;;N;;;1F89;;1F89 1F82;GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F02 0345;;;;N;;;1F8A;;1F8A 1F83;GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F03 0345;;;;N;;;1F8B;;1F8B 1F84;GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F04 0345;;;;N;;;1F8C;;1F8C 1F85;GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F05 0345;;;;N;;;1F8D;;1F8D 1F86;GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F06 0345;;;;N;;;1F8E;;1F8E 1F87;GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F07 0345;;;;N;;;1F8F;;1F8F 1F88;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F08 0345;;;;N;;;;1F80; 1F89;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F09 0345;;;;N;;;;1F81; 1F8A;GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0A 0345;;;;N;;;;1F82; 1F8B;GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F0B 0345;;;;N;;;;1F83; 1F8C;GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0C 0345;;;;N;;;;1F84; 1F8D;GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F0D 0345;;;;N;;;;1F85; 1F8E;GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0E 0345;;;;N;;;;1F86; 1F8F;GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F0F 0345;;;;N;;;;1F87; 1F90;GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F20 0345;;;;N;;;1F98;;1F98 1F91;GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F21 0345;;;;N;;;1F99;;1F99 1F92;GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F22 0345;;;;N;;;1F9A;;1F9A 1F93;GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F23 0345;;;;N;;;1F9B;;1F9B 1F94;GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F24 0345;;;;N;;;1F9C;;1F9C 1F95;GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F25 0345;;;;N;;;1F9D;;1F9D 1F96;GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F26 0345;;;;N;;;1F9E;;1F9E 1F97;GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F27 0345;;;;N;;;1F9F;;1F9F 1F98;GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F28 0345;;;;N;;;;1F90; 1F99;GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F29 0345;;;;N;;;;1F91; 1F9A;GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2A 0345;;;;N;;;;1F92; 1F9B;GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F2B 0345;;;;N;;;;1F93; 1F9C;GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2C 0345;;;;N;;;;1F94; 1F9D;GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F2D 0345;;;;N;;;;1F95; 1F9E;GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2E 0345;;;;N;;;;1F96; 1F9F;GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F2F 0345;;;;N;;;;1F97; 1FA0;GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F60 0345;;;;N;;;1FA8;;1FA8 1FA1;GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F61 0345;;;;N;;;1FA9;;1FA9 1FA2;GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F62 0345;;;;N;;;1FAA;;1FAA 1FA3;GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI;Ll;0;L;1F63 0345;;;;N;;;1FAB;;1FAB 1FA4;GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F64 0345;;;;N;;;1FAC;;1FAC 1FA5;GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI;Ll;0;L;1F65 0345;;;;N;;;1FAD;;1FAD 1FA6;GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F66 0345;;;;N;;;1FAE;;1FAE 1FA7;GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1F67 0345;;;;N;;;1FAF;;1FAF 1FA8;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI;Lt;0;L;1F68 0345;;;;N;;;;1FA0; 1FA9;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI;Lt;0;L;1F69 0345;;;;N;;;;1FA1; 1FAA;GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6A 0345;;;;N;;;;1FA2; 1FAB;GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI;Lt;0;L;1F6B 0345;;;;N;;;;1FA3; 1FAC;GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6C 0345;;;;N;;;;1FA4; 1FAD;GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI;Lt;0;L;1F6D 0345;;;;N;;;;1FA5; 1FAE;GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6E 0345;;;;N;;;;1FA6; 1FAF;GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI;Lt;0;L;1F6F 0345;;;;N;;;;1FA7; 1FB0;GREEK SMALL LETTER ALPHA WITH VRACHY;Ll;0;L;03B1 0306;;;;N;;;1FB8;;1FB8 1FB1;GREEK SMALL LETTER ALPHA WITH MACRON;Ll;0;L;03B1 0304;;;;N;;;1FB9;;1FB9 1FB2;GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F70 0345;;;;N;;;;; 1FB3;GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI;Ll;0;L;03B1 0345;;;;N;;;1FBC;;1FBC 1FB4;GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AC 0345;;;;N;;;;; 1FB6;GREEK SMALL LETTER ALPHA WITH PERISPOMENI;Ll;0;L;03B1 0342;;;;N;;;;; 1FB7;GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FB6 0345;;;;N;;;;; 1FB8;GREEK CAPITAL LETTER ALPHA WITH VRACHY;Lu;0;L;0391 0306;;;;N;;;;1FB0; 1FB9;GREEK CAPITAL LETTER ALPHA WITH MACRON;Lu;0;L;0391 0304;;;;N;;;;1FB1; 1FBA;GREEK CAPITAL LETTER ALPHA WITH VARIA;Lu;0;L;0391 0300;;;;N;;;;1F70; 1FBB;GREEK CAPITAL LETTER ALPHA WITH OXIA;Lu;0;L;0386;;;;N;;;;1F71; 1FBC;GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI;Lt;0;L;0391 0345;;;;N;;;;1FB3; 1FBD;GREEK KORONIS;Sk;0;ON; 0020 0313;;;;N;;;;; 1FBE;GREEK PROSGEGRAMMENI;Ll;0;L;03B9;;;;N;;;0399;;0399 1FBF;GREEK PSILI;Sk;0;ON; 0020 0313;;;;N;;;;; 1FC0;GREEK PERISPOMENI;Sk;0;ON; 0020 0342;;;;N;;;;; 1FC1;GREEK DIALYTIKA AND PERISPOMENI;Sk;0;ON;00A8 0342;;;;N;;;;; 1FC2;GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F74 0345;;;;N;;;;; 1FC3;GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI;Ll;0;L;03B7 0345;;;;N;;;1FCC;;1FCC 1FC4;GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03AE 0345;;;;N;;;;; 1FC6;GREEK SMALL LETTER ETA WITH PERISPOMENI;Ll;0;L;03B7 0342;;;;N;;;;; 1FC7;GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FC6 0345;;;;N;;;;; 1FC8;GREEK CAPITAL LETTER EPSILON WITH VARIA;Lu;0;L;0395 0300;;;;N;;;;1F72; 1FC9;GREEK CAPITAL LETTER EPSILON WITH OXIA;Lu;0;L;0388;;;;N;;;;1F73; 1FCA;GREEK CAPITAL LETTER ETA WITH VARIA;Lu;0;L;0397 0300;;;;N;;;;1F74; 1FCB;GREEK CAPITAL LETTER ETA WITH OXIA;Lu;0;L;0389;;;;N;;;;1F75; 1FCC;GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI;Lt;0;L;0397 0345;;;;N;;;;1FC3; 1FCD;GREEK PSILI AND VARIA;Sk;0;ON;1FBF 0300;;;;N;;;;; 1FCE;GREEK PSILI AND OXIA;Sk;0;ON;1FBF 0301;;;;N;;;;; 1FCF;GREEK PSILI AND PERISPOMENI;Sk;0;ON;1FBF 0342;;;;N;;;;; 1FD0;GREEK SMALL LETTER IOTA WITH VRACHY;Ll;0;L;03B9 0306;;;;N;;;1FD8;;1FD8 1FD1;GREEK SMALL LETTER IOTA WITH MACRON;Ll;0;L;03B9 0304;;;;N;;;1FD9;;1FD9 1FD2;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA;Ll;0;L;03CA 0300;;;;N;;;;; 1FD3;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA;Ll;0;L;0390;;;;N;;;;; 1FD6;GREEK SMALL LETTER IOTA WITH PERISPOMENI;Ll;0;L;03B9 0342;;;;N;;;;; 1FD7;GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CA 0342;;;;N;;;;; 1FD8;GREEK CAPITAL LETTER IOTA WITH VRACHY;Lu;0;L;0399 0306;;;;N;;;;1FD0; 1FD9;GREEK CAPITAL LETTER IOTA WITH MACRON;Lu;0;L;0399 0304;;;;N;;;;1FD1; 1FDA;GREEK CAPITAL LETTER IOTA WITH VARIA;Lu;0;L;0399 0300;;;;N;;;;1F76; 1FDB;GREEK CAPITAL LETTER IOTA WITH OXIA;Lu;0;L;038A;;;;N;;;;1F77; 1FDD;GREEK DASIA AND VARIA;Sk;0;ON;1FFE 0300;;;;N;;;;; 1FDE;GREEK DASIA AND OXIA;Sk;0;ON;1FFE 0301;;;;N;;;;; 1FDF;GREEK DASIA AND PERISPOMENI;Sk;0;ON;1FFE 0342;;;;N;;;;; 1FE0;GREEK SMALL LETTER UPSILON WITH VRACHY;Ll;0;L;03C5 0306;;;;N;;;1FE8;;1FE8 1FE1;GREEK SMALL LETTER UPSILON WITH MACRON;Ll;0;L;03C5 0304;;;;N;;;1FE9;;1FE9 1FE2;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA;Ll;0;L;03CB 0300;;;;N;;;;; 1FE3;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA;Ll;0;L;03B0;;;;N;;;;; 1FE4;GREEK SMALL LETTER RHO WITH PSILI;Ll;0;L;03C1 0313;;;;N;;;;; 1FE5;GREEK SMALL LETTER RHO WITH DASIA;Ll;0;L;03C1 0314;;;;N;;;1FEC;;1FEC 1FE6;GREEK SMALL LETTER UPSILON WITH PERISPOMENI;Ll;0;L;03C5 0342;;;;N;;;;; 1FE7;GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI;Ll;0;L;03CB 0342;;;;N;;;;; 1FE8;GREEK CAPITAL LETTER UPSILON WITH VRACHY;Lu;0;L;03A5 0306;;;;N;;;;1FE0; 1FE9;GREEK CAPITAL LETTER UPSILON WITH MACRON;Lu;0;L;03A5 0304;;;;N;;;;1FE1; 1FEA;GREEK CAPITAL LETTER UPSILON WITH VARIA;Lu;0;L;03A5 0300;;;;N;;;;1F7A; 1FEB;GREEK CAPITAL LETTER UPSILON WITH OXIA;Lu;0;L;038E;;;;N;;;;1F7B; 1FEC;GREEK CAPITAL LETTER RHO WITH DASIA;Lu;0;L;03A1 0314;;;;N;;;;1FE5; 1FED;GREEK DIALYTIKA AND VARIA;Sk;0;ON;00A8 0300;;;;N;;;;; 1FEE;GREEK DIALYTIKA AND OXIA;Sk;0;ON;0385;;;;N;;;;; 1FEF;GREEK VARIA;Sk;0;ON;0060;;;;N;;;;; 1FF2;GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI;Ll;0;L;1F7C 0345;;;;N;;;;; 1FF3;GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI;Ll;0;L;03C9 0345;;;;N;;;1FFC;;1FFC 1FF4;GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI;Ll;0;L;03CE 0345;;;;N;;;;; 1FF6;GREEK SMALL LETTER OMEGA WITH PERISPOMENI;Ll;0;L;03C9 0342;;;;N;;;;; 1FF7;GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI;Ll;0;L;1FF6 0345;;;;N;;;;; 1FF8;GREEK CAPITAL LETTER OMICRON WITH VARIA;Lu;0;L;039F 0300;;;;N;;;;1F78; 1FF9;GREEK CAPITAL LETTER OMICRON WITH OXIA;Lu;0;L;038C;;;;N;;;;1F79; 1FFA;GREEK CAPITAL LETTER OMEGA WITH VARIA;Lu;0;L;03A9 0300;;;;N;;;;1F7C; 1FFB;GREEK CAPITAL LETTER OMEGA WITH OXIA;Lu;0;L;038F;;;;N;;;;1F7D; 1FFC;GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI;Lt;0;L;03A9 0345;;;;N;;;;1FF3; 1FFD;GREEK OXIA;Sk;0;ON;00B4;;;;N;;;;; 1FFE;GREEK DASIA;Sk;0;ON; 0020 0314;;;;N;;;;; 2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;; 2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;; 2002;EN SPACE;Zs;0;WS; 0020;;;;N;;;;; 2003;EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2004;THREE-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2005;FOUR-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2006;SIX-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 2007;FIGURE SPACE;Zs;0;WS; 0020;;;;N;;;;; 2008;PUNCTUATION SPACE;Zs;0;WS; 0020;;;;N;;;;; 2009;THIN SPACE;Zs;0;WS; 0020;;;;N;;;;; 200A;HAIR SPACE;Zs;0;WS; 0020;;;;N;;;;; 200B;ZERO WIDTH SPACE;Zs;0;BN;;;;;N;;;;; 200C;ZERO WIDTH NON-JOINER;Cf;0;BN;;;;;N;;;;; 200D;ZERO WIDTH JOINER;Cf;0;BN;;;;;N;;;;; 200E;LEFT-TO-RIGHT MARK;Cf;0;L;;;;;N;;;;; 200F;RIGHT-TO-LEFT MARK;Cf;0;R;;;;;N;;;;; 2010;HYPHEN;Pd;0;ON;;;;;N;;;;; 2011;NON-BREAKING HYPHEN;Pd;0;ON; 2010;;;;N;;;;; 2012;FIGURE DASH;Pd;0;ON;;;;;N;;;;; 2013;EN DASH;Pd;0;ON;;;;;N;;;;; 2014;EM DASH;Pd;0;ON;;;;;N;;;;; 2015;HORIZONTAL BAR;Pd;0;ON;;;;;N;QUOTATION DASH;;;; 2016;DOUBLE VERTICAL LINE;Po;0;ON;;;;;N;DOUBLE VERTICAL BAR;;;; 2017;DOUBLE LOW LINE;Po;0;ON; 0020 0333;;;;N;SPACING DOUBLE UNDERSCORE;;;; 2018;LEFT SINGLE QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE TURNED COMMA QUOTATION MARK;;;; 2019;RIGHT SINGLE QUOTATION MARK;Pf;0;ON;;;;;N;SINGLE COMMA QUOTATION MARK;;;; 201A;SINGLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW SINGLE COMMA QUOTATION MARK;;;; 201B;SINGLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;SINGLE REVERSED COMMA QUOTATION MARK;;;; 201C;LEFT DOUBLE QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE TURNED COMMA QUOTATION MARK;;;; 201D;RIGHT DOUBLE QUOTATION MARK;Pf;0;ON;;;;;N;DOUBLE COMMA QUOTATION MARK;;;; 201E;DOUBLE LOW-9 QUOTATION MARK;Ps;0;ON;;;;;N;LOW DOUBLE COMMA QUOTATION MARK;;;; 201F;DOUBLE HIGH-REVERSED-9 QUOTATION MARK;Pi;0;ON;;;;;N;DOUBLE REVERSED COMMA QUOTATION MARK;;;; 2020;DAGGER;Po;0;ON;;;;;N;;;;; 2021;DOUBLE DAGGER;Po;0;ON;;;;;N;;;;; 2022;BULLET;Po;0;ON;;;;;N;;;;; 2023;TRIANGULAR BULLET;Po;0;ON;;;;;N;;;;; 2024;ONE DOT LEADER;Po;0;ON; 002E;;;;N;;;;; 2025;TWO DOT LEADER;Po;0;ON; 002E 002E;;;;N;;;;; 2026;HORIZONTAL ELLIPSIS;Po;0;ON; 002E 002E 002E;;;;N;;;;; 2027;HYPHENATION POINT;Po;0;ON;;;;;N;;;;; 2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;; 2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;; 202A;LEFT-TO-RIGHT EMBEDDING;Cf;0;LRE;;;;;N;;;;; 202B;RIGHT-TO-LEFT EMBEDDING;Cf;0;RLE;;;;;N;;;;; 202C;POP DIRECTIONAL FORMATTING;Cf;0;PDF;;;;;N;;;;; 202D;LEFT-TO-RIGHT OVERRIDE;Cf;0;LRO;;;;;N;;;;; 202E;RIGHT-TO-LEFT OVERRIDE;Cf;0;RLO;;;;;N;;;;; 202F;NARROW NO-BREAK SPACE;Zs;0;WS; 0020;;;;N;;;;; 2030;PER MILLE SIGN;Po;0;ET;;;;;N;;;;; 2031;PER TEN THOUSAND SIGN;Po;0;ET;;;;;N;;;;; 2032;PRIME;Po;0;ET;;;;;N;;;;; 2033;DOUBLE PRIME;Po;0;ET; 2032 2032;;;;N;;;;; 2034;TRIPLE PRIME;Po;0;ET; 2032 2032 2032;;;;N;;;;; 2035;REVERSED PRIME;Po;0;ON;;;;;N;;;;; 2036;REVERSED DOUBLE PRIME;Po;0;ON; 2035 2035;;;;N;;;;; 2037;REVERSED TRIPLE PRIME;Po;0;ON; 2035 2035 2035;;;;N;;;;; 2038;CARET;Po;0;ON;;;;;N;;;;; 2039;SINGLE LEFT-POINTING ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING SINGLE GUILLEMET;;;; 203A;SINGLE RIGHT-POINTING ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING SINGLE GUILLEMET;;;; 203B;REFERENCE MARK;Po;0;ON;;;;;N;;;;; 203C;DOUBLE EXCLAMATION MARK;Po;0;ON; 0021 0021;;;;N;;;;; 203D;INTERROBANG;Po;0;ON;;;;;N;;;;; 203E;OVERLINE;Po;0;ON; 0020 0305;;;;N;SPACING OVERSCORE;;;; 203F;UNDERTIE;Pc;0;ON;;;;;N;;Enotikon;;; 2040;CHARACTER TIE;Pc;0;ON;;;;;N;;;;; 2041;CARET INSERTION POINT;Po;0;ON;;;;;N;;;;; 2042;ASTERISM;Po;0;ON;;;;;N;;;;; 2043;HYPHEN BULLET;Po;0;ON;;;;;N;;;;; 2044;FRACTION SLASH;Sm;0;ON;;;;;N;;;;; 2045;LEFT SQUARE BRACKET WITH QUILL;Ps;0;ON;;;;;Y;;;;; 2046;RIGHT SQUARE BRACKET WITH QUILL;Pe;0;ON;;;;;Y;;;;; 2047;DOUBLE QUESTION MARK;Po;0;ON; 003F 003F;;;;N;;;;; 2048;QUESTION EXCLAMATION MARK;Po;0;ON; 003F 0021;;;;N;;;;; 2049;EXCLAMATION QUESTION MARK;Po;0;ON; 0021 003F;;;;N;;;;; 204A;TIRONIAN SIGN ET;Po;0;ON;;;;;N;;;;; 204B;REVERSED PILCROW SIGN;Po;0;ON;;;;;N;;;;; 204C;BLACK LEFTWARDS BULLET;Po;0;ON;;;;;N;;;;; 204D;BLACK RIGHTWARDS BULLET;Po;0;ON;;;;;N;;;;; 204E;LOW ASTERISK;Po;0;ON;;;;;N;;;;; 204F;REVERSED SEMICOLON;Po;0;ON;;;;;N;;;;; 2050;CLOSE UP;Po;0;ON;;;;;N;;;;; 2051;TWO ASTERISKS ALIGNED VERTICALLY;Po;0;ON;;;;;N;;;;; 2052;COMMERCIAL MINUS SIGN;Sm;0;ON;;;;;N;;;;; 2057;QUADRUPLE PRIME;Po;0;ON; 2032 2032 2032 2032;;;;N;;;;; 205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS; 0020;;;;N;;;;; 2060;WORD JOINER;Cf;0;BN;;;;;N;;;;; 2061;FUNCTION APPLICATION;Cf;0;BN;;;;;N;;;;; 2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;; 2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;; 206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; 206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; 206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; 206D;ACTIVATE ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; 206E;NATIONAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; 206F;NOMINAL DIGIT SHAPES;Cf;0;BN;;;;;N;;;;; 2070;SUPERSCRIPT ZERO;No;0;EN; 0030;0;0;0;N;SUPERSCRIPT DIGIT ZERO;;;; 2071;SUPERSCRIPT LATIN SMALL LETTER I;Ll;0;L; 0069;;;;N;;;;; 2074;SUPERSCRIPT FOUR;No;0;EN; 0034;4;4;4;N;SUPERSCRIPT DIGIT FOUR;;;; 2075;SUPERSCRIPT FIVE;No;0;EN; 0035;5;5;5;N;SUPERSCRIPT DIGIT FIVE;;;; 2076;SUPERSCRIPT SIX;No;0;EN; 0036;6;6;6;N;SUPERSCRIPT DIGIT SIX;;;; 2077;SUPERSCRIPT SEVEN;No;0;EN; 0037;7;7;7;N;SUPERSCRIPT DIGIT SEVEN;;;; 2078;SUPERSCRIPT EIGHT;No;0;EN; 0038;8;8;8;N;SUPERSCRIPT DIGIT EIGHT;;;; 2079;SUPERSCRIPT NINE;No;0;EN; 0039;9;9;9;N;SUPERSCRIPT DIGIT NINE;;;; 207A;SUPERSCRIPT PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; 207B;SUPERSCRIPT MINUS;Sm;0;ET; 2212;;;;N;SUPERSCRIPT HYPHEN-MINUS;;;; 207C;SUPERSCRIPT EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; 207D;SUPERSCRIPT LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;SUPERSCRIPT OPENING PARENTHESIS;;;; 207E;SUPERSCRIPT RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;SUPERSCRIPT CLOSING PARENTHESIS;;;; 207F;SUPERSCRIPT LATIN SMALL LETTER N;Ll;0;L; 006E;;;;N;;;;; 2080;SUBSCRIPT ZERO;No;0;EN; 0030;0;0;0;N;SUBSCRIPT DIGIT ZERO;;;; 2081;SUBSCRIPT ONE;No;0;EN; 0031;1;1;1;N;SUBSCRIPT DIGIT ONE;;;; 2082;SUBSCRIPT TWO;No;0;EN; 0032;2;2;2;N;SUBSCRIPT DIGIT TWO;;;; 2083;SUBSCRIPT THREE;No;0;EN; 0033;3;3;3;N;SUBSCRIPT DIGIT THREE;;;; 2084;SUBSCRIPT FOUR;No;0;EN; 0034;4;4;4;N;SUBSCRIPT DIGIT FOUR;;;; 2085;SUBSCRIPT FIVE;No;0;EN; 0035;5;5;5;N;SUBSCRIPT DIGIT FIVE;;;; 2086;SUBSCRIPT SIX;No;0;EN; 0036;6;6;6;N;SUBSCRIPT DIGIT SIX;;;; 2087;SUBSCRIPT SEVEN;No;0;EN; 0037;7;7;7;N;SUBSCRIPT DIGIT SEVEN;;;; 2088;SUBSCRIPT EIGHT;No;0;EN; 0038;8;8;8;N;SUBSCRIPT DIGIT EIGHT;;;; 2089;SUBSCRIPT NINE;No;0;EN; 0039;9;9;9;N;SUBSCRIPT DIGIT NINE;;;; 208A;SUBSCRIPT PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; 208B;SUBSCRIPT MINUS;Sm;0;ET; 2212;;;;N;SUBSCRIPT HYPHEN-MINUS;;;; 208C;SUBSCRIPT EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; 208D;SUBSCRIPT LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;SUBSCRIPT OPENING PARENTHESIS;;;; 208E;SUBSCRIPT RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;SUBSCRIPT CLOSING PARENTHESIS;;;; 20A0;EURO-CURRENCY SIGN;Sc;0;ET;;;;;N;;;;; 20A1;COLON SIGN;Sc;0;ET;;;;;N;;;;; 20A2;CRUZEIRO SIGN;Sc;0;ET;;;;;N;;;;; 20A3;FRENCH FRANC SIGN;Sc;0;ET;;;;;N;;;;; 20A4;LIRA SIGN;Sc;0;ET;;;;;N;;;;; 20A5;MILL SIGN;Sc;0;ET;;;;;N;;;;; 20A6;NAIRA SIGN;Sc;0;ET;;;;;N;;;;; 20A7;PESETA SIGN;Sc;0;ET;;;;;N;;;;; 20A8;RUPEE SIGN;Sc;0;ET; 0052 0073;;;;N;;;;; 20A9;WON SIGN;Sc;0;ET;;;;;N;;;;; 20AA;NEW SHEQEL SIGN;Sc;0;ET;;;;;N;;;;; 20AB;DONG SIGN;Sc;0;ET;;;;;N;;;;; 20AC;EURO SIGN;Sc;0;ET;;;;;N;;;;; 20AD;KIP SIGN;Sc;0;ET;;;;;N;;;;; 20AE;TUGRIK SIGN;Sc;0;ET;;;;;N;;;;; 20AF;DRACHMA SIGN;Sc;0;ET;;;;;N;;;;; 20B0;GERMAN PENNY SIGN;Sc;0;ET;;;;;N;;;;; 20B1;PESO SIGN;Sc;0;ET;;;;;N;;;;; 20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;; 20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;; 20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;; 20D3;COMBINING SHORT VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING SHORT VERTICAL BAR OVERLAY;;;; 20D4;COMBINING ANTICLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING ANTICLOCKWISE ARROW ABOVE;;;; 20D5;COMBINING CLOCKWISE ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING CLOCKWISE ARROW ABOVE;;;; 20D6;COMBINING LEFT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT ARROW ABOVE;;;; 20D7;COMBINING RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT ARROW ABOVE;;;; 20D8;COMBINING RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING RING OVERLAY;;;; 20D9;COMBINING CLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING CLOCKWISE RING OVERLAY;;;; 20DA;COMBINING ANTICLOCKWISE RING OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING ANTICLOCKWISE RING OVERLAY;;;; 20DB;COMBINING THREE DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING THREE DOTS ABOVE;;;; 20DC;COMBINING FOUR DOTS ABOVE;Mn;230;NSM;;;;;N;NON-SPACING FOUR DOTS ABOVE;;;; 20DD;COMBINING ENCLOSING CIRCLE;Me;0;NSM;;;;;N;ENCLOSING CIRCLE;;;; 20DE;COMBINING ENCLOSING SQUARE;Me;0;NSM;;;;;N;ENCLOSING SQUARE;;;; 20DF;COMBINING ENCLOSING DIAMOND;Me;0;NSM;;;;;N;ENCLOSING DIAMOND;;;; 20E0;COMBINING ENCLOSING CIRCLE BACKSLASH;Me;0;NSM;;;;;N;ENCLOSING CIRCLE SLASH;;;; 20E1;COMBINING LEFT RIGHT ARROW ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT RIGHT ARROW ABOVE;;;; 20E2;COMBINING ENCLOSING SCREEN;Me;0;NSM;;;;;N;;;;; 20E3;COMBINING ENCLOSING KEYCAP;Me;0;NSM;;;;;N;;;;; 20E4;COMBINING ENCLOSING UPWARD POINTING TRIANGLE;Me;0;NSM;;;;;N;;;;; 20E5;COMBINING REVERSE SOLIDUS OVERLAY;Mn;1;NSM;;;;;N;;;;; 20E6;COMBINING DOUBLE VERTICAL STROKE OVERLAY;Mn;1;NSM;;;;;N;;;;; 20E7;COMBINING ANNUITY SYMBOL;Mn;230;NSM;;;;;N;;;;; 20E8;COMBINING TRIPLE UNDERDOT;Mn;220;NSM;;;;;N;;;;; 20E9;COMBINING WIDE BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; 20EA;COMBINING LEFTWARDS ARROW OVERLAY;Mn;1;NSM;;;;;N;;;;; 2100;ACCOUNT OF;So;0;ON; 0061 002F 0063;;;;N;;;;; 2101;ADDRESSED TO THE SUBJECT;So;0;ON; 0061 002F 0073;;;;N;;;;; 2102;DOUBLE-STRUCK CAPITAL C;Lu;0;L; 0043;;;;N;DOUBLE-STRUCK C;;;; 2103;DEGREE CELSIUS;So;0;ON; 00B0 0043;;;;N;DEGREES CENTIGRADE;;;; 2104;CENTRE LINE SYMBOL;So;0;ON;;;;;N;C L SYMBOL;;;; 2105;CARE OF;So;0;ON; 0063 002F 006F;;;;N;;;;; 2106;CADA UNA;So;0;ON; 0063 002F 0075;;;;N;;;;; 2107;EULER CONSTANT;Lu;0;L; 0190;;;;N;EULERS;;;; 2108;SCRUPLE;So;0;ON;;;;;N;;;;; 2109;DEGREE FAHRENHEIT;So;0;ON; 00B0 0046;;;;N;DEGREES FAHRENHEIT;;;; 210A;SCRIPT SMALL G;Ll;0;L; 0067;;;;N;;;;; 210B;SCRIPT CAPITAL H;Lu;0;L; 0048;;;;N;SCRIPT H;;;; 210C;BLACK-LETTER CAPITAL H;Lu;0;L; 0048;;;;N;BLACK-LETTER H;;;; 210D;DOUBLE-STRUCK CAPITAL H;Lu;0;L; 0048;;;;N;DOUBLE-STRUCK H;;;; 210E;PLANCK CONSTANT;Ll;0;L; 0068;;;;N;;;;; 210F;PLANCK CONSTANT OVER TWO PI;Ll;0;L; 0127;;;;N;PLANCK CONSTANT OVER 2 PI;;;; 2110;SCRIPT CAPITAL I;Lu;0;L; 0049;;;;N;SCRIPT I;;;; 2111;BLACK-LETTER CAPITAL I;Lu;0;L; 0049;;;;N;BLACK-LETTER I;;;; 2112;SCRIPT CAPITAL L;Lu;0;L; 004C;;;;N;SCRIPT L;;;; 2113;SCRIPT SMALL L;Ll;0;L; 006C;;;;N;;;;; 2114;L B BAR SYMBOL;So;0;ON;;;;;N;;;;; 2115;DOUBLE-STRUCK CAPITAL N;Lu;0;L; 004E;;;;N;DOUBLE-STRUCK N;;;; 2116;NUMERO SIGN;So;0;ON; 004E 006F;;;;N;NUMERO;;;; 2117;SOUND RECORDING COPYRIGHT;So;0;ON;;;;;N;;;;; 2118;SCRIPT CAPITAL P;So;0;ON;;;;;N;SCRIPT P;;;; 2119;DOUBLE-STRUCK CAPITAL P;Lu;0;L; 0050;;;;N;DOUBLE-STRUCK P;;;; 211A;DOUBLE-STRUCK CAPITAL Q;Lu;0;L; 0051;;;;N;DOUBLE-STRUCK Q;;;; 211B;SCRIPT CAPITAL R;Lu;0;L; 0052;;;;N;SCRIPT R;;;; 211C;BLACK-LETTER CAPITAL R;Lu;0;L; 0052;;;;N;BLACK-LETTER R;;;; 211D;DOUBLE-STRUCK CAPITAL R;Lu;0;L; 0052;;;;N;DOUBLE-STRUCK R;;;; 211E;PRESCRIPTION TAKE;So;0;ON;;;;;N;;;;; 211F;RESPONSE;So;0;ON;;;;;N;;;;; 2120;SERVICE MARK;So;0;ON; 0053 004D;;;;N;;;;; 2121;TELEPHONE SIGN;So;0;ON; 0054 0045 004C;;;;N;T E L SYMBOL;;;; 2122;TRADE MARK SIGN;So;0;ON; 0054 004D;;;;N;TRADEMARK;;;; 2123;VERSICLE;So;0;ON;;;;;N;;;;; 2124;DOUBLE-STRUCK CAPITAL Z;Lu;0;L; 005A;;;;N;DOUBLE-STRUCK Z;;;; 2125;OUNCE SIGN;So;0;ON;;;;;N;OUNCE;;;; 2126;OHM SIGN;Lu;0;L;03A9;;;;N;OHM;;;03C9; 2127;INVERTED OHM SIGN;So;0;ON;;;;;N;MHO;;;; 2128;BLACK-LETTER CAPITAL Z;Lu;0;L; 005A;;;;N;BLACK-LETTER Z;;;; 2129;TURNED GREEK SMALL LETTER IOTA;So;0;ON;;;;;N;;;;; 212A;KELVIN SIGN;Lu;0;L;004B;;;;N;DEGREES KELVIN;;;006B; 212B;ANGSTROM SIGN;Lu;0;L;00C5;;;;N;ANGSTROM UNIT;;;00E5; 212C;SCRIPT CAPITAL B;Lu;0;L; 0042;;;;N;SCRIPT B;;;; 212D;BLACK-LETTER CAPITAL C;Lu;0;L; 0043;;;;N;BLACK-LETTER C;;;; 212E;ESTIMATED SYMBOL;So;0;ET;;;;;N;;;;; 212F;SCRIPT SMALL E;Ll;0;L; 0065;;;;N;;;;; 2130;SCRIPT CAPITAL E;Lu;0;L; 0045;;;;N;SCRIPT E;;;; 2131;SCRIPT CAPITAL F;Lu;0;L; 0046;;;;N;SCRIPT F;;;; 2132;TURNED CAPITAL F;So;0;ON;;;;;N;TURNED F;;;; 2133;SCRIPT CAPITAL M;Lu;0;L; 004D;;;;N;SCRIPT M;;;; 2134;SCRIPT SMALL O;Ll;0;L; 006F;;;;N;;;;; 2135;ALEF SYMBOL;Lo;0;L; 05D0;;;;N;FIRST TRANSFINITE CARDINAL;;;; 2136;BET SYMBOL;Lo;0;L; 05D1;;;;N;SECOND TRANSFINITE CARDINAL;;;; 2137;GIMEL SYMBOL;Lo;0;L; 05D2;;;;N;THIRD TRANSFINITE CARDINAL;;;; 2138;DALET SYMBOL;Lo;0;L; 05D3;;;;N;FOURTH TRANSFINITE CARDINAL;;;; 2139;INFORMATION SOURCE;Ll;0;L; 0069;;;;N;;;;; 213A;ROTATED CAPITAL Q;So;0;ON;;;;;N;;;;; 213D;DOUBLE-STRUCK SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 213E;DOUBLE-STRUCK CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 213F;DOUBLE-STRUCK CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 2140;DOUBLE-STRUCK N-ARY SUMMATION;Sm;0;ON; 2211;;;;Y;;;;; 2141;TURNED SANS-SERIF CAPITAL G;Sm;0;ON;;;;;N;;;;; 2142;TURNED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; 2143;REVERSED SANS-SERIF CAPITAL L;Sm;0;ON;;;;;N;;;;; 2144;TURNED SANS-SERIF CAPITAL Y;Sm;0;ON;;;;;N;;;;; 2145;DOUBLE-STRUCK ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 2146;DOUBLE-STRUCK ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 2147;DOUBLE-STRUCK ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 2148;DOUBLE-STRUCK ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 2149;DOUBLE-STRUCK ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 214A;PROPERTY LINE;So;0;ON;;;;;N;;;;; 214B;TURNED AMPERSAND;Sm;0;ON;;;;;N;;;;; 2153;VULGAR FRACTION ONE THIRD;No;0;ON; 0031 2044 0033;;;1/3;N;FRACTION ONE THIRD;;;; 2154;VULGAR FRACTION TWO THIRDS;No;0;ON; 0032 2044 0033;;;2/3;N;FRACTION TWO THIRDS;;;; 2155;VULGAR FRACTION ONE FIFTH;No;0;ON; 0031 2044 0035;;;1/5;N;FRACTION ONE FIFTH;;;; 2156;VULGAR FRACTION TWO FIFTHS;No;0;ON; 0032 2044 0035;;;2/5;N;FRACTION TWO FIFTHS;;;; 2157;VULGAR FRACTION THREE FIFTHS;No;0;ON; 0033 2044 0035;;;3/5;N;FRACTION THREE FIFTHS;;;; 2158;VULGAR FRACTION FOUR FIFTHS;No;0;ON; 0034 2044 0035;;;4/5;N;FRACTION FOUR FIFTHS;;;; 2159;VULGAR FRACTION ONE SIXTH;No;0;ON; 0031 2044 0036;;;1/6;N;FRACTION ONE SIXTH;;;; 215A;VULGAR FRACTION FIVE SIXTHS;No;0;ON; 0035 2044 0036;;;5/6;N;FRACTION FIVE SIXTHS;;;; 215B;VULGAR FRACTION ONE EIGHTH;No;0;ON; 0031 2044 0038;;;1/8;N;FRACTION ONE EIGHTH;;;; 215C;VULGAR FRACTION THREE EIGHTHS;No;0;ON; 0033 2044 0038;;;3/8;N;FRACTION THREE EIGHTHS;;;; 215D;VULGAR FRACTION FIVE EIGHTHS;No;0;ON; 0035 2044 0038;;;5/8;N;FRACTION FIVE EIGHTHS;;;; 215E;VULGAR FRACTION SEVEN EIGHTHS;No;0;ON; 0037 2044 0038;;;7/8;N;FRACTION SEVEN EIGHTHS;;;; 215F;FRACTION NUMERATOR ONE;No;0;ON; 0031 2044;;;1;N;;;;; 2160;ROMAN NUMERAL ONE;Nl;0;L; 0049;;;1;N;;;;2170; 2161;ROMAN NUMERAL TWO;Nl;0;L; 0049 0049;;;2;N;;;;2171; 2162;ROMAN NUMERAL THREE;Nl;0;L; 0049 0049 0049;;;3;N;;;;2172; 2163;ROMAN NUMERAL FOUR;Nl;0;L; 0049 0056;;;4;N;;;;2173; 2164;ROMAN NUMERAL FIVE;Nl;0;L; 0056;;;5;N;;;;2174; 2165;ROMAN NUMERAL SIX;Nl;0;L; 0056 0049;;;6;N;;;;2175; 2166;ROMAN NUMERAL SEVEN;Nl;0;L; 0056 0049 0049;;;7;N;;;;2176; 2167;ROMAN NUMERAL EIGHT;Nl;0;L; 0056 0049 0049 0049;;;8;N;;;;2177; 2168;ROMAN NUMERAL NINE;Nl;0;L; 0049 0058;;;9;N;;;;2178; 2169;ROMAN NUMERAL TEN;Nl;0;L; 0058;;;10;N;;;;2179; 216A;ROMAN NUMERAL ELEVEN;Nl;0;L; 0058 0049;;;11;N;;;;217A; 216B;ROMAN NUMERAL TWELVE;Nl;0;L; 0058 0049 0049;;;12;N;;;;217B; 216C;ROMAN NUMERAL FIFTY;Nl;0;L; 004C;;;50;N;;;;217C; 216D;ROMAN NUMERAL ONE HUNDRED;Nl;0;L; 0043;;;100;N;;;;217D; 216E;ROMAN NUMERAL FIVE HUNDRED;Nl;0;L; 0044;;;500;N;;;;217E; 216F;ROMAN NUMERAL ONE THOUSAND;Nl;0;L; 004D;;;1000;N;;;;217F; 2170;SMALL ROMAN NUMERAL ONE;Nl;0;L; 0069;;;1;N;;;2160;;2160 2171;SMALL ROMAN NUMERAL TWO;Nl;0;L; 0069 0069;;;2;N;;;2161;;2161 2172;SMALL ROMAN NUMERAL THREE;Nl;0;L; 0069 0069 0069;;;3;N;;;2162;;2162 2173;SMALL ROMAN NUMERAL FOUR;Nl;0;L; 0069 0076;;;4;N;;;2163;;2163 2174;SMALL ROMAN NUMERAL FIVE;Nl;0;L; 0076;;;5;N;;;2164;;2164 2175;SMALL ROMAN NUMERAL SIX;Nl;0;L; 0076 0069;;;6;N;;;2165;;2165 2176;SMALL ROMAN NUMERAL SEVEN;Nl;0;L; 0076 0069 0069;;;7;N;;;2166;;2166 2177;SMALL ROMAN NUMERAL EIGHT;Nl;0;L; 0076 0069 0069 0069;;;8;N;;;2167;;2167 2178;SMALL ROMAN NUMERAL NINE;Nl;0;L; 0069 0078;;;9;N;;;2168;;2168 2179;SMALL ROMAN NUMERAL TEN;Nl;0;L; 0078;;;10;N;;;2169;;2169 217A;SMALL ROMAN NUMERAL ELEVEN;Nl;0;L; 0078 0069;;;11;N;;;216A;;216A 217B;SMALL ROMAN NUMERAL TWELVE;Nl;0;L; 0078 0069 0069;;;12;N;;;216B;;216B 217C;SMALL ROMAN NUMERAL FIFTY;Nl;0;L; 006C;;;50;N;;;216C;;216C 217D;SMALL ROMAN NUMERAL ONE HUNDRED;Nl;0;L; 0063;;;100;N;;;216D;;216D 217E;SMALL ROMAN NUMERAL FIVE HUNDRED;Nl;0;L; 0064;;;500;N;;;216E;;216E 217F;SMALL ROMAN NUMERAL ONE THOUSAND;Nl;0;L; 006D;;;1000;N;;;216F;;216F 2180;ROMAN NUMERAL ONE THOUSAND C D;Nl;0;L;;;;1000;N;;;;; 2181;ROMAN NUMERAL FIVE THOUSAND;Nl;0;L;;;;5000;N;;;;; 2182;ROMAN NUMERAL TEN THOUSAND;Nl;0;L;;;;10000;N;;;;; 2183;ROMAN NUMERAL REVERSED ONE HUNDRED;Nl;0;L;;;;;N;;;;; 2190;LEFTWARDS ARROW;Sm;0;ON;;;;;N;LEFT ARROW;;;; 2191;UPWARDS ARROW;Sm;0;ON;;;;;N;UP ARROW;;;; 2192;RIGHTWARDS ARROW;Sm;0;ON;;;;;N;RIGHT ARROW;;;; 2193;DOWNWARDS ARROW;Sm;0;ON;;;;;N;DOWN ARROW;;;; 2194;LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; 2195;UP DOWN ARROW;So;0;ON;;;;;N;;;;; 2196;NORTH WEST ARROW;So;0;ON;;;;;N;UPPER LEFT ARROW;;;; 2197;NORTH EAST ARROW;So;0;ON;;;;;N;UPPER RIGHT ARROW;;;; 2198;SOUTH EAST ARROW;So;0;ON;;;;;N;LOWER RIGHT ARROW;;;; 2199;SOUTH WEST ARROW;So;0;ON;;;;;N;LOWER LEFT ARROW;;;; 219A;LEFTWARDS ARROW WITH STROKE;Sm;0;ON;2190 0338;;;;N;LEFT ARROW WITH STROKE;;;; 219B;RIGHTWARDS ARROW WITH STROKE;Sm;0;ON;2192 0338;;;;N;RIGHT ARROW WITH STROKE;;;; 219C;LEFTWARDS WAVE ARROW;So;0;ON;;;;;N;LEFT WAVE ARROW;;;; 219D;RIGHTWARDS WAVE ARROW;So;0;ON;;;;;N;RIGHT WAVE ARROW;;;; 219E;LEFTWARDS TWO HEADED ARROW;So;0;ON;;;;;N;LEFT TWO HEADED ARROW;;;; 219F;UPWARDS TWO HEADED ARROW;So;0;ON;;;;;N;UP TWO HEADED ARROW;;;; 21A0;RIGHTWARDS TWO HEADED ARROW;Sm;0;ON;;;;;N;RIGHT TWO HEADED ARROW;;;; 21A1;DOWNWARDS TWO HEADED ARROW;So;0;ON;;;;;N;DOWN TWO HEADED ARROW;;;; 21A2;LEFTWARDS ARROW WITH TAIL;So;0;ON;;;;;N;LEFT ARROW WITH TAIL;;;; 21A3;RIGHTWARDS ARROW WITH TAIL;Sm;0;ON;;;;;N;RIGHT ARROW WITH TAIL;;;; 21A4;LEFTWARDS ARROW FROM BAR;So;0;ON;;;;;N;LEFT ARROW FROM BAR;;;; 21A5;UPWARDS ARROW FROM BAR;So;0;ON;;;;;N;UP ARROW FROM BAR;;;; 21A6;RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;RIGHT ARROW FROM BAR;;;; 21A7;DOWNWARDS ARROW FROM BAR;So;0;ON;;;;;N;DOWN ARROW FROM BAR;;;; 21A8;UP DOWN ARROW WITH BASE;So;0;ON;;;;;N;;;;; 21A9;LEFTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;LEFT ARROW WITH HOOK;;;; 21AA;RIGHTWARDS ARROW WITH HOOK;So;0;ON;;;;;N;RIGHT ARROW WITH HOOK;;;; 21AB;LEFTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;LEFT ARROW WITH LOOP;;;; 21AC;RIGHTWARDS ARROW WITH LOOP;So;0;ON;;;;;N;RIGHT ARROW WITH LOOP;;;; 21AD;LEFT RIGHT WAVE ARROW;So;0;ON;;;;;N;;;;; 21AE;LEFT RIGHT ARROW WITH STROKE;Sm;0;ON;2194 0338;;;;N;;;;; 21AF;DOWNWARDS ZIGZAG ARROW;So;0;ON;;;;;N;DOWN ZIGZAG ARROW;;;; 21B0;UPWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP LEFT;;;; 21B1;UPWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;UP ARROW WITH TIP RIGHT;;;; 21B2;DOWNWARDS ARROW WITH TIP LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP LEFT;;;; 21B3;DOWNWARDS ARROW WITH TIP RIGHTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH TIP RIGHT;;;; 21B4;RIGHTWARDS ARROW WITH CORNER DOWNWARDS;So;0;ON;;;;;N;RIGHT ARROW WITH CORNER DOWN;;;; 21B5;DOWNWARDS ARROW WITH CORNER LEFTWARDS;So;0;ON;;;;;N;DOWN ARROW WITH CORNER LEFT;;;; 21B6;ANTICLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; 21B7;CLOCKWISE TOP SEMICIRCLE ARROW;So;0;ON;;;;;N;;;;; 21B8;NORTH WEST ARROW TO LONG BAR;So;0;ON;;;;;N;UPPER LEFT ARROW TO LONG BAR;;;; 21B9;LEFTWARDS ARROW TO BAR OVER RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR OVER RIGHT ARROW TO BAR;;;; 21BA;ANTICLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; 21BB;CLOCKWISE OPEN CIRCLE ARROW;So;0;ON;;;;;N;;;;; 21BC;LEFTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB UP;;;; 21BD;LEFTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;LEFT HARPOON WITH BARB DOWN;;;; 21BE;UPWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB RIGHT;;;; 21BF;UPWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;UP HARPOON WITH BARB LEFT;;;; 21C0;RIGHTWARDS HARPOON WITH BARB UPWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB UP;;;; 21C1;RIGHTWARDS HARPOON WITH BARB DOWNWARDS;So;0;ON;;;;;N;RIGHT HARPOON WITH BARB DOWN;;;; 21C2;DOWNWARDS HARPOON WITH BARB RIGHTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB RIGHT;;;; 21C3;DOWNWARDS HARPOON WITH BARB LEFTWARDS;So;0;ON;;;;;N;DOWN HARPOON WITH BARB LEFT;;;; 21C4;RIGHTWARDS ARROW OVER LEFTWARDS ARROW;So;0;ON;;;;;N;RIGHT ARROW OVER LEFT ARROW;;;; 21C5;UPWARDS ARROW LEFTWARDS OF DOWNWARDS ARROW;So;0;ON;;;;;N;UP ARROW LEFT OF DOWN ARROW;;;; 21C6;LEFTWARDS ARROW OVER RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT ARROW OVER RIGHT ARROW;;;; 21C7;LEFTWARDS PAIRED ARROWS;So;0;ON;;;;;N;LEFT PAIRED ARROWS;;;; 21C8;UPWARDS PAIRED ARROWS;So;0;ON;;;;;N;UP PAIRED ARROWS;;;; 21C9;RIGHTWARDS PAIRED ARROWS;So;0;ON;;;;;N;RIGHT PAIRED ARROWS;;;; 21CA;DOWNWARDS PAIRED ARROWS;So;0;ON;;;;;N;DOWN PAIRED ARROWS;;;; 21CB;LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON;So;0;ON;;;;;N;LEFT HARPOON OVER RIGHT HARPOON;;;; 21CC;RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON;So;0;ON;;;;;N;RIGHT HARPOON OVER LEFT HARPOON;;;; 21CD;LEFTWARDS DOUBLE ARROW WITH STROKE;So;0;ON;21D0 0338;;;;N;LEFT DOUBLE ARROW WITH STROKE;;;; 21CE;LEFT RIGHT DOUBLE ARROW WITH STROKE;Sm;0;ON;21D4 0338;;;;N;;;;; 21CF;RIGHTWARDS DOUBLE ARROW WITH STROKE;Sm;0;ON;21D2 0338;;;;N;RIGHT DOUBLE ARROW WITH STROKE;;;; 21D0;LEFTWARDS DOUBLE ARROW;So;0;ON;;;;;N;LEFT DOUBLE ARROW;;;; 21D1;UPWARDS DOUBLE ARROW;So;0;ON;;;;;N;UP DOUBLE ARROW;;;; 21D2;RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;RIGHT DOUBLE ARROW;;;; 21D3;DOWNWARDS DOUBLE ARROW;So;0;ON;;;;;N;DOWN DOUBLE ARROW;;;; 21D4;LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 21D5;UP DOWN DOUBLE ARROW;So;0;ON;;;;;N;;;;; 21D6;NORTH WEST DOUBLE ARROW;So;0;ON;;;;;N;UPPER LEFT DOUBLE ARROW;;;; 21D7;NORTH EAST DOUBLE ARROW;So;0;ON;;;;;N;UPPER RIGHT DOUBLE ARROW;;;; 21D8;SOUTH EAST DOUBLE ARROW;So;0;ON;;;;;N;LOWER RIGHT DOUBLE ARROW;;;; 21D9;SOUTH WEST DOUBLE ARROW;So;0;ON;;;;;N;LOWER LEFT DOUBLE ARROW;;;; 21DA;LEFTWARDS TRIPLE ARROW;So;0;ON;;;;;N;LEFT TRIPLE ARROW;;;; 21DB;RIGHTWARDS TRIPLE ARROW;So;0;ON;;;;;N;RIGHT TRIPLE ARROW;;;; 21DC;LEFTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;LEFT SQUIGGLE ARROW;;;; 21DD;RIGHTWARDS SQUIGGLE ARROW;So;0;ON;;;;;N;RIGHT SQUIGGLE ARROW;;;; 21DE;UPWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;UP ARROW WITH DOUBLE STROKE;;;; 21DF;DOWNWARDS ARROW WITH DOUBLE STROKE;So;0;ON;;;;;N;DOWN ARROW WITH DOUBLE STROKE;;;; 21E0;LEFTWARDS DASHED ARROW;So;0;ON;;;;;N;LEFT DASHED ARROW;;;; 21E1;UPWARDS DASHED ARROW;So;0;ON;;;;;N;UP DASHED ARROW;;;; 21E2;RIGHTWARDS DASHED ARROW;So;0;ON;;;;;N;RIGHT DASHED ARROW;;;; 21E3;DOWNWARDS DASHED ARROW;So;0;ON;;;;;N;DOWN DASHED ARROW;;;; 21E4;LEFTWARDS ARROW TO BAR;So;0;ON;;;;;N;LEFT ARROW TO BAR;;;; 21E5;RIGHTWARDS ARROW TO BAR;So;0;ON;;;;;N;RIGHT ARROW TO BAR;;;; 21E6;LEFTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE LEFT ARROW;;;; 21E7;UPWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE UP ARROW;;;; 21E8;RIGHTWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE RIGHT ARROW;;;; 21E9;DOWNWARDS WHITE ARROW;So;0;ON;;;;;N;WHITE DOWN ARROW;;;; 21EA;UPWARDS WHITE ARROW FROM BAR;So;0;ON;;;;;N;WHITE UP ARROW FROM BAR;;;; 21EB;UPWARDS WHITE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; 21EC;UPWARDS WHITE ARROW ON PEDESTAL WITH HORIZONTAL BAR;So;0;ON;;;;;N;;;;; 21ED;UPWARDS WHITE ARROW ON PEDESTAL WITH VERTICAL BAR;So;0;ON;;;;;N;;;;; 21EE;UPWARDS WHITE DOUBLE ARROW;So;0;ON;;;;;N;;;;; 21EF;UPWARDS WHITE DOUBLE ARROW ON PEDESTAL;So;0;ON;;;;;N;;;;; 21F0;RIGHTWARDS WHITE ARROW FROM WALL;So;0;ON;;;;;N;;;;; 21F1;NORTH WEST ARROW TO CORNER;So;0;ON;;;;;N;;;;; 21F2;SOUTH EAST ARROW TO CORNER;So;0;ON;;;;;N;;;;; 21F3;UP DOWN WHITE ARROW;So;0;ON;;;;;N;;;;; 21F4;RIGHT ARROW WITH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 21F5;DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW;Sm;0;ON;;;;;N;;;;; 21F6;THREE RIGHTWARDS ARROWS;Sm;0;ON;;;;;N;;;;; 21F7;LEFTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21F8;RIGHTWARDS ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21F9;LEFT RIGHT ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FA;LEFTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FB;RIGHTWARDS ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FC;LEFT RIGHT ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 21FD;LEFTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; 21FE;RIGHTWARDS OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; 21FF;LEFT RIGHT OPEN-HEADED ARROW;Sm;0;ON;;;;;N;;;;; 2200;FOR ALL;Sm;0;ON;;;;;N;;;;; 2201;COMPLEMENT;Sm;0;ON;;;;;Y;;;;; 2202;PARTIAL DIFFERENTIAL;Sm;0;ON;;;;;Y;;;;; 2203;THERE EXISTS;Sm;0;ON;;;;;Y;;;;; 2204;THERE DOES NOT EXIST;Sm;0;ON;2203 0338;;;;Y;;;;; 2205;EMPTY SET;Sm;0;ON;;;;;N;;;;; 2206;INCREMENT;Sm;0;ON;;;;;N;;;;; 2207;NABLA;Sm;0;ON;;;;;N;;;;; 2208;ELEMENT OF;Sm;0;ON;;;;;Y;;;;; 2209;NOT AN ELEMENT OF;Sm;0;ON;2208 0338;;;;Y;;;;; 220A;SMALL ELEMENT OF;Sm;0;ON;;;;;Y;;;;; 220B;CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; 220C;DOES NOT CONTAIN AS MEMBER;Sm;0;ON;220B 0338;;;;Y;;;;; 220D;SMALL CONTAINS AS MEMBER;Sm;0;ON;;;;;Y;;;;; 220E;END OF PROOF;Sm;0;ON;;;;;N;;;;; 220F;N-ARY PRODUCT;Sm;0;ON;;;;;N;;;;; 2210;N-ARY COPRODUCT;Sm;0;ON;;;;;N;;;;; 2211;N-ARY SUMMATION;Sm;0;ON;;;;;Y;;;;; 2212;MINUS SIGN;Sm;0;ET;;;;;N;;;;; 2213;MINUS-OR-PLUS SIGN;Sm;0;ET;;;;;N;;;;; 2214;DOT PLUS;Sm;0;ON;;;;;N;;;;; 2215;DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; 2216;SET MINUS;Sm;0;ON;;;;;Y;;;;; 2217;ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; 2218;RING OPERATOR;Sm;0;ON;;;;;N;;;;; 2219;BULLET OPERATOR;Sm;0;ON;;;;;N;;;;; 221A;SQUARE ROOT;Sm;0;ON;;;;;Y;;;;; 221B;CUBE ROOT;Sm;0;ON;;;;;Y;;;;; 221C;FOURTH ROOT;Sm;0;ON;;;;;Y;;;;; 221D;PROPORTIONAL TO;Sm;0;ON;;;;;Y;;;;; 221E;INFINITY;Sm;0;ON;;;;;N;;;;; 221F;RIGHT ANGLE;Sm;0;ON;;;;;Y;;;;; 2220;ANGLE;Sm;0;ON;;;;;Y;;;;; 2221;MEASURED ANGLE;Sm;0;ON;;;;;Y;;;;; 2222;SPHERICAL ANGLE;Sm;0;ON;;;;;Y;;;;; 2223;DIVIDES;Sm;0;ON;;;;;N;;;;; 2224;DOES NOT DIVIDE;Sm;0;ON;2223 0338;;;;Y;;;;; 2225;PARALLEL TO;Sm;0;ON;;;;;N;;;;; 2226;NOT PARALLEL TO;Sm;0;ON;2225 0338;;;;Y;;;;; 2227;LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2228;LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2229;INTERSECTION;Sm;0;ON;;;;;N;;;;; 222A;UNION;Sm;0;ON;;;;;N;;;;; 222B;INTEGRAL;Sm;0;ON;;;;;Y;;;;; 222C;DOUBLE INTEGRAL;Sm;0;ON; 222B 222B;;;;Y;;;;; 222D;TRIPLE INTEGRAL;Sm;0;ON; 222B 222B 222B;;;;Y;;;;; 222E;CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; 222F;SURFACE INTEGRAL;Sm;0;ON; 222E 222E;;;;Y;;;;; 2230;VOLUME INTEGRAL;Sm;0;ON; 222E 222E 222E;;;;Y;;;;; 2231;CLOCKWISE INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2232;CLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2233;ANTICLOCKWISE CONTOUR INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2234;THEREFORE;Sm;0;ON;;;;;N;;;;; 2235;BECAUSE;Sm;0;ON;;;;;N;;;;; 2236;RATIO;Sm;0;ON;;;;;N;;;;; 2237;PROPORTION;Sm;0;ON;;;;;N;;;;; 2238;DOT MINUS;Sm;0;ON;;;;;N;;;;; 2239;EXCESS;Sm;0;ON;;;;;Y;;;;; 223A;GEOMETRIC PROPORTION;Sm;0;ON;;;;;N;;;;; 223B;HOMOTHETIC;Sm;0;ON;;;;;Y;;;;; 223C;TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 223D;REVERSED TILDE;Sm;0;ON;;;;;Y;;lazy S;;; 223E;INVERTED LAZY S;Sm;0;ON;;;;;Y;;;;; 223F;SINE WAVE;Sm;0;ON;;;;;Y;;;;; 2240;WREATH PRODUCT;Sm;0;ON;;;;;Y;;;;; 2241;NOT TILDE;Sm;0;ON;223C 0338;;;;Y;;;;; 2242;MINUS TILDE;Sm;0;ON;;;;;Y;;;;; 2243;ASYMPTOTICALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2244;NOT ASYMPTOTICALLY EQUAL TO;Sm;0;ON;2243 0338;;;;Y;;;;; 2245;APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2246;APPROXIMATELY BUT NOT ACTUALLY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2247;NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO;Sm;0;ON;2245 0338;;;;Y;;;;; 2248;ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2249;NOT ALMOST EQUAL TO;Sm;0;ON;2248 0338;;;;Y;;;;; 224A;ALMOST EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 224B;TRIPLE TILDE;Sm;0;ON;;;;;Y;;;;; 224C;ALL EQUAL TO;Sm;0;ON;;;;;Y;;;;; 224D;EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; 224E;GEOMETRICALLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; 224F;DIFFERENCE BETWEEN;Sm;0;ON;;;;;N;;;;; 2250;APPROACHES THE LIMIT;Sm;0;ON;;;;;N;;;;; 2251;GEOMETRICALLY EQUAL TO;Sm;0;ON;;;;;N;;;;; 2252;APPROXIMATELY EQUAL TO OR THE IMAGE OF;Sm;0;ON;;;;;Y;;;;; 2253;IMAGE OF OR APPROXIMATELY EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2254;COLON EQUALS;Sm;0;ON;;;;;Y;COLON EQUAL;;;; 2255;EQUALS COLON;Sm;0;ON;;;;;Y;EQUAL COLON;;;; 2256;RING IN EQUAL TO;Sm;0;ON;;;;;N;;;;; 2257;RING EQUAL TO;Sm;0;ON;;;;;N;;;;; 2258;CORRESPONDS TO;Sm;0;ON;;;;;N;;;;; 2259;ESTIMATES;Sm;0;ON;;;;;N;;;;; 225A;EQUIANGULAR TO;Sm;0;ON;;;;;N;;;;; 225B;STAR EQUALS;Sm;0;ON;;;;;N;;;;; 225C;DELTA EQUAL TO;Sm;0;ON;;;;;N;;;;; 225D;EQUAL TO BY DEFINITION;Sm;0;ON;;;;;N;;;;; 225E;MEASURED BY;Sm;0;ON;;;;;N;;;;; 225F;QUESTIONED EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2260;NOT EQUAL TO;Sm;0;ON;003D 0338;;;;Y;;;;; 2261;IDENTICAL TO;Sm;0;ON;;;;;N;;;;; 2262;NOT IDENTICAL TO;Sm;0;ON;2261 0338;;;;Y;;;;; 2263;STRICTLY EQUIVALENT TO;Sm;0;ON;;;;;N;;;;; 2264;LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUAL TO;;;; 2265;GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUAL TO;;;; 2266;LESS-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN OVER EQUAL TO;;;; 2267;GREATER-THAN OVER EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN OVER EQUAL TO;;;; 2268;LESS-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUAL TO;;;; 2269;GREATER-THAN BUT NOT EQUAL TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUAL TO;;;; 226A;MUCH LESS-THAN;Sm;0;ON;;;;;Y;MUCH LESS THAN;;;; 226B;MUCH GREATER-THAN;Sm;0;ON;;;;;Y;MUCH GREATER THAN;;;; 226C;BETWEEN;Sm;0;ON;;;;;N;;;;; 226D;NOT EQUIVALENT TO;Sm;0;ON;224D 0338;;;;N;;;;; 226E;NOT LESS-THAN;Sm;0;ON;003C 0338;;;;Y;NOT LESS THAN;;;; 226F;NOT GREATER-THAN;Sm;0;ON;003E 0338;;;;Y;NOT GREATER THAN;;;; 2270;NEITHER LESS-THAN NOR EQUAL TO;Sm;0;ON;2264 0338;;;;Y;NEITHER LESS THAN NOR EQUAL TO;;;; 2271;NEITHER GREATER-THAN NOR EQUAL TO;Sm;0;ON;2265 0338;;;;Y;NEITHER GREATER THAN NOR EQUAL TO;;;; 2272;LESS-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN OR EQUIVALENT TO;;;; 2273;GREATER-THAN OR EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN OR EQUIVALENT TO;;;; 2274;NEITHER LESS-THAN NOR EQUIVALENT TO;Sm;0;ON;2272 0338;;;;Y;NEITHER LESS THAN NOR EQUIVALENT TO;;;; 2275;NEITHER GREATER-THAN NOR EQUIVALENT TO;Sm;0;ON;2273 0338;;;;Y;NEITHER GREATER THAN NOR EQUIVALENT TO;;;; 2276;LESS-THAN OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN OR GREATER THAN;;;; 2277;GREATER-THAN OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN OR LESS THAN;;;; 2278;NEITHER LESS-THAN NOR GREATER-THAN;Sm;0;ON;2276 0338;;;;Y;NEITHER LESS THAN NOR GREATER THAN;;;; 2279;NEITHER GREATER-THAN NOR LESS-THAN;Sm;0;ON;2277 0338;;;;Y;NEITHER GREATER THAN NOR LESS THAN;;;; 227A;PRECEDES;Sm;0;ON;;;;;Y;;;;; 227B;SUCCEEDS;Sm;0;ON;;;;;Y;;;;; 227C;PRECEDES OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 227D;SUCCEEDS OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 227E;PRECEDES OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 227F;SUCCEEDS OR EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 2280;DOES NOT PRECEDE;Sm;0;ON;227A 0338;;;;Y;;;;; 2281;DOES NOT SUCCEED;Sm;0;ON;227B 0338;;;;Y;;;;; 2282;SUBSET OF;Sm;0;ON;;;;;Y;;;;; 2283;SUPERSET OF;Sm;0;ON;;;;;Y;;;;; 2284;NOT A SUBSET OF;Sm;0;ON;2282 0338;;;;Y;;;;; 2285;NOT A SUPERSET OF;Sm;0;ON;2283 0338;;;;Y;;;;; 2286;SUBSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2287;SUPERSET OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2288;NEITHER A SUBSET OF NOR EQUAL TO;Sm;0;ON;2286 0338;;;;Y;;;;; 2289;NEITHER A SUPERSET OF NOR EQUAL TO;Sm;0;ON;2287 0338;;;;Y;;;;; 228A;SUBSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUBSET OF OR NOT EQUAL TO;;;; 228B;SUPERSET OF WITH NOT EQUAL TO;Sm;0;ON;;;;;Y;SUPERSET OF OR NOT EQUAL TO;;;; 228C;MULTISET;Sm;0;ON;;;;;Y;;;;; 228D;MULTISET MULTIPLICATION;Sm;0;ON;;;;;N;;;;; 228E;MULTISET UNION;Sm;0;ON;;;;;N;;;;; 228F;SQUARE IMAGE OF;Sm;0;ON;;;;;Y;;;;; 2290;SQUARE ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; 2291;SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2292;SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2293;SQUARE CAP;Sm;0;ON;;;;;N;;;;; 2294;SQUARE CUP;Sm;0;ON;;;;;N;;;;; 2295;CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; 2296;CIRCLED MINUS;Sm;0;ON;;;;;N;;;;; 2297;CIRCLED TIMES;Sm;0;ON;;;;;N;;;;; 2298;CIRCLED DIVISION SLASH;Sm;0;ON;;;;;Y;;;;; 2299;CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 229A;CIRCLED RING OPERATOR;Sm;0;ON;;;;;N;;;;; 229B;CIRCLED ASTERISK OPERATOR;Sm;0;ON;;;;;N;;;;; 229C;CIRCLED EQUALS;Sm;0;ON;;;;;N;;;;; 229D;CIRCLED DASH;Sm;0;ON;;;;;N;;;;; 229E;SQUARED PLUS;Sm;0;ON;;;;;N;;;;; 229F;SQUARED MINUS;Sm;0;ON;;;;;N;;;;; 22A0;SQUARED TIMES;Sm;0;ON;;;;;N;;;;; 22A1;SQUARED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 22A2;RIGHT TACK;Sm;0;ON;;;;;Y;;;;; 22A3;LEFT TACK;Sm;0;ON;;;;;Y;;;;; 22A4;DOWN TACK;Sm;0;ON;;;;;N;;;;; 22A5;UP TACK;Sm;0;ON;;;;;N;;;;; 22A6;ASSERTION;Sm;0;ON;;;;;Y;;;;; 22A7;MODELS;Sm;0;ON;;;;;Y;;;;; 22A8;TRUE;Sm;0;ON;;;;;Y;;;;; 22A9;FORCES;Sm;0;ON;;;;;Y;;;;; 22AA;TRIPLE VERTICAL BAR RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 22AB;DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 22AC;DOES NOT PROVE;Sm;0;ON;22A2 0338;;;;Y;;;;; 22AD;NOT TRUE;Sm;0;ON;22A8 0338;;;;Y;;;;; 22AE;DOES NOT FORCE;Sm;0;ON;22A9 0338;;;;Y;;;;; 22AF;NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE;Sm;0;ON;22AB 0338;;;;Y;;;;; 22B0;PRECEDES UNDER RELATION;Sm;0;ON;;;;;Y;;;;; 22B1;SUCCEEDS UNDER RELATION;Sm;0;ON;;;;;Y;;;;; 22B2;NORMAL SUBGROUP OF;Sm;0;ON;;;;;Y;;;;; 22B3;CONTAINS AS NORMAL SUBGROUP;Sm;0;ON;;;;;Y;;;;; 22B4;NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22B5;CONTAINS AS NORMAL SUBGROUP OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22B6;ORIGINAL OF;Sm;0;ON;;;;;Y;;;;; 22B7;IMAGE OF;Sm;0;ON;;;;;Y;;;;; 22B8;MULTIMAP;Sm;0;ON;;;;;Y;;;;; 22B9;HERMITIAN CONJUGATE MATRIX;Sm;0;ON;;;;;N;;;;; 22BA;INTERCALATE;Sm;0;ON;;;;;N;;;;; 22BB;XOR;Sm;0;ON;;;;;N;;;;; 22BC;NAND;Sm;0;ON;;;;;N;;;;; 22BD;NOR;Sm;0;ON;;;;;N;;;;; 22BE;RIGHT ANGLE WITH ARC;Sm;0;ON;;;;;Y;;;;; 22BF;RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; 22C0;N-ARY LOGICAL AND;Sm;0;ON;;;;;N;;;;; 22C1;N-ARY LOGICAL OR;Sm;0;ON;;;;;N;;;;; 22C2;N-ARY INTERSECTION;Sm;0;ON;;;;;N;;;;; 22C3;N-ARY UNION;Sm;0;ON;;;;;N;;;;; 22C4;DIAMOND OPERATOR;Sm;0;ON;;;;;N;;;;; 22C5;DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 22C6;STAR OPERATOR;Sm;0;ON;;;;;N;;;;; 22C7;DIVISION TIMES;Sm;0;ON;;;;;N;;;;; 22C8;BOWTIE;Sm;0;ON;;;;;N;;;;; 22C9;LEFT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CA;RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CB;LEFT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CC;RIGHT SEMIDIRECT PRODUCT;Sm;0;ON;;;;;Y;;;;; 22CD;REVERSED TILDE EQUALS;Sm;0;ON;;;;;Y;;;;; 22CE;CURLY LOGICAL OR;Sm;0;ON;;;;;N;;;;; 22CF;CURLY LOGICAL AND;Sm;0;ON;;;;;N;;;;; 22D0;DOUBLE SUBSET;Sm;0;ON;;;;;Y;;;;; 22D1;DOUBLE SUPERSET;Sm;0;ON;;;;;Y;;;;; 22D2;DOUBLE INTERSECTION;Sm;0;ON;;;;;N;;;;; 22D3;DOUBLE UNION;Sm;0;ON;;;;;N;;;;; 22D4;PITCHFORK;Sm;0;ON;;;;;N;;;;; 22D5;EQUAL AND PARALLEL TO;Sm;0;ON;;;;;N;;;;; 22D6;LESS-THAN WITH DOT;Sm;0;ON;;;;;Y;LESS THAN WITH DOT;;;; 22D7;GREATER-THAN WITH DOT;Sm;0;ON;;;;;Y;GREATER THAN WITH DOT;;;; 22D8;VERY MUCH LESS-THAN;Sm;0;ON;;;;;Y;VERY MUCH LESS THAN;;;; 22D9;VERY MUCH GREATER-THAN;Sm;0;ON;;;;;Y;VERY MUCH GREATER THAN;;;; 22DA;LESS-THAN EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;LESS THAN EQUAL TO OR GREATER THAN;;;; 22DB;GREATER-THAN EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;GREATER THAN EQUAL TO OR LESS THAN;;;; 22DC;EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR LESS THAN;;;; 22DD;EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;EQUAL TO OR GREATER THAN;;;; 22DE;EQUAL TO OR PRECEDES;Sm;0;ON;;;;;Y;;;;; 22DF;EQUAL TO OR SUCCEEDS;Sm;0;ON;;;;;Y;;;;; 22E0;DOES NOT PRECEDE OR EQUAL;Sm;0;ON;227C 0338;;;;Y;;;;; 22E1;DOES NOT SUCCEED OR EQUAL;Sm;0;ON;227D 0338;;;;Y;;;;; 22E2;NOT SQUARE IMAGE OF OR EQUAL TO;Sm;0;ON;2291 0338;;;;Y;;;;; 22E3;NOT SQUARE ORIGINAL OF OR EQUAL TO;Sm;0;ON;2292 0338;;;;Y;;;;; 22E4;SQUARE IMAGE OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22E5;SQUARE ORIGINAL OF OR NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 22E6;LESS-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;LESS THAN BUT NOT EQUIVALENT TO;;;; 22E7;GREATER-THAN BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;GREATER THAN BUT NOT EQUIVALENT TO;;;; 22E8;PRECEDES BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 22E9;SUCCEEDS BUT NOT EQUIVALENT TO;Sm;0;ON;;;;;Y;;;;; 22EA;NOT NORMAL SUBGROUP OF;Sm;0;ON;22B2 0338;;;;Y;;;;; 22EB;DOES NOT CONTAIN AS NORMAL SUBGROUP;Sm;0;ON;22B3 0338;;;;Y;;;;; 22EC;NOT NORMAL SUBGROUP OF OR EQUAL TO;Sm;0;ON;22B4 0338;;;;Y;;;;; 22ED;DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL;Sm;0;ON;22B5 0338;;;;Y;;;;; 22EE;VERTICAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; 22EF;MIDLINE HORIZONTAL ELLIPSIS;Sm;0;ON;;;;;N;;;;; 22F0;UP RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; 22F1;DOWN RIGHT DIAGONAL ELLIPSIS;Sm;0;ON;;;;;Y;;;;; 22F2;ELEMENT OF WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22F3;ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22F4;SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22F5;ELEMENT OF WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 22F6;ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22F7;SMALL ELEMENT OF WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22F8;ELEMENT OF WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 22F9;ELEMENT OF WITH TWO HORIZONTAL STROKES;Sm;0;ON;;;;;Y;;;;; 22FA;CONTAINS WITH LONG HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22FB;CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22FC;SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 22FD;CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22FE;SMALL CONTAINS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 22FF;Z NOTATION BAG MEMBERSHIP;Sm;0;ON;;;;;Y;;;;; 2300;DIAMETER SIGN;So;0;ON;;;;;N;;;;; 2301;ELECTRIC ARROW;So;0;ON;;;;;N;;;;; 2302;HOUSE;So;0;ON;;;;;N;;;;; 2303;UP ARROWHEAD;So;0;ON;;;;;N;;;;; 2304;DOWN ARROWHEAD;So;0;ON;;;;;N;;;;; 2305;PROJECTIVE;So;0;ON;;;;;N;;;;; 2306;PERSPECTIVE;So;0;ON;;;;;N;;;;; 2307;WAVY LINE;So;0;ON;;;;;N;;;;; 2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;; 2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;; 230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;; 230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;; 230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;; 230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;; 230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;; 230F;TOP LEFT CROP;So;0;ON;;;;;N;;;;; 2310;REVERSED NOT SIGN;So;0;ON;;;;;N;;;;; 2311;SQUARE LOZENGE;So;0;ON;;;;;N;;;;; 2312;ARC;So;0;ON;;;;;N;;;;; 2313;SEGMENT;So;0;ON;;;;;N;;;;; 2314;SECTOR;So;0;ON;;;;;N;;;;; 2315;TELEPHONE RECORDER;So;0;ON;;;;;N;;;;; 2316;POSITION INDICATOR;So;0;ON;;;;;N;;;;; 2317;VIEWDATA SQUARE;So;0;ON;;;;;N;;;;; 2318;PLACE OF INTEREST SIGN;So;0;ON;;;;;N;COMMAND KEY;;;; 2319;TURNED NOT SIGN;So;0;ON;;;;;N;;;;; 231A;WATCH;So;0;ON;;;;;N;;;;; 231B;HOURGLASS;So;0;ON;;;;;N;;;;; 231C;TOP LEFT CORNER;So;0;ON;;;;;N;;;;; 231D;TOP RIGHT CORNER;So;0;ON;;;;;N;;;;; 231E;BOTTOM LEFT CORNER;So;0;ON;;;;;N;;;;; 231F;BOTTOM RIGHT CORNER;So;0;ON;;;;;N;;;;; 2320;TOP HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2321;BOTTOM HALF INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2322;FROWN;So;0;ON;;;;;N;;;;; 2323;SMILE;So;0;ON;;;;;N;;;;; 2324;UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS;So;0;ON;;;;;N;ENTER KEY;;;; 2325;OPTION KEY;So;0;ON;;;;;N;;;;; 2326;ERASE TO THE RIGHT;So;0;ON;;;;;N;DELETE TO THE RIGHT KEY;;;; 2327;X IN A RECTANGLE BOX;So;0;ON;;;;;N;CLEAR KEY;;;; 2328;KEYBOARD;So;0;ON;;;;;N;;;;; 2329;LEFT-POINTING ANGLE BRACKET;Ps;0;ON;3008;;;;Y;BRA;;;; 232A;RIGHT-POINTING ANGLE BRACKET;Pe;0;ON;3009;;;;Y;KET;;;; 232B;ERASE TO THE LEFT;So;0;ON;;;;;N;DELETE TO THE LEFT KEY;;;; 232C;BENZENE RING;So;0;ON;;;;;N;;;;; 232D;CYLINDRICITY;So;0;ON;;;;;N;;;;; 232E;ALL AROUND-PROFILE;So;0;ON;;;;;N;;;;; 232F;SYMMETRY;So;0;ON;;;;;N;;;;; 2330;TOTAL RUNOUT;So;0;ON;;;;;N;;;;; 2331;DIMENSION ORIGIN;So;0;ON;;;;;N;;;;; 2332;CONICAL TAPER;So;0;ON;;;;;N;;;;; 2333;SLOPE;So;0;ON;;;;;N;;;;; 2334;COUNTERBORE;So;0;ON;;;;;N;;;;; 2335;COUNTERSINK;So;0;ON;;;;;N;;;;; 2336;APL FUNCTIONAL SYMBOL I-BEAM;So;0;L;;;;;N;;;;; 2337;APL FUNCTIONAL SYMBOL SQUISH QUAD;So;0;L;;;;;N;;;;; 2338;APL FUNCTIONAL SYMBOL QUAD EQUAL;So;0;L;;;;;N;;;;; 2339;APL FUNCTIONAL SYMBOL QUAD DIVIDE;So;0;L;;;;;N;;;;; 233A;APL FUNCTIONAL SYMBOL QUAD DIAMOND;So;0;L;;;;;N;;;;; 233B;APL FUNCTIONAL SYMBOL QUAD JOT;So;0;L;;;;;N;;;;; 233C;APL FUNCTIONAL SYMBOL QUAD CIRCLE;So;0;L;;;;;N;;;;; 233D;APL FUNCTIONAL SYMBOL CIRCLE STILE;So;0;L;;;;;N;;;;; 233E;APL FUNCTIONAL SYMBOL CIRCLE JOT;So;0;L;;;;;N;;;;; 233F;APL FUNCTIONAL SYMBOL SLASH BAR;So;0;L;;;;;N;;;;; 2340;APL FUNCTIONAL SYMBOL BACKSLASH BAR;So;0;L;;;;;N;;;;; 2341;APL FUNCTIONAL SYMBOL QUAD SLASH;So;0;L;;;;;N;;;;; 2342;APL FUNCTIONAL SYMBOL QUAD BACKSLASH;So;0;L;;;;;N;;;;; 2343;APL FUNCTIONAL SYMBOL QUAD LESS-THAN;So;0;L;;;;;N;;;;; 2344;APL FUNCTIONAL SYMBOL QUAD GREATER-THAN;So;0;L;;;;;N;;;;; 2345;APL FUNCTIONAL SYMBOL LEFTWARDS VANE;So;0;L;;;;;N;;;;; 2346;APL FUNCTIONAL SYMBOL RIGHTWARDS VANE;So;0;L;;;;;N;;;;; 2347;APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW;So;0;L;;;;;N;;;;; 2348;APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW;So;0;L;;;;;N;;;;; 2349;APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH;So;0;L;;;;;N;;;;; 234A;APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR;So;0;L;;;;;N;;*;;; 234B;APL FUNCTIONAL SYMBOL DELTA STILE;So;0;L;;;;;N;;;;; 234C;APL FUNCTIONAL SYMBOL QUAD DOWN CARET;So;0;L;;;;;N;;;;; 234D;APL FUNCTIONAL SYMBOL QUAD DELTA;So;0;L;;;;;N;;;;; 234E;APL FUNCTIONAL SYMBOL DOWN TACK JOT;So;0;L;;;;;N;;*;;; 234F;APL FUNCTIONAL SYMBOL UPWARDS VANE;So;0;L;;;;;N;;;;; 2350;APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW;So;0;L;;;;;N;;;;; 2351;APL FUNCTIONAL SYMBOL UP TACK OVERBAR;So;0;L;;;;;N;;*;;; 2352;APL FUNCTIONAL SYMBOL DEL STILE;So;0;L;;;;;N;;;;; 2353;APL FUNCTIONAL SYMBOL QUAD UP CARET;So;0;L;;;;;N;;;;; 2354;APL FUNCTIONAL SYMBOL QUAD DEL;So;0;L;;;;;N;;;;; 2355;APL FUNCTIONAL SYMBOL UP TACK JOT;So;0;L;;;;;N;;*;;; 2356;APL FUNCTIONAL SYMBOL DOWNWARDS VANE;So;0;L;;;;;N;;;;; 2357;APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW;So;0;L;;;;;N;;;;; 2358;APL FUNCTIONAL SYMBOL QUOTE UNDERBAR;So;0;L;;;;;N;;;;; 2359;APL FUNCTIONAL SYMBOL DELTA UNDERBAR;So;0;L;;;;;N;;;;; 235A;APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR;So;0;L;;;;;N;;;;; 235B;APL FUNCTIONAL SYMBOL JOT UNDERBAR;So;0;L;;;;;N;;;;; 235C;APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR;So;0;L;;;;;N;;;;; 235D;APL FUNCTIONAL SYMBOL UP SHOE JOT;So;0;L;;;;;N;;;;; 235E;APL FUNCTIONAL SYMBOL QUOTE QUAD;So;0;L;;;;;N;;;;; 235F;APL FUNCTIONAL SYMBOL CIRCLE STAR;So;0;L;;;;;N;;;;; 2360;APL FUNCTIONAL SYMBOL QUAD COLON;So;0;L;;;;;N;;;;; 2361;APL FUNCTIONAL SYMBOL UP TACK DIAERESIS;So;0;L;;;;;N;;*;;; 2362;APL FUNCTIONAL SYMBOL DEL DIAERESIS;So;0;L;;;;;N;;;;; 2363;APL FUNCTIONAL SYMBOL STAR DIAERESIS;So;0;L;;;;;N;;;;; 2364;APL FUNCTIONAL SYMBOL JOT DIAERESIS;So;0;L;;;;;N;;;;; 2365;APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS;So;0;L;;;;;N;;;;; 2366;APL FUNCTIONAL SYMBOL DOWN SHOE STILE;So;0;L;;;;;N;;;;; 2367;APL FUNCTIONAL SYMBOL LEFT SHOE STILE;So;0;L;;;;;N;;;;; 2368;APL FUNCTIONAL SYMBOL TILDE DIAERESIS;So;0;L;;;;;N;;;;; 2369;APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS;So;0;L;;;;;N;;;;; 236A;APL FUNCTIONAL SYMBOL COMMA BAR;So;0;L;;;;;N;;;;; 236B;APL FUNCTIONAL SYMBOL DEL TILDE;So;0;L;;;;;N;;;;; 236C;APL FUNCTIONAL SYMBOL ZILDE;So;0;L;;;;;N;;;;; 236D;APL FUNCTIONAL SYMBOL STILE TILDE;So;0;L;;;;;N;;;;; 236E;APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR;So;0;L;;;;;N;;;;; 236F;APL FUNCTIONAL SYMBOL QUAD NOT EQUAL;So;0;L;;;;;N;;;;; 2370;APL FUNCTIONAL SYMBOL QUAD QUESTION;So;0;L;;;;;N;;;;; 2371;APL FUNCTIONAL SYMBOL DOWN CARET TILDE;So;0;L;;;;;N;;;;; 2372;APL FUNCTIONAL SYMBOL UP CARET TILDE;So;0;L;;;;;N;;;;; 2373;APL FUNCTIONAL SYMBOL IOTA;So;0;L;;;;;N;;;;; 2374;APL FUNCTIONAL SYMBOL RHO;So;0;L;;;;;N;;;;; 2375;APL FUNCTIONAL SYMBOL OMEGA;So;0;L;;;;;N;;;;; 2376;APL FUNCTIONAL SYMBOL ALPHA UNDERBAR;So;0;L;;;;;N;;;;; 2377;APL FUNCTIONAL SYMBOL EPSILON UNDERBAR;So;0;L;;;;;N;;;;; 2378;APL FUNCTIONAL SYMBOL IOTA UNDERBAR;So;0;L;;;;;N;;;;; 2379;APL FUNCTIONAL SYMBOL OMEGA UNDERBAR;So;0;L;;;;;N;;;;; 237A;APL FUNCTIONAL SYMBOL ALPHA;So;0;L;;;;;N;;;;; 237B;NOT CHECK MARK;So;0;ON;;;;;N;;;;; 237C;RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW;Sm;0;ON;;;;;N;;;;; 237D;SHOULDERED OPEN BOX;So;0;ON;;;;;N;;;;; 237E;BELL SYMBOL;So;0;ON;;;;;N;;;;; 237F;VERTICAL LINE WITH MIDDLE DOT;So;0;ON;;;;;N;;;;; 2380;INSERTION SYMBOL;So;0;ON;;;;;N;;;;; 2381;CONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; 2382;DISCONTINUOUS UNDERLINE SYMBOL;So;0;ON;;;;;N;;;;; 2383;EMPHASIS SYMBOL;So;0;ON;;;;;N;;;;; 2384;COMPOSITION SYMBOL;So;0;ON;;;;;N;;;;; 2385;WHITE SQUARE WITH CENTRE VERTICAL LINE;So;0;ON;;;;;N;;;;; 2386;ENTER SYMBOL;So;0;ON;;;;;N;;;;; 2387;ALTERNATIVE KEY SYMBOL;So;0;ON;;;;;N;;;;; 2388;HELM SYMBOL;So;0;ON;;;;;N;;;;; 2389;CIRCLED HORIZONTAL BAR WITH NOTCH;So;0;ON;;;;;N;;pause;;; 238A;CIRCLED TRIANGLE DOWN;So;0;ON;;;;;N;;break;;; 238B;BROKEN CIRCLE WITH NORTHWEST ARROW;So;0;ON;;;;;N;;escape;;; 238C;UNDO SYMBOL;So;0;ON;;;;;N;;;;; 238D;MONOSTABLE SYMBOL;So;0;ON;;;;;N;;;;; 238E;HYSTERESIS SYMBOL;So;0;ON;;;;;N;;;;; 238F;OPEN-CIRCUIT-OUTPUT H-TYPE SYMBOL;So;0;ON;;;;;N;;;;; 2390;OPEN-CIRCUIT-OUTPUT L-TYPE SYMBOL;So;0;ON;;;;;N;;;;; 2391;PASSIVE-PULL-DOWN-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; 2392;PASSIVE-PULL-UP-OUTPUT SYMBOL;So;0;ON;;;;;N;;;;; 2393;DIRECT CURRENT SYMBOL FORM TWO;So;0;ON;;;;;N;;;;; 2394;SOFTWARE-FUNCTION SYMBOL;So;0;ON;;;;;N;;;;; 2395;APL FUNCTIONAL SYMBOL QUAD;So;0;L;;;;;N;;;;; 2396;DECIMAL SEPARATOR KEY SYMBOL;So;0;ON;;;;;N;;;;; 2397;PREVIOUS PAGE;So;0;ON;;;;;N;;;;; 2398;NEXT PAGE;So;0;ON;;;;;N;;;;; 2399;PRINT SCREEN SYMBOL;So;0;ON;;;;;N;;;;; 239A;CLEAR SCREEN SYMBOL;So;0;ON;;;;;N;;;;; 239B;LEFT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; 239C;LEFT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; 239D;LEFT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; 239E;RIGHT PARENTHESIS UPPER HOOK;Sm;0;ON;;;;;N;;;;; 239F;RIGHT PARENTHESIS EXTENSION;Sm;0;ON;;;;;N;;;;; 23A0;RIGHT PARENTHESIS LOWER HOOK;Sm;0;ON;;;;;N;;;;; 23A1;LEFT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; 23A2;LEFT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; 23A3;LEFT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; 23A4;RIGHT SQUARE BRACKET UPPER CORNER;Sm;0;ON;;;;;N;;;;; 23A5;RIGHT SQUARE BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; 23A6;RIGHT SQUARE BRACKET LOWER CORNER;Sm;0;ON;;;;;N;;;;; 23A7;LEFT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; 23A8;LEFT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; 23A9;LEFT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; 23AA;CURLY BRACKET EXTENSION;Sm;0;ON;;;;;N;;;;; 23AB;RIGHT CURLY BRACKET UPPER HOOK;Sm;0;ON;;;;;N;;;;; 23AC;RIGHT CURLY BRACKET MIDDLE PIECE;Sm;0;ON;;;;;N;;;;; 23AD;RIGHT CURLY BRACKET LOWER HOOK;Sm;0;ON;;;;;N;;;;; 23AE;INTEGRAL EXTENSION;Sm;0;ON;;;;;N;;;;; 23AF;HORIZONTAL LINE EXTENSION;Sm;0;ON;;;;;N;;;;; 23B0;UPPER LEFT OR LOWER RIGHT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; 23B1;UPPER RIGHT OR LOWER LEFT CURLY BRACKET SECTION;Sm;0;ON;;;;;N;;;;; 23B2;SUMMATION TOP;Sm;0;ON;;;;;N;;;;; 23B3;SUMMATION BOTTOM;Sm;0;ON;;;;;N;;;;; 23B4;TOP SQUARE BRACKET;Ps;0;ON;;;;;N;;;;; 23B5;BOTTOM SQUARE BRACKET;Pe;0;ON;;;;;N;;;;; 23B6;BOTTOM SQUARE BRACKET OVER TOP SQUARE BRACKET;Po;0;ON;;;;;N;;;;; 23B7;RADICAL SYMBOL BOTTOM;So;0;ON;;;;;N;;;;; 23B8;LEFT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; 23B9;RIGHT VERTICAL BOX LINE;So;0;ON;;;;;N;;;;; 23BA;HORIZONTAL SCAN LINE-1;So;0;ON;;;;;N;;;;; 23BB;HORIZONTAL SCAN LINE-3;So;0;ON;;;;;N;;;;; 23BC;HORIZONTAL SCAN LINE-7;So;0;ON;;;;;N;;;;; 23BD;HORIZONTAL SCAN LINE-9;So;0;ON;;;;;N;;;;; 23BE;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP RIGHT;So;0;ON;;;;;N;;;;; 23BF;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM RIGHT;So;0;ON;;;;;N;;;;; 23C0;DENTISTRY SYMBOL LIGHT VERTICAL WITH CIRCLE;So;0;ON;;;;;N;;;;; 23C1;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; 23C2;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH CIRCLE;So;0;ON;;;;;N;;;;; 23C3;DENTISTRY SYMBOL LIGHT VERTICAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; 23C4;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; 23C5;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH TRIANGLE;So;0;ON;;;;;N;;;;; 23C6;DENTISTRY SYMBOL LIGHT VERTICAL AND WAVE;So;0;ON;;;;;N;;;;; 23C7;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; 23C8;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL WITH WAVE;So;0;ON;;;;;N;;;;; 23C9;DENTISTRY SYMBOL LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;;;;; 23CA;DENTISTRY SYMBOL LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;;;;; 23CB;DENTISTRY SYMBOL LIGHT VERTICAL AND TOP LEFT;So;0;ON;;;;;N;;;;; 23CC;DENTISTRY SYMBOL LIGHT VERTICAL AND BOTTOM LEFT;So;0;ON;;;;;N;;;;; 23CD;SQUARE FOOT;So;0;ON;;;;;N;;;;; 23CE;RETURN SYMBOL;So;0;ON;;;;;N;;;;; 2400;SYMBOL FOR NULL;So;0;ON;;;;;N;GRAPHIC FOR NULL;;;; 2401;SYMBOL FOR START OF HEADING;So;0;ON;;;;;N;GRAPHIC FOR START OF HEADING;;;; 2402;SYMBOL FOR START OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR START OF TEXT;;;; 2403;SYMBOL FOR END OF TEXT;So;0;ON;;;;;N;GRAPHIC FOR END OF TEXT;;;; 2404;SYMBOL FOR END OF TRANSMISSION;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION;;;; 2405;SYMBOL FOR ENQUIRY;So;0;ON;;;;;N;GRAPHIC FOR ENQUIRY;;;; 2406;SYMBOL FOR ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR ACKNOWLEDGE;;;; 2407;SYMBOL FOR BELL;So;0;ON;;;;;N;GRAPHIC FOR BELL;;;; 2408;SYMBOL FOR BACKSPACE;So;0;ON;;;;;N;GRAPHIC FOR BACKSPACE;;;; 2409;SYMBOL FOR HORIZONTAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR HORIZONTAL TABULATION;;;; 240A;SYMBOL FOR LINE FEED;So;0;ON;;;;;N;GRAPHIC FOR LINE FEED;;;; 240B;SYMBOL FOR VERTICAL TABULATION;So;0;ON;;;;;N;GRAPHIC FOR VERTICAL TABULATION;;;; 240C;SYMBOL FOR FORM FEED;So;0;ON;;;;;N;GRAPHIC FOR FORM FEED;;;; 240D;SYMBOL FOR CARRIAGE RETURN;So;0;ON;;;;;N;GRAPHIC FOR CARRIAGE RETURN;;;; 240E;SYMBOL FOR SHIFT OUT;So;0;ON;;;;;N;GRAPHIC FOR SHIFT OUT;;;; 240F;SYMBOL FOR SHIFT IN;So;0;ON;;;;;N;GRAPHIC FOR SHIFT IN;;;; 2410;SYMBOL FOR DATA LINK ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR DATA LINK ESCAPE;;;; 2411;SYMBOL FOR DEVICE CONTROL ONE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL ONE;;;; 2412;SYMBOL FOR DEVICE CONTROL TWO;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL TWO;;;; 2413;SYMBOL FOR DEVICE CONTROL THREE;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL THREE;;;; 2414;SYMBOL FOR DEVICE CONTROL FOUR;So;0;ON;;;;;N;GRAPHIC FOR DEVICE CONTROL FOUR;;;; 2415;SYMBOL FOR NEGATIVE ACKNOWLEDGE;So;0;ON;;;;;N;GRAPHIC FOR NEGATIVE ACKNOWLEDGE;;;; 2416;SYMBOL FOR SYNCHRONOUS IDLE;So;0;ON;;;;;N;GRAPHIC FOR SYNCHRONOUS IDLE;;;; 2417;SYMBOL FOR END OF TRANSMISSION BLOCK;So;0;ON;;;;;N;GRAPHIC FOR END OF TRANSMISSION BLOCK;;;; 2418;SYMBOL FOR CANCEL;So;0;ON;;;;;N;GRAPHIC FOR CANCEL;;;; 2419;SYMBOL FOR END OF MEDIUM;So;0;ON;;;;;N;GRAPHIC FOR END OF MEDIUM;;;; 241A;SYMBOL FOR SUBSTITUTE;So;0;ON;;;;;N;GRAPHIC FOR SUBSTITUTE;;;; 241B;SYMBOL FOR ESCAPE;So;0;ON;;;;;N;GRAPHIC FOR ESCAPE;;;; 241C;SYMBOL FOR FILE SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR FILE SEPARATOR;;;; 241D;SYMBOL FOR GROUP SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR GROUP SEPARATOR;;;; 241E;SYMBOL FOR RECORD SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR RECORD SEPARATOR;;;; 241F;SYMBOL FOR UNIT SEPARATOR;So;0;ON;;;;;N;GRAPHIC FOR UNIT SEPARATOR;;;; 2420;SYMBOL FOR SPACE;So;0;ON;;;;;N;GRAPHIC FOR SPACE;;;; 2421;SYMBOL FOR DELETE;So;0;ON;;;;;N;GRAPHIC FOR DELETE;;;; 2422;BLANK SYMBOL;So;0;ON;;;;;N;BLANK;;;; 2423;OPEN BOX;So;0;ON;;;;;N;;;;; 2424;SYMBOL FOR NEWLINE;So;0;ON;;;;;N;GRAPHIC FOR NEWLINE;;;; 2425;SYMBOL FOR DELETE FORM TWO;So;0;ON;;;;;N;;;;; 2426;SYMBOL FOR SUBSTITUTE FORM TWO;So;0;ON;;;;;N;;;;; 2440;OCR HOOK;So;0;ON;;;;;N;;;;; 2441;OCR CHAIR;So;0;ON;;;;;N;;;;; 2442;OCR FORK;So;0;ON;;;;;N;;;;; 2443;OCR INVERTED FORK;So;0;ON;;;;;N;;;;; 2444;OCR BELT BUCKLE;So;0;ON;;;;;N;;;;; 2445;OCR BOW TIE;So;0;ON;;;;;N;;;;; 2446;OCR BRANCH BANK IDENTIFICATION;So;0;ON;;;;;N;;;;; 2447;OCR AMOUNT OF CHECK;So;0;ON;;;;;N;;;;; 2448;OCR DASH;So;0;ON;;;;;N;;;;; 2449;OCR CUSTOMER ACCOUNT NUMBER;So;0;ON;;;;;N;;;;; 244A;OCR DOUBLE BACKSLASH;So;0;ON;;;;;N;;;;; 2460;CIRCLED DIGIT ONE;No;0;EN; 0031;;1;1;N;;;;; 2461;CIRCLED DIGIT TWO;No;0;EN; 0032;;2;2;N;;;;; 2462;CIRCLED DIGIT THREE;No;0;EN; 0033;;3;3;N;;;;; 2463;CIRCLED DIGIT FOUR;No;0;EN; 0034;;4;4;N;;;;; 2464;CIRCLED DIGIT FIVE;No;0;EN; 0035;;5;5;N;;;;; 2465;CIRCLED DIGIT SIX;No;0;EN; 0036;;6;6;N;;;;; 2466;CIRCLED DIGIT SEVEN;No;0;EN; 0037;;7;7;N;;;;; 2467;CIRCLED DIGIT EIGHT;No;0;EN; 0038;;8;8;N;;;;; 2468;CIRCLED DIGIT NINE;No;0;EN; 0039;;9;9;N;;;;; 2469;CIRCLED NUMBER TEN;No;0;EN; 0031 0030;;;10;N;;;;; 246A;CIRCLED NUMBER ELEVEN;No;0;EN; 0031 0031;;;11;N;;;;; 246B;CIRCLED NUMBER TWELVE;No;0;EN; 0031 0032;;;12;N;;;;; 246C;CIRCLED NUMBER THIRTEEN;No;0;EN; 0031 0033;;;13;N;;;;; 246D;CIRCLED NUMBER FOURTEEN;No;0;EN; 0031 0034;;;14;N;;;;; 246E;CIRCLED NUMBER FIFTEEN;No;0;EN; 0031 0035;;;15;N;;;;; 246F;CIRCLED NUMBER SIXTEEN;No;0;EN; 0031 0036;;;16;N;;;;; 2470;CIRCLED NUMBER SEVENTEEN;No;0;EN; 0031 0037;;;17;N;;;;; 2471;CIRCLED NUMBER EIGHTEEN;No;0;EN; 0031 0038;;;18;N;;;;; 2472;CIRCLED NUMBER NINETEEN;No;0;EN; 0031 0039;;;19;N;;;;; 2473;CIRCLED NUMBER TWENTY;No;0;EN; 0032 0030;;;20;N;;;;; 2474;PARENTHESIZED DIGIT ONE;No;0;EN; 0028 0031 0029;;1;1;N;;;;; 2475;PARENTHESIZED DIGIT TWO;No;0;EN; 0028 0032 0029;;2;2;N;;;;; 2476;PARENTHESIZED DIGIT THREE;No;0;EN; 0028 0033 0029;;3;3;N;;;;; 2477;PARENTHESIZED DIGIT FOUR;No;0;EN; 0028 0034 0029;;4;4;N;;;;; 2478;PARENTHESIZED DIGIT FIVE;No;0;EN; 0028 0035 0029;;5;5;N;;;;; 2479;PARENTHESIZED DIGIT SIX;No;0;EN; 0028 0036 0029;;6;6;N;;;;; 247A;PARENTHESIZED DIGIT SEVEN;No;0;EN; 0028 0037 0029;;7;7;N;;;;; 247B;PARENTHESIZED DIGIT EIGHT;No;0;EN; 0028 0038 0029;;8;8;N;;;;; 247C;PARENTHESIZED DIGIT NINE;No;0;EN; 0028 0039 0029;;9;9;N;;;;; 247D;PARENTHESIZED NUMBER TEN;No;0;EN; 0028 0031 0030 0029;;;10;N;;;;; 247E;PARENTHESIZED NUMBER ELEVEN;No;0;EN; 0028 0031 0031 0029;;;11;N;;;;; 247F;PARENTHESIZED NUMBER TWELVE;No;0;EN; 0028 0031 0032 0029;;;12;N;;;;; 2480;PARENTHESIZED NUMBER THIRTEEN;No;0;EN; 0028 0031 0033 0029;;;13;N;;;;; 2481;PARENTHESIZED NUMBER FOURTEEN;No;0;EN; 0028 0031 0034 0029;;;14;N;;;;; 2482;PARENTHESIZED NUMBER FIFTEEN;No;0;EN; 0028 0031 0035 0029;;;15;N;;;;; 2483;PARENTHESIZED NUMBER SIXTEEN;No;0;EN; 0028 0031 0036 0029;;;16;N;;;;; 2484;PARENTHESIZED NUMBER SEVENTEEN;No;0;EN; 0028 0031 0037 0029;;;17;N;;;;; 2485;PARENTHESIZED NUMBER EIGHTEEN;No;0;EN; 0028 0031 0038 0029;;;18;N;;;;; 2486;PARENTHESIZED NUMBER NINETEEN;No;0;EN; 0028 0031 0039 0029;;;19;N;;;;; 2487;PARENTHESIZED NUMBER TWENTY;No;0;EN; 0028 0032 0030 0029;;;20;N;;;;; 2488;DIGIT ONE FULL STOP;No;0;EN; 0031 002E;;1;1;N;DIGIT ONE PERIOD;;;; 2489;DIGIT TWO FULL STOP;No;0;EN; 0032 002E;;2;2;N;DIGIT TWO PERIOD;;;; 248A;DIGIT THREE FULL STOP;No;0;EN; 0033 002E;;3;3;N;DIGIT THREE PERIOD;;;; 248B;DIGIT FOUR FULL STOP;No;0;EN; 0034 002E;;4;4;N;DIGIT FOUR PERIOD;;;; 248C;DIGIT FIVE FULL STOP;No;0;EN; 0035 002E;;5;5;N;DIGIT FIVE PERIOD;;;; 248D;DIGIT SIX FULL STOP;No;0;EN; 0036 002E;;6;6;N;DIGIT SIX PERIOD;;;; 248E;DIGIT SEVEN FULL STOP;No;0;EN; 0037 002E;;7;7;N;DIGIT SEVEN PERIOD;;;; 248F;DIGIT EIGHT FULL STOP;No;0;EN; 0038 002E;;8;8;N;DIGIT EIGHT PERIOD;;;; 2490;DIGIT NINE FULL STOP;No;0;EN; 0039 002E;;9;9;N;DIGIT NINE PERIOD;;;; 2491;NUMBER TEN FULL STOP;No;0;EN; 0031 0030 002E;;;10;N;NUMBER TEN PERIOD;;;; 2492;NUMBER ELEVEN FULL STOP;No;0;EN; 0031 0031 002E;;;11;N;NUMBER ELEVEN PERIOD;;;; 2493;NUMBER TWELVE FULL STOP;No;0;EN; 0031 0032 002E;;;12;N;NUMBER TWELVE PERIOD;;;; 2494;NUMBER THIRTEEN FULL STOP;No;0;EN; 0031 0033 002E;;;13;N;NUMBER THIRTEEN PERIOD;;;; 2495;NUMBER FOURTEEN FULL STOP;No;0;EN; 0031 0034 002E;;;14;N;NUMBER FOURTEEN PERIOD;;;; 2496;NUMBER FIFTEEN FULL STOP;No;0;EN; 0031 0035 002E;;;15;N;NUMBER FIFTEEN PERIOD;;;; 2497;NUMBER SIXTEEN FULL STOP;No;0;EN; 0031 0036 002E;;;16;N;NUMBER SIXTEEN PERIOD;;;; 2498;NUMBER SEVENTEEN FULL STOP;No;0;EN; 0031 0037 002E;;;17;N;NUMBER SEVENTEEN PERIOD;;;; 2499;NUMBER EIGHTEEN FULL STOP;No;0;EN; 0031 0038 002E;;;18;N;NUMBER EIGHTEEN PERIOD;;;; 249A;NUMBER NINETEEN FULL STOP;No;0;EN; 0031 0039 002E;;;19;N;NUMBER NINETEEN PERIOD;;;; 249B;NUMBER TWENTY FULL STOP;No;0;EN; 0032 0030 002E;;;20;N;NUMBER TWENTY PERIOD;;;; 249C;PARENTHESIZED LATIN SMALL LETTER A;So;0;L; 0028 0061 0029;;;;N;;;;; 249D;PARENTHESIZED LATIN SMALL LETTER B;So;0;L; 0028 0062 0029;;;;N;;;;; 249E;PARENTHESIZED LATIN SMALL LETTER C;So;0;L; 0028 0063 0029;;;;N;;;;; 249F;PARENTHESIZED LATIN SMALL LETTER D;So;0;L; 0028 0064 0029;;;;N;;;;; 24A0;PARENTHESIZED LATIN SMALL LETTER E;So;0;L; 0028 0065 0029;;;;N;;;;; 24A1;PARENTHESIZED LATIN SMALL LETTER F;So;0;L; 0028 0066 0029;;;;N;;;;; 24A2;PARENTHESIZED LATIN SMALL LETTER G;So;0;L; 0028 0067 0029;;;;N;;;;; 24A3;PARENTHESIZED LATIN SMALL LETTER H;So;0;L; 0028 0068 0029;;;;N;;;;; 24A4;PARENTHESIZED LATIN SMALL LETTER I;So;0;L; 0028 0069 0029;;;;N;;;;; 24A5;PARENTHESIZED LATIN SMALL LETTER J;So;0;L; 0028 006A 0029;;;;N;;;;; 24A6;PARENTHESIZED LATIN SMALL LETTER K;So;0;L; 0028 006B 0029;;;;N;;;;; 24A7;PARENTHESIZED LATIN SMALL LETTER L;So;0;L; 0028 006C 0029;;;;N;;;;; 24A8;PARENTHESIZED LATIN SMALL LETTER M;So;0;L; 0028 006D 0029;;;;N;;;;; 24A9;PARENTHESIZED LATIN SMALL LETTER N;So;0;L; 0028 006E 0029;;;;N;;;;; 24AA;PARENTHESIZED LATIN SMALL LETTER O;So;0;L; 0028 006F 0029;;;;N;;;;; 24AB;PARENTHESIZED LATIN SMALL LETTER P;So;0;L; 0028 0070 0029;;;;N;;;;; 24AC;PARENTHESIZED LATIN SMALL LETTER Q;So;0;L; 0028 0071 0029;;;;N;;;;; 24AD;PARENTHESIZED LATIN SMALL LETTER R;So;0;L; 0028 0072 0029;;;;N;;;;; 24AE;PARENTHESIZED LATIN SMALL LETTER S;So;0;L; 0028 0073 0029;;;;N;;;;; 24AF;PARENTHESIZED LATIN SMALL LETTER T;So;0;L; 0028 0074 0029;;;;N;;;;; 24B0;PARENTHESIZED LATIN SMALL LETTER U;So;0;L; 0028 0075 0029;;;;N;;;;; 24B1;PARENTHESIZED LATIN SMALL LETTER V;So;0;L; 0028 0076 0029;;;;N;;;;; 24B2;PARENTHESIZED LATIN SMALL LETTER W;So;0;L; 0028 0077 0029;;;;N;;;;; 24B3;PARENTHESIZED LATIN SMALL LETTER X;So;0;L; 0028 0078 0029;;;;N;;;;; 24B4;PARENTHESIZED LATIN SMALL LETTER Y;So;0;L; 0028 0079 0029;;;;N;;;;; 24B5;PARENTHESIZED LATIN SMALL LETTER Z;So;0;L; 0028 007A 0029;;;;N;;;;; 24B6;CIRCLED LATIN CAPITAL LETTER A;So;0;L; 0041;;;;N;;;;24D0; 24B7;CIRCLED LATIN CAPITAL LETTER B;So;0;L; 0042;;;;N;;;;24D1; 24B8;CIRCLED LATIN CAPITAL LETTER C;So;0;L; 0043;;;;N;;;;24D2; 24B9;CIRCLED LATIN CAPITAL LETTER D;So;0;L; 0044;;;;N;;;;24D3; 24BA;CIRCLED LATIN CAPITAL LETTER E;So;0;L; 0045;;;;N;;;;24D4; 24BB;CIRCLED LATIN CAPITAL LETTER F;So;0;L; 0046;;;;N;;;;24D5; 24BC;CIRCLED LATIN CAPITAL LETTER G;So;0;L; 0047;;;;N;;;;24D6; 24BD;CIRCLED LATIN CAPITAL LETTER H;So;0;L; 0048;;;;N;;;;24D7; 24BE;CIRCLED LATIN CAPITAL LETTER I;So;0;L; 0049;;;;N;;;;24D8; 24BF;CIRCLED LATIN CAPITAL LETTER J;So;0;L; 004A;;;;N;;;;24D9; 24C0;CIRCLED LATIN CAPITAL LETTER K;So;0;L; 004B;;;;N;;;;24DA; 24C1;CIRCLED LATIN CAPITAL LETTER L;So;0;L; 004C;;;;N;;;;24DB; 24C2;CIRCLED LATIN CAPITAL LETTER M;So;0;L; 004D;;;;N;;;;24DC; 24C3;CIRCLED LATIN CAPITAL LETTER N;So;0;L; 004E;;;;N;;;;24DD; 24C4;CIRCLED LATIN CAPITAL LETTER O;So;0;L; 004F;;;;N;;;;24DE; 24C5;CIRCLED LATIN CAPITAL LETTER P;So;0;L; 0050;;;;N;;;;24DF; 24C6;CIRCLED LATIN CAPITAL LETTER Q;So;0;L; 0051;;;;N;;;;24E0; 24C7;CIRCLED LATIN CAPITAL LETTER R;So;0;L; 0052;;;;N;;;;24E1; 24C8;CIRCLED LATIN CAPITAL LETTER S;So;0;L; 0053;;;;N;;;;24E2; 24C9;CIRCLED LATIN CAPITAL LETTER T;So;0;L; 0054;;;;N;;;;24E3; 24CA;CIRCLED LATIN CAPITAL LETTER U;So;0;L; 0055;;;;N;;;;24E4; 24CB;CIRCLED LATIN CAPITAL LETTER V;So;0;L; 0056;;;;N;;;;24E5; 24CC;CIRCLED LATIN CAPITAL LETTER W;So;0;L; 0057;;;;N;;;;24E6; 24CD;CIRCLED LATIN CAPITAL LETTER X;So;0;L; 0058;;;;N;;;;24E7; 24CE;CIRCLED LATIN CAPITAL LETTER Y;So;0;L; 0059;;;;N;;;;24E8; 24CF;CIRCLED LATIN CAPITAL LETTER Z;So;0;L; 005A;;;;N;;;;24E9; 24D0;CIRCLED LATIN SMALL LETTER A;So;0;L; 0061;;;;N;;;24B6;;24B6 24D1;CIRCLED LATIN SMALL LETTER B;So;0;L; 0062;;;;N;;;24B7;;24B7 24D2;CIRCLED LATIN SMALL LETTER C;So;0;L; 0063;;;;N;;;24B8;;24B8 24D3;CIRCLED LATIN SMALL LETTER D;So;0;L; 0064;;;;N;;;24B9;;24B9 24D4;CIRCLED LATIN SMALL LETTER E;So;0;L; 0065;;;;N;;;24BA;;24BA 24D5;CIRCLED LATIN SMALL LETTER F;So;0;L; 0066;;;;N;;;24BB;;24BB 24D6;CIRCLED LATIN SMALL LETTER G;So;0;L; 0067;;;;N;;;24BC;;24BC 24D7;CIRCLED LATIN SMALL LETTER H;So;0;L; 0068;;;;N;;;24BD;;24BD 24D8;CIRCLED LATIN SMALL LETTER I;So;0;L; 0069;;;;N;;;24BE;;24BE 24D9;CIRCLED LATIN SMALL LETTER J;So;0;L; 006A;;;;N;;;24BF;;24BF 24DA;CIRCLED LATIN SMALL LETTER K;So;0;L; 006B;;;;N;;;24C0;;24C0 24DB;CIRCLED LATIN SMALL LETTER L;So;0;L; 006C;;;;N;;;24C1;;24C1 24DC;CIRCLED LATIN SMALL LETTER M;So;0;L; 006D;;;;N;;;24C2;;24C2 24DD;CIRCLED LATIN SMALL LETTER N;So;0;L; 006E;;;;N;;;24C3;;24C3 24DE;CIRCLED LATIN SMALL LETTER O;So;0;L; 006F;;;;N;;;24C4;;24C4 24DF;CIRCLED LATIN SMALL LETTER P;So;0;L; 0070;;;;N;;;24C5;;24C5 24E0;CIRCLED LATIN SMALL LETTER Q;So;0;L; 0071;;;;N;;;24C6;;24C6 24E1;CIRCLED LATIN SMALL LETTER R;So;0;L; 0072;;;;N;;;24C7;;24C7 24E2;CIRCLED LATIN SMALL LETTER S;So;0;L; 0073;;;;N;;;24C8;;24C8 24E3;CIRCLED LATIN SMALL LETTER T;So;0;L; 0074;;;;N;;;24C9;;24C9 24E4;CIRCLED LATIN SMALL LETTER U;So;0;L; 0075;;;;N;;;24CA;;24CA 24E5;CIRCLED LATIN SMALL LETTER V;So;0;L; 0076;;;;N;;;24CB;;24CB 24E6;CIRCLED LATIN SMALL LETTER W;So;0;L; 0077;;;;N;;;24CC;;24CC 24E7;CIRCLED LATIN SMALL LETTER X;So;0;L; 0078;;;;N;;;24CD;;24CD 24E8;CIRCLED LATIN SMALL LETTER Y;So;0;L; 0079;;;;N;;;24CE;;24CE 24E9;CIRCLED LATIN SMALL LETTER Z;So;0;L; 007A;;;;N;;;24CF;;24CF 24EA;CIRCLED DIGIT ZERO;No;0;EN; 0030;;0;0;N;;;;; 24EB;NEGATIVE CIRCLED NUMBER ELEVEN;No;0;ON;;;;11;N;;;;; 24EC;NEGATIVE CIRCLED NUMBER TWELVE;No;0;ON;;;;12;N;;;;; 24ED;NEGATIVE CIRCLED NUMBER THIRTEEN;No;0;ON;;;;13;N;;;;; 24EE;NEGATIVE CIRCLED NUMBER FOURTEEN;No;0;ON;;;;14;N;;;;; 24EF;NEGATIVE CIRCLED NUMBER FIFTEEN;No;0;ON;;;;15;N;;;;; 24F0;NEGATIVE CIRCLED NUMBER SIXTEEN;No;0;ON;;;;16;N;;;;; 24F1;NEGATIVE CIRCLED NUMBER SEVENTEEN;No;0;ON;;;;17;N;;;;; 24F2;NEGATIVE CIRCLED NUMBER EIGHTEEN;No;0;ON;;;;18;N;;;;; 24F3;NEGATIVE CIRCLED NUMBER NINETEEN;No;0;ON;;;;19;N;;;;; 24F4;NEGATIVE CIRCLED NUMBER TWENTY;No;0;ON;;;;20;N;;;;; 24F5;DOUBLE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;;;;; 24F6;DOUBLE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;;;;; 24F7;DOUBLE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;;;;; 24F8;DOUBLE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;;;;; 24F9;DOUBLE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;;;;; 24FA;DOUBLE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;;;;; 24FB;DOUBLE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;;;;; 24FC;DOUBLE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;;;;; 24FD;DOUBLE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;;;;; 24FE;DOUBLE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;;;;; 2500;BOX DRAWINGS LIGHT HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT HORIZONTAL;;;; 2501;BOX DRAWINGS HEAVY HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY HORIZONTAL;;;; 2502;BOX DRAWINGS LIGHT VERTICAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL;;;; 2503;BOX DRAWINGS HEAVY VERTICAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL;;;; 2504;BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH HORIZONTAL;;;; 2505;BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH HORIZONTAL;;;; 2506;BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT TRIPLE DASH VERTICAL;;;; 2507;BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY TRIPLE DASH VERTICAL;;;; 2508;BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH HORIZONTAL;;;; 2509;BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH HORIZONTAL;;;; 250A;BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT QUADRUPLE DASH VERTICAL;;;; 250B;BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY QUADRUPLE DASH VERTICAL;;;; 250C;BOX DRAWINGS LIGHT DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND RIGHT;;;; 250D;BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT HEAVY;;;; 250E;BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT LIGHT;;;; 250F;BOX DRAWINGS HEAVY DOWN AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND RIGHT;;;; 2510;BOX DRAWINGS LIGHT DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT DOWN AND LEFT;;;; 2511;BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT HEAVY;;;; 2512;BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT LIGHT;;;; 2513;BOX DRAWINGS HEAVY DOWN AND LEFT;So;0;ON;;;;;N;FORMS HEAVY DOWN AND LEFT;;;; 2514;BOX DRAWINGS LIGHT UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT UP AND RIGHT;;;; 2515;BOX DRAWINGS UP LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT HEAVY;;;; 2516;BOX DRAWINGS UP HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT LIGHT;;;; 2517;BOX DRAWINGS HEAVY UP AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY UP AND RIGHT;;;; 2518;BOX DRAWINGS LIGHT UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT UP AND LEFT;;;; 2519;BOX DRAWINGS UP LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT HEAVY;;;; 251A;BOX DRAWINGS UP HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT LIGHT;;;; 251B;BOX DRAWINGS HEAVY UP AND LEFT;So;0;ON;;;;;N;FORMS HEAVY UP AND LEFT;;;; 251C;BOX DRAWINGS LIGHT VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND RIGHT;;;; 251D;BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND RIGHT HEAVY;;;; 251E;BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND RIGHT DOWN LIGHT;;;; 251F;BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND RIGHT UP LIGHT;;;; 2520;BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND RIGHT LIGHT;;;; 2521;BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND RIGHT UP HEAVY;;;; 2522;BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND RIGHT DOWN HEAVY;;;; 2523;BOX DRAWINGS HEAVY VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND RIGHT;;;; 2524;BOX DRAWINGS LIGHT VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND LEFT;;;; 2525;BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND LEFT HEAVY;;;; 2526;BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND LEFT DOWN LIGHT;;;; 2527;BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND LEFT UP LIGHT;;;; 2528;BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND LEFT LIGHT;;;; 2529;BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND LEFT UP HEAVY;;;; 252A;BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND LEFT DOWN HEAVY;;;; 252B;BOX DRAWINGS HEAVY VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND LEFT;;;; 252C;BOX DRAWINGS LIGHT DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOWN AND HORIZONTAL;;;; 252D;BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT DOWN LIGHT;;;; 252E;BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT DOWN LIGHT;;;; 252F;BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND HORIZONTAL HEAVY;;;; 2530;BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND HORIZONTAL LIGHT;;;; 2531;BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT DOWN HEAVY;;;; 2532;BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT DOWN HEAVY;;;; 2533;BOX DRAWINGS HEAVY DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOWN AND HORIZONTAL;;;; 2534;BOX DRAWINGS LIGHT UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT UP AND HORIZONTAL;;;; 2535;BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT UP LIGHT;;;; 2536;BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT UP LIGHT;;;; 2537;BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND HORIZONTAL HEAVY;;;; 2538;BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND HORIZONTAL LIGHT;;;; 2539;BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT UP HEAVY;;;; 253A;BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT UP HEAVY;;;; 253B;BOX DRAWINGS HEAVY UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY UP AND HORIZONTAL;;;; 253C;BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT VERTICAL AND HORIZONTAL;;;; 253D;BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS LEFT HEAVY AND RIGHT VERTICAL LIGHT;;;; 253E;BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT;So;0;ON;;;;;N;FORMS RIGHT HEAVY AND LEFT VERTICAL LIGHT;;;; 253F;BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS VERTICAL LIGHT AND HORIZONTAL HEAVY;;;; 2540;BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS UP HEAVY AND DOWN HORIZONTAL LIGHT;;;; 2541;BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS DOWN HEAVY AND UP HORIZONTAL LIGHT;;;; 2542;BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT;So;0;ON;;;;;N;FORMS VERTICAL HEAVY AND HORIZONTAL LIGHT;;;; 2543;BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT;So;0;ON;;;;;N;FORMS LEFT UP HEAVY AND RIGHT DOWN LIGHT;;;; 2544;BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT;So;0;ON;;;;;N;FORMS RIGHT UP HEAVY AND LEFT DOWN LIGHT;;;; 2545;BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT;So;0;ON;;;;;N;FORMS LEFT DOWN HEAVY AND RIGHT UP LIGHT;;;; 2546;BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT;So;0;ON;;;;;N;FORMS RIGHT DOWN HEAVY AND LEFT UP LIGHT;;;; 2547;BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS DOWN LIGHT AND UP HORIZONTAL HEAVY;;;; 2548;BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY;So;0;ON;;;;;N;FORMS UP LIGHT AND DOWN HORIZONTAL HEAVY;;;; 2549;BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS RIGHT LIGHT AND LEFT VERTICAL HEAVY;;;; 254A;BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY;So;0;ON;;;;;N;FORMS LEFT LIGHT AND RIGHT VERTICAL HEAVY;;;; 254B;BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY VERTICAL AND HORIZONTAL;;;; 254C;BOX DRAWINGS LIGHT DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH HORIZONTAL;;;; 254D;BOX DRAWINGS HEAVY DOUBLE DASH HORIZONTAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH HORIZONTAL;;;; 254E;BOX DRAWINGS LIGHT DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS LIGHT DOUBLE DASH VERTICAL;;;; 254F;BOX DRAWINGS HEAVY DOUBLE DASH VERTICAL;So;0;ON;;;;;N;FORMS HEAVY DOUBLE DASH VERTICAL;;;; 2550;BOX DRAWINGS DOUBLE HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE HORIZONTAL;;;; 2551;BOX DRAWINGS DOUBLE VERTICAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL;;;; 2552;BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND RIGHT DOUBLE;;;; 2553;BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND RIGHT SINGLE;;;; 2554;BOX DRAWINGS DOUBLE DOWN AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND RIGHT;;;; 2555;BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND LEFT DOUBLE;;;; 2556;BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND LEFT SINGLE;;;; 2557;BOX DRAWINGS DOUBLE DOWN AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND LEFT;;;; 2558;BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND RIGHT DOUBLE;;;; 2559;BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND RIGHT SINGLE;;;; 255A;BOX DRAWINGS DOUBLE UP AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE UP AND RIGHT;;;; 255B;BOX DRAWINGS UP SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND LEFT DOUBLE;;;; 255C;BOX DRAWINGS UP DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND LEFT SINGLE;;;; 255D;BOX DRAWINGS DOUBLE UP AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE UP AND LEFT;;;; 255E;BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND RIGHT DOUBLE;;;; 255F;BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND RIGHT SINGLE;;;; 2560;BOX DRAWINGS DOUBLE VERTICAL AND RIGHT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND RIGHT;;;; 2561;BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND LEFT DOUBLE;;;; 2562;BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND LEFT SINGLE;;;; 2563;BOX DRAWINGS DOUBLE VERTICAL AND LEFT;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND LEFT;;;; 2564;BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS DOWN SINGLE AND HORIZONTAL DOUBLE;;;; 2565;BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS DOWN DOUBLE AND HORIZONTAL SINGLE;;;; 2566;BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE DOWN AND HORIZONTAL;;;; 2567;BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS UP SINGLE AND HORIZONTAL DOUBLE;;;; 2568;BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS UP DOUBLE AND HORIZONTAL SINGLE;;;; 2569;BOX DRAWINGS DOUBLE UP AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE UP AND HORIZONTAL;;;; 256A;BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE;So;0;ON;;;;;N;FORMS VERTICAL SINGLE AND HORIZONTAL DOUBLE;;;; 256B;BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE;So;0;ON;;;;;N;FORMS VERTICAL DOUBLE AND HORIZONTAL SINGLE;;;; 256C;BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL;So;0;ON;;;;;N;FORMS DOUBLE VERTICAL AND HORIZONTAL;;;; 256D;BOX DRAWINGS LIGHT ARC DOWN AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND RIGHT;;;; 256E;BOX DRAWINGS LIGHT ARC DOWN AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC DOWN AND LEFT;;;; 256F;BOX DRAWINGS LIGHT ARC UP AND LEFT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND LEFT;;;; 2570;BOX DRAWINGS LIGHT ARC UP AND RIGHT;So;0;ON;;;;;N;FORMS LIGHT ARC UP AND RIGHT;;;; 2571;BOX DRAWINGS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER RIGHT TO LOWER LEFT;;;; 2572;BOX DRAWINGS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL UPPER LEFT TO LOWER RIGHT;;;; 2573;BOX DRAWINGS LIGHT DIAGONAL CROSS;So;0;ON;;;;;N;FORMS LIGHT DIAGONAL CROSS;;;; 2574;BOX DRAWINGS LIGHT LEFT;So;0;ON;;;;;N;FORMS LIGHT LEFT;;;; 2575;BOX DRAWINGS LIGHT UP;So;0;ON;;;;;N;FORMS LIGHT UP;;;; 2576;BOX DRAWINGS LIGHT RIGHT;So;0;ON;;;;;N;FORMS LIGHT RIGHT;;;; 2577;BOX DRAWINGS LIGHT DOWN;So;0;ON;;;;;N;FORMS LIGHT DOWN;;;; 2578;BOX DRAWINGS HEAVY LEFT;So;0;ON;;;;;N;FORMS HEAVY LEFT;;;; 2579;BOX DRAWINGS HEAVY UP;So;0;ON;;;;;N;FORMS HEAVY UP;;;; 257A;BOX DRAWINGS HEAVY RIGHT;So;0;ON;;;;;N;FORMS HEAVY RIGHT;;;; 257B;BOX DRAWINGS HEAVY DOWN;So;0;ON;;;;;N;FORMS HEAVY DOWN;;;; 257C;BOX DRAWINGS LIGHT LEFT AND HEAVY RIGHT;So;0;ON;;;;;N;FORMS LIGHT LEFT AND HEAVY RIGHT;;;; 257D;BOX DRAWINGS LIGHT UP AND HEAVY DOWN;So;0;ON;;;;;N;FORMS LIGHT UP AND HEAVY DOWN;;;; 257E;BOX DRAWINGS HEAVY LEFT AND LIGHT RIGHT;So;0;ON;;;;;N;FORMS HEAVY LEFT AND LIGHT RIGHT;;;; 257F;BOX DRAWINGS HEAVY UP AND LIGHT DOWN;So;0;ON;;;;;N;FORMS HEAVY UP AND LIGHT DOWN;;;; 2580;UPPER HALF BLOCK;So;0;ON;;;;;N;;;;; 2581;LOWER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2582;LOWER ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; 2583;LOWER THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 2584;LOWER HALF BLOCK;So;0;ON;;;;;N;;;;; 2585;LOWER FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 2586;LOWER THREE QUARTERS BLOCK;So;0;ON;;;;;N;LOWER THREE QUARTER BLOCK;;;; 2587;LOWER SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 2588;FULL BLOCK;So;0;ON;;;;;N;;;;; 2589;LEFT SEVEN EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 258A;LEFT THREE QUARTERS BLOCK;So;0;ON;;;;;N;LEFT THREE QUARTER BLOCK;;;; 258B;LEFT FIVE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 258C;LEFT HALF BLOCK;So;0;ON;;;;;N;;;;; 258D;LEFT THREE EIGHTHS BLOCK;So;0;ON;;;;;N;;;;; 258E;LEFT ONE QUARTER BLOCK;So;0;ON;;;;;N;;;;; 258F;LEFT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2590;RIGHT HALF BLOCK;So;0;ON;;;;;N;;;;; 2591;LIGHT SHADE;So;0;ON;;;;;N;;;;; 2592;MEDIUM SHADE;So;0;ON;;;;;N;;;;; 2593;DARK SHADE;So;0;ON;;;;;N;;;;; 2594;UPPER ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2595;RIGHT ONE EIGHTH BLOCK;So;0;ON;;;;;N;;;;; 2596;QUADRANT LOWER LEFT;So;0;ON;;;;;N;;;;; 2597;QUADRANT LOWER RIGHT;So;0;ON;;;;;N;;;;; 2598;QUADRANT UPPER LEFT;So;0;ON;;;;;N;;;;; 2599;QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 259A;QUADRANT UPPER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 259B;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; 259C;QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 259D;QUADRANT UPPER RIGHT;So;0;ON;;;;;N;;;;; 259E;QUADRANT UPPER RIGHT AND LOWER LEFT;So;0;ON;;;;;N;;;;; 259F;QUADRANT UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT;So;0;ON;;;;;N;;;;; 25A0;BLACK SQUARE;So;0;ON;;;;;N;;;;; 25A1;WHITE SQUARE;So;0;ON;;;;;N;;;;; 25A2;WHITE SQUARE WITH ROUNDED CORNERS;So;0;ON;;;;;N;;;;; 25A3;WHITE SQUARE CONTAINING BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; 25A4;SQUARE WITH HORIZONTAL FILL;So;0;ON;;;;;N;;;;; 25A5;SQUARE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; 25A6;SQUARE WITH ORTHOGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; 25A7;SQUARE WITH UPPER LEFT TO LOWER RIGHT FILL;So;0;ON;;;;;N;;;;; 25A8;SQUARE WITH UPPER RIGHT TO LOWER LEFT FILL;So;0;ON;;;;;N;;;;; 25A9;SQUARE WITH DIAGONAL CROSSHATCH FILL;So;0;ON;;;;;N;;;;; 25AA;BLACK SMALL SQUARE;So;0;ON;;;;;N;;;;; 25AB;WHITE SMALL SQUARE;So;0;ON;;;;;N;;;;; 25AC;BLACK RECTANGLE;So;0;ON;;;;;N;;;;; 25AD;WHITE RECTANGLE;So;0;ON;;;;;N;;;;; 25AE;BLACK VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; 25AF;WHITE VERTICAL RECTANGLE;So;0;ON;;;;;N;;;;; 25B0;BLACK PARALLELOGRAM;So;0;ON;;;;;N;;;;; 25B1;WHITE PARALLELOGRAM;So;0;ON;;;;;N;;;;; 25B2;BLACK UP-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING TRIANGLE;;;; 25B3;WHITE UP-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE;;;; 25B4;BLACK UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK UP POINTING SMALL TRIANGLE;;;; 25B5;WHITE UP-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE UP POINTING SMALL TRIANGLE;;;; 25B6;BLACK RIGHT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING TRIANGLE;;;; 25B7;WHITE RIGHT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE RIGHT POINTING TRIANGLE;;;; 25B8;BLACK RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK RIGHT POINTING SMALL TRIANGLE;;;; 25B9;WHITE RIGHT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE RIGHT POINTING SMALL TRIANGLE;;;; 25BA;BLACK RIGHT-POINTING POINTER;So;0;ON;;;;;N;BLACK RIGHT POINTING POINTER;;;; 25BB;WHITE RIGHT-POINTING POINTER;So;0;ON;;;;;N;WHITE RIGHT POINTING POINTER;;;; 25BC;BLACK DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING TRIANGLE;;;; 25BD;WHITE DOWN-POINTING TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING TRIANGLE;;;; 25BE;BLACK DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK DOWN POINTING SMALL TRIANGLE;;;; 25BF;WHITE DOWN-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE DOWN POINTING SMALL TRIANGLE;;;; 25C0;BLACK LEFT-POINTING TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING TRIANGLE;;;; 25C1;WHITE LEFT-POINTING TRIANGLE;Sm;0;ON;;;;;N;WHITE LEFT POINTING TRIANGLE;;;; 25C2;BLACK LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;BLACK LEFT POINTING SMALL TRIANGLE;;;; 25C3;WHITE LEFT-POINTING SMALL TRIANGLE;So;0;ON;;;;;N;WHITE LEFT POINTING SMALL TRIANGLE;;;; 25C4;BLACK LEFT-POINTING POINTER;So;0;ON;;;;;N;BLACK LEFT POINTING POINTER;;;; 25C5;WHITE LEFT-POINTING POINTER;So;0;ON;;;;;N;WHITE LEFT POINTING POINTER;;;; 25C6;BLACK DIAMOND;So;0;ON;;;;;N;;;;; 25C7;WHITE DIAMOND;So;0;ON;;;;;N;;;;; 25C8;WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND;So;0;ON;;;;;N;;;;; 25C9;FISHEYE;So;0;ON;;;;;N;;;;; 25CA;LOZENGE;So;0;ON;;;;;N;;;;; 25CB;WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25CC;DOTTED CIRCLE;So;0;ON;;;;;N;;;;; 25CD;CIRCLE WITH VERTICAL FILL;So;0;ON;;;;;N;;;;; 25CE;BULLSEYE;So;0;ON;;;;;N;;;;; 25CF;BLACK CIRCLE;So;0;ON;;;;;N;;;;; 25D0;CIRCLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; 25D1;CIRCLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; 25D2;CIRCLE WITH LOWER HALF BLACK;So;0;ON;;;;;N;;;;; 25D3;CIRCLE WITH UPPER HALF BLACK;So;0;ON;;;;;N;;;;; 25D4;CIRCLE WITH UPPER RIGHT QUADRANT BLACK;So;0;ON;;;;;N;;;;; 25D5;CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK;So;0;ON;;;;;N;;;;; 25D6;LEFT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; 25D7;RIGHT HALF BLACK CIRCLE;So;0;ON;;;;;N;;;;; 25D8;INVERSE BULLET;So;0;ON;;;;;N;;;;; 25D9;INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25DA;UPPER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25DB;LOWER HALF INVERSE WHITE CIRCLE;So;0;ON;;;;;N;;;;; 25DC;UPPER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25DD;UPPER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25DE;LOWER RIGHT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25DF;LOWER LEFT QUADRANT CIRCULAR ARC;So;0;ON;;;;;N;;;;; 25E0;UPPER HALF CIRCLE;So;0;ON;;;;;N;;;;; 25E1;LOWER HALF CIRCLE;So;0;ON;;;;;N;;;;; 25E2;BLACK LOWER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; 25E3;BLACK LOWER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; 25E4;BLACK UPPER LEFT TRIANGLE;So;0;ON;;;;;N;;;;; 25E5;BLACK UPPER RIGHT TRIANGLE;So;0;ON;;;;;N;;;;; 25E6;WHITE BULLET;So;0;ON;;;;;N;;;;; 25E7;SQUARE WITH LEFT HALF BLACK;So;0;ON;;;;;N;;;;; 25E8;SQUARE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;;;;; 25E9;SQUARE WITH UPPER LEFT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; 25EA;SQUARE WITH LOWER RIGHT DIAGONAL HALF BLACK;So;0;ON;;;;;N;;;;; 25EB;WHITE SQUARE WITH VERTICAL BISECTING LINE;So;0;ON;;;;;N;;;;; 25EC;WHITE UP-POINTING TRIANGLE WITH DOT;So;0;ON;;;;;N;WHITE UP POINTING TRIANGLE WITH DOT;;;; 25ED;UP-POINTING TRIANGLE WITH LEFT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH LEFT HALF BLACK;;;; 25EE;UP-POINTING TRIANGLE WITH RIGHT HALF BLACK;So;0;ON;;;;;N;UP POINTING TRIANGLE WITH RIGHT HALF BLACK;;;; 25EF;LARGE CIRCLE;So;0;ON;;;;;N;;;;; 25F0;WHITE SQUARE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F1;WHITE SQUARE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F2;WHITE SQUARE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F3;WHITE SQUARE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F4;WHITE CIRCLE WITH UPPER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F5;WHITE CIRCLE WITH LOWER LEFT QUADRANT;So;0;ON;;;;;N;;;;; 25F6;WHITE CIRCLE WITH LOWER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F7;WHITE CIRCLE WITH UPPER RIGHT QUADRANT;So;0;ON;;;;;N;;;;; 25F8;UPPER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; 25F9;UPPER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; 25FA;LOWER LEFT TRIANGLE;Sm;0;ON;;;;;N;;;;; 25FB;WHITE MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; 25FC;BLACK MEDIUM SQUARE;Sm;0;ON;;;;;N;;;;; 25FD;WHITE MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; 25FE;BLACK MEDIUM SMALL SQUARE;Sm;0;ON;;;;;N;;;;; 25FF;LOWER RIGHT TRIANGLE;Sm;0;ON;;;;;N;;;;; 2600;BLACK SUN WITH RAYS;So;0;ON;;;;;N;;;;; 2601;CLOUD;So;0;ON;;;;;N;;;;; 2602;UMBRELLA;So;0;ON;;;;;N;;;;; 2603;SNOWMAN;So;0;ON;;;;;N;;;;; 2604;COMET;So;0;ON;;;;;N;;;;; 2605;BLACK STAR;So;0;ON;;;;;N;;;;; 2606;WHITE STAR;So;0;ON;;;;;N;;;;; 2607;LIGHTNING;So;0;ON;;;;;N;;;;; 2608;THUNDERSTORM;So;0;ON;;;;;N;;;;; 2609;SUN;So;0;ON;;;;;N;;;;; 260A;ASCENDING NODE;So;0;ON;;;;;N;;;;; 260B;DESCENDING NODE;So;0;ON;;;;;N;;;;; 260C;CONJUNCTION;So;0;ON;;;;;N;;;;; 260D;OPPOSITION;So;0;ON;;;;;N;;;;; 260E;BLACK TELEPHONE;So;0;ON;;;;;N;;;;; 260F;WHITE TELEPHONE;So;0;ON;;;;;N;;;;; 2610;BALLOT BOX;So;0;ON;;;;;N;;;;; 2611;BALLOT BOX WITH CHECK;So;0;ON;;;;;N;;;;; 2612;BALLOT BOX WITH X;So;0;ON;;;;;N;;;;; 2613;SALTIRE;So;0;ON;;;;;N;;;;; 2616;WHITE SHOGI PIECE;So;0;ON;;;;;N;;;;; 2617;BLACK SHOGI PIECE;So;0;ON;;;;;N;;;;; 2619;REVERSED ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; 261A;BLACK LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; 261B;BLACK RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; 261C;WHITE LEFT POINTING INDEX;So;0;ON;;;;;N;;;;; 261D;WHITE UP POINTING INDEX;So;0;ON;;;;;N;;;;; 261E;WHITE RIGHT POINTING INDEX;So;0;ON;;;;;N;;;;; 261F;WHITE DOWN POINTING INDEX;So;0;ON;;;;;N;;;;; 2620;SKULL AND CROSSBONES;So;0;ON;;;;;N;;;;; 2621;CAUTION SIGN;So;0;ON;;;;;N;;;;; 2622;RADIOACTIVE SIGN;So;0;ON;;;;;N;;;;; 2623;BIOHAZARD SIGN;So;0;ON;;;;;N;;;;; 2624;CADUCEUS;So;0;ON;;;;;N;;;;; 2625;ANKH;So;0;ON;;;;;N;;;;; 2626;ORTHODOX CROSS;So;0;ON;;;;;N;;;;; 2627;CHI RHO;So;0;ON;;;;;N;;;;; 2628;CROSS OF LORRAINE;So;0;ON;;;;;N;;;;; 2629;CROSS OF JERUSALEM;So;0;ON;;;;;N;;;;; 262A;STAR AND CRESCENT;So;0;ON;;;;;N;;;;; 262B;FARSI SYMBOL;So;0;ON;;;;;N;SYMBOL OF IRAN;;;; 262C;ADI SHAKTI;So;0;ON;;;;;N;;;;; 262D;HAMMER AND SICKLE;So;0;ON;;;;;N;;;;; 262E;PEACE SYMBOL;So;0;ON;;;;;N;;;;; 262F;YIN YANG;So;0;ON;;;;;N;;;;; 2630;TRIGRAM FOR HEAVEN;So;0;ON;;;;;N;;;;; 2631;TRIGRAM FOR LAKE;So;0;ON;;;;;N;;;;; 2632;TRIGRAM FOR FIRE;So;0;ON;;;;;N;;;;; 2633;TRIGRAM FOR THUNDER;So;0;ON;;;;;N;;;;; 2634;TRIGRAM FOR WIND;So;0;ON;;;;;N;;;;; 2635;TRIGRAM FOR WATER;So;0;ON;;;;;N;;;;; 2636;TRIGRAM FOR MOUNTAIN;So;0;ON;;;;;N;;;;; 2637;TRIGRAM FOR EARTH;So;0;ON;;;;;N;;;;; 2638;WHEEL OF DHARMA;So;0;ON;;;;;N;;;;; 2639;WHITE FROWNING FACE;So;0;ON;;;;;N;;;;; 263A;WHITE SMILING FACE;So;0;ON;;;;;N;;;;; 263B;BLACK SMILING FACE;So;0;ON;;;;;N;;;;; 263C;WHITE SUN WITH RAYS;So;0;ON;;;;;N;;;;; 263D;FIRST QUARTER MOON;So;0;ON;;;;;N;;;;; 263E;LAST QUARTER MOON;So;0;ON;;;;;N;;;;; 263F;MERCURY;So;0;ON;;;;;N;;;;; 2640;FEMALE SIGN;So;0;ON;;;;;N;;;;; 2641;EARTH;So;0;ON;;;;;N;;;;; 2642;MALE SIGN;So;0;ON;;;;;N;;;;; 2643;JUPITER;So;0;ON;;;;;N;;;;; 2644;SATURN;So;0;ON;;;;;N;;;;; 2645;URANUS;So;0;ON;;;;;N;;;;; 2646;NEPTUNE;So;0;ON;;;;;N;;;;; 2647;PLUTO;So;0;ON;;;;;N;;;;; 2648;ARIES;So;0;ON;;;;;N;;;;; 2649;TAURUS;So;0;ON;;;;;N;;;;; 264A;GEMINI;So;0;ON;;;;;N;;;;; 264B;CANCER;So;0;ON;;;;;N;;;;; 264C;LEO;So;0;ON;;;;;N;;;;; 264D;VIRGO;So;0;ON;;;;;N;;;;; 264E;LIBRA;So;0;ON;;;;;N;;;;; 264F;SCORPIUS;So;0;ON;;;;;N;;;;; 2650;SAGITTARIUS;So;0;ON;;;;;N;;;;; 2651;CAPRICORN;So;0;ON;;;;;N;;;;; 2652;AQUARIUS;So;0;ON;;;;;N;;;;; 2653;PISCES;So;0;ON;;;;;N;;;;; 2654;WHITE CHESS KING;So;0;ON;;;;;N;;;;; 2655;WHITE CHESS QUEEN;So;0;ON;;;;;N;;;;; 2656;WHITE CHESS ROOK;So;0;ON;;;;;N;;;;; 2657;WHITE CHESS BISHOP;So;0;ON;;;;;N;;;;; 2658;WHITE CHESS KNIGHT;So;0;ON;;;;;N;;;;; 2659;WHITE CHESS PAWN;So;0;ON;;;;;N;;;;; 265A;BLACK CHESS KING;So;0;ON;;;;;N;;;;; 265B;BLACK CHESS QUEEN;So;0;ON;;;;;N;;;;; 265C;BLACK CHESS ROOK;So;0;ON;;;;;N;;;;; 265D;BLACK CHESS BISHOP;So;0;ON;;;;;N;;;;; 265E;BLACK CHESS KNIGHT;So;0;ON;;;;;N;;;;; 265F;BLACK CHESS PAWN;So;0;ON;;;;;N;;;;; 2660;BLACK SPADE SUIT;So;0;ON;;;;;N;;;;; 2661;WHITE HEART SUIT;So;0;ON;;;;;N;;;;; 2662;WHITE DIAMOND SUIT;So;0;ON;;;;;N;;;;; 2663;BLACK CLUB SUIT;So;0;ON;;;;;N;;;;; 2664;WHITE SPADE SUIT;So;0;ON;;;;;N;;;;; 2665;BLACK HEART SUIT;So;0;ON;;;;;N;;;;; 2666;BLACK DIAMOND SUIT;So;0;ON;;;;;N;;;;; 2667;WHITE CLUB SUIT;So;0;ON;;;;;N;;;;; 2668;HOT SPRINGS;So;0;ON;;;;;N;;;;; 2669;QUARTER NOTE;So;0;ON;;;;;N;;;;; 266A;EIGHTH NOTE;So;0;ON;;;;;N;;;;; 266B;BEAMED EIGHTH NOTES;So;0;ON;;;;;N;BARRED EIGHTH NOTES;;;; 266C;BEAMED SIXTEENTH NOTES;So;0;ON;;;;;N;BARRED SIXTEENTH NOTES;;;; 266D;MUSIC FLAT SIGN;So;0;ON;;;;;N;FLAT;;;; 266E;MUSIC NATURAL SIGN;So;0;ON;;;;;N;NATURAL;;;; 266F;MUSIC SHARP SIGN;Sm;0;ON;;;;;N;SHARP;;;; 2670;WEST SYRIAC CROSS;So;0;ON;;;;;N;;;;; 2671;EAST SYRIAC CROSS;So;0;ON;;;;;N;;;;; 2672;UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; 2673;RECYCLING SYMBOL FOR TYPE-1 PLASTICS;So;0;ON;;;;;N;;pete;;; 2674;RECYCLING SYMBOL FOR TYPE-2 PLASTICS;So;0;ON;;;;;N;;hdpe;;; 2675;RECYCLING SYMBOL FOR TYPE-3 PLASTICS;So;0;ON;;;;;N;;pvc;;; 2676;RECYCLING SYMBOL FOR TYPE-4 PLASTICS;So;0;ON;;;;;N;;ldpe;;; 2677;RECYCLING SYMBOL FOR TYPE-5 PLASTICS;So;0;ON;;;;;N;;pp;;; 2678;RECYCLING SYMBOL FOR TYPE-6 PLASTICS;So;0;ON;;;;;N;;ps;;; 2679;RECYCLING SYMBOL FOR TYPE-7 PLASTICS;So;0;ON;;;;;N;;other;;; 267A;RECYCLING SYMBOL FOR GENERIC MATERIALS;So;0;ON;;;;;N;;;;; 267B;BLACK UNIVERSAL RECYCLING SYMBOL;So;0;ON;;;;;N;;;;; 267C;RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; 267D;PARTIALLY-RECYCLED PAPER SYMBOL;So;0;ON;;;;;N;;;;; 2680;DIE FACE-1;So;0;ON;;;;;N;;;;; 2681;DIE FACE-2;So;0;ON;;;;;N;;;;; 2682;DIE FACE-3;So;0;ON;;;;;N;;;;; 2683;DIE FACE-4;So;0;ON;;;;;N;;;;; 2684;DIE FACE-5;So;0;ON;;;;;N;;;;; 2685;DIE FACE-6;So;0;ON;;;;;N;;;;; 2686;WHITE CIRCLE WITH DOT RIGHT;So;0;ON;;;;;N;;;;; 2687;WHITE CIRCLE WITH TWO DOTS;So;0;ON;;;;;N;;;;; 2688;BLACK CIRCLE WITH WHITE DOT RIGHT;So;0;ON;;;;;N;;;;; 2689;BLACK CIRCLE WITH TWO WHITE DOTS;So;0;ON;;;;;N;;;;; 2701;UPPER BLADE SCISSORS;So;0;ON;;;;;N;;;;; 2702;BLACK SCISSORS;So;0;ON;;;;;N;;;;; 2703;LOWER BLADE SCISSORS;So;0;ON;;;;;N;;;;; 2704;WHITE SCISSORS;So;0;ON;;;;;N;;;;; 2706;TELEPHONE LOCATION SIGN;So;0;ON;;;;;N;;;;; 2707;TAPE DRIVE;So;0;ON;;;;;N;;;;; 2708;AIRPLANE;So;0;ON;;;;;N;;;;; 2709;ENVELOPE;So;0;ON;;;;;N;;;;; 270C;VICTORY HAND;So;0;ON;;;;;N;;;;; 270D;WRITING HAND;So;0;ON;;;;;N;;;;; 270E;LOWER RIGHT PENCIL;So;0;ON;;;;;N;;;;; 270F;PENCIL;So;0;ON;;;;;N;;;;; 2710;UPPER RIGHT PENCIL;So;0;ON;;;;;N;;;;; 2711;WHITE NIB;So;0;ON;;;;;N;;;;; 2712;BLACK NIB;So;0;ON;;;;;N;;;;; 2713;CHECK MARK;So;0;ON;;;;;N;;;;; 2714;HEAVY CHECK MARK;So;0;ON;;;;;N;;;;; 2715;MULTIPLICATION X;So;0;ON;;;;;N;;;;; 2716;HEAVY MULTIPLICATION X;So;0;ON;;;;;N;;;;; 2717;BALLOT X;So;0;ON;;;;;N;;;;; 2718;HEAVY BALLOT X;So;0;ON;;;;;N;;;;; 2719;OUTLINED GREEK CROSS;So;0;ON;;;;;N;;;;; 271A;HEAVY GREEK CROSS;So;0;ON;;;;;N;;;;; 271B;OPEN CENTRE CROSS;So;0;ON;;;;;N;OPEN CENTER CROSS;;;; 271C;HEAVY OPEN CENTRE CROSS;So;0;ON;;;;;N;HEAVY OPEN CENTER CROSS;;;; 271D;LATIN CROSS;So;0;ON;;;;;N;;;;; 271E;SHADOWED WHITE LATIN CROSS;So;0;ON;;;;;N;;;;; 271F;OUTLINED LATIN CROSS;So;0;ON;;;;;N;;;;; 2720;MALTESE CROSS;So;0;ON;;;;;N;;;;; 2721;STAR OF DAVID;So;0;ON;;;;;N;;;;; 2722;FOUR TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2723;FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2724;HEAVY FOUR BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2725;FOUR CLUB-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2726;BLACK FOUR POINTED STAR;So;0;ON;;;;;N;;;;; 2727;WHITE FOUR POINTED STAR;So;0;ON;;;;;N;;;;; 2729;STRESS OUTLINED WHITE STAR;So;0;ON;;;;;N;;;;; 272A;CIRCLED WHITE STAR;So;0;ON;;;;;N;;;;; 272B;OPEN CENTRE BLACK STAR;So;0;ON;;;;;N;OPEN CENTER BLACK STAR;;;; 272C;BLACK CENTRE WHITE STAR;So;0;ON;;;;;N;BLACK CENTER WHITE STAR;;;; 272D;OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; 272E;HEAVY OUTLINED BLACK STAR;So;0;ON;;;;;N;;;;; 272F;PINWHEEL STAR;So;0;ON;;;;;N;;;;; 2730;SHADOWED WHITE STAR;So;0;ON;;;;;N;;;;; 2731;HEAVY ASTERISK;So;0;ON;;;;;N;;;;; 2732;OPEN CENTRE ASTERISK;So;0;ON;;;;;N;OPEN CENTER ASTERISK;;;; 2733;EIGHT SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 2734;EIGHT POINTED BLACK STAR;So;0;ON;;;;;N;;;;; 2735;EIGHT POINTED PINWHEEL STAR;So;0;ON;;;;;N;;;;; 2736;SIX POINTED BLACK STAR;So;0;ON;;;;;N;;;;; 2737;EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; 2738;HEAVY EIGHT POINTED RECTILINEAR BLACK STAR;So;0;ON;;;;;N;;;;; 2739;TWELVE POINTED BLACK STAR;So;0;ON;;;;;N;;;;; 273A;SIXTEEN POINTED ASTERISK;So;0;ON;;;;;N;;;;; 273B;TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 273C;OPEN CENTRE TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;OPEN CENTER TEARDROP-SPOKED ASTERISK;;;; 273D;HEAVY TEARDROP-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 273E;SIX PETALLED BLACK AND WHITE FLORETTE;So;0;ON;;;;;N;;;;; 273F;BLACK FLORETTE;So;0;ON;;;;;N;;;;; 2740;WHITE FLORETTE;So;0;ON;;;;;N;;;;; 2741;EIGHT PETALLED OUTLINED BLACK FLORETTE;So;0;ON;;;;;N;;;;; 2742;CIRCLED OPEN CENTRE EIGHT POINTED STAR;So;0;ON;;;;;N;CIRCLED OPEN CENTER EIGHT POINTED STAR;;;; 2743;HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK;So;0;ON;;;;;N;;;;; 2744;SNOWFLAKE;So;0;ON;;;;;N;;;;; 2745;TIGHT TRIFOLIATE SNOWFLAKE;So;0;ON;;;;;N;;;;; 2746;HEAVY CHEVRON SNOWFLAKE;So;0;ON;;;;;N;;;;; 2747;SPARKLE;So;0;ON;;;;;N;;;;; 2748;HEAVY SPARKLE;So;0;ON;;;;;N;;;;; 2749;BALLOON-SPOKED ASTERISK;So;0;ON;;;;;N;;;;; 274A;EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; 274B;HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK;So;0;ON;;;;;N;;;;; 274D;SHADOWED WHITE CIRCLE;So;0;ON;;;;;N;;;;; 274F;LOWER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2750;UPPER RIGHT DROP-SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2751;LOWER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2752;UPPER RIGHT SHADOWED WHITE SQUARE;So;0;ON;;;;;N;;;;; 2756;BLACK DIAMOND MINUS WHITE X;So;0;ON;;;;;N;;;;; 2758;LIGHT VERTICAL BAR;So;0;ON;;;;;N;;;;; 2759;MEDIUM VERTICAL BAR;So;0;ON;;;;;N;;;;; 275A;HEAVY VERTICAL BAR;So;0;ON;;;;;N;;;;; 275B;HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 275C;HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 275D;HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 275E;HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 2761;CURVED STEM PARAGRAPH SIGN ORNAMENT;So;0;ON;;;;;N;;;;; 2762;HEAVY EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 2763;HEAVY HEART EXCLAMATION MARK ORNAMENT;So;0;ON;;;;;N;;;;; 2764;HEAVY BLACK HEART;So;0;ON;;;;;N;;;;; 2765;ROTATED HEAVY BLACK HEART BULLET;So;0;ON;;;;;N;;;;; 2766;FLORAL HEART;So;0;ON;;;;;N;;;;; 2767;ROTATED FLORAL HEART BULLET;So;0;ON;;;;;N;;;;; 2768;MEDIUM LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2769;MEDIUM RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; 276A;MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT;Ps;0;ON;;;;;Y;;;;; 276B;MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT;Pe;0;ON;;;;;Y;;;;; 276C;MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 276D;MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 276E;HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT;Ps;0;ON;;;;;Y;;;;; 276F;HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2770;HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2771;HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2772;LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2773;LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2774;MEDIUM LEFT CURLY BRACKET ORNAMENT;Ps;0;ON;;;;;Y;;;;; 2775;MEDIUM RIGHT CURLY BRACKET ORNAMENT;Pe;0;ON;;;;;Y;;;;; 2776;DINGBAT NEGATIVE CIRCLED DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED DIGIT ONE;;;; 2777;DINGBAT NEGATIVE CIRCLED DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED DIGIT TWO;;;; 2778;DINGBAT NEGATIVE CIRCLED DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED DIGIT THREE;;;; 2779;DINGBAT NEGATIVE CIRCLED DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED DIGIT FOUR;;;; 277A;DINGBAT NEGATIVE CIRCLED DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED DIGIT FIVE;;;; 277B;DINGBAT NEGATIVE CIRCLED DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED DIGIT SIX;;;; 277C;DINGBAT NEGATIVE CIRCLED DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED DIGIT SEVEN;;;; 277D;DINGBAT NEGATIVE CIRCLED DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED DIGIT EIGHT;;;; 277E;DINGBAT NEGATIVE CIRCLED DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED DIGIT NINE;;;; 277F;DINGBAT NEGATIVE CIRCLED NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED NUMBER TEN;;;; 2780;DINGBAT CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;CIRCLED SANS-SERIF DIGIT ONE;;;; 2781;DINGBAT CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;CIRCLED SANS-SERIF DIGIT TWO;;;; 2782;DINGBAT CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;CIRCLED SANS-SERIF DIGIT THREE;;;; 2783;DINGBAT CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;CIRCLED SANS-SERIF DIGIT FOUR;;;; 2784;DINGBAT CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;CIRCLED SANS-SERIF DIGIT FIVE;;;; 2785;DINGBAT CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;CIRCLED SANS-SERIF DIGIT SIX;;;; 2786;DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;CIRCLED SANS-SERIF DIGIT SEVEN;;;; 2787;DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;CIRCLED SANS-SERIF DIGIT EIGHT;;;; 2788;DINGBAT CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;CIRCLED SANS-SERIF DIGIT NINE;;;; 2789;DINGBAT CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;CIRCLED SANS-SERIF NUMBER TEN;;;; 278A;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE;No;0;ON;;;1;1;N;INVERSE CIRCLED SANS-SERIF DIGIT ONE;;;; 278B;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO;No;0;ON;;;2;2;N;INVERSE CIRCLED SANS-SERIF DIGIT TWO;;;; 278C;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE;No;0;ON;;;3;3;N;INVERSE CIRCLED SANS-SERIF DIGIT THREE;;;; 278D;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR;No;0;ON;;;4;4;N;INVERSE CIRCLED SANS-SERIF DIGIT FOUR;;;; 278E;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE;No;0;ON;;;5;5;N;INVERSE CIRCLED SANS-SERIF DIGIT FIVE;;;; 278F;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX;No;0;ON;;;6;6;N;INVERSE CIRCLED SANS-SERIF DIGIT SIX;;;; 2790;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN;No;0;ON;;;7;7;N;INVERSE CIRCLED SANS-SERIF DIGIT SEVEN;;;; 2791;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT;No;0;ON;;;8;8;N;INVERSE CIRCLED SANS-SERIF DIGIT EIGHT;;;; 2792;DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE;No;0;ON;;;9;9;N;INVERSE CIRCLED SANS-SERIF DIGIT NINE;;;; 2793;DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN;No;0;ON;;;;10;N;INVERSE CIRCLED SANS-SERIF NUMBER TEN;;;; 2794;HEAVY WIDE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WIDE-HEADED RIGHT ARROW;;;; 2798;HEAVY SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT ARROW;;;; 2799;HEAVY RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY RIGHT ARROW;;;; 279A;HEAVY NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT ARROW;;;; 279B;DRAFTING POINT RIGHTWARDS ARROW;So;0;ON;;;;;N;DRAFTING POINT RIGHT ARROW;;;; 279C;HEAVY ROUND-TIPPED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY ROUND-TIPPED RIGHT ARROW;;;; 279D;TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;TRIANGLE-HEADED RIGHT ARROW;;;; 279E;HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TRIANGLE-HEADED RIGHT ARROW;;;; 279F;DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;DASHED TRIANGLE-HEADED RIGHT ARROW;;;; 27A0;HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY DASHED TRIANGLE-HEADED RIGHT ARROW;;;; 27A1;BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK RIGHT ARROW;;;; 27A2;THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D TOP-LIGHTED RIGHT ARROWHEAD;;;; 27A3;THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;THREE-D BOTTOM-LIGHTED RIGHT ARROWHEAD;;;; 27A4;BLACK RIGHTWARDS ARROWHEAD;So;0;ON;;;;;N;BLACK RIGHT ARROWHEAD;;;; 27A5;HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED DOWN AND RIGHT ARROW;;;; 27A6;HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK CURVED UP AND RIGHT ARROW;;;; 27A7;SQUAT BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;SQUAT BLACK RIGHT ARROW;;;; 27A8;HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY CONCAVE-POINTED BLACK RIGHT ARROW;;;; 27A9;RIGHT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;RIGHT-SHADED WHITE RIGHT ARROW;;;; 27AA;LEFT-SHADED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;LEFT-SHADED WHITE RIGHT ARROW;;;; 27AB;BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;BACK-TILTED SHADOWED WHITE RIGHT ARROW;;;; 27AC;FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;FRONT-TILTED SHADOWED WHITE RIGHT ARROW;;;; 27AD;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27AE;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27AF;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27B1;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHT ARROW;;;; 27B2;CIRCLED HEAVY WHITE RIGHTWARDS ARROW;So;0;ON;;;;;N;CIRCLED HEAVY WHITE RIGHT ARROW;;;; 27B3;WHITE-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;WHITE-FEATHERED RIGHT ARROW;;;; 27B4;BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED LOWER RIGHT ARROW;;;; 27B5;BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;BLACK-FEATHERED RIGHT ARROW;;;; 27B6;BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;BLACK-FEATHERED UPPER RIGHT ARROW;;;; 27B7;HEAVY BLACK-FEATHERED SOUTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED LOWER RIGHT ARROW;;;; 27B8;HEAVY BLACK-FEATHERED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED RIGHT ARROW;;;; 27B9;HEAVY BLACK-FEATHERED NORTH EAST ARROW;So;0;ON;;;;;N;HEAVY BLACK-FEATHERED UPPER RIGHT ARROW;;;; 27BA;TEARDROP-BARBED RIGHTWARDS ARROW;So;0;ON;;;;;N;TEARDROP-BARBED RIGHT ARROW;;;; 27BB;HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY TEARDROP-SHANKED RIGHT ARROW;;;; 27BC;WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;WEDGE-TAILED RIGHT ARROW;;;; 27BD;HEAVY WEDGE-TAILED RIGHTWARDS ARROW;So;0;ON;;;;;N;HEAVY WEDGE-TAILED RIGHT ARROW;;;; 27BE;OPEN-OUTLINED RIGHTWARDS ARROW;So;0;ON;;;;;N;OPEN-OUTLINED RIGHT ARROW;;;; 27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;; 27D1;AND WITH DOT;Sm;0;ON;;;;;N;;;;; 27D2;ELEMENT OF OPENING UPWARDS;Sm;0;ON;;;;;N;;;;; 27D3;LOWER RIGHT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; 27D4;UPPER LEFT CORNER WITH DOT;Sm;0;ON;;;;;Y;;;;; 27D5;LEFT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; 27D6;RIGHT OUTER JOIN;Sm;0;ON;;;;;Y;;;;; 27D7;FULL OUTER JOIN;Sm;0;ON;;;;;N;;;;; 27D8;LARGE UP TACK;Sm;0;ON;;;;;N;;;;; 27D9;LARGE DOWN TACK;Sm;0;ON;;;;;N;;;;; 27DA;LEFT AND RIGHT DOUBLE TURNSTILE;Sm;0;ON;;;;;N;;;;; 27DB;LEFT AND RIGHT TACK;Sm;0;ON;;;;;N;;;;; 27DC;LEFT MULTIMAP;Sm;0;ON;;;;;Y;;;;; 27DD;LONG RIGHT TACK;Sm;0;ON;;;;;Y;;;;; 27DE;LONG LEFT TACK;Sm;0;ON;;;;;Y;;;;; 27DF;UP TACK WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 27E0;LOZENGE DIVIDED BY HORIZONTAL RULE;Sm;0;ON;;;;;N;;;;; 27E1;WHITE CONCAVE-SIDED DIAMOND;Sm;0;ON;;;;;N;;;;; 27E2;WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E3;WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E4;WHITE SQUARE WITH LEFTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E5;WHITE SQUARE WITH RIGHTWARDS TICK;Sm;0;ON;;;;;Y;;;;; 27E6;MATHEMATICAL LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;;;;; 27E7;MATHEMATICAL RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;;;;; 27E8;MATHEMATICAL LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; 27E9;MATHEMATICAL RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; 27EA;MATHEMATICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; 27EB;MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; 27F0;UPWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; 27F1;DOWNWARDS QUADRUPLE ARROW;Sm;0;ON;;;;;N;;;;; 27F2;ANTICLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 27F3;CLOCKWISE GAPPED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 27F4;RIGHT ARROW WITH CIRCLED PLUS;Sm;0;ON;;;;;N;;;;; 27F5;LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 27F6;LONG RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 27F7;LONG LEFT RIGHT ARROW;Sm;0;ON;;;;;N;;;;; 27F8;LONG LEFTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 27F9;LONG RIGHTWARDS DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 27FA;LONG LEFT RIGHT DOUBLE ARROW;Sm;0;ON;;;;;N;;;;; 27FB;LONG LEFTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FC;LONG RIGHTWARDS ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FD;LONG LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FE;LONG RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 27FF;LONG RIGHTWARDS SQUIGGLE ARROW;Sm;0;ON;;;;;N;;;;; 2800;BRAILLE PATTERN BLANK;So;0;ON;;;;;N;;;;; 2801;BRAILLE PATTERN DOTS-1;So;0;ON;;;;;N;;;;; 2802;BRAILLE PATTERN DOTS-2;So;0;ON;;;;;N;;;;; 2803;BRAILLE PATTERN DOTS-12;So;0;ON;;;;;N;;;;; 2804;BRAILLE PATTERN DOTS-3;So;0;ON;;;;;N;;;;; 2805;BRAILLE PATTERN DOTS-13;So;0;ON;;;;;N;;;;; 2806;BRAILLE PATTERN DOTS-23;So;0;ON;;;;;N;;;;; 2807;BRAILLE PATTERN DOTS-123;So;0;ON;;;;;N;;;;; 2808;BRAILLE PATTERN DOTS-4;So;0;ON;;;;;N;;;;; 2809;BRAILLE PATTERN DOTS-14;So;0;ON;;;;;N;;;;; 280A;BRAILLE PATTERN DOTS-24;So;0;ON;;;;;N;;;;; 280B;BRAILLE PATTERN DOTS-124;So;0;ON;;;;;N;;;;; 280C;BRAILLE PATTERN DOTS-34;So;0;ON;;;;;N;;;;; 280D;BRAILLE PATTERN DOTS-134;So;0;ON;;;;;N;;;;; 280E;BRAILLE PATTERN DOTS-234;So;0;ON;;;;;N;;;;; 280F;BRAILLE PATTERN DOTS-1234;So;0;ON;;;;;N;;;;; 2810;BRAILLE PATTERN DOTS-5;So;0;ON;;;;;N;;;;; 2811;BRAILLE PATTERN DOTS-15;So;0;ON;;;;;N;;;;; 2812;BRAILLE PATTERN DOTS-25;So;0;ON;;;;;N;;;;; 2813;BRAILLE PATTERN DOTS-125;So;0;ON;;;;;N;;;;; 2814;BRAILLE PATTERN DOTS-35;So;0;ON;;;;;N;;;;; 2815;BRAILLE PATTERN DOTS-135;So;0;ON;;;;;N;;;;; 2816;BRAILLE PATTERN DOTS-235;So;0;ON;;;;;N;;;;; 2817;BRAILLE PATTERN DOTS-1235;So;0;ON;;;;;N;;;;; 2818;BRAILLE PATTERN DOTS-45;So;0;ON;;;;;N;;;;; 2819;BRAILLE PATTERN DOTS-145;So;0;ON;;;;;N;;;;; 281A;BRAILLE PATTERN DOTS-245;So;0;ON;;;;;N;;;;; 281B;BRAILLE PATTERN DOTS-1245;So;0;ON;;;;;N;;;;; 281C;BRAILLE PATTERN DOTS-345;So;0;ON;;;;;N;;;;; 281D;BRAILLE PATTERN DOTS-1345;So;0;ON;;;;;N;;;;; 281E;BRAILLE PATTERN DOTS-2345;So;0;ON;;;;;N;;;;; 281F;BRAILLE PATTERN DOTS-12345;So;0;ON;;;;;N;;;;; 2820;BRAILLE PATTERN DOTS-6;So;0;ON;;;;;N;;;;; 2821;BRAILLE PATTERN DOTS-16;So;0;ON;;;;;N;;;;; 2822;BRAILLE PATTERN DOTS-26;So;0;ON;;;;;N;;;;; 2823;BRAILLE PATTERN DOTS-126;So;0;ON;;;;;N;;;;; 2824;BRAILLE PATTERN DOTS-36;So;0;ON;;;;;N;;;;; 2825;BRAILLE PATTERN DOTS-136;So;0;ON;;;;;N;;;;; 2826;BRAILLE PATTERN DOTS-236;So;0;ON;;;;;N;;;;; 2827;BRAILLE PATTERN DOTS-1236;So;0;ON;;;;;N;;;;; 2828;BRAILLE PATTERN DOTS-46;So;0;ON;;;;;N;;;;; 2829;BRAILLE PATTERN DOTS-146;So;0;ON;;;;;N;;;;; 282A;BRAILLE PATTERN DOTS-246;So;0;ON;;;;;N;;;;; 282B;BRAILLE PATTERN DOTS-1246;So;0;ON;;;;;N;;;;; 282C;BRAILLE PATTERN DOTS-346;So;0;ON;;;;;N;;;;; 282D;BRAILLE PATTERN DOTS-1346;So;0;ON;;;;;N;;;;; 282E;BRAILLE PATTERN DOTS-2346;So;0;ON;;;;;N;;;;; 282F;BRAILLE PATTERN DOTS-12346;So;0;ON;;;;;N;;;;; 2830;BRAILLE PATTERN DOTS-56;So;0;ON;;;;;N;;;;; 2831;BRAILLE PATTERN DOTS-156;So;0;ON;;;;;N;;;;; 2832;BRAILLE PATTERN DOTS-256;So;0;ON;;;;;N;;;;; 2833;BRAILLE PATTERN DOTS-1256;So;0;ON;;;;;N;;;;; 2834;BRAILLE PATTERN DOTS-356;So;0;ON;;;;;N;;;;; 2835;BRAILLE PATTERN DOTS-1356;So;0;ON;;;;;N;;;;; 2836;BRAILLE PATTERN DOTS-2356;So;0;ON;;;;;N;;;;; 2837;BRAILLE PATTERN DOTS-12356;So;0;ON;;;;;N;;;;; 2838;BRAILLE PATTERN DOTS-456;So;0;ON;;;;;N;;;;; 2839;BRAILLE PATTERN DOTS-1456;So;0;ON;;;;;N;;;;; 283A;BRAILLE PATTERN DOTS-2456;So;0;ON;;;;;N;;;;; 283B;BRAILLE PATTERN DOTS-12456;So;0;ON;;;;;N;;;;; 283C;BRAILLE PATTERN DOTS-3456;So;0;ON;;;;;N;;;;; 283D;BRAILLE PATTERN DOTS-13456;So;0;ON;;;;;N;;;;; 283E;BRAILLE PATTERN DOTS-23456;So;0;ON;;;;;N;;;;; 283F;BRAILLE PATTERN DOTS-123456;So;0;ON;;;;;N;;;;; 2840;BRAILLE PATTERN DOTS-7;So;0;ON;;;;;N;;;;; 2841;BRAILLE PATTERN DOTS-17;So;0;ON;;;;;N;;;;; 2842;BRAILLE PATTERN DOTS-27;So;0;ON;;;;;N;;;;; 2843;BRAILLE PATTERN DOTS-127;So;0;ON;;;;;N;;;;; 2844;BRAILLE PATTERN DOTS-37;So;0;ON;;;;;N;;;;; 2845;BRAILLE PATTERN DOTS-137;So;0;ON;;;;;N;;;;; 2846;BRAILLE PATTERN DOTS-237;So;0;ON;;;;;N;;;;; 2847;BRAILLE PATTERN DOTS-1237;So;0;ON;;;;;N;;;;; 2848;BRAILLE PATTERN DOTS-47;So;0;ON;;;;;N;;;;; 2849;BRAILLE PATTERN DOTS-147;So;0;ON;;;;;N;;;;; 284A;BRAILLE PATTERN DOTS-247;So;0;ON;;;;;N;;;;; 284B;BRAILLE PATTERN DOTS-1247;So;0;ON;;;;;N;;;;; 284C;BRAILLE PATTERN DOTS-347;So;0;ON;;;;;N;;;;; 284D;BRAILLE PATTERN DOTS-1347;So;0;ON;;;;;N;;;;; 284E;BRAILLE PATTERN DOTS-2347;So;0;ON;;;;;N;;;;; 284F;BRAILLE PATTERN DOTS-12347;So;0;ON;;;;;N;;;;; 2850;BRAILLE PATTERN DOTS-57;So;0;ON;;;;;N;;;;; 2851;BRAILLE PATTERN DOTS-157;So;0;ON;;;;;N;;;;; 2852;BRAILLE PATTERN DOTS-257;So;0;ON;;;;;N;;;;; 2853;BRAILLE PATTERN DOTS-1257;So;0;ON;;;;;N;;;;; 2854;BRAILLE PATTERN DOTS-357;So;0;ON;;;;;N;;;;; 2855;BRAILLE PATTERN DOTS-1357;So;0;ON;;;;;N;;;;; 2856;BRAILLE PATTERN DOTS-2357;So;0;ON;;;;;N;;;;; 2857;BRAILLE PATTERN DOTS-12357;So;0;ON;;;;;N;;;;; 2858;BRAILLE PATTERN DOTS-457;So;0;ON;;;;;N;;;;; 2859;BRAILLE PATTERN DOTS-1457;So;0;ON;;;;;N;;;;; 285A;BRAILLE PATTERN DOTS-2457;So;0;ON;;;;;N;;;;; 285B;BRAILLE PATTERN DOTS-12457;So;0;ON;;;;;N;;;;; 285C;BRAILLE PATTERN DOTS-3457;So;0;ON;;;;;N;;;;; 285D;BRAILLE PATTERN DOTS-13457;So;0;ON;;;;;N;;;;; 285E;BRAILLE PATTERN DOTS-23457;So;0;ON;;;;;N;;;;; 285F;BRAILLE PATTERN DOTS-123457;So;0;ON;;;;;N;;;;; 2860;BRAILLE PATTERN DOTS-67;So;0;ON;;;;;N;;;;; 2861;BRAILLE PATTERN DOTS-167;So;0;ON;;;;;N;;;;; 2862;BRAILLE PATTERN DOTS-267;So;0;ON;;;;;N;;;;; 2863;BRAILLE PATTERN DOTS-1267;So;0;ON;;;;;N;;;;; 2864;BRAILLE PATTERN DOTS-367;So;0;ON;;;;;N;;;;; 2865;BRAILLE PATTERN DOTS-1367;So;0;ON;;;;;N;;;;; 2866;BRAILLE PATTERN DOTS-2367;So;0;ON;;;;;N;;;;; 2867;BRAILLE PATTERN DOTS-12367;So;0;ON;;;;;N;;;;; 2868;BRAILLE PATTERN DOTS-467;So;0;ON;;;;;N;;;;; 2869;BRAILLE PATTERN DOTS-1467;So;0;ON;;;;;N;;;;; 286A;BRAILLE PATTERN DOTS-2467;So;0;ON;;;;;N;;;;; 286B;BRAILLE PATTERN DOTS-12467;So;0;ON;;;;;N;;;;; 286C;BRAILLE PATTERN DOTS-3467;So;0;ON;;;;;N;;;;; 286D;BRAILLE PATTERN DOTS-13467;So;0;ON;;;;;N;;;;; 286E;BRAILLE PATTERN DOTS-23467;So;0;ON;;;;;N;;;;; 286F;BRAILLE PATTERN DOTS-123467;So;0;ON;;;;;N;;;;; 2870;BRAILLE PATTERN DOTS-567;So;0;ON;;;;;N;;;;; 2871;BRAILLE PATTERN DOTS-1567;So;0;ON;;;;;N;;;;; 2872;BRAILLE PATTERN DOTS-2567;So;0;ON;;;;;N;;;;; 2873;BRAILLE PATTERN DOTS-12567;So;0;ON;;;;;N;;;;; 2874;BRAILLE PATTERN DOTS-3567;So;0;ON;;;;;N;;;;; 2875;BRAILLE PATTERN DOTS-13567;So;0;ON;;;;;N;;;;; 2876;BRAILLE PATTERN DOTS-23567;So;0;ON;;;;;N;;;;; 2877;BRAILLE PATTERN DOTS-123567;So;0;ON;;;;;N;;;;; 2878;BRAILLE PATTERN DOTS-4567;So;0;ON;;;;;N;;;;; 2879;BRAILLE PATTERN DOTS-14567;So;0;ON;;;;;N;;;;; 287A;BRAILLE PATTERN DOTS-24567;So;0;ON;;;;;N;;;;; 287B;BRAILLE PATTERN DOTS-124567;So;0;ON;;;;;N;;;;; 287C;BRAILLE PATTERN DOTS-34567;So;0;ON;;;;;N;;;;; 287D;BRAILLE PATTERN DOTS-134567;So;0;ON;;;;;N;;;;; 287E;BRAILLE PATTERN DOTS-234567;So;0;ON;;;;;N;;;;; 287F;BRAILLE PATTERN DOTS-1234567;So;0;ON;;;;;N;;;;; 2880;BRAILLE PATTERN DOTS-8;So;0;ON;;;;;N;;;;; 2881;BRAILLE PATTERN DOTS-18;So;0;ON;;;;;N;;;;; 2882;BRAILLE PATTERN DOTS-28;So;0;ON;;;;;N;;;;; 2883;BRAILLE PATTERN DOTS-128;So;0;ON;;;;;N;;;;; 2884;BRAILLE PATTERN DOTS-38;So;0;ON;;;;;N;;;;; 2885;BRAILLE PATTERN DOTS-138;So;0;ON;;;;;N;;;;; 2886;BRAILLE PATTERN DOTS-238;So;0;ON;;;;;N;;;;; 2887;BRAILLE PATTERN DOTS-1238;So;0;ON;;;;;N;;;;; 2888;BRAILLE PATTERN DOTS-48;So;0;ON;;;;;N;;;;; 2889;BRAILLE PATTERN DOTS-148;So;0;ON;;;;;N;;;;; 288A;BRAILLE PATTERN DOTS-248;So;0;ON;;;;;N;;;;; 288B;BRAILLE PATTERN DOTS-1248;So;0;ON;;;;;N;;;;; 288C;BRAILLE PATTERN DOTS-348;So;0;ON;;;;;N;;;;; 288D;BRAILLE PATTERN DOTS-1348;So;0;ON;;;;;N;;;;; 288E;BRAILLE PATTERN DOTS-2348;So;0;ON;;;;;N;;;;; 288F;BRAILLE PATTERN DOTS-12348;So;0;ON;;;;;N;;;;; 2890;BRAILLE PATTERN DOTS-58;So;0;ON;;;;;N;;;;; 2891;BRAILLE PATTERN DOTS-158;So;0;ON;;;;;N;;;;; 2892;BRAILLE PATTERN DOTS-258;So;0;ON;;;;;N;;;;; 2893;BRAILLE PATTERN DOTS-1258;So;0;ON;;;;;N;;;;; 2894;BRAILLE PATTERN DOTS-358;So;0;ON;;;;;N;;;;; 2895;BRAILLE PATTERN DOTS-1358;So;0;ON;;;;;N;;;;; 2896;BRAILLE PATTERN DOTS-2358;So;0;ON;;;;;N;;;;; 2897;BRAILLE PATTERN DOTS-12358;So;0;ON;;;;;N;;;;; 2898;BRAILLE PATTERN DOTS-458;So;0;ON;;;;;N;;;;; 2899;BRAILLE PATTERN DOTS-1458;So;0;ON;;;;;N;;;;; 289A;BRAILLE PATTERN DOTS-2458;So;0;ON;;;;;N;;;;; 289B;BRAILLE PATTERN DOTS-12458;So;0;ON;;;;;N;;;;; 289C;BRAILLE PATTERN DOTS-3458;So;0;ON;;;;;N;;;;; 289D;BRAILLE PATTERN DOTS-13458;So;0;ON;;;;;N;;;;; 289E;BRAILLE PATTERN DOTS-23458;So;0;ON;;;;;N;;;;; 289F;BRAILLE PATTERN DOTS-123458;So;0;ON;;;;;N;;;;; 28A0;BRAILLE PATTERN DOTS-68;So;0;ON;;;;;N;;;;; 28A1;BRAILLE PATTERN DOTS-168;So;0;ON;;;;;N;;;;; 28A2;BRAILLE PATTERN DOTS-268;So;0;ON;;;;;N;;;;; 28A3;BRAILLE PATTERN DOTS-1268;So;0;ON;;;;;N;;;;; 28A4;BRAILLE PATTERN DOTS-368;So;0;ON;;;;;N;;;;; 28A5;BRAILLE PATTERN DOTS-1368;So;0;ON;;;;;N;;;;; 28A6;BRAILLE PATTERN DOTS-2368;So;0;ON;;;;;N;;;;; 28A7;BRAILLE PATTERN DOTS-12368;So;0;ON;;;;;N;;;;; 28A8;BRAILLE PATTERN DOTS-468;So;0;ON;;;;;N;;;;; 28A9;BRAILLE PATTERN DOTS-1468;So;0;ON;;;;;N;;;;; 28AA;BRAILLE PATTERN DOTS-2468;So;0;ON;;;;;N;;;;; 28AB;BRAILLE PATTERN DOTS-12468;So;0;ON;;;;;N;;;;; 28AC;BRAILLE PATTERN DOTS-3468;So;0;ON;;;;;N;;;;; 28AD;BRAILLE PATTERN DOTS-13468;So;0;ON;;;;;N;;;;; 28AE;BRAILLE PATTERN DOTS-23468;So;0;ON;;;;;N;;;;; 28AF;BRAILLE PATTERN DOTS-123468;So;0;ON;;;;;N;;;;; 28B0;BRAILLE PATTERN DOTS-568;So;0;ON;;;;;N;;;;; 28B1;BRAILLE PATTERN DOTS-1568;So;0;ON;;;;;N;;;;; 28B2;BRAILLE PATTERN DOTS-2568;So;0;ON;;;;;N;;;;; 28B3;BRAILLE PATTERN DOTS-12568;So;0;ON;;;;;N;;;;; 28B4;BRAILLE PATTERN DOTS-3568;So;0;ON;;;;;N;;;;; 28B5;BRAILLE PATTERN DOTS-13568;So;0;ON;;;;;N;;;;; 28B6;BRAILLE PATTERN DOTS-23568;So;0;ON;;;;;N;;;;; 28B7;BRAILLE PATTERN DOTS-123568;So;0;ON;;;;;N;;;;; 28B8;BRAILLE PATTERN DOTS-4568;So;0;ON;;;;;N;;;;; 28B9;BRAILLE PATTERN DOTS-14568;So;0;ON;;;;;N;;;;; 28BA;BRAILLE PATTERN DOTS-24568;So;0;ON;;;;;N;;;;; 28BB;BRAILLE PATTERN DOTS-124568;So;0;ON;;;;;N;;;;; 28BC;BRAILLE PATTERN DOTS-34568;So;0;ON;;;;;N;;;;; 28BD;BRAILLE PATTERN DOTS-134568;So;0;ON;;;;;N;;;;; 28BE;BRAILLE PATTERN DOTS-234568;So;0;ON;;;;;N;;;;; 28BF;BRAILLE PATTERN DOTS-1234568;So;0;ON;;;;;N;;;;; 28C0;BRAILLE PATTERN DOTS-78;So;0;ON;;;;;N;;;;; 28C1;BRAILLE PATTERN DOTS-178;So;0;ON;;;;;N;;;;; 28C2;BRAILLE PATTERN DOTS-278;So;0;ON;;;;;N;;;;; 28C3;BRAILLE PATTERN DOTS-1278;So;0;ON;;;;;N;;;;; 28C4;BRAILLE PATTERN DOTS-378;So;0;ON;;;;;N;;;;; 28C5;BRAILLE PATTERN DOTS-1378;So;0;ON;;;;;N;;;;; 28C6;BRAILLE PATTERN DOTS-2378;So;0;ON;;;;;N;;;;; 28C7;BRAILLE PATTERN DOTS-12378;So;0;ON;;;;;N;;;;; 28C8;BRAILLE PATTERN DOTS-478;So;0;ON;;;;;N;;;;; 28C9;BRAILLE PATTERN DOTS-1478;So;0;ON;;;;;N;;;;; 28CA;BRAILLE PATTERN DOTS-2478;So;0;ON;;;;;N;;;;; 28CB;BRAILLE PATTERN DOTS-12478;So;0;ON;;;;;N;;;;; 28CC;BRAILLE PATTERN DOTS-3478;So;0;ON;;;;;N;;;;; 28CD;BRAILLE PATTERN DOTS-13478;So;0;ON;;;;;N;;;;; 28CE;BRAILLE PATTERN DOTS-23478;So;0;ON;;;;;N;;;;; 28CF;BRAILLE PATTERN DOTS-123478;So;0;ON;;;;;N;;;;; 28D0;BRAILLE PATTERN DOTS-578;So;0;ON;;;;;N;;;;; 28D1;BRAILLE PATTERN DOTS-1578;So;0;ON;;;;;N;;;;; 28D2;BRAILLE PATTERN DOTS-2578;So;0;ON;;;;;N;;;;; 28D3;BRAILLE PATTERN DOTS-12578;So;0;ON;;;;;N;;;;; 28D4;BRAILLE PATTERN DOTS-3578;So;0;ON;;;;;N;;;;; 28D5;BRAILLE PATTERN DOTS-13578;So;0;ON;;;;;N;;;;; 28D6;BRAILLE PATTERN DOTS-23578;So;0;ON;;;;;N;;;;; 28D7;BRAILLE PATTERN DOTS-123578;So;0;ON;;;;;N;;;;; 28D8;BRAILLE PATTERN DOTS-4578;So;0;ON;;;;;N;;;;; 28D9;BRAILLE PATTERN DOTS-14578;So;0;ON;;;;;N;;;;; 28DA;BRAILLE PATTERN DOTS-24578;So;0;ON;;;;;N;;;;; 28DB;BRAILLE PATTERN DOTS-124578;So;0;ON;;;;;N;;;;; 28DC;BRAILLE PATTERN DOTS-34578;So;0;ON;;;;;N;;;;; 28DD;BRAILLE PATTERN DOTS-134578;So;0;ON;;;;;N;;;;; 28DE;BRAILLE PATTERN DOTS-234578;So;0;ON;;;;;N;;;;; 28DF;BRAILLE PATTERN DOTS-1234578;So;0;ON;;;;;N;;;;; 28E0;BRAILLE PATTERN DOTS-678;So;0;ON;;;;;N;;;;; 28E1;BRAILLE PATTERN DOTS-1678;So;0;ON;;;;;N;;;;; 28E2;BRAILLE PATTERN DOTS-2678;So;0;ON;;;;;N;;;;; 28E3;BRAILLE PATTERN DOTS-12678;So;0;ON;;;;;N;;;;; 28E4;BRAILLE PATTERN DOTS-3678;So;0;ON;;;;;N;;;;; 28E5;BRAILLE PATTERN DOTS-13678;So;0;ON;;;;;N;;;;; 28E6;BRAILLE PATTERN DOTS-23678;So;0;ON;;;;;N;;;;; 28E7;BRAILLE PATTERN DOTS-123678;So;0;ON;;;;;N;;;;; 28E8;BRAILLE PATTERN DOTS-4678;So;0;ON;;;;;N;;;;; 28E9;BRAILLE PATTERN DOTS-14678;So;0;ON;;;;;N;;;;; 28EA;BRAILLE PATTERN DOTS-24678;So;0;ON;;;;;N;;;;; 28EB;BRAILLE PATTERN DOTS-124678;So;0;ON;;;;;N;;;;; 28EC;BRAILLE PATTERN DOTS-34678;So;0;ON;;;;;N;;;;; 28ED;BRAILLE PATTERN DOTS-134678;So;0;ON;;;;;N;;;;; 28EE;BRAILLE PATTERN DOTS-234678;So;0;ON;;;;;N;;;;; 28EF;BRAILLE PATTERN DOTS-1234678;So;0;ON;;;;;N;;;;; 28F0;BRAILLE PATTERN DOTS-5678;So;0;ON;;;;;N;;;;; 28F1;BRAILLE PATTERN DOTS-15678;So;0;ON;;;;;N;;;;; 28F2;BRAILLE PATTERN DOTS-25678;So;0;ON;;;;;N;;;;; 28F3;BRAILLE PATTERN DOTS-125678;So;0;ON;;;;;N;;;;; 28F4;BRAILLE PATTERN DOTS-35678;So;0;ON;;;;;N;;;;; 28F5;BRAILLE PATTERN DOTS-135678;So;0;ON;;;;;N;;;;; 28F6;BRAILLE PATTERN DOTS-235678;So;0;ON;;;;;N;;;;; 28F7;BRAILLE PATTERN DOTS-1235678;So;0;ON;;;;;N;;;;; 28F8;BRAILLE PATTERN DOTS-45678;So;0;ON;;;;;N;;;;; 28F9;BRAILLE PATTERN DOTS-145678;So;0;ON;;;;;N;;;;; 28FA;BRAILLE PATTERN DOTS-245678;So;0;ON;;;;;N;;;;; 28FB;BRAILLE PATTERN DOTS-1245678;So;0;ON;;;;;N;;;;; 28FC;BRAILLE PATTERN DOTS-345678;So;0;ON;;;;;N;;;;; 28FD;BRAILLE PATTERN DOTS-1345678;So;0;ON;;;;;N;;;;; 28FE;BRAILLE PATTERN DOTS-2345678;So;0;ON;;;;;N;;;;; 28FF;BRAILLE PATTERN DOTS-12345678;So;0;ON;;;;;N;;;;; 2900;RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2901;RIGHTWARDS TWO-HEADED ARROW WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2902;LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2903;RIGHTWARDS DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2904;LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2905;RIGHTWARDS TWO-HEADED ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 2906;LEFTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 2907;RIGHTWARDS DOUBLE ARROW FROM BAR;Sm;0;ON;;;;;N;;;;; 2908;DOWNWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 2909;UPWARDS ARROW WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 290A;UPWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; 290B;DOWNWARDS TRIPLE ARROW;Sm;0;ON;;;;;N;;;;; 290C;LEFTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 290D;RIGHTWARDS DOUBLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 290E;LEFTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 290F;RIGHTWARDS TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 2910;RIGHTWARDS TWO-HEADED TRIPLE DASH ARROW;Sm;0;ON;;;;;N;;;;; 2911;RIGHTWARDS ARROW WITH DOTTED STEM;Sm;0;ON;;;;;N;;;;; 2912;UPWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; 2913;DOWNWARDS ARROW TO BAR;Sm;0;ON;;;;;N;;;;; 2914;RIGHTWARDS ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2915;RIGHTWARDS ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2916;RIGHTWARDS TWO-HEADED ARROW WITH TAIL;Sm;0;ON;;;;;N;;;;; 2917;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2918;RIGHTWARDS TWO-HEADED ARROW WITH TAIL WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2919;LEFTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291A;RIGHTWARDS ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291B;LEFTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291C;RIGHTWARDS DOUBLE ARROW-TAIL;Sm;0;ON;;;;;N;;;;; 291D;LEFTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 291E;RIGHTWARDS ARROW TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 291F;LEFTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 2920;RIGHTWARDS ARROW FROM BAR TO BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 2921;NORTH WEST AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2922;NORTH EAST AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 2923;NORTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2924;NORTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2925;SOUTH EAST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2926;SOUTH WEST ARROW WITH HOOK;Sm;0;ON;;;;;N;;;;; 2927;NORTH WEST ARROW AND NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2928;NORTH EAST ARROW AND SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2929;SOUTH EAST ARROW AND SOUTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 292A;SOUTH WEST ARROW AND NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 292B;RISING DIAGONAL CROSSING FALLING DIAGONAL;Sm;0;ON;;;;;N;;;;; 292C;FALLING DIAGONAL CROSSING RISING DIAGONAL;Sm;0;ON;;;;;N;;;;; 292D;SOUTH EAST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 292E;NORTH EAST ARROW CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 292F;FALLING DIAGONAL CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2930;RISING DIAGONAL CROSSING SOUTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2931;NORTH EAST ARROW CROSSING NORTH WEST ARROW;Sm;0;ON;;;;;N;;;;; 2932;NORTH WEST ARROW CROSSING NORTH EAST ARROW;Sm;0;ON;;;;;N;;;;; 2933;WAVE ARROW POINTING DIRECTLY RIGHT;Sm;0;ON;;;;;N;;;;; 2934;ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS;Sm;0;ON;;;;;N;;;;; 2935;ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS;Sm;0;ON;;;;;N;;;;; 2936;ARROW POINTING DOWNWARDS THEN CURVING LEFTWARDS;Sm;0;ON;;;;;N;;;;; 2937;ARROW POINTING DOWNWARDS THEN CURVING RIGHTWARDS;Sm;0;ON;;;;;N;;;;; 2938;RIGHT-SIDE ARC CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 2939;LEFT-SIDE ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293A;TOP ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293B;BOTTOM ARC ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293C;TOP ARC CLOCKWISE ARROW WITH MINUS;Sm;0;ON;;;;;N;;;;; 293D;TOP ARC ANTICLOCKWISE ARROW WITH PLUS;Sm;0;ON;;;;;N;;;;; 293E;LOWER RIGHT SEMICIRCULAR CLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 293F;LOWER LEFT SEMICIRCULAR ANTICLOCKWISE ARROW;Sm;0;ON;;;;;N;;;;; 2940;ANTICLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 2941;CLOCKWISE CLOSED CIRCLE ARROW;Sm;0;ON;;;;;N;;;;; 2942;RIGHTWARDS ARROW ABOVE SHORT LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2943;LEFTWARDS ARROW ABOVE SHORT RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2944;SHORT RIGHTWARDS ARROW ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2945;RIGHTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; 2946;LEFTWARDS ARROW WITH PLUS BELOW;Sm;0;ON;;;;;N;;;;; 2947;RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;; 2948;LEFT RIGHT ARROW THROUGH SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 2949;UPWARDS TWO-HEADED ARROW FROM SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 294A;LEFT BARB UP RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; 294B;LEFT BARB DOWN RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; 294C;UP BARB RIGHT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; 294D;UP BARB LEFT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; 294E;LEFT BARB UP RIGHT BARB UP HARPOON;Sm;0;ON;;;;;N;;;;; 294F;UP BARB RIGHT DOWN BARB RIGHT HARPOON;Sm;0;ON;;;;;N;;;;; 2950;LEFT BARB DOWN RIGHT BARB DOWN HARPOON;Sm;0;ON;;;;;N;;;;; 2951;UP BARB LEFT DOWN BARB LEFT HARPOON;Sm;0;ON;;;;;N;;;;; 2952;LEFTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; 2953;RIGHTWARDS HARPOON WITH BARB UP TO BAR;Sm;0;ON;;;;;N;;;;; 2954;UPWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; 2955;DOWNWARDS HARPOON WITH BARB RIGHT TO BAR;Sm;0;ON;;;;;N;;;;; 2956;LEFTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; 2957;RIGHTWARDS HARPOON WITH BARB DOWN TO BAR;Sm;0;ON;;;;;N;;;;; 2958;UPWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; 2959;DOWNWARDS HARPOON WITH BARB LEFT TO BAR;Sm;0;ON;;;;;N;;;;; 295A;LEFTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; 295B;RIGHTWARDS HARPOON WITH BARB UP FROM BAR;Sm;0;ON;;;;;N;;;;; 295C;UPWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; 295D;DOWNWARDS HARPOON WITH BARB RIGHT FROM BAR;Sm;0;ON;;;;;N;;;;; 295E;LEFTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; 295F;RIGHTWARDS HARPOON WITH BARB DOWN FROM BAR;Sm;0;ON;;;;;N;;;;; 2960;UPWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; 2961;DOWNWARDS HARPOON WITH BARB LEFT FROM BAR;Sm;0;ON;;;;;N;;;;; 2962;LEFTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 2963;UPWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 2964;RIGHTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 2965;DOWNWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 2966;LEFTWARDS HARPOON WITH BARB UP ABOVE RIGHTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; 2967;LEFTWARDS HARPOON WITH BARB DOWN ABOVE RIGHTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 2968;RIGHTWARDS HARPOON WITH BARB UP ABOVE LEFTWARDS HARPOON WITH BARB UP;Sm;0;ON;;;;;N;;;;; 2969;RIGHTWARDS HARPOON WITH BARB DOWN ABOVE LEFTWARDS HARPOON WITH BARB DOWN;Sm;0;ON;;;;;N;;;;; 296A;LEFTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; 296B;LEFTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; 296C;RIGHTWARDS HARPOON WITH BARB UP ABOVE LONG DASH;Sm;0;ON;;;;;N;;;;; 296D;RIGHTWARDS HARPOON WITH BARB DOWN BELOW LONG DASH;Sm;0;ON;;;;;N;;;;; 296E;UPWARDS HARPOON WITH BARB LEFT BESIDE DOWNWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 296F;DOWNWARDS HARPOON WITH BARB LEFT BESIDE UPWARDS HARPOON WITH BARB RIGHT;Sm;0;ON;;;;;N;;;;; 2970;RIGHT DOUBLE ARROW WITH ROUNDED HEAD;Sm;0;ON;;;;;N;;;;; 2971;EQUALS SIGN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2972;TILDE OPERATOR ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2973;LEFTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; 2974;RIGHTWARDS ARROW ABOVE TILDE OPERATOR;Sm;0;ON;;;;;N;;;;; 2975;RIGHTWARDS ARROW ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;N;;;;; 2976;LESS-THAN ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2977;LEFTWARDS ARROW THROUGH LESS-THAN;Sm;0;ON;;;;;N;;;;; 2978;GREATER-THAN ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 2979;SUBSET ABOVE RIGHTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 297A;LEFTWARDS ARROW THROUGH SUBSET;Sm;0;ON;;;;;N;;;;; 297B;SUPERSET ABOVE LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; 297C;LEFT FISH TAIL;Sm;0;ON;;;;;N;;;;; 297D;RIGHT FISH TAIL;Sm;0;ON;;;;;N;;;;; 297E;UP FISH TAIL;Sm;0;ON;;;;;N;;;;; 297F;DOWN FISH TAIL;Sm;0;ON;;;;;N;;;;; 2980;TRIPLE VERTICAL BAR DELIMITER;Sm;0;ON;;;;;N;;;;; 2981;Z NOTATION SPOT;Sm;0;ON;;;;;N;;;;; 2982;Z NOTATION TYPE COLON;Sm;0;ON;;;;;N;;;;; 2983;LEFT WHITE CURLY BRACKET;Ps;0;ON;;;;;Y;;;;; 2984;RIGHT WHITE CURLY BRACKET;Pe;0;ON;;;;;Y;;;;; 2985;LEFT WHITE PARENTHESIS;Ps;0;ON;;;;;Y;;;;; 2986;RIGHT WHITE PARENTHESIS;Pe;0;ON;;;;;Y;;;;; 2987;Z NOTATION LEFT IMAGE BRACKET;Ps;0;ON;;;;;Y;;;;; 2988;Z NOTATION RIGHT IMAGE BRACKET;Pe;0;ON;;;;;Y;;;;; 2989;Z NOTATION LEFT BINDING BRACKET;Ps;0;ON;;;;;Y;;;;; 298A;Z NOTATION RIGHT BINDING BRACKET;Pe;0;ON;;;;;Y;;;;; 298B;LEFT SQUARE BRACKET WITH UNDERBAR;Ps;0;ON;;;;;Y;;;;; 298C;RIGHT SQUARE BRACKET WITH UNDERBAR;Pe;0;ON;;;;;Y;;;;; 298D;LEFT SQUARE BRACKET WITH TICK IN TOP CORNER;Ps;0;ON;;;;;Y;;;;; 298E;RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Pe;0;ON;;;;;Y;;;;; 298F;LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER;Ps;0;ON;;;;;Y;;;;; 2990;RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER;Pe;0;ON;;;;;Y;;;;; 2991;LEFT ANGLE BRACKET WITH DOT;Ps;0;ON;;;;;Y;;;;; 2992;RIGHT ANGLE BRACKET WITH DOT;Pe;0;ON;;;;;Y;;;;; 2993;LEFT ARC LESS-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; 2994;RIGHT ARC GREATER-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; 2995;DOUBLE LEFT ARC GREATER-THAN BRACKET;Ps;0;ON;;;;;Y;;;;; 2996;DOUBLE RIGHT ARC LESS-THAN BRACKET;Pe;0;ON;;;;;Y;;;;; 2997;LEFT BLACK TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;;;;; 2998;RIGHT BLACK TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;;;;; 2999;DOTTED FENCE;Sm;0;ON;;;;;N;;;;; 299A;VERTICAL ZIGZAG LINE;Sm;0;ON;;;;;N;;;;; 299B;MEASURED ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; 299C;RIGHT ANGLE VARIANT WITH SQUARE;Sm;0;ON;;;;;Y;;;;; 299D;MEASURED RIGHT ANGLE WITH DOT;Sm;0;ON;;;;;Y;;;;; 299E;ANGLE WITH S INSIDE;Sm;0;ON;;;;;Y;;;;; 299F;ACUTE ANGLE;Sm;0;ON;;;;;Y;;;;; 29A0;SPHERICAL ANGLE OPENING LEFT;Sm;0;ON;;;;;Y;;;;; 29A1;SPHERICAL ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; 29A2;TURNED ANGLE;Sm;0;ON;;;;;Y;;;;; 29A3;REVERSED ANGLE;Sm;0;ON;;;;;Y;;;;; 29A4;ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 29A5;REVERSED ANGLE WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 29A6;OBLIQUE ANGLE OPENING UP;Sm;0;ON;;;;;Y;;;;; 29A7;OBLIQUE ANGLE OPENING DOWN;Sm;0;ON;;;;;Y;;;;; 29A8;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT;Sm;0;ON;;;;;Y;;;;; 29A9;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT;Sm;0;ON;;;;;Y;;;;; 29AA;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT;Sm;0;ON;;;;;Y;;;;; 29AB;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT;Sm;0;ON;;;;;Y;;;;; 29AC;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP;Sm;0;ON;;;;;Y;;;;; 29AD;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP;Sm;0;ON;;;;;Y;;;;; 29AE;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN;Sm;0;ON;;;;;Y;;;;; 29AF;MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN;Sm;0;ON;;;;;Y;;;;; 29B0;REVERSED EMPTY SET;Sm;0;ON;;;;;N;;;;; 29B1;EMPTY SET WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 29B2;EMPTY SET WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 29B3;EMPTY SET WITH RIGHT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; 29B4;EMPTY SET WITH LEFT ARROW ABOVE;Sm;0;ON;;;;;N;;;;; 29B5;CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;; 29B6;CIRCLED VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 29B7;CIRCLED PARALLEL;Sm;0;ON;;;;;N;;;;; 29B8;CIRCLED REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; 29B9;CIRCLED PERPENDICULAR;Sm;0;ON;;;;;N;;;;; 29BA;CIRCLE DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 29BB;CIRCLE WITH SUPERIMPOSED X;Sm;0;ON;;;;;N;;;;; 29BC;CIRCLED ANTICLOCKWISE-ROTATED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; 29BD;UP ARROW THROUGH CIRCLE;Sm;0;ON;;;;;N;;;;; 29BE;CIRCLED WHITE BULLET;Sm;0;ON;;;;;N;;;;; 29BF;CIRCLED BULLET;Sm;0;ON;;;;;N;;;;; 29C0;CIRCLED LESS-THAN;Sm;0;ON;;;;;Y;;;;; 29C1;CIRCLED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 29C2;CIRCLE WITH SMALL CIRCLE TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; 29C3;CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT;Sm;0;ON;;;;;Y;;;;; 29C4;SQUARED RISING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; 29C5;SQUARED FALLING DIAGONAL SLASH;Sm;0;ON;;;;;Y;;;;; 29C6;SQUARED ASTERISK;Sm;0;ON;;;;;N;;;;; 29C7;SQUARED SMALL CIRCLE;Sm;0;ON;;;;;N;;;;; 29C8;SQUARED SQUARE;Sm;0;ON;;;;;N;;;;; 29C9;TWO JOINED SQUARES;Sm;0;ON;;;;;Y;;;;; 29CA;TRIANGLE WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 29CB;TRIANGLE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 29CC;S IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 29CD;TRIANGLE WITH SERIFS AT BOTTOM;Sm;0;ON;;;;;N;;;;; 29CE;RIGHT TRIANGLE ABOVE LEFT TRIANGLE;Sm;0;ON;;;;;Y;;;;; 29CF;LEFT TRIANGLE BESIDE VERTICAL BAR;Sm;0;ON;;;;;Y;;;;; 29D0;VERTICAL BAR BESIDE RIGHT TRIANGLE;Sm;0;ON;;;;;Y;;;;; 29D1;BOWTIE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D2;BOWTIE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D3;BLACK BOWTIE;Sm;0;ON;;;;;N;;;;; 29D4;TIMES WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D5;TIMES WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29D6;WHITE HOURGLASS;Sm;0;ON;;;;;N;;;;; 29D7;BLACK HOURGLASS;Sm;0;ON;;;;;N;;;;; 29D8;LEFT WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; 29D9;RIGHT WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; 29DA;LEFT DOUBLE WIGGLY FENCE;Ps;0;ON;;;;;Y;;;;; 29DB;RIGHT DOUBLE WIGGLY FENCE;Pe;0;ON;;;;;Y;;;;; 29DC;INCOMPLETE INFINITY;Sm;0;ON;;;;;Y;;;;; 29DD;TIE OVER INFINITY;Sm;0;ON;;;;;N;;;;; 29DE;INFINITY NEGATED WITH VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 29DF;DOUBLE-ENDED MULTIMAP;Sm;0;ON;;;;;N;;;;; 29E0;SQUARE WITH CONTOURED OUTLINE;Sm;0;ON;;;;;N;;;;; 29E1;INCREASES AS;Sm;0;ON;;;;;Y;;;;; 29E2;SHUFFLE PRODUCT;Sm;0;ON;;;;;N;;;;; 29E3;EQUALS SIGN AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; 29E4;EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; 29E5;IDENTICAL TO AND SLANTED PARALLEL;Sm;0;ON;;;;;Y;;;;; 29E6;GLEICH STARK;Sm;0;ON;;;;;N;;;;; 29E7;THERMODYNAMIC;Sm;0;ON;;;;;N;;;;; 29E8;DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29E9;DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK;Sm;0;ON;;;;;Y;;;;; 29EA;BLACK DIAMOND WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; 29EB;BLACK LOZENGE;Sm;0;ON;;;;;N;;;;; 29EC;WHITE CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; 29ED;BLACK CIRCLE WITH DOWN ARROW;Sm;0;ON;;;;;N;;;;; 29EE;ERROR-BARRED WHITE SQUARE;Sm;0;ON;;;;;N;;;;; 29EF;ERROR-BARRED BLACK SQUARE;Sm;0;ON;;;;;N;;;;; 29F0;ERROR-BARRED WHITE DIAMOND;Sm;0;ON;;;;;N;;;;; 29F1;ERROR-BARRED BLACK DIAMOND;Sm;0;ON;;;;;N;;;;; 29F2;ERROR-BARRED WHITE CIRCLE;Sm;0;ON;;;;;N;;;;; 29F3;ERROR-BARRED BLACK CIRCLE;Sm;0;ON;;;;;N;;;;; 29F4;RULE-DELAYED;Sm;0;ON;;;;;Y;;;;; 29F5;REVERSE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; 29F6;SOLIDUS WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 29F7;REVERSE SOLIDUS WITH HORIZONTAL STROKE;Sm;0;ON;;;;;Y;;;;; 29F8;BIG SOLIDUS;Sm;0;ON;;;;;Y;;;;; 29F9;BIG REVERSE SOLIDUS;Sm;0;ON;;;;;Y;;;;; 29FA;DOUBLE PLUS;Sm;0;ON;;;;;N;;;;; 29FB;TRIPLE PLUS;Sm;0;ON;;;;;N;;;;; 29FC;LEFT-POINTING CURVED ANGLE BRACKET;Ps;0;ON;;;;;Y;;;;; 29FD;RIGHT-POINTING CURVED ANGLE BRACKET;Pe;0;ON;;;;;Y;;;;; 29FE;TINY;Sm;0;ON;;;;;N;;;;; 29FF;MINY;Sm;0;ON;;;;;N;;;;; 2A00;N-ARY CIRCLED DOT OPERATOR;Sm;0;ON;;;;;N;;;;; 2A01;N-ARY CIRCLED PLUS OPERATOR;Sm;0;ON;;;;;N;;;;; 2A02;N-ARY CIRCLED TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; 2A03;N-ARY UNION OPERATOR WITH DOT;Sm;0;ON;;;;;N;;;;; 2A04;N-ARY UNION OPERATOR WITH PLUS;Sm;0;ON;;;;;N;;;;; 2A05;N-ARY SQUARE INTERSECTION OPERATOR;Sm;0;ON;;;;;N;;;;; 2A06;N-ARY SQUARE UNION OPERATOR;Sm;0;ON;;;;;N;;;;; 2A07;TWO LOGICAL AND OPERATOR;Sm;0;ON;;;;;N;;;;; 2A08;TWO LOGICAL OR OPERATOR;Sm;0;ON;;;;;N;;;;; 2A09;N-ARY TIMES OPERATOR;Sm;0;ON;;;;;N;;;;; 2A0A;MODULO TWO SUM;Sm;0;ON;;;;;Y;;;;; 2A0B;SUMMATION WITH INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2A0C;QUADRUPLE INTEGRAL OPERATOR;Sm;0;ON; 222B 222B 222B 222B;;;;Y;;;;; 2A0D;FINITE PART INTEGRAL;Sm;0;ON;;;;;Y;;;;; 2A0E;INTEGRAL WITH DOUBLE STROKE;Sm;0;ON;;;;;Y;;;;; 2A0F;INTEGRAL AVERAGE WITH SLASH;Sm;0;ON;;;;;Y;;;;; 2A10;CIRCULATION FUNCTION;Sm;0;ON;;;;;Y;;;;; 2A11;ANTICLOCKWISE INTEGRATION;Sm;0;ON;;;;;Y;;;;; 2A12;LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; 2A13;LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE;Sm;0;ON;;;;;Y;;;;; 2A14;LINE INTEGRATION NOT INCLUDING THE POLE;Sm;0;ON;;;;;Y;;;;; 2A15;INTEGRAL AROUND A POINT OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A16;QUATERNION INTEGRAL OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A17;INTEGRAL WITH LEFTWARDS ARROW WITH HOOK;Sm;0;ON;;;;;Y;;;;; 2A18;INTEGRAL WITH TIMES SIGN;Sm;0;ON;;;;;Y;;;;; 2A19;INTEGRAL WITH INTERSECTION;Sm;0;ON;;;;;Y;;;;; 2A1A;INTEGRAL WITH UNION;Sm;0;ON;;;;;Y;;;;; 2A1B;INTEGRAL WITH OVERBAR;Sm;0;ON;;;;;Y;;;;; 2A1C;INTEGRAL WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 2A1D;JOIN;Sm;0;ON;;;;;N;;;;; 2A1E;LARGE LEFT TRIANGLE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A1F;Z NOTATION SCHEMA COMPOSITION;Sm;0;ON;;;;;Y;;;;; 2A20;Z NOTATION SCHEMA PIPING;Sm;0;ON;;;;;Y;;;;; 2A21;Z NOTATION SCHEMA PROJECTION;Sm;0;ON;;;;;Y;;;;; 2A22;PLUS SIGN WITH SMALL CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 2A23;PLUS SIGN WITH CIRCUMFLEX ACCENT ABOVE;Sm;0;ON;;;;;N;;;;; 2A24;PLUS SIGN WITH TILDE ABOVE;Sm;0;ON;;;;;Y;;;;; 2A25;PLUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; 2A26;PLUS SIGN WITH TILDE BELOW;Sm;0;ON;;;;;Y;;;;; 2A27;PLUS SIGN WITH SUBSCRIPT TWO;Sm;0;ON;;;;;N;;;;; 2A28;PLUS SIGN WITH BLACK TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A29;MINUS SIGN WITH COMMA ABOVE;Sm;0;ON;;;;;Y;;;;; 2A2A;MINUS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; 2A2B;MINUS SIGN WITH FALLING DOTS;Sm;0;ON;;;;;Y;;;;; 2A2C;MINUS SIGN WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; 2A2D;PLUS SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A2E;PLUS SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A2F;VECTOR OR CROSS PRODUCT;Sm;0;ON;;;;;N;;;;; 2A30;MULTIPLICATION SIGN WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A31;MULTIPLICATION SIGN WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A32;SEMIDIRECT PRODUCT WITH BOTTOM CLOSED;Sm;0;ON;;;;;N;;;;; 2A33;SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; 2A34;MULTIPLICATION SIGN IN LEFT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A35;MULTIPLICATION SIGN IN RIGHT HALF CIRCLE;Sm;0;ON;;;;;Y;;;;; 2A36;CIRCLED MULTIPLICATION SIGN WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;N;;;;; 2A37;MULTIPLICATION SIGN IN DOUBLE CIRCLE;Sm;0;ON;;;;;N;;;;; 2A38;CIRCLED DIVISION SIGN;Sm;0;ON;;;;;N;;;;; 2A39;PLUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A3A;MINUS SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A3B;MULTIPLICATION SIGN IN TRIANGLE;Sm;0;ON;;;;;N;;;;; 2A3C;INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; 2A3D;RIGHTHAND INTERIOR PRODUCT;Sm;0;ON;;;;;Y;;;;; 2A3E;Z NOTATION RELATIONAL COMPOSITION;Sm;0;ON;;;;;Y;;;;; 2A3F;AMALGAMATION OR COPRODUCT;Sm;0;ON;;;;;N;;;;; 2A40;INTERSECTION WITH DOT;Sm;0;ON;;;;;N;;;;; 2A41;UNION WITH MINUS SIGN;Sm;0;ON;;;;;N;;;;; 2A42;UNION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 2A43;INTERSECTION WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 2A44;INTERSECTION WITH LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A45;UNION WITH LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2A46;UNION ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A47;INTERSECTION ABOVE UNION;Sm;0;ON;;;;;N;;;;; 2A48;UNION ABOVE BAR ABOVE INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A49;INTERSECTION ABOVE BAR ABOVE UNION;Sm;0;ON;;;;;N;;;;; 2A4A;UNION BESIDE AND JOINED WITH UNION;Sm;0;ON;;;;;N;;;;; 2A4B;INTERSECTION BESIDE AND JOINED WITH INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A4C;CLOSED UNION WITH SERIFS;Sm;0;ON;;;;;N;;;;; 2A4D;CLOSED INTERSECTION WITH SERIFS;Sm;0;ON;;;;;N;;;;; 2A4E;DOUBLE SQUARE INTERSECTION;Sm;0;ON;;;;;N;;;;; 2A4F;DOUBLE SQUARE UNION;Sm;0;ON;;;;;N;;;;; 2A50;CLOSED UNION WITH SERIFS AND SMASH PRODUCT;Sm;0;ON;;;;;N;;;;; 2A51;LOGICAL AND WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A52;LOGICAL OR WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A53;DOUBLE LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A54;DOUBLE LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2A55;TWO INTERSECTING LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A56;TWO INTERSECTING LOGICAL OR;Sm;0;ON;;;;;N;;;;; 2A57;SLOPING LARGE OR;Sm;0;ON;;;;;Y;;;;; 2A58;SLOPING LARGE AND;Sm;0;ON;;;;;Y;;;;; 2A59;LOGICAL OR OVERLAPPING LOGICAL AND;Sm;0;ON;;;;;N;;;;; 2A5A;LOGICAL AND WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; 2A5B;LOGICAL OR WITH MIDDLE STEM;Sm;0;ON;;;;;N;;;;; 2A5C;LOGICAL AND WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; 2A5D;LOGICAL OR WITH HORIZONTAL DASH;Sm;0;ON;;;;;N;;;;; 2A5E;LOGICAL AND WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; 2A5F;LOGICAL AND WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A60;LOGICAL AND WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A61;SMALL VEE WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A62;LOGICAL OR WITH DOUBLE OVERBAR;Sm;0;ON;;;;;N;;;;; 2A63;LOGICAL OR WITH DOUBLE UNDERBAR;Sm;0;ON;;;;;N;;;;; 2A64;Z NOTATION DOMAIN ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; 2A65;Z NOTATION RANGE ANTIRESTRICTION;Sm;0;ON;;;;;Y;;;;; 2A66;EQUALS SIGN WITH DOT BELOW;Sm;0;ON;;;;;N;;;;; 2A67;IDENTICAL WITH DOT ABOVE;Sm;0;ON;;;;;N;;;;; 2A68;TRIPLE HORIZONTAL BAR WITH DOUBLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2A69;TRIPLE HORIZONTAL BAR WITH TRIPLE VERTICAL STROKE;Sm;0;ON;;;;;N;;;;; 2A6A;TILDE OPERATOR WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A6B;TILDE OPERATOR WITH RISING DOTS;Sm;0;ON;;;;;Y;;;;; 2A6C;SIMILAR MINUS SIMILAR;Sm;0;ON;;;;;Y;;;;; 2A6D;CONGRUENT WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A6E;EQUALS WITH ASTERISK;Sm;0;ON;;;;;N;;;;; 2A6F;ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT;Sm;0;ON;;;;;Y;;;;; 2A70;APPROXIMATELY EQUAL OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A71;EQUALS SIGN ABOVE PLUS SIGN;Sm;0;ON;;;;;N;;;;; 2A72;PLUS SIGN ABOVE EQUALS SIGN;Sm;0;ON;;;;;N;;;;; 2A73;EQUALS SIGN ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2A74;DOUBLE COLON EQUAL;Sm;0;ON; 003A 003A 003D;;;;Y;;;;; 2A75;TWO CONSECUTIVE EQUALS SIGNS;Sm;0;ON; 003D 003D;;;;N;;;;; 2A76;THREE CONSECUTIVE EQUALS SIGNS;Sm;0;ON; 003D 003D 003D;;;;N;;;;; 2A77;EQUALS SIGN WITH TWO DOTS ABOVE AND TWO DOTS BELOW;Sm;0;ON;;;;;N;;;;; 2A78;EQUIVALENT WITH FOUR DOTS ABOVE;Sm;0;ON;;;;;N;;;;; 2A79;LESS-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; 2A7A;GREATER-THAN WITH CIRCLE INSIDE;Sm;0;ON;;;;;Y;;;;; 2A7B;LESS-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; 2A7C;GREATER-THAN WITH QUESTION MARK ABOVE;Sm;0;ON;;;;;Y;;;;; 2A7D;LESS-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A7E;GREATER-THAN OR SLANTED EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A7F;LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A80;GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A81;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A82;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2A83;LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT;Sm;0;ON;;;;;Y;;;;; 2A84;GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT;Sm;0;ON;;;;;Y;;;;; 2A85;LESS-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A86;GREATER-THAN OR APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A87;LESS-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A88;GREATER-THAN AND SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2A89;LESS-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A8A;GREATER-THAN AND NOT APPROXIMATE;Sm;0;ON;;;;;Y;;;;; 2A8B;LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A8C;GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A8D;LESS-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; 2A8E;GREATER-THAN ABOVE SIMILAR OR EQUAL;Sm;0;ON;;;;;Y;;;;; 2A8F;LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A90;GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A91;LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; 2A92;GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL;Sm;0;ON;;;;;Y;;;;; 2A93;LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2A94;GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2A95;SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A96;SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A97;SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A98;SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE;Sm;0;ON;;;;;Y;;;;; 2A99;DOUBLE-LINE EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A9A;DOUBLE-LINE EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A9B;DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A9C;DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A9D;SIMILAR OR LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2A9E;SIMILAR OR GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2A9F;SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AA0;SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AA1;DOUBLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2AA2;DOUBLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2AA3;DOUBLE NESTED LESS-THAN WITH UNDERBAR;Sm;0;ON;;;;;Y;;;;; 2AA4;GREATER-THAN OVERLAPPING LESS-THAN;Sm;0;ON;;;;;N;;;;; 2AA5;GREATER-THAN BESIDE LESS-THAN;Sm;0;ON;;;;;N;;;;; 2AA6;LESS-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; 2AA7;GREATER-THAN CLOSED BY CURVE;Sm;0;ON;;;;;Y;;;;; 2AA8;LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2AA9;GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL;Sm;0;ON;;;;;Y;;;;; 2AAA;SMALLER THAN;Sm;0;ON;;;;;Y;;;;; 2AAB;LARGER THAN;Sm;0;ON;;;;;Y;;;;; 2AAC;SMALLER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AAD;LARGER THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AAE;EQUALS SIGN WITH BUMPY ABOVE;Sm;0;ON;;;;;N;;;;; 2AAF;PRECEDES ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB0;SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB1;PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB2;SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB3;PRECEDES ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB4;SUCCEEDS ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AB5;PRECEDES ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB6;SUCCEEDS ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB7;PRECEDES ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB8;SUCCEEDS ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AB9;PRECEDES ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ABA;SUCCEEDS ABOVE NOT ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ABB;DOUBLE PRECEDES;Sm;0;ON;;;;;Y;;;;; 2ABC;DOUBLE SUCCEEDS;Sm;0;ON;;;;;Y;;;;; 2ABD;SUBSET WITH DOT;Sm;0;ON;;;;;Y;;;;; 2ABE;SUPERSET WITH DOT;Sm;0;ON;;;;;Y;;;;; 2ABF;SUBSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC0;SUPERSET WITH PLUS SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC1;SUBSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC2;SUPERSET WITH MULTIPLICATION SIGN BELOW;Sm;0;ON;;;;;Y;;;;; 2AC3;SUBSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2AC4;SUPERSET OF OR EQUAL TO WITH DOT ABOVE;Sm;0;ON;;;;;Y;;;;; 2AC5;SUBSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AC6;SUPERSET OF ABOVE EQUALS SIGN;Sm;0;ON;;;;;Y;;;;; 2AC7;SUBSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AC8;SUPERSET OF ABOVE TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AC9;SUBSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACA;SUPERSET OF ABOVE ALMOST EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACB;SUBSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACC;SUPERSET OF ABOVE NOT EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2ACD;SQUARE LEFT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; 2ACE;SQUARE RIGHT OPEN BOX OPERATOR;Sm;0;ON;;;;;Y;;;;; 2ACF;CLOSED SUBSET;Sm;0;ON;;;;;Y;;;;; 2AD0;CLOSED SUPERSET;Sm;0;ON;;;;;Y;;;;; 2AD1;CLOSED SUBSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AD2;CLOSED SUPERSET OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AD3;SUBSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; 2AD4;SUPERSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; 2AD5;SUBSET ABOVE SUBSET;Sm;0;ON;;;;;Y;;;;; 2AD6;SUPERSET ABOVE SUPERSET;Sm;0;ON;;;;;Y;;;;; 2AD7;SUPERSET BESIDE SUBSET;Sm;0;ON;;;;;N;;;;; 2AD8;SUPERSET BESIDE AND JOINED BY DASH WITH SUBSET;Sm;0;ON;;;;;N;;;;; 2AD9;ELEMENT OF OPENING DOWNWARDS;Sm;0;ON;;;;;N;;;;; 2ADA;PITCHFORK WITH TEE TOP;Sm;0;ON;;;;;N;;;;; 2ADB;TRANSVERSAL INTERSECTION;Sm;0;ON;;;;;N;;;;; 2ADC;FORKING;Sm;0;ON;2ADD 0338;;;;Y;;not independent;;; 2ADD;NONFORKING;Sm;0;ON;;;;;N;;independent;;; 2ADE;SHORT LEFT TACK;Sm;0;ON;;;;;Y;;;;; 2ADF;SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; 2AE0;SHORT UP TACK;Sm;0;ON;;;;;N;;;;; 2AE1;PERPENDICULAR WITH S;Sm;0;ON;;;;;N;;;;; 2AE2;VERTICAL BAR TRIPLE RIGHT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE3;DOUBLE VERTICAL BAR LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE4;VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE5;DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE;Sm;0;ON;;;;;Y;;;;; 2AE6;LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL;Sm;0;ON;;;;;Y;;;;; 2AE7;SHORT DOWN TACK WITH OVERBAR;Sm;0;ON;;;;;N;;;;; 2AE8;SHORT UP TACK WITH UNDERBAR;Sm;0;ON;;;;;N;;;;; 2AE9;SHORT UP TACK ABOVE SHORT DOWN TACK;Sm;0;ON;;;;;N;;;;; 2AEA;DOUBLE DOWN TACK;Sm;0;ON;;;;;N;;;;; 2AEB;DOUBLE UP TACK;Sm;0;ON;;;;;N;;;;; 2AEC;DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; 2AED;REVERSED DOUBLE STROKE NOT SIGN;Sm;0;ON;;;;;Y;;;;; 2AEE;DOES NOT DIVIDE WITH REVERSED NEGATION SLASH;Sm;0;ON;;;;;Y;;;;; 2AEF;VERTICAL LINE WITH CIRCLE ABOVE;Sm;0;ON;;;;;N;;;;; 2AF0;VERTICAL LINE WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; 2AF1;DOWN TACK WITH CIRCLE BELOW;Sm;0;ON;;;;;N;;;;; 2AF2;PARALLEL WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 2AF3;PARALLEL WITH TILDE OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AF4;TRIPLE VERTICAL BAR BINARY RELATION;Sm;0;ON;;;;;N;;;;; 2AF5;TRIPLE VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;; 2AF6;TRIPLE COLON OPERATOR;Sm;0;ON;;;;;N;;;;; 2AF7;TRIPLE NESTED LESS-THAN;Sm;0;ON;;;;;Y;;;;; 2AF8;TRIPLE NESTED GREATER-THAN;Sm;0;ON;;;;;Y;;;;; 2AF9;DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AFA;DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO;Sm;0;ON;;;;;Y;;;;; 2AFB;TRIPLE SOLIDUS BINARY RELATION;Sm;0;ON;;;;;Y;;;;; 2AFC;LARGE TRIPLE VERTICAL BAR OPERATOR;Sm;0;ON;;;;;N;;;;; 2AFD;DOUBLE SOLIDUS OPERATOR;Sm;0;ON;;;;;Y;;;;; 2AFE;WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 2AFF;N-ARY WHITE VERTICAL BAR;Sm;0;ON;;;;;N;;;;; 2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;; 2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;; 2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;; 2E83;CJK RADICAL SECOND TWO;So;0;ON;;;;;N;;;;; 2E84;CJK RADICAL SECOND THREE;So;0;ON;;;;;N;;;;; 2E85;CJK RADICAL PERSON;So;0;ON;;;;;N;;;;; 2E86;CJK RADICAL BOX;So;0;ON;;;;;N;;;;; 2E87;CJK RADICAL TABLE;So;0;ON;;;;;N;;;;; 2E88;CJK RADICAL KNIFE ONE;So;0;ON;;;;;N;;;;; 2E89;CJK RADICAL KNIFE TWO;So;0;ON;;;;;N;;;;; 2E8A;CJK RADICAL DIVINATION;So;0;ON;;;;;N;;;;; 2E8B;CJK RADICAL SEAL;So;0;ON;;;;;N;;;;; 2E8C;CJK RADICAL SMALL ONE;So;0;ON;;;;;N;;;;; 2E8D;CJK RADICAL SMALL TWO;So;0;ON;;;;;N;;;;; 2E8E;CJK RADICAL LAME ONE;So;0;ON;;;;;N;;;;; 2E8F;CJK RADICAL LAME TWO;So;0;ON;;;;;N;;;;; 2E90;CJK RADICAL LAME THREE;So;0;ON;;;;;N;;;;; 2E91;CJK RADICAL LAME FOUR;So;0;ON;;;;;N;;;;; 2E92;CJK RADICAL SNAKE;So;0;ON;;;;;N;;;;; 2E93;CJK RADICAL THREAD;So;0;ON;;;;;N;;;;; 2E94;CJK RADICAL SNOUT ONE;So;0;ON;;;;;N;;;;; 2E95;CJK RADICAL SNOUT TWO;So;0;ON;;;;;N;;;;; 2E96;CJK RADICAL HEART ONE;So;0;ON;;;;;N;;;;; 2E97;CJK RADICAL HEART TWO;So;0;ON;;;;;N;;;;; 2E98;CJK RADICAL HAND;So;0;ON;;;;;N;;;;; 2E99;CJK RADICAL RAP;So;0;ON;;;;;N;;;;; 2E9B;CJK RADICAL CHOKE;So;0;ON;;;;;N;;;;; 2E9C;CJK RADICAL SUN;So;0;ON;;;;;N;;;;; 2E9D;CJK RADICAL MOON;So;0;ON;;;;;N;;;;; 2E9E;CJK RADICAL DEATH;So;0;ON;;;;;N;;;;; 2E9F;CJK RADICAL MOTHER;So;0;ON; 6BCD;;;;N;;;;; 2EA0;CJK RADICAL CIVILIAN;So;0;ON;;;;;N;;;;; 2EA1;CJK RADICAL WATER ONE;So;0;ON;;;;;N;;;;; 2EA2;CJK RADICAL WATER TWO;So;0;ON;;;;;N;;;;; 2EA3;CJK RADICAL FIRE;So;0;ON;;;;;N;;;;; 2EA4;CJK RADICAL PAW ONE;So;0;ON;;;;;N;;;;; 2EA5;CJK RADICAL PAW TWO;So;0;ON;;;;;N;;;;; 2EA6;CJK RADICAL SIMPLIFIED HALF TREE TRUNK;So;0;ON;;;;;N;;;;; 2EA7;CJK RADICAL COW;So;0;ON;;;;;N;;;;; 2EA8;CJK RADICAL DOG;So;0;ON;;;;;N;;;;; 2EA9;CJK RADICAL JADE;So;0;ON;;;;;N;;;;; 2EAA;CJK RADICAL BOLT OF CLOTH;So;0;ON;;;;;N;;;;; 2EAB;CJK RADICAL EYE;So;0;ON;;;;;N;;;;; 2EAC;CJK RADICAL SPIRIT ONE;So;0;ON;;;;;N;;;;; 2EAD;CJK RADICAL SPIRIT TWO;So;0;ON;;;;;N;;;;; 2EAE;CJK RADICAL BAMBOO;So;0;ON;;;;;N;;;;; 2EAF;CJK RADICAL SILK;So;0;ON;;;;;N;;;;; 2EB0;CJK RADICAL C-SIMPLIFIED SILK;So;0;ON;;;;;N;;;;; 2EB1;CJK RADICAL NET ONE;So;0;ON;;;;;N;;;;; 2EB2;CJK RADICAL NET TWO;So;0;ON;;;;;N;;;;; 2EB3;CJK RADICAL NET THREE;So;0;ON;;;;;N;;;;; 2EB4;CJK RADICAL NET FOUR;So;0;ON;;;;;N;;;;; 2EB5;CJK RADICAL MESH;So;0;ON;;;;;N;;;;; 2EB6;CJK RADICAL SHEEP;So;0;ON;;;;;N;;;;; 2EB7;CJK RADICAL RAM;So;0;ON;;;;;N;;;;; 2EB8;CJK RADICAL EWE;So;0;ON;;;;;N;;;;; 2EB9;CJK RADICAL OLD;So;0;ON;;;;;N;;;;; 2EBA;CJK RADICAL BRUSH ONE;So;0;ON;;;;;N;;;;; 2EBB;CJK RADICAL BRUSH TWO;So;0;ON;;;;;N;;;;; 2EBC;CJK RADICAL MEAT;So;0;ON;;;;;N;;;;; 2EBD;CJK RADICAL MORTAR;So;0;ON;;;;;N;;;;; 2EBE;CJK RADICAL GRASS ONE;So;0;ON;;;;;N;;;;; 2EBF;CJK RADICAL GRASS TWO;So;0;ON;;;;;N;;;;; 2EC0;CJK RADICAL GRASS THREE;So;0;ON;;;;;N;;;;; 2EC1;CJK RADICAL TIGER;So;0;ON;;;;;N;;;;; 2EC2;CJK RADICAL CLOTHES;So;0;ON;;;;;N;;;;; 2EC3;CJK RADICAL WEST ONE;So;0;ON;;;;;N;;;;; 2EC4;CJK RADICAL WEST TWO;So;0;ON;;;;;N;;;;; 2EC5;CJK RADICAL C-SIMPLIFIED SEE;So;0;ON;;;;;N;;;;; 2EC6;CJK RADICAL SIMPLIFIED HORN;So;0;ON;;;;;N;;;;; 2EC7;CJK RADICAL HORN;So;0;ON;;;;;N;;;;; 2EC8;CJK RADICAL C-SIMPLIFIED SPEECH;So;0;ON;;;;;N;;;;; 2EC9;CJK RADICAL C-SIMPLIFIED SHELL;So;0;ON;;;;;N;;;;; 2ECA;CJK RADICAL FOOT;So;0;ON;;;;;N;;;;; 2ECB;CJK RADICAL C-SIMPLIFIED CART;So;0;ON;;;;;N;;;;; 2ECC;CJK RADICAL SIMPLIFIED WALK;So;0;ON;;;;;N;;;;; 2ECD;CJK RADICAL WALK ONE;So;0;ON;;;;;N;;;;; 2ECE;CJK RADICAL WALK TWO;So;0;ON;;;;;N;;;;; 2ECF;CJK RADICAL CITY;So;0;ON;;;;;N;;;;; 2ED0;CJK RADICAL C-SIMPLIFIED GOLD;So;0;ON;;;;;N;;;;; 2ED1;CJK RADICAL LONG ONE;So;0;ON;;;;;N;;;;; 2ED2;CJK RADICAL LONG TWO;So;0;ON;;;;;N;;;;; 2ED3;CJK RADICAL C-SIMPLIFIED LONG;So;0;ON;;;;;N;;;;; 2ED4;CJK RADICAL C-SIMPLIFIED GATE;So;0;ON;;;;;N;;;;; 2ED5;CJK RADICAL MOUND ONE;So;0;ON;;;;;N;;;;; 2ED6;CJK RADICAL MOUND TWO;So;0;ON;;;;;N;;;;; 2ED7;CJK RADICAL RAIN;So;0;ON;;;;;N;;;;; 2ED8;CJK RADICAL BLUE;So;0;ON;;;;;N;;;;; 2ED9;CJK RADICAL C-SIMPLIFIED TANNED LEATHER;So;0;ON;;;;;N;;;;; 2EDA;CJK RADICAL C-SIMPLIFIED LEAF;So;0;ON;;;;;N;;;;; 2EDB;CJK RADICAL C-SIMPLIFIED WIND;So;0;ON;;;;;N;;;;; 2EDC;CJK RADICAL C-SIMPLIFIED FLY;So;0;ON;;;;;N;;;;; 2EDD;CJK RADICAL EAT ONE;So;0;ON;;;;;N;;;;; 2EDE;CJK RADICAL EAT TWO;So;0;ON;;;;;N;;;;; 2EDF;CJK RADICAL EAT THREE;So;0;ON;;;;;N;;;;; 2EE0;CJK RADICAL C-SIMPLIFIED EAT;So;0;ON;;;;;N;;;;; 2EE1;CJK RADICAL HEAD;So;0;ON;;;;;N;;;;; 2EE2;CJK RADICAL C-SIMPLIFIED HORSE;So;0;ON;;;;;N;;;;; 2EE3;CJK RADICAL BONE;So;0;ON;;;;;N;;;;; 2EE4;CJK RADICAL GHOST;So;0;ON;;;;;N;;;;; 2EE5;CJK RADICAL C-SIMPLIFIED FISH;So;0;ON;;;;;N;;;;; 2EE6;CJK RADICAL C-SIMPLIFIED BIRD;So;0;ON;;;;;N;;;;; 2EE7;CJK RADICAL C-SIMPLIFIED SALT;So;0;ON;;;;;N;;;;; 2EE8;CJK RADICAL SIMPLIFIED WHEAT;So;0;ON;;;;;N;;;;; 2EE9;CJK RADICAL SIMPLIFIED YELLOW;So;0;ON;;;;;N;;;;; 2EEA;CJK RADICAL C-SIMPLIFIED FROG;So;0;ON;;;;;N;;;;; 2EEB;CJK RADICAL J-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; 2EEC;CJK RADICAL C-SIMPLIFIED EVEN;So;0;ON;;;;;N;;;;; 2EED;CJK RADICAL J-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; 2EEE;CJK RADICAL C-SIMPLIFIED TOOTH;So;0;ON;;;;;N;;;;; 2EEF;CJK RADICAL J-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; 2EF0;CJK RADICAL C-SIMPLIFIED DRAGON;So;0;ON;;;;;N;;;;; 2EF1;CJK RADICAL TURTLE;So;0;ON;;;;;N;;;;; 2EF2;CJK RADICAL J-SIMPLIFIED TURTLE;So;0;ON;;;;;N;;;;; 2EF3;CJK RADICAL C-SIMPLIFIED TURTLE;So;0;ON; 9F9F;;;;N;;;;; 2F00;KANGXI RADICAL ONE;So;0;ON; 4E00;;;;N;;;;; 2F01;KANGXI RADICAL LINE;So;0;ON; 4E28;;;;N;;;;; 2F02;KANGXI RADICAL DOT;So;0;ON; 4E36;;;;N;;;;; 2F03;KANGXI RADICAL SLASH;So;0;ON; 4E3F;;;;N;;;;; 2F04;KANGXI RADICAL SECOND;So;0;ON; 4E59;;;;N;;;;; 2F05;KANGXI RADICAL HOOK;So;0;ON; 4E85;;;;N;;;;; 2F06;KANGXI RADICAL TWO;So;0;ON; 4E8C;;;;N;;;;; 2F07;KANGXI RADICAL LID;So;0;ON; 4EA0;;;;N;;;;; 2F08;KANGXI RADICAL MAN;So;0;ON; 4EBA;;;;N;;;;; 2F09;KANGXI RADICAL LEGS;So;0;ON; 513F;;;;N;;;;; 2F0A;KANGXI RADICAL ENTER;So;0;ON; 5165;;;;N;;;;; 2F0B;KANGXI RADICAL EIGHT;So;0;ON; 516B;;;;N;;;;; 2F0C;KANGXI RADICAL DOWN BOX;So;0;ON; 5182;;;;N;;;;; 2F0D;KANGXI RADICAL COVER;So;0;ON; 5196;;;;N;;;;; 2F0E;KANGXI RADICAL ICE;So;0;ON; 51AB;;;;N;;;;; 2F0F;KANGXI RADICAL TABLE;So;0;ON; 51E0;;;;N;;;;; 2F10;KANGXI RADICAL OPEN BOX;So;0;ON; 51F5;;;;N;;;;; 2F11;KANGXI RADICAL KNIFE;So;0;ON; 5200;;;;N;;;;; 2F12;KANGXI RADICAL POWER;So;0;ON; 529B;;;;N;;;;; 2F13;KANGXI RADICAL WRAP;So;0;ON; 52F9;;;;N;;;;; 2F14;KANGXI RADICAL SPOON;So;0;ON; 5315;;;;N;;;;; 2F15;KANGXI RADICAL RIGHT OPEN BOX;So;0;ON; 531A;;;;N;;;;; 2F16;KANGXI RADICAL HIDING ENCLOSURE;So;0;ON; 5338;;;;N;;;;; 2F17;KANGXI RADICAL TEN;So;0;ON; 5341;;;;N;;;;; 2F18;KANGXI RADICAL DIVINATION;So;0;ON; 535C;;;;N;;;;; 2F19;KANGXI RADICAL SEAL;So;0;ON; 5369;;;;N;;;;; 2F1A;KANGXI RADICAL CLIFF;So;0;ON; 5382;;;;N;;;;; 2F1B;KANGXI RADICAL PRIVATE;So;0;ON; 53B6;;;;N;;;;; 2F1C;KANGXI RADICAL AGAIN;So;0;ON; 53C8;;;;N;;;;; 2F1D;KANGXI RADICAL MOUTH;So;0;ON; 53E3;;;;N;;;;; 2F1E;KANGXI RADICAL ENCLOSURE;So;0;ON; 56D7;;;;N;;;;; 2F1F;KANGXI RADICAL EARTH;So;0;ON; 571F;;;;N;;;;; 2F20;KANGXI RADICAL SCHOLAR;So;0;ON; 58EB;;;;N;;;;; 2F21;KANGXI RADICAL GO;So;0;ON; 5902;;;;N;;;;; 2F22;KANGXI RADICAL GO SLOWLY;So;0;ON; 590A;;;;N;;;;; 2F23;KANGXI RADICAL EVENING;So;0;ON; 5915;;;;N;;;;; 2F24;KANGXI RADICAL BIG;So;0;ON; 5927;;;;N;;;;; 2F25;KANGXI RADICAL WOMAN;So;0;ON; 5973;;;;N;;;;; 2F26;KANGXI RADICAL CHILD;So;0;ON; 5B50;;;;N;;;;; 2F27;KANGXI RADICAL ROOF;So;0;ON; 5B80;;;;N;;;;; 2F28;KANGXI RADICAL INCH;So;0;ON; 5BF8;;;;N;;;;; 2F29;KANGXI RADICAL SMALL;So;0;ON; 5C0F;;;;N;;;;; 2F2A;KANGXI RADICAL LAME;So;0;ON; 5C22;;;;N;;;;; 2F2B;KANGXI RADICAL CORPSE;So;0;ON; 5C38;;;;N;;;;; 2F2C;KANGXI RADICAL SPROUT;So;0;ON; 5C6E;;;;N;;;;; 2F2D;KANGXI RADICAL MOUNTAIN;So;0;ON; 5C71;;;;N;;;;; 2F2E;KANGXI RADICAL RIVER;So;0;ON; 5DDB;;;;N;;;;; 2F2F;KANGXI RADICAL WORK;So;0;ON; 5DE5;;;;N;;;;; 2F30;KANGXI RADICAL ONESELF;So;0;ON; 5DF1;;;;N;;;;; 2F31;KANGXI RADICAL TURBAN;So;0;ON; 5DFE;;;;N;;;;; 2F32;KANGXI RADICAL DRY;So;0;ON; 5E72;;;;N;;;;; 2F33;KANGXI RADICAL SHORT THREAD;So;0;ON; 5E7A;;;;N;;;;; 2F34;KANGXI RADICAL DOTTED CLIFF;So;0;ON; 5E7F;;;;N;;;;; 2F35;KANGXI RADICAL LONG STRIDE;So;0;ON; 5EF4;;;;N;;;;; 2F36;KANGXI RADICAL TWO HANDS;So;0;ON; 5EFE;;;;N;;;;; 2F37;KANGXI RADICAL SHOOT;So;0;ON; 5F0B;;;;N;;;;; 2F38;KANGXI RADICAL BOW;So;0;ON; 5F13;;;;N;;;;; 2F39;KANGXI RADICAL SNOUT;So;0;ON; 5F50;;;;N;;;;; 2F3A;KANGXI RADICAL BRISTLE;So;0;ON; 5F61;;;;N;;;;; 2F3B;KANGXI RADICAL STEP;So;0;ON; 5F73;;;;N;;;;; 2F3C;KANGXI RADICAL HEART;So;0;ON; 5FC3;;;;N;;;;; 2F3D;KANGXI RADICAL HALBERD;So;0;ON; 6208;;;;N;;;;; 2F3E;KANGXI RADICAL DOOR;So;0;ON; 6236;;;;N;;;;; 2F3F;KANGXI RADICAL HAND;So;0;ON; 624B;;;;N;;;;; 2F40;KANGXI RADICAL BRANCH;So;0;ON; 652F;;;;N;;;;; 2F41;KANGXI RADICAL RAP;So;0;ON; 6534;;;;N;;;;; 2F42;KANGXI RADICAL SCRIPT;So;0;ON; 6587;;;;N;;;;; 2F43;KANGXI RADICAL DIPPER;So;0;ON; 6597;;;;N;;;;; 2F44;KANGXI RADICAL AXE;So;0;ON; 65A4;;;;N;;;;; 2F45;KANGXI RADICAL SQUARE;So;0;ON; 65B9;;;;N;;;;; 2F46;KANGXI RADICAL NOT;So;0;ON; 65E0;;;;N;;;;; 2F47;KANGXI RADICAL SUN;So;0;ON; 65E5;;;;N;;;;; 2F48;KANGXI RADICAL SAY;So;0;ON; 66F0;;;;N;;;;; 2F49;KANGXI RADICAL MOON;So;0;ON; 6708;;;;N;;;;; 2F4A;KANGXI RADICAL TREE;So;0;ON; 6728;;;;N;;;;; 2F4B;KANGXI RADICAL LACK;So;0;ON; 6B20;;;;N;;;;; 2F4C;KANGXI RADICAL STOP;So;0;ON; 6B62;;;;N;;;;; 2F4D;KANGXI RADICAL DEATH;So;0;ON; 6B79;;;;N;;;;; 2F4E;KANGXI RADICAL WEAPON;So;0;ON; 6BB3;;;;N;;;;; 2F4F;KANGXI RADICAL DO NOT;So;0;ON; 6BCB;;;;N;;;;; 2F50;KANGXI RADICAL COMPARE;So;0;ON; 6BD4;;;;N;;;;; 2F51;KANGXI RADICAL FUR;So;0;ON; 6BDB;;;;N;;;;; 2F52;KANGXI RADICAL CLAN;So;0;ON; 6C0F;;;;N;;;;; 2F53;KANGXI RADICAL STEAM;So;0;ON; 6C14;;;;N;;;;; 2F54;KANGXI RADICAL WATER;So;0;ON; 6C34;;;;N;;;;; 2F55;KANGXI RADICAL FIRE;So;0;ON; 706B;;;;N;;;;; 2F56;KANGXI RADICAL CLAW;So;0;ON; 722A;;;;N;;;;; 2F57;KANGXI RADICAL FATHER;So;0;ON; 7236;;;;N;;;;; 2F58;KANGXI RADICAL DOUBLE X;So;0;ON; 723B;;;;N;;;;; 2F59;KANGXI RADICAL HALF TREE TRUNK;So;0;ON; 723F;;;;N;;;;; 2F5A;KANGXI RADICAL SLICE;So;0;ON; 7247;;;;N;;;;; 2F5B;KANGXI RADICAL FANG;So;0;ON; 7259;;;;N;;;;; 2F5C;KANGXI RADICAL COW;So;0;ON; 725B;;;;N;;;;; 2F5D;KANGXI RADICAL DOG;So;0;ON; 72AC;;;;N;;;;; 2F5E;KANGXI RADICAL PROFOUND;So;0;ON; 7384;;;;N;;;;; 2F5F;KANGXI RADICAL JADE;So;0;ON; 7389;;;;N;;;;; 2F60;KANGXI RADICAL MELON;So;0;ON; 74DC;;;;N;;;;; 2F61;KANGXI RADICAL TILE;So;0;ON; 74E6;;;;N;;;;; 2F62;KANGXI RADICAL SWEET;So;0;ON; 7518;;;;N;;;;; 2F63;KANGXI RADICAL LIFE;So;0;ON; 751F;;;;N;;;;; 2F64;KANGXI RADICAL USE;So;0;ON; 7528;;;;N;;;;; 2F65;KANGXI RADICAL FIELD;So;0;ON; 7530;;;;N;;;;; 2F66;KANGXI RADICAL BOLT OF CLOTH;So;0;ON; 758B;;;;N;;;;; 2F67;KANGXI RADICAL SICKNESS;So;0;ON; 7592;;;;N;;;;; 2F68;KANGXI RADICAL DOTTED TENT;So;0;ON; 7676;;;;N;;;;; 2F69;KANGXI RADICAL WHITE;So;0;ON; 767D;;;;N;;;;; 2F6A;KANGXI RADICAL SKIN;So;0;ON; 76AE;;;;N;;;;; 2F6B;KANGXI RADICAL DISH;So;0;ON; 76BF;;;;N;;;;; 2F6C;KANGXI RADICAL EYE;So;0;ON; 76EE;;;;N;;;;; 2F6D;KANGXI RADICAL SPEAR;So;0;ON; 77DB;;;;N;;;;; 2F6E;KANGXI RADICAL ARROW;So;0;ON; 77E2;;;;N;;;;; 2F6F;KANGXI RADICAL STONE;So;0;ON; 77F3;;;;N;;;;; 2F70;KANGXI RADICAL SPIRIT;So;0;ON; 793A;;;;N;;;;; 2F71;KANGXI RADICAL TRACK;So;0;ON; 79B8;;;;N;;;;; 2F72;KANGXI RADICAL GRAIN;So;0;ON; 79BE;;;;N;;;;; 2F73;KANGXI RADICAL CAVE;So;0;ON; 7A74;;;;N;;;;; 2F74;KANGXI RADICAL STAND;So;0;ON; 7ACB;;;;N;;;;; 2F75;KANGXI RADICAL BAMBOO;So;0;ON; 7AF9;;;;N;;;;; 2F76;KANGXI RADICAL RICE;So;0;ON; 7C73;;;;N;;;;; 2F77;KANGXI RADICAL SILK;So;0;ON; 7CF8;;;;N;;;;; 2F78;KANGXI RADICAL JAR;So;0;ON; 7F36;;;;N;;;;; 2F79;KANGXI RADICAL NET;So;0;ON; 7F51;;;;N;;;;; 2F7A;KANGXI RADICAL SHEEP;So;0;ON; 7F8A;;;;N;;;;; 2F7B;KANGXI RADICAL FEATHER;So;0;ON; 7FBD;;;;N;;;;; 2F7C;KANGXI RADICAL OLD;So;0;ON; 8001;;;;N;;;;; 2F7D;KANGXI RADICAL AND;So;0;ON; 800C;;;;N;;;;; 2F7E;KANGXI RADICAL PLOW;So;0;ON; 8012;;;;N;;;;; 2F7F;KANGXI RADICAL EAR;So;0;ON; 8033;;;;N;;;;; 2F80;KANGXI RADICAL BRUSH;So;0;ON; 807F;;;;N;;;;; 2F81;KANGXI RADICAL MEAT;So;0;ON; 8089;;;;N;;;;; 2F82;KANGXI RADICAL MINISTER;So;0;ON; 81E3;;;;N;;;;; 2F83;KANGXI RADICAL SELF;So;0;ON; 81EA;;;;N;;;;; 2F84;KANGXI RADICAL ARRIVE;So;0;ON; 81F3;;;;N;;;;; 2F85;KANGXI RADICAL MORTAR;So;0;ON; 81FC;;;;N;;;;; 2F86;KANGXI RADICAL TONGUE;So;0;ON; 820C;;;;N;;;;; 2F87;KANGXI RADICAL OPPOSE;So;0;ON; 821B;;;;N;;;;; 2F88;KANGXI RADICAL BOAT;So;0;ON; 821F;;;;N;;;;; 2F89;KANGXI RADICAL STOPPING;So;0;ON; 826E;;;;N;;;;; 2F8A;KANGXI RADICAL COLOR;So;0;ON; 8272;;;;N;;;;; 2F8B;KANGXI RADICAL GRASS;So;0;ON; 8278;;;;N;;;;; 2F8C;KANGXI RADICAL TIGER;So;0;ON; 864D;;;;N;;;;; 2F8D;KANGXI RADICAL INSECT;So;0;ON; 866B;;;;N;;;;; 2F8E;KANGXI RADICAL BLOOD;So;0;ON; 8840;;;;N;;;;; 2F8F;KANGXI RADICAL WALK ENCLOSURE;So;0;ON; 884C;;;;N;;;;; 2F90;KANGXI RADICAL CLOTHES;So;0;ON; 8863;;;;N;;;;; 2F91;KANGXI RADICAL WEST;So;0;ON; 897E;;;;N;;;;; 2F92;KANGXI RADICAL SEE;So;0;ON; 898B;;;;N;;;;; 2F93;KANGXI RADICAL HORN;So;0;ON; 89D2;;;;N;;;;; 2F94;KANGXI RADICAL SPEECH;So;0;ON; 8A00;;;;N;;;;; 2F95;KANGXI RADICAL VALLEY;So;0;ON; 8C37;;;;N;;;;; 2F96;KANGXI RADICAL BEAN;So;0;ON; 8C46;;;;N;;;;; 2F97;KANGXI RADICAL PIG;So;0;ON; 8C55;;;;N;;;;; 2F98;KANGXI RADICAL BADGER;So;0;ON; 8C78;;;;N;;;;; 2F99;KANGXI RADICAL SHELL;So;0;ON; 8C9D;;;;N;;;;; 2F9A;KANGXI RADICAL RED;So;0;ON; 8D64;;;;N;;;;; 2F9B;KANGXI RADICAL RUN;So;0;ON; 8D70;;;;N;;;;; 2F9C;KANGXI RADICAL FOOT;So;0;ON; 8DB3;;;;N;;;;; 2F9D;KANGXI RADICAL BODY;So;0;ON; 8EAB;;;;N;;;;; 2F9E;KANGXI RADICAL CART;So;0;ON; 8ECA;;;;N;;;;; 2F9F;KANGXI RADICAL BITTER;So;0;ON; 8F9B;;;;N;;;;; 2FA0;KANGXI RADICAL MORNING;So;0;ON; 8FB0;;;;N;;;;; 2FA1;KANGXI RADICAL WALK;So;0;ON; 8FB5;;;;N;;;;; 2FA2;KANGXI RADICAL CITY;So;0;ON; 9091;;;;N;;;;; 2FA3;KANGXI RADICAL WINE;So;0;ON; 9149;;;;N;;;;; 2FA4;KANGXI RADICAL DISTINGUISH;So;0;ON; 91C6;;;;N;;;;; 2FA5;KANGXI RADICAL VILLAGE;So;0;ON; 91CC;;;;N;;;;; 2FA6;KANGXI RADICAL GOLD;So;0;ON; 91D1;;;;N;;;;; 2FA7;KANGXI RADICAL LONG;So;0;ON; 9577;;;;N;;;;; 2FA8;KANGXI RADICAL GATE;So;0;ON; 9580;;;;N;;;;; 2FA9;KANGXI RADICAL MOUND;So;0;ON; 961C;;;;N;;;;; 2FAA;KANGXI RADICAL SLAVE;So;0;ON; 96B6;;;;N;;;;; 2FAB;KANGXI RADICAL SHORT TAILED BIRD;So;0;ON; 96B9;;;;N;;;;; 2FAC;KANGXI RADICAL RAIN;So;0;ON; 96E8;;;;N;;;;; 2FAD;KANGXI RADICAL BLUE;So;0;ON; 9751;;;;N;;;;; 2FAE;KANGXI RADICAL WRONG;So;0;ON; 975E;;;;N;;;;; 2FAF;KANGXI RADICAL FACE;So;0;ON; 9762;;;;N;;;;; 2FB0;KANGXI RADICAL LEATHER;So;0;ON; 9769;;;;N;;;;; 2FB1;KANGXI RADICAL TANNED LEATHER;So;0;ON; 97CB;;;;N;;;;; 2FB2;KANGXI RADICAL LEEK;So;0;ON; 97ED;;;;N;;;;; 2FB3;KANGXI RADICAL SOUND;So;0;ON; 97F3;;;;N;;;;; 2FB4;KANGXI RADICAL LEAF;So;0;ON; 9801;;;;N;;;;; 2FB5;KANGXI RADICAL WIND;So;0;ON; 98A8;;;;N;;;;; 2FB6;KANGXI RADICAL FLY;So;0;ON; 98DB;;;;N;;;;; 2FB7;KANGXI RADICAL EAT;So;0;ON; 98DF;;;;N;;;;; 2FB8;KANGXI RADICAL HEAD;So;0;ON; 9996;;;;N;;;;; 2FB9;KANGXI RADICAL FRAGRANT;So;0;ON; 9999;;;;N;;;;; 2FBA;KANGXI RADICAL HORSE;So;0;ON; 99AC;;;;N;;;;; 2FBB;KANGXI RADICAL BONE;So;0;ON; 9AA8;;;;N;;;;; 2FBC;KANGXI RADICAL TALL;So;0;ON; 9AD8;;;;N;;;;; 2FBD;KANGXI RADICAL HAIR;So;0;ON; 9ADF;;;;N;;;;; 2FBE;KANGXI RADICAL FIGHT;So;0;ON; 9B25;;;;N;;;;; 2FBF;KANGXI RADICAL SACRIFICIAL WINE;So;0;ON; 9B2F;;;;N;;;;; 2FC0;KANGXI RADICAL CAULDRON;So;0;ON; 9B32;;;;N;;;;; 2FC1;KANGXI RADICAL GHOST;So;0;ON; 9B3C;;;;N;;;;; 2FC2;KANGXI RADICAL FISH;So;0;ON; 9B5A;;;;N;;;;; 2FC3;KANGXI RADICAL BIRD;So;0;ON; 9CE5;;;;N;;;;; 2FC4;KANGXI RADICAL SALT;So;0;ON; 9E75;;;;N;;;;; 2FC5;KANGXI RADICAL DEER;So;0;ON; 9E7F;;;;N;;;;; 2FC6;KANGXI RADICAL WHEAT;So;0;ON; 9EA5;;;;N;;;;; 2FC7;KANGXI RADICAL HEMP;So;0;ON; 9EBB;;;;N;;;;; 2FC8;KANGXI RADICAL YELLOW;So;0;ON; 9EC3;;;;N;;;;; 2FC9;KANGXI RADICAL MILLET;So;0;ON; 9ECD;;;;N;;;;; 2FCA;KANGXI RADICAL BLACK;So;0;ON; 9ED1;;;;N;;;;; 2FCB;KANGXI RADICAL EMBROIDERY;So;0;ON; 9EF9;;;;N;;;;; 2FCC;KANGXI RADICAL FROG;So;0;ON; 9EFD;;;;N;;;;; 2FCD;KANGXI RADICAL TRIPOD;So;0;ON; 9F0E;;;;N;;;;; 2FCE;KANGXI RADICAL DRUM;So;0;ON; 9F13;;;;N;;;;; 2FCF;KANGXI RADICAL RAT;So;0;ON; 9F20;;;;N;;;;; 2FD0;KANGXI RADICAL NOSE;So;0;ON; 9F3B;;;;N;;;;; 2FD1;KANGXI RADICAL EVEN;So;0;ON; 9F4A;;;;N;;;;; 2FD2;KANGXI RADICAL TOOTH;So;0;ON; 9F52;;;;N;;;;; 2FD3;KANGXI RADICAL DRAGON;So;0;ON; 9F8D;;;;N;;;;; 2FD4;KANGXI RADICAL TURTLE;So;0;ON; 9F9C;;;;N;;;;; 2FD5;KANGXI RADICAL FLUTE;So;0;ON; 9FA0;;;;N;;;;; 2FF0;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT;So;0;ON;;;;;N;;;;; 2FF1;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW;So;0;ON;;;;;N;;;;; 2FF2;IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT;So;0;ON;;;;;N;;;;; 2FF3;IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW;So;0;ON;;;;;N;;;;; 2FF4;IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND;So;0;ON;;;;;N;;;;; 2FF5;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM ABOVE;So;0;ON;;;;;N;;;;; 2FF6;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM BELOW;So;0;ON;;;;;N;;;;; 2FF7;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LEFT;So;0;ON;;;;;N;;;;; 2FF8;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER LEFT;So;0;ON;;;;;N;;;;; 2FF9;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM UPPER RIGHT;So;0;ON;;;;;N;;;;; 2FFA;IDEOGRAPHIC DESCRIPTION CHARACTER SURROUND FROM LOWER LEFT;So;0;ON;;;;;N;;;;; 2FFB;IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID;So;0;ON;;;;;N;;;;; 3000;IDEOGRAPHIC SPACE;Zs;0;WS; 0020;;;;N;;;;; 3001;IDEOGRAPHIC COMMA;Po;0;ON;;;;;N;;;;; 3002;IDEOGRAPHIC FULL STOP;Po;0;ON;;;;;N;IDEOGRAPHIC PERIOD;;;; 3003;DITTO MARK;Po;0;ON;;;;;N;;;;; 3004;JAPANESE INDUSTRIAL STANDARD SYMBOL;So;0;ON;;;;;N;;;;; 3005;IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; 3006;IDEOGRAPHIC CLOSING MARK;Lo;0;L;;;;;N;;;;; 3007;IDEOGRAPHIC NUMBER ZERO;Nl;0;L;;;;0;N;;;;; 3008;LEFT ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING ANGLE BRACKET;;;; 3009;RIGHT ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING ANGLE BRACKET;;;; 300A;LEFT DOUBLE ANGLE BRACKET;Ps;0;ON;;;;;Y;OPENING DOUBLE ANGLE BRACKET;;;; 300B;RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON;;;;;Y;CLOSING DOUBLE ANGLE BRACKET;;;; 300C;LEFT CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING CORNER BRACKET;;;; 300D;RIGHT CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING CORNER BRACKET;;;; 300E;LEFT WHITE CORNER BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE CORNER BRACKET;;;; 300F;RIGHT WHITE CORNER BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE CORNER BRACKET;;;; 3010;LEFT BLACK LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING BLACK LENTICULAR BRACKET;;;; 3011;RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING BLACK LENTICULAR BRACKET;;;; 3012;POSTAL MARK;So;0;ON;;;;;N;;;;; 3013;GETA MARK;So;0;ON;;;;;N;;;;; 3014;LEFT TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING TORTOISE SHELL BRACKET;;;; 3015;RIGHT TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING TORTOISE SHELL BRACKET;;;; 3016;LEFT WHITE LENTICULAR BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE LENTICULAR BRACKET;;;; 3017;RIGHT WHITE LENTICULAR BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE LENTICULAR BRACKET;;;; 3018;LEFT WHITE TORTOISE SHELL BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE TORTOISE SHELL BRACKET;;;; 3019;RIGHT WHITE TORTOISE SHELL BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE TORTOISE SHELL BRACKET;;;; 301A;LEFT WHITE SQUARE BRACKET;Ps;0;ON;;;;;Y;OPENING WHITE SQUARE BRACKET;;;; 301B;RIGHT WHITE SQUARE BRACKET;Pe;0;ON;;;;;Y;CLOSING WHITE SQUARE BRACKET;;;; 301C;WAVE DASH;Pd;0;ON;;;;;N;;;;; 301D;REVERSED DOUBLE PRIME QUOTATION MARK;Ps;0;ON;;;;;N;;;;; 301E;DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; 301F;LOW DOUBLE PRIME QUOTATION MARK;Pe;0;ON;;;;;N;;;;; 3020;POSTAL MARK FACE;So;0;ON;;;;;N;;;;; 3021;HANGZHOU NUMERAL ONE;Nl;0;L;;;;1;N;;;;; 3022;HANGZHOU NUMERAL TWO;Nl;0;L;;;;2;N;;;;; 3023;HANGZHOU NUMERAL THREE;Nl;0;L;;;;3;N;;;;; 3024;HANGZHOU NUMERAL FOUR;Nl;0;L;;;;4;N;;;;; 3025;HANGZHOU NUMERAL FIVE;Nl;0;L;;;;5;N;;;;; 3026;HANGZHOU NUMERAL SIX;Nl;0;L;;;;6;N;;;;; 3027;HANGZHOU NUMERAL SEVEN;Nl;0;L;;;;7;N;;;;; 3028;HANGZHOU NUMERAL EIGHT;Nl;0;L;;;;8;N;;;;; 3029;HANGZHOU NUMERAL NINE;Nl;0;L;;;;9;N;;;;; 302A;IDEOGRAPHIC LEVEL TONE MARK;Mn;218;NSM;;;;;N;;;;; 302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;; 302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;; 302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;; 302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;; 302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;; 3030;WAVY DASH;Pd;0;ON;;;;;N;;;;; 3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;; 3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;; 3033;VERTICAL KANA REPEAT MARK UPPER HALF;Lm;0;L;;;;;N;;;;; 3034;VERTICAL KANA REPEAT WITH VOICED SOUND MARK UPPER HALF;Lm;0;L;;;;;N;;;;; 3035;VERTICAL KANA REPEAT MARK LOWER HALF;Lm;0;L;;;;;N;;;;; 3036;CIRCLED POSTAL MARK;So;0;ON; 3012;;;;N;;;;; 3037;IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL;So;0;ON;;;;;N;;;;; 3038;HANGZHOU NUMERAL TEN;Nl;0;L; 5341;;;10;N;;;;; 3039;HANGZHOU NUMERAL TWENTY;Nl;0;L; 5344;;;20;N;;;;; 303A;HANGZHOU NUMERAL THIRTY;Nl;0;L; 5345;;;30;N;;;;; 303B;VERTICAL IDEOGRAPHIC ITERATION MARK;Lm;0;L;;;;;N;;;;; 303C;MASU MARK;Lo;0;L;;;;;N;;;;; 303D;PART ALTERNATION MARK;Po;0;ON;;;;;N;;;;; 303E;IDEOGRAPHIC VARIATION INDICATOR;So;0;ON;;;;;N;;;;; 303F;IDEOGRAPHIC HALF FILL SPACE;So;0;ON;;;;;N;;;;; 3041;HIRAGANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; 3042;HIRAGANA LETTER A;Lo;0;L;;;;;N;;;;; 3043;HIRAGANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; 3044;HIRAGANA LETTER I;Lo;0;L;;;;;N;;;;; 3045;HIRAGANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; 3046;HIRAGANA LETTER U;Lo;0;L;;;;;N;;;;; 3047;HIRAGANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; 3048;HIRAGANA LETTER E;Lo;0;L;;;;;N;;;;; 3049;HIRAGANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; 304A;HIRAGANA LETTER O;Lo;0;L;;;;;N;;;;; 304B;HIRAGANA LETTER KA;Lo;0;L;;;;;N;;;;; 304C;HIRAGANA LETTER GA;Lo;0;L;304B 3099;;;;N;;;;; 304D;HIRAGANA LETTER KI;Lo;0;L;;;;;N;;;;; 304E;HIRAGANA LETTER GI;Lo;0;L;304D 3099;;;;N;;;;; 304F;HIRAGANA LETTER KU;Lo;0;L;;;;;N;;;;; 3050;HIRAGANA LETTER GU;Lo;0;L;304F 3099;;;;N;;;;; 3051;HIRAGANA LETTER KE;Lo;0;L;;;;;N;;;;; 3052;HIRAGANA LETTER GE;Lo;0;L;3051 3099;;;;N;;;;; 3053;HIRAGANA LETTER KO;Lo;0;L;;;;;N;;;;; 3054;HIRAGANA LETTER GO;Lo;0;L;3053 3099;;;;N;;;;; 3055;HIRAGANA LETTER SA;Lo;0;L;;;;;N;;;;; 3056;HIRAGANA LETTER ZA;Lo;0;L;3055 3099;;;;N;;;;; 3057;HIRAGANA LETTER SI;Lo;0;L;;;;;N;;;;; 3058;HIRAGANA LETTER ZI;Lo;0;L;3057 3099;;;;N;;;;; 3059;HIRAGANA LETTER SU;Lo;0;L;;;;;N;;;;; 305A;HIRAGANA LETTER ZU;Lo;0;L;3059 3099;;;;N;;;;; 305B;HIRAGANA LETTER SE;Lo;0;L;;;;;N;;;;; 305C;HIRAGANA LETTER ZE;Lo;0;L;305B 3099;;;;N;;;;; 305D;HIRAGANA LETTER SO;Lo;0;L;;;;;N;;;;; 305E;HIRAGANA LETTER ZO;Lo;0;L;305D 3099;;;;N;;;;; 305F;HIRAGANA LETTER TA;Lo;0;L;;;;;N;;;;; 3060;HIRAGANA LETTER DA;Lo;0;L;305F 3099;;;;N;;;;; 3061;HIRAGANA LETTER TI;Lo;0;L;;;;;N;;;;; 3062;HIRAGANA LETTER DI;Lo;0;L;3061 3099;;;;N;;;;; 3063;HIRAGANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; 3064;HIRAGANA LETTER TU;Lo;0;L;;;;;N;;;;; 3065;HIRAGANA LETTER DU;Lo;0;L;3064 3099;;;;N;;;;; 3066;HIRAGANA LETTER TE;Lo;0;L;;;;;N;;;;; 3067;HIRAGANA LETTER DE;Lo;0;L;3066 3099;;;;N;;;;; 3068;HIRAGANA LETTER TO;Lo;0;L;;;;;N;;;;; 3069;HIRAGANA LETTER DO;Lo;0;L;3068 3099;;;;N;;;;; 306A;HIRAGANA LETTER NA;Lo;0;L;;;;;N;;;;; 306B;HIRAGANA LETTER NI;Lo;0;L;;;;;N;;;;; 306C;HIRAGANA LETTER NU;Lo;0;L;;;;;N;;;;; 306D;HIRAGANA LETTER NE;Lo;0;L;;;;;N;;;;; 306E;HIRAGANA LETTER NO;Lo;0;L;;;;;N;;;;; 306F;HIRAGANA LETTER HA;Lo;0;L;;;;;N;;;;; 3070;HIRAGANA LETTER BA;Lo;0;L;306F 3099;;;;N;;;;; 3071;HIRAGANA LETTER PA;Lo;0;L;306F 309A;;;;N;;;;; 3072;HIRAGANA LETTER HI;Lo;0;L;;;;;N;;;;; 3073;HIRAGANA LETTER BI;Lo;0;L;3072 3099;;;;N;;;;; 3074;HIRAGANA LETTER PI;Lo;0;L;3072 309A;;;;N;;;;; 3075;HIRAGANA LETTER HU;Lo;0;L;;;;;N;;;;; 3076;HIRAGANA LETTER BU;Lo;0;L;3075 3099;;;;N;;;;; 3077;HIRAGANA LETTER PU;Lo;0;L;3075 309A;;;;N;;;;; 3078;HIRAGANA LETTER HE;Lo;0;L;;;;;N;;;;; 3079;HIRAGANA LETTER BE;Lo;0;L;3078 3099;;;;N;;;;; 307A;HIRAGANA LETTER PE;Lo;0;L;3078 309A;;;;N;;;;; 307B;HIRAGANA LETTER HO;Lo;0;L;;;;;N;;;;; 307C;HIRAGANA LETTER BO;Lo;0;L;307B 3099;;;;N;;;;; 307D;HIRAGANA LETTER PO;Lo;0;L;307B 309A;;;;N;;;;; 307E;HIRAGANA LETTER MA;Lo;0;L;;;;;N;;;;; 307F;HIRAGANA LETTER MI;Lo;0;L;;;;;N;;;;; 3080;HIRAGANA LETTER MU;Lo;0;L;;;;;N;;;;; 3081;HIRAGANA LETTER ME;Lo;0;L;;;;;N;;;;; 3082;HIRAGANA LETTER MO;Lo;0;L;;;;;N;;;;; 3083;HIRAGANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; 3084;HIRAGANA LETTER YA;Lo;0;L;;;;;N;;;;; 3085;HIRAGANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; 3086;HIRAGANA LETTER YU;Lo;0;L;;;;;N;;;;; 3087;HIRAGANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; 3088;HIRAGANA LETTER YO;Lo;0;L;;;;;N;;;;; 3089;HIRAGANA LETTER RA;Lo;0;L;;;;;N;;;;; 308A;HIRAGANA LETTER RI;Lo;0;L;;;;;N;;;;; 308B;HIRAGANA LETTER RU;Lo;0;L;;;;;N;;;;; 308C;HIRAGANA LETTER RE;Lo;0;L;;;;;N;;;;; 308D;HIRAGANA LETTER RO;Lo;0;L;;;;;N;;;;; 308E;HIRAGANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; 308F;HIRAGANA LETTER WA;Lo;0;L;;;;;N;;;;; 3090;HIRAGANA LETTER WI;Lo;0;L;;;;;N;;;;; 3091;HIRAGANA LETTER WE;Lo;0;L;;;;;N;;;;; 3092;HIRAGANA LETTER WO;Lo;0;L;;;;;N;;;;; 3093;HIRAGANA LETTER N;Lo;0;L;;;;;N;;;;; 3094;HIRAGANA LETTER VU;Lo;0;L;3046 3099;;;;N;;;;; 3095;HIRAGANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; 3096;HIRAGANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; 3099;COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA VOICED SOUND MARK;;;; 309A;COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Mn;8;NSM;;;;;N;NON-SPACING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;;;; 309B;KATAKANA-HIRAGANA VOICED SOUND MARK;Sk;0;ON; 0020 3099;;;;N;;;;; 309C;KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK;Sk;0;ON; 0020 309A;;;;N;;;;; 309D;HIRAGANA ITERATION MARK;Lm;0;L;;;;;N;;;;; 309E;HIRAGANA VOICED ITERATION MARK;Lm;0;L;309D 3099;;;;N;;;;; 309F;HIRAGANA DIGRAPH YORI;Lo;0;L; 3088 308A;;;;N;;;;; 30A0;KATAKANA-HIRAGANA DOUBLE HYPHEN;Pd;0;ON;;;;;N;;;;; 30A1;KATAKANA LETTER SMALL A;Lo;0;L;;;;;N;;;;; 30A2;KATAKANA LETTER A;Lo;0;L;;;;;N;;;;; 30A3;KATAKANA LETTER SMALL I;Lo;0;L;;;;;N;;;;; 30A4;KATAKANA LETTER I;Lo;0;L;;;;;N;;;;; 30A5;KATAKANA LETTER SMALL U;Lo;0;L;;;;;N;;;;; 30A6;KATAKANA LETTER U;Lo;0;L;;;;;N;;;;; 30A7;KATAKANA LETTER SMALL E;Lo;0;L;;;;;N;;;;; 30A8;KATAKANA LETTER E;Lo;0;L;;;;;N;;;;; 30A9;KATAKANA LETTER SMALL O;Lo;0;L;;;;;N;;;;; 30AA;KATAKANA LETTER O;Lo;0;L;;;;;N;;;;; 30AB;KATAKANA LETTER KA;Lo;0;L;;;;;N;;;;; 30AC;KATAKANA LETTER GA;Lo;0;L;30AB 3099;;;;N;;;;; 30AD;KATAKANA LETTER KI;Lo;0;L;;;;;N;;;;; 30AE;KATAKANA LETTER GI;Lo;0;L;30AD 3099;;;;N;;;;; 30AF;KATAKANA LETTER KU;Lo;0;L;;;;;N;;;;; 30B0;KATAKANA LETTER GU;Lo;0;L;30AF 3099;;;;N;;;;; 30B1;KATAKANA LETTER KE;Lo;0;L;;;;;N;;;;; 30B2;KATAKANA LETTER GE;Lo;0;L;30B1 3099;;;;N;;;;; 30B3;KATAKANA LETTER KO;Lo;0;L;;;;;N;;;;; 30B4;KATAKANA LETTER GO;Lo;0;L;30B3 3099;;;;N;;;;; 30B5;KATAKANA LETTER SA;Lo;0;L;;;;;N;;;;; 30B6;KATAKANA LETTER ZA;Lo;0;L;30B5 3099;;;;N;;;;; 30B7;KATAKANA LETTER SI;Lo;0;L;;;;;N;;;;; 30B8;KATAKANA LETTER ZI;Lo;0;L;30B7 3099;;;;N;;;;; 30B9;KATAKANA LETTER SU;Lo;0;L;;;;;N;;;;; 30BA;KATAKANA LETTER ZU;Lo;0;L;30B9 3099;;;;N;;;;; 30BB;KATAKANA LETTER SE;Lo;0;L;;;;;N;;;;; 30BC;KATAKANA LETTER ZE;Lo;0;L;30BB 3099;;;;N;;;;; 30BD;KATAKANA LETTER SO;Lo;0;L;;;;;N;;;;; 30BE;KATAKANA LETTER ZO;Lo;0;L;30BD 3099;;;;N;;;;; 30BF;KATAKANA LETTER TA;Lo;0;L;;;;;N;;;;; 30C0;KATAKANA LETTER DA;Lo;0;L;30BF 3099;;;;N;;;;; 30C1;KATAKANA LETTER TI;Lo;0;L;;;;;N;;;;; 30C2;KATAKANA LETTER DI;Lo;0;L;30C1 3099;;;;N;;;;; 30C3;KATAKANA LETTER SMALL TU;Lo;0;L;;;;;N;;;;; 30C4;KATAKANA LETTER TU;Lo;0;L;;;;;N;;;;; 30C5;KATAKANA LETTER DU;Lo;0;L;30C4 3099;;;;N;;;;; 30C6;KATAKANA LETTER TE;Lo;0;L;;;;;N;;;;; 30C7;KATAKANA LETTER DE;Lo;0;L;30C6 3099;;;;N;;;;; 30C8;KATAKANA LETTER TO;Lo;0;L;;;;;N;;;;; 30C9;KATAKANA LETTER DO;Lo;0;L;30C8 3099;;;;N;;;;; 30CA;KATAKANA LETTER NA;Lo;0;L;;;;;N;;;;; 30CB;KATAKANA LETTER NI;Lo;0;L;;;;;N;;;;; 30CC;KATAKANA LETTER NU;Lo;0;L;;;;;N;;;;; 30CD;KATAKANA LETTER NE;Lo;0;L;;;;;N;;;;; 30CE;KATAKANA LETTER NO;Lo;0;L;;;;;N;;;;; 30CF;KATAKANA LETTER HA;Lo;0;L;;;;;N;;;;; 30D0;KATAKANA LETTER BA;Lo;0;L;30CF 3099;;;;N;;;;; 30D1;KATAKANA LETTER PA;Lo;0;L;30CF 309A;;;;N;;;;; 30D2;KATAKANA LETTER HI;Lo;0;L;;;;;N;;;;; 30D3;KATAKANA LETTER BI;Lo;0;L;30D2 3099;;;;N;;;;; 30D4;KATAKANA LETTER PI;Lo;0;L;30D2 309A;;;;N;;;;; 30D5;KATAKANA LETTER HU;Lo;0;L;;;;;N;;;;; 30D6;KATAKANA LETTER BU;Lo;0;L;30D5 3099;;;;N;;;;; 30D7;KATAKANA LETTER PU;Lo;0;L;30D5 309A;;;;N;;;;; 30D8;KATAKANA LETTER HE;Lo;0;L;;;;;N;;;;; 30D9;KATAKANA LETTER BE;Lo;0;L;30D8 3099;;;;N;;;;; 30DA;KATAKANA LETTER PE;Lo;0;L;30D8 309A;;;;N;;;;; 30DB;KATAKANA LETTER HO;Lo;0;L;;;;;N;;;;; 30DC;KATAKANA LETTER BO;Lo;0;L;30DB 3099;;;;N;;;;; 30DD;KATAKANA LETTER PO;Lo;0;L;30DB 309A;;;;N;;;;; 30DE;KATAKANA LETTER MA;Lo;0;L;;;;;N;;;;; 30DF;KATAKANA LETTER MI;Lo;0;L;;;;;N;;;;; 30E0;KATAKANA LETTER MU;Lo;0;L;;;;;N;;;;; 30E1;KATAKANA LETTER ME;Lo;0;L;;;;;N;;;;; 30E2;KATAKANA LETTER MO;Lo;0;L;;;;;N;;;;; 30E3;KATAKANA LETTER SMALL YA;Lo;0;L;;;;;N;;;;; 30E4;KATAKANA LETTER YA;Lo;0;L;;;;;N;;;;; 30E5;KATAKANA LETTER SMALL YU;Lo;0;L;;;;;N;;;;; 30E6;KATAKANA LETTER YU;Lo;0;L;;;;;N;;;;; 30E7;KATAKANA LETTER SMALL YO;Lo;0;L;;;;;N;;;;; 30E8;KATAKANA LETTER YO;Lo;0;L;;;;;N;;;;; 30E9;KATAKANA LETTER RA;Lo;0;L;;;;;N;;;;; 30EA;KATAKANA LETTER RI;Lo;0;L;;;;;N;;;;; 30EB;KATAKANA LETTER RU;Lo;0;L;;;;;N;;;;; 30EC;KATAKANA LETTER RE;Lo;0;L;;;;;N;;;;; 30ED;KATAKANA LETTER RO;Lo;0;L;;;;;N;;;;; 30EE;KATAKANA LETTER SMALL WA;Lo;0;L;;;;;N;;;;; 30EF;KATAKANA LETTER WA;Lo;0;L;;;;;N;;;;; 30F0;KATAKANA LETTER WI;Lo;0;L;;;;;N;;;;; 30F1;KATAKANA LETTER WE;Lo;0;L;;;;;N;;;;; 30F2;KATAKANA LETTER WO;Lo;0;L;;;;;N;;;;; 30F3;KATAKANA LETTER N;Lo;0;L;;;;;N;;;;; 30F4;KATAKANA LETTER VU;Lo;0;L;30A6 3099;;;;N;;;;; 30F5;KATAKANA LETTER SMALL KA;Lo;0;L;;;;;N;;;;; 30F6;KATAKANA LETTER SMALL KE;Lo;0;L;;;;;N;;;;; 30F7;KATAKANA LETTER VA;Lo;0;L;30EF 3099;;;;N;;;;; 30F8;KATAKANA LETTER VI;Lo;0;L;30F0 3099;;;;N;;;;; 30F9;KATAKANA LETTER VE;Lo;0;L;30F1 3099;;;;N;;;;; 30FA;KATAKANA LETTER VO;Lo;0;L;30F2 3099;;;;N;;;;; 30FB;KATAKANA MIDDLE DOT;Pc;0;ON;;;;;N;;;;; 30FC;KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L;;;;;N;;;;; 30FD;KATAKANA ITERATION MARK;Lm;0;L;;;;;N;;;;; 30FE;KATAKANA VOICED ITERATION MARK;Lm;0;L;30FD 3099;;;;N;;;;; 30FF;KATAKANA DIGRAPH KOTO;Lo;0;L; 30B3 30C8;;;;N;;;;; 3105;BOPOMOFO LETTER B;Lo;0;L;;;;;N;;;;; 3106;BOPOMOFO LETTER P;Lo;0;L;;;;;N;;;;; 3107;BOPOMOFO LETTER M;Lo;0;L;;;;;N;;;;; 3108;BOPOMOFO LETTER F;Lo;0;L;;;;;N;;;;; 3109;BOPOMOFO LETTER D;Lo;0;L;;;;;N;;;;; 310A;BOPOMOFO LETTER T;Lo;0;L;;;;;N;;;;; 310B;BOPOMOFO LETTER N;Lo;0;L;;;;;N;;;;; 310C;BOPOMOFO LETTER L;Lo;0;L;;;;;N;;;;; 310D;BOPOMOFO LETTER G;Lo;0;L;;;;;N;;;;; 310E;BOPOMOFO LETTER K;Lo;0;L;;;;;N;;;;; 310F;BOPOMOFO LETTER H;Lo;0;L;;;;;N;;;;; 3110;BOPOMOFO LETTER J;Lo;0;L;;;;;N;;;;; 3111;BOPOMOFO LETTER Q;Lo;0;L;;;;;N;;;;; 3112;BOPOMOFO LETTER X;Lo;0;L;;;;;N;;;;; 3113;BOPOMOFO LETTER ZH;Lo;0;L;;;;;N;;;;; 3114;BOPOMOFO LETTER CH;Lo;0;L;;;;;N;;;;; 3115;BOPOMOFO LETTER SH;Lo;0;L;;;;;N;;;;; 3116;BOPOMOFO LETTER R;Lo;0;L;;;;;N;;;;; 3117;BOPOMOFO LETTER Z;Lo;0;L;;;;;N;;;;; 3118;BOPOMOFO LETTER C;Lo;0;L;;;;;N;;;;; 3119;BOPOMOFO LETTER S;Lo;0;L;;;;;N;;;;; 311A;BOPOMOFO LETTER A;Lo;0;L;;;;;N;;;;; 311B;BOPOMOFO LETTER O;Lo;0;L;;;;;N;;;;; 311C;BOPOMOFO LETTER E;Lo;0;L;;;;;N;;;;; 311D;BOPOMOFO LETTER EH;Lo;0;L;;;;;N;;;;; 311E;BOPOMOFO LETTER AI;Lo;0;L;;;;;N;;;;; 311F;BOPOMOFO LETTER EI;Lo;0;L;;;;;N;;;;; 3120;BOPOMOFO LETTER AU;Lo;0;L;;;;;N;;;;; 3121;BOPOMOFO LETTER OU;Lo;0;L;;;;;N;;;;; 3122;BOPOMOFO LETTER AN;Lo;0;L;;;;;N;;;;; 3123;BOPOMOFO LETTER EN;Lo;0;L;;;;;N;;;;; 3124;BOPOMOFO LETTER ANG;Lo;0;L;;;;;N;;;;; 3125;BOPOMOFO LETTER ENG;Lo;0;L;;;;;N;;;;; 3126;BOPOMOFO LETTER ER;Lo;0;L;;;;;N;;;;; 3127;BOPOMOFO LETTER I;Lo;0;L;;;;;N;;;;; 3128;BOPOMOFO LETTER U;Lo;0;L;;;;;N;;;;; 3129;BOPOMOFO LETTER IU;Lo;0;L;;;;;N;;;;; 312A;BOPOMOFO LETTER V;Lo;0;L;;;;;N;;;;; 312B;BOPOMOFO LETTER NG;Lo;0;L;;;;;N;;;;; 312C;BOPOMOFO LETTER GN;Lo;0;L;;;;;N;;;;; 3131;HANGUL LETTER KIYEOK;Lo;0;L; 1100;;;;N;HANGUL LETTER GIYEOG;;;; 3132;HANGUL LETTER SSANGKIYEOK;Lo;0;L; 1101;;;;N;HANGUL LETTER SSANG GIYEOG;;;; 3133;HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 11AA;;;;N;HANGUL LETTER GIYEOG SIOS;;;; 3134;HANGUL LETTER NIEUN;Lo;0;L; 1102;;;;N;;;;; 3135;HANGUL LETTER NIEUN-CIEUC;Lo;0;L; 11AC;;;;N;HANGUL LETTER NIEUN JIEUJ;;;; 3136;HANGUL LETTER NIEUN-HIEUH;Lo;0;L; 11AD;;;;N;HANGUL LETTER NIEUN HIEUH;;;; 3137;HANGUL LETTER TIKEUT;Lo;0;L; 1103;;;;N;HANGUL LETTER DIGEUD;;;; 3138;HANGUL LETTER SSANGTIKEUT;Lo;0;L; 1104;;;;N;HANGUL LETTER SSANG DIGEUD;;;; 3139;HANGUL LETTER RIEUL;Lo;0;L; 1105;;;;N;HANGUL LETTER LIEUL;;;; 313A;HANGUL LETTER RIEUL-KIYEOK;Lo;0;L; 11B0;;;;N;HANGUL LETTER LIEUL GIYEOG;;;; 313B;HANGUL LETTER RIEUL-MIEUM;Lo;0;L; 11B1;;;;N;HANGUL LETTER LIEUL MIEUM;;;; 313C;HANGUL LETTER RIEUL-PIEUP;Lo;0;L; 11B2;;;;N;HANGUL LETTER LIEUL BIEUB;;;; 313D;HANGUL LETTER RIEUL-SIOS;Lo;0;L; 11B3;;;;N;HANGUL LETTER LIEUL SIOS;;;; 313E;HANGUL LETTER RIEUL-THIEUTH;Lo;0;L; 11B4;;;;N;HANGUL LETTER LIEUL TIEUT;;;; 313F;HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L; 11B5;;;;N;HANGUL LETTER LIEUL PIEUP;;;; 3140;HANGUL LETTER RIEUL-HIEUH;Lo;0;L; 111A;;;;N;HANGUL LETTER LIEUL HIEUH;;;; 3141;HANGUL LETTER MIEUM;Lo;0;L; 1106;;;;N;;;;; 3142;HANGUL LETTER PIEUP;Lo;0;L; 1107;;;;N;HANGUL LETTER BIEUB;;;; 3143;HANGUL LETTER SSANGPIEUP;Lo;0;L; 1108;;;;N;HANGUL LETTER SSANG BIEUB;;;; 3144;HANGUL LETTER PIEUP-SIOS;Lo;0;L; 1121;;;;N;HANGUL LETTER BIEUB SIOS;;;; 3145;HANGUL LETTER SIOS;Lo;0;L; 1109;;;;N;;;;; 3146;HANGUL LETTER SSANGSIOS;Lo;0;L; 110A;;;;N;HANGUL LETTER SSANG SIOS;;;; 3147;HANGUL LETTER IEUNG;Lo;0;L; 110B;;;;N;;;;; 3148;HANGUL LETTER CIEUC;Lo;0;L; 110C;;;;N;HANGUL LETTER JIEUJ;;;; 3149;HANGUL LETTER SSANGCIEUC;Lo;0;L; 110D;;;;N;HANGUL LETTER SSANG JIEUJ;;;; 314A;HANGUL LETTER CHIEUCH;Lo;0;L; 110E;;;;N;HANGUL LETTER CIEUC;;;; 314B;HANGUL LETTER KHIEUKH;Lo;0;L; 110F;;;;N;HANGUL LETTER KIYEOK;;;; 314C;HANGUL LETTER THIEUTH;Lo;0;L; 1110;;;;N;HANGUL LETTER TIEUT;;;; 314D;HANGUL LETTER PHIEUPH;Lo;0;L; 1111;;;;N;HANGUL LETTER PIEUP;;;; 314E;HANGUL LETTER HIEUH;Lo;0;L; 1112;;;;N;;;;; 314F;HANGUL LETTER A;Lo;0;L; 1161;;;;N;;;;; 3150;HANGUL LETTER AE;Lo;0;L; 1162;;;;N;;;;; 3151;HANGUL LETTER YA;Lo;0;L; 1163;;;;N;;;;; 3152;HANGUL LETTER YAE;Lo;0;L; 1164;;;;N;;;;; 3153;HANGUL LETTER EO;Lo;0;L; 1165;;;;N;;;;; 3154;HANGUL LETTER E;Lo;0;L; 1166;;;;N;;;;; 3155;HANGUL LETTER YEO;Lo;0;L; 1167;;;;N;;;;; 3156;HANGUL LETTER YE;Lo;0;L; 1168;;;;N;;;;; 3157;HANGUL LETTER O;Lo;0;L; 1169;;;;N;;;;; 3158;HANGUL LETTER WA;Lo;0;L; 116A;;;;N;;;;; 3159;HANGUL LETTER WAE;Lo;0;L; 116B;;;;N;;;;; 315A;HANGUL LETTER OE;Lo;0;L; 116C;;;;N;;;;; 315B;HANGUL LETTER YO;Lo;0;L; 116D;;;;N;;;;; 315C;HANGUL LETTER U;Lo;0;L; 116E;;;;N;;;;; 315D;HANGUL LETTER WEO;Lo;0;L; 116F;;;;N;;;;; 315E;HANGUL LETTER WE;Lo;0;L; 1170;;;;N;;;;; 315F;HANGUL LETTER WI;Lo;0;L; 1171;;;;N;;;;; 3160;HANGUL LETTER YU;Lo;0;L; 1172;;;;N;;;;; 3161;HANGUL LETTER EU;Lo;0;L; 1173;;;;N;;;;; 3162;HANGUL LETTER YI;Lo;0;L; 1174;;;;N;;;;; 3163;HANGUL LETTER I;Lo;0;L; 1175;;;;N;;;;; 3164;HANGUL FILLER;Lo;0;L; 1160;;;;N;HANGUL CAE OM;;;; 3165;HANGUL LETTER SSANGNIEUN;Lo;0;L; 1114;;;;N;HANGUL LETTER SSANG NIEUN;;;; 3166;HANGUL LETTER NIEUN-TIKEUT;Lo;0;L; 1115;;;;N;HANGUL LETTER NIEUN DIGEUD;;;; 3167;HANGUL LETTER NIEUN-SIOS;Lo;0;L; 11C7;;;;N;HANGUL LETTER NIEUN SIOS;;;; 3168;HANGUL LETTER NIEUN-PANSIOS;Lo;0;L; 11C8;;;;N;HANGUL LETTER NIEUN BAN CHI EUM;;;; 3169;HANGUL LETTER RIEUL-KIYEOK-SIOS;Lo;0;L; 11CC;;;;N;HANGUL LETTER LIEUL GIYEOG SIOS;;;; 316A;HANGUL LETTER RIEUL-TIKEUT;Lo;0;L; 11CE;;;;N;HANGUL LETTER LIEUL DIGEUD;;;; 316B;HANGUL LETTER RIEUL-PIEUP-SIOS;Lo;0;L; 11D3;;;;N;HANGUL LETTER LIEUL BIEUB SIOS;;;; 316C;HANGUL LETTER RIEUL-PANSIOS;Lo;0;L; 11D7;;;;N;HANGUL LETTER LIEUL BAN CHI EUM;;;; 316D;HANGUL LETTER RIEUL-YEORINHIEUH;Lo;0;L; 11D9;;;;N;HANGUL LETTER LIEUL YEOLIN HIEUH;;;; 316E;HANGUL LETTER MIEUM-PIEUP;Lo;0;L; 111C;;;;N;HANGUL LETTER MIEUM BIEUB;;;; 316F;HANGUL LETTER MIEUM-SIOS;Lo;0;L; 11DD;;;;N;HANGUL LETTER MIEUM SIOS;;;; 3170;HANGUL LETTER MIEUM-PANSIOS;Lo;0;L; 11DF;;;;N;HANGUL LETTER BIEUB BAN CHI EUM;;;; 3171;HANGUL LETTER KAPYEOUNMIEUM;Lo;0;L; 111D;;;;N;HANGUL LETTER MIEUM SUN GYEONG EUM;;;; 3172;HANGUL LETTER PIEUP-KIYEOK;Lo;0;L; 111E;;;;N;HANGUL LETTER BIEUB GIYEOG;;;; 3173;HANGUL LETTER PIEUP-TIKEUT;Lo;0;L; 1120;;;;N;HANGUL LETTER BIEUB DIGEUD;;;; 3174;HANGUL LETTER PIEUP-SIOS-KIYEOK;Lo;0;L; 1122;;;;N;HANGUL LETTER BIEUB SIOS GIYEOG;;;; 3175;HANGUL LETTER PIEUP-SIOS-TIKEUT;Lo;0;L; 1123;;;;N;HANGUL LETTER BIEUB SIOS DIGEUD;;;; 3176;HANGUL LETTER PIEUP-CIEUC;Lo;0;L; 1127;;;;N;HANGUL LETTER BIEUB JIEUJ;;;; 3177;HANGUL LETTER PIEUP-THIEUTH;Lo;0;L; 1129;;;;N;HANGUL LETTER BIEUB TIEUT;;;; 3178;HANGUL LETTER KAPYEOUNPIEUP;Lo;0;L; 112B;;;;N;HANGUL LETTER BIEUB SUN GYEONG EUM;;;; 3179;HANGUL LETTER KAPYEOUNSSANGPIEUP;Lo;0;L; 112C;;;;N;HANGUL LETTER SSANG BIEUB SUN GYEONG EUM;;;; 317A;HANGUL LETTER SIOS-KIYEOK;Lo;0;L; 112D;;;;N;HANGUL LETTER SIOS GIYEOG;;;; 317B;HANGUL LETTER SIOS-NIEUN;Lo;0;L; 112E;;;;N;HANGUL LETTER SIOS NIEUN;;;; 317C;HANGUL LETTER SIOS-TIKEUT;Lo;0;L; 112F;;;;N;HANGUL LETTER SIOS DIGEUD;;;; 317D;HANGUL LETTER SIOS-PIEUP;Lo;0;L; 1132;;;;N;HANGUL LETTER SIOS BIEUB;;;; 317E;HANGUL LETTER SIOS-CIEUC;Lo;0;L; 1136;;;;N;HANGUL LETTER SIOS JIEUJ;;;; 317F;HANGUL LETTER PANSIOS;Lo;0;L; 1140;;;;N;HANGUL LETTER BAN CHI EUM;;;; 3180;HANGUL LETTER SSANGIEUNG;Lo;0;L; 1147;;;;N;HANGUL LETTER SSANG IEUNG;;;; 3181;HANGUL LETTER YESIEUNG;Lo;0;L; 114C;;;;N;HANGUL LETTER NGIEUNG;;;; 3182;HANGUL LETTER YESIEUNG-SIOS;Lo;0;L; 11F1;;;;N;HANGUL LETTER NGIEUNG SIOS;;;; 3183;HANGUL LETTER YESIEUNG-PANSIOS;Lo;0;L; 11F2;;;;N;HANGUL LETTER NGIEUNG BAN CHI EUM;;;; 3184;HANGUL LETTER KAPYEOUNPHIEUPH;Lo;0;L; 1157;;;;N;HANGUL LETTER PIEUP SUN GYEONG EUM;;;; 3185;HANGUL LETTER SSANGHIEUH;Lo;0;L; 1158;;;;N;HANGUL LETTER SSANG HIEUH;;;; 3186;HANGUL LETTER YEORINHIEUH;Lo;0;L; 1159;;;;N;HANGUL LETTER YEOLIN HIEUH;;;; 3187;HANGUL LETTER YO-YA;Lo;0;L; 1184;;;;N;HANGUL LETTER YOYA;;;; 3188;HANGUL LETTER YO-YAE;Lo;0;L; 1185;;;;N;HANGUL LETTER YOYAE;;;; 3189;HANGUL LETTER YO-I;Lo;0;L; 1188;;;;N;HANGUL LETTER YOI;;;; 318A;HANGUL LETTER YU-YEO;Lo;0;L; 1191;;;;N;HANGUL LETTER YUYEO;;;; 318B;HANGUL LETTER YU-YE;Lo;0;L; 1192;;;;N;HANGUL LETTER YUYE;;;; 318C;HANGUL LETTER YU-I;Lo;0;L; 1194;;;;N;HANGUL LETTER YUI;;;; 318D;HANGUL LETTER ARAEA;Lo;0;L; 119E;;;;N;HANGUL LETTER ALAE A;;;; 318E;HANGUL LETTER ARAEAE;Lo;0;L; 11A1;;;;N;HANGUL LETTER ALAE AE;;;; 3190;IDEOGRAPHIC ANNOTATION LINKING MARK;So;0;L;;;;;N;KANBUN TATETEN;Kanbun Tateten;;; 3191;IDEOGRAPHIC ANNOTATION REVERSE MARK;So;0;L;;;;;N;KAERITEN RE;Kaeriten;;; 3192;IDEOGRAPHIC ANNOTATION ONE MARK;No;0;L; 4E00;;;1;N;KAERITEN ITI;Kaeriten;;; 3193;IDEOGRAPHIC ANNOTATION TWO MARK;No;0;L; 4E8C;;;2;N;KAERITEN NI;Kaeriten;;; 3194;IDEOGRAPHIC ANNOTATION THREE MARK;No;0;L; 4E09;;;3;N;KAERITEN SAN;Kaeriten;;; 3195;IDEOGRAPHIC ANNOTATION FOUR MARK;No;0;L; 56DB;;;4;N;KAERITEN SI;Kaeriten;;; 3196;IDEOGRAPHIC ANNOTATION TOP MARK;So;0;L; 4E0A;;;;N;KAERITEN ZYOU;Kaeriten;;; 3197;IDEOGRAPHIC ANNOTATION MIDDLE MARK;So;0;L; 4E2D;;;;N;KAERITEN TYUU;Kaeriten;;; 3198;IDEOGRAPHIC ANNOTATION BOTTOM MARK;So;0;L; 4E0B;;;;N;KAERITEN GE;Kaeriten;;; 3199;IDEOGRAPHIC ANNOTATION FIRST MARK;So;0;L; 7532;;;;N;KAERITEN KOU;Kaeriten;;; 319A;IDEOGRAPHIC ANNOTATION SECOND MARK;So;0;L; 4E59;;;;N;KAERITEN OTU;Kaeriten;;; 319B;IDEOGRAPHIC ANNOTATION THIRD MARK;So;0;L; 4E19;;;;N;KAERITEN HEI;Kaeriten;;; 319C;IDEOGRAPHIC ANNOTATION FOURTH MARK;So;0;L; 4E01;;;;N;KAERITEN TEI;Kaeriten;;; 319D;IDEOGRAPHIC ANNOTATION HEAVEN MARK;So;0;L; 5929;;;;N;KAERITEN TEN;Kaeriten;;; 319E;IDEOGRAPHIC ANNOTATION EARTH MARK;So;0;L; 5730;;;;N;KAERITEN TI;Kaeriten;;; 319F;IDEOGRAPHIC ANNOTATION MAN MARK;So;0;L; 4EBA;;;;N;KAERITEN ZIN;Kaeriten;;; 31A0;BOPOMOFO LETTER BU;Lo;0;L;;;;;N;;;;; 31A1;BOPOMOFO LETTER ZI;Lo;0;L;;;;;N;;;;; 31A2;BOPOMOFO LETTER JI;Lo;0;L;;;;;N;;;;; 31A3;BOPOMOFO LETTER GU;Lo;0;L;;;;;N;;;;; 31A4;BOPOMOFO LETTER EE;Lo;0;L;;;;;N;;;;; 31A5;BOPOMOFO LETTER ENN;Lo;0;L;;;;;N;;;;; 31A6;BOPOMOFO LETTER OO;Lo;0;L;;;;;N;;;;; 31A7;BOPOMOFO LETTER ONN;Lo;0;L;;;;;N;;;;; 31A8;BOPOMOFO LETTER IR;Lo;0;L;;;;;N;;;;; 31A9;BOPOMOFO LETTER ANN;Lo;0;L;;;;;N;;;;; 31AA;BOPOMOFO LETTER INN;Lo;0;L;;;;;N;;;;; 31AB;BOPOMOFO LETTER UNN;Lo;0;L;;;;;N;;;;; 31AC;BOPOMOFO LETTER IM;Lo;0;L;;;;;N;;;;; 31AD;BOPOMOFO LETTER NGG;Lo;0;L;;;;;N;;;;; 31AE;BOPOMOFO LETTER AINN;Lo;0;L;;;;;N;;;;; 31AF;BOPOMOFO LETTER AUNN;Lo;0;L;;;;;N;;;;; 31B0;BOPOMOFO LETTER AM;Lo;0;L;;;;;N;;;;; 31B1;BOPOMOFO LETTER OM;Lo;0;L;;;;;N;;;;; 31B2;BOPOMOFO LETTER ONG;Lo;0;L;;;;;N;;;;; 31B3;BOPOMOFO LETTER INNN;Lo;0;L;;;;;N;;;;; 31B4;BOPOMOFO FINAL LETTER P;Lo;0;L;;;;;N;;;;; 31B5;BOPOMOFO FINAL LETTER T;Lo;0;L;;;;;N;;;;; 31B6;BOPOMOFO FINAL LETTER K;Lo;0;L;;;;;N;;;;; 31B7;BOPOMOFO FINAL LETTER H;Lo;0;L;;;;;N;;;;; 31F0;KATAKANA LETTER SMALL KU;Lo;0;L;;;;;N;;;;; 31F1;KATAKANA LETTER SMALL SI;Lo;0;L;;;;;N;;;;; 31F2;KATAKANA LETTER SMALL SU;Lo;0;L;;;;;N;;;;; 31F3;KATAKANA LETTER SMALL TO;Lo;0;L;;;;;N;;;;; 31F4;KATAKANA LETTER SMALL NU;Lo;0;L;;;;;N;;;;; 31F5;KATAKANA LETTER SMALL HA;Lo;0;L;;;;;N;;;;; 31F6;KATAKANA LETTER SMALL HI;Lo;0;L;;;;;N;;;;; 31F7;KATAKANA LETTER SMALL HU;Lo;0;L;;;;;N;;;;; 31F8;KATAKANA LETTER SMALL HE;Lo;0;L;;;;;N;;;;; 31F9;KATAKANA LETTER SMALL HO;Lo;0;L;;;;;N;;;;; 31FA;KATAKANA LETTER SMALL MU;Lo;0;L;;;;;N;;;;; 31FB;KATAKANA LETTER SMALL RA;Lo;0;L;;;;;N;;;;; 31FC;KATAKANA LETTER SMALL RI;Lo;0;L;;;;;N;;;;; 31FD;KATAKANA LETTER SMALL RU;Lo;0;L;;;;;N;;;;; 31FE;KATAKANA LETTER SMALL RE;Lo;0;L;;;;;N;;;;; 31FF;KATAKANA LETTER SMALL RO;Lo;0;L;;;;;N;;;;; 3200;PARENTHESIZED HANGUL KIYEOK;So;0;L; 0028 1100 0029;;;;N;PARENTHESIZED HANGUL GIYEOG;;;; 3201;PARENTHESIZED HANGUL NIEUN;So;0;L; 0028 1102 0029;;;;N;;;;; 3202;PARENTHESIZED HANGUL TIKEUT;So;0;L; 0028 1103 0029;;;;N;PARENTHESIZED HANGUL DIGEUD;;;; 3203;PARENTHESIZED HANGUL RIEUL;So;0;L; 0028 1105 0029;;;;N;PARENTHESIZED HANGUL LIEUL;;;; 3204;PARENTHESIZED HANGUL MIEUM;So;0;L; 0028 1106 0029;;;;N;;;;; 3205;PARENTHESIZED HANGUL PIEUP;So;0;L; 0028 1107 0029;;;;N;PARENTHESIZED HANGUL BIEUB;;;; 3206;PARENTHESIZED HANGUL SIOS;So;0;L; 0028 1109 0029;;;;N;;;;; 3207;PARENTHESIZED HANGUL IEUNG;So;0;L; 0028 110B 0029;;;;N;;;;; 3208;PARENTHESIZED HANGUL CIEUC;So;0;L; 0028 110C 0029;;;;N;PARENTHESIZED HANGUL JIEUJ;;;; 3209;PARENTHESIZED HANGUL CHIEUCH;So;0;L; 0028 110E 0029;;;;N;PARENTHESIZED HANGUL CIEUC;;;; 320A;PARENTHESIZED HANGUL KHIEUKH;So;0;L; 0028 110F 0029;;;;N;PARENTHESIZED HANGUL KIYEOK;;;; 320B;PARENTHESIZED HANGUL THIEUTH;So;0;L; 0028 1110 0029;;;;N;PARENTHESIZED HANGUL TIEUT;;;; 320C;PARENTHESIZED HANGUL PHIEUPH;So;0;L; 0028 1111 0029;;;;N;PARENTHESIZED HANGUL PIEUP;;;; 320D;PARENTHESIZED HANGUL HIEUH;So;0;L; 0028 1112 0029;;;;N;;;;; 320E;PARENTHESIZED HANGUL KIYEOK A;So;0;L; 0028 1100 1161 0029;;;;N;PARENTHESIZED HANGUL GA;;;; 320F;PARENTHESIZED HANGUL NIEUN A;So;0;L; 0028 1102 1161 0029;;;;N;PARENTHESIZED HANGUL NA;;;; 3210;PARENTHESIZED HANGUL TIKEUT A;So;0;L; 0028 1103 1161 0029;;;;N;PARENTHESIZED HANGUL DA;;;; 3211;PARENTHESIZED HANGUL RIEUL A;So;0;L; 0028 1105 1161 0029;;;;N;PARENTHESIZED HANGUL LA;;;; 3212;PARENTHESIZED HANGUL MIEUM A;So;0;L; 0028 1106 1161 0029;;;;N;PARENTHESIZED HANGUL MA;;;; 3213;PARENTHESIZED HANGUL PIEUP A;So;0;L; 0028 1107 1161 0029;;;;N;PARENTHESIZED HANGUL BA;;;; 3214;PARENTHESIZED HANGUL SIOS A;So;0;L; 0028 1109 1161 0029;;;;N;PARENTHESIZED HANGUL SA;;;; 3215;PARENTHESIZED HANGUL IEUNG A;So;0;L; 0028 110B 1161 0029;;;;N;PARENTHESIZED HANGUL A;;;; 3216;PARENTHESIZED HANGUL CIEUC A;So;0;L; 0028 110C 1161 0029;;;;N;PARENTHESIZED HANGUL JA;;;; 3217;PARENTHESIZED HANGUL CHIEUCH A;So;0;L; 0028 110E 1161 0029;;;;N;PARENTHESIZED HANGUL CA;;;; 3218;PARENTHESIZED HANGUL KHIEUKH A;So;0;L; 0028 110F 1161 0029;;;;N;PARENTHESIZED HANGUL KA;;;; 3219;PARENTHESIZED HANGUL THIEUTH A;So;0;L; 0028 1110 1161 0029;;;;N;PARENTHESIZED HANGUL TA;;;; 321A;PARENTHESIZED HANGUL PHIEUPH A;So;0;L; 0028 1111 1161 0029;;;;N;PARENTHESIZED HANGUL PA;;;; 321B;PARENTHESIZED HANGUL HIEUH A;So;0;L; 0028 1112 1161 0029;;;;N;PARENTHESIZED HANGUL HA;;;; 321C;PARENTHESIZED HANGUL CIEUC U;So;0;L; 0028 110C 116E 0029;;;;N;PARENTHESIZED HANGUL JU;;;; 3220;PARENTHESIZED IDEOGRAPH ONE;No;0;L; 0028 4E00 0029;;;1;N;;;;; 3221;PARENTHESIZED IDEOGRAPH TWO;No;0;L; 0028 4E8C 0029;;;2;N;;;;; 3222;PARENTHESIZED IDEOGRAPH THREE;No;0;L; 0028 4E09 0029;;;3;N;;;;; 3223;PARENTHESIZED IDEOGRAPH FOUR;No;0;L; 0028 56DB 0029;;;4;N;;;;; 3224;PARENTHESIZED IDEOGRAPH FIVE;No;0;L; 0028 4E94 0029;;;5;N;;;;; 3225;PARENTHESIZED IDEOGRAPH SIX;No;0;L; 0028 516D 0029;;;6;N;;;;; 3226;PARENTHESIZED IDEOGRAPH SEVEN;No;0;L; 0028 4E03 0029;;;7;N;;;;; 3227;PARENTHESIZED IDEOGRAPH EIGHT;No;0;L; 0028 516B 0029;;;8;N;;;;; 3228;PARENTHESIZED IDEOGRAPH NINE;No;0;L; 0028 4E5D 0029;;;9;N;;;;; 3229;PARENTHESIZED IDEOGRAPH TEN;No;0;L; 0028 5341 0029;;;10;N;;;;; 322A;PARENTHESIZED IDEOGRAPH MOON;So;0;L; 0028 6708 0029;;;;N;;;;; 322B;PARENTHESIZED IDEOGRAPH FIRE;So;0;L; 0028 706B 0029;;;;N;;;;; 322C;PARENTHESIZED IDEOGRAPH WATER;So;0;L; 0028 6C34 0029;;;;N;;;;; 322D;PARENTHESIZED IDEOGRAPH WOOD;So;0;L; 0028 6728 0029;;;;N;;;;; 322E;PARENTHESIZED IDEOGRAPH METAL;So;0;L; 0028 91D1 0029;;;;N;;;;; 322F;PARENTHESIZED IDEOGRAPH EARTH;So;0;L; 0028 571F 0029;;;;N;;;;; 3230;PARENTHESIZED IDEOGRAPH SUN;So;0;L; 0028 65E5 0029;;;;N;;;;; 3231;PARENTHESIZED IDEOGRAPH STOCK;So;0;L; 0028 682A 0029;;;;N;;;;; 3232;PARENTHESIZED IDEOGRAPH HAVE;So;0;L; 0028 6709 0029;;;;N;;;;; 3233;PARENTHESIZED IDEOGRAPH SOCIETY;So;0;L; 0028 793E 0029;;;;N;;;;; 3234;PARENTHESIZED IDEOGRAPH NAME;So;0;L; 0028 540D 0029;;;;N;;;;; 3235;PARENTHESIZED IDEOGRAPH SPECIAL;So;0;L; 0028 7279 0029;;;;N;;;;; 3236;PARENTHESIZED IDEOGRAPH FINANCIAL;So;0;L; 0028 8CA1 0029;;;;N;;;;; 3237;PARENTHESIZED IDEOGRAPH CONGRATULATION;So;0;L; 0028 795D 0029;;;;N;;;;; 3238;PARENTHESIZED IDEOGRAPH LABOR;So;0;L; 0028 52B4 0029;;;;N;;;;; 3239;PARENTHESIZED IDEOGRAPH REPRESENT;So;0;L; 0028 4EE3 0029;;;;N;;;;; 323A;PARENTHESIZED IDEOGRAPH CALL;So;0;L; 0028 547C 0029;;;;N;;;;; 323B;PARENTHESIZED IDEOGRAPH STUDY;So;0;L; 0028 5B66 0029;;;;N;;;;; 323C;PARENTHESIZED IDEOGRAPH SUPERVISE;So;0;L; 0028 76E3 0029;;;;N;;;;; 323D;PARENTHESIZED IDEOGRAPH ENTERPRISE;So;0;L; 0028 4F01 0029;;;;N;;;;; 323E;PARENTHESIZED IDEOGRAPH RESOURCE;So;0;L; 0028 8CC7 0029;;;;N;;;;; 323F;PARENTHESIZED IDEOGRAPH ALLIANCE;So;0;L; 0028 5354 0029;;;;N;;;;; 3240;PARENTHESIZED IDEOGRAPH FESTIVAL;So;0;L; 0028 796D 0029;;;;N;;;;; 3241;PARENTHESIZED IDEOGRAPH REST;So;0;L; 0028 4F11 0029;;;;N;;;;; 3242;PARENTHESIZED IDEOGRAPH SELF;So;0;L; 0028 81EA 0029;;;;N;;;;; 3243;PARENTHESIZED IDEOGRAPH REACH;So;0;L; 0028 81F3 0029;;;;N;;;;; 3251;CIRCLED NUMBER TWENTY ONE;No;0;ON; 0032 0031;;;21;N;;;;; 3252;CIRCLED NUMBER TWENTY TWO;No;0;ON; 0032 0032;;;22;N;;;;; 3253;CIRCLED NUMBER TWENTY THREE;No;0;ON; 0032 0033;;;23;N;;;;; 3254;CIRCLED NUMBER TWENTY FOUR;No;0;ON; 0032 0034;;;24;N;;;;; 3255;CIRCLED NUMBER TWENTY FIVE;No;0;ON; 0032 0035;;;25;N;;;;; 3256;CIRCLED NUMBER TWENTY SIX;No;0;ON; 0032 0036;;;26;N;;;;; 3257;CIRCLED NUMBER TWENTY SEVEN;No;0;ON; 0032 0037;;;27;N;;;;; 3258;CIRCLED NUMBER TWENTY EIGHT;No;0;ON; 0032 0038;;;28;N;;;;; 3259;CIRCLED NUMBER TWENTY NINE;No;0;ON; 0032 0039;;;29;N;;;;; 325A;CIRCLED NUMBER THIRTY;No;0;ON; 0033 0030;;;30;N;;;;; 325B;CIRCLED NUMBER THIRTY ONE;No;0;ON; 0033 0031;;;31;N;;;;; 325C;CIRCLED NUMBER THIRTY TWO;No;0;ON; 0033 0032;;;32;N;;;;; 325D;CIRCLED NUMBER THIRTY THREE;No;0;ON; 0033 0033;;;33;N;;;;; 325E;CIRCLED NUMBER THIRTY FOUR;No;0;ON; 0033 0034;;;34;N;;;;; 325F;CIRCLED NUMBER THIRTY FIVE;No;0;ON; 0033 0035;;;35;N;;;;; 3260;CIRCLED HANGUL KIYEOK;So;0;L; 1100;;;;N;CIRCLED HANGUL GIYEOG;;;; 3261;CIRCLED HANGUL NIEUN;So;0;L; 1102;;;;N;;;;; 3262;CIRCLED HANGUL TIKEUT;So;0;L; 1103;;;;N;CIRCLED HANGUL DIGEUD;;;; 3263;CIRCLED HANGUL RIEUL;So;0;L; 1105;;;;N;CIRCLED HANGUL LIEUL;;;; 3264;CIRCLED HANGUL MIEUM;So;0;L; 1106;;;;N;;;;; 3265;CIRCLED HANGUL PIEUP;So;0;L; 1107;;;;N;CIRCLED HANGUL BIEUB;;;; 3266;CIRCLED HANGUL SIOS;So;0;L; 1109;;;;N;;;;; 3267;CIRCLED HANGUL IEUNG;So;0;L; 110B;;;;N;;;;; 3268;CIRCLED HANGUL CIEUC;So;0;L; 110C;;;;N;CIRCLED HANGUL JIEUJ;;;; 3269;CIRCLED HANGUL CHIEUCH;So;0;L; 110E;;;;N;CIRCLED HANGUL CIEUC;;;; 326A;CIRCLED HANGUL KHIEUKH;So;0;L; 110F;;;;N;CIRCLED HANGUL KIYEOK;;;; 326B;CIRCLED HANGUL THIEUTH;So;0;L; 1110;;;;N;CIRCLED HANGUL TIEUT;;;; 326C;CIRCLED HANGUL PHIEUPH;So;0;L; 1111;;;;N;CIRCLED HANGUL PIEUP;;;; 326D;CIRCLED HANGUL HIEUH;So;0;L; 1112;;;;N;;;;; 326E;CIRCLED HANGUL KIYEOK A;So;0;L; 1100 1161;;;;N;CIRCLED HANGUL GA;;;; 326F;CIRCLED HANGUL NIEUN A;So;0;L; 1102 1161;;;;N;CIRCLED HANGUL NA;;;; 3270;CIRCLED HANGUL TIKEUT A;So;0;L; 1103 1161;;;;N;CIRCLED HANGUL DA;;;; 3271;CIRCLED HANGUL RIEUL A;So;0;L; 1105 1161;;;;N;CIRCLED HANGUL LA;;;; 3272;CIRCLED HANGUL MIEUM A;So;0;L; 1106 1161;;;;N;CIRCLED HANGUL MA;;;; 3273;CIRCLED HANGUL PIEUP A;So;0;L; 1107 1161;;;;N;CIRCLED HANGUL BA;;;; 3274;CIRCLED HANGUL SIOS A;So;0;L; 1109 1161;;;;N;CIRCLED HANGUL SA;;;; 3275;CIRCLED HANGUL IEUNG A;So;0;L; 110B 1161;;;;N;CIRCLED HANGUL A;;;; 3276;CIRCLED HANGUL CIEUC A;So;0;L; 110C 1161;;;;N;CIRCLED HANGUL JA;;;; 3277;CIRCLED HANGUL CHIEUCH A;So;0;L; 110E 1161;;;;N;CIRCLED HANGUL CA;;;; 3278;CIRCLED HANGUL KHIEUKH A;So;0;L; 110F 1161;;;;N;CIRCLED HANGUL KA;;;; 3279;CIRCLED HANGUL THIEUTH A;So;0;L; 1110 1161;;;;N;CIRCLED HANGUL TA;;;; 327A;CIRCLED HANGUL PHIEUPH A;So;0;L; 1111 1161;;;;N;CIRCLED HANGUL PA;;;; 327B;CIRCLED HANGUL HIEUH A;So;0;L; 1112 1161;;;;N;CIRCLED HANGUL HA;;;; 327F;KOREAN STANDARD SYMBOL;So;0;L;;;;;N;;;;; 3280;CIRCLED IDEOGRAPH ONE;No;0;L; 4E00;;;1;N;;;;; 3281;CIRCLED IDEOGRAPH TWO;No;0;L; 4E8C;;;2;N;;;;; 3282;CIRCLED IDEOGRAPH THREE;No;0;L; 4E09;;;3;N;;;;; 3283;CIRCLED IDEOGRAPH FOUR;No;0;L; 56DB;;;4;N;;;;; 3284;CIRCLED IDEOGRAPH FIVE;No;0;L; 4E94;;;5;N;;;;; 3285;CIRCLED IDEOGRAPH SIX;No;0;L; 516D;;;6;N;;;;; 3286;CIRCLED IDEOGRAPH SEVEN;No;0;L; 4E03;;;7;N;;;;; 3287;CIRCLED IDEOGRAPH EIGHT;No;0;L; 516B;;;8;N;;;;; 3288;CIRCLED IDEOGRAPH NINE;No;0;L; 4E5D;;;9;N;;;;; 3289;CIRCLED IDEOGRAPH TEN;No;0;L; 5341;;;10;N;;;;; 328A;CIRCLED IDEOGRAPH MOON;So;0;L; 6708;;;;N;;;;; 328B;CIRCLED IDEOGRAPH FIRE;So;0;L; 706B;;;;N;;;;; 328C;CIRCLED IDEOGRAPH WATER;So;0;L; 6C34;;;;N;;;;; 328D;CIRCLED IDEOGRAPH WOOD;So;0;L; 6728;;;;N;;;;; 328E;CIRCLED IDEOGRAPH METAL;So;0;L; 91D1;;;;N;;;;; 328F;CIRCLED IDEOGRAPH EARTH;So;0;L; 571F;;;;N;;;;; 3290;CIRCLED IDEOGRAPH SUN;So;0;L; 65E5;;;;N;;;;; 3291;CIRCLED IDEOGRAPH STOCK;So;0;L; 682A;;;;N;;;;; 3292;CIRCLED IDEOGRAPH HAVE;So;0;L; 6709;;;;N;;;;; 3293;CIRCLED IDEOGRAPH SOCIETY;So;0;L; 793E;;;;N;;;;; 3294;CIRCLED IDEOGRAPH NAME;So;0;L; 540D;;;;N;;;;; 3295;CIRCLED IDEOGRAPH SPECIAL;So;0;L; 7279;;;;N;;;;; 3296;CIRCLED IDEOGRAPH FINANCIAL;So;0;L; 8CA1;;;;N;;;;; 3297;CIRCLED IDEOGRAPH CONGRATULATION;So;0;L; 795D;;;;N;;;;; 3298;CIRCLED IDEOGRAPH LABOR;So;0;L; 52B4;;;;N;;;;; 3299;CIRCLED IDEOGRAPH SECRET;So;0;L; 79D8;;;;N;;;;; 329A;CIRCLED IDEOGRAPH MALE;So;0;L; 7537;;;;N;;;;; 329B;CIRCLED IDEOGRAPH FEMALE;So;0;L; 5973;;;;N;;;;; 329C;CIRCLED IDEOGRAPH SUITABLE;So;0;L; 9069;;;;N;;;;; 329D;CIRCLED IDEOGRAPH EXCELLENT;So;0;L; 512A;;;;N;;;;; 329E;CIRCLED IDEOGRAPH PRINT;So;0;L; 5370;;;;N;;;;; 329F;CIRCLED IDEOGRAPH ATTENTION;So;0;L; 6CE8;;;;N;;;;; 32A0;CIRCLED IDEOGRAPH ITEM;So;0;L; 9805;;;;N;;;;; 32A1;CIRCLED IDEOGRAPH REST;So;0;L; 4F11;;;;N;;;;; 32A2;CIRCLED IDEOGRAPH COPY;So;0;L; 5199;;;;N;;;;; 32A3;CIRCLED IDEOGRAPH CORRECT;So;0;L; 6B63;;;;N;;;;; 32A4;CIRCLED IDEOGRAPH HIGH;So;0;L; 4E0A;;;;N;;;;; 32A5;CIRCLED IDEOGRAPH CENTRE;So;0;L; 4E2D;;;;N;CIRCLED IDEOGRAPH CENTER;;;; 32A6;CIRCLED IDEOGRAPH LOW;So;0;L; 4E0B;;;;N;;;;; 32A7;CIRCLED IDEOGRAPH LEFT;So;0;L; 5DE6;;;;N;;;;; 32A8;CIRCLED IDEOGRAPH RIGHT;So;0;L; 53F3;;;;N;;;;; 32A9;CIRCLED IDEOGRAPH MEDICINE;So;0;L; 533B;;;;N;;;;; 32AA;CIRCLED IDEOGRAPH RELIGION;So;0;L; 5B97;;;;N;;;;; 32AB;CIRCLED IDEOGRAPH STUDY;So;0;L; 5B66;;;;N;;;;; 32AC;CIRCLED IDEOGRAPH SUPERVISE;So;0;L; 76E3;;;;N;;;;; 32AD;CIRCLED IDEOGRAPH ENTERPRISE;So;0;L; 4F01;;;;N;;;;; 32AE;CIRCLED IDEOGRAPH RESOURCE;So;0;L; 8CC7;;;;N;;;;; 32AF;CIRCLED IDEOGRAPH ALLIANCE;So;0;L; 5354;;;;N;;;;; 32B0;CIRCLED IDEOGRAPH NIGHT;So;0;L; 591C;;;;N;;;;; 32B1;CIRCLED NUMBER THIRTY SIX;No;0;ON; 0033 0036;;;36;N;;;;; 32B2;CIRCLED NUMBER THIRTY SEVEN;No;0;ON; 0033 0037;;;37;N;;;;; 32B3;CIRCLED NUMBER THIRTY EIGHT;No;0;ON; 0033 0038;;;38;N;;;;; 32B4;CIRCLED NUMBER THIRTY NINE;No;0;ON; 0033 0039;;;39;N;;;;; 32B5;CIRCLED NUMBER FORTY;No;0;ON; 0034 0030;;;40;N;;;;; 32B6;CIRCLED NUMBER FORTY ONE;No;0;ON; 0034 0031;;;41;N;;;;; 32B7;CIRCLED NUMBER FORTY TWO;No;0;ON; 0034 0032;;;42;N;;;;; 32B8;CIRCLED NUMBER FORTY THREE;No;0;ON; 0034 0033;;;43;N;;;;; 32B9;CIRCLED NUMBER FORTY FOUR;No;0;ON; 0034 0034;;;44;N;;;;; 32BA;CIRCLED NUMBER FORTY FIVE;No;0;ON; 0034 0035;;;45;N;;;;; 32BB;CIRCLED NUMBER FORTY SIX;No;0;ON; 0034 0036;;;46;N;;;;; 32BC;CIRCLED NUMBER FORTY SEVEN;No;0;ON; 0034 0037;;;47;N;;;;; 32BD;CIRCLED NUMBER FORTY EIGHT;No;0;ON; 0034 0038;;;48;N;;;;; 32BE;CIRCLED NUMBER FORTY NINE;No;0;ON; 0034 0039;;;49;N;;;;; 32BF;CIRCLED NUMBER FIFTY;No;0;ON; 0035 0030;;;50;N;;;;; 32C0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY;So;0;L; 0031 6708;;;;N;;;;; 32C1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR FEBRUARY;So;0;L; 0032 6708;;;;N;;;;; 32C2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MARCH;So;0;L; 0033 6708;;;;N;;;;; 32C3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR APRIL;So;0;L; 0034 6708;;;;N;;;;; 32C4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR MAY;So;0;L; 0035 6708;;;;N;;;;; 32C5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JUNE;So;0;L; 0036 6708;;;;N;;;;; 32C6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR JULY;So;0;L; 0037 6708;;;;N;;;;; 32C7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR AUGUST;So;0;L; 0038 6708;;;;N;;;;; 32C8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR SEPTEMBER;So;0;L; 0039 6708;;;;N;;;;; 32C9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR OCTOBER;So;0;L; 0031 0030 6708;;;;N;;;;; 32CA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR NOVEMBER;So;0;L; 0031 0031 6708;;;;N;;;;; 32CB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER;So;0;L; 0031 0032 6708;;;;N;;;;; 32D0;CIRCLED KATAKANA A;So;0;L; 30A2;;;;N;;;;; 32D1;CIRCLED KATAKANA I;So;0;L; 30A4;;;;N;;;;; 32D2;CIRCLED KATAKANA U;So;0;L; 30A6;;;;N;;;;; 32D3;CIRCLED KATAKANA E;So;0;L; 30A8;;;;N;;;;; 32D4;CIRCLED KATAKANA O;So;0;L; 30AA;;;;N;;;;; 32D5;CIRCLED KATAKANA KA;So;0;L; 30AB;;;;N;;;;; 32D6;CIRCLED KATAKANA KI;So;0;L; 30AD;;;;N;;;;; 32D7;CIRCLED KATAKANA KU;So;0;L; 30AF;;;;N;;;;; 32D8;CIRCLED KATAKANA KE;So;0;L; 30B1;;;;N;;;;; 32D9;CIRCLED KATAKANA KO;So;0;L; 30B3;;;;N;;;;; 32DA;CIRCLED KATAKANA SA;So;0;L; 30B5;;;;N;;;;; 32DB;CIRCLED KATAKANA SI;So;0;L; 30B7;;;;N;;;;; 32DC;CIRCLED KATAKANA SU;So;0;L; 30B9;;;;N;;;;; 32DD;CIRCLED KATAKANA SE;So;0;L; 30BB;;;;N;;;;; 32DE;CIRCLED KATAKANA SO;So;0;L; 30BD;;;;N;;;;; 32DF;CIRCLED KATAKANA TA;So;0;L; 30BF;;;;N;;;;; 32E0;CIRCLED KATAKANA TI;So;0;L; 30C1;;;;N;;;;; 32E1;CIRCLED KATAKANA TU;So;0;L; 30C4;;;;N;;;;; 32E2;CIRCLED KATAKANA TE;So;0;L; 30C6;;;;N;;;;; 32E3;CIRCLED KATAKANA TO;So;0;L; 30C8;;;;N;;;;; 32E4;CIRCLED KATAKANA NA;So;0;L; 30CA;;;;N;;;;; 32E5;CIRCLED KATAKANA NI;So;0;L; 30CB;;;;N;;;;; 32E6;CIRCLED KATAKANA NU;So;0;L; 30CC;;;;N;;;;; 32E7;CIRCLED KATAKANA NE;So;0;L; 30CD;;;;N;;;;; 32E8;CIRCLED KATAKANA NO;So;0;L; 30CE;;;;N;;;;; 32E9;CIRCLED KATAKANA HA;So;0;L; 30CF;;;;N;;;;; 32EA;CIRCLED KATAKANA HI;So;0;L; 30D2;;;;N;;;;; 32EB;CIRCLED KATAKANA HU;So;0;L; 30D5;;;;N;;;;; 32EC;CIRCLED KATAKANA HE;So;0;L; 30D8;;;;N;;;;; 32ED;CIRCLED KATAKANA HO;So;0;L; 30DB;;;;N;;;;; 32EE;CIRCLED KATAKANA MA;So;0;L; 30DE;;;;N;;;;; 32EF;CIRCLED KATAKANA MI;So;0;L; 30DF;;;;N;;;;; 32F0;CIRCLED KATAKANA MU;So;0;L; 30E0;;;;N;;;;; 32F1;CIRCLED KATAKANA ME;So;0;L; 30E1;;;;N;;;;; 32F2;CIRCLED KATAKANA MO;So;0;L; 30E2;;;;N;;;;; 32F3;CIRCLED KATAKANA YA;So;0;L; 30E4;;;;N;;;;; 32F4;CIRCLED KATAKANA YU;So;0;L; 30E6;;;;N;;;;; 32F5;CIRCLED KATAKANA YO;So;0;L; 30E8;;;;N;;;;; 32F6;CIRCLED KATAKANA RA;So;0;L; 30E9;;;;N;;;;; 32F7;CIRCLED KATAKANA RI;So;0;L; 30EA;;;;N;;;;; 32F8;CIRCLED KATAKANA RU;So;0;L; 30EB;;;;N;;;;; 32F9;CIRCLED KATAKANA RE;So;0;L; 30EC;;;;N;;;;; 32FA;CIRCLED KATAKANA RO;So;0;L; 30ED;;;;N;;;;; 32FB;CIRCLED KATAKANA WA;So;0;L; 30EF;;;;N;;;;; 32FC;CIRCLED KATAKANA WI;So;0;L; 30F0;;;;N;;;;; 32FD;CIRCLED KATAKANA WE;So;0;L; 30F1;;;;N;;;;; 32FE;CIRCLED KATAKANA WO;So;0;L; 30F2;;;;N;;;;; 3300;SQUARE APAATO;So;0;L; 30A2 30D1 30FC 30C8;;;;N;SQUARED APAATO;;;; 3301;SQUARE ARUHUA;So;0;L; 30A2 30EB 30D5 30A1;;;;N;SQUARED ARUHUA;;;; 3302;SQUARE ANPEA;So;0;L; 30A2 30F3 30DA 30A2;;;;N;SQUARED ANPEA;;;; 3303;SQUARE AARU;So;0;L; 30A2 30FC 30EB;;;;N;SQUARED AARU;;;; 3304;SQUARE ININGU;So;0;L; 30A4 30CB 30F3 30B0;;;;N;SQUARED ININGU;;;; 3305;SQUARE INTI;So;0;L; 30A4 30F3 30C1;;;;N;SQUARED INTI;;;; 3306;SQUARE UON;So;0;L; 30A6 30A9 30F3;;;;N;SQUARED UON;;;; 3307;SQUARE ESUKUUDO;So;0;L; 30A8 30B9 30AF 30FC 30C9;;;;N;SQUARED ESUKUUDO;;;; 3308;SQUARE EEKAA;So;0;L; 30A8 30FC 30AB 30FC;;;;N;SQUARED EEKAA;;;; 3309;SQUARE ONSU;So;0;L; 30AA 30F3 30B9;;;;N;SQUARED ONSU;;;; 330A;SQUARE OOMU;So;0;L; 30AA 30FC 30E0;;;;N;SQUARED OOMU;;;; 330B;SQUARE KAIRI;So;0;L; 30AB 30A4 30EA;;;;N;SQUARED KAIRI;;;; 330C;SQUARE KARATTO;So;0;L; 30AB 30E9 30C3 30C8;;;;N;SQUARED KARATTO;;;; 330D;SQUARE KARORII;So;0;L; 30AB 30ED 30EA 30FC;;;;N;SQUARED KARORII;;;; 330E;SQUARE GARON;So;0;L; 30AC 30ED 30F3;;;;N;SQUARED GARON;;;; 330F;SQUARE GANMA;So;0;L; 30AC 30F3 30DE;;;;N;SQUARED GANMA;;;; 3310;SQUARE GIGA;So;0;L; 30AE 30AC;;;;N;SQUARED GIGA;;;; 3311;SQUARE GINII;So;0;L; 30AE 30CB 30FC;;;;N;SQUARED GINII;;;; 3312;SQUARE KYURII;So;0;L; 30AD 30E5 30EA 30FC;;;;N;SQUARED KYURII;;;; 3313;SQUARE GIRUDAA;So;0;L; 30AE 30EB 30C0 30FC;;;;N;SQUARED GIRUDAA;;;; 3314;SQUARE KIRO;So;0;L; 30AD 30ED;;;;N;SQUARED KIRO;;;; 3315;SQUARE KIROGURAMU;So;0;L; 30AD 30ED 30B0 30E9 30E0;;;;N;SQUARED KIROGURAMU;;;; 3316;SQUARE KIROMEETORU;So;0;L; 30AD 30ED 30E1 30FC 30C8 30EB;;;;N;SQUARED KIROMEETORU;;;; 3317;SQUARE KIROWATTO;So;0;L; 30AD 30ED 30EF 30C3 30C8;;;;N;SQUARED KIROWATTO;;;; 3318;SQUARE GURAMU;So;0;L; 30B0 30E9 30E0;;;;N;SQUARED GURAMU;;;; 3319;SQUARE GURAMUTON;So;0;L; 30B0 30E9 30E0 30C8 30F3;;;;N;SQUARED GURAMUTON;;;; 331A;SQUARE KURUZEIRO;So;0;L; 30AF 30EB 30BC 30A4 30ED;;;;N;SQUARED KURUZEIRO;;;; 331B;SQUARE KUROONE;So;0;L; 30AF 30ED 30FC 30CD;;;;N;SQUARED KUROONE;;;; 331C;SQUARE KEESU;So;0;L; 30B1 30FC 30B9;;;;N;SQUARED KEESU;;;; 331D;SQUARE KORUNA;So;0;L; 30B3 30EB 30CA;;;;N;SQUARED KORUNA;;;; 331E;SQUARE KOOPO;So;0;L; 30B3 30FC 30DD;;;;N;SQUARED KOOPO;;;; 331F;SQUARE SAIKURU;So;0;L; 30B5 30A4 30AF 30EB;;;;N;SQUARED SAIKURU;;;; 3320;SQUARE SANTIIMU;So;0;L; 30B5 30F3 30C1 30FC 30E0;;;;N;SQUARED SANTIIMU;;;; 3321;SQUARE SIRINGU;So;0;L; 30B7 30EA 30F3 30B0;;;;N;SQUARED SIRINGU;;;; 3322;SQUARE SENTI;So;0;L; 30BB 30F3 30C1;;;;N;SQUARED SENTI;;;; 3323;SQUARE SENTO;So;0;L; 30BB 30F3 30C8;;;;N;SQUARED SENTO;;;; 3324;SQUARE DAASU;So;0;L; 30C0 30FC 30B9;;;;N;SQUARED DAASU;;;; 3325;SQUARE DESI;So;0;L; 30C7 30B7;;;;N;SQUARED DESI;;;; 3326;SQUARE DORU;So;0;L; 30C9 30EB;;;;N;SQUARED DORU;;;; 3327;SQUARE TON;So;0;L; 30C8 30F3;;;;N;SQUARED TON;;;; 3328;SQUARE NANO;So;0;L; 30CA 30CE;;;;N;SQUARED NANO;;;; 3329;SQUARE NOTTO;So;0;L; 30CE 30C3 30C8;;;;N;SQUARED NOTTO;;;; 332A;SQUARE HAITU;So;0;L; 30CF 30A4 30C4;;;;N;SQUARED HAITU;;;; 332B;SQUARE PAASENTO;So;0;L; 30D1 30FC 30BB 30F3 30C8;;;;N;SQUARED PAASENTO;;;; 332C;SQUARE PAATU;So;0;L; 30D1 30FC 30C4;;;;N;SQUARED PAATU;;;; 332D;SQUARE BAARERU;So;0;L; 30D0 30FC 30EC 30EB;;;;N;SQUARED BAARERU;;;; 332E;SQUARE PIASUTORU;So;0;L; 30D4 30A2 30B9 30C8 30EB;;;;N;SQUARED PIASUTORU;;;; 332F;SQUARE PIKURU;So;0;L; 30D4 30AF 30EB;;;;N;SQUARED PIKURU;;;; 3330;SQUARE PIKO;So;0;L; 30D4 30B3;;;;N;SQUARED PIKO;;;; 3331;SQUARE BIRU;So;0;L; 30D3 30EB;;;;N;SQUARED BIRU;;;; 3332;SQUARE HUARADDO;So;0;L; 30D5 30A1 30E9 30C3 30C9;;;;N;SQUARED HUARADDO;;;; 3333;SQUARE HUIITO;So;0;L; 30D5 30A3 30FC 30C8;;;;N;SQUARED HUIITO;;;; 3334;SQUARE BUSSYERU;So;0;L; 30D6 30C3 30B7 30A7 30EB;;;;N;SQUARED BUSSYERU;;;; 3335;SQUARE HURAN;So;0;L; 30D5 30E9 30F3;;;;N;SQUARED HURAN;;;; 3336;SQUARE HEKUTAARU;So;0;L; 30D8 30AF 30BF 30FC 30EB;;;;N;SQUARED HEKUTAARU;;;; 3337;SQUARE PESO;So;0;L; 30DA 30BD;;;;N;SQUARED PESO;;;; 3338;SQUARE PENIHI;So;0;L; 30DA 30CB 30D2;;;;N;SQUARED PENIHI;;;; 3339;SQUARE HERUTU;So;0;L; 30D8 30EB 30C4;;;;N;SQUARED HERUTU;;;; 333A;SQUARE PENSU;So;0;L; 30DA 30F3 30B9;;;;N;SQUARED PENSU;;;; 333B;SQUARE PEEZI;So;0;L; 30DA 30FC 30B8;;;;N;SQUARED PEEZI;;;; 333C;SQUARE BEETA;So;0;L; 30D9 30FC 30BF;;;;N;SQUARED BEETA;;;; 333D;SQUARE POINTO;So;0;L; 30DD 30A4 30F3 30C8;;;;N;SQUARED POINTO;;;; 333E;SQUARE BORUTO;So;0;L; 30DC 30EB 30C8;;;;N;SQUARED BORUTO;;;; 333F;SQUARE HON;So;0;L; 30DB 30F3;;;;N;SQUARED HON;;;; 3340;SQUARE PONDO;So;0;L; 30DD 30F3 30C9;;;;N;SQUARED PONDO;;;; 3341;SQUARE HOORU;So;0;L; 30DB 30FC 30EB;;;;N;SQUARED HOORU;;;; 3342;SQUARE HOON;So;0;L; 30DB 30FC 30F3;;;;N;SQUARED HOON;;;; 3343;SQUARE MAIKURO;So;0;L; 30DE 30A4 30AF 30ED;;;;N;SQUARED MAIKURO;;;; 3344;SQUARE MAIRU;So;0;L; 30DE 30A4 30EB;;;;N;SQUARED MAIRU;;;; 3345;SQUARE MAHHA;So;0;L; 30DE 30C3 30CF;;;;N;SQUARED MAHHA;;;; 3346;SQUARE MARUKU;So;0;L; 30DE 30EB 30AF;;;;N;SQUARED MARUKU;;;; 3347;SQUARE MANSYON;So;0;L; 30DE 30F3 30B7 30E7 30F3;;;;N;SQUARED MANSYON;;;; 3348;SQUARE MIKURON;So;0;L; 30DF 30AF 30ED 30F3;;;;N;SQUARED MIKURON;;;; 3349;SQUARE MIRI;So;0;L; 30DF 30EA;;;;N;SQUARED MIRI;;;; 334A;SQUARE MIRIBAARU;So;0;L; 30DF 30EA 30D0 30FC 30EB;;;;N;SQUARED MIRIBAARU;;;; 334B;SQUARE MEGA;So;0;L; 30E1 30AC;;;;N;SQUARED MEGA;;;; 334C;SQUARE MEGATON;So;0;L; 30E1 30AC 30C8 30F3;;;;N;SQUARED MEGATON;;;; 334D;SQUARE MEETORU;So;0;L; 30E1 30FC 30C8 30EB;;;;N;SQUARED MEETORU;;;; 334E;SQUARE YAADO;So;0;L; 30E4 30FC 30C9;;;;N;SQUARED YAADO;;;; 334F;SQUARE YAARU;So;0;L; 30E4 30FC 30EB;;;;N;SQUARED YAARU;;;; 3350;SQUARE YUAN;So;0;L; 30E6 30A2 30F3;;;;N;SQUARED YUAN;;;; 3351;SQUARE RITTORU;So;0;L; 30EA 30C3 30C8 30EB;;;;N;SQUARED RITTORU;;;; 3352;SQUARE RIRA;So;0;L; 30EA 30E9;;;;N;SQUARED RIRA;;;; 3353;SQUARE RUPII;So;0;L; 30EB 30D4 30FC;;;;N;SQUARED RUPII;;;; 3354;SQUARE RUUBURU;So;0;L; 30EB 30FC 30D6 30EB;;;;N;SQUARED RUUBURU;;;; 3355;SQUARE REMU;So;0;L; 30EC 30E0;;;;N;SQUARED REMU;;;; 3356;SQUARE RENTOGEN;So;0;L; 30EC 30F3 30C8 30B2 30F3;;;;N;SQUARED RENTOGEN;;;; 3357;SQUARE WATTO;So;0;L; 30EF 30C3 30C8;;;;N;SQUARED WATTO;;;; 3358;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO;So;0;L; 0030 70B9;;;;N;;;;; 3359;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ONE;So;0;L; 0031 70B9;;;;N;;;;; 335A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWO;So;0;L; 0032 70B9;;;;N;;;;; 335B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THREE;So;0;L; 0033 70B9;;;;N;;;;; 335C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOUR;So;0;L; 0034 70B9;;;;N;;;;; 335D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIVE;So;0;L; 0035 70B9;;;;N;;;;; 335E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIX;So;0;L; 0036 70B9;;;;N;;;;; 335F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVEN;So;0;L; 0037 70B9;;;;N;;;;; 3360;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHT;So;0;L; 0038 70B9;;;;N;;;;; 3361;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINE;So;0;L; 0039 70B9;;;;N;;;;; 3362;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TEN;So;0;L; 0031 0030 70B9;;;;N;;;;; 3363;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ELEVEN;So;0;L; 0031 0031 70B9;;;;N;;;;; 3364;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWELVE;So;0;L; 0031 0032 70B9;;;;N;;;;; 3365;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR THIRTEEN;So;0;L; 0031 0033 70B9;;;;N;;;;; 3366;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FOURTEEN;So;0;L; 0031 0034 70B9;;;;N;;;;; 3367;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR FIFTEEN;So;0;L; 0031 0035 70B9;;;;N;;;;; 3368;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SIXTEEN;So;0;L; 0031 0036 70B9;;;;N;;;;; 3369;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR SEVENTEEN;So;0;L; 0031 0037 70B9;;;;N;;;;; 336A;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR EIGHTEEN;So;0;L; 0031 0038 70B9;;;;N;;;;; 336B;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR NINETEEN;So;0;L; 0031 0039 70B9;;;;N;;;;; 336C;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY;So;0;L; 0032 0030 70B9;;;;N;;;;; 336D;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-ONE;So;0;L; 0032 0031 70B9;;;;N;;;;; 336E;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-TWO;So;0;L; 0032 0032 70B9;;;;N;;;;; 336F;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-THREE;So;0;L; 0032 0033 70B9;;;;N;;;;; 3370;IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR;So;0;L; 0032 0034 70B9;;;;N;;;;; 3371;SQUARE HPA;So;0;L; 0068 0050 0061;;;;N;;;;; 3372;SQUARE DA;So;0;L; 0064 0061;;;;N;;;;; 3373;SQUARE AU;So;0;L; 0041 0055;;;;N;;;;; 3374;SQUARE BAR;So;0;L; 0062 0061 0072;;;;N;;;;; 3375;SQUARE OV;So;0;L; 006F 0056;;;;N;;;;; 3376;SQUARE PC;So;0;L; 0070 0063;;;;N;;;;; 337B;SQUARE ERA NAME HEISEI;So;0;L; 5E73 6210;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME HEISEI;;;; 337C;SQUARE ERA NAME SYOUWA;So;0;L; 662D 548C;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME SYOUWA;;;; 337D;SQUARE ERA NAME TAISYOU;So;0;L; 5927 6B63;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME TAISYOU;;;; 337E;SQUARE ERA NAME MEIZI;So;0;L; 660E 6CBB;;;;N;SQUARED TWO IDEOGRAPHS ERA NAME MEIZI;;;; 337F;SQUARE CORPORATION;So;0;L; 682A 5F0F 4F1A 793E;;;;N;SQUARED FOUR IDEOGRAPHS CORPORATION;;;; 3380;SQUARE PA AMPS;So;0;L; 0070 0041;;;;N;SQUARED PA AMPS;;;; 3381;SQUARE NA;So;0;L; 006E 0041;;;;N;SQUARED NA;;;; 3382;SQUARE MU A;So;0;L; 03BC 0041;;;;N;SQUARED MU A;;;; 3383;SQUARE MA;So;0;L; 006D 0041;;;;N;SQUARED MA;;;; 3384;SQUARE KA;So;0;L; 006B 0041;;;;N;SQUARED KA;;;; 3385;SQUARE KB;So;0;L; 004B 0042;;;;N;SQUARED KB;;;; 3386;SQUARE MB;So;0;L; 004D 0042;;;;N;SQUARED MB;;;; 3387;SQUARE GB;So;0;L; 0047 0042;;;;N;SQUARED GB;;;; 3388;SQUARE CAL;So;0;L; 0063 0061 006C;;;;N;SQUARED CAL;;;; 3389;SQUARE KCAL;So;0;L; 006B 0063 0061 006C;;;;N;SQUARED KCAL;;;; 338A;SQUARE PF;So;0;L; 0070 0046;;;;N;SQUARED PF;;;; 338B;SQUARE NF;So;0;L; 006E 0046;;;;N;SQUARED NF;;;; 338C;SQUARE MU F;So;0;L; 03BC 0046;;;;N;SQUARED MU F;;;; 338D;SQUARE MU G;So;0;L; 03BC 0067;;;;N;SQUARED MU G;;;; 338E;SQUARE MG;So;0;L; 006D 0067;;;;N;SQUARED MG;;;; 338F;SQUARE KG;So;0;L; 006B 0067;;;;N;SQUARED KG;;;; 3390;SQUARE HZ;So;0;L; 0048 007A;;;;N;SQUARED HZ;;;; 3391;SQUARE KHZ;So;0;L; 006B 0048 007A;;;;N;SQUARED KHZ;;;; 3392;SQUARE MHZ;So;0;L; 004D 0048 007A;;;;N;SQUARED MHZ;;;; 3393;SQUARE GHZ;So;0;L; 0047 0048 007A;;;;N;SQUARED GHZ;;;; 3394;SQUARE THZ;So;0;L; 0054 0048 007A;;;;N;SQUARED THZ;;;; 3395;SQUARE MU L;So;0;L; 03BC 2113;;;;N;SQUARED MU L;;;; 3396;SQUARE ML;So;0;L; 006D 2113;;;;N;SQUARED ML;;;; 3397;SQUARE DL;So;0;L; 0064 2113;;;;N;SQUARED DL;;;; 3398;SQUARE KL;So;0;L; 006B 2113;;;;N;SQUARED KL;;;; 3399;SQUARE FM;So;0;L; 0066 006D;;;;N;SQUARED FM;;;; 339A;SQUARE NM;So;0;L; 006E 006D;;;;N;SQUARED NM;;;; 339B;SQUARE MU M;So;0;L; 03BC 006D;;;;N;SQUARED MU M;;;; 339C;SQUARE MM;So;0;L; 006D 006D;;;;N;SQUARED MM;;;; 339D;SQUARE CM;So;0;L; 0063 006D;;;;N;SQUARED CM;;;; 339E;SQUARE KM;So;0;L; 006B 006D;;;;N;SQUARED KM;;;; 339F;SQUARE MM SQUARED;So;0;L; 006D 006D 00B2;;;;N;SQUARED MM SQUARED;;;; 33A0;SQUARE CM SQUARED;So;0;L; 0063 006D 00B2;;;;N;SQUARED CM SQUARED;;;; 33A1;SQUARE M SQUARED;So;0;L; 006D 00B2;;;;N;SQUARED M SQUARED;;;; 33A2;SQUARE KM SQUARED;So;0;L; 006B 006D 00B2;;;;N;SQUARED KM SQUARED;;;; 33A3;SQUARE MM CUBED;So;0;L; 006D 006D 00B3;;;;N;SQUARED MM CUBED;;;; 33A4;SQUARE CM CUBED;So;0;L; 0063 006D 00B3;;;;N;SQUARED CM CUBED;;;; 33A5;SQUARE M CUBED;So;0;L; 006D 00B3;;;;N;SQUARED M CUBED;;;; 33A6;SQUARE KM CUBED;So;0;L; 006B 006D 00B3;;;;N;SQUARED KM CUBED;;;; 33A7;SQUARE M OVER S;So;0;L; 006D 2215 0073;;;;N;SQUARED M OVER S;;;; 33A8;SQUARE M OVER S SQUARED;So;0;L; 006D 2215 0073 00B2;;;;N;SQUARED M OVER S SQUARED;;;; 33A9;SQUARE PA;So;0;L; 0050 0061;;;;N;SQUARED PA;;;; 33AA;SQUARE KPA;So;0;L; 006B 0050 0061;;;;N;SQUARED KPA;;;; 33AB;SQUARE MPA;So;0;L; 004D 0050 0061;;;;N;SQUARED MPA;;;; 33AC;SQUARE GPA;So;0;L; 0047 0050 0061;;;;N;SQUARED GPA;;;; 33AD;SQUARE RAD;So;0;L; 0072 0061 0064;;;;N;SQUARED RAD;;;; 33AE;SQUARE RAD OVER S;So;0;L; 0072 0061 0064 2215 0073;;;;N;SQUARED RAD OVER S;;;; 33AF;SQUARE RAD OVER S SQUARED;So;0;L; 0072 0061 0064 2215 0073 00B2;;;;N;SQUARED RAD OVER S SQUARED;;;; 33B0;SQUARE PS;So;0;L; 0070 0073;;;;N;SQUARED PS;;;; 33B1;SQUARE NS;So;0;L; 006E 0073;;;;N;SQUARED NS;;;; 33B2;SQUARE MU S;So;0;L; 03BC 0073;;;;N;SQUARED MU S;;;; 33B3;SQUARE MS;So;0;L; 006D 0073;;;;N;SQUARED MS;;;; 33B4;SQUARE PV;So;0;L; 0070 0056;;;;N;SQUARED PV;;;; 33B5;SQUARE NV;So;0;L; 006E 0056;;;;N;SQUARED NV;;;; 33B6;SQUARE MU V;So;0;L; 03BC 0056;;;;N;SQUARED MU V;;;; 33B7;SQUARE MV;So;0;L; 006D 0056;;;;N;SQUARED MV;;;; 33B8;SQUARE KV;So;0;L; 006B 0056;;;;N;SQUARED KV;;;; 33B9;SQUARE MV MEGA;So;0;L; 004D 0056;;;;N;SQUARED MV MEGA;;;; 33BA;SQUARE PW;So;0;L; 0070 0057;;;;N;SQUARED PW;;;; 33BB;SQUARE NW;So;0;L; 006E 0057;;;;N;SQUARED NW;;;; 33BC;SQUARE MU W;So;0;L; 03BC 0057;;;;N;SQUARED MU W;;;; 33BD;SQUARE MW;So;0;L; 006D 0057;;;;N;SQUARED MW;;;; 33BE;SQUARE KW;So;0;L; 006B 0057;;;;N;SQUARED KW;;;; 33BF;SQUARE MW MEGA;So;0;L; 004D 0057;;;;N;SQUARED MW MEGA;;;; 33C0;SQUARE K OHM;So;0;L; 006B 03A9;;;;N;SQUARED K OHM;;;; 33C1;SQUARE M OHM;So;0;L; 004D 03A9;;;;N;SQUARED M OHM;;;; 33C2;SQUARE AM;So;0;L; 0061 002E 006D 002E;;;;N;SQUARED AM;;;; 33C3;SQUARE BQ;So;0;L; 0042 0071;;;;N;SQUARED BQ;;;; 33C4;SQUARE CC;So;0;L; 0063 0063;;;;N;SQUARED CC;;;; 33C5;SQUARE CD;So;0;L; 0063 0064;;;;N;SQUARED CD;;;; 33C6;SQUARE C OVER KG;So;0;L; 0043 2215 006B 0067;;;;N;SQUARED C OVER KG;;;; 33C7;SQUARE CO;So;0;L; 0043 006F 002E;;;;N;SQUARED CO;;;; 33C8;SQUARE DB;So;0;L; 0064 0042;;;;N;SQUARED DB;;;; 33C9;SQUARE GY;So;0;L; 0047 0079;;;;N;SQUARED GY;;;; 33CA;SQUARE HA;So;0;L; 0068 0061;;;;N;SQUARED HA;;;; 33CB;SQUARE HP;So;0;L; 0048 0050;;;;N;SQUARED HP;;;; 33CC;SQUARE IN;So;0;L; 0069 006E;;;;N;SQUARED IN;;;; 33CD;SQUARE KK;So;0;L; 004B 004B;;;;N;SQUARED KK;;;; 33CE;SQUARE KM CAPITAL;So;0;L; 004B 004D;;;;N;SQUARED KM CAPITAL;;;; 33CF;SQUARE KT;So;0;L; 006B 0074;;;;N;SQUARED KT;;;; 33D0;SQUARE LM;So;0;L; 006C 006D;;;;N;SQUARED LM;;;; 33D1;SQUARE LN;So;0;L; 006C 006E;;;;N;SQUARED LN;;;; 33D2;SQUARE LOG;So;0;L; 006C 006F 0067;;;;N;SQUARED LOG;;;; 33D3;SQUARE LX;So;0;L; 006C 0078;;;;N;SQUARED LX;;;; 33D4;SQUARE MB SMALL;So;0;L; 006D 0062;;;;N;SQUARED MB SMALL;;;; 33D5;SQUARE MIL;So;0;L; 006D 0069 006C;;;;N;SQUARED MIL;;;; 33D6;SQUARE MOL;So;0;L; 006D 006F 006C;;;;N;SQUARED MOL;;;; 33D7;SQUARE PH;So;0;L; 0050 0048;;;;N;SQUARED PH;;;; 33D8;SQUARE PM;So;0;L; 0070 002E 006D 002E;;;;N;SQUARED PM;;;; 33D9;SQUARE PPM;So;0;L; 0050 0050 004D;;;;N;SQUARED PPM;;;; 33DA;SQUARE PR;So;0;L; 0050 0052;;;;N;SQUARED PR;;;; 33DB;SQUARE SR;So;0;L; 0073 0072;;;;N;SQUARED SR;;;; 33DC;SQUARE SV;So;0;L; 0053 0076;;;;N;SQUARED SV;;;; 33DD;SQUARE WB;So;0;L; 0057 0062;;;;N;SQUARED WB;;;; 33E0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE;So;0;L; 0031 65E5;;;;N;;;;; 33E1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWO;So;0;L; 0032 65E5;;;;N;;;;; 33E2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THREE;So;0;L; 0033 65E5;;;;N;;;;; 33E3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOUR;So;0;L; 0034 65E5;;;;N;;;;; 33E4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIVE;So;0;L; 0035 65E5;;;;N;;;;; 33E5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIX;So;0;L; 0036 65E5;;;;N;;;;; 33E6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVEN;So;0;L; 0037 65E5;;;;N;;;;; 33E7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHT;So;0;L; 0038 65E5;;;;N;;;;; 33E8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINE;So;0;L; 0039 65E5;;;;N;;;;; 33E9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TEN;So;0;L; 0031 0030 65E5;;;;N;;;;; 33EA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ELEVEN;So;0;L; 0031 0031 65E5;;;;N;;;;; 33EB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWELVE;So;0;L; 0031 0032 65E5;;;;N;;;;; 33EC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTEEN;So;0;L; 0031 0033 65E5;;;;N;;;;; 33ED;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FOURTEEN;So;0;L; 0031 0034 65E5;;;;N;;;;; 33EE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY FIFTEEN;So;0;L; 0031 0035 65E5;;;;N;;;;; 33EF;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SIXTEEN;So;0;L; 0031 0036 65E5;;;;N;;;;; 33F0;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY SEVENTEEN;So;0;L; 0031 0037 65E5;;;;N;;;;; 33F1;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY EIGHTEEN;So;0;L; 0031 0038 65E5;;;;N;;;;; 33F2;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY NINETEEN;So;0;L; 0031 0039 65E5;;;;N;;;;; 33F3;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY;So;0;L; 0032 0030 65E5;;;;N;;;;; 33F4;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-ONE;So;0;L; 0032 0031 65E5;;;;N;;;;; 33F5;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-TWO;So;0;L; 0032 0032 65E5;;;;N;;;;; 33F6;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-THREE;So;0;L; 0032 0033 65E5;;;;N;;;;; 33F7;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FOUR;So;0;L; 0032 0034 65E5;;;;N;;;;; 33F8;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-FIVE;So;0;L; 0032 0035 65E5;;;;N;;;;; 33F9;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SIX;So;0;L; 0032 0036 65E5;;;;N;;;;; 33FA;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-SEVEN;So;0;L; 0032 0037 65E5;;;;N;;;;; 33FB;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-EIGHT;So;0;L; 0032 0038 65E5;;;;N;;;;; 33FC;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY TWENTY-NINE;So;0;L; 0032 0039 65E5;;;;N;;;;; 33FD;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY;So;0;L; 0033 0030 65E5;;;;N;;;;; 33FE;IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE;So;0;L; 0033 0031 65E5;;;;N;;;;; 3400;;Lo;0;L;;;;;N;;;;; 4DB5;;Lo;0;L;;;;;N;;;;; 4E00;;Lo;0;L;;;;;N;;;;; 9FA5;;Lo;0;L;;;;;N;;;;; A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;; A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;; A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;; A003;YI SYLLABLE IP;Lo;0;L;;;;;N;;;;; A004;YI SYLLABLE IET;Lo;0;L;;;;;N;;;;; A005;YI SYLLABLE IEX;Lo;0;L;;;;;N;;;;; A006;YI SYLLABLE IE;Lo;0;L;;;;;N;;;;; A007;YI SYLLABLE IEP;Lo;0;L;;;;;N;;;;; A008;YI SYLLABLE AT;Lo;0;L;;;;;N;;;;; A009;YI SYLLABLE AX;Lo;0;L;;;;;N;;;;; A00A;YI SYLLABLE A;Lo;0;L;;;;;N;;;;; A00B;YI SYLLABLE AP;Lo;0;L;;;;;N;;;;; A00C;YI SYLLABLE UOX;Lo;0;L;;;;;N;;;;; A00D;YI SYLLABLE UO;Lo;0;L;;;;;N;;;;; A00E;YI SYLLABLE UOP;Lo;0;L;;;;;N;;;;; A00F;YI SYLLABLE OT;Lo;0;L;;;;;N;;;;; A010;YI SYLLABLE OX;Lo;0;L;;;;;N;;;;; A011;YI SYLLABLE O;Lo;0;L;;;;;N;;;;; A012;YI SYLLABLE OP;Lo;0;L;;;;;N;;;;; A013;YI SYLLABLE EX;Lo;0;L;;;;;N;;;;; A014;YI SYLLABLE E;Lo;0;L;;;;;N;;;;; A015;YI SYLLABLE WU;Lo;0;L;;;;;N;;;;; A016;YI SYLLABLE BIT;Lo;0;L;;;;;N;;;;; A017;YI SYLLABLE BIX;Lo;0;L;;;;;N;;;;; A018;YI SYLLABLE BI;Lo;0;L;;;;;N;;;;; A019;YI SYLLABLE BIP;Lo;0;L;;;;;N;;;;; A01A;YI SYLLABLE BIET;Lo;0;L;;;;;N;;;;; A01B;YI SYLLABLE BIEX;Lo;0;L;;;;;N;;;;; A01C;YI SYLLABLE BIE;Lo;0;L;;;;;N;;;;; A01D;YI SYLLABLE BIEP;Lo;0;L;;;;;N;;;;; A01E;YI SYLLABLE BAT;Lo;0;L;;;;;N;;;;; A01F;YI SYLLABLE BAX;Lo;0;L;;;;;N;;;;; A020;YI SYLLABLE BA;Lo;0;L;;;;;N;;;;; A021;YI SYLLABLE BAP;Lo;0;L;;;;;N;;;;; A022;YI SYLLABLE BUOX;Lo;0;L;;;;;N;;;;; A023;YI SYLLABLE BUO;Lo;0;L;;;;;N;;;;; A024;YI SYLLABLE BUOP;Lo;0;L;;;;;N;;;;; A025;YI SYLLABLE BOT;Lo;0;L;;;;;N;;;;; A026;YI SYLLABLE BOX;Lo;0;L;;;;;N;;;;; A027;YI SYLLABLE BO;Lo;0;L;;;;;N;;;;; A028;YI SYLLABLE BOP;Lo;0;L;;;;;N;;;;; A029;YI SYLLABLE BEX;Lo;0;L;;;;;N;;;;; A02A;YI SYLLABLE BE;Lo;0;L;;;;;N;;;;; A02B;YI SYLLABLE BEP;Lo;0;L;;;;;N;;;;; A02C;YI SYLLABLE BUT;Lo;0;L;;;;;N;;;;; A02D;YI SYLLABLE BUX;Lo;0;L;;;;;N;;;;; A02E;YI SYLLABLE BU;Lo;0;L;;;;;N;;;;; A02F;YI SYLLABLE BUP;Lo;0;L;;;;;N;;;;; A030;YI SYLLABLE BURX;Lo;0;L;;;;;N;;;;; A031;YI SYLLABLE BUR;Lo;0;L;;;;;N;;;;; A032;YI SYLLABLE BYT;Lo;0;L;;;;;N;;;;; A033;YI SYLLABLE BYX;Lo;0;L;;;;;N;;;;; A034;YI SYLLABLE BY;Lo;0;L;;;;;N;;;;; A035;YI SYLLABLE BYP;Lo;0;L;;;;;N;;;;; A036;YI SYLLABLE BYRX;Lo;0;L;;;;;N;;;;; A037;YI SYLLABLE BYR;Lo;0;L;;;;;N;;;;; A038;YI SYLLABLE PIT;Lo;0;L;;;;;N;;;;; A039;YI SYLLABLE PIX;Lo;0;L;;;;;N;;;;; A03A;YI SYLLABLE PI;Lo;0;L;;;;;N;;;;; A03B;YI SYLLABLE PIP;Lo;0;L;;;;;N;;;;; A03C;YI SYLLABLE PIEX;Lo;0;L;;;;;N;;;;; A03D;YI SYLLABLE PIE;Lo;0;L;;;;;N;;;;; A03E;YI SYLLABLE PIEP;Lo;0;L;;;;;N;;;;; A03F;YI SYLLABLE PAT;Lo;0;L;;;;;N;;;;; A040;YI SYLLABLE PAX;Lo;0;L;;;;;N;;;;; A041;YI SYLLABLE PA;Lo;0;L;;;;;N;;;;; A042;YI SYLLABLE PAP;Lo;0;L;;;;;N;;;;; A043;YI SYLLABLE PUOX;Lo;0;L;;;;;N;;;;; A044;YI SYLLABLE PUO;Lo;0;L;;;;;N;;;;; A045;YI SYLLABLE PUOP;Lo;0;L;;;;;N;;;;; A046;YI SYLLABLE POT;Lo;0;L;;;;;N;;;;; A047;YI SYLLABLE POX;Lo;0;L;;;;;N;;;;; A048;YI SYLLABLE PO;Lo;0;L;;;;;N;;;;; A049;YI SYLLABLE POP;Lo;0;L;;;;;N;;;;; A04A;YI SYLLABLE PUT;Lo;0;L;;;;;N;;;;; A04B;YI SYLLABLE PUX;Lo;0;L;;;;;N;;;;; A04C;YI SYLLABLE PU;Lo;0;L;;;;;N;;;;; A04D;YI SYLLABLE PUP;Lo;0;L;;;;;N;;;;; A04E;YI SYLLABLE PURX;Lo;0;L;;;;;N;;;;; A04F;YI SYLLABLE PUR;Lo;0;L;;;;;N;;;;; A050;YI SYLLABLE PYT;Lo;0;L;;;;;N;;;;; A051;YI SYLLABLE PYX;Lo;0;L;;;;;N;;;;; A052;YI SYLLABLE PY;Lo;0;L;;;;;N;;;;; A053;YI SYLLABLE PYP;Lo;0;L;;;;;N;;;;; A054;YI SYLLABLE PYRX;Lo;0;L;;;;;N;;;;; A055;YI SYLLABLE PYR;Lo;0;L;;;;;N;;;;; A056;YI SYLLABLE BBIT;Lo;0;L;;;;;N;;;;; A057;YI SYLLABLE BBIX;Lo;0;L;;;;;N;;;;; A058;YI SYLLABLE BBI;Lo;0;L;;;;;N;;;;; A059;YI SYLLABLE BBIP;Lo;0;L;;;;;N;;;;; A05A;YI SYLLABLE BBIET;Lo;0;L;;;;;N;;;;; A05B;YI SYLLABLE BBIEX;Lo;0;L;;;;;N;;;;; A05C;YI SYLLABLE BBIE;Lo;0;L;;;;;N;;;;; A05D;YI SYLLABLE BBIEP;Lo;0;L;;;;;N;;;;; A05E;YI SYLLABLE BBAT;Lo;0;L;;;;;N;;;;; A05F;YI SYLLABLE BBAX;Lo;0;L;;;;;N;;;;; A060;YI SYLLABLE BBA;Lo;0;L;;;;;N;;;;; A061;YI SYLLABLE BBAP;Lo;0;L;;;;;N;;;;; A062;YI SYLLABLE BBUOX;Lo;0;L;;;;;N;;;;; A063;YI SYLLABLE BBUO;Lo;0;L;;;;;N;;;;; A064;YI SYLLABLE BBUOP;Lo;0;L;;;;;N;;;;; A065;YI SYLLABLE BBOT;Lo;0;L;;;;;N;;;;; A066;YI SYLLABLE BBOX;Lo;0;L;;;;;N;;;;; A067;YI SYLLABLE BBO;Lo;0;L;;;;;N;;;;; A068;YI SYLLABLE BBOP;Lo;0;L;;;;;N;;;;; A069;YI SYLLABLE BBEX;Lo;0;L;;;;;N;;;;; A06A;YI SYLLABLE BBE;Lo;0;L;;;;;N;;;;; A06B;YI SYLLABLE BBEP;Lo;0;L;;;;;N;;;;; A06C;YI SYLLABLE BBUT;Lo;0;L;;;;;N;;;;; A06D;YI SYLLABLE BBUX;Lo;0;L;;;;;N;;;;; A06E;YI SYLLABLE BBU;Lo;0;L;;;;;N;;;;; A06F;YI SYLLABLE BBUP;Lo;0;L;;;;;N;;;;; A070;YI SYLLABLE BBURX;Lo;0;L;;;;;N;;;;; A071;YI SYLLABLE BBUR;Lo;0;L;;;;;N;;;;; A072;YI SYLLABLE BBYT;Lo;0;L;;;;;N;;;;; A073;YI SYLLABLE BBYX;Lo;0;L;;;;;N;;;;; A074;YI SYLLABLE BBY;Lo;0;L;;;;;N;;;;; A075;YI SYLLABLE BBYP;Lo;0;L;;;;;N;;;;; A076;YI SYLLABLE NBIT;Lo;0;L;;;;;N;;;;; A077;YI SYLLABLE NBIX;Lo;0;L;;;;;N;;;;; A078;YI SYLLABLE NBI;Lo;0;L;;;;;N;;;;; A079;YI SYLLABLE NBIP;Lo;0;L;;;;;N;;;;; A07A;YI SYLLABLE NBIEX;Lo;0;L;;;;;N;;;;; A07B;YI SYLLABLE NBIE;Lo;0;L;;;;;N;;;;; A07C;YI SYLLABLE NBIEP;Lo;0;L;;;;;N;;;;; A07D;YI SYLLABLE NBAT;Lo;0;L;;;;;N;;;;; A07E;YI SYLLABLE NBAX;Lo;0;L;;;;;N;;;;; A07F;YI SYLLABLE NBA;Lo;0;L;;;;;N;;;;; A080;YI SYLLABLE NBAP;Lo;0;L;;;;;N;;;;; A081;YI SYLLABLE NBOT;Lo;0;L;;;;;N;;;;; A082;YI SYLLABLE NBOX;Lo;0;L;;;;;N;;;;; A083;YI SYLLABLE NBO;Lo;0;L;;;;;N;;;;; A084;YI SYLLABLE NBOP;Lo;0;L;;;;;N;;;;; A085;YI SYLLABLE NBUT;Lo;0;L;;;;;N;;;;; A086;YI SYLLABLE NBUX;Lo;0;L;;;;;N;;;;; A087;YI SYLLABLE NBU;Lo;0;L;;;;;N;;;;; A088;YI SYLLABLE NBUP;Lo;0;L;;;;;N;;;;; A089;YI SYLLABLE NBURX;Lo;0;L;;;;;N;;;;; A08A;YI SYLLABLE NBUR;Lo;0;L;;;;;N;;;;; A08B;YI SYLLABLE NBYT;Lo;0;L;;;;;N;;;;; A08C;YI SYLLABLE NBYX;Lo;0;L;;;;;N;;;;; A08D;YI SYLLABLE NBY;Lo;0;L;;;;;N;;;;; A08E;YI SYLLABLE NBYP;Lo;0;L;;;;;N;;;;; A08F;YI SYLLABLE NBYRX;Lo;0;L;;;;;N;;;;; A090;YI SYLLABLE NBYR;Lo;0;L;;;;;N;;;;; A091;YI SYLLABLE HMIT;Lo;0;L;;;;;N;;;;; A092;YI SYLLABLE HMIX;Lo;0;L;;;;;N;;;;; A093;YI SYLLABLE HMI;Lo;0;L;;;;;N;;;;; A094;YI SYLLABLE HMIP;Lo;0;L;;;;;N;;;;; A095;YI SYLLABLE HMIEX;Lo;0;L;;;;;N;;;;; A096;YI SYLLABLE HMIE;Lo;0;L;;;;;N;;;;; A097;YI SYLLABLE HMIEP;Lo;0;L;;;;;N;;;;; A098;YI SYLLABLE HMAT;Lo;0;L;;;;;N;;;;; A099;YI SYLLABLE HMAX;Lo;0;L;;;;;N;;;;; A09A;YI SYLLABLE HMA;Lo;0;L;;;;;N;;;;; A09B;YI SYLLABLE HMAP;Lo;0;L;;;;;N;;;;; A09C;YI SYLLABLE HMUOX;Lo;0;L;;;;;N;;;;; A09D;YI SYLLABLE HMUO;Lo;0;L;;;;;N;;;;; A09E;YI SYLLABLE HMUOP;Lo;0;L;;;;;N;;;;; A09F;YI SYLLABLE HMOT;Lo;0;L;;;;;N;;;;; A0A0;YI SYLLABLE HMOX;Lo;0;L;;;;;N;;;;; A0A1;YI SYLLABLE HMO;Lo;0;L;;;;;N;;;;; A0A2;YI SYLLABLE HMOP;Lo;0;L;;;;;N;;;;; A0A3;YI SYLLABLE HMUT;Lo;0;L;;;;;N;;;;; A0A4;YI SYLLABLE HMUX;Lo;0;L;;;;;N;;;;; A0A5;YI SYLLABLE HMU;Lo;0;L;;;;;N;;;;; A0A6;YI SYLLABLE HMUP;Lo;0;L;;;;;N;;;;; A0A7;YI SYLLABLE HMURX;Lo;0;L;;;;;N;;;;; A0A8;YI SYLLABLE HMUR;Lo;0;L;;;;;N;;;;; A0A9;YI SYLLABLE HMYX;Lo;0;L;;;;;N;;;;; A0AA;YI SYLLABLE HMY;Lo;0;L;;;;;N;;;;; A0AB;YI SYLLABLE HMYP;Lo;0;L;;;;;N;;;;; A0AC;YI SYLLABLE HMYRX;Lo;0;L;;;;;N;;;;; A0AD;YI SYLLABLE HMYR;Lo;0;L;;;;;N;;;;; A0AE;YI SYLLABLE MIT;Lo;0;L;;;;;N;;;;; A0AF;YI SYLLABLE MIX;Lo;0;L;;;;;N;;;;; A0B0;YI SYLLABLE MI;Lo;0;L;;;;;N;;;;; A0B1;YI SYLLABLE MIP;Lo;0;L;;;;;N;;;;; A0B2;YI SYLLABLE MIEX;Lo;0;L;;;;;N;;;;; A0B3;YI SYLLABLE MIE;Lo;0;L;;;;;N;;;;; A0B4;YI SYLLABLE MIEP;Lo;0;L;;;;;N;;;;; A0B5;YI SYLLABLE MAT;Lo;0;L;;;;;N;;;;; A0B6;YI SYLLABLE MAX;Lo;0;L;;;;;N;;;;; A0B7;YI SYLLABLE MA;Lo;0;L;;;;;N;;;;; A0B8;YI SYLLABLE MAP;Lo;0;L;;;;;N;;;;; A0B9;YI SYLLABLE MUOT;Lo;0;L;;;;;N;;;;; A0BA;YI SYLLABLE MUOX;Lo;0;L;;;;;N;;;;; A0BB;YI SYLLABLE MUO;Lo;0;L;;;;;N;;;;; A0BC;YI SYLLABLE MUOP;Lo;0;L;;;;;N;;;;; A0BD;YI SYLLABLE MOT;Lo;0;L;;;;;N;;;;; A0BE;YI SYLLABLE MOX;Lo;0;L;;;;;N;;;;; A0BF;YI SYLLABLE MO;Lo;0;L;;;;;N;;;;; A0C0;YI SYLLABLE MOP;Lo;0;L;;;;;N;;;;; A0C1;YI SYLLABLE MEX;Lo;0;L;;;;;N;;;;; A0C2;YI SYLLABLE ME;Lo;0;L;;;;;N;;;;; A0C3;YI SYLLABLE MUT;Lo;0;L;;;;;N;;;;; A0C4;YI SYLLABLE MUX;Lo;0;L;;;;;N;;;;; A0C5;YI SYLLABLE MU;Lo;0;L;;;;;N;;;;; A0C6;YI SYLLABLE MUP;Lo;0;L;;;;;N;;;;; A0C7;YI SYLLABLE MURX;Lo;0;L;;;;;N;;;;; A0C8;YI SYLLABLE MUR;Lo;0;L;;;;;N;;;;; A0C9;YI SYLLABLE MYT;Lo;0;L;;;;;N;;;;; A0CA;YI SYLLABLE MYX;Lo;0;L;;;;;N;;;;; A0CB;YI SYLLABLE MY;Lo;0;L;;;;;N;;;;; A0CC;YI SYLLABLE MYP;Lo;0;L;;;;;N;;;;; A0CD;YI SYLLABLE FIT;Lo;0;L;;;;;N;;;;; A0CE;YI SYLLABLE FIX;Lo;0;L;;;;;N;;;;; A0CF;YI SYLLABLE FI;Lo;0;L;;;;;N;;;;; A0D0;YI SYLLABLE FIP;Lo;0;L;;;;;N;;;;; A0D1;YI SYLLABLE FAT;Lo;0;L;;;;;N;;;;; A0D2;YI SYLLABLE FAX;Lo;0;L;;;;;N;;;;; A0D3;YI SYLLABLE FA;Lo;0;L;;;;;N;;;;; A0D4;YI SYLLABLE FAP;Lo;0;L;;;;;N;;;;; A0D5;YI SYLLABLE FOX;Lo;0;L;;;;;N;;;;; A0D6;YI SYLLABLE FO;Lo;0;L;;;;;N;;;;; A0D7;YI SYLLABLE FOP;Lo;0;L;;;;;N;;;;; A0D8;YI SYLLABLE FUT;Lo;0;L;;;;;N;;;;; A0D9;YI SYLLABLE FUX;Lo;0;L;;;;;N;;;;; A0DA;YI SYLLABLE FU;Lo;0;L;;;;;N;;;;; A0DB;YI SYLLABLE FUP;Lo;0;L;;;;;N;;;;; A0DC;YI SYLLABLE FURX;Lo;0;L;;;;;N;;;;; A0DD;YI SYLLABLE FUR;Lo;0;L;;;;;N;;;;; A0DE;YI SYLLABLE FYT;Lo;0;L;;;;;N;;;;; A0DF;YI SYLLABLE FYX;Lo;0;L;;;;;N;;;;; A0E0;YI SYLLABLE FY;Lo;0;L;;;;;N;;;;; A0E1;YI SYLLABLE FYP;Lo;0;L;;;;;N;;;;; A0E2;YI SYLLABLE VIT;Lo;0;L;;;;;N;;;;; A0E3;YI SYLLABLE VIX;Lo;0;L;;;;;N;;;;; A0E4;YI SYLLABLE VI;Lo;0;L;;;;;N;;;;; A0E5;YI SYLLABLE VIP;Lo;0;L;;;;;N;;;;; A0E6;YI SYLLABLE VIET;Lo;0;L;;;;;N;;;;; A0E7;YI SYLLABLE VIEX;Lo;0;L;;;;;N;;;;; A0E8;YI SYLLABLE VIE;Lo;0;L;;;;;N;;;;; A0E9;YI SYLLABLE VIEP;Lo;0;L;;;;;N;;;;; A0EA;YI SYLLABLE VAT;Lo;0;L;;;;;N;;;;; A0EB;YI SYLLABLE VAX;Lo;0;L;;;;;N;;;;; A0EC;YI SYLLABLE VA;Lo;0;L;;;;;N;;;;; A0ED;YI SYLLABLE VAP;Lo;0;L;;;;;N;;;;; A0EE;YI SYLLABLE VOT;Lo;0;L;;;;;N;;;;; A0EF;YI SYLLABLE VOX;Lo;0;L;;;;;N;;;;; A0F0;YI SYLLABLE VO;Lo;0;L;;;;;N;;;;; A0F1;YI SYLLABLE VOP;Lo;0;L;;;;;N;;;;; A0F2;YI SYLLABLE VEX;Lo;0;L;;;;;N;;;;; A0F3;YI SYLLABLE VEP;Lo;0;L;;;;;N;;;;; A0F4;YI SYLLABLE VUT;Lo;0;L;;;;;N;;;;; A0F5;YI SYLLABLE VUX;Lo;0;L;;;;;N;;;;; A0F6;YI SYLLABLE VU;Lo;0;L;;;;;N;;;;; A0F7;YI SYLLABLE VUP;Lo;0;L;;;;;N;;;;; A0F8;YI SYLLABLE VURX;Lo;0;L;;;;;N;;;;; A0F9;YI SYLLABLE VUR;Lo;0;L;;;;;N;;;;; A0FA;YI SYLLABLE VYT;Lo;0;L;;;;;N;;;;; A0FB;YI SYLLABLE VYX;Lo;0;L;;;;;N;;;;; A0FC;YI SYLLABLE VY;Lo;0;L;;;;;N;;;;; A0FD;YI SYLLABLE VYP;Lo;0;L;;;;;N;;;;; A0FE;YI SYLLABLE VYRX;Lo;0;L;;;;;N;;;;; A0FF;YI SYLLABLE VYR;Lo;0;L;;;;;N;;;;; A100;YI SYLLABLE DIT;Lo;0;L;;;;;N;;;;; A101;YI SYLLABLE DIX;Lo;0;L;;;;;N;;;;; A102;YI SYLLABLE DI;Lo;0;L;;;;;N;;;;; A103;YI SYLLABLE DIP;Lo;0;L;;;;;N;;;;; A104;YI SYLLABLE DIEX;Lo;0;L;;;;;N;;;;; A105;YI SYLLABLE DIE;Lo;0;L;;;;;N;;;;; A106;YI SYLLABLE DIEP;Lo;0;L;;;;;N;;;;; A107;YI SYLLABLE DAT;Lo;0;L;;;;;N;;;;; A108;YI SYLLABLE DAX;Lo;0;L;;;;;N;;;;; A109;YI SYLLABLE DA;Lo;0;L;;;;;N;;;;; A10A;YI SYLLABLE DAP;Lo;0;L;;;;;N;;;;; A10B;YI SYLLABLE DUOX;Lo;0;L;;;;;N;;;;; A10C;YI SYLLABLE DUO;Lo;0;L;;;;;N;;;;; A10D;YI SYLLABLE DOT;Lo;0;L;;;;;N;;;;; A10E;YI SYLLABLE DOX;Lo;0;L;;;;;N;;;;; A10F;YI SYLLABLE DO;Lo;0;L;;;;;N;;;;; A110;YI SYLLABLE DOP;Lo;0;L;;;;;N;;;;; A111;YI SYLLABLE DEX;Lo;0;L;;;;;N;;;;; A112;YI SYLLABLE DE;Lo;0;L;;;;;N;;;;; A113;YI SYLLABLE DEP;Lo;0;L;;;;;N;;;;; A114;YI SYLLABLE DUT;Lo;0;L;;;;;N;;;;; A115;YI SYLLABLE DUX;Lo;0;L;;;;;N;;;;; A116;YI SYLLABLE DU;Lo;0;L;;;;;N;;;;; A117;YI SYLLABLE DUP;Lo;0;L;;;;;N;;;;; A118;YI SYLLABLE DURX;Lo;0;L;;;;;N;;;;; A119;YI SYLLABLE DUR;Lo;0;L;;;;;N;;;;; A11A;YI SYLLABLE TIT;Lo;0;L;;;;;N;;;;; A11B;YI SYLLABLE TIX;Lo;0;L;;;;;N;;;;; A11C;YI SYLLABLE TI;Lo;0;L;;;;;N;;;;; A11D;YI SYLLABLE TIP;Lo;0;L;;;;;N;;;;; A11E;YI SYLLABLE TIEX;Lo;0;L;;;;;N;;;;; A11F;YI SYLLABLE TIE;Lo;0;L;;;;;N;;;;; A120;YI SYLLABLE TIEP;Lo;0;L;;;;;N;;;;; A121;YI SYLLABLE TAT;Lo;0;L;;;;;N;;;;; A122;YI SYLLABLE TAX;Lo;0;L;;;;;N;;;;; A123;YI SYLLABLE TA;Lo;0;L;;;;;N;;;;; A124;YI SYLLABLE TAP;Lo;0;L;;;;;N;;;;; A125;YI SYLLABLE TUOT;Lo;0;L;;;;;N;;;;; A126;YI SYLLABLE TUOX;Lo;0;L;;;;;N;;;;; A127;YI SYLLABLE TUO;Lo;0;L;;;;;N;;;;; A128;YI SYLLABLE TUOP;Lo;0;L;;;;;N;;;;; A129;YI SYLLABLE TOT;Lo;0;L;;;;;N;;;;; A12A;YI SYLLABLE TOX;Lo;0;L;;;;;N;;;;; A12B;YI SYLLABLE TO;Lo;0;L;;;;;N;;;;; A12C;YI SYLLABLE TOP;Lo;0;L;;;;;N;;;;; A12D;YI SYLLABLE TEX;Lo;0;L;;;;;N;;;;; A12E;YI SYLLABLE TE;Lo;0;L;;;;;N;;;;; A12F;YI SYLLABLE TEP;Lo;0;L;;;;;N;;;;; A130;YI SYLLABLE TUT;Lo;0;L;;;;;N;;;;; A131;YI SYLLABLE TUX;Lo;0;L;;;;;N;;;;; A132;YI SYLLABLE TU;Lo;0;L;;;;;N;;;;; A133;YI SYLLABLE TUP;Lo;0;L;;;;;N;;;;; A134;YI SYLLABLE TURX;Lo;0;L;;;;;N;;;;; A135;YI SYLLABLE TUR;Lo;0;L;;;;;N;;;;; A136;YI SYLLABLE DDIT;Lo;0;L;;;;;N;;;;; A137;YI SYLLABLE DDIX;Lo;0;L;;;;;N;;;;; A138;YI SYLLABLE DDI;Lo;0;L;;;;;N;;;;; A139;YI SYLLABLE DDIP;Lo;0;L;;;;;N;;;;; A13A;YI SYLLABLE DDIEX;Lo;0;L;;;;;N;;;;; A13B;YI SYLLABLE DDIE;Lo;0;L;;;;;N;;;;; A13C;YI SYLLABLE DDIEP;Lo;0;L;;;;;N;;;;; A13D;YI SYLLABLE DDAT;Lo;0;L;;;;;N;;;;; A13E;YI SYLLABLE DDAX;Lo;0;L;;;;;N;;;;; A13F;YI SYLLABLE DDA;Lo;0;L;;;;;N;;;;; A140;YI SYLLABLE DDAP;Lo;0;L;;;;;N;;;;; A141;YI SYLLABLE DDUOX;Lo;0;L;;;;;N;;;;; A142;YI SYLLABLE DDUO;Lo;0;L;;;;;N;;;;; A143;YI SYLLABLE DDUOP;Lo;0;L;;;;;N;;;;; A144;YI SYLLABLE DDOT;Lo;0;L;;;;;N;;;;; A145;YI SYLLABLE DDOX;Lo;0;L;;;;;N;;;;; A146;YI SYLLABLE DDO;Lo;0;L;;;;;N;;;;; A147;YI SYLLABLE DDOP;Lo;0;L;;;;;N;;;;; A148;YI SYLLABLE DDEX;Lo;0;L;;;;;N;;;;; A149;YI SYLLABLE DDE;Lo;0;L;;;;;N;;;;; A14A;YI SYLLABLE DDEP;Lo;0;L;;;;;N;;;;; A14B;YI SYLLABLE DDUT;Lo;0;L;;;;;N;;;;; A14C;YI SYLLABLE DDUX;Lo;0;L;;;;;N;;;;; A14D;YI SYLLABLE DDU;Lo;0;L;;;;;N;;;;; A14E;YI SYLLABLE DDUP;Lo;0;L;;;;;N;;;;; A14F;YI SYLLABLE DDURX;Lo;0;L;;;;;N;;;;; A150;YI SYLLABLE DDUR;Lo;0;L;;;;;N;;;;; A151;YI SYLLABLE NDIT;Lo;0;L;;;;;N;;;;; A152;YI SYLLABLE NDIX;Lo;0;L;;;;;N;;;;; A153;YI SYLLABLE NDI;Lo;0;L;;;;;N;;;;; A154;YI SYLLABLE NDIP;Lo;0;L;;;;;N;;;;; A155;YI SYLLABLE NDIEX;Lo;0;L;;;;;N;;;;; A156;YI SYLLABLE NDIE;Lo;0;L;;;;;N;;;;; A157;YI SYLLABLE NDAT;Lo;0;L;;;;;N;;;;; A158;YI SYLLABLE NDAX;Lo;0;L;;;;;N;;;;; A159;YI SYLLABLE NDA;Lo;0;L;;;;;N;;;;; A15A;YI SYLLABLE NDAP;Lo;0;L;;;;;N;;;;; A15B;YI SYLLABLE NDOT;Lo;0;L;;;;;N;;;;; A15C;YI SYLLABLE NDOX;Lo;0;L;;;;;N;;;;; A15D;YI SYLLABLE NDO;Lo;0;L;;;;;N;;;;; A15E;YI SYLLABLE NDOP;Lo;0;L;;;;;N;;;;; A15F;YI SYLLABLE NDEX;Lo;0;L;;;;;N;;;;; A160;YI SYLLABLE NDE;Lo;0;L;;;;;N;;;;; A161;YI SYLLABLE NDEP;Lo;0;L;;;;;N;;;;; A162;YI SYLLABLE NDUT;Lo;0;L;;;;;N;;;;; A163;YI SYLLABLE NDUX;Lo;0;L;;;;;N;;;;; A164;YI SYLLABLE NDU;Lo;0;L;;;;;N;;;;; A165;YI SYLLABLE NDUP;Lo;0;L;;;;;N;;;;; A166;YI SYLLABLE NDURX;Lo;0;L;;;;;N;;;;; A167;YI SYLLABLE NDUR;Lo;0;L;;;;;N;;;;; A168;YI SYLLABLE HNIT;Lo;0;L;;;;;N;;;;; A169;YI SYLLABLE HNIX;Lo;0;L;;;;;N;;;;; A16A;YI SYLLABLE HNI;Lo;0;L;;;;;N;;;;; A16B;YI SYLLABLE HNIP;Lo;0;L;;;;;N;;;;; A16C;YI SYLLABLE HNIET;Lo;0;L;;;;;N;;;;; A16D;YI SYLLABLE HNIEX;Lo;0;L;;;;;N;;;;; A16E;YI SYLLABLE HNIE;Lo;0;L;;;;;N;;;;; A16F;YI SYLLABLE HNIEP;Lo;0;L;;;;;N;;;;; A170;YI SYLLABLE HNAT;Lo;0;L;;;;;N;;;;; A171;YI SYLLABLE HNAX;Lo;0;L;;;;;N;;;;; A172;YI SYLLABLE HNA;Lo;0;L;;;;;N;;;;; A173;YI SYLLABLE HNAP;Lo;0;L;;;;;N;;;;; A174;YI SYLLABLE HNUOX;Lo;0;L;;;;;N;;;;; A175;YI SYLLABLE HNUO;Lo;0;L;;;;;N;;;;; A176;YI SYLLABLE HNOT;Lo;0;L;;;;;N;;;;; A177;YI SYLLABLE HNOX;Lo;0;L;;;;;N;;;;; A178;YI SYLLABLE HNOP;Lo;0;L;;;;;N;;;;; A179;YI SYLLABLE HNEX;Lo;0;L;;;;;N;;;;; A17A;YI SYLLABLE HNE;Lo;0;L;;;;;N;;;;; A17B;YI SYLLABLE HNEP;Lo;0;L;;;;;N;;;;; A17C;YI SYLLABLE HNUT;Lo;0;L;;;;;N;;;;; A17D;YI SYLLABLE NIT;Lo;0;L;;;;;N;;;;; A17E;YI SYLLABLE NIX;Lo;0;L;;;;;N;;;;; A17F;YI SYLLABLE NI;Lo;0;L;;;;;N;;;;; A180;YI SYLLABLE NIP;Lo;0;L;;;;;N;;;;; A181;YI SYLLABLE NIEX;Lo;0;L;;;;;N;;;;; A182;YI SYLLABLE NIE;Lo;0;L;;;;;N;;;;; A183;YI SYLLABLE NIEP;Lo;0;L;;;;;N;;;;; A184;YI SYLLABLE NAX;Lo;0;L;;;;;N;;;;; A185;YI SYLLABLE NA;Lo;0;L;;;;;N;;;;; A186;YI SYLLABLE NAP;Lo;0;L;;;;;N;;;;; A187;YI SYLLABLE NUOX;Lo;0;L;;;;;N;;;;; A188;YI SYLLABLE NUO;Lo;0;L;;;;;N;;;;; A189;YI SYLLABLE NUOP;Lo;0;L;;;;;N;;;;; A18A;YI SYLLABLE NOT;Lo;0;L;;;;;N;;;;; A18B;YI SYLLABLE NOX;Lo;0;L;;;;;N;;;;; A18C;YI SYLLABLE NO;Lo;0;L;;;;;N;;;;; A18D;YI SYLLABLE NOP;Lo;0;L;;;;;N;;;;; A18E;YI SYLLABLE NEX;Lo;0;L;;;;;N;;;;; A18F;YI SYLLABLE NE;Lo;0;L;;;;;N;;;;; A190;YI SYLLABLE NEP;Lo;0;L;;;;;N;;;;; A191;YI SYLLABLE NUT;Lo;0;L;;;;;N;;;;; A192;YI SYLLABLE NUX;Lo;0;L;;;;;N;;;;; A193;YI SYLLABLE NU;Lo;0;L;;;;;N;;;;; A194;YI SYLLABLE NUP;Lo;0;L;;;;;N;;;;; A195;YI SYLLABLE NURX;Lo;0;L;;;;;N;;;;; A196;YI SYLLABLE NUR;Lo;0;L;;;;;N;;;;; A197;YI SYLLABLE HLIT;Lo;0;L;;;;;N;;;;; A198;YI SYLLABLE HLIX;Lo;0;L;;;;;N;;;;; A199;YI SYLLABLE HLI;Lo;0;L;;;;;N;;;;; A19A;YI SYLLABLE HLIP;Lo;0;L;;;;;N;;;;; A19B;YI SYLLABLE HLIEX;Lo;0;L;;;;;N;;;;; A19C;YI SYLLABLE HLIE;Lo;0;L;;;;;N;;;;; A19D;YI SYLLABLE HLIEP;Lo;0;L;;;;;N;;;;; A19E;YI SYLLABLE HLAT;Lo;0;L;;;;;N;;;;; A19F;YI SYLLABLE HLAX;Lo;0;L;;;;;N;;;;; A1A0;YI SYLLABLE HLA;Lo;0;L;;;;;N;;;;; A1A1;YI SYLLABLE HLAP;Lo;0;L;;;;;N;;;;; A1A2;YI SYLLABLE HLUOX;Lo;0;L;;;;;N;;;;; A1A3;YI SYLLABLE HLUO;Lo;0;L;;;;;N;;;;; A1A4;YI SYLLABLE HLUOP;Lo;0;L;;;;;N;;;;; A1A5;YI SYLLABLE HLOX;Lo;0;L;;;;;N;;;;; A1A6;YI SYLLABLE HLO;Lo;0;L;;;;;N;;;;; A1A7;YI SYLLABLE HLOP;Lo;0;L;;;;;N;;;;; A1A8;YI SYLLABLE HLEX;Lo;0;L;;;;;N;;;;; A1A9;YI SYLLABLE HLE;Lo;0;L;;;;;N;;;;; A1AA;YI SYLLABLE HLEP;Lo;0;L;;;;;N;;;;; A1AB;YI SYLLABLE HLUT;Lo;0;L;;;;;N;;;;; A1AC;YI SYLLABLE HLUX;Lo;0;L;;;;;N;;;;; A1AD;YI SYLLABLE HLU;Lo;0;L;;;;;N;;;;; A1AE;YI SYLLABLE HLUP;Lo;0;L;;;;;N;;;;; A1AF;YI SYLLABLE HLURX;Lo;0;L;;;;;N;;;;; A1B0;YI SYLLABLE HLUR;Lo;0;L;;;;;N;;;;; A1B1;YI SYLLABLE HLYT;Lo;0;L;;;;;N;;;;; A1B2;YI SYLLABLE HLYX;Lo;0;L;;;;;N;;;;; A1B3;YI SYLLABLE HLY;Lo;0;L;;;;;N;;;;; A1B4;YI SYLLABLE HLYP;Lo;0;L;;;;;N;;;;; A1B5;YI SYLLABLE HLYRX;Lo;0;L;;;;;N;;;;; A1B6;YI SYLLABLE HLYR;Lo;0;L;;;;;N;;;;; A1B7;YI SYLLABLE LIT;Lo;0;L;;;;;N;;;;; A1B8;YI SYLLABLE LIX;Lo;0;L;;;;;N;;;;; A1B9;YI SYLLABLE LI;Lo;0;L;;;;;N;;;;; A1BA;YI SYLLABLE LIP;Lo;0;L;;;;;N;;;;; A1BB;YI SYLLABLE LIET;Lo;0;L;;;;;N;;;;; A1BC;YI SYLLABLE LIEX;Lo;0;L;;;;;N;;;;; A1BD;YI SYLLABLE LIE;Lo;0;L;;;;;N;;;;; A1BE;YI SYLLABLE LIEP;Lo;0;L;;;;;N;;;;; A1BF;YI SYLLABLE LAT;Lo;0;L;;;;;N;;;;; A1C0;YI SYLLABLE LAX;Lo;0;L;;;;;N;;;;; A1C1;YI SYLLABLE LA;Lo;0;L;;;;;N;;;;; A1C2;YI SYLLABLE LAP;Lo;0;L;;;;;N;;;;; A1C3;YI SYLLABLE LUOT;Lo;0;L;;;;;N;;;;; A1C4;YI SYLLABLE LUOX;Lo;0;L;;;;;N;;;;; A1C5;YI SYLLABLE LUO;Lo;0;L;;;;;N;;;;; A1C6;YI SYLLABLE LUOP;Lo;0;L;;;;;N;;;;; A1C7;YI SYLLABLE LOT;Lo;0;L;;;;;N;;;;; A1C8;YI SYLLABLE LOX;Lo;0;L;;;;;N;;;;; A1C9;YI SYLLABLE LO;Lo;0;L;;;;;N;;;;; A1CA;YI SYLLABLE LOP;Lo;0;L;;;;;N;;;;; A1CB;YI SYLLABLE LEX;Lo;0;L;;;;;N;;;;; A1CC;YI SYLLABLE LE;Lo;0;L;;;;;N;;;;; A1CD;YI SYLLABLE LEP;Lo;0;L;;;;;N;;;;; A1CE;YI SYLLABLE LUT;Lo;0;L;;;;;N;;;;; A1CF;YI SYLLABLE LUX;Lo;0;L;;;;;N;;;;; A1D0;YI SYLLABLE LU;Lo;0;L;;;;;N;;;;; A1D1;YI SYLLABLE LUP;Lo;0;L;;;;;N;;;;; A1D2;YI SYLLABLE LURX;Lo;0;L;;;;;N;;;;; A1D3;YI SYLLABLE LUR;Lo;0;L;;;;;N;;;;; A1D4;YI SYLLABLE LYT;Lo;0;L;;;;;N;;;;; A1D5;YI SYLLABLE LYX;Lo;0;L;;;;;N;;;;; A1D6;YI SYLLABLE LY;Lo;0;L;;;;;N;;;;; A1D7;YI SYLLABLE LYP;Lo;0;L;;;;;N;;;;; A1D8;YI SYLLABLE LYRX;Lo;0;L;;;;;N;;;;; A1D9;YI SYLLABLE LYR;Lo;0;L;;;;;N;;;;; A1DA;YI SYLLABLE GIT;Lo;0;L;;;;;N;;;;; A1DB;YI SYLLABLE GIX;Lo;0;L;;;;;N;;;;; A1DC;YI SYLLABLE GI;Lo;0;L;;;;;N;;;;; A1DD;YI SYLLABLE GIP;Lo;0;L;;;;;N;;;;; A1DE;YI SYLLABLE GIET;Lo;0;L;;;;;N;;;;; A1DF;YI SYLLABLE GIEX;Lo;0;L;;;;;N;;;;; A1E0;YI SYLLABLE GIE;Lo;0;L;;;;;N;;;;; A1E1;YI SYLLABLE GIEP;Lo;0;L;;;;;N;;;;; A1E2;YI SYLLABLE GAT;Lo;0;L;;;;;N;;;;; A1E3;YI SYLLABLE GAX;Lo;0;L;;;;;N;;;;; A1E4;YI SYLLABLE GA;Lo;0;L;;;;;N;;;;; A1E5;YI SYLLABLE GAP;Lo;0;L;;;;;N;;;;; A1E6;YI SYLLABLE GUOT;Lo;0;L;;;;;N;;;;; A1E7;YI SYLLABLE GUOX;Lo;0;L;;;;;N;;;;; A1E8;YI SYLLABLE GUO;Lo;0;L;;;;;N;;;;; A1E9;YI SYLLABLE GUOP;Lo;0;L;;;;;N;;;;; A1EA;YI SYLLABLE GOT;Lo;0;L;;;;;N;;;;; A1EB;YI SYLLABLE GOX;Lo;0;L;;;;;N;;;;; A1EC;YI SYLLABLE GO;Lo;0;L;;;;;N;;;;; A1ED;YI SYLLABLE GOP;Lo;0;L;;;;;N;;;;; A1EE;YI SYLLABLE GET;Lo;0;L;;;;;N;;;;; A1EF;YI SYLLABLE GEX;Lo;0;L;;;;;N;;;;; A1F0;YI SYLLABLE GE;Lo;0;L;;;;;N;;;;; A1F1;YI SYLLABLE GEP;Lo;0;L;;;;;N;;;;; A1F2;YI SYLLABLE GUT;Lo;0;L;;;;;N;;;;; A1F3;YI SYLLABLE GUX;Lo;0;L;;;;;N;;;;; A1F4;YI SYLLABLE GU;Lo;0;L;;;;;N;;;;; A1F5;YI SYLLABLE GUP;Lo;0;L;;;;;N;;;;; A1F6;YI SYLLABLE GURX;Lo;0;L;;;;;N;;;;; A1F7;YI SYLLABLE GUR;Lo;0;L;;;;;N;;;;; A1F8;YI SYLLABLE KIT;Lo;0;L;;;;;N;;;;; A1F9;YI SYLLABLE KIX;Lo;0;L;;;;;N;;;;; A1FA;YI SYLLABLE KI;Lo;0;L;;;;;N;;;;; A1FB;YI SYLLABLE KIP;Lo;0;L;;;;;N;;;;; A1FC;YI SYLLABLE KIEX;Lo;0;L;;;;;N;;;;; A1FD;YI SYLLABLE KIE;Lo;0;L;;;;;N;;;;; A1FE;YI SYLLABLE KIEP;Lo;0;L;;;;;N;;;;; A1FF;YI SYLLABLE KAT;Lo;0;L;;;;;N;;;;; A200;YI SYLLABLE KAX;Lo;0;L;;;;;N;;;;; A201;YI SYLLABLE KA;Lo;0;L;;;;;N;;;;; A202;YI SYLLABLE KAP;Lo;0;L;;;;;N;;;;; A203;YI SYLLABLE KUOX;Lo;0;L;;;;;N;;;;; A204;YI SYLLABLE KUO;Lo;0;L;;;;;N;;;;; A205;YI SYLLABLE KUOP;Lo;0;L;;;;;N;;;;; A206;YI SYLLABLE KOT;Lo;0;L;;;;;N;;;;; A207;YI SYLLABLE KOX;Lo;0;L;;;;;N;;;;; A208;YI SYLLABLE KO;Lo;0;L;;;;;N;;;;; A209;YI SYLLABLE KOP;Lo;0;L;;;;;N;;;;; A20A;YI SYLLABLE KET;Lo;0;L;;;;;N;;;;; A20B;YI SYLLABLE KEX;Lo;0;L;;;;;N;;;;; A20C;YI SYLLABLE KE;Lo;0;L;;;;;N;;;;; A20D;YI SYLLABLE KEP;Lo;0;L;;;;;N;;;;; A20E;YI SYLLABLE KUT;Lo;0;L;;;;;N;;;;; A20F;YI SYLLABLE KUX;Lo;0;L;;;;;N;;;;; A210;YI SYLLABLE KU;Lo;0;L;;;;;N;;;;; A211;YI SYLLABLE KUP;Lo;0;L;;;;;N;;;;; A212;YI SYLLABLE KURX;Lo;0;L;;;;;N;;;;; A213;YI SYLLABLE KUR;Lo;0;L;;;;;N;;;;; A214;YI SYLLABLE GGIT;Lo;0;L;;;;;N;;;;; A215;YI SYLLABLE GGIX;Lo;0;L;;;;;N;;;;; A216;YI SYLLABLE GGI;Lo;0;L;;;;;N;;;;; A217;YI SYLLABLE GGIEX;Lo;0;L;;;;;N;;;;; A218;YI SYLLABLE GGIE;Lo;0;L;;;;;N;;;;; A219;YI SYLLABLE GGIEP;Lo;0;L;;;;;N;;;;; A21A;YI SYLLABLE GGAT;Lo;0;L;;;;;N;;;;; A21B;YI SYLLABLE GGAX;Lo;0;L;;;;;N;;;;; A21C;YI SYLLABLE GGA;Lo;0;L;;;;;N;;;;; A21D;YI SYLLABLE GGAP;Lo;0;L;;;;;N;;;;; A21E;YI SYLLABLE GGUOT;Lo;0;L;;;;;N;;;;; A21F;YI SYLLABLE GGUOX;Lo;0;L;;;;;N;;;;; A220;YI SYLLABLE GGUO;Lo;0;L;;;;;N;;;;; A221;YI SYLLABLE GGUOP;Lo;0;L;;;;;N;;;;; A222;YI SYLLABLE GGOT;Lo;0;L;;;;;N;;;;; A223;YI SYLLABLE GGOX;Lo;0;L;;;;;N;;;;; A224;YI SYLLABLE GGO;Lo;0;L;;;;;N;;;;; A225;YI SYLLABLE GGOP;Lo;0;L;;;;;N;;;;; A226;YI SYLLABLE GGET;Lo;0;L;;;;;N;;;;; A227;YI SYLLABLE GGEX;Lo;0;L;;;;;N;;;;; A228;YI SYLLABLE GGE;Lo;0;L;;;;;N;;;;; A229;YI SYLLABLE GGEP;Lo;0;L;;;;;N;;;;; A22A;YI SYLLABLE GGUT;Lo;0;L;;;;;N;;;;; A22B;YI SYLLABLE GGUX;Lo;0;L;;;;;N;;;;; A22C;YI SYLLABLE GGU;Lo;0;L;;;;;N;;;;; A22D;YI SYLLABLE GGUP;Lo;0;L;;;;;N;;;;; A22E;YI SYLLABLE GGURX;Lo;0;L;;;;;N;;;;; A22F;YI SYLLABLE GGUR;Lo;0;L;;;;;N;;;;; A230;YI SYLLABLE MGIEX;Lo;0;L;;;;;N;;;;; A231;YI SYLLABLE MGIE;Lo;0;L;;;;;N;;;;; A232;YI SYLLABLE MGAT;Lo;0;L;;;;;N;;;;; A233;YI SYLLABLE MGAX;Lo;0;L;;;;;N;;;;; A234;YI SYLLABLE MGA;Lo;0;L;;;;;N;;;;; A235;YI SYLLABLE MGAP;Lo;0;L;;;;;N;;;;; A236;YI SYLLABLE MGUOX;Lo;0;L;;;;;N;;;;; A237;YI SYLLABLE MGUO;Lo;0;L;;;;;N;;;;; A238;YI SYLLABLE MGUOP;Lo;0;L;;;;;N;;;;; A239;YI SYLLABLE MGOT;Lo;0;L;;;;;N;;;;; A23A;YI SYLLABLE MGOX;Lo;0;L;;;;;N;;;;; A23B;YI SYLLABLE MGO;Lo;0;L;;;;;N;;;;; A23C;YI SYLLABLE MGOP;Lo;0;L;;;;;N;;;;; A23D;YI SYLLABLE MGEX;Lo;0;L;;;;;N;;;;; A23E;YI SYLLABLE MGE;Lo;0;L;;;;;N;;;;; A23F;YI SYLLABLE MGEP;Lo;0;L;;;;;N;;;;; A240;YI SYLLABLE MGUT;Lo;0;L;;;;;N;;;;; A241;YI SYLLABLE MGUX;Lo;0;L;;;;;N;;;;; A242;YI SYLLABLE MGU;Lo;0;L;;;;;N;;;;; A243;YI SYLLABLE MGUP;Lo;0;L;;;;;N;;;;; A244;YI SYLLABLE MGURX;Lo;0;L;;;;;N;;;;; A245;YI SYLLABLE MGUR;Lo;0;L;;;;;N;;;;; A246;YI SYLLABLE HXIT;Lo;0;L;;;;;N;;;;; A247;YI SYLLABLE HXIX;Lo;0;L;;;;;N;;;;; A248;YI SYLLABLE HXI;Lo;0;L;;;;;N;;;;; A249;YI SYLLABLE HXIP;Lo;0;L;;;;;N;;;;; A24A;YI SYLLABLE HXIET;Lo;0;L;;;;;N;;;;; A24B;YI SYLLABLE HXIEX;Lo;0;L;;;;;N;;;;; A24C;YI SYLLABLE HXIE;Lo;0;L;;;;;N;;;;; A24D;YI SYLLABLE HXIEP;Lo;0;L;;;;;N;;;;; A24E;YI SYLLABLE HXAT;Lo;0;L;;;;;N;;;;; A24F;YI SYLLABLE HXAX;Lo;0;L;;;;;N;;;;; A250;YI SYLLABLE HXA;Lo;0;L;;;;;N;;;;; A251;YI SYLLABLE HXAP;Lo;0;L;;;;;N;;;;; A252;YI SYLLABLE HXUOT;Lo;0;L;;;;;N;;;;; A253;YI SYLLABLE HXUOX;Lo;0;L;;;;;N;;;;; A254;YI SYLLABLE HXUO;Lo;0;L;;;;;N;;;;; A255;YI SYLLABLE HXUOP;Lo;0;L;;;;;N;;;;; A256;YI SYLLABLE HXOT;Lo;0;L;;;;;N;;;;; A257;YI SYLLABLE HXOX;Lo;0;L;;;;;N;;;;; A258;YI SYLLABLE HXO;Lo;0;L;;;;;N;;;;; A259;YI SYLLABLE HXOP;Lo;0;L;;;;;N;;;;; A25A;YI SYLLABLE HXEX;Lo;0;L;;;;;N;;;;; A25B;YI SYLLABLE HXE;Lo;0;L;;;;;N;;;;; A25C;YI SYLLABLE HXEP;Lo;0;L;;;;;N;;;;; A25D;YI SYLLABLE NGIEX;Lo;0;L;;;;;N;;;;; A25E;YI SYLLABLE NGIE;Lo;0;L;;;;;N;;;;; A25F;YI SYLLABLE NGIEP;Lo;0;L;;;;;N;;;;; A260;YI SYLLABLE NGAT;Lo;0;L;;;;;N;;;;; A261;YI SYLLABLE NGAX;Lo;0;L;;;;;N;;;;; A262;YI SYLLABLE NGA;Lo;0;L;;;;;N;;;;; A263;YI SYLLABLE NGAP;Lo;0;L;;;;;N;;;;; A264;YI SYLLABLE NGUOT;Lo;0;L;;;;;N;;;;; A265;YI SYLLABLE NGUOX;Lo;0;L;;;;;N;;;;; A266;YI SYLLABLE NGUO;Lo;0;L;;;;;N;;;;; A267;YI SYLLABLE NGOT;Lo;0;L;;;;;N;;;;; A268;YI SYLLABLE NGOX;Lo;0;L;;;;;N;;;;; A269;YI SYLLABLE NGO;Lo;0;L;;;;;N;;;;; A26A;YI SYLLABLE NGOP;Lo;0;L;;;;;N;;;;; A26B;YI SYLLABLE NGEX;Lo;0;L;;;;;N;;;;; A26C;YI SYLLABLE NGE;Lo;0;L;;;;;N;;;;; A26D;YI SYLLABLE NGEP;Lo;0;L;;;;;N;;;;; A26E;YI SYLLABLE HIT;Lo;0;L;;;;;N;;;;; A26F;YI SYLLABLE HIEX;Lo;0;L;;;;;N;;;;; A270;YI SYLLABLE HIE;Lo;0;L;;;;;N;;;;; A271;YI SYLLABLE HAT;Lo;0;L;;;;;N;;;;; A272;YI SYLLABLE HAX;Lo;0;L;;;;;N;;;;; A273;YI SYLLABLE HA;Lo;0;L;;;;;N;;;;; A274;YI SYLLABLE HAP;Lo;0;L;;;;;N;;;;; A275;YI SYLLABLE HUOT;Lo;0;L;;;;;N;;;;; A276;YI SYLLABLE HUOX;Lo;0;L;;;;;N;;;;; A277;YI SYLLABLE HUO;Lo;0;L;;;;;N;;;;; A278;YI SYLLABLE HUOP;Lo;0;L;;;;;N;;;;; A279;YI SYLLABLE HOT;Lo;0;L;;;;;N;;;;; A27A;YI SYLLABLE HOX;Lo;0;L;;;;;N;;;;; A27B;YI SYLLABLE HO;Lo;0;L;;;;;N;;;;; A27C;YI SYLLABLE HOP;Lo;0;L;;;;;N;;;;; A27D;YI SYLLABLE HEX;Lo;0;L;;;;;N;;;;; A27E;YI SYLLABLE HE;Lo;0;L;;;;;N;;;;; A27F;YI SYLLABLE HEP;Lo;0;L;;;;;N;;;;; A280;YI SYLLABLE WAT;Lo;0;L;;;;;N;;;;; A281;YI SYLLABLE WAX;Lo;0;L;;;;;N;;;;; A282;YI SYLLABLE WA;Lo;0;L;;;;;N;;;;; A283;YI SYLLABLE WAP;Lo;0;L;;;;;N;;;;; A284;YI SYLLABLE WUOX;Lo;0;L;;;;;N;;;;; A285;YI SYLLABLE WUO;Lo;0;L;;;;;N;;;;; A286;YI SYLLABLE WUOP;Lo;0;L;;;;;N;;;;; A287;YI SYLLABLE WOX;Lo;0;L;;;;;N;;;;; A288;YI SYLLABLE WO;Lo;0;L;;;;;N;;;;; A289;YI SYLLABLE WOP;Lo;0;L;;;;;N;;;;; A28A;YI SYLLABLE WEX;Lo;0;L;;;;;N;;;;; A28B;YI SYLLABLE WE;Lo;0;L;;;;;N;;;;; A28C;YI SYLLABLE WEP;Lo;0;L;;;;;N;;;;; A28D;YI SYLLABLE ZIT;Lo;0;L;;;;;N;;;;; A28E;YI SYLLABLE ZIX;Lo;0;L;;;;;N;;;;; A28F;YI SYLLABLE ZI;Lo;0;L;;;;;N;;;;; A290;YI SYLLABLE ZIP;Lo;0;L;;;;;N;;;;; A291;YI SYLLABLE ZIEX;Lo;0;L;;;;;N;;;;; A292;YI SYLLABLE ZIE;Lo;0;L;;;;;N;;;;; A293;YI SYLLABLE ZIEP;Lo;0;L;;;;;N;;;;; A294;YI SYLLABLE ZAT;Lo;0;L;;;;;N;;;;; A295;YI SYLLABLE ZAX;Lo;0;L;;;;;N;;;;; A296;YI SYLLABLE ZA;Lo;0;L;;;;;N;;;;; A297;YI SYLLABLE ZAP;Lo;0;L;;;;;N;;;;; A298;YI SYLLABLE ZUOX;Lo;0;L;;;;;N;;;;; A299;YI SYLLABLE ZUO;Lo;0;L;;;;;N;;;;; A29A;YI SYLLABLE ZUOP;Lo;0;L;;;;;N;;;;; A29B;YI SYLLABLE ZOT;Lo;0;L;;;;;N;;;;; A29C;YI SYLLABLE ZOX;Lo;0;L;;;;;N;;;;; A29D;YI SYLLABLE ZO;Lo;0;L;;;;;N;;;;; A29E;YI SYLLABLE ZOP;Lo;0;L;;;;;N;;;;; A29F;YI SYLLABLE ZEX;Lo;0;L;;;;;N;;;;; A2A0;YI SYLLABLE ZE;Lo;0;L;;;;;N;;;;; A2A1;YI SYLLABLE ZEP;Lo;0;L;;;;;N;;;;; A2A2;YI SYLLABLE ZUT;Lo;0;L;;;;;N;;;;; A2A3;YI SYLLABLE ZUX;Lo;0;L;;;;;N;;;;; A2A4;YI SYLLABLE ZU;Lo;0;L;;;;;N;;;;; A2A5;YI SYLLABLE ZUP;Lo;0;L;;;;;N;;;;; A2A6;YI SYLLABLE ZURX;Lo;0;L;;;;;N;;;;; A2A7;YI SYLLABLE ZUR;Lo;0;L;;;;;N;;;;; A2A8;YI SYLLABLE ZYT;Lo;0;L;;;;;N;;;;; A2A9;YI SYLLABLE ZYX;Lo;0;L;;;;;N;;;;; A2AA;YI SYLLABLE ZY;Lo;0;L;;;;;N;;;;; A2AB;YI SYLLABLE ZYP;Lo;0;L;;;;;N;;;;; A2AC;YI SYLLABLE ZYRX;Lo;0;L;;;;;N;;;;; A2AD;YI SYLLABLE ZYR;Lo;0;L;;;;;N;;;;; A2AE;YI SYLLABLE CIT;Lo;0;L;;;;;N;;;;; A2AF;YI SYLLABLE CIX;Lo;0;L;;;;;N;;;;; A2B0;YI SYLLABLE CI;Lo;0;L;;;;;N;;;;; A2B1;YI SYLLABLE CIP;Lo;0;L;;;;;N;;;;; A2B2;YI SYLLABLE CIET;Lo;0;L;;;;;N;;;;; A2B3;YI SYLLABLE CIEX;Lo;0;L;;;;;N;;;;; A2B4;YI SYLLABLE CIE;Lo;0;L;;;;;N;;;;; A2B5;YI SYLLABLE CIEP;Lo;0;L;;;;;N;;;;; A2B6;YI SYLLABLE CAT;Lo;0;L;;;;;N;;;;; A2B7;YI SYLLABLE CAX;Lo;0;L;;;;;N;;;;; A2B8;YI SYLLABLE CA;Lo;0;L;;;;;N;;;;; A2B9;YI SYLLABLE CAP;Lo;0;L;;;;;N;;;;; A2BA;YI SYLLABLE CUOX;Lo;0;L;;;;;N;;;;; A2BB;YI SYLLABLE CUO;Lo;0;L;;;;;N;;;;; A2BC;YI SYLLABLE CUOP;Lo;0;L;;;;;N;;;;; A2BD;YI SYLLABLE COT;Lo;0;L;;;;;N;;;;; A2BE;YI SYLLABLE COX;Lo;0;L;;;;;N;;;;; A2BF;YI SYLLABLE CO;Lo;0;L;;;;;N;;;;; A2C0;YI SYLLABLE COP;Lo;0;L;;;;;N;;;;; A2C1;YI SYLLABLE CEX;Lo;0;L;;;;;N;;;;; A2C2;YI SYLLABLE CE;Lo;0;L;;;;;N;;;;; A2C3;YI SYLLABLE CEP;Lo;0;L;;;;;N;;;;; A2C4;YI SYLLABLE CUT;Lo;0;L;;;;;N;;;;; A2C5;YI SYLLABLE CUX;Lo;0;L;;;;;N;;;;; A2C6;YI SYLLABLE CU;Lo;0;L;;;;;N;;;;; A2C7;YI SYLLABLE CUP;Lo;0;L;;;;;N;;;;; A2C8;YI SYLLABLE CURX;Lo;0;L;;;;;N;;;;; A2C9;YI SYLLABLE CUR;Lo;0;L;;;;;N;;;;; A2CA;YI SYLLABLE CYT;Lo;0;L;;;;;N;;;;; A2CB;YI SYLLABLE CYX;Lo;0;L;;;;;N;;;;; A2CC;YI SYLLABLE CY;Lo;0;L;;;;;N;;;;; A2CD;YI SYLLABLE CYP;Lo;0;L;;;;;N;;;;; A2CE;YI SYLLABLE CYRX;Lo;0;L;;;;;N;;;;; A2CF;YI SYLLABLE CYR;Lo;0;L;;;;;N;;;;; A2D0;YI SYLLABLE ZZIT;Lo;0;L;;;;;N;;;;; A2D1;YI SYLLABLE ZZIX;Lo;0;L;;;;;N;;;;; A2D2;YI SYLLABLE ZZI;Lo;0;L;;;;;N;;;;; A2D3;YI SYLLABLE ZZIP;Lo;0;L;;;;;N;;;;; A2D4;YI SYLLABLE ZZIET;Lo;0;L;;;;;N;;;;; A2D5;YI SYLLABLE ZZIEX;Lo;0;L;;;;;N;;;;; A2D6;YI SYLLABLE ZZIE;Lo;0;L;;;;;N;;;;; A2D7;YI SYLLABLE ZZIEP;Lo;0;L;;;;;N;;;;; A2D8;YI SYLLABLE ZZAT;Lo;0;L;;;;;N;;;;; A2D9;YI SYLLABLE ZZAX;Lo;0;L;;;;;N;;;;; A2DA;YI SYLLABLE ZZA;Lo;0;L;;;;;N;;;;; A2DB;YI SYLLABLE ZZAP;Lo;0;L;;;;;N;;;;; A2DC;YI SYLLABLE ZZOX;Lo;0;L;;;;;N;;;;; A2DD;YI SYLLABLE ZZO;Lo;0;L;;;;;N;;;;; A2DE;YI SYLLABLE ZZOP;Lo;0;L;;;;;N;;;;; A2DF;YI SYLLABLE ZZEX;Lo;0;L;;;;;N;;;;; A2E0;YI SYLLABLE ZZE;Lo;0;L;;;;;N;;;;; A2E1;YI SYLLABLE ZZEP;Lo;0;L;;;;;N;;;;; A2E2;YI SYLLABLE ZZUX;Lo;0;L;;;;;N;;;;; A2E3;YI SYLLABLE ZZU;Lo;0;L;;;;;N;;;;; A2E4;YI SYLLABLE ZZUP;Lo;0;L;;;;;N;;;;; A2E5;YI SYLLABLE ZZURX;Lo;0;L;;;;;N;;;;; A2E6;YI SYLLABLE ZZUR;Lo;0;L;;;;;N;;;;; A2E7;YI SYLLABLE ZZYT;Lo;0;L;;;;;N;;;;; A2E8;YI SYLLABLE ZZYX;Lo;0;L;;;;;N;;;;; A2E9;YI SYLLABLE ZZY;Lo;0;L;;;;;N;;;;; A2EA;YI SYLLABLE ZZYP;Lo;0;L;;;;;N;;;;; A2EB;YI SYLLABLE ZZYRX;Lo;0;L;;;;;N;;;;; A2EC;YI SYLLABLE ZZYR;Lo;0;L;;;;;N;;;;; A2ED;YI SYLLABLE NZIT;Lo;0;L;;;;;N;;;;; A2EE;YI SYLLABLE NZIX;Lo;0;L;;;;;N;;;;; A2EF;YI SYLLABLE NZI;Lo;0;L;;;;;N;;;;; A2F0;YI SYLLABLE NZIP;Lo;0;L;;;;;N;;;;; A2F1;YI SYLLABLE NZIEX;Lo;0;L;;;;;N;;;;; A2F2;YI SYLLABLE NZIE;Lo;0;L;;;;;N;;;;; A2F3;YI SYLLABLE NZIEP;Lo;0;L;;;;;N;;;;; A2F4;YI SYLLABLE NZAT;Lo;0;L;;;;;N;;;;; A2F5;YI SYLLABLE NZAX;Lo;0;L;;;;;N;;;;; A2F6;YI SYLLABLE NZA;Lo;0;L;;;;;N;;;;; A2F7;YI SYLLABLE NZAP;Lo;0;L;;;;;N;;;;; A2F8;YI SYLLABLE NZUOX;Lo;0;L;;;;;N;;;;; A2F9;YI SYLLABLE NZUO;Lo;0;L;;;;;N;;;;; A2FA;YI SYLLABLE NZOX;Lo;0;L;;;;;N;;;;; A2FB;YI SYLLABLE NZOP;Lo;0;L;;;;;N;;;;; A2FC;YI SYLLABLE NZEX;Lo;0;L;;;;;N;;;;; A2FD;YI SYLLABLE NZE;Lo;0;L;;;;;N;;;;; A2FE;YI SYLLABLE NZUX;Lo;0;L;;;;;N;;;;; A2FF;YI SYLLABLE NZU;Lo;0;L;;;;;N;;;;; A300;YI SYLLABLE NZUP;Lo;0;L;;;;;N;;;;; A301;YI SYLLABLE NZURX;Lo;0;L;;;;;N;;;;; A302;YI SYLLABLE NZUR;Lo;0;L;;;;;N;;;;; A303;YI SYLLABLE NZYT;Lo;0;L;;;;;N;;;;; A304;YI SYLLABLE NZYX;Lo;0;L;;;;;N;;;;; A305;YI SYLLABLE NZY;Lo;0;L;;;;;N;;;;; A306;YI SYLLABLE NZYP;Lo;0;L;;;;;N;;;;; A307;YI SYLLABLE NZYRX;Lo;0;L;;;;;N;;;;; A308;YI SYLLABLE NZYR;Lo;0;L;;;;;N;;;;; A309;YI SYLLABLE SIT;Lo;0;L;;;;;N;;;;; A30A;YI SYLLABLE SIX;Lo;0;L;;;;;N;;;;; A30B;YI SYLLABLE SI;Lo;0;L;;;;;N;;;;; A30C;YI SYLLABLE SIP;Lo;0;L;;;;;N;;;;; A30D;YI SYLLABLE SIEX;Lo;0;L;;;;;N;;;;; A30E;YI SYLLABLE SIE;Lo;0;L;;;;;N;;;;; A30F;YI SYLLABLE SIEP;Lo;0;L;;;;;N;;;;; A310;YI SYLLABLE SAT;Lo;0;L;;;;;N;;;;; A311;YI SYLLABLE SAX;Lo;0;L;;;;;N;;;;; A312;YI SYLLABLE SA;Lo;0;L;;;;;N;;;;; A313;YI SYLLABLE SAP;Lo;0;L;;;;;N;;;;; A314;YI SYLLABLE SUOX;Lo;0;L;;;;;N;;;;; A315;YI SYLLABLE SUO;Lo;0;L;;;;;N;;;;; A316;YI SYLLABLE SUOP;Lo;0;L;;;;;N;;;;; A317;YI SYLLABLE SOT;Lo;0;L;;;;;N;;;;; A318;YI SYLLABLE SOX;Lo;0;L;;;;;N;;;;; A319;YI SYLLABLE SO;Lo;0;L;;;;;N;;;;; A31A;YI SYLLABLE SOP;Lo;0;L;;;;;N;;;;; A31B;YI SYLLABLE SEX;Lo;0;L;;;;;N;;;;; A31C;YI SYLLABLE SE;Lo;0;L;;;;;N;;;;; A31D;YI SYLLABLE SEP;Lo;0;L;;;;;N;;;;; A31E;YI SYLLABLE SUT;Lo;0;L;;;;;N;;;;; A31F;YI SYLLABLE SUX;Lo;0;L;;;;;N;;;;; A320;YI SYLLABLE SU;Lo;0;L;;;;;N;;;;; A321;YI SYLLABLE SUP;Lo;0;L;;;;;N;;;;; A322;YI SYLLABLE SURX;Lo;0;L;;;;;N;;;;; A323;YI SYLLABLE SUR;Lo;0;L;;;;;N;;;;; A324;YI SYLLABLE SYT;Lo;0;L;;;;;N;;;;; A325;YI SYLLABLE SYX;Lo;0;L;;;;;N;;;;; A326;YI SYLLABLE SY;Lo;0;L;;;;;N;;;;; A327;YI SYLLABLE SYP;Lo;0;L;;;;;N;;;;; A328;YI SYLLABLE SYRX;Lo;0;L;;;;;N;;;;; A329;YI SYLLABLE SYR;Lo;0;L;;;;;N;;;;; A32A;YI SYLLABLE SSIT;Lo;0;L;;;;;N;;;;; A32B;YI SYLLABLE SSIX;Lo;0;L;;;;;N;;;;; A32C;YI SYLLABLE SSI;Lo;0;L;;;;;N;;;;; A32D;YI SYLLABLE SSIP;Lo;0;L;;;;;N;;;;; A32E;YI SYLLABLE SSIEX;Lo;0;L;;;;;N;;;;; A32F;YI SYLLABLE SSIE;Lo;0;L;;;;;N;;;;; A330;YI SYLLABLE SSIEP;Lo;0;L;;;;;N;;;;; A331;YI SYLLABLE SSAT;Lo;0;L;;;;;N;;;;; A332;YI SYLLABLE SSAX;Lo;0;L;;;;;N;;;;; A333;YI SYLLABLE SSA;Lo;0;L;;;;;N;;;;; A334;YI SYLLABLE SSAP;Lo;0;L;;;;;N;;;;; A335;YI SYLLABLE SSOT;Lo;0;L;;;;;N;;;;; A336;YI SYLLABLE SSOX;Lo;0;L;;;;;N;;;;; A337;YI SYLLABLE SSO;Lo;0;L;;;;;N;;;;; A338;YI SYLLABLE SSOP;Lo;0;L;;;;;N;;;;; A339;YI SYLLABLE SSEX;Lo;0;L;;;;;N;;;;; A33A;YI SYLLABLE SSE;Lo;0;L;;;;;N;;;;; A33B;YI SYLLABLE SSEP;Lo;0;L;;;;;N;;;;; A33C;YI SYLLABLE SSUT;Lo;0;L;;;;;N;;;;; A33D;YI SYLLABLE SSUX;Lo;0;L;;;;;N;;;;; A33E;YI SYLLABLE SSU;Lo;0;L;;;;;N;;;;; A33F;YI SYLLABLE SSUP;Lo;0;L;;;;;N;;;;; A340;YI SYLLABLE SSYT;Lo;0;L;;;;;N;;;;; A341;YI SYLLABLE SSYX;Lo;0;L;;;;;N;;;;; A342;YI SYLLABLE SSY;Lo;0;L;;;;;N;;;;; A343;YI SYLLABLE SSYP;Lo;0;L;;;;;N;;;;; A344;YI SYLLABLE SSYRX;Lo;0;L;;;;;N;;;;; A345;YI SYLLABLE SSYR;Lo;0;L;;;;;N;;;;; A346;YI SYLLABLE ZHAT;Lo;0;L;;;;;N;;;;; A347;YI SYLLABLE ZHAX;Lo;0;L;;;;;N;;;;; A348;YI SYLLABLE ZHA;Lo;0;L;;;;;N;;;;; A349;YI SYLLABLE ZHAP;Lo;0;L;;;;;N;;;;; A34A;YI SYLLABLE ZHUOX;Lo;0;L;;;;;N;;;;; A34B;YI SYLLABLE ZHUO;Lo;0;L;;;;;N;;;;; A34C;YI SYLLABLE ZHUOP;Lo;0;L;;;;;N;;;;; A34D;YI SYLLABLE ZHOT;Lo;0;L;;;;;N;;;;; A34E;YI SYLLABLE ZHOX;Lo;0;L;;;;;N;;;;; A34F;YI SYLLABLE ZHO;Lo;0;L;;;;;N;;;;; A350;YI SYLLABLE ZHOP;Lo;0;L;;;;;N;;;;; A351;YI SYLLABLE ZHET;Lo;0;L;;;;;N;;;;; A352;YI SYLLABLE ZHEX;Lo;0;L;;;;;N;;;;; A353;YI SYLLABLE ZHE;Lo;0;L;;;;;N;;;;; A354;YI SYLLABLE ZHEP;Lo;0;L;;;;;N;;;;; A355;YI SYLLABLE ZHUT;Lo;0;L;;;;;N;;;;; A356;YI SYLLABLE ZHUX;Lo;0;L;;;;;N;;;;; A357;YI SYLLABLE ZHU;Lo;0;L;;;;;N;;;;; A358;YI SYLLABLE ZHUP;Lo;0;L;;;;;N;;;;; A359;YI SYLLABLE ZHURX;Lo;0;L;;;;;N;;;;; A35A;YI SYLLABLE ZHUR;Lo;0;L;;;;;N;;;;; A35B;YI SYLLABLE ZHYT;Lo;0;L;;;;;N;;;;; A35C;YI SYLLABLE ZHYX;Lo;0;L;;;;;N;;;;; A35D;YI SYLLABLE ZHY;Lo;0;L;;;;;N;;;;; A35E;YI SYLLABLE ZHYP;Lo;0;L;;;;;N;;;;; A35F;YI SYLLABLE ZHYRX;Lo;0;L;;;;;N;;;;; A360;YI SYLLABLE ZHYR;Lo;0;L;;;;;N;;;;; A361;YI SYLLABLE CHAT;Lo;0;L;;;;;N;;;;; A362;YI SYLLABLE CHAX;Lo;0;L;;;;;N;;;;; A363;YI SYLLABLE CHA;Lo;0;L;;;;;N;;;;; A364;YI SYLLABLE CHAP;Lo;0;L;;;;;N;;;;; A365;YI SYLLABLE CHUOT;Lo;0;L;;;;;N;;;;; A366;YI SYLLABLE CHUOX;Lo;0;L;;;;;N;;;;; A367;YI SYLLABLE CHUO;Lo;0;L;;;;;N;;;;; A368;YI SYLLABLE CHUOP;Lo;0;L;;;;;N;;;;; A369;YI SYLLABLE CHOT;Lo;0;L;;;;;N;;;;; A36A;YI SYLLABLE CHOX;Lo;0;L;;;;;N;;;;; A36B;YI SYLLABLE CHO;Lo;0;L;;;;;N;;;;; A36C;YI SYLLABLE CHOP;Lo;0;L;;;;;N;;;;; A36D;YI SYLLABLE CHET;Lo;0;L;;;;;N;;;;; A36E;YI SYLLABLE CHEX;Lo;0;L;;;;;N;;;;; A36F;YI SYLLABLE CHE;Lo;0;L;;;;;N;;;;; A370;YI SYLLABLE CHEP;Lo;0;L;;;;;N;;;;; A371;YI SYLLABLE CHUX;Lo;0;L;;;;;N;;;;; A372;YI SYLLABLE CHU;Lo;0;L;;;;;N;;;;; A373;YI SYLLABLE CHUP;Lo;0;L;;;;;N;;;;; A374;YI SYLLABLE CHURX;Lo;0;L;;;;;N;;;;; A375;YI SYLLABLE CHUR;Lo;0;L;;;;;N;;;;; A376;YI SYLLABLE CHYT;Lo;0;L;;;;;N;;;;; A377;YI SYLLABLE CHYX;Lo;0;L;;;;;N;;;;; A378;YI SYLLABLE CHY;Lo;0;L;;;;;N;;;;; A379;YI SYLLABLE CHYP;Lo;0;L;;;;;N;;;;; A37A;YI SYLLABLE CHYRX;Lo;0;L;;;;;N;;;;; A37B;YI SYLLABLE CHYR;Lo;0;L;;;;;N;;;;; A37C;YI SYLLABLE RRAX;Lo;0;L;;;;;N;;;;; A37D;YI SYLLABLE RRA;Lo;0;L;;;;;N;;;;; A37E;YI SYLLABLE RRUOX;Lo;0;L;;;;;N;;;;; A37F;YI SYLLABLE RRUO;Lo;0;L;;;;;N;;;;; A380;YI SYLLABLE RROT;Lo;0;L;;;;;N;;;;; A381;YI SYLLABLE RROX;Lo;0;L;;;;;N;;;;; A382;YI SYLLABLE RRO;Lo;0;L;;;;;N;;;;; A383;YI SYLLABLE RROP;Lo;0;L;;;;;N;;;;; A384;YI SYLLABLE RRET;Lo;0;L;;;;;N;;;;; A385;YI SYLLABLE RREX;Lo;0;L;;;;;N;;;;; A386;YI SYLLABLE RRE;Lo;0;L;;;;;N;;;;; A387;YI SYLLABLE RREP;Lo;0;L;;;;;N;;;;; A388;YI SYLLABLE RRUT;Lo;0;L;;;;;N;;;;; A389;YI SYLLABLE RRUX;Lo;0;L;;;;;N;;;;; A38A;YI SYLLABLE RRU;Lo;0;L;;;;;N;;;;; A38B;YI SYLLABLE RRUP;Lo;0;L;;;;;N;;;;; A38C;YI SYLLABLE RRURX;Lo;0;L;;;;;N;;;;; A38D;YI SYLLABLE RRUR;Lo;0;L;;;;;N;;;;; A38E;YI SYLLABLE RRYT;Lo;0;L;;;;;N;;;;; A38F;YI SYLLABLE RRYX;Lo;0;L;;;;;N;;;;; A390;YI SYLLABLE RRY;Lo;0;L;;;;;N;;;;; A391;YI SYLLABLE RRYP;Lo;0;L;;;;;N;;;;; A392;YI SYLLABLE RRYRX;Lo;0;L;;;;;N;;;;; A393;YI SYLLABLE RRYR;Lo;0;L;;;;;N;;;;; A394;YI SYLLABLE NRAT;Lo;0;L;;;;;N;;;;; A395;YI SYLLABLE NRAX;Lo;0;L;;;;;N;;;;; A396;YI SYLLABLE NRA;Lo;0;L;;;;;N;;;;; A397;YI SYLLABLE NRAP;Lo;0;L;;;;;N;;;;; A398;YI SYLLABLE NROX;Lo;0;L;;;;;N;;;;; A399;YI SYLLABLE NRO;Lo;0;L;;;;;N;;;;; A39A;YI SYLLABLE NROP;Lo;0;L;;;;;N;;;;; A39B;YI SYLLABLE NRET;Lo;0;L;;;;;N;;;;; A39C;YI SYLLABLE NREX;Lo;0;L;;;;;N;;;;; A39D;YI SYLLABLE NRE;Lo;0;L;;;;;N;;;;; A39E;YI SYLLABLE NREP;Lo;0;L;;;;;N;;;;; A39F;YI SYLLABLE NRUT;Lo;0;L;;;;;N;;;;; A3A0;YI SYLLABLE NRUX;Lo;0;L;;;;;N;;;;; A3A1;YI SYLLABLE NRU;Lo;0;L;;;;;N;;;;; A3A2;YI SYLLABLE NRUP;Lo;0;L;;;;;N;;;;; A3A3;YI SYLLABLE NRURX;Lo;0;L;;;;;N;;;;; A3A4;YI SYLLABLE NRUR;Lo;0;L;;;;;N;;;;; A3A5;YI SYLLABLE NRYT;Lo;0;L;;;;;N;;;;; A3A6;YI SYLLABLE NRYX;Lo;0;L;;;;;N;;;;; A3A7;YI SYLLABLE NRY;Lo;0;L;;;;;N;;;;; A3A8;YI SYLLABLE NRYP;Lo;0;L;;;;;N;;;;; A3A9;YI SYLLABLE NRYRX;Lo;0;L;;;;;N;;;;; A3AA;YI SYLLABLE NRYR;Lo;0;L;;;;;N;;;;; A3AB;YI SYLLABLE SHAT;Lo;0;L;;;;;N;;;;; A3AC;YI SYLLABLE SHAX;Lo;0;L;;;;;N;;;;; A3AD;YI SYLLABLE SHA;Lo;0;L;;;;;N;;;;; A3AE;YI SYLLABLE SHAP;Lo;0;L;;;;;N;;;;; A3AF;YI SYLLABLE SHUOX;Lo;0;L;;;;;N;;;;; A3B0;YI SYLLABLE SHUO;Lo;0;L;;;;;N;;;;; A3B1;YI SYLLABLE SHUOP;Lo;0;L;;;;;N;;;;; A3B2;YI SYLLABLE SHOT;Lo;0;L;;;;;N;;;;; A3B3;YI SYLLABLE SHOX;Lo;0;L;;;;;N;;;;; A3B4;YI SYLLABLE SHO;Lo;0;L;;;;;N;;;;; A3B5;YI SYLLABLE SHOP;Lo;0;L;;;;;N;;;;; A3B6;YI SYLLABLE SHET;Lo;0;L;;;;;N;;;;; A3B7;YI SYLLABLE SHEX;Lo;0;L;;;;;N;;;;; A3B8;YI SYLLABLE SHE;Lo;0;L;;;;;N;;;;; A3B9;YI SYLLABLE SHEP;Lo;0;L;;;;;N;;;;; A3BA;YI SYLLABLE SHUT;Lo;0;L;;;;;N;;;;; A3BB;YI SYLLABLE SHUX;Lo;0;L;;;;;N;;;;; A3BC;YI SYLLABLE SHU;Lo;0;L;;;;;N;;;;; A3BD;YI SYLLABLE SHUP;Lo;0;L;;;;;N;;;;; A3BE;YI SYLLABLE SHURX;Lo;0;L;;;;;N;;;;; A3BF;YI SYLLABLE SHUR;Lo;0;L;;;;;N;;;;; A3C0;YI SYLLABLE SHYT;Lo;0;L;;;;;N;;;;; A3C1;YI SYLLABLE SHYX;Lo;0;L;;;;;N;;;;; A3C2;YI SYLLABLE SHY;Lo;0;L;;;;;N;;;;; A3C3;YI SYLLABLE SHYP;Lo;0;L;;;;;N;;;;; A3C4;YI SYLLABLE SHYRX;Lo;0;L;;;;;N;;;;; A3C5;YI SYLLABLE SHYR;Lo;0;L;;;;;N;;;;; A3C6;YI SYLLABLE RAT;Lo;0;L;;;;;N;;;;; A3C7;YI SYLLABLE RAX;Lo;0;L;;;;;N;;;;; A3C8;YI SYLLABLE RA;Lo;0;L;;;;;N;;;;; A3C9;YI SYLLABLE RAP;Lo;0;L;;;;;N;;;;; A3CA;YI SYLLABLE RUOX;Lo;0;L;;;;;N;;;;; A3CB;YI SYLLABLE RUO;Lo;0;L;;;;;N;;;;; A3CC;YI SYLLABLE RUOP;Lo;0;L;;;;;N;;;;; A3CD;YI SYLLABLE ROT;Lo;0;L;;;;;N;;;;; A3CE;YI SYLLABLE ROX;Lo;0;L;;;;;N;;;;; A3CF;YI SYLLABLE RO;Lo;0;L;;;;;N;;;;; A3D0;YI SYLLABLE ROP;Lo;0;L;;;;;N;;;;; A3D1;YI SYLLABLE REX;Lo;0;L;;;;;N;;;;; A3D2;YI SYLLABLE RE;Lo;0;L;;;;;N;;;;; A3D3;YI SYLLABLE REP;Lo;0;L;;;;;N;;;;; A3D4;YI SYLLABLE RUT;Lo;0;L;;;;;N;;;;; A3D5;YI SYLLABLE RUX;Lo;0;L;;;;;N;;;;; A3D6;YI SYLLABLE RU;Lo;0;L;;;;;N;;;;; A3D7;YI SYLLABLE RUP;Lo;0;L;;;;;N;;;;; A3D8;YI SYLLABLE RURX;Lo;0;L;;;;;N;;;;; A3D9;YI SYLLABLE RUR;Lo;0;L;;;;;N;;;;; A3DA;YI SYLLABLE RYT;Lo;0;L;;;;;N;;;;; A3DB;YI SYLLABLE RYX;Lo;0;L;;;;;N;;;;; A3DC;YI SYLLABLE RY;Lo;0;L;;;;;N;;;;; A3DD;YI SYLLABLE RYP;Lo;0;L;;;;;N;;;;; A3DE;YI SYLLABLE RYRX;Lo;0;L;;;;;N;;;;; A3DF;YI SYLLABLE RYR;Lo;0;L;;;;;N;;;;; A3E0;YI SYLLABLE JIT;Lo;0;L;;;;;N;;;;; A3E1;YI SYLLABLE JIX;Lo;0;L;;;;;N;;;;; A3E2;YI SYLLABLE JI;Lo;0;L;;;;;N;;;;; A3E3;YI SYLLABLE JIP;Lo;0;L;;;;;N;;;;; A3E4;YI SYLLABLE JIET;Lo;0;L;;;;;N;;;;; A3E5;YI SYLLABLE JIEX;Lo;0;L;;;;;N;;;;; A3E6;YI SYLLABLE JIE;Lo;0;L;;;;;N;;;;; A3E7;YI SYLLABLE JIEP;Lo;0;L;;;;;N;;;;; A3E8;YI SYLLABLE JUOT;Lo;0;L;;;;;N;;;;; A3E9;YI SYLLABLE JUOX;Lo;0;L;;;;;N;;;;; A3EA;YI SYLLABLE JUO;Lo;0;L;;;;;N;;;;; A3EB;YI SYLLABLE JUOP;Lo;0;L;;;;;N;;;;; A3EC;YI SYLLABLE JOT;Lo;0;L;;;;;N;;;;; A3ED;YI SYLLABLE JOX;Lo;0;L;;;;;N;;;;; A3EE;YI SYLLABLE JO;Lo;0;L;;;;;N;;;;; A3EF;YI SYLLABLE JOP;Lo;0;L;;;;;N;;;;; A3F0;YI SYLLABLE JUT;Lo;0;L;;;;;N;;;;; A3F1;YI SYLLABLE JUX;Lo;0;L;;;;;N;;;;; A3F2;YI SYLLABLE JU;Lo;0;L;;;;;N;;;;; A3F3;YI SYLLABLE JUP;Lo;0;L;;;;;N;;;;; A3F4;YI SYLLABLE JURX;Lo;0;L;;;;;N;;;;; A3F5;YI SYLLABLE JUR;Lo;0;L;;;;;N;;;;; A3F6;YI SYLLABLE JYT;Lo;0;L;;;;;N;;;;; A3F7;YI SYLLABLE JYX;Lo;0;L;;;;;N;;;;; A3F8;YI SYLLABLE JY;Lo;0;L;;;;;N;;;;; A3F9;YI SYLLABLE JYP;Lo;0;L;;;;;N;;;;; A3FA;YI SYLLABLE JYRX;Lo;0;L;;;;;N;;;;; A3FB;YI SYLLABLE JYR;Lo;0;L;;;;;N;;;;; A3FC;YI SYLLABLE QIT;Lo;0;L;;;;;N;;;;; A3FD;YI SYLLABLE QIX;Lo;0;L;;;;;N;;;;; A3FE;YI SYLLABLE QI;Lo;0;L;;;;;N;;;;; A3FF;YI SYLLABLE QIP;Lo;0;L;;;;;N;;;;; A400;YI SYLLABLE QIET;Lo;0;L;;;;;N;;;;; A401;YI SYLLABLE QIEX;Lo;0;L;;;;;N;;;;; A402;YI SYLLABLE QIE;Lo;0;L;;;;;N;;;;; A403;YI SYLLABLE QIEP;Lo;0;L;;;;;N;;;;; A404;YI SYLLABLE QUOT;Lo;0;L;;;;;N;;;;; A405;YI SYLLABLE QUOX;Lo;0;L;;;;;N;;;;; A406;YI SYLLABLE QUO;Lo;0;L;;;;;N;;;;; A407;YI SYLLABLE QUOP;Lo;0;L;;;;;N;;;;; A408;YI SYLLABLE QOT;Lo;0;L;;;;;N;;;;; A409;YI SYLLABLE QOX;Lo;0;L;;;;;N;;;;; A40A;YI SYLLABLE QO;Lo;0;L;;;;;N;;;;; A40B;YI SYLLABLE QOP;Lo;0;L;;;;;N;;;;; A40C;YI SYLLABLE QUT;Lo;0;L;;;;;N;;;;; A40D;YI SYLLABLE QUX;Lo;0;L;;;;;N;;;;; A40E;YI SYLLABLE QU;Lo;0;L;;;;;N;;;;; A40F;YI SYLLABLE QUP;Lo;0;L;;;;;N;;;;; A410;YI SYLLABLE QURX;Lo;0;L;;;;;N;;;;; A411;YI SYLLABLE QUR;Lo;0;L;;;;;N;;;;; A412;YI SYLLABLE QYT;Lo;0;L;;;;;N;;;;; A413;YI SYLLABLE QYX;Lo;0;L;;;;;N;;;;; A414;YI SYLLABLE QY;Lo;0;L;;;;;N;;;;; A415;YI SYLLABLE QYP;Lo;0;L;;;;;N;;;;; A416;YI SYLLABLE QYRX;Lo;0;L;;;;;N;;;;; A417;YI SYLLABLE QYR;Lo;0;L;;;;;N;;;;; A418;YI SYLLABLE JJIT;Lo;0;L;;;;;N;;;;; A419;YI SYLLABLE JJIX;Lo;0;L;;;;;N;;;;; A41A;YI SYLLABLE JJI;Lo;0;L;;;;;N;;;;; A41B;YI SYLLABLE JJIP;Lo;0;L;;;;;N;;;;; A41C;YI SYLLABLE JJIET;Lo;0;L;;;;;N;;;;; A41D;YI SYLLABLE JJIEX;Lo;0;L;;;;;N;;;;; A41E;YI SYLLABLE JJIE;Lo;0;L;;;;;N;;;;; A41F;YI SYLLABLE JJIEP;Lo;0;L;;;;;N;;;;; A420;YI SYLLABLE JJUOX;Lo;0;L;;;;;N;;;;; A421;YI SYLLABLE JJUO;Lo;0;L;;;;;N;;;;; A422;YI SYLLABLE JJUOP;Lo;0;L;;;;;N;;;;; A423;YI SYLLABLE JJOT;Lo;0;L;;;;;N;;;;; A424;YI SYLLABLE JJOX;Lo;0;L;;;;;N;;;;; A425;YI SYLLABLE JJO;Lo;0;L;;;;;N;;;;; A426;YI SYLLABLE JJOP;Lo;0;L;;;;;N;;;;; A427;YI SYLLABLE JJUT;Lo;0;L;;;;;N;;;;; A428;YI SYLLABLE JJUX;Lo;0;L;;;;;N;;;;; A429;YI SYLLABLE JJU;Lo;0;L;;;;;N;;;;; A42A;YI SYLLABLE JJUP;Lo;0;L;;;;;N;;;;; A42B;YI SYLLABLE JJURX;Lo;0;L;;;;;N;;;;; A42C;YI SYLLABLE JJUR;Lo;0;L;;;;;N;;;;; A42D;YI SYLLABLE JJYT;Lo;0;L;;;;;N;;;;; A42E;YI SYLLABLE JJYX;Lo;0;L;;;;;N;;;;; A42F;YI SYLLABLE JJY;Lo;0;L;;;;;N;;;;; A430;YI SYLLABLE JJYP;Lo;0;L;;;;;N;;;;; A431;YI SYLLABLE NJIT;Lo;0;L;;;;;N;;;;; A432;YI SYLLABLE NJIX;Lo;0;L;;;;;N;;;;; A433;YI SYLLABLE NJI;Lo;0;L;;;;;N;;;;; A434;YI SYLLABLE NJIP;Lo;0;L;;;;;N;;;;; A435;YI SYLLABLE NJIET;Lo;0;L;;;;;N;;;;; A436;YI SYLLABLE NJIEX;Lo;0;L;;;;;N;;;;; A437;YI SYLLABLE NJIE;Lo;0;L;;;;;N;;;;; A438;YI SYLLABLE NJIEP;Lo;0;L;;;;;N;;;;; A439;YI SYLLABLE NJUOX;Lo;0;L;;;;;N;;;;; A43A;YI SYLLABLE NJUO;Lo;0;L;;;;;N;;;;; A43B;YI SYLLABLE NJOT;Lo;0;L;;;;;N;;;;; A43C;YI SYLLABLE NJOX;Lo;0;L;;;;;N;;;;; A43D;YI SYLLABLE NJO;Lo;0;L;;;;;N;;;;; A43E;YI SYLLABLE NJOP;Lo;0;L;;;;;N;;;;; A43F;YI SYLLABLE NJUX;Lo;0;L;;;;;N;;;;; A440;YI SYLLABLE NJU;Lo;0;L;;;;;N;;;;; A441;YI SYLLABLE NJUP;Lo;0;L;;;;;N;;;;; A442;YI SYLLABLE NJURX;Lo;0;L;;;;;N;;;;; A443;YI SYLLABLE NJUR;Lo;0;L;;;;;N;;;;; A444;YI SYLLABLE NJYT;Lo;0;L;;;;;N;;;;; A445;YI SYLLABLE NJYX;Lo;0;L;;;;;N;;;;; A446;YI SYLLABLE NJY;Lo;0;L;;;;;N;;;;; A447;YI SYLLABLE NJYP;Lo;0;L;;;;;N;;;;; A448;YI SYLLABLE NJYRX;Lo;0;L;;;;;N;;;;; A449;YI SYLLABLE NJYR;Lo;0;L;;;;;N;;;;; A44A;YI SYLLABLE NYIT;Lo;0;L;;;;;N;;;;; A44B;YI SYLLABLE NYIX;Lo;0;L;;;;;N;;;;; A44C;YI SYLLABLE NYI;Lo;0;L;;;;;N;;;;; A44D;YI SYLLABLE NYIP;Lo;0;L;;;;;N;;;;; A44E;YI SYLLABLE NYIET;Lo;0;L;;;;;N;;;;; A44F;YI SYLLABLE NYIEX;Lo;0;L;;;;;N;;;;; A450;YI SYLLABLE NYIE;Lo;0;L;;;;;N;;;;; A451;YI SYLLABLE NYIEP;Lo;0;L;;;;;N;;;;; A452;YI SYLLABLE NYUOX;Lo;0;L;;;;;N;;;;; A453;YI SYLLABLE NYUO;Lo;0;L;;;;;N;;;;; A454;YI SYLLABLE NYUOP;Lo;0;L;;;;;N;;;;; A455;YI SYLLABLE NYOT;Lo;0;L;;;;;N;;;;; A456;YI SYLLABLE NYOX;Lo;0;L;;;;;N;;;;; A457;YI SYLLABLE NYO;Lo;0;L;;;;;N;;;;; A458;YI SYLLABLE NYOP;Lo;0;L;;;;;N;;;;; A459;YI SYLLABLE NYUT;Lo;0;L;;;;;N;;;;; A45A;YI SYLLABLE NYUX;Lo;0;L;;;;;N;;;;; A45B;YI SYLLABLE NYU;Lo;0;L;;;;;N;;;;; A45C;YI SYLLABLE NYUP;Lo;0;L;;;;;N;;;;; A45D;YI SYLLABLE XIT;Lo;0;L;;;;;N;;;;; A45E;YI SYLLABLE XIX;Lo;0;L;;;;;N;;;;; A45F;YI SYLLABLE XI;Lo;0;L;;;;;N;;;;; A460;YI SYLLABLE XIP;Lo;0;L;;;;;N;;;;; A461;YI SYLLABLE XIET;Lo;0;L;;;;;N;;;;; A462;YI SYLLABLE XIEX;Lo;0;L;;;;;N;;;;; A463;YI SYLLABLE XIE;Lo;0;L;;;;;N;;;;; A464;YI SYLLABLE XIEP;Lo;0;L;;;;;N;;;;; A465;YI SYLLABLE XUOX;Lo;0;L;;;;;N;;;;; A466;YI SYLLABLE XUO;Lo;0;L;;;;;N;;;;; A467;YI SYLLABLE XOT;Lo;0;L;;;;;N;;;;; A468;YI SYLLABLE XOX;Lo;0;L;;;;;N;;;;; A469;YI SYLLABLE XO;Lo;0;L;;;;;N;;;;; A46A;YI SYLLABLE XOP;Lo;0;L;;;;;N;;;;; A46B;YI SYLLABLE XYT;Lo;0;L;;;;;N;;;;; A46C;YI SYLLABLE XYX;Lo;0;L;;;;;N;;;;; A46D;YI SYLLABLE XY;Lo;0;L;;;;;N;;;;; A46E;YI SYLLABLE XYP;Lo;0;L;;;;;N;;;;; A46F;YI SYLLABLE XYRX;Lo;0;L;;;;;N;;;;; A470;YI SYLLABLE XYR;Lo;0;L;;;;;N;;;;; A471;YI SYLLABLE YIT;Lo;0;L;;;;;N;;;;; A472;YI SYLLABLE YIX;Lo;0;L;;;;;N;;;;; A473;YI SYLLABLE YI;Lo;0;L;;;;;N;;;;; A474;YI SYLLABLE YIP;Lo;0;L;;;;;N;;;;; A475;YI SYLLABLE YIET;Lo;0;L;;;;;N;;;;; A476;YI SYLLABLE YIEX;Lo;0;L;;;;;N;;;;; A477;YI SYLLABLE YIE;Lo;0;L;;;;;N;;;;; A478;YI SYLLABLE YIEP;Lo;0;L;;;;;N;;;;; A479;YI SYLLABLE YUOT;Lo;0;L;;;;;N;;;;; A47A;YI SYLLABLE YUOX;Lo;0;L;;;;;N;;;;; A47B;YI SYLLABLE YUO;Lo;0;L;;;;;N;;;;; A47C;YI SYLLABLE YUOP;Lo;0;L;;;;;N;;;;; A47D;YI SYLLABLE YOT;Lo;0;L;;;;;N;;;;; A47E;YI SYLLABLE YOX;Lo;0;L;;;;;N;;;;; A47F;YI SYLLABLE YO;Lo;0;L;;;;;N;;;;; A480;YI SYLLABLE YOP;Lo;0;L;;;;;N;;;;; A481;YI SYLLABLE YUT;Lo;0;L;;;;;N;;;;; A482;YI SYLLABLE YUX;Lo;0;L;;;;;N;;;;; A483;YI SYLLABLE YU;Lo;0;L;;;;;N;;;;; A484;YI SYLLABLE YUP;Lo;0;L;;;;;N;;;;; A485;YI SYLLABLE YURX;Lo;0;L;;;;;N;;;;; A486;YI SYLLABLE YUR;Lo;0;L;;;;;N;;;;; A487;YI SYLLABLE YYT;Lo;0;L;;;;;N;;;;; A488;YI SYLLABLE YYX;Lo;0;L;;;;;N;;;;; A489;YI SYLLABLE YY;Lo;0;L;;;;;N;;;;; A48A;YI SYLLABLE YYP;Lo;0;L;;;;;N;;;;; A48B;YI SYLLABLE YYRX;Lo;0;L;;;;;N;;;;; A48C;YI SYLLABLE YYR;Lo;0;L;;;;;N;;;;; A490;YI RADICAL QOT;So;0;ON;;;;;N;;;;; A491;YI RADICAL LI;So;0;ON;;;;;N;;;;; A492;YI RADICAL KIT;So;0;ON;;;;;N;;;;; A493;YI RADICAL NYIP;So;0;ON;;;;;N;;;;; A494;YI RADICAL CYP;So;0;ON;;;;;N;;;;; A495;YI RADICAL SSI;So;0;ON;;;;;N;;;;; A496;YI RADICAL GGOP;So;0;ON;;;;;N;;;;; A497;YI RADICAL GEP;So;0;ON;;;;;N;;;;; A498;YI RADICAL MI;So;0;ON;;;;;N;;;;; A499;YI RADICAL HXIT;So;0;ON;;;;;N;;;;; A49A;YI RADICAL LYR;So;0;ON;;;;;N;;;;; A49B;YI RADICAL BBUT;So;0;ON;;;;;N;;;;; A49C;YI RADICAL MOP;So;0;ON;;;;;N;;;;; A49D;YI RADICAL YO;So;0;ON;;;;;N;;;;; A49E;YI RADICAL PUT;So;0;ON;;;;;N;;;;; A49F;YI RADICAL HXUO;So;0;ON;;;;;N;;;;; A4A0;YI RADICAL TAT;So;0;ON;;;;;N;;;;; A4A1;YI RADICAL GA;So;0;ON;;;;;N;;;;; A4A2;YI RADICAL ZUP;So;0;ON;;;;;N;;;;; A4A3;YI RADICAL CYT;So;0;ON;;;;;N;;;;; A4A4;YI RADICAL DDUR;So;0;ON;;;;;N;;;;; A4A5;YI RADICAL BUR;So;0;ON;;;;;N;;;;; A4A6;YI RADICAL GGUO;So;0;ON;;;;;N;;;;; A4A7;YI RADICAL NYOP;So;0;ON;;;;;N;;;;; A4A8;YI RADICAL TU;So;0;ON;;;;;N;;;;; A4A9;YI RADICAL OP;So;0;ON;;;;;N;;;;; A4AA;YI RADICAL JJUT;So;0;ON;;;;;N;;;;; A4AB;YI RADICAL ZOT;So;0;ON;;;;;N;;;;; A4AC;YI RADICAL PYT;So;0;ON;;;;;N;;;;; A4AD;YI RADICAL HMO;So;0;ON;;;;;N;;;;; A4AE;YI RADICAL YIT;So;0;ON;;;;;N;;;;; A4AF;YI RADICAL VUR;So;0;ON;;;;;N;;;;; A4B0;YI RADICAL SHY;So;0;ON;;;;;N;;;;; A4B1;YI RADICAL VEP;So;0;ON;;;;;N;;;;; A4B2;YI RADICAL ZA;So;0;ON;;;;;N;;;;; A4B3;YI RADICAL JO;So;0;ON;;;;;N;;;;; A4B4;YI RADICAL NZUP;So;0;ON;;;;;N;;;;; A4B5;YI RADICAL JJY;So;0;ON;;;;;N;;;;; A4B6;YI RADICAL GOT;So;0;ON;;;;;N;;;;; A4B7;YI RADICAL JJIE;So;0;ON;;;;;N;;;;; A4B8;YI RADICAL WO;So;0;ON;;;;;N;;;;; A4B9;YI RADICAL DU;So;0;ON;;;;;N;;;;; A4BA;YI RADICAL SHUR;So;0;ON;;;;;N;;;;; A4BB;YI RADICAL LIE;So;0;ON;;;;;N;;;;; A4BC;YI RADICAL CY;So;0;ON;;;;;N;;;;; A4BD;YI RADICAL CUOP;So;0;ON;;;;;N;;;;; A4BE;YI RADICAL CIP;So;0;ON;;;;;N;;;;; A4BF;YI RADICAL HXOP;So;0;ON;;;;;N;;;;; A4C0;YI RADICAL SHAT;So;0;ON;;;;;N;;;;; A4C1;YI RADICAL ZUR;So;0;ON;;;;;N;;;;; A4C2;YI RADICAL SHOP;So;0;ON;;;;;N;;;;; A4C3;YI RADICAL CHE;So;0;ON;;;;;N;;;;; A4C4;YI RADICAL ZZIET;So;0;ON;;;;;N;;;;; A4C5;YI RADICAL NBIE;So;0;ON;;;;;N;;;;; A4C6;YI RADICAL KE;So;0;ON;;;;;N;;;;; AC00;;Lo;0;L;;;;;N;;;;; D7A3;;Lo;0;L;;;;;N;;;;; D800;;Cs;0;L;;;;;N;;;;; DB7F;;Cs;0;L;;;;;N;;;;; DB80;;Cs;0;L;;;;;N;;;;; DBFF;;Cs;0;L;;;;;N;;;;; DC00;;Cs;0;L;;;;;N;;;;; DFFF;;Cs;0;L;;;;;N;;;;; E000;;Co;0;L;;;;;N;;;;; F8FF;;Co;0;L;;;;;N;;;;; F900;CJK COMPATIBILITY IDEOGRAPH-F900;Lo;0;L;8C48;;;;N;;;;; F901;CJK COMPATIBILITY IDEOGRAPH-F901;Lo;0;L;66F4;;;;N;;;;; F902;CJK COMPATIBILITY IDEOGRAPH-F902;Lo;0;L;8ECA;;;;N;;;;; F903;CJK COMPATIBILITY IDEOGRAPH-F903;Lo;0;L;8CC8;;;;N;;;;; F904;CJK COMPATIBILITY IDEOGRAPH-F904;Lo;0;L;6ED1;;;;N;;;;; F905;CJK COMPATIBILITY IDEOGRAPH-F905;Lo;0;L;4E32;;;;N;;;;; F906;CJK COMPATIBILITY IDEOGRAPH-F906;Lo;0;L;53E5;;;;N;;;;; F907;CJK COMPATIBILITY IDEOGRAPH-F907;Lo;0;L;9F9C;;;;N;;;;; F908;CJK COMPATIBILITY IDEOGRAPH-F908;Lo;0;L;9F9C;;;;N;;;;; F909;CJK COMPATIBILITY IDEOGRAPH-F909;Lo;0;L;5951;;;;N;;;;; F90A;CJK COMPATIBILITY IDEOGRAPH-F90A;Lo;0;L;91D1;;;;N;;;;; F90B;CJK COMPATIBILITY IDEOGRAPH-F90B;Lo;0;L;5587;;;;N;;;;; F90C;CJK COMPATIBILITY IDEOGRAPH-F90C;Lo;0;L;5948;;;;N;;;;; F90D;CJK COMPATIBILITY IDEOGRAPH-F90D;Lo;0;L;61F6;;;;N;;;;; F90E;CJK COMPATIBILITY IDEOGRAPH-F90E;Lo;0;L;7669;;;;N;;;;; F90F;CJK COMPATIBILITY IDEOGRAPH-F90F;Lo;0;L;7F85;;;;N;;;;; F910;CJK COMPATIBILITY IDEOGRAPH-F910;Lo;0;L;863F;;;;N;;;;; F911;CJK COMPATIBILITY IDEOGRAPH-F911;Lo;0;L;87BA;;;;N;;;;; F912;CJK COMPATIBILITY IDEOGRAPH-F912;Lo;0;L;88F8;;;;N;;;;; F913;CJK COMPATIBILITY IDEOGRAPH-F913;Lo;0;L;908F;;;;N;;;;; F914;CJK COMPATIBILITY IDEOGRAPH-F914;Lo;0;L;6A02;;;;N;;;;; F915;CJK COMPATIBILITY IDEOGRAPH-F915;Lo;0;L;6D1B;;;;N;;;;; F916;CJK COMPATIBILITY IDEOGRAPH-F916;Lo;0;L;70D9;;;;N;;;;; F917;CJK COMPATIBILITY IDEOGRAPH-F917;Lo;0;L;73DE;;;;N;;;;; F918;CJK COMPATIBILITY IDEOGRAPH-F918;Lo;0;L;843D;;;;N;;;;; F919;CJK COMPATIBILITY IDEOGRAPH-F919;Lo;0;L;916A;;;;N;;;;; F91A;CJK COMPATIBILITY IDEOGRAPH-F91A;Lo;0;L;99F1;;;;N;;;;; F91B;CJK COMPATIBILITY IDEOGRAPH-F91B;Lo;0;L;4E82;;;;N;;;;; F91C;CJK COMPATIBILITY IDEOGRAPH-F91C;Lo;0;L;5375;;;;N;;;;; F91D;CJK COMPATIBILITY IDEOGRAPH-F91D;Lo;0;L;6B04;;;;N;;;;; F91E;CJK COMPATIBILITY IDEOGRAPH-F91E;Lo;0;L;721B;;;;N;;;;; F91F;CJK COMPATIBILITY IDEOGRAPH-F91F;Lo;0;L;862D;;;;N;;;;; F920;CJK COMPATIBILITY IDEOGRAPH-F920;Lo;0;L;9E1E;;;;N;;;;; F921;CJK COMPATIBILITY IDEOGRAPH-F921;Lo;0;L;5D50;;;;N;;;;; F922;CJK COMPATIBILITY IDEOGRAPH-F922;Lo;0;L;6FEB;;;;N;;;;; F923;CJK COMPATIBILITY IDEOGRAPH-F923;Lo;0;L;85CD;;;;N;;;;; F924;CJK COMPATIBILITY IDEOGRAPH-F924;Lo;0;L;8964;;;;N;;;;; F925;CJK COMPATIBILITY IDEOGRAPH-F925;Lo;0;L;62C9;;;;N;;;;; F926;CJK COMPATIBILITY IDEOGRAPH-F926;Lo;0;L;81D8;;;;N;;;;; F927;CJK COMPATIBILITY IDEOGRAPH-F927;Lo;0;L;881F;;;;N;;;;; F928;CJK COMPATIBILITY IDEOGRAPH-F928;Lo;0;L;5ECA;;;;N;;;;; F929;CJK COMPATIBILITY IDEOGRAPH-F929;Lo;0;L;6717;;;;N;;;;; F92A;CJK COMPATIBILITY IDEOGRAPH-F92A;Lo;0;L;6D6A;;;;N;;;;; F92B;CJK COMPATIBILITY IDEOGRAPH-F92B;Lo;0;L;72FC;;;;N;;;;; F92C;CJK COMPATIBILITY IDEOGRAPH-F92C;Lo;0;L;90CE;;;;N;;;;; F92D;CJK COMPATIBILITY IDEOGRAPH-F92D;Lo;0;L;4F86;;;;N;;;;; F92E;CJK COMPATIBILITY IDEOGRAPH-F92E;Lo;0;L;51B7;;;;N;;;;; F92F;CJK COMPATIBILITY IDEOGRAPH-F92F;Lo;0;L;52DE;;;;N;;;;; F930;CJK COMPATIBILITY IDEOGRAPH-F930;Lo;0;L;64C4;;;;N;;;;; F931;CJK COMPATIBILITY IDEOGRAPH-F931;Lo;0;L;6AD3;;;;N;;;;; F932;CJK COMPATIBILITY IDEOGRAPH-F932;Lo;0;L;7210;;;;N;;;;; F933;CJK COMPATIBILITY IDEOGRAPH-F933;Lo;0;L;76E7;;;;N;;;;; F934;CJK COMPATIBILITY IDEOGRAPH-F934;Lo;0;L;8001;;;;N;;;;; F935;CJK COMPATIBILITY IDEOGRAPH-F935;Lo;0;L;8606;;;;N;;;;; F936;CJK COMPATIBILITY IDEOGRAPH-F936;Lo;0;L;865C;;;;N;;;;; F937;CJK COMPATIBILITY IDEOGRAPH-F937;Lo;0;L;8DEF;;;;N;;;;; F938;CJK COMPATIBILITY IDEOGRAPH-F938;Lo;0;L;9732;;;;N;;;;; F939;CJK COMPATIBILITY IDEOGRAPH-F939;Lo;0;L;9B6F;;;;N;;;;; F93A;CJK COMPATIBILITY IDEOGRAPH-F93A;Lo;0;L;9DFA;;;;N;;;;; F93B;CJK COMPATIBILITY IDEOGRAPH-F93B;Lo;0;L;788C;;;;N;;;;; F93C;CJK COMPATIBILITY IDEOGRAPH-F93C;Lo;0;L;797F;;;;N;;;;; F93D;CJK COMPATIBILITY IDEOGRAPH-F93D;Lo;0;L;7DA0;;;;N;;;;; F93E;CJK COMPATIBILITY IDEOGRAPH-F93E;Lo;0;L;83C9;;;;N;;;;; F93F;CJK COMPATIBILITY IDEOGRAPH-F93F;Lo;0;L;9304;;;;N;;;;; F940;CJK COMPATIBILITY IDEOGRAPH-F940;Lo;0;L;9E7F;;;;N;;;;; F941;CJK COMPATIBILITY IDEOGRAPH-F941;Lo;0;L;8AD6;;;;N;;;;; F942;CJK COMPATIBILITY IDEOGRAPH-F942;Lo;0;L;58DF;;;;N;;;;; F943;CJK COMPATIBILITY IDEOGRAPH-F943;Lo;0;L;5F04;;;;N;;;;; F944;CJK COMPATIBILITY IDEOGRAPH-F944;Lo;0;L;7C60;;;;N;;;;; F945;CJK COMPATIBILITY IDEOGRAPH-F945;Lo;0;L;807E;;;;N;;;;; F946;CJK COMPATIBILITY IDEOGRAPH-F946;Lo;0;L;7262;;;;N;;;;; F947;CJK COMPATIBILITY IDEOGRAPH-F947;Lo;0;L;78CA;;;;N;;;;; F948;CJK COMPATIBILITY IDEOGRAPH-F948;Lo;0;L;8CC2;;;;N;;;;; F949;CJK COMPATIBILITY IDEOGRAPH-F949;Lo;0;L;96F7;;;;N;;;;; F94A;CJK COMPATIBILITY IDEOGRAPH-F94A;Lo;0;L;58D8;;;;N;;;;; F94B;CJK COMPATIBILITY IDEOGRAPH-F94B;Lo;0;L;5C62;;;;N;;;;; F94C;CJK COMPATIBILITY IDEOGRAPH-F94C;Lo;0;L;6A13;;;;N;;;;; F94D;CJK COMPATIBILITY IDEOGRAPH-F94D;Lo;0;L;6DDA;;;;N;;;;; F94E;CJK COMPATIBILITY IDEOGRAPH-F94E;Lo;0;L;6F0F;;;;N;;;;; F94F;CJK COMPATIBILITY IDEOGRAPH-F94F;Lo;0;L;7D2F;;;;N;;;;; F950;CJK COMPATIBILITY IDEOGRAPH-F950;Lo;0;L;7E37;;;;N;;;;; F951;CJK COMPATIBILITY IDEOGRAPH-F951;Lo;0;L;964B;;;;N;;;;; F952;CJK COMPATIBILITY IDEOGRAPH-F952;Lo;0;L;52D2;;;;N;;;;; F953;CJK COMPATIBILITY IDEOGRAPH-F953;Lo;0;L;808B;;;;N;;;;; F954;CJK COMPATIBILITY IDEOGRAPH-F954;Lo;0;L;51DC;;;;N;;;;; F955;CJK COMPATIBILITY IDEOGRAPH-F955;Lo;0;L;51CC;;;;N;;;;; F956;CJK COMPATIBILITY IDEOGRAPH-F956;Lo;0;L;7A1C;;;;N;;;;; F957;CJK COMPATIBILITY IDEOGRAPH-F957;Lo;0;L;7DBE;;;;N;;;;; F958;CJK COMPATIBILITY IDEOGRAPH-F958;Lo;0;L;83F1;;;;N;;;;; F959;CJK COMPATIBILITY IDEOGRAPH-F959;Lo;0;L;9675;;;;N;;;;; F95A;CJK COMPATIBILITY IDEOGRAPH-F95A;Lo;0;L;8B80;;;;N;;;;; F95B;CJK COMPATIBILITY IDEOGRAPH-F95B;Lo;0;L;62CF;;;;N;;;;; F95C;CJK COMPATIBILITY IDEOGRAPH-F95C;Lo;0;L;6A02;;;;N;;;;; F95D;CJK COMPATIBILITY IDEOGRAPH-F95D;Lo;0;L;8AFE;;;;N;;;;; F95E;CJK COMPATIBILITY IDEOGRAPH-F95E;Lo;0;L;4E39;;;;N;;;;; F95F;CJK COMPATIBILITY IDEOGRAPH-F95F;Lo;0;L;5BE7;;;;N;;;;; F960;CJK COMPATIBILITY IDEOGRAPH-F960;Lo;0;L;6012;;;;N;;;;; F961;CJK COMPATIBILITY IDEOGRAPH-F961;Lo;0;L;7387;;;;N;;;;; F962;CJK COMPATIBILITY IDEOGRAPH-F962;Lo;0;L;7570;;;;N;;;;; F963;CJK COMPATIBILITY IDEOGRAPH-F963;Lo;0;L;5317;;;;N;;;;; F964;CJK COMPATIBILITY IDEOGRAPH-F964;Lo;0;L;78FB;;;;N;;;;; F965;CJK COMPATIBILITY IDEOGRAPH-F965;Lo;0;L;4FBF;;;;N;;;;; F966;CJK COMPATIBILITY IDEOGRAPH-F966;Lo;0;L;5FA9;;;;N;;;;; F967;CJK COMPATIBILITY IDEOGRAPH-F967;Lo;0;L;4E0D;;;;N;;;;; F968;CJK COMPATIBILITY IDEOGRAPH-F968;Lo;0;L;6CCC;;;;N;;;;; F969;CJK COMPATIBILITY IDEOGRAPH-F969;Lo;0;L;6578;;;;N;;;;; F96A;CJK COMPATIBILITY IDEOGRAPH-F96A;Lo;0;L;7D22;;;;N;;;;; F96B;CJK COMPATIBILITY IDEOGRAPH-F96B;Lo;0;L;53C3;;;;N;;;;; F96C;CJK COMPATIBILITY IDEOGRAPH-F96C;Lo;0;L;585E;;;;N;;;;; F96D;CJK COMPATIBILITY IDEOGRAPH-F96D;Lo;0;L;7701;;;;N;;;;; F96E;CJK COMPATIBILITY IDEOGRAPH-F96E;Lo;0;L;8449;;;;N;;;;; F96F;CJK COMPATIBILITY IDEOGRAPH-F96F;Lo;0;L;8AAA;;;;N;;;;; F970;CJK COMPATIBILITY IDEOGRAPH-F970;Lo;0;L;6BBA;;;;N;;;;; F971;CJK COMPATIBILITY IDEOGRAPH-F971;Lo;0;L;8FB0;;;;N;;;;; F972;CJK COMPATIBILITY IDEOGRAPH-F972;Lo;0;L;6C88;;;;N;;;;; F973;CJK COMPATIBILITY IDEOGRAPH-F973;Lo;0;L;62FE;;;;N;;;;; F974;CJK COMPATIBILITY IDEOGRAPH-F974;Lo;0;L;82E5;;;;N;;;;; F975;CJK COMPATIBILITY IDEOGRAPH-F975;Lo;0;L;63A0;;;;N;;;;; F976;CJK COMPATIBILITY IDEOGRAPH-F976;Lo;0;L;7565;;;;N;;;;; F977;CJK COMPATIBILITY IDEOGRAPH-F977;Lo;0;L;4EAE;;;;N;;;;; F978;CJK COMPATIBILITY IDEOGRAPH-F978;Lo;0;L;5169;;;;N;;;;; F979;CJK COMPATIBILITY IDEOGRAPH-F979;Lo;0;L;51C9;;;;N;;;;; F97A;CJK COMPATIBILITY IDEOGRAPH-F97A;Lo;0;L;6881;;;;N;;;;; F97B;CJK COMPATIBILITY IDEOGRAPH-F97B;Lo;0;L;7CE7;;;;N;;;;; F97C;CJK COMPATIBILITY IDEOGRAPH-F97C;Lo;0;L;826F;;;;N;;;;; F97D;CJK COMPATIBILITY IDEOGRAPH-F97D;Lo;0;L;8AD2;;;;N;;;;; F97E;CJK COMPATIBILITY IDEOGRAPH-F97E;Lo;0;L;91CF;;;;N;;;;; F97F;CJK COMPATIBILITY IDEOGRAPH-F97F;Lo;0;L;52F5;;;;N;;;;; F980;CJK COMPATIBILITY IDEOGRAPH-F980;Lo;0;L;5442;;;;N;;;;; F981;CJK COMPATIBILITY IDEOGRAPH-F981;Lo;0;L;5973;;;;N;;;;; F982;CJK COMPATIBILITY IDEOGRAPH-F982;Lo;0;L;5EEC;;;;N;;;;; F983;CJK COMPATIBILITY IDEOGRAPH-F983;Lo;0;L;65C5;;;;N;;;;; F984;CJK COMPATIBILITY IDEOGRAPH-F984;Lo;0;L;6FFE;;;;N;;;;; F985;CJK COMPATIBILITY IDEOGRAPH-F985;Lo;0;L;792A;;;;N;;;;; F986;CJK COMPATIBILITY IDEOGRAPH-F986;Lo;0;L;95AD;;;;N;;;;; F987;CJK COMPATIBILITY IDEOGRAPH-F987;Lo;0;L;9A6A;;;;N;;;;; F988;CJK COMPATIBILITY IDEOGRAPH-F988;Lo;0;L;9E97;;;;N;;;;; F989;CJK COMPATIBILITY IDEOGRAPH-F989;Lo;0;L;9ECE;;;;N;;;;; F98A;CJK COMPATIBILITY IDEOGRAPH-F98A;Lo;0;L;529B;;;;N;;;;; F98B;CJK COMPATIBILITY IDEOGRAPH-F98B;Lo;0;L;66C6;;;;N;;;;; F98C;CJK COMPATIBILITY IDEOGRAPH-F98C;Lo;0;L;6B77;;;;N;;;;; F98D;CJK COMPATIBILITY IDEOGRAPH-F98D;Lo;0;L;8F62;;;;N;;;;; F98E;CJK COMPATIBILITY IDEOGRAPH-F98E;Lo;0;L;5E74;;;;N;;;;; F98F;CJK COMPATIBILITY IDEOGRAPH-F98F;Lo;0;L;6190;;;;N;;;;; F990;CJK COMPATIBILITY IDEOGRAPH-F990;Lo;0;L;6200;;;;N;;;;; F991;CJK COMPATIBILITY IDEOGRAPH-F991;Lo;0;L;649A;;;;N;;;;; F992;CJK COMPATIBILITY IDEOGRAPH-F992;Lo;0;L;6F23;;;;N;;;;; F993;CJK COMPATIBILITY IDEOGRAPH-F993;Lo;0;L;7149;;;;N;;;;; F994;CJK COMPATIBILITY IDEOGRAPH-F994;Lo;0;L;7489;;;;N;;;;; F995;CJK COMPATIBILITY IDEOGRAPH-F995;Lo;0;L;79CA;;;;N;;;;; F996;CJK COMPATIBILITY IDEOGRAPH-F996;Lo;0;L;7DF4;;;;N;;;;; F997;CJK COMPATIBILITY IDEOGRAPH-F997;Lo;0;L;806F;;;;N;;;;; F998;CJK COMPATIBILITY IDEOGRAPH-F998;Lo;0;L;8F26;;;;N;;;;; F999;CJK COMPATIBILITY IDEOGRAPH-F999;Lo;0;L;84EE;;;;N;;;;; F99A;CJK COMPATIBILITY IDEOGRAPH-F99A;Lo;0;L;9023;;;;N;;;;; F99B;CJK COMPATIBILITY IDEOGRAPH-F99B;Lo;0;L;934A;;;;N;;;;; F99C;CJK COMPATIBILITY IDEOGRAPH-F99C;Lo;0;L;5217;;;;N;;;;; F99D;CJK COMPATIBILITY IDEOGRAPH-F99D;Lo;0;L;52A3;;;;N;;;;; F99E;CJK COMPATIBILITY IDEOGRAPH-F99E;Lo;0;L;54BD;;;;N;;;;; F99F;CJK COMPATIBILITY IDEOGRAPH-F99F;Lo;0;L;70C8;;;;N;;;;; F9A0;CJK COMPATIBILITY IDEOGRAPH-F9A0;Lo;0;L;88C2;;;;N;;;;; F9A1;CJK COMPATIBILITY IDEOGRAPH-F9A1;Lo;0;L;8AAA;;;;N;;;;; F9A2;CJK COMPATIBILITY IDEOGRAPH-F9A2;Lo;0;L;5EC9;;;;N;;;;; F9A3;CJK COMPATIBILITY IDEOGRAPH-F9A3;Lo;0;L;5FF5;;;;N;;;;; F9A4;CJK COMPATIBILITY IDEOGRAPH-F9A4;Lo;0;L;637B;;;;N;;;;; F9A5;CJK COMPATIBILITY IDEOGRAPH-F9A5;Lo;0;L;6BAE;;;;N;;;;; F9A6;CJK COMPATIBILITY IDEOGRAPH-F9A6;Lo;0;L;7C3E;;;;N;;;;; F9A7;CJK COMPATIBILITY IDEOGRAPH-F9A7;Lo;0;L;7375;;;;N;;;;; F9A8;CJK COMPATIBILITY IDEOGRAPH-F9A8;Lo;0;L;4EE4;;;;N;;;;; F9A9;CJK COMPATIBILITY IDEOGRAPH-F9A9;Lo;0;L;56F9;;;;N;;;;; F9AA;CJK COMPATIBILITY IDEOGRAPH-F9AA;Lo;0;L;5BE7;;;;N;;;;; F9AB;CJK COMPATIBILITY IDEOGRAPH-F9AB;Lo;0;L;5DBA;;;;N;;;;; F9AC;CJK COMPATIBILITY IDEOGRAPH-F9AC;Lo;0;L;601C;;;;N;;;;; F9AD;CJK COMPATIBILITY IDEOGRAPH-F9AD;Lo;0;L;73B2;;;;N;;;;; F9AE;CJK COMPATIBILITY IDEOGRAPH-F9AE;Lo;0;L;7469;;;;N;;;;; F9AF;CJK COMPATIBILITY IDEOGRAPH-F9AF;Lo;0;L;7F9A;;;;N;;;;; F9B0;CJK COMPATIBILITY IDEOGRAPH-F9B0;Lo;0;L;8046;;;;N;;;;; F9B1;CJK COMPATIBILITY IDEOGRAPH-F9B1;Lo;0;L;9234;;;;N;;;;; F9B2;CJK COMPATIBILITY IDEOGRAPH-F9B2;Lo;0;L;96F6;;;;N;;;;; F9B3;CJK COMPATIBILITY IDEOGRAPH-F9B3;Lo;0;L;9748;;;;N;;;;; F9B4;CJK COMPATIBILITY IDEOGRAPH-F9B4;Lo;0;L;9818;;;;N;;;;; F9B5;CJK COMPATIBILITY IDEOGRAPH-F9B5;Lo;0;L;4F8B;;;;N;;;;; F9B6;CJK COMPATIBILITY IDEOGRAPH-F9B6;Lo;0;L;79AE;;;;N;;;;; F9B7;CJK COMPATIBILITY IDEOGRAPH-F9B7;Lo;0;L;91B4;;;;N;;;;; F9B8;CJK COMPATIBILITY IDEOGRAPH-F9B8;Lo;0;L;96B8;;;;N;;;;; F9B9;CJK COMPATIBILITY IDEOGRAPH-F9B9;Lo;0;L;60E1;;;;N;;;;; F9BA;CJK COMPATIBILITY IDEOGRAPH-F9BA;Lo;0;L;4E86;;;;N;;;;; F9BB;CJK COMPATIBILITY IDEOGRAPH-F9BB;Lo;0;L;50DA;;;;N;;;;; F9BC;CJK COMPATIBILITY IDEOGRAPH-F9BC;Lo;0;L;5BEE;;;;N;;;;; F9BD;CJK COMPATIBILITY IDEOGRAPH-F9BD;Lo;0;L;5C3F;;;;N;;;;; F9BE;CJK COMPATIBILITY IDEOGRAPH-F9BE;Lo;0;L;6599;;;;N;;;;; F9BF;CJK COMPATIBILITY IDEOGRAPH-F9BF;Lo;0;L;6A02;;;;N;;;;; F9C0;CJK COMPATIBILITY IDEOGRAPH-F9C0;Lo;0;L;71CE;;;;N;;;;; F9C1;CJK COMPATIBILITY IDEOGRAPH-F9C1;Lo;0;L;7642;;;;N;;;;; F9C2;CJK COMPATIBILITY IDEOGRAPH-F9C2;Lo;0;L;84FC;;;;N;;;;; F9C3;CJK COMPATIBILITY IDEOGRAPH-F9C3;Lo;0;L;907C;;;;N;;;;; F9C4;CJK COMPATIBILITY IDEOGRAPH-F9C4;Lo;0;L;9F8D;;;;N;;;;; F9C5;CJK COMPATIBILITY IDEOGRAPH-F9C5;Lo;0;L;6688;;;;N;;;;; F9C6;CJK COMPATIBILITY IDEOGRAPH-F9C6;Lo;0;L;962E;;;;N;;;;; F9C7;CJK COMPATIBILITY IDEOGRAPH-F9C7;Lo;0;L;5289;;;;N;;;;; F9C8;CJK COMPATIBILITY IDEOGRAPH-F9C8;Lo;0;L;677B;;;;N;;;;; F9C9;CJK COMPATIBILITY IDEOGRAPH-F9C9;Lo;0;L;67F3;;;;N;;;;; F9CA;CJK COMPATIBILITY IDEOGRAPH-F9CA;Lo;0;L;6D41;;;;N;;;;; F9CB;CJK COMPATIBILITY IDEOGRAPH-F9CB;Lo;0;L;6E9C;;;;N;;;;; F9CC;CJK COMPATIBILITY IDEOGRAPH-F9CC;Lo;0;L;7409;;;;N;;;;; F9CD;CJK COMPATIBILITY IDEOGRAPH-F9CD;Lo;0;L;7559;;;;N;;;;; F9CE;CJK COMPATIBILITY IDEOGRAPH-F9CE;Lo;0;L;786B;;;;N;;;;; F9CF;CJK COMPATIBILITY IDEOGRAPH-F9CF;Lo;0;L;7D10;;;;N;;;;; F9D0;CJK COMPATIBILITY IDEOGRAPH-F9D0;Lo;0;L;985E;;;;N;;;;; F9D1;CJK COMPATIBILITY IDEOGRAPH-F9D1;Lo;0;L;516D;;;;N;;;;; F9D2;CJK COMPATIBILITY IDEOGRAPH-F9D2;Lo;0;L;622E;;;;N;;;;; F9D3;CJK COMPATIBILITY IDEOGRAPH-F9D3;Lo;0;L;9678;;;;N;;;;; F9D4;CJK COMPATIBILITY IDEOGRAPH-F9D4;Lo;0;L;502B;;;;N;;;;; F9D5;CJK COMPATIBILITY IDEOGRAPH-F9D5;Lo;0;L;5D19;;;;N;;;;; F9D6;CJK COMPATIBILITY IDEOGRAPH-F9D6;Lo;0;L;6DEA;;;;N;;;;; F9D7;CJK COMPATIBILITY IDEOGRAPH-F9D7;Lo;0;L;8F2A;;;;N;;;;; F9D8;CJK COMPATIBILITY IDEOGRAPH-F9D8;Lo;0;L;5F8B;;;;N;;;;; F9D9;CJK COMPATIBILITY IDEOGRAPH-F9D9;Lo;0;L;6144;;;;N;;;;; F9DA;CJK COMPATIBILITY IDEOGRAPH-F9DA;Lo;0;L;6817;;;;N;;;;; F9DB;CJK COMPATIBILITY IDEOGRAPH-F9DB;Lo;0;L;7387;;;;N;;;;; F9DC;CJK COMPATIBILITY IDEOGRAPH-F9DC;Lo;0;L;9686;;;;N;;;;; F9DD;CJK COMPATIBILITY IDEOGRAPH-F9DD;Lo;0;L;5229;;;;N;;;;; F9DE;CJK COMPATIBILITY IDEOGRAPH-F9DE;Lo;0;L;540F;;;;N;;;;; F9DF;CJK COMPATIBILITY IDEOGRAPH-F9DF;Lo;0;L;5C65;;;;N;;;;; F9E0;CJK COMPATIBILITY IDEOGRAPH-F9E0;Lo;0;L;6613;;;;N;;;;; F9E1;CJK COMPATIBILITY IDEOGRAPH-F9E1;Lo;0;L;674E;;;;N;;;;; F9E2;CJK COMPATIBILITY IDEOGRAPH-F9E2;Lo;0;L;68A8;;;;N;;;;; F9E3;CJK COMPATIBILITY IDEOGRAPH-F9E3;Lo;0;L;6CE5;;;;N;;;;; F9E4;CJK COMPATIBILITY IDEOGRAPH-F9E4;Lo;0;L;7406;;;;N;;;;; F9E5;CJK COMPATIBILITY IDEOGRAPH-F9E5;Lo;0;L;75E2;;;;N;;;;; F9E6;CJK COMPATIBILITY IDEOGRAPH-F9E6;Lo;0;L;7F79;;;;N;;;;; F9E7;CJK COMPATIBILITY IDEOGRAPH-F9E7;Lo;0;L;88CF;;;;N;;;;; F9E8;CJK COMPATIBILITY IDEOGRAPH-F9E8;Lo;0;L;88E1;;;;N;;;;; F9E9;CJK COMPATIBILITY IDEOGRAPH-F9E9;Lo;0;L;91CC;;;;N;;;;; F9EA;CJK COMPATIBILITY IDEOGRAPH-F9EA;Lo;0;L;96E2;;;;N;;;;; F9EB;CJK COMPATIBILITY IDEOGRAPH-F9EB;Lo;0;L;533F;;;;N;;;;; F9EC;CJK COMPATIBILITY IDEOGRAPH-F9EC;Lo;0;L;6EBA;;;;N;;;;; F9ED;CJK COMPATIBILITY IDEOGRAPH-F9ED;Lo;0;L;541D;;;;N;;;;; F9EE;CJK COMPATIBILITY IDEOGRAPH-F9EE;Lo;0;L;71D0;;;;N;;;;; F9EF;CJK COMPATIBILITY IDEOGRAPH-F9EF;Lo;0;L;7498;;;;N;;;;; F9F0;CJK COMPATIBILITY IDEOGRAPH-F9F0;Lo;0;L;85FA;;;;N;;;;; F9F1;CJK COMPATIBILITY IDEOGRAPH-F9F1;Lo;0;L;96A3;;;;N;;;;; F9F2;CJK COMPATIBILITY IDEOGRAPH-F9F2;Lo;0;L;9C57;;;;N;;;;; F9F3;CJK COMPATIBILITY IDEOGRAPH-F9F3;Lo;0;L;9E9F;;;;N;;;;; F9F4;CJK COMPATIBILITY IDEOGRAPH-F9F4;Lo;0;L;6797;;;;N;;;;; F9F5;CJK COMPATIBILITY IDEOGRAPH-F9F5;Lo;0;L;6DCB;;;;N;;;;; F9F6;CJK COMPATIBILITY IDEOGRAPH-F9F6;Lo;0;L;81E8;;;;N;;;;; F9F7;CJK COMPATIBILITY IDEOGRAPH-F9F7;Lo;0;L;7ACB;;;;N;;;;; F9F8;CJK COMPATIBILITY IDEOGRAPH-F9F8;Lo;0;L;7B20;;;;N;;;;; F9F9;CJK COMPATIBILITY IDEOGRAPH-F9F9;Lo;0;L;7C92;;;;N;;;;; F9FA;CJK COMPATIBILITY IDEOGRAPH-F9FA;Lo;0;L;72C0;;;;N;;;;; F9FB;CJK COMPATIBILITY IDEOGRAPH-F9FB;Lo;0;L;7099;;;;N;;;;; F9FC;CJK COMPATIBILITY IDEOGRAPH-F9FC;Lo;0;L;8B58;;;;N;;;;; F9FD;CJK COMPATIBILITY IDEOGRAPH-F9FD;Lo;0;L;4EC0;;;;N;;;;; F9FE;CJK COMPATIBILITY IDEOGRAPH-F9FE;Lo;0;L;8336;;;;N;;;;; F9FF;CJK COMPATIBILITY IDEOGRAPH-F9FF;Lo;0;L;523A;;;;N;;;;; FA00;CJK COMPATIBILITY IDEOGRAPH-FA00;Lo;0;L;5207;;;;N;;;;; FA01;CJK COMPATIBILITY IDEOGRAPH-FA01;Lo;0;L;5EA6;;;;N;;;;; FA02;CJK COMPATIBILITY IDEOGRAPH-FA02;Lo;0;L;62D3;;;;N;;;;; FA03;CJK COMPATIBILITY IDEOGRAPH-FA03;Lo;0;L;7CD6;;;;N;;;;; FA04;CJK COMPATIBILITY IDEOGRAPH-FA04;Lo;0;L;5B85;;;;N;;;;; FA05;CJK COMPATIBILITY IDEOGRAPH-FA05;Lo;0;L;6D1E;;;;N;;;;; FA06;CJK COMPATIBILITY IDEOGRAPH-FA06;Lo;0;L;66B4;;;;N;;;;; FA07;CJK COMPATIBILITY IDEOGRAPH-FA07;Lo;0;L;8F3B;;;;N;;;;; FA08;CJK COMPATIBILITY IDEOGRAPH-FA08;Lo;0;L;884C;;;;N;;;;; FA09;CJK COMPATIBILITY IDEOGRAPH-FA09;Lo;0;L;964D;;;;N;;;;; FA0A;CJK COMPATIBILITY IDEOGRAPH-FA0A;Lo;0;L;898B;;;;N;;;;; FA0B;CJK COMPATIBILITY IDEOGRAPH-FA0B;Lo;0;L;5ED3;;;;N;;;;; FA0C;CJK COMPATIBILITY IDEOGRAPH-FA0C;Lo;0;L;5140;;;;N;;;;; FA0D;CJK COMPATIBILITY IDEOGRAPH-FA0D;Lo;0;L;55C0;;;;N;;;;; FA0E;CJK COMPATIBILITY IDEOGRAPH-FA0E;Lo;0;L;;;;;N;;;;; FA0F;CJK COMPATIBILITY IDEOGRAPH-FA0F;Lo;0;L;;;;;N;;;;; FA10;CJK COMPATIBILITY IDEOGRAPH-FA10;Lo;0;L;585A;;;;N;;;;; FA11;CJK COMPATIBILITY IDEOGRAPH-FA11;Lo;0;L;;;;;N;;;;; FA12;CJK COMPATIBILITY IDEOGRAPH-FA12;Lo;0;L;6674;;;;N;;;;; FA13;CJK COMPATIBILITY IDEOGRAPH-FA13;Lo;0;L;;;;;N;;;;; FA14;CJK COMPATIBILITY IDEOGRAPH-FA14;Lo;0;L;;;;;N;;;;; FA15;CJK COMPATIBILITY IDEOGRAPH-FA15;Lo;0;L;51DE;;;;N;;;;; FA16;CJK COMPATIBILITY IDEOGRAPH-FA16;Lo;0;L;732A;;;;N;;;;; FA17;CJK COMPATIBILITY IDEOGRAPH-FA17;Lo;0;L;76CA;;;;N;;;;; FA18;CJK COMPATIBILITY IDEOGRAPH-FA18;Lo;0;L;793C;;;;N;;;;; FA19;CJK COMPATIBILITY IDEOGRAPH-FA19;Lo;0;L;795E;;;;N;;;;; FA1A;CJK COMPATIBILITY IDEOGRAPH-FA1A;Lo;0;L;7965;;;;N;;;;; FA1B;CJK COMPATIBILITY IDEOGRAPH-FA1B;Lo;0;L;798F;;;;N;;;;; FA1C;CJK COMPATIBILITY IDEOGRAPH-FA1C;Lo;0;L;9756;;;;N;;;;; FA1D;CJK COMPATIBILITY IDEOGRAPH-FA1D;Lo;0;L;7CBE;;;;N;;;;; FA1E;CJK COMPATIBILITY IDEOGRAPH-FA1E;Lo;0;L;7FBD;;;;N;;;;; FA1F;CJK COMPATIBILITY IDEOGRAPH-FA1F;Lo;0;L;;;;;N;;*;;; FA20;CJK COMPATIBILITY IDEOGRAPH-FA20;Lo;0;L;8612;;;;N;;;;; FA21;CJK COMPATIBILITY IDEOGRAPH-FA21;Lo;0;L;;;;;N;;;;; FA22;CJK COMPATIBILITY IDEOGRAPH-FA22;Lo;0;L;8AF8;;;;N;;;;; FA23;CJK COMPATIBILITY IDEOGRAPH-FA23;Lo;0;L;;;;;N;;*;;; FA24;CJK COMPATIBILITY IDEOGRAPH-FA24;Lo;0;L;;;;;N;;;;; FA25;CJK COMPATIBILITY IDEOGRAPH-FA25;Lo;0;L;9038;;;;N;;;;; FA26;CJK COMPATIBILITY IDEOGRAPH-FA26;Lo;0;L;90FD;;;;N;;;;; FA27;CJK COMPATIBILITY IDEOGRAPH-FA27;Lo;0;L;;;;;N;;;;; FA28;CJK COMPATIBILITY IDEOGRAPH-FA28;Lo;0;L;;;;;N;;;;; FA29;CJK COMPATIBILITY IDEOGRAPH-FA29;Lo;0;L;;;;;N;;;;; FA2A;CJK COMPATIBILITY IDEOGRAPH-FA2A;Lo;0;L;98EF;;;;N;;;;; FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;; FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;; FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;; FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;; FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;; FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;; FA33;CJK COMPATIBILITY IDEOGRAPH-FA33;Lo;0;L;52C9;;;;N;;;;; FA34;CJK COMPATIBILITY IDEOGRAPH-FA34;Lo;0;L;52E4;;;;N;;;;; FA35;CJK COMPATIBILITY IDEOGRAPH-FA35;Lo;0;L;5351;;;;N;;;;; FA36;CJK COMPATIBILITY IDEOGRAPH-FA36;Lo;0;L;559D;;;;N;;;;; FA37;CJK COMPATIBILITY IDEOGRAPH-FA37;Lo;0;L;5606;;;;N;;;;; FA38;CJK COMPATIBILITY IDEOGRAPH-FA38;Lo;0;L;5668;;;;N;;;;; FA39;CJK COMPATIBILITY IDEOGRAPH-FA39;Lo;0;L;5840;;;;N;;;;; FA3A;CJK COMPATIBILITY IDEOGRAPH-FA3A;Lo;0;L;58A8;;;;N;;;;; FA3B;CJK COMPATIBILITY IDEOGRAPH-FA3B;Lo;0;L;5C64;;;;N;;;;; FA3C;CJK COMPATIBILITY IDEOGRAPH-FA3C;Lo;0;L;5C6E;;;;N;;;;; FA3D;CJK COMPATIBILITY IDEOGRAPH-FA3D;Lo;0;L;6094;;;;N;;;;; FA3E;CJK COMPATIBILITY IDEOGRAPH-FA3E;Lo;0;L;6168;;;;N;;;;; FA3F;CJK COMPATIBILITY IDEOGRAPH-FA3F;Lo;0;L;618E;;;;N;;;;; FA40;CJK COMPATIBILITY IDEOGRAPH-FA40;Lo;0;L;61F2;;;;N;;;;; FA41;CJK COMPATIBILITY IDEOGRAPH-FA41;Lo;0;L;654F;;;;N;;;;; FA42;CJK COMPATIBILITY IDEOGRAPH-FA42;Lo;0;L;65E2;;;;N;;;;; FA43;CJK COMPATIBILITY IDEOGRAPH-FA43;Lo;0;L;6691;;;;N;;;;; FA44;CJK COMPATIBILITY IDEOGRAPH-FA44;Lo;0;L;6885;;;;N;;;;; FA45;CJK COMPATIBILITY IDEOGRAPH-FA45;Lo;0;L;6D77;;;;N;;;;; FA46;CJK COMPATIBILITY IDEOGRAPH-FA46;Lo;0;L;6E1A;;;;N;;;;; FA47;CJK COMPATIBILITY IDEOGRAPH-FA47;Lo;0;L;6F22;;;;N;;;;; FA48;CJK COMPATIBILITY IDEOGRAPH-FA48;Lo;0;L;716E;;;;N;;;;; FA49;CJK COMPATIBILITY IDEOGRAPH-FA49;Lo;0;L;722B;;;;N;;;;; FA4A;CJK COMPATIBILITY IDEOGRAPH-FA4A;Lo;0;L;7422;;;;N;;;;; FA4B;CJK COMPATIBILITY IDEOGRAPH-FA4B;Lo;0;L;7891;;;;N;;;;; FA4C;CJK COMPATIBILITY IDEOGRAPH-FA4C;Lo;0;L;793E;;;;N;;;;; FA4D;CJK COMPATIBILITY IDEOGRAPH-FA4D;Lo;0;L;7949;;;;N;;;;; FA4E;CJK COMPATIBILITY IDEOGRAPH-FA4E;Lo;0;L;7948;;;;N;;;;; FA4F;CJK COMPATIBILITY IDEOGRAPH-FA4F;Lo;0;L;7950;;;;N;;;;; FA50;CJK COMPATIBILITY IDEOGRAPH-FA50;Lo;0;L;7956;;;;N;;;;; FA51;CJK COMPATIBILITY IDEOGRAPH-FA51;Lo;0;L;795D;;;;N;;;;; FA52;CJK COMPATIBILITY IDEOGRAPH-FA52;Lo;0;L;798D;;;;N;;;;; FA53;CJK COMPATIBILITY IDEOGRAPH-FA53;Lo;0;L;798E;;;;N;;;;; FA54;CJK COMPATIBILITY IDEOGRAPH-FA54;Lo;0;L;7A40;;;;N;;;;; FA55;CJK COMPATIBILITY IDEOGRAPH-FA55;Lo;0;L;7A81;;;;N;;;;; FA56;CJK COMPATIBILITY IDEOGRAPH-FA56;Lo;0;L;7BC0;;;;N;;;;; FA57;CJK COMPATIBILITY IDEOGRAPH-FA57;Lo;0;L;7DF4;;;;N;;;;; FA58;CJK COMPATIBILITY IDEOGRAPH-FA58;Lo;0;L;7E09;;;;N;;;;; FA59;CJK COMPATIBILITY IDEOGRAPH-FA59;Lo;0;L;7E41;;;;N;;;;; FA5A;CJK COMPATIBILITY IDEOGRAPH-FA5A;Lo;0;L;7F72;;;;N;;;;; FA5B;CJK COMPATIBILITY IDEOGRAPH-FA5B;Lo;0;L;8005;;;;N;;;;; FA5C;CJK COMPATIBILITY IDEOGRAPH-FA5C;Lo;0;L;81ED;;;;N;;;;; FA5D;CJK COMPATIBILITY IDEOGRAPH-FA5D;Lo;0;L;8279;;;;N;;;;; FA5E;CJK COMPATIBILITY IDEOGRAPH-FA5E;Lo;0;L;8279;;;;N;;;;; FA5F;CJK COMPATIBILITY IDEOGRAPH-FA5F;Lo;0;L;8457;;;;N;;;;; FA60;CJK COMPATIBILITY IDEOGRAPH-FA60;Lo;0;L;8910;;;;N;;;;; FA61;CJK COMPATIBILITY IDEOGRAPH-FA61;Lo;0;L;8996;;;;N;;;;; FA62;CJK COMPATIBILITY IDEOGRAPH-FA62;Lo;0;L;8B01;;;;N;;;;; FA63;CJK COMPATIBILITY IDEOGRAPH-FA63;Lo;0;L;8B39;;;;N;;;;; FA64;CJK COMPATIBILITY IDEOGRAPH-FA64;Lo;0;L;8CD3;;;;N;;;;; FA65;CJK COMPATIBILITY IDEOGRAPH-FA65;Lo;0;L;8D08;;;;N;;;;; FA66;CJK COMPATIBILITY IDEOGRAPH-FA66;Lo;0;L;8FB6;;;;N;;;;; FA67;CJK COMPATIBILITY IDEOGRAPH-FA67;Lo;0;L;9038;;;;N;;;;; FA68;CJK COMPATIBILITY IDEOGRAPH-FA68;Lo;0;L;96E3;;;;N;;;;; FA69;CJK COMPATIBILITY IDEOGRAPH-FA69;Lo;0;L;97FF;;;;N;;;;; FA6A;CJK COMPATIBILITY IDEOGRAPH-FA6A;Lo;0;L;983B;;;;N;;;;; FB00;LATIN SMALL LIGATURE FF;Ll;0;L; 0066 0066;;;;N;;;;; FB01;LATIN SMALL LIGATURE FI;Ll;0;L; 0066 0069;;;;N;;;;; FB02;LATIN SMALL LIGATURE FL;Ll;0;L; 0066 006C;;;;N;;;;; FB03;LATIN SMALL LIGATURE FFI;Ll;0;L; 0066 0066 0069;;;;N;;;;; FB04;LATIN SMALL LIGATURE FFL;Ll;0;L; 0066 0066 006C;;;;N;;;;; FB05;LATIN SMALL LIGATURE LONG S T;Ll;0;L; 017F 0074;;;;N;;;;; FB06;LATIN SMALL LIGATURE ST;Ll;0;L; 0073 0074;;;;N;;;;; FB13;ARMENIAN SMALL LIGATURE MEN NOW;Ll;0;L; 0574 0576;;;;N;;;;; FB14;ARMENIAN SMALL LIGATURE MEN ECH;Ll;0;L; 0574 0565;;;;N;;;;; FB15;ARMENIAN SMALL LIGATURE MEN INI;Ll;0;L; 0574 056B;;;;N;;;;; FB16;ARMENIAN SMALL LIGATURE VEW NOW;Ll;0;L; 057E 0576;;;;N;;;;; FB17;ARMENIAN SMALL LIGATURE MEN XEH;Ll;0;L; 0574 056D;;;;N;;;;; FB1D;HEBREW LETTER YOD WITH HIRIQ;Lo;0;R;05D9 05B4;;;;N;;;;; FB1E;HEBREW POINT JUDEO-SPANISH VARIKA;Mn;26;NSM;;;;;N;HEBREW POINT VARIKA;;;; FB1F;HEBREW LIGATURE YIDDISH YOD YOD PATAH;Lo;0;R;05F2 05B7;;;;N;;;;; FB20;HEBREW LETTER ALTERNATIVE AYIN;Lo;0;R; 05E2;;;;N;;;;; FB21;HEBREW LETTER WIDE ALEF;Lo;0;R; 05D0;;;;N;;;;; FB22;HEBREW LETTER WIDE DALET;Lo;0;R; 05D3;;;;N;;;;; FB23;HEBREW LETTER WIDE HE;Lo;0;R; 05D4;;;;N;;;;; FB24;HEBREW LETTER WIDE KAF;Lo;0;R; 05DB;;;;N;;;;; FB25;HEBREW LETTER WIDE LAMED;Lo;0;R; 05DC;;;;N;;;;; FB26;HEBREW LETTER WIDE FINAL MEM;Lo;0;R; 05DD;;;;N;;;;; FB27;HEBREW LETTER WIDE RESH;Lo;0;R; 05E8;;;;N;;;;; FB28;HEBREW LETTER WIDE TAV;Lo;0;R; 05EA;;;;N;;;;; FB29;HEBREW LETTER ALTERNATIVE PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; FB2A;HEBREW LETTER SHIN WITH SHIN DOT;Lo;0;R;05E9 05C1;;;;N;;;;; FB2B;HEBREW LETTER SHIN WITH SIN DOT;Lo;0;R;05E9 05C2;;;;N;;;;; FB2C;HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT;Lo;0;R;FB49 05C1;;;;N;;;;; FB2D;HEBREW LETTER SHIN WITH DAGESH AND SIN DOT;Lo;0;R;FB49 05C2;;;;N;;;;; FB2E;HEBREW LETTER ALEF WITH PATAH;Lo;0;R;05D0 05B7;;;;N;;;;; FB2F;HEBREW LETTER ALEF WITH QAMATS;Lo;0;R;05D0 05B8;;;;N;;;;; FB30;HEBREW LETTER ALEF WITH MAPIQ;Lo;0;R;05D0 05BC;;;;N;;;;; FB31;HEBREW LETTER BET WITH DAGESH;Lo;0;R;05D1 05BC;;;;N;;;;; FB32;HEBREW LETTER GIMEL WITH DAGESH;Lo;0;R;05D2 05BC;;;;N;;;;; FB33;HEBREW LETTER DALET WITH DAGESH;Lo;0;R;05D3 05BC;;;;N;;;;; FB34;HEBREW LETTER HE WITH MAPIQ;Lo;0;R;05D4 05BC;;;;N;;;;; FB35;HEBREW LETTER VAV WITH DAGESH;Lo;0;R;05D5 05BC;;;;N;;;;; FB36;HEBREW LETTER ZAYIN WITH DAGESH;Lo;0;R;05D6 05BC;;;;N;;;;; FB38;HEBREW LETTER TET WITH DAGESH;Lo;0;R;05D8 05BC;;;;N;;;;; FB39;HEBREW LETTER YOD WITH DAGESH;Lo;0;R;05D9 05BC;;;;N;;;;; FB3A;HEBREW LETTER FINAL KAF WITH DAGESH;Lo;0;R;05DA 05BC;;;;N;;;;; FB3B;HEBREW LETTER KAF WITH DAGESH;Lo;0;R;05DB 05BC;;;;N;;;;; FB3C;HEBREW LETTER LAMED WITH DAGESH;Lo;0;R;05DC 05BC;;;;N;;;;; FB3E;HEBREW LETTER MEM WITH DAGESH;Lo;0;R;05DE 05BC;;;;N;;;;; FB40;HEBREW LETTER NUN WITH DAGESH;Lo;0;R;05E0 05BC;;;;N;;;;; FB41;HEBREW LETTER SAMEKH WITH DAGESH;Lo;0;R;05E1 05BC;;;;N;;;;; FB43;HEBREW LETTER FINAL PE WITH DAGESH;Lo;0;R;05E3 05BC;;;;N;;;;; FB44;HEBREW LETTER PE WITH DAGESH;Lo;0;R;05E4 05BC;;;;N;;;;; FB46;HEBREW LETTER TSADI WITH DAGESH;Lo;0;R;05E6 05BC;;;;N;;;;; FB47;HEBREW LETTER QOF WITH DAGESH;Lo;0;R;05E7 05BC;;;;N;;;;; FB48;HEBREW LETTER RESH WITH DAGESH;Lo;0;R;05E8 05BC;;;;N;;;;; FB49;HEBREW LETTER SHIN WITH DAGESH;Lo;0;R;05E9 05BC;;;;N;;;;; FB4A;HEBREW LETTER TAV WITH DAGESH;Lo;0;R;05EA 05BC;;;;N;;;;; FB4B;HEBREW LETTER VAV WITH HOLAM;Lo;0;R;05D5 05B9;;;;N;;;;; FB4C;HEBREW LETTER BET WITH RAFE;Lo;0;R;05D1 05BF;;;;N;;;;; FB4D;HEBREW LETTER KAF WITH RAFE;Lo;0;R;05DB 05BF;;;;N;;;;; FB4E;HEBREW LETTER PE WITH RAFE;Lo;0;R;05E4 05BF;;;;N;;;;; FB4F;HEBREW LIGATURE ALEF LAMED;Lo;0;R; 05D0 05DC;;;;N;;;;; FB50;ARABIC LETTER ALEF WASLA ISOLATED FORM;Lo;0;AL; 0671;;;;N;;;;; FB51;ARABIC LETTER ALEF WASLA FINAL FORM;Lo;0;AL; 0671;;;;N;;;;; FB52;ARABIC LETTER BEEH ISOLATED FORM;Lo;0;AL; 067B;;;;N;;;;; FB53;ARABIC LETTER BEEH FINAL FORM;Lo;0;AL; 067B;;;;N;;;;; FB54;ARABIC LETTER BEEH INITIAL FORM;Lo;0;AL; 067B;;;;N;;;;; FB55;ARABIC LETTER BEEH MEDIAL FORM;Lo;0;AL; 067B;;;;N;;;;; FB56;ARABIC LETTER PEH ISOLATED FORM;Lo;0;AL; 067E;;;;N;;;;; FB57;ARABIC LETTER PEH FINAL FORM;Lo;0;AL; 067E;;;;N;;;;; FB58;ARABIC LETTER PEH INITIAL FORM;Lo;0;AL; 067E;;;;N;;;;; FB59;ARABIC LETTER PEH MEDIAL FORM;Lo;0;AL; 067E;;;;N;;;;; FB5A;ARABIC LETTER BEHEH ISOLATED FORM;Lo;0;AL; 0680;;;;N;;;;; FB5B;ARABIC LETTER BEHEH FINAL FORM;Lo;0;AL; 0680;;;;N;;;;; FB5C;ARABIC LETTER BEHEH INITIAL FORM;Lo;0;AL; 0680;;;;N;;;;; FB5D;ARABIC LETTER BEHEH MEDIAL FORM;Lo;0;AL; 0680;;;;N;;;;; FB5E;ARABIC LETTER TTEHEH ISOLATED FORM;Lo;0;AL; 067A;;;;N;;;;; FB5F;ARABIC LETTER TTEHEH FINAL FORM;Lo;0;AL; 067A;;;;N;;;;; FB60;ARABIC LETTER TTEHEH INITIAL FORM;Lo;0;AL; 067A;;;;N;;;;; FB61;ARABIC LETTER TTEHEH MEDIAL FORM;Lo;0;AL; 067A;;;;N;;;;; FB62;ARABIC LETTER TEHEH ISOLATED FORM;Lo;0;AL; 067F;;;;N;;;;; FB63;ARABIC LETTER TEHEH FINAL FORM;Lo;0;AL; 067F;;;;N;;;;; FB64;ARABIC LETTER TEHEH INITIAL FORM;Lo;0;AL; 067F;;;;N;;;;; FB65;ARABIC LETTER TEHEH MEDIAL FORM;Lo;0;AL; 067F;;;;N;;;;; FB66;ARABIC LETTER TTEH ISOLATED FORM;Lo;0;AL; 0679;;;;N;;;;; FB67;ARABIC LETTER TTEH FINAL FORM;Lo;0;AL; 0679;;;;N;;;;; FB68;ARABIC LETTER TTEH INITIAL FORM;Lo;0;AL; 0679;;;;N;;;;; FB69;ARABIC LETTER TTEH MEDIAL FORM;Lo;0;AL; 0679;;;;N;;;;; FB6A;ARABIC LETTER VEH ISOLATED FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6B;ARABIC LETTER VEH FINAL FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6C;ARABIC LETTER VEH INITIAL FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6D;ARABIC LETTER VEH MEDIAL FORM;Lo;0;AL; 06A4;;;;N;;;;; FB6E;ARABIC LETTER PEHEH ISOLATED FORM;Lo;0;AL; 06A6;;;;N;;;;; FB6F;ARABIC LETTER PEHEH FINAL FORM;Lo;0;AL; 06A6;;;;N;;;;; FB70;ARABIC LETTER PEHEH INITIAL FORM;Lo;0;AL; 06A6;;;;N;;;;; FB71;ARABIC LETTER PEHEH MEDIAL FORM;Lo;0;AL; 06A6;;;;N;;;;; FB72;ARABIC LETTER DYEH ISOLATED FORM;Lo;0;AL; 0684;;;;N;;;;; FB73;ARABIC LETTER DYEH FINAL FORM;Lo;0;AL; 0684;;;;N;;;;; FB74;ARABIC LETTER DYEH INITIAL FORM;Lo;0;AL; 0684;;;;N;;;;; FB75;ARABIC LETTER DYEH MEDIAL FORM;Lo;0;AL; 0684;;;;N;;;;; FB76;ARABIC LETTER NYEH ISOLATED FORM;Lo;0;AL; 0683;;;;N;;;;; FB77;ARABIC LETTER NYEH FINAL FORM;Lo;0;AL; 0683;;;;N;;;;; FB78;ARABIC LETTER NYEH INITIAL FORM;Lo;0;AL; 0683;;;;N;;;;; FB79;ARABIC LETTER NYEH MEDIAL FORM;Lo;0;AL; 0683;;;;N;;;;; FB7A;ARABIC LETTER TCHEH ISOLATED FORM;Lo;0;AL; 0686;;;;N;;;;; FB7B;ARABIC LETTER TCHEH FINAL FORM;Lo;0;AL; 0686;;;;N;;;;; FB7C;ARABIC LETTER TCHEH INITIAL FORM;Lo;0;AL; 0686;;;;N;;;;; FB7D;ARABIC LETTER TCHEH MEDIAL FORM;Lo;0;AL; 0686;;;;N;;;;; FB7E;ARABIC LETTER TCHEHEH ISOLATED FORM;Lo;0;AL; 0687;;;;N;;;;; FB7F;ARABIC LETTER TCHEHEH FINAL FORM;Lo;0;AL; 0687;;;;N;;;;; FB80;ARABIC LETTER TCHEHEH INITIAL FORM;Lo;0;AL; 0687;;;;N;;;;; FB81;ARABIC LETTER TCHEHEH MEDIAL FORM;Lo;0;AL; 0687;;;;N;;;;; FB82;ARABIC LETTER DDAHAL ISOLATED FORM;Lo;0;AL; 068D;;;;N;;;;; FB83;ARABIC LETTER DDAHAL FINAL FORM;Lo;0;AL; 068D;;;;N;;;;; FB84;ARABIC LETTER DAHAL ISOLATED FORM;Lo;0;AL; 068C;;;;N;;;;; FB85;ARABIC LETTER DAHAL FINAL FORM;Lo;0;AL; 068C;;;;N;;;;; FB86;ARABIC LETTER DUL ISOLATED FORM;Lo;0;AL; 068E;;;;N;;;;; FB87;ARABIC LETTER DUL FINAL FORM;Lo;0;AL; 068E;;;;N;;;;; FB88;ARABIC LETTER DDAL ISOLATED FORM;Lo;0;AL; 0688;;;;N;;;;; FB89;ARABIC LETTER DDAL FINAL FORM;Lo;0;AL; 0688;;;;N;;;;; FB8A;ARABIC LETTER JEH ISOLATED FORM;Lo;0;AL; 0698;;;;N;;;;; FB8B;ARABIC LETTER JEH FINAL FORM;Lo;0;AL; 0698;;;;N;;;;; FB8C;ARABIC LETTER RREH ISOLATED FORM;Lo;0;AL; 0691;;;;N;;;;; FB8D;ARABIC LETTER RREH FINAL FORM;Lo;0;AL; 0691;;;;N;;;;; FB8E;ARABIC LETTER KEHEH ISOLATED FORM;Lo;0;AL; 06A9;;;;N;;;;; FB8F;ARABIC LETTER KEHEH FINAL FORM;Lo;0;AL; 06A9;;;;N;;;;; FB90;ARABIC LETTER KEHEH INITIAL FORM;Lo;0;AL; 06A9;;;;N;;;;; FB91;ARABIC LETTER KEHEH MEDIAL FORM;Lo;0;AL; 06A9;;;;N;;;;; FB92;ARABIC LETTER GAF ISOLATED FORM;Lo;0;AL; 06AF;;;;N;;;;; FB93;ARABIC LETTER GAF FINAL FORM;Lo;0;AL; 06AF;;;;N;;;;; FB94;ARABIC LETTER GAF INITIAL FORM;Lo;0;AL; 06AF;;;;N;;;;; FB95;ARABIC LETTER GAF MEDIAL FORM;Lo;0;AL; 06AF;;;;N;;;;; FB96;ARABIC LETTER GUEH ISOLATED FORM;Lo;0;AL; 06B3;;;;N;;;;; FB97;ARABIC LETTER GUEH FINAL FORM;Lo;0;AL; 06B3;;;;N;;;;; FB98;ARABIC LETTER GUEH INITIAL FORM;Lo;0;AL; 06B3;;;;N;;;;; FB99;ARABIC LETTER GUEH MEDIAL FORM;Lo;0;AL; 06B3;;;;N;;;;; FB9A;ARABIC LETTER NGOEH ISOLATED FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9B;ARABIC LETTER NGOEH FINAL FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9C;ARABIC LETTER NGOEH INITIAL FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9D;ARABIC LETTER NGOEH MEDIAL FORM;Lo;0;AL; 06B1;;;;N;;;;; FB9E;ARABIC LETTER NOON GHUNNA ISOLATED FORM;Lo;0;AL; 06BA;;;;N;;;;; FB9F;ARABIC LETTER NOON GHUNNA FINAL FORM;Lo;0;AL; 06BA;;;;N;;;;; FBA0;ARABIC LETTER RNOON ISOLATED FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA1;ARABIC LETTER RNOON FINAL FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA2;ARABIC LETTER RNOON INITIAL FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA3;ARABIC LETTER RNOON MEDIAL FORM;Lo;0;AL; 06BB;;;;N;;;;; FBA4;ARABIC LETTER HEH WITH YEH ABOVE ISOLATED FORM;Lo;0;AL; 06C0;;;;N;;;;; FBA5;ARABIC LETTER HEH WITH YEH ABOVE FINAL FORM;Lo;0;AL; 06C0;;;;N;;;;; FBA6;ARABIC LETTER HEH GOAL ISOLATED FORM;Lo;0;AL; 06C1;;;;N;;;;; FBA7;ARABIC LETTER HEH GOAL FINAL FORM;Lo;0;AL; 06C1;;;;N;;;;; FBA8;ARABIC LETTER HEH GOAL INITIAL FORM;Lo;0;AL; 06C1;;;;N;;;;; FBA9;ARABIC LETTER HEH GOAL MEDIAL FORM;Lo;0;AL; 06C1;;;;N;;;;; FBAA;ARABIC LETTER HEH DOACHASHMEE ISOLATED FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAB;ARABIC LETTER HEH DOACHASHMEE FINAL FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAC;ARABIC LETTER HEH DOACHASHMEE INITIAL FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAD;ARABIC LETTER HEH DOACHASHMEE MEDIAL FORM;Lo;0;AL; 06BE;;;;N;;;;; FBAE;ARABIC LETTER YEH BARREE ISOLATED FORM;Lo;0;AL; 06D2;;;;N;;;;; FBAF;ARABIC LETTER YEH BARREE FINAL FORM;Lo;0;AL; 06D2;;;;N;;;;; FBB0;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 06D3;;;;N;;;;; FBB1;ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 06D3;;;;N;;;;; FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD6;ARABIC LETTER NG MEDIAL FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD7;ARABIC LETTER U ISOLATED FORM;Lo;0;AL; 06C7;;;;N;;;;; FBD8;ARABIC LETTER U FINAL FORM;Lo;0;AL; 06C7;;;;N;;;;; FBD9;ARABIC LETTER OE ISOLATED FORM;Lo;0;AL; 06C6;;;;N;;;;; FBDA;ARABIC LETTER OE FINAL FORM;Lo;0;AL; 06C6;;;;N;;;;; FBDB;ARABIC LETTER YU ISOLATED FORM;Lo;0;AL; 06C8;;;;N;;;;; FBDC;ARABIC LETTER YU FINAL FORM;Lo;0;AL; 06C8;;;;N;;;;; FBDD;ARABIC LETTER U WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0677;;;;N;;;;; FBDE;ARABIC LETTER VE ISOLATED FORM;Lo;0;AL; 06CB;;;;N;;;;; FBDF;ARABIC LETTER VE FINAL FORM;Lo;0;AL; 06CB;;;;N;;;;; FBE0;ARABIC LETTER KIRGHIZ OE ISOLATED FORM;Lo;0;AL; 06C5;;;;N;;;;; FBE1;ARABIC LETTER KIRGHIZ OE FINAL FORM;Lo;0;AL; 06C5;;;;N;;;;; FBE2;ARABIC LETTER KIRGHIZ YU ISOLATED FORM;Lo;0;AL; 06C9;;;;N;;;;; FBE3;ARABIC LETTER KIRGHIZ YU FINAL FORM;Lo;0;AL; 06C9;;;;N;;;;; FBE4;ARABIC LETTER E ISOLATED FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE5;ARABIC LETTER E FINAL FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE6;ARABIC LETTER E INITIAL FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE7;ARABIC LETTER E MEDIAL FORM;Lo;0;AL; 06D0;;;;N;;;;; FBE8;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA INITIAL FORM;Lo;0;AL; 0649;;;;N;;;;; FBE9;ARABIC LETTER UIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MEDIAL FORM;Lo;0;AL; 0649;;;;N;;;;; FBEA;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM;Lo;0;AL; 0626 0627;;;;N;;;;; FBEB;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF FINAL FORM;Lo;0;AL; 0626 0627;;;;N;;;;; FBEC;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE ISOLATED FORM;Lo;0;AL; 0626 06D5;;;;N;;;;; FBED;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH AE FINAL FORM;Lo;0;AL; 0626 06D5;;;;N;;;;; FBEE;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW ISOLATED FORM;Lo;0;AL; 0626 0648;;;;N;;;;; FBEF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH WAW FINAL FORM;Lo;0;AL; 0626 0648;;;;N;;;;; FBF0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U ISOLATED FORM;Lo;0;AL; 0626 06C7;;;;N;;;;; FBF1;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH U FINAL FORM;Lo;0;AL; 0626 06C7;;;;N;;;;; FBF2;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE ISOLATED FORM;Lo;0;AL; 0626 06C6;;;;N;;;;; FBF3;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH OE FINAL FORM;Lo;0;AL; 0626 06C6;;;;N;;;;; FBF4;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU ISOLATED FORM;Lo;0;AL; 0626 06C8;;;;N;;;;; FBF5;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YU FINAL FORM;Lo;0;AL; 0626 06C8;;;;N;;;;; FBF6;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E ISOLATED FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; FBF7;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E FINAL FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; FBF8;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH E INITIAL FORM;Lo;0;AL; 0626 06D0;;;;N;;;;; FBF9;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FBFA;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FBFB;ARABIC LIGATURE UIGHUR KIRGHIZ YEH WITH HAMZA ABOVE WITH ALEF MAKSURA INITIAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FBFC;ARABIC LETTER FARSI YEH ISOLATED FORM;Lo;0;AL; 06CC;;;;N;;;;; FBFD;ARABIC LETTER FARSI YEH FINAL FORM;Lo;0;AL; 06CC;;;;N;;;;; FBFE;ARABIC LETTER FARSI YEH INITIAL FORM;Lo;0;AL; 06CC;;;;N;;;;; FBFF;ARABIC LETTER FARSI YEH MEDIAL FORM;Lo;0;AL; 06CC;;;;N;;;;; FC00;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM ISOLATED FORM;Lo;0;AL; 0626 062C;;;;N;;;;; FC01;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH ISOLATED FORM;Lo;0;AL; 0626 062D;;;;N;;;;; FC02;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM ISOLATED FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FC03;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FC04;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH ISOLATED FORM;Lo;0;AL; 0626 064A;;;;N;;;;; FC05;ARABIC LIGATURE BEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0628 062C;;;;N;;;;; FC06;ARABIC LIGATURE BEH WITH HAH ISOLATED FORM;Lo;0;AL; 0628 062D;;;;N;;;;; FC07;ARABIC LIGATURE BEH WITH KHAH ISOLATED FORM;Lo;0;AL; 0628 062E;;;;N;;;;; FC08;ARABIC LIGATURE BEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FC09;ARABIC LIGATURE BEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0628 0649;;;;N;;;;; FC0A;ARABIC LIGATURE BEH WITH YEH ISOLATED FORM;Lo;0;AL; 0628 064A;;;;N;;;;; FC0B;ARABIC LIGATURE TEH WITH JEEM ISOLATED FORM;Lo;0;AL; 062A 062C;;;;N;;;;; FC0C;ARABIC LIGATURE TEH WITH HAH ISOLATED FORM;Lo;0;AL; 062A 062D;;;;N;;;;; FC0D;ARABIC LIGATURE TEH WITH KHAH ISOLATED FORM;Lo;0;AL; 062A 062E;;;;N;;;;; FC0E;ARABIC LIGATURE TEH WITH MEEM ISOLATED FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FC0F;ARABIC LIGATURE TEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062A 0649;;;;N;;;;; FC10;ARABIC LIGATURE TEH WITH YEH ISOLATED FORM;Lo;0;AL; 062A 064A;;;;N;;;;; FC11;ARABIC LIGATURE THEH WITH JEEM ISOLATED FORM;Lo;0;AL; 062B 062C;;;;N;;;;; FC12;ARABIC LIGATURE THEH WITH MEEM ISOLATED FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FC13;ARABIC LIGATURE THEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062B 0649;;;;N;;;;; FC14;ARABIC LIGATURE THEH WITH YEH ISOLATED FORM;Lo;0;AL; 062B 064A;;;;N;;;;; FC15;ARABIC LIGATURE JEEM WITH HAH ISOLATED FORM;Lo;0;AL; 062C 062D;;;;N;;;;; FC16;ARABIC LIGATURE JEEM WITH MEEM ISOLATED FORM;Lo;0;AL; 062C 0645;;;;N;;;;; FC17;ARABIC LIGATURE HAH WITH JEEM ISOLATED FORM;Lo;0;AL; 062D 062C;;;;N;;;;; FC18;ARABIC LIGATURE HAH WITH MEEM ISOLATED FORM;Lo;0;AL; 062D 0645;;;;N;;;;; FC19;ARABIC LIGATURE KHAH WITH JEEM ISOLATED FORM;Lo;0;AL; 062E 062C;;;;N;;;;; FC1A;ARABIC LIGATURE KHAH WITH HAH ISOLATED FORM;Lo;0;AL; 062E 062D;;;;N;;;;; FC1B;ARABIC LIGATURE KHAH WITH MEEM ISOLATED FORM;Lo;0;AL; 062E 0645;;;;N;;;;; FC1C;ARABIC LIGATURE SEEN WITH JEEM ISOLATED FORM;Lo;0;AL; 0633 062C;;;;N;;;;; FC1D;ARABIC LIGATURE SEEN WITH HAH ISOLATED FORM;Lo;0;AL; 0633 062D;;;;N;;;;; FC1E;ARABIC LIGATURE SEEN WITH KHAH ISOLATED FORM;Lo;0;AL; 0633 062E;;;;N;;;;; FC1F;ARABIC LIGATURE SEEN WITH MEEM ISOLATED FORM;Lo;0;AL; 0633 0645;;;;N;;;;; FC20;ARABIC LIGATURE SAD WITH HAH ISOLATED FORM;Lo;0;AL; 0635 062D;;;;N;;;;; FC21;ARABIC LIGATURE SAD WITH MEEM ISOLATED FORM;Lo;0;AL; 0635 0645;;;;N;;;;; FC22;ARABIC LIGATURE DAD WITH JEEM ISOLATED FORM;Lo;0;AL; 0636 062C;;;;N;;;;; FC23;ARABIC LIGATURE DAD WITH HAH ISOLATED FORM;Lo;0;AL; 0636 062D;;;;N;;;;; FC24;ARABIC LIGATURE DAD WITH KHAH ISOLATED FORM;Lo;0;AL; 0636 062E;;;;N;;;;; FC25;ARABIC LIGATURE DAD WITH MEEM ISOLATED FORM;Lo;0;AL; 0636 0645;;;;N;;;;; FC26;ARABIC LIGATURE TAH WITH HAH ISOLATED FORM;Lo;0;AL; 0637 062D;;;;N;;;;; FC27;ARABIC LIGATURE TAH WITH MEEM ISOLATED FORM;Lo;0;AL; 0637 0645;;;;N;;;;; FC28;ARABIC LIGATURE ZAH WITH MEEM ISOLATED FORM;Lo;0;AL; 0638 0645;;;;N;;;;; FC29;ARABIC LIGATURE AIN WITH JEEM ISOLATED FORM;Lo;0;AL; 0639 062C;;;;N;;;;; FC2A;ARABIC LIGATURE AIN WITH MEEM ISOLATED FORM;Lo;0;AL; 0639 0645;;;;N;;;;; FC2B;ARABIC LIGATURE GHAIN WITH JEEM ISOLATED FORM;Lo;0;AL; 063A 062C;;;;N;;;;; FC2C;ARABIC LIGATURE GHAIN WITH MEEM ISOLATED FORM;Lo;0;AL; 063A 0645;;;;N;;;;; FC2D;ARABIC LIGATURE FEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0641 062C;;;;N;;;;; FC2E;ARABIC LIGATURE FEH WITH HAH ISOLATED FORM;Lo;0;AL; 0641 062D;;;;N;;;;; FC2F;ARABIC LIGATURE FEH WITH KHAH ISOLATED FORM;Lo;0;AL; 0641 062E;;;;N;;;;; FC30;ARABIC LIGATURE FEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0641 0645;;;;N;;;;; FC31;ARABIC LIGATURE FEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0641 0649;;;;N;;;;; FC32;ARABIC LIGATURE FEH WITH YEH ISOLATED FORM;Lo;0;AL; 0641 064A;;;;N;;;;; FC33;ARABIC LIGATURE QAF WITH HAH ISOLATED FORM;Lo;0;AL; 0642 062D;;;;N;;;;; FC34;ARABIC LIGATURE QAF WITH MEEM ISOLATED FORM;Lo;0;AL; 0642 0645;;;;N;;;;; FC35;ARABIC LIGATURE QAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0642 0649;;;;N;;;;; FC36;ARABIC LIGATURE QAF WITH YEH ISOLATED FORM;Lo;0;AL; 0642 064A;;;;N;;;;; FC37;ARABIC LIGATURE KAF WITH ALEF ISOLATED FORM;Lo;0;AL; 0643 0627;;;;N;;;;; FC38;ARABIC LIGATURE KAF WITH JEEM ISOLATED FORM;Lo;0;AL; 0643 062C;;;;N;;;;; FC39;ARABIC LIGATURE KAF WITH HAH ISOLATED FORM;Lo;0;AL; 0643 062D;;;;N;;;;; FC3A;ARABIC LIGATURE KAF WITH KHAH ISOLATED FORM;Lo;0;AL; 0643 062E;;;;N;;;;; FC3B;ARABIC LIGATURE KAF WITH LAM ISOLATED FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FC3C;ARABIC LIGATURE KAF WITH MEEM ISOLATED FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FC3D;ARABIC LIGATURE KAF WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0643 0649;;;;N;;;;; FC3E;ARABIC LIGATURE KAF WITH YEH ISOLATED FORM;Lo;0;AL; 0643 064A;;;;N;;;;; FC3F;ARABIC LIGATURE LAM WITH JEEM ISOLATED FORM;Lo;0;AL; 0644 062C;;;;N;;;;; FC40;ARABIC LIGATURE LAM WITH HAH ISOLATED FORM;Lo;0;AL; 0644 062D;;;;N;;;;; FC41;ARABIC LIGATURE LAM WITH KHAH ISOLATED FORM;Lo;0;AL; 0644 062E;;;;N;;;;; FC42;ARABIC LIGATURE LAM WITH MEEM ISOLATED FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FC43;ARABIC LIGATURE LAM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0644 0649;;;;N;;;;; FC44;ARABIC LIGATURE LAM WITH YEH ISOLATED FORM;Lo;0;AL; 0644 064A;;;;N;;;;; FC45;ARABIC LIGATURE MEEM WITH JEEM ISOLATED FORM;Lo;0;AL; 0645 062C;;;;N;;;;; FC46;ARABIC LIGATURE MEEM WITH HAH ISOLATED FORM;Lo;0;AL; 0645 062D;;;;N;;;;; FC47;ARABIC LIGATURE MEEM WITH KHAH ISOLATED FORM;Lo;0;AL; 0645 062E;;;;N;;;;; FC48;ARABIC LIGATURE MEEM WITH MEEM ISOLATED FORM;Lo;0;AL; 0645 0645;;;;N;;;;; FC49;ARABIC LIGATURE MEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0645 0649;;;;N;;;;; FC4A;ARABIC LIGATURE MEEM WITH YEH ISOLATED FORM;Lo;0;AL; 0645 064A;;;;N;;;;; FC4B;ARABIC LIGATURE NOON WITH JEEM ISOLATED FORM;Lo;0;AL; 0646 062C;;;;N;;;;; FC4C;ARABIC LIGATURE NOON WITH HAH ISOLATED FORM;Lo;0;AL; 0646 062D;;;;N;;;;; FC4D;ARABIC LIGATURE NOON WITH KHAH ISOLATED FORM;Lo;0;AL; 0646 062E;;;;N;;;;; FC4E;ARABIC LIGATURE NOON WITH MEEM ISOLATED FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FC4F;ARABIC LIGATURE NOON WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0646 0649;;;;N;;;;; FC50;ARABIC LIGATURE NOON WITH YEH ISOLATED FORM;Lo;0;AL; 0646 064A;;;;N;;;;; FC51;ARABIC LIGATURE HEH WITH JEEM ISOLATED FORM;Lo;0;AL; 0647 062C;;;;N;;;;; FC52;ARABIC LIGATURE HEH WITH MEEM ISOLATED FORM;Lo;0;AL; 0647 0645;;;;N;;;;; FC53;ARABIC LIGATURE HEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0647 0649;;;;N;;;;; FC54;ARABIC LIGATURE HEH WITH YEH ISOLATED FORM;Lo;0;AL; 0647 064A;;;;N;;;;; FC55;ARABIC LIGATURE YEH WITH JEEM ISOLATED FORM;Lo;0;AL; 064A 062C;;;;N;;;;; FC56;ARABIC LIGATURE YEH WITH HAH ISOLATED FORM;Lo;0;AL; 064A 062D;;;;N;;;;; FC57;ARABIC LIGATURE YEH WITH KHAH ISOLATED FORM;Lo;0;AL; 064A 062E;;;;N;;;;; FC58;ARABIC LIGATURE YEH WITH MEEM ISOLATED FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FC59;ARABIC LIGATURE YEH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 064A 0649;;;;N;;;;; FC5A;ARABIC LIGATURE YEH WITH YEH ISOLATED FORM;Lo;0;AL; 064A 064A;;;;N;;;;; FC5B;ARABIC LIGATURE THAL WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0630 0670;;;;N;;;;; FC5C;ARABIC LIGATURE REH WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0631 0670;;;;N;;;;; FC5D;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0649 0670;;;;N;;;;; FC5E;ARABIC LIGATURE SHADDA WITH DAMMATAN ISOLATED FORM;Lo;0;AL; 0020 064C 0651;;;;N;;;;; FC5F;ARABIC LIGATURE SHADDA WITH KASRATAN ISOLATED FORM;Lo;0;AL; 0020 064D 0651;;;;N;;;;; FC60;ARABIC LIGATURE SHADDA WITH FATHA ISOLATED FORM;Lo;0;AL; 0020 064E 0651;;;;N;;;;; FC61;ARABIC LIGATURE SHADDA WITH DAMMA ISOLATED FORM;Lo;0;AL; 0020 064F 0651;;;;N;;;;; FC62;ARABIC LIGATURE SHADDA WITH KASRA ISOLATED FORM;Lo;0;AL; 0020 0650 0651;;;;N;;;;; FC63;ARABIC LIGATURE SHADDA WITH SUPERSCRIPT ALEF ISOLATED FORM;Lo;0;AL; 0020 0651 0670;;;;N;;;;; FC64;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH REH FINAL FORM;Lo;0;AL; 0626 0631;;;;N;;;;; FC65;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ZAIN FINAL FORM;Lo;0;AL; 0626 0632;;;;N;;;;; FC66;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM FINAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FC67;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH NOON FINAL FORM;Lo;0;AL; 0626 0646;;;;N;;;;; FC68;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0626 0649;;;;N;;;;; FC69;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH YEH FINAL FORM;Lo;0;AL; 0626 064A;;;;N;;;;; FC6A;ARABIC LIGATURE BEH WITH REH FINAL FORM;Lo;0;AL; 0628 0631;;;;N;;;;; FC6B;ARABIC LIGATURE BEH WITH ZAIN FINAL FORM;Lo;0;AL; 0628 0632;;;;N;;;;; FC6C;ARABIC LIGATURE BEH WITH MEEM FINAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FC6D;ARABIC LIGATURE BEH WITH NOON FINAL FORM;Lo;0;AL; 0628 0646;;;;N;;;;; FC6E;ARABIC LIGATURE BEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0628 0649;;;;N;;;;; FC6F;ARABIC LIGATURE BEH WITH YEH FINAL FORM;Lo;0;AL; 0628 064A;;;;N;;;;; FC70;ARABIC LIGATURE TEH WITH REH FINAL FORM;Lo;0;AL; 062A 0631;;;;N;;;;; FC71;ARABIC LIGATURE TEH WITH ZAIN FINAL FORM;Lo;0;AL; 062A 0632;;;;N;;;;; FC72;ARABIC LIGATURE TEH WITH MEEM FINAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FC73;ARABIC LIGATURE TEH WITH NOON FINAL FORM;Lo;0;AL; 062A 0646;;;;N;;;;; FC74;ARABIC LIGATURE TEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 0649;;;;N;;;;; FC75;ARABIC LIGATURE TEH WITH YEH FINAL FORM;Lo;0;AL; 062A 064A;;;;N;;;;; FC76;ARABIC LIGATURE THEH WITH REH FINAL FORM;Lo;0;AL; 062B 0631;;;;N;;;;; FC77;ARABIC LIGATURE THEH WITH ZAIN FINAL FORM;Lo;0;AL; 062B 0632;;;;N;;;;; FC78;ARABIC LIGATURE THEH WITH MEEM FINAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FC79;ARABIC LIGATURE THEH WITH NOON FINAL FORM;Lo;0;AL; 062B 0646;;;;N;;;;; FC7A;ARABIC LIGATURE THEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062B 0649;;;;N;;;;; FC7B;ARABIC LIGATURE THEH WITH YEH FINAL FORM;Lo;0;AL; 062B 064A;;;;N;;;;; FC7C;ARABIC LIGATURE FEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0641 0649;;;;N;;;;; FC7D;ARABIC LIGATURE FEH WITH YEH FINAL FORM;Lo;0;AL; 0641 064A;;;;N;;;;; FC7E;ARABIC LIGATURE QAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0642 0649;;;;N;;;;; FC7F;ARABIC LIGATURE QAF WITH YEH FINAL FORM;Lo;0;AL; 0642 064A;;;;N;;;;; FC80;ARABIC LIGATURE KAF WITH ALEF FINAL FORM;Lo;0;AL; 0643 0627;;;;N;;;;; FC81;ARABIC LIGATURE KAF WITH LAM FINAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FC82;ARABIC LIGATURE KAF WITH MEEM FINAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FC83;ARABIC LIGATURE KAF WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0643 0649;;;;N;;;;; FC84;ARABIC LIGATURE KAF WITH YEH FINAL FORM;Lo;0;AL; 0643 064A;;;;N;;;;; FC85;ARABIC LIGATURE LAM WITH MEEM FINAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FC86;ARABIC LIGATURE LAM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0644 0649;;;;N;;;;; FC87;ARABIC LIGATURE LAM WITH YEH FINAL FORM;Lo;0;AL; 0644 064A;;;;N;;;;; FC88;ARABIC LIGATURE MEEM WITH ALEF FINAL FORM;Lo;0;AL; 0645 0627;;;;N;;;;; FC89;ARABIC LIGATURE MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0645 0645;;;;N;;;;; FC8A;ARABIC LIGATURE NOON WITH REH FINAL FORM;Lo;0;AL; 0646 0631;;;;N;;;;; FC8B;ARABIC LIGATURE NOON WITH ZAIN FINAL FORM;Lo;0;AL; 0646 0632;;;;N;;;;; FC8C;ARABIC LIGATURE NOON WITH MEEM FINAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FC8D;ARABIC LIGATURE NOON WITH NOON FINAL FORM;Lo;0;AL; 0646 0646;;;;N;;;;; FC8E;ARABIC LIGATURE NOON WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 0649;;;;N;;;;; FC8F;ARABIC LIGATURE NOON WITH YEH FINAL FORM;Lo;0;AL; 0646 064A;;;;N;;;;; FC90;ARABIC LIGATURE ALEF MAKSURA WITH SUPERSCRIPT ALEF FINAL FORM;Lo;0;AL; 0649 0670;;;;N;;;;; FC91;ARABIC LIGATURE YEH WITH REH FINAL FORM;Lo;0;AL; 064A 0631;;;;N;;;;; FC92;ARABIC LIGATURE YEH WITH ZAIN FINAL FORM;Lo;0;AL; 064A 0632;;;;N;;;;; FC93;ARABIC LIGATURE YEH WITH MEEM FINAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FC94;ARABIC LIGATURE YEH WITH NOON FINAL FORM;Lo;0;AL; 064A 0646;;;;N;;;;; FC95;ARABIC LIGATURE YEH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 064A 0649;;;;N;;;;; FC96;ARABIC LIGATURE YEH WITH YEH FINAL FORM;Lo;0;AL; 064A 064A;;;;N;;;;; FC97;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH JEEM INITIAL FORM;Lo;0;AL; 0626 062C;;;;N;;;;; FC98;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HAH INITIAL FORM;Lo;0;AL; 0626 062D;;;;N;;;;; FC99;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH KHAH INITIAL FORM;Lo;0;AL; 0626 062E;;;;N;;;;; FC9A;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM INITIAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FC9B;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH INITIAL FORM;Lo;0;AL; 0626 0647;;;;N;;;;; FC9C;ARABIC LIGATURE BEH WITH JEEM INITIAL FORM;Lo;0;AL; 0628 062C;;;;N;;;;; FC9D;ARABIC LIGATURE BEH WITH HAH INITIAL FORM;Lo;0;AL; 0628 062D;;;;N;;;;; FC9E;ARABIC LIGATURE BEH WITH KHAH INITIAL FORM;Lo;0;AL; 0628 062E;;;;N;;;;; FC9F;ARABIC LIGATURE BEH WITH MEEM INITIAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FCA0;ARABIC LIGATURE BEH WITH HEH INITIAL FORM;Lo;0;AL; 0628 0647;;;;N;;;;; FCA1;ARABIC LIGATURE TEH WITH JEEM INITIAL FORM;Lo;0;AL; 062A 062C;;;;N;;;;; FCA2;ARABIC LIGATURE TEH WITH HAH INITIAL FORM;Lo;0;AL; 062A 062D;;;;N;;;;; FCA3;ARABIC LIGATURE TEH WITH KHAH INITIAL FORM;Lo;0;AL; 062A 062E;;;;N;;;;; FCA4;ARABIC LIGATURE TEH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FCA5;ARABIC LIGATURE TEH WITH HEH INITIAL FORM;Lo;0;AL; 062A 0647;;;;N;;;;; FCA6;ARABIC LIGATURE THEH WITH MEEM INITIAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FCA7;ARABIC LIGATURE JEEM WITH HAH INITIAL FORM;Lo;0;AL; 062C 062D;;;;N;;;;; FCA8;ARABIC LIGATURE JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 062C 0645;;;;N;;;;; FCA9;ARABIC LIGATURE HAH WITH JEEM INITIAL FORM;Lo;0;AL; 062D 062C;;;;N;;;;; FCAA;ARABIC LIGATURE HAH WITH MEEM INITIAL FORM;Lo;0;AL; 062D 0645;;;;N;;;;; FCAB;ARABIC LIGATURE KHAH WITH JEEM INITIAL FORM;Lo;0;AL; 062E 062C;;;;N;;;;; FCAC;ARABIC LIGATURE KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 062E 0645;;;;N;;;;; FCAD;ARABIC LIGATURE SEEN WITH JEEM INITIAL FORM;Lo;0;AL; 0633 062C;;;;N;;;;; FCAE;ARABIC LIGATURE SEEN WITH HAH INITIAL FORM;Lo;0;AL; 0633 062D;;;;N;;;;; FCAF;ARABIC LIGATURE SEEN WITH KHAH INITIAL FORM;Lo;0;AL; 0633 062E;;;;N;;;;; FCB0;ARABIC LIGATURE SEEN WITH MEEM INITIAL FORM;Lo;0;AL; 0633 0645;;;;N;;;;; FCB1;ARABIC LIGATURE SAD WITH HAH INITIAL FORM;Lo;0;AL; 0635 062D;;;;N;;;;; FCB2;ARABIC LIGATURE SAD WITH KHAH INITIAL FORM;Lo;0;AL; 0635 062E;;;;N;;;;; FCB3;ARABIC LIGATURE SAD WITH MEEM INITIAL FORM;Lo;0;AL; 0635 0645;;;;N;;;;; FCB4;ARABIC LIGATURE DAD WITH JEEM INITIAL FORM;Lo;0;AL; 0636 062C;;;;N;;;;; FCB5;ARABIC LIGATURE DAD WITH HAH INITIAL FORM;Lo;0;AL; 0636 062D;;;;N;;;;; FCB6;ARABIC LIGATURE DAD WITH KHAH INITIAL FORM;Lo;0;AL; 0636 062E;;;;N;;;;; FCB7;ARABIC LIGATURE DAD WITH MEEM INITIAL FORM;Lo;0;AL; 0636 0645;;;;N;;;;; FCB8;ARABIC LIGATURE TAH WITH HAH INITIAL FORM;Lo;0;AL; 0637 062D;;;;N;;;;; FCB9;ARABIC LIGATURE ZAH WITH MEEM INITIAL FORM;Lo;0;AL; 0638 0645;;;;N;;;;; FCBA;ARABIC LIGATURE AIN WITH JEEM INITIAL FORM;Lo;0;AL; 0639 062C;;;;N;;;;; FCBB;ARABIC LIGATURE AIN WITH MEEM INITIAL FORM;Lo;0;AL; 0639 0645;;;;N;;;;; FCBC;ARABIC LIGATURE GHAIN WITH JEEM INITIAL FORM;Lo;0;AL; 063A 062C;;;;N;;;;; FCBD;ARABIC LIGATURE GHAIN WITH MEEM INITIAL FORM;Lo;0;AL; 063A 0645;;;;N;;;;; FCBE;ARABIC LIGATURE FEH WITH JEEM INITIAL FORM;Lo;0;AL; 0641 062C;;;;N;;;;; FCBF;ARABIC LIGATURE FEH WITH HAH INITIAL FORM;Lo;0;AL; 0641 062D;;;;N;;;;; FCC0;ARABIC LIGATURE FEH WITH KHAH INITIAL FORM;Lo;0;AL; 0641 062E;;;;N;;;;; FCC1;ARABIC LIGATURE FEH WITH MEEM INITIAL FORM;Lo;0;AL; 0641 0645;;;;N;;;;; FCC2;ARABIC LIGATURE QAF WITH HAH INITIAL FORM;Lo;0;AL; 0642 062D;;;;N;;;;; FCC3;ARABIC LIGATURE QAF WITH MEEM INITIAL FORM;Lo;0;AL; 0642 0645;;;;N;;;;; FCC4;ARABIC LIGATURE KAF WITH JEEM INITIAL FORM;Lo;0;AL; 0643 062C;;;;N;;;;; FCC5;ARABIC LIGATURE KAF WITH HAH INITIAL FORM;Lo;0;AL; 0643 062D;;;;N;;;;; FCC6;ARABIC LIGATURE KAF WITH KHAH INITIAL FORM;Lo;0;AL; 0643 062E;;;;N;;;;; FCC7;ARABIC LIGATURE KAF WITH LAM INITIAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FCC8;ARABIC LIGATURE KAF WITH MEEM INITIAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FCC9;ARABIC LIGATURE LAM WITH JEEM INITIAL FORM;Lo;0;AL; 0644 062C;;;;N;;;;; FCCA;ARABIC LIGATURE LAM WITH HAH INITIAL FORM;Lo;0;AL; 0644 062D;;;;N;;;;; FCCB;ARABIC LIGATURE LAM WITH KHAH INITIAL FORM;Lo;0;AL; 0644 062E;;;;N;;;;; FCCC;ARABIC LIGATURE LAM WITH MEEM INITIAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FCCD;ARABIC LIGATURE LAM WITH HEH INITIAL FORM;Lo;0;AL; 0644 0647;;;;N;;;;; FCCE;ARABIC LIGATURE MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062C;;;;N;;;;; FCCF;ARABIC LIGATURE MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0645 062D;;;;N;;;;; FCD0;ARABIC LIGATURE MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0645 062E;;;;N;;;;; FCD1;ARABIC LIGATURE MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0645 0645;;;;N;;;;; FCD2;ARABIC LIGATURE NOON WITH JEEM INITIAL FORM;Lo;0;AL; 0646 062C;;;;N;;;;; FCD3;ARABIC LIGATURE NOON WITH HAH INITIAL FORM;Lo;0;AL; 0646 062D;;;;N;;;;; FCD4;ARABIC LIGATURE NOON WITH KHAH INITIAL FORM;Lo;0;AL; 0646 062E;;;;N;;;;; FCD5;ARABIC LIGATURE NOON WITH MEEM INITIAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FCD6;ARABIC LIGATURE NOON WITH HEH INITIAL FORM;Lo;0;AL; 0646 0647;;;;N;;;;; FCD7;ARABIC LIGATURE HEH WITH JEEM INITIAL FORM;Lo;0;AL; 0647 062C;;;;N;;;;; FCD8;ARABIC LIGATURE HEH WITH MEEM INITIAL FORM;Lo;0;AL; 0647 0645;;;;N;;;;; FCD9;ARABIC LIGATURE HEH WITH SUPERSCRIPT ALEF INITIAL FORM;Lo;0;AL; 0647 0670;;;;N;;;;; FCDA;ARABIC LIGATURE YEH WITH JEEM INITIAL FORM;Lo;0;AL; 064A 062C;;;;N;;;;; FCDB;ARABIC LIGATURE YEH WITH HAH INITIAL FORM;Lo;0;AL; 064A 062D;;;;N;;;;; FCDC;ARABIC LIGATURE YEH WITH KHAH INITIAL FORM;Lo;0;AL; 064A 062E;;;;N;;;;; FCDD;ARABIC LIGATURE YEH WITH MEEM INITIAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FCDE;ARABIC LIGATURE YEH WITH HEH INITIAL FORM;Lo;0;AL; 064A 0647;;;;N;;;;; FCDF;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH MEEM MEDIAL FORM;Lo;0;AL; 0626 0645;;;;N;;;;; FCE0;ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH HEH MEDIAL FORM;Lo;0;AL; 0626 0647;;;;N;;;;; FCE1;ARABIC LIGATURE BEH WITH MEEM MEDIAL FORM;Lo;0;AL; 0628 0645;;;;N;;;;; FCE2;ARABIC LIGATURE BEH WITH HEH MEDIAL FORM;Lo;0;AL; 0628 0647;;;;N;;;;; FCE3;ARABIC LIGATURE TEH WITH MEEM MEDIAL FORM;Lo;0;AL; 062A 0645;;;;N;;;;; FCE4;ARABIC LIGATURE TEH WITH HEH MEDIAL FORM;Lo;0;AL; 062A 0647;;;;N;;;;; FCE5;ARABIC LIGATURE THEH WITH MEEM MEDIAL FORM;Lo;0;AL; 062B 0645;;;;N;;;;; FCE6;ARABIC LIGATURE THEH WITH HEH MEDIAL FORM;Lo;0;AL; 062B 0647;;;;N;;;;; FCE7;ARABIC LIGATURE SEEN WITH MEEM MEDIAL FORM;Lo;0;AL; 0633 0645;;;;N;;;;; FCE8;ARABIC LIGATURE SEEN WITH HEH MEDIAL FORM;Lo;0;AL; 0633 0647;;;;N;;;;; FCE9;ARABIC LIGATURE SHEEN WITH MEEM MEDIAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FCEA;ARABIC LIGATURE SHEEN WITH HEH MEDIAL FORM;Lo;0;AL; 0634 0647;;;;N;;;;; FCEB;ARABIC LIGATURE KAF WITH LAM MEDIAL FORM;Lo;0;AL; 0643 0644;;;;N;;;;; FCEC;ARABIC LIGATURE KAF WITH MEEM MEDIAL FORM;Lo;0;AL; 0643 0645;;;;N;;;;; FCED;ARABIC LIGATURE LAM WITH MEEM MEDIAL FORM;Lo;0;AL; 0644 0645;;;;N;;;;; FCEE;ARABIC LIGATURE NOON WITH MEEM MEDIAL FORM;Lo;0;AL; 0646 0645;;;;N;;;;; FCEF;ARABIC LIGATURE NOON WITH HEH MEDIAL FORM;Lo;0;AL; 0646 0647;;;;N;;;;; FCF0;ARABIC LIGATURE YEH WITH MEEM MEDIAL FORM;Lo;0;AL; 064A 0645;;;;N;;;;; FCF1;ARABIC LIGATURE YEH WITH HEH MEDIAL FORM;Lo;0;AL; 064A 0647;;;;N;;;;; FCF2;ARABIC LIGATURE SHADDA WITH FATHA MEDIAL FORM;Lo;0;AL; 0640 064E 0651;;;;N;;;;; FCF3;ARABIC LIGATURE SHADDA WITH DAMMA MEDIAL FORM;Lo;0;AL; 0640 064F 0651;;;;N;;;;; FCF4;ARABIC LIGATURE SHADDA WITH KASRA MEDIAL FORM;Lo;0;AL; 0640 0650 0651;;;;N;;;;; FCF5;ARABIC LIGATURE TAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0637 0649;;;;N;;;;; FCF6;ARABIC LIGATURE TAH WITH YEH ISOLATED FORM;Lo;0;AL; 0637 064A;;;;N;;;;; FCF7;ARABIC LIGATURE AIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0639 0649;;;;N;;;;; FCF8;ARABIC LIGATURE AIN WITH YEH ISOLATED FORM;Lo;0;AL; 0639 064A;;;;N;;;;; FCF9;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 063A 0649;;;;N;;;;; FCFA;ARABIC LIGATURE GHAIN WITH YEH ISOLATED FORM;Lo;0;AL; 063A 064A;;;;N;;;;; FCFB;ARABIC LIGATURE SEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0633 0649;;;;N;;;;; FCFC;ARABIC LIGATURE SEEN WITH YEH ISOLATED FORM;Lo;0;AL; 0633 064A;;;;N;;;;; FCFD;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0634 0649;;;;N;;;;; FCFE;ARABIC LIGATURE SHEEN WITH YEH ISOLATED FORM;Lo;0;AL; 0634 064A;;;;N;;;;; FCFF;ARABIC LIGATURE HAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062D 0649;;;;N;;;;; FD00;ARABIC LIGATURE HAH WITH YEH ISOLATED FORM;Lo;0;AL; 062D 064A;;;;N;;;;; FD01;ARABIC LIGATURE JEEM WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062C 0649;;;;N;;;;; FD02;ARABIC LIGATURE JEEM WITH YEH ISOLATED FORM;Lo;0;AL; 062C 064A;;;;N;;;;; FD03;ARABIC LIGATURE KHAH WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 062E 0649;;;;N;;;;; FD04;ARABIC LIGATURE KHAH WITH YEH ISOLATED FORM;Lo;0;AL; 062E 064A;;;;N;;;;; FD05;ARABIC LIGATURE SAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0635 0649;;;;N;;;;; FD06;ARABIC LIGATURE SAD WITH YEH ISOLATED FORM;Lo;0;AL; 0635 064A;;;;N;;;;; FD07;ARABIC LIGATURE DAD WITH ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0636 0649;;;;N;;;;; FD08;ARABIC LIGATURE DAD WITH YEH ISOLATED FORM;Lo;0;AL; 0636 064A;;;;N;;;;; FD09;ARABIC LIGATURE SHEEN WITH JEEM ISOLATED FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD0A;ARABIC LIGATURE SHEEN WITH HAH ISOLATED FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD0B;ARABIC LIGATURE SHEEN WITH KHAH ISOLATED FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD0C;ARABIC LIGATURE SHEEN WITH MEEM ISOLATED FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FD0D;ARABIC LIGATURE SHEEN WITH REH ISOLATED FORM;Lo;0;AL; 0634 0631;;;;N;;;;; FD0E;ARABIC LIGATURE SEEN WITH REH ISOLATED FORM;Lo;0;AL; 0633 0631;;;;N;;;;; FD0F;ARABIC LIGATURE SAD WITH REH ISOLATED FORM;Lo;0;AL; 0635 0631;;;;N;;;;; FD10;ARABIC LIGATURE DAD WITH REH ISOLATED FORM;Lo;0;AL; 0636 0631;;;;N;;;;; FD11;ARABIC LIGATURE TAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0637 0649;;;;N;;;;; FD12;ARABIC LIGATURE TAH WITH YEH FINAL FORM;Lo;0;AL; 0637 064A;;;;N;;;;; FD13;ARABIC LIGATURE AIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0639 0649;;;;N;;;;; FD14;ARABIC LIGATURE AIN WITH YEH FINAL FORM;Lo;0;AL; 0639 064A;;;;N;;;;; FD15;ARABIC LIGATURE GHAIN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 063A 0649;;;;N;;;;; FD16;ARABIC LIGATURE GHAIN WITH YEH FINAL FORM;Lo;0;AL; 063A 064A;;;;N;;;;; FD17;ARABIC LIGATURE SEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 0649;;;;N;;;;; FD18;ARABIC LIGATURE SEEN WITH YEH FINAL FORM;Lo;0;AL; 0633 064A;;;;N;;;;; FD19;ARABIC LIGATURE SHEEN WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0634 0649;;;;N;;;;; FD1A;ARABIC LIGATURE SHEEN WITH YEH FINAL FORM;Lo;0;AL; 0634 064A;;;;N;;;;; FD1B;ARABIC LIGATURE HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062D 0649;;;;N;;;;; FD1C;ARABIC LIGATURE HAH WITH YEH FINAL FORM;Lo;0;AL; 062D 064A;;;;N;;;;; FD1D;ARABIC LIGATURE JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 0649;;;;N;;;;; FD1E;ARABIC LIGATURE JEEM WITH YEH FINAL FORM;Lo;0;AL; 062C 064A;;;;N;;;;; FD1F;ARABIC LIGATURE KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062E 0649;;;;N;;;;; FD20;ARABIC LIGATURE KHAH WITH YEH FINAL FORM;Lo;0;AL; 062E 064A;;;;N;;;;; FD21;ARABIC LIGATURE SAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0635 0649;;;;N;;;;; FD22;ARABIC LIGATURE SAD WITH YEH FINAL FORM;Lo;0;AL; 0635 064A;;;;N;;;;; FD23;ARABIC LIGATURE DAD WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0636 0649;;;;N;;;;; FD24;ARABIC LIGATURE DAD WITH YEH FINAL FORM;Lo;0;AL; 0636 064A;;;;N;;;;; FD25;ARABIC LIGATURE SHEEN WITH JEEM FINAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD26;ARABIC LIGATURE SHEEN WITH HAH FINAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD27;ARABIC LIGATURE SHEEN WITH KHAH FINAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD28;ARABIC LIGATURE SHEEN WITH MEEM FINAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FD29;ARABIC LIGATURE SHEEN WITH REH FINAL FORM;Lo;0;AL; 0634 0631;;;;N;;;;; FD2A;ARABIC LIGATURE SEEN WITH REH FINAL FORM;Lo;0;AL; 0633 0631;;;;N;;;;; FD2B;ARABIC LIGATURE SAD WITH REH FINAL FORM;Lo;0;AL; 0635 0631;;;;N;;;;; FD2C;ARABIC LIGATURE DAD WITH REH FINAL FORM;Lo;0;AL; 0636 0631;;;;N;;;;; FD2D;ARABIC LIGATURE SHEEN WITH JEEM INITIAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD2E;ARABIC LIGATURE SHEEN WITH HAH INITIAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD2F;ARABIC LIGATURE SHEEN WITH KHAH INITIAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD30;ARABIC LIGATURE SHEEN WITH MEEM INITIAL FORM;Lo;0;AL; 0634 0645;;;;N;;;;; FD31;ARABIC LIGATURE SEEN WITH HEH INITIAL FORM;Lo;0;AL; 0633 0647;;;;N;;;;; FD32;ARABIC LIGATURE SHEEN WITH HEH INITIAL FORM;Lo;0;AL; 0634 0647;;;;N;;;;; FD33;ARABIC LIGATURE TAH WITH MEEM INITIAL FORM;Lo;0;AL; 0637 0645;;;;N;;;;; FD34;ARABIC LIGATURE SEEN WITH JEEM MEDIAL FORM;Lo;0;AL; 0633 062C;;;;N;;;;; FD35;ARABIC LIGATURE SEEN WITH HAH MEDIAL FORM;Lo;0;AL; 0633 062D;;;;N;;;;; FD36;ARABIC LIGATURE SEEN WITH KHAH MEDIAL FORM;Lo;0;AL; 0633 062E;;;;N;;;;; FD37;ARABIC LIGATURE SHEEN WITH JEEM MEDIAL FORM;Lo;0;AL; 0634 062C;;;;N;;;;; FD38;ARABIC LIGATURE SHEEN WITH HAH MEDIAL FORM;Lo;0;AL; 0634 062D;;;;N;;;;; FD39;ARABIC LIGATURE SHEEN WITH KHAH MEDIAL FORM;Lo;0;AL; 0634 062E;;;;N;;;;; FD3A;ARABIC LIGATURE TAH WITH MEEM MEDIAL FORM;Lo;0;AL; 0637 0645;;;;N;;;;; FD3B;ARABIC LIGATURE ZAH WITH MEEM MEDIAL FORM;Lo;0;AL; 0638 0645;;;;N;;;;; FD3C;ARABIC LIGATURE ALEF WITH FATHATAN FINAL FORM;Lo;0;AL; 0627 064B;;;;N;;;;; FD3D;ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM;Lo;0;AL; 0627 064B;;;;N;;;;; FD3E;ORNATE LEFT PARENTHESIS;Ps;0;ON;;;;;N;;;;; FD3F;ORNATE RIGHT PARENTHESIS;Pe;0;ON;;;;;N;;;;; FD50;ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062C 0645;;;;N;;;;; FD51;ARABIC LIGATURE TEH WITH HAH WITH JEEM FINAL FORM;Lo;0;AL; 062A 062D 062C;;;;N;;;;; FD52;ARABIC LIGATURE TEH WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 062A 062D 062C;;;;N;;;;; FD53;ARABIC LIGATURE TEH WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062D 0645;;;;N;;;;; FD54;ARABIC LIGATURE TEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 062A 062E 0645;;;;N;;;;; FD55;ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 062A 0645 062C;;;;N;;;;; FD56;ARABIC LIGATURE TEH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 062A 0645 062D;;;;N;;;;; FD57;ARABIC LIGATURE TEH WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 062A 0645 062E;;;;N;;;;; FD58;ARABIC LIGATURE JEEM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 062C 0645 062D;;;;N;;;;; FD59;ARABIC LIGATURE JEEM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 062C 0645 062D;;;;N;;;;; FD5A;ARABIC LIGATURE HAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062D 0645 064A;;;;N;;;;; FD5B;ARABIC LIGATURE HAH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062D 0645 0649;;;;N;;;;; FD5C;ARABIC LIGATURE SEEN WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 0633 062D 062C;;;;N;;;;; FD5D;ARABIC LIGATURE SEEN WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0633 062C 062D;;;;N;;;;; FD5E;ARABIC LIGATURE SEEN WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 062C 0649;;;;N;;;;; FD5F;ARABIC LIGATURE SEEN WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0633 0645 062D;;;;N;;;;; FD60;ARABIC LIGATURE SEEN WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0633 0645 062D;;;;N;;;;; FD61;ARABIC LIGATURE SEEN WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0633 0645 062C;;;;N;;;;; FD62;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0633 0645 0645;;;;N;;;;; FD63;ARABIC LIGATURE SEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0633 0645 0645;;;;N;;;;; FD64;ARABIC LIGATURE SAD WITH HAH WITH HAH FINAL FORM;Lo;0;AL; 0635 062D 062D;;;;N;;;;; FD65;ARABIC LIGATURE SAD WITH HAH WITH HAH INITIAL FORM;Lo;0;AL; 0635 062D 062D;;;;N;;;;; FD66;ARABIC LIGATURE SAD WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0635 0645 0645;;;;N;;;;; FD67;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM FINAL FORM;Lo;0;AL; 0634 062D 0645;;;;N;;;;; FD68;ARABIC LIGATURE SHEEN WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0634 062D 0645;;;;N;;;;; FD69;ARABIC LIGATURE SHEEN WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0634 062C 064A;;;;N;;;;; FD6A;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH FINAL FORM;Lo;0;AL; 0634 0645 062E;;;;N;;;;; FD6B;ARABIC LIGATURE SHEEN WITH MEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0634 0645 062E;;;;N;;;;; FD6C;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0634 0645 0645;;;;N;;;;; FD6D;ARABIC LIGATURE SHEEN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0634 0645 0645;;;;N;;;;; FD6E;ARABIC LIGATURE DAD WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0636 062D 0649;;;;N;;;;; FD6F;ARABIC LIGATURE DAD WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0636 062E 0645;;;;N;;;;; FD70;ARABIC LIGATURE DAD WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0636 062E 0645;;;;N;;;;; FD71;ARABIC LIGATURE TAH WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0637 0645 062D;;;;N;;;;; FD72;ARABIC LIGATURE TAH WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0637 0645 062D;;;;N;;;;; FD73;ARABIC LIGATURE TAH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0637 0645 0645;;;;N;;;;; FD74;ARABIC LIGATURE TAH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0637 0645 064A;;;;N;;;;; FD75;ARABIC LIGATURE AIN WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0639 062C 0645;;;;N;;;;; FD76;ARABIC LIGATURE AIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0639 0645 0645;;;;N;;;;; FD77;ARABIC LIGATURE AIN WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0639 0645 0645;;;;N;;;;; FD78;ARABIC LIGATURE AIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0639 0645 0649;;;;N;;;;; FD79;ARABIC LIGATURE GHAIN WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 063A 0645 0645;;;;N;;;;; FD7A;ARABIC LIGATURE GHAIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 063A 0645 064A;;;;N;;;;; FD7B;ARABIC LIGATURE GHAIN WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 063A 0645 0649;;;;N;;;;; FD7C;ARABIC LIGATURE FEH WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0641 062E 0645;;;;N;;;;; FD7D;ARABIC LIGATURE FEH WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0641 062E 0645;;;;N;;;;; FD7E;ARABIC LIGATURE QAF WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0642 0645 062D;;;;N;;;;; FD7F;ARABIC LIGATURE QAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0642 0645 0645;;;;N;;;;; FD80;ARABIC LIGATURE LAM WITH HAH WITH MEEM FINAL FORM;Lo;0;AL; 0644 062D 0645;;;;N;;;;; FD81;ARABIC LIGATURE LAM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0644 062D 064A;;;;N;;;;; FD82;ARABIC LIGATURE LAM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0644 062D 0649;;;;N;;;;; FD83;ARABIC LIGATURE LAM WITH JEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0644 062C 062C;;;;N;;;;; FD84;ARABIC LIGATURE LAM WITH JEEM WITH JEEM FINAL FORM;Lo;0;AL; 0644 062C 062C;;;;N;;;;; FD85;ARABIC LIGATURE LAM WITH KHAH WITH MEEM FINAL FORM;Lo;0;AL; 0644 062E 0645;;;;N;;;;; FD86;ARABIC LIGATURE LAM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062E 0645;;;;N;;;;; FD87;ARABIC LIGATURE LAM WITH MEEM WITH HAH FINAL FORM;Lo;0;AL; 0644 0645 062D;;;;N;;;;; FD88;ARABIC LIGATURE LAM WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0644 0645 062D;;;;N;;;;; FD89;ARABIC LIGATURE MEEM WITH HAH WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062D 062C;;;;N;;;;; FD8A;ARABIC LIGATURE MEEM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062D 0645;;;;N;;;;; FD8B;ARABIC LIGATURE MEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0645 062D 064A;;;;N;;;;; FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0645 062C 062D;;;;N;;;;; FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062C 0645;;;;N;;;;; FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062E 062C;;;;N;;;;; FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062E 0645;;;;N;;;;; FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0645 062C 062E;;;;N;;;;; FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0647 0645 062C;;;;N;;;;; FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0647 0645 0645;;;;N;;;;; FD95;ARABIC LIGATURE NOON WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0646 062D 0645;;;;N;;;;; FD96;ARABIC LIGATURE NOON WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 062D 0649;;;;N;;;;; FD97;ARABIC LIGATURE NOON WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0646 062C 0645;;;;N;;;;; FD98;ARABIC LIGATURE NOON WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0646 062C 0645;;;;N;;;;; FD99;ARABIC LIGATURE NOON WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 062C 0649;;;;N;;;;; FD9A;ARABIC LIGATURE NOON WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0646 0645 064A;;;;N;;;;; FD9B;ARABIC LIGATURE NOON WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0646 0645 0649;;;;N;;;;; FD9C;ARABIC LIGATURE YEH WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 064A 0645 0645;;;;N;;;;; FD9D;ARABIC LIGATURE YEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 064A 0645 0645;;;;N;;;;; FD9E;ARABIC LIGATURE BEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0628 062E 064A;;;;N;;;;; FD9F;ARABIC LIGATURE TEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 062A 062C 064A;;;;N;;;;; FDA0;ARABIC LIGATURE TEH WITH JEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 062C 0649;;;;N;;;;; FDA1;ARABIC LIGATURE TEH WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 062A 062E 064A;;;;N;;;;; FDA2;ARABIC LIGATURE TEH WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 062E 0649;;;;N;;;;; FDA3;ARABIC LIGATURE TEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062A 0645 064A;;;;N;;;;; FDA4;ARABIC LIGATURE TEH WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062A 0645 0649;;;;N;;;;; FDA5;ARABIC LIGATURE JEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 062C 0645 064A;;;;N;;;;; FDA6;ARABIC LIGATURE JEEM WITH HAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 062D 0649;;;;N;;;;; FDA7;ARABIC LIGATURE JEEM WITH MEEM WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 062C 0645 0649;;;;N;;;;; FDA8;ARABIC LIGATURE SEEN WITH KHAH WITH ALEF MAKSURA FINAL FORM;Lo;0;AL; 0633 062E 0649;;;;N;;;;; FDA9;ARABIC LIGATURE SAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0635 062D 064A;;;;N;;;;; FDAA;ARABIC LIGATURE SHEEN WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0634 062D 064A;;;;N;;;;; FDAB;ARABIC LIGATURE DAD WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0636 062D 064A;;;;N;;;;; FDAC;ARABIC LIGATURE LAM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0644 062C 064A;;;;N;;;;; FDAD;ARABIC LIGATURE LAM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0644 0645 064A;;;;N;;;;; FDAE;ARABIC LIGATURE YEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 064A 062D 064A;;;;N;;;;; FDAF;ARABIC LIGATURE YEH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 064A 062C 064A;;;;N;;;;; FDB0;ARABIC LIGATURE YEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 064A 0645 064A;;;;N;;;;; FDB1;ARABIC LIGATURE MEEM WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0645 0645 064A;;;;N;;;;; FDB2;ARABIC LIGATURE QAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0642 0645 064A;;;;N;;;;; FDB3;ARABIC LIGATURE NOON WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0646 062D 064A;;;;N;;;;; FDB4;ARABIC LIGATURE QAF WITH MEEM WITH HAH INITIAL FORM;Lo;0;AL; 0642 0645 062D;;;;N;;;;; FDB5;ARABIC LIGATURE LAM WITH HAH WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062D 0645;;;;N;;;;; FDB6;ARABIC LIGATURE AIN WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0639 0645 064A;;;;N;;;;; FDB7;ARABIC LIGATURE KAF WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0643 0645 064A;;;;N;;;;; FDB8;ARABIC LIGATURE NOON WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0646 062C 062D;;;;N;;;;; FDB9;ARABIC LIGATURE MEEM WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0645 062E 064A;;;;N;;;;; FDBA;ARABIC LIGATURE LAM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0644 062C 0645;;;;N;;;;; FDBB;ARABIC LIGATURE KAF WITH MEEM WITH MEEM FINAL FORM;Lo;0;AL; 0643 0645 0645;;;;N;;;;; FDBC;ARABIC LIGATURE LAM WITH JEEM WITH MEEM FINAL FORM;Lo;0;AL; 0644 062C 0645;;;;N;;;;; FDBD;ARABIC LIGATURE NOON WITH JEEM WITH HAH FINAL FORM;Lo;0;AL; 0646 062C 062D;;;;N;;;;; FDBE;ARABIC LIGATURE JEEM WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 062C 062D 064A;;;;N;;;;; FDBF;ARABIC LIGATURE HAH WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 062D 062C 064A;;;;N;;;;; FDC0;ARABIC LIGATURE MEEM WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0645 062C 064A;;;;N;;;;; FDC1;ARABIC LIGATURE FEH WITH MEEM WITH YEH FINAL FORM;Lo;0;AL; 0641 0645 064A;;;;N;;;;; FDC2;ARABIC LIGATURE BEH WITH HAH WITH YEH FINAL FORM;Lo;0;AL; 0628 062D 064A;;;;N;;;;; FDC3;ARABIC LIGATURE KAF WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0643 0645 0645;;;;N;;;;; FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0639 062C 0645;;;;N;;;;; FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0635 0645 0645;;;;N;;;;; FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0633 062E 064A;;;;N;;;;; FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0646 062C 064A;;;;N;;;;; FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0635 0644 06D2;;;;N;;;;; FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0642 0644 06D2;;;;N;;;;; FDF2;ARABIC LIGATURE ALLAH ISOLATED FORM;Lo;0;AL; 0627 0644 0644 0647;;;;N;;;;; FDF3;ARABIC LIGATURE AKBAR ISOLATED FORM;Lo;0;AL; 0627 0643 0628 0631;;;;N;;;;; FDF4;ARABIC LIGATURE MOHAMMAD ISOLATED FORM;Lo;0;AL; 0645 062D 0645 062F;;;;N;;;;; FDF5;ARABIC LIGATURE SALAM ISOLATED FORM;Lo;0;AL; 0635 0644 0639 0645;;;;N;;;;; FDF6;ARABIC LIGATURE RASOUL ISOLATED FORM;Lo;0;AL; 0631 0633 0648 0644;;;;N;;;;; FDF7;ARABIC LIGATURE ALAYHE ISOLATED FORM;Lo;0;AL; 0639 0644 064A 0647;;;;N;;;;; FDF8;ARABIC LIGATURE WASALLAM ISOLATED FORM;Lo;0;AL; 0648 0633 0644 0645;;;;N;;;;; FDF9;ARABIC LIGATURE SALLA ISOLATED FORM;Lo;0;AL; 0635 0644 0649;;;;N;;;;; FDFA;ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM;Lo;0;AL; 0635 0644 0649 0020 0627 0644 0644 0647 0020 0639 0644 064A 0647 0020 0648 0633 0644 0645;;;;N;ARABIC LETTER SALLALLAHOU ALAYHE WASALLAM;;;; FDFB;ARABIC LIGATURE JALLAJALALOUHOU;Lo;0;AL; 062C 0644 0020 062C 0644 0627 0644 0647;;;;N;ARABIC LETTER JALLAJALALOUHOU;;;; FDFC;RIAL SIGN;Sc;0;AL; 0631 06CC 0627 0644;;;;N;;;;; FE00;VARIATION SELECTOR-1;Mn;0;NSM;;;;;N;;;;; FE01;VARIATION SELECTOR-2;Mn;0;NSM;;;;;N;;;;; FE02;VARIATION SELECTOR-3;Mn;0;NSM;;;;;N;;;;; FE03;VARIATION SELECTOR-4;Mn;0;NSM;;;;;N;;;;; FE04;VARIATION SELECTOR-5;Mn;0;NSM;;;;;N;;;;; FE05;VARIATION SELECTOR-6;Mn;0;NSM;;;;;N;;;;; FE06;VARIATION SELECTOR-7;Mn;0;NSM;;;;;N;;;;; FE07;VARIATION SELECTOR-8;Mn;0;NSM;;;;;N;;;;; FE08;VARIATION SELECTOR-9;Mn;0;NSM;;;;;N;;;;; FE09;VARIATION SELECTOR-10;Mn;0;NSM;;;;;N;;;;; FE0A;VARIATION SELECTOR-11;Mn;0;NSM;;;;;N;;;;; FE0B;VARIATION SELECTOR-12;Mn;0;NSM;;;;;N;;;;; FE0C;VARIATION SELECTOR-13;Mn;0;NSM;;;;;N;;;;; FE0D;VARIATION SELECTOR-14;Mn;0;NSM;;;;;N;;;;; FE0E;VARIATION SELECTOR-15;Mn;0;NSM;;;;;N;;;;; FE0F;VARIATION SELECTOR-16;Mn;0;NSM;;;;;N;;;;; FE20;COMBINING LIGATURE LEFT HALF;Mn;230;NSM;;;;;N;;;;; FE21;COMBINING LIGATURE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; FE22;COMBINING DOUBLE TILDE LEFT HALF;Mn;230;NSM;;;;;N;;;;; FE23;COMBINING DOUBLE TILDE RIGHT HALF;Mn;230;NSM;;;;;N;;;;; FE30;PRESENTATION FORM FOR VERTICAL TWO DOT LEADER;Po;0;ON; 2025;;;;N;GLYPH FOR VERTICAL TWO DOT LEADER;;;; FE31;PRESENTATION FORM FOR VERTICAL EM DASH;Pd;0;ON; 2014;;;;N;GLYPH FOR VERTICAL EM DASH;;;; FE32;PRESENTATION FORM FOR VERTICAL EN DASH;Pd;0;ON; 2013;;;;N;GLYPH FOR VERTICAL EN DASH;;;; FE33;PRESENTATION FORM FOR VERTICAL LOW LINE;Pc;0;ON; 005F;;;;N;GLYPH FOR VERTICAL SPACING UNDERSCORE;;;; FE34;PRESENTATION FORM FOR VERTICAL WAVY LOW LINE;Pc;0;ON; 005F;;;;N;GLYPH FOR VERTICAL SPACING WAVY UNDERSCORE;;;; FE35;PRESENTATION FORM FOR VERTICAL LEFT PARENTHESIS;Ps;0;ON; 0028;;;;N;GLYPH FOR VERTICAL OPENING PARENTHESIS;;;; FE36;PRESENTATION FORM FOR VERTICAL RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;N;GLYPH FOR VERTICAL CLOSING PARENTHESIS;;;; FE37;PRESENTATION FORM FOR VERTICAL LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;N;GLYPH FOR VERTICAL OPENING CURLY BRACKET;;;; FE38;PRESENTATION FORM FOR VERTICAL RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;N;GLYPH FOR VERTICAL CLOSING CURLY BRACKET;;;; FE39;PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET;Ps;0;ON; 3014;;;;N;GLYPH FOR VERTICAL OPENING TORTOISE SHELL BRACKET;;;; FE3A;PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON; 3015;;;;N;GLYPH FOR VERTICAL CLOSING TORTOISE SHELL BRACKET;;;; FE3B;PRESENTATION FORM FOR VERTICAL LEFT BLACK LENTICULAR BRACKET;Ps;0;ON; 3010;;;;N;GLYPH FOR VERTICAL OPENING BLACK LENTICULAR BRACKET;;;; FE3C;PRESENTATION FORM FOR VERTICAL RIGHT BLACK LENTICULAR BRACKET;Pe;0;ON; 3011;;;;N;GLYPH FOR VERTICAL CLOSING BLACK LENTICULAR BRACKET;;;; FE3D;PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET;Ps;0;ON; 300A;;;;N;GLYPH FOR VERTICAL OPENING DOUBLE ANGLE BRACKET;;;; FE3E;PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET;Pe;0;ON; 300B;;;;N;GLYPH FOR VERTICAL CLOSING DOUBLE ANGLE BRACKET;;;; FE3F;PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET;Ps;0;ON; 3008;;;;N;GLYPH FOR VERTICAL OPENING ANGLE BRACKET;;;; FE40;PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET;Pe;0;ON; 3009;;;;N;GLYPH FOR VERTICAL CLOSING ANGLE BRACKET;;;; FE41;PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET;Ps;0;ON; 300C;;;;N;GLYPH FOR VERTICAL OPENING CORNER BRACKET;;;; FE42;PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET;Pe;0;ON; 300D;;;;N;GLYPH FOR VERTICAL CLOSING CORNER BRACKET;;;; FE43;PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET;Ps;0;ON; 300E;;;;N;GLYPH FOR VERTICAL OPENING WHITE CORNER BRACKET;;;; FE44;PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET;Pe;0;ON; 300F;;;;N;GLYPH FOR VERTICAL CLOSING WHITE CORNER BRACKET;;;; FE45;SESAME DOT;Po;0;ON;;;;;N;;;;; FE46;WHITE SESAME DOT;Po;0;ON;;;;;N;;;;; FE49;DASHED OVERLINE;Po;0;ON; 203E;;;;N;SPACING DASHED OVERSCORE;;;; FE4A;CENTRELINE OVERLINE;Po;0;ON; 203E;;;;N;SPACING CENTERLINE OVERSCORE;;;; FE4B;WAVY OVERLINE;Po;0;ON; 203E;;;;N;SPACING WAVY OVERSCORE;;;; FE4C;DOUBLE WAVY OVERLINE;Po;0;ON; 203E;;;;N;SPACING DOUBLE WAVY OVERSCORE;;;; FE4D;DASHED LOW LINE;Pc;0;ON; 005F;;;;N;SPACING DASHED UNDERSCORE;;;; FE4E;CENTRELINE LOW LINE;Pc;0;ON; 005F;;;;N;SPACING CENTERLINE UNDERSCORE;;;; FE4F;WAVY LOW LINE;Pc;0;ON; 005F;;;;N;SPACING WAVY UNDERSCORE;;;; FE50;SMALL COMMA;Po;0;CS; 002C;;;;N;;;;; FE51;SMALL IDEOGRAPHIC COMMA;Po;0;ON; 3001;;;;N;;;;; FE52;SMALL FULL STOP;Po;0;CS; 002E;;;;N;SMALL PERIOD;;;; FE54;SMALL SEMICOLON;Po;0;ON; 003B;;;;N;;;;; FE55;SMALL COLON;Po;0;CS; 003A;;;;N;;;;; FE56;SMALL QUESTION MARK;Po;0;ON; 003F;;;;N;;;;; FE57;SMALL EXCLAMATION MARK;Po;0;ON; 0021;;;;N;;;;; FE58;SMALL EM DASH;Pd;0;ON; 2014;;;;N;;;;; FE59;SMALL LEFT PARENTHESIS;Ps;0;ON; 0028;;;;N;SMALL OPENING PARENTHESIS;;;; FE5A;SMALL RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;N;SMALL CLOSING PARENTHESIS;;;; FE5B;SMALL LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;N;SMALL OPENING CURLY BRACKET;;;; FE5C;SMALL RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;N;SMALL CLOSING CURLY BRACKET;;;; FE5D;SMALL LEFT TORTOISE SHELL BRACKET;Ps;0;ON; 3014;;;;N;SMALL OPENING TORTOISE SHELL BRACKET;;;; FE5E;SMALL RIGHT TORTOISE SHELL BRACKET;Pe;0;ON; 3015;;;;N;SMALL CLOSING TORTOISE SHELL BRACKET;;;; FE5F;SMALL NUMBER SIGN;Po;0;ET; 0023;;;;N;;;;; FE60;SMALL AMPERSAND;Po;0;ON; 0026;;;;N;;;;; FE61;SMALL ASTERISK;Po;0;ON; 002A;;;;N;;;;; FE62;SMALL PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; FE63;SMALL HYPHEN-MINUS;Pd;0;ET; 002D;;;;N;;;;; FE64;SMALL LESS-THAN SIGN;Sm;0;ON; 003C;;;;N;;;;; FE65;SMALL GREATER-THAN SIGN;Sm;0;ON; 003E;;;;N;;;;; FE66;SMALL EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; FE68;SMALL REVERSE SOLIDUS;Po;0;ON; 005C;;;;N;SMALL BACKSLASH;;;; FE69;SMALL DOLLAR SIGN;Sc;0;ET; 0024;;;;N;;;;; FE6A;SMALL PERCENT SIGN;Po;0;ET; 0025;;;;N;;;;; FE6B;SMALL COMMERCIAL AT;Po;0;ON; 0040;;;;N;;;;; FE70;ARABIC FATHATAN ISOLATED FORM;Lo;0;AL; 0020 064B;;;;N;ARABIC SPACING FATHATAN;;;; FE71;ARABIC TATWEEL WITH FATHATAN ABOVE;Lo;0;AL; 0640 064B;;;;N;ARABIC FATHATAN ON TATWEEL;;;; FE72;ARABIC DAMMATAN ISOLATED FORM;Lo;0;AL; 0020 064C;;;;N;ARABIC SPACING DAMMATAN;;;; FE73;ARABIC TAIL FRAGMENT;Lo;0;AL;;;;;N;;;;; FE74;ARABIC KASRATAN ISOLATED FORM;Lo;0;AL; 0020 064D;;;;N;ARABIC SPACING KASRATAN;;;; FE76;ARABIC FATHA ISOLATED FORM;Lo;0;AL; 0020 064E;;;;N;ARABIC SPACING FATHAH;;;; FE77;ARABIC FATHA MEDIAL FORM;Lo;0;AL; 0640 064E;;;;N;ARABIC FATHAH ON TATWEEL;;;; FE78;ARABIC DAMMA ISOLATED FORM;Lo;0;AL; 0020 064F;;;;N;ARABIC SPACING DAMMAH;;;; FE79;ARABIC DAMMA MEDIAL FORM;Lo;0;AL; 0640 064F;;;;N;ARABIC DAMMAH ON TATWEEL;;;; FE7A;ARABIC KASRA ISOLATED FORM;Lo;0;AL; 0020 0650;;;;N;ARABIC SPACING KASRAH;;;; FE7B;ARABIC KASRA MEDIAL FORM;Lo;0;AL; 0640 0650;;;;N;ARABIC KASRAH ON TATWEEL;;;; FE7C;ARABIC SHADDA ISOLATED FORM;Lo;0;AL; 0020 0651;;;;N;ARABIC SPACING SHADDAH;;;; FE7D;ARABIC SHADDA MEDIAL FORM;Lo;0;AL; 0640 0651;;;;N;ARABIC SHADDAH ON TATWEEL;;;; FE7E;ARABIC SUKUN ISOLATED FORM;Lo;0;AL; 0020 0652;;;;N;ARABIC SPACING SUKUN;;;; FE7F;ARABIC SUKUN MEDIAL FORM;Lo;0;AL; 0640 0652;;;;N;ARABIC SUKUN ON TATWEEL;;;; FE80;ARABIC LETTER HAMZA ISOLATED FORM;Lo;0;AL; 0621;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH;;;; FE81;ARABIC LETTER ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL; 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON ALEF;;;; FE82;ARABIC LETTER ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL; 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON ALEF;;;; FE83;ARABIC LETTER ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON ALEF;;;; FE84;ARABIC LETTER ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON ALEF;;;; FE85;ARABIC LETTER WAW WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0624;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON WAW;;;; FE86;ARABIC LETTER WAW WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0624;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON WAW;;;; FE87;ARABIC LETTER ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL; 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER ALEF;;;; FE88;ARABIC LETTER ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL; 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER ALEF;;;; FE89;ARABIC LETTER YEH WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON YA;;;; FE8A;ARABIC LETTER YEH WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON YA;;;; FE8B;ARABIC LETTER YEH WITH HAMZA ABOVE INITIAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR INITIAL ARABIC HAMZAH ON YA;;;; FE8C;ARABIC LETTER YEH WITH HAMZA ABOVE MEDIAL FORM;Lo;0;AL; 0626;;;;N;GLYPH FOR MEDIAL ARABIC HAMZAH ON YA;;;; FE8D;ARABIC LETTER ALEF ISOLATED FORM;Lo;0;AL; 0627;;;;N;GLYPH FOR ISOLATE ARABIC ALEF;;;; FE8E;ARABIC LETTER ALEF FINAL FORM;Lo;0;AL; 0627;;;;N;GLYPH FOR FINAL ARABIC ALEF;;;; FE8F;ARABIC LETTER BEH ISOLATED FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR ISOLATE ARABIC BAA;;;; FE90;ARABIC LETTER BEH FINAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR FINAL ARABIC BAA;;;; FE91;ARABIC LETTER BEH INITIAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR INITIAL ARABIC BAA;;;; FE92;ARABIC LETTER BEH MEDIAL FORM;Lo;0;AL; 0628;;;;N;GLYPH FOR MEDIAL ARABIC BAA;;;; FE93;ARABIC LETTER TEH MARBUTA ISOLATED FORM;Lo;0;AL; 0629;;;;N;GLYPH FOR ISOLATE ARABIC TAA MARBUTAH;;;; FE94;ARABIC LETTER TEH MARBUTA FINAL FORM;Lo;0;AL; 0629;;;;N;GLYPH FOR FINAL ARABIC TAA MARBUTAH;;;; FE95;ARABIC LETTER TEH ISOLATED FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR ISOLATE ARABIC TAA;;;; FE96;ARABIC LETTER TEH FINAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR FINAL ARABIC TAA;;;; FE97;ARABIC LETTER TEH INITIAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR INITIAL ARABIC TAA;;;; FE98;ARABIC LETTER TEH MEDIAL FORM;Lo;0;AL; 062A;;;;N;GLYPH FOR MEDIAL ARABIC TAA;;;; FE99;ARABIC LETTER THEH ISOLATED FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR ISOLATE ARABIC THAA;;;; FE9A;ARABIC LETTER THEH FINAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR FINAL ARABIC THAA;;;; FE9B;ARABIC LETTER THEH INITIAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR INITIAL ARABIC THAA;;;; FE9C;ARABIC LETTER THEH MEDIAL FORM;Lo;0;AL; 062B;;;;N;GLYPH FOR MEDIAL ARABIC THAA;;;; FE9D;ARABIC LETTER JEEM ISOLATED FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR ISOLATE ARABIC JEEM;;;; FE9E;ARABIC LETTER JEEM FINAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR FINAL ARABIC JEEM;;;; FE9F;ARABIC LETTER JEEM INITIAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR INITIAL ARABIC JEEM;;;; FEA0;ARABIC LETTER JEEM MEDIAL FORM;Lo;0;AL; 062C;;;;N;GLYPH FOR MEDIAL ARABIC JEEM;;;; FEA1;ARABIC LETTER HAH ISOLATED FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR ISOLATE ARABIC HAA;;;; FEA2;ARABIC LETTER HAH FINAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR FINAL ARABIC HAA;;;; FEA3;ARABIC LETTER HAH INITIAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR INITIAL ARABIC HAA;;;; FEA4;ARABIC LETTER HAH MEDIAL FORM;Lo;0;AL; 062D;;;;N;GLYPH FOR MEDIAL ARABIC HAA;;;; FEA5;ARABIC LETTER KHAH ISOLATED FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR ISOLATE ARABIC KHAA;;;; FEA6;ARABIC LETTER KHAH FINAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR FINAL ARABIC KHAA;;;; FEA7;ARABIC LETTER KHAH INITIAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR INITIAL ARABIC KHAA;;;; FEA8;ARABIC LETTER KHAH MEDIAL FORM;Lo;0;AL; 062E;;;;N;GLYPH FOR MEDIAL ARABIC KHAA;;;; FEA9;ARABIC LETTER DAL ISOLATED FORM;Lo;0;AL; 062F;;;;N;GLYPH FOR ISOLATE ARABIC DAL;;;; FEAA;ARABIC LETTER DAL FINAL FORM;Lo;0;AL; 062F;;;;N;GLYPH FOR FINAL ARABIC DAL;;;; FEAB;ARABIC LETTER THAL ISOLATED FORM;Lo;0;AL; 0630;;;;N;GLYPH FOR ISOLATE ARABIC THAL;;;; FEAC;ARABIC LETTER THAL FINAL FORM;Lo;0;AL; 0630;;;;N;GLYPH FOR FINAL ARABIC THAL;;;; FEAD;ARABIC LETTER REH ISOLATED FORM;Lo;0;AL; 0631;;;;N;GLYPH FOR ISOLATE ARABIC RA;;;; FEAE;ARABIC LETTER REH FINAL FORM;Lo;0;AL; 0631;;;;N;GLYPH FOR FINAL ARABIC RA;;;; FEAF;ARABIC LETTER ZAIN ISOLATED FORM;Lo;0;AL; 0632;;;;N;GLYPH FOR ISOLATE ARABIC ZAIN;;;; FEB0;ARABIC LETTER ZAIN FINAL FORM;Lo;0;AL; 0632;;;;N;GLYPH FOR FINAL ARABIC ZAIN;;;; FEB1;ARABIC LETTER SEEN ISOLATED FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR ISOLATE ARABIC SEEN;;;; FEB2;ARABIC LETTER SEEN FINAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR FINAL ARABIC SEEN;;;; FEB3;ARABIC LETTER SEEN INITIAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR INITIAL ARABIC SEEN;;;; FEB4;ARABIC LETTER SEEN MEDIAL FORM;Lo;0;AL; 0633;;;;N;GLYPH FOR MEDIAL ARABIC SEEN;;;; FEB5;ARABIC LETTER SHEEN ISOLATED FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR ISOLATE ARABIC SHEEN;;;; FEB6;ARABIC LETTER SHEEN FINAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR FINAL ARABIC SHEEN;;;; FEB7;ARABIC LETTER SHEEN INITIAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR INITIAL ARABIC SHEEN;;;; FEB8;ARABIC LETTER SHEEN MEDIAL FORM;Lo;0;AL; 0634;;;;N;GLYPH FOR MEDIAL ARABIC SHEEN;;;; FEB9;ARABIC LETTER SAD ISOLATED FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR ISOLATE ARABIC SAD;;;; FEBA;ARABIC LETTER SAD FINAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR FINAL ARABIC SAD;;;; FEBB;ARABIC LETTER SAD INITIAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR INITIAL ARABIC SAD;;;; FEBC;ARABIC LETTER SAD MEDIAL FORM;Lo;0;AL; 0635;;;;N;GLYPH FOR MEDIAL ARABIC SAD;;;; FEBD;ARABIC LETTER DAD ISOLATED FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR ISOLATE ARABIC DAD;;;; FEBE;ARABIC LETTER DAD FINAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR FINAL ARABIC DAD;;;; FEBF;ARABIC LETTER DAD INITIAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR INITIAL ARABIC DAD;;;; FEC0;ARABIC LETTER DAD MEDIAL FORM;Lo;0;AL; 0636;;;;N;GLYPH FOR MEDIAL ARABIC DAD;;;; FEC1;ARABIC LETTER TAH ISOLATED FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR ISOLATE ARABIC TAH;;;; FEC2;ARABIC LETTER TAH FINAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR FINAL ARABIC TAH;;;; FEC3;ARABIC LETTER TAH INITIAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR INITIAL ARABIC TAH;;;; FEC4;ARABIC LETTER TAH MEDIAL FORM;Lo;0;AL; 0637;;;;N;GLYPH FOR MEDIAL ARABIC TAH;;;; FEC5;ARABIC LETTER ZAH ISOLATED FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR ISOLATE ARABIC DHAH;;;; FEC6;ARABIC LETTER ZAH FINAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR FINAL ARABIC DHAH;;;; FEC7;ARABIC LETTER ZAH INITIAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR INITIAL ARABIC DHAH;;;; FEC8;ARABIC LETTER ZAH MEDIAL FORM;Lo;0;AL; 0638;;;;N;GLYPH FOR MEDIAL ARABIC DHAH;;;; FEC9;ARABIC LETTER AIN ISOLATED FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR ISOLATE ARABIC AIN;;;; FECA;ARABIC LETTER AIN FINAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR FINAL ARABIC AIN;;;; FECB;ARABIC LETTER AIN INITIAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR INITIAL ARABIC AIN;;;; FECC;ARABIC LETTER AIN MEDIAL FORM;Lo;0;AL; 0639;;;;N;GLYPH FOR MEDIAL ARABIC AIN;;;; FECD;ARABIC LETTER GHAIN ISOLATED FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR ISOLATE ARABIC GHAIN;;;; FECE;ARABIC LETTER GHAIN FINAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR FINAL ARABIC GHAIN;;;; FECF;ARABIC LETTER GHAIN INITIAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR INITIAL ARABIC GHAIN;;;; FED0;ARABIC LETTER GHAIN MEDIAL FORM;Lo;0;AL; 063A;;;;N;GLYPH FOR MEDIAL ARABIC GHAIN;;;; FED1;ARABIC LETTER FEH ISOLATED FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR ISOLATE ARABIC FA;;;; FED2;ARABIC LETTER FEH FINAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR FINAL ARABIC FA;;;; FED3;ARABIC LETTER FEH INITIAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR INITIAL ARABIC FA;;;; FED4;ARABIC LETTER FEH MEDIAL FORM;Lo;0;AL; 0641;;;;N;GLYPH FOR MEDIAL ARABIC FA;;;; FED5;ARABIC LETTER QAF ISOLATED FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR ISOLATE ARABIC QAF;;;; FED6;ARABIC LETTER QAF FINAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR FINAL ARABIC QAF;;;; FED7;ARABIC LETTER QAF INITIAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR INITIAL ARABIC QAF;;;; FED8;ARABIC LETTER QAF MEDIAL FORM;Lo;0;AL; 0642;;;;N;GLYPH FOR MEDIAL ARABIC QAF;;;; FED9;ARABIC LETTER KAF ISOLATED FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR ISOLATE ARABIC CAF;;;; FEDA;ARABIC LETTER KAF FINAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR FINAL ARABIC CAF;;;; FEDB;ARABIC LETTER KAF INITIAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR INITIAL ARABIC CAF;;;; FEDC;ARABIC LETTER KAF MEDIAL FORM;Lo;0;AL; 0643;;;;N;GLYPH FOR MEDIAL ARABIC CAF;;;; FEDD;ARABIC LETTER LAM ISOLATED FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR ISOLATE ARABIC LAM;;;; FEDE;ARABIC LETTER LAM FINAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR FINAL ARABIC LAM;;;; FEDF;ARABIC LETTER LAM INITIAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR INITIAL ARABIC LAM;;;; FEE0;ARABIC LETTER LAM MEDIAL FORM;Lo;0;AL; 0644;;;;N;GLYPH FOR MEDIAL ARABIC LAM;;;; FEE1;ARABIC LETTER MEEM ISOLATED FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR ISOLATE ARABIC MEEM;;;; FEE2;ARABIC LETTER MEEM FINAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR FINAL ARABIC MEEM;;;; FEE3;ARABIC LETTER MEEM INITIAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR INITIAL ARABIC MEEM;;;; FEE4;ARABIC LETTER MEEM MEDIAL FORM;Lo;0;AL; 0645;;;;N;GLYPH FOR MEDIAL ARABIC MEEM;;;; FEE5;ARABIC LETTER NOON ISOLATED FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR ISOLATE ARABIC NOON;;;; FEE6;ARABIC LETTER NOON FINAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR FINAL ARABIC NOON;;;; FEE7;ARABIC LETTER NOON INITIAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR INITIAL ARABIC NOON;;;; FEE8;ARABIC LETTER NOON MEDIAL FORM;Lo;0;AL; 0646;;;;N;GLYPH FOR MEDIAL ARABIC NOON;;;; FEE9;ARABIC LETTER HEH ISOLATED FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR ISOLATE ARABIC HA;;;; FEEA;ARABIC LETTER HEH FINAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR FINAL ARABIC HA;;;; FEEB;ARABIC LETTER HEH INITIAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR INITIAL ARABIC HA;;;; FEEC;ARABIC LETTER HEH MEDIAL FORM;Lo;0;AL; 0647;;;;N;GLYPH FOR MEDIAL ARABIC HA;;;; FEED;ARABIC LETTER WAW ISOLATED FORM;Lo;0;AL; 0648;;;;N;GLYPH FOR ISOLATE ARABIC WAW;;;; FEEE;ARABIC LETTER WAW FINAL FORM;Lo;0;AL; 0648;;;;N;GLYPH FOR FINAL ARABIC WAW;;;; FEEF;ARABIC LETTER ALEF MAKSURA ISOLATED FORM;Lo;0;AL; 0649;;;;N;GLYPH FOR ISOLATE ARABIC ALEF MAQSURAH;;;; FEF0;ARABIC LETTER ALEF MAKSURA FINAL FORM;Lo;0;AL; 0649;;;;N;GLYPH FOR FINAL ARABIC ALEF MAQSURAH;;;; FEF1;ARABIC LETTER YEH ISOLATED FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR ISOLATE ARABIC YA;;;; FEF2;ARABIC LETTER YEH FINAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR FINAL ARABIC YA;;;; FEF3;ARABIC LETTER YEH INITIAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR INITIAL ARABIC YA;;;; FEF4;ARABIC LETTER YEH MEDIAL FORM;Lo;0;AL; 064A;;;;N;GLYPH FOR MEDIAL ARABIC YA;;;; FEF5;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM;Lo;0;AL; 0644 0622;;;;N;GLYPH FOR ISOLATE ARABIC MADDAH ON LIGATURE LAM ALEF;;;; FEF6;ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM;Lo;0;AL; 0644 0622;;;;N;GLYPH FOR FINAL ARABIC MADDAH ON LIGATURE LAM ALEF;;;; FEF7;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM;Lo;0;AL; 0644 0623;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; FEF8;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM;Lo;0;AL; 0644 0623;;;;N;GLYPH FOR FINAL ARABIC HAMZAH ON LIGATURE LAM ALEF;;;; FEF9;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM;Lo;0;AL; 0644 0625;;;;N;GLYPH FOR ISOLATE ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; FEFA;ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM;Lo;0;AL; 0644 0625;;;;N;GLYPH FOR FINAL ARABIC HAMZAH UNDER LIGATURE LAM ALEF;;;; FEFB;ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM;Lo;0;AL; 0644 0627;;;;N;GLYPH FOR ISOLATE ARABIC LIGATURE LAM ALEF;;;; FEFC;ARABIC LIGATURE LAM WITH ALEF FINAL FORM;Lo;0;AL; 0644 0627;;;;N;GLYPH FOR FINAL ARABIC LIGATURE LAM ALEF;;;; FEFF;ZERO WIDTH NO-BREAK SPACE;Cf;0;BN;;;;;N;BYTE ORDER MARK;;;; FF01;FULLWIDTH EXCLAMATION MARK;Po;0;ON; 0021;;;;N;;;;; FF02;FULLWIDTH QUOTATION MARK;Po;0;ON; 0022;;;;N;;;;; FF03;FULLWIDTH NUMBER SIGN;Po;0;ET; 0023;;;;N;;;;; FF04;FULLWIDTH DOLLAR SIGN;Sc;0;ET; 0024;;;;N;;;;; FF05;FULLWIDTH PERCENT SIGN;Po;0;ET; 0025;;;;N;;;;; FF06;FULLWIDTH AMPERSAND;Po;0;ON; 0026;;;;N;;;;; FF07;FULLWIDTH APOSTROPHE;Po;0;ON; 0027;;;;N;;;;; FF08;FULLWIDTH LEFT PARENTHESIS;Ps;0;ON; 0028;;;;Y;FULLWIDTH OPENING PARENTHESIS;;;; FF09;FULLWIDTH RIGHT PARENTHESIS;Pe;0;ON; 0029;;;;Y;FULLWIDTH CLOSING PARENTHESIS;;;; FF0A;FULLWIDTH ASTERISK;Po;0;ON; 002A;;;;N;;;;; FF0B;FULLWIDTH PLUS SIGN;Sm;0;ET; 002B;;;;N;;;;; FF0C;FULLWIDTH COMMA;Po;0;CS; 002C;;;;N;;;;; FF0D;FULLWIDTH HYPHEN-MINUS;Pd;0;ET; 002D;;;;N;;;;; FF0E;FULLWIDTH FULL STOP;Po;0;CS; 002E;;;;N;FULLWIDTH PERIOD;;;; FF0F;FULLWIDTH SOLIDUS;Po;0;ES; 002F;;;;N;FULLWIDTH SLASH;;;; FF10;FULLWIDTH DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; FF11;FULLWIDTH DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; FF12;FULLWIDTH DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; FF13;FULLWIDTH DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; FF14;FULLWIDTH DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; FF15;FULLWIDTH DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; FF16;FULLWIDTH DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; FF17;FULLWIDTH DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; FF18;FULLWIDTH DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; FF19;FULLWIDTH DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; FF1A;FULLWIDTH COLON;Po;0;CS; 003A;;;;N;;;;; FF1B;FULLWIDTH SEMICOLON;Po;0;ON; 003B;;;;N;;;;; FF1C;FULLWIDTH LESS-THAN SIGN;Sm;0;ON; 003C;;;;Y;;;;; FF1D;FULLWIDTH EQUALS SIGN;Sm;0;ON; 003D;;;;N;;;;; FF1E;FULLWIDTH GREATER-THAN SIGN;Sm;0;ON; 003E;;;;Y;;;;; FF1F;FULLWIDTH QUESTION MARK;Po;0;ON; 003F;;;;N;;;;; FF20;FULLWIDTH COMMERCIAL AT;Po;0;ON; 0040;;;;N;;;;; FF21;FULLWIDTH LATIN CAPITAL LETTER A;Lu;0;L; 0041;;;;N;;;;FF41; FF22;FULLWIDTH LATIN CAPITAL LETTER B;Lu;0;L; 0042;;;;N;;;;FF42; FF23;FULLWIDTH LATIN CAPITAL LETTER C;Lu;0;L; 0043;;;;N;;;;FF43; FF24;FULLWIDTH LATIN CAPITAL LETTER D;Lu;0;L; 0044;;;;N;;;;FF44; FF25;FULLWIDTH LATIN CAPITAL LETTER E;Lu;0;L; 0045;;;;N;;;;FF45; FF26;FULLWIDTH LATIN CAPITAL LETTER F;Lu;0;L; 0046;;;;N;;;;FF46; FF27;FULLWIDTH LATIN CAPITAL LETTER G;Lu;0;L; 0047;;;;N;;;;FF47; FF28;FULLWIDTH LATIN CAPITAL LETTER H;Lu;0;L; 0048;;;;N;;;;FF48; FF29;FULLWIDTH LATIN CAPITAL LETTER I;Lu;0;L; 0049;;;;N;;;;FF49; FF2A;FULLWIDTH LATIN CAPITAL LETTER J;Lu;0;L; 004A;;;;N;;;;FF4A; FF2B;FULLWIDTH LATIN CAPITAL LETTER K;Lu;0;L; 004B;;;;N;;;;FF4B; FF2C;FULLWIDTH LATIN CAPITAL LETTER L;Lu;0;L; 004C;;;;N;;;;FF4C; FF2D;FULLWIDTH LATIN CAPITAL LETTER M;Lu;0;L; 004D;;;;N;;;;FF4D; FF2E;FULLWIDTH LATIN CAPITAL LETTER N;Lu;0;L; 004E;;;;N;;;;FF4E; FF2F;FULLWIDTH LATIN CAPITAL LETTER O;Lu;0;L; 004F;;;;N;;;;FF4F; FF30;FULLWIDTH LATIN CAPITAL LETTER P;Lu;0;L; 0050;;;;N;;;;FF50; FF31;FULLWIDTH LATIN CAPITAL LETTER Q;Lu;0;L; 0051;;;;N;;;;FF51; FF32;FULLWIDTH LATIN CAPITAL LETTER R;Lu;0;L; 0052;;;;N;;;;FF52; FF33;FULLWIDTH LATIN CAPITAL LETTER S;Lu;0;L; 0053;;;;N;;;;FF53; FF34;FULLWIDTH LATIN CAPITAL LETTER T;Lu;0;L; 0054;;;;N;;;;FF54; FF35;FULLWIDTH LATIN CAPITAL LETTER U;Lu;0;L; 0055;;;;N;;;;FF55; FF36;FULLWIDTH LATIN CAPITAL LETTER V;Lu;0;L; 0056;;;;N;;;;FF56; FF37;FULLWIDTH LATIN CAPITAL LETTER W;Lu;0;L; 0057;;;;N;;;;FF57; FF38;FULLWIDTH LATIN CAPITAL LETTER X;Lu;0;L; 0058;;;;N;;;;FF58; FF39;FULLWIDTH LATIN CAPITAL LETTER Y;Lu;0;L; 0059;;;;N;;;;FF59; FF3A;FULLWIDTH LATIN CAPITAL LETTER Z;Lu;0;L; 005A;;;;N;;;;FF5A; FF3B;FULLWIDTH LEFT SQUARE BRACKET;Ps;0;ON; 005B;;;;Y;FULLWIDTH OPENING SQUARE BRACKET;;;; FF3C;FULLWIDTH REVERSE SOLIDUS;Po;0;ON; 005C;;;;N;FULLWIDTH BACKSLASH;;;; FF3D;FULLWIDTH RIGHT SQUARE BRACKET;Pe;0;ON; 005D;;;;Y;FULLWIDTH CLOSING SQUARE BRACKET;;;; FF3E;FULLWIDTH CIRCUMFLEX ACCENT;Sk;0;ON; 005E;;;;N;FULLWIDTH SPACING CIRCUMFLEX;;;; FF3F;FULLWIDTH LOW LINE;Pc;0;ON; 005F;;;;N;FULLWIDTH SPACING UNDERSCORE;;;; FF40;FULLWIDTH GRAVE ACCENT;Sk;0;ON; 0060;;;;N;FULLWIDTH SPACING GRAVE;;;; FF41;FULLWIDTH LATIN SMALL LETTER A;Ll;0;L; 0061;;;;N;;;FF21;;FF21 FF42;FULLWIDTH LATIN SMALL LETTER B;Ll;0;L; 0062;;;;N;;;FF22;;FF22 FF43;FULLWIDTH LATIN SMALL LETTER C;Ll;0;L; 0063;;;;N;;;FF23;;FF23 FF44;FULLWIDTH LATIN SMALL LETTER D;Ll;0;L; 0064;;;;N;;;FF24;;FF24 FF45;FULLWIDTH LATIN SMALL LETTER E;Ll;0;L; 0065;;;;N;;;FF25;;FF25 FF46;FULLWIDTH LATIN SMALL LETTER F;Ll;0;L; 0066;;;;N;;;FF26;;FF26 FF47;FULLWIDTH LATIN SMALL LETTER G;Ll;0;L; 0067;;;;N;;;FF27;;FF27 FF48;FULLWIDTH LATIN SMALL LETTER H;Ll;0;L; 0068;;;;N;;;FF28;;FF28 FF49;FULLWIDTH LATIN SMALL LETTER I;Ll;0;L; 0069;;;;N;;;FF29;;FF29 FF4A;FULLWIDTH LATIN SMALL LETTER J;Ll;0;L; 006A;;;;N;;;FF2A;;FF2A FF4B;FULLWIDTH LATIN SMALL LETTER K;Ll;0;L; 006B;;;;N;;;FF2B;;FF2B FF4C;FULLWIDTH LATIN SMALL LETTER L;Ll;0;L; 006C;;;;N;;;FF2C;;FF2C FF4D;FULLWIDTH LATIN SMALL LETTER M;Ll;0;L; 006D;;;;N;;;FF2D;;FF2D FF4E;FULLWIDTH LATIN SMALL LETTER N;Ll;0;L; 006E;;;;N;;;FF2E;;FF2E FF4F;FULLWIDTH LATIN SMALL LETTER O;Ll;0;L; 006F;;;;N;;;FF2F;;FF2F FF50;FULLWIDTH LATIN SMALL LETTER P;Ll;0;L; 0070;;;;N;;;FF30;;FF30 FF51;FULLWIDTH LATIN SMALL LETTER Q;Ll;0;L; 0071;;;;N;;;FF31;;FF31 FF52;FULLWIDTH LATIN SMALL LETTER R;Ll;0;L; 0072;;;;N;;;FF32;;FF32 FF53;FULLWIDTH LATIN SMALL LETTER S;Ll;0;L; 0073;;;;N;;;FF33;;FF33 FF54;FULLWIDTH LATIN SMALL LETTER T;Ll;0;L; 0074;;;;N;;;FF34;;FF34 FF55;FULLWIDTH LATIN SMALL LETTER U;Ll;0;L; 0075;;;;N;;;FF35;;FF35 FF56;FULLWIDTH LATIN SMALL LETTER V;Ll;0;L; 0076;;;;N;;;FF36;;FF36 FF57;FULLWIDTH LATIN SMALL LETTER W;Ll;0;L; 0077;;;;N;;;FF37;;FF37 FF58;FULLWIDTH LATIN SMALL LETTER X;Ll;0;L; 0078;;;;N;;;FF38;;FF38 FF59;FULLWIDTH LATIN SMALL LETTER Y;Ll;0;L; 0079;;;;N;;;FF39;;FF39 FF5A;FULLWIDTH LATIN SMALL LETTER Z;Ll;0;L; 007A;;;;N;;;FF3A;;FF3A FF5B;FULLWIDTH LEFT CURLY BRACKET;Ps;0;ON; 007B;;;;Y;FULLWIDTH OPENING CURLY BRACKET;;;; FF5C;FULLWIDTH VERTICAL LINE;Sm;0;ON; 007C;;;;N;FULLWIDTH VERTICAL BAR;;;; FF5D;FULLWIDTH RIGHT CURLY BRACKET;Pe;0;ON; 007D;;;;Y;FULLWIDTH CLOSING CURLY BRACKET;;;; FF5E;FULLWIDTH TILDE;Sm;0;ON; 007E;;;;N;FULLWIDTH SPACING TILDE;;;; FF5F;FULLWIDTH LEFT WHITE PARENTHESIS;Ps;0;ON; 2985;;;;Y;;*;;; FF60;FULLWIDTH RIGHT WHITE PARENTHESIS;Pe;0;ON; 2986;;;;Y;;*;;; FF61;HALFWIDTH IDEOGRAPHIC FULL STOP;Po;0;ON; 3002;;;;N;HALFWIDTH IDEOGRAPHIC PERIOD;;;; FF62;HALFWIDTH LEFT CORNER BRACKET;Ps;0;ON; 300C;;;;Y;HALFWIDTH OPENING CORNER BRACKET;;;; FF63;HALFWIDTH RIGHT CORNER BRACKET;Pe;0;ON; 300D;;;;Y;HALFWIDTH CLOSING CORNER BRACKET;;;; FF64;HALFWIDTH IDEOGRAPHIC COMMA;Po;0;ON; 3001;;;;N;;;;; FF65;HALFWIDTH KATAKANA MIDDLE DOT;Pc;0;ON; 30FB;;;;N;;;;; FF66;HALFWIDTH KATAKANA LETTER WO;Lo;0;L; 30F2;;;;N;;;;; FF67;HALFWIDTH KATAKANA LETTER SMALL A;Lo;0;L; 30A1;;;;N;;;;; FF68;HALFWIDTH KATAKANA LETTER SMALL I;Lo;0;L; 30A3;;;;N;;;;; FF69;HALFWIDTH KATAKANA LETTER SMALL U;Lo;0;L; 30A5;;;;N;;;;; FF6A;HALFWIDTH KATAKANA LETTER SMALL E;Lo;0;L; 30A7;;;;N;;;;; FF6B;HALFWIDTH KATAKANA LETTER SMALL O;Lo;0;L; 30A9;;;;N;;;;; FF6C;HALFWIDTH KATAKANA LETTER SMALL YA;Lo;0;L; 30E3;;;;N;;;;; FF6D;HALFWIDTH KATAKANA LETTER SMALL YU;Lo;0;L; 30E5;;;;N;;;;; FF6E;HALFWIDTH KATAKANA LETTER SMALL YO;Lo;0;L; 30E7;;;;N;;;;; FF6F;HALFWIDTH KATAKANA LETTER SMALL TU;Lo;0;L; 30C3;;;;N;;;;; FF70;HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK;Lm;0;L; 30FC;;;;N;;;;; FF71;HALFWIDTH KATAKANA LETTER A;Lo;0;L; 30A2;;;;N;;;;; FF72;HALFWIDTH KATAKANA LETTER I;Lo;0;L; 30A4;;;;N;;;;; FF73;HALFWIDTH KATAKANA LETTER U;Lo;0;L; 30A6;;;;N;;;;; FF74;HALFWIDTH KATAKANA LETTER E;Lo;0;L; 30A8;;;;N;;;;; FF75;HALFWIDTH KATAKANA LETTER O;Lo;0;L; 30AA;;;;N;;;;; FF76;HALFWIDTH KATAKANA LETTER KA;Lo;0;L; 30AB;;;;N;;;;; FF77;HALFWIDTH KATAKANA LETTER KI;Lo;0;L; 30AD;;;;N;;;;; FF78;HALFWIDTH KATAKANA LETTER KU;Lo;0;L; 30AF;;;;N;;;;; FF79;HALFWIDTH KATAKANA LETTER KE;Lo;0;L; 30B1;;;;N;;;;; FF7A;HALFWIDTH KATAKANA LETTER KO;Lo;0;L; 30B3;;;;N;;;;; FF7B;HALFWIDTH KATAKANA LETTER SA;Lo;0;L; 30B5;;;;N;;;;; FF7C;HALFWIDTH KATAKANA LETTER SI;Lo;0;L; 30B7;;;;N;;;;; FF7D;HALFWIDTH KATAKANA LETTER SU;Lo;0;L; 30B9;;;;N;;;;; FF7E;HALFWIDTH KATAKANA LETTER SE;Lo;0;L; 30BB;;;;N;;;;; FF7F;HALFWIDTH KATAKANA LETTER SO;Lo;0;L; 30BD;;;;N;;;;; FF80;HALFWIDTH KATAKANA LETTER TA;Lo;0;L; 30BF;;;;N;;;;; FF81;HALFWIDTH KATAKANA LETTER TI;Lo;0;L; 30C1;;;;N;;;;; FF82;HALFWIDTH KATAKANA LETTER TU;Lo;0;L; 30C4;;;;N;;;;; FF83;HALFWIDTH KATAKANA LETTER TE;Lo;0;L; 30C6;;;;N;;;;; FF84;HALFWIDTH KATAKANA LETTER TO;Lo;0;L; 30C8;;;;N;;;;; FF85;HALFWIDTH KATAKANA LETTER NA;Lo;0;L; 30CA;;;;N;;;;; FF86;HALFWIDTH KATAKANA LETTER NI;Lo;0;L; 30CB;;;;N;;;;; FF87;HALFWIDTH KATAKANA LETTER NU;Lo;0;L; 30CC;;;;N;;;;; FF88;HALFWIDTH KATAKANA LETTER NE;Lo;0;L; 30CD;;;;N;;;;; FF89;HALFWIDTH KATAKANA LETTER NO;Lo;0;L; 30CE;;;;N;;;;; FF8A;HALFWIDTH KATAKANA LETTER HA;Lo;0;L; 30CF;;;;N;;;;; FF8B;HALFWIDTH KATAKANA LETTER HI;Lo;0;L; 30D2;;;;N;;;;; FF8C;HALFWIDTH KATAKANA LETTER HU;Lo;0;L; 30D5;;;;N;;;;; FF8D;HALFWIDTH KATAKANA LETTER HE;Lo;0;L; 30D8;;;;N;;;;; FF8E;HALFWIDTH KATAKANA LETTER HO;Lo;0;L; 30DB;;;;N;;;;; FF8F;HALFWIDTH KATAKANA LETTER MA;Lo;0;L; 30DE;;;;N;;;;; FF90;HALFWIDTH KATAKANA LETTER MI;Lo;0;L; 30DF;;;;N;;;;; FF91;HALFWIDTH KATAKANA LETTER MU;Lo;0;L; 30E0;;;;N;;;;; FF92;HALFWIDTH KATAKANA LETTER ME;Lo;0;L; 30E1;;;;N;;;;; FF93;HALFWIDTH KATAKANA LETTER MO;Lo;0;L; 30E2;;;;N;;;;; FF94;HALFWIDTH KATAKANA LETTER YA;Lo;0;L; 30E4;;;;N;;;;; FF95;HALFWIDTH KATAKANA LETTER YU;Lo;0;L; 30E6;;;;N;;;;; FF96;HALFWIDTH KATAKANA LETTER YO;Lo;0;L; 30E8;;;;N;;;;; FF97;HALFWIDTH KATAKANA LETTER RA;Lo;0;L; 30E9;;;;N;;;;; FF98;HALFWIDTH KATAKANA LETTER RI;Lo;0;L; 30EA;;;;N;;;;; FF99;HALFWIDTH KATAKANA LETTER RU;Lo;0;L; 30EB;;;;N;;;;; FF9A;HALFWIDTH KATAKANA LETTER RE;Lo;0;L; 30EC;;;;N;;;;; FF9B;HALFWIDTH KATAKANA LETTER RO;Lo;0;L; 30ED;;;;N;;;;; FF9C;HALFWIDTH KATAKANA LETTER WA;Lo;0;L; 30EF;;;;N;;;;; FF9D;HALFWIDTH KATAKANA LETTER N;Lo;0;L; 30F3;;;;N;;;;; FF9E;HALFWIDTH KATAKANA VOICED SOUND MARK;Lm;0;L; 3099;;;;N;;halfwidth katakana-hiragana voiced sound mark;;; FF9F;HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK;Lm;0;L; 309A;;;;N;;halfwidth katakana-hiragana semi-voiced sound mark;;; FFA0;HALFWIDTH HANGUL FILLER;Lo;0;L; 3164;;;;N;HALFWIDTH HANGUL CAE OM;;;; FFA1;HALFWIDTH HANGUL LETTER KIYEOK;Lo;0;L; 3131;;;;N;HALFWIDTH HANGUL LETTER GIYEOG;;;; FFA2;HALFWIDTH HANGUL LETTER SSANGKIYEOK;Lo;0;L; 3132;;;;N;HALFWIDTH HANGUL LETTER SSANG GIYEOG;;;; FFA3;HALFWIDTH HANGUL LETTER KIYEOK-SIOS;Lo;0;L; 3133;;;;N;HALFWIDTH HANGUL LETTER GIYEOG SIOS;;;; FFA4;HALFWIDTH HANGUL LETTER NIEUN;Lo;0;L; 3134;;;;N;;;;; FFA5;HALFWIDTH HANGUL LETTER NIEUN-CIEUC;Lo;0;L; 3135;;;;N;HALFWIDTH HANGUL LETTER NIEUN JIEUJ;;;; FFA6;HALFWIDTH HANGUL LETTER NIEUN-HIEUH;Lo;0;L; 3136;;;;N;HALFWIDTH HANGUL LETTER NIEUN HIEUH;;;; FFA7;HALFWIDTH HANGUL LETTER TIKEUT;Lo;0;L; 3137;;;;N;HALFWIDTH HANGUL LETTER DIGEUD;;;; FFA8;HALFWIDTH HANGUL LETTER SSANGTIKEUT;Lo;0;L; 3138;;;;N;HALFWIDTH HANGUL LETTER SSANG DIGEUD;;;; FFA9;HALFWIDTH HANGUL LETTER RIEUL;Lo;0;L; 3139;;;;N;HALFWIDTH HANGUL LETTER LIEUL;;;; FFAA;HALFWIDTH HANGUL LETTER RIEUL-KIYEOK;Lo;0;L; 313A;;;;N;HALFWIDTH HANGUL LETTER LIEUL GIYEOG;;;; FFAB;HALFWIDTH HANGUL LETTER RIEUL-MIEUM;Lo;0;L; 313B;;;;N;HALFWIDTH HANGUL LETTER LIEUL MIEUM;;;; FFAC;HALFWIDTH HANGUL LETTER RIEUL-PIEUP;Lo;0;L; 313C;;;;N;HALFWIDTH HANGUL LETTER LIEUL BIEUB;;;; FFAD;HALFWIDTH HANGUL LETTER RIEUL-SIOS;Lo;0;L; 313D;;;;N;HALFWIDTH HANGUL LETTER LIEUL SIOS;;;; FFAE;HALFWIDTH HANGUL LETTER RIEUL-THIEUTH;Lo;0;L; 313E;;;;N;HALFWIDTH HANGUL LETTER LIEUL TIEUT;;;; FFAF;HALFWIDTH HANGUL LETTER RIEUL-PHIEUPH;Lo;0;L; 313F;;;;N;HALFWIDTH HANGUL LETTER LIEUL PIEUP;;;; FFB0;HALFWIDTH HANGUL LETTER RIEUL-HIEUH;Lo;0;L; 3140;;;;N;HALFWIDTH HANGUL LETTER LIEUL HIEUH;;;; FFB1;HALFWIDTH HANGUL LETTER MIEUM;Lo;0;L; 3141;;;;N;;;;; FFB2;HALFWIDTH HANGUL LETTER PIEUP;Lo;0;L; 3142;;;;N;HALFWIDTH HANGUL LETTER BIEUB;;;; FFB3;HALFWIDTH HANGUL LETTER SSANGPIEUP;Lo;0;L; 3143;;;;N;HALFWIDTH HANGUL LETTER SSANG BIEUB;;;; FFB4;HALFWIDTH HANGUL LETTER PIEUP-SIOS;Lo;0;L; 3144;;;;N;HALFWIDTH HANGUL LETTER BIEUB SIOS;;;; FFB5;HALFWIDTH HANGUL LETTER SIOS;Lo;0;L; 3145;;;;N;;;;; FFB6;HALFWIDTH HANGUL LETTER SSANGSIOS;Lo;0;L; 3146;;;;N;HALFWIDTH HANGUL LETTER SSANG SIOS;;;; FFB7;HALFWIDTH HANGUL LETTER IEUNG;Lo;0;L; 3147;;;;N;;;;; FFB8;HALFWIDTH HANGUL LETTER CIEUC;Lo;0;L; 3148;;;;N;HALFWIDTH HANGUL LETTER JIEUJ;;;; FFB9;HALFWIDTH HANGUL LETTER SSANGCIEUC;Lo;0;L; 3149;;;;N;HALFWIDTH HANGUL LETTER SSANG JIEUJ;;;; FFBA;HALFWIDTH HANGUL LETTER CHIEUCH;Lo;0;L; 314A;;;;N;HALFWIDTH HANGUL LETTER CIEUC;;;; FFBB;HALFWIDTH HANGUL LETTER KHIEUKH;Lo;0;L; 314B;;;;N;HALFWIDTH HANGUL LETTER KIYEOK;;;; FFBC;HALFWIDTH HANGUL LETTER THIEUTH;Lo;0;L; 314C;;;;N;HALFWIDTH HANGUL LETTER TIEUT;;;; FFBD;HALFWIDTH HANGUL LETTER PHIEUPH;Lo;0;L; 314D;;;;N;HALFWIDTH HANGUL LETTER PIEUP;;;; FFBE;HALFWIDTH HANGUL LETTER HIEUH;Lo;0;L; 314E;;;;N;;;;; FFC2;HALFWIDTH HANGUL LETTER A;Lo;0;L; 314F;;;;N;;;;; FFC3;HALFWIDTH HANGUL LETTER AE;Lo;0;L; 3150;;;;N;;;;; FFC4;HALFWIDTH HANGUL LETTER YA;Lo;0;L; 3151;;;;N;;;;; FFC5;HALFWIDTH HANGUL LETTER YAE;Lo;0;L; 3152;;;;N;;;;; FFC6;HALFWIDTH HANGUL LETTER EO;Lo;0;L; 3153;;;;N;;;;; FFC7;HALFWIDTH HANGUL LETTER E;Lo;0;L; 3154;;;;N;;;;; FFCA;HALFWIDTH HANGUL LETTER YEO;Lo;0;L; 3155;;;;N;;;;; FFCB;HALFWIDTH HANGUL LETTER YE;Lo;0;L; 3156;;;;N;;;;; FFCC;HALFWIDTH HANGUL LETTER O;Lo;0;L; 3157;;;;N;;;;; FFCD;HALFWIDTH HANGUL LETTER WA;Lo;0;L; 3158;;;;N;;;;; FFCE;HALFWIDTH HANGUL LETTER WAE;Lo;0;L; 3159;;;;N;;;;; FFCF;HALFWIDTH HANGUL LETTER OE;Lo;0;L; 315A;;;;N;;;;; FFD2;HALFWIDTH HANGUL LETTER YO;Lo;0;L; 315B;;;;N;;;;; FFD3;HALFWIDTH HANGUL LETTER U;Lo;0;L; 315C;;;;N;;;;; FFD4;HALFWIDTH HANGUL LETTER WEO;Lo;0;L; 315D;;;;N;;;;; FFD5;HALFWIDTH HANGUL LETTER WE;Lo;0;L; 315E;;;;N;;;;; FFD6;HALFWIDTH HANGUL LETTER WI;Lo;0;L; 315F;;;;N;;;;; FFD7;HALFWIDTH HANGUL LETTER YU;Lo;0;L; 3160;;;;N;;;;; FFDA;HALFWIDTH HANGUL LETTER EU;Lo;0;L; 3161;;;;N;;;;; FFDB;HALFWIDTH HANGUL LETTER YI;Lo;0;L; 3162;;;;N;;;;; FFDC;HALFWIDTH HANGUL LETTER I;Lo;0;L; 3163;;;;N;;;;; FFE0;FULLWIDTH CENT SIGN;Sc;0;ET; 00A2;;;;N;;;;; FFE1;FULLWIDTH POUND SIGN;Sc;0;ET; 00A3;;;;N;;;;; FFE2;FULLWIDTH NOT SIGN;Sm;0;ON; 00AC;;;;N;;;;; FFE3;FULLWIDTH MACRON;Sk;0;ON; 00AF;;;;N;FULLWIDTH SPACING MACRON;*;;; FFE4;FULLWIDTH BROKEN BAR;So;0;ON; 00A6;;;;N;FULLWIDTH BROKEN VERTICAL BAR;;;; FFE5;FULLWIDTH YEN SIGN;Sc;0;ET; 00A5;;;;N;;;;; FFE6;FULLWIDTH WON SIGN;Sc;0;ET; 20A9;;;;N;;;;; FFE8;HALFWIDTH FORMS LIGHT VERTICAL;So;0;ON; 2502;;;;N;;;;; FFE9;HALFWIDTH LEFTWARDS ARROW;Sm;0;ON; 2190;;;;N;;;;; FFEA;HALFWIDTH UPWARDS ARROW;Sm;0;ON; 2191;;;;N;;;;; FFEB;HALFWIDTH RIGHTWARDS ARROW;Sm;0;ON; 2192;;;;N;;;;; FFEC;HALFWIDTH DOWNWARDS ARROW;Sm;0;ON; 2193;;;;N;;;;; FFED;HALFWIDTH BLACK SQUARE;So;0;ON; 25A0;;;;N;;;;; FFEE;HALFWIDTH WHITE CIRCLE;So;0;ON; 25CB;;;;N;;;;; FFF9;INTERLINEAR ANNOTATION ANCHOR;Cf;0;BN;;;;;N;;;;; FFFA;INTERLINEAR ANNOTATION SEPARATOR;Cf;0;BN;;;;;N;;;;; FFFB;INTERLINEAR ANNOTATION TERMINATOR;Cf;0;BN;;;;;N;;;;; FFFC;OBJECT REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 10300;OLD ITALIC LETTER A;Lo;0;L;;;;;N;;;;; 10301;OLD ITALIC LETTER BE;Lo;0;L;;;;;N;;;;; 10302;OLD ITALIC LETTER KE;Lo;0;L;;;;;N;;;;; 10303;OLD ITALIC LETTER DE;Lo;0;L;;;;;N;;;;; 10304;OLD ITALIC LETTER E;Lo;0;L;;;;;N;;;;; 10305;OLD ITALIC LETTER VE;Lo;0;L;;;;;N;;;;; 10306;OLD ITALIC LETTER ZE;Lo;0;L;;;;;N;;;;; 10307;OLD ITALIC LETTER HE;Lo;0;L;;;;;N;;;;; 10308;OLD ITALIC LETTER THE;Lo;0;L;;;;;N;;;;; 10309;OLD ITALIC LETTER I;Lo;0;L;;;;;N;;;;; 1030A;OLD ITALIC LETTER KA;Lo;0;L;;;;;N;;;;; 1030B;OLD ITALIC LETTER EL;Lo;0;L;;;;;N;;;;; 1030C;OLD ITALIC LETTER EM;Lo;0;L;;;;;N;;;;; 1030D;OLD ITALIC LETTER EN;Lo;0;L;;;;;N;;;;; 1030E;OLD ITALIC LETTER ESH;Lo;0;L;;;;;N;;;;; 1030F;OLD ITALIC LETTER O;Lo;0;L;;;;;N;;Faliscan;;; 10310;OLD ITALIC LETTER PE;Lo;0;L;;;;;N;;;;; 10311;OLD ITALIC LETTER SHE;Lo;0;L;;;;;N;;;;; 10312;OLD ITALIC LETTER KU;Lo;0;L;;;;;N;;;;; 10313;OLD ITALIC LETTER ER;Lo;0;L;;;;;N;;;;; 10314;OLD ITALIC LETTER ES;Lo;0;L;;;;;N;;;;; 10315;OLD ITALIC LETTER TE;Lo;0;L;;;;;N;;;;; 10316;OLD ITALIC LETTER U;Lo;0;L;;;;;N;;;;; 10317;OLD ITALIC LETTER EKS;Lo;0;L;;;;;N;;Faliscan;;; 10318;OLD ITALIC LETTER PHE;Lo;0;L;;;;;N;;;;; 10319;OLD ITALIC LETTER KHE;Lo;0;L;;;;;N;;;;; 1031A;OLD ITALIC LETTER EF;Lo;0;L;;;;;N;;;;; 1031B;OLD ITALIC LETTER ERS;Lo;0;L;;;;;N;;Umbrian;;; 1031C;OLD ITALIC LETTER CHE;Lo;0;L;;;;;N;;Umbrian;;; 1031D;OLD ITALIC LETTER II;Lo;0;L;;;;;N;;Oscan;;; 1031E;OLD ITALIC LETTER UU;Lo;0;L;;;;;N;;Oscan;;; 10320;OLD ITALIC NUMERAL ONE;No;0;L;;;;1;N;;;;; 10321;OLD ITALIC NUMERAL FIVE;No;0;L;;;;5;N;;;;; 10322;OLD ITALIC NUMERAL TEN;No;0;L;;;;10;N;;;;; 10323;OLD ITALIC NUMERAL FIFTY;No;0;L;;;;50;N;;;;; 10330;GOTHIC LETTER AHSA;Lo;0;L;;;;;N;;;;; 10331;GOTHIC LETTER BAIRKAN;Lo;0;L;;;;;N;;;;; 10332;GOTHIC LETTER GIBA;Lo;0;L;;;;;N;;;;; 10333;GOTHIC LETTER DAGS;Lo;0;L;;;;;N;;;;; 10334;GOTHIC LETTER AIHVUS;Lo;0;L;;;;;N;;;;; 10335;GOTHIC LETTER QAIRTHRA;Lo;0;L;;;;;N;;;;; 10336;GOTHIC LETTER IUJA;Lo;0;L;;;;;N;;;;; 10337;GOTHIC LETTER HAGL;Lo;0;L;;;;;N;;;;; 10338;GOTHIC LETTER THIUTH;Lo;0;L;;;;;N;;;;; 10339;GOTHIC LETTER EIS;Lo;0;L;;;;;N;;;;; 1033A;GOTHIC LETTER KUSMA;Lo;0;L;;;;;N;;;;; 1033B;GOTHIC LETTER LAGUS;Lo;0;L;;;;;N;;;;; 1033C;GOTHIC LETTER MANNA;Lo;0;L;;;;;N;;;;; 1033D;GOTHIC LETTER NAUTHS;Lo;0;L;;;;;N;;;;; 1033E;GOTHIC LETTER JER;Lo;0;L;;;;;N;;;;; 1033F;GOTHIC LETTER URUS;Lo;0;L;;;;;N;;;;; 10340;GOTHIC LETTER PAIRTHRA;Lo;0;L;;;;;N;;;;; 10341;GOTHIC LETTER NINETY;Lo;0;L;;;;;N;;;;; 10342;GOTHIC LETTER RAIDA;Lo;0;L;;;;;N;;;;; 10343;GOTHIC LETTER SAUIL;Lo;0;L;;;;;N;;;;; 10344;GOTHIC LETTER TEIWS;Lo;0;L;;;;;N;;;;; 10345;GOTHIC LETTER WINJA;Lo;0;L;;;;;N;;;;; 10346;GOTHIC LETTER FAIHU;Lo;0;L;;;;;N;;;;; 10347;GOTHIC LETTER IGGWS;Lo;0;L;;;;;N;;;;; 10348;GOTHIC LETTER HWAIR;Lo;0;L;;;;;N;;;;; 10349;GOTHIC LETTER OTHAL;Lo;0;L;;;;;N;;;;; 1034A;GOTHIC LETTER NINE HUNDRED;Nl;0;L;;;;;N;;;;; 10400;DESERET CAPITAL LETTER LONG I;Lu;0;L;;;;;N;;;;10428; 10401;DESERET CAPITAL LETTER LONG E;Lu;0;L;;;;;N;;;;10429; 10402;DESERET CAPITAL LETTER LONG A;Lu;0;L;;;;;N;;;;1042A; 10403;DESERET CAPITAL LETTER LONG AH;Lu;0;L;;;;;N;;;;1042B; 10404;DESERET CAPITAL LETTER LONG O;Lu;0;L;;;;;N;;;;1042C; 10405;DESERET CAPITAL LETTER LONG OO;Lu;0;L;;;;;N;;;;1042D; 10406;DESERET CAPITAL LETTER SHORT I;Lu;0;L;;;;;N;;;;1042E; 10407;DESERET CAPITAL LETTER SHORT E;Lu;0;L;;;;;N;;;;1042F; 10408;DESERET CAPITAL LETTER SHORT A;Lu;0;L;;;;;N;;;;10430; 10409;DESERET CAPITAL LETTER SHORT AH;Lu;0;L;;;;;N;;;;10431; 1040A;DESERET CAPITAL LETTER SHORT O;Lu;0;L;;;;;N;;;;10432; 1040B;DESERET CAPITAL LETTER SHORT OO;Lu;0;L;;;;;N;;;;10433; 1040C;DESERET CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;10434; 1040D;DESERET CAPITAL LETTER OW;Lu;0;L;;;;;N;;;;10435; 1040E;DESERET CAPITAL LETTER WU;Lu;0;L;;;;;N;;;;10436; 1040F;DESERET CAPITAL LETTER YEE;Lu;0;L;;;;;N;;;;10437; 10410;DESERET CAPITAL LETTER H;Lu;0;L;;;;;N;;;;10438; 10411;DESERET CAPITAL LETTER PEE;Lu;0;L;;;;;N;;;;10439; 10412;DESERET CAPITAL LETTER BEE;Lu;0;L;;;;;N;;;;1043A; 10413;DESERET CAPITAL LETTER TEE;Lu;0;L;;;;;N;;;;1043B; 10414;DESERET CAPITAL LETTER DEE;Lu;0;L;;;;;N;;;;1043C; 10415;DESERET CAPITAL LETTER CHEE;Lu;0;L;;;;;N;;;;1043D; 10416;DESERET CAPITAL LETTER JEE;Lu;0;L;;;;;N;;;;1043E; 10417;DESERET CAPITAL LETTER KAY;Lu;0;L;;;;;N;;;;1043F; 10418;DESERET CAPITAL LETTER GAY;Lu;0;L;;;;;N;;;;10440; 10419;DESERET CAPITAL LETTER EF;Lu;0;L;;;;;N;;;;10441; 1041A;DESERET CAPITAL LETTER VEE;Lu;0;L;;;;;N;;;;10442; 1041B;DESERET CAPITAL LETTER ETH;Lu;0;L;;;;;N;;;;10443; 1041C;DESERET CAPITAL LETTER THEE;Lu;0;L;;;;;N;;;;10444; 1041D;DESERET CAPITAL LETTER ES;Lu;0;L;;;;;N;;;;10445; 1041E;DESERET CAPITAL LETTER ZEE;Lu;0;L;;;;;N;;;;10446; 1041F;DESERET CAPITAL LETTER ESH;Lu;0;L;;;;;N;;;;10447; 10420;DESERET CAPITAL LETTER ZHEE;Lu;0;L;;;;;N;;;;10448; 10421;DESERET CAPITAL LETTER ER;Lu;0;L;;;;;N;;;;10449; 10422;DESERET CAPITAL LETTER EL;Lu;0;L;;;;;N;;;;1044A; 10423;DESERET CAPITAL LETTER EM;Lu;0;L;;;;;N;;;;1044B; 10424;DESERET CAPITAL LETTER EN;Lu;0;L;;;;;N;;;;1044C; 10425;DESERET CAPITAL LETTER ENG;Lu;0;L;;;;;N;;;;1044D; 10428;DESERET SMALL LETTER LONG I;Ll;0;L;;;;;N;;;10400;;10400 10429;DESERET SMALL LETTER LONG E;Ll;0;L;;;;;N;;;10401;;10401 1042A;DESERET SMALL LETTER LONG A;Ll;0;L;;;;;N;;;10402;;10402 1042B;DESERET SMALL LETTER LONG AH;Ll;0;L;;;;;N;;;10403;;10403 1042C;DESERET SMALL LETTER LONG O;Ll;0;L;;;;;N;;;10404;;10404 1042D;DESERET SMALL LETTER LONG OO;Ll;0;L;;;;;N;;;10405;;10405 1042E;DESERET SMALL LETTER SHORT I;Ll;0;L;;;;;N;;;10406;;10406 1042F;DESERET SMALL LETTER SHORT E;Ll;0;L;;;;;N;;;10407;;10407 10430;DESERET SMALL LETTER SHORT A;Ll;0;L;;;;;N;;;10408;;10408 10431;DESERET SMALL LETTER SHORT AH;Ll;0;L;;;;;N;;;10409;;10409 10432;DESERET SMALL LETTER SHORT O;Ll;0;L;;;;;N;;;1040A;;1040A 10433;DESERET SMALL LETTER SHORT OO;Ll;0;L;;;;;N;;;1040B;;1040B 10434;DESERET SMALL LETTER AY;Ll;0;L;;;;;N;;;1040C;;1040C 10435;DESERET SMALL LETTER OW;Ll;0;L;;;;;N;;;1040D;;1040D 10436;DESERET SMALL LETTER WU;Ll;0;L;;;;;N;;;1040E;;1040E 10437;DESERET SMALL LETTER YEE;Ll;0;L;;;;;N;;;1040F;;1040F 10438;DESERET SMALL LETTER H;Ll;0;L;;;;;N;;;10410;;10410 10439;DESERET SMALL LETTER PEE;Ll;0;L;;;;;N;;;10411;;10411 1043A;DESERET SMALL LETTER BEE;Ll;0;L;;;;;N;;;10412;;10412 1043B;DESERET SMALL LETTER TEE;Ll;0;L;;;;;N;;;10413;;10413 1043C;DESERET SMALL LETTER DEE;Ll;0;L;;;;;N;;;10414;;10414 1043D;DESERET SMALL LETTER CHEE;Ll;0;L;;;;;N;;;10415;;10415 1043E;DESERET SMALL LETTER JEE;Ll;0;L;;;;;N;;;10416;;10416 1043F;DESERET SMALL LETTER KAY;Ll;0;L;;;;;N;;;10417;;10417 10440;DESERET SMALL LETTER GAY;Ll;0;L;;;;;N;;;10418;;10418 10441;DESERET SMALL LETTER EF;Ll;0;L;;;;;N;;;10419;;10419 10442;DESERET SMALL LETTER VEE;Ll;0;L;;;;;N;;;1041A;;1041A 10443;DESERET SMALL LETTER ETH;Ll;0;L;;;;;N;;;1041B;;1041B 10444;DESERET SMALL LETTER THEE;Ll;0;L;;;;;N;;;1041C;;1041C 10445;DESERET SMALL LETTER ES;Ll;0;L;;;;;N;;;1041D;;1041D 10446;DESERET SMALL LETTER ZEE;Ll;0;L;;;;;N;;;1041E;;1041E 10447;DESERET SMALL LETTER ESH;Ll;0;L;;;;;N;;;1041F;;1041F 10448;DESERET SMALL LETTER ZHEE;Ll;0;L;;;;;N;;;10420;;10420 10449;DESERET SMALL LETTER ER;Ll;0;L;;;;;N;;;10421;;10421 1044A;DESERET SMALL LETTER EL;Ll;0;L;;;;;N;;;10422;;10422 1044B;DESERET SMALL LETTER EM;Ll;0;L;;;;;N;;;10423;;10423 1044C;DESERET SMALL LETTER EN;Ll;0;L;;;;;N;;;10424;;10424 1044D;DESERET SMALL LETTER ENG;Ll;0;L;;;;;N;;;10425;;10425 1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;; 1D001;BYZANTINE MUSICAL SYMBOL DASEIA;So;0;L;;;;;N;;;;; 1D002;BYZANTINE MUSICAL SYMBOL PERISPOMENI;So;0;L;;;;;N;;;;; 1D003;BYZANTINE MUSICAL SYMBOL OXEIA EKFONITIKON;So;0;L;;;;;N;;;;; 1D004;BYZANTINE MUSICAL SYMBOL OXEIA DIPLI;So;0;L;;;;;N;;;;; 1D005;BYZANTINE MUSICAL SYMBOL VAREIA EKFONITIKON;So;0;L;;;;;N;;;;; 1D006;BYZANTINE MUSICAL SYMBOL VAREIA DIPLI;So;0;L;;;;;N;;;;; 1D007;BYZANTINE MUSICAL SYMBOL KATHISTI;So;0;L;;;;;N;;;;; 1D008;BYZANTINE MUSICAL SYMBOL SYRMATIKI;So;0;L;;;;;N;;;;; 1D009;BYZANTINE MUSICAL SYMBOL PARAKLITIKI;So;0;L;;;;;N;;;;; 1D00A;BYZANTINE MUSICAL SYMBOL YPOKRISIS;So;0;L;;;;;N;;;;; 1D00B;BYZANTINE MUSICAL SYMBOL YPOKRISIS DIPLI;So;0;L;;;;;N;;;;; 1D00C;BYZANTINE MUSICAL SYMBOL KREMASTI;So;0;L;;;;;N;;;;; 1D00D;BYZANTINE MUSICAL SYMBOL APESO EKFONITIKON;So;0;L;;;;;N;;;;; 1D00E;BYZANTINE MUSICAL SYMBOL EXO EKFONITIKON;So;0;L;;;;;N;;;;; 1D00F;BYZANTINE MUSICAL SYMBOL TELEIA;So;0;L;;;;;N;;;;; 1D010;BYZANTINE MUSICAL SYMBOL KENTIMATA;So;0;L;;;;;N;;;;; 1D011;BYZANTINE MUSICAL SYMBOL APOSTROFOS;So;0;L;;;;;N;;;;; 1D012;BYZANTINE MUSICAL SYMBOL APOSTROFOS DIPLI;So;0;L;;;;;N;;;;; 1D013;BYZANTINE MUSICAL SYMBOL SYNEVMA;So;0;L;;;;;N;;;;; 1D014;BYZANTINE MUSICAL SYMBOL THITA;So;0;L;;;;;N;;;;; 1D015;BYZANTINE MUSICAL SYMBOL OLIGON ARCHAION;So;0;L;;;;;N;;;;; 1D016;BYZANTINE MUSICAL SYMBOL GORGON ARCHAION;So;0;L;;;;;N;;;;; 1D017;BYZANTINE MUSICAL SYMBOL PSILON;So;0;L;;;;;N;;;;; 1D018;BYZANTINE MUSICAL SYMBOL CHAMILON;So;0;L;;;;;N;;;;; 1D019;BYZANTINE MUSICAL SYMBOL VATHY;So;0;L;;;;;N;;;;; 1D01A;BYZANTINE MUSICAL SYMBOL ISON ARCHAION;So;0;L;;;;;N;;;;; 1D01B;BYZANTINE MUSICAL SYMBOL KENTIMA ARCHAION;So;0;L;;;;;N;;;;; 1D01C;BYZANTINE MUSICAL SYMBOL KENTIMATA ARCHAION;So;0;L;;;;;N;;;;; 1D01D;BYZANTINE MUSICAL SYMBOL SAXIMATA;So;0;L;;;;;N;;;;; 1D01E;BYZANTINE MUSICAL SYMBOL PARICHON;So;0;L;;;;;N;;;;; 1D01F;BYZANTINE MUSICAL SYMBOL STAVROS APODEXIA;So;0;L;;;;;N;;;;; 1D020;BYZANTINE MUSICAL SYMBOL OXEIAI ARCHAION;So;0;L;;;;;N;;;;; 1D021;BYZANTINE MUSICAL SYMBOL VAREIAI ARCHAION;So;0;L;;;;;N;;;;; 1D022;BYZANTINE MUSICAL SYMBOL APODERMA ARCHAION;So;0;L;;;;;N;;;;; 1D023;BYZANTINE MUSICAL SYMBOL APOTHEMA;So;0;L;;;;;N;;;;; 1D024;BYZANTINE MUSICAL SYMBOL KLASMA;So;0;L;;;;;N;;;;; 1D025;BYZANTINE MUSICAL SYMBOL REVMA;So;0;L;;;;;N;;;;; 1D026;BYZANTINE MUSICAL SYMBOL PIASMA ARCHAION;So;0;L;;;;;N;;;;; 1D027;BYZANTINE MUSICAL SYMBOL TINAGMA;So;0;L;;;;;N;;;;; 1D028;BYZANTINE MUSICAL SYMBOL ANATRICHISMA;So;0;L;;;;;N;;;;; 1D029;BYZANTINE MUSICAL SYMBOL SEISMA;So;0;L;;;;;N;;;;; 1D02A;BYZANTINE MUSICAL SYMBOL SYNAGMA ARCHAION;So;0;L;;;;;N;;;;; 1D02B;BYZANTINE MUSICAL SYMBOL SYNAGMA META STAVROU;So;0;L;;;;;N;;;;; 1D02C;BYZANTINE MUSICAL SYMBOL OYRANISMA ARCHAION;So;0;L;;;;;N;;;;; 1D02D;BYZANTINE MUSICAL SYMBOL THEMA;So;0;L;;;;;N;;;;; 1D02E;BYZANTINE MUSICAL SYMBOL LEMOI;So;0;L;;;;;N;;;;; 1D02F;BYZANTINE MUSICAL SYMBOL DYO;So;0;L;;;;;N;;;;; 1D030;BYZANTINE MUSICAL SYMBOL TRIA;So;0;L;;;;;N;;;;; 1D031;BYZANTINE MUSICAL SYMBOL TESSERA;So;0;L;;;;;N;;;;; 1D032;BYZANTINE MUSICAL SYMBOL KRATIMATA;So;0;L;;;;;N;;;;; 1D033;BYZANTINE MUSICAL SYMBOL APESO EXO NEO;So;0;L;;;;;N;;;;; 1D034;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION;So;0;L;;;;;N;;;;; 1D035;BYZANTINE MUSICAL SYMBOL IMIFTHORA;So;0;L;;;;;N;;;;; 1D036;BYZANTINE MUSICAL SYMBOL TROMIKON ARCHAION;So;0;L;;;;;N;;;;; 1D037;BYZANTINE MUSICAL SYMBOL KATAVA TROMIKON;So;0;L;;;;;N;;;;; 1D038;BYZANTINE MUSICAL SYMBOL PELASTON;So;0;L;;;;;N;;;;; 1D039;BYZANTINE MUSICAL SYMBOL PSIFISTON;So;0;L;;;;;N;;;;; 1D03A;BYZANTINE MUSICAL SYMBOL KONTEVMA;So;0;L;;;;;N;;;;; 1D03B;BYZANTINE MUSICAL SYMBOL CHOREVMA ARCHAION;So;0;L;;;;;N;;;;; 1D03C;BYZANTINE MUSICAL SYMBOL RAPISMA;So;0;L;;;;;N;;;;; 1D03D;BYZANTINE MUSICAL SYMBOL PARAKALESMA ARCHAION;So;0;L;;;;;N;;;;; 1D03E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI ARCHAION;So;0;L;;;;;N;;;;; 1D03F;BYZANTINE MUSICAL SYMBOL ICHADIN;So;0;L;;;;;N;;;;; 1D040;BYZANTINE MUSICAL SYMBOL NANA;So;0;L;;;;;N;;;;; 1D041;BYZANTINE MUSICAL SYMBOL PETASMA;So;0;L;;;;;N;;;;; 1D042;BYZANTINE MUSICAL SYMBOL KONTEVMA ALLO;So;0;L;;;;;N;;;;; 1D043;BYZANTINE MUSICAL SYMBOL TROMIKON ALLO;So;0;L;;;;;N;;;;; 1D044;BYZANTINE MUSICAL SYMBOL STRAGGISMATA;So;0;L;;;;;N;;;;; 1D045;BYZANTINE MUSICAL SYMBOL GRONTHISMATA;So;0;L;;;;;N;;;;; 1D046;BYZANTINE MUSICAL SYMBOL ISON NEO;So;0;L;;;;;N;;;;; 1D047;BYZANTINE MUSICAL SYMBOL OLIGON NEO;So;0;L;;;;;N;;;;; 1D048;BYZANTINE MUSICAL SYMBOL OXEIA NEO;So;0;L;;;;;N;;;;; 1D049;BYZANTINE MUSICAL SYMBOL PETASTI;So;0;L;;;;;N;;;;; 1D04A;BYZANTINE MUSICAL SYMBOL KOUFISMA;So;0;L;;;;;N;;;;; 1D04B;BYZANTINE MUSICAL SYMBOL PETASTOKOUFISMA;So;0;L;;;;;N;;;;; 1D04C;BYZANTINE MUSICAL SYMBOL KRATIMOKOUFISMA;So;0;L;;;;;N;;;;; 1D04D;BYZANTINE MUSICAL SYMBOL PELASTON NEO;So;0;L;;;;;N;;;;; 1D04E;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO ANO;So;0;L;;;;;N;;;;; 1D04F;BYZANTINE MUSICAL SYMBOL KENTIMA NEO ANO;So;0;L;;;;;N;;;;; 1D050;BYZANTINE MUSICAL SYMBOL YPSILI;So;0;L;;;;;N;;;;; 1D051;BYZANTINE MUSICAL SYMBOL APOSTROFOS NEO;So;0;L;;;;;N;;;;; 1D052;BYZANTINE MUSICAL SYMBOL APOSTROFOI SYNDESMOS NEO;So;0;L;;;;;N;;;;; 1D053;BYZANTINE MUSICAL SYMBOL YPORROI;So;0;L;;;;;N;;;;; 1D054;BYZANTINE MUSICAL SYMBOL KRATIMOYPORROON;So;0;L;;;;;N;;;;; 1D055;BYZANTINE MUSICAL SYMBOL ELAFRON;So;0;L;;;;;N;;;;; 1D056;BYZANTINE MUSICAL SYMBOL CHAMILI;So;0;L;;;;;N;;;;; 1D057;BYZANTINE MUSICAL SYMBOL MIKRON ISON;So;0;L;;;;;N;;;;; 1D058;BYZANTINE MUSICAL SYMBOL VAREIA NEO;So;0;L;;;;;N;;;;; 1D059;BYZANTINE MUSICAL SYMBOL PIASMA NEO;So;0;L;;;;;N;;;;; 1D05A;BYZANTINE MUSICAL SYMBOL PSIFISTON NEO;So;0;L;;;;;N;;;;; 1D05B;BYZANTINE MUSICAL SYMBOL OMALON;So;0;L;;;;;N;;;;; 1D05C;BYZANTINE MUSICAL SYMBOL ANTIKENOMA;So;0;L;;;;;N;;;;; 1D05D;BYZANTINE MUSICAL SYMBOL LYGISMA;So;0;L;;;;;N;;;;; 1D05E;BYZANTINE MUSICAL SYMBOL PARAKLITIKI NEO;So;0;L;;;;;N;;;;; 1D05F;BYZANTINE MUSICAL SYMBOL PARAKALESMA NEO;So;0;L;;;;;N;;;;; 1D060;BYZANTINE MUSICAL SYMBOL ETERON PARAKALESMA;So;0;L;;;;;N;;;;; 1D061;BYZANTINE MUSICAL SYMBOL KYLISMA;So;0;L;;;;;N;;;;; 1D062;BYZANTINE MUSICAL SYMBOL ANTIKENOKYLISMA;So;0;L;;;;;N;;;;; 1D063;BYZANTINE MUSICAL SYMBOL TROMIKON NEO;So;0;L;;;;;N;;;;; 1D064;BYZANTINE MUSICAL SYMBOL EKSTREPTON;So;0;L;;;;;N;;;;; 1D065;BYZANTINE MUSICAL SYMBOL SYNAGMA NEO;So;0;L;;;;;N;;;;; 1D066;BYZANTINE MUSICAL SYMBOL SYRMA;So;0;L;;;;;N;;;;; 1D067;BYZANTINE MUSICAL SYMBOL CHOREVMA NEO;So;0;L;;;;;N;;;;; 1D068;BYZANTINE MUSICAL SYMBOL EPEGERMA;So;0;L;;;;;N;;;;; 1D069;BYZANTINE MUSICAL SYMBOL SEISMA NEO;So;0;L;;;;;N;;;;; 1D06A;BYZANTINE MUSICAL SYMBOL XIRON KLASMA;So;0;L;;;;;N;;;;; 1D06B;BYZANTINE MUSICAL SYMBOL TROMIKOPSIFISTON;So;0;L;;;;;N;;;;; 1D06C;BYZANTINE MUSICAL SYMBOL PSIFISTOLYGISMA;So;0;L;;;;;N;;;;; 1D06D;BYZANTINE MUSICAL SYMBOL TROMIKOLYGISMA;So;0;L;;;;;N;;;;; 1D06E;BYZANTINE MUSICAL SYMBOL TROMIKOPARAKALESMA;So;0;L;;;;;N;;;;; 1D06F;BYZANTINE MUSICAL SYMBOL PSIFISTOPARAKALESMA;So;0;L;;;;;N;;;;; 1D070;BYZANTINE MUSICAL SYMBOL TROMIKOSYNAGMA;So;0;L;;;;;N;;;;; 1D071;BYZANTINE MUSICAL SYMBOL PSIFISTOSYNAGMA;So;0;L;;;;;N;;;;; 1D072;BYZANTINE MUSICAL SYMBOL GORGOSYNTHETON;So;0;L;;;;;N;;;;; 1D073;BYZANTINE MUSICAL SYMBOL ARGOSYNTHETON;So;0;L;;;;;N;;;;; 1D074;BYZANTINE MUSICAL SYMBOL ETERON ARGOSYNTHETON;So;0;L;;;;;N;;;;; 1D075;BYZANTINE MUSICAL SYMBOL OYRANISMA NEO;So;0;L;;;;;N;;;;; 1D076;BYZANTINE MUSICAL SYMBOL THEMATISMOS ESO;So;0;L;;;;;N;;;;; 1D077;BYZANTINE MUSICAL SYMBOL THEMATISMOS EXO;So;0;L;;;;;N;;;;; 1D078;BYZANTINE MUSICAL SYMBOL THEMA APLOUN;So;0;L;;;;;N;;;;; 1D079;BYZANTINE MUSICAL SYMBOL THES KAI APOTHES;So;0;L;;;;;N;;;;; 1D07A;BYZANTINE MUSICAL SYMBOL KATAVASMA;So;0;L;;;;;N;;;;; 1D07B;BYZANTINE MUSICAL SYMBOL ENDOFONON;So;0;L;;;;;N;;;;; 1D07C;BYZANTINE MUSICAL SYMBOL YFEN KATO;So;0;L;;;;;N;;;;; 1D07D;BYZANTINE MUSICAL SYMBOL YFEN ANO;So;0;L;;;;;N;;;;; 1D07E;BYZANTINE MUSICAL SYMBOL STAVROS;So;0;L;;;;;N;;;;; 1D07F;BYZANTINE MUSICAL SYMBOL KLASMA ANO;So;0;L;;;;;N;;;;; 1D080;BYZANTINE MUSICAL SYMBOL DIPLI ARCHAION;So;0;L;;;;;N;;;;; 1D081;BYZANTINE MUSICAL SYMBOL KRATIMA ARCHAION;So;0;L;;;;;N;;;;; 1D082;BYZANTINE MUSICAL SYMBOL KRATIMA ALLO;So;0;L;;;;;N;;;;; 1D083;BYZANTINE MUSICAL SYMBOL KRATIMA NEO;So;0;L;;;;;N;;;;; 1D084;BYZANTINE MUSICAL SYMBOL APODERMA NEO;So;0;L;;;;;N;;;;; 1D085;BYZANTINE MUSICAL SYMBOL APLI;So;0;L;;;;;N;;;;; 1D086;BYZANTINE MUSICAL SYMBOL DIPLI;So;0;L;;;;;N;;;;; 1D087;BYZANTINE MUSICAL SYMBOL TRIPLI;So;0;L;;;;;N;;;;; 1D088;BYZANTINE MUSICAL SYMBOL TETRAPLI;So;0;L;;;;;N;;;;; 1D089;BYZANTINE MUSICAL SYMBOL KORONIS;So;0;L;;;;;N;;;;; 1D08A;BYZANTINE MUSICAL SYMBOL LEIMMA ENOS CHRONOU;So;0;L;;;;;N;;;;; 1D08B;BYZANTINE MUSICAL SYMBOL LEIMMA DYO CHRONON;So;0;L;;;;;N;;;;; 1D08C;BYZANTINE MUSICAL SYMBOL LEIMMA TRION CHRONON;So;0;L;;;;;N;;;;; 1D08D;BYZANTINE MUSICAL SYMBOL LEIMMA TESSARON CHRONON;So;0;L;;;;;N;;;;; 1D08E;BYZANTINE MUSICAL SYMBOL LEIMMA IMISEOS CHRONOU;So;0;L;;;;;N;;;;; 1D08F;BYZANTINE MUSICAL SYMBOL GORGON NEO ANO;So;0;L;;;;;N;;;;; 1D090;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON ARISTERA;So;0;L;;;;;N;;;;; 1D091;BYZANTINE MUSICAL SYMBOL GORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; 1D092;BYZANTINE MUSICAL SYMBOL DIGORGON;So;0;L;;;;;N;;;;; 1D093;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA KATO;So;0;L;;;;;N;;;;; 1D094;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON ARISTERA ANO;So;0;L;;;;;N;;;;; 1D095;BYZANTINE MUSICAL SYMBOL DIGORGON PARESTIGMENON DEXIA;So;0;L;;;;;N;;;;; 1D096;BYZANTINE MUSICAL SYMBOL TRIGORGON;So;0;L;;;;;N;;;;; 1D097;BYZANTINE MUSICAL SYMBOL ARGON;So;0;L;;;;;N;;;;; 1D098;BYZANTINE MUSICAL SYMBOL IMIDIARGON;So;0;L;;;;;N;;;;; 1D099;BYZANTINE MUSICAL SYMBOL DIARGON;So;0;L;;;;;N;;;;; 1D09A;BYZANTINE MUSICAL SYMBOL AGOGI POLI ARGI;So;0;L;;;;;N;;;;; 1D09B;BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI;So;0;L;;;;;N;;;;; 1D09C;BYZANTINE MUSICAL SYMBOL AGOGI ARGI;So;0;L;;;;;N;;;;; 1D09D;BYZANTINE MUSICAL SYMBOL AGOGI METRIA;So;0;L;;;;;N;;;;; 1D09E;BYZANTINE MUSICAL SYMBOL AGOGI MESI;So;0;L;;;;;N;;;;; 1D09F;BYZANTINE MUSICAL SYMBOL AGOGI GORGI;So;0;L;;;;;N;;;;; 1D0A0;BYZANTINE MUSICAL SYMBOL AGOGI GORGOTERI;So;0;L;;;;;N;;;;; 1D0A1;BYZANTINE MUSICAL SYMBOL AGOGI POLI GORGI;So;0;L;;;;;N;;;;; 1D0A2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOS ICHOS;So;0;L;;;;;N;;;;; 1D0A3;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI PROTOS ICHOS;So;0;L;;;;;N;;;;; 1D0A4;BYZANTINE MUSICAL SYMBOL MARTYRIA DEYTEROS ICHOS;So;0;L;;;;;N;;;;; 1D0A5;BYZANTINE MUSICAL SYMBOL MARTYRIA ALLI DEYTEROS ICHOS;So;0;L;;;;;N;;;;; 1D0A6;BYZANTINE MUSICAL SYMBOL MARTYRIA TRITOS ICHOS;So;0;L;;;;;N;;;;; 1D0A7;BYZANTINE MUSICAL SYMBOL MARTYRIA TRIFONIAS;So;0;L;;;;;N;;;;; 1D0A8;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS ICHOS;So;0;L;;;;;N;;;;; 1D0A9;BYZANTINE MUSICAL SYMBOL MARTYRIA TETARTOS LEGETOS ICHOS;So;0;L;;;;;N;;;;; 1D0AA;BYZANTINE MUSICAL SYMBOL MARTYRIA LEGETOS ICHOS;So;0;L;;;;;N;;;;; 1D0AB;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS ICHOS;So;0;L;;;;;N;;;;; 1D0AC;BYZANTINE MUSICAL SYMBOL ISAKIA TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; 1D0AD;BYZANTINE MUSICAL SYMBOL APOSTROFOI TELOUS ICHIMATOS;So;0;L;;;;;N;;;;; 1D0AE;BYZANTINE MUSICAL SYMBOL FANEROSIS TETRAFONIAS;So;0;L;;;;;N;;;;; 1D0AF;BYZANTINE MUSICAL SYMBOL FANEROSIS MONOFONIAS;So;0;L;;;;;N;;;;; 1D0B0;BYZANTINE MUSICAL SYMBOL FANEROSIS DIFONIAS;So;0;L;;;;;N;;;;; 1D0B1;BYZANTINE MUSICAL SYMBOL MARTYRIA VARYS ICHOS;So;0;L;;;;;N;;;;; 1D0B2;BYZANTINE MUSICAL SYMBOL MARTYRIA PROTOVARYS ICHOS;So;0;L;;;;;N;;;;; 1D0B3;BYZANTINE MUSICAL SYMBOL MARTYRIA PLAGIOS TETARTOS ICHOS;So;0;L;;;;;N;;;;; 1D0B4;BYZANTINE MUSICAL SYMBOL GORTHMIKON N APLOUN;So;0;L;;;;;N;;;;; 1D0B5;BYZANTINE MUSICAL SYMBOL GORTHMIKON N DIPLOUN;So;0;L;;;;;N;;;;; 1D0B6;BYZANTINE MUSICAL SYMBOL ENARXIS KAI FTHORA VOU;So;0;L;;;;;N;;;;; 1D0B7;BYZANTINE MUSICAL SYMBOL IMIFONON;So;0;L;;;;;N;;;;; 1D0B8;BYZANTINE MUSICAL SYMBOL IMIFTHORON;So;0;L;;;;;N;;;;; 1D0B9;BYZANTINE MUSICAL SYMBOL FTHORA ARCHAION DEYTEROU ICHOU;So;0;L;;;;;N;;;;; 1D0BA;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI PA;So;0;L;;;;;N;;;;; 1D0BB;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NANA;So;0;L;;;;;N;;;;; 1D0BC;BYZANTINE MUSICAL SYMBOL FTHORA NAOS ICHOS;So;0;L;;;;;N;;;;; 1D0BD;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI DI;So;0;L;;;;;N;;;;; 1D0BE;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON DIATONON DI;So;0;L;;;;;N;;;;; 1D0BF;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI KE;So;0;L;;;;;N;;;;; 1D0C0;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI ZO;So;0;L;;;;;N;;;;; 1D0C1;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI KATO;So;0;L;;;;;N;;;;; 1D0C2;BYZANTINE MUSICAL SYMBOL FTHORA DIATONIKI NI ANO;So;0;L;;;;;N;;;;; 1D0C3;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA DIFONIAS;So;0;L;;;;;N;;;;; 1D0C4;BYZANTINE MUSICAL SYMBOL FTHORA MALAKON CHROMA MONOFONIAS;So;0;L;;;;;N;;;;; 1D0C5;BYZANTINE MUSICAL SYMBOL FHTORA SKLIRON CHROMA VASIS;So;0;L;;;;;N;;;;; 1D0C6;BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA SYNAFI;So;0;L;;;;;N;;;;; 1D0C7;BYZANTINE MUSICAL SYMBOL FTHORA NENANO;So;0;L;;;;;N;;;;; 1D0C8;BYZANTINE MUSICAL SYMBOL CHROA ZYGOS;So;0;L;;;;;N;;;;; 1D0C9;BYZANTINE MUSICAL SYMBOL CHROA KLITON;So;0;L;;;;;N;;;;; 1D0CA;BYZANTINE MUSICAL SYMBOL CHROA SPATHI;So;0;L;;;;;N;;;;; 1D0CB;BYZANTINE MUSICAL SYMBOL FTHORA I YFESIS TETARTIMORION;So;0;L;;;;;N;;;;; 1D0CC;BYZANTINE MUSICAL SYMBOL FTHORA ENARMONIOS ANTIFONIA;So;0;L;;;;;N;;;;; 1D0CD;BYZANTINE MUSICAL SYMBOL YFESIS TRITIMORION;So;0;L;;;;;N;;;;; 1D0CE;BYZANTINE MUSICAL SYMBOL DIESIS TRITIMORION;So;0;L;;;;;N;;;;; 1D0CF;BYZANTINE MUSICAL SYMBOL DIESIS TETARTIMORION;So;0;L;;;;;N;;;;; 1D0D0;BYZANTINE MUSICAL SYMBOL DIESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; 1D0D1;BYZANTINE MUSICAL SYMBOL DIESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; 1D0D2;BYZANTINE MUSICAL SYMBOL DIESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; 1D0D3;BYZANTINE MUSICAL SYMBOL DIESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; 1D0D4;BYZANTINE MUSICAL SYMBOL YFESIS APLI DYO DODEKATA;So;0;L;;;;;N;;;;; 1D0D5;BYZANTINE MUSICAL SYMBOL YFESIS MONOGRAMMOS TESSERA DODEKATA;So;0;L;;;;;N;;;;; 1D0D6;BYZANTINE MUSICAL SYMBOL YFESIS DIGRAMMOS EX DODEKATA;So;0;L;;;;;N;;;;; 1D0D7;BYZANTINE MUSICAL SYMBOL YFESIS TRIGRAMMOS OKTO DODEKATA;So;0;L;;;;;N;;;;; 1D0D8;BYZANTINE MUSICAL SYMBOL GENIKI DIESIS;So;0;L;;;;;N;;;;; 1D0D9;BYZANTINE MUSICAL SYMBOL GENIKI YFESIS;So;0;L;;;;;N;;;;; 1D0DA;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MIKRI;So;0;L;;;;;N;;;;; 1D0DB;BYZANTINE MUSICAL SYMBOL DIASTOLI APLI MEGALI;So;0;L;;;;;N;;;;; 1D0DC;BYZANTINE MUSICAL SYMBOL DIASTOLI DIPLI;So;0;L;;;;;N;;;;; 1D0DD;BYZANTINE MUSICAL SYMBOL DIASTOLI THESEOS;So;0;L;;;;;N;;;;; 1D0DE;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS;So;0;L;;;;;N;;;;; 1D0DF;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS DISIMOU;So;0;L;;;;;N;;;;; 1D0E0;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TRISIMOU;So;0;L;;;;;N;;;;; 1D0E1;BYZANTINE MUSICAL SYMBOL SIMANSIS THESEOS TETRASIMOU;So;0;L;;;;;N;;;;; 1D0E2;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS;So;0;L;;;;;N;;;;; 1D0E3;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS DISIMOU;So;0;L;;;;;N;;;;; 1D0E4;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TRISIMOU;So;0;L;;;;;N;;;;; 1D0E5;BYZANTINE MUSICAL SYMBOL SIMANSIS ARSEOS TETRASIMOU;So;0;L;;;;;N;;;;; 1D0E6;BYZANTINE MUSICAL SYMBOL DIGRAMMA GG;So;0;L;;;;;N;;;;; 1D0E7;BYZANTINE MUSICAL SYMBOL DIFTOGGOS OU;So;0;L;;;;;N;;;;; 1D0E8;BYZANTINE MUSICAL SYMBOL STIGMA;So;0;L;;;;;N;;;;; 1D0E9;BYZANTINE MUSICAL SYMBOL ARKTIKO PA;So;0;L;;;;;N;;;;; 1D0EA;BYZANTINE MUSICAL SYMBOL ARKTIKO VOU;So;0;L;;;;;N;;;;; 1D0EB;BYZANTINE MUSICAL SYMBOL ARKTIKO GA;So;0;L;;;;;N;;;;; 1D0EC;BYZANTINE MUSICAL SYMBOL ARKTIKO DI;So;0;L;;;;;N;;;;; 1D0ED;BYZANTINE MUSICAL SYMBOL ARKTIKO KE;So;0;L;;;;;N;;;;; 1D0EE;BYZANTINE MUSICAL SYMBOL ARKTIKO ZO;So;0;L;;;;;N;;;;; 1D0EF;BYZANTINE MUSICAL SYMBOL ARKTIKO NI;So;0;L;;;;;N;;;;; 1D0F0;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO MESO;So;0;L;;;;;N;;;;; 1D0F1;BYZANTINE MUSICAL SYMBOL KENTIMA NEO MESO;So;0;L;;;;;N;;;;; 1D0F2;BYZANTINE MUSICAL SYMBOL KENTIMATA NEO KATO;So;0;L;;;;;N;;;;; 1D0F3;BYZANTINE MUSICAL SYMBOL KENTIMA NEO KATO;So;0;L;;;;;N;;;;; 1D0F4;BYZANTINE MUSICAL SYMBOL KLASMA KATO;So;0;L;;;;;N;;;;; 1D0F5;BYZANTINE MUSICAL SYMBOL GORGON NEO KATO;So;0;L;;;;;N;;;;; 1D100;MUSICAL SYMBOL SINGLE BARLINE;So;0;L;;;;;N;;;;; 1D101;MUSICAL SYMBOL DOUBLE BARLINE;So;0;L;;;;;N;;;;; 1D102;MUSICAL SYMBOL FINAL BARLINE;So;0;L;;;;;N;;;;; 1D103;MUSICAL SYMBOL REVERSE FINAL BARLINE;So;0;L;;;;;N;;;;; 1D104;MUSICAL SYMBOL DASHED BARLINE;So;0;L;;;;;N;;;;; 1D105;MUSICAL SYMBOL SHORT BARLINE;So;0;L;;;;;N;;;;; 1D106;MUSICAL SYMBOL LEFT REPEAT SIGN;So;0;L;;;;;N;;;;; 1D107;MUSICAL SYMBOL RIGHT REPEAT SIGN;So;0;L;;;;;N;;;;; 1D108;MUSICAL SYMBOL REPEAT DOTS;So;0;L;;;;;N;;;;; 1D109;MUSICAL SYMBOL DAL SEGNO;So;0;L;;;;;N;;;;; 1D10A;MUSICAL SYMBOL DA CAPO;So;0;L;;;;;N;;;;; 1D10B;MUSICAL SYMBOL SEGNO;So;0;L;;;;;N;;;;; 1D10C;MUSICAL SYMBOL CODA;So;0;L;;;;;N;;;;; 1D10D;MUSICAL SYMBOL REPEATED FIGURE-1;So;0;L;;;;;N;;;;; 1D10E;MUSICAL SYMBOL REPEATED FIGURE-2;So;0;L;;;;;N;;;;; 1D10F;MUSICAL SYMBOL REPEATED FIGURE-3;So;0;L;;;;;N;;;;; 1D110;MUSICAL SYMBOL FERMATA;So;0;L;;;;;N;;;;; 1D111;MUSICAL SYMBOL FERMATA BELOW;So;0;L;;;;;N;;;;; 1D112;MUSICAL SYMBOL BREATH MARK;So;0;L;;;;;N;;;;; 1D113;MUSICAL SYMBOL CAESURA;So;0;L;;;;;N;;;;; 1D114;MUSICAL SYMBOL BRACE;So;0;L;;;;;N;;;;; 1D115;MUSICAL SYMBOL BRACKET;So;0;L;;;;;N;;;;; 1D116;MUSICAL SYMBOL ONE-LINE STAFF;So;0;L;;;;;N;;;;; 1D117;MUSICAL SYMBOL TWO-LINE STAFF;So;0;L;;;;;N;;;;; 1D118;MUSICAL SYMBOL THREE-LINE STAFF;So;0;L;;;;;N;;;;; 1D119;MUSICAL SYMBOL FOUR-LINE STAFF;So;0;L;;;;;N;;;;; 1D11A;MUSICAL SYMBOL FIVE-LINE STAFF;So;0;L;;;;;N;;;;; 1D11B;MUSICAL SYMBOL SIX-LINE STAFF;So;0;L;;;;;N;;;;; 1D11C;MUSICAL SYMBOL SIX-STRING FRETBOARD;So;0;L;;;;;N;;;;; 1D11D;MUSICAL SYMBOL FOUR-STRING FRETBOARD;So;0;L;;;;;N;;;;; 1D11E;MUSICAL SYMBOL G CLEF;So;0;L;;;;;N;;;;; 1D11F;MUSICAL SYMBOL G CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; 1D120;MUSICAL SYMBOL G CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; 1D121;MUSICAL SYMBOL C CLEF;So;0;L;;;;;N;;;;; 1D122;MUSICAL SYMBOL F CLEF;So;0;L;;;;;N;;;;; 1D123;MUSICAL SYMBOL F CLEF OTTAVA ALTA;So;0;L;;;;;N;;;;; 1D124;MUSICAL SYMBOL F CLEF OTTAVA BASSA;So;0;L;;;;;N;;;;; 1D125;MUSICAL SYMBOL DRUM CLEF-1;So;0;L;;;;;N;;;;; 1D126;MUSICAL SYMBOL DRUM CLEF-2;So;0;L;;;;;N;;;;; 1D12A;MUSICAL SYMBOL DOUBLE SHARP;So;0;L;;;;;N;;;;; 1D12B;MUSICAL SYMBOL DOUBLE FLAT;So;0;L;;;;;N;;;;; 1D12C;MUSICAL SYMBOL FLAT UP;So;0;L;;;;;N;;;;; 1D12D;MUSICAL SYMBOL FLAT DOWN;So;0;L;;;;;N;;;;; 1D12E;MUSICAL SYMBOL NATURAL UP;So;0;L;;;;;N;;;;; 1D12F;MUSICAL SYMBOL NATURAL DOWN;So;0;L;;;;;N;;;;; 1D130;MUSICAL SYMBOL SHARP UP;So;0;L;;;;;N;;;;; 1D131;MUSICAL SYMBOL SHARP DOWN;So;0;L;;;;;N;;;;; 1D132;MUSICAL SYMBOL QUARTER TONE SHARP;So;0;L;;;;;N;;;;; 1D133;MUSICAL SYMBOL QUARTER TONE FLAT;So;0;L;;;;;N;;;;; 1D134;MUSICAL SYMBOL COMMON TIME;So;0;L;;;;;N;;;;; 1D135;MUSICAL SYMBOL CUT TIME;So;0;L;;;;;N;;;;; 1D136;MUSICAL SYMBOL OTTAVA ALTA;So;0;L;;;;;N;;;;; 1D137;MUSICAL SYMBOL OTTAVA BASSA;So;0;L;;;;;N;;;;; 1D138;MUSICAL SYMBOL QUINDICESIMA ALTA;So;0;L;;;;;N;;;;; 1D139;MUSICAL SYMBOL QUINDICESIMA BASSA;So;0;L;;;;;N;;;;; 1D13A;MUSICAL SYMBOL MULTI REST;So;0;L;;;;;N;;;;; 1D13B;MUSICAL SYMBOL WHOLE REST;So;0;L;;;;;N;;;;; 1D13C;MUSICAL SYMBOL HALF REST;So;0;L;;;;;N;;;;; 1D13D;MUSICAL SYMBOL QUARTER REST;So;0;L;;;;;N;;;;; 1D13E;MUSICAL SYMBOL EIGHTH REST;So;0;L;;;;;N;;;;; 1D13F;MUSICAL SYMBOL SIXTEENTH REST;So;0;L;;;;;N;;;;; 1D140;MUSICAL SYMBOL THIRTY-SECOND REST;So;0;L;;;;;N;;;;; 1D141;MUSICAL SYMBOL SIXTY-FOURTH REST;So;0;L;;;;;N;;;;; 1D142;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH REST;So;0;L;;;;;N;;;;; 1D143;MUSICAL SYMBOL X NOTEHEAD;So;0;L;;;;;N;;;;; 1D144;MUSICAL SYMBOL PLUS NOTEHEAD;So;0;L;;;;;N;;;;; 1D145;MUSICAL SYMBOL CIRCLE X NOTEHEAD;So;0;L;;;;;N;;;;; 1D146;MUSICAL SYMBOL SQUARE NOTEHEAD WHITE;So;0;L;;;;;N;;;;; 1D147;MUSICAL SYMBOL SQUARE NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D148;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP WHITE;So;0;L;;;;;N;;;;; 1D149;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP BLACK;So;0;L;;;;;N;;;;; 1D14A;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT WHITE;So;0;L;;;;;N;;;;; 1D14B;MUSICAL SYMBOL TRIANGLE NOTEHEAD LEFT BLACK;So;0;L;;;;;N;;;;; 1D14C;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT WHITE;So;0;L;;;;;N;;;;; 1D14D;MUSICAL SYMBOL TRIANGLE NOTEHEAD RIGHT BLACK;So;0;L;;;;;N;;;;; 1D14E;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; 1D14F;MUSICAL SYMBOL TRIANGLE NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; 1D150;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT WHITE;So;0;L;;;;;N;;;;; 1D151;MUSICAL SYMBOL TRIANGLE NOTEHEAD UP RIGHT BLACK;So;0;L;;;;;N;;;;; 1D152;MUSICAL SYMBOL MOON NOTEHEAD WHITE;So;0;L;;;;;N;;;;; 1D153;MUSICAL SYMBOL MOON NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D154;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN WHITE;So;0;L;;;;;N;;;;; 1D155;MUSICAL SYMBOL TRIANGLE-ROUND NOTEHEAD DOWN BLACK;So;0;L;;;;;N;;;;; 1D156;MUSICAL SYMBOL PARENTHESIS NOTEHEAD;So;0;L;;;;;N;;;;; 1D157;MUSICAL SYMBOL VOID NOTEHEAD;So;0;L;;;;;N;;;;; 1D158;MUSICAL SYMBOL NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D159;MUSICAL SYMBOL NULL NOTEHEAD;So;0;L;;;;;N;;;;; 1D15A;MUSICAL SYMBOL CLUSTER NOTEHEAD WHITE;So;0;L;;;;;N;;;;; 1D15B;MUSICAL SYMBOL CLUSTER NOTEHEAD BLACK;So;0;L;;;;;N;;;;; 1D15C;MUSICAL SYMBOL BREVE;So;0;L;;;;;N;;;;; 1D15D;MUSICAL SYMBOL WHOLE NOTE;So;0;L;;;;;N;;;;; 1D15E;MUSICAL SYMBOL HALF NOTE;So;0;L;1D157 1D165;;;;N;;;;; 1D15F;MUSICAL SYMBOL QUARTER NOTE;So;0;L;1D158 1D165;;;;N;;;;; 1D160;MUSICAL SYMBOL EIGHTH NOTE;So;0;L;1D15F 1D16E;;;;N;;;;; 1D161;MUSICAL SYMBOL SIXTEENTH NOTE;So;0;L;1D15F 1D16F;;;;N;;;;; 1D162;MUSICAL SYMBOL THIRTY-SECOND NOTE;So;0;L;1D15F 1D170;;;;N;;;;; 1D163;MUSICAL SYMBOL SIXTY-FOURTH NOTE;So;0;L;1D15F 1D171;;;;N;;;;; 1D164;MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE;So;0;L;1D15F 1D172;;;;N;;;;; 1D165;MUSICAL SYMBOL COMBINING STEM;Mc;216;L;;;;;N;;;;; 1D166;MUSICAL SYMBOL COMBINING SPRECHGESANG STEM;Mc;216;L;;;;;N;;;;; 1D167;MUSICAL SYMBOL COMBINING TREMOLO-1;Mn;1;NSM;;;;;N;;;;; 1D168;MUSICAL SYMBOL COMBINING TREMOLO-2;Mn;1;NSM;;;;;N;;;;; 1D169;MUSICAL SYMBOL COMBINING TREMOLO-3;Mn;1;NSM;;;;;N;;;;; 1D16A;MUSICAL SYMBOL FINGERED TREMOLO-1;So;0;L;;;;;N;;;;; 1D16B;MUSICAL SYMBOL FINGERED TREMOLO-2;So;0;L;;;;;N;;;;; 1D16C;MUSICAL SYMBOL FINGERED TREMOLO-3;So;0;L;;;;;N;;;;; 1D16D;MUSICAL SYMBOL COMBINING AUGMENTATION DOT;Mc;226;L;;;;;N;;;;; 1D16E;MUSICAL SYMBOL COMBINING FLAG-1;Mc;216;L;;;;;N;;;;; 1D16F;MUSICAL SYMBOL COMBINING FLAG-2;Mc;216;L;;;;;N;;;;; 1D170;MUSICAL SYMBOL COMBINING FLAG-3;Mc;216;L;;;;;N;;;;; 1D171;MUSICAL SYMBOL COMBINING FLAG-4;Mc;216;L;;;;;N;;;;; 1D172;MUSICAL SYMBOL COMBINING FLAG-5;Mc;216;L;;;;;N;;;;; 1D173;MUSICAL SYMBOL BEGIN BEAM;Cf;0;BN;;;;;N;;;;; 1D174;MUSICAL SYMBOL END BEAM;Cf;0;BN;;;;;N;;;;; 1D175;MUSICAL SYMBOL BEGIN TIE;Cf;0;BN;;;;;N;;;;; 1D176;MUSICAL SYMBOL END TIE;Cf;0;BN;;;;;N;;;;; 1D177;MUSICAL SYMBOL BEGIN SLUR;Cf;0;BN;;;;;N;;;;; 1D178;MUSICAL SYMBOL END SLUR;Cf;0;BN;;;;;N;;;;; 1D179;MUSICAL SYMBOL BEGIN PHRASE;Cf;0;BN;;;;;N;;;;; 1D17A;MUSICAL SYMBOL END PHRASE;Cf;0;BN;;;;;N;;;;; 1D17B;MUSICAL SYMBOL COMBINING ACCENT;Mn;220;NSM;;;;;N;;;;; 1D17C;MUSICAL SYMBOL COMBINING STACCATO;Mn;220;NSM;;;;;N;;;;; 1D17D;MUSICAL SYMBOL COMBINING TENUTO;Mn;220;NSM;;;;;N;;;;; 1D17E;MUSICAL SYMBOL COMBINING STACCATISSIMO;Mn;220;NSM;;;;;N;;;;; 1D17F;MUSICAL SYMBOL COMBINING MARCATO;Mn;220;NSM;;;;;N;;;;; 1D180;MUSICAL SYMBOL COMBINING MARCATO-STACCATO;Mn;220;NSM;;;;;N;;;;; 1D181;MUSICAL SYMBOL COMBINING ACCENT-STACCATO;Mn;220;NSM;;;;;N;;;;; 1D182;MUSICAL SYMBOL COMBINING LOURE;Mn;220;NSM;;;;;N;;;;; 1D183;MUSICAL SYMBOL ARPEGGIATO UP;So;0;L;;;;;N;;;;; 1D184;MUSICAL SYMBOL ARPEGGIATO DOWN;So;0;L;;;;;N;;;;; 1D185;MUSICAL SYMBOL COMBINING DOIT;Mn;230;NSM;;;;;N;;;;; 1D186;MUSICAL SYMBOL COMBINING RIP;Mn;230;NSM;;;;;N;;;;; 1D187;MUSICAL SYMBOL COMBINING FLIP;Mn;230;NSM;;;;;N;;;;; 1D188;MUSICAL SYMBOL COMBINING SMEAR;Mn;230;NSM;;;;;N;;;;; 1D189;MUSICAL SYMBOL COMBINING BEND;Mn;230;NSM;;;;;N;;;;; 1D18A;MUSICAL SYMBOL COMBINING DOUBLE TONGUE;Mn;220;NSM;;;;;N;;;;; 1D18B;MUSICAL SYMBOL COMBINING TRIPLE TONGUE;Mn;220;NSM;;;;;N;;;;; 1D18C;MUSICAL SYMBOL RINFORZANDO;So;0;L;;;;;N;;;;; 1D18D;MUSICAL SYMBOL SUBITO;So;0;L;;;;;N;;;;; 1D18E;MUSICAL SYMBOL Z;So;0;L;;;;;N;;;;; 1D18F;MUSICAL SYMBOL PIANO;So;0;L;;;;;N;;;;; 1D190;MUSICAL SYMBOL MEZZO;So;0;L;;;;;N;;;;; 1D191;MUSICAL SYMBOL FORTE;So;0;L;;;;;N;;;;; 1D192;MUSICAL SYMBOL CRESCENDO;So;0;L;;;;;N;;;;; 1D193;MUSICAL SYMBOL DECRESCENDO;So;0;L;;;;;N;;;;; 1D194;MUSICAL SYMBOL GRACE NOTE SLASH;So;0;L;;;;;N;;;;; 1D195;MUSICAL SYMBOL GRACE NOTE NO SLASH;So;0;L;;;;;N;;;;; 1D196;MUSICAL SYMBOL TR;So;0;L;;;;;N;;;;; 1D197;MUSICAL SYMBOL TURN;So;0;L;;;;;N;;;;; 1D198;MUSICAL SYMBOL INVERTED TURN;So;0;L;;;;;N;;;;; 1D199;MUSICAL SYMBOL TURN SLASH;So;0;L;;;;;N;;;;; 1D19A;MUSICAL SYMBOL TURN UP;So;0;L;;;;;N;;;;; 1D19B;MUSICAL SYMBOL ORNAMENT STROKE-1;So;0;L;;;;;N;;;;; 1D19C;MUSICAL SYMBOL ORNAMENT STROKE-2;So;0;L;;;;;N;;;;; 1D19D;MUSICAL SYMBOL ORNAMENT STROKE-3;So;0;L;;;;;N;;;;; 1D19E;MUSICAL SYMBOL ORNAMENT STROKE-4;So;0;L;;;;;N;;;;; 1D19F;MUSICAL SYMBOL ORNAMENT STROKE-5;So;0;L;;;;;N;;;;; 1D1A0;MUSICAL SYMBOL ORNAMENT STROKE-6;So;0;L;;;;;N;;;;; 1D1A1;MUSICAL SYMBOL ORNAMENT STROKE-7;So;0;L;;;;;N;;;;; 1D1A2;MUSICAL SYMBOL ORNAMENT STROKE-8;So;0;L;;;;;N;;;;; 1D1A3;MUSICAL SYMBOL ORNAMENT STROKE-9;So;0;L;;;;;N;;;;; 1D1A4;MUSICAL SYMBOL ORNAMENT STROKE-10;So;0;L;;;;;N;;;;; 1D1A5;MUSICAL SYMBOL ORNAMENT STROKE-11;So;0;L;;;;;N;;;;; 1D1A6;MUSICAL SYMBOL HAUPTSTIMME;So;0;L;;;;;N;;;;; 1D1A7;MUSICAL SYMBOL NEBENSTIMME;So;0;L;;;;;N;;;;; 1D1A8;MUSICAL SYMBOL END OF STIMME;So;0;L;;;;;N;;;;; 1D1A9;MUSICAL SYMBOL DEGREE SLASH;So;0;L;;;;;N;;;;; 1D1AA;MUSICAL SYMBOL COMBINING DOWN BOW;Mn;230;NSM;;;;;N;;;;; 1D1AB;MUSICAL SYMBOL COMBINING UP BOW;Mn;230;NSM;;;;;N;;;;; 1D1AC;MUSICAL SYMBOL COMBINING HARMONIC;Mn;230;NSM;;;;;N;;;;; 1D1AD;MUSICAL SYMBOL COMBINING SNAP PIZZICATO;Mn;230;NSM;;;;;N;;;;; 1D1AE;MUSICAL SYMBOL PEDAL MARK;So;0;L;;;;;N;;;;; 1D1AF;MUSICAL SYMBOL PEDAL UP MARK;So;0;L;;;;;N;;;;; 1D1B0;MUSICAL SYMBOL HALF PEDAL MARK;So;0;L;;;;;N;;;;; 1D1B1;MUSICAL SYMBOL GLISSANDO UP;So;0;L;;;;;N;;;;; 1D1B2;MUSICAL SYMBOL GLISSANDO DOWN;So;0;L;;;;;N;;;;; 1D1B3;MUSICAL SYMBOL WITH FINGERNAILS;So;0;L;;;;;N;;;;; 1D1B4;MUSICAL SYMBOL DAMP;So;0;L;;;;;N;;;;; 1D1B5;MUSICAL SYMBOL DAMP ALL;So;0;L;;;;;N;;;;; 1D1B6;MUSICAL SYMBOL MAXIMA;So;0;L;;;;;N;;;;; 1D1B7;MUSICAL SYMBOL LONGA;So;0;L;;;;;N;;;;; 1D1B8;MUSICAL SYMBOL BREVIS;So;0;L;;;;;N;;;;; 1D1B9;MUSICAL SYMBOL SEMIBREVIS WHITE;So;0;L;;;;;N;;;;; 1D1BA;MUSICAL SYMBOL SEMIBREVIS BLACK;So;0;L;;;;;N;;;;; 1D1BB;MUSICAL SYMBOL MINIMA;So;0;L;1D1B9 1D165;;;;N;;;;; 1D1BC;MUSICAL SYMBOL MINIMA BLACK;So;0;L;1D1BA 1D165;;;;N;;;;; 1D1BD;MUSICAL SYMBOL SEMIMINIMA WHITE;So;0;L;1D1BB 1D16E;;;;N;;;;; 1D1BE;MUSICAL SYMBOL SEMIMINIMA BLACK;So;0;L;1D1BC 1D16E;;;;N;;;;; 1D1BF;MUSICAL SYMBOL FUSA WHITE;So;0;L;1D1BB 1D16F;;;;N;;;;; 1D1C0;MUSICAL SYMBOL FUSA BLACK;So;0;L;1D1BC 1D16F;;;;N;;;;; 1D1C1;MUSICAL SYMBOL LONGA PERFECTA REST;So;0;L;;;;;N;;;;; 1D1C2;MUSICAL SYMBOL LONGA IMPERFECTA REST;So;0;L;;;;;N;;;;; 1D1C3;MUSICAL SYMBOL BREVIS REST;So;0;L;;;;;N;;;;; 1D1C4;MUSICAL SYMBOL SEMIBREVIS REST;So;0;L;;;;;N;;;;; 1D1C5;MUSICAL SYMBOL MINIMA REST;So;0;L;;;;;N;;;;; 1D1C6;MUSICAL SYMBOL SEMIMINIMA REST;So;0;L;;;;;N;;;;; 1D1C7;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; 1D1C8;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; 1D1C9;MUSICAL SYMBOL TEMPUS PERFECTUM CUM PROLATIONE PERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; 1D1CA;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE PERFECTA;So;0;L;;;;;N;;;;; 1D1CB;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA;So;0;L;;;;;N;;;;; 1D1CC;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-1;So;0;L;;;;;N;;;;; 1D1CD;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-2;So;0;L;;;;;N;;;;; 1D1CE;MUSICAL SYMBOL TEMPUS IMPERFECTUM CUM PROLATIONE IMPERFECTA DIMINUTION-3;So;0;L;;;;;N;;;;; 1D1CF;MUSICAL SYMBOL CROIX;So;0;L;;;;;N;;;;; 1D1D0;MUSICAL SYMBOL GREGORIAN C CLEF;So;0;L;;;;;N;;;;; 1D1D1;MUSICAL SYMBOL GREGORIAN F CLEF;So;0;L;;;;;N;;;;; 1D1D2;MUSICAL SYMBOL SQUARE B;So;0;L;;;;;N;;;;; 1D1D3;MUSICAL SYMBOL VIRGA;So;0;L;;;;;N;;;;; 1D1D4;MUSICAL SYMBOL PODATUS;So;0;L;;;;;N;;;;; 1D1D5;MUSICAL SYMBOL CLIVIS;So;0;L;;;;;N;;;;; 1D1D6;MUSICAL SYMBOL SCANDICUS;So;0;L;;;;;N;;;;; 1D1D7;MUSICAL SYMBOL CLIMACUS;So;0;L;;;;;N;;;;; 1D1D8;MUSICAL SYMBOL TORCULUS;So;0;L;;;;;N;;;;; 1D1D9;MUSICAL SYMBOL PORRECTUS;So;0;L;;;;;N;;;;; 1D1DA;MUSICAL SYMBOL PORRECTUS FLEXUS;So;0;L;;;;;N;;;;; 1D1DB;MUSICAL SYMBOL SCANDICUS FLEXUS;So;0;L;;;;;N;;;;; 1D1DC;MUSICAL SYMBOL TORCULUS RESUPINUS;So;0;L;;;;;N;;;;; 1D1DD;MUSICAL SYMBOL PES SUBPUNCTIS;So;0;L;;;;;N;;;;; 1D400;MATHEMATICAL BOLD CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D401;MATHEMATICAL BOLD CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D402;MATHEMATICAL BOLD CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D403;MATHEMATICAL BOLD CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D404;MATHEMATICAL BOLD CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D405;MATHEMATICAL BOLD CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D406;MATHEMATICAL BOLD CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D407;MATHEMATICAL BOLD CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D408;MATHEMATICAL BOLD CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D409;MATHEMATICAL BOLD CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D40A;MATHEMATICAL BOLD CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D40B;MATHEMATICAL BOLD CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D40C;MATHEMATICAL BOLD CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D40D;MATHEMATICAL BOLD CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D40E;MATHEMATICAL BOLD CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D40F;MATHEMATICAL BOLD CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D410;MATHEMATICAL BOLD CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D411;MATHEMATICAL BOLD CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D412;MATHEMATICAL BOLD CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D413;MATHEMATICAL BOLD CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D414;MATHEMATICAL BOLD CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D415;MATHEMATICAL BOLD CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D416;MATHEMATICAL BOLD CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D417;MATHEMATICAL BOLD CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D418;MATHEMATICAL BOLD CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D419;MATHEMATICAL BOLD CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D41A;MATHEMATICAL BOLD SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D41B;MATHEMATICAL BOLD SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D41C;MATHEMATICAL BOLD SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D41D;MATHEMATICAL BOLD SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D41E;MATHEMATICAL BOLD SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D41F;MATHEMATICAL BOLD SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D420;MATHEMATICAL BOLD SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D421;MATHEMATICAL BOLD SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D422;MATHEMATICAL BOLD SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D423;MATHEMATICAL BOLD SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D424;MATHEMATICAL BOLD SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D425;MATHEMATICAL BOLD SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D426;MATHEMATICAL BOLD SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D427;MATHEMATICAL BOLD SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D428;MATHEMATICAL BOLD SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D429;MATHEMATICAL BOLD SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D42A;MATHEMATICAL BOLD SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D42B;MATHEMATICAL BOLD SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D42C;MATHEMATICAL BOLD SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D42D;MATHEMATICAL BOLD SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D42E;MATHEMATICAL BOLD SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D42F;MATHEMATICAL BOLD SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D430;MATHEMATICAL BOLD SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D431;MATHEMATICAL BOLD SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D432;MATHEMATICAL BOLD SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D433;MATHEMATICAL BOLD SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D434;MATHEMATICAL ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D435;MATHEMATICAL ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D436;MATHEMATICAL ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D437;MATHEMATICAL ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D438;MATHEMATICAL ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D439;MATHEMATICAL ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D43A;MATHEMATICAL ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D43B;MATHEMATICAL ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D43C;MATHEMATICAL ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D43D;MATHEMATICAL ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D43E;MATHEMATICAL ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D43F;MATHEMATICAL ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D440;MATHEMATICAL ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D441;MATHEMATICAL ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D442;MATHEMATICAL ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D443;MATHEMATICAL ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D444;MATHEMATICAL ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D445;MATHEMATICAL ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D446;MATHEMATICAL ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D447;MATHEMATICAL ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D448;MATHEMATICAL ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D449;MATHEMATICAL ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D44A;MATHEMATICAL ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D44B;MATHEMATICAL ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D44C;MATHEMATICAL ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D44D;MATHEMATICAL ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D44E;MATHEMATICAL ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D44F;MATHEMATICAL ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D450;MATHEMATICAL ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D451;MATHEMATICAL ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D452;MATHEMATICAL ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D453;MATHEMATICAL ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D454;MATHEMATICAL ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D456;MATHEMATICAL ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D457;MATHEMATICAL ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D458;MATHEMATICAL ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D459;MATHEMATICAL ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D45A;MATHEMATICAL ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D45B;MATHEMATICAL ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D45C;MATHEMATICAL ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D45D;MATHEMATICAL ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D45E;MATHEMATICAL ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D45F;MATHEMATICAL ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D460;MATHEMATICAL ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D461;MATHEMATICAL ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D462;MATHEMATICAL ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D463;MATHEMATICAL ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D464;MATHEMATICAL ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D465;MATHEMATICAL ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D466;MATHEMATICAL ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D467;MATHEMATICAL ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D468;MATHEMATICAL BOLD ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D469;MATHEMATICAL BOLD ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D46A;MATHEMATICAL BOLD ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D46B;MATHEMATICAL BOLD ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D46C;MATHEMATICAL BOLD ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D46D;MATHEMATICAL BOLD ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D46E;MATHEMATICAL BOLD ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D46F;MATHEMATICAL BOLD ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D470;MATHEMATICAL BOLD ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D471;MATHEMATICAL BOLD ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D472;MATHEMATICAL BOLD ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D473;MATHEMATICAL BOLD ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D474;MATHEMATICAL BOLD ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D475;MATHEMATICAL BOLD ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D476;MATHEMATICAL BOLD ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D477;MATHEMATICAL BOLD ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D478;MATHEMATICAL BOLD ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D479;MATHEMATICAL BOLD ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D47A;MATHEMATICAL BOLD ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D47B;MATHEMATICAL BOLD ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D47C;MATHEMATICAL BOLD ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D47D;MATHEMATICAL BOLD ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D47E;MATHEMATICAL BOLD ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D47F;MATHEMATICAL BOLD ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D480;MATHEMATICAL BOLD ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D481;MATHEMATICAL BOLD ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D482;MATHEMATICAL BOLD ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D483;MATHEMATICAL BOLD ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D484;MATHEMATICAL BOLD ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D485;MATHEMATICAL BOLD ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D486;MATHEMATICAL BOLD ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D487;MATHEMATICAL BOLD ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D488;MATHEMATICAL BOLD ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D489;MATHEMATICAL BOLD ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D48A;MATHEMATICAL BOLD ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D48B;MATHEMATICAL BOLD ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D48C;MATHEMATICAL BOLD ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D48D;MATHEMATICAL BOLD ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D48E;MATHEMATICAL BOLD ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D48F;MATHEMATICAL BOLD ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D490;MATHEMATICAL BOLD ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D491;MATHEMATICAL BOLD ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D492;MATHEMATICAL BOLD ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D493;MATHEMATICAL BOLD ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D494;MATHEMATICAL BOLD ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D495;MATHEMATICAL BOLD ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D496;MATHEMATICAL BOLD ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D497;MATHEMATICAL BOLD ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D498;MATHEMATICAL BOLD ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D499;MATHEMATICAL BOLD ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D49A;MATHEMATICAL BOLD ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D49B;MATHEMATICAL BOLD ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D49C;MATHEMATICAL SCRIPT CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D49E;MATHEMATICAL SCRIPT CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D49F;MATHEMATICAL SCRIPT CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D4A2;MATHEMATICAL SCRIPT CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D4A5;MATHEMATICAL SCRIPT CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D4A6;MATHEMATICAL SCRIPT CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D4A9;MATHEMATICAL SCRIPT CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D4AA;MATHEMATICAL SCRIPT CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D4AB;MATHEMATICAL SCRIPT CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D4AC;MATHEMATICAL SCRIPT CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D4AE;MATHEMATICAL SCRIPT CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D4AF;MATHEMATICAL SCRIPT CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D4B0;MATHEMATICAL SCRIPT CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D4B1;MATHEMATICAL SCRIPT CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D4B2;MATHEMATICAL SCRIPT CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D4B3;MATHEMATICAL SCRIPT CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D4B4;MATHEMATICAL SCRIPT CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D4B5;MATHEMATICAL SCRIPT CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D4B6;MATHEMATICAL SCRIPT SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D4B7;MATHEMATICAL SCRIPT SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D4B8;MATHEMATICAL SCRIPT SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D4B9;MATHEMATICAL SCRIPT SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D4BB;MATHEMATICAL SCRIPT SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D4BD;MATHEMATICAL SCRIPT SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D4BE;MATHEMATICAL SCRIPT SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D4BF;MATHEMATICAL SCRIPT SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D4C0;MATHEMATICAL SCRIPT SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D4C2;MATHEMATICAL SCRIPT SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D4C3;MATHEMATICAL SCRIPT SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D4C5;MATHEMATICAL SCRIPT SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D4C6;MATHEMATICAL SCRIPT SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D4C7;MATHEMATICAL SCRIPT SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D4C8;MATHEMATICAL SCRIPT SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D4C9;MATHEMATICAL SCRIPT SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D4CA;MATHEMATICAL SCRIPT SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D4CB;MATHEMATICAL SCRIPT SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D4CC;MATHEMATICAL SCRIPT SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D4CD;MATHEMATICAL SCRIPT SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D4CE;MATHEMATICAL SCRIPT SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D4CF;MATHEMATICAL SCRIPT SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D4D0;MATHEMATICAL BOLD SCRIPT CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D4D1;MATHEMATICAL BOLD SCRIPT CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D4D2;MATHEMATICAL BOLD SCRIPT CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D4D3;MATHEMATICAL BOLD SCRIPT CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D4D4;MATHEMATICAL BOLD SCRIPT CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D4D5;MATHEMATICAL BOLD SCRIPT CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D4D6;MATHEMATICAL BOLD SCRIPT CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D4D7;MATHEMATICAL BOLD SCRIPT CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D4D8;MATHEMATICAL BOLD SCRIPT CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D4D9;MATHEMATICAL BOLD SCRIPT CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D4DA;MATHEMATICAL BOLD SCRIPT CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D4DB;MATHEMATICAL BOLD SCRIPT CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D4DC;MATHEMATICAL BOLD SCRIPT CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D4DD;MATHEMATICAL BOLD SCRIPT CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D4DE;MATHEMATICAL BOLD SCRIPT CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D4DF;MATHEMATICAL BOLD SCRIPT CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D4E0;MATHEMATICAL BOLD SCRIPT CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D4E1;MATHEMATICAL BOLD SCRIPT CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D4E2;MATHEMATICAL BOLD SCRIPT CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D4E3;MATHEMATICAL BOLD SCRIPT CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D4E4;MATHEMATICAL BOLD SCRIPT CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D4E5;MATHEMATICAL BOLD SCRIPT CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D4E6;MATHEMATICAL BOLD SCRIPT CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D4E7;MATHEMATICAL BOLD SCRIPT CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D4E8;MATHEMATICAL BOLD SCRIPT CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D4E9;MATHEMATICAL BOLD SCRIPT CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D4EA;MATHEMATICAL BOLD SCRIPT SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D4EB;MATHEMATICAL BOLD SCRIPT SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D4EC;MATHEMATICAL BOLD SCRIPT SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D4ED;MATHEMATICAL BOLD SCRIPT SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D4EE;MATHEMATICAL BOLD SCRIPT SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D4EF;MATHEMATICAL BOLD SCRIPT SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D4F0;MATHEMATICAL BOLD SCRIPT SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D4F1;MATHEMATICAL BOLD SCRIPT SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D4F2;MATHEMATICAL BOLD SCRIPT SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D4F3;MATHEMATICAL BOLD SCRIPT SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D4F4;MATHEMATICAL BOLD SCRIPT SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D4F5;MATHEMATICAL BOLD SCRIPT SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D4F6;MATHEMATICAL BOLD SCRIPT SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D4F7;MATHEMATICAL BOLD SCRIPT SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D4F8;MATHEMATICAL BOLD SCRIPT SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D4F9;MATHEMATICAL BOLD SCRIPT SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D4FA;MATHEMATICAL BOLD SCRIPT SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D4FB;MATHEMATICAL BOLD SCRIPT SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D4FC;MATHEMATICAL BOLD SCRIPT SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D4FD;MATHEMATICAL BOLD SCRIPT SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D4FE;MATHEMATICAL BOLD SCRIPT SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D4FF;MATHEMATICAL BOLD SCRIPT SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D500;MATHEMATICAL BOLD SCRIPT SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D501;MATHEMATICAL BOLD SCRIPT SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D502;MATHEMATICAL BOLD SCRIPT SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D503;MATHEMATICAL BOLD SCRIPT SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D504;MATHEMATICAL FRAKTUR CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D505;MATHEMATICAL FRAKTUR CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D507;MATHEMATICAL FRAKTUR CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D508;MATHEMATICAL FRAKTUR CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D509;MATHEMATICAL FRAKTUR CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D50A;MATHEMATICAL FRAKTUR CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D50D;MATHEMATICAL FRAKTUR CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D50E;MATHEMATICAL FRAKTUR CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D50F;MATHEMATICAL FRAKTUR CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D510;MATHEMATICAL FRAKTUR CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D511;MATHEMATICAL FRAKTUR CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D512;MATHEMATICAL FRAKTUR CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D513;MATHEMATICAL FRAKTUR CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D514;MATHEMATICAL FRAKTUR CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D516;MATHEMATICAL FRAKTUR CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D517;MATHEMATICAL FRAKTUR CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D518;MATHEMATICAL FRAKTUR CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D519;MATHEMATICAL FRAKTUR CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D51A;MATHEMATICAL FRAKTUR CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D51B;MATHEMATICAL FRAKTUR CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D51C;MATHEMATICAL FRAKTUR CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D51E;MATHEMATICAL FRAKTUR SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D51F;MATHEMATICAL FRAKTUR SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D520;MATHEMATICAL FRAKTUR SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D521;MATHEMATICAL FRAKTUR SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D522;MATHEMATICAL FRAKTUR SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D523;MATHEMATICAL FRAKTUR SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D524;MATHEMATICAL FRAKTUR SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D525;MATHEMATICAL FRAKTUR SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D526;MATHEMATICAL FRAKTUR SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D527;MATHEMATICAL FRAKTUR SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D528;MATHEMATICAL FRAKTUR SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D529;MATHEMATICAL FRAKTUR SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D52A;MATHEMATICAL FRAKTUR SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D52B;MATHEMATICAL FRAKTUR SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D52C;MATHEMATICAL FRAKTUR SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D52D;MATHEMATICAL FRAKTUR SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D52E;MATHEMATICAL FRAKTUR SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D52F;MATHEMATICAL FRAKTUR SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D530;MATHEMATICAL FRAKTUR SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D531;MATHEMATICAL FRAKTUR SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D532;MATHEMATICAL FRAKTUR SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D533;MATHEMATICAL FRAKTUR SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D534;MATHEMATICAL FRAKTUR SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D535;MATHEMATICAL FRAKTUR SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D536;MATHEMATICAL FRAKTUR SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D537;MATHEMATICAL FRAKTUR SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D538;MATHEMATICAL DOUBLE-STRUCK CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D539;MATHEMATICAL DOUBLE-STRUCK CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D53B;MATHEMATICAL DOUBLE-STRUCK CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D53C;MATHEMATICAL DOUBLE-STRUCK CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D53D;MATHEMATICAL DOUBLE-STRUCK CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D53E;MATHEMATICAL DOUBLE-STRUCK CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D540;MATHEMATICAL DOUBLE-STRUCK CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D541;MATHEMATICAL DOUBLE-STRUCK CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D542;MATHEMATICAL DOUBLE-STRUCK CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D543;MATHEMATICAL DOUBLE-STRUCK CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D544;MATHEMATICAL DOUBLE-STRUCK CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D546;MATHEMATICAL DOUBLE-STRUCK CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D54A;MATHEMATICAL DOUBLE-STRUCK CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D54B;MATHEMATICAL DOUBLE-STRUCK CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D54C;MATHEMATICAL DOUBLE-STRUCK CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D54D;MATHEMATICAL DOUBLE-STRUCK CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D54E;MATHEMATICAL DOUBLE-STRUCK CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D54F;MATHEMATICAL DOUBLE-STRUCK CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D550;MATHEMATICAL DOUBLE-STRUCK CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D552;MATHEMATICAL DOUBLE-STRUCK SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D553;MATHEMATICAL DOUBLE-STRUCK SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D554;MATHEMATICAL DOUBLE-STRUCK SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D555;MATHEMATICAL DOUBLE-STRUCK SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D556;MATHEMATICAL DOUBLE-STRUCK SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D557;MATHEMATICAL DOUBLE-STRUCK SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D558;MATHEMATICAL DOUBLE-STRUCK SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D559;MATHEMATICAL DOUBLE-STRUCK SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D55A;MATHEMATICAL DOUBLE-STRUCK SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D55B;MATHEMATICAL DOUBLE-STRUCK SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D55C;MATHEMATICAL DOUBLE-STRUCK SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D55D;MATHEMATICAL DOUBLE-STRUCK SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D55E;MATHEMATICAL DOUBLE-STRUCK SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D55F;MATHEMATICAL DOUBLE-STRUCK SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D560;MATHEMATICAL DOUBLE-STRUCK SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D561;MATHEMATICAL DOUBLE-STRUCK SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D562;MATHEMATICAL DOUBLE-STRUCK SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D563;MATHEMATICAL DOUBLE-STRUCK SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D564;MATHEMATICAL DOUBLE-STRUCK SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D565;MATHEMATICAL DOUBLE-STRUCK SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D566;MATHEMATICAL DOUBLE-STRUCK SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D567;MATHEMATICAL DOUBLE-STRUCK SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D568;MATHEMATICAL DOUBLE-STRUCK SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D569;MATHEMATICAL DOUBLE-STRUCK SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D56A;MATHEMATICAL DOUBLE-STRUCK SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D56B;MATHEMATICAL DOUBLE-STRUCK SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D56C;MATHEMATICAL BOLD FRAKTUR CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D56D;MATHEMATICAL BOLD FRAKTUR CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D56E;MATHEMATICAL BOLD FRAKTUR CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D56F;MATHEMATICAL BOLD FRAKTUR CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D570;MATHEMATICAL BOLD FRAKTUR CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D571;MATHEMATICAL BOLD FRAKTUR CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D572;MATHEMATICAL BOLD FRAKTUR CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D573;MATHEMATICAL BOLD FRAKTUR CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D574;MATHEMATICAL BOLD FRAKTUR CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D575;MATHEMATICAL BOLD FRAKTUR CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D576;MATHEMATICAL BOLD FRAKTUR CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D577;MATHEMATICAL BOLD FRAKTUR CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D578;MATHEMATICAL BOLD FRAKTUR CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D579;MATHEMATICAL BOLD FRAKTUR CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D57A;MATHEMATICAL BOLD FRAKTUR CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D57B;MATHEMATICAL BOLD FRAKTUR CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D57C;MATHEMATICAL BOLD FRAKTUR CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D57D;MATHEMATICAL BOLD FRAKTUR CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D57E;MATHEMATICAL BOLD FRAKTUR CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D57F;MATHEMATICAL BOLD FRAKTUR CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D580;MATHEMATICAL BOLD FRAKTUR CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D581;MATHEMATICAL BOLD FRAKTUR CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D582;MATHEMATICAL BOLD FRAKTUR CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D583;MATHEMATICAL BOLD FRAKTUR CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D584;MATHEMATICAL BOLD FRAKTUR CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D585;MATHEMATICAL BOLD FRAKTUR CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D586;MATHEMATICAL BOLD FRAKTUR SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D587;MATHEMATICAL BOLD FRAKTUR SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D588;MATHEMATICAL BOLD FRAKTUR SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D589;MATHEMATICAL BOLD FRAKTUR SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D58A;MATHEMATICAL BOLD FRAKTUR SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D58B;MATHEMATICAL BOLD FRAKTUR SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D58C;MATHEMATICAL BOLD FRAKTUR SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D58D;MATHEMATICAL BOLD FRAKTUR SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D58E;MATHEMATICAL BOLD FRAKTUR SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D58F;MATHEMATICAL BOLD FRAKTUR SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D590;MATHEMATICAL BOLD FRAKTUR SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D591;MATHEMATICAL BOLD FRAKTUR SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D592;MATHEMATICAL BOLD FRAKTUR SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D593;MATHEMATICAL BOLD FRAKTUR SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D594;MATHEMATICAL BOLD FRAKTUR SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D595;MATHEMATICAL BOLD FRAKTUR SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D596;MATHEMATICAL BOLD FRAKTUR SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D597;MATHEMATICAL BOLD FRAKTUR SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D598;MATHEMATICAL BOLD FRAKTUR SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D599;MATHEMATICAL BOLD FRAKTUR SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D59A;MATHEMATICAL BOLD FRAKTUR SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D59B;MATHEMATICAL BOLD FRAKTUR SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D59C;MATHEMATICAL BOLD FRAKTUR SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D59D;MATHEMATICAL BOLD FRAKTUR SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D59E;MATHEMATICAL BOLD FRAKTUR SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D59F;MATHEMATICAL BOLD FRAKTUR SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D5A0;MATHEMATICAL SANS-SERIF CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D5A1;MATHEMATICAL SANS-SERIF CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D5A2;MATHEMATICAL SANS-SERIF CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D5A3;MATHEMATICAL SANS-SERIF CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D5A4;MATHEMATICAL SANS-SERIF CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D5A5;MATHEMATICAL SANS-SERIF CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D5A6;MATHEMATICAL SANS-SERIF CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D5A7;MATHEMATICAL SANS-SERIF CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D5A8;MATHEMATICAL SANS-SERIF CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D5A9;MATHEMATICAL SANS-SERIF CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D5AA;MATHEMATICAL SANS-SERIF CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D5AB;MATHEMATICAL SANS-SERIF CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D5AC;MATHEMATICAL SANS-SERIF CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D5AD;MATHEMATICAL SANS-SERIF CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D5AE;MATHEMATICAL SANS-SERIF CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D5AF;MATHEMATICAL SANS-SERIF CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D5B0;MATHEMATICAL SANS-SERIF CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D5B1;MATHEMATICAL SANS-SERIF CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D5B2;MATHEMATICAL SANS-SERIF CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D5B3;MATHEMATICAL SANS-SERIF CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D5B4;MATHEMATICAL SANS-SERIF CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D5B5;MATHEMATICAL SANS-SERIF CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D5B6;MATHEMATICAL SANS-SERIF CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D5B7;MATHEMATICAL SANS-SERIF CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D5B8;MATHEMATICAL SANS-SERIF CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D5B9;MATHEMATICAL SANS-SERIF CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D5BA;MATHEMATICAL SANS-SERIF SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D5BB;MATHEMATICAL SANS-SERIF SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D5BC;MATHEMATICAL SANS-SERIF SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D5BD;MATHEMATICAL SANS-SERIF SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D5BE;MATHEMATICAL SANS-SERIF SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D5BF;MATHEMATICAL SANS-SERIF SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D5C0;MATHEMATICAL SANS-SERIF SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D5C1;MATHEMATICAL SANS-SERIF SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D5C2;MATHEMATICAL SANS-SERIF SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D5C3;MATHEMATICAL SANS-SERIF SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D5C4;MATHEMATICAL SANS-SERIF SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D5C5;MATHEMATICAL SANS-SERIF SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D5C6;MATHEMATICAL SANS-SERIF SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D5C7;MATHEMATICAL SANS-SERIF SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D5C8;MATHEMATICAL SANS-SERIF SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D5C9;MATHEMATICAL SANS-SERIF SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D5CA;MATHEMATICAL SANS-SERIF SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D5CB;MATHEMATICAL SANS-SERIF SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D5CC;MATHEMATICAL SANS-SERIF SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D5CD;MATHEMATICAL SANS-SERIF SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D5CE;MATHEMATICAL SANS-SERIF SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D5CF;MATHEMATICAL SANS-SERIF SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D5D0;MATHEMATICAL SANS-SERIF SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D5D1;MATHEMATICAL SANS-SERIF SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D5D2;MATHEMATICAL SANS-SERIF SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D5D3;MATHEMATICAL SANS-SERIF SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D5D4;MATHEMATICAL SANS-SERIF BOLD CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D5D5;MATHEMATICAL SANS-SERIF BOLD CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D5D6;MATHEMATICAL SANS-SERIF BOLD CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D5D7;MATHEMATICAL SANS-SERIF BOLD CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D5D8;MATHEMATICAL SANS-SERIF BOLD CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D5D9;MATHEMATICAL SANS-SERIF BOLD CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D5DA;MATHEMATICAL SANS-SERIF BOLD CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D5DB;MATHEMATICAL SANS-SERIF BOLD CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D5DC;MATHEMATICAL SANS-SERIF BOLD CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D5DD;MATHEMATICAL SANS-SERIF BOLD CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D5DE;MATHEMATICAL SANS-SERIF BOLD CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D5DF;MATHEMATICAL SANS-SERIF BOLD CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D5E0;MATHEMATICAL SANS-SERIF BOLD CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D5E1;MATHEMATICAL SANS-SERIF BOLD CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D5E2;MATHEMATICAL SANS-SERIF BOLD CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D5E3;MATHEMATICAL SANS-SERIF BOLD CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D5E4;MATHEMATICAL SANS-SERIF BOLD CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D5E5;MATHEMATICAL SANS-SERIF BOLD CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D5E6;MATHEMATICAL SANS-SERIF BOLD CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D5E7;MATHEMATICAL SANS-SERIF BOLD CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D5E8;MATHEMATICAL SANS-SERIF BOLD CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D5E9;MATHEMATICAL SANS-SERIF BOLD CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D5EA;MATHEMATICAL SANS-SERIF BOLD CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D5EB;MATHEMATICAL SANS-SERIF BOLD CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D5EC;MATHEMATICAL SANS-SERIF BOLD CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D5ED;MATHEMATICAL SANS-SERIF BOLD CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D5EE;MATHEMATICAL SANS-SERIF BOLD SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D5EF;MATHEMATICAL SANS-SERIF BOLD SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D5F0;MATHEMATICAL SANS-SERIF BOLD SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D5F1;MATHEMATICAL SANS-SERIF BOLD SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D5F2;MATHEMATICAL SANS-SERIF BOLD SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D5F3;MATHEMATICAL SANS-SERIF BOLD SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D5F4;MATHEMATICAL SANS-SERIF BOLD SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D5F5;MATHEMATICAL SANS-SERIF BOLD SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D5F6;MATHEMATICAL SANS-SERIF BOLD SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D5F7;MATHEMATICAL SANS-SERIF BOLD SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D5F8;MATHEMATICAL SANS-SERIF BOLD SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D5F9;MATHEMATICAL SANS-SERIF BOLD SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D5FA;MATHEMATICAL SANS-SERIF BOLD SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D5FB;MATHEMATICAL SANS-SERIF BOLD SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D5FC;MATHEMATICAL SANS-SERIF BOLD SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D5FD;MATHEMATICAL SANS-SERIF BOLD SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D5FE;MATHEMATICAL SANS-SERIF BOLD SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D5FF;MATHEMATICAL SANS-SERIF BOLD SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D600;MATHEMATICAL SANS-SERIF BOLD SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D601;MATHEMATICAL SANS-SERIF BOLD SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D602;MATHEMATICAL SANS-SERIF BOLD SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D603;MATHEMATICAL SANS-SERIF BOLD SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D604;MATHEMATICAL SANS-SERIF BOLD SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D605;MATHEMATICAL SANS-SERIF BOLD SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D606;MATHEMATICAL SANS-SERIF BOLD SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D607;MATHEMATICAL SANS-SERIF BOLD SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D608;MATHEMATICAL SANS-SERIF ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D609;MATHEMATICAL SANS-SERIF ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D60A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D60B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D60C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D60D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D60E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D60F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D610;MATHEMATICAL SANS-SERIF ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D611;MATHEMATICAL SANS-SERIF ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D612;MATHEMATICAL SANS-SERIF ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D613;MATHEMATICAL SANS-SERIF ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D614;MATHEMATICAL SANS-SERIF ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D615;MATHEMATICAL SANS-SERIF ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D616;MATHEMATICAL SANS-SERIF ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D617;MATHEMATICAL SANS-SERIF ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D618;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D619;MATHEMATICAL SANS-SERIF ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D61A;MATHEMATICAL SANS-SERIF ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D61B;MATHEMATICAL SANS-SERIF ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D61C;MATHEMATICAL SANS-SERIF ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D61D;MATHEMATICAL SANS-SERIF ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D61E;MATHEMATICAL SANS-SERIF ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D61F;MATHEMATICAL SANS-SERIF ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D620;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D621;MATHEMATICAL SANS-SERIF ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D622;MATHEMATICAL SANS-SERIF ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D623;MATHEMATICAL SANS-SERIF ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D624;MATHEMATICAL SANS-SERIF ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D625;MATHEMATICAL SANS-SERIF ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D626;MATHEMATICAL SANS-SERIF ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D627;MATHEMATICAL SANS-SERIF ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D628;MATHEMATICAL SANS-SERIF ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D629;MATHEMATICAL SANS-SERIF ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D62A;MATHEMATICAL SANS-SERIF ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D62B;MATHEMATICAL SANS-SERIF ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D62C;MATHEMATICAL SANS-SERIF ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D62D;MATHEMATICAL SANS-SERIF ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D62E;MATHEMATICAL SANS-SERIF ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D62F;MATHEMATICAL SANS-SERIF ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D630;MATHEMATICAL SANS-SERIF ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D631;MATHEMATICAL SANS-SERIF ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D632;MATHEMATICAL SANS-SERIF ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D633;MATHEMATICAL SANS-SERIF ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D634;MATHEMATICAL SANS-SERIF ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D635;MATHEMATICAL SANS-SERIF ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D636;MATHEMATICAL SANS-SERIF ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D637;MATHEMATICAL SANS-SERIF ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D638;MATHEMATICAL SANS-SERIF ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D639;MATHEMATICAL SANS-SERIF ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D63A;MATHEMATICAL SANS-SERIF ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D63B;MATHEMATICAL SANS-SERIF ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D63C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D63D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D63E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D63F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D640;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D641;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D642;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D643;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D644;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D645;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D646;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D647;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D648;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D649;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D64A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D64B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D64C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D64D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D64E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D64F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D650;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D651;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D652;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D653;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D654;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D655;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D656;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D657;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D658;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D659;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D65A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D65B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D65C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D65D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D65E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D65F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D660;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D661;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D662;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D663;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D664;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D665;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D666;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D667;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D668;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D669;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D66A;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D66B;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D66C;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D66D;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D66E;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D66F;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D670;MATHEMATICAL MONOSPACE CAPITAL A;Lu;0;L; 0041;;;;N;;;;; 1D671;MATHEMATICAL MONOSPACE CAPITAL B;Lu;0;L; 0042;;;;N;;;;; 1D672;MATHEMATICAL MONOSPACE CAPITAL C;Lu;0;L; 0043;;;;N;;;;; 1D673;MATHEMATICAL MONOSPACE CAPITAL D;Lu;0;L; 0044;;;;N;;;;; 1D674;MATHEMATICAL MONOSPACE CAPITAL E;Lu;0;L; 0045;;;;N;;;;; 1D675;MATHEMATICAL MONOSPACE CAPITAL F;Lu;0;L; 0046;;;;N;;;;; 1D676;MATHEMATICAL MONOSPACE CAPITAL G;Lu;0;L; 0047;;;;N;;;;; 1D677;MATHEMATICAL MONOSPACE CAPITAL H;Lu;0;L; 0048;;;;N;;;;; 1D678;MATHEMATICAL MONOSPACE CAPITAL I;Lu;0;L; 0049;;;;N;;;;; 1D679;MATHEMATICAL MONOSPACE CAPITAL J;Lu;0;L; 004A;;;;N;;;;; 1D67A;MATHEMATICAL MONOSPACE CAPITAL K;Lu;0;L; 004B;;;;N;;;;; 1D67B;MATHEMATICAL MONOSPACE CAPITAL L;Lu;0;L; 004C;;;;N;;;;; 1D67C;MATHEMATICAL MONOSPACE CAPITAL M;Lu;0;L; 004D;;;;N;;;;; 1D67D;MATHEMATICAL MONOSPACE CAPITAL N;Lu;0;L; 004E;;;;N;;;;; 1D67E;MATHEMATICAL MONOSPACE CAPITAL O;Lu;0;L; 004F;;;;N;;;;; 1D67F;MATHEMATICAL MONOSPACE CAPITAL P;Lu;0;L; 0050;;;;N;;;;; 1D680;MATHEMATICAL MONOSPACE CAPITAL Q;Lu;0;L; 0051;;;;N;;;;; 1D681;MATHEMATICAL MONOSPACE CAPITAL R;Lu;0;L; 0052;;;;N;;;;; 1D682;MATHEMATICAL MONOSPACE CAPITAL S;Lu;0;L; 0053;;;;N;;;;; 1D683;MATHEMATICAL MONOSPACE CAPITAL T;Lu;0;L; 0054;;;;N;;;;; 1D684;MATHEMATICAL MONOSPACE CAPITAL U;Lu;0;L; 0055;;;;N;;;;; 1D685;MATHEMATICAL MONOSPACE CAPITAL V;Lu;0;L; 0056;;;;N;;;;; 1D686;MATHEMATICAL MONOSPACE CAPITAL W;Lu;0;L; 0057;;;;N;;;;; 1D687;MATHEMATICAL MONOSPACE CAPITAL X;Lu;0;L; 0058;;;;N;;;;; 1D688;MATHEMATICAL MONOSPACE CAPITAL Y;Lu;0;L; 0059;;;;N;;;;; 1D689;MATHEMATICAL MONOSPACE CAPITAL Z;Lu;0;L; 005A;;;;N;;;;; 1D68A;MATHEMATICAL MONOSPACE SMALL A;Ll;0;L; 0061;;;;N;;;;; 1D68B;MATHEMATICAL MONOSPACE SMALL B;Ll;0;L; 0062;;;;N;;;;; 1D68C;MATHEMATICAL MONOSPACE SMALL C;Ll;0;L; 0063;;;;N;;;;; 1D68D;MATHEMATICAL MONOSPACE SMALL D;Ll;0;L; 0064;;;;N;;;;; 1D68E;MATHEMATICAL MONOSPACE SMALL E;Ll;0;L; 0065;;;;N;;;;; 1D68F;MATHEMATICAL MONOSPACE SMALL F;Ll;0;L; 0066;;;;N;;;;; 1D690;MATHEMATICAL MONOSPACE SMALL G;Ll;0;L; 0067;;;;N;;;;; 1D691;MATHEMATICAL MONOSPACE SMALL H;Ll;0;L; 0068;;;;N;;;;; 1D692;MATHEMATICAL MONOSPACE SMALL I;Ll;0;L; 0069;;;;N;;;;; 1D693;MATHEMATICAL MONOSPACE SMALL J;Ll;0;L; 006A;;;;N;;;;; 1D694;MATHEMATICAL MONOSPACE SMALL K;Ll;0;L; 006B;;;;N;;;;; 1D695;MATHEMATICAL MONOSPACE SMALL L;Ll;0;L; 006C;;;;N;;;;; 1D696;MATHEMATICAL MONOSPACE SMALL M;Ll;0;L; 006D;;;;N;;;;; 1D697;MATHEMATICAL MONOSPACE SMALL N;Ll;0;L; 006E;;;;N;;;;; 1D698;MATHEMATICAL MONOSPACE SMALL O;Ll;0;L; 006F;;;;N;;;;; 1D699;MATHEMATICAL MONOSPACE SMALL P;Ll;0;L; 0070;;;;N;;;;; 1D69A;MATHEMATICAL MONOSPACE SMALL Q;Ll;0;L; 0071;;;;N;;;;; 1D69B;MATHEMATICAL MONOSPACE SMALL R;Ll;0;L; 0072;;;;N;;;;; 1D69C;MATHEMATICAL MONOSPACE SMALL S;Ll;0;L; 0073;;;;N;;;;; 1D69D;MATHEMATICAL MONOSPACE SMALL T;Ll;0;L; 0074;;;;N;;;;; 1D69E;MATHEMATICAL MONOSPACE SMALL U;Ll;0;L; 0075;;;;N;;;;; 1D69F;MATHEMATICAL MONOSPACE SMALL V;Ll;0;L; 0076;;;;N;;;;; 1D6A0;MATHEMATICAL MONOSPACE SMALL W;Ll;0;L; 0077;;;;N;;;;; 1D6A1;MATHEMATICAL MONOSPACE SMALL X;Ll;0;L; 0078;;;;N;;;;; 1D6A2;MATHEMATICAL MONOSPACE SMALL Y;Ll;0;L; 0079;;;;N;;;;; 1D6A3;MATHEMATICAL MONOSPACE SMALL Z;Ll;0;L; 007A;;;;N;;;;; 1D6A8;MATHEMATICAL BOLD CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D6A9;MATHEMATICAL BOLD CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D6AA;MATHEMATICAL BOLD CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D6AB;MATHEMATICAL BOLD CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D6AC;MATHEMATICAL BOLD CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D6AD;MATHEMATICAL BOLD CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D6AE;MATHEMATICAL BOLD CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D6AF;MATHEMATICAL BOLD CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D6B0;MATHEMATICAL BOLD CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D6B1;MATHEMATICAL BOLD CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D6B2;MATHEMATICAL BOLD CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D6B3;MATHEMATICAL BOLD CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D6B4;MATHEMATICAL BOLD CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D6B5;MATHEMATICAL BOLD CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D6B6;MATHEMATICAL BOLD CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D6B7;MATHEMATICAL BOLD CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D6B8;MATHEMATICAL BOLD CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D6B9;MATHEMATICAL BOLD CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D6BA;MATHEMATICAL BOLD CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D6BB;MATHEMATICAL BOLD CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D6BC;MATHEMATICAL BOLD CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D6BD;MATHEMATICAL BOLD CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D6BE;MATHEMATICAL BOLD CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D6BF;MATHEMATICAL BOLD CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D6C0;MATHEMATICAL BOLD CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D6C1;MATHEMATICAL BOLD NABLA;Sm;0;L; 2207;;;;N;;;;; 1D6C2;MATHEMATICAL BOLD SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D6C3;MATHEMATICAL BOLD SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D6C4;MATHEMATICAL BOLD SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D6C5;MATHEMATICAL BOLD SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D6C6;MATHEMATICAL BOLD SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D6C7;MATHEMATICAL BOLD SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D6C8;MATHEMATICAL BOLD SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D6C9;MATHEMATICAL BOLD SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D6CA;MATHEMATICAL BOLD SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D6CB;MATHEMATICAL BOLD SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D6CC;MATHEMATICAL BOLD SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D6CD;MATHEMATICAL BOLD SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D6CE;MATHEMATICAL BOLD SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D6CF;MATHEMATICAL BOLD SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D6D0;MATHEMATICAL BOLD SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D6D1;MATHEMATICAL BOLD SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D6D2;MATHEMATICAL BOLD SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D6D3;MATHEMATICAL BOLD SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D6D4;MATHEMATICAL BOLD SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D6D5;MATHEMATICAL BOLD SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D6D6;MATHEMATICAL BOLD SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D6D7;MATHEMATICAL BOLD SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D6D8;MATHEMATICAL BOLD SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D6D9;MATHEMATICAL BOLD SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D6DA;MATHEMATICAL BOLD SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D6DB;MATHEMATICAL BOLD PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D6DC;MATHEMATICAL BOLD EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D6DD;MATHEMATICAL BOLD THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D6DE;MATHEMATICAL BOLD KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D6DF;MATHEMATICAL BOLD PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D6E0;MATHEMATICAL BOLD RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D6E1;MATHEMATICAL BOLD PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D6E2;MATHEMATICAL ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D6E3;MATHEMATICAL ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D6E4;MATHEMATICAL ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D6E5;MATHEMATICAL ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D6E6;MATHEMATICAL ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D6E7;MATHEMATICAL ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D6E8;MATHEMATICAL ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D6E9;MATHEMATICAL ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D6EA;MATHEMATICAL ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D6EB;MATHEMATICAL ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D6EC;MATHEMATICAL ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D6ED;MATHEMATICAL ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D6EE;MATHEMATICAL ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D6EF;MATHEMATICAL ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D6F0;MATHEMATICAL ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D6F1;MATHEMATICAL ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D6F2;MATHEMATICAL ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D6F3;MATHEMATICAL ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D6F4;MATHEMATICAL ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D6F5;MATHEMATICAL ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D6F6;MATHEMATICAL ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D6F7;MATHEMATICAL ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D6F8;MATHEMATICAL ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D6F9;MATHEMATICAL ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D6FA;MATHEMATICAL ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D6FB;MATHEMATICAL ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; 1D6FC;MATHEMATICAL ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D6FD;MATHEMATICAL ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D6FE;MATHEMATICAL ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D6FF;MATHEMATICAL ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D700;MATHEMATICAL ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D701;MATHEMATICAL ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D702;MATHEMATICAL ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D703;MATHEMATICAL ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D704;MATHEMATICAL ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D705;MATHEMATICAL ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D706;MATHEMATICAL ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D707;MATHEMATICAL ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D708;MATHEMATICAL ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D709;MATHEMATICAL ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D70A;MATHEMATICAL ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D70B;MATHEMATICAL ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D70C;MATHEMATICAL ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D70D;MATHEMATICAL ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D70E;MATHEMATICAL ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D70F;MATHEMATICAL ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D710;MATHEMATICAL ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D711;MATHEMATICAL ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D712;MATHEMATICAL ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D713;MATHEMATICAL ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D714;MATHEMATICAL ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D715;MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D716;MATHEMATICAL ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D717;MATHEMATICAL ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D718;MATHEMATICAL ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D719;MATHEMATICAL ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D71A;MATHEMATICAL ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D71B;MATHEMATICAL ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D71C;MATHEMATICAL BOLD ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D71D;MATHEMATICAL BOLD ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D71E;MATHEMATICAL BOLD ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D71F;MATHEMATICAL BOLD ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D720;MATHEMATICAL BOLD ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D721;MATHEMATICAL BOLD ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D722;MATHEMATICAL BOLD ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D723;MATHEMATICAL BOLD ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D724;MATHEMATICAL BOLD ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D725;MATHEMATICAL BOLD ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D726;MATHEMATICAL BOLD ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D727;MATHEMATICAL BOLD ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D728;MATHEMATICAL BOLD ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D729;MATHEMATICAL BOLD ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D72A;MATHEMATICAL BOLD ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D72B;MATHEMATICAL BOLD ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D72C;MATHEMATICAL BOLD ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D72D;MATHEMATICAL BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D72E;MATHEMATICAL BOLD ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D72F;MATHEMATICAL BOLD ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D730;MATHEMATICAL BOLD ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D731;MATHEMATICAL BOLD ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D732;MATHEMATICAL BOLD ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D733;MATHEMATICAL BOLD ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D734;MATHEMATICAL BOLD ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D735;MATHEMATICAL BOLD ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; 1D736;MATHEMATICAL BOLD ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D737;MATHEMATICAL BOLD ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D738;MATHEMATICAL BOLD ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D739;MATHEMATICAL BOLD ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D73A;MATHEMATICAL BOLD ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D73B;MATHEMATICAL BOLD ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D73C;MATHEMATICAL BOLD ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D73D;MATHEMATICAL BOLD ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D73E;MATHEMATICAL BOLD ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D73F;MATHEMATICAL BOLD ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D740;MATHEMATICAL BOLD ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D741;MATHEMATICAL BOLD ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D742;MATHEMATICAL BOLD ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D743;MATHEMATICAL BOLD ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D744;MATHEMATICAL BOLD ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D745;MATHEMATICAL BOLD ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D746;MATHEMATICAL BOLD ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D747;MATHEMATICAL BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D748;MATHEMATICAL BOLD ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D749;MATHEMATICAL BOLD ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D74A;MATHEMATICAL BOLD ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D74B;MATHEMATICAL BOLD ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D74C;MATHEMATICAL BOLD ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D74D;MATHEMATICAL BOLD ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D74E;MATHEMATICAL BOLD ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D74F;MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D750;MATHEMATICAL BOLD ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D751;MATHEMATICAL BOLD ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D752;MATHEMATICAL BOLD ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D753;MATHEMATICAL BOLD ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D754;MATHEMATICAL BOLD ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D755;MATHEMATICAL BOLD ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D756;MATHEMATICAL SANS-SERIF BOLD CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D757;MATHEMATICAL SANS-SERIF BOLD CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D758;MATHEMATICAL SANS-SERIF BOLD CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D759;MATHEMATICAL SANS-SERIF BOLD CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D75A;MATHEMATICAL SANS-SERIF BOLD CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D75B;MATHEMATICAL SANS-SERIF BOLD CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D75C;MATHEMATICAL SANS-SERIF BOLD CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D75D;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D75E;MATHEMATICAL SANS-SERIF BOLD CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D75F;MATHEMATICAL SANS-SERIF BOLD CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D760;MATHEMATICAL SANS-SERIF BOLD CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D761;MATHEMATICAL SANS-SERIF BOLD CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D762;MATHEMATICAL SANS-SERIF BOLD CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D763;MATHEMATICAL SANS-SERIF BOLD CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D764;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D765;MATHEMATICAL SANS-SERIF BOLD CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D766;MATHEMATICAL SANS-SERIF BOLD CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D767;MATHEMATICAL SANS-SERIF BOLD CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D768;MATHEMATICAL SANS-SERIF BOLD CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D769;MATHEMATICAL SANS-SERIF BOLD CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D76A;MATHEMATICAL SANS-SERIF BOLD CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D76B;MATHEMATICAL SANS-SERIF BOLD CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D76C;MATHEMATICAL SANS-SERIF BOLD CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D76D;MATHEMATICAL SANS-SERIF BOLD CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D76E;MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D76F;MATHEMATICAL SANS-SERIF BOLD NABLA;Sm;0;L; 2207;;;;N;;;;; 1D770;MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D771;MATHEMATICAL SANS-SERIF BOLD SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D772;MATHEMATICAL SANS-SERIF BOLD SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D773;MATHEMATICAL SANS-SERIF BOLD SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D774;MATHEMATICAL SANS-SERIF BOLD SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D775;MATHEMATICAL SANS-SERIF BOLD SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D776;MATHEMATICAL SANS-SERIF BOLD SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D777;MATHEMATICAL SANS-SERIF BOLD SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D778;MATHEMATICAL SANS-SERIF BOLD SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D779;MATHEMATICAL SANS-SERIF BOLD SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D77A;MATHEMATICAL SANS-SERIF BOLD SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D77B;MATHEMATICAL SANS-SERIF BOLD SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D77C;MATHEMATICAL SANS-SERIF BOLD SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D77D;MATHEMATICAL SANS-SERIF BOLD SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D77E;MATHEMATICAL SANS-SERIF BOLD SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D77F;MATHEMATICAL SANS-SERIF BOLD SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D780;MATHEMATICAL SANS-SERIF BOLD SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D781;MATHEMATICAL SANS-SERIF BOLD SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D782;MATHEMATICAL SANS-SERIF BOLD SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D783;MATHEMATICAL SANS-SERIF BOLD SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D784;MATHEMATICAL SANS-SERIF BOLD SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D785;MATHEMATICAL SANS-SERIF BOLD SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D786;MATHEMATICAL SANS-SERIF BOLD SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D787;MATHEMATICAL SANS-SERIF BOLD SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D788;MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D789;MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D78A;MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D78B;MATHEMATICAL SANS-SERIF BOLD THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D78C;MATHEMATICAL SANS-SERIF BOLD KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D78D;MATHEMATICAL SANS-SERIF BOLD PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D78E;MATHEMATICAL SANS-SERIF BOLD RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D78F;MATHEMATICAL SANS-SERIF BOLD PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D790;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ALPHA;Lu;0;L; 0391;;;;N;;;;; 1D791;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL BETA;Lu;0;L; 0392;;;;N;;;;; 1D792;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL GAMMA;Lu;0;L; 0393;;;;N;;;;; 1D793;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL DELTA;Lu;0;L; 0394;;;;N;;;;; 1D794;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL EPSILON;Lu;0;L; 0395;;;;N;;;;; 1D795;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ZETA;Lu;0;L; 0396;;;;N;;;;; 1D796;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL ETA;Lu;0;L; 0397;;;;N;;;;; 1D797;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA;Lu;0;L; 0398;;;;N;;;;; 1D798;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL IOTA;Lu;0;L; 0399;;;;N;;;;; 1D799;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL KAPPA;Lu;0;L; 039A;;;;N;;;;; 1D79A;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL LAMDA;Lu;0;L; 039B;;;;N;;;;; 1D79B;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL MU;Lu;0;L; 039C;;;;N;;;;; 1D79C;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL NU;Lu;0;L; 039D;;;;N;;;;; 1D79D;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL XI;Lu;0;L; 039E;;;;N;;;;; 1D79E;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMICRON;Lu;0;L; 039F;;;;N;;;;; 1D79F;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PI;Lu;0;L; 03A0;;;;N;;;;; 1D7A0;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL RHO;Lu;0;L; 03A1;;;;N;;;;; 1D7A1;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL THETA SYMBOL;Lu;0;L; 03F4;;;;N;;;;; 1D7A2;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL SIGMA;Lu;0;L; 03A3;;;;N;;;;; 1D7A3;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL TAU;Lu;0;L; 03A4;;;;N;;;;; 1D7A4;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL UPSILON;Lu;0;L; 03A5;;;;N;;;;; 1D7A5;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PHI;Lu;0;L; 03A6;;;;N;;;;; 1D7A6;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL CHI;Lu;0;L; 03A7;;;;N;;;;; 1D7A7;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL PSI;Lu;0;L; 03A8;;;;N;;;;; 1D7A8;MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA;Lu;0;L; 03A9;;;;N;;;;; 1D7A9;MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA;Sm;0;L; 2207;;;;N;;;;; 1D7AA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA;Ll;0;L; 03B1;;;;N;;;;; 1D7AB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL BETA;Ll;0;L; 03B2;;;;N;;;;; 1D7AC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL GAMMA;Ll;0;L; 03B3;;;;N;;;;; 1D7AD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL DELTA;Ll;0;L; 03B4;;;;N;;;;; 1D7AE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL EPSILON;Ll;0;L; 03B5;;;;N;;;;; 1D7AF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ZETA;Ll;0;L; 03B6;;;;N;;;;; 1D7B0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ETA;Ll;0;L; 03B7;;;;N;;;;; 1D7B1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL THETA;Ll;0;L; 03B8;;;;N;;;;; 1D7B2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL IOTA;Ll;0;L; 03B9;;;;N;;;;; 1D7B3;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL KAPPA;Ll;0;L; 03BA;;;;N;;;;; 1D7B4;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL LAMDA;Ll;0;L; 03BB;;;;N;;;;; 1D7B5;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL MU;Ll;0;L; 03BC;;;;N;;;;; 1D7B6;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL NU;Ll;0;L; 03BD;;;;N;;;;; 1D7B7;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL XI;Ll;0;L; 03BE;;;;N;;;;; 1D7B8;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMICRON;Ll;0;L; 03BF;;;;N;;;;; 1D7B9;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PI;Ll;0;L; 03C0;;;;N;;;;; 1D7BA;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL RHO;Ll;0;L; 03C1;;;;N;;;;; 1D7BB;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL FINAL SIGMA;Ll;0;L; 03C2;;;;N;;;;; 1D7BC;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL SIGMA;Ll;0;L; 03C3;;;;N;;;;; 1D7BD;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL TAU;Ll;0;L; 03C4;;;;N;;;;; 1D7BE;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL UPSILON;Ll;0;L; 03C5;;;;N;;;;; 1D7BF;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PHI;Ll;0;L; 03C6;;;;N;;;;; 1D7C0;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL CHI;Ll;0;L; 03C7;;;;N;;;;; 1D7C1;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL PSI;Ll;0;L; 03C8;;;;N;;;;; 1D7C2;MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA;Ll;0;L; 03C9;;;;N;;;;; 1D7C3;MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL;Sm;0;L; 2202;;;;N;;;;; 1D7C4;MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL;Ll;0;L; 03F5;;;;N;;;;; 1D7C5;MATHEMATICAL SANS-SERIF BOLD ITALIC THETA SYMBOL;Ll;0;L; 03D1;;;;N;;;;; 1D7C6;MATHEMATICAL SANS-SERIF BOLD ITALIC KAPPA SYMBOL;Ll;0;L; 03F0;;;;N;;;;; 1D7C7;MATHEMATICAL SANS-SERIF BOLD ITALIC PHI SYMBOL;Ll;0;L; 03D5;;;;N;;;;; 1D7C8;MATHEMATICAL SANS-SERIF BOLD ITALIC RHO SYMBOL;Ll;0;L; 03F1;;;;N;;;;; 1D7C9;MATHEMATICAL SANS-SERIF BOLD ITALIC PI SYMBOL;Ll;0;L; 03D6;;;;N;;;;; 1D7CE;MATHEMATICAL BOLD DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7CF;MATHEMATICAL BOLD DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7D0;MATHEMATICAL BOLD DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7D1;MATHEMATICAL BOLD DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7D2;MATHEMATICAL BOLD DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7D3;MATHEMATICAL BOLD DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7D4;MATHEMATICAL BOLD DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7D5;MATHEMATICAL BOLD DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7D6;MATHEMATICAL BOLD DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7D7;MATHEMATICAL BOLD DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7D8;MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7D9;MATHEMATICAL DOUBLE-STRUCK DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7DA;MATHEMATICAL DOUBLE-STRUCK DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7DB;MATHEMATICAL DOUBLE-STRUCK DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7DC;MATHEMATICAL DOUBLE-STRUCK DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7DD;MATHEMATICAL DOUBLE-STRUCK DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7DE;MATHEMATICAL DOUBLE-STRUCK DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7DF;MATHEMATICAL DOUBLE-STRUCK DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7E0;MATHEMATICAL DOUBLE-STRUCK DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7E1;MATHEMATICAL DOUBLE-STRUCK DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7E2;MATHEMATICAL SANS-SERIF DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7E3;MATHEMATICAL SANS-SERIF DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7E4;MATHEMATICAL SANS-SERIF DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7E5;MATHEMATICAL SANS-SERIF DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7E6;MATHEMATICAL SANS-SERIF DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7E7;MATHEMATICAL SANS-SERIF DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7E8;MATHEMATICAL SANS-SERIF DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7E9;MATHEMATICAL SANS-SERIF DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7EA;MATHEMATICAL SANS-SERIF DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7EB;MATHEMATICAL SANS-SERIF DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7EC;MATHEMATICAL SANS-SERIF BOLD DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7ED;MATHEMATICAL SANS-SERIF BOLD DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7EE;MATHEMATICAL SANS-SERIF BOLD DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7EF;MATHEMATICAL SANS-SERIF BOLD DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7F0;MATHEMATICAL SANS-SERIF BOLD DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7F1;MATHEMATICAL SANS-SERIF BOLD DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7F2;MATHEMATICAL SANS-SERIF BOLD DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7F3;MATHEMATICAL SANS-SERIF BOLD DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7F4;MATHEMATICAL SANS-SERIF BOLD DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7F5;MATHEMATICAL SANS-SERIF BOLD DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 1D7F6;MATHEMATICAL MONOSPACE DIGIT ZERO;Nd;0;EN; 0030;0;0;0;N;;;;; 1D7F7;MATHEMATICAL MONOSPACE DIGIT ONE;Nd;0;EN; 0031;1;1;1;N;;;;; 1D7F8;MATHEMATICAL MONOSPACE DIGIT TWO;Nd;0;EN; 0032;2;2;2;N;;;;; 1D7F9;MATHEMATICAL MONOSPACE DIGIT THREE;Nd;0;EN; 0033;3;3;3;N;;;;; 1D7FA;MATHEMATICAL MONOSPACE DIGIT FOUR;Nd;0;EN; 0034;4;4;4;N;;;;; 1D7FB;MATHEMATICAL MONOSPACE DIGIT FIVE;Nd;0;EN; 0035;5;5;5;N;;;;; 1D7FC;MATHEMATICAL MONOSPACE DIGIT SIX;Nd;0;EN; 0036;6;6;6;N;;;;; 1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; 20000;;Lo;0;L;;;;;N;;;;; 2A6D6;;Lo;0;L;;;;;N;;;;; 2F800;CJK COMPATIBILITY IDEOGRAPH-2F800;Lo;0;L;4E3D;;;;N;;;;; 2F801;CJK COMPATIBILITY IDEOGRAPH-2F801;Lo;0;L;4E38;;;;N;;;;; 2F802;CJK COMPATIBILITY IDEOGRAPH-2F802;Lo;0;L;4E41;;;;N;;;;; 2F803;CJK COMPATIBILITY IDEOGRAPH-2F803;Lo;0;L;20122;;;;N;;;;; 2F804;CJK COMPATIBILITY IDEOGRAPH-2F804;Lo;0;L;4F60;;;;N;;;;; 2F805;CJK COMPATIBILITY IDEOGRAPH-2F805;Lo;0;L;4FAE;;;;N;;;;; 2F806;CJK COMPATIBILITY IDEOGRAPH-2F806;Lo;0;L;4FBB;;;;N;;;;; 2F807;CJK COMPATIBILITY IDEOGRAPH-2F807;Lo;0;L;5002;;;;N;;;;; 2F808;CJK COMPATIBILITY IDEOGRAPH-2F808;Lo;0;L;507A;;;;N;;;;; 2F809;CJK COMPATIBILITY IDEOGRAPH-2F809;Lo;0;L;5099;;;;N;;;;; 2F80A;CJK COMPATIBILITY IDEOGRAPH-2F80A;Lo;0;L;50E7;;;;N;;;;; 2F80B;CJK COMPATIBILITY IDEOGRAPH-2F80B;Lo;0;L;50CF;;;;N;;;;; 2F80C;CJK COMPATIBILITY IDEOGRAPH-2F80C;Lo;0;L;349E;;;;N;;;;; 2F80D;CJK COMPATIBILITY IDEOGRAPH-2F80D;Lo;0;L;2063A;;;;N;;;;; 2F80E;CJK COMPATIBILITY IDEOGRAPH-2F80E;Lo;0;L;514D;;;;N;;;;; 2F80F;CJK COMPATIBILITY IDEOGRAPH-2F80F;Lo;0;L;5154;;;;N;;;;; 2F810;CJK COMPATIBILITY IDEOGRAPH-2F810;Lo;0;L;5164;;;;N;;;;; 2F811;CJK COMPATIBILITY IDEOGRAPH-2F811;Lo;0;L;5177;;;;N;;;;; 2F812;CJK COMPATIBILITY IDEOGRAPH-2F812;Lo;0;L;2051C;;;;N;;;;; 2F813;CJK COMPATIBILITY IDEOGRAPH-2F813;Lo;0;L;34B9;;;;N;;;;; 2F814;CJK COMPATIBILITY IDEOGRAPH-2F814;Lo;0;L;5167;;;;N;;;;; 2F815;CJK COMPATIBILITY IDEOGRAPH-2F815;Lo;0;L;518D;;;;N;;;;; 2F816;CJK COMPATIBILITY IDEOGRAPH-2F816;Lo;0;L;2054B;;;;N;;;;; 2F817;CJK COMPATIBILITY IDEOGRAPH-2F817;Lo;0;L;5197;;;;N;;;;; 2F818;CJK COMPATIBILITY IDEOGRAPH-2F818;Lo;0;L;51A4;;;;N;;;;; 2F819;CJK COMPATIBILITY IDEOGRAPH-2F819;Lo;0;L;4ECC;;;;N;;;;; 2F81A;CJK COMPATIBILITY IDEOGRAPH-2F81A;Lo;0;L;51AC;;;;N;;;;; 2F81B;CJK COMPATIBILITY IDEOGRAPH-2F81B;Lo;0;L;51B5;;;;N;;;;; 2F81C;CJK COMPATIBILITY IDEOGRAPH-2F81C;Lo;0;L;291DF;;;;N;;;;; 2F81D;CJK COMPATIBILITY IDEOGRAPH-2F81D;Lo;0;L;51F5;;;;N;;;;; 2F81E;CJK COMPATIBILITY IDEOGRAPH-2F81E;Lo;0;L;5203;;;;N;;;;; 2F81F;CJK COMPATIBILITY IDEOGRAPH-2F81F;Lo;0;L;34DF;;;;N;;;;; 2F820;CJK COMPATIBILITY IDEOGRAPH-2F820;Lo;0;L;523B;;;;N;;;;; 2F821;CJK COMPATIBILITY IDEOGRAPH-2F821;Lo;0;L;5246;;;;N;;;;; 2F822;CJK COMPATIBILITY IDEOGRAPH-2F822;Lo;0;L;5272;;;;N;;;;; 2F823;CJK COMPATIBILITY IDEOGRAPH-2F823;Lo;0;L;5277;;;;N;;;;; 2F824;CJK COMPATIBILITY IDEOGRAPH-2F824;Lo;0;L;3515;;;;N;;;;; 2F825;CJK COMPATIBILITY IDEOGRAPH-2F825;Lo;0;L;52C7;;;;N;;;;; 2F826;CJK COMPATIBILITY IDEOGRAPH-2F826;Lo;0;L;52C9;;;;N;;;;; 2F827;CJK COMPATIBILITY IDEOGRAPH-2F827;Lo;0;L;52E4;;;;N;;;;; 2F828;CJK COMPATIBILITY IDEOGRAPH-2F828;Lo;0;L;52FA;;;;N;;;;; 2F829;CJK COMPATIBILITY IDEOGRAPH-2F829;Lo;0;L;5305;;;;N;;;;; 2F82A;CJK COMPATIBILITY IDEOGRAPH-2F82A;Lo;0;L;5306;;;;N;;;;; 2F82B;CJK COMPATIBILITY IDEOGRAPH-2F82B;Lo;0;L;5317;;;;N;;;;; 2F82C;CJK COMPATIBILITY IDEOGRAPH-2F82C;Lo;0;L;5349;;;;N;;;;; 2F82D;CJK COMPATIBILITY IDEOGRAPH-2F82D;Lo;0;L;5351;;;;N;;;;; 2F82E;CJK COMPATIBILITY IDEOGRAPH-2F82E;Lo;0;L;535A;;;;N;;;;; 2F82F;CJK COMPATIBILITY IDEOGRAPH-2F82F;Lo;0;L;5373;;;;N;;;;; 2F830;CJK COMPATIBILITY IDEOGRAPH-2F830;Lo;0;L;537D;;;;N;;;;; 2F831;CJK COMPATIBILITY IDEOGRAPH-2F831;Lo;0;L;537F;;;;N;;;;; 2F832;CJK COMPATIBILITY IDEOGRAPH-2F832;Lo;0;L;537F;;;;N;;;;; 2F833;CJK COMPATIBILITY IDEOGRAPH-2F833;Lo;0;L;537F;;;;N;;;;; 2F834;CJK COMPATIBILITY IDEOGRAPH-2F834;Lo;0;L;20A2C;;;;N;;;;; 2F835;CJK COMPATIBILITY IDEOGRAPH-2F835;Lo;0;L;7070;;;;N;;;;; 2F836;CJK COMPATIBILITY IDEOGRAPH-2F836;Lo;0;L;53CA;;;;N;;;;; 2F837;CJK COMPATIBILITY IDEOGRAPH-2F837;Lo;0;L;53DF;;;;N;;;;; 2F838;CJK COMPATIBILITY IDEOGRAPH-2F838;Lo;0;L;20B63;;;;N;;;;; 2F839;CJK COMPATIBILITY IDEOGRAPH-2F839;Lo;0;L;53EB;;;;N;;;;; 2F83A;CJK COMPATIBILITY IDEOGRAPH-2F83A;Lo;0;L;53F1;;;;N;;;;; 2F83B;CJK COMPATIBILITY IDEOGRAPH-2F83B;Lo;0;L;5406;;;;N;;;;; 2F83C;CJK COMPATIBILITY IDEOGRAPH-2F83C;Lo;0;L;549E;;;;N;;;;; 2F83D;CJK COMPATIBILITY IDEOGRAPH-2F83D;Lo;0;L;5438;;;;N;;;;; 2F83E;CJK COMPATIBILITY IDEOGRAPH-2F83E;Lo;0;L;5448;;;;N;;;;; 2F83F;CJK COMPATIBILITY IDEOGRAPH-2F83F;Lo;0;L;5468;;;;N;;;;; 2F840;CJK COMPATIBILITY IDEOGRAPH-2F840;Lo;0;L;54A2;;;;N;;;;; 2F841;CJK COMPATIBILITY IDEOGRAPH-2F841;Lo;0;L;54F6;;;;N;;;;; 2F842;CJK COMPATIBILITY IDEOGRAPH-2F842;Lo;0;L;5510;;;;N;;;;; 2F843;CJK COMPATIBILITY IDEOGRAPH-2F843;Lo;0;L;5553;;;;N;;;;; 2F844;CJK COMPATIBILITY IDEOGRAPH-2F844;Lo;0;L;5563;;;;N;;;;; 2F845;CJK COMPATIBILITY IDEOGRAPH-2F845;Lo;0;L;5584;;;;N;;;;; 2F846;CJK COMPATIBILITY IDEOGRAPH-2F846;Lo;0;L;5584;;;;N;;;;; 2F847;CJK COMPATIBILITY IDEOGRAPH-2F847;Lo;0;L;5599;;;;N;;;;; 2F848;CJK COMPATIBILITY IDEOGRAPH-2F848;Lo;0;L;55AB;;;;N;;;;; 2F849;CJK COMPATIBILITY IDEOGRAPH-2F849;Lo;0;L;55B3;;;;N;;;;; 2F84A;CJK COMPATIBILITY IDEOGRAPH-2F84A;Lo;0;L;55C2;;;;N;;;;; 2F84B;CJK COMPATIBILITY IDEOGRAPH-2F84B;Lo;0;L;5716;;;;N;;;;; 2F84C;CJK COMPATIBILITY IDEOGRAPH-2F84C;Lo;0;L;5606;;;;N;;;;; 2F84D;CJK COMPATIBILITY IDEOGRAPH-2F84D;Lo;0;L;5717;;;;N;;;;; 2F84E;CJK COMPATIBILITY IDEOGRAPH-2F84E;Lo;0;L;5651;;;;N;;;;; 2F84F;CJK COMPATIBILITY IDEOGRAPH-2F84F;Lo;0;L;5674;;;;N;;;;; 2F850;CJK COMPATIBILITY IDEOGRAPH-2F850;Lo;0;L;5207;;;;N;;;;; 2F851;CJK COMPATIBILITY IDEOGRAPH-2F851;Lo;0;L;58EE;;;;N;;;;; 2F852;CJK COMPATIBILITY IDEOGRAPH-2F852;Lo;0;L;57CE;;;;N;;;;; 2F853;CJK COMPATIBILITY IDEOGRAPH-2F853;Lo;0;L;57F4;;;;N;;;;; 2F854;CJK COMPATIBILITY IDEOGRAPH-2F854;Lo;0;L;580D;;;;N;;;;; 2F855;CJK COMPATIBILITY IDEOGRAPH-2F855;Lo;0;L;578B;;;;N;;;;; 2F856;CJK COMPATIBILITY IDEOGRAPH-2F856;Lo;0;L;5832;;;;N;;;;; 2F857;CJK COMPATIBILITY IDEOGRAPH-2F857;Lo;0;L;5831;;;;N;;;;; 2F858;CJK COMPATIBILITY IDEOGRAPH-2F858;Lo;0;L;58AC;;;;N;;;;; 2F859;CJK COMPATIBILITY IDEOGRAPH-2F859;Lo;0;L;214E4;;;;N;;;;; 2F85A;CJK COMPATIBILITY IDEOGRAPH-2F85A;Lo;0;L;58F2;;;;N;;;;; 2F85B;CJK COMPATIBILITY IDEOGRAPH-2F85B;Lo;0;L;58F7;;;;N;;;;; 2F85C;CJK COMPATIBILITY IDEOGRAPH-2F85C;Lo;0;L;5906;;;;N;;;;; 2F85D;CJK COMPATIBILITY IDEOGRAPH-2F85D;Lo;0;L;591A;;;;N;;;;; 2F85E;CJK COMPATIBILITY IDEOGRAPH-2F85E;Lo;0;L;5922;;;;N;;;;; 2F85F;CJK COMPATIBILITY IDEOGRAPH-2F85F;Lo;0;L;5962;;;;N;;;;; 2F860;CJK COMPATIBILITY IDEOGRAPH-2F860;Lo;0;L;216A8;;;;N;;;;; 2F861;CJK COMPATIBILITY IDEOGRAPH-2F861;Lo;0;L;216EA;;;;N;;;;; 2F862;CJK COMPATIBILITY IDEOGRAPH-2F862;Lo;0;L;59EC;;;;N;;;;; 2F863;CJK COMPATIBILITY IDEOGRAPH-2F863;Lo;0;L;5A1B;;;;N;;;;; 2F864;CJK COMPATIBILITY IDEOGRAPH-2F864;Lo;0;L;5A27;;;;N;;;;; 2F865;CJK COMPATIBILITY IDEOGRAPH-2F865;Lo;0;L;59D8;;;;N;;;;; 2F866;CJK COMPATIBILITY IDEOGRAPH-2F866;Lo;0;L;5A66;;;;N;;;;; 2F867;CJK COMPATIBILITY IDEOGRAPH-2F867;Lo;0;L;36EE;;;;N;;;;; 2F868;CJK COMPATIBILITY IDEOGRAPH-2F868;Lo;0;L;2136A;;;;N;;;;; 2F869;CJK COMPATIBILITY IDEOGRAPH-2F869;Lo;0;L;5B08;;;;N;;;;; 2F86A;CJK COMPATIBILITY IDEOGRAPH-2F86A;Lo;0;L;5B3E;;;;N;;;;; 2F86B;CJK COMPATIBILITY IDEOGRAPH-2F86B;Lo;0;L;5B3E;;;;N;;;;; 2F86C;CJK COMPATIBILITY IDEOGRAPH-2F86C;Lo;0;L;219C8;;;;N;;;;; 2F86D;CJK COMPATIBILITY IDEOGRAPH-2F86D;Lo;0;L;5BC3;;;;N;;;;; 2F86E;CJK COMPATIBILITY IDEOGRAPH-2F86E;Lo;0;L;5BD8;;;;N;;;;; 2F86F;CJK COMPATIBILITY IDEOGRAPH-2F86F;Lo;0;L;5BE7;;;;N;;;;; 2F870;CJK COMPATIBILITY IDEOGRAPH-2F870;Lo;0;L;5BF3;;;;N;;;;; 2F871;CJK COMPATIBILITY IDEOGRAPH-2F871;Lo;0;L;21B18;;;;N;;;;; 2F872;CJK COMPATIBILITY IDEOGRAPH-2F872;Lo;0;L;5BFF;;;;N;;;;; 2F873;CJK COMPATIBILITY IDEOGRAPH-2F873;Lo;0;L;5C06;;;;N;;;;; 2F874;CJK COMPATIBILITY IDEOGRAPH-2F874;Lo;0;L;5F33;;;;N;;;;; 2F875;CJK COMPATIBILITY IDEOGRAPH-2F875;Lo;0;L;5C22;;;;N;;;;; 2F876;CJK COMPATIBILITY IDEOGRAPH-2F876;Lo;0;L;3781;;;;N;;;;; 2F877;CJK COMPATIBILITY IDEOGRAPH-2F877;Lo;0;L;5C60;;;;N;;;;; 2F878;CJK COMPATIBILITY IDEOGRAPH-2F878;Lo;0;L;5C6E;;;;N;;;;; 2F879;CJK COMPATIBILITY IDEOGRAPH-2F879;Lo;0;L;5CC0;;;;N;;;;; 2F87A;CJK COMPATIBILITY IDEOGRAPH-2F87A;Lo;0;L;5C8D;;;;N;;;;; 2F87B;CJK COMPATIBILITY IDEOGRAPH-2F87B;Lo;0;L;21DE4;;;;N;;;;; 2F87C;CJK COMPATIBILITY IDEOGRAPH-2F87C;Lo;0;L;5D43;;;;N;;;;; 2F87D;CJK COMPATIBILITY IDEOGRAPH-2F87D;Lo;0;L;21DE6;;;;N;;;;; 2F87E;CJK COMPATIBILITY IDEOGRAPH-2F87E;Lo;0;L;5D6E;;;;N;;;;; 2F87F;CJK COMPATIBILITY IDEOGRAPH-2F87F;Lo;0;L;5D6B;;;;N;;;;; 2F880;CJK COMPATIBILITY IDEOGRAPH-2F880;Lo;0;L;5D7C;;;;N;;;;; 2F881;CJK COMPATIBILITY IDEOGRAPH-2F881;Lo;0;L;5DE1;;;;N;;;;; 2F882;CJK COMPATIBILITY IDEOGRAPH-2F882;Lo;0;L;5DE2;;;;N;;;;; 2F883;CJK COMPATIBILITY IDEOGRAPH-2F883;Lo;0;L;382F;;;;N;;;;; 2F884;CJK COMPATIBILITY IDEOGRAPH-2F884;Lo;0;L;5DFD;;;;N;;;;; 2F885;CJK COMPATIBILITY IDEOGRAPH-2F885;Lo;0;L;5E28;;;;N;;;;; 2F886;CJK COMPATIBILITY IDEOGRAPH-2F886;Lo;0;L;5E3D;;;;N;;;;; 2F887;CJK COMPATIBILITY IDEOGRAPH-2F887;Lo;0;L;5E69;;;;N;;;;; 2F888;CJK COMPATIBILITY IDEOGRAPH-2F888;Lo;0;L;3862;;;;N;;;;; 2F889;CJK COMPATIBILITY IDEOGRAPH-2F889;Lo;0;L;22183;;;;N;;;;; 2F88A;CJK COMPATIBILITY IDEOGRAPH-2F88A;Lo;0;L;387C;;;;N;;;;; 2F88B;CJK COMPATIBILITY IDEOGRAPH-2F88B;Lo;0;L;5EB0;;;;N;;;;; 2F88C;CJK COMPATIBILITY IDEOGRAPH-2F88C;Lo;0;L;5EB3;;;;N;;;;; 2F88D;CJK COMPATIBILITY IDEOGRAPH-2F88D;Lo;0;L;5EB6;;;;N;;;;; 2F88E;CJK COMPATIBILITY IDEOGRAPH-2F88E;Lo;0;L;5ECA;;;;N;;;;; 2F88F;CJK COMPATIBILITY IDEOGRAPH-2F88F;Lo;0;L;2A392;;;;N;;;;; 2F890;CJK COMPATIBILITY IDEOGRAPH-2F890;Lo;0;L;5EFE;;;;N;;;;; 2F891;CJK COMPATIBILITY IDEOGRAPH-2F891;Lo;0;L;22331;;;;N;;;;; 2F892;CJK COMPATIBILITY IDEOGRAPH-2F892;Lo;0;L;22331;;;;N;;;;; 2F893;CJK COMPATIBILITY IDEOGRAPH-2F893;Lo;0;L;8201;;;;N;;;;; 2F894;CJK COMPATIBILITY IDEOGRAPH-2F894;Lo;0;L;5F22;;;;N;;;;; 2F895;CJK COMPATIBILITY IDEOGRAPH-2F895;Lo;0;L;5F22;;;;N;;;;; 2F896;CJK COMPATIBILITY IDEOGRAPH-2F896;Lo;0;L;38C7;;;;N;;;;; 2F897;CJK COMPATIBILITY IDEOGRAPH-2F897;Lo;0;L;232B8;;;;N;;;;; 2F898;CJK COMPATIBILITY IDEOGRAPH-2F898;Lo;0;L;261DA;;;;N;;;;; 2F899;CJK COMPATIBILITY IDEOGRAPH-2F899;Lo;0;L;5F62;;;;N;;;;; 2F89A;CJK COMPATIBILITY IDEOGRAPH-2F89A;Lo;0;L;5F6B;;;;N;;;;; 2F89B;CJK COMPATIBILITY IDEOGRAPH-2F89B;Lo;0;L;38E3;;;;N;;;;; 2F89C;CJK COMPATIBILITY IDEOGRAPH-2F89C;Lo;0;L;5F9A;;;;N;;;;; 2F89D;CJK COMPATIBILITY IDEOGRAPH-2F89D;Lo;0;L;5FCD;;;;N;;;;; 2F89E;CJK COMPATIBILITY IDEOGRAPH-2F89E;Lo;0;L;5FD7;;;;N;;;;; 2F89F;CJK COMPATIBILITY IDEOGRAPH-2F89F;Lo;0;L;5FF9;;;;N;;;;; 2F8A0;CJK COMPATIBILITY IDEOGRAPH-2F8A0;Lo;0;L;6081;;;;N;;;;; 2F8A1;CJK COMPATIBILITY IDEOGRAPH-2F8A1;Lo;0;L;393A;;;;N;;;;; 2F8A2;CJK COMPATIBILITY IDEOGRAPH-2F8A2;Lo;0;L;391C;;;;N;;;;; 2F8A3;CJK COMPATIBILITY IDEOGRAPH-2F8A3;Lo;0;L;6094;;;;N;;;;; 2F8A4;CJK COMPATIBILITY IDEOGRAPH-2F8A4;Lo;0;L;226D4;;;;N;;;;; 2F8A5;CJK COMPATIBILITY IDEOGRAPH-2F8A5;Lo;0;L;60C7;;;;N;;;;; 2F8A6;CJK COMPATIBILITY IDEOGRAPH-2F8A6;Lo;0;L;6148;;;;N;;;;; 2F8A7;CJK COMPATIBILITY IDEOGRAPH-2F8A7;Lo;0;L;614C;;;;N;;;;; 2F8A8;CJK COMPATIBILITY IDEOGRAPH-2F8A8;Lo;0;L;614E;;;;N;;;;; 2F8A9;CJK COMPATIBILITY IDEOGRAPH-2F8A9;Lo;0;L;614C;;;;N;;;;; 2F8AA;CJK COMPATIBILITY IDEOGRAPH-2F8AA;Lo;0;L;617A;;;;N;;;;; 2F8AB;CJK COMPATIBILITY IDEOGRAPH-2F8AB;Lo;0;L;618E;;;;N;;;;; 2F8AC;CJK COMPATIBILITY IDEOGRAPH-2F8AC;Lo;0;L;61B2;;;;N;;;;; 2F8AD;CJK COMPATIBILITY IDEOGRAPH-2F8AD;Lo;0;L;61A4;;;;N;;;;; 2F8AE;CJK COMPATIBILITY IDEOGRAPH-2F8AE;Lo;0;L;61AF;;;;N;;;;; 2F8AF;CJK COMPATIBILITY IDEOGRAPH-2F8AF;Lo;0;L;61DE;;;;N;;;;; 2F8B0;CJK COMPATIBILITY IDEOGRAPH-2F8B0;Lo;0;L;61F2;;;;N;;;;; 2F8B1;CJK COMPATIBILITY IDEOGRAPH-2F8B1;Lo;0;L;61F6;;;;N;;;;; 2F8B2;CJK COMPATIBILITY IDEOGRAPH-2F8B2;Lo;0;L;6210;;;;N;;;;; 2F8B3;CJK COMPATIBILITY IDEOGRAPH-2F8B3;Lo;0;L;621B;;;;N;;;;; 2F8B4;CJK COMPATIBILITY IDEOGRAPH-2F8B4;Lo;0;L;625D;;;;N;;;;; 2F8B5;CJK COMPATIBILITY IDEOGRAPH-2F8B5;Lo;0;L;62B1;;;;N;;;;; 2F8B6;CJK COMPATIBILITY IDEOGRAPH-2F8B6;Lo;0;L;62D4;;;;N;;;;; 2F8B7;CJK COMPATIBILITY IDEOGRAPH-2F8B7;Lo;0;L;6350;;;;N;;;;; 2F8B8;CJK COMPATIBILITY IDEOGRAPH-2F8B8;Lo;0;L;22B0C;;;;N;;;;; 2F8B9;CJK COMPATIBILITY IDEOGRAPH-2F8B9;Lo;0;L;633D;;;;N;;;;; 2F8BA;CJK COMPATIBILITY IDEOGRAPH-2F8BA;Lo;0;L;62FC;;;;N;;;;; 2F8BB;CJK COMPATIBILITY IDEOGRAPH-2F8BB;Lo;0;L;6368;;;;N;;;;; 2F8BC;CJK COMPATIBILITY IDEOGRAPH-2F8BC;Lo;0;L;6383;;;;N;;;;; 2F8BD;CJK COMPATIBILITY IDEOGRAPH-2F8BD;Lo;0;L;63E4;;;;N;;;;; 2F8BE;CJK COMPATIBILITY IDEOGRAPH-2F8BE;Lo;0;L;22BF1;;;;N;;;;; 2F8BF;CJK COMPATIBILITY IDEOGRAPH-2F8BF;Lo;0;L;6422;;;;N;;;;; 2F8C0;CJK COMPATIBILITY IDEOGRAPH-2F8C0;Lo;0;L;63C5;;;;N;;;;; 2F8C1;CJK COMPATIBILITY IDEOGRAPH-2F8C1;Lo;0;L;63A9;;;;N;;;;; 2F8C2;CJK COMPATIBILITY IDEOGRAPH-2F8C2;Lo;0;L;3A2E;;;;N;;;;; 2F8C3;CJK COMPATIBILITY IDEOGRAPH-2F8C3;Lo;0;L;6469;;;;N;;;;; 2F8C4;CJK COMPATIBILITY IDEOGRAPH-2F8C4;Lo;0;L;647E;;;;N;;;;; 2F8C5;CJK COMPATIBILITY IDEOGRAPH-2F8C5;Lo;0;L;649D;;;;N;;;;; 2F8C6;CJK COMPATIBILITY IDEOGRAPH-2F8C6;Lo;0;L;6477;;;;N;;;;; 2F8C7;CJK COMPATIBILITY IDEOGRAPH-2F8C7;Lo;0;L;3A6C;;;;N;;;;; 2F8C8;CJK COMPATIBILITY IDEOGRAPH-2F8C8;Lo;0;L;654F;;;;N;;;;; 2F8C9;CJK COMPATIBILITY IDEOGRAPH-2F8C9;Lo;0;L;656C;;;;N;;;;; 2F8CA;CJK COMPATIBILITY IDEOGRAPH-2F8CA;Lo;0;L;2300A;;;;N;;;;; 2F8CB;CJK COMPATIBILITY IDEOGRAPH-2F8CB;Lo;0;L;65E3;;;;N;;;;; 2F8CC;CJK COMPATIBILITY IDEOGRAPH-2F8CC;Lo;0;L;66F8;;;;N;;;;; 2F8CD;CJK COMPATIBILITY IDEOGRAPH-2F8CD;Lo;0;L;6649;;;;N;;;;; 2F8CE;CJK COMPATIBILITY IDEOGRAPH-2F8CE;Lo;0;L;3B19;;;;N;;;;; 2F8CF;CJK COMPATIBILITY IDEOGRAPH-2F8CF;Lo;0;L;6691;;;;N;;;;; 2F8D0;CJK COMPATIBILITY IDEOGRAPH-2F8D0;Lo;0;L;3B08;;;;N;;;;; 2F8D1;CJK COMPATIBILITY IDEOGRAPH-2F8D1;Lo;0;L;3AE4;;;;N;;;;; 2F8D2;CJK COMPATIBILITY IDEOGRAPH-2F8D2;Lo;0;L;5192;;;;N;;;;; 2F8D3;CJK COMPATIBILITY IDEOGRAPH-2F8D3;Lo;0;L;5195;;;;N;;;;; 2F8D4;CJK COMPATIBILITY IDEOGRAPH-2F8D4;Lo;0;L;6700;;;;N;;;;; 2F8D5;CJK COMPATIBILITY IDEOGRAPH-2F8D5;Lo;0;L;669C;;;;N;;;;; 2F8D6;CJK COMPATIBILITY IDEOGRAPH-2F8D6;Lo;0;L;80AD;;;;N;;;;; 2F8D7;CJK COMPATIBILITY IDEOGRAPH-2F8D7;Lo;0;L;43D9;;;;N;;;;; 2F8D8;CJK COMPATIBILITY IDEOGRAPH-2F8D8;Lo;0;L;6717;;;;N;;;;; 2F8D9;CJK COMPATIBILITY IDEOGRAPH-2F8D9;Lo;0;L;671B;;;;N;;;;; 2F8DA;CJK COMPATIBILITY IDEOGRAPH-2F8DA;Lo;0;L;6721;;;;N;;;;; 2F8DB;CJK COMPATIBILITY IDEOGRAPH-2F8DB;Lo;0;L;675E;;;;N;;;;; 2F8DC;CJK COMPATIBILITY IDEOGRAPH-2F8DC;Lo;0;L;6753;;;;N;;;;; 2F8DD;CJK COMPATIBILITY IDEOGRAPH-2F8DD;Lo;0;L;233C3;;;;N;;;;; 2F8DE;CJK COMPATIBILITY IDEOGRAPH-2F8DE;Lo;0;L;3B49;;;;N;;;;; 2F8DF;CJK COMPATIBILITY IDEOGRAPH-2F8DF;Lo;0;L;67FA;;;;N;;;;; 2F8E0;CJK COMPATIBILITY IDEOGRAPH-2F8E0;Lo;0;L;6785;;;;N;;;;; 2F8E1;CJK COMPATIBILITY IDEOGRAPH-2F8E1;Lo;0;L;6852;;;;N;;;;; 2F8E2;CJK COMPATIBILITY IDEOGRAPH-2F8E2;Lo;0;L;6885;;;;N;;;;; 2F8E3;CJK COMPATIBILITY IDEOGRAPH-2F8E3;Lo;0;L;2346D;;;;N;;;;; 2F8E4;CJK COMPATIBILITY IDEOGRAPH-2F8E4;Lo;0;L;688E;;;;N;;;;; 2F8E5;CJK COMPATIBILITY IDEOGRAPH-2F8E5;Lo;0;L;681F;;;;N;;;;; 2F8E6;CJK COMPATIBILITY IDEOGRAPH-2F8E6;Lo;0;L;6914;;;;N;;;;; 2F8E7;CJK COMPATIBILITY IDEOGRAPH-2F8E7;Lo;0;L;3B9D;;;;N;;;;; 2F8E8;CJK COMPATIBILITY IDEOGRAPH-2F8E8;Lo;0;L;6942;;;;N;;;;; 2F8E9;CJK COMPATIBILITY IDEOGRAPH-2F8E9;Lo;0;L;69A3;;;;N;;;;; 2F8EA;CJK COMPATIBILITY IDEOGRAPH-2F8EA;Lo;0;L;69EA;;;;N;;;;; 2F8EB;CJK COMPATIBILITY IDEOGRAPH-2F8EB;Lo;0;L;6AA8;;;;N;;;;; 2F8EC;CJK COMPATIBILITY IDEOGRAPH-2F8EC;Lo;0;L;236A3;;;;N;;;;; 2F8ED;CJK COMPATIBILITY IDEOGRAPH-2F8ED;Lo;0;L;6ADB;;;;N;;;;; 2F8EE;CJK COMPATIBILITY IDEOGRAPH-2F8EE;Lo;0;L;3C18;;;;N;;;;; 2F8EF;CJK COMPATIBILITY IDEOGRAPH-2F8EF;Lo;0;L;6B21;;;;N;;;;; 2F8F0;CJK COMPATIBILITY IDEOGRAPH-2F8F0;Lo;0;L;238A7;;;;N;;;;; 2F8F1;CJK COMPATIBILITY IDEOGRAPH-2F8F1;Lo;0;L;6B54;;;;N;;;;; 2F8F2;CJK COMPATIBILITY IDEOGRAPH-2F8F2;Lo;0;L;3C4E;;;;N;;;;; 2F8F3;CJK COMPATIBILITY IDEOGRAPH-2F8F3;Lo;0;L;6B72;;;;N;;;;; 2F8F4;CJK COMPATIBILITY IDEOGRAPH-2F8F4;Lo;0;L;6B9F;;;;N;;;;; 2F8F5;CJK COMPATIBILITY IDEOGRAPH-2F8F5;Lo;0;L;6BBA;;;;N;;;;; 2F8F6;CJK COMPATIBILITY IDEOGRAPH-2F8F6;Lo;0;L;6BBB;;;;N;;;;; 2F8F7;CJK COMPATIBILITY IDEOGRAPH-2F8F7;Lo;0;L;23A8D;;;;N;;;;; 2F8F8;CJK COMPATIBILITY IDEOGRAPH-2F8F8;Lo;0;L;21D0B;;;;N;;;;; 2F8F9;CJK COMPATIBILITY IDEOGRAPH-2F8F9;Lo;0;L;23AFA;;;;N;;;;; 2F8FA;CJK COMPATIBILITY IDEOGRAPH-2F8FA;Lo;0;L;6C4E;;;;N;;;;; 2F8FB;CJK COMPATIBILITY IDEOGRAPH-2F8FB;Lo;0;L;23CBC;;;;N;;;;; 2F8FC;CJK COMPATIBILITY IDEOGRAPH-2F8FC;Lo;0;L;6CBF;;;;N;;;;; 2F8FD;CJK COMPATIBILITY IDEOGRAPH-2F8FD;Lo;0;L;6CCD;;;;N;;;;; 2F8FE;CJK COMPATIBILITY IDEOGRAPH-2F8FE;Lo;0;L;6C67;;;;N;;;;; 2F8FF;CJK COMPATIBILITY IDEOGRAPH-2F8FF;Lo;0;L;6D16;;;;N;;;;; 2F900;CJK COMPATIBILITY IDEOGRAPH-2F900;Lo;0;L;6D3E;;;;N;;;;; 2F901;CJK COMPATIBILITY IDEOGRAPH-2F901;Lo;0;L;6D77;;;;N;;;;; 2F902;CJK COMPATIBILITY IDEOGRAPH-2F902;Lo;0;L;6D41;;;;N;;;;; 2F903;CJK COMPATIBILITY IDEOGRAPH-2F903;Lo;0;L;6D69;;;;N;;;;; 2F904;CJK COMPATIBILITY IDEOGRAPH-2F904;Lo;0;L;6D78;;;;N;;;;; 2F905;CJK COMPATIBILITY IDEOGRAPH-2F905;Lo;0;L;6D85;;;;N;;;;; 2F906;CJK COMPATIBILITY IDEOGRAPH-2F906;Lo;0;L;23D1E;;;;N;;;;; 2F907;CJK COMPATIBILITY IDEOGRAPH-2F907;Lo;0;L;6D34;;;;N;;;;; 2F908;CJK COMPATIBILITY IDEOGRAPH-2F908;Lo;0;L;6E2F;;;;N;;;;; 2F909;CJK COMPATIBILITY IDEOGRAPH-2F909;Lo;0;L;6E6E;;;;N;;;;; 2F90A;CJK COMPATIBILITY IDEOGRAPH-2F90A;Lo;0;L;3D33;;;;N;;;;; 2F90B;CJK COMPATIBILITY IDEOGRAPH-2F90B;Lo;0;L;6ECB;;;;N;;;;; 2F90C;CJK COMPATIBILITY IDEOGRAPH-2F90C;Lo;0;L;6EC7;;;;N;;;;; 2F90D;CJK COMPATIBILITY IDEOGRAPH-2F90D;Lo;0;L;23ED1;;;;N;;;;; 2F90E;CJK COMPATIBILITY IDEOGRAPH-2F90E;Lo;0;L;6DF9;;;;N;;;;; 2F90F;CJK COMPATIBILITY IDEOGRAPH-2F90F;Lo;0;L;6F6E;;;;N;;;;; 2F910;CJK COMPATIBILITY IDEOGRAPH-2F910;Lo;0;L;23F5E;;;;N;;;;; 2F911;CJK COMPATIBILITY IDEOGRAPH-2F911;Lo;0;L;23F8E;;;;N;;;;; 2F912;CJK COMPATIBILITY IDEOGRAPH-2F912;Lo;0;L;6FC6;;;;N;;;;; 2F913;CJK COMPATIBILITY IDEOGRAPH-2F913;Lo;0;L;7039;;;;N;;;;; 2F914;CJK COMPATIBILITY IDEOGRAPH-2F914;Lo;0;L;701E;;;;N;;;;; 2F915;CJK COMPATIBILITY IDEOGRAPH-2F915;Lo;0;L;701B;;;;N;;;;; 2F916;CJK COMPATIBILITY IDEOGRAPH-2F916;Lo;0;L;3D96;;;;N;;;;; 2F917;CJK COMPATIBILITY IDEOGRAPH-2F917;Lo;0;L;704A;;;;N;;;;; 2F918;CJK COMPATIBILITY IDEOGRAPH-2F918;Lo;0;L;707D;;;;N;;;;; 2F919;CJK COMPATIBILITY IDEOGRAPH-2F919;Lo;0;L;7077;;;;N;;;;; 2F91A;CJK COMPATIBILITY IDEOGRAPH-2F91A;Lo;0;L;70AD;;;;N;;;;; 2F91B;CJK COMPATIBILITY IDEOGRAPH-2F91B;Lo;0;L;20525;;;;N;;;;; 2F91C;CJK COMPATIBILITY IDEOGRAPH-2F91C;Lo;0;L;7145;;;;N;;;;; 2F91D;CJK COMPATIBILITY IDEOGRAPH-2F91D;Lo;0;L;24263;;;;N;;;;; 2F91E;CJK COMPATIBILITY IDEOGRAPH-2F91E;Lo;0;L;719C;;;;N;;;;; 2F91F;CJK COMPATIBILITY IDEOGRAPH-2F91F;Lo;0;L;43AB;;;;N;;;;; 2F920;CJK COMPATIBILITY IDEOGRAPH-2F920;Lo;0;L;7228;;;;N;;;;; 2F921;CJK COMPATIBILITY IDEOGRAPH-2F921;Lo;0;L;7235;;;;N;;;;; 2F922;CJK COMPATIBILITY IDEOGRAPH-2F922;Lo;0;L;7250;;;;N;;;;; 2F923;CJK COMPATIBILITY IDEOGRAPH-2F923;Lo;0;L;24608;;;;N;;;;; 2F924;CJK COMPATIBILITY IDEOGRAPH-2F924;Lo;0;L;7280;;;;N;;;;; 2F925;CJK COMPATIBILITY IDEOGRAPH-2F925;Lo;0;L;7295;;;;N;;;;; 2F926;CJK COMPATIBILITY IDEOGRAPH-2F926;Lo;0;L;24735;;;;N;;;;; 2F927;CJK COMPATIBILITY IDEOGRAPH-2F927;Lo;0;L;24814;;;;N;;;;; 2F928;CJK COMPATIBILITY IDEOGRAPH-2F928;Lo;0;L;737A;;;;N;;;;; 2F929;CJK COMPATIBILITY IDEOGRAPH-2F929;Lo;0;L;738B;;;;N;;;;; 2F92A;CJK COMPATIBILITY IDEOGRAPH-2F92A;Lo;0;L;3EAC;;;;N;;;;; 2F92B;CJK COMPATIBILITY IDEOGRAPH-2F92B;Lo;0;L;73A5;;;;N;;;;; 2F92C;CJK COMPATIBILITY IDEOGRAPH-2F92C;Lo;0;L;3EB8;;;;N;;;;; 2F92D;CJK COMPATIBILITY IDEOGRAPH-2F92D;Lo;0;L;3EB8;;;;N;;;;; 2F92E;CJK COMPATIBILITY IDEOGRAPH-2F92E;Lo;0;L;7447;;;;N;;;;; 2F92F;CJK COMPATIBILITY IDEOGRAPH-2F92F;Lo;0;L;745C;;;;N;;;;; 2F930;CJK COMPATIBILITY IDEOGRAPH-2F930;Lo;0;L;7471;;;;N;;;;; 2F931;CJK COMPATIBILITY IDEOGRAPH-2F931;Lo;0;L;7485;;;;N;;;;; 2F932;CJK COMPATIBILITY IDEOGRAPH-2F932;Lo;0;L;74CA;;;;N;;;;; 2F933;CJK COMPATIBILITY IDEOGRAPH-2F933;Lo;0;L;3F1B;;;;N;;;;; 2F934;CJK COMPATIBILITY IDEOGRAPH-2F934;Lo;0;L;7524;;;;N;;;;; 2F935;CJK COMPATIBILITY IDEOGRAPH-2F935;Lo;0;L;24C36;;;;N;;;;; 2F936;CJK COMPATIBILITY IDEOGRAPH-2F936;Lo;0;L;753E;;;;N;;;;; 2F937;CJK COMPATIBILITY IDEOGRAPH-2F937;Lo;0;L;24C92;;;;N;;;;; 2F938;CJK COMPATIBILITY IDEOGRAPH-2F938;Lo;0;L;7570;;;;N;;;;; 2F939;CJK COMPATIBILITY IDEOGRAPH-2F939;Lo;0;L;2219F;;;;N;;;;; 2F93A;CJK COMPATIBILITY IDEOGRAPH-2F93A;Lo;0;L;7610;;;;N;;;;; 2F93B;CJK COMPATIBILITY IDEOGRAPH-2F93B;Lo;0;L;24FA1;;;;N;;;;; 2F93C;CJK COMPATIBILITY IDEOGRAPH-2F93C;Lo;0;L;24FB8;;;;N;;;;; 2F93D;CJK COMPATIBILITY IDEOGRAPH-2F93D;Lo;0;L;25044;;;;N;;;;; 2F93E;CJK COMPATIBILITY IDEOGRAPH-2F93E;Lo;0;L;3FFC;;;;N;;;;; 2F93F;CJK COMPATIBILITY IDEOGRAPH-2F93F;Lo;0;L;4008;;;;N;;;;; 2F940;CJK COMPATIBILITY IDEOGRAPH-2F940;Lo;0;L;76F4;;;;N;;;;; 2F941;CJK COMPATIBILITY IDEOGRAPH-2F941;Lo;0;L;250F3;;;;N;;;;; 2F942;CJK COMPATIBILITY IDEOGRAPH-2F942;Lo;0;L;250F2;;;;N;;;;; 2F943;CJK COMPATIBILITY IDEOGRAPH-2F943;Lo;0;L;25119;;;;N;;;;; 2F944;CJK COMPATIBILITY IDEOGRAPH-2F944;Lo;0;L;25133;;;;N;;;;; 2F945;CJK COMPATIBILITY IDEOGRAPH-2F945;Lo;0;L;771E;;;;N;;;;; 2F946;CJK COMPATIBILITY IDEOGRAPH-2F946;Lo;0;L;771F;;;;N;;;;; 2F947;CJK COMPATIBILITY IDEOGRAPH-2F947;Lo;0;L;771F;;;;N;;;;; 2F948;CJK COMPATIBILITY IDEOGRAPH-2F948;Lo;0;L;774A;;;;N;;;;; 2F949;CJK COMPATIBILITY IDEOGRAPH-2F949;Lo;0;L;4039;;;;N;;;;; 2F94A;CJK COMPATIBILITY IDEOGRAPH-2F94A;Lo;0;L;778B;;;;N;;;;; 2F94B;CJK COMPATIBILITY IDEOGRAPH-2F94B;Lo;0;L;4046;;;;N;;;;; 2F94C;CJK COMPATIBILITY IDEOGRAPH-2F94C;Lo;0;L;4096;;;;N;;;;; 2F94D;CJK COMPATIBILITY IDEOGRAPH-2F94D;Lo;0;L;2541D;;;;N;;;;; 2F94E;CJK COMPATIBILITY IDEOGRAPH-2F94E;Lo;0;L;784E;;;;N;;;;; 2F94F;CJK COMPATIBILITY IDEOGRAPH-2F94F;Lo;0;L;788C;;;;N;;;;; 2F950;CJK COMPATIBILITY IDEOGRAPH-2F950;Lo;0;L;78CC;;;;N;;;;; 2F951;CJK COMPATIBILITY IDEOGRAPH-2F951;Lo;0;L;40E3;;;;N;;;;; 2F952;CJK COMPATIBILITY IDEOGRAPH-2F952;Lo;0;L;25626;;;;N;;;;; 2F953;CJK COMPATIBILITY IDEOGRAPH-2F953;Lo;0;L;7956;;;;N;;;;; 2F954;CJK COMPATIBILITY IDEOGRAPH-2F954;Lo;0;L;2569A;;;;N;;;;; 2F955;CJK COMPATIBILITY IDEOGRAPH-2F955;Lo;0;L;256C5;;;;N;;;;; 2F956;CJK COMPATIBILITY IDEOGRAPH-2F956;Lo;0;L;798F;;;;N;;;;; 2F957;CJK COMPATIBILITY IDEOGRAPH-2F957;Lo;0;L;79EB;;;;N;;;;; 2F958;CJK COMPATIBILITY IDEOGRAPH-2F958;Lo;0;L;412F;;;;N;;;;; 2F959;CJK COMPATIBILITY IDEOGRAPH-2F959;Lo;0;L;7A40;;;;N;;;;; 2F95A;CJK COMPATIBILITY IDEOGRAPH-2F95A;Lo;0;L;7A4A;;;;N;;;;; 2F95B;CJK COMPATIBILITY IDEOGRAPH-2F95B;Lo;0;L;7A4F;;;;N;;;;; 2F95C;CJK COMPATIBILITY IDEOGRAPH-2F95C;Lo;0;L;2597C;;;;N;;;;; 2F95D;CJK COMPATIBILITY IDEOGRAPH-2F95D;Lo;0;L;25AA7;;;;N;;;;; 2F95E;CJK COMPATIBILITY IDEOGRAPH-2F95E;Lo;0;L;25AA7;;;;N;;;;; 2F95F;CJK COMPATIBILITY IDEOGRAPH-2F95F;Lo;0;L;7AAE;;;;N;;;;; 2F960;CJK COMPATIBILITY IDEOGRAPH-2F960;Lo;0;L;4202;;;;N;;;;; 2F961;CJK COMPATIBILITY IDEOGRAPH-2F961;Lo;0;L;25BAB;;;;N;;;;; 2F962;CJK COMPATIBILITY IDEOGRAPH-2F962;Lo;0;L;7BC6;;;;N;;;;; 2F963;CJK COMPATIBILITY IDEOGRAPH-2F963;Lo;0;L;7BC9;;;;N;;;;; 2F964;CJK COMPATIBILITY IDEOGRAPH-2F964;Lo;0;L;4227;;;;N;;;;; 2F965;CJK COMPATIBILITY IDEOGRAPH-2F965;Lo;0;L;25C80;;;;N;;;;; 2F966;CJK COMPATIBILITY IDEOGRAPH-2F966;Lo;0;L;7CD2;;;;N;;;;; 2F967;CJK COMPATIBILITY IDEOGRAPH-2F967;Lo;0;L;42A0;;;;N;;;;; 2F968;CJK COMPATIBILITY IDEOGRAPH-2F968;Lo;0;L;7CE8;;;;N;;;;; 2F969;CJK COMPATIBILITY IDEOGRAPH-2F969;Lo;0;L;7CE3;;;;N;;;;; 2F96A;CJK COMPATIBILITY IDEOGRAPH-2F96A;Lo;0;L;7D00;;;;N;;;;; 2F96B;CJK COMPATIBILITY IDEOGRAPH-2F96B;Lo;0;L;25F86;;;;N;;;;; 2F96C;CJK COMPATIBILITY IDEOGRAPH-2F96C;Lo;0;L;7D63;;;;N;;;;; 2F96D;CJK COMPATIBILITY IDEOGRAPH-2F96D;Lo;0;L;4301;;;;N;;;;; 2F96E;CJK COMPATIBILITY IDEOGRAPH-2F96E;Lo;0;L;7DC7;;;;N;;;;; 2F96F;CJK COMPATIBILITY IDEOGRAPH-2F96F;Lo;0;L;7E02;;;;N;;;;; 2F970;CJK COMPATIBILITY IDEOGRAPH-2F970;Lo;0;L;7E45;;;;N;;;;; 2F971;CJK COMPATIBILITY IDEOGRAPH-2F971;Lo;0;L;4334;;;;N;;;;; 2F972;CJK COMPATIBILITY IDEOGRAPH-2F972;Lo;0;L;26228;;;;N;;;;; 2F973;CJK COMPATIBILITY IDEOGRAPH-2F973;Lo;0;L;26247;;;;N;;;;; 2F974;CJK COMPATIBILITY IDEOGRAPH-2F974;Lo;0;L;4359;;;;N;;;;; 2F975;CJK COMPATIBILITY IDEOGRAPH-2F975;Lo;0;L;262D9;;;;N;;;;; 2F976;CJK COMPATIBILITY IDEOGRAPH-2F976;Lo;0;L;7F7A;;;;N;;;;; 2F977;CJK COMPATIBILITY IDEOGRAPH-2F977;Lo;0;L;2633E;;;;N;;;;; 2F978;CJK COMPATIBILITY IDEOGRAPH-2F978;Lo;0;L;7F95;;;;N;;;;; 2F979;CJK COMPATIBILITY IDEOGRAPH-2F979;Lo;0;L;7FFA;;;;N;;;;; 2F97A;CJK COMPATIBILITY IDEOGRAPH-2F97A;Lo;0;L;8005;;;;N;;;;; 2F97B;CJK COMPATIBILITY IDEOGRAPH-2F97B;Lo;0;L;264DA;;;;N;;;;; 2F97C;CJK COMPATIBILITY IDEOGRAPH-2F97C;Lo;0;L;26523;;;;N;;;;; 2F97D;CJK COMPATIBILITY IDEOGRAPH-2F97D;Lo;0;L;8060;;;;N;;;;; 2F97E;CJK COMPATIBILITY IDEOGRAPH-2F97E;Lo;0;L;265A8;;;;N;;;;; 2F97F;CJK COMPATIBILITY IDEOGRAPH-2F97F;Lo;0;L;8070;;;;N;;;;; 2F980;CJK COMPATIBILITY IDEOGRAPH-2F980;Lo;0;L;2335F;;;;N;;;;; 2F981;CJK COMPATIBILITY IDEOGRAPH-2F981;Lo;0;L;43D5;;;;N;;;;; 2F982;CJK COMPATIBILITY IDEOGRAPH-2F982;Lo;0;L;80B2;;;;N;;;;; 2F983;CJK COMPATIBILITY IDEOGRAPH-2F983;Lo;0;L;8103;;;;N;;;;; 2F984;CJK COMPATIBILITY IDEOGRAPH-2F984;Lo;0;L;440B;;;;N;;;;; 2F985;CJK COMPATIBILITY IDEOGRAPH-2F985;Lo;0;L;813E;;;;N;;;;; 2F986;CJK COMPATIBILITY IDEOGRAPH-2F986;Lo;0;L;5AB5;;;;N;;;;; 2F987;CJK COMPATIBILITY IDEOGRAPH-2F987;Lo;0;L;267A7;;;;N;;;;; 2F988;CJK COMPATIBILITY IDEOGRAPH-2F988;Lo;0;L;267B5;;;;N;;;;; 2F989;CJK COMPATIBILITY IDEOGRAPH-2F989;Lo;0;L;23393;;;;N;;;;; 2F98A;CJK COMPATIBILITY IDEOGRAPH-2F98A;Lo;0;L;2339C;;;;N;;;;; 2F98B;CJK COMPATIBILITY IDEOGRAPH-2F98B;Lo;0;L;8201;;;;N;;;;; 2F98C;CJK COMPATIBILITY IDEOGRAPH-2F98C;Lo;0;L;8204;;;;N;;;;; 2F98D;CJK COMPATIBILITY IDEOGRAPH-2F98D;Lo;0;L;8F9E;;;;N;;;;; 2F98E;CJK COMPATIBILITY IDEOGRAPH-2F98E;Lo;0;L;446B;;;;N;;;;; 2F98F;CJK COMPATIBILITY IDEOGRAPH-2F98F;Lo;0;L;8291;;;;N;;;;; 2F990;CJK COMPATIBILITY IDEOGRAPH-2F990;Lo;0;L;828B;;;;N;;;;; 2F991;CJK COMPATIBILITY IDEOGRAPH-2F991;Lo;0;L;829D;;;;N;;;;; 2F992;CJK COMPATIBILITY IDEOGRAPH-2F992;Lo;0;L;52B3;;;;N;;;;; 2F993;CJK COMPATIBILITY IDEOGRAPH-2F993;Lo;0;L;82B1;;;;N;;;;; 2F994;CJK COMPATIBILITY IDEOGRAPH-2F994;Lo;0;L;82B3;;;;N;;;;; 2F995;CJK COMPATIBILITY IDEOGRAPH-2F995;Lo;0;L;82BD;;;;N;;;;; 2F996;CJK COMPATIBILITY IDEOGRAPH-2F996;Lo;0;L;82E6;;;;N;;;;; 2F997;CJK COMPATIBILITY IDEOGRAPH-2F997;Lo;0;L;26B3C;;;;N;;;;; 2F998;CJK COMPATIBILITY IDEOGRAPH-2F998;Lo;0;L;82E5;;;;N;;;;; 2F999;CJK COMPATIBILITY IDEOGRAPH-2F999;Lo;0;L;831D;;;;N;;;;; 2F99A;CJK COMPATIBILITY IDEOGRAPH-2F99A;Lo;0;L;8363;;;;N;;;;; 2F99B;CJK COMPATIBILITY IDEOGRAPH-2F99B;Lo;0;L;83AD;;;;N;;;;; 2F99C;CJK COMPATIBILITY IDEOGRAPH-2F99C;Lo;0;L;8323;;;;N;;;;; 2F99D;CJK COMPATIBILITY IDEOGRAPH-2F99D;Lo;0;L;83BD;;;;N;;;;; 2F99E;CJK COMPATIBILITY IDEOGRAPH-2F99E;Lo;0;L;83E7;;;;N;;;;; 2F99F;CJK COMPATIBILITY IDEOGRAPH-2F99F;Lo;0;L;8457;;;;N;;;;; 2F9A0;CJK COMPATIBILITY IDEOGRAPH-2F9A0;Lo;0;L;8353;;;;N;;;;; 2F9A1;CJK COMPATIBILITY IDEOGRAPH-2F9A1;Lo;0;L;83CA;;;;N;;;;; 2F9A2;CJK COMPATIBILITY IDEOGRAPH-2F9A2;Lo;0;L;83CC;;;;N;;;;; 2F9A3;CJK COMPATIBILITY IDEOGRAPH-2F9A3;Lo;0;L;83DC;;;;N;;;;; 2F9A4;CJK COMPATIBILITY IDEOGRAPH-2F9A4;Lo;0;L;26C36;;;;N;;;;; 2F9A5;CJK COMPATIBILITY IDEOGRAPH-2F9A5;Lo;0;L;26D6B;;;;N;;;;; 2F9A6;CJK COMPATIBILITY IDEOGRAPH-2F9A6;Lo;0;L;26CD5;;;;N;;;;; 2F9A7;CJK COMPATIBILITY IDEOGRAPH-2F9A7;Lo;0;L;452B;;;;N;;;;; 2F9A8;CJK COMPATIBILITY IDEOGRAPH-2F9A8;Lo;0;L;84F1;;;;N;;;;; 2F9A9;CJK COMPATIBILITY IDEOGRAPH-2F9A9;Lo;0;L;84F3;;;;N;;;;; 2F9AA;CJK COMPATIBILITY IDEOGRAPH-2F9AA;Lo;0;L;8516;;;;N;;;;; 2F9AB;CJK COMPATIBILITY IDEOGRAPH-2F9AB;Lo;0;L;273CA;;;;N;;;;; 2F9AC;CJK COMPATIBILITY IDEOGRAPH-2F9AC;Lo;0;L;8564;;;;N;;;;; 2F9AD;CJK COMPATIBILITY IDEOGRAPH-2F9AD;Lo;0;L;26F2C;;;;N;;;;; 2F9AE;CJK COMPATIBILITY IDEOGRAPH-2F9AE;Lo;0;L;455D;;;;N;;;;; 2F9AF;CJK COMPATIBILITY IDEOGRAPH-2F9AF;Lo;0;L;4561;;;;N;;;;; 2F9B0;CJK COMPATIBILITY IDEOGRAPH-2F9B0;Lo;0;L;26FB1;;;;N;;;;; 2F9B1;CJK COMPATIBILITY IDEOGRAPH-2F9B1;Lo;0;L;270D2;;;;N;;;;; 2F9B2;CJK COMPATIBILITY IDEOGRAPH-2F9B2;Lo;0;L;456B;;;;N;;;;; 2F9B3;CJK COMPATIBILITY IDEOGRAPH-2F9B3;Lo;0;L;8650;;;;N;;;;; 2F9B4;CJK COMPATIBILITY IDEOGRAPH-2F9B4;Lo;0;L;865C;;;;N;;;;; 2F9B5;CJK COMPATIBILITY IDEOGRAPH-2F9B5;Lo;0;L;8667;;;;N;;;;; 2F9B6;CJK COMPATIBILITY IDEOGRAPH-2F9B6;Lo;0;L;8669;;;;N;;;;; 2F9B7;CJK COMPATIBILITY IDEOGRAPH-2F9B7;Lo;0;L;86A9;;;;N;;;;; 2F9B8;CJK COMPATIBILITY IDEOGRAPH-2F9B8;Lo;0;L;8688;;;;N;;;;; 2F9B9;CJK COMPATIBILITY IDEOGRAPH-2F9B9;Lo;0;L;870E;;;;N;;;;; 2F9BA;CJK COMPATIBILITY IDEOGRAPH-2F9BA;Lo;0;L;86E2;;;;N;;;;; 2F9BB;CJK COMPATIBILITY IDEOGRAPH-2F9BB;Lo;0;L;8779;;;;N;;;;; 2F9BC;CJK COMPATIBILITY IDEOGRAPH-2F9BC;Lo;0;L;8728;;;;N;;;;; 2F9BD;CJK COMPATIBILITY IDEOGRAPH-2F9BD;Lo;0;L;876B;;;;N;;;;; 2F9BE;CJK COMPATIBILITY IDEOGRAPH-2F9BE;Lo;0;L;8786;;;;N;;;;; 2F9BF;CJK COMPATIBILITY IDEOGRAPH-2F9BF;Lo;0;L;4D57;;;;N;;;;; 2F9C0;CJK COMPATIBILITY IDEOGRAPH-2F9C0;Lo;0;L;87E1;;;;N;;;;; 2F9C1;CJK COMPATIBILITY IDEOGRAPH-2F9C1;Lo;0;L;8801;;;;N;;;;; 2F9C2;CJK COMPATIBILITY IDEOGRAPH-2F9C2;Lo;0;L;45F9;;;;N;;;;; 2F9C3;CJK COMPATIBILITY IDEOGRAPH-2F9C3;Lo;0;L;8860;;;;N;;;;; 2F9C4;CJK COMPATIBILITY IDEOGRAPH-2F9C4;Lo;0;L;8863;;;;N;;;;; 2F9C5;CJK COMPATIBILITY IDEOGRAPH-2F9C5;Lo;0;L;27667;;;;N;;;;; 2F9C6;CJK COMPATIBILITY IDEOGRAPH-2F9C6;Lo;0;L;88D7;;;;N;;;;; 2F9C7;CJK COMPATIBILITY IDEOGRAPH-2F9C7;Lo;0;L;88DE;;;;N;;;;; 2F9C8;CJK COMPATIBILITY IDEOGRAPH-2F9C8;Lo;0;L;4635;;;;N;;;;; 2F9C9;CJK COMPATIBILITY IDEOGRAPH-2F9C9;Lo;0;L;88FA;;;;N;;;;; 2F9CA;CJK COMPATIBILITY IDEOGRAPH-2F9CA;Lo;0;L;34BB;;;;N;;;;; 2F9CB;CJK COMPATIBILITY IDEOGRAPH-2F9CB;Lo;0;L;278AE;;;;N;;;;; 2F9CC;CJK COMPATIBILITY IDEOGRAPH-2F9CC;Lo;0;L;27966;;;;N;;;;; 2F9CD;CJK COMPATIBILITY IDEOGRAPH-2F9CD;Lo;0;L;46BE;;;;N;;;;; 2F9CE;CJK COMPATIBILITY IDEOGRAPH-2F9CE;Lo;0;L;46C7;;;;N;;;;; 2F9CF;CJK COMPATIBILITY IDEOGRAPH-2F9CF;Lo;0;L;8AA0;;;;N;;;;; 2F9D0;CJK COMPATIBILITY IDEOGRAPH-2F9D0;Lo;0;L;8AED;;;;N;;;;; 2F9D1;CJK COMPATIBILITY IDEOGRAPH-2F9D1;Lo;0;L;8B8A;;;;N;;;;; 2F9D2;CJK COMPATIBILITY IDEOGRAPH-2F9D2;Lo;0;L;8C55;;;;N;;;;; 2F9D3;CJK COMPATIBILITY IDEOGRAPH-2F9D3;Lo;0;L;27CA8;;;;N;;;;; 2F9D4;CJK COMPATIBILITY IDEOGRAPH-2F9D4;Lo;0;L;8CAB;;;;N;;;;; 2F9D5;CJK COMPATIBILITY IDEOGRAPH-2F9D5;Lo;0;L;8CC1;;;;N;;;;; 2F9D6;CJK COMPATIBILITY IDEOGRAPH-2F9D6;Lo;0;L;8D1B;;;;N;;;;; 2F9D7;CJK COMPATIBILITY IDEOGRAPH-2F9D7;Lo;0;L;8D77;;;;N;;;;; 2F9D8;CJK COMPATIBILITY IDEOGRAPH-2F9D8;Lo;0;L;27F2F;;;;N;;;;; 2F9D9;CJK COMPATIBILITY IDEOGRAPH-2F9D9;Lo;0;L;20804;;;;N;;;;; 2F9DA;CJK COMPATIBILITY IDEOGRAPH-2F9DA;Lo;0;L;8DCB;;;;N;;;;; 2F9DB;CJK COMPATIBILITY IDEOGRAPH-2F9DB;Lo;0;L;8DBC;;;;N;;;;; 2F9DC;CJK COMPATIBILITY IDEOGRAPH-2F9DC;Lo;0;L;8DF0;;;;N;;;;; 2F9DD;CJK COMPATIBILITY IDEOGRAPH-2F9DD;Lo;0;L;208DE;;;;N;;;;; 2F9DE;CJK COMPATIBILITY IDEOGRAPH-2F9DE;Lo;0;L;8ED4;;;;N;;;;; 2F9DF;CJK COMPATIBILITY IDEOGRAPH-2F9DF;Lo;0;L;8F38;;;;N;;;;; 2F9E0;CJK COMPATIBILITY IDEOGRAPH-2F9E0;Lo;0;L;285D2;;;;N;;;;; 2F9E1;CJK COMPATIBILITY IDEOGRAPH-2F9E1;Lo;0;L;285ED;;;;N;;;;; 2F9E2;CJK COMPATIBILITY IDEOGRAPH-2F9E2;Lo;0;L;9094;;;;N;;;;; 2F9E3;CJK COMPATIBILITY IDEOGRAPH-2F9E3;Lo;0;L;90F1;;;;N;;;;; 2F9E4;CJK COMPATIBILITY IDEOGRAPH-2F9E4;Lo;0;L;9111;;;;N;;;;; 2F9E5;CJK COMPATIBILITY IDEOGRAPH-2F9E5;Lo;0;L;2872E;;;;N;;;;; 2F9E6;CJK COMPATIBILITY IDEOGRAPH-2F9E6;Lo;0;L;911B;;;;N;;;;; 2F9E7;CJK COMPATIBILITY IDEOGRAPH-2F9E7;Lo;0;L;9238;;;;N;;;;; 2F9E8;CJK COMPATIBILITY IDEOGRAPH-2F9E8;Lo;0;L;92D7;;;;N;;;;; 2F9E9;CJK COMPATIBILITY IDEOGRAPH-2F9E9;Lo;0;L;92D8;;;;N;;;;; 2F9EA;CJK COMPATIBILITY IDEOGRAPH-2F9EA;Lo;0;L;927C;;;;N;;;;; 2F9EB;CJK COMPATIBILITY IDEOGRAPH-2F9EB;Lo;0;L;93F9;;;;N;;;;; 2F9EC;CJK COMPATIBILITY IDEOGRAPH-2F9EC;Lo;0;L;9415;;;;N;;;;; 2F9ED;CJK COMPATIBILITY IDEOGRAPH-2F9ED;Lo;0;L;28BFA;;;;N;;;;; 2F9EE;CJK COMPATIBILITY IDEOGRAPH-2F9EE;Lo;0;L;958B;;;;N;;;;; 2F9EF;CJK COMPATIBILITY IDEOGRAPH-2F9EF;Lo;0;L;4995;;;;N;;;;; 2F9F0;CJK COMPATIBILITY IDEOGRAPH-2F9F0;Lo;0;L;95B7;;;;N;;;;; 2F9F1;CJK COMPATIBILITY IDEOGRAPH-2F9F1;Lo;0;L;28D77;;;;N;;;;; 2F9F2;CJK COMPATIBILITY IDEOGRAPH-2F9F2;Lo;0;L;49E6;;;;N;;;;; 2F9F3;CJK COMPATIBILITY IDEOGRAPH-2F9F3;Lo;0;L;96C3;;;;N;;;;; 2F9F4;CJK COMPATIBILITY IDEOGRAPH-2F9F4;Lo;0;L;5DB2;;;;N;;;;; 2F9F5;CJK COMPATIBILITY IDEOGRAPH-2F9F5;Lo;0;L;9723;;;;N;;;;; 2F9F6;CJK COMPATIBILITY IDEOGRAPH-2F9F6;Lo;0;L;29145;;;;N;;;;; 2F9F7;CJK COMPATIBILITY IDEOGRAPH-2F9F7;Lo;0;L;2921A;;;;N;;;;; 2F9F8;CJK COMPATIBILITY IDEOGRAPH-2F9F8;Lo;0;L;4A6E;;;;N;;;;; 2F9F9;CJK COMPATIBILITY IDEOGRAPH-2F9F9;Lo;0;L;4A76;;;;N;;;;; 2F9FA;CJK COMPATIBILITY IDEOGRAPH-2F9FA;Lo;0;L;97E0;;;;N;;;;; 2F9FB;CJK COMPATIBILITY IDEOGRAPH-2F9FB;Lo;0;L;2940A;;;;N;;;;; 2F9FC;CJK COMPATIBILITY IDEOGRAPH-2F9FC;Lo;0;L;4AB2;;;;N;;;;; 2F9FD;CJK COMPATIBILITY IDEOGRAPH-2F9FD;Lo;0;L;29496;;;;N;;;;; 2F9FE;CJK COMPATIBILITY IDEOGRAPH-2F9FE;Lo;0;L;980B;;;;N;;;;; 2F9FF;CJK COMPATIBILITY IDEOGRAPH-2F9FF;Lo;0;L;980B;;;;N;;;;; 2FA00;CJK COMPATIBILITY IDEOGRAPH-2FA00;Lo;0;L;9829;;;;N;;;;; 2FA01;CJK COMPATIBILITY IDEOGRAPH-2FA01;Lo;0;L;295B6;;;;N;;;;; 2FA02;CJK COMPATIBILITY IDEOGRAPH-2FA02;Lo;0;L;98E2;;;;N;;;;; 2FA03;CJK COMPATIBILITY IDEOGRAPH-2FA03;Lo;0;L;4B33;;;;N;;;;; 2FA04;CJK COMPATIBILITY IDEOGRAPH-2FA04;Lo;0;L;9929;;;;N;;;;; 2FA05;CJK COMPATIBILITY IDEOGRAPH-2FA05;Lo;0;L;99A7;;;;N;;;;; 2FA06;CJK COMPATIBILITY IDEOGRAPH-2FA06;Lo;0;L;99C2;;;;N;;;;; 2FA07;CJK COMPATIBILITY IDEOGRAPH-2FA07;Lo;0;L;99FE;;;;N;;;;; 2FA08;CJK COMPATIBILITY IDEOGRAPH-2FA08;Lo;0;L;4BCE;;;;N;;;;; 2FA09;CJK COMPATIBILITY IDEOGRAPH-2FA09;Lo;0;L;29B30;;;;N;;;;; 2FA0A;CJK COMPATIBILITY IDEOGRAPH-2FA0A;Lo;0;L;9B12;;;;N;;;;; 2FA0B;CJK COMPATIBILITY IDEOGRAPH-2FA0B;Lo;0;L;9C40;;;;N;;;;; 2FA0C;CJK COMPATIBILITY IDEOGRAPH-2FA0C;Lo;0;L;9CFD;;;;N;;;;; 2FA0D;CJK COMPATIBILITY IDEOGRAPH-2FA0D;Lo;0;L;4CCE;;;;N;;;;; 2FA0E;CJK COMPATIBILITY IDEOGRAPH-2FA0E;Lo;0;L;4CED;;;;N;;;;; 2FA0F;CJK COMPATIBILITY IDEOGRAPH-2FA0F;Lo;0;L;9D67;;;;N;;;;; 2FA10;CJK COMPATIBILITY IDEOGRAPH-2FA10;Lo;0;L;2A0CE;;;;N;;;;; 2FA11;CJK COMPATIBILITY IDEOGRAPH-2FA11;Lo;0;L;4CF8;;;;N;;;;; 2FA12;CJK COMPATIBILITY IDEOGRAPH-2FA12;Lo;0;L;2A105;;;;N;;;;; 2FA13;CJK COMPATIBILITY IDEOGRAPH-2FA13;Lo;0;L;2A20E;;;;N;;;;; 2FA14;CJK COMPATIBILITY IDEOGRAPH-2FA14;Lo;0;L;2A291;;;;N;;;;; 2FA15;CJK COMPATIBILITY IDEOGRAPH-2FA15;Lo;0;L;9EBB;;;;N;;;;; 2FA16;CJK COMPATIBILITY IDEOGRAPH-2FA16;Lo;0;L;4D56;;;;N;;;;; 2FA17;CJK COMPATIBILITY IDEOGRAPH-2FA17;Lo;0;L;9EF9;;;;N;;;;; 2FA18;CJK COMPATIBILITY IDEOGRAPH-2FA18;Lo;0;L;9EFE;;;;N;;;;; 2FA19;CJK COMPATIBILITY IDEOGRAPH-2FA19;Lo;0;L;9F05;;;;N;;;;; 2FA1A;CJK COMPATIBILITY IDEOGRAPH-2FA1A;Lo;0;L;9F0F;;;;N;;;;; 2FA1B;CJK COMPATIBILITY IDEOGRAPH-2FA1B;Lo;0;L;9F16;;;;N;;;;; 2FA1C;CJK COMPATIBILITY IDEOGRAPH-2FA1C;Lo;0;L;9F3B;;;;N;;;;; 2FA1D;CJK COMPATIBILITY IDEOGRAPH-2FA1D;Lo;0;L;2A600;;;;N;;;;; E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;; E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;; E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;; E0022;TAG QUOTATION MARK;Cf;0;BN;;;;;N;;;;; E0023;TAG NUMBER SIGN;Cf;0;BN;;;;;N;;;;; E0024;TAG DOLLAR SIGN;Cf;0;BN;;;;;N;;;;; E0025;TAG PERCENT SIGN;Cf;0;BN;;;;;N;;;;; E0026;TAG AMPERSAND;Cf;0;BN;;;;;N;;;;; E0027;TAG APOSTROPHE;Cf;0;BN;;;;;N;;;;; E0028;TAG LEFT PARENTHESIS;Cf;0;BN;;;;;N;;;;; E0029;TAG RIGHT PARENTHESIS;Cf;0;BN;;;;;N;;;;; E002A;TAG ASTERISK;Cf;0;BN;;;;;N;;;;; E002B;TAG PLUS SIGN;Cf;0;BN;;;;;N;;;;; E002C;TAG COMMA;Cf;0;BN;;;;;N;;;;; E002D;TAG HYPHEN-MINUS;Cf;0;BN;;;;;N;;;;; E002E;TAG FULL STOP;Cf;0;BN;;;;;N;;;;; E002F;TAG SOLIDUS;Cf;0;BN;;;;;N;;;;; E0030;TAG DIGIT ZERO;Cf;0;BN;;;;;N;;;;; E0031;TAG DIGIT ONE;Cf;0;BN;;;;;N;;;;; E0032;TAG DIGIT TWO;Cf;0;BN;;;;;N;;;;; E0033;TAG DIGIT THREE;Cf;0;BN;;;;;N;;;;; E0034;TAG DIGIT FOUR;Cf;0;BN;;;;;N;;;;; E0035;TAG DIGIT FIVE;Cf;0;BN;;;;;N;;;;; E0036;TAG DIGIT SIX;Cf;0;BN;;;;;N;;;;; E0037;TAG DIGIT SEVEN;Cf;0;BN;;;;;N;;;;; E0038;TAG DIGIT EIGHT;Cf;0;BN;;;;;N;;;;; E0039;TAG DIGIT NINE;Cf;0;BN;;;;;N;;;;; E003A;TAG COLON;Cf;0;BN;;;;;N;;;;; E003B;TAG SEMICOLON;Cf;0;BN;;;;;N;;;;; E003C;TAG LESS-THAN SIGN;Cf;0;BN;;;;;N;;;;; E003D;TAG EQUALS SIGN;Cf;0;BN;;;;;N;;;;; E003E;TAG GREATER-THAN SIGN;Cf;0;BN;;;;;N;;;;; E003F;TAG QUESTION MARK;Cf;0;BN;;;;;N;;;;; E0040;TAG COMMERCIAL AT;Cf;0;BN;;;;;N;;;;; E0041;TAG LATIN CAPITAL LETTER A;Cf;0;BN;;;;;N;;;;; E0042;TAG LATIN CAPITAL LETTER B;Cf;0;BN;;;;;N;;;;; E0043;TAG LATIN CAPITAL LETTER C;Cf;0;BN;;;;;N;;;;; E0044;TAG LATIN CAPITAL LETTER D;Cf;0;BN;;;;;N;;;;; E0045;TAG LATIN CAPITAL LETTER E;Cf;0;BN;;;;;N;;;;; E0046;TAG LATIN CAPITAL LETTER F;Cf;0;BN;;;;;N;;;;; E0047;TAG LATIN CAPITAL LETTER G;Cf;0;BN;;;;;N;;;;; E0048;TAG LATIN CAPITAL LETTER H;Cf;0;BN;;;;;N;;;;; E0049;TAG LATIN CAPITAL LETTER I;Cf;0;BN;;;;;N;;;;; E004A;TAG LATIN CAPITAL LETTER J;Cf;0;BN;;;;;N;;;;; E004B;TAG LATIN CAPITAL LETTER K;Cf;0;BN;;;;;N;;;;; E004C;TAG LATIN CAPITAL LETTER L;Cf;0;BN;;;;;N;;;;; E004D;TAG LATIN CAPITAL LETTER M;Cf;0;BN;;;;;N;;;;; E004E;TAG LATIN CAPITAL LETTER N;Cf;0;BN;;;;;N;;;;; E004F;TAG LATIN CAPITAL LETTER O;Cf;0;BN;;;;;N;;;;; E0050;TAG LATIN CAPITAL LETTER P;Cf;0;BN;;;;;N;;;;; E0051;TAG LATIN CAPITAL LETTER Q;Cf;0;BN;;;;;N;;;;; E0052;TAG LATIN CAPITAL LETTER R;Cf;0;BN;;;;;N;;;;; E0053;TAG LATIN CAPITAL LETTER S;Cf;0;BN;;;;;N;;;;; E0054;TAG LATIN CAPITAL LETTER T;Cf;0;BN;;;;;N;;;;; E0055;TAG LATIN CAPITAL LETTER U;Cf;0;BN;;;;;N;;;;; E0056;TAG LATIN CAPITAL LETTER V;Cf;0;BN;;;;;N;;;;; E0057;TAG LATIN CAPITAL LETTER W;Cf;0;BN;;;;;N;;;;; E0058;TAG LATIN CAPITAL LETTER X;Cf;0;BN;;;;;N;;;;; E0059;TAG LATIN CAPITAL LETTER Y;Cf;0;BN;;;;;N;;;;; E005A;TAG LATIN CAPITAL LETTER Z;Cf;0;BN;;;;;N;;;;; E005B;TAG LEFT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;; E005C;TAG REVERSE SOLIDUS;Cf;0;BN;;;;;N;;;;; E005D;TAG RIGHT SQUARE BRACKET;Cf;0;BN;;;;;N;;;;; E005E;TAG CIRCUMFLEX ACCENT;Cf;0;BN;;;;;N;;;;; E005F;TAG LOW LINE;Cf;0;BN;;;;;N;;;;; E0060;TAG GRAVE ACCENT;Cf;0;BN;;;;;N;;;;; E0061;TAG LATIN SMALL LETTER A;Cf;0;BN;;;;;N;;;;; E0062;TAG LATIN SMALL LETTER B;Cf;0;BN;;;;;N;;;;; E0063;TAG LATIN SMALL LETTER C;Cf;0;BN;;;;;N;;;;; E0064;TAG LATIN SMALL LETTER D;Cf;0;BN;;;;;N;;;;; E0065;TAG LATIN SMALL LETTER E;Cf;0;BN;;;;;N;;;;; E0066;TAG LATIN SMALL LETTER F;Cf;0;BN;;;;;N;;;;; E0067;TAG LATIN SMALL LETTER G;Cf;0;BN;;;;;N;;;;; E0068;TAG LATIN SMALL LETTER H;Cf;0;BN;;;;;N;;;;; E0069;TAG LATIN SMALL LETTER I;Cf;0;BN;;;;;N;;;;; E006A;TAG LATIN SMALL LETTER J;Cf;0;BN;;;;;N;;;;; E006B;TAG LATIN SMALL LETTER K;Cf;0;BN;;;;;N;;;;; E006C;TAG LATIN SMALL LETTER L;Cf;0;BN;;;;;N;;;;; E006D;TAG LATIN SMALL LETTER M;Cf;0;BN;;;;;N;;;;; E006E;TAG LATIN SMALL LETTER N;Cf;0;BN;;;;;N;;;;; E006F;TAG LATIN SMALL LETTER O;Cf;0;BN;;;;;N;;;;; E0070;TAG LATIN SMALL LETTER P;Cf;0;BN;;;;;N;;;;; E0071;TAG LATIN SMALL LETTER Q;Cf;0;BN;;;;;N;;;;; E0072;TAG LATIN SMALL LETTER R;Cf;0;BN;;;;;N;;;;; E0073;TAG LATIN SMALL LETTER S;Cf;0;BN;;;;;N;;;;; E0074;TAG LATIN SMALL LETTER T;Cf;0;BN;;;;;N;;;;; E0075;TAG LATIN SMALL LETTER U;Cf;0;BN;;;;;N;;;;; E0076;TAG LATIN SMALL LETTER V;Cf;0;BN;;;;;N;;;;; E0077;TAG LATIN SMALL LETTER W;Cf;0;BN;;;;;N;;;;; E0078;TAG LATIN SMALL LETTER X;Cf;0;BN;;;;;N;;;;; E0079;TAG LATIN SMALL LETTER Y;Cf;0;BN;;;;;N;;;;; E007A;TAG LATIN SMALL LETTER Z;Cf;0;BN;;;;;N;;;;; E007B;TAG LEFT CURLY BRACKET;Cf;0;BN;;;;;N;;;;; E007C;TAG VERTICAL LINE;Cf;0;BN;;;;;N;;;;; E007D;TAG RIGHT CURLY BRACKET;Cf;0;BN;;;;;N;;;;; E007E;TAG TILDE;Cf;0;BN;;;;;N;;;;; E007F;CANCEL TAG;Cf;0;BN;;;;;N;;;;; F0000;;Co;0;L;;;;;N;;;;; FFFFD;;Co;0;L;;;;;N;;;;; 100000;;Co;0;L;;;;;N;;;;; 10FFFD;;Co;0;L;;;;;N;;;;; libidn-1.28/doc/specifications/BidiMirroring-3.2.0.txt0000664000000000000000000005225311746453142017323 00000000000000# BidiMirroring-3.2.0.txt # # This file is an informative supplement to the UnicodeData file. It # lists characters that have the mirrored property # where there is another Unicode character that typically has a glyph # that is the mirror image of the original character's glyph. # The repertoire covered by the file is Unicode 3.2.0. # # The file contains a list of lines with mappings from one code point # to another one for character-based mirroring. # Note that for "real" mirroring, a rendering engine needs to select # appropriate alternative glyphs, and that many Unicode characters do not # have a mirror-image Unicode character. # # Each mapping line contains two fields, separated by a semicolon (';'). # Each of the two fields contains a code point represented as a # variable-length hexadecimal value with 4 to 6 digits. # A comment indicates where the characters are "BEST FIT" mirroring. # # Code points with the "mirrored" property but no appropriate mirrors are # listed as comments at the end of the file. # # For information on bidi mirroring, see UAX #9: Bidirectional Algorithm, # at http://www.unicode.org/unicode/reports/tr9/ # # Please address any comments to . # Note that this is an archival address: messages will be checked, # but do not expect an immediate response. # # This file was originally created by Markus Scherer. # Extended for Unicode 3.2 by Ken Whistler. # # ############################################################ 0028; 0029 # LEFT PARENTHESIS 0029; 0028 # RIGHT PARENTHESIS 003C; 003E # LESS-THAN SIGN 003E; 003C # GREATER-THAN SIGN 005B; 005D # LEFT SQUARE BRACKET 005D; 005B # RIGHT SQUARE BRACKET 007B; 007D # LEFT CURLY BRACKET 007D; 007B # RIGHT CURLY BRACKET 00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 2039; 203A # SINGLE LEFT-POINTING ANGLE QUOTATION MARK 203A; 2039 # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK 2045; 2046 # LEFT SQUARE BRACKET WITH QUILL 2046; 2045 # RIGHT SQUARE BRACKET WITH QUILL 207D; 207E # SUPERSCRIPT LEFT PARENTHESIS 207E; 207D # SUPERSCRIPT RIGHT PARENTHESIS 208D; 208E # SUBSCRIPT LEFT PARENTHESIS 208E; 208D # SUBSCRIPT RIGHT PARENTHESIS 2208; 220B # ELEMENT OF 2209; 220C # NOT AN ELEMENT OF 220A; 220D # SMALL ELEMENT OF 220B; 2208 # CONTAINS AS MEMBER 220C; 2209 # DOES NOT CONTAIN AS MEMBER 220D; 220A # SMALL CONTAINS AS MEMBER 2215; 29F5 # DIVISION SLASH 223C; 223D # TILDE OPERATOR 223D; 223C # REVERSED TILDE 2243; 22CD # ASYMPTOTICALLY EQUAL TO 2252; 2253 # APPROXIMATELY EQUAL TO OR THE IMAGE OF 2253; 2252 # IMAGE OF OR APPROXIMATELY EQUAL TO 2254; 2255 # COLON EQUALS 2255; 2254 # EQUALS COLON 2264; 2265 # LESS-THAN OR EQUAL TO 2265; 2264 # GREATER-THAN OR EQUAL TO 2266; 2267 # LESS-THAN OVER EQUAL TO 2267; 2266 # GREATER-THAN OVER EQUAL TO 2268; 2269 # [BEST FIT] LESS-THAN BUT NOT EQUAL TO 2269; 2268 # [BEST FIT] GREATER-THAN BUT NOT EQUAL TO 226A; 226B # MUCH LESS-THAN 226B; 226A # MUCH GREATER-THAN 226E; 226F # [BEST FIT] NOT LESS-THAN 226F; 226E # [BEST FIT] NOT GREATER-THAN 2270; 2271 # [BEST FIT] NEITHER LESS-THAN NOR EQUAL TO 2271; 2270 # [BEST FIT] NEITHER GREATER-THAN NOR EQUAL TO 2272; 2273 # [BEST FIT] LESS-THAN OR EQUIVALENT TO 2273; 2272 # [BEST FIT] GREATER-THAN OR EQUIVALENT TO 2274; 2275 # [BEST FIT] NEITHER LESS-THAN NOR EQUIVALENT TO 2275; 2274 # [BEST FIT] NEITHER GREATER-THAN NOR EQUIVALENT TO 2276; 2277 # LESS-THAN OR GREATER-THAN 2277; 2276 # GREATER-THAN OR LESS-THAN 2278; 2279 # NEITHER LESS-THAN NOR GREATER-THAN 2279; 2278 # NEITHER GREATER-THAN NOR LESS-THAN 227A; 227B # PRECEDES 227B; 227A # SUCCEEDS 227C; 227D # PRECEDES OR EQUAL TO 227D; 227C # SUCCEEDS OR EQUAL TO 227E; 227F # [BEST FIT] PRECEDES OR EQUIVALENT TO 227F; 227E # [BEST FIT] SUCCEEDS OR EQUIVALENT TO 2280; 2281 # [BEST FIT] DOES NOT PRECEDE 2281; 2280 # [BEST FIT] DOES NOT SUCCEED 2282; 2283 # SUBSET OF 2283; 2282 # SUPERSET OF 2284; 2285 # [BEST FIT] NOT A SUBSET OF 2285; 2284 # [BEST FIT] NOT A SUPERSET OF 2286; 2287 # SUBSET OF OR EQUAL TO 2287; 2286 # SUPERSET OF OR EQUAL TO 2288; 2289 # [BEST FIT] NEITHER A SUBSET OF NOR EQUAL TO 2289; 2288 # [BEST FIT] NEITHER A SUPERSET OF NOR EQUAL TO 228A; 228B # [BEST FIT] SUBSET OF WITH NOT EQUAL TO 228B; 228A # [BEST FIT] SUPERSET OF WITH NOT EQUAL TO 228F; 2290 # SQUARE IMAGE OF 2290; 228F # SQUARE ORIGINAL OF 2291; 2292 # SQUARE IMAGE OF OR EQUAL TO 2292; 2291 # SQUARE ORIGINAL OF OR EQUAL TO 2298; 29B8 # CIRCLED DIVISION SLASH 22A2; 22A3 # RIGHT TACK 22A3; 22A2 # LEFT TACK 22A6; 2ADE # ASSERTION 22A8; 2AE4 # TRUE 22A9; 2AE3 # FORCES 22AB; 2AE5 # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE 22B0; 22B1 # PRECEDES UNDER RELATION 22B1; 22B0 # SUCCEEDS UNDER RELATION 22B2; 22B3 # NORMAL SUBGROUP OF 22B3; 22B2 # CONTAINS AS NORMAL SUBGROUP 22B4; 22B5 # NORMAL SUBGROUP OF OR EQUAL TO 22B5; 22B4 # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO 22B6; 22B7 # ORIGINAL OF 22B7; 22B6 # IMAGE OF 22C9; 22CA # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT 22CA; 22C9 # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT 22CB; 22CC # LEFT SEMIDIRECT PRODUCT 22CC; 22CB # RIGHT SEMIDIRECT PRODUCT 22CD; 2243 # REVERSED TILDE EQUALS 22D0; 22D1 # DOUBLE SUBSET 22D1; 22D0 # DOUBLE SUPERSET 22D6; 22D7 # LESS-THAN WITH DOT 22D7; 22D6 # GREATER-THAN WITH DOT 22D8; 22D9 # VERY MUCH LESS-THAN 22D9; 22D8 # VERY MUCH GREATER-THAN 22DA; 22DB # LESS-THAN EQUAL TO OR GREATER-THAN 22DB; 22DA # GREATER-THAN EQUAL TO OR LESS-THAN 22DC; 22DD # EQUAL TO OR LESS-THAN 22DD; 22DC # EQUAL TO OR GREATER-THAN 22DE; 22DF # EQUAL TO OR PRECEDES 22DF; 22DE # EQUAL TO OR SUCCEEDS 22E0; 22E1 # [BEST FIT] DOES NOT PRECEDE OR EQUAL 22E1; 22E0 # [BEST FIT] DOES NOT SUCCEED OR EQUAL 22E2; 22E3 # [BEST FIT] NOT SQUARE IMAGE OF OR EQUAL TO 22E3; 22E2 # [BEST FIT] NOT SQUARE ORIGINAL OF OR EQUAL TO 22E4; 22E5 # [BEST FIT] SQUARE IMAGE OF OR NOT EQUAL TO 22E5; 22E4 # [BEST FIT] SQUARE ORIGINAL OF OR NOT EQUAL TO 22E6; 22E7 # [BEST FIT] LESS-THAN BUT NOT EQUIVALENT TO 22E7; 22E6 # [BEST FIT] GREATER-THAN BUT NOT EQUIVALENT TO 22E8; 22E9 # [BEST FIT] PRECEDES BUT NOT EQUIVALENT TO 22E9; 22E8 # [BEST FIT] SUCCEEDS BUT NOT EQUIVALENT TO 22EA; 22EB # [BEST FIT] NOT NORMAL SUBGROUP OF 22EB; 22EA # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP 22EC; 22ED # [BEST FIT] NOT NORMAL SUBGROUP OF OR EQUAL TO 22ED; 22EC # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL 22F0; 22F1 # UP RIGHT DIAGONAL ELLIPSIS 22F1; 22F0 # DOWN RIGHT DIAGONAL ELLIPSIS 22F2; 22FA # ELEMENT OF WITH LONG HORIZONTAL STROKE 22F3; 22FB # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F4; 22FC # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22F6; 22FD # ELEMENT OF WITH OVERBAR 22F7; 22FE # SMALL ELEMENT OF WITH OVERBAR 22FA; 22F2 # CONTAINS WITH LONG HORIZONTAL STROKE 22FB; 22F3 # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FC; 22F4 # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE 22FD; 22F6 # CONTAINS WITH OVERBAR 22FE; 22F7 # SMALL CONTAINS WITH OVERBAR 2308; 2309 # LEFT CEILING 2309; 2308 # RIGHT CEILING 230A; 230B # LEFT FLOOR 230B; 230A # RIGHT FLOOR 2329; 232A # LEFT-POINTING ANGLE BRACKET 232A; 2329 # RIGHT-POINTING ANGLE BRACKET 2768; 2769 # MEDIUM LEFT PARENTHESIS ORNAMENT 2769; 2768 # MEDIUM RIGHT PARENTHESIS ORNAMENT 276A; 276B # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT 276B; 276A # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT 276C; 276D # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT 276D; 276C # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT 276E; 276F # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT 276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT 2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT 2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT 2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET 2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET 2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT 2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT 27D5; 27D6 # LEFT OUTER JOIN 27D6; 27D5 # RIGHT OUTER JOIN 27DD; 27DE # LONG RIGHT TACK 27DE; 27DD # LONG LEFT TACK 27E2; 27E3 # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK 27E3; 27E2 # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK 27E4; 27E5 # WHITE SQUARE WITH LEFTWARDS TICK 27E5; 27E4 # WHITE SQUARE WITH RIGHTWARDS TICK 27E6; 27E7 # MATHEMATICAL LEFT WHITE SQUARE BRACKET 27E7; 27E6 # MATHEMATICAL RIGHT WHITE SQUARE BRACKET 27E8; 27E9 # MATHEMATICAL LEFT ANGLE BRACKET 27E9; 27E8 # MATHEMATICAL RIGHT ANGLE BRACKET 27EA; 27EB # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET 27EB; 27EA # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET 2983; 2984 # LEFT WHITE CURLY BRACKET 2984; 2983 # RIGHT WHITE CURLY BRACKET 2985; 2986 # LEFT WHITE PARENTHESIS 2986; 2985 # RIGHT WHITE PARENTHESIS 2987; 2988 # Z NOTATION LEFT IMAGE BRACKET 2988; 2987 # Z NOTATION RIGHT IMAGE BRACKET 2989; 298A # Z NOTATION LEFT BINDING BRACKET 298A; 2989 # Z NOTATION RIGHT BINDING BRACKET 298B; 298C # LEFT SQUARE BRACKET WITH UNDERBAR 298C; 298B # RIGHT SQUARE BRACKET WITH UNDERBAR 298D; 2990 # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER 298E; 298F # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 298F; 298E # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER 2990; 298D # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER 2991; 2992 # LEFT ANGLE BRACKET WITH DOT 2992; 2991 # RIGHT ANGLE BRACKET WITH DOT 2993; 2994 # LEFT ARC LESS-THAN BRACKET 2994; 2993 # RIGHT ARC GREATER-THAN BRACKET 2995; 2996 # DOUBLE LEFT ARC GREATER-THAN BRACKET 2996; 2995 # DOUBLE RIGHT ARC LESS-THAN BRACKET 2997; 2998 # LEFT BLACK TORTOISE SHELL BRACKET 2998; 2997 # RIGHT BLACK TORTOISE SHELL BRACKET 29B8; 2298 # CIRCLED REVERSE SOLIDUS 29C0; 29C1 # CIRCLED LESS-THAN 29C1; 29C0 # CIRCLED GREATER-THAN 29C4; 29C5 # SQUARED RISING DIAGONAL SLASH 29C5; 29C4 # SQUARED FALLING DIAGONAL SLASH 29CF; 29D0 # LEFT TRIANGLE BESIDE VERTICAL BAR 29D0; 29CF # VERTICAL BAR BESIDE RIGHT TRIANGLE 29D1; 29D2 # BOWTIE WITH LEFT HALF BLACK 29D2; 29D1 # BOWTIE WITH RIGHT HALF BLACK 29D4; 29D5 # TIMES WITH LEFT HALF BLACK 29D5; 29D4 # TIMES WITH RIGHT HALF BLACK 29D8; 29D9 # LEFT WIGGLY FENCE 29D9; 29D8 # RIGHT WIGGLY FENCE 29DA; 29DB # LEFT DOUBLE WIGGLY FENCE 29DB; 29DA # RIGHT DOUBLE WIGGLY FENCE 29F5; 2215 # REVERSE SOLIDUS OPERATOR 29F8; 29F9 # BIG SOLIDUS 29F9; 29F8 # BIG REVERSE SOLIDUS 29FC; 29FD # LEFT-POINTING CURVED ANGLE BRACKET 29FD; 29FC # RIGHT-POINTING CURVED ANGLE BRACKET 2A2B; 2A2C # MINUS SIGN WITH FALLING DOTS 2A2C; 2A2B # MINUS SIGN WITH RISING DOTS 2A2D; 2A2C # PLUS SIGN IN LEFT HALF CIRCLE 2A2E; 2A2D # PLUS SIGN IN RIGHT HALF CIRCLE 2A34; 2A35 # MULTIPLICATION SIGN IN LEFT HALF CIRCLE 2A35; 2A34 # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE 2A3C; 2A3D # INTERIOR PRODUCT 2A3D; 2A3C # RIGHTHAND INTERIOR PRODUCT 2A64; 2A65 # Z NOTATION DOMAIN ANTIRESTRICTION 2A65; 2A64 # Z NOTATION RANGE ANTIRESTRICTION 2A79; 2A7A # LESS-THAN WITH CIRCLE INSIDE 2A7A; 2A79 # GREATER-THAN WITH CIRCLE INSIDE 2A7D; 2A7E # LESS-THAN OR SLANTED EQUAL TO 2A7E; 2A7D # GREATER-THAN OR SLANTED EQUAL TO 2A7F; 2A80 # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A80; 2A7F # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE 2A81; 2A82 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A82; 2A81 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE 2A83; 2A84 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT 2A84; 2A83 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT 2A8B; 2A8C # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN 2A8C; 2A8B # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN 2A91; 2A92 # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL 2A92; 2A91 # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL 2A93; 2A94 # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL 2A94; 2A93 # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL 2A95; 2A96 # SLANTED EQUAL TO OR LESS-THAN 2A96; 2A95 # SLANTED EQUAL TO OR GREATER-THAN 2A97; 2A98 # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE 2A98; 2A97 # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE 2A99; 2A9A # DOUBLE-LINE EQUAL TO OR LESS-THAN 2A9A; 2A99 # DOUBLE-LINE EQUAL TO OR GREATER-THAN 2A9B; 2A9C # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN 2A9C; 2A9B # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN 2AA1; 2AA2 # DOUBLE NESTED LESS-THAN 2AA2; 2AA1 # DOUBLE NESTED GREATER-THAN 2AA6; 2AA7 # LESS-THAN CLOSED BY CURVE 2AA7; 2AA6 # GREATER-THAN CLOSED BY CURVE 2AA8; 2AA9 # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AA9; 2AA8 # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL 2AAA; 2AAB # SMALLER THAN 2AAB; 2AAA # LARGER THAN 2AAC; 2AAD # SMALLER THAN OR EQUAL TO 2AAD; 2AAC # LARGER THAN OR EQUAL TO 2AAF; 2AB0 # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN 2AB0; 2AAF # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN 2AB3; 2AB4 # PRECEDES ABOVE EQUALS SIGN 2AB4; 2AB3 # SUCCEEDS ABOVE EQUALS SIGN 2ABB; 2ABC # DOUBLE PRECEDES 2ABC; 2ABB # DOUBLE SUCCEEDS 2ABD; 2ABE # SUBSET WITH DOT 2ABE; 2ABD # SUPERSET WITH DOT 2ABF; 2AC0 # SUBSET WITH PLUS SIGN BELOW 2AC0; 2ABF # SUPERSET WITH PLUS SIGN BELOW 2AC1; 2AC2 # SUBSET WITH MULTIPLICATION SIGN BELOW 2AC2; 2AC1 # SUPERSET WITH MULTIPLICATION SIGN BELOW 2AC3; 2AC4 # SUBSET OF OR EQUAL TO WITH DOT ABOVE 2AC4; 2AC3 # SUPERSET OF OR EQUAL TO WITH DOT ABOVE 2AC5; 2AC6 # SUBSET OF ABOVE EQUALS SIGN 2AC6; 2AC5 # SUPERSET OF ABOVE EQUALS SIGN 2ACD; 2ACE # SQUARE LEFT OPEN BOX OPERATOR 2ACE; 2ACD # SQUARE RIGHT OPEN BOX OPERATOR 2ACF; 2AD0 # CLOSED SUBSET 2AD0; 2ACF # CLOSED SUPERSET 2AD1; 2AD2 # CLOSED SUBSET OR EQUAL TO 2AD2; 2AD1 # CLOSED SUPERSET OR EQUAL TO 2AD3; 2AD4 # SUBSET ABOVE SUPERSET 2AD4; 2AD3 # SUPERSET ABOVE SUBSET 2AD5; 2AD6 # SUBSET ABOVE SUBSET 2AD6; 2AD5 # SUPERSET ABOVE SUPERSET 2ADE; 22A6 # SHORT LEFT TACK 2AE3; 22A9 # DOUBLE VERTICAL BAR LEFT TURNSTILE 2AE4; 22A8 # VERTICAL BAR DOUBLE LEFT TURNSTILE 2AE5; 22AB # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE 2AEC; 2AED # DOUBLE STROKE NOT SIGN 2AED; 2AEC # REVERSED DOUBLE STROKE NOT SIGN 2AF7; 2AF8 # TRIPLE NESTED LESS-THAN 2AF8; 2AF7 # TRIPLE NESTED GREATER-THAN 2AF9; 2AFA # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO 2AFA; 2AF9 # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO 3008; 3009 # LEFT ANGLE BRACKET 3009; 3008 # RIGHT ANGLE BRACKET 300A; 300B # LEFT DOUBLE ANGLE BRACKET 300B; 300A # RIGHT DOUBLE ANGLE BRACKET 300C; 300D # [BEST FIT] LEFT CORNER BRACKET 300D; 300C # [BEST FIT] RIGHT CORNER BRACKET 300E; 300F # [BEST FIT] LEFT WHITE CORNER BRACKET 300F; 300E # [BEST FIT] RIGHT WHITE CORNER BRACKET 3010; 3011 # LEFT BLACK LENTICULAR BRACKET 3011; 3010 # RIGHT BLACK LENTICULAR BRACKET 3014; 3015 # LEFT TORTOISE SHELL BRACKET 3015; 3014 # RIGHT TORTOISE SHELL BRACKET 3016; 3017 # LEFT WHITE LENTICULAR BRACKET 3017; 3016 # RIGHT WHITE LENTICULAR BRACKET 3018; 3019 # LEFT WHITE TORTOISE SHELL BRACKET 3019; 3018 # RIGHT WHITE TORTOISE SHELL BRACKET 301A; 301B # LEFT WHITE SQUARE BRACKET 301B; 301A # RIGHT WHITE SQUARE BRACKET FF08; FF09 # FULLWIDTH LEFT PARENTHESIS FF09; FF08 # FULLWIDTH RIGHT PARENTHESIS FF1C; FF1E # FULLWIDTH LESS-THAN SIGN FF1E; FF1C # FULLWIDTH GREATER-THAN SIGN FF3B; FF3D # FULLWIDTH LEFT SQUARE BRACKET FF3D; FF3B # FULLWIDTH RIGHT SQUARE BRACKET FF5B; FF5D # FULLWIDTH LEFT CURLY BRACKET FF5D; FF5B # FULLWIDTH RIGHT CURLY BRACKET FF5F; FF60 # FULLWIDTH LEFT WHITE PARENTHESIS FF60; FF5F # FULLWIDTH RIGHT WHITE PARENTHESIS FF62; FF63 # [BEST FIT] HALFWIDTH LEFT CORNER BRACKET FF63; FF62 # [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET # The following characters have no appropriate mirroring character # 2140; DOUBLE-STRUCK N-ARY SUMMATION # 2201; COMPLEMENT # 2202; PARTIAL DIFFERENTIAL # 2203; THERE EXISTS # 2204; THERE DOES NOT EXIST # 2211; N-ARY SUMMATION # 2216; SET MINUS # 221A; SQUARE ROOT # 221B; CUBE ROOT # 221C; FOURTH ROOT # 221D; PROPORTIONAL TO # 221F; RIGHT ANGLE # 2220; ANGLE # 2221; MEASURED ANGLE # 2222; SPHERICAL ANGLE # 2224; DOES NOT DIVIDE # 2226; NOT PARALLEL TO # 222B; INTEGRAL # 222C; DOUBLE INTEGRAL # 222D; TRIPLE INTEGRAL # 222E; CONTOUR INTEGRAL # 222F; SURFACE INTEGRAL # 2230; VOLUME INTEGRAL # 2231; CLOCKWISE INTEGRAL # 2232; CLOCKWISE CONTOUR INTEGRAL # 2233; ANTICLOCKWISE CONTOUR INTEGRAL # 2239; EXCESS # 223B; HOMOTHETIC # 223E; INVERTED LAZY S # 223F; SINE WAVE # 2240; WREATH PRODUCT # 2241; NOT TILDE # 2242; MINUS TILDE # 2244; NOT ASYMPTOTICALLY EQUAL TO # 2245; APPROXIMATELY EQUAL TO # 2246; APPROXIMATELY BUT NOT ACTUALLY EQUAL TO # 2247; NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO # 2248; ALMOST EQUAL TO # 2249; NOT ALMOST EQUAL TO # 224A; ALMOST EQUAL OR EQUAL TO # 224B; TRIPLE TILDE # 224C; ALL EQUAL TO # 225F; QUESTIONED EQUAL TO # 2260; NOT EQUAL TO # 2262; NOT IDENTICAL TO # 228C; MULTISET # 22A7; MODELS # 22AA; TRIPLE VERTICAL BAR RIGHT TURNSTILE # 22AC; DOES NOT PROVE # 22AD; NOT TRUE # 22AE; DOES NOT FORCE # 22AF; NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE # 22B8; MULTIMAP # 22BE; RIGHT ANGLE WITH ARC # 22BF; RIGHT TRIANGLE # 22F5; ELEMENT OF WITH DOT ABOVE # 22F8; ELEMENT OF WITH UNDERBAR # 22F9; ELEMENT OF WITH TWO HORIZONTAL STROKES # 22FF; Z NOTATION BAG MEMBERSHIP # 2320; TOP HALF INTEGRAL # 2321; BOTTOM HALF INTEGRAL # 27D3; LOWER RIGHT CORNER WITH DOT # 27D4; UPPER LEFT CORNER WITH DOT # 27DC; LEFT MULTIMAP # 299B; MEASURED ANGLE OPENING LEFT # 299C; RIGHT ANGLE VARIANT WITH SQUARE # 299D; MEASURED RIGHT ANGLE WITH DOT # 299E; ANGLE WITH S INSIDE # 299F; ACUTE ANGLE # 29A0; SPHERICAL ANGLE OPENING LEFT # 29A1; SPHERICAL ANGLE OPENING UP # 29A2; TURNED ANGLE # 29A3; REVERSED ANGLE # 29A4; ANGLE WITH UNDERBAR # 29A5; REVERSED ANGLE WITH UNDERBAR # 29A6; OBLIQUE ANGLE OPENING UP # 29A7; OBLIQUE ANGLE OPENING DOWN # 29A8; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT # 29A9; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT # 29AA; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT # 29AB; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT # 29AC; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP # 29AD; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP # 29AE; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN # 29AF; MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN # 29C2; CIRCLE WITH SMALL CIRCLE TO THE RIGHT # 29C3; CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT # 29C9; TWO JOINED SQUARES # 29CE; RIGHT TRIANGLE ABOVE LEFT TRIANGLE # 29DC; INCOMPLETE INFINITY # 29E1; INCREASES AS # 29E3; EQUALS SIGN AND SLANTED PARALLEL # 29E4; EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE # 29E5; IDENTICAL TO AND SLANTED PARALLEL # 29E8; DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK # 29E9; DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK # 29F4; RULE-DELAYED # 29F6; SOLIDUS WITH OVERBAR # 29F7; REVERSE SOLIDUS WITH HORIZONTAL STROKE # 2A0A; MODULO TWO SUM # 2A0B; SUMMATION WITH INTEGRAL # 2A0C; QUADRUPLE INTEGRAL OPERATOR # 2A0D; FINITE PART INTEGRAL # 2A0E; INTEGRAL WITH DOUBLE STROKE # 2A0F; INTEGRAL AVERAGE WITH SLASH # 2A10; CIRCULATION FUNCTION # 2A11; ANTICLOCKWISE INTEGRATION # 2A12; LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE # 2A13; LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE # 2A14; LINE INTEGRATION NOT INCLUDING THE POLE # 2A15; INTEGRAL AROUND A POINT OPERATOR # 2A16; QUATERNION INTEGRAL OPERATOR # 2A17; INTEGRAL WITH LEFTWARDS ARROW WITH HOOK # 2A18; INTEGRAL WITH TIMES SIGN # 2A19; INTEGRAL WITH INTERSECTION # 2A1A; INTEGRAL WITH UNION # 2A1B; INTEGRAL WITH OVERBAR # 2A1C; INTEGRAL WITH UNDERBAR # 2A1E; LARGE LEFT TRIANGLE OPERATOR # 2A1F; Z NOTATION SCHEMA COMPOSITION # 2A20; Z NOTATION SCHEMA PIPING # 2A21; Z NOTATION SCHEMA PROJECTION # 2A24; PLUS SIGN WITH TILDE ABOVE # 2A26; PLUS SIGN WITH TILDE BELOW # 2A29; MINUS SIGN WITH COMMA ABOVE # 2A3E; Z NOTATION RELATIONAL COMPOSITION # 2A57; SLOPING LARGE OR # 2A58; SLOPING LARGE AND # 2A6A; TILDE OPERATOR WITH DOT ABOVE # 2A6B; TILDE OPERATOR WITH RISING DOTS # 2A6C; SIMILAR MINUS SIMILAR # 2A6D; CONGRUENT WITH DOT ABOVE # 2A6F; ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT # 2A70; APPROXIMATELY EQUAL OR EQUAL TO # 2A73; EQUALS SIGN ABOVE TILDE OPERATOR # 2A74; DOUBLE COLON EQUAL # 2A7B; LESS-THAN WITH QUESTION MARK ABOVE # 2A7C; GREATER-THAN WITH QUESTION MARK ABOVE # 2A85; LESS-THAN OR APPROXIMATE # 2A86; GREATER-THAN OR APPROXIMATE # 2A87; LESS-THAN AND SINGLE-LINE NOT EQUAL TO # 2A88; GREATER-THAN AND SINGLE-LINE NOT EQUAL TO # 2A89; LESS-THAN AND NOT APPROXIMATE # 2A8A; GREATER-THAN AND NOT APPROXIMATE # 2A8D; LESS-THAN ABOVE SIMILAR OR EQUAL # 2A8E; GREATER-THAN ABOVE SIMILAR OR EQUAL # 2A8F; LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN # 2A90; GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN # 2A9D; SIMILAR OR LESS-THAN # 2A9E; SIMILAR OR GREATER-THAN # 2A9F; SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN # 2AA0; SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN # 2AA3; DOUBLE NESTED LESS-THAN WITH UNDERBAR # 2AB1; PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO # 2AB2; SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO # 2AB5; PRECEDES ABOVE NOT EQUAL TO # 2AB6; SUCCEEDS ABOVE NOT EQUAL TO # 2AB7; PRECEDES ABOVE ALMOST EQUAL TO # 2AB8; SUCCEEDS ABOVE ALMOST EQUAL TO # 2AB9; PRECEDES ABOVE NOT ALMOST EQUAL TO # 2ABA; SUCCEEDS ABOVE NOT ALMOST EQUAL TO # 2AC7; SUBSET OF ABOVE TILDE OPERATOR # 2AC8; SUPERSET OF ABOVE TILDE OPERATOR # 2AC9; SUBSET OF ABOVE ALMOST EQUAL TO # 2ACA; SUPERSET OF ABOVE ALMOST EQUAL TO # 2ACB; SUBSET OF ABOVE NOT EQUAL TO # 2ACC; SUPERSET OF ABOVE NOT EQUAL TO # 2ADC; FORKING # 2AE2; VERTICAL BAR TRIPLE RIGHT TURNSTILE # 2AE6; LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL # 2AEE; DOES NOT DIVIDE WITH REVERSED NEGATION SLASH # 2AF3; PARALLEL WITH TILDE OPERATOR # 2AFB; TRIPLE SOLIDUS BINARY RELATION # 2AFD; DOUBLE SOLIDUS OPERATOR libidn-1.28/doc/specifications/rfc3454.txt0000664000000000000000000023113511746453142015215 00000000000000Below there are data tables extracted from RFC 3454. The license for RFC 3454 is: Copyright (C) The Internet Society (2002). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Unfortunately, that license is non-free according to licensing@fsf.org: From: "Dave Turner via RT" Date: Thu, 08 Dec 2005 16:33:57 -0500 Subject: [gnu.org #211910] Are RFC specifications freely licensed? > Hi Dave! I know this is an old issue (last post in this thread was > about a year ago), but have you heard back from the licensing > committee on the RFC 2026 and RFC 3978 licenses? Sorry for the delay. The old terms are officially non-free. However, to be copyrightable there needs to be some originality, which isn't present here, see: From: "novalis@fsf.org via RT" Subject: Re: [gnu.org #211910] Are RFC specifications freely licensed? Date: Thu, 06 Jan 2005 18:32:02 -0500 >> >> > If not, it's entirely possible that they're not copyrightable, or that >> >> > they have very thin protection. I would need to see them specifically >> >> > to be able to determine this. >> >> >> >> The table fall under the old license. The ASN.1 schema fall under the >> >> new license. I'm attaching the tables, and the ASN.1 schema below. >> >> If it matters: Some tables are derived from Unicode tables, and some >> >> were probably created by hand. >> > >> > It looks to me like these tables do not have enough originality to be >> > copyrightable. The text surrounding them ("The following is the mapping >> > table from section 3....") is probably minimally original and should be >> > removed. >> >> Are you sure about this? I'm looking for something strong than "It >> looks". The tables were not trivial to create, it took the IETF some >> time (years) to arrive with the final tables. Perhaps the tables >> could be argued to contain some artistic value. But I'm not an expert >> on this, so these are just my thoughts. > > I'm not a lawyer. This isn't legal advice. If you need legal advice, > talk to a lawyer. I can get a second opinion on this from our lawyers, > if you think it's important, but it still won't be legal advice. > > From a copyright perspective, the time and effort ("sweat of the brow") > that a given thing takes don't matter (Fiest v. Rural Telephone > Service). What matters is the originality. > > I don't see a lot here that's original. The names are probably > original, but names are generally unprotected. And if the names are > needed for compatibility, the scenes a faire doctrine comes into play. Right, the names are not required, only the actual numbers are. Thanks, this information seem to solve my problem for the source code in libidn. So we can use this material. There may be other legal analysis that also reach the same conclusion. ----- Start Table A.1 ----- 0221 0234-024F 02AE-02AF 02EF-02FF 0350-035F 0370-0373 0376-0379 037B-037D 037F-0383 038B 038D 03A2 03CF 03F7-03FF 0487 04CF 04F6-04F7 04FA-04FF 0510-0530 0557-0558 0560 0588 058B-0590 05A2 05BA 05C5-05CF 05EB-05EF 05F5-060B 060D-061A 061C-061E 0620 063B-063F 0656-065F 06EE-06EF 06FF 070E 072D-072F 074B-077F 07B2-0900 0904 093A-093B 094E-094F 0955-0957 0971-0980 0984 098D-098E 0991-0992 09A9 09B1 09B3-09B5 09BA-09BB 09BD 09C5-09C6 09C9-09CA 09CE-09D6 09D8-09DB 09DE 09E4-09E5 09FB-0A01 0A03-0A04 0A0B-0A0E 0A11-0A12 0A29 0A31 0A34 0A37 0A3A-0A3B 0A3D 0A43-0A46 0A49-0A4A 0A4E-0A58 0A5D 0A5F-0A65 0A75-0A80 0A84 0A8C 0A8E 0A92 0AA9 0AB1 0AB4 0ABA-0ABB 0AC6 0ACA 0ACE-0ACF 0AD1-0ADF 0AE1-0AE5 0AF0-0B00 0B04 0B0D-0B0E 0B11-0B12 0B29 0B31 0B34-0B35 0B3A-0B3B 0B44-0B46 0B49-0B4A 0B4E-0B55 0B58-0B5B 0B5E 0B62-0B65 0B71-0B81 0B84 0B8B-0B8D 0B91 0B96-0B98 0B9B 0B9D 0BA0-0BA2 0BA5-0BA7 0BAB-0BAD 0BB6 0BBA-0BBD 0BC3-0BC5 0BC9 0BCE-0BD6 0BD8-0BE6 0BF3-0C00 0C04 0C0D 0C11 0C29 0C34 0C3A-0C3D 0C45 0C49 0C4E-0C54 0C57-0C5F 0C62-0C65 0C70-0C81 0C84 0C8D 0C91 0CA9 0CB4 0CBA-0CBD 0CC5 0CC9 0CCE-0CD4 0CD7-0CDD 0CDF 0CE2-0CE5 0CF0-0D01 0D04 0D0D 0D11 0D29 0D3A-0D3D 0D44-0D45 0D49 0D4E-0D56 0D58-0D5F 0D62-0D65 0D70-0D81 0D84 0D97-0D99 0DB2 0DBC 0DBE-0DBF 0DC7-0DC9 0DCB-0DCE 0DD5 0DD7 0DE0-0DF1 0DF5-0E00 0E3B-0E3E 0E5C-0E80 0E83 0E85-0E86 0E89 0E8B-0E8C 0E8E-0E93 0E98 0EA0 0EA4 0EA6 0EA8-0EA9 0EAC 0EBA 0EBE-0EBF 0EC5 0EC7 0ECE-0ECF 0EDA-0EDB 0EDE-0EFF 0F48 0F6B-0F70 0F8C-0F8F 0F98 0FBD 0FCD-0FCE 0FD0-0FFF 1022 1028 102B 1033-1035 103A-103F 105A-109F 10C6-10CF 10F9-10FA 10FC-10FF 115A-115E 11A3-11A7 11FA-11FF 1207 1247 1249 124E-124F 1257 1259 125E-125F 1287 1289 128E-128F 12AF 12B1 12B6-12B7 12BF 12C1 12C6-12C7 12CF 12D7 12EF 130F 1311 1316-1317 131F 1347 135B-1360 137D-139F 13F5-1400 1677-167F 169D-169F 16F1-16FF 170D 1715-171F 1737-173F 1754-175F 176D 1771 1774-177F 17DD-17DF 17EA-17FF 180F 181A-181F 1878-187F 18AA-1DFF 1E9C-1E9F 1EFA-1EFF 1F16-1F17 1F1E-1F1F 1F46-1F47 1F4E-1F4F 1F58 1F5A 1F5C 1F5E 1F7E-1F7F 1FB5 1FC5 1FD4-1FD5 1FDC 1FF0-1FF1 1FF5 1FFF 2053-2056 2058-205E 2064-2069 2072-2073 208F-209F 20B2-20CF 20EB-20FF 213B-213C 214C-2152 2184-218F 23CF-23FF 2427-243F 244B-245F 24FF 2614-2615 2618 267E-267F 268A-2700 2705 270A-270B 2728 274C 274E 2753-2755 2757 275F-2760 2795-2797 27B0 27BF-27CF 27EC-27EF 2B00-2E7F 2E9A 2EF4-2EFF 2FD6-2FEF 2FFC-2FFF 3040 3097-3098 3100-3104 312D-3130 318F 31B8-31EF 321D-321F 3244-3250 327C-327E 32CC-32CF 32FF 3377-337A 33DE-33DF 33FF 4DB6-4DFF 9FA6-9FFF A48D-A48F A4C7-ABFF D7A4-D7FF FA2E-FA2F FA6B-FAFF FB07-FB12 FB18-FB1C FB37 FB3D FB3F FB42 FB45 FBB2-FBD2 FD40-FD4F FD90-FD91 FDC8-FDCF FDFD-FDFF FE10-FE1F FE24-FE2F FE47-FE48 FE53 FE67 FE6C-FE6F FE75 FEFD-FEFE FF00 FFBF-FFC1 FFC8-FFC9 FFD0-FFD1 FFD8-FFD9 FFDD-FFDF FFE7 FFEF-FFF8 10000-102FF 1031F 10324-1032F 1034B-103FF 10426-10427 1044E-1CFFF 1D0F6-1D0FF 1D127-1D129 1D1DE-1D3FF 1D455 1D49D 1D4A0-1D4A1 1D4A3-1D4A4 1D4A7-1D4A8 1D4AD 1D4BA 1D4BC 1D4C1 1D4C4 1D506 1D50B-1D50C 1D515 1D51D 1D53A 1D53F 1D545 1D547-1D549 1D551 1D6A4-1D6A7 1D7CA-1D7CD 1D800-1FFFD 2A6D7-2F7FF 2FA1E-2FFFD 30000-3FFFD 40000-4FFFD 50000-5FFFD 60000-6FFFD 70000-7FFFD 80000-8FFFD 90000-9FFFD A0000-AFFFD B0000-BFFFD C0000-CFFFD D0000-DFFFD E0000 E0002-E001F E0080-EFFFD ----- End Table A.1 ----- ----- Start Table B.1 ----- 00AD; ; Map to nothing 034F; ; Map to nothing 1806; ; Map to nothing 180B; ; Map to nothing 180C; ; Map to nothing 180D; ; Map to nothing 200B; ; Map to nothing 200C; ; Map to nothing 200D; ; Map to nothing 2060; ; Map to nothing FE00; ; Map to nothing FE01; ; Map to nothing FE02; ; Map to nothing FE03; ; Map to nothing FE04; ; Map to nothing FE05; ; Map to nothing FE06; ; Map to nothing FE07; ; Map to nothing FE08; ; Map to nothing FE09; ; Map to nothing FE0A; ; Map to nothing FE0B; ; Map to nothing FE0C; ; Map to nothing FE0D; ; Map to nothing FE0E; ; Map to nothing FE0F; ; Map to nothing FEFF; ; Map to nothing ----- End Table B.1 ----- ----- Start Table B.2 ----- 0041; 0061; Case map 0042; 0062; Case map 0043; 0063; Case map 0044; 0064; Case map 0045; 0065; Case map 0046; 0066; Case map 0047; 0067; Case map 0048; 0068; Case map 0049; 0069; Case map 004A; 006A; Case map 004B; 006B; Case map 004C; 006C; Case map 004D; 006D; Case map 004E; 006E; Case map 004F; 006F; Case map 0050; 0070; Case map 0051; 0071; Case map 0052; 0072; Case map 0053; 0073; Case map 0054; 0074; Case map 0055; 0075; Case map 0056; 0076; Case map 0057; 0077; Case map 0058; 0078; Case map 0059; 0079; Case map 005A; 007A; Case map 00B5; 03BC; Case map 00C0; 00E0; Case map 00C1; 00E1; Case map 00C2; 00E2; Case map 00C3; 00E3; Case map 00C4; 00E4; Case map 00C5; 00E5; Case map 00C6; 00E6; Case map 00C7; 00E7; Case map 00C8; 00E8; Case map 00C9; 00E9; Case map 00CA; 00EA; Case map 00CB; 00EB; Case map 00CC; 00EC; Case map 00CD; 00ED; Case map 00CE; 00EE; Case map 00CF; 00EF; Case map 00D0; 00F0; Case map 00D1; 00F1; Case map 00D2; 00F2; Case map 00D3; 00F3; Case map 00D4; 00F4; Case map 00D5; 00F5; Case map 00D6; 00F6; Case map 00D8; 00F8; Case map 00D9; 00F9; Case map 00DA; 00FA; Case map 00DB; 00FB; Case map 00DC; 00FC; Case map 00DD; 00FD; Case map 00DE; 00FE; Case map 00DF; 0073 0073; Case map 0100; 0101; Case map 0102; 0103; Case map 0104; 0105; Case map 0106; 0107; Case map 0108; 0109; Case map 010A; 010B; Case map 010C; 010D; Case map 010E; 010F; Case map 0110; 0111; Case map 0112; 0113; Case map 0114; 0115; Case map 0116; 0117; Case map 0118; 0119; Case map 011A; 011B; Case map 011C; 011D; Case map 011E; 011F; Case map 0120; 0121; Case map 0122; 0123; Case map 0124; 0125; Case map 0126; 0127; Case map 0128; 0129; Case map 012A; 012B; Case map 012C; 012D; Case map 012E; 012F; Case map 0130; 0069 0307; Case map 0132; 0133; Case map 0134; 0135; Case map 0136; 0137; Case map 0139; 013A; Case map 013B; 013C; Case map 013D; 013E; Case map 013F; 0140; Case map 0141; 0142; Case map 0143; 0144; Case map 0145; 0146; Case map 0147; 0148; Case map 0149; 02BC 006E; Case map 014A; 014B; Case map 014C; 014D; Case map 014E; 014F; Case map 0150; 0151; Case map 0152; 0153; Case map 0154; 0155; Case map 0156; 0157; Case map 0158; 0159; Case map 015A; 015B; Case map 015C; 015D; Case map 015E; 015F; Case map 0160; 0161; Case map 0162; 0163; Case map 0164; 0165; Case map 0166; 0167; Case map 0168; 0169; Case map 016A; 016B; Case map 016C; 016D; Case map 016E; 016F; Case map 0170; 0171; Case map 0172; 0173; Case map 0174; 0175; Case map 0176; 0177; Case map 0178; 00FF; Case map 0179; 017A; Case map 017B; 017C; Case map 017D; 017E; Case map 017F; 0073; Case map 0181; 0253; Case map 0182; 0183; Case map 0184; 0185; Case map 0186; 0254; Case map 0187; 0188; Case map 0189; 0256; Case map 018A; 0257; Case map 018B; 018C; Case map 018E; 01DD; Case map 018F; 0259; Case map 0190; 025B; Case map 0191; 0192; Case map 0193; 0260; Case map 0194; 0263; Case map 0196; 0269; Case map 0197; 0268; Case map 0198; 0199; Case map 019C; 026F; Case map 019D; 0272; Case map 019F; 0275; Case map 01A0; 01A1; Case map 01A2; 01A3; Case map 01A4; 01A5; Case map 01A6; 0280; Case map 01A7; 01A8; Case map 01A9; 0283; Case map 01AC; 01AD; Case map 01AE; 0288; Case map 01AF; 01B0; Case map 01B1; 028A; Case map 01B2; 028B; Case map 01B3; 01B4; Case map 01B5; 01B6; Case map 01B7; 0292; Case map 01B8; 01B9; Case map 01BC; 01BD; Case map 01C4; 01C6; Case map 01C5; 01C6; Case map 01C7; 01C9; Case map 01C8; 01C9; Case map 01CA; 01CC; Case map 01CB; 01CC; Case map 01CD; 01CE; Case map 01CF; 01D0; Case map 01D1; 01D2; Case map 01D3; 01D4; Case map 01D5; 01D6; Case map 01D7; 01D8; Case map 01D9; 01DA; Case map 01DB; 01DC; Case map 01DE; 01DF; Case map 01E0; 01E1; Case map 01E2; 01E3; Case map 01E4; 01E5; Case map 01E6; 01E7; Case map 01E8; 01E9; Case map 01EA; 01EB; Case map 01EC; 01ED; Case map 01EE; 01EF; Case map 01F0; 006A 030C; Case map 01F1; 01F3; Case map 01F2; 01F3; Case map 01F4; 01F5; Case map 01F6; 0195; Case map 01F7; 01BF; Case map 01F8; 01F9; Case map 01FA; 01FB; Case map 01FC; 01FD; Case map 01FE; 01FF; Case map 0200; 0201; Case map 0202; 0203; Case map 0204; 0205; Case map 0206; 0207; Case map 0208; 0209; Case map 020A; 020B; Case map 020C; 020D; Case map 020E; 020F; Case map 0210; 0211; Case map 0212; 0213; Case map 0214; 0215; Case map 0216; 0217; Case map 0218; 0219; Case map 021A; 021B; Case map 021C; 021D; Case map 021E; 021F; Case map 0220; 019E; Case map 0222; 0223; Case map 0224; 0225; Case map 0226; 0227; Case map 0228; 0229; Case map 022A; 022B; Case map 022C; 022D; Case map 022E; 022F; Case map 0230; 0231; Case map 0232; 0233; Case map 0345; 03B9; Case map 037A; 0020 03B9; Additional folding 0386; 03AC; Case map 0388; 03AD; Case map 0389; 03AE; Case map 038A; 03AF; Case map 038C; 03CC; Case map 038E; 03CD; Case map 038F; 03CE; Case map 0390; 03B9 0308 0301; Case map 0391; 03B1; Case map 0392; 03B2; Case map 0393; 03B3; Case map 0394; 03B4; Case map 0395; 03B5; Case map 0396; 03B6; Case map 0397; 03B7; Case map 0398; 03B8; Case map 0399; 03B9; Case map 039A; 03BA; Case map 039B; 03BB; Case map 039C; 03BC; Case map 039D; 03BD; Case map 039E; 03BE; Case map 039F; 03BF; Case map 03A0; 03C0; Case map 03A1; 03C1; Case map 03A3; 03C3; Case map 03A4; 03C4; Case map 03A5; 03C5; Case map 03A6; 03C6; Case map 03A7; 03C7; Case map 03A8; 03C8; Case map 03A9; 03C9; Case map 03AA; 03CA; Case map 03AB; 03CB; Case map 03B0; 03C5 0308 0301; Case map 03C2; 03C3; Case map 03D0; 03B2; Case map 03D1; 03B8; Case map 03D2; 03C5; Additional folding 03D3; 03CD; Additional folding 03D4; 03CB; Additional folding 03D5; 03C6; Case map 03D6; 03C0; Case map 03D8; 03D9; Case map 03DA; 03DB; Case map 03DC; 03DD; Case map 03DE; 03DF; Case map 03E0; 03E1; Case map 03E2; 03E3; Case map 03E4; 03E5; Case map 03E6; 03E7; Case map 03E8; 03E9; Case map 03EA; 03EB; Case map 03EC; 03ED; Case map 03EE; 03EF; Case map 03F0; 03BA; Case map 03F1; 03C1; Case map 03F2; 03C3; Case map 03F4; 03B8; Case map 03F5; 03B5; Case map 0400; 0450; Case map 0401; 0451; Case map 0402; 0452; Case map 0403; 0453; Case map 0404; 0454; Case map 0405; 0455; Case map 0406; 0456; Case map 0407; 0457; Case map 0408; 0458; Case map 0409; 0459; Case map 040A; 045A; Case map 040B; 045B; Case map 040C; 045C; Case map 040D; 045D; Case map 040E; 045E; Case map 040F; 045F; Case map 0410; 0430; Case map 0411; 0431; Case map 0412; 0432; Case map 0413; 0433; Case map 0414; 0434; Case map 0415; 0435; Case map 0416; 0436; Case map 0417; 0437; Case map 0418; 0438; Case map 0419; 0439; Case map 041A; 043A; Case map 041B; 043B; Case map 041C; 043C; Case map 041D; 043D; Case map 041E; 043E; Case map 041F; 043F; Case map 0420; 0440; Case map 0421; 0441; Case map 0422; 0442; Case map 0423; 0443; Case map 0424; 0444; Case map 0425; 0445; Case map 0426; 0446; Case map 0427; 0447; Case map 0428; 0448; Case map 0429; 0449; Case map 042A; 044A; Case map 042B; 044B; Case map 042C; 044C; Case map 042D; 044D; Case map 042E; 044E; Case map 042F; 044F; Case map 0460; 0461; Case map 0462; 0463; Case map 0464; 0465; Case map 0466; 0467; Case map 0468; 0469; Case map 046A; 046B; Case map 046C; 046D; Case map 046E; 046F; Case map 0470; 0471; Case map 0472; 0473; Case map 0474; 0475; Case map 0476; 0477; Case map 0478; 0479; Case map 047A; 047B; Case map 047C; 047D; Case map 047E; 047F; Case map 0480; 0481; Case map 048A; 048B; Case map 048C; 048D; Case map 048E; 048F; Case map 0490; 0491; Case map 0492; 0493; Case map 0494; 0495; Case map 0496; 0497; Case map 0498; 0499; Case map 049A; 049B; Case map 049C; 049D; Case map 049E; 049F; Case map 04A0; 04A1; Case map 04A2; 04A3; Case map 04A4; 04A5; Case map 04A6; 04A7; Case map 04A8; 04A9; Case map 04AA; 04AB; Case map 04AC; 04AD; Case map 04AE; 04AF; Case map 04B0; 04B1; Case map 04B2; 04B3; Case map 04B4; 04B5; Case map 04B6; 04B7; Case map 04B8; 04B9; Case map 04BA; 04BB; Case map 04BC; 04BD; Case map 04BE; 04BF; Case map 04C1; 04C2; Case map 04C3; 04C4; Case map 04C5; 04C6; Case map 04C7; 04C8; Case map 04C9; 04CA; Case map 04CB; 04CC; Case map 04CD; 04CE; Case map 04D0; 04D1; Case map 04D2; 04D3; Case map 04D4; 04D5; Case map 04D6; 04D7; Case map 04D8; 04D9; Case map 04DA; 04DB; Case map 04DC; 04DD; Case map 04DE; 04DF; Case map 04E0; 04E1; Case map 04E2; 04E3; Case map 04E4; 04E5; Case map 04E6; 04E7; Case map 04E8; 04E9; Case map 04EA; 04EB; Case map 04EC; 04ED; Case map 04EE; 04EF; Case map 04F0; 04F1; Case map 04F2; 04F3; Case map 04F4; 04F5; Case map 04F8; 04F9; Case map 0500; 0501; Case map 0502; 0503; Case map 0504; 0505; Case map 0506; 0507; Case map 0508; 0509; Case map 050A; 050B; Case map 050C; 050D; Case map 050E; 050F; Case map 0531; 0561; Case map 0532; 0562; Case map 0533; 0563; Case map 0534; 0564; Case map 0535; 0565; Case map 0536; 0566; Case map 0537; 0567; Case map 0538; 0568; Case map 0539; 0569; Case map 053A; 056A; Case map 053B; 056B; Case map 053C; 056C; Case map 053D; 056D; Case map 053E; 056E; Case map 053F; 056F; Case map 0540; 0570; Case map 0541; 0571; Case map 0542; 0572; Case map 0543; 0573; Case map 0544; 0574; Case map 0545; 0575; Case map 0546; 0576; Case map 0547; 0577; Case map 0548; 0578; Case map 0549; 0579; Case map 054A; 057A; Case map 054B; 057B; Case map 054C; 057C; Case map 054D; 057D; Case map 054E; 057E; Case map 054F; 057F; Case map 0550; 0580; Case map 0551; 0581; Case map 0552; 0582; Case map 0553; 0583; Case map 0554; 0584; Case map 0555; 0585; Case map 0556; 0586; Case map 0587; 0565 0582; Case map 1E00; 1E01; Case map 1E02; 1E03; Case map 1E04; 1E05; Case map 1E06; 1E07; Case map 1E08; 1E09; Case map 1E0A; 1E0B; Case map 1E0C; 1E0D; Case map 1E0E; 1E0F; Case map 1E10; 1E11; Case map 1E12; 1E13; Case map 1E14; 1E15; Case map 1E16; 1E17; Case map 1E18; 1E19; Case map 1E1A; 1E1B; Case map 1E1C; 1E1D; Case map 1E1E; 1E1F; Case map 1E20; 1E21; Case map 1E22; 1E23; Case map 1E24; 1E25; Case map 1E26; 1E27; Case map 1E28; 1E29; Case map 1E2A; 1E2B; Case map 1E2C; 1E2D; Case map 1E2E; 1E2F; Case map 1E30; 1E31; Case map 1E32; 1E33; Case map 1E34; 1E35; Case map 1E36; 1E37; Case map 1E38; 1E39; Case map 1E3A; 1E3B; Case map 1E3C; 1E3D; Case map 1E3E; 1E3F; Case map 1E40; 1E41; Case map 1E42; 1E43; Case map 1E44; 1E45; Case map 1E46; 1E47; Case map 1E48; 1E49; Case map 1E4A; 1E4B; Case map 1E4C; 1E4D; Case map 1E4E; 1E4F; Case map 1E50; 1E51; Case map 1E52; 1E53; Case map 1E54; 1E55; Case map 1E56; 1E57; Case map 1E58; 1E59; Case map 1E5A; 1E5B; Case map 1E5C; 1E5D; Case map 1E5E; 1E5F; Case map 1E60; 1E61; Case map 1E62; 1E63; Case map 1E64; 1E65; Case map 1E66; 1E67; Case map 1E68; 1E69; Case map 1E6A; 1E6B; Case map 1E6C; 1E6D; Case map 1E6E; 1E6F; Case map 1E70; 1E71; Case map 1E72; 1E73; Case map 1E74; 1E75; Case map 1E76; 1E77; Case map 1E78; 1E79; Case map 1E7A; 1E7B; Case map 1E7C; 1E7D; Case map 1E7E; 1E7F; Case map 1E80; 1E81; Case map 1E82; 1E83; Case map 1E84; 1E85; Case map 1E86; 1E87; Case map 1E88; 1E89; Case map 1E8A; 1E8B; Case map 1E8C; 1E8D; Case map 1E8E; 1E8F; Case map 1E90; 1E91; Case map 1E92; 1E93; Case map 1E94; 1E95; Case map 1E96; 0068 0331; Case map 1E97; 0074 0308; Case map 1E98; 0077 030A; Case map 1E99; 0079 030A; Case map 1E9A; 0061 02BE; Case map 1E9B; 1E61; Case map 1EA0; 1EA1; Case map 1EA2; 1EA3; Case map 1EA4; 1EA5; Case map 1EA6; 1EA7; Case map 1EA8; 1EA9; Case map 1EAA; 1EAB; Case map 1EAC; 1EAD; Case map 1EAE; 1EAF; Case map 1EB0; 1EB1; Case map 1EB2; 1EB3; Case map 1EB4; 1EB5; Case map 1EB6; 1EB7; Case map 1EB8; 1EB9; Case map 1EBA; 1EBB; Case map 1EBC; 1EBD; Case map 1EBE; 1EBF; Case map 1EC0; 1EC1; Case map 1EC2; 1EC3; Case map 1EC4; 1EC5; Case map 1EC6; 1EC7; Case map 1EC8; 1EC9; Case map 1ECA; 1ECB; Case map 1ECC; 1ECD; Case map 1ECE; 1ECF; Case map 1ED0; 1ED1; Case map 1ED2; 1ED3; Case map 1ED4; 1ED5; Case map 1ED6; 1ED7; Case map 1ED8; 1ED9; Case map 1EDA; 1EDB; Case map 1EDC; 1EDD; Case map 1EDE; 1EDF; Case map 1EE0; 1EE1; Case map 1EE2; 1EE3; Case map 1EE4; 1EE5; Case map 1EE6; 1EE7; Case map 1EE8; 1EE9; Case map 1EEA; 1EEB; Case map 1EEC; 1EED; Case map 1EEE; 1EEF; Case map 1EF0; 1EF1; Case map 1EF2; 1EF3; Case map 1EF4; 1EF5; Case map 1EF6; 1EF7; Case map 1EF8; 1EF9; Case map 1F08; 1F00; Case map 1F09; 1F01; Case map 1F0A; 1F02; Case map 1F0B; 1F03; Case map 1F0C; 1F04; Case map 1F0D; 1F05; Case map 1F0E; 1F06; Case map 1F0F; 1F07; Case map 1F18; 1F10; Case map 1F19; 1F11; Case map 1F1A; 1F12; Case map 1F1B; 1F13; Case map 1F1C; 1F14; Case map 1F1D; 1F15; Case map 1F28; 1F20; Case map 1F29; 1F21; Case map 1F2A; 1F22; Case map 1F2B; 1F23; Case map 1F2C; 1F24; Case map 1F2D; 1F25; Case map 1F2E; 1F26; Case map 1F2F; 1F27; Case map 1F38; 1F30; Case map 1F39; 1F31; Case map 1F3A; 1F32; Case map 1F3B; 1F33; Case map 1F3C; 1F34; Case map 1F3D; 1F35; Case map 1F3E; 1F36; Case map 1F3F; 1F37; Case map 1F48; 1F40; Case map 1F49; 1F41; Case map 1F4A; 1F42; Case map 1F4B; 1F43; Case map 1F4C; 1F44; Case map 1F4D; 1F45; Case map 1F50; 03C5 0313; Case map 1F52; 03C5 0313 0300; Case map 1F54; 03C5 0313 0301; Case map 1F56; 03C5 0313 0342; Case map 1F59; 1F51; Case map 1F5B; 1F53; Case map 1F5D; 1F55; Case map 1F5F; 1F57; Case map 1F68; 1F60; Case map 1F69; 1F61; Case map 1F6A; 1F62; Case map 1F6B; 1F63; Case map 1F6C; 1F64; Case map 1F6D; 1F65; Case map 1F6E; 1F66; Case map 1F6F; 1F67; Case map 1F80; 1F00 03B9; Case map 1F81; 1F01 03B9; Case map 1F82; 1F02 03B9; Case map 1F83; 1F03 03B9; Case map 1F84; 1F04 03B9; Case map 1F85; 1F05 03B9; Case map 1F86; 1F06 03B9; Case map 1F87; 1F07 03B9; Case map 1F88; 1F00 03B9; Case map 1F89; 1F01 03B9; Case map 1F8A; 1F02 03B9; Case map 1F8B; 1F03 03B9; Case map 1F8C; 1F04 03B9; Case map 1F8D; 1F05 03B9; Case map 1F8E; 1F06 03B9; Case map 1F8F; 1F07 03B9; Case map 1F90; 1F20 03B9; Case map 1F91; 1F21 03B9; Case map 1F92; 1F22 03B9; Case map 1F93; 1F23 03B9; Case map 1F94; 1F24 03B9; Case map 1F95; 1F25 03B9; Case map 1F96; 1F26 03B9; Case map 1F97; 1F27 03B9; Case map 1F98; 1F20 03B9; Case map 1F99; 1F21 03B9; Case map 1F9A; 1F22 03B9; Case map 1F9B; 1F23 03B9; Case map 1F9C; 1F24 03B9; Case map 1F9D; 1F25 03B9; Case map 1F9E; 1F26 03B9; Case map 1F9F; 1F27 03B9; Case map 1FA0; 1F60 03B9; Case map 1FA1; 1F61 03B9; Case map 1FA2; 1F62 03B9; Case map 1FA3; 1F63 03B9; Case map 1FA4; 1F64 03B9; Case map 1FA5; 1F65 03B9; Case map 1FA6; 1F66 03B9; Case map 1FA7; 1F67 03B9; Case map 1FA8; 1F60 03B9; Case map 1FA9; 1F61 03B9; Case map 1FAA; 1F62 03B9; Case map 1FAB; 1F63 03B9; Case map 1FAC; 1F64 03B9; Case map 1FAD; 1F65 03B9; Case map 1FAE; 1F66 03B9; Case map 1FAF; 1F67 03B9; Case map 1FB2; 1F70 03B9; Case map 1FB3; 03B1 03B9; Case map 1FB4; 03AC 03B9; Case map 1FB6; 03B1 0342; Case map 1FB7; 03B1 0342 03B9; Case map 1FB8; 1FB0; Case map 1FB9; 1FB1; Case map 1FBA; 1F70; Case map 1FBB; 1F71; Case map 1FBC; 03B1 03B9; Case map 1FBE; 03B9; Case map 1FC2; 1F74 03B9; Case map 1FC3; 03B7 03B9; Case map 1FC4; 03AE 03B9; Case map 1FC6; 03B7 0342; Case map 1FC7; 03B7 0342 03B9; Case map 1FC8; 1F72; Case map 1FC9; 1F73; Case map 1FCA; 1F74; Case map 1FCB; 1F75; Case map 1FCC; 03B7 03B9; Case map 1FD2; 03B9 0308 0300; Case map 1FD3; 03B9 0308 0301; Case map 1FD6; 03B9 0342; Case map 1FD7; 03B9 0308 0342; Case map 1FD8; 1FD0; Case map 1FD9; 1FD1; Case map 1FDA; 1F76; Case map 1FDB; 1F77; Case map 1FE2; 03C5 0308 0300; Case map 1FE3; 03C5 0308 0301; Case map 1FE4; 03C1 0313; Case map 1FE6; 03C5 0342; Case map 1FE7; 03C5 0308 0342; Case map 1FE8; 1FE0; Case map 1FE9; 1FE1; Case map 1FEA; 1F7A; Case map 1FEB; 1F7B; Case map 1FEC; 1FE5; Case map 1FF2; 1F7C 03B9; Case map 1FF3; 03C9 03B9; Case map 1FF4; 03CE 03B9; Case map 1FF6; 03C9 0342; Case map 1FF7; 03C9 0342 03B9; Case map 1FF8; 1F78; Case map 1FF9; 1F79; Case map 1FFA; 1F7C; Case map 1FFB; 1F7D; Case map 1FFC; 03C9 03B9; Case map 20A8; 0072 0073; Additional folding 2102; 0063; Additional folding 2103; 00B0 0063; Additional folding 2107; 025B; Additional folding 2109; 00B0 0066; Additional folding 210B; 0068; Additional folding 210C; 0068; Additional folding 210D; 0068; Additional folding 2110; 0069; Additional folding 2111; 0069; Additional folding 2112; 006C; Additional folding 2115; 006E; Additional folding 2116; 006E 006F; Additional folding 2119; 0070; Additional folding 211A; 0071; Additional folding 211B; 0072; Additional folding 211C; 0072; Additional folding 211D; 0072; Additional folding 2120; 0073 006D; Additional folding 2121; 0074 0065 006C; Additional folding 2122; 0074 006D; Additional folding 2124; 007A; Additional folding 2126; 03C9; Case map 2128; 007A; Additional folding 212A; 006B; Case map 212B; 00E5; Case map 212C; 0062; Additional folding 212D; 0063; Additional folding 2130; 0065; Additional folding 2131; 0066; Additional folding 2133; 006D; Additional folding 213E; 03B3; Additional folding 213F; 03C0; Additional folding 2145; 0064; Additional folding 2160; 2170; Case map 2161; 2171; Case map 2162; 2172; Case map 2163; 2173; Case map 2164; 2174; Case map 2165; 2175; Case map 2166; 2176; Case map 2167; 2177; Case map 2168; 2178; Case map 2169; 2179; Case map 216A; 217A; Case map 216B; 217B; Case map 216C; 217C; Case map 216D; 217D; Case map 216E; 217E; Case map 216F; 217F; Case map 24B6; 24D0; Case map 24B7; 24D1; Case map 24B8; 24D2; Case map 24B9; 24D3; Case map 24BA; 24D4; Case map 24BB; 24D5; Case map 24BC; 24D6; Case map 24BD; 24D7; Case map 24BE; 24D8; Case map 24BF; 24D9; Case map 24C0; 24DA; Case map 24C1; 24DB; Case map 24C2; 24DC; Case map 24C3; 24DD; Case map 24C4; 24DE; Case map 24C5; 24DF; Case map 24C6; 24E0; Case map 24C7; 24E1; Case map 24C8; 24E2; Case map 24C9; 24E3; Case map 24CA; 24E4; Case map 24CB; 24E5; Case map 24CC; 24E6; Case map 24CD; 24E7; Case map 24CE; 24E8; Case map 24CF; 24E9; Case map 3371; 0068 0070 0061; Additional folding 3373; 0061 0075; Additional folding 3375; 006F 0076; Additional folding 3380; 0070 0061; Additional folding 3381; 006E 0061; Additional folding 3382; 03BC 0061; Additional folding 3383; 006D 0061; Additional folding 3384; 006B 0061; Additional folding 3385; 006B 0062; Additional folding 3386; 006D 0062; Additional folding 3387; 0067 0062; Additional folding 338A; 0070 0066; Additional folding 338B; 006E 0066; Additional folding 338C; 03BC 0066; Additional folding 3390; 0068 007A; Additional folding 3391; 006B 0068 007A; Additional folding 3392; 006D 0068 007A; Additional folding 3393; 0067 0068 007A; Additional folding 3394; 0074 0068 007A; Additional folding 33A9; 0070 0061; Additional folding 33AA; 006B 0070 0061; Additional folding 33AB; 006D 0070 0061; Additional folding 33AC; 0067 0070 0061; Additional folding 33B4; 0070 0076; Additional folding 33B5; 006E 0076; Additional folding 33B6; 03BC 0076; Additional folding 33B7; 006D 0076; Additional folding 33B8; 006B 0076; Additional folding 33B9; 006D 0076; Additional folding 33BA; 0070 0077; Additional folding 33BB; 006E 0077; Additional folding 33BC; 03BC 0077; Additional folding 33BD; 006D 0077; Additional folding 33BE; 006B 0077; Additional folding 33BF; 006D 0077; Additional folding 33C0; 006B 03C9; Additional folding 33C1; 006D 03C9; Additional folding 33C3; 0062 0071; Additional folding 33C6; 0063 2215 006B 0067; Additional folding 33C7; 0063 006F 002E; Additional folding 33C8; 0064 0062; Additional folding 33C9; 0067 0079; Additional folding 33CB; 0068 0070; Additional folding 33CD; 006B 006B; Additional folding 33CE; 006B 006D; Additional folding 33D7; 0070 0068; Additional folding 33D9; 0070 0070 006D; Additional folding 33DA; 0070 0072; Additional folding 33DC; 0073 0076; Additional folding 33DD; 0077 0062; Additional folding FB00; 0066 0066; Case map FB01; 0066 0069; Case map FB02; 0066 006C; Case map FB03; 0066 0066 0069; Case map FB04; 0066 0066 006C; Case map FB05; 0073 0074; Case map FB06; 0073 0074; Case map FB13; 0574 0576; Case map FB14; 0574 0565; Case map FB15; 0574 056B; Case map FB16; 057E 0576; Case map FB17; 0574 056D; Case map FF21; FF41; Case map FF22; FF42; Case map FF23; FF43; Case map FF24; FF44; Case map FF25; FF45; Case map FF26; FF46; Case map FF27; FF47; Case map FF28; FF48; Case map FF29; FF49; Case map FF2A; FF4A; Case map FF2B; FF4B; Case map FF2C; FF4C; Case map FF2D; FF4D; Case map FF2E; FF4E; Case map FF2F; FF4F; Case map FF30; FF50; Case map FF31; FF51; Case map FF32; FF52; Case map FF33; FF53; Case map FF34; FF54; Case map FF35; FF55; Case map FF36; FF56; Case map FF37; FF57; Case map FF38; FF58; Case map FF39; FF59; Case map FF3A; FF5A; Case map 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 1D400; 0061; Additional folding 1D401; 0062; Additional folding 1D402; 0063; Additional folding 1D403; 0064; Additional folding 1D404; 0065; Additional folding 1D405; 0066; Additional folding 1D406; 0067; Additional folding 1D407; 0068; Additional folding 1D408; 0069; Additional folding 1D409; 006A; Additional folding 1D40A; 006B; Additional folding 1D40B; 006C; Additional folding 1D40C; 006D; Additional folding 1D40D; 006E; Additional folding 1D40E; 006F; Additional folding 1D40F; 0070; Additional folding 1D410; 0071; Additional folding 1D411; 0072; Additional folding 1D412; 0073; Additional folding 1D413; 0074; Additional folding 1D414; 0075; Additional folding 1D415; 0076; Additional folding 1D416; 0077; Additional folding 1D417; 0078; Additional folding 1D418; 0079; Additional folding 1D419; 007A; Additional folding 1D434; 0061; Additional folding 1D435; 0062; Additional folding 1D436; 0063; Additional folding 1D437; 0064; Additional folding 1D438; 0065; Additional folding 1D439; 0066; Additional folding 1D43A; 0067; Additional folding 1D43B; 0068; Additional folding 1D43C; 0069; Additional folding 1D43D; 006A; Additional folding 1D43E; 006B; Additional folding 1D43F; 006C; Additional folding 1D440; 006D; Additional folding 1D441; 006E; Additional folding 1D442; 006F; Additional folding 1D443; 0070; Additional folding 1D444; 0071; Additional folding 1D445; 0072; Additional folding 1D446; 0073; Additional folding 1D447; 0074; Additional folding 1D448; 0075; Additional folding 1D449; 0076; Additional folding 1D44A; 0077; Additional folding 1D44B; 0078; Additional folding 1D44C; 0079; Additional folding 1D44D; 007A; Additional folding 1D468; 0061; Additional folding 1D469; 0062; Additional folding 1D46A; 0063; Additional folding 1D46B; 0064; Additional folding 1D46C; 0065; Additional folding 1D46D; 0066; Additional folding 1D46E; 0067; Additional folding 1D46F; 0068; Additional folding 1D470; 0069; Additional folding 1D471; 006A; Additional folding 1D472; 006B; Additional folding 1D473; 006C; Additional folding 1D474; 006D; Additional folding 1D475; 006E; Additional folding 1D476; 006F; Additional folding 1D477; 0070; Additional folding 1D478; 0071; Additional folding 1D479; 0072; Additional folding 1D47A; 0073; Additional folding 1D47B; 0074; Additional folding 1D47C; 0075; Additional folding 1D47D; 0076; Additional folding 1D47E; 0077; Additional folding 1D47F; 0078; Additional folding 1D480; 0079; Additional folding 1D481; 007A; Additional folding 1D49C; 0061; Additional folding 1D49E; 0063; Additional folding 1D49F; 0064; Additional folding 1D4A2; 0067; Additional folding 1D4A5; 006A; Additional folding 1D4A6; 006B; Additional folding 1D4A9; 006E; Additional folding 1D4AA; 006F; Additional folding 1D4AB; 0070; Additional folding 1D4AC; 0071; Additional folding 1D4AE; 0073; Additional folding 1D4AF; 0074; Additional folding 1D4B0; 0075; Additional folding 1D4B1; 0076; Additional folding 1D4B2; 0077; Additional folding 1D4B3; 0078; Additional folding 1D4B4; 0079; Additional folding 1D4B5; 007A; Additional folding 1D4D0; 0061; Additional folding 1D4D1; 0062; Additional folding 1D4D2; 0063; Additional folding 1D4D3; 0064; Additional folding 1D4D4; 0065; Additional folding 1D4D5; 0066; Additional folding 1D4D6; 0067; Additional folding 1D4D7; 0068; Additional folding 1D4D8; 0069; Additional folding 1D4D9; 006A; Additional folding 1D4DA; 006B; Additional folding 1D4DB; 006C; Additional folding 1D4DC; 006D; Additional folding 1D4DD; 006E; Additional folding 1D4DE; 006F; Additional folding 1D4DF; 0070; Additional folding 1D4E0; 0071; Additional folding 1D4E1; 0072; Additional folding 1D4E2; 0073; Additional folding 1D4E3; 0074; Additional folding 1D4E4; 0075; Additional folding 1D4E5; 0076; Additional folding 1D4E6; 0077; Additional folding 1D4E7; 0078; Additional folding 1D4E8; 0079; Additional folding 1D4E9; 007A; Additional folding 1D504; 0061; Additional folding 1D505; 0062; Additional folding 1D507; 0064; Additional folding 1D508; 0065; Additional folding 1D509; 0066; Additional folding 1D50A; 0067; Additional folding 1D50D; 006A; Additional folding 1D50E; 006B; Additional folding 1D50F; 006C; Additional folding 1D510; 006D; Additional folding 1D511; 006E; Additional folding 1D512; 006F; Additional folding 1D513; 0070; Additional folding 1D514; 0071; Additional folding 1D516; 0073; Additional folding 1D517; 0074; Additional folding 1D518; 0075; Additional folding 1D519; 0076; Additional folding 1D51A; 0077; Additional folding 1D51B; 0078; Additional folding 1D51C; 0079; Additional folding 1D538; 0061; Additional folding 1D539; 0062; Additional folding 1D53B; 0064; Additional folding 1D53C; 0065; Additional folding 1D53D; 0066; Additional folding 1D53E; 0067; Additional folding 1D540; 0069; Additional folding 1D541; 006A; Additional folding 1D542; 006B; Additional folding 1D543; 006C; Additional folding 1D544; 006D; Additional folding 1D546; 006F; Additional folding 1D54A; 0073; Additional folding 1D54B; 0074; Additional folding 1D54C; 0075; Additional folding 1D54D; 0076; Additional folding 1D54E; 0077; Additional folding 1D54F; 0078; Additional folding 1D550; 0079; Additional folding 1D56C; 0061; Additional folding 1D56D; 0062; Additional folding 1D56E; 0063; Additional folding 1D56F; 0064; Additional folding 1D570; 0065; Additional folding 1D571; 0066; Additional folding 1D572; 0067; Additional folding 1D573; 0068; Additional folding 1D574; 0069; Additional folding 1D575; 006A; Additional folding 1D576; 006B; Additional folding 1D577; 006C; Additional folding 1D578; 006D; Additional folding 1D579; 006E; Additional folding 1D57A; 006F; Additional folding 1D57B; 0070; Additional folding 1D57C; 0071; Additional folding 1D57D; 0072; Additional folding 1D57E; 0073; Additional folding 1D57F; 0074; Additional folding 1D580; 0075; Additional folding 1D581; 0076; Additional folding 1D582; 0077; Additional folding 1D583; 0078; Additional folding 1D584; 0079; Additional folding 1D585; 007A; Additional folding 1D5A0; 0061; Additional folding 1D5A1; 0062; Additional folding 1D5A2; 0063; Additional folding 1D5A3; 0064; Additional folding 1D5A4; 0065; Additional folding 1D5A5; 0066; Additional folding 1D5A6; 0067; Additional folding 1D5A7; 0068; Additional folding 1D5A8; 0069; Additional folding 1D5A9; 006A; Additional folding 1D5AA; 006B; Additional folding 1D5AB; 006C; Additional folding 1D5AC; 006D; Additional folding 1D5AD; 006E; Additional folding 1D5AE; 006F; Additional folding 1D5AF; 0070; Additional folding 1D5B0; 0071; Additional folding 1D5B1; 0072; Additional folding 1D5B2; 0073; Additional folding 1D5B3; 0074; Additional folding 1D5B4; 0075; Additional folding 1D5B5; 0076; Additional folding 1D5B6; 0077; Additional folding 1D5B7; 0078; Additional folding 1D5B8; 0079; Additional folding 1D5B9; 007A; Additional folding 1D5D4; 0061; Additional folding 1D5D5; 0062; Additional folding 1D5D6; 0063; Additional folding 1D5D7; 0064; Additional folding 1D5D8; 0065; Additional folding 1D5D9; 0066; Additional folding 1D5DA; 0067; Additional folding 1D5DB; 0068; Additional folding 1D5DC; 0069; Additional folding 1D5DD; 006A; Additional folding 1D5DE; 006B; Additional folding 1D5DF; 006C; Additional folding 1D5E0; 006D; Additional folding 1D5E1; 006E; Additional folding 1D5E2; 006F; Additional folding 1D5E3; 0070; Additional folding 1D5E4; 0071; Additional folding 1D5E5; 0072; Additional folding 1D5E6; 0073; Additional folding 1D5E7; 0074; Additional folding 1D5E8; 0075; Additional folding 1D5E9; 0076; Additional folding 1D5EA; 0077; Additional folding 1D5EB; 0078; Additional folding 1D5EC; 0079; Additional folding 1D5ED; 007A; Additional folding 1D608; 0061; Additional folding 1D609; 0062; Additional folding 1D60A; 0063; Additional folding 1D60B; 0064; Additional folding 1D60C; 0065; Additional folding 1D60D; 0066; Additional folding 1D60E; 0067; Additional folding 1D60F; 0068; Additional folding 1D610; 0069; Additional folding 1D611; 006A; Additional folding 1D612; 006B; Additional folding 1D613; 006C; Additional folding 1D614; 006D; Additional folding 1D615; 006E; Additional folding 1D616; 006F; Additional folding 1D617; 0070; Additional folding 1D618; 0071; Additional folding 1D619; 0072; Additional folding 1D61A; 0073; Additional folding 1D61B; 0074; Additional folding 1D61C; 0075; Additional folding 1D61D; 0076; Additional folding 1D61E; 0077; Additional folding 1D61F; 0078; Additional folding 1D620; 0079; Additional folding 1D621; 007A; Additional folding 1D63C; 0061; Additional folding 1D63D; 0062; Additional folding 1D63E; 0063; Additional folding 1D63F; 0064; Additional folding 1D640; 0065; Additional folding 1D641; 0066; Additional folding 1D642; 0067; Additional folding 1D643; 0068; Additional folding 1D644; 0069; Additional folding 1D645; 006A; Additional folding 1D646; 006B; Additional folding 1D647; 006C; Additional folding 1D648; 006D; Additional folding 1D649; 006E; Additional folding 1D64A; 006F; Additional folding 1D64B; 0070; Additional folding 1D64C; 0071; Additional folding 1D64D; 0072; Additional folding 1D64E; 0073; Additional folding 1D64F; 0074; Additional folding 1D650; 0075; Additional folding 1D651; 0076; Additional folding 1D652; 0077; Additional folding 1D653; 0078; Additional folding 1D654; 0079; Additional folding 1D655; 007A; Additional folding 1D670; 0061; Additional folding 1D671; 0062; Additional folding 1D672; 0063; Additional folding 1D673; 0064; Additional folding 1D674; 0065; Additional folding 1D675; 0066; Additional folding 1D676; 0067; Additional folding 1D677; 0068; Additional folding 1D678; 0069; Additional folding 1D679; 006A; Additional folding 1D67A; 006B; Additional folding 1D67B; 006C; Additional folding 1D67C; 006D; Additional folding 1D67D; 006E; Additional folding 1D67E; 006F; Additional folding 1D67F; 0070; Additional folding 1D680; 0071; Additional folding 1D681; 0072; Additional folding 1D682; 0073; Additional folding 1D683; 0074; Additional folding 1D684; 0075; Additional folding 1D685; 0076; Additional folding 1D686; 0077; Additional folding 1D687; 0078; Additional folding 1D688; 0079; Additional folding 1D689; 007A; Additional folding 1D6A8; 03B1; Additional folding 1D6A9; 03B2; Additional folding 1D6AA; 03B3; Additional folding 1D6AB; 03B4; Additional folding 1D6AC; 03B5; Additional folding 1D6AD; 03B6; Additional folding 1D6AE; 03B7; Additional folding 1D6AF; 03B8; Additional folding 1D6B0; 03B9; Additional folding 1D6B1; 03BA; Additional folding 1D6B2; 03BB; Additional folding 1D6B3; 03BC; Additional folding 1D6B4; 03BD; Additional folding 1D6B5; 03BE; Additional folding 1D6B6; 03BF; Additional folding 1D6B7; 03C0; Additional folding 1D6B8; 03C1; Additional folding 1D6B9; 03B8; Additional folding 1D6BA; 03C3; Additional folding 1D6BB; 03C4; Additional folding 1D6BC; 03C5; Additional folding 1D6BD; 03C6; Additional folding 1D6BE; 03C7; Additional folding 1D6BF; 03C8; Additional folding 1D6C0; 03C9; Additional folding 1D6D3; 03C3; Additional folding 1D6E2; 03B1; Additional folding 1D6E3; 03B2; Additional folding 1D6E4; 03B3; Additional folding 1D6E5; 03B4; Additional folding 1D6E6; 03B5; Additional folding 1D6E7; 03B6; Additional folding 1D6E8; 03B7; Additional folding 1D6E9; 03B8; Additional folding 1D6EA; 03B9; Additional folding 1D6EB; 03BA; Additional folding 1D6EC; 03BB; Additional folding 1D6ED; 03BC; Additional folding 1D6EE; 03BD; Additional folding 1D6EF; 03BE; Additional folding 1D6F0; 03BF; Additional folding 1D6F1; 03C0; Additional folding 1D6F2; 03C1; Additional folding 1D6F3; 03B8; Additional folding 1D6F4; 03C3; Additional folding 1D6F5; 03C4; Additional folding 1D6F6; 03C5; Additional folding 1D6F7; 03C6; Additional folding 1D6F8; 03C7; Additional folding 1D6F9; 03C8; Additional folding 1D6FA; 03C9; Additional folding 1D70D; 03C3; Additional folding 1D71C; 03B1; Additional folding 1D71D; 03B2; Additional folding 1D71E; 03B3; Additional folding 1D71F; 03B4; Additional folding 1D720; 03B5; Additional folding 1D721; 03B6; Additional folding 1D722; 03B7; Additional folding 1D723; 03B8; Additional folding 1D724; 03B9; Additional folding 1D725; 03BA; Additional folding 1D726; 03BB; Additional folding 1D727; 03BC; Additional folding 1D728; 03BD; Additional folding 1D729; 03BE; Additional folding 1D72A; 03BF; Additional folding 1D72B; 03C0; Additional folding 1D72C; 03C1; Additional folding 1D72D; 03B8; Additional folding 1D72E; 03C3; Additional folding 1D72F; 03C4; Additional folding 1D730; 03C5; Additional folding 1D731; 03C6; Additional folding 1D732; 03C7; Additional folding 1D733; 03C8; Additional folding 1D734; 03C9; Additional folding 1D747; 03C3; Additional folding 1D756; 03B1; Additional folding 1D757; 03B2; Additional folding 1D758; 03B3; Additional folding 1D759; 03B4; Additional folding 1D75A; 03B5; Additional folding 1D75B; 03B6; Additional folding 1D75C; 03B7; Additional folding 1D75D; 03B8; Additional folding 1D75E; 03B9; Additional folding 1D75F; 03BA; Additional folding 1D760; 03BB; Additional folding 1D761; 03BC; Additional folding 1D762; 03BD; Additional folding 1D763; 03BE; Additional folding 1D764; 03BF; Additional folding 1D765; 03C0; Additional folding 1D766; 03C1; Additional folding 1D767; 03B8; Additional folding 1D768; 03C3; Additional folding 1D769; 03C4; Additional folding 1D76A; 03C5; Additional folding 1D76B; 03C6; Additional folding 1D76C; 03C7; Additional folding 1D76D; 03C8; Additional folding 1D76E; 03C9; Additional folding 1D781; 03C3; Additional folding 1D790; 03B1; Additional folding 1D791; 03B2; Additional folding 1D792; 03B3; Additional folding 1D793; 03B4; Additional folding 1D794; 03B5; Additional folding 1D795; 03B6; Additional folding 1D796; 03B7; Additional folding 1D797; 03B8; Additional folding 1D798; 03B9; Additional folding 1D799; 03BA; Additional folding 1D79A; 03BB; Additional folding 1D79B; 03BC; Additional folding 1D79C; 03BD; Additional folding 1D79D; 03BE; Additional folding 1D79E; 03BF; Additional folding 1D79F; 03C0; Additional folding 1D7A0; 03C1; Additional folding 1D7A1; 03B8; Additional folding 1D7A2; 03C3; Additional folding 1D7A3; 03C4; Additional folding 1D7A4; 03C5; Additional folding 1D7A5; 03C6; Additional folding 1D7A6; 03C7; Additional folding 1D7A7; 03C8; Additional folding 1D7A8; 03C9; Additional folding 1D7BB; 03C3; Additional folding ----- End Table B.2 ----- ----- Start Table B.3 ----- 0041; 0061; Case map 0042; 0062; Case map 0043; 0063; Case map 0044; 0064; Case map 0045; 0065; Case map 0046; 0066; Case map 0047; 0067; Case map 0048; 0068; Case map 0049; 0069; Case map 004A; 006A; Case map 004B; 006B; Case map 004C; 006C; Case map 004D; 006D; Case map 004E; 006E; Case map 004F; 006F; Case map 0050; 0070; Case map 0051; 0071; Case map 0052; 0072; Case map 0053; 0073; Case map 0054; 0074; Case map 0055; 0075; Case map 0056; 0076; Case map 0057; 0077; Case map 0058; 0078; Case map 0059; 0079; Case map 005A; 007A; Case map 00B5; 03BC; Case map 00C0; 00E0; Case map 00C1; 00E1; Case map 00C2; 00E2; Case map 00C3; 00E3; Case map 00C4; 00E4; Case map 00C5; 00E5; Case map 00C6; 00E6; Case map 00C7; 00E7; Case map 00C8; 00E8; Case map 00C9; 00E9; Case map 00CA; 00EA; Case map 00CB; 00EB; Case map 00CC; 00EC; Case map 00CD; 00ED; Case map 00CE; 00EE; Case map 00CF; 00EF; Case map 00D0; 00F0; Case map 00D1; 00F1; Case map 00D2; 00F2; Case map 00D3; 00F3; Case map 00D4; 00F4; Case map 00D5; 00F5; Case map 00D6; 00F6; Case map 00D8; 00F8; Case map 00D9; 00F9; Case map 00DA; 00FA; Case map 00DB; 00FB; Case map 00DC; 00FC; Case map 00DD; 00FD; Case map 00DE; 00FE; Case map 00DF; 0073 0073; Case map 0100; 0101; Case map 0102; 0103; Case map 0104; 0105; Case map 0106; 0107; Case map 0108; 0109; Case map 010A; 010B; Case map 010C; 010D; Case map 010E; 010F; Case map 0110; 0111; Case map 0112; 0113; Case map 0114; 0115; Case map 0116; 0117; Case map 0118; 0119; Case map 011A; 011B; Case map 011C; 011D; Case map 011E; 011F; Case map 0120; 0121; Case map 0122; 0123; Case map 0124; 0125; Case map 0126; 0127; Case map 0128; 0129; Case map 012A; 012B; Case map 012C; 012D; Case map 012E; 012F; Case map 0130; 0069 0307; Case map 0132; 0133; Case map 0134; 0135; Case map 0136; 0137; Case map 0139; 013A; Case map 013B; 013C; Case map 013D; 013E; Case map 013F; 0140; Case map 0141; 0142; Case map 0143; 0144; Case map 0145; 0146; Case map 0147; 0148; Case map 0149; 02BC 006E; Case map 014A; 014B; Case map 014C; 014D; Case map 014E; 014F; Case map 0150; 0151; Case map 0152; 0153; Case map 0154; 0155; Case map 0156; 0157; Case map 0158; 0159; Case map 015A; 015B; Case map 015C; 015D; Case map 015E; 015F; Case map 0160; 0161; Case map 0162; 0163; Case map 0164; 0165; Case map 0166; 0167; Case map 0168; 0169; Case map 016A; 016B; Case map 016C; 016D; Case map 016E; 016F; Case map 0170; 0171; Case map 0172; 0173; Case map 0174; 0175; Case map 0176; 0177; Case map 0178; 00FF; Case map 0179; 017A; Case map 017B; 017C; Case map 017D; 017E; Case map 017F; 0073; Case map 0181; 0253; Case map 0182; 0183; Case map 0184; 0185; Case map 0186; 0254; Case map 0187; 0188; Case map 0189; 0256; Case map 018A; 0257; Case map 018B; 018C; Case map 018E; 01DD; Case map 018F; 0259; Case map 0190; 025B; Case map 0191; 0192; Case map 0193; 0260; Case map 0194; 0263; Case map 0196; 0269; Case map 0197; 0268; Case map 0198; 0199; Case map 019C; 026F; Case map 019D; 0272; Case map 019F; 0275; Case map 01A0; 01A1; Case map 01A2; 01A3; Case map 01A4; 01A5; Case map 01A6; 0280; Case map 01A7; 01A8; Case map 01A9; 0283; Case map 01AC; 01AD; Case map 01AE; 0288; Case map 01AF; 01B0; Case map 01B1; 028A; Case map 01B2; 028B; Case map 01B3; 01B4; Case map 01B5; 01B6; Case map 01B7; 0292; Case map 01B8; 01B9; Case map 01BC; 01BD; Case map 01C4; 01C6; Case map 01C5; 01C6; Case map 01C7; 01C9; Case map 01C8; 01C9; Case map 01CA; 01CC; Case map 01CB; 01CC; Case map 01CD; 01CE; Case map 01CF; 01D0; Case map 01D1; 01D2; Case map 01D3; 01D4; Case map 01D5; 01D6; Case map 01D7; 01D8; Case map 01D9; 01DA; Case map 01DB; 01DC; Case map 01DE; 01DF; Case map 01E0; 01E1; Case map 01E2; 01E3; Case map 01E4; 01E5; Case map 01E6; 01E7; Case map 01E8; 01E9; Case map 01EA; 01EB; Case map 01EC; 01ED; Case map 01EE; 01EF; Case map 01F0; 006A 030C; Case map 01F1; 01F3; Case map 01F2; 01F3; Case map 01F4; 01F5; Case map 01F6; 0195; Case map 01F7; 01BF; Case map 01F8; 01F9; Case map 01FA; 01FB; Case map 01FC; 01FD; Case map 01FE; 01FF; Case map 0200; 0201; Case map 0202; 0203; Case map 0204; 0205; Case map 0206; 0207; Case map 0208; 0209; Case map 020A; 020B; Case map 020C; 020D; Case map 020E; 020F; Case map 0210; 0211; Case map 0212; 0213; Case map 0214; 0215; Case map 0216; 0217; Case map 0218; 0219; Case map 021A; 021B; Case map 021C; 021D; Case map 021E; 021F; Case map 0220; 019E; Case map 0222; 0223; Case map 0224; 0225; Case map 0226; 0227; Case map 0228; 0229; Case map 022A; 022B; Case map 022C; 022D; Case map 022E; 022F; Case map 0230; 0231; Case map 0232; 0233; Case map 0345; 03B9; Case map 0386; 03AC; Case map 0388; 03AD; Case map 0389; 03AE; Case map 038A; 03AF; Case map 038C; 03CC; Case map 038E; 03CD; Case map 038F; 03CE; Case map 0390; 03B9 0308 0301; Case map 0391; 03B1; Case map 0392; 03B2; Case map 0393; 03B3; Case map 0394; 03B4; Case map 0395; 03B5; Case map 0396; 03B6; Case map 0397; 03B7; Case map 0398; 03B8; Case map 0399; 03B9; Case map 039A; 03BA; Case map 039B; 03BB; Case map 039C; 03BC; Case map 039D; 03BD; Case map 039E; 03BE; Case map 039F; 03BF; Case map 03A0; 03C0; Case map 03A1; 03C1; Case map 03A3; 03C3; Case map 03A4; 03C4; Case map 03A5; 03C5; Case map 03A6; 03C6; Case map 03A7; 03C7; Case map 03A8; 03C8; Case map 03A9; 03C9; Case map 03AA; 03CA; Case map 03AB; 03CB; Case map 03B0; 03C5 0308 0301; Case map 03C2; 03C3; Case map 03D0; 03B2; Case map 03D1; 03B8; Case map 03D5; 03C6; Case map 03D6; 03C0; Case map 03D8; 03D9; Case map 03DA; 03DB; Case map 03DC; 03DD; Case map 03DE; 03DF; Case map 03E0; 03E1; Case map 03E2; 03E3; Case map 03E4; 03E5; Case map 03E6; 03E7; Case map 03E8; 03E9; Case map 03EA; 03EB; Case map 03EC; 03ED; Case map 03EE; 03EF; Case map 03F0; 03BA; Case map 03F1; 03C1; Case map 03F2; 03C3; Case map 03F4; 03B8; Case map 03F5; 03B5; Case map 0400; 0450; Case map 0401; 0451; Case map 0402; 0452; Case map 0403; 0453; Case map 0404; 0454; Case map 0405; 0455; Case map 0406; 0456; Case map 0407; 0457; Case map 0408; 0458; Case map 0409; 0459; Case map 040A; 045A; Case map 040B; 045B; Case map 040C; 045C; Case map 040D; 045D; Case map 040E; 045E; Case map 040F; 045F; Case map 0410; 0430; Case map 0411; 0431; Case map 0412; 0432; Case map 0413; 0433; Case map 0414; 0434; Case map 0415; 0435; Case map 0416; 0436; Case map 0417; 0437; Case map 0418; 0438; Case map 0419; 0439; Case map 041A; 043A; Case map 041B; 043B; Case map 041C; 043C; Case map 041D; 043D; Case map 041E; 043E; Case map 041F; 043F; Case map 0420; 0440; Case map 0421; 0441; Case map 0422; 0442; Case map 0423; 0443; Case map 0424; 0444; Case map 0425; 0445; Case map 0426; 0446; Case map 0427; 0447; Case map 0428; 0448; Case map 0429; 0449; Case map 042A; 044A; Case map 042B; 044B; Case map 042C; 044C; Case map 042D; 044D; Case map 042E; 044E; Case map 042F; 044F; Case map 0460; 0461; Case map 0462; 0463; Case map 0464; 0465; Case map 0466; 0467; Case map 0468; 0469; Case map 046A; 046B; Case map 046C; 046D; Case map 046E; 046F; Case map 0470; 0471; Case map 0472; 0473; Case map 0474; 0475; Case map 0476; 0477; Case map 0478; 0479; Case map 047A; 047B; Case map 047C; 047D; Case map 047E; 047F; Case map 0480; 0481; Case map 048A; 048B; Case map 048C; 048D; Case map 048E; 048F; Case map 0490; 0491; Case map 0492; 0493; Case map 0494; 0495; Case map 0496; 0497; Case map 0498; 0499; Case map 049A; 049B; Case map 049C; 049D; Case map 049E; 049F; Case map 04A0; 04A1; Case map 04A2; 04A3; Case map 04A4; 04A5; Case map 04A6; 04A7; Case map 04A8; 04A9; Case map 04AA; 04AB; Case map 04AC; 04AD; Case map 04AE; 04AF; Case map 04B0; 04B1; Case map 04B2; 04B3; Case map 04B4; 04B5; Case map 04B6; 04B7; Case map 04B8; 04B9; Case map 04BA; 04BB; Case map 04BC; 04BD; Case map 04BE; 04BF; Case map 04C1; 04C2; Case map 04C3; 04C4; Case map 04C5; 04C6; Case map 04C7; 04C8; Case map 04C9; 04CA; Case map 04CB; 04CC; Case map 04CD; 04CE; Case map 04D0; 04D1; Case map 04D2; 04D3; Case map 04D4; 04D5; Case map 04D6; 04D7; Case map 04D8; 04D9; Case map 04DA; 04DB; Case map 04DC; 04DD; Case map 04DE; 04DF; Case map 04E0; 04E1; Case map 04E2; 04E3; Case map 04E4; 04E5; Case map 04E6; 04E7; Case map 04E8; 04E9; Case map 04EA; 04EB; Case map 04EC; 04ED; Case map 04EE; 04EF; Case map 04F0; 04F1; Case map 04F2; 04F3; Case map 04F4; 04F5; Case map 04F8; 04F9; Case map 0500; 0501; Case map 0502; 0503; Case map 0504; 0505; Case map 0506; 0507; Case map 0508; 0509; Case map 050A; 050B; Case map 050C; 050D; Case map 050E; 050F; Case map 0531; 0561; Case map 0532; 0562; Case map 0533; 0563; Case map 0534; 0564; Case map 0535; 0565; Case map 0536; 0566; Case map 0537; 0567; Case map 0538; 0568; Case map 0539; 0569; Case map 053A; 056A; Case map 053B; 056B; Case map 053C; 056C; Case map 053D; 056D; Case map 053E; 056E; Case map 053F; 056F; Case map 0540; 0570; Case map 0541; 0571; Case map 0542; 0572; Case map 0543; 0573; Case map 0544; 0574; Case map 0545; 0575; Case map 0546; 0576; Case map 0547; 0577; Case map 0548; 0578; Case map 0549; 0579; Case map 054A; 057A; Case map 054B; 057B; Case map 054C; 057C; Case map 054D; 057D; Case map 054E; 057E; Case map 054F; 057F; Case map 0550; 0580; Case map 0551; 0581; Case map 0552; 0582; Case map 0553; 0583; Case map 0554; 0584; Case map 0555; 0585; Case map 0556; 0586; Case map 0587; 0565 0582; Case map 1E00; 1E01; Case map 1E02; 1E03; Case map 1E04; 1E05; Case map 1E06; 1E07; Case map 1E08; 1E09; Case map 1E0A; 1E0B; Case map 1E0C; 1E0D; Case map 1E0E; 1E0F; Case map 1E10; 1E11; Case map 1E12; 1E13; Case map 1E14; 1E15; Case map 1E16; 1E17; Case map 1E18; 1E19; Case map 1E1A; 1E1B; Case map 1E1C; 1E1D; Case map 1E1E; 1E1F; Case map 1E20; 1E21; Case map 1E22; 1E23; Case map 1E24; 1E25; Case map 1E26; 1E27; Case map 1E28; 1E29; Case map 1E2A; 1E2B; Case map 1E2C; 1E2D; Case map 1E2E; 1E2F; Case map 1E30; 1E31; Case map 1E32; 1E33; Case map 1E34; 1E35; Case map 1E36; 1E37; Case map 1E38; 1E39; Case map 1E3A; 1E3B; Case map 1E3C; 1E3D; Case map 1E3E; 1E3F; Case map 1E40; 1E41; Case map 1E42; 1E43; Case map 1E44; 1E45; Case map 1E46; 1E47; Case map 1E48; 1E49; Case map 1E4A; 1E4B; Case map 1E4C; 1E4D; Case map 1E4E; 1E4F; Case map 1E50; 1E51; Case map 1E52; 1E53; Case map 1E54; 1E55; Case map 1E56; 1E57; Case map 1E58; 1E59; Case map 1E5A; 1E5B; Case map 1E5C; 1E5D; Case map 1E5E; 1E5F; Case map 1E60; 1E61; Case map 1E62; 1E63; Case map 1E64; 1E65; Case map 1E66; 1E67; Case map 1E68; 1E69; Case map 1E6A; 1E6B; Case map 1E6C; 1E6D; Case map 1E6E; 1E6F; Case map 1E70; 1E71; Case map 1E72; 1E73; Case map 1E74; 1E75; Case map 1E76; 1E77; Case map 1E78; 1E79; Case map 1E7A; 1E7B; Case map 1E7C; 1E7D; Case map 1E7E; 1E7F; Case map 1E80; 1E81; Case map 1E82; 1E83; Case map 1E84; 1E85; Case map 1E86; 1E87; Case map 1E88; 1E89; Case map 1E8A; 1E8B; Case map 1E8C; 1E8D; Case map 1E8E; 1E8F; Case map 1E90; 1E91; Case map 1E92; 1E93; Case map 1E94; 1E95; Case map 1E96; 0068 0331; Case map 1E97; 0074 0308; Case map 1E98; 0077 030A; Case map 1E99; 0079 030A; Case map 1E9A; 0061 02BE; Case map 1E9B; 1E61; Case map 1EA0; 1EA1; Case map 1EA2; 1EA3; Case map 1EA4; 1EA5; Case map 1EA6; 1EA7; Case map 1EA8; 1EA9; Case map 1EAA; 1EAB; Case map 1EAC; 1EAD; Case map 1EAE; 1EAF; Case map 1EB0; 1EB1; Case map 1EB2; 1EB3; Case map 1EB4; 1EB5; Case map 1EB6; 1EB7; Case map 1EB8; 1EB9; Case map 1EBA; 1EBB; Case map 1EBC; 1EBD; Case map 1EBE; 1EBF; Case map 1EC0; 1EC1; Case map 1EC2; 1EC3; Case map 1EC4; 1EC5; Case map 1EC6; 1EC7; Case map 1EC8; 1EC9; Case map 1ECA; 1ECB; Case map 1ECC; 1ECD; Case map 1ECE; 1ECF; Case map 1ED0; 1ED1; Case map 1ED2; 1ED3; Case map 1ED4; 1ED5; Case map 1ED6; 1ED7; Case map 1ED8; 1ED9; Case map 1EDA; 1EDB; Case map 1EDC; 1EDD; Case map 1EDE; 1EDF; Case map 1EE0; 1EE1; Case map 1EE2; 1EE3; Case map 1EE4; 1EE5; Case map 1EE6; 1EE7; Case map 1EE8; 1EE9; Case map 1EEA; 1EEB; Case map 1EEC; 1EED; Case map 1EEE; 1EEF; Case map 1EF0; 1EF1; Case map 1EF2; 1EF3; Case map 1EF4; 1EF5; Case map 1EF6; 1EF7; Case map 1EF8; 1EF9; Case map 1F08; 1F00; Case map 1F09; 1F01; Case map 1F0A; 1F02; Case map 1F0B; 1F03; Case map 1F0C; 1F04; Case map 1F0D; 1F05; Case map 1F0E; 1F06; Case map 1F0F; 1F07; Case map 1F18; 1F10; Case map 1F19; 1F11; Case map 1F1A; 1F12; Case map 1F1B; 1F13; Case map 1F1C; 1F14; Case map 1F1D; 1F15; Case map 1F28; 1F20; Case map 1F29; 1F21; Case map 1F2A; 1F22; Case map 1F2B; 1F23; Case map 1F2C; 1F24; Case map 1F2D; 1F25; Case map 1F2E; 1F26; Case map 1F2F; 1F27; Case map 1F38; 1F30; Case map 1F39; 1F31; Case map 1F3A; 1F32; Case map 1F3B; 1F33; Case map 1F3C; 1F34; Case map 1F3D; 1F35; Case map 1F3E; 1F36; Case map 1F3F; 1F37; Case map 1F48; 1F40; Case map 1F49; 1F41; Case map 1F4A; 1F42; Case map 1F4B; 1F43; Case map 1F4C; 1F44; Case map 1F4D; 1F45; Case map 1F50; 03C5 0313; Case map 1F52; 03C5 0313 0300; Case map 1F54; 03C5 0313 0301; Case map 1F56; 03C5 0313 0342; Case map 1F59; 1F51; Case map 1F5B; 1F53; Case map 1F5D; 1F55; Case map 1F5F; 1F57; Case map 1F68; 1F60; Case map 1F69; 1F61; Case map 1F6A; 1F62; Case map 1F6B; 1F63; Case map 1F6C; 1F64; Case map 1F6D; 1F65; Case map 1F6E; 1F66; Case map 1F6F; 1F67; Case map 1F80; 1F00 03B9; Case map 1F81; 1F01 03B9; Case map 1F82; 1F02 03B9; Case map 1F83; 1F03 03B9; Case map 1F84; 1F04 03B9; Case map 1F85; 1F05 03B9; Case map 1F86; 1F06 03B9; Case map 1F87; 1F07 03B9; Case map 1F88; 1F00 03B9; Case map 1F89; 1F01 03B9; Case map 1F8A; 1F02 03B9; Case map 1F8B; 1F03 03B9; Case map 1F8C; 1F04 03B9; Case map 1F8D; 1F05 03B9; Case map 1F8E; 1F06 03B9; Case map 1F8F; 1F07 03B9; Case map 1F90; 1F20 03B9; Case map 1F91; 1F21 03B9; Case map 1F92; 1F22 03B9; Case map 1F93; 1F23 03B9; Case map 1F94; 1F24 03B9; Case map 1F95; 1F25 03B9; Case map 1F96; 1F26 03B9; Case map 1F97; 1F27 03B9; Case map 1F98; 1F20 03B9; Case map 1F99; 1F21 03B9; Case map 1F9A; 1F22 03B9; Case map 1F9B; 1F23 03B9; Case map 1F9C; 1F24 03B9; Case map 1F9D; 1F25 03B9; Case map 1F9E; 1F26 03B9; Case map 1F9F; 1F27 03B9; Case map 1FA0; 1F60 03B9; Case map 1FA1; 1F61 03B9; Case map 1FA2; 1F62 03B9; Case map 1FA3; 1F63 03B9; Case map 1FA4; 1F64 03B9; Case map 1FA5; 1F65 03B9; Case map 1FA6; 1F66 03B9; Case map 1FA7; 1F67 03B9; Case map 1FA8; 1F60 03B9; Case map 1FA9; 1F61 03B9; Case map 1FAA; 1F62 03B9; Case map 1FAB; 1F63 03B9; Case map 1FAC; 1F64 03B9; Case map 1FAD; 1F65 03B9; Case map 1FAE; 1F66 03B9; Case map 1FAF; 1F67 03B9; Case map 1FB2; 1F70 03B9; Case map 1FB3; 03B1 03B9; Case map 1FB4; 03AC 03B9; Case map 1FB6; 03B1 0342; Case map 1FB7; 03B1 0342 03B9; Case map 1FB8; 1FB0; Case map 1FB9; 1FB1; Case map 1FBA; 1F70; Case map 1FBB; 1F71; Case map 1FBC; 03B1 03B9; Case map 1FBE; 03B9; Case map 1FC2; 1F74 03B9; Case map 1FC3; 03B7 03B9; Case map 1FC4; 03AE 03B9; Case map 1FC6; 03B7 0342; Case map 1FC7; 03B7 0342 03B9; Case map 1FC8; 1F72; Case map 1FC9; 1F73; Case map 1FCA; 1F74; Case map 1FCB; 1F75; Case map 1FCC; 03B7 03B9; Case map 1FD2; 03B9 0308 0300; Case map 1FD3; 03B9 0308 0301; Case map 1FD6; 03B9 0342; Case map 1FD7; 03B9 0308 0342; Case map 1FD8; 1FD0; Case map 1FD9; 1FD1; Case map 1FDA; 1F76; Case map 1FDB; 1F77; Case map 1FE2; 03C5 0308 0300; Case map 1FE3; 03C5 0308 0301; Case map 1FE4; 03C1 0313; Case map 1FE6; 03C5 0342; Case map 1FE7; 03C5 0308 0342; Case map 1FE8; 1FE0; Case map 1FE9; 1FE1; Case map 1FEA; 1F7A; Case map 1FEB; 1F7B; Case map 1FEC; 1FE5; Case map 1FF2; 1F7C 03B9; Case map 1FF3; 03C9 03B9; Case map 1FF4; 03CE 03B9; Case map 1FF6; 03C9 0342; Case map 1FF7; 03C9 0342 03B9; Case map 1FF8; 1F78; Case map 1FF9; 1F79; Case map 1FFA; 1F7C; Case map 1FFB; 1F7D; Case map 1FFC; 03C9 03B9; Case map 2126; 03C9; Case map 212A; 006B; Case map 212B; 00E5; Case map 2160; 2170; Case map 2161; 2171; Case map 2162; 2172; Case map 2163; 2173; Case map 2164; 2174; Case map 2165; 2175; Case map 2166; 2176; Case map 2167; 2177; Case map 2168; 2178; Case map 2169; 2179; Case map 216A; 217A; Case map 216B; 217B; Case map 216C; 217C; Case map 216D; 217D; Case map 216E; 217E; Case map 216F; 217F; Case map 24B6; 24D0; Case map 24B7; 24D1; Case map 24B8; 24D2; Case map 24B9; 24D3; Case map 24BA; 24D4; Case map 24BB; 24D5; Case map 24BC; 24D6; Case map 24BD; 24D7; Case map 24BE; 24D8; Case map 24BF; 24D9; Case map 24C0; 24DA; Case map 24C1; 24DB; Case map 24C2; 24DC; Case map 24C3; 24DD; Case map 24C4; 24DE; Case map 24C5; 24DF; Case map 24C6; 24E0; Case map 24C7; 24E1; Case map 24C8; 24E2; Case map 24C9; 24E3; Case map 24CA; 24E4; Case map 24CB; 24E5; Case map 24CC; 24E6; Case map 24CD; 24E7; Case map 24CE; 24E8; Case map 24CF; 24E9; Case map FB00; 0066 0066; Case map FB01; 0066 0069; Case map FB02; 0066 006C; Case map FB03; 0066 0066 0069; Case map FB04; 0066 0066 006C; Case map FB05; 0073 0074; Case map FB06; 0073 0074; Case map FB13; 0574 0576; Case map FB14; 0574 0565; Case map FB15; 0574 056B; Case map FB16; 057E 0576; Case map FB17; 0574 056D; Case map FF21; FF41; Case map FF22; FF42; Case map FF23; FF43; Case map FF24; FF44; Case map FF25; FF45; Case map FF26; FF46; Case map FF27; FF47; Case map FF28; FF48; Case map FF29; FF49; Case map FF2A; FF4A; Case map FF2B; FF4B; Case map FF2C; FF4C; Case map FF2D; FF4D; Case map FF2E; FF4E; Case map FF2F; FF4F; Case map FF30; FF50; Case map FF31; FF51; Case map FF32; FF52; Case map FF33; FF53; Case map FF34; FF54; Case map FF35; FF55; Case map FF36; FF56; Case map FF37; FF57; Case map FF38; FF58; Case map FF39; FF59; Case map FF3A; FF5A; Case map 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map ----- End Table B.3 ----- ----- Start Table C.1.1 ----- 0020; SPACE ----- End Table C.1.1 ----- ----- Start Table C.1.2 ----- 00A0; NO-BREAK SPACE 1680; OGHAM SPACE MARK 2000; EN QUAD 2001; EM QUAD 2002; EN SPACE 2003; EM SPACE 2004; THREE-PER-EM SPACE 2005; FOUR-PER-EM SPACE 2006; SIX-PER-EM SPACE 2007; FIGURE SPACE 2008; PUNCTUATION SPACE 2009; THIN SPACE 200A; HAIR SPACE 200B; ZERO WIDTH SPACE 202F; NARROW NO-BREAK SPACE 205F; MEDIUM MATHEMATICAL SPACE 3000; IDEOGRAPHIC SPACE ----- End Table C.1.2 ----- ----- Start Table C.2.1 ----- 0000-001F; [CONTROL CHARACTERS] 007F; DELETE ----- End Table C.2.1 ----- ----- Start Table C.2.2 ----- 0080-009F; [CONTROL CHARACTERS] 06DD; ARABIC END OF AYAH 070F; SYRIAC ABBREVIATION MARK 180E; MONGOLIAN VOWEL SEPARATOR 200C; ZERO WIDTH NON-JOINER 200D; ZERO WIDTH JOINER 2028; LINE SEPARATOR 2029; PARAGRAPH SEPARATOR 2060; WORD JOINER 2061; FUNCTION APPLICATION 2062; INVISIBLE TIMES 2063; INVISIBLE SEPARATOR 206A-206F; [CONTROL CHARACTERS] FEFF; ZERO WIDTH NO-BREAK SPACE FFF9-FFFC; [CONTROL CHARACTERS] 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] ----- End Table C.2.2 ----- ----- Start Table C.3 ----- E000-F8FF; [PRIVATE USE, PLANE 0] F0000-FFFFD; [PRIVATE USE, PLANE 15] 100000-10FFFD; [PRIVATE USE, PLANE 16] ----- End Table C.3 ----- ----- Start Table C.4 ----- FDD0-FDEF; [NONCHARACTER CODE POINTS] FFFE-FFFF; [NONCHARACTER CODE POINTS] 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] AFFFE-AFFFF; [NONCHARACTER CODE POINTS] BFFFE-BFFFF; [NONCHARACTER CODE POINTS] CFFFE-CFFFF; [NONCHARACTER CODE POINTS] DFFFE-DFFFF; [NONCHARACTER CODE POINTS] EFFFE-EFFFF; [NONCHARACTER CODE POINTS] FFFFE-FFFFF; [NONCHARACTER CODE POINTS] 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] ----- End Table C.4 ----- ----- Start Table C.5 ----- D800-DFFF; [SURROGATE CODES] ----- End Table C.5 ----- ----- Start Table C.6 ----- FFF9; INTERLINEAR ANNOTATION ANCHOR FFFA; INTERLINEAR ANNOTATION SEPARATOR FFFB; INTERLINEAR ANNOTATION TERMINATOR FFFC; OBJECT REPLACEMENT CHARACTER FFFD; REPLACEMENT CHARACTER ----- End Table C.6 ----- ----- Start Table C.7 ----- 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] ----- End Table C.7 ----- ----- Start Table C.8 ----- 0340; COMBINING GRAVE TONE MARK 0341; COMBINING ACUTE TONE MARK 200E; LEFT-TO-RIGHT MARK 200F; RIGHT-TO-LEFT MARK 202A; LEFT-TO-RIGHT EMBEDDING 202B; RIGHT-TO-LEFT EMBEDDING 202C; POP DIRECTIONAL FORMATTING 202D; LEFT-TO-RIGHT OVERRIDE 202E; RIGHT-TO-LEFT OVERRIDE 206A; INHIBIT SYMMETRIC SWAPPING 206B; ACTIVATE SYMMETRIC SWAPPING 206C; INHIBIT ARABIC FORM SHAPING 206D; ACTIVATE ARABIC FORM SHAPING 206E; NATIONAL DIGIT SHAPES 206F; NOMINAL DIGIT SHAPES ----- End Table C.8 ----- ----- Start Table C.9 ----- E0001; LANGUAGE TAG E0020-E007F; [TAGGING CHARACTERS] ----- End Table C.9 ----- ----- Start Table D.1 ----- 05BE 05C0 05C3 05D0-05EA 05F0-05F4 061B 061F 0621-063A 0640-064A 066D-066F 0671-06D5 06DD 06E5-06E6 06FA-06FE 0700-070D 0710 0712-072C 0780-07A5 07B1 200F FB1D FB1F-FB28 FB2A-FB36 FB38-FB3C FB3E FB40-FB41 FB43-FB44 FB46-FBB1 FBD3-FD3D FD50-FD8F FD92-FDC7 FDF0-FDFC FE70-FE74 FE76-FEFC ----- End Table D.1 ----- ----- Start Table D.2 ----- 0041-005A 0061-007A 00AA 00B5 00BA 00C0-00D6 00D8-00F6 00F8-0220 0222-0233 0250-02AD 02B0-02B8 02BB-02C1 02D0-02D1 02E0-02E4 02EE 037A 0386 0388-038A 038C 038E-03A1 03A3-03CE 03D0-03F5 0400-0482 048A-04CE 04D0-04F5 04F8-04F9 0500-050F 0531-0556 0559-055F 0561-0587 0589 0903 0905-0939 093D-0940 0949-094C 0950 0958-0961 0964-0970 0982-0983 0985-098C 098F-0990 0993-09A8 09AA-09B0 09B2 09B6-09B9 09BE-09C0 09C7-09C8 09CB-09CC 09D7 09DC-09DD 09DF-09E1 09E6-09F1 09F4-09FA 0A05-0A0A 0A0F-0A10 0A13-0A28 0A2A-0A30 0A32-0A33 0A35-0A36 0A38-0A39 0A3E-0A40 0A59-0A5C 0A5E 0A66-0A6F 0A72-0A74 0A83 0A85-0A8B 0A8D 0A8F-0A91 0A93-0AA8 0AAA-0AB0 0AB2-0AB3 0AB5-0AB9 0ABD-0AC0 0AC9 0ACB-0ACC 0AD0 0AE0 0AE6-0AEF 0B02-0B03 0B05-0B0C 0B0F-0B10 0B13-0B28 0B2A-0B30 0B32-0B33 0B36-0B39 0B3D-0B3E 0B40 0B47-0B48 0B4B-0B4C 0B57 0B5C-0B5D 0B5F-0B61 0B66-0B70 0B83 0B85-0B8A 0B8E-0B90 0B92-0B95 0B99-0B9A 0B9C 0B9E-0B9F 0BA3-0BA4 0BA8-0BAA 0BAE-0BB5 0BB7-0BB9 0BBE-0BBF 0BC1-0BC2 0BC6-0BC8 0BCA-0BCC 0BD7 0BE7-0BF2 0C01-0C03 0C05-0C0C 0C0E-0C10 0C12-0C28 0C2A-0C33 0C35-0C39 0C41-0C44 0C60-0C61 0C66-0C6F 0C82-0C83 0C85-0C8C 0C8E-0C90 0C92-0CA8 0CAA-0CB3 0CB5-0CB9 0CBE 0CC0-0CC4 0CC7-0CC8 0CCA-0CCB 0CD5-0CD6 0CDE 0CE0-0CE1 0CE6-0CEF 0D02-0D03 0D05-0D0C 0D0E-0D10 0D12-0D28 0D2A-0D39 0D3E-0D40 0D46-0D48 0D4A-0D4C 0D57 0D60-0D61 0D66-0D6F 0D82-0D83 0D85-0D96 0D9A-0DB1 0DB3-0DBB 0DBD 0DC0-0DC6 0DCF-0DD1 0DD8-0DDF 0DF2-0DF4 0E01-0E30 0E32-0E33 0E40-0E46 0E4F-0E5B 0E81-0E82 0E84 0E87-0E88 0E8A 0E8D 0E94-0E97 0E99-0E9F 0EA1-0EA3 0EA5 0EA7 0EAA-0EAB 0EAD-0EB0 0EB2-0EB3 0EBD 0EC0-0EC4 0EC6 0ED0-0ED9 0EDC-0EDD 0F00-0F17 0F1A-0F34 0F36 0F38 0F3E-0F47 0F49-0F6A 0F7F 0F85 0F88-0F8B 0FBE-0FC5 0FC7-0FCC 0FCF 1000-1021 1023-1027 1029-102A 102C 1031 1038 1040-1057 10A0-10C5 10D0-10F8 10FB 1100-1159 115F-11A2 11A8-11F9 1200-1206 1208-1246 1248 124A-124D 1250-1256 1258 125A-125D 1260-1286 1288 128A-128D 1290-12AE 12B0 12B2-12B5 12B8-12BE 12C0 12C2-12C5 12C8-12CE 12D0-12D6 12D8-12EE 12F0-130E 1310 1312-1315 1318-131E 1320-1346 1348-135A 1361-137C 13A0-13F4 1401-1676 1681-169A 16A0-16F0 1700-170C 170E-1711 1720-1731 1735-1736 1740-1751 1760-176C 176E-1770 1780-17B6 17BE-17C5 17C7-17C8 17D4-17DA 17DC 17E0-17E9 1810-1819 1820-1877 1880-18A8 1E00-1E9B 1EA0-1EF9 1F00-1F15 1F18-1F1D 1F20-1F45 1F48-1F4D 1F50-1F57 1F59 1F5B 1F5D 1F5F-1F7D 1F80-1FB4 1FB6-1FBC 1FBE 1FC2-1FC4 1FC6-1FCC 1FD0-1FD3 1FD6-1FDB 1FE0-1FEC 1FF2-1FF4 1FF6-1FFC 200E 2071 207F 2102 2107 210A-2113 2115 2119-211D 2124 2126 2128 212A-212D 212F-2131 2133-2139 213D-213F 2145-2149 2160-2183 2336-237A 2395 249C-24E9 3005-3007 3021-3029 3031-3035 3038-303C 3041-3096 309D-309F 30A1-30FA 30FC-30FF 3105-312C 3131-318E 3190-31B7 31F0-321C 3220-3243 3260-327B 327F-32B0 32C0-32CB 32D0-32FE 3300-3376 337B-33DD 33E0-33FE 3400-4DB5 4E00-9FA5 A000-A48C AC00-D7A3 D800-FA2D FA30-FA6A FB00-FB06 FB13-FB17 FF21-FF3A FF41-FF5A FF66-FFBE FFC2-FFC7 FFCA-FFCF FFD2-FFD7 FFDA-FFDC 10300-1031E 10320-10323 10330-1034A 10400-10425 10428-1044D 1D000-1D0F5 1D100-1D126 1D12A-1D166 1D16A-1D172 1D183-1D184 1D18C-1D1A9 1D1AE-1D1DD 1D400-1D454 1D456-1D49C 1D49E-1D49F 1D4A2 1D4A5-1D4A6 1D4A9-1D4AC 1D4AE-1D4B9 1D4BB 1D4BD-1D4C0 1D4C2-1D4C3 1D4C5-1D505 1D507-1D50A 1D50D-1D514 1D516-1D51C 1D51E-1D539 1D53B-1D53E 1D540-1D544 1D546 1D54A-1D550 1D552-1D6A3 1D6A8-1D7C9 20000-2A6D6 2F800-2FA1D F0000-FFFFD 100000-10FFFD ----- End Table D.2 ----- libidn-1.28/doc/specifications/SpecialCasing-3.2.0.txt0000664000000000000000000003565111746453142017273 00000000000000# SpecialCasing-3.2.0.txt # Date: 2002-03-19,23:31:42 GMT [MD] # # Special Casing Properties # # This file is a supplement to the UnicodeData file. # It contains additional information about the casing of Unicode characters. # (For compatibility, the UnicodeData.txt file only contains case mappings for # characters where they are 1-1, and does not have locale-specific mappings.) # For more information, see # UTR #21 Case Mappings, at http://www.unicode.org/unicode/reports/tr21/ # # ================================================================================ # Format # ================================================================================ # The entries in this file are in the following machine-readable format: # # ; ; ; <upper> ; (<condition_list> ;)? # <comment> # # <code>, <lower>, <title>, and <upper> provide character values in hex. If there is more than # one character, they are separated by spaces. Other than as used to separate elements, # spaces are to be ignored. # # The <condition_list> is optional. Where present, it consists of one or more locales or contexts, # separated by spaces. In these conditions: # - A condition list overrides the normal behavior if all of the listed conditions are true. # - The context is always the context of the characters in the original string, # NOT in the resulting string. # - Case distinctions in the condition list are not significant. # - Conditions preceded by "Not_" represent the negation of the condition. # # A locale is defined as: # <locale> := <ISO_639_code> ( "_" <ISO_3166_code> ( "_" <variant> )? )? # <ISO_3166_code> := 2-letter ISO country code, # <ISO_639_code> := 2-letter ISO language code # # A context is one of the following, as defined in UAX #21: Case Mappings: # Final_Sigma, After_Soft_Dotted, More_Above, Before_Dot # # Parsers of this file must be prepared to deal future additions to this format: # * Additional contexts # * Additional fields # ================================================================================ # ================================================================================ # Unconditional mappings # ================================================================================ # The German es-zed is special--the normal mapping is to SS. # Note: the titlecase should never occur in practice. It is equal to titlecase(uppercase(<es-zed>)) 00DF; 00DF; 0053 0073; 0053 0053; # LATIN SMALL LETTER SHARP S # Preserve canonical equivalence for I with dot. Turkic is handled below. 0130; 0069 0307; 0130; 0130; # LATIN CAPITAL LETTER I WITH DOT ABOVE # Ligatures FB00; FB00; 0046 0066; 0046 0046; # LATIN SMALL LIGATURE FF FB01; FB01; 0046 0069; 0046 0049; # LATIN SMALL LIGATURE FI FB02; FB02; 0046 006C; 0046 004C; # LATIN SMALL LIGATURE FL FB03; FB03; 0046 0066 0069; 0046 0046 0049; # LATIN SMALL LIGATURE FFI FB04; FB04; 0046 0066 006C; 0046 0046 004C; # LATIN SMALL LIGATURE FFL FB05; FB05; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE LONG S T FB06; FB06; 0053 0074; 0053 0054; # LATIN SMALL LIGATURE ST 0587; 0587; 0535 0582; 0535 0552; # ARMENIAN SMALL LIGATURE ECH YIWN FB13; FB13; 0544 0576; 0544 0546; # ARMENIAN SMALL LIGATURE MEN NOW FB14; FB14; 0544 0565; 0544 0535; # ARMENIAN SMALL LIGATURE MEN ECH FB15; FB15; 0544 056B; 0544 053B; # ARMENIAN SMALL LIGATURE MEN INI FB16; FB16; 054E 0576; 054E 0546; # ARMENIAN SMALL LIGATURE VEW NOW FB17; FB17; 0544 056D; 0544 053D; # ARMENIAN SMALL LIGATURE MEN XEH # No corresponding uppercase precomposed character 0149; 0149; 02BC 004E; 02BC 004E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 0390; 0390; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 03B0; 03B0; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 01F0; 01F0; 004A 030C; 004A 030C; # LATIN SMALL LETTER J WITH CARON 1E96; 1E96; 0048 0331; 0048 0331; # LATIN SMALL LETTER H WITH LINE BELOW 1E97; 1E97; 0054 0308; 0054 0308; # LATIN SMALL LETTER T WITH DIAERESIS 1E98; 1E98; 0057 030A; 0057 030A; # LATIN SMALL LETTER W WITH RING ABOVE 1E99; 1E99; 0059 030A; 0059 030A; # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A; 1E9A; 0041 02BE; 0041 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING 1F50; 1F50; 03A5 0313; 03A5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI 1F52; 1F52; 03A5 0313 0300; 03A5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 1F54; 1F54; 03A5 0313 0301; 03A5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 1F56; 1F56; 03A5 0313 0342; 03A5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 1FB6; 1FB6; 0391 0342; 0391 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI 1FC6; 1FC6; 0397 0342; 0397 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI 1FD2; 1FD2; 0399 0308 0300; 0399 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 1FD3; 1FD3; 0399 0308 0301; 0399 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 1FD6; 1FD6; 0399 0342; 0399 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI 1FD7; 1FD7; 0399 0308 0342; 0399 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 1FE2; 1FE2; 03A5 0308 0300; 03A5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 1FE3; 1FE3; 03A5 0308 0301; 03A5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 1FE4; 1FE4; 03A1 0313; 03A1 0313; # GREEK SMALL LETTER RHO WITH PSILI 1FE6; 1FE6; 03A5 0342; 03A5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI 1FE7; 1FE7; 03A5 0308 0342; 03A5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 1FF6; 1FF6; 03A9 0342; 03A9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI # IMPORTANT-when capitalizing iota-subscript (0345) # It MUST be in normalized form--moved to the end of any sequence of combining marks. # This is because logically it represents a following base character! # E.g. <iota_subscript> (<Mn> | <Mc> | <Me>)+ => (<Mn> | <Mc> | <Me>)+ <iota_subscript> # It should never be the first character in a word, so in titlecasing it can be left as is. # The following cases are already in the UnicodeData file, so are only commented here. # 0345; 0345; 0345; 0399; # COMBINING GREEK YPOGEGRAMMENI # All letters with YPOGEGRAMMENI (iota-subscript) or PROSGEGRAMMENI (iota adscript) # have special uppercases. # Note: characters with PROSGEGRAMMENI are actually titlecase, not uppercase! 1F80; 1F80; 1F88; 1F08 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 1F81; 1F81; 1F89; 1F09 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 1F82; 1F82; 1F8A; 1F0A 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F83; 1F83; 1F8B; 1F0B 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F84; 1F84; 1F8C; 1F0C 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F85; 1F85; 1F8D; 1F0D 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F86; 1F86; 1F8E; 1F0E 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F87; 1F87; 1F8F; 1F0F 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F88; 1F80; 1F88; 1F08 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F89; 1F81; 1F89; 1F09 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F8A; 1F82; 1F8A; 1F0A 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8B; 1F83; 1F8B; 1F0B 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8C; 1F84; 1F8C; 1F0C 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8D; 1F85; 1F8D; 1F0D 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8E; 1F86; 1F8E; 1F0E 0399; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; 1F87; 1F8F; 1F0F 0399; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F90; 1F90; 1F98; 1F28 0399; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 1F91; 1F91; 1F99; 1F29 0399; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 1F92; 1F92; 1F9A; 1F2A 0399; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F93; 1F93; 1F9B; 1F2B 0399; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F94; 1F94; 1F9C; 1F2C 0399; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F95; 1F95; 1F9D; 1F2D 0399; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F96; 1F96; 1F9E; 1F2E 0399; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F97; 1F97; 1F9F; 1F2F 0399; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F98; 1F90; 1F98; 1F28 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F99; 1F91; 1F99; 1F29 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F9A; 1F92; 1F9A; 1F2A 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9B; 1F93; 1F9B; 1F2B 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9C; 1F94; 1F9C; 1F2C 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9D; 1F95; 1F9D; 1F2D 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9E; 1F96; 1F9E; 1F2E 0399; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; 1F97; 1F9F; 1F2F 0399; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FA0; 1FA0; 1FA8; 1F68 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 1FA1; 1FA1; 1FA9; 1F69 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 1FA2; 1FA2; 1FAA; 1F6A 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1FA3; 1FA3; 1FAB; 1F6B 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1FA4; 1FA4; 1FAC; 1F6C 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1FA5; 1FA5; 1FAD; 1F6D 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1FA6; 1FA6; 1FAE; 1F6E 0399; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1FA7; 1FA7; 1FAF; 1F6F 0399; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1FA8; 1FA0; 1FA8; 1F68 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA9; 1FA1; 1FA9; 1F69 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FAA; 1FA2; 1FAA; 1F6A 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAB; 1FA3; 1FAB; 1F6B 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAC; 1FA4; 1FAC; 1F6C 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAD; 1FA5; 1FAD; 1F6D 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAE; 1FA6; 1FAE; 1F6E 0399; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; 1FA7; 1FAF; 1F6F 0399; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FB3; 1FB3; 1FBC; 0391 0399; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 1FBC; 1FB3; 1FBC; 0391 0399; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FC3; 1FC3; 1FCC; 0397 0399; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 1FCC; 1FC3; 1FCC; 0397 0399; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FF3; 1FF3; 1FFC; 03A9 0399; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FFC; 1FF3; 1FFC; 03A9 0399; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI # Some characters with YPOGEGRAMMENI are also have no corresponding titlecases 1FB2; 1FB2; 1FBA 0345; 1FBA 0399; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB4; 1FB4; 0386 0345; 0386 0399; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FC2; 1FC2; 1FCA 0345; 1FCA 0399; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 1FC4; 1FC4; 0389 0345; 0389 0399; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 1FF2; 1FF2; 1FFA 0345; 1FFA 0399; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 1FF4; 1FF4; 038F 0345; 038F 0399; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 1FB7; 1FB7; 0391 0342 0345; 0391 0342 0399; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 1FC7; 1FC7; 0397 0342 0345; 0397 0342 0399; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF7; 1FF7; 03A9 0342 0345; 03A9 0342 0399; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI # ================================================================================ # Conditional mappings # ================================================================================ # Special case for final form of sigma 03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA # Note: the following cases for non-final are already in the UnicodeData file. # 03A3; 03C3; 03A3; 03A3; # GREEK CAPITAL LETTER SIGMA # 03C3; 03C3; 03A3; 03A3; # GREEK SMALL LETTER SIGMA # 03C2; 03C2; 03A3; 03A3; # GREEK SMALL LETTER FINAL SIGMA # Note: the following cases are not included, since they would case-fold in lowercasing # 03C3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK SMALL LETTER SIGMA # 03C2; 03C3; 03A3; 03A3; Not_Final_Sigma; # GREEK SMALL LETTER FINAL SIGMA # ================================================================================ # Locale-sensitive mappings # ================================================================================ # Lithuanian # Lithuanian retains the dot in a lowercase i when followed by accents. # Remove DOT ABOVE after "i" with upper or titlecase 0307; 0307; ; ; lt After_Soft_Dotted; # COMBINING DOT ABOVE # Introduce an explicit dot above when lowercasing capital I's and J's # whenever there are more accents above. # (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek) 0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I 004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J 012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK 00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE 00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE 0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE # ================================================================================ # Turkish and Azeri # I and i-dotless; I-dot and i are case pairs in Turkish and Azeri # The following rules handle those cases. 0130; 0069; 0130; 0130; tr # LATIN CAPITAL LETTER I WITH DOT ABOVE 0130; 0069; 0130; 0130; az # LATIN CAPITAL LETTER I WITH DOT ABOVE # When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. # This matches the behavior of the canonically equivalent I-dot_above 0307; ; 0307; 0307; tr After_Soft_Dotted; # COMBINING DOT ABOVE 0307; ; 0307; 0307; az After_Soft_Dotted; # COMBINING DOT ABOVE # When lowercasing, unless an I is before a dot_above, it turns into a dotless i. 0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I 0049; 0131; 0049; 0049; az Not_Before_Dot; # LATIN CAPITAL LETTER I # When uppercasing, i turns into a dotted capital I 0069; 0069; 0130; 0130; tr; # LATIN SMALL LETTER I 0069; 0069; 0130; 0130; az; # LATIN SMALL LETTER I # Note: the following case is already in the UnicodeData file. # 0131; 0131; 0049; 0049; tr; # LATIN SMALL LETTER DOTLESS I ���������������������������������������������������������������������������������������libidn-1.28/doc/specifications/CompositionExclusions-3.2.0.txt��������������������������������������0000664�0000000�0000000�00000016441�11746453142�021142� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# CompositionExclusions-3.2.0.txt # Date: 2002-03-19,23:30:28 GMT [MD] # # This file lists the characters from the UAX #15 Composition Exclusion Table. # # The format of the comments in this file has been updated since the last version, # CompositionExclusions-3.txt. The only substantive change to this file between that # version and this one is the addition of U+2ADC FORKING. # # For more information, see # http://www.unicode.org/unicode/reports/tr15/#Primary Exclusion List Table # ================================================ # (1) Script Specifics # This list of characters cannot be derived from the UnicodeData file. # ================================================ 0958 # DEVANAGARI LETTER QA 0959 # DEVANAGARI LETTER KHHA 095A # DEVANAGARI LETTER GHHA 095B # DEVANAGARI LETTER ZA 095C # DEVANAGARI LETTER DDDHA 095D # DEVANAGARI LETTER RHA 095E # DEVANAGARI LETTER FA 095F # DEVANAGARI LETTER YYA 09DC # BENGALI LETTER RRA 09DD # BENGALI LETTER RHA 09DF # BENGALI LETTER YYA 0A33 # GURMUKHI LETTER LLA 0A36 # GURMUKHI LETTER SHA 0A59 # GURMUKHI LETTER KHHA 0A5A # GURMUKHI LETTER GHHA 0A5B # GURMUKHI LETTER ZA 0A5E # GURMUKHI LETTER FA 0B5C # ORIYA LETTER RRA 0B5D # ORIYA LETTER RHA 0F43 # TIBETAN LETTER GHA 0F4D # TIBETAN LETTER DDHA 0F52 # TIBETAN LETTER DHA 0F57 # TIBETAN LETTER BHA 0F5C # TIBETAN LETTER DZHA 0F69 # TIBETAN LETTER KSSA 0F76 # TIBETAN VOWEL SIGN VOCALIC R 0F78 # TIBETAN VOWEL SIGN VOCALIC L 0F93 # TIBETAN SUBJOINED LETTER GHA 0F9D # TIBETAN SUBJOINED LETTER DDHA 0FA2 # TIBETAN SUBJOINED LETTER DHA 0FA7 # TIBETAN SUBJOINED LETTER BHA 0FAC # TIBETAN SUBJOINED LETTER DZHA 0FB9 # TIBETAN SUBJOINED LETTER KSSA FB1D # HEBREW LETTER YOD WITH HIRIQ FB1F # HEBREW LIGATURE YIDDISH YOD YOD PATAH FB2A # HEBREW LETTER SHIN WITH SHIN DOT FB2B # HEBREW LETTER SHIN WITH SIN DOT FB2C # HEBREW LETTER SHIN WITH DAGESH AND SHIN DOT FB2D # HEBREW LETTER SHIN WITH DAGESH AND SIN DOT FB2E # HEBREW LETTER ALEF WITH PATAH FB2F # HEBREW LETTER ALEF WITH QAMATS FB30 # HEBREW LETTER ALEF WITH MAPIQ FB31 # HEBREW LETTER BET WITH DAGESH FB32 # HEBREW LETTER GIMEL WITH DAGESH FB33 # HEBREW LETTER DALET WITH DAGESH FB34 # HEBREW LETTER HE WITH MAPIQ FB35 # HEBREW LETTER VAV WITH DAGESH FB36 # HEBREW LETTER ZAYIN WITH DAGESH FB38 # HEBREW LETTER TET WITH DAGESH FB39 # HEBREW LETTER YOD WITH DAGESH FB3A # HEBREW LETTER FINAL KAF WITH DAGESH FB3B # HEBREW LETTER KAF WITH DAGESH FB3C # HEBREW LETTER LAMED WITH DAGESH FB3E # HEBREW LETTER MEM WITH DAGESH FB40 # HEBREW LETTER NUN WITH DAGESH FB41 # HEBREW LETTER SAMEKH WITH DAGESH FB43 # HEBREW LETTER FINAL PE WITH DAGESH FB44 # HEBREW LETTER PE WITH DAGESH FB46 # HEBREW LETTER TSADI WITH DAGESH FB47 # HEBREW LETTER QOF WITH DAGESH FB48 # HEBREW LETTER RESH WITH DAGESH FB49 # HEBREW LETTER SHIN WITH DAGESH FB4A # HEBREW LETTER TAV WITH DAGESH FB4B # HEBREW LETTER VAV WITH HOLAM FB4C # HEBREW LETTER BET WITH RAFE FB4D # HEBREW LETTER KAF WITH RAFE FB4E # HEBREW LETTER PE WITH RAFE # Total code points: 67 # ================================================ # (2) Post Composition Version precomposed characters # These characters cannot be derived solely from the UnicodeData.txt file # in this version of Unicode. # ================================================ 2ADC # FORKING 1D15E # MUSICAL SYMBOL HALF NOTE 1D15F # MUSICAL SYMBOL QUARTER NOTE 1D160 # MUSICAL SYMBOL EIGHTH NOTE 1D161 # MUSICAL SYMBOL SIXTEENTH NOTE 1D162 # MUSICAL SYMBOL THIRTY-SECOND NOTE 1D163 # MUSICAL SYMBOL SIXTY-FOURTH NOTE 1D164 # MUSICAL SYMBOL ONE HUNDRED TWENTY-EIGHTH NOTE 1D1BB # MUSICAL SYMBOL MINIMA 1D1BC # MUSICAL SYMBOL MINIMA BLACK 1D1BD # MUSICAL SYMBOL SEMIMINIMA WHITE 1D1BE # MUSICAL SYMBOL SEMIMINIMA BLACK 1D1BF # MUSICAL SYMBOL FUSA WHITE 1D1C0 # MUSICAL SYMBOL FUSA BLACK # Total code points: 14 # ================================================ # (3) Singleton Decompositions # These characters can be derived from the UnicodeData file # by including all characters whose canonical decomposition # consists of a single character. # These characters are simply quoted here for reference. # ================================================ # 0340..0341 [2] COMBINING GRAVE TONE MARK..COMBINING ACUTE TONE MARK # 0343 COMBINING GREEK KORONIS # 0374 GREEK NUMERAL SIGN # 037E GREEK QUESTION MARK # 0387 GREEK ANO TELEIA # 1F71 GREEK SMALL LETTER ALPHA WITH OXIA # 1F73 GREEK SMALL LETTER EPSILON WITH OXIA # 1F75 GREEK SMALL LETTER ETA WITH OXIA # 1F77 GREEK SMALL LETTER IOTA WITH OXIA # 1F79 GREEK SMALL LETTER OMICRON WITH OXIA # 1F7B GREEK SMALL LETTER UPSILON WITH OXIA # 1F7D GREEK SMALL LETTER OMEGA WITH OXIA # 1FBB GREEK CAPITAL LETTER ALPHA WITH OXIA # 1FBE GREEK PROSGEGRAMMENI # 1FC9 GREEK CAPITAL LETTER EPSILON WITH OXIA # 1FCB GREEK CAPITAL LETTER ETA WITH OXIA # 1FD3 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA # 1FDB GREEK CAPITAL LETTER IOTA WITH OXIA # 1FE3 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA # 1FEB GREEK CAPITAL LETTER UPSILON WITH OXIA # 1FEE..1FEF [2] GREEK DIALYTIKA AND OXIA..GREEK VARIA # 1FF9 GREEK CAPITAL LETTER OMICRON WITH OXIA # 1FFB GREEK CAPITAL LETTER OMEGA WITH OXIA # 1FFD GREEK OXIA # 2000..2001 [2] EN QUAD..EM QUAD # 2126 OHM SIGN # 212A..212B [2] KELVIN SIGN..ANGSTROM SIGN # 2329 LEFT-POINTING ANGLE BRACKET # 232A RIGHT-POINTING ANGLE BRACKET # F900..FA0D [270] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA0D # FA10 CJK COMPATIBILITY IDEOGRAPH-FA10 # FA12 CJK COMPATIBILITY IDEOGRAPH-FA12 # FA15..FA1E [10] CJK COMPATIBILITY IDEOGRAPH-FA15..CJK COMPATIBILITY IDEOGRAPH-FA1E # FA20 CJK COMPATIBILITY IDEOGRAPH-FA20 # FA22 CJK COMPATIBILITY IDEOGRAPH-FA22 # FA25..FA26 [2] CJK COMPATIBILITY IDEOGRAPH-FA25..CJK COMPATIBILITY IDEOGRAPH-FA26 # FA2A..FA2D [4] CJK COMPATIBILITY IDEOGRAPH-FA2A..CJK COMPATIBILITY IDEOGRAPH-FA2D # FA30..FA6A [59] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6A # 2F800..2FA1D [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D # Total code points: 924 # ================================================ # (4) Non-Starter Decompositions # These characters can be derived from the UnicodeData file # by including all characters whose canonical decomposition consists # of a sequence of characters, the first of which has a non-zero # combining class. # These characters are simply quoted here for reference. # ================================================ # 0344 COMBINING GREEK DIALYTIKA TONOS # 0F73 TIBETAN VOWEL SIGN II # 0F75 TIBETAN VOWEL SIGN UU # 0F81 TIBETAN VOWEL SIGN REVERSED II # Total code points: 4 �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/doc/specifications/Makefile.am����������������������������������������������������������0000664�0000000�0000000�00000001757�11746453142�015423� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2011 Simon # Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. EXTRA_DIST = rfc3454.txt \ UnicodeData-3.2.0.txt LineBreak-3.2.0.txt \ SpecialCasing-3.2.0.txt CaseFolding-3.2.0.txt \ CompositionExclusions-3.2.0.txt BidiMirroring-3.2.0.txt \ COPYING.UCD �����������������libidn-1.28/doc/specifications/COPYING.UCD����������������������������������������������������������0000664�0000000�0000000�00000006033�11746453142�015024� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������License below is copied from <http://www.unicode.org/copyright.html>, last updated 7 July 2004, and claims to apply to all Unicode versions. According to a post on emacs-devel, <http://lists.gnu.org/archive/html/emacs-devel/2004-04/msg00036.html>, RMS believe it is a free license: This is a free license, and even compatible with the GPL (if that ever matters). Yes, we can use it now. EXHIBIT 1 UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE Unicode Data Files include all data files under the directories http://www.unicode.org/Public/ and http://www.unicode.org/reports/. Unicode Software includes any source code under the directories http://www.unicode.org/Public/ and http://www.unicode.org/reports/. NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE. COPYRIGHT AND PERMISSION NOTICE Copyright © 1991-2004 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and associated documentation (the "Data Files") or Unicode software and 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 in 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. 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. 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. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/doc/specifications/Makefile.in����������������������������������������������������������0000644�0000000�0000000�00000121542�12167244660�015426� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2010, 2011 Simon # Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc/specifications DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = rfc3454.txt \ UnicodeData-3.2.0.txt LineBreak-3.2.0.txt \ SpecialCasing-3.2.0.txt CaseFolding-3.2.0.txt \ CompositionExclusions-3.2.0.txt BidiMirroring-3.2.0.txt \ COPYING.UCD all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/specifications/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu doc/specifications/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ��������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/doc/specifications/CaseFolding-3.2.0.txt������������������������������������������������0000664�0000000�0000000�00000141647�11746453142�016747� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# CaseFolding-3.2.0.txt # Date: 2002-03-22,20:54:33 GMT [MD] # # Case Folding Properties # # This file is a supplement to the UnicodeData file. # It provides a case folding mapping generated from the Unicode Character Database. # If all characters are mapped according to the full mapping below, then # case differences (according to UnicodeData.txt and SpecialCasing.txt) # are eliminated. # # The data supports both implementations that require simple case foldings # (where string lengths don't change), and implementations that allow full case folding # (where string lengths may grow). Note that where they can be supported, the # full case foldings are superior: for example, they allow "MASSE" and "Mae" to match. # # NOTE: case folding does not preserve normalization formats! # # For information on case folding, see # UTR #21 Case Mappings, at http://www.unicode.org/unicode/reports/tr21/ # # ================================================================================ # Format # ================================================================================ # The entries in this file are in the following machine-readable format: # # <code>; <status>; <mapping>; # <name> # # The status field is: # C: common case folding, common mappings shared by both simple and full mappings. # F: full case folding, mappings that cause strings to grow in length. Multiple characters are separated by spaces. # S: simple case folding, mappings to single characters where different from F. # T: special case for uppercase I and dotted uppercase I # - For non-Turkic languages, this mapping is normally not used. # - For Turkic languages (tr, az), this mapping can be used instead of the normal mapping for these characters. # # Usage: # A. To do a simple case folding, use the mappings with status C + S. # B. To do a full case folding, use the mappings with status C + F. # # The mappings with status T can be used or omitted depending on the desired case-folding # behavior. (The default option is to exclude them.) # # ================================================================= 0041; C; 0061; # LATIN CAPITAL LETTER A 0042; C; 0062; # LATIN CAPITAL LETTER B 0043; C; 0063; # LATIN CAPITAL LETTER C 0044; C; 0064; # LATIN CAPITAL LETTER D 0045; C; 0065; # LATIN CAPITAL LETTER E 0046; C; 0066; # LATIN CAPITAL LETTER F 0047; C; 0067; # LATIN CAPITAL LETTER G 0048; C; 0068; # LATIN CAPITAL LETTER H 0049; C; 0069; # LATIN CAPITAL LETTER I 0049; T; 0131; # LATIN CAPITAL LETTER I 004A; C; 006A; # LATIN CAPITAL LETTER J 004B; C; 006B; # LATIN CAPITAL LETTER K 004C; C; 006C; # LATIN CAPITAL LETTER L 004D; C; 006D; # LATIN CAPITAL LETTER M 004E; C; 006E; # LATIN CAPITAL LETTER N 004F; C; 006F; # LATIN CAPITAL LETTER O 0050; C; 0070; # LATIN CAPITAL LETTER P 0051; C; 0071; # LATIN CAPITAL LETTER Q 0052; C; 0072; # LATIN CAPITAL LETTER R 0053; C; 0073; # LATIN CAPITAL LETTER S 0054; C; 0074; # LATIN CAPITAL LETTER T 0055; C; 0075; # LATIN CAPITAL LETTER U 0056; C; 0076; # LATIN CAPITAL LETTER V 0057; C; 0077; # LATIN CAPITAL LETTER W 0058; C; 0078; # LATIN CAPITAL LETTER X 0059; C; 0079; # LATIN CAPITAL LETTER Y 005A; C; 007A; # LATIN CAPITAL LETTER Z 00B5; C; 03BC; # MICRO SIGN 00C0; C; 00E0; # LATIN CAPITAL LETTER A WITH GRAVE 00C1; C; 00E1; # LATIN CAPITAL LETTER A WITH ACUTE 00C2; C; 00E2; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX 00C3; C; 00E3; # LATIN CAPITAL LETTER A WITH TILDE 00C4; C; 00E4; # LATIN CAPITAL LETTER A WITH DIAERESIS 00C5; C; 00E5; # LATIN CAPITAL LETTER A WITH RING ABOVE 00C6; C; 00E6; # LATIN CAPITAL LETTER AE 00C7; C; 00E7; # LATIN CAPITAL LETTER C WITH CEDILLA 00C8; C; 00E8; # LATIN CAPITAL LETTER E WITH GRAVE 00C9; C; 00E9; # LATIN CAPITAL LETTER E WITH ACUTE 00CA; C; 00EA; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX 00CB; C; 00EB; # LATIN CAPITAL LETTER E WITH DIAERESIS 00CC; C; 00EC; # LATIN CAPITAL LETTER I WITH GRAVE 00CD; C; 00ED; # LATIN CAPITAL LETTER I WITH ACUTE 00CE; C; 00EE; # LATIN CAPITAL LETTER I WITH CIRCUMFLEX 00CF; C; 00EF; # LATIN CAPITAL LETTER I WITH DIAERESIS 00D0; C; 00F0; # LATIN CAPITAL LETTER ETH 00D1; C; 00F1; # LATIN CAPITAL LETTER N WITH TILDE 00D2; C; 00F2; # LATIN CAPITAL LETTER O WITH GRAVE 00D3; C; 00F3; # LATIN CAPITAL LETTER O WITH ACUTE 00D4; C; 00F4; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX 00D5; C; 00F5; # LATIN CAPITAL LETTER O WITH TILDE 00D6; C; 00F6; # LATIN CAPITAL LETTER O WITH DIAERESIS 00D8; C; 00F8; # LATIN CAPITAL LETTER O WITH STROKE 00D9; C; 00F9; # LATIN CAPITAL LETTER U WITH GRAVE 00DA; C; 00FA; # LATIN CAPITAL LETTER U WITH ACUTE 00DB; C; 00FB; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX 00DC; C; 00FC; # LATIN CAPITAL LETTER U WITH DIAERESIS 00DD; C; 00FD; # LATIN CAPITAL LETTER Y WITH ACUTE 00DE; C; 00FE; # LATIN CAPITAL LETTER THORN 00DF; F; 0073 0073; # LATIN SMALL LETTER SHARP S 0100; C; 0101; # LATIN CAPITAL LETTER A WITH MACRON 0102; C; 0103; # LATIN CAPITAL LETTER A WITH BREVE 0104; C; 0105; # LATIN CAPITAL LETTER A WITH OGONEK 0106; C; 0107; # LATIN CAPITAL LETTER C WITH ACUTE 0108; C; 0109; # LATIN CAPITAL LETTER C WITH CIRCUMFLEX 010A; C; 010B; # LATIN CAPITAL LETTER C WITH DOT ABOVE 010C; C; 010D; # LATIN CAPITAL LETTER C WITH CARON 010E; C; 010F; # LATIN CAPITAL LETTER D WITH CARON 0110; C; 0111; # LATIN CAPITAL LETTER D WITH STROKE 0112; C; 0113; # LATIN CAPITAL LETTER E WITH MACRON 0114; C; 0115; # LATIN CAPITAL LETTER E WITH BREVE 0116; C; 0117; # LATIN CAPITAL LETTER E WITH DOT ABOVE 0118; C; 0119; # LATIN CAPITAL LETTER E WITH OGONEK 011A; C; 011B; # LATIN CAPITAL LETTER E WITH CARON 011C; C; 011D; # LATIN CAPITAL LETTER G WITH CIRCUMFLEX 011E; C; 011F; # LATIN CAPITAL LETTER G WITH BREVE 0120; C; 0121; # LATIN CAPITAL LETTER G WITH DOT ABOVE 0122; C; 0123; # LATIN CAPITAL LETTER G WITH CEDILLA 0124; C; 0125; # LATIN CAPITAL LETTER H WITH CIRCUMFLEX 0126; C; 0127; # LATIN CAPITAL LETTER H WITH STROKE 0128; C; 0129; # LATIN CAPITAL LETTER I WITH TILDE 012A; C; 012B; # LATIN CAPITAL LETTER I WITH MACRON 012C; C; 012D; # LATIN CAPITAL LETTER I WITH BREVE 012E; C; 012F; # LATIN CAPITAL LETTER I WITH OGONEK 0130; F; 0069 0307; # LATIN CAPITAL LETTER I WITH DOT ABOVE 0130; T; 0069; # LATIN CAPITAL LETTER I WITH DOT ABOVE 0132; C; 0133; # LATIN CAPITAL LIGATURE IJ 0134; C; 0135; # LATIN CAPITAL LETTER J WITH CIRCUMFLEX 0136; C; 0137; # LATIN CAPITAL LETTER K WITH CEDILLA 0139; C; 013A; # LATIN CAPITAL LETTER L WITH ACUTE 013B; C; 013C; # LATIN CAPITAL LETTER L WITH CEDILLA 013D; C; 013E; # LATIN CAPITAL LETTER L WITH CARON 013F; C; 0140; # LATIN CAPITAL LETTER L WITH MIDDLE DOT 0141; C; 0142; # LATIN CAPITAL LETTER L WITH STROKE 0143; C; 0144; # LATIN CAPITAL LETTER N WITH ACUTE 0145; C; 0146; # LATIN CAPITAL LETTER N WITH CEDILLA 0147; C; 0148; # LATIN CAPITAL LETTER N WITH CARON 0149; F; 02BC 006E; # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE 014A; C; 014B; # LATIN CAPITAL LETTER ENG 014C; C; 014D; # LATIN CAPITAL LETTER O WITH MACRON 014E; C; 014F; # LATIN CAPITAL LETTER O WITH BREVE 0150; C; 0151; # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE 0152; C; 0153; # LATIN CAPITAL LIGATURE OE 0154; C; 0155; # LATIN CAPITAL LETTER R WITH ACUTE 0156; C; 0157; # LATIN CAPITAL LETTER R WITH CEDILLA 0158; C; 0159; # LATIN CAPITAL LETTER R WITH CARON 015A; C; 015B; # LATIN CAPITAL LETTER S WITH ACUTE 015C; C; 015D; # LATIN CAPITAL LETTER S WITH CIRCUMFLEX 015E; C; 015F; # LATIN CAPITAL LETTER S WITH CEDILLA 0160; C; 0161; # LATIN CAPITAL LETTER S WITH CARON 0162; C; 0163; # LATIN CAPITAL LETTER T WITH CEDILLA 0164; C; 0165; # LATIN CAPITAL LETTER T WITH CARON 0166; C; 0167; # LATIN CAPITAL LETTER T WITH STROKE 0168; C; 0169; # LATIN CAPITAL LETTER U WITH TILDE 016A; C; 016B; # LATIN CAPITAL LETTER U WITH MACRON 016C; C; 016D; # LATIN CAPITAL LETTER U WITH BREVE 016E; C; 016F; # LATIN CAPITAL LETTER U WITH RING ABOVE 0170; C; 0171; # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE 0172; C; 0173; # LATIN CAPITAL LETTER U WITH OGONEK 0174; C; 0175; # LATIN CAPITAL LETTER W WITH CIRCUMFLEX 0176; C; 0177; # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX 0178; C; 00FF; # LATIN CAPITAL LETTER Y WITH DIAERESIS 0179; C; 017A; # LATIN CAPITAL LETTER Z WITH ACUTE 017B; C; 017C; # LATIN CAPITAL LETTER Z WITH DOT ABOVE 017D; C; 017E; # LATIN CAPITAL LETTER Z WITH CARON 017F; C; 0073; # LATIN SMALL LETTER LONG S 0181; C; 0253; # LATIN CAPITAL LETTER B WITH HOOK 0182; C; 0183; # LATIN CAPITAL LETTER B WITH TOPBAR 0184; C; 0185; # LATIN CAPITAL LETTER TONE SIX 0186; C; 0254; # LATIN CAPITAL LETTER OPEN O 0187; C; 0188; # LATIN CAPITAL LETTER C WITH HOOK 0189; C; 0256; # LATIN CAPITAL LETTER AFRICAN D 018A; C; 0257; # LATIN CAPITAL LETTER D WITH HOOK 018B; C; 018C; # LATIN CAPITAL LETTER D WITH TOPBAR 018E; C; 01DD; # LATIN CAPITAL LETTER REVERSED E 018F; C; 0259; # LATIN CAPITAL LETTER SCHWA 0190; C; 025B; # LATIN CAPITAL LETTER OPEN E 0191; C; 0192; # LATIN CAPITAL LETTER F WITH HOOK 0193; C; 0260; # LATIN CAPITAL LETTER G WITH HOOK 0194; C; 0263; # LATIN CAPITAL LETTER GAMMA 0196; C; 0269; # LATIN CAPITAL LETTER IOTA 0197; C; 0268; # LATIN CAPITAL LETTER I WITH STROKE 0198; C; 0199; # LATIN CAPITAL LETTER K WITH HOOK 019C; C; 026F; # LATIN CAPITAL LETTER TURNED M 019D; C; 0272; # LATIN CAPITAL LETTER N WITH LEFT HOOK 019F; C; 0275; # LATIN CAPITAL LETTER O WITH MIDDLE TILDE 01A0; C; 01A1; # LATIN CAPITAL LETTER O WITH HORN 01A2; C; 01A3; # LATIN CAPITAL LETTER OI 01A4; C; 01A5; # LATIN CAPITAL LETTER P WITH HOOK 01A6; C; 0280; # LATIN LETTER YR 01A7; C; 01A8; # LATIN CAPITAL LETTER TONE TWO 01A9; C; 0283; # LATIN CAPITAL LETTER ESH 01AC; C; 01AD; # LATIN CAPITAL LETTER T WITH HOOK 01AE; C; 0288; # LATIN CAPITAL LETTER T WITH RETROFLEX HOOK 01AF; C; 01B0; # LATIN CAPITAL LETTER U WITH HORN 01B1; C; 028A; # LATIN CAPITAL LETTER UPSILON 01B2; C; 028B; # LATIN CAPITAL LETTER V WITH HOOK 01B3; C; 01B4; # LATIN CAPITAL LETTER Y WITH HOOK 01B5; C; 01B6; # LATIN CAPITAL LETTER Z WITH STROKE 01B7; C; 0292; # LATIN CAPITAL LETTER EZH 01B8; C; 01B9; # LATIN CAPITAL LETTER EZH REVERSED 01BC; C; 01BD; # LATIN CAPITAL LETTER TONE FIVE 01C4; C; 01C6; # LATIN CAPITAL LETTER DZ WITH CARON 01C5; C; 01C6; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z WITH CARON 01C7; C; 01C9; # LATIN CAPITAL LETTER LJ 01C8; C; 01C9; # LATIN CAPITAL LETTER L WITH SMALL LETTER J 01CA; C; 01CC; # LATIN CAPITAL LETTER NJ 01CB; C; 01CC; # LATIN CAPITAL LETTER N WITH SMALL LETTER J 01CD; C; 01CE; # LATIN CAPITAL LETTER A WITH CARON 01CF; C; 01D0; # LATIN CAPITAL LETTER I WITH CARON 01D1; C; 01D2; # LATIN CAPITAL LETTER O WITH CARON 01D3; C; 01D4; # LATIN CAPITAL LETTER U WITH CARON 01D5; C; 01D6; # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON 01D7; C; 01D8; # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE 01D9; C; 01DA; # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON 01DB; C; 01DC; # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE 01DE; C; 01DF; # LATIN CAPITAL LETTER A WITH DIAERESIS AND MACRON 01E0; C; 01E1; # LATIN CAPITAL LETTER A WITH DOT ABOVE AND MACRON 01E2; C; 01E3; # LATIN CAPITAL LETTER AE WITH MACRON 01E4; C; 01E5; # LATIN CAPITAL LETTER G WITH STROKE 01E6; C; 01E7; # LATIN CAPITAL LETTER G WITH CARON 01E8; C; 01E9; # LATIN CAPITAL LETTER K WITH CARON 01EA; C; 01EB; # LATIN CAPITAL LETTER O WITH OGONEK 01EC; C; 01ED; # LATIN CAPITAL LETTER O WITH OGONEK AND MACRON 01EE; C; 01EF; # LATIN CAPITAL LETTER EZH WITH CARON 01F0; F; 006A 030C; # LATIN SMALL LETTER J WITH CARON 01F1; C; 01F3; # LATIN CAPITAL LETTER DZ 01F2; C; 01F3; # LATIN CAPITAL LETTER D WITH SMALL LETTER Z 01F4; C; 01F5; # LATIN CAPITAL LETTER G WITH ACUTE 01F6; C; 0195; # LATIN CAPITAL LETTER HWAIR 01F7; C; 01BF; # LATIN CAPITAL LETTER WYNN 01F8; C; 01F9; # LATIN CAPITAL LETTER N WITH GRAVE 01FA; C; 01FB; # LATIN CAPITAL LETTER A WITH RING ABOVE AND ACUTE 01FC; C; 01FD; # LATIN CAPITAL LETTER AE WITH ACUTE 01FE; C; 01FF; # LATIN CAPITAL LETTER O WITH STROKE AND ACUTE 0200; C; 0201; # LATIN CAPITAL LETTER A WITH DOUBLE GRAVE 0202; C; 0203; # LATIN CAPITAL LETTER A WITH INVERTED BREVE 0204; C; 0205; # LATIN CAPITAL LETTER E WITH DOUBLE GRAVE 0206; C; 0207; # LATIN CAPITAL LETTER E WITH INVERTED BREVE 0208; C; 0209; # LATIN CAPITAL LETTER I WITH DOUBLE GRAVE 020A; C; 020B; # LATIN CAPITAL LETTER I WITH INVERTED BREVE 020C; C; 020D; # LATIN CAPITAL LETTER O WITH DOUBLE GRAVE 020E; C; 020F; # LATIN CAPITAL LETTER O WITH INVERTED BREVE 0210; C; 0211; # LATIN CAPITAL LETTER R WITH DOUBLE GRAVE 0212; C; 0213; # LATIN CAPITAL LETTER R WITH INVERTED BREVE 0214; C; 0215; # LATIN CAPITAL LETTER U WITH DOUBLE GRAVE 0216; C; 0217; # LATIN CAPITAL LETTER U WITH INVERTED BREVE 0218; C; 0219; # LATIN CAPITAL LETTER S WITH COMMA BELOW 021A; C; 021B; # LATIN CAPITAL LETTER T WITH COMMA BELOW 021C; C; 021D; # LATIN CAPITAL LETTER YOGH 021E; C; 021F; # LATIN CAPITAL LETTER H WITH CARON 0220; C; 019E; # LATIN CAPITAL LETTER N WITH LONG RIGHT LEG 0222; C; 0223; # LATIN CAPITAL LETTER OU 0224; C; 0225; # LATIN CAPITAL LETTER Z WITH HOOK 0226; C; 0227; # LATIN CAPITAL LETTER A WITH DOT ABOVE 0228; C; 0229; # LATIN CAPITAL LETTER E WITH CEDILLA 022A; C; 022B; # LATIN CAPITAL LETTER O WITH DIAERESIS AND MACRON 022C; C; 022D; # LATIN CAPITAL LETTER O WITH TILDE AND MACRON 022E; C; 022F; # LATIN CAPITAL LETTER O WITH DOT ABOVE 0230; C; 0231; # LATIN CAPITAL LETTER O WITH DOT ABOVE AND MACRON 0232; C; 0233; # LATIN CAPITAL LETTER Y WITH MACRON 0345; C; 03B9; # COMBINING GREEK YPOGEGRAMMENI 0386; C; 03AC; # GREEK CAPITAL LETTER ALPHA WITH TONOS 0388; C; 03AD; # GREEK CAPITAL LETTER EPSILON WITH TONOS 0389; C; 03AE; # GREEK CAPITAL LETTER ETA WITH TONOS 038A; C; 03AF; # GREEK CAPITAL LETTER IOTA WITH TONOS 038C; C; 03CC; # GREEK CAPITAL LETTER OMICRON WITH TONOS 038E; C; 03CD; # GREEK CAPITAL LETTER UPSILON WITH TONOS 038F; C; 03CE; # GREEK CAPITAL LETTER OMEGA WITH TONOS 0390; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS 0391; C; 03B1; # GREEK CAPITAL LETTER ALPHA 0392; C; 03B2; # GREEK CAPITAL LETTER BETA 0393; C; 03B3; # GREEK CAPITAL LETTER GAMMA 0394; C; 03B4; # GREEK CAPITAL LETTER DELTA 0395; C; 03B5; # GREEK CAPITAL LETTER EPSILON 0396; C; 03B6; # GREEK CAPITAL LETTER ZETA 0397; C; 03B7; # GREEK CAPITAL LETTER ETA 0398; C; 03B8; # GREEK CAPITAL LETTER THETA 0399; C; 03B9; # GREEK CAPITAL LETTER IOTA 039A; C; 03BA; # GREEK CAPITAL LETTER KAPPA 039B; C; 03BB; # GREEK CAPITAL LETTER LAMDA 039C; C; 03BC; # GREEK CAPITAL LETTER MU 039D; C; 03BD; # GREEK CAPITAL LETTER NU 039E; C; 03BE; # GREEK CAPITAL LETTER XI 039F; C; 03BF; # GREEK CAPITAL LETTER OMICRON 03A0; C; 03C0; # GREEK CAPITAL LETTER PI 03A1; C; 03C1; # GREEK CAPITAL LETTER RHO 03A3; C; 03C3; # GREEK CAPITAL LETTER SIGMA 03A4; C; 03C4; # GREEK CAPITAL LETTER TAU 03A5; C; 03C5; # GREEK CAPITAL LETTER UPSILON 03A6; C; 03C6; # GREEK CAPITAL LETTER PHI 03A7; C; 03C7; # GREEK CAPITAL LETTER CHI 03A8; C; 03C8; # GREEK CAPITAL LETTER PSI 03A9; C; 03C9; # GREEK CAPITAL LETTER OMEGA 03AA; C; 03CA; # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA 03AB; C; 03CB; # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA 03B0; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS 03C2; C; 03C3; # GREEK SMALL LETTER FINAL SIGMA 03D0; C; 03B2; # GREEK BETA SYMBOL 03D1; C; 03B8; # GREEK THETA SYMBOL 03D5; C; 03C6; # GREEK PHI SYMBOL 03D6; C; 03C0; # GREEK PI SYMBOL 03D8; C; 03D9; # GREEK LETTER ARCHAIC KOPPA 03DA; C; 03DB; # GREEK LETTER STIGMA 03DC; C; 03DD; # GREEK LETTER DIGAMMA 03DE; C; 03DF; # GREEK LETTER KOPPA 03E0; C; 03E1; # GREEK LETTER SAMPI 03E2; C; 03E3; # COPTIC CAPITAL LETTER SHEI 03E4; C; 03E5; # COPTIC CAPITAL LETTER FEI 03E6; C; 03E7; # COPTIC CAPITAL LETTER KHEI 03E8; C; 03E9; # COPTIC CAPITAL LETTER HORI 03EA; C; 03EB; # COPTIC CAPITAL LETTER GANGIA 03EC; C; 03ED; # COPTIC CAPITAL LETTER SHIMA 03EE; C; 03EF; # COPTIC CAPITAL LETTER DEI 03F0; C; 03BA; # GREEK KAPPA SYMBOL 03F1; C; 03C1; # GREEK RHO SYMBOL 03F2; C; 03C3; # GREEK LUNATE SIGMA SYMBOL 03F4; C; 03B8; # GREEK CAPITAL THETA SYMBOL 03F5; C; 03B5; # GREEK LUNATE EPSILON SYMBOL 0400; C; 0450; # CYRILLIC CAPITAL LETTER IE WITH GRAVE 0401; C; 0451; # CYRILLIC CAPITAL LETTER IO 0402; C; 0452; # CYRILLIC CAPITAL LETTER DJE 0403; C; 0453; # CYRILLIC CAPITAL LETTER GJE 0404; C; 0454; # CYRILLIC CAPITAL LETTER UKRAINIAN IE 0405; C; 0455; # CYRILLIC CAPITAL LETTER DZE 0406; C; 0456; # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I 0407; C; 0457; # CYRILLIC CAPITAL LETTER YI 0408; C; 0458; # CYRILLIC CAPITAL LETTER JE 0409; C; 0459; # CYRILLIC CAPITAL LETTER LJE 040A; C; 045A; # CYRILLIC CAPITAL LETTER NJE 040B; C; 045B; # CYRILLIC CAPITAL LETTER TSHE 040C; C; 045C; # CYRILLIC CAPITAL LETTER KJE 040D; C; 045D; # CYRILLIC CAPITAL LETTER I WITH GRAVE 040E; C; 045E; # CYRILLIC CAPITAL LETTER SHORT U 040F; C; 045F; # CYRILLIC CAPITAL LETTER DZHE 0410; C; 0430; # CYRILLIC CAPITAL LETTER A 0411; C; 0431; # CYRILLIC CAPITAL LETTER BE 0412; C; 0432; # CYRILLIC CAPITAL LETTER VE 0413; C; 0433; # CYRILLIC CAPITAL LETTER GHE 0414; C; 0434; # CYRILLIC CAPITAL LETTER DE 0415; C; 0435; # CYRILLIC CAPITAL LETTER IE 0416; C; 0436; # CYRILLIC CAPITAL LETTER ZHE 0417; C; 0437; # CYRILLIC CAPITAL LETTER ZE 0418; C; 0438; # CYRILLIC CAPITAL LETTER I 0419; C; 0439; # CYRILLIC CAPITAL LETTER SHORT I 041A; C; 043A; # CYRILLIC CAPITAL LETTER KA 041B; C; 043B; # CYRILLIC CAPITAL LETTER EL 041C; C; 043C; # CYRILLIC CAPITAL LETTER EM 041D; C; 043D; # CYRILLIC CAPITAL LETTER EN 041E; C; 043E; # CYRILLIC CAPITAL LETTER O 041F; C; 043F; # CYRILLIC CAPITAL LETTER PE 0420; C; 0440; # CYRILLIC CAPITAL LETTER ER 0421; C; 0441; # CYRILLIC CAPITAL LETTER ES 0422; C; 0442; # CYRILLIC CAPITAL LETTER TE 0423; C; 0443; # CYRILLIC CAPITAL LETTER U 0424; C; 0444; # CYRILLIC CAPITAL LETTER EF 0425; C; 0445; # CYRILLIC CAPITAL LETTER HA 0426; C; 0446; # CYRILLIC CAPITAL LETTER TSE 0427; C; 0447; # CYRILLIC CAPITAL LETTER CHE 0428; C; 0448; # CYRILLIC CAPITAL LETTER SHA 0429; C; 0449; # CYRILLIC CAPITAL LETTER SHCHA 042A; C; 044A; # CYRILLIC CAPITAL LETTER HARD SIGN 042B; C; 044B; # CYRILLIC CAPITAL LETTER YERU 042C; C; 044C; # CYRILLIC CAPITAL LETTER SOFT SIGN 042D; C; 044D; # CYRILLIC CAPITAL LETTER E 042E; C; 044E; # CYRILLIC CAPITAL LETTER YU 042F; C; 044F; # CYRILLIC CAPITAL LETTER YA 0460; C; 0461; # CYRILLIC CAPITAL LETTER OMEGA 0462; C; 0463; # CYRILLIC CAPITAL LETTER YAT 0464; C; 0465; # CYRILLIC CAPITAL LETTER IOTIFIED E 0466; C; 0467; # CYRILLIC CAPITAL LETTER LITTLE YUS 0468; C; 0469; # CYRILLIC CAPITAL LETTER IOTIFIED LITTLE YUS 046A; C; 046B; # CYRILLIC CAPITAL LETTER BIG YUS 046C; C; 046D; # CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS 046E; C; 046F; # CYRILLIC CAPITAL LETTER KSI 0470; C; 0471; # CYRILLIC CAPITAL LETTER PSI 0472; C; 0473; # CYRILLIC CAPITAL LETTER FITA 0474; C; 0475; # CYRILLIC CAPITAL LETTER IZHITSA 0476; C; 0477; # CYRILLIC CAPITAL LETTER IZHITSA WITH DOUBLE GRAVE ACCENT 0478; C; 0479; # CYRILLIC CAPITAL LETTER UK 047A; C; 047B; # CYRILLIC CAPITAL LETTER ROUND OMEGA 047C; C; 047D; # CYRILLIC CAPITAL LETTER OMEGA WITH TITLO 047E; C; 047F; # CYRILLIC CAPITAL LETTER OT 0480; C; 0481; # CYRILLIC CAPITAL LETTER KOPPA 048A; C; 048B; # CYRILLIC CAPITAL LETTER SHORT I WITH TAIL 048C; C; 048D; # CYRILLIC CAPITAL LETTER SEMISOFT SIGN 048E; C; 048F; # CYRILLIC CAPITAL LETTER ER WITH TICK 0490; C; 0491; # CYRILLIC CAPITAL LETTER GHE WITH UPTURN 0492; C; 0493; # CYRILLIC CAPITAL LETTER GHE WITH STROKE 0494; C; 0495; # CYRILLIC CAPITAL LETTER GHE WITH MIDDLE HOOK 0496; C; 0497; # CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER 0498; C; 0499; # CYRILLIC CAPITAL LETTER ZE WITH DESCENDER 049A; C; 049B; # CYRILLIC CAPITAL LETTER KA WITH DESCENDER 049C; C; 049D; # CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE 049E; C; 049F; # CYRILLIC CAPITAL LETTER KA WITH STROKE 04A0; C; 04A1; # CYRILLIC CAPITAL LETTER BASHKIR KA 04A2; C; 04A3; # CYRILLIC CAPITAL LETTER EN WITH DESCENDER 04A4; C; 04A5; # CYRILLIC CAPITAL LIGATURE EN GHE 04A6; C; 04A7; # CYRILLIC CAPITAL LETTER PE WITH MIDDLE HOOK 04A8; C; 04A9; # CYRILLIC CAPITAL LETTER ABKHASIAN HA 04AA; C; 04AB; # CYRILLIC CAPITAL LETTER ES WITH DESCENDER 04AC; C; 04AD; # CYRILLIC CAPITAL LETTER TE WITH DESCENDER 04AE; C; 04AF; # CYRILLIC CAPITAL LETTER STRAIGHT U 04B0; C; 04B1; # CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE 04B2; C; 04B3; # CYRILLIC CAPITAL LETTER HA WITH DESCENDER 04B4; C; 04B5; # CYRILLIC CAPITAL LIGATURE TE TSE 04B6; C; 04B7; # CYRILLIC CAPITAL LETTER CHE WITH DESCENDER 04B8; C; 04B9; # CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE 04BA; C; 04BB; # CYRILLIC CAPITAL LETTER SHHA 04BC; C; 04BD; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE 04BE; C; 04BF; # CYRILLIC CAPITAL LETTER ABKHASIAN CHE WITH DESCENDER 04C1; C; 04C2; # CYRILLIC CAPITAL LETTER ZHE WITH BREVE 04C3; C; 04C4; # CYRILLIC CAPITAL LETTER KA WITH HOOK 04C5; C; 04C6; # CYRILLIC CAPITAL LETTER EL WITH TAIL 04C7; C; 04C8; # CYRILLIC CAPITAL LETTER EN WITH HOOK 04C9; C; 04CA; # CYRILLIC CAPITAL LETTER EN WITH TAIL 04CB; C; 04CC; # CYRILLIC CAPITAL LETTER KHAKASSIAN CHE 04CD; C; 04CE; # CYRILLIC CAPITAL LETTER EM WITH TAIL 04D0; C; 04D1; # CYRILLIC CAPITAL LETTER A WITH BREVE 04D2; C; 04D3; # CYRILLIC CAPITAL LETTER A WITH DIAERESIS 04D4; C; 04D5; # CYRILLIC CAPITAL LIGATURE A IE 04D6; C; 04D7; # CYRILLIC CAPITAL LETTER IE WITH BREVE 04D8; C; 04D9; # CYRILLIC CAPITAL LETTER SCHWA 04DA; C; 04DB; # CYRILLIC CAPITAL LETTER SCHWA WITH DIAERESIS 04DC; C; 04DD; # CYRILLIC CAPITAL LETTER ZHE WITH DIAERESIS 04DE; C; 04DF; # CYRILLIC CAPITAL LETTER ZE WITH DIAERESIS 04E0; C; 04E1; # CYRILLIC CAPITAL LETTER ABKHASIAN DZE 04E2; C; 04E3; # CYRILLIC CAPITAL LETTER I WITH MACRON 04E4; C; 04E5; # CYRILLIC CAPITAL LETTER I WITH DIAERESIS 04E6; C; 04E7; # CYRILLIC CAPITAL LETTER O WITH DIAERESIS 04E8; C; 04E9; # CYRILLIC CAPITAL LETTER BARRED O 04EA; C; 04EB; # CYRILLIC CAPITAL LETTER BARRED O WITH DIAERESIS 04EC; C; 04ED; # CYRILLIC CAPITAL LETTER E WITH DIAERESIS 04EE; C; 04EF; # CYRILLIC CAPITAL LETTER U WITH MACRON 04F0; C; 04F1; # CYRILLIC CAPITAL LETTER U WITH DIAERESIS 04F2; C; 04F3; # CYRILLIC CAPITAL LETTER U WITH DOUBLE ACUTE 04F4; C; 04F5; # CYRILLIC CAPITAL LETTER CHE WITH DIAERESIS 04F8; C; 04F9; # CYRILLIC CAPITAL LETTER YERU WITH DIAERESIS 0500; C; 0501; # CYRILLIC CAPITAL LETTER KOMI DE 0502; C; 0503; # CYRILLIC CAPITAL LETTER KOMI DJE 0504; C; 0505; # CYRILLIC CAPITAL LETTER KOMI ZJE 0506; C; 0507; # CYRILLIC CAPITAL LETTER KOMI DZJE 0508; C; 0509; # CYRILLIC CAPITAL LETTER KOMI LJE 050A; C; 050B; # CYRILLIC CAPITAL LETTER KOMI NJE 050C; C; 050D; # CYRILLIC CAPITAL LETTER KOMI SJE 050E; C; 050F; # CYRILLIC CAPITAL LETTER KOMI TJE 0531; C; 0561; # ARMENIAN CAPITAL LETTER AYB 0532; C; 0562; # ARMENIAN CAPITAL LETTER BEN 0533; C; 0563; # ARMENIAN CAPITAL LETTER GIM 0534; C; 0564; # ARMENIAN CAPITAL LETTER DA 0535; C; 0565; # ARMENIAN CAPITAL LETTER ECH 0536; C; 0566; # ARMENIAN CAPITAL LETTER ZA 0537; C; 0567; # ARMENIAN CAPITAL LETTER EH 0538; C; 0568; # ARMENIAN CAPITAL LETTER ET 0539; C; 0569; # ARMENIAN CAPITAL LETTER TO 053A; C; 056A; # ARMENIAN CAPITAL LETTER ZHE 053B; C; 056B; # ARMENIAN CAPITAL LETTER INI 053C; C; 056C; # ARMENIAN CAPITAL LETTER LIWN 053D; C; 056D; # ARMENIAN CAPITAL LETTER XEH 053E; C; 056E; # ARMENIAN CAPITAL LETTER CA 053F; C; 056F; # ARMENIAN CAPITAL LETTER KEN 0540; C; 0570; # ARMENIAN CAPITAL LETTER HO 0541; C; 0571; # ARMENIAN CAPITAL LETTER JA 0542; C; 0572; # ARMENIAN CAPITAL LETTER GHAD 0543; C; 0573; # ARMENIAN CAPITAL LETTER CHEH 0544; C; 0574; # ARMENIAN CAPITAL LETTER MEN 0545; C; 0575; # ARMENIAN CAPITAL LETTER YI 0546; C; 0576; # ARMENIAN CAPITAL LETTER NOW 0547; C; 0577; # ARMENIAN CAPITAL LETTER SHA 0548; C; 0578; # ARMENIAN CAPITAL LETTER VO 0549; C; 0579; # ARMENIAN CAPITAL LETTER CHA 054A; C; 057A; # ARMENIAN CAPITAL LETTER PEH 054B; C; 057B; # ARMENIAN CAPITAL LETTER JHEH 054C; C; 057C; # ARMENIAN CAPITAL LETTER RA 054D; C; 057D; # ARMENIAN CAPITAL LETTER SEH 054E; C; 057E; # ARMENIAN CAPITAL LETTER VEW 054F; C; 057F; # ARMENIAN CAPITAL LETTER TIWN 0550; C; 0580; # ARMENIAN CAPITAL LETTER REH 0551; C; 0581; # ARMENIAN CAPITAL LETTER CO 0552; C; 0582; # ARMENIAN CAPITAL LETTER YIWN 0553; C; 0583; # ARMENIAN CAPITAL LETTER PIWR 0554; C; 0584; # ARMENIAN CAPITAL LETTER KEH 0555; C; 0585; # ARMENIAN CAPITAL LETTER OH 0556; C; 0586; # ARMENIAN CAPITAL LETTER FEH 0587; F; 0565 0582; # ARMENIAN SMALL LIGATURE ECH YIWN 1E00; C; 1E01; # LATIN CAPITAL LETTER A WITH RING BELOW 1E02; C; 1E03; # LATIN CAPITAL LETTER B WITH DOT ABOVE 1E04; C; 1E05; # LATIN CAPITAL LETTER B WITH DOT BELOW 1E06; C; 1E07; # LATIN CAPITAL LETTER B WITH LINE BELOW 1E08; C; 1E09; # LATIN CAPITAL LETTER C WITH CEDILLA AND ACUTE 1E0A; C; 1E0B; # LATIN CAPITAL LETTER D WITH DOT ABOVE 1E0C; C; 1E0D; # LATIN CAPITAL LETTER D WITH DOT BELOW 1E0E; C; 1E0F; # LATIN CAPITAL LETTER D WITH LINE BELOW 1E10; C; 1E11; # LATIN CAPITAL LETTER D WITH CEDILLA 1E12; C; 1E13; # LATIN CAPITAL LETTER D WITH CIRCUMFLEX BELOW 1E14; C; 1E15; # LATIN CAPITAL LETTER E WITH MACRON AND GRAVE 1E16; C; 1E17; # LATIN CAPITAL LETTER E WITH MACRON AND ACUTE 1E18; C; 1E19; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX BELOW 1E1A; C; 1E1B; # LATIN CAPITAL LETTER E WITH TILDE BELOW 1E1C; C; 1E1D; # LATIN CAPITAL LETTER E WITH CEDILLA AND BREVE 1E1E; C; 1E1F; # LATIN CAPITAL LETTER F WITH DOT ABOVE 1E20; C; 1E21; # LATIN CAPITAL LETTER G WITH MACRON 1E22; C; 1E23; # LATIN CAPITAL LETTER H WITH DOT ABOVE 1E24; C; 1E25; # LATIN CAPITAL LETTER H WITH DOT BELOW 1E26; C; 1E27; # LATIN CAPITAL LETTER H WITH DIAERESIS 1E28; C; 1E29; # LATIN CAPITAL LETTER H WITH CEDILLA 1E2A; C; 1E2B; # LATIN CAPITAL LETTER H WITH BREVE BELOW 1E2C; C; 1E2D; # LATIN CAPITAL LETTER I WITH TILDE BELOW 1E2E; C; 1E2F; # LATIN CAPITAL LETTER I WITH DIAERESIS AND ACUTE 1E30; C; 1E31; # LATIN CAPITAL LETTER K WITH ACUTE 1E32; C; 1E33; # LATIN CAPITAL LETTER K WITH DOT BELOW 1E34; C; 1E35; # LATIN CAPITAL LETTER K WITH LINE BELOW 1E36; C; 1E37; # LATIN CAPITAL LETTER L WITH DOT BELOW 1E38; C; 1E39; # LATIN CAPITAL LETTER L WITH DOT BELOW AND MACRON 1E3A; C; 1E3B; # LATIN CAPITAL LETTER L WITH LINE BELOW 1E3C; C; 1E3D; # LATIN CAPITAL LETTER L WITH CIRCUMFLEX BELOW 1E3E; C; 1E3F; # LATIN CAPITAL LETTER M WITH ACUTE 1E40; C; 1E41; # LATIN CAPITAL LETTER M WITH DOT ABOVE 1E42; C; 1E43; # LATIN CAPITAL LETTER M WITH DOT BELOW 1E44; C; 1E45; # LATIN CAPITAL LETTER N WITH DOT ABOVE 1E46; C; 1E47; # LATIN CAPITAL LETTER N WITH DOT BELOW 1E48; C; 1E49; # LATIN CAPITAL LETTER N WITH LINE BELOW 1E4A; C; 1E4B; # LATIN CAPITAL LETTER N WITH CIRCUMFLEX BELOW 1E4C; C; 1E4D; # LATIN CAPITAL LETTER O WITH TILDE AND ACUTE 1E4E; C; 1E4F; # LATIN CAPITAL LETTER O WITH TILDE AND DIAERESIS 1E50; C; 1E51; # LATIN CAPITAL LETTER O WITH MACRON AND GRAVE 1E52; C; 1E53; # LATIN CAPITAL LETTER O WITH MACRON AND ACUTE 1E54; C; 1E55; # LATIN CAPITAL LETTER P WITH ACUTE 1E56; C; 1E57; # LATIN CAPITAL LETTER P WITH DOT ABOVE 1E58; C; 1E59; # LATIN CAPITAL LETTER R WITH DOT ABOVE 1E5A; C; 1E5B; # LATIN CAPITAL LETTER R WITH DOT BELOW 1E5C; C; 1E5D; # LATIN CAPITAL LETTER R WITH DOT BELOW AND MACRON 1E5E; C; 1E5F; # LATIN CAPITAL LETTER R WITH LINE BELOW 1E60; C; 1E61; # LATIN CAPITAL LETTER S WITH DOT ABOVE 1E62; C; 1E63; # LATIN CAPITAL LETTER S WITH DOT BELOW 1E64; C; 1E65; # LATIN CAPITAL LETTER S WITH ACUTE AND DOT ABOVE 1E66; C; 1E67; # LATIN CAPITAL LETTER S WITH CARON AND DOT ABOVE 1E68; C; 1E69; # LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE 1E6A; C; 1E6B; # LATIN CAPITAL LETTER T WITH DOT ABOVE 1E6C; C; 1E6D; # LATIN CAPITAL LETTER T WITH DOT BELOW 1E6E; C; 1E6F; # LATIN CAPITAL LETTER T WITH LINE BELOW 1E70; C; 1E71; # LATIN CAPITAL LETTER T WITH CIRCUMFLEX BELOW 1E72; C; 1E73; # LATIN CAPITAL LETTER U WITH DIAERESIS BELOW 1E74; C; 1E75; # LATIN CAPITAL LETTER U WITH TILDE BELOW 1E76; C; 1E77; # LATIN CAPITAL LETTER U WITH CIRCUMFLEX BELOW 1E78; C; 1E79; # LATIN CAPITAL LETTER U WITH TILDE AND ACUTE 1E7A; C; 1E7B; # LATIN CAPITAL LETTER U WITH MACRON AND DIAERESIS 1E7C; C; 1E7D; # LATIN CAPITAL LETTER V WITH TILDE 1E7E; C; 1E7F; # LATIN CAPITAL LETTER V WITH DOT BELOW 1E80; C; 1E81; # LATIN CAPITAL LETTER W WITH GRAVE 1E82; C; 1E83; # LATIN CAPITAL LETTER W WITH ACUTE 1E84; C; 1E85; # LATIN CAPITAL LETTER W WITH DIAERESIS 1E86; C; 1E87; # LATIN CAPITAL LETTER W WITH DOT ABOVE 1E88; C; 1E89; # LATIN CAPITAL LETTER W WITH DOT BELOW 1E8A; C; 1E8B; # LATIN CAPITAL LETTER X WITH DOT ABOVE 1E8C; C; 1E8D; # LATIN CAPITAL LETTER X WITH DIAERESIS 1E8E; C; 1E8F; # LATIN CAPITAL LETTER Y WITH DOT ABOVE 1E90; C; 1E91; # LATIN CAPITAL LETTER Z WITH CIRCUMFLEX 1E92; C; 1E93; # LATIN CAPITAL LETTER Z WITH DOT BELOW 1E94; C; 1E95; # LATIN CAPITAL LETTER Z WITH LINE BELOW 1E96; F; 0068 0331; # LATIN SMALL LETTER H WITH LINE BELOW 1E97; F; 0074 0308; # LATIN SMALL LETTER T WITH DIAERESIS 1E98; F; 0077 030A; # LATIN SMALL LETTER W WITH RING ABOVE 1E99; F; 0079 030A; # LATIN SMALL LETTER Y WITH RING ABOVE 1E9A; F; 0061 02BE; # LATIN SMALL LETTER A WITH RIGHT HALF RING 1E9B; C; 1E61; # LATIN SMALL LETTER LONG S WITH DOT ABOVE 1EA0; C; 1EA1; # LATIN CAPITAL LETTER A WITH DOT BELOW 1EA2; C; 1EA3; # LATIN CAPITAL LETTER A WITH HOOK ABOVE 1EA4; C; 1EA5; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE 1EA6; C; 1EA7; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE 1EA8; C; 1EA9; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE 1EAA; C; 1EAB; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE 1EAC; C; 1EAD; # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW 1EAE; C; 1EAF; # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE 1EB0; C; 1EB1; # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE 1EB2; C; 1EB3; # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE 1EB4; C; 1EB5; # LATIN CAPITAL LETTER A WITH BREVE AND TILDE 1EB6; C; 1EB7; # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW 1EB8; C; 1EB9; # LATIN CAPITAL LETTER E WITH DOT BELOW 1EBA; C; 1EBB; # LATIN CAPITAL LETTER E WITH HOOK ABOVE 1EBC; C; 1EBD; # LATIN CAPITAL LETTER E WITH TILDE 1EBE; C; 1EBF; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE 1EC0; C; 1EC1; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE 1EC2; C; 1EC3; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE 1EC4; C; 1EC5; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE 1EC6; C; 1EC7; # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW 1EC8; C; 1EC9; # LATIN CAPITAL LETTER I WITH HOOK ABOVE 1ECA; C; 1ECB; # LATIN CAPITAL LETTER I WITH DOT BELOW 1ECC; C; 1ECD; # LATIN CAPITAL LETTER O WITH DOT BELOW 1ECE; C; 1ECF; # LATIN CAPITAL LETTER O WITH HOOK ABOVE 1ED0; C; 1ED1; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE 1ED2; C; 1ED3; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE 1ED4; C; 1ED5; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE 1ED6; C; 1ED7; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE 1ED8; C; 1ED9; # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW 1EDA; C; 1EDB; # LATIN CAPITAL LETTER O WITH HORN AND ACUTE 1EDC; C; 1EDD; # LATIN CAPITAL LETTER O WITH HORN AND GRAVE 1EDE; C; 1EDF; # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE 1EE0; C; 1EE1; # LATIN CAPITAL LETTER O WITH HORN AND TILDE 1EE2; C; 1EE3; # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW 1EE4; C; 1EE5; # LATIN CAPITAL LETTER U WITH DOT BELOW 1EE6; C; 1EE7; # LATIN CAPITAL LETTER U WITH HOOK ABOVE 1EE8; C; 1EE9; # LATIN CAPITAL LETTER U WITH HORN AND ACUTE 1EEA; C; 1EEB; # LATIN CAPITAL LETTER U WITH HORN AND GRAVE 1EEC; C; 1EED; # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE 1EEE; C; 1EEF; # LATIN CAPITAL LETTER U WITH HORN AND TILDE 1EF0; C; 1EF1; # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW 1EF2; C; 1EF3; # LATIN CAPITAL LETTER Y WITH GRAVE 1EF4; C; 1EF5; # LATIN CAPITAL LETTER Y WITH DOT BELOW 1EF6; C; 1EF7; # LATIN CAPITAL LETTER Y WITH HOOK ABOVE 1EF8; C; 1EF9; # LATIN CAPITAL LETTER Y WITH TILDE 1F08; C; 1F00; # GREEK CAPITAL LETTER ALPHA WITH PSILI 1F09; C; 1F01; # GREEK CAPITAL LETTER ALPHA WITH DASIA 1F0A; C; 1F02; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA 1F0B; C; 1F03; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA 1F0C; C; 1F04; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA 1F0D; C; 1F05; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA 1F0E; C; 1F06; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI 1F0F; C; 1F07; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI 1F18; C; 1F10; # GREEK CAPITAL LETTER EPSILON WITH PSILI 1F19; C; 1F11; # GREEK CAPITAL LETTER EPSILON WITH DASIA 1F1A; C; 1F12; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND VARIA 1F1B; C; 1F13; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND VARIA 1F1C; C; 1F14; # GREEK CAPITAL LETTER EPSILON WITH PSILI AND OXIA 1F1D; C; 1F15; # GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA 1F28; C; 1F20; # GREEK CAPITAL LETTER ETA WITH PSILI 1F29; C; 1F21; # GREEK CAPITAL LETTER ETA WITH DASIA 1F2A; C; 1F22; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA 1F2B; C; 1F23; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA 1F2C; C; 1F24; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA 1F2D; C; 1F25; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA 1F2E; C; 1F26; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI 1F2F; C; 1F27; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI 1F38; C; 1F30; # GREEK CAPITAL LETTER IOTA WITH PSILI 1F39; C; 1F31; # GREEK CAPITAL LETTER IOTA WITH DASIA 1F3A; C; 1F32; # GREEK CAPITAL LETTER IOTA WITH PSILI AND VARIA 1F3B; C; 1F33; # GREEK CAPITAL LETTER IOTA WITH DASIA AND VARIA 1F3C; C; 1F34; # GREEK CAPITAL LETTER IOTA WITH PSILI AND OXIA 1F3D; C; 1F35; # GREEK CAPITAL LETTER IOTA WITH DASIA AND OXIA 1F3E; C; 1F36; # GREEK CAPITAL LETTER IOTA WITH PSILI AND PERISPOMENI 1F3F; C; 1F37; # GREEK CAPITAL LETTER IOTA WITH DASIA AND PERISPOMENI 1F48; C; 1F40; # GREEK CAPITAL LETTER OMICRON WITH PSILI 1F49; C; 1F41; # GREEK CAPITAL LETTER OMICRON WITH DASIA 1F4A; C; 1F42; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND VARIA 1F4B; C; 1F43; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND VARIA 1F4C; C; 1F44; # GREEK CAPITAL LETTER OMICRON WITH PSILI AND OXIA 1F4D; C; 1F45; # GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA 1F50; F; 03C5 0313; # GREEK SMALL LETTER UPSILON WITH PSILI 1F52; F; 03C5 0313 0300; # GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA 1F54; F; 03C5 0313 0301; # GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA 1F56; F; 03C5 0313 0342; # GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI 1F59; C; 1F51; # GREEK CAPITAL LETTER UPSILON WITH DASIA 1F5B; C; 1F53; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND VARIA 1F5D; C; 1F55; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND OXIA 1F5F; C; 1F57; # GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI 1F68; C; 1F60; # GREEK CAPITAL LETTER OMEGA WITH PSILI 1F69; C; 1F61; # GREEK CAPITAL LETTER OMEGA WITH DASIA 1F6A; C; 1F62; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA 1F6B; C; 1F63; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA 1F6C; C; 1F64; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA 1F6D; C; 1F65; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA 1F6E; C; 1F66; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI 1F6F; C; 1F67; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI 1F80; F; 1F00 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI 1F81; F; 1F01 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI 1F82; F; 1F02 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F83; F; 1F03 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F84; F; 1F04 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F85; F; 1F05 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F86; F; 1F06 03B9; # GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F87; F; 1F07 03B9; # GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F88; F; 1F00 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F88; S; 1F80; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PROSGEGRAMMENI 1F89; F; 1F01 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F89; S; 1F81; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PROSGEGRAMMENI 1F8A; F; 1F02 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8A; S; 1F82; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F8B; F; 1F03 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8B; S; 1F83; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F8C; F; 1F04 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8C; S; 1F84; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F8D; F; 1F05 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8D; S; 1F85; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F8E; F; 1F06 03B9; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8E; S; 1F86; # GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; F; 1F07 03B9; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F8F; S; 1F87; # GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F90; F; 1F20 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI 1F91; F; 1F21 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI 1F92; F; 1F22 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1F93; F; 1F23 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1F94; F; 1F24 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1F95; F; 1F25 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1F96; F; 1F26 03B9; # GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1F97; F; 1F27 03B9; # GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1F98; F; 1F20 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F98; S; 1F90; # GREEK CAPITAL LETTER ETA WITH PSILI AND PROSGEGRAMMENI 1F99; F; 1F21 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F99; S; 1F91; # GREEK CAPITAL LETTER ETA WITH DASIA AND PROSGEGRAMMENI 1F9A; F; 1F22 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9A; S; 1F92; # GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1F9B; F; 1F23 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9B; S; 1F93; # GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1F9C; F; 1F24 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9C; S; 1F94; # GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1F9D; F; 1F25 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9D; S; 1F95; # GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1F9E; F; 1F26 03B9; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9E; S; 1F96; # GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; F; 1F27 03B9; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1F9F; S; 1F97; # GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FA0; F; 1F60 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI 1FA1; F; 1F61 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI 1FA2; F; 1F62 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI 1FA3; F; 1F63 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI 1FA4; F; 1F64 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI 1FA5; F; 1F65 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI 1FA6; F; 1F66 03B9; # GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI 1FA7; F; 1F67 03B9; # GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI 1FA8; F; 1F60 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA8; S; 1FA0; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PROSGEGRAMMENI 1FA9; F; 1F61 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FA9; S; 1FA1; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PROSGEGRAMMENI 1FAA; F; 1F62 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAA; S; 1FA2; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA AND PROSGEGRAMMENI 1FAB; F; 1F63 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAB; S; 1FA3; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA AND PROSGEGRAMMENI 1FAC; F; 1F64 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAC; S; 1FA4; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA AND PROSGEGRAMMENI 1FAD; F; 1F65 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAD; S; 1FA5; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA AND PROSGEGRAMMENI 1FAE; F; 1F66 03B9; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAE; S; 1FA6; # GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; F; 1F67 03B9; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FAF; S; 1FA7; # GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI AND PROSGEGRAMMENI 1FB2; F; 1F70 03B9; # GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI 1FB3; F; 03B1 03B9; # GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI 1FB4; F; 03AC 03B9; # GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI 1FB6; F; 03B1 0342; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI 1FB7; F; 03B1 0342 03B9; # GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI 1FB8; C; 1FB0; # GREEK CAPITAL LETTER ALPHA WITH VRACHY 1FB9; C; 1FB1; # GREEK CAPITAL LETTER ALPHA WITH MACRON 1FBA; C; 1F70; # GREEK CAPITAL LETTER ALPHA WITH VARIA 1FBB; C; 1F71; # GREEK CAPITAL LETTER ALPHA WITH OXIA 1FBC; F; 03B1 03B9; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBC; S; 1FB3; # GREEK CAPITAL LETTER ALPHA WITH PROSGEGRAMMENI 1FBE; C; 03B9; # GREEK PROSGEGRAMMENI 1FC2; F; 1F74 03B9; # GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI 1FC3; F; 03B7 03B9; # GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI 1FC4; F; 03AE 03B9; # GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI 1FC6; F; 03B7 0342; # GREEK SMALL LETTER ETA WITH PERISPOMENI 1FC7; F; 03B7 0342 03B9; # GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI 1FC8; C; 1F72; # GREEK CAPITAL LETTER EPSILON WITH VARIA 1FC9; C; 1F73; # GREEK CAPITAL LETTER EPSILON WITH OXIA 1FCA; C; 1F74; # GREEK CAPITAL LETTER ETA WITH VARIA 1FCB; C; 1F75; # GREEK CAPITAL LETTER ETA WITH OXIA 1FCC; F; 03B7 03B9; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FCC; S; 1FC3; # GREEK CAPITAL LETTER ETA WITH PROSGEGRAMMENI 1FD2; F; 03B9 0308 0300; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA 1FD3; F; 03B9 0308 0301; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA 1FD6; F; 03B9 0342; # GREEK SMALL LETTER IOTA WITH PERISPOMENI 1FD7; F; 03B9 0308 0342; # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI 1FD8; C; 1FD0; # GREEK CAPITAL LETTER IOTA WITH VRACHY 1FD9; C; 1FD1; # GREEK CAPITAL LETTER IOTA WITH MACRON 1FDA; C; 1F76; # GREEK CAPITAL LETTER IOTA WITH VARIA 1FDB; C; 1F77; # GREEK CAPITAL LETTER IOTA WITH OXIA 1FE2; F; 03C5 0308 0300; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA 1FE3; F; 03C5 0308 0301; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA 1FE4; F; 03C1 0313; # GREEK SMALL LETTER RHO WITH PSILI 1FE6; F; 03C5 0342; # GREEK SMALL LETTER UPSILON WITH PERISPOMENI 1FE7; F; 03C5 0308 0342; # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI 1FE8; C; 1FE0; # GREEK CAPITAL LETTER UPSILON WITH VRACHY 1FE9; C; 1FE1; # GREEK CAPITAL LETTER UPSILON WITH MACRON 1FEA; C; 1F7A; # GREEK CAPITAL LETTER UPSILON WITH VARIA 1FEB; C; 1F7B; # GREEK CAPITAL LETTER UPSILON WITH OXIA 1FEC; C; 1FE5; # GREEK CAPITAL LETTER RHO WITH DASIA 1FF2; F; 1F7C 03B9; # GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI 1FF3; F; 03C9 03B9; # GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI 1FF4; F; 03CE 03B9; # GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI 1FF6; F; 03C9 0342; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI 1FF7; F; 03C9 0342 03B9; # GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI 1FF8; C; 1F78; # GREEK CAPITAL LETTER OMICRON WITH VARIA 1FF9; C; 1F79; # GREEK CAPITAL LETTER OMICRON WITH OXIA 1FFA; C; 1F7C; # GREEK CAPITAL LETTER OMEGA WITH VARIA 1FFB; C; 1F7D; # GREEK CAPITAL LETTER OMEGA WITH OXIA 1FFC; F; 03C9 03B9; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 1FFC; S; 1FF3; # GREEK CAPITAL LETTER OMEGA WITH PROSGEGRAMMENI 2126; C; 03C9; # OHM SIGN 212A; C; 006B; # KELVIN SIGN 212B; C; 00E5; # ANGSTROM SIGN 2160; C; 2170; # ROMAN NUMERAL ONE 2161; C; 2171; # ROMAN NUMERAL TWO 2162; C; 2172; # ROMAN NUMERAL THREE 2163; C; 2173; # ROMAN NUMERAL FOUR 2164; C; 2174; # ROMAN NUMERAL FIVE 2165; C; 2175; # ROMAN NUMERAL SIX 2166; C; 2176; # ROMAN NUMERAL SEVEN 2167; C; 2177; # ROMAN NUMERAL EIGHT 2168; C; 2178; # ROMAN NUMERAL NINE 2169; C; 2179; # ROMAN NUMERAL TEN 216A; C; 217A; # ROMAN NUMERAL ELEVEN 216B; C; 217B; # ROMAN NUMERAL TWELVE 216C; C; 217C; # ROMAN NUMERAL FIFTY 216D; C; 217D; # ROMAN NUMERAL ONE HUNDRED 216E; C; 217E; # ROMAN NUMERAL FIVE HUNDRED 216F; C; 217F; # ROMAN NUMERAL ONE THOUSAND 24B6; C; 24D0; # CIRCLED LATIN CAPITAL LETTER A 24B7; C; 24D1; # CIRCLED LATIN CAPITAL LETTER B 24B8; C; 24D2; # CIRCLED LATIN CAPITAL LETTER C 24B9; C; 24D3; # CIRCLED LATIN CAPITAL LETTER D 24BA; C; 24D4; # CIRCLED LATIN CAPITAL LETTER E 24BB; C; 24D5; # CIRCLED LATIN CAPITAL LETTER F 24BC; C; 24D6; # CIRCLED LATIN CAPITAL LETTER G 24BD; C; 24D7; # CIRCLED LATIN CAPITAL LETTER H 24BE; C; 24D8; # CIRCLED LATIN CAPITAL LETTER I 24BF; C; 24D9; # CIRCLED LATIN CAPITAL LETTER J 24C0; C; 24DA; # CIRCLED LATIN CAPITAL LETTER K 24C1; C; 24DB; # CIRCLED LATIN CAPITAL LETTER L 24C2; C; 24DC; # CIRCLED LATIN CAPITAL LETTER M 24C3; C; 24DD; # CIRCLED LATIN CAPITAL LETTER N 24C4; C; 24DE; # CIRCLED LATIN CAPITAL LETTER O 24C5; C; 24DF; # CIRCLED LATIN CAPITAL LETTER P 24C6; C; 24E0; # CIRCLED LATIN CAPITAL LETTER Q 24C7; C; 24E1; # CIRCLED LATIN CAPITAL LETTER R 24C8; C; 24E2; # CIRCLED LATIN CAPITAL LETTER S 24C9; C; 24E3; # CIRCLED LATIN CAPITAL LETTER T 24CA; C; 24E4; # CIRCLED LATIN CAPITAL LETTER U 24CB; C; 24E5; # CIRCLED LATIN CAPITAL LETTER V 24CC; C; 24E6; # CIRCLED LATIN CAPITAL LETTER W 24CD; C; 24E7; # CIRCLED LATIN CAPITAL LETTER X 24CE; C; 24E8; # CIRCLED LATIN CAPITAL LETTER Y 24CF; C; 24E9; # CIRCLED LATIN CAPITAL LETTER Z FB00; F; 0066 0066; # LATIN SMALL LIGATURE FF FB01; F; 0066 0069; # LATIN SMALL LIGATURE FI FB02; F; 0066 006C; # LATIN SMALL LIGATURE FL FB03; F; 0066 0066 0069; # LATIN SMALL LIGATURE FFI FB04; F; 0066 0066 006C; # LATIN SMALL LIGATURE FFL FB05; F; 0073 0074; # LATIN SMALL LIGATURE LONG S T FB06; F; 0073 0074; # LATIN SMALL LIGATURE ST FB13; F; 0574 0576; # ARMENIAN SMALL LIGATURE MEN NOW FB14; F; 0574 0565; # ARMENIAN SMALL LIGATURE MEN ECH FB15; F; 0574 056B; # ARMENIAN SMALL LIGATURE MEN INI FB16; F; 057E 0576; # ARMENIAN SMALL LIGATURE VEW NOW FB17; F; 0574 056D; # ARMENIAN SMALL LIGATURE MEN XEH FF21; C; FF41; # FULLWIDTH LATIN CAPITAL LETTER A FF22; C; FF42; # FULLWIDTH LATIN CAPITAL LETTER B FF23; C; FF43; # FULLWIDTH LATIN CAPITAL LETTER C FF24; C; FF44; # FULLWIDTH LATIN CAPITAL LETTER D FF25; C; FF45; # FULLWIDTH LATIN CAPITAL LETTER E FF26; C; FF46; # FULLWIDTH LATIN CAPITAL LETTER F FF27; C; FF47; # FULLWIDTH LATIN CAPITAL LETTER G FF28; C; FF48; # FULLWIDTH LATIN CAPITAL LETTER H FF29; C; FF49; # FULLWIDTH LATIN CAPITAL LETTER I FF2A; C; FF4A; # FULLWIDTH LATIN CAPITAL LETTER J FF2B; C; FF4B; # FULLWIDTH LATIN CAPITAL LETTER K FF2C; C; FF4C; # FULLWIDTH LATIN CAPITAL LETTER L FF2D; C; FF4D; # FULLWIDTH LATIN CAPITAL LETTER M FF2E; C; FF4E; # FULLWIDTH LATIN CAPITAL LETTER N FF2F; C; FF4F; # FULLWIDTH LATIN CAPITAL LETTER O FF30; C; FF50; # FULLWIDTH LATIN CAPITAL LETTER P FF31; C; FF51; # FULLWIDTH LATIN CAPITAL LETTER Q FF32; C; FF52; # FULLWIDTH LATIN CAPITAL LETTER R FF33; C; FF53; # FULLWIDTH LATIN CAPITAL LETTER S FF34; C; FF54; # FULLWIDTH LATIN CAPITAL LETTER T FF35; C; FF55; # FULLWIDTH LATIN CAPITAL LETTER U FF36; C; FF56; # FULLWIDTH LATIN CAPITAL LETTER V FF37; C; FF57; # FULLWIDTH LATIN CAPITAL LETTER W FF38; C; FF58; # FULLWIDTH LATIN CAPITAL LETTER X FF39; C; FF59; # FULLWIDTH LATIN CAPITAL LETTER Y FF3A; C; FF5A; # FULLWIDTH LATIN CAPITAL LETTER Z 10400; C; 10428; # DESERET CAPITAL LETTER LONG I 10401; C; 10429; # DESERET CAPITAL LETTER LONG E 10402; C; 1042A; # DESERET CAPITAL LETTER LONG A 10403; C; 1042B; # DESERET CAPITAL LETTER LONG AH 10404; C; 1042C; # DESERET CAPITAL LETTER LONG O 10405; C; 1042D; # DESERET CAPITAL LETTER LONG OO 10406; C; 1042E; # DESERET CAPITAL LETTER SHORT I 10407; C; 1042F; # DESERET CAPITAL LETTER SHORT E 10408; C; 10430; # DESERET CAPITAL LETTER SHORT A 10409; C; 10431; # DESERET CAPITAL LETTER SHORT AH 1040A; C; 10432; # DESERET CAPITAL LETTER SHORT O 1040B; C; 10433; # DESERET CAPITAL LETTER SHORT OO 1040C; C; 10434; # DESERET CAPITAL LETTER AY 1040D; C; 10435; # DESERET CAPITAL LETTER OW 1040E; C; 10436; # DESERET CAPITAL LETTER WU 1040F; C; 10437; # DESERET CAPITAL LETTER YEE 10410; C; 10438; # DESERET CAPITAL LETTER H 10411; C; 10439; # DESERET CAPITAL LETTER PEE 10412; C; 1043A; # DESERET CAPITAL LETTER BEE 10413; C; 1043B; # DESERET CAPITAL LETTER TEE 10414; C; 1043C; # DESERET CAPITAL LETTER DEE 10415; C; 1043D; # DESERET CAPITAL LETTER CHEE 10416; C; 1043E; # DESERET CAPITAL LETTER JEE 10417; C; 1043F; # DESERET CAPITAL LETTER KAY 10418; C; 10440; # DESERET CAPITAL LETTER GAY 10419; C; 10441; # DESERET CAPITAL LETTER EF 1041A; C; 10442; # DESERET CAPITAL LETTER VEE 1041B; C; 10443; # DESERET CAPITAL LETTER ETH 1041C; C; 10444; # DESERET CAPITAL LETTER THEE 1041D; C; 10445; # DESERET CAPITAL LETTER ES 1041E; C; 10446; # DESERET CAPITAL LETTER ZEE 1041F; C; 10447; # DESERET CAPITAL LETTER ESH 10420; C; 10448; # DESERET CAPITAL LETTER ZHEE 10421; C; 10449; # DESERET CAPITAL LETTER ER 10422; C; 1044A; # DESERET CAPITAL LETTER EL 10423; C; 1044B; # DESERET CAPITAL LETTER EM 10424; C; 1044C; # DESERET CAPITAL LETTER EN 10425; C; 1044D; # DESERET CAPITAL LETTER ENG �����������������������������������������������������������������������������������������libidn-1.28/build-aux/������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253754�011562� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/mdate-sh����������������������������������������������������������������������0000755�0000000�0000000�00000013637�12167244660�013140� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Get modification time of a file or directory and pretty-print it. scriptversion=2010-08-21.06; # UTC # Copyright (C) 1995-2013 Free Software Foundation, Inc. # written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, June 1995 # # 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. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to <bug-automake@gnu.org> or send patches to # <automake-patches@gnu.org>. if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST fi case $1 in '') echo "$0: No file. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: mdate-sh [--help] [--version] FILE Pretty-print the modification day of FILE, in the format: 1 January 1970 Report bugs to <bug-automake@gnu.org>. EOF exit $? ;; -v | --v*) echo "mdate-sh $scriptversion" exit $? ;; esac error () { echo "$0: $1" >&2 exit 1 } # Prevent date giving response in another language. LANG=C export LANG LC_ALL=C export LC_ALL LC_TIME=C export LC_TIME # GNU ls changes its time format in response to the TIME_STYLE # variable. Since we cannot assume 'unset' works, revert this # variable to its documented default. if test "${TIME_STYLE+set}" = set; then TIME_STYLE=posix-long-iso export TIME_STYLE fi save_arg1=$1 # Find out how to get the extended ls output of a file or directory. if ls -L /dev/null 1>/dev/null 2>&1; then ls_command='ls -L -l -d' else ls_command='ls -l -d' fi # Avoid user/group names that might have spaces, when possible. if ls -n /dev/null 1>/dev/null 2>&1; then ls_command="$ls_command -n" fi # A 'ls -l' line looks as follows on OS/2. # drwxrwx--- 0 Aug 11 2001 foo # This differs from Unix, which adds ownership information. # drwxrwx--- 2 root root 4096 Aug 11 2001 foo # # To find the date, we split the line on spaces and iterate on words # until we find a month. This cannot work with files whose owner is a # user named "Jan", or "Feb", etc. However, it's unlikely that '/' # will be owned by a user whose name is a month. So we first look at # the extended ls output of the root directory to decide how many # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. set x`$ls_command /` # Find which argument is the month. month= command= until test $month do test $# -gt 0 || error "failed parsing '$ls_command /' output" shift # Add another shift to the command. command="$command shift;" case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac done test -n "$month" || error "failed parsing '$ls_command /' output" # Get the extended ls output of the file or directory. set dummy x`eval "$ls_command \"\\\$save_arg1\""` # Remove all preceding arguments eval $command # Because of the dummy argument above, month is in $2. # # On a POSIX system, we should have # # $# = 5 # $1 = file size # $2 = month # $3 = day # $4 = year or time # $5 = filename # # On Darwin 7.7.0 and 7.6.0, we have # # $# = 4 # $1 = day # $2 = month # $3 = year or time # $4 = filename # Get the month. case $2 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; Apr) month=April; nummonth=4;; May) month=May; nummonth=5;; Jun) month=June; nummonth=6;; Jul) month=July; nummonth=7;; Aug) month=August; nummonth=8;; Sep) month=September; nummonth=9;; Oct) month=October; nummonth=10;; Nov) month=November; nummonth=11;; Dec) month=December; nummonth=12;; esac case $3 in ???*) day=$1;; *) day=$3; shift;; esac # Here we have to deal with the problem that the ls output gives either # the time of day or the year. case $3 in *:*) set `date`; eval year=\$$# case $2 in Jan) nummonthtod=1;; Feb) nummonthtod=2;; Mar) nummonthtod=3;; Apr) nummonthtod=4;; May) nummonthtod=5;; Jun) nummonthtod=6;; Jul) nummonthtod=7;; Aug) nummonthtod=8;; Sep) nummonthtod=9;; Oct) nummonthtod=10;; Nov) nummonthtod=11;; Dec) nummonthtod=12;; esac # For the first six month of the year the time notation can also # be used for files modified in the last year. if (expr $nummonth \> $nummonthtod) > /dev/null; then year=`expr $year - 1` fi;; *) year=$3;; esac # The result. echo $day $month $year # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: �������������������������������������������������������������������������������������������������libidn-1.28/build-aux/depcomp�����������������������������������������������������������������������0000755�0000000�0000000�00000056016�12167244660�013063� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2013-05-30.07; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # 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. # 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. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>. case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to <bug-automake@gnu.org>. EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # Get the directory component of the given path, and save it in the # global variables '$dir'. Note that this directory component will # be either empty or ending with a '/' character. This is deliberate. set_dir_from () { case $1 in */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; *) dir=;; esac } # Get the suffix-stripped basename of the given path, and save it the # global variable '$base'. set_base_from () { base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` } # If no dependency file was actually created by the compiler invocation, # we still have to create a dummy depfile, to avoid errors with the # Makefile "include basename.Plo" scheme. make_dummy_depfile () { echo "#dummy" > "$depfile" } # Factor out some common post-processing of the generated depfile. # Requires the auxiliary global variable '$tmpdepfile' to be set. aix_post_process_depfile () { # If the compiler actually managed to produce a dependency file, # post-process it. if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependency.h'. # Do two passes, one to just change these to # $object: dependency.h # and one to simply output # dependency.h: # which is needed to avoid the deleted-header problem. { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" } > "$depfile" rm -f "$tmpdepfile" else make_dummy_depfile fi } # A tabulation character. tab=' ' # A newline character. nl=' ' # Character ranges might be problematic outside the C locale. # These definitions help. upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ lower=abcdefghijklmnopqrstuvwxyz digits=0123456789 alpha=${upper}${lower} if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Avoid interferences from the environment. gccflag= dashmflag= # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. ## (see the conditional assignment to $gccflag above). ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). Also, it might not be ## supported by the other compilers which use the 'gcc' depmode. ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The second -e expression handles DOS-style file names with drive # letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ | tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done aix_post_process_depfile ;; tcc) # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 # FIXME: That version still under development at the moment of writing. # Make that this statement remains true also for stable, released # versions. # It will wrap lines (doesn't matter whether long or short) with a # trailing '\', as in: # # foo.o : \ # foo.c \ # foo.h \ # # It will put a trailing '\' even on the last line, and will use leading # spaces rather than leading tabs (at least since its commit 0394caf7 # "Emit spaces for -MD"). "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. # We have to change lines of the first kind to '$object: \'. sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" # And for each line of the second kind, we have to emit a 'dep.h:' # dummy dependency, to avoid the deleted-header problem. sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; ## The order of this option in the case statement is important, since the ## shell code in configure will try each of these formats in the order ## listed in this file. A plain '-MD' option would be understood by many ## compilers, so we must ensure this comes after the gcc and icc options. pgcc) # Portland's C compiler understands '-MD'. # Will always output deps to 'file.d' where file is the root name of the # source file under compilation, even if file resides in a subdirectory. # The object file name does not affect the name of the '.d' file. # pgcc 10.2 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\' : # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... set_dir_from "$object" # Use the source, not the object, to determine the base name, since # that's sadly what pgcc will do too. set_base_from "$source" tmpdepfile=$base.d # For projects that build the same source file twice into different object # files, the pgcc approach of using the *source* file root name can cause # problems in parallel builds. Use a locking strategy to avoid stomping on # the same $tmpdepfile. lockdir=$base.d-lock trap " echo '$0: caught signal, cleaning up...' >&2 rmdir '$lockdir' exit 1 " 1 2 13 15 numtries=100 i=$numtries while test $i -gt 0; do # mkdir is a portable test-and-set. if mkdir "$lockdir" 2>/dev/null; then # This process acquired the lock. "$@" -MD stat=$? # Release the lock. rmdir "$lockdir" break else # If the lock is being held by a different process, wait # until the winning process is done or we timeout. while test -d "$lockdir" && test $i -gt 0; do sleep 1 i=`expr $i - 1` done fi i=`expr $i - 1` done trap - 1 2 13 15 if test $i -le 0; then echo "$0: failed to acquire lock after $numtries attempts" >&2 echo "$0: check lockdir '$lockdir'" >&2 exit 1 fi if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form `foo.o: dependent.h', # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. # Do two passes, one to just change these to # `$object: dependent.h' and one to simply `dependent.h:'. sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this invocation # correctly. Breaking it into two sed invocations is a workaround. sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else make_dummy_depfile fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. set_dir_from "$object" set_base_from "$object" if test "$libtool" = yes; then # Libtool generates 2 separate objects for the 2 libraries. These # two compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir$base.o.d # libtool 1.5 tmpdepfile2=$dir.libs/$base.o.d # Likewise. tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d "$@" -MD fi stat=$? if test $stat -ne 0; then rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done # Same post-processing that is required for AIX mode. aix_post_process_depfile ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test $stat -ne 0; then rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" echo >> "$depfile" # make sure the fragment doesn't end with a backslash rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process this sed invocation # correctly. Breaking it into two sed invocations is a workaround. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" # Some versions of the HPUX 10.20 sed can't process the last invocation # correctly. Breaking it into two sed invocations is a workaround. sed '1,2d' "$tmpdepfile" \ | tr ' ' "$nl" \ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E \ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/config.sub��������������������������������������������������������������������0000755�0000000�0000000�00000105301�12167244657�013467� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-04-24' # This file 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches with a ChangeLog entry to config-patches@gnu.org. # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS $0 [OPTION] ALIAS Canonicalize a configuration name. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo $1 exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | \ kopensolaris*-gnu* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] then os=`echo $1 | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` ;; -windowsnt*) os=`echo $os | sed -e 's/windowsnt/winnt/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | be32 | be64 \ | bfin \ | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | epiphany \ | fido | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia64 \ | ip2k | iq2000 \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 \ | or1k | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pyramid \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | we32k \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia64-* \ | ip2k-* | iq2000-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pyramid-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-unknown os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2* | dpx2*-bull) basic_machine=m68k-bull os=-sysv3 ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppa-next) os=-nextstep3 ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; i386-vsta | vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; m88k-omron*) basic_machine=m88k-omron ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i386-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i386-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next ) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle | ppc-le | powerpc-little) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little | ppc64-le | powerpc64-little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh) basic_machine=sh-hitachi os=-hms ;; sh5el) basic_machine=sh5le-unknown ;; sh64) basic_machine=sh64-unknown ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; z8k-*-coff) basic_machine=z8k-unknown os=-sim ;; z80-*-coff) basic_machine=z80-unknown os=-sim ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp10) # there are many clones, so DEC is not a safe bet basic_machine=pdp10-unknown ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) basic_machine=sparc-sun ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases # that might get confused with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -svr4*) os=-sysv4 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # First accept the basic system types. # The portable systems comes first. # Each alternative MUST END IN A *, to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* | -cegcc* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo $os | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo $os | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -osfrose*) os=-osfrose ;; -osf*) os=-osf ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2 ) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -es1800*) os=-ose ;; -xenix) os=-xenix ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -aros*) os=-aros ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -nacl*) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or1k-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; *-be) os=-beos ;; *-haiku) os=-haiku ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next ) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-next) os=-nextstep3 ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac echo $basic_machine$os exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/config.rpath������������������������������������������������������������������0000755�0000000�0000000�00000044435�12166506334�014016� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Output a system dependent set of variables, describing how to set the # run time search path of shared libraries in an executable. # # Copyright 1996-2013 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # The first argument passed to this file is the canonical host specification, # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld # should be set by the caller. # # The set of defined variables is at the end of this script. # Known limitations: # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer # than 256 bytes, otherwise the compiler driver will dump core. The only # known workaround is to choose shorter directory names for the build # directory and/or the installation directory. # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a shrext=.so host="$1" host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` # Code taken from libtool.m4's _LT_CC_BASENAME. for cc_temp in $CC""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` # Code taken from libtool.m4's _LT_COMPILER_PIC. wl= if test "$GCC" = yes; then wl='-Wl,' else case "$host_os" in aix*) wl='-Wl,' ;; mingw* | cygwin* | pw32* | os2* | cegcc*) ;; hpux9* | hpux10* | hpux11*) wl='-Wl,' ;; irix5* | irix6* | nonstopux*) wl='-Wl,' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in ecc*) wl='-Wl,' ;; icc* | ifort*) wl='-Wl,' ;; lf95*) wl='-Wl,' ;; nagfor*) wl='-Wl,-Wl,,' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) wl='-Wl,' ;; ccc*) wl='-Wl,' ;; xl* | bgxl* | bgf* | mpixl*) wl='-Wl,' ;; como) wl='-lopt=' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ F* | *Sun*Fortran*) wl= ;; *Sun\ C*) wl='-Wl,' ;; esac ;; esac ;; newsos6) ;; *nto* | *qnx*) ;; osf3* | osf4* | osf5*) wl='-Wl,' ;; rdos*) ;; solaris*) case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) wl='-Qoption ld ' ;; *) wl='-Wl,' ;; esac ;; sunos4*) wl='-Qoption ld ' ;; sysv4 | sysv4.2uw2* | sysv4.3*) wl='-Wl,' ;; sysv4*MP*) ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) wl='-Wl,' ;; unicos*) wl='-Wl,' ;; uts4*) ;; esac fi # Code taken from libtool.m4's _LT_LINKER_SHLIBS. hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_direct=no hardcode_minus_L=no case "$host_os" in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac ld_shlibs=yes if test "$with_gnu_ld" = yes; then # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. # Unlike libtool, we use -rpath here, not --rpath, since the documented # option of GNU ld is called -rpath, not --rpath. hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' case "$host_os" in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then ld_shlibs=no fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then : else ld_shlibs=no fi ;; haiku*) ;; interix[3-9]*) hardcode_direct=no hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; netbsd*) ;; solaris*) if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ld_shlibs=no elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' else ld_shlibs=no fi ;; esac ;; sunos4*) hardcode_direct=yes ;; *) if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then : else ld_shlibs=no fi ;; esac if test "$ld_shlibs" = no; then hardcode_libdir_flag_spec= fi else case "$host_os" in aix3*) # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test "$GCC" = yes; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac fi hardcode_direct=yes hardcode_libdir_separator=':' if test "$GCC" = yes; then case $host_os in aix4.[012]|aix4.[012].*) collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && \ strings "$collect2name" | grep resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac fi # Begin _LT_AC_SYS_LIBPATH_AIX. echo 'int main () { return 0; }' > conftest.c ${CC} ${LDFLAGS} conftest.c -o conftest aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } }'` fi if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib" fi rm -f conftest.c conftest # End _LT_AC_SYS_LIBPATH_AIX. if test "$aix_use_runtimelinking" = yes; then hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" else if test "$host_cpu" = ia64; then hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' else hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" fi fi ;; amigaos*) case "$host_cpu" in powerpc) ;; m68k) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec=' ' libext=lib ;; darwin* | rhapsody*) hardcode_direct=no if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then : else ld_shlibs=no fi ;; dgux*) hardcode_libdir_flag_spec='-L$libdir' ;; freebsd2.2*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; freebsd2*) hardcode_direct=yes hardcode_minus_L=yes ;; freebsd* | dragonfly*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; hpux9*) hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; hpux10*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test "$with_gnu_ld" = no; then hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no ;; *) hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; netbsd*) hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes ;; newsos6) hardcode_direct=yes hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then hardcode_libdir_flag_spec='${wl}-rpath,$libdir' else case "$host_os" in openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) hardcode_libdir_flag_spec='-R$libdir' ;; *) hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ;; esac fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; osf3*) hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) if test "$GCC" = yes; then hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' else # Both cc and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi hardcode_libdir_separator=: ;; solaris*) hardcode_libdir_flag_spec='-R$libdir' ;; sunos4*) hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes ;; sysv4) case $host_vendor in sni) hardcode_direct=yes # is this really true??? ;; siemens) hardcode_direct=no ;; motorola) hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac ;; sysv4.3*) ;; sysv4*MP*) if test -d /usr/nec; then ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) ;; sysv5* | sco3.2v5* | sco5v6*) hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' hardcode_libdir_separator=':' ;; uts4*) hardcode_libdir_flag_spec='-L$libdir' ;; *) ld_shlibs=no ;; esac fi # Check dynamic linker characteristics # Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER. # Unlike libtool.m4, here we don't care about _all_ names of the library, but # only about the one the linker finds when passed -lNAME. This is the last # element of library_names_spec in libtool.m4, or possibly two of them if the # linker has special search rules. library_names_spec= # the last element of library_names_spec in libtool.m4 libname_spec='lib$name' case "$host_os" in aix3*) library_names_spec='$libname.a' ;; aix[4-9]*) library_names_spec='$libname$shrext' ;; amigaos*) case "$host_cpu" in powerpc*) library_names_spec='$libname$shrext' ;; m68k) library_names_spec='$libname.a' ;; esac ;; beos*) library_names_spec='$libname$shrext' ;; bsdi[45]*) library_names_spec='$libname$shrext' ;; cygwin* | mingw* | pw32* | cegcc*) shrext=.dll library_names_spec='$libname.dll.a $libname.lib' ;; darwin* | rhapsody*) shrext=.dylib library_names_spec='$libname$shrext' ;; dgux*) library_names_spec='$libname$shrext' ;; freebsd* | dragonfly*) case "$host_os" in freebsd[123]*) library_names_spec='$libname$shrext$versuffix' ;; *) library_names_spec='$libname$shrext' ;; esac ;; gnu*) library_names_spec='$libname$shrext' ;; haiku*) library_names_spec='$libname$shrext' ;; hpux9* | hpux10* | hpux11*) case $host_cpu in ia64*) shrext=.so ;; hppa*64*) shrext=.sl ;; *) shrext=.sl ;; esac library_names_spec='$libname$shrext' ;; interix[3-9]*) library_names_spec='$libname$shrext' ;; irix5* | irix6* | nonstopux*) library_names_spec='$libname$shrext' case "$host_os" in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; *) libsuff= shlibsuff= ;; esac ;; esac ;; linux*oldld* | linux*aout* | linux*coff*) ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) library_names_spec='$libname$shrext' ;; knetbsd*-gnu) library_names_spec='$libname$shrext' ;; netbsd*) library_names_spec='$libname$shrext' ;; newsos6) library_names_spec='$libname$shrext' ;; *nto* | *qnx*) library_names_spec='$libname$shrext' ;; openbsd*) library_names_spec='$libname$shrext$versuffix' ;; os2*) libname_spec='$name' shrext=.dll library_names_spec='$libname.a' ;; osf3* | osf4* | osf5*) library_names_spec='$libname$shrext' ;; rdos*) ;; solaris*) library_names_spec='$libname$shrext' ;; sunos4*) library_names_spec='$libname$shrext$versuffix' ;; sysv4 | sysv4.3*) library_names_spec='$libname$shrext' ;; sysv4*MP*) library_names_spec='$libname$shrext' ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) library_names_spec='$libname$shrext' ;; tpf*) library_names_spec='$libname$shrext' ;; uts4*) library_names_spec='$libname$shrext' ;; esac sed_quote_subst='s/\(["`$\\]\)/\\\1/g' escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` shlibext=`echo "$shrext" | sed -e 's,^\.,,'` escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF # How to pass a linker flag through the compiler. wl="$escaped_wl" # Static library suffix (normally "a"). libext="$libext" # Shared library suffix (normally "so"). shlibext="$shlibext" # Format of library name prefix. libname_spec="$escaped_libname_spec" # Library names that the linker finds when passed -lNAME. library_names_spec="$escaped_library_names_spec" # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec" # Whether we need a single -rpath flag with a separated argument. hardcode_libdir_separator="$hardcode_libdir_separator" # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. hardcode_direct="$hardcode_direct" # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. hardcode_minus_L="$hardcode_minus_L" EOF �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/texinfo.tex�������������������������������������������������������������������0000644�0000000�0000000�00001167036�12167244660�013712� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������% texinfo.tex -- TeX macros to handle Texinfo files. % % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % \def\texinfoversion{2013-02-01.11} % % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, % 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. % % This texinfo.tex file 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 3 of the % License, or (at your option) any later version. % % This texinfo.tex file 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. % % You should have received a copy of the GNU General Public License % along with this program. If not, see <http://www.gnu.org/licenses/>. % % As a special exception, when this file is read by TeX when processing % a Texinfo source document, you may use the result without % restriction. This Exception is an additional permission under section 7 % of the GNU General Public License, version 3 ("GPLv3"). % % Please try the latest version of texinfo.tex before submitting bug % reports; you can get the latest version from: % http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or % http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or % http://www.gnu.org/software/texinfo/ (the Texinfo home page) % The texinfo.tex in any given distribution could well be out % of date, so if that's what you're using, please check. % % Send bug reports to bug-texinfo@gnu.org. Please include including a % complete document in each bug report with which we can reproduce the % problem. Patches are, of course, greatly appreciated. % % To process a Texinfo manual with TeX, it's most reliable to use the % texi2dvi shell script that comes with the distribution. For a simple % manual foo.texi, however, you can get away with this: % tex foo.texi % texindex foo.?? % tex foo.texi % tex foo.texi % dvips foo.dvi -o # or whatever; this makes foo.ps. % The extra TeX runs get the cross-reference information correct. % Sometimes one run after texindex suffices, and sometimes you need more % than two; texi2dvi does it as many times as necessary. % % It is possible to adapt texinfo.tex for other languages, to some % extent. You can get the existing language-specific files from the % full Texinfo distribution. % % The GNU Texinfo home page is http://www.gnu.org/software/texinfo. \message{Loading texinfo [version \texinfoversion]:} % If in a .fmt file, print the version number % and turn on active characters that we couldn't do earlier because % they might have appeared in the input file name. \everyjob{\message{[Texinfo version \texinfoversion]}% \catcode`+=\active \catcode`\_=\active} \chardef\other=12 % We never want plain's \outer definition of \+ in Texinfo. % For @tex, we can use \tabalign. \let\+ = \relax % Save some plain tex macros whose names we will redefine. \let\ptexb=\b \let\ptexbullet=\bullet \let\ptexc=\c \let\ptexcomma=\, \let\ptexdot=\. \let\ptexdots=\dots \let\ptexend=\end \let\ptexequiv=\equiv \let\ptexexclam=\! \let\ptexfootnote=\footnote \let\ptexgtr=> \let\ptexhat=^ \let\ptexi=\i \let\ptexindent=\indent \let\ptexinsert=\insert \let\ptexlbrace=\{ \let\ptexless=< \let\ptexnewwrite\newwrite \let\ptexnoindent=\noindent \let\ptexplus=+ \let\ptexraggedright=\raggedright \let\ptexrbrace=\} \let\ptexslash=\/ \let\ptexstar=\* \let\ptext=\t \let\ptextop=\top {\catcode`\'=\active \global\let\ptexquoteright'}% active in plain's math mode % If this character appears in an error message or help string, it % starts a new line in the output. \newlinechar = `^^J % Use TeX 3.0's \inputlineno to get the line number, for better error % messages, but if we're using an old version of TeX, don't do anything. % \ifx\inputlineno\thisisundefined \let\linenumber = \empty % Pre-3.0. \else \def\linenumber{l.\the\inputlineno:\space} \fi % Set up fixed words for English if not already set. \ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi \ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi \ifx\putworderror\undefined \gdef\putworderror{error}\fi \ifx\putwordfile\undefined \gdef\putwordfile{file}\fi \ifx\putwordin\undefined \gdef\putwordin{in}\fi \ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi \ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi \ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi \ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi \ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi \ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi \ifx\putwordof\undefined \gdef\putwordof{of}\fi \ifx\putwordon\undefined \gdef\putwordon{on}\fi \ifx\putwordpage\undefined \gdef\putwordpage{page}\fi \ifx\putwordsection\undefined \gdef\putwordsection{section}\fi \ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi \ifx\putwordsee\undefined \gdef\putwordsee{see}\fi \ifx\putwordSee\undefined \gdef\putwordSee{See}\fi \ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi \ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi % \ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi \ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi \ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi \ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi \ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi \ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi \ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi \ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi \ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi \ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi \ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi \ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi % \ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi \ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi \ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi \ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi \ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi % Since the category of space is not known, we have to be careful. \chardef\spacecat = 10 \def\spaceisspace{\catcode`\ =\spacecat} % sometimes characters are active, so we need control sequences. \chardef\ampChar = `\& \chardef\colonChar = `\: \chardef\commaChar = `\, \chardef\dashChar = `\- \chardef\dotChar = `\. \chardef\exclamChar= `\! \chardef\hashChar = `\# \chardef\lquoteChar= `\` \chardef\questChar = `\? \chardef\rquoteChar= `\' \chardef\semiChar = `\; \chardef\slashChar = `\/ \chardef\underChar = `\_ % Ignore a token. % \def\gobble#1{} % The following is used inside several \edef's. \def\makecsname#1{\expandafter\noexpand\csname#1\endcsname} % Hyphenation fixes. \hyphenation{ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script ap-pen-dix bit-map bit-maps data-base data-bases eshell fall-ing half-way long-est man-u-script man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces spell-ing spell-ings stand-alone strong-est time-stamp time-stamps which-ever white-space wide-spread wrap-around } % Margin to add to right of even pages, to left of odd pages. \newdimen\bindingoffset \newdimen\normaloffset \newdimen\pagewidth \newdimen\pageheight % For a final copy, take out the rectangles % that mark overfull boxes (in case you have decided % that the text looks ok even though it passes the margin). % \def\finalout{\overfullrule=0pt } % Sometimes it is convenient to have everything in the transcript file % and nothing on the terminal. We don't just call \tracingall here, % since that produces some useless output on the terminal. We also make % some effort to order the tracing commands to reduce output in the log % file; cf. trace.sty in LaTeX. % \def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}% \def\loggingall{% \tracingstats2 \tracingpages1 \tracinglostchars2 % 2 gives us more in etex \tracingparagraphs1 \tracingoutput1 \tracingmacros2 \tracingrestores1 \showboxbreadth\maxdimen \showboxdepth\maxdimen \ifx\eTeXversion\thisisundefined\else % etex gives us more logging \tracingscantokens1 \tracingifs1 \tracinggroups1 \tracingnesting2 \tracingassigns1 \fi \tracingcommands3 % 3 gives us more in etex \errorcontextlines16 }% % @errormsg{MSG}. Do the index-like expansions on MSG, but if things % aren't perfect, it's not the end of the world, being an error message, % after all. % \def\errormsg{\begingroup \indexnofonts \doerrormsg} \def\doerrormsg#1{\errmessage{#1}} % add check for \lastpenalty to plain's definitions. If the last thing % we did was a \nobreak, we don't want to insert more space. % \def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount \removelastskip\penalty-50\smallskip\fi\fi} \def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount \removelastskip\penalty-100\medskip\fi\fi} \def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount \removelastskip\penalty-200\bigskip\fi\fi} % Do @cropmarks to get crop marks. % \newif\ifcropmarks \let\cropmarks = \cropmarkstrue % % Dimensions to add cropmarks at corners. % Added by P. A. MacKay, 12 Nov. 1986 % \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines \newdimen\cornerlong \cornerlong=1pc \newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. % We dump everything together because we only have one kind of mark. % This works because we only use \botmark / \topmark, not \firstmark. % % A mark contains a subexpression of the \ifcase ... \fi construct. % \get*marks macros below extract the needed part using \ifcase. % % Another complication is to let the user choose whether \thischapter % (\thissection) refers to the chapter (section) in effect at the top % of a page, or that at the bottom of a page. The solution is % described on page 260 of The TeXbook. It involves outputting two % marks for the sectioning macros, one before the section break, and % one after. I won't pretend I can describe this better than DEK... \def\domark{% \toks0=\expandafter{\lastchapterdefs}% \toks2=\expandafter{\lastsectiondefs}% \toks4=\expandafter{\prevchapterdefs}% \toks6=\expandafter{\prevsectiondefs}% \toks8=\expandafter{\lastcolordefs}% \mark{% \the\toks0 \the\toks2 \noexpand\or \the\toks4 \the\toks6 \noexpand\else \the\toks8 }% } % \topmark doesn't work for the very first chapter (after the title % page or the contents), so we use \firstmark there -- this gets us % the mark with the chapter defs, unless the user sneaks in, e.g., % @setcolor (or @url, or @link, etc.) between @contents and the very % first @chapter. \def\gettopheadingmarks{% \ifcase0\topmark\fi \ifx\thischapter\empty \ifcase0\firstmark\fi \fi } \def\getbottomheadingmarks{\ifcase1\botmark\fi} \def\getcolormarks{\ifcase2\topmark\fi} % Avoid "undefined control sequence" errors. \def\lastchapterdefs{} \def\lastsectiondefs{} \def\prevchapterdefs{} \def\prevsectiondefs{} \def\lastcolordefs{} % Main output routine. \chardef\PAGE = 255 \output = {\onepageout{\pagecontents\PAGE}} \newbox\headlinebox \newbox\footlinebox % \onepageout takes a vbox as an argument. Note that \pagecontents % does insertions, but you have to call it yourself. \def\onepageout#1{% \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi % % Do this outside of the \shipout so @code etc. will be expanded in % the headline as they should be, not taken literally (outputting ''code). \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}% \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}% % {% % Have to do this stuff outside the \shipout because we want it to % take effect in \write's, yet the group defined by the \vbox ends % before the \shipout runs. % \indexdummies % don't expand commands in the output. \normalturnoffactive % \ in index entries must not stay \, e.g., if % the page break happens to be in the middle of an example. % We don't want .vr (or whatever) entries like this: % \entry{{\tt \indexbackslash }acronym}{32}{\code {\acronym}} % "\acronym" won't work when it's read back in; % it needs to be % {\code {{\tt \backslashcurfont }acronym} \shipout\vbox{% % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % \ifcropmarks \vbox to \outervsize\bgroup \hsize = \outerhsize \vskip-\topandbottommargin \vtop to0pt{% \line{\ewtop\hfil\ewtop}% \nointerlineskip \line{% \vbox{\moveleft\cornerthick\nstop}% \hfill \vbox{\moveright\cornerthick\nstop}% }% \vss}% \vskip\topandbottommargin \line\bgroup \hfil % center the page within the outer (page) hsize. \ifodd\pageno\hskip\bindingoffset\fi \vbox\bgroup \fi % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt % Only leave this space if the footline is nonempty. % (We lessened \vsize for it in \oddfootingyyy.) % The \baselineskip=24pt in plain's \makefootline has no effect. \vskip 24pt \unvbox\footlinebox \fi % \ifcropmarks \egroup % end of \vbox\bgroup \hfil\egroup % end of (centering) \line\bgroup \vskip\topandbottommargin plus1fill minus1fill \boxmaxdepth = \cornerthick \vbox to0pt{\vss \line{% \vbox{\moveleft\cornerthick\nsbot}% \hfill \vbox{\moveright\cornerthick\nsbot}% }% \nointerlineskip \line{\ewbot\hfil\ewbot}% }% \egroup % \vbox from first cropmarks clause \fi }% end of \shipout\vbox }% end of group with \indexdummies \advancepageno \ifnum\outputpenalty>-20000 \else\dosupereject\fi } \newinsert\margin \dimen\margin=\maxdimen \def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}} {\catcode`\@ =11 \gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi % marginal hacks, juha@viisa.uucp (Juha Takala) \ifvoid\margin\else % marginal info is present \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi \dimen@=\dp#1\relax \unvbox#1\relax \ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } % Here are the rules for the cropmarks. Note that they are % offset so that the space between them is truly \outerhsize or \outervsize % (P. A. MacKay, 12 November, 1986) % \def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} \def\nstop{\vbox {\hrule height\cornerthick depth\cornerlong width\cornerthick}} \def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} \def\nsbot{\vbox {\hrule height\cornerlong depth\cornerthick width\cornerthick}} % Parse an argument, then pass it to #1. The argument is the rest of % the input line (except we remove a trailing comment). #1 should be a % macro which expects an ordinary undelimited TeX argument. % \def\parsearg{\parseargusing{}} \def\parseargusing#1#2{% \def\argtorun{#2}% \begingroup \obeylines \spaceisspace #1% \parseargline\empty% Insert the \empty token, see \finishparsearg below. } {\obeylines % \gdef\parseargline#1^^M{% \endgroup % End of the group started in \parsearg. \argremovecomment #1\comment\ArgTerm% }% } % First remove any @comment, then any @c comment. \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm} \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm} % Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space. % % \argremovec might leave us with trailing space, e.g., % @end itemize @c foo % This space token undergoes the same procedure and is eventually removed % by \finishparsearg. % \def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M} \def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M} \def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{% \def\temp{#3}% \ifx\temp\empty % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp: \let\temp\finishparsearg \else \let\temp\argcheckspaces \fi % Put the space token in: \temp#1 #3\ArgTerm } % If a _delimited_ argument is enclosed in braces, they get stripped; so % to get _exactly_ the rest of the line, we had to prevent such situation. % We prepended an \empty token at the very beginning and we expand it now, % just before passing the control to \argtorun. % (Similarly, we have to think about #3 of \argcheckspacesY above: it is % either the null string, or it ends with \^^M---thus there is no danger % that a pair of braces would be stripped. % % But first, we have to remove the trailing space token. % \def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}} % \parseargdef\foo{...} % is roughly equivalent to % \def\foo{\parsearg\Xfoo} % \def\Xfoo#1{...} % % Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my % favourite TeX trick. --kasal, 16nov03 \def\parseargdef#1{% \expandafter \doparseargdef \csname\string#1\endcsname #1% } \def\doparseargdef#1#2{% \def#2{\parsearg#1}% \def#1##1% } % Several utility definitions with active space: { \obeyspaces \gdef\obeyedspace{ } % Make each space character in the input produce a normal interword % space in the output. Don't allow a line break at this space, as this % is used only in environments like @example, where each line of input % should produce a line of output anyway. % \gdef\sepspaces{\obeyspaces\let =\tie} % If an index command is used in an @example environment, any spaces % therein should become regular spaces in the raw index file, not the % expansion of \tie (\leavevmode \penalty \@M \ ). \gdef\unsepspaces{\let =\space} } \def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next} % Define the framework for environments in texinfo.tex. It's used like this: % % \envdef\foo{...} % \def\Efoo{...} % % It's the responsibility of \envdef to insert \begingroup before the % actual body; @end closes the group after calling \Efoo. \envdef also % defines \thisenv, so the current environment is known; @end checks % whether the environment name matches. The \checkenv macro can also be % used to check whether the current environment is the one expected. % % Non-false conditionals (@iftex, @ifset) don't fit into this, so they % are not treated as environments; they don't open a group. (The % implementation of @end takes care not to call \endgroup in this % special case.) % At run-time, environments start with this: \def\startenvironment#1{\begingroup\def\thisenv{#1}} % initialize \let\thisenv\empty % ... but they get defined via ``\envdef\foo{...}'': \long\def\envdef#1#2{\def#1{\startenvironment#1#2}} \def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}} % Check whether we're in the right environment: \def\checkenv#1{% \def\temp{#1}% \ifx\thisenv\temp \else \badenverr \fi } % Environment mismatch, #1 expected: \def\badenverr{% \errhelp = \EMsimple \errmessage{This command can appear only \inenvironment\temp, not \inenvironment\thisenv}% } \def\inenvironment#1{% \ifx#1\empty outside of any environment% \else in environment \expandafter\string#1% \fi } % @end foo executes the definition of \Efoo. % But first, it executes a specialized version of \checkenv % \parseargdef\end{% \if 1\csname iscond.#1\endcsname \else % The general wording of \badenverr may not be ideal. \expandafter\checkenv\csname#1\endcsname \csname E#1\endcsname \endgroup \fi } \newhelp\EMsimple{Press RETURN to continue.} % Be sure we're in horizontal mode when doing a tie, since we make space % equivalent to this in @example-like environments. Otherwise, a space % at the beginning of a line will start with \penalty -- and % since \penalty is valid in vertical mode, we'd end up putting the % penalty on the vertical list instead of in the new paragraph. {\catcode`@ = 11 % Avoid using \@M directly, because that causes trouble % if the definition is written into an index file. \global\let\tiepenalty = \@M \gdef\tie{\leavevmode\penalty\tiepenalty\ } } % @: forces normal size whitespace following. \def\:{\spacefactor=1000 } % @* forces a line break. \def\*{\unskip\hfil\break\hbox{}\ignorespaces} % @/ allows a line break. \let\/=\allowbreak % @. is an end-of-sentence period. \def\.{.\spacefactor=\endofsentencespacefactor\space} % @! is an end-of-sentence bang. \def\!{!\spacefactor=\endofsentencespacefactor\space} % @? is an end-of-sentence query. \def\?{?\spacefactor=\endofsentencespacefactor\space} % @frenchspacing on|off says whether to put extra space after punctuation. % \def\onword{on} \def\offword{off} % \parseargdef\frenchspacing{% \def\temp{#1}% \ifx\temp\onword \plainfrenchspacing \else\ifx\temp\offword \plainnonfrenchspacing \else \errhelp = \EMsimple \errmessage{Unknown @frenchspacing option `\temp', must be on|off}% \fi\fi } % @w prevents a word break. Without the \leavevmode, @w at the % beginning of a paragraph, when TeX is still in vertical mode, would % produce a whole line of output instead of starting the paragraph. \def\w#1{\leavevmode\hbox{#1}} % @group ... @end group forces ... to be all on one page, by enclosing % it in a TeX vbox. We use \vtop instead of \vbox to construct the box % to keep its height that of a normal line. According to the rules for % \topskip (p.114 of the TeXbook), the glue inserted is % max (\topskip - \ht (first item), 0). If that height is large, % therefore, no glue is inserted, and the space between the headline and % the text is small, which looks bad. % % Another complication is that the group might be very large. This can % cause the glue on the previous page to be unduly stretched, because it % does not have much material. In this case, it's better to add an % explicit \vfill so that the extra space is at the bottom. The % threshold for doing this is if the group is more than \vfilllimit % percent of a page (\vfilllimit can be changed inside of @tex). % \newbox\groupbox \def\vfilllimit{0.7} % \envdef\group{% \ifnum\catcode`\^^M=\active \else \errhelp = \groupinvalidhelp \errmessage{@group invalid in context where filling is enabled}% \fi \startsavinginserts % \setbox\groupbox = \vtop\bgroup % Do @comment since we are called inside an environment such as % @example, where each end-of-line in the input causes an % end-of-line in the output. We don't want the end-of-line after % the `@group' to put extra space in the output. Since @group % should appear on a line by itself (according to the Texinfo % manual), we don't worry about eating any user text. \comment } % % The \vtop produces a box with normal height and large depth; thus, TeX puts % \baselineskip glue before it, and (when the next line of text is done) % \lineskip glue after it. Thus, space below is not quite equal to space % above. But it's pretty close. \def\Egroup{% % To get correct interline space between the last line of the group % and the first line afterwards, we have to propagate \prevdepth. \endgraf % Not \par, as it may have been set to \lisppar. \global\dimen1 = \prevdepth \egroup % End the \vtop. % \dimen0 is the vertical size of the group's box. \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox % \dimen2 is how much space is left on the page (more or less). \dimen2 = \pageheight \advance\dimen2 by -\pagetotal % if the group doesn't fit on the current page, and it's a big big % group, force a page break. \ifdim \dimen0 > \dimen2 \ifdim \pagetotal < \vfilllimit\pageheight \page \fi \fi \box\groupbox \prevdepth = \dimen1 \checkinserts } % % TeX puts in an \escapechar (i.e., `@') at the beginning of the help % message, so this ends up printing `@group can only ...'. % \newhelp\groupinvalidhelp{% group can only be used in environments such as @example,^^J% where each line of input produces a line of output.} % @need space-in-mils % forces a page break if there is not space-in-mils remaining. \newdimen\mil \mil=0.001in \parseargdef\need{% % Ensure vertical mode, so we don't make a big box in the middle of a % paragraph. \par % % If the @need value is less than one line space, it's useless. \dimen0 = #1\mil \dimen2 = \ht\strutbox \advance\dimen2 by \dp\strutbox \ifdim\dimen0 > \dimen2 % % Do a \strut just to make the height of this box be normal, so the % normal leading is inserted relative to the preceding line. % And a page break here is fine. \vtop to #1\mil{\strut\vfil}% % % TeX does not even consider page breaks if a penalty added to the % main vertical list is 10000 or more. But in order to see if the % empty box we just added fits on the page, we must make it consider % page breaks. On the other hand, we don't want to actually break the % page after the empty box. So we use a penalty of 9999. % % There is an extremely small chance that TeX will actually break the % page at this \penalty, if there are no other feasible breakpoints in % sight. (If the user is using lots of big @group commands, which % almost-but-not-quite fill up a page, TeX will have a hard time doing % good page breaking, for example.) However, I could not construct an % example where a page broke at this \penalty; if it happens in a real % document, then we can reconsider our strategy. \penalty9999 % % Back up by the size of the box, whether we did a page break or not. \kern -#1\mil % % Do not allow a page break right after this kern. \nobreak \fi } % @br forces paragraph break (and is undocumented). \let\br = \par % @page forces the start of a new page. % \def\page{\par\vfill\supereject} % @exdent text.... % outputs text on separate line in roman font, starting at standard page margin % This records the amount of indent in the innermost environment. % That's how much \exdent should take out. \newskip\exdentamount % This defn is used inside fill environments such as @defun. \parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break} % This defn is used inside nofill environments such as @example. \parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount \leftline{\hskip\leftskip{\rm#1}}}} % @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current % paragraph. For more general purposes, use the \margin insertion % class. WHICH is `l' or `r'. Not documented, written for gawk manual. % \newskip\inmarginspacing \inmarginspacing=1cm \def\strutdepth{\dp\strutbox} % \def\doinmargin#1#2{\strut\vadjust{% \nobreak \kern-\strutdepth \vtop to \strutdepth{% \baselineskip=\strutdepth \vss % if you have multiple lines of stuff to put here, you'll need to % make the vbox yourself of the appropriate size. \ifx#1l% \llap{\ignorespaces #2\hskip\inmarginspacing}% \else \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}% \fi \null }% }} \def\inleftmargin{\doinmargin l} \def\inrightmargin{\doinmargin r} % % @inmargin{TEXT [, RIGHT-TEXT]} % (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right; % else use TEXT for both). % \def\inmargin#1{\parseinmargin #1,,\finish} \def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing. \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \def\lefttext{#1}% have both texts \def\righttext{#2}% \else \def\lefttext{#1}% have only one text \def\righttext{#1}% \fi % \ifodd\pageno \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin \else \def\temp{\inleftmargin\lefttext}% \fi \temp } % @| inserts a changebar to the left of the current line. It should % surround any changed text. This approach does *not* work if the % change spans more than two lines of output. To handle that, we would % have adopt a much more difficult approach (putting marks into the main % vertical list for the beginning and end of each change). This command % is not documented, not supported, and doesn't work. % \def\|{% % \vadjust can only be used in horizontal mode. \leavevmode % % Append this vertical mode material after the current line in the output. \vadjust{% % We want to insert a rule with the height and depth of the current % leading; that is exactly what \strutbox is supposed to record. \vskip-\baselineskip % % \vadjust-items are inserted at the left edge of the type. So % the \llap here moves out into the left-hand margin. \llap{% % % For a thicker or thinner bar, change the `1pt'. \vrule height\baselineskip width1pt % % This is the space between the bar and the text. \hskip 12pt }% }% } % @include FILE -- \input text of FILE. % \def\include{\parseargusing\filenamecatcodes\includezzz} \def\includezzz#1{% \pushthisfilestack \def\thisfile{#1}% {% \makevalueexpandable % we want to expand any @value in FILE. \turnoffactive % and allow special characters in the expansion \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @include of #1^^J}% \edef\temp{\noexpand\input #1 }% % % This trickery is to read FILE outside of a group, in case it makes % definitions, etc. \expandafter }\temp \popthisfilestack } \def\filenamecatcodes{% \catcode`\\=\other \catcode`~=\other \catcode`^=\other \catcode`_=\other \catcode`|=\other \catcode`<=\other \catcode`>=\other \catcode`+=\other \catcode`-=\other \catcode`\`=\other \catcode`\'=\other } \def\pushthisfilestack{% \expandafter\pushthisfilestackX\popthisfilestack\StackTerm } \def\pushthisfilestackX{% \expandafter\pushthisfilestackY\thisfile\StackTerm } \def\pushthisfilestackY #1\StackTerm #2\StackTerm {% \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}% } \def\popthisfilestack{\errthisfilestackempty} \def\errthisfilestackempty{\errmessage{Internal error: the stack of filenames is empty.}} % \def\thisfile{} % @center line % outputs that line, centered. % \parseargdef\center{% \ifhmode \let\centersub\centerH \else \let\centersub\centerV \fi \centersub{\hfil \ignorespaces#1\unskip \hfil}% \let\centersub\relax % don't let the definition persist, just in case } \def\centerH#1{{% \hfil\break \advance\hsize by -\leftskip \advance\hsize by -\rightskip \line{#1}% \break }} % \newcount\centerpenalty \def\centerV#1{% % The idea here is the same as in \startdefun, \cartouche, etc.: if % @center is the first thing after a section heading, we need to wipe % out the negative parskip inserted by \sectionheading, but still % prevent a page break here. \centerpenalty = \lastpenalty \ifnum\centerpenalty>10000 \vskip\parskip \fi \ifnum\centerpenalty>9999 \penalty\centerpenalty \fi \line{\kern\leftskip #1\kern\rightskip}% } % @sp n outputs n lines of vertical space % \parseargdef\sp{\vskip #1\baselineskip} % @comment ...line which is ignored... % @c is the same as @comment % @ignore ... @end ignore is another way to write a comment % \def\comment{\begingroup \catcode`\^^M=\other% \catcode`\@=\other \catcode`\{=\other \catcode`\}=\other% \commentxxx} {\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}} % \let\c=\comment % @paragraphindent NCHARS % We'll use ems for NCHARS, close enough. % NCHARS can also be the word `asis' or `none'. % We cannot feasibly implement @paragraphindent asis, though. % \def\asisword{asis} % no translation, these are keywords \def\noneword{none} % \parseargdef\paragraphindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \defaultparindent = 0pt \else \defaultparindent = #1em \fi \fi \parindent = \defaultparindent } % @exampleindent NCHARS % We'll use ems for NCHARS like @paragraphindent. % It seems @exampleindent asis isn't necessary, but % I preserve it to make it similar to @paragraphindent. \parseargdef\exampleindent{% \def\temp{#1}% \ifx\temp\asisword \else \ifx\temp\noneword \lispnarrowing = 0pt \else \lispnarrowing = #1em \fi \fi } % @firstparagraphindent WORD % If WORD is `none', then suppress indentation of the first paragraph % after a section heading. If WORD is `insert', then do indent at such % paragraphs. % % The paragraph indentation is suppressed or not by calling % \suppressfirstparagraphindent, which the sectioning commands do. % We switch the definition of this back and forth according to WORD. % By default, we suppress indentation. % \def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent} \def\insertword{insert} % \parseargdef\firstparagraphindent{% \def\temp{#1}% \ifx\temp\noneword \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent \else\ifx\temp\insertword \let\suppressfirstparagraphindent = \relax \else \errhelp = \EMsimple \errmessage{Unknown @firstparagraphindent option `\temp'}% \fi\fi } % Here is how we actually suppress indentation. Redefine \everypar to % \kern backwards by \parindent, and then reset itself to empty. % % We also make \indent itself not actually do anything until the next % paragraph. % \gdef\dosuppressfirstparagraphindent{% \gdef\indent{% \restorefirstparagraphindent \indent }% \gdef\noindent{% \restorefirstparagraphindent \noindent }% \global\everypar = {% \kern -\parindent \restorefirstparagraphindent }% } \gdef\restorefirstparagraphindent{% \global \let \indent = \ptexindent \global \let \noindent = \ptexnoindent \global \everypar = {}% } % @refill is a no-op. \let\refill=\relax % If working on a large document in chapters, it is convenient to % be able to disable indexing, cross-referencing, and contents, for test runs. % This is done with @novalidate (before @setfilename). % \newif\iflinks \linkstrue % by default we want the aux files. \let\novalidate = \linksfalse % @setfilename is done at the beginning of every texinfo file. % So open here the files we need to have open while reading the input. % This makes it possible to make a .fmt file for texinfo. \def\setfilename{% \fixbackslash % Turn off hack to swallow `\input texinfo'. \iflinks \tryauxfile % Open the new aux file. TeX will close it automatically at exit. \immediate\openout\auxfile=\jobname.aux \fi % \openindices needs to do some work in any case. \openindices \let\setfilename=\comment % Ignore extra @setfilename cmds. % % If texinfo.cnf is present on the system, read it. % Useful for site-wide @afourpaper, etc. \openin 1 texinfo.cnf \ifeof 1 \else \input texinfo.cnf \fi \closein 1 % \comment % Ignore the actual filename. } % Called from \setfilename. % \def\openindices{% \newindex{cp}% \newcodeindex{fn}% \newcodeindex{vr}% \newcodeindex{tp}% \newcodeindex{ky}% \newcodeindex{pg}% } % @bye. \outer\def\bye{\pagealignmacro\tracingstats=1\ptexend} \message{pdf,} % adobe `portable' document format \newcount\tempnum \newcount\lnkcount \newtoks\filename \newcount\filenamelength \newcount\pgn \newtoks\toksA \newtoks\toksB \newtoks\toksC \newtoks\toksD \newbox\boxA \newcount\countA \newif\ifpdf \newif\ifpdfmakepagedest % when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1 % can be set). So we test for \relax and 0 as well as being undefined. \ifx\pdfoutput\thisisundefined \else \ifx\pdfoutput\relax \else \ifcase\pdfoutput \else \pdftrue \fi \fi \fi % PDF uses PostScript string constants for the names of xref targets, % for display in the outlines, and in other places. Thus, we have to % double any backslashes. Otherwise, a name like "\node" will be % interpreted as a newline (\n), followed by o, d, e. Not good. % % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and % related messages. The final outcome is that it is up to the TeX user % to double the backslashes and otherwise make the string valid, so % that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to % do this reliably, so we use it. % #1 is a control sequence in which to do the replacements, % which we \xdef. \def\txiescapepdf#1{% \ifx\pdfescapestring\thisisundefined % No primitive available; should we give a warning or log? % Many times it won't matter. \else % The expandable \pdfescapestring primitive escapes parentheses, % backslashes, and other special chars. \xdef#1{\pdfescapestring{#1}}% \fi } \newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images with PDF output, and none of those formats could be found. (.eps cannot be supported due to the design of the PDF format; use regular TeX (DVI output) for that.)} \ifpdf % % Color manipulation macros based on pdfcolor.tex, % except using rgb instead of cmyk; the latter is said to render as a % very dark gray on-screen and a very dark halftone in print, instead % of actual black. \def\rgbDarkRed{0.50 0.09 0.12} \def\rgbBlack{0 0 0} % % k sets the color for filling (usual text, etc.); % K sets the color for stroking (thin rules, e.g., normal _'s). \def\pdfsetcolor#1{\pdfliteral{#1 rg #1 RG}} % % Set color, and create a mark which defines \thiscolor accordingly, % so that \makeheadline knows which color to restore. \def\setcolor#1{% \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}% \domark \pdfsetcolor{#1}% } % \def\maincolor{\rgbBlack} \pdfsetcolor{\maincolor} \edef\thiscolor{\maincolor} \def\lastcolordefs{} % \def\makefootline{% \baselineskip24pt \line{\pdfsetcolor{\maincolor}\the\footline}% } % \def\makeheadline{% \vbox to 0pt{% \vskip-22.5pt \line{% \vbox to8.5pt{}% % Extract \thiscolor definition from the marks. \getcolormarks % Typeset the headline with \maincolor, then restore the color. \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}% }% \vss }% \nointerlineskip } % % \pdfcatalog{/PageMode /UseOutlines} % % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto). \def\dopdfimage#1#2#3{% \def\pdfimagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}% \def\pdfimageheight{#3}\setbox2 = \hbox{\ignorespaces #3}% % % pdftex (and the PDF format) support .pdf, .png, .jpg (among % others). Let's try in that order, PDF first since if % someone has a scalable image, presumably better to use that than a % bitmap. \let\pdfimgext=\empty \begingroup \openin 1 #1.pdf \ifeof 1 \openin 1 #1.PDF \ifeof 1 \openin 1 #1.png \ifeof 1 \openin 1 #1.jpg \ifeof 1 \openin 1 #1.jpeg \ifeof 1 \openin 1 #1.JPG \ifeof 1 \errhelp = \nopdfimagehelp \errmessage{Could not find image file #1 for pdf}% \else \gdef\pdfimgext{JPG}% \fi \else \gdef\pdfimgext{jpeg}% \fi \else \gdef\pdfimgext{jpg}% \fi \else \gdef\pdfimgext{png}% \fi \else \gdef\pdfimgext{PDF}% \fi \else \gdef\pdfimgext{pdf}% \fi \closein 1 \endgroup % % without \immediate, ancient pdftex seg faults when the same image is % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.) \ifnum\pdftexversion < 14 \immediate\pdfimage \else \immediate\pdfximage \fi \ifdim \wd0 >0pt width \pdfimagewidth \fi \ifdim \wd2 >0pt height \pdfimageheight \fi \ifnum\pdftexversion<13 #1.\pdfimgext \else {#1.\pdfimgext}% \fi \ifnum\pdftexversion < 14 \else \pdfrefximage \pdflastximage \fi} % \def\pdfmkdest#1{{% % We have to set dummies so commands such as @code, and characters % such as \, aren't expanded when present in a section title. \indexnofonts \turnoffactive \makevalueexpandable \def\pdfdestname{#1}% \txiescapepdf\pdfdestname \safewhatsit{\pdfdest name{\pdfdestname} xyz}% }} % % used to mark target names; must be expandable. \def\pdfmkpgn#1{#1} % % by default, use a color that is dark enough to print on paper as % nearly black, but still distinguishable for online viewing. \def\urlcolor{\rgbDarkRed} \def\linkcolor{\rgbDarkRed} \def\endlink{\setcolor{\maincolor}\pdfendlink} % % Adding outlines to PDF; macros for calculating structure of outlines % come from Petr Olsak \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0% \else \csname#1\endcsname \fi} \def\advancenumber#1{\tempnum=\expnumber{#1}\relax \advance\tempnum by 1 \expandafter\xdef\csname#1\endcsname{\the\tempnum}} % % #1 is the section text, which is what will be displayed in the % outline by the pdf viewer. #2 is the pdf expression for the number % of subentries (or empty, for subsubsections). #3 is the node text, % which might be empty if this toc entry had no corresponding node. % #4 is the page number % \def\dopdfoutline#1#2#3#4{% % Generate a link to the node text if that exists; else, use the % page number. We could generate a destination for the section % text in the case where a section has no node, but it doesn't % seem worth the trouble, since most documents are normally structured. \edef\pdfoutlinedest{#3}% \ifx\pdfoutlinedest\empty \def\pdfoutlinedest{#4}% \else \txiescapepdf\pdfoutlinedest \fi % % Also escape PDF chars in the display string. \edef\pdfoutlinetext{#1}% \txiescapepdf\pdfoutlinetext % \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% } % \def\pdfmakeoutlines{% \begingroup % Read toc silently, to get counts of subentries for \pdfoutline. \def\partentry##1##2##3##4{}% ignore parts in the outlines \def\numchapentry##1##2##3##4{% \def\thischapnum{##2}% \def\thissecnum{0}% \def\thissubsecnum{0}% }% \def\numsecentry##1##2##3##4{% \advancenumber{chap\thischapnum}% \def\thissecnum{##2}% \def\thissubsecnum{0}% }% \def\numsubsecentry##1##2##3##4{% \advancenumber{sec\thissecnum}% \def\thissubsecnum{##2}% }% \def\numsubsubsecentry##1##2##3##4{% \advancenumber{subsec\thissubsecnum}% }% \def\thischapnum{0}% \def\thissecnum{0}% \def\thissubsecnum{0}% % % use \def rather than \let here because we redefine \chapentry et % al. a second time, below. \def\appentry{\numchapentry}% \def\appsecentry{\numsecentry}% \def\appsubsecentry{\numsubsecentry}% \def\appsubsubsecentry{\numsubsubsecentry}% \def\unnchapentry{\numchapentry}% \def\unnsecentry{\numsecentry}% \def\unnsubsecentry{\numsubsecentry}% \def\unnsubsubsecentry{\numsubsubsecentry}% \readdatafile{toc}% % % Read toc second time, this time actually producing the outlines. % The `-' means take the \expnumber as the absolute number of % subentries, which we calculated on our first read of the .toc above. % % We use the node names as the destinations. \def\numchapentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}% \def\numsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}% \def\numsubsecentry##1##2##3##4{% \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}% \def\numsubsubsecentry##1##2##3##4{% count is always zero \dopdfoutline{##1}{}{##3}{##4}}% % % PDF outlines are displayed using system fonts, instead of % document fonts. Therefore we cannot use special characters, % since the encoding is unknown. For example, the eogonek from % Latin 2 (0xea) gets translated to a | character. Info from % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100. % % TODO this right, we have to translate 8-bit characters to % their "best" equivalent, based on the @documentencoding. Too % much work for too little return. Just use the ASCII equivalents % we use for the index sort strings. % \indexnofonts \setupdatafile % We can have normal brace characters in the PDF outlines, unlike % Texinfo index files. So set that up. \def\{{\lbracecharliteral}% \def\}{\rbracecharliteral}% \catcode`\\=\active \otherbackslash \input \tocreadfilename \endgroup } {\catcode`[=1 \catcode`]=2 \catcode`{=\other \catcode`}=\other \gdef\lbracecharliteral[{]% \gdef\rbracecharliteral[}]% ] % \def\skipspaces#1{\def\PP{#1}\def\D{|}% \ifx\PP\D\let\nextsp\relax \else\let\nextsp\skipspaces \addtokens{\filename}{\PP}% \advance\filenamelength by 1 \fi \nextsp} \def\getfilename#1{% \filenamelength=0 % If we don't expand the argument now, \skipspaces will get % snagged on things like "@value{foo}". \edef\temp{#1}% \expandafter\skipspaces\temp|\relax } \ifnum\pdftexversion < 14 \let \startlink \pdfannotlink \else \let \startlink \pdfstartlink \fi % make a live url in pdf output. \def\pdfurl#1{% \begingroup % it seems we really need yet another set of dummies; have not % tried to figure out what each command should do in the context % of @url. for now, just make @/ a no-op, that's the only one % people have actually reported a problem with. % \normalturnoffactive \def\@{@}% \let\/=\empty \makevalueexpandable % do we want to go so far as to use \indexnofonts instead of just % special-casing \var here? \def\var##1{##1}% % \leavevmode\setcolor{\urlcolor}% \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}} \def\maketoks{% \expandafter\poptoks\the\toksA|ENDTOKS|\relax \ifx\first0\adn0 \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3 \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6 \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9 \else \ifnum0=\countA\else\makelink\fi \ifx\first.\let\next=\done\else \let\next=\maketoks \addtokens{\toksB}{\the\toksD} \ifx\first,\addtokens{\toksB}{\space}\fi \fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \next} \def\makelink{\addtokens{\toksB}% {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0} \def\pdflink#1{% \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}} \setcolor{\linkcolor}#1\endlink} \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st} \else % non-pdf mode \let\pdfmkdest = \gobble \let\pdfurl = \gobble \let\endlink = \relax \let\setcolor = \gobble \let\pdfsetcolor = \gobble \let\pdfmakeoutlines = \relax \fi % \ifx\pdfoutput \message{fonts,} % Change the current font style to #1, remembering it in \curfontstyle. % For now, we do not accumulate font styles: @b{@i{foo}} prints foo in % italics, not bold italics. % \def\setfontstyle#1{% \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd. \csname ten#1\endcsname % change the current font } % Select #1 fonts with the current style. % \def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname} \def\rm{\fam=0 \setfontstyle{rm}} \def\it{\fam=\itfam \setfontstyle{it}} \def\sl{\fam=\slfam \setfontstyle{sl}} \def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf} \def\tt{\fam=\ttfam \setfontstyle{tt}} % Unfortunately, we have to override this for titles and the like, since % in those cases "rm" is bold. Sigh. \def\rmisbold{\rm\def\curfontstyle{bf}} % Texinfo sort of supports the sans serif font style, which plain TeX does not. % So we set up a \sf. \newfam\sffam \def\sf{\fam=\sffam \setfontstyle{sf}} \let\li = \sf % Sometimes we call it \li, not \sf. % We don't need math for this font style. \def\ttsl{\setfontstyle{ttsl}} % Set the baselineskip to #1, and the lineskip and strut size % correspondingly. There is no deep meaning behind these magic numbers % used as factors; they just match (closely enough) what Knuth defined. % \def\lineskipfactor{.08333} \def\strutheightpercent{.70833} \def\strutdepthpercent {.29167} % % can get a sort of poor man's double spacing by redefining this. \def\baselinefactor{1} % \newdimen\textleading \def\setleading#1{% \dimen0 = #1\relax \normalbaselineskip = \baselinefactor\dimen0 \normallineskip = \lineskipfactor\normalbaselineskip \normalbaselines \setbox\strutbox =\hbox{% \vrule width0pt height\strutheightpercent\baselineskip depth \strutdepthpercent \baselineskip }% } % PDF CMaps. See also LaTeX's t1.cmap. % % do nothing with this by default. \expandafter\let\csname cmapOT1\endcsname\gobble \expandafter\let\csname cmapOT1IT\endcsname\gobble \expandafter\let\csname cmapOT1TT\endcsname\gobble % if we are producing pdf, and we have \pdffontattr, then define cmaps. % (\pdffontattr was introduced many years ago, but people still run % older pdftex's; it's easy to conditionalize, so we do.) \ifpdf \ifx\pdffontattr\thisisundefined \else \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1-0) %%Title: (TeX-OT1-0 TeX OT1 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1) /Supplement 0 >> def /CMapName /TeX-OT1-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <23> <26> <0023> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 40 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1IT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1IT-0) %%Title: (TeX-OT1IT-0 TeX OT1IT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1IT) /Supplement 0 >> def /CMapName /TeX-OT1IT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 8 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <25> <26> <0025> <28> <3B> <0028> <3F> <5B> <003F> <5D> <5E> <005D> <61> <7A> <0061> <7B> <7C> <2013> endbfrange 42 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <00660066> <0C> <00660069> <0D> <0066006C> <0E> <006600660069> <0F> <00660066006C> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <21> <0021> <22> <201D> <23> <0023> <24> <00A3> <27> <2019> <3C> <00A1> <3D> <003D> <3E> <00BF> <5C> <201C> <5F> <02D9> <60> <2018> <7D> <02DD> <7E> <007E> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1IT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% % % \cmapOT1TT \begingroup \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char. \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap %%DocumentNeededResources: ProcSet (CIDInit) %%IncludeResource: ProcSet (CIDInit) %%BeginResource: CMap (TeX-OT1TT-0) %%Title: (TeX-OT1TT-0 TeX OT1TT 0) %%Version: 1.000 %%EndComments /CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo << /Registry (TeX) /Ordering (OT1TT) /Supplement 0 >> def /CMapName /TeX-OT1TT-0 def /CMapType 2 def 1 begincodespacerange <00> <7F> endcodespacerange 5 beginbfrange <00> <01> <0393> <09> <0A> <03A8> <21> <26> <0021> <28> <5F> <0028> <61> <7E> <0061> endbfrange 32 beginbfchar <02> <0398> <03> <039B> <04> <039E> <05> <03A0> <06> <03A3> <07> <03D2> <08> <03A6> <0B> <2191> <0C> <2193> <0D> <0027> <0E> <00A1> <0F> <00BF> <10> <0131> <11> <0237> <12> <0060> <13> <00B4> <14> <02C7> <15> <02D8> <16> <00AF> <17> <02DA> <18> <00B8> <19> <00DF> <1A> <00E6> <1B> <0153> <1C> <00F8> <1D> <00C6> <1E> <0152> <1F> <00D8> <20> <2423> <27> <2019> <60> <2018> <7F> <00A8> endbfchar endcmap CMapName currentdict /CMap defineresource pop end end %%EndResource %%EOF }\endgroup \expandafter\edef\csname cmapOT1TT\endcsname#1{% \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}% }% \fi\fi % Set the font macro #1 to the font named \fontprefix#2. % #3 is the font's design size, #4 is a scale factor, #5 is the CMap % encoding (only OT1, OT1IT and OT1TT are allowed, or empty to omit). % Example: % #1 = \textrm % #2 = \rmshape % #3 = 10 % #4 = \mainmagstep % #5 = OT1 % \def\setfont#1#2#3#4#5{% \font#1=\fontprefix#2#3 scaled #4 \csname cmap#5\endcsname#1% } % This is what gets called when #5 of \setfont is empty. \let\cmap\gobble % % (end of cmaps) % Use cm as the default font prefix. % To specify the font prefix, you must define \fontprefix % before you read in texinfo.tex. \ifx\fontprefix\thisisundefined \def\fontprefix{cm} \fi % Support font families that don't use the same naming scheme as CM. \def\rmshape{r} \def\rmbshape{bx} % where the normal face is bold \def\bfshape{b} \def\bxshape{bx} \def\ttshape{tt} \def\ttbshape{tt} \def\ttslshape{sltt} \def\itshape{ti} \def\itbshape{bxti} \def\slshape{sl} \def\slbshape{bxsl} \def\sfshape{ss} \def\sfbshape{ss} \def\scshape{csc} \def\scbshape{csc} % Definitions for a main text size of 11pt. (The default in Texinfo.) % \def\definetextfontsizexi{% % Text fonts (11.2pt, magstep1). \def\textnominalsize{11pt} \edef\mainmagstep{\magstephalf} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1095} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstep1}{OT1} \setfont\deftt\ttshape{10}{\magstep1}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter (and unnumbered) fonts (17.28pt). \def\chapnominalsize{17pt} \setfont\chaprm\rmbshape{12}{\magstep2}{OT1} \setfont\chapit\itbshape{10}{\magstep3}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep3}{OT1} \setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT} \setfont\chapsf\sfbshape{17}{1000}{OT1} \let\chapbf=\chaprm \setfont\chapsc\scbshape{10}{\magstep3}{OT1} \font\chapi=cmmi12 scaled \magstep2 \font\chapsy=cmsy10 scaled \magstep3 \def\chapecsize{1728} % Section fonts (14.4pt). \def\secnominalsize{14pt} \setfont\secrm\rmbshape{12}{\magstep1}{OT1} \setfont\secit\itbshape{10}{\magstep2}{OT1IT} \setfont\secsl\slbshape{10}{\magstep2}{OT1} \setfont\sectt\ttbshape{12}{\magstep1}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\secsf\sfbshape{12}{\magstep1}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep2}{OT1} \font\seci=cmmi12 scaled \magstep1 \font\secsy=cmsy10 scaled \magstep2 \def\sececsize{1440} % Subsection fonts (13.15pt). \def\ssecnominalsize{13pt} \setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1} \setfont\ssecit\itbshape{10}{1315}{OT1IT} \setfont\ssecsl\slbshape{10}{1315}{OT1} \setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1315}{OT1TT} \setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1315}{OT1} \font\sseci=cmmi12 scaled \magstephalf \font\ssecsy=cmsy10 scaled 1315 \def\ssececsize{1200} % Reduced fonts for @acro in text (10pt). \def\reducednominalsize{10pt} \setfont\reducedrm\rmshape{10}{1000}{OT1} \setfont\reducedtt\ttshape{10}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{1000}{OT1} \setfont\reducedit\itshape{10}{1000}{OT1IT} \setfont\reducedsl\slshape{10}{1000}{OT1} \setfont\reducedsf\sfshape{10}{1000}{OT1} \setfont\reducedsc\scshape{10}{1000}{OT1} \setfont\reducedttsl\ttslshape{10}{1000}{OT1TT} \font\reducedi=cmmi10 \font\reducedsy=cmsy10 \def\reducedecsize{1000} \textleading = 13.2pt % line spacing for 11pt CM \textfonts % reset the current fonts \rm } % end of 11pt text font size definitions, \definetextfontsizexi % Definitions to make the main text be 10pt Computer Modern, with % section, chapter, etc., sizes following suit. This is for the GNU % Press printing of the Emacs 22 manual. Maybe other manuals in the % future. Used with @smallbook, which sets the leading to 12pt. % \def\definetextfontsizex{% % Text fonts (10pt). \def\textnominalsize{10pt} \edef\mainmagstep{1000} \setfont\textrm\rmshape{10}{\mainmagstep}{OT1} \setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT} \setfont\textbf\bfshape{10}{\mainmagstep}{OT1} \setfont\textit\itshape{10}{\mainmagstep}{OT1IT} \setfont\textsl\slshape{10}{\mainmagstep}{OT1} \setfont\textsf\sfshape{10}{\mainmagstep}{OT1} \setfont\textsc\scshape{10}{\mainmagstep}{OT1} \setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT} \font\texti=cmmi10 scaled \mainmagstep \font\textsy=cmsy10 scaled \mainmagstep \def\textecsize{1000} % A few fonts for @defun names and args. \setfont\defbf\bfshape{10}{\magstephalf}{OT1} \setfont\deftt\ttshape{10}{\magstephalf}{OT1TT} \setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT} \def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf} % Fonts for indices, footnotes, small examples (9pt). \def\smallnominalsize{9pt} \setfont\smallrm\rmshape{9}{1000}{OT1} \setfont\smalltt\ttshape{9}{1000}{OT1TT} \setfont\smallbf\bfshape{10}{900}{OT1} \setfont\smallit\itshape{9}{1000}{OT1IT} \setfont\smallsl\slshape{9}{1000}{OT1} \setfont\smallsf\sfshape{9}{1000}{OT1} \setfont\smallsc\scshape{10}{900}{OT1} \setfont\smallttsl\ttslshape{10}{900}{OT1TT} \font\smalli=cmmi9 \font\smallsy=cmsy9 \def\smallecsize{0900} % Fonts for small examples (8pt). \def\smallernominalsize{8pt} \setfont\smallerrm\rmshape{8}{1000}{OT1} \setfont\smallertt\ttshape{8}{1000}{OT1TT} \setfont\smallerbf\bfshape{10}{800}{OT1} \setfont\smallerit\itshape{8}{1000}{OT1IT} \setfont\smallersl\slshape{8}{1000}{OT1} \setfont\smallersf\sfshape{8}{1000}{OT1} \setfont\smallersc\scshape{10}{800}{OT1} \setfont\smallerttsl\ttslshape{10}{800}{OT1TT} \font\smalleri=cmmi8 \font\smallersy=cmsy8 \def\smallerecsize{0800} % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} \setfont\titleit\itbshape{10}{\magstep4}{OT1IT} \setfont\titlesl\slbshape{10}{\magstep4}{OT1} \setfont\titlett\ttbshape{12}{\magstep3}{OT1TT} \setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT} \setfont\titlesf\sfbshape{17}{\magstep1}{OT1} \let\titlebf=\titlerm \setfont\titlesc\scbshape{10}{\magstep4}{OT1} \font\titlei=cmmi12 scaled \magstep3 \font\titlesy=cmsy10 scaled \magstep4 \def\titleecsize{2074} % Chapter fonts (14.4pt). \def\chapnominalsize{14pt} \setfont\chaprm\rmbshape{12}{\magstep1}{OT1} \setfont\chapit\itbshape{10}{\magstep2}{OT1IT} \setfont\chapsl\slbshape{10}{\magstep2}{OT1} \setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT} \setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT} \setfont\chapsf\sfbshape{12}{\magstep1}{OT1} \let\chapbf\chaprm \setfont\chapsc\scbshape{10}{\magstep2}{OT1} \font\chapi=cmmi12 scaled \magstep1 \font\chapsy=cmsy10 scaled \magstep2 \def\chapecsize{1440} % Section fonts (12pt). \def\secnominalsize{12pt} \setfont\secrm\rmbshape{12}{1000}{OT1} \setfont\secit\itbshape{10}{\magstep1}{OT1IT} \setfont\secsl\slbshape{10}{\magstep1}{OT1} \setfont\sectt\ttbshape{12}{1000}{OT1TT} \setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT} \setfont\secsf\sfbshape{12}{1000}{OT1} \let\secbf\secrm \setfont\secsc\scbshape{10}{\magstep1}{OT1} \font\seci=cmmi12 \font\secsy=cmsy10 scaled \magstep1 \def\sececsize{1200} % Subsection fonts (10pt). \def\ssecnominalsize{10pt} \setfont\ssecrm\rmbshape{10}{1000}{OT1} \setfont\ssecit\itbshape{10}{1000}{OT1IT} \setfont\ssecsl\slbshape{10}{1000}{OT1} \setfont\ssectt\ttbshape{10}{1000}{OT1TT} \setfont\ssecttsl\ttslshape{10}{1000}{OT1TT} \setfont\ssecsf\sfbshape{10}{1000}{OT1} \let\ssecbf\ssecrm \setfont\ssecsc\scbshape{10}{1000}{OT1} \font\sseci=cmmi10 \font\ssecsy=cmsy10 \def\ssececsize{1000} % Reduced fonts for @acro in text (9pt). \def\reducednominalsize{9pt} \setfont\reducedrm\rmshape{9}{1000}{OT1} \setfont\reducedtt\ttshape{9}{1000}{OT1TT} \setfont\reducedbf\bfshape{10}{900}{OT1} \setfont\reducedit\itshape{9}{1000}{OT1IT} \setfont\reducedsl\slshape{9}{1000}{OT1} \setfont\reducedsf\sfshape{9}{1000}{OT1} \setfont\reducedsc\scshape{10}{900}{OT1} \setfont\reducedttsl\ttslshape{10}{900}{OT1TT} \font\reducedi=cmmi9 \font\reducedsy=cmsy9 \def\reducedecsize{0900} \divide\parskip by 2 % reduce space between paragraphs \textleading = 12pt % line spacing for 10pt CM \textfonts % reset the current fonts \rm } % end of 10pt text font size definitions, \definetextfontsizex % We provide the user-level command % @fonttextsize 10 % (or 11) to redefine the text font size. pt is assumed. % \def\xiword{11} \def\xword{10} \def\xwordpt{10pt} % \parseargdef\fonttextsize{% \def\textsizearg{#1}% %\wlog{doing @fonttextsize \textsizearg}% % % Set \globaldefs so that documents can use this inside @tex, since % makeinfo 4.8 does not support it, but we need it nonetheless. % \begingroup \globaldefs=1 \ifx\textsizearg\xword \definetextfontsizex \else \ifx\textsizearg\xiword \definetextfontsizexi \else \errhelp=\EMsimple \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'} \fi\fi \endgroup } % In order for the font changes to affect most math symbols and letters, % we have to define the \textfont of the standard families. Since % texinfo doesn't allow for producing subscripts and superscripts except % in the main text, we don't bother to reset \scriptfont and % \scriptscriptfont (which would also require loading a lot more fonts). % \def\resetmathfonts{% \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf \textfont\ttfam=\tentt \textfont\sffam=\tensf } % The font-changing commands redefine the meanings of \tenSTYLE, instead % of just \STYLE. We do this because \STYLE needs to also set the % current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire % \tenSTYLE to set the current font. % % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used in % the LaTeX logo and acronyms. % % This all needs generalizing, badly. % \def\textfonts{% \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy \let\tenttsl=\textttsl \def\curfontsize{text}% \def\lsize{reduced}\def\lllsize{smaller}% \resetmathfonts \setleading{\textleading}} \def\titlefonts{% \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy \let\tenttsl=\titlettsl \def\curfontsize{title}% \def\lsize{chap}\def\lllsize{subsec}% \resetmathfonts \setleading{27pt}} \def\titlefont#1{{\titlefonts\rmisbold #1}} \def\chapfonts{% \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy \let\tenttsl=\chapttsl \def\curfontsize{chap}% \def\lsize{sec}\def\lllsize{text}% \resetmathfonts \setleading{19pt}} \def\secfonts{% \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy \let\tenttsl=\secttsl \def\curfontsize{sec}% \def\lsize{subsec}\def\lllsize{reduced}% \resetmathfonts \setleading{16pt}} \def\subsecfonts{% \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy \let\tenttsl=\ssecttsl \def\curfontsize{ssec}% \def\lsize{text}\def\lllsize{small}% \resetmathfonts \setleading{15pt}} \let\subsubsecfonts = \subsecfonts \def\reducedfonts{% \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy \let\tenttsl=\reducedttsl \def\curfontsize{reduced}% \def\lsize{small}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallfonts{% \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy \let\tenttsl=\smallttsl \def\curfontsize{small}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{10.5pt}} \def\smallerfonts{% \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy \let\tenttsl=\smallerttsl \def\curfontsize{smaller}% \def\lsize{smaller}\def\lllsize{smaller}% \resetmathfonts \setleading{9.5pt}} % Fonts for short table of contents. \setfont\shortcontrm\rmshape{12}{1000}{OT1} \setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12 \setfont\shortcontsl\slshape{12}{1000}{OT1} \setfont\shortconttt\ttshape{12}{1000}{OT1TT} % Define these just so they can be easily changed for other fonts. \def\angleleft{$\langle$} \def\angleright{$\rangle$} % Set the fonts to use with the @small... environments. \let\smallexamplefonts = \smallfonts % About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample % can fit this many characters: % 8.5x11=86 smallbook=72 a4=90 a5=69 % If we use \scriptfonts (8pt), then we can fit this many characters: % 8.5x11=90+ smallbook=80 a4=90+ a5=77 % For me, subjectively, the few extra characters that fit aren't worth % the additional smallness of 8pt. So I'm making the default 9pt. % % By the way, for comparison, here's what fits with @example (10pt): % 8.5x11=71 smallbook=60 a4=75 a5=58 % --karl, 24jan03. % Set up the default fonts, so we can use them for creating boxes. % \definetextfontsizexi \message{markup,} % Check if we are currently using a typewriter font. Since all the % Computer Modern typewriter fonts have zero interword stretch (and % shrink), and it is reasonable to expect all typewriter fonts to have % this property, we can check that font parameter. % \def\ifmonospace{\ifdim\fontdimen3\font=0pt } % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will % define and register \INITMACRO to be called on markup style changes. % \INITMACRO can check \currentmarkupstyle for the innermost % style and the set of \ifmarkupSTYLE switches for all styles % currently in effect. \newif\ifmarkupvar \newif\ifmarkupsamp \newif\ifmarkupkey %\newif\ifmarkupfile % @file == @samp. %\newif\ifmarkupoption % @option == @samp. \newif\ifmarkupcode \newif\ifmarkupkbd %\newif\ifmarkupenv % @env == @code. %\newif\ifmarkupcommand % @command == @code. \newif\ifmarkuptex % @tex (and part of @math, for now). \newif\ifmarkupexample \newif\ifmarkupverb \newif\ifmarkupverbatim \let\currentmarkupstyle\empty \def\setupmarkupstyle#1{% \csname markup#1true\endcsname \def\currentmarkupstyle{#1}% \markupstylesetup } \let\markupstylesetup\empty \def\defmarkupstylesetup#1{% \expandafter\def\expandafter\markupstylesetup \expandafter{\markupstylesetup #1}% \def#1% } % Markup style setup for left and right quotes. \defmarkupstylesetup\markupsetuplq{% \expandafter\let\expandafter \temp \csname markupsetuplq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuplqdefault \else \temp \fi } \defmarkupstylesetup\markupsetuprq{% \expandafter\let\expandafter \temp \csname markupsetuprq\currentmarkupstyle\endcsname \ifx\temp\relax \markupsetuprqdefault \else \temp \fi } { \catcode`\'=\active \catcode`\`=\active \gdef\markupsetuplqdefault{\let`\lq} \gdef\markupsetuprqdefault{\let'\rq} \gdef\markupsetcodequoteleft{\let`\codequoteleft} \gdef\markupsetcodequoteright{\let'\codequoteright} } \let\markupsetuplqcode \markupsetcodequoteleft \let\markupsetuprqcode \markupsetcodequoteright % \let\markupsetuplqexample \markupsetcodequoteleft \let\markupsetuprqexample \markupsetcodequoteright % \let\markupsetuplqkbd \markupsetcodequoteleft \let\markupsetuprqkbd \markupsetcodequoteright % \let\markupsetuplqsamp \markupsetcodequoteleft \let\markupsetuprqsamp \markupsetcodequoteright % \let\markupsetuplqverb \markupsetcodequoteleft \let\markupsetuprqverb \markupsetcodequoteright % \let\markupsetuplqverbatim \markupsetcodequoteleft \let\markupsetuprqverbatim \markupsetcodequoteright % Allow an option to not use regular directed right quote/apostrophe % (char 0x27), but instead the undirected quote from cmtt (char 0x0d). % The undirected quote is ugly, so don't make it the default, but it % works for pasting with more pdf viewers (at least evince), the % lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax '% \else \char'15 \fi \else \char'15 \fi } % % and a similar option for the left quote char vs. a grave accent. % Modern fonts display ASCII 0x60 as a grave accent, so some people like % the code environments to do likewise. % \def\codequoteleft{% \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax % [Knuth] pp. 380,381,391 % \relax disables Spanish ligatures ?` and !` of \tt font. \relax`% \else \char'22 \fi \else \char'22 \fi } % Commands to set the quote options. % \parseargdef\codequoteundirected{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequoteundirected\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequoteundirected\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}% \fi\fi } % \parseargdef\codequotebacktick{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxicodequotebacktick\endcsname = t% \else\ifx\temp\offword \expandafter\let\csname SETtxicodequotebacktick\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}% \fi\fi } % [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font. \def\noligaturesquoteleft{\relax\lq} % Count depth in font-changes, for error checks \newcount\fontdepth \fontdepth=0 % Font commands. % #1 is the font command (\sl or \it), #2 is the text to slant. % If we are in a monospaced environment, however, 1) always use \ttsl, % and 2) do not add an italic correction. \def\dosmartslant#1#2{% \ifusingtt {{\ttsl #2}\let\next=\relax}% {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}% \next } \def\smartslanted{\dosmartslant\sl} \def\smartitalic{\dosmartslant\it} % Output an italic correction unless \next (presumed to be the following % character) is such as not to need one. \def\smartitaliccorrection{% \ifx\next,% \else\ifx\next-% \else\ifx\next.% \else\ptexslash \fi\fi\fi \aftersmartic } % Unconditional use \ttsl, and no ic. @var is set to this for defuns. \def\ttslanted#1{{\ttsl #1}} % @cite is like \smartslanted except unconditionally use \sl. We never want % ttsl for book titles, do we? \def\cite#1{{\sl #1}\futurelet\next\smartitaliccorrection} \def\aftersmartic{} \def\var#1{% \let\saveaftersmartic = \aftersmartic \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}% \smartslanted{#1}% } \let\i=\smartitalic \let\slanted=\smartslanted \let\dfn=\smartslanted \let\emph=\smartitalic % Explicit font changes: @r, @sc, undocumented @ii. \def\r#1{{\rm #1}} % roman font \def\sc#1{{\smallcaps#1}} % smallcaps font \def\ii#1{{\it #1}} % italic font % @b, explicit bold. Also @strong. \def\b#1{{\bf #1}} \let\strong=\b % @sansserif, explicit sans. \def\sansserif#1{{\sf #1}} % We can't just use \exhyphenpenalty, because that only has effect at % the end of a paragraph. Restore normal hyphenation at the end of the % group within which \nohyphenation is presumably called. % \def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation} \def\restorehyphenation{\hyphenchar\font = `- } % Set sfcode to normal for the chars that usually have another value. % Can't use plain's \frenchspacing because it uses the `\x notation, and % sometimes \x has an active definition that messes things up. % \catcode`@=11 \def\plainfrenchspacing{% \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m \def\endofsentencespacefactor{1000}% for @. and friends } \def\plainnonfrenchspacing{% \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000 \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 \def\endofsentencespacefactor{3000}% for @. and friends } \catcode`@=\other \def\endofsentencespacefactor{3000}% default % @t, explicit typewriter. \def\t#1{% {\tt \rawbackslash \plainfrenchspacing #1}% \null } % @samp. \def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}} % @indicateurl is \samp, that is, with quotes. \let\indicateurl=\samp % @code (and similar) prints in typewriter, but with spaces the same % size as normal in the surrounding text, without hyphenation, etc. % This is a subroutine for that. \def\tclose#1{% {% % Change normal interword space to be same as for the current font. \spaceskip = \fontdimen2\font % % Switch to typewriter. \tt % % But `\ ' produces the large typewriter interword space. \def\ {{\spaceskip = 0pt{} }}% % % Turn off hyphenation. \nohyphenation % \rawbackslash \plainfrenchspacing #1% }% \null % reset spacefactor to 1000 } % We *must* turn on hyphenation at `-' and `_' in @code. % Otherwise, it is too hard to avoid overfull hboxes % in the Emacs manual, the Library manual, etc. % % Unfortunately, TeX uses one parameter (\hyphenchar) to control % both hyphenation at - and hyphenation within words. % We must therefore turn them both off (\tclose does that) % and arrange explicitly to hyphenate at a dash. % -- rms. { \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active \catcode`\`=\active \global\let'=\rq \global\let`=\lq % default definitions % \global\def\code{\begingroup \setupmarkupstyle{code}% % The following should really be moved into \setupmarkupstyle handlers. \catcode\dashChar=\active \catcode\underChar=\active \ifallowcodebreaks \let-\codedash \let_\codeunder \else \let-\normaldash \let_\realunder \fi \codex } } \def\codex #1{\tclose{#1}\endgroup} \def\normaldash{-} \def\codedash{-\discretionary{}{}{}} \def\codeunder{% % this is all so @math{@code{var_name}+1} can work. In math mode, _ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.) % will therefore expand the active definition of _, which is us % (inside @code that is), therefore an endless loop. \ifusingtt{\ifmmode \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_. \else\normalunderscore \fi \discretionary{}{}{}}% {\_}% } % An additional complication: the above will allow breaks after, e.g., % each of the four underscores in __typeof__. This is bad. % @allowcodebreaks provides a document-level way to turn breaking at - % and _ on and off. % \newif\ifallowcodebreaks \allowcodebreakstrue \def\keywordtrue{true} \def\keywordfalse{false} \parseargdef\allowcodebreaks{% \def\txiarg{#1}% \ifx\txiarg\keywordtrue \allowcodebreakstrue \else\ifx\txiarg\keywordfalse \allowcodebreaksfalse \else \errhelp = \EMsimple \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}% \fi\fi } % For @command, @env, @file, @option quotes seem unnecessary, % so use \code rather than \samp. \let\command=\code \let\env=\code \let\file=\code \let\option=\code % @uref (abbreviation for `urlref') takes an optional (comma-separated) % second argument specifying the text to display and an optional third % arg as text to display instead of (rather than in addition to) the url % itself. First (mandatory) arg is the url. % (This \urefnobreak definition isn't used now, leaving it for a while % for comparison.) \def\urefnobreak#1{\dourefnobreak #1,,,\finish} \def\dourefnobreak#1,#2,#3,#4\finish{\begingroup \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url \fi \else \code{#1}% only url given, so show it \fi \fi \endlink \endgroup} % This \urefbreak definition is the active one. \def\urefbreak{\begingroup \urefcatcodes \dourefbreak} \let\uref=\urefbreak \def\dourefbreak#1{\urefbreakfinish #1,,,\finish} \def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example \unsepspaces \pdfurl{#1}% \setbox0 = \hbox{\ignorespaces #3}% \ifdim\wd0 > 0pt \unhbox0 % third arg given, show only that \else \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0 > 0pt \ifpdf \unhbox0 % PDF: 2nd arg given, show only it \else \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url \fi \else \urefcode{#1}% only url given, so show it \fi \fi \endlink \endgroup} % Allow line breaks around only a few characters (only). \def\urefcatcodes{% \catcode\ampChar=\active \catcode\dotChar=\active \catcode\hashChar=\active \catcode\questChar=\active \catcode\slashChar=\active } { \urefcatcodes % \global\def\urefcode{\begingroup \setupmarkupstyle{code}% \urefcatcodes \let&\urefcodeamp \let.\urefcodedot \let#\urefcodehash \let?\urefcodequest \let/\urefcodeslash \codex } % % By default, they are just regular characters. \global\def&{\normalamp} \global\def.{\normaldot} \global\def#{\normalhash} \global\def?{\normalquest} \global\def/{\normalslash} } % we put a little stretch before and after the breakable chars, to help % line breaking of long url's. The unequal skips make look better in % cmtt at least, especially for dots. \def\urefprestretch{\urefprebreak \hskip0pt plus.13em } \def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em } % \def\urefcodeamp{\urefprestretch \&\urefpoststretch} \def\urefcodedot{\urefprestretch .\urefpoststretch} \def\urefcodehash{\urefprestretch \#\urefpoststretch} \def\urefcodequest{\urefprestretch ?\urefpoststretch} \def\urefcodeslash{\futurelet\next\urefcodeslashfinish} { \catcode`\/=\active \global\def\urefcodeslashfinish{% \urefprestretch \slashChar % Allow line break only after the final / in a sequence of % slashes, to avoid line break between the slashes in http://. \ifx\next/\else \urefpoststretch \fi } } % One more complication: by default we'll break after the special % characters, but some people like to break before the special chars, so % allow that. Also allow no breaking at all, for manual control. % \parseargdef\urefbreakstyle{% \def\txiarg{#1}% \ifx\txiarg\wordnone \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordbefore \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak} \else\ifx\txiarg\wordafter \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak} \else \errhelp = \EMsimple \errmessage{Unknown @urefbreakstyle setting `\txiarg'}% \fi\fi\fi } \def\wordafter{after} \def\wordbefore{before} \def\wordnone{none} \urefbreakstyle after % @url synonym for @uref, since that's how everyone uses it. % \let\url=\uref % rms does not like angle brackets --karl, 17may97. % So now @email is just like @uref, unless we are pdf. % %\def\email#1{\angleleft{\tt #1}\angleright} \ifpdf \def\email#1{\doemail#1,,\finish} \def\doemail#1,#2,#3\finish{\begingroup \unsepspaces \pdfurl{mailto:#1}% \setbox0 = \hbox{\ignorespaces #2}% \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi \endlink \endgroup} \else \let\email=\uref \fi % @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always), % `example' (@kbd uses ttsl only inside of @example and friends), % or `code' (@kbd uses normal tty font always). \parseargdef\kbdinputstyle{% \def\txiarg{#1}% \ifx\txiarg\worddistinct \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}% \else\ifx\txiarg\wordexample \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}% \else\ifx\txiarg\wordcode \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}% \else \errhelp = \EMsimple \errmessage{Unknown @kbdinputstyle setting `\txiarg'}% \fi\fi\fi } \def\worddistinct{distinct} \def\wordexample{example} \def\wordcode{code} % Default is `distinct'. \kbdinputstyle distinct % @kbd is like @code, except that if the argument is just one @key command, % then @kbd has no effect. \def\kbd#1{{\def\look{#1}\expandafter\kbdsub\look??\par}} \def\xkey{\key} \def\kbdsub#1#2#3\par{% \def\one{#1}\def\three{#3}\def\threex{??}% \ifx\one\xkey\ifx\threex\three \key{#2}% \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi \else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi } % definition of @key that produces a lozenge. Doesn't adjust to text size. %\setfont\keyrm\rmshape{8}{1000}{OT1} %\font\keysy=cmsy9 %\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{% % \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{% % \vbox{\hrule\kern-0.4pt % \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}% % \kern-0.4pt\hrule}% % \kern-.06em\raise0.4pt\hbox{\angleright}}}} % definition of @key with no lozenge. If the current font is already % monospace, don't change it; that way, we respect @kbdinputstyle. But % if it isn't monospace, then use \tt. % \def\key#1{{\setupmarkupstyle{key}% \nohyphenation \ifmonospace\else\tt\fi #1}\null} % @clicksequence{File @click{} Open ...} \def\clicksequence#1{\begingroup #1\endgroup} % @clickstyle @arrow (by default) \parseargdef\clickstyle{\def\click{#1}} \def\click{\arrow} % Typeset a dimension, e.g., `in' or `pt'. The only reason for the % argument is to make the input look right: @dmn{pt} instead of @dmn{}pt. % \def\dmn#1{\thinspace #1} % @l was never documented to mean ``switch to the Lisp font'', % and it is not used as such in any manual I can find. We need it for % Polish suppressed-l. --karl, 22sep96. %\def\l#1{{\li #1}\null} % @acronym for "FBI", "NATO", and the like. % We print this one point size smaller, since it's intended for % all-uppercase. % \def\acronym#1{\doacronym #1,,\finish} \def\doacronym#1,#2,#3\finish{% {\selectfonts\lsize #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @abbr for "Comput. J." and the like. % No font change, but don't do end-of-sentence spacing. % \def\abbr#1{\doabbr #1,,\finish} \def\doabbr#1,#2,#3\finish{% {\plainfrenchspacing #1}% \def\temp{#2}% \ifx\temp\empty \else \space ({\unsepspaces \ignorespaces \temp \unskip})% \fi \null % reset \spacefactor=1000 } % @asis just yields its argument. Used with @table, for example. % \def\asis#1{#1} % @math outputs its argument in math mode. % % One complication: _ usually means subscripts, but it could also mean % an actual _ character, as in @math{@var{some_variable} + 1}. So make % _ active, and distinguish by seeing if the current family is \slfam, % which is what @var uses. { \catcode`\_ = \active \gdef\mathunderscore{% \catcode`\_=\active \def_{\ifnum\fam=\slfam \_\else\sb\fi}% } } % Another complication: we want \\ (and @\) to output a math (or tt) \. % FYI, plain.tex uses \\ as a temporary control sequence (for no % particular reason), but this is not advertised and we don't care. % % The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\. \def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi} % \def\math{% \tex \mathunderscore \let\\ = \mathbackslash \mathactive % make the texinfo accent commands work in math mode \let\"=\ddot \let\'=\acute \let\==\bar \let\^=\hat \let\`=\grave \let\u=\breve \let\v=\check \let\~=\tilde \let\dotaccent=\dot $\finishmath } \def\finishmath#1{#1$\endgroup} % Close the group opened by \tex. % Some active characters (such as <) are spaced differently in math. % We have to reset their definitions in case the @math was an argument % to a command which sets the catcodes (such as @item or @section). % { \catcode`^ = \active \catcode`< = \active \catcode`> = \active \catcode`+ = \active \catcode`' = \active \gdef\mathactive{% \let^ = \ptexhat \let< = \ptexless \let> = \ptexgtr \let+ = \ptexplus \let' = \ptexquoteright } } % ctrl is no longer a Texinfo command, but leave this definition for fun. \def\ctrl #1{{\tt \rawbackslash \hat}#1} % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}. % Ignore unless FMTNAME == tex; then it is like @iftex and @tex, % except specified as a normal braced arg, so no newlines to worry about. % \def\outfmtnametex{tex} % \long\def\inlinefmt#1{\doinlinefmt #1,\finish} \long\def\doinlinefmt#1,#2,\finish{% \def\inlinefmtname{#1}% \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi } % For raw, must switch into @tex before parsing the argument, to avoid % setting catcodes prematurely. Doing it this way means that, for % example, @inlineraw{html, foo{bar} gets a parse error instead of being % ignored. But this isn't important because if people want a literal % *right* brace they would have to use a command anyway, so they may as % well use a command to get a left brace too. We could re-use the % delimiter character idea from \verb, but it seems like overkill. % \long\def\inlineraw{\tex \doinlineraw} \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish} \def\doinlinerawtwo#1,#2,\finish{% \def\inlinerawname{#1}% \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi \endgroup % close group opened by \tex. } \message{glyphs,} % and logos. % @@ prints an @, as does @atchar{}. \def\@{\char64 } \let\atchar=\@ % @{ @} @lbracechar{} @rbracechar{} all generate brace characters. % Unless we're in typewriter, use \ecfont because the CM text fonts do % not have braces, and we don't want to switch into math. \def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}} \def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}} \let\{=\mylbrace \let\lbracechar=\{ \let\}=\myrbrace \let\rbracechar=\} \begingroup % Definitions to produce \{ and \} commands for indices, % and @{ and @} for the aux/toc files. \catcode`\{ = \other \catcode`\} = \other \catcode`\[ = 1 \catcode`\] = 2 \catcode`\! = 0 \catcode`\\ = \other !gdef!lbracecmd[\{]% !gdef!rbracecmd[\}]% !gdef!lbraceatcmd[@{]% !gdef!rbraceatcmd[@}]% !endgroup % @comma{} to avoid , parsing problems. \let\comma = , % Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent % Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H. \let\, = \ptexc \let\dotaccent = \ptexdot \def\ringaccent#1{{\accent23 #1}} \let\tieaccent = \ptext \let\ubaraccent = \ptexb \let\udotaccent = \d % Other special characters: @questiondown @exclamdown @ordf @ordm % Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss. \def\questiondown{?`} \def\exclamdown{!`} \def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}} \def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}} % Dotless i and dotless j, used for accents. \def\imacro{i} \def\jmacro{j} \def\dotless#1{% \def\temp{#1}% \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi \else \errmessage{@dotless can be used only with i or j}% \fi\fi } % The \TeX{} logo, as in plain, but resetting the spacing so that a % period following counts as ending a sentence. (Idea found in latex.) % \edef\TeX{\TeX \spacefactor=1000 } % @LaTeX{} logo. Not quite the same results as the definition in % latex.ltx, since we use a different font for the raised A; it's most % convenient for us to use an explicitly smaller font, rather than using % the \scriptstyle font (since we don't reset \scriptstyle and % \scriptscriptstyle). % \def\LaTeX{% L\kern-.36em {\setbox0=\hbox{T}% \vbox to \ht0{\hbox{% \ifx\textnominalsize\xwordpt % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX. % Revert to plain's \scriptsize, which is 7pt. \count255=\the\fam $\fam\count255 \scriptstyle A$% \else % For 11pt, we can use our lllsize. \selectfonts\lllsize A% \fi }% \vss }}% \kern-.15em \TeX } % Some math mode symbols. \def\bullet{$\ptexbullet$} \def\geq{\ifmmode \ge\else $\ge$\fi} \def\leq{\ifmmode \le\else $\le$\fi} \def\minus{\ifmmode -\else $-$\fi} % @dots{} outputs an ellipsis using the current font. % We do .5em per period so that it has the same spacing in the cm % typewriter fonts as three actual period characters; on the other hand, % in other typewriter fonts three periods are wider than 1.5em. So do % whichever is larger. % \def\dots{% \leavevmode \setbox0=\hbox{...}% get width of three periods \ifdim\wd0 > 1.5em \dimen0 = \wd0 \else \dimen0 = 1.5em \fi \hbox to \dimen0{% \hskip 0pt plus.25fil .\hskip 0pt plus1fil .\hskip 0pt plus1fil .\hskip 0pt plus.5fil }% } % @enddots{} is an end-of-sentence ellipsis. % \def\enddots{% \dots \spacefactor=\endofsentencespacefactor } % @point{}, @result{}, @expansion{}, @print{}, @equiv{}. % % Since these characters are used in examples, they should be an even number of % \tt widths. Each \tt character is 1en, so two makes it 1em. % \def\point{$\star$} \def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}} \def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}} \def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}} \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}} \def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}} % The @error{} command. % Adapted from the TeXbook's \boxit. % \newbox\errorbox % {\tentt \global\dimen0 = 3em}% Width of the box. \dimen2 = .55pt % Thickness of rules % The text. (`r' is open on the right, `e' somewhat less so on the left.) \setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt} % \setbox\errorbox=\hbox to \dimen0{\hfil \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right. \advance\hsize by -2\dimen2 % Rules. \vbox{% \hrule height\dimen2 \hbox{\vrule width\dimen2 \kern3pt % Space to left of text. \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below. \kern3pt\vrule width\dimen2}% Space to right. \hrule height\dimen2} \hfil} % \def\error{\leavevmode\lower.7ex\copy\errorbox} % @pounds{} is a sterling sign, which Knuth put in the CM italic font. % \def\pounds{{\it\$}} % @euro{} comes from a separate font, depending on the current style. % We use the free feym* fonts from the eurosym package by Henrik % Theiling, which support regular, slanted, bold and bold slanted (and % "outlined" (blackboard board, sort of) versions, which we don't need). % It is available from http://www.ctan.org/tex-archive/fonts/eurosym. % % Although only regular is the truly official Euro symbol, we ignore % that. The Euro is designed to be slightly taller than the regular % font height. % % feymr - regular % feymo - slanted % feybr - bold % feybo - bold slanted % % There is no good (free) typewriter version, to my knowledge. % A feymr10 euro is ~7.3pt wide, while a normal cmtt10 char is ~5.25pt wide. % Hmm. % % Also doesn't work in math. Do we need to do math with euro symbols? % Hope not. % % \def\euro{{\eurofont e}} \def\eurofont{% % We set the font at each command, rather than predefining it in % \textfonts and the other font-switching commands, so that % installations which never need the symbol don't have to have the % font installed. % % There is only one designed size (nominal 10pt), so we always scale % that to the current nominal size. % % By the way, simply using "at 1em" works for cmr10 and the like, but % does not work for cmbx10 and other extended/shrunken fonts. % \def\eurosize{\csname\curfontsize nominalsize\endcsname}% % \ifx\curfontstyle\bfstylename % bold: \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize \else % regular: \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize \fi \thiseurofont } % Glyphs from the EC fonts. We don't use \let for the aliases, because % sometimes we redefine the original macro, and the alias should reflect % the redefinition. % % Use LaTeX names for the Icelandic letters. \def\DH{{\ecfont \char"D0}} % Eth \def\dh{{\ecfont \char"F0}} % eth \def\TH{{\ecfont \char"DE}} % Thorn \def\th{{\ecfont \char"FE}} % thorn % \def\guillemetleft{{\ecfont \char"13}} \def\guillemotleft{\guillemetleft} \def\guillemetright{{\ecfont \char"14}} \def\guillemotright{\guillemetright} \def\guilsinglleft{{\ecfont \char"0E}} \def\guilsinglright{{\ecfont \char"0F}} \def\quotedblbase{{\ecfont \char"12}} \def\quotesinglbase{{\ecfont \char"0D}} % % This positioning is not perfect (see the ogonek LaTeX package), but % we have the precomposed glyphs for the most common cases. We put the % tests to use those glyphs in the single \ogonek macro so we have fewer % dummy definitions to worry about for index entries, etc. % % ogonek is also used with other letters in Lithuanian (IOU), but using % the precomposed glyphs for those is not so easy since they aren't in % the same EC font. \def\ogonek#1{{% \def\temp{#1}% \ifx\temp\macrocharA\Aogonek \else\ifx\temp\macrochara\aogonek \else\ifx\temp\macrocharE\Eogonek \else\ifx\temp\macrochare\eogonek \else \ecfont \setbox0=\hbox{#1}% \ifdim\ht0=1ex\accent"0C #1% \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}% \fi \fi\fi\fi\fi }% } \def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A} \def\aogonek{{\ecfont \char"A1}}\def\macrochara{a} \def\Eogonek{{\ecfont \char"86}}\def\macrocharE{E} \def\eogonek{{\ecfont \char"A6}}\def\macrochare{e} % % Use the ec* fonts (cm-super in outline format) for non-CM glyphs. \def\ecfont{% % We can't distinguish serif/sans and italic/slanted, but this % is used for crude hacks anyway (like adding French and German % quotes to documents typeset with CM, where we lose kerning), so % hopefully nobody will notice/care. \edef\ecsize{\csname\curfontsize ecsize\endcsname}% \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}% \ifmonospace % typewriter: \font\thisecfont = ectt\ecsize \space at \nominalsize \else \ifx\curfontstyle\bfstylename % bold: \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize \else % regular: \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize \fi \fi \thisecfont } % @registeredsymbol - R in a circle. The font for the R should really % be smaller yet, but lllsize is the best we can do for now. % Adapted from the plain.tex definition of \copyright. % \def\registeredsymbol{% $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}% \hfil\crcr\Orb}}% }$% } % @textdegree - the normal degrees sign. % \def\textdegree{$^\circ$} % Laurent Siebenmann reports \Orb undefined with: % Textures 1.7.7 (preloaded format=plain 93.10.14) (68K) 16 APR 2004 02:38 % so we'll define it if necessary. % \ifx\Orb\thisisundefined \def\Orb{\mathhexbox20D} \fi % Quotes. \chardef\quotedblleft="5C \chardef\quotedblright=`\" \chardef\quoteleft=`\` \chardef\quoteright=`\' \message{page headings,} \newskip\titlepagetopglue \titlepagetopglue = 1.5in \newskip\titlepagebottomglue \titlepagebottomglue = 2pc % First the title page. Must do @settitle before @titlepage. \newif\ifseenauthor \newif\iffinishedtitlepage % Do an implicit @contents or @shortcontents after @end titlepage if the % user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage. % \newif\ifsetcontentsaftertitlepage \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue \newif\ifsetshortcontentsaftertitlepage \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue \parseargdef\shorttitlepage{% \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}% \endgroup\page\hbox{}\page} \envdef\titlepage{% % Open one extra group, as we want to close it in the middle of \Etitlepage. \begingroup \parindent=0pt \textfonts % Leave some space at the very top of the page. \vglue\titlepagetopglue % No rule at page bottom unless we print one at the top with @title. \finishedtitlepagetrue % % Most title ``pages'' are actually two pages long, with space % at the top of the second. We don't want the ragged left on the second. \let\oldpage = \page \def\page{% \iffinishedtitlepage\else \finishtitlepage \fi \let\page = \oldpage \page \null }% } \def\Etitlepage{% \iffinishedtitlepage\else \finishtitlepage \fi % It is important to do the page break before ending the group, % because the headline and footline are only empty inside the group. % If we use the new definition of \page, we always get a blank page % after the title page, which we certainly don't want. \oldpage \endgroup % % Need this before the \...aftertitlepage checks so that if they are % in effect the toc pages will come out with page numbers. \HEADINGSon % % If they want short, they certainly want long too. \ifsetshortcontentsaftertitlepage \shortcontents \contents \global\let\shortcontents = \relax \global\let\contents = \relax \fi % \ifsetcontentsaftertitlepage \contents \global\let\contents = \relax \global\let\shortcontents = \relax \fi } \def\finishtitlepage{% \vskip4pt \hrule height 2pt width \hsize \vskip\titlepagebottomglue \finishedtitlepagetrue } % Settings used for typesetting titles: no hyphenation, no indentation, % don't worry much about spacing, ragged right. This should be used % inside a \vbox, and fonts need to be set appropriately first. Because % it is always used for titles, nothing else, we call \rmisbold. \par % should be specified before the end of the \vbox, since a vbox is a group. % \def\raggedtitlesettings{% \rmisbold \hyphenpenalty=10000 \parindent=0pt \tolerance=5000 \ptexraggedright } % Macros to be used within @titlepage: \let\subtitlerm=\tenrm \def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines} \parseargdef\title{% \checkenv\titlepage \vbox{\titlefonts \raggedtitlesettings #1\par}% % print a rule at the page bottom also. \finishedtitlepagefalse \vskip4pt \hrule height 4pt width \hsize \vskip4pt } \parseargdef\subtitle{% \checkenv\titlepage {\subtitlefont \rightline{#1}}% } % @author should come last, but may come many times. % It can also be used inside @quotation. % \parseargdef\author{% \def\temp{\quotation}% \ifx\thisenv\temp \def\quotationauthor{#1}% printed in \Equotation. \else \checkenv\titlepage \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi {\secfonts\rmisbold \leftline{#1}}% \fi } % Set up page headings and footings. \let\thispage=\folio \newtoks\evenheadline % headline on even pages \newtoks\oddheadline % headline on odd pages \newtoks\evenfootline % footline on even pages \newtoks\oddfootline % footline on odd pages % Now make TeX use those variables \headline={{\textfonts\rm \ifodd\pageno \the\oddheadline \else \the\evenheadline \fi}} \footline={{\textfonts\rm \ifodd\pageno \the\oddfootline \else \the\evenfootline \fi}\HEADINGShook} \let\HEADINGShook=\relax % Commands to set those variables. % For example, this is what @headings on does % @evenheading @thistitle|@thispage|@thischapter % @oddheading @thischapter|@thispage|@thistitle % @evenfooting @thisfile|| % @oddfooting ||@thisfile \def\evenheading{\parsearg\evenheadingxxx} \def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish} \def\evenheadingyyy #1\|#2\|#3\|#4\finish{% \global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddheading{\parsearg\oddheadingxxx} \def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish} \def\oddheadingyyy #1\|#2\|#3\|#4\finish{% \global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}% \def\evenfooting{\parsearg\evenfootingxxx} \def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish} \def\evenfootingyyy #1\|#2\|#3\|#4\finish{% \global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}} \def\oddfooting{\parsearg\oddfootingxxx} \def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish} \def\oddfootingyyy #1\|#2\|#3\|#4\finish{% \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}% % % Leave some space for the footline. Hopefully ok to assume % @evenfooting will not be used by itself. \global\advance\pageheight by -12pt \global\advance\vsize by -12pt } \parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}} % @evenheadingmarks top \thischapter <- chapter at the top of a page % @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page % % The same set of arguments for: % % @oddheadingmarks % @evenfootingmarks % @oddfootingmarks % @everyheadingmarks % @everyfootingmarks \def\evenheadingmarks{\headingmarks{even}{heading}} \def\oddheadingmarks{\headingmarks{odd}{heading}} \def\evenfootingmarks{\headingmarks{even}{footing}} \def\oddfootingmarks{\headingmarks{odd}{footing}} \def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1} \headingmarks{odd}{heading}{#1} } \def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1} \headingmarks{odd}{footing}{#1} } % #1 = even/odd, #2 = heading/footing, #3 = top/bottom. \def\headingmarks#1#2#3 {% \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname \global\expandafter\let\csname get#1#2marks\endcsname \temp } \everyheadingmarks bottom \everyfootingmarks bottom % @headings double turns headings on for double-sided printing. % @headings single turns headings on for single-sided printing. % @headings off turns them off. % @headings on same as @headings double, retained for compatibility. % @headings after turns on double-sided headings after this page. % @headings doubleafter turns on double-sided headings after this page. % @headings singleafter turns on single-sided headings after this page. % By default, they are off at the start of a document, % and turned `on' after @end titlepage. \def\headings #1 {\csname HEADINGS#1\endcsname} \def\headingsoff{% non-global headings elimination \evenheadline={\hfil}\evenfootline={\hfil}% \oddheadline={\hfil}\oddfootline={\hfil}% } \def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting \HEADINGSoff % it's the default % When we turn headings on, set the page number to 1. % For double-sided printing, put current file name in lower left corner, % chapter name on inside top of right hand pages, document % title on inside top of left hand pages, and page numbers on outside top % edge of all pages. \def\HEADINGSdouble{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \let\contentsalignmacro = \chappager % For single-sided printing, chapter title goes across top left of page, % page number on top right. \def\HEADINGSsingle{% \global\pageno=1 \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } \def\HEADINGSon{\HEADINGSdouble} \def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex} \let\HEADINGSdoubleafter=\HEADINGSafter \def\HEADINGSdoublex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\folio\hfil\thistitle}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chapoddpage } \def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex} \def\HEADINGSsinglex{% \global\evenfootline={\hfil} \global\oddfootline={\hfil} \global\evenheadline={\line{\thischapter\hfil\folio}} \global\oddheadline={\line{\thischapter\hfil\folio}} \global\let\contentsalignmacro = \chappager } % Subroutines used in generating headings % This produces Day Month Year style of output. % Only define if not already defined, in case a txi-??.tex file has set % up a different format (e.g., txi-cs.tex does this). \ifx\today\thisisundefined \def\today{% \number\day\space \ifcase\month \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec \fi \space\number\year} \fi % @settitle line... specifies the title of the document, for headings. % It generates no output of its own. \def\thistitle{\putwordNoTitle} \def\settitle{\parsearg{\gdef\thistitle}} \message{tables,} % Tables -- @table, @ftable, @vtable, @item(x). % default indentation of table text \newdimen\tableindent \tableindent=.8in % default indentation of @itemize and @enumerate text \newdimen\itemindent \itemindent=.3in % margin between end of table item and start of table text. \newdimen\itemmargin \itemmargin=.1in % used internally for \itemindent minus \itemmargin \newdimen\itemmax % Note @table, @ftable, and @vtable define @item, @itemx, etc., with % these defs. % They also define \itemindex % to index the item name in whatever manner is desired (perhaps none). \newif\ifitemxneedsnegativevskip \def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi} \def\internalBitem{\smallbreak \parsearg\itemzzz} \def\internalBitemx{\itemxpar \parsearg\itemzzz} \def\itemzzz #1{\begingroup % \advance\hsize by -\rightskip \advance\hsize by -\tableindent \setbox0=\hbox{\itemindicate{#1}}% \itemindex{#1}% \nobreak % This prevents a break before @itemx. % % If the item text does not fit in the space we have, put it on a line % by itself, and do not allow a page break either before or after that % line. We do not start a paragraph here because then if the next % command is, e.g., @kindex, the whatsit would get put into the % horizontal list on a line by itself, resulting in extra blank space. \ifdim \wd0>\itemmax % % Make this a paragraph so we get the \parskip glue and wrapping, % but leave it ragged-right. \begingroup \advance\leftskip by-\tableindent \advance\hsize by\tableindent \advance\rightskip by0pt plus1fil\relax \leavevmode\unhbox0\par \endgroup % % We're going to be starting a paragraph, but we don't want the % \parskip glue -- logically it's part of the @item we just started. \nobreak \vskip-\parskip % % Stop a page break at the \parskip glue coming up. However, if % what follows is an environment such as @example, there will be no % \parskip glue; then the negative vskip we just inserted would % cause the example and the item to crash together. So we use this % bizarre value of 10001 as a signal to \aboveenvbreak to insert % \parskip glue after all. Section titles are handled this way also. % \penalty 10001 \endgroup \itemxneedsnegativevskipfalse \else % The item text fits into the space. Start a paragraph, so that the % following text (if any) will end up on the same line. \noindent % Do this with kerns and \unhbox so that if there is a footnote in % the item text, it can migrate to the main vertical list and % eventually be printed. \nobreak\kern-\tableindent \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0 \unhbox0 \nobreak\kern\dimen0 \endgroup \itemxneedsnegativevskiptrue \fi } \def\item{\errmessage{@item while not in a list environment}} \def\itemx{\errmessage{@itemx while not in a list environment}} % @table, @ftable, @vtable. \envdef\table{% \let\itemindex\gobble \tablecheck{table}% } \envdef\ftable{% \def\itemindex ##1{\doind {fn}{\code{##1}}}% \tablecheck{ftable}% } \envdef\vtable{% \def\itemindex ##1{\doind {vr}{\code{##1}}}% \tablecheck{vtable}% } \def\tablecheck#1{% \ifnum \the\catcode`\^^M=\active \endgroup \errmessage{This command won't work in this context; perhaps the problem is that we are \inenvironment\thisenv}% \def\next{\doignore{#1}}% \else \let\next\tablex \fi \next } \def\tablex#1{% \def\itemindicate{#1}% \parsearg\tabley } \def\tabley#1{% {% \makevalueexpandable \edef\temp{\noexpand\tablez #1\space\space\space}% \expandafter }\temp \endtablez } \def\tablez #1 #2 #3 #4\endtablez{% \aboveenvbreak \ifnum 0#1>0 \advance \leftskip by #1\mil \fi \ifnum 0#2>0 \tableindent=#2\mil \fi \ifnum 0#3>0 \advance \rightskip by #3\mil \fi \itemmax=\tableindent \advance \itemmax by -\itemmargin \advance \leftskip by \tableindent \exdentamount=\tableindent \parindent = 0pt \parskip = \smallskipamount \ifdim \parskip=0pt \parskip=2pt \fi \let\item = \internalBitem \let\itemx = \internalBitemx } \def\Etable{\endgraf\afterenvbreak} \let\Eftable\Etable \let\Evtable\Etable \let\Eitemize\Etable \let\Eenumerate\Etable % This is the counter used by @enumerate, which is really @itemize \newcount \itemno \envdef\itemize{\parsearg\doitemize} \def\doitemize#1{% \aboveenvbreak \itemmax=\itemindent \advance\itemmax by -\itemmargin \advance\leftskip by \itemindent \exdentamount=\itemindent \parindent=0pt \parskip=\smallskipamount \ifdim\parskip=0pt \parskip=2pt \fi % % Try typesetting the item mark that if the document erroneously says % something like @itemize @samp (intending @table), there's an error % right away at the @itemize. It's not the best error message in the % world, but it's better than leaving it to the @item. This means if % the user wants an empty mark, they have to say @w{} not just @w. \def\itemcontents{#1}% \setbox0 = \hbox{\itemcontents}% % % @itemize with no arg is equivalent to @itemize @bullet. \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi % \let\item=\itemizeitem } % Definition of @item while inside @itemize and @enumerate. % \def\itemizeitem{% \advance\itemno by 1 % for enumerations {\let\par=\endgraf \smallbreak}% reasonable place to break {% % If the document has an @itemize directly after a section title, a % \nobreak will be last on the list, and \sectionheading will have % done a \vskip-\parskip. In that case, we don't want to zero % parskip, or the item text will crash with the heading. On the % other hand, when there is normal text preceding the item (as there % usually is), we do want to zero parskip, or there would be too much % space. In that case, we won't have a \nobreak before. At least % that's the theory. \ifnum\lastpenalty<10000 \parskip=0in \fi \noindent \hbox to 0pt{\hss \itemcontents \kern\itemmargin}% % \vadjust{\penalty 1200}}% not good to break after first line of item. \flushcr } % \splitoff TOKENS\endmark defines \first to be the first token in % TOKENS, and \rest to be the remainder. % \def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}% % Allow an optional argument of an uppercase letter, lowercase letter, % or number, to specify the first label in the enumerated list. No % argument is the same as `1'. % \envparseargdef\enumerate{\enumeratey #1 \endenumeratey} \def\enumeratey #1 #2\endenumeratey{% % If we were given no argument, pretend we were given `1'. \def\thearg{#1}% \ifx\thearg\empty \def\thearg{1}\fi % % Detect if the argument is a single token. If so, it might be a % letter. Otherwise, the only valid thing it can be is a number. % (We will always have one token, because of the test we just made. % This is a good thing, since \splitoff doesn't work given nothing at % all -- the first parameter is undelimited.) \expandafter\splitoff\thearg\endmark \ifx\rest\empty % Only one token in the argument. It could still be anything. % A ``lowercase letter'' is one whose \lccode is nonzero. % An ``uppercase letter'' is one whose \lccode is both nonzero, and % not equal to itself. % Otherwise, we assume it's a number. % % We need the \relax at the end of the \ifnum lines to stop TeX from % continuing to look for a <number>. % \ifnum\lccode\expandafter`\thearg=0\relax \numericenumerate % a number (we hope) \else % It's a letter. \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax \lowercaseenumerate % lowercase letter \else \uppercaseenumerate % uppercase letter \fi \fi \else % Multiple tokens in the argument. We hope it's a number. \numericenumerate \fi } % An @enumerate whose labels are integers. The starting integer is % given in \thearg. % \def\numericenumerate{% \itemno = \thearg \startenumeration{\the\itemno}% } % The starting (lowercase) letter is in \thearg. \def\lowercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more lowercase letters in @enumerate; get a bigger alphabet}% \fi \char\lccode\itemno }% } % The starting (uppercase) letter is in \thearg. \def\uppercaseenumerate{% \itemno = \expandafter`\thearg \startenumeration{% % Be sure we're not beyond the end of the alphabet. \ifnum\itemno=0 \errmessage{No more uppercase letters in @enumerate; get a bigger alphabet} \fi \char\uccode\itemno }% } % Call \doitemize, adding a period to the first argument and supplying the % common last two arguments. Also subtract one from the initial value in % \itemno, since @item increments \itemno. % \def\startenumeration#1{% \advance\itemno by -1 \doitemize{#1.}\flushcr } % @alphaenumerate and @capsenumerate are abbreviations for giving an arg % to @enumerate. % \def\alphaenumerate{\enumerate{a}} \def\capsenumerate{\enumerate{A}} \def\Ealphaenumerate{\Eenumerate} \def\Ecapsenumerate{\Eenumerate} % @multitable macros % Amy Hendrickson, 8/18/94, 3/6/96 % % @multitable ... @end multitable will make as many columns as desired. % Contents of each column will wrap at width given in preamble. Width % can be specified either with sample text given in a template line, % or in percent of \hsize, the current width of text on page. % Table can continue over pages but will only break between lines. % To make preamble: % % Either define widths of columns in terms of percent of \hsize: % @multitable @columnfractions .25 .3 .45 % @item ... % % Numbers following @columnfractions are the percent of the total % current hsize to be used for each column. You may use as many % columns as desired. % Or use a template: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item ... % using the widest term desired in each column. % Each new table line starts with @item, each subsequent new column % starts with @tab. Empty columns may be produced by supplying @tab's % with nothing between them for as many times as empty columns are needed, % ie, @tab@tab@tab will produce two empty columns. % @item, @tab do not need to be on their own lines, but it will not hurt % if they are. % Sample multitable: % @multitable {Column 1 template} {Column 2 template} {Column 3 template} % @item first col stuff @tab second col stuff @tab third col % @item % first col stuff % @tab % second col stuff % @tab % third col % @item first col stuff @tab second col stuff % @tab Many paragraphs of text may be used in any column. % % They will wrap at the width determined by the template. % @item@tab@tab This will be in third column. % @end multitable % Default dimensions may be reset by user. % @multitableparskip is vertical space between paragraphs in table. % @multitableparindent is paragraph indent in table. % @multitablecolmargin is horizontal space to be left between columns. % @multitablelinespace is space to leave between table items, baseline % to baseline. % 0pt means it depends on current normal line spacing. % \newskip\multitableparskip \newskip\multitableparindent \newdimen\multitablecolspace \newskip\multitablelinespace \multitableparskip=0pt \multitableparindent=6pt \multitablecolspace=12pt \multitablelinespace=0pt % Macros used to set up halign preamble: % \let\endsetuptable\relax \def\xendsetuptable{\endsetuptable} \let\columnfractions\relax \def\xcolumnfractions{\columnfractions} \newif\ifsetpercent % #1 is the @columnfraction, usually a decimal number like .5, but might % be just 1. We just use it, whatever it is. % \def\pickupwholefraction#1 {% \global\advance\colcount by 1 \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}% \setuptable } \newcount\colcount \def\setuptable#1{% \def\firstarg{#1}% \ifx\firstarg\xendsetuptable \let\go = \relax \else \ifx\firstarg\xcolumnfractions \global\setpercenttrue \else \ifsetpercent \let\go\pickupwholefraction \else \global\advance\colcount by 1 \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a % separator; typically that is always in the input, anyway. \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}% \fi \fi \ifx\go\pickupwholefraction % Put the argument back for the \pickupwholefraction call, so % we'll always have a period there to be parsed. \def\go{\pickupwholefraction#1}% \else \let\go = \setuptable \fi% \fi \go } % multitable-only commands. % % @headitem starts a heading row, which we typeset in bold. % Assignments have to be global since we are inside the implicit group % of an alignment entry. \everycr resets \everytab so we don't have to % undo it ourselves. \def\headitemfont{\b}% for people to use in the template row; not changeable \def\headitem{% \checkenv\multitable \crcr \global\everytab={\bf}% can't use \headitemfont since the parsing differs \the\everytab % for the first item }% % % A \tab used to include \hskip1sp. But then the space in a template % line is not enough. That is bad. So let's go back to just `&' until % we again encounter the problem the 1sp was intended to solve. % --karl, nathan@acm.org, 20apr99. \def\tab{\checkenv\multitable &\the\everytab}% % @multitable ... @end multitable definitions: % \newtoks\everytab % insert after every tab. % \envdef\multitable{% \vskip\parskip \startsavinginserts % % @item within a multitable starts a normal row. % We use \def instead of \let so that if one of the multitable entries % contains an @itemize, we don't choke on the \item (seen as \crcr aka % \endtemplate) expanding \doitemize. \def\item{\crcr}% % \tolerance=9500 \hbadness=9500 \setmultitablespacing \parskip=\multitableparskip \parindent=\multitableparindent \overfullrule=0pt \global\colcount=0 % \everycr = {% \noalign{% \global\everytab={}% \global\colcount=0 % Reset the column counter. % Check for saved footnotes, etc. \checkinserts % Keeps underfull box messages off when table breaks over pages. %\filbreak % Maybe so, but it also creates really weird page breaks when the % table breaks over pages. Wouldn't \vfil be better? Wait until the % problem manifests itself, so it can be fixed for real --karl. }% }% % \parsearg\domultitable } \def\domultitable#1{% % To parse everything between @multitable and @item: \setuptable#1 \endsetuptable % % This preamble sets up a generic column definition, which will % be used as many times as user calls for columns. % \vtop will set a single line and will also let text wrap and % continue for many paragraphs if desired. \halign\bgroup &% \global\advance\colcount by 1 \multistrut \vtop{% % Use the current \colcount to find the correct column width: \hsize=\expandafter\csname col\the\colcount\endcsname % % In order to keep entries from bumping into each other % we will add a \leftskip of \multitablecolspace to all columns after % the first one. % % If a template has been used, we will add \multitablecolspace % to the width of each template entry. % % If the user has set preamble in terms of percent of \hsize we will % use that dimension as the width of the column, and the \leftskip % will keep entries from bumping into each other. Table will start at % left margin and final column will justify at right margin. % % Make sure we don't inherit \rightskip from the outer environment. \rightskip=0pt \ifnum\colcount=1 % The first column will be indented with the surrounding text. \advance\hsize by\leftskip \else \ifsetpercent \else % If user has not set preamble in terms of percent of \hsize % we will advance \hsize by \multitablecolspace. \advance\hsize by \multitablecolspace \fi % In either case we will make \leftskip=\multitablecolspace: \leftskip=\multitablecolspace \fi % Ignoring space at the beginning and end avoids an occasional spurious % blank line, when TeX decides to break the line at the space before the % box from the multistrut, so the strut ends up on a line by itself. % For example: % @multitable @columnfractions .11 .89 % @item @code{#} % @tab Legal holiday which is valid in major parts of the whole country. % Is automatically provided with highlighting sequences respectively % marking characters. \noindent\ignorespaces##\unskip\multistrut }\cr } \def\Emultitable{% \crcr \egroup % end the \halign \global\setpercentfalse } \def\setmultitablespacing{% \def\multistrut{\strut}% just use the standard line spacing % % Compute \multitablelinespace (if not defined by user) for use in % \multitableparskip calculation. We used define \multistrut based on % this, but (ironically) that caused the spacing to be off. % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100. \ifdim\multitablelinespace=0pt \setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip \global\advance\multitablelinespace by-\ht0 \fi % Test to see if parskip is larger than space between lines of % table. If not, do nothing. % If so, set to same dimension as multitablelinespace. \ifdim\multitableparskip>\multitablelinespace \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi% \ifdim\multitableparskip=0pt \global\multitableparskip=\multitablelinespace \global\advance\multitableparskip-7pt % to keep parskip somewhat smaller % than skip between lines in the table. \fi} \message{conditionals,} % @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext, % @ifnotxml always succeed. They currently do nothing; we don't % attempt to check whether the conditionals are properly nested. But we % have to remember that they are conditionals, so that @end doesn't % attempt to close an environment group. % \def\makecond#1{% \expandafter\let\csname #1\endcsname = \relax \expandafter\let\csname iscond.#1\endcsname = 1 } \makecond{iftex} \makecond{ifnotdocbook} \makecond{ifnothtml} \makecond{ifnotinfo} \makecond{ifnotplaintext} \makecond{ifnotxml} % Ignore @ignore, @ifhtml, @ifinfo, and the like. % \def\direntry{\doignore{direntry}} \def\documentdescription{\doignore{documentdescription}} \def\docbook{\doignore{docbook}} \def\html{\doignore{html}} \def\ifdocbook{\doignore{ifdocbook}} \def\ifhtml{\doignore{ifhtml}} \def\ifinfo{\doignore{ifinfo}} \def\ifnottex{\doignore{ifnottex}} \def\ifplaintext{\doignore{ifplaintext}} \def\ifxml{\doignore{ifxml}} \def\ignore{\doignore{ignore}} \def\menu{\doignore{menu}} \def\xml{\doignore{xml}} % Ignore text until a line `@end #1', keeping track of nested conditionals. % % A count to remember the depth of nesting. \newcount\doignorecount \def\doignore#1{\begingroup % Scan in ``verbatim'' mode: \obeylines \catcode`\@ = \other \catcode`\{ = \other \catcode`\} = \other % % Make sure that spaces turn into tokens that match what \doignoretext wants. \spaceisspace % % Count number of #1's that we've seen. \doignorecount = 0 % % Swallow text until we reach the matching `@end #1'. \dodoignore{#1}% } { \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source. \obeylines % % \gdef\dodoignore#1{% % #1 contains the command name as a string, e.g., `ifinfo'. % % Define a command to find the next `@end #1'. \long\def\doignoretext##1^^M@end #1{% \doignoretextyyy##1^^M@#1\_STOP_}% % % And this command to find another #1 command, at the beginning of a % line. (Otherwise, we would consider a line `@c @ifset', for % example, to count as an @ifset for nesting.) \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}% % % And now expand that command. \doignoretext ^^M% }% } \def\doignoreyyy#1{% \def\temp{#1}% \ifx\temp\empty % Nothing found. \let\next\doignoretextzzz \else % Found a nested condition, ... \advance\doignorecount by 1 \let\next\doignoretextyyy % ..., look for another. % If we're here, #1 ends with ^^M\ifinfo (for example). \fi \next #1% the token \_STOP_ is present just after this macro. } % We have to swallow the remaining "\_STOP_". % \def\doignoretextzzz#1{% \ifnum\doignorecount = 0 % We have just found the outermost @end. \let\next\enddoignore \else % Still inside a nested condition. \advance\doignorecount by -1 \let\next\doignoretext % Look for the next @end. \fi \next } % Finish off ignored text. { \obeylines% % Ignore anything after the last `@end #1'; this matters in verbatim % environments, where otherwise the newline after an ignored conditional % would result in a blank line in the output. \gdef\enddoignore#1^^M{\endgroup\ignorespaces}% } % @set VAR sets the variable VAR to an empty value. % @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE. % % Since we want to separate VAR from REST-OF-LINE (which might be % empty), we can't just use \parsearg; we have to insert a space of our % own to delimit the rest of the line, and then take it out again if we % didn't need it. % We rely on the fact that \parsearg sets \catcode`\ =10. % \parseargdef\set{\setyyy#1 \endsetyyy} \def\setyyy#1 #2\endsetyyy{% {% \makevalueexpandable \def\temp{#2}% \edef\next{\gdef\makecsname{SET#1}}% \ifx\temp\empty \next{}% \else \setzzz#2\endsetzzz \fi }% } % Remove the trailing space \setxxx inserted. \def\setzzz#1 \endsetzzz{\next{#1}} % @clear VAR clears (i.e., unsets) the variable VAR. % \parseargdef\clear{% {% \makevalueexpandable \global\expandafter\let\csname SET#1\endcsname=\relax }% } % @value{foo} gets the text saved in variable foo. \def\value{\begingroup\makevalueexpandable\valuexxx} \def\valuexxx#1{\expandablevalue{#1}\endgroup} { \catcode`\- = \active \catcode`\_ = \active % \gdef\makevalueexpandable{% \let\value = \expandablevalue % We don't want these characters active, ... \catcode`\-=\other \catcode`\_=\other % ..., but we might end up with active ones in the argument if % we're called from @code, as @code{@value{foo-bar_}}, though. % So \let them to their normal equivalents. \let-\normaldash \let_\normalunderscore } } % We have this subroutine so that we can handle at least some @value's % properly in indexes (we call \makevalueexpandable in \indexdummies). % The command has to be fully expandable (if the variable is set), since % the result winds up in the index file. This means that if the % variable's value contains other Texinfo commands, it's almost certain % it will fail (although perhaps we could fix that with sufficient work % to do a one-level expansion on the result, instead of complete). % \def\expandablevalue#1{% \expandafter\ifx\csname SET#1\endcsname\relax {[No value for ``#1'']}% \message{Variable `#1', used in @value, is not set.}% \else \csname SET#1\endcsname \fi } % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined % with @set. % % To get special treatment of `@end ifset,' call \makeond and the redefine. % \makecond{ifset} \def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}} \def\doifset#1#2{% {% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname SET#2\endcsname\relax #1% If not set, redefine \next. \fi \expandafter }\next } \def\ifsetfail{\doignore{ifset}} % @ifclear VAR ... @end executes the `...' iff VAR has never been % defined with @set, or has been undefined with @clear. % % The `\else' inside the `\doifset' parameter is a trick to reuse the % above code: if the variable is not set, do nothing, if it is set, % then redefine \next to \ifclearfail. % \makecond{ifclear} \def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}} \def\ifclearfail{\doignore{ifclear}} % @ifcommandisdefined CMD ... @end executes the `...' if CMD (written % without the @) is in fact defined. We can only feasibly check at the % TeX level, so something like `mathcode' is going to considered % defined even though it is not a Texinfo command. % \makecond{ifcommanddefined} \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}} % \def\doifcmddefined#1#2{{% \makevalueexpandable \let\next=\empty \expandafter\ifx\csname #2\endcsname\relax #1% If not defined, \let\next as above. \fi \expandafter }\next } \def\ifcmddefinedfail{\doignore{ifcommanddefined}} % @ifcommandnotdefined CMD ... handled similar to @ifclear above. \makecond{ifcommandnotdefined} \def\ifcommandnotdefined{% \parsearg{\doifcmddefined{\else \let\next=\ifcmdnotdefinedfail}}} \def\ifcmdnotdefinedfail{\doignore{ifcommandnotdefined}} % Set the `txicommandconditionals' variable, so documents have a way to % test if the @ifcommand...defined conditionals are available. \set txicommandconditionals % @dircategory CATEGORY -- specify a category of the dir file % which this file should belong to. Ignore this in TeX. \let\dircategory=\comment % @defininfoenclose. \let\definfoenclose=\comment \message{indexing,} % Index generation facilities % Define \newwrite to be identical to plain tex's \newwrite % except not \outer, so it can be used within macros and \if's. \edef\newwrite{\makecsname{ptexnewwrite}} % \newindex {foo} defines an index named foo. % It automatically defines \fooindex such that % \fooindex ...rest of line... puts an entry in the index foo. % It also defines \fooindfile to be the number of the output channel for % the file that accumulates this index. The file's extension is foo. % The name of an index should be no more than 2 characters long % for the sake of vms. % \def\newindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 % Open the file \fi \expandafter\xdef\csname#1index\endcsname{% % Define @#1index \noexpand\doindex{#1}} } % @defindex foo == \newindex{foo} % \def\defindex{\parsearg\newindex} % Define @defcodeindex, like @defindex except put all entries in @code. % \def\defcodeindex{\parsearg\newcodeindex} % \def\newcodeindex#1{% \iflinks \expandafter\newwrite \csname#1indfile\endcsname \openout \csname#1indfile\endcsname \jobname.#1 \fi \expandafter\xdef\csname#1index\endcsname{% \noexpand\docodeindex{#1}}% } % @synindex foo bar makes index foo feed into index bar. % Do this instead of @defindex foo if you don't want it as a separate index. % % @syncodeindex foo bar similar, but put all entries made for index foo % inside @code. % \def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}} \def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}} % #1 is \doindex or \docodeindex, #2 the index getting redefined (foo), % #3 the target index (bar). \def\dosynindex#1#2#3{% % Only do \closeout if we haven't already done it, else we'll end up % closing the target index. \expandafter \ifx\csname donesynindex#2\endcsname \relax % The \closeout helps reduce unnecessary open files; the limit on the % Acorn RISC OS is a mere 16 files. \expandafter\closeout\csname#2indfile\endcsname \expandafter\let\csname donesynindex#2\endcsname = 1 \fi % redefine \fooindfile: \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname \expandafter\let\csname#2indfile\endcsname=\temp % redefine \fooindex: \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}% } % Define \doindex, the driver for all \fooindex macros. % Argument #1 is generated by the calling \fooindex macro, % and it is "foo", the name of the index. % \doindex just uses \parsearg; it calls \doind for the actual work. % This is because \doind is more useful to call from other macros. % There is also \dosubind {index}{topic}{subtopic} % which makes an entry in a two-level index such as the operation index. \def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer} \def\singleindexer #1{\doind{\indexname}{#1}} % like the previous two, but they put @code around the argument. \def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer} \def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}} % Take care of Texinfo commands that can appear in an index entry. % Since there are some commands we want to expand, and others we don't, % we have to laboriously prevent expansion for those that we don't. % \def\indexdummies{% \escapechar = `\\ % use backslash in output files. \def\@{@}% change to @@ when we switch to @ as escape char in index files. \def\ {\realbackslash\space }% % % Need these unexpandable (because we define \tt as a dummy) % definitions when @{ or @} appear in index entry text. Also, more % complicated, when \tex is in effect and \{ is a \delimiter again. % We can't use \lbracecmd and \rbracecmd because texindex assumes % braces and backslashes are used only as delimiters. Perhaps we % should define @lbrace and @rbrace commands a la @comma. \def\{{{\tt\char123}}% \def\}{{\tt\char125}}% % % I don't entirely understand this, but when an index entry is % generated from a macro call, the \endinput which \scanmacro inserts % causes processing to be prematurely terminated. This is, % apparently, because \indexsorttmp is fully expanded, and \endinput % is an expandable command. The redefinition below makes \endinput % disappear altogether for that purpose -- although logging shows that % processing continues to some further point. On the other hand, it % seems \endinput does not hurt in the printed index arg, since that % is still getting written without apparent harm. % % Sample source (mac-idx3.tex, reported by Graham Percival to % help-texinfo, 22may06): % @macro funindex {WORD} % @findex xyz % @end macro % ... % @funindex commtest % % The above is not enough to reproduce the bug, but it gives the flavor. % % Sample whatsit resulting: % .@write3{\entry{xyz}{@folio }{@code {xyz@endinput }}} % % So: \let\endinput = \empty % % Do the redefinitions. \commondummies } % For the aux and toc files, @ is the escape character. So we want to % redefine everything using @ as the escape character (instead of % \realbackslash, still used for index files). When everything uses @, % this will be simpler. % \def\atdummies{% \def\@{@@}% \def\ {@ }% \let\{ = \lbraceatcmd \let\} = \rbraceatcmd % % Do the redefinitions. \commondummies \otherbackslash } % Called from \indexdummies and \atdummies. % \def\commondummies{% % % \definedummyword defines \#1 as \string\#1\space, thus effectively % preventing its expansion. This is used only for control words, % not control letters, because the \space would be incorrect for % control characters, but is needed to separate the control word % from whatever follows. % % For control letters, we have \definedummyletter, which omits the % space. % % These can be used both for control words that take an argument and % those that do not. If it is followed by {arg} in the input, then % that will dutifully get written to the index (or wherever). % \def\definedummyword ##1{\def##1{\string##1\space}}% \def\definedummyletter##1{\def##1{\string##1}}% \let\definedummyaccent\definedummyletter % \commondummiesnofonts % \definedummyletter\_% \definedummyletter\-% % % Non-English letters. \definedummyword\AA \definedummyword\AE \definedummyword\DH \definedummyword\L \definedummyword\O \definedummyword\OE \definedummyword\TH \definedummyword\aa \definedummyword\ae \definedummyword\dh \definedummyword\exclamdown \definedummyword\l \definedummyword\o \definedummyword\oe \definedummyword\ordf \definedummyword\ordm \definedummyword\questiondown \definedummyword\ss \definedummyword\th % % Although these internal commands shouldn't show up, sometimes they do. \definedummyword\bf \definedummyword\gtr \definedummyword\hat \definedummyword\less \definedummyword\sf \definedummyword\sl \definedummyword\tclose \definedummyword\tt % \definedummyword\LaTeX \definedummyword\TeX % % Assorted special characters. \definedummyword\arrow \definedummyword\bullet \definedummyword\comma \definedummyword\copyright \definedummyword\registeredsymbol \definedummyword\dots \definedummyword\enddots \definedummyword\entrybreak \definedummyword\equiv \definedummyword\error \definedummyword\euro \definedummyword\expansion \definedummyword\geq \definedummyword\guillemetleft \definedummyword\guillemetright \definedummyword\guilsinglleft \definedummyword\guilsinglright \definedummyword\lbracechar \definedummyword\leq \definedummyword\minus \definedummyword\ogonek \definedummyword\pounds \definedummyword\point \definedummyword\print \definedummyword\quotedblbase \definedummyword\quotedblleft \definedummyword\quotedblright \definedummyword\quoteleft \definedummyword\quoteright \definedummyword\quotesinglbase \definedummyword\rbracechar \definedummyword\result \definedummyword\textdegree % % We want to disable all macros so that they are not expanded by \write. \macrolist % \normalturnoffactive % % Handle some cases of @value -- where it does not contain any % (non-fully-expandable) commands. \makevalueexpandable } % \commondummiesnofonts: common to \commondummies and \indexnofonts. % \def\commondummiesnofonts{% % Control letters and accents. \definedummyletter\!% \definedummyaccent\"% \definedummyaccent\'% \definedummyletter\*% \definedummyaccent\,% \definedummyletter\.% \definedummyletter\/% \definedummyletter\:% \definedummyaccent\=% \definedummyletter\?% \definedummyaccent\^% \definedummyaccent\`% \definedummyaccent\~% \definedummyword\u \definedummyword\v \definedummyword\H \definedummyword\dotaccent \definedummyword\ogonek \definedummyword\ringaccent \definedummyword\tieaccent \definedummyword\ubaraccent \definedummyword\udotaccent \definedummyword\dotless % % Texinfo font commands. \definedummyword\b \definedummyword\i \definedummyword\r \definedummyword\sansserif \definedummyword\sc \definedummyword\slanted \definedummyword\t % % Commands that take arguments. \definedummyword\abbr \definedummyword\acronym \definedummyword\anchor \definedummyword\cite \definedummyword\code \definedummyword\command \definedummyword\dfn \definedummyword\dmn \definedummyword\email \definedummyword\emph \definedummyword\env \definedummyword\file \definedummyword\image \definedummyword\indicateurl \definedummyword\inforef \definedummyword\kbd \definedummyword\key \definedummyword\math \definedummyword\option \definedummyword\pxref \definedummyword\ref \definedummyword\samp \definedummyword\strong \definedummyword\tie \definedummyword\uref \definedummyword\url \definedummyword\var \definedummyword\verb \definedummyword\w \definedummyword\xref } % \indexnofonts is used when outputting the strings to sort the index % by, and when constructing control sequence names. It eliminates all % control sequences and just writes whatever the best ASCII sort string % would be for a given command (usually its argument). % \def\indexnofonts{% % Accent commands should become @asis. \def\definedummyaccent##1{\let##1\asis}% % We can just ignore other control letters. \def\definedummyletter##1{\let##1\empty}% % All control words become @asis by default; overrides below. \let\definedummyword\definedummyaccent % \commondummiesnofonts % % Don't no-op \tt, since it isn't a user-level command % and is used in the definitions of the active chars like <, >, |, etc. % Likewise with the other plain tex font commands. %\let\tt=\asis % \def\ { }% \def\@{@}% \def\_{\normalunderscore}% \def\-{}% @- shouldn't affect sorting % % Unfortunately, texindex is not prepared to handle braces in the % content at all. So for index sorting, we map @{ and @} to strings % starting with |, since that ASCII character is between ASCII { and }. \def\{{|a}% \def\lbracechar{|a}% % \def\}{|b}% \def\rbracechar{|b}% % % Non-English letters. \def\AA{AA}% \def\AE{AE}% \def\DH{DZZ}% \def\L{L}% \def\OE{OE}% \def\O{O}% \def\TH{ZZZ}% \def\aa{aa}% \def\ae{ae}% \def\dh{dzz}% \def\exclamdown{!}% \def\l{l}% \def\oe{oe}% \def\ordf{a}% \def\ordm{o}% \def\o{o}% \def\questiondown{?}% \def\ss{ss}% \def\th{zzz}% % \def\LaTeX{LaTeX}% \def\TeX{TeX}% % % Assorted special characters. % (The following {} will end up in the sort string, but that's ok.) \def\arrow{->}% \def\bullet{bullet}% \def\comma{,}% \def\copyright{copyright}% \def\dots{...}% \def\enddots{...}% \def\equiv{==}% \def\error{error}% \def\euro{euro}% \def\expansion{==>}% \def\geq{>=}% \def\guillemetleft{<<}% \def\guillemetright{>>}% \def\guilsinglleft{<}% \def\guilsinglright{>}% \def\leq{<=}% \def\minus{-}% \def\point{.}% \def\pounds{pounds}% \def\print{-|}% \def\quotedblbase{"}% \def\quotedblleft{"}% \def\quotedblright{"}% \def\quoteleft{`}% \def\quoteright{'}% \def\quotesinglbase{,}% \def\registeredsymbol{R}% \def\result{=>}% \def\textdegree{o}% % \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax \else \indexlquoteignore \fi % % We need to get rid of all macros, leaving only the arguments (if present). % Of course this is not nearly correct, but it is the best we can do for now. % makeinfo does not expand macros in the argument to @deffn, which ends up % writing an index entry, and texindex isn't prepared for an index sort entry % that starts with \. % % Since macro invocations are followed by braces, we can just redefine them % to take a single TeX argument. The case of a macro invocation that % goes to end-of-line is not handled. % \macrolist } % Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us % ignore left quotes in the sort term. {\catcode`\`=\active \gdef\indexlquoteignore{\let`=\empty}} \let\indexbackslash=0 %overridden during \printindex. \let\SETmarginindex=\relax % put index entries in margin (undocumented)? % Most index entries go through here, but \dosubind is the general case. % #1 is the index name, #2 is the entry text. \def\doind#1#2{\dosubind{#1}{#2}{}} % Workhorse for all \fooindexes. % #1 is name of index, #2 is stuff to put there, #3 is subentry -- % empty if called from \doind, as we usually are (the main exception % is with most defuns, which call us directly). % \def\dosubind#1#2#3{% \iflinks {% % Store the main index entry text (including the third arg). \toks0 = {#2}% % If third arg is present, precede it with a space. \def\thirdarg{#3}% \ifx\thirdarg\empty \else \toks0 = \expandafter{\the\toks0 \space #3}% \fi % \edef\writeto{\csname#1indfile\endcsname}% % \safewhatsit\dosubindwrite }% \fi } % Write the entry in \toks0 to the index file: % \def\dosubindwrite{% % Put the index entry in the margin if desired. \ifx\SETmarginindex\relax\else \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}% \fi % % Remember, we are within a group. \indexdummies % Must do this here, since \bf, etc expand at this stage \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now % so it will be output as is; and it will print as backslash. % % Process the index entry with all font commands turned off, to % get the string to sort by. {\indexnofonts \edef\temp{\the\toks0}% need full expansion \xdef\indexsorttmp{\temp}% }% % % Set up the complete index entry, with both the sort key and % the original text, including any font commands. We write % three arguments to \entry to the .?? file (four in the % subentry case), texindex reduces to two when writing the .??s % sorted result. \edef\temp{% \write\writeto{% \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}% }% \temp } % Take care of unwanted page breaks/skips around a whatsit: % % If a skip is the last thing on the list now, preserve it % by backing up by \lastskip, doing the \write, then inserting % the skip again. Otherwise, the whatsit generated by the % \write or \pdfdest will make \lastskip zero. The result is that % sequences like this: % @end defun % @tindex whatever % @defun ... % will have extra space inserted, because the \medbreak in the % start of the @defun won't see the skip inserted by the @end of % the previous defun. % % But don't do any of this if we're not in vertical mode. We % don't want to do a \vskip and prematurely end a paragraph. % % Avoid page breaks due to these extra skips, too. % % But wait, there is a catch there: % We'll have to check whether \lastskip is zero skip. \ifdim is not % sufficient for this purpose, as it ignores stretch and shrink parts % of the skip. The only way seems to be to check the textual % representation of the skip. % % The following is almost like \def\zeroskipmacro{0.0pt} except that % the ``p'' and ``t'' characters have catcode \other, not 11 (letter). % \edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname} % \newskip\whatsitskip \newcount\whatsitpenalty % % ..., ready, GO: % \def\safewhatsit#1{\ifhmode #1% \else % \lastskip and \lastpenalty cannot both be nonzero simultaneously. \whatsitskip = \lastskip \edef\lastskipmacro{\the\lastskip}% \whatsitpenalty = \lastpenalty % % If \lastskip is nonzero, that means the last item was a % skip. And since a skip is discardable, that means this % -\whatsitskip glue we're inserting is preceded by a % non-discardable item, therefore it is not a potential % breakpoint, therefore no \nobreak needed. \ifx\lastskipmacro\zeroskipmacro \else \vskip-\whatsitskip \fi % #1% % \ifx\lastskipmacro\zeroskipmacro % If \lastskip was zero, perhaps the last item was a penalty, and % perhaps it was >=10000, e.g., a \nobreak. In that case, we want % to re-insert the same penalty (values >10000 are used for various % signals); since we just inserted a non-discardable item, any % following glue (such as a \parskip) would be a breakpoint. For example: % @deffn deffn-whatever % @vindex index-whatever % Description. % would allow a break between the index-whatever whatsit % and the "Description." paragraph. \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi \else % On the other hand, if we had a nonzero \lastskip, % this make-up glue would be preceded by a non-discardable item % (the whatsit from the \write), so we must insert a \nobreak. \nobreak\vskip\whatsitskip \fi \fi} % The index entry written in the file actually looks like % \entry {sortstring}{page}{topic} % or % \entry {sortstring}{page}{topic}{subtopic} % The texindex program reads in these files and writes files % containing these kinds of lines: % \initial {c} % before the first topic whose initial is c % \entry {topic}{pagelist} % for a topic that is used without subtopics % \primary {topic} % for the beginning of a topic that is used with subtopics % \secondary {subtopic}{pagelist} % for each subtopic. % Define the user-accessible indexing commands % @findex, @vindex, @kindex, @cindex. \def\findex {\fnindex} \def\kindex {\kyindex} \def\cindex {\cpindex} \def\vindex {\vrindex} \def\tindex {\tpindex} \def\pindex {\pgindex} \def\cindexsub {\begingroup\obeylines\cindexsub} {\obeylines % \gdef\cindexsub "#1" #2^^M{\endgroup % \dosubind{cp}{#2}{#1}}} % Define the macros used in formatting output of the sorted index material. % @printindex causes a particular index (the ??s file) to get printed. % It does not print any chapter heading (usually an @unnumbered). % \parseargdef\printindex{\begingroup \dobreak \chapheadingskip{10000}% % \smallfonts \rm \tolerance = 9500 \plainfrenchspacing \everypar = {}% don't want the \kern\-parindent from indentation suppression. % % See if the index file exists and is nonempty. % Change catcode of @ here so that if the index file contains % \initial {@} % as its first line, TeX doesn't complain about mismatched braces % (because it thinks @} is a control sequence). \catcode`\@ = 11 \openin 1 \jobname.#1s \ifeof 1 % \enddoublecolumns gets confused if there is no text in the index, % and it loses the chapter title and the aux file entries for the % index. The easiest way to prevent this problem is to make sure % there is some text. \putwordIndexNonexistent \else % % If the index file exists but is empty, then \openin leaves \ifeof % false. We have to make TeX try to read something from the file, so % it can discover if there is anything in it. \read 1 to \temp \ifeof 1 \putwordIndexIsEmpty \else % Index files are almost Texinfo source, but we use \ as the escape % character. It would be better to use @, but that's too big a change % to make right now. \def\indexbackslash{\backslashcurfont}% \catcode`\\ = 0 \escapechar = `\\ \begindoublecolumns \input \jobname.#1s \enddoublecolumns \fi \fi \closein 1 \endgroup} % These macros are used by the sorted index file itself. % Change them to control the appearance of the index. \def\initial#1{{% % Some minor font changes for the special characters. \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt % % Remove any glue we may have, we'll be inserting our own. \removelastskip % % We like breaks before the index initials, so insert a bonus. \nobreak \vskip 0pt plus 3\baselineskip \penalty 0 \vskip 0pt plus -3\baselineskip % % Typeset the initial. Making this add up to a whole number of % baselineskips increases the chance of the dots lining up from column % to column. It still won't often be perfect, because of the stretch % we need before each entry, but it's better. % % No shrink because it confuses \balancecolumns. \vskip 1.67\baselineskip plus .5\baselineskip \leftline{\secbf #1}% % Do our best not to break after the initial. \nobreak \vskip .33\baselineskip plus .1\baselineskip }} % \entry typesets a paragraph consisting of the text (#1), dot leaders, and % then page number (#2) flushed to the right margin. It is used for index % and table of contents entries. The paragraph is indented by \leftskip. % % A straightforward implementation would start like this: % \def\entry#1#2{... % But this freezes the catcodes in the argument, and can cause problems to % @code, which sets - active. This problem was fixed by a kludge--- % ``-'' was active throughout whole index, but this isn't really right. % The right solution is to prevent \entry from swallowing the whole text. % --kasal, 21nov03 \def\entry{% \begingroup % % Start a new paragraph if necessary, so our assignments below can't % affect previous text. \par % % Do not fill out the last line with white space. \parfillskip = 0in % % No extra space above this paragraph. \parskip = 0in % % Do not prefer a separate line ending with a hyphen to fewer lines. \finalhyphendemerits = 0 % % \hangindent is only relevant when the entry text and page number % don't both fit on one line. In that case, bob suggests starting the % dots pretty far over on the line. Unfortunately, a large % indentation looks wrong when the entry text itself is broken across % lines. So we use a small indentation and put up with long leaders. % % \hangafter is reset to 1 (which is the value we want) at the start % of each paragraph, so we need not do anything with that. \hangindent = 2em % % When the entry text needs to be broken, just fill out the first line % with blank space. \rightskip = 0pt plus1fil % % A bit of stretch before each entry for the benefit of balancing % columns. \vskip 0pt plus1pt % % When reading the text of entry, convert explicit line breaks % from @* into spaces. The user might give these in long section % titles, for instance. \def\*{\unskip\space\ignorespaces}% \def\entrybreak{\hfil\break}% % % Swallow the left brace of the text (first parameter): \afterassignment\doentry \let\temp = } \def\entrybreak{\unskip\space\ignorespaces}% \def\doentry{% \bgroup % Instead of the swallowed brace. \noindent \aftergroup\finishentry % And now comes the text of the entry. } \def\finishentry#1{% % #1 is the page number. % % The following is kludged to not output a line of dots in the index if % there are no page numbers. The next person who breaks this will be % cursed by a Unix daemon. \setbox\boxA = \hbox{#1}% \ifdim\wd\boxA = 0pt \ % \else % % If we must, put the page number on a line of its own, and fill out % this line with blank space. (The \hfil is overwhelmed with the % fill leaders glue in \indexdotfill if the page number does fit.) \hfil\penalty50 \null\nobreak\indexdotfill % Have leaders before the page number. % % The `\ ' here is removed by the implicit \unskip that TeX does as % part of (the primitive) \par. Without it, a spurious underfull % \hbox ensues. \ifpdf \pdfgettoks#1.% \ \the\toksA \else \ #1% \fi \fi \par \endgroup } % Like plain.tex's \dotfill, except uses up at least 1 em. \def\indexdotfill{\cleaders \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill} \def\primary #1{\line{#1\hfil}} \newskip\secondaryindent \secondaryindent=0.5cm \def\secondary#1#2{{% \parfillskip=0in \parskip=0in \hangindent=1in \hangafter=1 \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill \ifpdf \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph. \else #2 \fi \par }} % Define two-column mode, which we use to typeset indexes. % Adapted from the TeXbook, page 416, which is to say, % the manmac.tex format used to print the TeXbook itself. \catcode`\@=11 \newbox\partialpage \newdimen\doublecolumnhsize \def\begindoublecolumns{\begingroup % ended by \enddoublecolumns % Grab any single-column material above us. \output = {% % % Here is a possibility not foreseen in manmac: if we accumulate a % whole lot of material, we might end up calling this \output % routine twice in a row (see the doublecol-lose test, which is % essentially a couple of indexes with @setchapternewpage off). In % that case we just ship out what is in \partialpage with the normal % output routine. Generally, \partialpage will be empty when this % runs and this will be a no-op. See the indexspread.tex test case. \ifvoid\partialpage \else \onepageout{\pagecontents\partialpage}% \fi % \global\setbox\partialpage = \vbox{% % Unvbox the main output page. \unvbox\PAGE \kern-\topskip \kern\baselineskip }% }% \eject % run that output routine to set \partialpage % % Use the double-column output routine for subsequent pages. \output = {\doublecolumnout}% % % Change the page size parameters. We could do this once outside this % routine, in each of @smallbook, @afourpaper, and the default 8.5x11 % format, but then we repeat the same computation. Repeating a couple % of assignments once per index is clearly meaningless for the % execution time, so we may as well do it in one place. % % First we halve the line length, less a little for the gutter between % the columns. We compute the gutter based on the line length, so it % changes automatically with the paper format. The magic constant % below is chosen so that the gutter has the same value (well, +-<1pt) % as it did when we hard-coded it. % % We put the result in a separate register, \doublecolumhsize, so we % can restore it in \pagesofar, after \hsize itself has (potentially) % been clobbered. % \doublecolumnhsize = \hsize \advance\doublecolumnhsize by -.04154\hsize \divide\doublecolumnhsize by 2 \hsize = \doublecolumnhsize % % Double the \vsize as well. (We don't need a separate register here, % since nobody clobbers \vsize.) \vsize = 2\vsize } % The double-column output routine for all double-column pages except % the last. % \def\doublecolumnout{% \splittopskip=\topskip \splitmaxdepth=\maxdepth % Get the available space for the double columns -- the normal % (undoubled) page height minus any material left over from the % previous page. \dimen@ = \vsize \divide\dimen@ by 2 \advance\dimen@ by -\ht\partialpage % % box0 will be the left-hand column, box2 the right. \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@ \onepageout\pagesofar \unvbox255 \penalty\outputpenalty } % % Re-output the contents of the output page -- any previous material, % followed by the two boxes we just split, in box0 and box2. \def\pagesofar{% \unvbox\partialpage % \hsize = \doublecolumnhsize \wd0=\hsize \wd2=\hsize \hbox to\pagewidth{\box0\hfil\box2}% } % % All done with double columns. \def\enddoublecolumns{% % The following penalty ensures that the page builder is exercised % _before_ we change the output routine. This is necessary in the % following situation: % % The last section of the index consists only of a single entry. % Before this section, \pagetotal is less than \pagegoal, so no % break occurs before the last section starts. However, the last % section, consisting of \initial and the single \entry, does not % fit on the page and has to be broken off. Without the following % penalty the page builder will not be exercised until \eject % below, and by that time we'll already have changed the output % routine to the \balancecolumns version, so the next-to-last % double-column page will be processed with \balancecolumns, which % is wrong: The two columns will go to the main vertical list, with % the broken-off section in the recent contributions. As soon as % the output routine finishes, TeX starts reconsidering the page % break. The two columns and the broken-off section both fit on the % page, because the two columns now take up only half of the page % goal. When TeX sees \eject from below which follows the final % section, it invokes the new output routine that we've set after % \balancecolumns below; \onepageout will try to fit the two columns % and the final section into the vbox of \pageheight (see % \pagebody), causing an overfull box. % % Note that glue won't work here, because glue does not exercise the % page builder, unlike penalties (see The TeXbook, pp. 280-281). \penalty0 % \output = {% % Split the last of the double-column material. Leave it on the % current page, no automatic page break. \balancecolumns % % If we end up splitting too much material for the current page, % though, there will be another page break right after this \output % invocation ends. Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. (We hope \balancecolumns will never be % called on to balance too much material, but if it is, this makes % the output somewhat more palatable.) \global\output = {\onepageout{\pagecontents\PAGE}}% }% \eject \endgroup % started in \begindoublecolumns % % \pagegoal was set to the doubled \vsize above, since we restarted % the current page. We're now back to normal single-column % typesetting, so reset \pagegoal to the normal \vsize (after the % \endgroup where \vsize got restored). \pagegoal = \vsize } % % Called at the end of the double column material. \def\balancecolumns{% \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120. \dimen@ = \ht0 \advance\dimen@ by \topskip \advance\dimen@ by-\baselineskip \divide\dimen@ by 2 % target to split to %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}% \splittopskip = \topskip % Loop until we get a decent breakpoint. {% \vbadness = 10000 \loop \global\setbox3 = \copy0 \global\setbox1 = \vsplit3 to \dimen@ \ifdim\ht3>\dimen@ \global\advance\dimen@ by 1pt \repeat }% %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}% \setbox0=\vbox to\dimen@{\unvbox1}% \setbox2=\vbox to\dimen@{\unvbox3}% % \pagesofar } \catcode`\@ = \other \message{sectioning,} % Chapters, sections, etc. % Let's start with @part. \outer\parseargdef\part{\partzzz{#1}} \def\partzzz#1{% \chapoddpage \null \vskip.3\vsize % move it down on the page a bit \begingroup \noindent \titlefonts\rmisbold #1\par % the text \let\lastnode=\empty % no node to associate with \writetocentry{part}{#1}{}% but put it in the toc \headingsoff % no headline or footline on the part page \chapoddpage \endgroup } % \unnumberedno is an oxymoron. But we count the unnumbered % sections so that we can refer to them unambiguously in the pdf % outlines by their "section number". We avoid collisions with chapter % numbers by starting them at 10000. (If a document ever has 10000 % chapters, we're in trouble anyway, I'm sure.) \newcount\unnumberedno \unnumberedno = 10000 \newcount\chapno \newcount\secno \secno=0 \newcount\subsecno \subsecno=0 \newcount\subsubsecno \subsubsecno=0 % This counter is funny since it counts through charcodes of letters A, B, ... \newcount\appendixno \appendixno = `\@ % % \def\appendixletter{\char\the\appendixno} % We do the following ugly conditional instead of the above simple % construct for the sake of pdftex, which needs the actual % letter in the expansion, not just typeset. % \def\appendixletter{% \ifnum\appendixno=`A A% \else\ifnum\appendixno=`B B% \else\ifnum\appendixno=`C C% \else\ifnum\appendixno=`D D% \else\ifnum\appendixno=`E E% \else\ifnum\appendixno=`F F% \else\ifnum\appendixno=`G G% \else\ifnum\appendixno=`H H% \else\ifnum\appendixno=`I I% \else\ifnum\appendixno=`J J% \else\ifnum\appendixno=`K K% \else\ifnum\appendixno=`L L% \else\ifnum\appendixno=`M M% \else\ifnum\appendixno=`N N% \else\ifnum\appendixno=`O O% \else\ifnum\appendixno=`P P% \else\ifnum\appendixno=`Q Q% \else\ifnum\appendixno=`R R% \else\ifnum\appendixno=`S S% \else\ifnum\appendixno=`T T% \else\ifnum\appendixno=`U U% \else\ifnum\appendixno=`V V% \else\ifnum\appendixno=`W W% \else\ifnum\appendixno=`X X% \else\ifnum\appendixno=`Y Y% \else\ifnum\appendixno=`Z Z% % The \the is necessary, despite appearances, because \appendixletter is % expanded while writing the .toc file. \char\appendixno is not % expandable, thus it is written literally, thus all appendixes come out % with the same letter (or @) in the toc without it. \else\char\the\appendixno \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi} % Each @chapter defines these (using marks) as the number+name, number % and name of the chapter. Page headings and footings can use % these. @section does likewise. \def\thischapter{} \def\thischapternum{} \def\thischaptername{} \def\thissection{} \def\thissectionnum{} \def\thissectionname{} \newcount\absseclevel % used to calculate proper heading level \newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count % @raisesections: treat @section as chapter, @subsection as section, etc. \def\raisesections{\global\advance\secbase by -1} \let\up=\raisesections % original BFox name % @lowersections: treat @chapter as section, @section as subsection, etc. \def\lowersections{\global\advance\secbase by 1} \let\down=\lowersections % original BFox name % we only have subsub. \chardef\maxseclevel = 3 % % A numbered section within an unnumbered changes to unnumbered too. % To achieve this, remember the "biggest" unnum. sec. we are currently in: \chardef\unnlevel = \maxseclevel % % Trace whether the current chapter is an appendix or not: % \chapheadtype is "N" or "A", unnumbered chapters are ignored. \def\chapheadtype{N} % Choose a heading macro % #1 is heading type % #2 is heading level % #3 is text for heading \def\genhead#1#2#3{% % Compute the abs. sec. level: \absseclevel=#2 \advance\absseclevel by \secbase % Make sure \absseclevel doesn't fall outside the range: \ifnum \absseclevel < 0 \absseclevel = 0 \else \ifnum \absseclevel > 3 \absseclevel = 3 \fi \fi % The heading type: \def\headtype{#1}% \if \headtype U% \ifnum \absseclevel < \unnlevel \chardef\unnlevel = \absseclevel \fi \else % Check for appendix sections: \ifnum \absseclevel = 0 \edef\chapheadtype{\headtype}% \else \if \headtype A\if \chapheadtype N% \errmessage{@appendix... within a non-appendix chapter}% \fi\fi \fi % Check for numbered within unnumbered: \ifnum \absseclevel > \unnlevel \def\headtype{U}% \else \chardef\unnlevel = 3 \fi \fi % Now print the heading: \if \headtype U% \ifcase\absseclevel \unnumberedzzz{#3}% \or \unnumberedseczzz{#3}% \or \unnumberedsubseczzz{#3}% \or \unnumberedsubsubseczzz{#3}% \fi \else \if \headtype A% \ifcase\absseclevel \appendixzzz{#3}% \or \appendixsectionzzz{#3}% \or \appendixsubseczzz{#3}% \or \appendixsubsubseczzz{#3}% \fi \else \ifcase\absseclevel \chapterzzz{#3}% \or \seczzz{#3}% \or \numberedsubseczzz{#3}% \or \numberedsubsubseczzz{#3}% \fi \fi \fi \suppressfirstparagraphindent } % an interface: \def\numhead{\genhead N} \def\apphead{\genhead A} \def\unnmhead{\genhead U} % @chapter, @appendix, @unnumbered. Increment top-level counter, reset % all lower-level sectioning counters to zero. % % Also set \chaplevelprefix, which we prepend to @float sequence numbers % (e.g., figures), q.v. By default (before any chapter), that is empty. \let\chaplevelprefix = \empty % \outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz \def\chapterzzz#1{% % section resetting is \global in case the chapter is in a group, such % as an @include file. \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\chapno by 1 % % Used for \float. \gdef\chaplevelprefix{\the\chapno.}% \resetallfloatnos % % \putwordChapter can contain complex things in translations. \toks0=\expandafter{\putwordChapter}% \message{\the\toks0 \space \the\chapno}% % % Write the actual heading. \chapmacro{#1}{Ynumbered}{\the\chapno}% % % So @section and the like are numbered underneath this chapter. \global\let\section = \numberedsec \global\let\subsection = \numberedsubsec \global\let\subsubsection = \numberedsubsubsec } \outer\parseargdef\appendix{\apphead0{#1}} % normally calls appendixzzz % \def\appendixzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\appendixno by 1 \gdef\chaplevelprefix{\appendixletter.}% \resetallfloatnos % % \putwordAppendix can contain complex things in translations. \toks0=\expandafter{\putwordAppendix}% \message{\the\toks0 \space \appendixletter}% % \chapmacro{#1}{Yappendix}{\appendixletter}% % \global\let\section = \appendixsec \global\let\subsection = \appendixsubsec \global\let\subsubsection = \appendixsubsubsec } % normally unnmhead0 calls unnumberedzzz: \outer\parseargdef\unnumbered{\unnmhead0{#1}} \def\unnumberedzzz#1{% \global\secno=0 \global\subsecno=0 \global\subsubsecno=0 \global\advance\unnumberedno by 1 % % Since an unnumbered has no number, no prefix for figures. \global\let\chaplevelprefix = \empty \resetallfloatnos % % This used to be simply \message{#1}, but TeX fully expands the % argument to \message. Therefore, if #1 contained @-commands, TeX % expanded them. For example, in `@unnumbered The @cite{Book}', TeX % expanded @cite (which turns out to cause errors because \cite is meant % to be executed, not expanded). % % Anyway, we don't want the fully-expanded definition of @cite to appear % as a result of the \message, we just want `@cite' itself. We use % \the<toks register> to achieve this: TeX expands \the<toks> only once, % simply yielding the contents of <toks register>. (We also do this for % the toc entries.) \toks0 = {#1}% \message{(\the\toks0)}% % \chapmacro{#1}{Ynothing}{\the\unnumberedno}% % \global\let\section = \unnumberedsec \global\let\subsection = \unnumberedsubsec \global\let\subsubsection = \unnumberedsubsubsec } % @centerchap is like @unnumbered, but the heading is centered. \outer\parseargdef\centerchap{% % Well, we could do the following in a group, but that would break % an assumption that \chapmacro is called at the outermost level. % Thus we are safer this way: --kasal, 24feb04 \let\centerparametersmaybe = \centerparameters \unnmhead0{#1}% \let\centerparametersmaybe = \relax } % @top is like @unnumbered. \let\top\unnumbered % Sections. % \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz \def\seczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}% } % normally calls appendixsectionzzz: \outer\parseargdef\appendixsection{\apphead1{#1}} \def\appendixsectionzzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}% } \let\appendixsec\appendixsection % normally calls unnumberedseczzz: \outer\parseargdef\unnumberedsec{\unnmhead1{#1}} \def\unnumberedseczzz#1{% \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1 \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}% } % Subsections. % % normally calls numberedsubseczzz: \outer\parseargdef\numberedsubsec{\numhead2{#1}} \def\numberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}% } % normally calls appendixsubseczzz: \outer\parseargdef\appendixsubsec{\apphead2{#1}} \def\appendixsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno}% } % normally calls unnumberedsubseczzz: \outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}} \def\unnumberedsubseczzz#1{% \global\subsubsecno=0 \global\advance\subsecno by 1 \sectionheading{#1}{subsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno}% } % Subsubsections. % % normally numberedsubsubseczzz: \outer\parseargdef\numberedsubsubsec{\numhead3{#1}} \def\numberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynumbered}% {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally appendixsubsubseczzz: \outer\parseargdef\appendixsubsubsec{\apphead3{#1}} \def\appendixsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Yappendix}% {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}% } % normally unnumberedsubsubseczzz: \outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}} \def\unnumberedsubsubseczzz#1{% \global\advance\subsubsecno by 1 \sectionheading{#1}{subsubsec}{Ynothing}% {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}% } % These macros control what the section commands do, according % to what kind of chapter we are in (ordinary, appendix, or unnumbered). % Define them by default for a numbered chapter. \let\section = \numberedsec \let\subsection = \numberedsubsec \let\subsubsection = \numberedsubsubsec % Define @majorheading, @heading and @subheading \def\majorheading{% {\advance\chapheadingskip by 10pt \chapbreak }% \parsearg\chapheadingzzz } \def\chapheading{\chapbreak \parsearg\chapheadingzzz} \def\chapheadingzzz#1{% \vbox{\chapfonts \raggedtitlesettings #1\par}% \nobreak\bigskip \nobreak \suppressfirstparagraphindent } % @heading, @subheading, @subsubheading. \parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} \parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{} \suppressfirstparagraphindent} % These macros generate a chapter, section, etc. heading only % (including whitespace, linebreaking, etc. around it), % given all the information in convenient, parsed form. % Args are the skip and penalty (usually negative) \def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi} % Parameter controlling skip before chapter headings (if needed) \newskip\chapheadingskip % Define plain chapter starts, and page on/off switching for it. \def\chapbreak{\dobreak \chapheadingskip {-4000}} \def\chappager{\par\vfill\supereject} % Because \domark is called before \chapoddpage, the filler page will % get the headings for the next chapter, which is wrong. But we don't % care -- we just disable all headings on the filler page. \def\chapoddpage{% \chappager \ifodd\pageno \else \begingroup \headingsoff \null \chappager \endgroup \fi } \def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname} \def\CHAPPAGoff{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chapbreak \global\let\pagealignmacro=\chappager} \def\CHAPPAGon{% \global\let\contentsalignmacro = \chappager \global\let\pchapsepmacro=\chappager \global\let\pagealignmacro=\chappager \global\def\HEADINGSon{\HEADINGSsingle}} \def\CHAPPAGodd{% \global\let\contentsalignmacro = \chapoddpage \global\let\pchapsepmacro=\chapoddpage \global\let\pagealignmacro=\chapoddpage \global\def\HEADINGSon{\HEADINGSdouble}} \CHAPPAGon % Chapter opening. % % #1 is the text, #2 is the section type (Ynumbered, Ynothing, % Yappendix, Yomitfromtoc), #3 the chapter number. % % To test against our argument. \def\Ynothingkeyword{Ynothing} \def\Yomitfromtockeyword{Yomitfromtoc} \def\Yappendixkeyword{Yappendix} % \def\chapmacro#1#2#3{% % Insert the first mark before the heading break (see notes for \domark). \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}% \gdef\thissection{}}% % \def\temptype{#2}% \ifx\temptype\Ynothingkeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{\thischaptername}}% \else\ifx\temptype\Yomitfromtockeyword \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}% \gdef\thischapter{}}% \else\ifx\temptype\Yappendixkeyword \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\appendixletter}% % \noexpand\putwordAppendix avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordAppendix{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \else \toks0={#1}% \xdef\lastchapterdefs{% \gdef\noexpand\thischaptername{\the\toks0}% \gdef\noexpand\thischapternum{\the\chapno}% % \noexpand\putwordChapter avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thischapter{\noexpand\putwordChapter{} \noexpand\thischapternum: \noexpand\thischaptername}% }% \fi\fi\fi % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert the chapter heading break. \pchapsepmacro % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevchapterdefs=\lastchapterdefs \let\prevsectiondefs=\lastsectiondefs \domark % {% \chapfonts \rmisbold % % Have to define \lastsection before calling \donoderef, because the % xref code eventually uses it. On the other hand, it has to be called % after \pchapsepmacro, or the headline will change too soon. \gdef\lastsection{#1}% % % Only insert the separating space if we have a chapter/appendix % number, and don't print the unnumbered ``number''. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unnchap}% \else\ifx\temptype\Yomitfromtockeyword \setbox0 = \hbox{}% contents like unnumbered, but no toc entry \def\toctype{omit}% \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{\putwordAppendix{} #3\enspace}% \def\toctype{app}% \else \setbox0 = \hbox{#3\enspace}% \def\toctype{numchap}% \fi\fi\fi % % Write the toc entry for this chapter. Must come before the % \donoderef, because we include the current node name in the toc % entry, and \donoderef resets it to empty. \writetocentry{\toctype}{#1}{#3}% % % For pdftex, we have to write out the node definition (aka, make % the pdfdest) after any page break, but before the actual text has % been typeset. If the destination for the pdf outline is after the % text, then jumping from the outline may wind up with the text not % being visible, for instance under high magnification. \donoderef{#2}% % % Typeset the actual heading. \nobreak % Avoid page breaks at the interline glue. \vbox{\raggedtitlesettings \hangindent=\wd0 \centerparametersmaybe \unhbox0 #1\par}% }% \nobreak\bigskip % no page break after a chapter title \nobreak } % @centerchap -- centered and unnumbered. \let\centerparametersmaybe = \relax \def\centerparameters{% \advance\rightskip by 3\rightskip \leftskip = \rightskip \parfillskip = 0pt } % I don't think this chapter style is supported any more, so I'm not % updating it with the new noderef stuff. We'll see. --karl, 11aug03. % \def\setchapterstyle #1 {\csname CHAPF#1\endcsname} % \def\unnchfopen #1{% \chapoddpage \vbox{\chapfonts \raggedtitlesettings #1\par}% \nobreak\bigskip\nobreak } \def\chfopen #1#2{\chapoddpage {\chapfonts \vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}% \par\penalty 5000 % } \def\centerchfopen #1{% \chapoddpage \vbox{\chapfonts \raggedtitlesettings \hfill #1\hfill}% \nobreak\bigskip \nobreak } \def\CHAPFopen{% \global\let\chapmacro=\chfopen \global\let\centerchapmacro=\centerchfopen} % Section titles. These macros combine the section number parts and % call the generic \sectionheading to do the printing. % \newskip\secheadingskip \def\secheadingbreak{\dobreak \secheadingskip{-1000}} % Subsection titles. \newskip\subsecheadingskip \def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}} % Subsubsection titles. \def\subsubsecheadingskip{\subsecheadingskip} \def\subsubsecheadingbreak{\subsecheadingbreak} % Print any size, any type, section title. % % #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is % the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the % section number. % \def\seckeyword{sec} % \def\sectionheading#1#2#3#4{% {% \checkenv{}% should not be in an environment. % % Switch to the right set of fonts. \csname #2fonts\endcsname \rmisbold % \def\sectionlevel{#2}% \def\temptype{#3}% % % Insert first mark before the heading break (see notes for \domark). \let\prevsectiondefs=\lastsectiondefs \ifx\temptype\Ynothingkeyword \ifx\sectionlevel\seckeyword \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}% \gdef\thissection{\thissectionname}}% \fi \else\ifx\temptype\Yomitfromtockeyword % Don't redefine \thissection. \else\ifx\temptype\Yappendixkeyword \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \else \ifx\sectionlevel\seckeyword \toks0={#1}% \xdef\lastsectiondefs{% \gdef\noexpand\thissectionname{\the\toks0}% \gdef\noexpand\thissectionnum{#4}% % \noexpand\putwordSection avoids expanding indigestible % commands in some of the translations. \gdef\noexpand\thissection{\noexpand\putwordSection{} \noexpand\thissectionnum: \noexpand\thissectionname}% }% \fi \fi\fi\fi % % Go into vertical mode. Usually we'll already be there, but we % don't want the following whatsit to end up in a preceding paragraph % if the document didn't happen to have a blank line. \par % % Output the mark. Pass it through \safewhatsit, to take care of % the preceding space. \safewhatsit\domark % % Insert space above the heading. \csname #2headingbreak\endcsname % % Now the second mark, after the heading break. No break points % between here and the heading. \let\prevsectiondefs=\lastsectiondefs \domark % % Only insert the space after the number if we have a section number. \ifx\temptype\Ynothingkeyword \setbox0 = \hbox{}% \def\toctype{unn}% \gdef\lastsection{#1}% \else\ifx\temptype\Yomitfromtockeyword % for @headings -- no section number, don't include in toc, % and don't redefine \lastsection. \setbox0 = \hbox{}% \def\toctype{omit}% \let\sectionlevel=\empty \else\ifx\temptype\Yappendixkeyword \setbox0 = \hbox{#4\enspace}% \def\toctype{app}% \gdef\lastsection{#1}% \else \setbox0 = \hbox{#4\enspace}% \def\toctype{num}% \gdef\lastsection{#1}% \fi\fi\fi % % Write the toc entry (before \donoderef). See comments in \chapmacro. \writetocentry{\toctype\sectionlevel}{#1}{#4}% % % Write the node reference (= pdf destination for pdftex). % Again, see comments in \chapmacro. \donoderef{#3}% % % Interline glue will be inserted when the vbox is completed. % That glue will be a valid breakpoint for the page, since it'll be % preceded by a whatsit (usually from the \donoderef, or from the % \writetocentry if there was no node). We don't want to allow that % break, since then the whatsits could end up on page n while the % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000. \nobreak % % Output the actual section heading. \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright \hangindent=\wd0 % zero if no section number \unhbox0 #1}% }% % Add extra space after the heading -- half of whatever came above it. % Don't allow stretch, though. \kern .5 \csname #2headingskip\endcsname % % Do not let the kern be a potential breakpoint, as it would be if it % was followed by glue. \nobreak % % We'll almost certainly start a paragraph next, so don't let that % glue accumulate. (Not a breakpoint because it's preceded by a % discardable item.) However, when a paragraph is not started next % (\startdefun, \cartouche, \center, etc.), this needs to be wiped out % or the negative glue will cause weirdly wrong output, typically % obscuring the section heading with something else. \vskip-\parskip % % This is so the last item on the main vertical list is a known % \penalty > 10000, so \startdefun, etc., can recognize the situation % and do the needful. \penalty 10001 } \message{toc,} % Table of contents. \newwrite\tocfile % Write an entry to the toc file, opening it if necessary. % Called from @chapter, etc. % % Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno} % We append the current node name (if any) and page number as additional % arguments for the \{chap,sec,...}entry macros which will eventually % read this. The node name is used in the pdf outlines as the % destination to jump to. % % We open the .toc file for writing here instead of at @setfilename (or % any other fixed time) so that @contents can be anywhere in the document. % But if #1 is `omit', then we don't do anything. This is used for the % table of contents chapter openings themselves. % \newif\iftocfileopened \def\omitkeyword{omit}% % \def\writetocentry#1#2#3{% \edef\writetoctype{#1}% \ifx\writetoctype\omitkeyword \else \iftocfileopened\else \immediate\openout\tocfile = \jobname.toc \global\tocfileopenedtrue \fi % \iflinks {\atdummies \edef\temp{% \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}% \temp }% \fi \fi % % Tell \shipout to create a pdf destination on each page, if we're % writing pdf. These are used in the table of contents. We can't % just write one on every page because the title pages are numbered % 1 and 2 (the page numbers aren't printed), and so are the first % two pages of the document. Thus, we'd have two destinations named % `1', and two named `2'. \ifpdf \global\pdfmakepagedesttrue \fi } % These characters do not print properly in the Computer Modern roman % fonts, so we must take special care. This is more or less redundant % with the Texinfo input format setup at the end of this file. % \def\activecatcodes{% \catcode`\"=\active \catcode`\$=\active \catcode`\<=\active \catcode`\>=\active \catcode`\\=\active \catcode`\^=\active \catcode`\_=\active \catcode`\|=\active \catcode`\~=\active } % Read the toc file, which is essentially Texinfo input. \def\readtocfile{% \setupdatafile \activecatcodes \input \tocreadfilename } \newskip\contentsrightmargin \contentsrightmargin=1in \newcount\savepageno \newcount\lastnegativepageno \lastnegativepageno = -1 % Prepare to read what we've written to \tocfile. % \def\startcontents#1{% % If @setchapternewpage on, and @headings double, the contents should % start on an odd page, unlike chapters. Thus, we maintain % \contentsalignmacro in parallel with \pagealignmacro. % From: Torbjorn Granlund <tege@matematik.su.se> \contentsalignmacro \immediate\closeout\tocfile % % Don't need to put `Contents' or `Short Contents' in the headline. % It is abundantly clear what they are. \chapmacro{#1}{Yomitfromtoc}{}% % \savepageno = \pageno \begingroup % Set up to handle contents files properly. \raggedbottom % Worry more about breakpoints than the bottom. \advance\hsize by -\contentsrightmargin % Don't use the full line length. % % Roman numerals for page numbers. \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi } % redefined for the two-volume lispref. We always output on % \jobname.toc even if this is redefined. % \def\tocreadfilename{\jobname.toc} % Normal (long) toc. % \def\contents{% \startcontents{\putwordTOC}% \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \ifeof 1 \else \pdfmakeoutlines \fi \closein 1 \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } % And just the chapters. \def\summarycontents{% \startcontents{\putwordShortTOC}% % \let\partentry = \shortpartentry \let\numchapentry = \shortchapentry \let\appentry = \shortchapentry \let\unnchapentry = \shortunnchapentry % We want a true roman here for the page numbers. \secfonts \let\rm=\shortcontrm \let\bf=\shortcontbf \let\sl=\shortcontsl \let\tt=\shortconttt \rm \hyphenpenalty = 10000 \advance\baselineskip by 1pt % Open it up a little. \def\numsecentry##1##2##3##4{} \let\appsecentry = \numsecentry \let\unnsecentry = \numsecentry \let\numsubsecentry = \numsecentry \let\appsubsecentry = \numsecentry \let\unnsubsecentry = \numsecentry \let\numsubsubsecentry = \numsecentry \let\appsubsubsecentry = \numsecentry \let\unnsubsubsecentry = \numsecentry \openin 1 \tocreadfilename\space \ifeof 1 \else \readtocfile \fi \closein 1 \vfill \eject \contentsalignmacro % in case @setchapternewpage odd is in effect \endgroup \lastnegativepageno = \pageno \global\pageno = \savepageno } \let\shortcontents = \summarycontents % Typeset the label for a chapter or appendix for the short contents. % The arg is, e.g., `A' for an appendix, or `3' for a chapter. % \def\shortchaplabel#1{% % This space should be enough, since a single number is .5em, and the % widest letter (M) is 1em, at least in the Computer Modern fonts. % But use \hss just in case. % (This space doesn't include the extra space that gets added after % the label; that gets put in by \shortchapentry above.) % % We'd like to right-justify chapter numbers, but that looks strange % with appendix letters. And right-justifying numbers and % left-justifying letters looks strange when there is less than 10 % chapters. Have to read the whole toc once to know how many chapters % there are before deciding ... \hbox to 1em{#1\hss}% } % These macros generate individual entries in the table of contents. % The first argument is the chapter or section name. % The last argument is the page number. % The arguments in between are the chapter number, section number, ... % Parts, in the main contents. Replace the part number, which doesn't % exist, with an empty box. Let's hope all the numbers have the same width. % Also ignore the page number, which is conventionally not printed. \def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}} \def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}} % % Parts, in the short toc. \def\shortpartentry#1#2#3#4{% \penalty-300 \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip \shortchapentry{{\bf #1}}{\numeralbox}{}{}% } % Chapters, in the main contents. \def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}} % % Chapters, in the short toc. % See comments in \dochapentry re vbox and related settings. \def\shortchapentry#1#2#3#4{% \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}% } % Appendices, in the main contents. % Need the word Appendix, and a fixed-size box. % \def\appendixbox#1{% % We use M since it's probably the widest letter. \setbox0 = \hbox{\putwordAppendix{} M}% \hbox to \wd0{\putwordAppendix{} #1\hss}} % \def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}} % Unnumbered chapters. \def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}} \def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}} % Sections. \def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}} \let\appsecentry=\numsecentry \def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}} % Subsections. \def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}} \let\appsubsecentry=\numsubsecentry \def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}} % And subsubsections. \def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}} \let\appsubsubsecentry=\numsubsubsecentry \def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}} % This parameter controls the indentation of the various levels. % Same as \defaultparindent. \newdimen\tocindent \tocindent = 15pt % Now for the actual typesetting. In all these, #1 is the text and #2 is the % page number. % % If the toc has to be broken over pages, we want it to be at chapters % if at all possible; hence the \penalty. \def\dochapentry#1#2{% \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip \begingroup \chapentryfonts \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup \nobreak\vskip .25\baselineskip plus.1\baselineskip } \def\dosecentry#1#2{\begingroup \secentryfonts \leftskip=\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsecentry#1#2{\begingroup \subsecentryfonts \leftskip=2\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} \def\dosubsubsecentry#1#2{\begingroup \subsubsecentryfonts \leftskip=3\tocindent \tocentry{#1}{\dopageno\bgroup#2\egroup}% \endgroup} % We use the same \entry macro as for the index entries. \let\tocentry = \entry % Space between chapter (or whatever) number and the title. \def\labelspace{\hskip1em \relax} \def\dopageno#1{{\rm #1}} \def\doshortpageno#1{{\rm #1}} \def\chapentryfonts{\secfonts \rm} \def\secentryfonts{\textfonts} \def\subsecentryfonts{\textfonts} \def\subsubsecentryfonts{\textfonts} \message{environments,} % @foo ... @end foo. % @tex ... @end tex escapes into raw TeX temporarily. % One exception: @ is still an escape character, so that @end tex works. % But \@ or @@ will get a plain @ character. \envdef\tex{% \setupmarkupstyle{tex}% \catcode `\\=0 \catcode `\{=1 \catcode `\}=2 \catcode `\$=3 \catcode `\&=4 \catcode `\#=6 \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie \catcode `\%=14 \catcode `\+=\other \catcode `\"=\other \catcode `\|=\other \catcode `\<=\other \catcode `\>=\other \catcode`\`=\other \catcode`\'=\other \escapechar=`\\ % % ' is active in math mode (mathcode"8000). So reset it, and all our % other math active characters (just in case), to plain's definitions. \mathactive % \let\b=\ptexb \let\bullet=\ptexbullet \let\c=\ptexc \let\,=\ptexcomma \let\.=\ptexdot \let\dots=\ptexdots \let\equiv=\ptexequiv \let\!=\ptexexclam \let\i=\ptexi \let\indent=\ptexindent \let\noindent=\ptexnoindent \let\{=\ptexlbrace \let\+=\tabalign \let\}=\ptexrbrace \let\/=\ptexslash \let\*=\ptexstar \let\t=\ptext \expandafter \let\csname top\endcsname=\ptextop % outer \let\frenchspacing=\plainfrenchspacing % \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}% \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}% \def\@{@}% } % There is no need to define \Etex. % Define @lisp ... @end lisp. % @lisp environment forms a group so it can rebind things, % including the definition of @end lisp (which normally is erroneous). % Amount to narrow the margins by for @lisp. \newskip\lispnarrowing \lispnarrowing=0.4in % This is the definition that ^^M gets inside @lisp, @example, and other % such environments. \null is better than a space, since it doesn't % have any width. \def\lisppar{\null\endgraf} % This space is always present above and below environments. \newskip\envskipamount \envskipamount = 0pt % Make spacing and below environment symmetrical. We use \parskip here % to help in doing that, since in @example-like environments \parskip % is reset to zero; thus the \afterenvbreak inserts no space -- but the % start of the next paragraph will insert \parskip. % \def\aboveenvbreak{{% % =10000 instead of <10000 because of a special case in \itemzzz and % \sectionheading, q.v. \ifnum \lastpenalty=10000 \else \advance\envskipamount by \parskip \endgraf \ifdim\lastskip<\envskipamount \removelastskip % it's not a good place to break if the last penalty was \nobreak % or better ... \ifnum\lastpenalty<10000 \penalty-50 \fi \vskip\envskipamount \fi \fi }} \let\afterenvbreak = \aboveenvbreak % \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will % also clear it, so that its embedded environments do the narrowing again. \let\nonarrowing=\relax % @cartouche ... @end cartouche: draw rectangle w/rounded corners around % environment contents. \font\circle=lcircle10 \newdimen\circthick \newdimen\cartouter\newdimen\cartinner \newskip\normbskip\newskip\normpskip\newskip\normlskip \circthick=\fontdimen8\circle % \def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth \def\ctr{{\hskip 6pt\circle\char'010}} \def\cbl{{\circle\char'012\hskip -6pt}} \def\cbr{{\hskip 6pt\circle\char'011}} \def\carttop{\hbox to \cartouter{\hskip\lskip \ctl\leaders\hrule height\circthick\hfil\ctr \hskip\rskip}} \def\cartbot{\hbox to \cartouter{\hskip\lskip \cbl\leaders\hrule height\circthick\hfil\cbr \hskip\rskip}} % \newskip\lskip\newskip\rskip \envdef\cartouche{% \ifhmode\par\fi % can't be in the midst of a paragraph. \startsavinginserts \lskip=\leftskip \rskip=\rightskip \leftskip=0pt\rightskip=0pt % we want these *outside*. \cartinner=\hsize \advance\cartinner by-\lskip \advance\cartinner by-\rskip \cartouter=\hsize \advance\cartouter by 18.4pt % allow for 3pt kerns on either % side, and for 6pt waste from % each corner char, and rule thickness \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip % Flag to tell @lisp, etc., not to narrow margin. \let\nonarrowing = t% % % If this cartouche directly follows a sectioning command, we need the % \parskip glue (backspaced over by default) or the cartouche can % collide with the section heading. \ifnum\lastpenalty>10000 \vskip\parskip \penalty\lastpenalty \fi % \vbox\bgroup \baselineskip=0pt\parskip=0pt\lineskip=0pt \carttop \hbox\bgroup \hskip\lskip \vrule\kern3pt \vbox\bgroup \kern3pt \hsize=\cartinner \baselineskip=\normbskip \lineskip=\normlskip \parskip=\normpskip \vskip -\parskip \comment % For explanation, see the end of def\group. } \def\Ecartouche{% \ifhmode\par\fi \kern3pt \egroup \kern3pt\vrule \hskip\rskip \egroup \cartbot \egroup \checkinserts } % This macro is called at the beginning of all the @example variants, % inside a group. \newdimen\nonfillparindent \def\nonfillstart{% \aboveenvbreak \hfuzz = 12pt % Don't be fussy \sepspaces % Make spaces be word-separators rather than space tokens. \let\par = \lisppar % don't ignore blank lines \obeylines % each line of input is a line of output \parskip = 0pt % Turn off paragraph indentation but redefine \indent to emulate % the normal \indent. \nonfillparindent=\parindent \parindent = 0pt \let\indent\nonfillindent % \emergencystretch = 0pt % don't try to avoid overfull boxes \ifx\nonarrowing\relax \advance \leftskip by \lispnarrowing \exdentamount=\lispnarrowing \else \let\nonarrowing = \relax \fi \let\exdent=\nofillexdent } \begingroup \obeyspaces % We want to swallow spaces (but not other tokens) after the fake % @indent in our nonfill-environments, where spaces are normally % active and set to @tie, resulting in them not being ignored after % @indent. \gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}% \gdef\nonfillindentcheck{% \ifx\temp % \expandafter\nonfillindentgobble% \else% \leavevmode\nonfillindentbox% \fi% }% \endgroup \def\nonfillindentgobble#1{\nonfillindent} \def\nonfillindentbox{\hbox to \nonfillparindent{\hss}} % If you want all examples etc. small: @set dispenvsize small. % If you want even small examples the full size: @set dispenvsize nosmall. % This affects the following displayed environments: % @example, @display, @format, @lisp % \def\smallword{small} \def\nosmallword{nosmall} \let\SETdispenvsize\relax \def\setnormaldispenv{% \ifx\SETdispenvsize\smallword % end paragraph for sake of leading, in case document has no blank % line. This is redundant with what happens in \aboveenvbreak, but % we need to do it before changing the fonts, and it's inconvenient % to change the fonts afterward. \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } \def\setsmalldispenv{% \ifx\SETdispenvsize\nosmallword \else \ifnum \lastpenalty=10000 \else \endgraf \fi \smallexamplefonts \rm \fi } % We often define two environments, @foo and @smallfoo. % Let's do it in one command. #1 is the env name, #2 the definition. \def\makedispenvdef#1#2{% \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}% \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}% \expandafter\let\csname E#1\endcsname \afterenvbreak \expandafter\let\csname Esmall#1\endcsname \afterenvbreak } % Define two environment synonyms (#1 and #2) for an environment. \def\maketwodispenvdef#1#2#3{% \makedispenvdef{#1}{#3}% \makedispenvdef{#2}{#3}% } % % @lisp: indented, narrowed, typewriter font; % @example: same as @lisp. % % @smallexample and @smalllisp: use smaller fonts. % Originally contributed by Pavel@xerox. % \maketwodispenvdef{lisp}{example}{% \nonfillstart \tt\setupmarkupstyle{example}% \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special. \gobble % eat return } % @display/@smalldisplay: same as @lisp except keep current font. % \makedispenvdef{display}{% \nonfillstart \gobble } % @format/@smallformat: same as @display except don't narrow margins. % \makedispenvdef{format}{% \let\nonarrowing = t% \nonfillstart \gobble } % @flushleft: same as @format, but doesn't obey \SETdispenvsize. \envdef\flushleft{% \let\nonarrowing = t% \nonfillstart \gobble } \let\Eflushleft = \afterenvbreak % @flushright. % \envdef\flushright{% \let\nonarrowing = t% \nonfillstart \advance\leftskip by 0pt plus 1fill\relax \gobble } \let\Eflushright = \afterenvbreak % @raggedright does more-or-less normal line breaking but no right % justification. From plain.tex. \envdef\raggedright{% \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax } \let\Eraggedright\par \envdef\raggedleft{% \parindent=0pt \leftskip0pt plus2em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedleft\par \envdef\raggedcenter{% \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt \hbadness=10000 % Last line will usually be underfull, so turn off % badness reporting. } \let\Eraggedcenter\par % @quotation does normal linebreaking (hence we can't use \nonfillstart) % and narrows the margins. We keep \parskip nonzero in general, since % we're doing normal filling. So, when using \aboveenvbreak and % \afterenvbreak, temporarily make \parskip 0. % \makedispenvdef{quotation}{\quotationstart} % \def\quotationstart{% \indentedblockstart % same as \indentedblock, but increase right margin too. \ifx\nonarrowing\relax \advance\rightskip by \lispnarrowing \fi \parsearg\quotationlabel } % We have retained a nonzero parskip for the environment, since we're % doing normal filling. % \def\Equotation{% \par \ifx\quotationauthor\thisisundefined\else % indent a bit. \leftline{\kern 2\leftskip \sl ---\quotationauthor}% \fi {\parskip=0pt \afterenvbreak}% } \def\Esmallquotation{\Equotation} % If we're given an argument, typeset it in bold with a colon after. \def\quotationlabel#1{% \def\temp{#1}% \ifx\temp\empty \else {\bf #1: }% \fi } % @indentedblock is like @quotation, but indents only on the left and % has no optional argument. % \makedispenvdef{indentedblock}{\indentedblockstart} % \def\indentedblockstart{% {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip \parindent=0pt % % @cartouche defines \nonarrowing to inhibit narrowing at next level down. \ifx\nonarrowing\relax \advance\leftskip by \lispnarrowing \exdentamount = \lispnarrowing \else \let\nonarrowing = \relax \fi } % Keep a nonzero parskip for the environment, since we're doing normal filling. % \def\Eindentedblock{% \par {\parskip=0pt \afterenvbreak}% } \def\Esmallindentedblock{\Eindentedblock} % LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>} % If we want to allow any <char> as delimiter, % we need the curly braces so that makeinfo sees the @verb command, eg: % `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org % % [Knuth]: Donald Ervin Knuth, 1996. The TeXbook. % % [Knuth] p.344; only we need to do the other characters Texinfo sets % active too. Otherwise, they get lost as the first character on a % verbatim line. \def\dospecials{% \do\ \do\\\do\{\do\}\do\$\do\&% \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~% \do\<\do\>\do\|\do\@\do+\do\"% % Don't do the quotes -- if we do, @set txicodequoteundirected and % @set txicodequotebacktick will not have effect on @verb and % @verbatim, and ?` and !` ligatures won't get disabled. %\do\`\do\'% } % % [Knuth] p. 380 \def\uncatcodespecials{% \def\do##1{\catcode`##1=\other}\dospecials} % % Setup for the @verb command. % % Eight spaces for a tab \begingroup \catcode`\^^I=\active \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }} \endgroup % \def\setupverb{% \tt % easiest (and conventionally used) font for verbatim \def\par{\leavevmode\endgraf}% \setupmarkupstyle{verb}% \tabeightspaces % Respect line breaks, % print special symbols as themselves, and % make each space count % must do in this order: \obeylines \uncatcodespecials \sepspaces } % Setup for the @verbatim environment % % Real tab expansion. \newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount % % We typeset each line of the verbatim in an \hbox, so we can handle % tabs. The \global is in case the verbatim line starts with an accent, % or some other command that starts with a begin-group. Otherwise, the % entire \verbbox would disappear at the corresponding end-group, before % it is typeset. Meanwhile, we can't have nested verbatim commands % (can we?), so the \global won't be overwriting itself. \newbox\verbbox \def\starttabbox{\global\setbox\verbbox=\hbox\bgroup} % \begingroup \catcode`\^^I=\active \gdef\tabexpand{% \catcode`\^^I=\active \def^^I{\leavevmode\egroup \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab \divide\dimen\verbbox by\tabw \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox }% } \endgroup % start the verbatim environment. \def\setupverbatim{% \let\nonarrowing = t% \nonfillstart \tt % easiest (and conventionally used) font for verbatim % The \leavevmode here is for blank lines. Otherwise, we would % never \starttabox and the \egroup would end verbatim mode. \def\par{\leavevmode\egroup\box\verbbox\endgraf}% \tabexpand \setupmarkupstyle{verbatim}% % Respect line breaks, % print special symbols as themselves, and % make each space count. % Must do in this order: \obeylines \uncatcodespecials \sepspaces \everypar{\starttabbox}% } % Do the @verb magic: verbatim text is quoted by unique % delimiter characters. Before first delimiter expect a % right brace, after last delimiter expect closing brace: % % \def\doverb'{'<char>#1<char>'}'{#1} % % [Knuth] p. 382; only eat outer {} \begingroup \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next] \endgroup % \def\verb{\begingroup\setupverb\doverb} % % % Do the @verbatim magic: define the macro \doverbatim so that % the (first) argument ends when '@end verbatim' is reached, ie: % % \def\doverbatim#1@end verbatim{#1} % % For Texinfo it's a lot easier than for LaTeX, % because texinfo's \verbatim doesn't stop at '\end{verbatim}': % we need not redefine '\', '{' and '}'. % % Inspired by LaTeX's verbatim command set [latex.ltx] % \begingroup \catcode`\ =\active \obeylines % % ignore everything up to the first ^^M, that's the newline at the end % of the @verbatim input line itself. Otherwise we get an extra blank % line in the output. \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}% % We really want {...\end verbatim} in the body of the macro, but % without the active space; thus we have to use \xdef and \gobble. \endgroup % \envdef\verbatim{% \setupverbatim\doverbatim } \let\Everbatim = \afterenvbreak % @verbatiminclude FILE - insert text of file in verbatim environment. % \def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude} % \def\doverbatiminclude#1{% {% \makevalueexpandable \setupverbatim \indexnofonts % Allow `@@' and other weird things in file names. \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}% \input #1 \afterenvbreak }% } % @copying ... @end copying. % Save the text away for @insertcopying later. % % We save the uninterpreted tokens, rather than creating a box. % Saving the text in a box would be much easier, but then all the % typesetting commands (@smallbook, font changes, etc.) have to be done % beforehand -- and a) we want @copying to be done first in the source % file; b) letting users define the frontmatter in as flexible order as % possible is very desirable. % \def\copying{\checkenv{}\begingroup\scanargctxt\docopying} \def\docopying#1@end copying{\endgroup\def\copyingtext{#1}} % \def\insertcopying{% \begingroup \parindent = 0pt % paragraph indentation looks wrong on title page \scanexp\copyingtext \endgroup } \message{defuns,} % @defun etc. \newskip\defbodyindent \defbodyindent=.4in \newskip\defargsindent \defargsindent=50pt \newskip\deflastargmargin \deflastargmargin=18pt \newcount\defunpenalty % Start the processing of @deffn: \def\startdefun{% \ifnum\lastpenalty<10000 \medbreak \defunpenalty=10003 % Will keep this @deffn together with the % following @def command, see below. \else % If there are two @def commands in a row, we'll have a \nobreak, % which is there to keep the function description together with its % header. But if there's nothing but headers, we need to allow a % break somewhere. Check specifically for penalty 10002, inserted % by \printdefunline, instead of 10000, since the sectioning % commands also insert a nobreak penalty, and we don't want to allow % a break between a section heading and a defun. % % As a further refinement, we avoid "club" headers by signalling % with penalty of 10003 after the very first @deffn in the % sequence (see above), and penalty of 10002 after any following % @def command. \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi % % Similarly, after a section heading, do not allow a break. % But do insert the glue. \medskip % preceded by discardable penalty, so not a breakpoint \fi % \parindent=0in \advance\leftskip by \defbodyindent \exdentamount=\defbodyindent } \def\dodefunx#1{% % First, check whether we are in the right environment: \checkenv#1% % % As above, allow line break if we have multiple x headers in a row. % It's not a great place, though. \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi % % And now, it's time to reuse the body of the original defun: \expandafter\gobbledefun#1% } \def\gobbledefun#1\startdefun{} % \printdefunline \deffnheader{text} % \def\printdefunline#1#2{% \begingroup % call \deffnheader: #1#2 \endheader % common ending: \interlinepenalty = 10000 \advance\rightskip by 0pt plus 1fil\relax \endgraf \nobreak\vskip -\parskip \penalty\defunpenalty % signal to \startdefun and \dodefunx % Some of the @defun-type tags do not enable magic parentheses, % rendering the following check redundant. But we don't optimize. \checkparencounts \endgroup } \def\Edefun{\endgraf\medbreak} % \makedefun{deffn} creates \deffn, \deffnx and \Edeffn; % the only thing remaining is to define \deffnheader. % \def\makedefun#1{% \expandafter\let\csname E#1\endcsname = \Edefun \edef\temp{\noexpand\domakedefun \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}% \temp } % \domakedefun \deffn \deffnx \deffnheader % % Define \deffn and \deffnx, without parameters. % \deffnheader has to be defined explicitly. % \def\domakedefun#1#2#3{% \envdef#1{% \startdefun \doingtypefnfalse % distinguish typed functions from all else \parseargusing\activeparens{\printdefunline#3}% }% \def#2{\dodefunx#1}% \def#3% } \newif\ifdoingtypefn % doing typed function? \newif\ifrettypeownline % typeset return type on its own line? % @deftypefnnewline on|off says whether the return type of typed functions % are printed on their own line. This affects @deftypefn, @deftypefun, % @deftypeop, and @deftypemethod. % \parseargdef\deftypefnnewline{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETtxideftypefnnl\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETtxideftypefnnl\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @txideftypefnnl value `\temp', must be on|off}% \fi\fi } % Untyped functions: % @deffn category name args \makedefun{deffn}{\deffngeneral{}} % @deffn category class name args \makedefun{defop}#1 {\defopon{#1\ \putwordon}} % \defopon {category on}class name args \def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deffngeneral {subind}category name args % \def\deffngeneral#1#2 #3 #4\endheader{% % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}. \dosubind{fn}{\code{#3}}{#1}% \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}% } % Typed functions: % @deftypefn category type name args \makedefun{deftypefn}{\deftypefngeneral{}} % @deftypeop category class type name args \makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}} % \deftypeopon {category on}class type name args \def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} } % \deftypefngeneral {subind}category type name args % \def\deftypefngeneral#1#2 #3 #4 #5\endheader{% \dosubind{fn}{\code{#4}}{#1}% \doingtypefntrue \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Typed variables: % @deftypevr category type var args \makedefun{deftypevr}{\deftypecvgeneral{}} % @deftypecv category class type var args \makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}} % \deftypecvof {category of}class type var args \def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} } % \deftypecvgeneral {subind}category type var args % \def\deftypecvgeneral#1#2 #3 #4 #5\endheader{% \dosubind{vr}{\code{#4}}{#1}% \defname{#2}{#3}{#4}\defunargs{#5\unskip}% } % Untyped variables: % @defvr category var args \makedefun{defvr}#1 {\deftypevrheader{#1} {} } % @defcv category class var args \makedefun{defcv}#1 {\defcvof{#1\ \putwordof}} % \defcvof {category of}class var args \def\defcvof#1#2 {\deftypecvof{#1}#2 {} } % Types: % @deftp category name args \makedefun{deftp}#1 #2 #3\endheader{% \doind{tp}{\code{#2}}% \defname{#1}{}{#2}\defunargs{#3\unskip}% } % Remaining @defun-like shortcuts: \makedefun{defun}{\deffnheader{\putwordDeffunc} } \makedefun{defmac}{\deffnheader{\putwordDefmac} } \makedefun{defspec}{\deffnheader{\putwordDefspec} } \makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} } \makedefun{defvar}{\defvrheader{\putwordDefvar} } \makedefun{defopt}{\defvrheader{\putwordDefopt} } \makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} } \makedefun{defmethod}{\defopon\putwordMethodon} \makedefun{deftypemethod}{\deftypeopon\putwordMethodon} \makedefun{defivar}{\defcvof\putwordInstanceVariableof} \makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof} % \defname, which formats the name of the @def (not the args). % #1 is the category, such as "Function". % #2 is the return type, if any. % #3 is the function name. % % We are followed by (but not passed) the arguments, if any. % \def\defname#1#2#3{% \par % Get the values of \leftskip and \rightskip as they were outside the @def... \advance\leftskip by -\defbodyindent % % Determine if we are typesetting the return type of a typed function % on a line by itself. \rettypeownlinefalse \ifdoingtypefn % doing a typed function specifically? % then check user option for putting return type on its own line: \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else \rettypeownlinetrue \fi \fi % % How we'll format the category name. Putting it in brackets helps % distinguish it from the body text that may end up on the next line % just below it. \def\temp{#1}% \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi} % % Figure out line sizes for the paragraph shape. We'll always have at % least two. \tempnum = 2 % % The first line needs space for \box0; but if \rightskip is nonzero, % we need only space for the part of \box0 which exceeds it: \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip % % If doing a return type on its own line, we'll have another line. \ifrettypeownline \advance\tempnum by 1 \def\maybeshapeline{0in \hsize}% \else \def\maybeshapeline{}% \fi % % The continuations: \dimen2=\hsize \advance\dimen2 by -\defargsindent % % The final paragraph shape: \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2 % % Put the category name at the right margin. \noindent \hbox to 0pt{% \hfil\box0 \kern-\hsize % \hsize has to be shortened this way: \kern\leftskip % Intentionally do not respect \rightskip, since we need the space. }% % % Allow all lines to be underfull without complaint: \tolerance=10000 \hbadness=10000 \exdentamount=\defbodyindent {% % defun fonts. We use typewriter by default (used to be bold) because: % . we're printing identifiers, they should be in tt in principle. % . in languages with many accents, such as Czech or French, it's % common to leave accents off identifiers. The result looks ok in % tt, but exceedingly strange in rm. % . we don't want -- and --- to be treated as ligatures. % . this still does not fix the ?` and !` ligatures, but so far no % one has made identifiers using them :). \df \tt \def\temp{#2}% text of the return type \ifx\temp\empty\else \tclose{\temp}% typeset the return type \ifrettypeownline % put return type on its own line; prohibit line break following: \hfil\vadjust{\nobreak}\break \else \space % type on same line, so just followed by a space \fi \fi % no return type #3% output function name }% {\rm\enskip}% hskip 0.5 em of \tenrm % \boldbrax % arguments will be output next, if any. } % Print arguments in slanted roman (not ttsl), inconsistently with using % tt for the name. This is because literal text is sometimes needed in % the argument list (groff manual), and ttsl and tt are not very % distinguishable. Prevent hyphenation at `-' chars. % \def\defunargs#1{% % use sl by default (not ttsl), % tt for the names. \df \sl \hyphenchar\font=0 % % On the other hand, if an argument has two dashes (for instance), we % want a way to get ttsl. We used to recommend @var for that, so % leave the code in, but it's strange for @var to lead to typewriter. % Nowadays we recommend @code, since the difference between a ttsl hyphen % and a tt hyphen is pretty tiny. @code also disables ?` !`. \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}% #1% \sl\hyphenchar\font=45 } % We want ()&[] to print specially on the defun line. % \def\activeparens{% \catcode`\(=\active \catcode`\)=\active \catcode`\[=\active \catcode`\]=\active \catcode`\&=\active } % Make control sequences which act like normal parenthesis chars. \let\lparen = ( \let\rparen = ) % Be sure that we always have a definition for `(', etc. For example, % if the fn name has parens in it, \boldbrax will not be in effect yet, % so TeX would otherwise complain about undefined control sequence. { \activeparens \global\let(=\lparen \global\let)=\rparen \global\let[=\lbrack \global\let]=\rbrack \global\let& = \& \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } \newcount\parencount % If we encounter &foo, then turn on ()-hacking afterwards \newif\ifampseen \def\amprm#1 {\ampseentrue{\bf\ }} \def\parenfont{% \ifampseen % At the first level, print parens in roman, % otherwise use the default font. \ifnum \parencount=1 \rm \fi \else % The \sf parens (in \boldbrax) actually are a little bolder than % the contained text. This is especially needed for [ and ] . \sf \fi } \def\infirstlevel#1{% \ifampseen \ifnum\parencount=1 #1% \fi \fi } \def\bfafterword#1 {#1 \bf} \def\opnr{% \global\advance\parencount by 1 {\parenfont(}% \infirstlevel \bfafterword } \def\clnr{% {\parenfont)}% \infirstlevel \sl \global\advance\parencount by -1 } \newcount\brackcount \def\lbrb{% \global\advance\brackcount by 1 {\bf[}% } \def\rbrb{% {\bf]}% \global\advance\brackcount by -1 } \def\checkparencounts{% \ifnum\parencount=0 \else \badparencount \fi \ifnum\brackcount=0 \else \badbrackcount \fi } % these should not use \errmessage; the glibc manual, at least, actually % has such constructs (when documenting function pointers). \def\badparencount{% \message{Warning: unbalanced parentheses in @def...}% \global\parencount=0 } \def\badbrackcount{% \message{Warning: unbalanced square brackets in @def...}% \global\brackcount=0 } \message{macros,} % @macro. % To do this right we need a feature of e-TeX, \scantokens, % which we arrange to emulate with a temporary file in ordinary TeX. \ifx\eTeXversion\thisisundefined \newwrite\macscribble \def\scantokens#1{% \toks0={#1}% \immediate\openout\macscribble=\jobname.tmp \immediate\write\macscribble{\the\toks0}% \immediate\closeout\macscribble \input \jobname.tmp } \fi \def\scanmacro#1{\begingroup \newlinechar`\^^M \let\xeatspaces\eatspaces % % Undo catcode changes of \startcontents and \doprintindex % When called from @insertcopying or (short)caption, we need active % backslash to get it printed correctly. Previously, we had % \catcode`\\=\other instead. We'll see whether a problem appears % with macro expansion. --kasal, 19aug04 \catcode`\@=0 \catcode`\\=\active \escapechar=`\@ % % ... and for \example: \spaceisspace % % The \empty here causes a following catcode 5 newline to be eaten as % part of reading whitespace after a control sequence. It does not % eat a catcode 13 newline. There's no good way to handle the two % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX % would then have different behavior). See the Macro Details node in % the manual for the workaround we recommend for macros and % line-oriented commands. % \scantokens{#1\empty}% \endgroup} \def\scanexp#1{% \edef\temp{\noexpand\scanmacro{#1}}% \temp } \newcount\paramno % Count of parameters \newtoks\macname % Macro name \newif\ifrecursive % Is it recursive? % List of all defined macros in the form % \definedummyword\macro1\definedummyword\macro2... % Currently is also contains all @aliases; the list can be split % if there is a need. \def\macrolist{} % Add the macro to \macrolist \def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname} \def\addtomacrolistxxx#1{% \toks0 = \expandafter{\macrolist\definedummyword#1}% \xdef\macrolist{\the\toks0}% } % Utility routines. % This does \let #1 = #2, with \csnames; that is, % \let \csname#1\endcsname = \csname#2\endcsname % (except of course we have to play expansion games). % \def\cslet#1#2{% \expandafter\let \csname#1\expandafter\endcsname \csname#2\endcsname } % Trim leading and trailing spaces off a string. % Concepts from aro-bend problem 15 (see CTAN). {\catcode`\@=11 \gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }} \gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@} \gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @} \def\unbrace#1{#1} \unbrace{\gdef\trim@@@ #1 } #2@{#1} } % Trim a single trailing ^^M off a string. {\catcode`\^^M=\other \catcode`\Q=3% \gdef\eatcr #1{\eatcra #1Q^^MQ}% \gdef\eatcra#1^^MQ{\eatcrb#1Q}% \gdef\eatcrb#1Q#2Q{#1}% } % Macro bodies are absorbed as an argument in a context where % all characters are catcode 10, 11 or 12, except \ which is active % (as in normal texinfo). It is necessary to change the definition of \ % to recognize macro arguments; this is the job of \mbodybackslash. % % Non-ASCII encodings make 8-bit characters active, so un-activate % them to avoid their expansion. Must do this non-globally, to % confine the change to the current group. % % It's necessary to have hard CRs when the macro is executed. This is % done by making ^^M (\endlinechar) catcode 12 when reading the macro % body, and then making it the \newlinechar in \scanmacro. % \def\scanctxt{% used as subroutine \catcode`\"=\other \catcode`\+=\other \catcode`\<=\other \catcode`\>=\other \catcode`\@=\other \catcode`\^=\other \catcode`\_=\other \catcode`\|=\other \catcode`\~=\other \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi } \def\scanargctxt{% used for copying and captions, not macros. \scanctxt \catcode`\\=\other \catcode`\^^M=\other } \def\macrobodyctxt{% used for @macro definitions \scanctxt \catcode`\{=\other \catcode`\}=\other \catcode`\^^M=\other \usembodybackslash } \def\macroargctxt{% used when scanning invocations \scanctxt \catcode`\\=0 } % why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes" % for the single characters \ { }. Thus, we end up with the "commands" % that would be written @\ @{ @} in a Texinfo document. % % We already have @{ and @}. For @\, we define it here, and only for % this purpose, to produce a typewriter backslash (so, the @\ that we % define for @math can't be used with @macro calls): % \def\\{\normalbackslash}% % % We would like to do this for \, too, since that is what makeinfo does. % But it is not possible, because Texinfo already has a command @, for a % cedilla accent. Documents must use @comma{} instead. % % \anythingelse will almost certainly be an error of some kind. % \mbodybackslash is the definition of \ in @macro bodies. % It maps \foo\ => \csname macarg.foo\endcsname => #N % where N is the macro parameter number. % We define \csname macarg.\endcsname to be \realbackslash, so % \\ in macro replacement text gets you a backslash. % {\catcode`@=0 @catcode`@\=@active @gdef@usembodybackslash{@let\=@mbodybackslash} @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname} } \expandafter\def\csname macarg.\endcsname{\realbackslash} \def\margbackslash#1{\char`\#1 } \def\macro{\recursivefalse\parsearg\macroxxx} \def\rmacro{\recursivetrue\parsearg\macroxxx} \def\macroxxx#1{% \getargs{#1}% now \macname is the macname and \argl the arglist \ifx\argl\empty % no arguments \paramno=0\relax \else \expandafter\parsemargdef \argl;% \if\paramno>256\relax \ifx\eTeXversion\thisisundefined \errhelp = \EMsimple \errmessage{You need eTeX to compile a file with macros with more than 256 arguments} \fi \fi \fi \if1\csname ismacro.\the\macname\endcsname \message{Warning: redefining \the\macname}% \else \expandafter\ifx\csname \the\macname\endcsname \relax \else \errmessage{Macro name \the\macname\space already defined}\fi \global\cslet{macsave.\the\macname}{\the\macname}% \global\expandafter\let\csname ismacro.\the\macname\endcsname=1% \addtomacrolist{\the\macname}% \fi \begingroup \macrobodyctxt \ifrecursive \expandafter\parsermacbody \else \expandafter\parsemacbody \fi} \parseargdef\unmacro{% \if1\csname ismacro.#1\endcsname \global\cslet{#1}{macsave.#1}% \global\expandafter\let \csname ismacro.#1\endcsname=0% % Remove the macro name from \macrolist: \begingroup \expandafter\let\csname#1\endcsname \relax \let\definedummyword\unmacrodo \xdef\macrolist{\macrolist}% \endgroup \else \errmessage{Macro #1 not defined}% \fi } % Called by \do from \dounmacro on each macro. The idea is to omit any % macro definitions that have been changed to \relax. % \def\unmacrodo#1{% \ifx #1\relax % remove this \else \noexpand\definedummyword \noexpand#1% \fi } % This makes use of the obscure feature that if the last token of a % <parameter list> is #, then the preceding argument is delimited by % an opening brace, and that opening brace is not consumed. \def\getargs#1{\getargsxxx#1{}} \def\getargsxxx#1#{\getmacname #1 \relax\getmacargs} \def\getmacname#1 #2\relax{\macname={#1}} \def\getmacargs#1{\def\argl{#1}} % For macro processing make @ a letter so that we can make Texinfo private macro names. \edef\texiatcatcode{\the\catcode`\@} \catcode `@=11\relax % Parse the optional {params} list. Set up \paramno and \paramlist % so \defmacro knows what to do. Define \macarg.BLAH for each BLAH % in the params list to some hook where the argument si to be expanded. If % there are less than 10 arguments that hook is to be replaced by ##N where N % is the position in that list, that is to say the macro arguments are to be % defined `a la TeX in the macro body. % % That gets used by \mbodybackslash (above). % % We need to get `macro parameter char #' into several definitions. % The technique used is stolen from LaTeX: let \hash be something % unexpandable, insert that wherever you need a #, and then redefine % it to # just before using the token list produced. % % The same technique is used to protect \eatspaces till just before % the macro is used. % % If there are 10 or more arguments, a different technique is used, where the % hook remains in the body, and when macro is to be expanded the body is % processed again to replace the arguments. % % In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the % argument N value and then \edef the body (nothing else will expand because of % the catcode regime underwhich the body was input). % % If you compile with TeX (not eTeX), and you have macros with 10 or more % arguments, you need that no macro has more than 256 arguments, otherwise an % error is produced. \def\parsemargdef#1;{% \paramno=0\def\paramlist{}% \let\hash\relax \let\xeatspaces\relax \parsemargdefxxx#1,;,% % In case that there are 10 or more arguments we parse again the arguments % list to set new definitions for the \macarg.BLAH macros corresponding to % each BLAH argument. It was anyhow needed to parse already once this list % in order to count the arguments, and as macros with at most 9 arguments % are by far more frequent than macro with 10 or more arguments, defining % twice the \macarg.BLAH macros does not cost too much processing power. \ifnum\paramno<10\relax\else \paramno0\relax \parsemmanyargdef@@#1,;,% 10 or more arguments \fi } \def\parsemargdefxxx#1,{% \if#1;\let\next=\relax \else \let\next=\parsemargdefxxx \advance\paramno by 1 \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname {\xeatspaces{\hash\the\paramno}}% \edef\paramlist{\paramlist\hash\the\paramno,}% \fi\next} \def\parsemmanyargdef@@#1,{% \if#1;\let\next=\relax \else \let\next=\parsemmanyargdef@@ \edef\tempb{\eatspaces{#1}}% \expandafter\def\expandafter\tempa \expandafter{\csname macarg.\tempb\endcsname}% % Note that we need some extra \noexpand\noexpand, this is because we % don't want \the to be expanded in the \parsermacbody as it uses an % \xdef . \expandafter\edef\tempa {\noexpand\noexpand\noexpand\the\toks\the\paramno}% \advance\paramno by 1\relax \fi\next} % These two commands read recursive and nonrecursive macro bodies. % (They're different since rec and nonrec macros end differently.) % \catcode `\@\texiatcatcode \long\def\parsemacbody#1@end macro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \long\def\parsermacbody#1@end rmacro% {\xdef\temp{\eatcr{#1}}\endgroup\defmacro}% \catcode `\@=11\relax \let\endargs@\relax \let\nil@\relax \def\nilm@{\nil@}% \long\def\nillm@{\nil@}% % This macro is expanded during the Texinfo macro expansion, not during its % definition. It gets all the arguments values and assigns them to macros % macarg.ARGNAME % % #1 is the macro name % #2 is the list of argument names % #3 is the list of argument values \def\getargvals@#1#2#3{% \def\macargdeflist@{}% \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion. \def\paramlist{#2,\nil@}% \def\macroname{#1}% \begingroup \macroargctxt \def\argvaluelist{#3,\nil@}% \def\@tempa{#3}% \ifx\@tempa\empty \setemptyargvalues@ \else \getargvals@@ \fi } % \def\getargvals@@{% \ifx\paramlist\nilm@ % Some sanity check needed here that \argvaluelist is also empty. \ifx\argvaluelist\nillm@ \else \errhelp = \EMsimple \errmessage{Too many arguments in macro `\macroname'!}% \fi \let\next\macargexpandinbody@ \else \ifx\argvaluelist\nillm@ % No more arguments values passed to macro. Set remaining named-arg % macros to empty. \let\next\setemptyargvalues@ \else % pop current arg name into \@tempb \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}% \expandafter\@tempa\expandafter{\paramlist}% % pop current argument value into \@tempc \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}% \expandafter\@tempa\expandafter{\argvaluelist}% % Here \@tempb is the current arg name and \@tempc is the current arg value. % First place the new argument macro definition into \@tempd \expandafter\macname\expandafter{\@tempc}% \expandafter\let\csname macarg.\@tempb\endcsname\relax \expandafter\def\expandafter\@tempe\expandafter{% \csname macarg.\@tempb\endcsname}% \edef\@tempd{\long\def\@tempe{\the\macname}}% \push@\@tempd\macargdeflist@ \let\next\getargvals@@ \fi \fi \next } \def\push@#1#2{% \expandafter\expandafter\expandafter\def \expandafter\expandafter\expandafter#2% \expandafter\expandafter\expandafter{% \expandafter#1#2}% } % Replace arguments by their values in the macro body, and place the result % in macro \@tempa \def\macvalstoargs@{% % To do this we use the property that token registers that are \the'ed % within an \edef expand only once. So we are going to place all argument % values into respective token registers. % % First we save the token context, and initialize argument numbering. \begingroup \paramno0\relax % Then, for each argument number #N, we place the corresponding argument % value into a new token list register \toks#N \expandafter\putargsintokens@\saveparamlist@,;,% % Then, we expand the body so that argument are replaced by their % values. The trick for values not to be expanded themselves is that they % are within tokens and that tokens expand only once in an \edef . \edef\@tempc{\csname mac.\macroname .body\endcsname}% % Now we restore the token stack pointer to free the token list registers % which we have used, but we make sure that expanded body is saved after % group. \expandafter \endgroup \expandafter\def\expandafter\@tempa\expandafter{\@tempc}% } \def\macargexpandinbody@{% %% Define the named-macro outside of this group and then close this group. \expandafter \endgroup \macargdeflist@ % First the replace in body the macro arguments by their values, the result % is in \@tempa . \macvalstoargs@ % Then we point at the \norecurse or \gobble (for recursive) macro value % with \@tempb . \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname % Depending on whether it is recursive or not, we need some tailing % \egroup . \ifx\@tempb\gobble \let\@tempc\relax \else \let\@tempc\egroup \fi % And now we do the real job: \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}% \@tempd } \def\putargsintokens@#1,{% \if#1;\let\next\relax \else \let\next\putargsintokens@ % First we allocate the new token list register, and give it a temporary % alias \@tempb . \toksdef\@tempb\the\paramno % Then we place the argument value into that token list register. \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname \expandafter\@tempb\expandafter{\@tempa}% \advance\paramno by 1\relax \fi \next } % Save the token stack pointer into macro #1 \def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}} % Restore the token stack pointer from number in macro #1 \def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax} % newtoks that can be used non \outer . \def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi} % Tailing missing arguments are set to empty \def\setemptyargvalues@{% \ifx\paramlist\nilm@ \let\next\macargexpandinbody@ \else \expandafter\setemptyargvaluesparser@\paramlist\endargs@ \let\next\setemptyargvalues@ \fi \next } \def\setemptyargvaluesparser@#1,#2\endargs@{% \expandafter\def\expandafter\@tempa\expandafter{% \expandafter\def\csname macarg.#1\endcsname{}}% \push@\@tempa\macargdeflist@ \def\paramlist{#2}% } % #1 is the element target macro % #2 is the list macro % #3,#4\endargs@ is the list value \def\pop@#1#2#3,#4\endargs@{% \def#1{#3}% \def#2{#4}% } \long\def\longpop@#1#2#3,#4\endargs@{% \long\def#1{#3}% \long\def#2{#4}% } % This defines a Texinfo @macro. There are eight cases: recursive and % nonrecursive macros of zero, one, up to nine, and many arguments. % Much magic with \expandafter here. % \xdef is used so that macro definitions will survive the file % they're defined in; @include reads the file inside a group. % \def\defmacro{% \let\hash=##% convert placeholders to macro parameter chars \ifrecursive \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\scanmacro{\temp}}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup\noexpand\scanmacro{\temp}}% \else \ifnum\paramno<10\relax % at most 9 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{\egroup\noexpand\scanmacro{\temp}}% \else % 10 or more \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble \fi \fi \else \ifcase\paramno % 0 \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \or % 1 \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \noexpand\braceorline \expandafter\noexpand\csname\the\macname xxx\endcsname}% \expandafter\xdef\csname\the\macname xxx\endcsname##1{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % at most 9 \ifnum\paramno<10\relax \expandafter\xdef\csname\the\macname\endcsname{% \bgroup\noexpand\macroargctxt \expandafter\noexpand\csname\the\macname xx\endcsname}% \expandafter\xdef\csname\the\macname xx\endcsname##1{% \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}% \expandafter\expandafter \expandafter\xdef \expandafter\expandafter \csname\the\macname xxx\endcsname \paramlist{% \egroup \noexpand\norecurse{\the\macname}% \noexpand\scanmacro{\temp}\egroup}% \else % 10 or more: \expandafter\xdef\csname\the\macname\endcsname{% \noexpand\getargvals@{\the\macname}{\argl}% }% \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse \fi \fi \fi} \catcode `\@\texiatcatcode\relax \def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}} % \braceorline decides whether the next nonwhitespace character is a % {. If so it reads up to the closing }, if not, it reads the whole % line. Whatever was read is then fed to the next control sequence % as an argument (by \parsebrace or \parsearg). % \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx} \def\braceorlinexxx{% \ifx\nchar\bgroup\else \expandafter\parsearg \fi \macnamexxx} % @alias. % We need some trickery to remove the optional spaces around the equal % sign. Make them active and then expand them all to nothing. % \def\alias{\parseargusing\obeyspaces\aliasxxx} \def\aliasxxx #1{\aliasyyy#1\relax} \def\aliasyyy #1=#2\relax{% {% \expandafter\let\obeyedspace=\empty \addtomacrolist{#1}% \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}% }% \next } \message{cross references,} \newwrite\auxfile \newif\ifhavexrefs % True if xref values are known. \newif\ifwarnedxrefs % True if we warned once that they aren't known. % @inforef is relatively simple. \def\inforef #1{\inforefzzz #1,,,,**} \def\inforefzzz #1,#2,#3,#4**{% \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}}, node \samp{\ignorespaces#1{}}} % @node's only job in TeX is to define \lastnode, which is used in % cross-references. The @node line might or might not have commas, and % might or might not have spaces before the first comma, like: % @node foo , bar , ... % We don't want such trailing spaces in the node name. % \parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse} % % also remove a trailing comma, in case of something like this: % @node Help-Cross, , , Cross-refs \def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse} \def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}} \let\nwnode=\node \let\lastnode=\empty % Write a cross-reference definition for the current node. #1 is the % type (Ynumbered, Yappendix, Ynothing). % \def\donoderef#1{% \ifx\lastnode\empty\else \setref{\lastnode}{#1}% \global\let\lastnode=\empty \fi } % @anchor{NAME} -- define xref target at arbitrary point. % \newcount\savesfregister % \def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi} \def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi} \def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces} % \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an % anchor), which consists of three parts: % 1) NAME-title - the current sectioning name taken from \lastsection, % or the anchor name. % 2) NAME-snt - section number and type, passed as the SNT arg, or % empty for anchors. % 3) NAME-pg - the page number. % % This is called from \donoderef, \anchor, and \dofloat. In the case of % floats, there is an additional part, which is not written here: % 4) NAME-lof - the text as it should appear in a @listoffloats. % \def\setref#1#2{% \pdfmkdest{#1}% \iflinks {% \atdummies % preserve commands, but don't expand them \edef\writexrdef##1##2{% \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef ##1}{##2}}% these are parameters of \writexrdef }% \toks0 = \expandafter{\lastsection}% \immediate \writexrdef{title}{\the\toks0 }% \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc. \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout }% \fi } % @xrefautosectiontitle on|off says whether @section(ing) names are used % automatically in xrefs, if the third arg is not explicitly specified. % This was provided as a "secret" @set xref-automatic-section-title % variable, now it's official. % \parseargdef\xrefautomaticsectiontitle{% \def\temp{#1}% \ifx\temp\onword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \empty \else\ifx\temp\offword \expandafter\let\csname SETxref-automatic-section-title\endcsname = \relax \else \errhelp = \EMsimple \errmessage{Unknown @xrefautomaticsectiontitle value `\temp', must be on|off}% \fi\fi } % % @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is % the node name, #2 the name of the Info cross-reference, #3 the printed % node name, #4 the name of the Info file, #5 the name of the printed % manual. All but the node name can be omitted. % \def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]} \def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]} \def\ref#1{\xrefX[#1,,,,,,,]} % \newbox\toprefbox \newbox\printedrefnamebox \newbox\infofilenamebox \newbox\printedmanualbox % \def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup \unsepspaces % % Get args without leading/trailing spaces. \def\printedrefname{\ignorespaces #3}% \setbox\printedrefnamebox = \hbox{\printedrefname\unskip}% % \def\infofilename{\ignorespaces #4}% \setbox\infofilenamebox = \hbox{\infofilename\unskip}% % \def\printedmanual{\ignorespaces #5}% \setbox\printedmanualbox = \hbox{\printedmanual\unskip}% % % If the printed reference name (arg #3) was not explicitly given in % the @xref, figure out what we want to use. \ifdim \wd\printedrefnamebox = 0pt % No printed node name was explicitly given. \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax % Not auto section-title: use node name inside the square brackets. \def\printedrefname{\ignorespaces #1}% \else % Auto section-title: use chapter/section title inside % the square brackets if we have it. \ifdim \wd\printedmanualbox > 0pt % It is in another manual, so we don't have it; use node name. \def\printedrefname{\ignorespaces #1}% \else \ifhavexrefs % We (should) know the real title if we have the xref values. \def\printedrefname{\refx{#1-title}{}}% \else % Otherwise just copy the Info node name. \def\printedrefname{\ignorespaces #1}% \fi% \fi \fi \fi % % Make link in pdf output. \ifpdf {\indexnofonts \turnoffactive \makevalueexpandable % This expands tokens, so do it after making catcode changes, so _ % etc. don't get their TeX definitions. This ignores all spaces in % #4, including (wrongly) those in the middle of the filename. \getfilename{#4}% % % This (wrongly) does not take account of leading or trailing % spaces in #1, which should be ignored. \edef\pdfxrefdest{#1}% \ifx\pdfxrefdest\empty \def\pdfxrefdest{Top}% no empty targets \else \txiescapepdf\pdfxrefdest % escape PDF special chars \fi % \leavevmode \startlink attr{/Border [0 0 0]}% \ifnum\filenamelength>0 goto file{\the\filename.pdf} name{\pdfxrefdest}% \else goto name{\pdfmkpgn{\pdfxrefdest}}% \fi }% \setcolor{\linkcolor}% \fi % % Float references are printed completely differently: "Figure 1.2" % instead of "[somenode], p.3". We distinguish them by the % LABEL-title being set to a magic string. {% % Have to otherify everything special to allow the \csname to % include an _ in the xref name, etc. \indexnofonts \turnoffactive \expandafter\global\expandafter\let\expandafter\Xthisreftitle \csname XR#1-title\endcsname }% \iffloat\Xthisreftitle % If the user specified the print name (third arg) to the ref, % print it instead of our usual "Figure 1.2". \ifdim\wd\printedrefnamebox = 0pt \refx{#1-snt}{}% \else \printedrefname \fi % % If the user also gave the printed manual name (fifth arg), append % "in MANUALNAME". \ifdim \wd\printedmanualbox > 0pt \space \putwordin{} \cite{\printedmanual}% \fi \else % node/anchor (non-float) references. % % If we use \unhbox to print the node names, TeX does not insert % empty discretionaries after hyphens, which means that it will not % find a line break at a hyphen in a node names. Since some manuals % are best written with fairly long node names, containing hyphens, % this is a loss. Therefore, we give the text of the node name % again, so it is as if TeX is seeing it for the first time. % \ifdim \wd\printedmanualbox > 0pt % Cross-manual reference with a printed manual name. % \crossmanualxref{\cite{\printedmanual\unskip}}% % \else\ifdim \wd\infofilenamebox > 0pt % Cross-manual reference with only an info filename (arg 4), no % printed manual name (arg 5). This is essentially the same as % the case above; we output the filename, since we have nothing else. % \crossmanualxref{\code{\infofilename\unskip}}% % \else % Reference within this manual. % % _ (for example) has to be the character _ for the purposes of the % control sequence corresponding to the node, but it has to expand % into the usual \leavevmode...\vrule stuff for purposes of % printing. So we \turnoffactive for the \refx-snt, back on for the % printing, back off for the \refx-pg. {\turnoffactive % Only output a following space if the -snt ref is nonempty; for % @unnumbered and @anchor, it won't be. \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}% \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi }% % output the `[mynode]' via the macro below so it can be overridden. \xrefprintnodename\printedrefname % % But we always want a comma and a space: ,\space % % output the `page 3'. \turnoffactive \putwordpage\tie\refx{#1-pg}{}% \fi\fi \fi \endlink \endgroup} % Output a cross-manual xref to #1. Used just above (twice). % % Only include the text "Section ``foo'' in" if the foo is neither % missing or Top. Thus, @xref{,,,foo,The Foo Manual} outputs simply % "see The Foo Manual", the idea being to refer to the whole manual. % % But, this being TeX, we can't easily compare our node name against the % string "Top" while ignoring the possible spaces before and after in % the input. By adding the arbitrary 7sp below, we make it much less % likely that a real node name would have the same width as "Top" (e.g., % in a monospaced font). Hopefully it will never happen in practice. % % For the same basic reason, we retypeset the "Top" at every % reference, since the current font is indeterminate. % \def\crossmanualxref#1{% \setbox\toprefbox = \hbox{Top\kern7sp}% \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}% \ifdim \wd2 > 7sp % nonempty? \ifdim \wd2 = \wd\toprefbox \else % same as Top? \putwordSection{} ``\printedrefname'' \putwordin{}\space \fi \fi #1% } % This macro is called from \xrefX for the `[nodename]' part of xref % output. It's a separate macro only so it can be changed more easily, % since square brackets don't work well in some documents. Particularly % one that Bob is working on :). % \def\xrefprintnodename#1{[#1]} % Things referred to by \setref. % \def\Ynothing{} \def\Yomitfromtoc{} \def\Ynumbered{% \ifnum\secno=0 \putwordChapter@tie \the\chapno \else \ifnum\subsecno=0 \putwordSection@tie \the\chapno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie \the\chapno.\the\secno.\the\subsecno \else \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } \def\Yappendix{% \ifnum\secno=0 \putwordAppendix@tie @char\the\appendixno{}% \else \ifnum\subsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno \else \ifnum\subsubsecno=0 \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno \else \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno \fi\fi\fi } % Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME. % If its value is nonempty, SUFFIX is output afterward. % \def\refx#1#2{% {% \indexnofonts \otherbackslash \expandafter\global\expandafter\let\expandafter\thisrefX \csname XR#1\endcsname }% \ifx\thisrefX\relax % If not defined, say something at least. \angleleft un\-de\-fined\angleright \iflinks \ifhavexrefs {\toks0 = {#1}% avoid expansion of possibly-complex value \message{\linenumber Undefined cross reference `\the\toks0'.}}% \else \ifwarnedxrefs\else \global\warnedxrefstrue \message{Cross reference values unknown; you must run TeX again.}% \fi \fi \fi \else % It's defined, so just use it. \thisrefX \fi #2% Output the suffix in any case. } % This is the macro invoked by entries in the aux file. Usually it's % just a \def (we prepend XR to the control sequence name to avoid % collisions). But if this is a float type, we have more work to do. % \def\xrdef#1#2{% {% The node name might contain 8-bit characters, which in our current % implementation are changed to commands like @'e. Don't let these % mess up the control sequence name. \indexnofonts \turnoffactive \xdef\safexrefname{#1}% }% % \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref % % Was that xref control sequence that we just defined for a float? \expandafter\iffloat\csname XR\safexrefname\endcsname % it was a float, and we have the (safe) float type in \iffloattype. \expandafter\let\expandafter\floatlist \csname floatlist\iffloattype\endcsname % % Is this the first time we've seen this float type? \expandafter\ifx\floatlist\relax \toks0 = {\do}% yes, so just \do \else % had it before, so preserve previous elements in list. \toks0 = \expandafter{\floatlist\do}% \fi % % Remember this xref in the control sequence \floatlistFLOATTYPE, % for later use in \listoffloats. \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0 {\safexrefname}}% \fi } % Read the last existing aux file, if any. No error if none exists. % \def\tryauxfile{% \openin 1 \jobname.aux \ifeof 1 \else \readdatafile{aux}% \global\havexrefstrue \fi \closein 1 } \def\setupdatafile{% \catcode`\^^@=\other \catcode`\^^A=\other \catcode`\^^B=\other \catcode`\^^C=\other \catcode`\^^D=\other \catcode`\^^E=\other \catcode`\^^F=\other \catcode`\^^G=\other \catcode`\^^H=\other \catcode`\^^K=\other \catcode`\^^L=\other \catcode`\^^N=\other \catcode`\^^P=\other \catcode`\^^Q=\other \catcode`\^^R=\other \catcode`\^^S=\other \catcode`\^^T=\other \catcode`\^^U=\other \catcode`\^^V=\other \catcode`\^^W=\other \catcode`\^^X=\other \catcode`\^^Z=\other \catcode`\^^[=\other \catcode`\^^\=\other \catcode`\^^]=\other \catcode`\^^^=\other \catcode`\^^_=\other % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc. % in xref tags, i.e., node names. But since ^^e4 notation isn't % supported in the main text, it doesn't seem desirable. Furthermore, % that is not enough: for node names that actually contain a ^ % character, we would end up writing a line like this: 'xrdef {'hat % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first % argument, and \hat is not an expandable control sequence. It could % all be worked out, but why? Either we support ^^ or we don't. % % The other change necessary for this was to define \auxhat: % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter % and then to call \auxhat in \setq. % \catcode`\^=\other % % Special characters. Should be turned off anyway, but... \catcode`\~=\other \catcode`\[=\other \catcode`\]=\other \catcode`\"=\other \catcode`\_=\other \catcode`\|=\other \catcode`\<=\other \catcode`\>=\other \catcode`\$=\other \catcode`\#=\other \catcode`\&=\other \catcode`\%=\other \catcode`+=\other % avoid \+ for paranoia even though we've turned it off % % This is to support \ in node names and titles, since the \ % characters end up in a \csname. It's easier than % leaving it active and making its active definition an actual \ % character. What I don't understand is why it works in the *value* % of the xrdef. Seems like it should be a catcode12 \, and that % should not typeset properly. But it works, so I'm moving on for % now. --karl, 15jan04. \catcode`\\=\other % % Make the characters 128-255 be printing characters. {% \count1=128 \def\loop{% \catcode\count1=\other \advance\count1 by 1 \ifnum \count1<256 \loop \fi }% }% % % @ is our escape character in .aux files, and we need braces. \catcode`\{=1 \catcode`\}=2 \catcode`\@=0 } \def\readdatafile#1{% \begingroup \setupdatafile \input\jobname.#1 \endgroup} \message{insertions,} % including footnotes. \newcount \footnoteno % The trailing space in the following definition for supereject is % vital for proper filling; pages come out unaligned when you do a % pagealignmacro call if that space before the closing brace is % removed. (Generally, numeric constants should always be followed by a % space to prevent strange expansion errors.) \def\supereject{\par\penalty -20000\footnoteno =0 } % @footnotestyle is meaningful for Info output only. \let\footnotestyle=\comment {\catcode `\@=11 % % Auto-number footnotes. Otherwise like plain. \gdef\footnote{% \let\indent=\ptexindent \let\noindent=\ptexnoindent \global\advance\footnoteno by \@ne \edef\thisfootno{$^{\the\footnoteno}$}% % % In case the footnote comes at the end of a sentence, preserve the % extra spacing after we do the footnote number. \let\@sf\empty \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi % % Remove inadvertent blank space before typesetting the footnote number. \unskip \thisfootno\@sf \dofootnote }% % Don't bother with the trickery in plain.tex to not require the % footnote text as a parameter. Our footnotes don't need to be so general. % % Oh yes, they do; otherwise, @ifset (and anything else that uses % \parseargline) fails inside footnotes because the tokens are fixed when % the footnote is read. --karl, 16nov96. % \gdef\dofootnote{% \insert\footins\bgroup % We want to typeset this text as a normal paragraph, even if the % footnote reference occurs in (for example) a display environment. % So reset some parameters. \hsize=\pagewidth \interlinepenalty\interfootnotelinepenalty \splittopskip\ht\strutbox % top baseline for broken footnotes \splitmaxdepth\dp\strutbox \floatingpenalty\@MM \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip \parindent\defaultparindent % \smallfonts \rm % % Because we use hanging indentation in footnotes, a @noindent appears % to exdent this text, so make it be a no-op. makeinfo does not use % hanging indentation so @noindent can still be needed within footnote % text after an @example or the like (not that this is good style). \let\noindent = \relax % % Hang the footnote text off the number. Use \everypar in case the % footnote extends for more than one paragraph. \everypar = {\hang}% \textindent{\thisfootno}% % % Don't crash into the line above the footnote text. Since this % expands into a box, it must come within the paragraph, lest it % provide a place where TeX can split the footnote. \footstrut % % Invoke rest of plain TeX footnote routine. \futurelet\next\fo@t } }%end \catcode `\@=11 % In case a @footnote appears in a vbox, save the footnote text and create % the real \insert just after the vbox finished. Otherwise, the insertion % would be lost. % Similarly, if a @footnote appears inside an alignment, save the footnote % text to a box and make the \insert when a row of the table is finished. % And the same can be done for other insert classes. --kasal, 16nov03. % Replace the \insert primitive by a cheating macro. % Deeper inside, just make sure that the saved insertions are not spilled % out prematurely. % \def\startsavinginserts{% \ifx \insert\ptexinsert \let\insert\saveinsert \else \let\checkinserts\relax \fi } % This \insert replacement works for both \insert\footins{foo} and % \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}. % \def\saveinsert#1{% \edef\next{\noexpand\savetobox \makeSAVEname#1}% \afterassignment\next % swallow the left brace \let\temp = } \def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}} \def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1} \def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi} \def\placesaveins#1{% \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname {\box#1}% } % eat @SAVE -- beware, all of them have catcode \other: { \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-) \gdef\gobblesave @SAVE{} } % initialization: \def\newsaveins #1{% \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}% \next } \def\newsaveinsX #1{% \csname newbox\endcsname #1% \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts \checksaveins #1}% } % initialize: \let\checkinserts\empty \newsaveins\footins \newsaveins\margin % @image. We use the macros from epsf.tex to support this. % If epsf.tex is not installed and @image is used, we complain. % % Check for and read epsf.tex up front. If we read it only at @image % time, we might be inside a group, and then its definitions would get % undone and the next image would fail. \openin 1 = epsf.tex \ifeof 1 \else % Do not bother showing banner with epsf.tex v2.7k (available in % doc/epsf.tex and on ctan). \def\epsfannounce{\toks0 = }% \input epsf.tex \fi \closein 1 % % We will only complain once about lack of epsf.tex. \newif\ifwarnednoepsf \newhelp\noepsfhelp{epsf.tex must be installed for images to work. It is also included in the Texinfo distribution, or you can get it from ftp://tug.org/tex/epsf.tex.} % \def\image#1{% \ifx\epsfbox\thisisundefined \ifwarnednoepsf \else \errhelp = \noepsfhelp \errmessage{epsf.tex not found, images will be ignored}% \global\warnednoepsftrue \fi \else \imagexxx #1,,,,,\finish \fi } % % Arguments to @image: % #1 is (mandatory) image filename; we tack on .eps extension. % #2 is (optional) width, #3 is (optional) height. % #4 is (ignored optional) html alt text. % #5 is (ignored optional) extension. % #6 is just the usual extra ignored arg for parsing stuff. \newif\ifimagevmode \def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup \catcode`\^^M = 5 % in case we're inside an example \normalturnoffactive % allow _ et al. in names % If the image is by itself, center it. \ifvmode \imagevmodetrue \else \ifx\centersub\centerV % for @center @image, we need a vbox so we can have our vertical space \imagevmodetrue \vbox\bgroup % vbox has better behavior than vtop herev \fi\fi % \ifimagevmode \nobreak\medskip % Usually we'll have text after the image which will insert % \parskip glue, so insert it here too to equalize the space % above and below. \nobreak\vskip\parskip \nobreak \fi % % Leave vertical mode so that indentation from an enclosing % environment such as @quotation is respected. % However, if we're at the top level, we don't want the % normal paragraph indentation. % On the other hand, if we are in the case of @center @image, we don't % want to start a paragraph, which will create a hsize-width box and % eradicate the centering. \ifx\centersub\centerV\else \noindent \fi % % Output the image. \ifpdf \dopdfimage{#1}{#2}{#3}% \else % \epsfbox itself resets \epsf?size at each figure. \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi \epsfbox{#1.eps}% \fi % \ifimagevmode \medskip % space after a standalone image \fi \ifx\centersub\centerV \egroup \fi \endgroup} % @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables, % etc. We don't actually implement floating yet, we always include the % float "here". But it seemed the best name for the future. % \envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish} % There may be a space before second and/or third parameter; delete it. \def\eatcommaspace#1, {#1,} % #1 is the optional FLOATTYPE, the text label for this float, typically % "Figure", "Table", "Example", etc. Can't contain commas. If omitted, % this float will not be numbered and cannot be referred to. % % #2 is the optional xref label. Also must be present for the float to % be referable. % % #3 is the optional positioning argument; for now, it is ignored. It % will somehow specify the positions allowed to float to (here, top, bottom). % % We keep a separate counter for each FLOATTYPE, which we reset at each % chapter-level command. \let\resetallfloatnos=\empty % \def\dofloat#1,#2,#3,#4\finish{% \let\thiscaption=\empty \let\thisshortcaption=\empty % % don't lose footnotes inside @float. % % BEWARE: when the floats start float, we have to issue warning whenever an % insert appears inside a float which could possibly float. --kasal, 26may04 % \startsavinginserts % % We can't be used inside a paragraph. \par % \vtop\bgroup \def\floattype{#1}% \def\floatlabel{#2}% \def\floatloc{#3}% we do nothing with this yet. % \ifx\floattype\empty \let\safefloattype=\empty \else {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% \fi % % If label is given but no type, we handle that as the empty type. \ifx\floatlabel\empty \else % We want each FLOATTYPE to be numbered separately (Figure 1, % Table 1, Figure 2, ...). (And if no label, no number.) % \expandafter\getfloatno\csname\safefloattype floatno\endcsname \global\advance\floatno by 1 % {% % This magic value for \lastsection is output by \setref as the % XREFLABEL-title value. \xrefX uses it to distinguish float % labels (which have a completely different output format) from % node and anchor labels. And \xrdef uses it to construct the % lists of floats. % \edef\lastsection{\floatmagic=\safefloattype}% \setref{\floatlabel}{Yfloat}% }% \fi % % start with \parskip glue, I guess. \vskip\parskip % % Don't suppress indentation if a float happens to start a section. \restorefirstparagraphindent } % we have these possibilities: % @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap % @float Foo,lbl & no caption: Foo 1.1 % @float Foo & @caption{Cap}: Foo: Cap % @float Foo & no caption: Foo % @float ,lbl & Caption{Cap}: 1.1: Cap % @float ,lbl & no caption: 1.1 % @float & @caption{Cap}: Cap % @float & no caption: % \def\Efloat{% \let\floatident = \empty % % In all cases, if we have a float type, it comes first. \ifx\floattype\empty \else \def\floatident{\floattype}\fi % % If we have an xref label, the number comes next. \ifx\floatlabel\empty \else \ifx\floattype\empty \else % if also had float type, need tie first. \appendtomacro\floatident{\tie}% \fi % the number. \appendtomacro\floatident{\chaplevelprefix\the\floatno}% \fi % % Start the printed caption with what we've constructed in % \floatident, but keep it separate; we need \floatident again. \let\captionline = \floatident % \ifx\thiscaption\empty \else \ifx\floatident\empty \else \appendtomacro\captionline{: }% had ident, so need a colon between \fi % % caption text. \appendtomacro\captionline{\scanexp\thiscaption}% \fi % % If we have anything to print, print it, with space before. % Eventually this needs to become an \insert. \ifx\captionline\empty \else \vskip.5\parskip \captionline % % Space below caption. \vskip\parskip \fi % % If have an xref label, write the list of floats info. Do this % after the caption, to avoid chance of it being a breakpoint. \ifx\floatlabel\empty \else % Write the text that goes in the lof to the aux file as % \floatlabel-lof. Besides \floatident, we include the short % caption if specified, else the full caption if specified, else nothing. {% \atdummies % % since we read the caption text in the macro world, where ^^M % is turned into a normal character, we have to scan it back, so % we don't write the literal three characters "^^M" into the aux file. \scanexp{% \xdef\noexpand\gtemp{% \ifx\thisshortcaption\empty \thiscaption \else \thisshortcaption \fi }% }% \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident \ifx\gtemp\empty \else : \gtemp \fi}}% }% \fi \egroup % end of \vtop % % place the captured inserts % % BEWARE: when the floats start floating, we have to issue warning % whenever an insert appears inside a float which could possibly % float. --kasal, 26may04 % \checkinserts } % Append the tokens #2 to the definition of macro #1, not expanding either. % \def\appendtomacro#1#2{% \expandafter\def\expandafter#1\expandafter{#1#2}% } % @caption, @shortcaption % \def\caption{\docaption\thiscaption} \def\shortcaption{\docaption\thisshortcaption} \def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption} \def\defcaption#1#2{\egroup \def#1{#2}} % The parameter is the control sequence identifying the counter we are % going to use. Create it if it doesn't exist and assign it to \floatno. \def\getfloatno#1{% \ifx#1\relax % Haven't seen this figure type before. \csname newcount\endcsname #1% % % Remember to reset this floatno at the next chap. \expandafter\gdef\expandafter\resetallfloatnos \expandafter{\resetallfloatnos #1=0 }% \fi \let\floatno#1% } % \setref calls this to get the XREFLABEL-snt value. We want an @xref % to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we % first read the @float command. % \def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}% % Magic string used for the XREFLABEL-title value, so \xrefX can % distinguish floats from other xref types. \def\floatmagic{!!float!!} % #1 is the control sequence we are passed; we expand into a conditional % which is true if #1 represents a float ref. That is, the magic % \lastsection value which we \setref above. % \def\iffloat#1{\expandafter\doiffloat#1==\finish} % % #1 is (maybe) the \floatmagic string. If so, #2 will be the % (safe) float type for this float. We set \iffloattype to #2. % \def\doiffloat#1=#2=#3\finish{% \def\temp{#1}% \def\iffloattype{#2}% \ifx\temp\floatmagic } % @listoffloats FLOATTYPE - print a list of floats like a table of contents. % \parseargdef\listoffloats{% \def\floattype{#1}% floattype {% % the floattype might have accents or other special characters, % but we need to use it in a control sequence name. \indexnofonts \turnoffactive \xdef\safefloattype{\floattype}% }% % % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE. \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax \ifhavexrefs % if the user said @listoffloats foo but never @float foo. \message{\linenumber No `\safefloattype' floats to list.}% \fi \else \begingroup \leftskip=\tocindent % indent these entries like a toc \let\do=\listoffloatsdo \csname floatlist\safefloattype\endcsname \endgroup \fi } % This is called on each entry in a list of floats. We're passed the % xref label, in the form LABEL-title, which is how we save it in the % aux file. We strip off the -title and look up \XRLABEL-lof, which % has the text we're supposed to typeset here. % % Figures without xref labels will not be included in the list (since % they won't appear in the aux file). % \def\listoffloatsdo#1{\listoffloatsdoentry#1\finish} \def\listoffloatsdoentry#1-title\finish{{% % Can't fully expand XR#1-lof because it can contain anything. Just % pass the control sequence. On the other hand, XR#1-pg is just the % page number, and we want to fully expand that so we can get a link % in pdf output. \toksA = \expandafter{\csname XR#1-lof\endcsname}% % % use the same \entry macro we use to generate the TOC and index. \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}% \writeentry }} \message{localization,} % For single-language documents, @documentlanguage is usually given very % early, just after @documentencoding. Single argument is the language % (de) or locale (de_DE) abbreviation. % { \catcode`\_ = \active \globaldefs=1 \parseargdef\documentlanguage{\begingroup \let_=\normalunderscore % normal _ character for filenames \tex % read txi-??.tex file in plain TeX. % Read the file by the name they passed if it exists. \openin 1 txi-#1.tex \ifeof 1 \documentlanguagetrywithoutunderscore{#1_\finish}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 \endgroup % end raw TeX \endgroup} % % If they passed de_DE, and txi-de_DE.tex doesn't exist, % try txi-de.tex. % \gdef\documentlanguagetrywithoutunderscore#1_#2\finish{% \openin 1 txi-#1.tex \ifeof 1 \errhelp = \nolanghelp \errmessage{Cannot read language file txi-#1.tex}% \else \globaldefs = 1 % everything in the txi-LL files needs to persist \input txi-#1.tex \fi \closein 1 } }% end of special _ catcode % \newhelp\nolanghelp{The given language definition file cannot be found or is empty. Maybe you need to install it? Putting it in the current directory should work if nowhere else does.} % This macro is called from txi-??.tex files; the first argument is the % \language name to set (without the "\lang@" prefix), the second and % third args are \{left,right}hyphenmin. % % The language names to pass are determined when the format is built. % See the etex.log file created at that time, e.g., % /usr/local/texlive/2008/texmf-var/web2c/pdftex/etex.log. % % With TeX Live 2008, etex now includes hyphenation patterns for all % available languages. This means we can support hyphenation in % Texinfo, at least to some extent. (This still doesn't solve the % accented characters problem.) % \catcode`@=11 \def\txisetlanguage#1#2#3{% % do not set the language if the name is undefined in the current TeX. \expandafter\ifx\csname lang@#1\endcsname \relax \message{no patterns for #1}% \else \global\language = \csname lang@#1\endcsname \fi % but there is no harm in adjusting the hyphenmin values regardless. \global\lefthyphenmin = #2\relax \global\righthyphenmin = #3\relax } % Helpers for encodings. % Set the catcode of characters 128 through 255 to the specified number. % \def\setnonasciicharscatcode#1{% \count255=128 \loop\ifnum\count255<256 \global\catcode\count255=#1\relax \advance\count255 by 1 \repeat } \def\setnonasciicharscatcodenonglobal#1{% \count255=128 \loop\ifnum\count255<256 \catcode\count255=#1\relax \advance\count255 by 1 \repeat } % @documentencoding sets the definition of non-ASCII characters % according to the specified encoding. % \parseargdef\documentencoding{% % Encoding being declared for the document. \def\declaredencoding{\csname #1.enc\endcsname}% % % Supported encodings: names converted to tokens in order to be able % to compare them with \ifx. \def\ascii{\csname US-ASCII.enc\endcsname}% \def\latnine{\csname ISO-8859-15.enc\endcsname}% \def\latone{\csname ISO-8859-1.enc\endcsname}% \def\lattwo{\csname ISO-8859-2.enc\endcsname}% \def\utfeight{\csname UTF-8.enc\endcsname}% % \ifx \declaredencoding \ascii \asciichardefs % \else \ifx \declaredencoding \lattwo \setnonasciicharscatcode\active \lattwochardefs % \else \ifx \declaredencoding \latone \setnonasciicharscatcode\active \latonechardefs % \else \ifx \declaredencoding \latnine \setnonasciicharscatcode\active \latninechardefs % \else \ifx \declaredencoding \utfeight \setnonasciicharscatcode\active \utfeightchardefs % \else \message{Unknown document encoding #1, ignoring.}% % \fi % utfeight \fi % latnine \fi % latone \fi % lattwo \fi % ascii } % A message to be logged when using a character that isn't available % the default font encoding (OT1). % \def\missingcharmsg#1{\message{Character missing in OT1 encoding: #1.}} % Take account of \c (plain) vs. \, (Texinfo) difference. \def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi} % First, make active non-ASCII characters in order for them to be % correctly categorized when TeX reads the replacement text of % macros containing the character definitions. \setnonasciicharscatcode\active % % Latin1 (ISO-8859-1) character definitions. \def\latonechardefs{% \gdef^^a0{\tie} \gdef^^a1{\exclamdown} \gdef^^a2{\missingcharmsg{CENT SIGN}} \gdef^^a3{{\pounds}} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\missingcharmsg{YEN SIGN}} \gdef^^a6{\missingcharmsg{BROKEN BAR}} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\copyright} \gdef^^aa{\ordf} \gdef^^ab{\guillemetleft} \gdef^^ac{$\lnot$} \gdef^^ad{\-} \gdef^^ae{\registeredsymbol} \gdef^^af{\={}} % \gdef^^b0{\textdegree} \gdef^^b1{$\pm$} \gdef^^b2{$^2$} \gdef^^b3{$^3$} \gdef^^b4{\'{}} \gdef^^b5{$\mu$} \gdef^^b6{\P} % \gdef^^b7{$^.$} \gdef^^b8{\cedilla\ } \gdef^^b9{$^1$} \gdef^^ba{\ordm} % \gdef^^bb{\guillemetright} \gdef^^bc{$1\over4$} \gdef^^bd{$1\over2$} \gdef^^be{$3\over4$} \gdef^^bf{\questiondown} % \gdef^^c0{\`A} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\~A} \gdef^^c4{\"A} \gdef^^c5{\ringaccent A} \gdef^^c6{\AE} \gdef^^c7{\cedilla C} \gdef^^c8{\`E} \gdef^^c9{\'E} \gdef^^ca{\^E} \gdef^^cb{\"E} \gdef^^cc{\`I} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\"I} % \gdef^^d0{\DH} \gdef^^d1{\~N} \gdef^^d2{\`O} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\~O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\O} \gdef^^d9{\`U} \gdef^^da{\'U} \gdef^^db{\^U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\TH} \gdef^^df{\ss} % \gdef^^e0{\`a} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\~a} \gdef^^e4{\"a} \gdef^^e5{\ringaccent a} \gdef^^e6{\ae} \gdef^^e7{\cedilla c} \gdef^^e8{\`e} \gdef^^e9{\'e} \gdef^^ea{\^e} \gdef^^eb{\"e} \gdef^^ec{\`{\dotless i}} \gdef^^ed{\'{\dotless i}} \gdef^^ee{\^{\dotless i}} \gdef^^ef{\"{\dotless i}} % \gdef^^f0{\dh} \gdef^^f1{\~n} \gdef^^f2{\`o} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\~o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\o} \gdef^^f9{\`u} \gdef^^fa{\'u} \gdef^^fb{\^u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\th} \gdef^^ff{\"y} } % Latin9 (ISO-8859-15) encoding character definitions. \def\latninechardefs{% % Encoding is almost identical to Latin1. \latonechardefs % \gdef^^a4{\euro} \gdef^^a6{\v S} \gdef^^a8{\v s} \gdef^^b4{\v Z} \gdef^^b8{\v z} \gdef^^bc{\OE} \gdef^^bd{\oe} \gdef^^be{\"Y} } % Latin2 (ISO-8859-2) character definitions. \def\lattwochardefs{% \gdef^^a0{\tie} \gdef^^a1{\ogonek{A}} \gdef^^a2{\u{}} \gdef^^a3{\L} \gdef^^a4{\missingcharmsg{CURRENCY SIGN}} \gdef^^a5{\v L} \gdef^^a6{\'S} \gdef^^a7{\S} \gdef^^a8{\"{}} \gdef^^a9{\v S} \gdef^^aa{\cedilla S} \gdef^^ab{\v T} \gdef^^ac{\'Z} \gdef^^ad{\-} \gdef^^ae{\v Z} \gdef^^af{\dotaccent Z} % \gdef^^b0{\textdegree} \gdef^^b1{\ogonek{a}} \gdef^^b2{\ogonek{ }} \gdef^^b3{\l} \gdef^^b4{\'{}} \gdef^^b5{\v l} \gdef^^b6{\'s} \gdef^^b7{\v{}} \gdef^^b8{\cedilla\ } \gdef^^b9{\v s} \gdef^^ba{\cedilla s} \gdef^^bb{\v t} \gdef^^bc{\'z} \gdef^^bd{\H{}} \gdef^^be{\v z} \gdef^^bf{\dotaccent z} % \gdef^^c0{\'R} \gdef^^c1{\'A} \gdef^^c2{\^A} \gdef^^c3{\u A} \gdef^^c4{\"A} \gdef^^c5{\'L} \gdef^^c6{\'C} \gdef^^c7{\cedilla C} \gdef^^c8{\v C} \gdef^^c9{\'E} \gdef^^ca{\ogonek{E}} \gdef^^cb{\"E} \gdef^^cc{\v E} \gdef^^cd{\'I} \gdef^^ce{\^I} \gdef^^cf{\v D} % \gdef^^d0{\DH} \gdef^^d1{\'N} \gdef^^d2{\v N} \gdef^^d3{\'O} \gdef^^d4{\^O} \gdef^^d5{\H O} \gdef^^d6{\"O} \gdef^^d7{$\times$} \gdef^^d8{\v R} \gdef^^d9{\ringaccent U} \gdef^^da{\'U} \gdef^^db{\H U} \gdef^^dc{\"U} \gdef^^dd{\'Y} \gdef^^de{\cedilla T} \gdef^^df{\ss} % \gdef^^e0{\'r} \gdef^^e1{\'a} \gdef^^e2{\^a} \gdef^^e3{\u a} \gdef^^e4{\"a} \gdef^^e5{\'l} \gdef^^e6{\'c} \gdef^^e7{\cedilla c} \gdef^^e8{\v c} \gdef^^e9{\'e} \gdef^^ea{\ogonek{e}} \gdef^^eb{\"e} \gdef^^ec{\v e} \gdef^^ed{\'{\dotless{i}}} \gdef^^ee{\^{\dotless{i}}} \gdef^^ef{\v d} % \gdef^^f0{\dh} \gdef^^f1{\'n} \gdef^^f2{\v n} \gdef^^f3{\'o} \gdef^^f4{\^o} \gdef^^f5{\H o} \gdef^^f6{\"o} \gdef^^f7{$\div$} \gdef^^f8{\v r} \gdef^^f9{\ringaccent u} \gdef^^fa{\'u} \gdef^^fb{\H u} \gdef^^fc{\"u} \gdef^^fd{\'y} \gdef^^fe{\cedilla t} \gdef^^ff{\dotaccent{}} } % UTF-8 character definitions. % % This code to support UTF-8 is based on LaTeX's utf8.def, with some % changes for Texinfo conventions. It is included here under the GPL by % permission from Frank Mittelbach and the LaTeX team. % \newcount\countUTFx \newcount\countUTFy \newcount\countUTFz \gdef\UTFviiiTwoOctets#1#2{\expandafter \UTFviiiDefined\csname u8:#1\string #2\endcsname} % \gdef\UTFviiiThreeOctets#1#2#3{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname} % \gdef\UTFviiiFourOctets#1#2#3#4{\expandafter \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname} \gdef\UTFviiiDefined#1{% \ifx #1\relax \message{\linenumber Unicode char \string #1 not defined for Texinfo}% \else \expandafter #1% \fi } \begingroup \catcode`\~13 \catcode`\"12 \def\UTFviiiLoop{% \global\catcode\countUTFx\active \uccode`\~\countUTFx \uppercase\expandafter{\UTFviiiTmp}% \advance\countUTFx by 1 \ifnum\countUTFx < \countUTFy \expandafter\UTFviiiLoop \fi} \countUTFx = "C2 \countUTFy = "E0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiTwoOctets\string~}} \UTFviiiLoop \countUTFx = "E0 \countUTFy = "F0 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiThreeOctets\string~}} \UTFviiiLoop \countUTFx = "F0 \countUTFy = "F4 \def\UTFviiiTmp{% \xdef~{\noexpand\UTFviiiFourOctets\string~}} \UTFviiiLoop \endgroup \begingroup \catcode`\"=12 \catcode`\<=12 \catcode`\.=12 \catcode`\,=12 \catcode`\;=12 \catcode`\!=12 \catcode`\~=13 \gdef\DeclareUnicodeCharacter#1#2{% \countUTFz = "#1\relax %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}% \begingroup \parseXMLCharref \def\UTFviiiTwoOctets##1##2{% \csname u8:##1\string ##2\endcsname}% \def\UTFviiiThreeOctets##1##2##3{% \csname u8:##1\string ##2\string ##3\endcsname}% \def\UTFviiiFourOctets##1##2##3##4{% \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% \expandafter\expandafter\expandafter\expandafter \expandafter\expandafter\expandafter \gdef\UTFviiiTmp{#2}% \endgroup} \gdef\parseXMLCharref{% \ifnum\countUTFz < "A0\relax \errhelp = \EMsimple \errmessage{Cannot define Unicode char value < 00A0}% \else\ifnum\countUTFz < "800\relax \parseUTFviiiA,% \parseUTFviiiB C\UTFviiiTwoOctets.,% \else\ifnum\countUTFz < "10000\relax \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% \else \parseUTFviiiA;% \parseUTFviiiA,% \parseUTFviiiA!% \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% \fi\fi\fi } \gdef\parseUTFviiiA#1{% \countUTFx = \countUTFz \divide\countUTFz by 64 \countUTFy = \countUTFz \multiply\countUTFz by 64 \advance\countUTFx by -\countUTFz \advance\countUTFx by 128 \uccode `#1\countUTFx \countUTFz = \countUTFy} \gdef\parseUTFviiiB#1#2#3#4{% \advance\countUTFz by "#10\relax \uccode `#3\countUTFz \uppercase{\gdef\UTFviiiTmp{#2#3#4}}} \endgroup \def\utfeightchardefs{% \DeclareUnicodeCharacter{00A0}{\tie} \DeclareUnicodeCharacter{00A1}{\exclamdown} \DeclareUnicodeCharacter{00A3}{\pounds} \DeclareUnicodeCharacter{00A8}{\"{ }} \DeclareUnicodeCharacter{00A9}{\copyright} \DeclareUnicodeCharacter{00AA}{\ordf} \DeclareUnicodeCharacter{00AB}{\guillemetleft} \DeclareUnicodeCharacter{00AD}{\-} \DeclareUnicodeCharacter{00AE}{\registeredsymbol} \DeclareUnicodeCharacter{00AF}{\={ }} \DeclareUnicodeCharacter{00B0}{\ringaccent{ }} \DeclareUnicodeCharacter{00B4}{\'{ }} \DeclareUnicodeCharacter{00B8}{\cedilla{ }} \DeclareUnicodeCharacter{00BA}{\ordm} \DeclareUnicodeCharacter{00BB}{\guillemetright} \DeclareUnicodeCharacter{00BF}{\questiondown} \DeclareUnicodeCharacter{00C0}{\`A} \DeclareUnicodeCharacter{00C1}{\'A} \DeclareUnicodeCharacter{00C2}{\^A} \DeclareUnicodeCharacter{00C3}{\~A} \DeclareUnicodeCharacter{00C4}{\"A} \DeclareUnicodeCharacter{00C5}{\AA} \DeclareUnicodeCharacter{00C6}{\AE} \DeclareUnicodeCharacter{00C7}{\cedilla{C}} \DeclareUnicodeCharacter{00C8}{\`E} \DeclareUnicodeCharacter{00C9}{\'E} \DeclareUnicodeCharacter{00CA}{\^E} \DeclareUnicodeCharacter{00CB}{\"E} \DeclareUnicodeCharacter{00CC}{\`I} \DeclareUnicodeCharacter{00CD}{\'I} \DeclareUnicodeCharacter{00CE}{\^I} \DeclareUnicodeCharacter{00CF}{\"I} \DeclareUnicodeCharacter{00D0}{\DH} \DeclareUnicodeCharacter{00D1}{\~N} \DeclareUnicodeCharacter{00D2}{\`O} \DeclareUnicodeCharacter{00D3}{\'O} \DeclareUnicodeCharacter{00D4}{\^O} \DeclareUnicodeCharacter{00D5}{\~O} \DeclareUnicodeCharacter{00D6}{\"O} \DeclareUnicodeCharacter{00D8}{\O} \DeclareUnicodeCharacter{00D9}{\`U} \DeclareUnicodeCharacter{00DA}{\'U} \DeclareUnicodeCharacter{00DB}{\^U} \DeclareUnicodeCharacter{00DC}{\"U} \DeclareUnicodeCharacter{00DD}{\'Y} \DeclareUnicodeCharacter{00DE}{\TH} \DeclareUnicodeCharacter{00DF}{\ss} \DeclareUnicodeCharacter{00E0}{\`a} \DeclareUnicodeCharacter{00E1}{\'a} \DeclareUnicodeCharacter{00E2}{\^a} \DeclareUnicodeCharacter{00E3}{\~a} \DeclareUnicodeCharacter{00E4}{\"a} \DeclareUnicodeCharacter{00E5}{\aa} \DeclareUnicodeCharacter{00E6}{\ae} \DeclareUnicodeCharacter{00E7}{\cedilla{c}} \DeclareUnicodeCharacter{00E8}{\`e} \DeclareUnicodeCharacter{00E9}{\'e} \DeclareUnicodeCharacter{00EA}{\^e} \DeclareUnicodeCharacter{00EB}{\"e} \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}} \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}} \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}} \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}} \DeclareUnicodeCharacter{00F0}{\dh} \DeclareUnicodeCharacter{00F1}{\~n} \DeclareUnicodeCharacter{00F2}{\`o} \DeclareUnicodeCharacter{00F3}{\'o} \DeclareUnicodeCharacter{00F4}{\^o} \DeclareUnicodeCharacter{00F5}{\~o} \DeclareUnicodeCharacter{00F6}{\"o} \DeclareUnicodeCharacter{00F8}{\o} \DeclareUnicodeCharacter{00F9}{\`u} \DeclareUnicodeCharacter{00FA}{\'u} \DeclareUnicodeCharacter{00FB}{\^u} \DeclareUnicodeCharacter{00FC}{\"u} \DeclareUnicodeCharacter{00FD}{\'y} \DeclareUnicodeCharacter{00FE}{\th} \DeclareUnicodeCharacter{00FF}{\"y} \DeclareUnicodeCharacter{0100}{\=A} \DeclareUnicodeCharacter{0101}{\=a} \DeclareUnicodeCharacter{0102}{\u{A}} \DeclareUnicodeCharacter{0103}{\u{a}} \DeclareUnicodeCharacter{0104}{\ogonek{A}} \DeclareUnicodeCharacter{0105}{\ogonek{a}} \DeclareUnicodeCharacter{0106}{\'C} \DeclareUnicodeCharacter{0107}{\'c} \DeclareUnicodeCharacter{0108}{\^C} \DeclareUnicodeCharacter{0109}{\^c} \DeclareUnicodeCharacter{0118}{\ogonek{E}} \DeclareUnicodeCharacter{0119}{\ogonek{e}} \DeclareUnicodeCharacter{010A}{\dotaccent{C}} \DeclareUnicodeCharacter{010B}{\dotaccent{c}} \DeclareUnicodeCharacter{010C}{\v{C}} \DeclareUnicodeCharacter{010D}{\v{c}} \DeclareUnicodeCharacter{010E}{\v{D}} \DeclareUnicodeCharacter{0112}{\=E} \DeclareUnicodeCharacter{0113}{\=e} \DeclareUnicodeCharacter{0114}{\u{E}} \DeclareUnicodeCharacter{0115}{\u{e}} \DeclareUnicodeCharacter{0116}{\dotaccent{E}} \DeclareUnicodeCharacter{0117}{\dotaccent{e}} \DeclareUnicodeCharacter{011A}{\v{E}} \DeclareUnicodeCharacter{011B}{\v{e}} \DeclareUnicodeCharacter{011C}{\^G} \DeclareUnicodeCharacter{011D}{\^g} \DeclareUnicodeCharacter{011E}{\u{G}} \DeclareUnicodeCharacter{011F}{\u{g}} \DeclareUnicodeCharacter{0120}{\dotaccent{G}} \DeclareUnicodeCharacter{0121}{\dotaccent{g}} \DeclareUnicodeCharacter{0124}{\^H} \DeclareUnicodeCharacter{0125}{\^h} \DeclareUnicodeCharacter{0128}{\~I} \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}} \DeclareUnicodeCharacter{012A}{\=I} \DeclareUnicodeCharacter{012B}{\={\dotless{i}}} \DeclareUnicodeCharacter{012C}{\u{I}} \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}} \DeclareUnicodeCharacter{0130}{\dotaccent{I}} \DeclareUnicodeCharacter{0131}{\dotless{i}} \DeclareUnicodeCharacter{0132}{IJ} \DeclareUnicodeCharacter{0133}{ij} \DeclareUnicodeCharacter{0134}{\^J} \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}} \DeclareUnicodeCharacter{0139}{\'L} \DeclareUnicodeCharacter{013A}{\'l} \DeclareUnicodeCharacter{0141}{\L} \DeclareUnicodeCharacter{0142}{\l} \DeclareUnicodeCharacter{0143}{\'N} \DeclareUnicodeCharacter{0144}{\'n} \DeclareUnicodeCharacter{0147}{\v{N}} \DeclareUnicodeCharacter{0148}{\v{n}} \DeclareUnicodeCharacter{014C}{\=O} \DeclareUnicodeCharacter{014D}{\=o} \DeclareUnicodeCharacter{014E}{\u{O}} \DeclareUnicodeCharacter{014F}{\u{o}} \DeclareUnicodeCharacter{0150}{\H{O}} \DeclareUnicodeCharacter{0151}{\H{o}} \DeclareUnicodeCharacter{0152}{\OE} \DeclareUnicodeCharacter{0153}{\oe} \DeclareUnicodeCharacter{0154}{\'R} \DeclareUnicodeCharacter{0155}{\'r} \DeclareUnicodeCharacter{0158}{\v{R}} \DeclareUnicodeCharacter{0159}{\v{r}} \DeclareUnicodeCharacter{015A}{\'S} \DeclareUnicodeCharacter{015B}{\'s} \DeclareUnicodeCharacter{015C}{\^S} \DeclareUnicodeCharacter{015D}{\^s} \DeclareUnicodeCharacter{015E}{\cedilla{S}} \DeclareUnicodeCharacter{015F}{\cedilla{s}} \DeclareUnicodeCharacter{0160}{\v{S}} \DeclareUnicodeCharacter{0161}{\v{s}} \DeclareUnicodeCharacter{0162}{\cedilla{t}} \DeclareUnicodeCharacter{0163}{\cedilla{T}} \DeclareUnicodeCharacter{0164}{\v{T}} \DeclareUnicodeCharacter{0168}{\~U} \DeclareUnicodeCharacter{0169}{\~u} \DeclareUnicodeCharacter{016A}{\=U} \DeclareUnicodeCharacter{016B}{\=u} \DeclareUnicodeCharacter{016C}{\u{U}} \DeclareUnicodeCharacter{016D}{\u{u}} \DeclareUnicodeCharacter{016E}{\ringaccent{U}} \DeclareUnicodeCharacter{016F}{\ringaccent{u}} \DeclareUnicodeCharacter{0170}{\H{U}} \DeclareUnicodeCharacter{0171}{\H{u}} \DeclareUnicodeCharacter{0174}{\^W} \DeclareUnicodeCharacter{0175}{\^w} \DeclareUnicodeCharacter{0176}{\^Y} \DeclareUnicodeCharacter{0177}{\^y} \DeclareUnicodeCharacter{0178}{\"Y} \DeclareUnicodeCharacter{0179}{\'Z} \DeclareUnicodeCharacter{017A}{\'z} \DeclareUnicodeCharacter{017B}{\dotaccent{Z}} \DeclareUnicodeCharacter{017C}{\dotaccent{z}} \DeclareUnicodeCharacter{017D}{\v{Z}} \DeclareUnicodeCharacter{017E}{\v{z}} \DeclareUnicodeCharacter{01C4}{D\v{Z}} \DeclareUnicodeCharacter{01C5}{D\v{z}} \DeclareUnicodeCharacter{01C6}{d\v{z}} \DeclareUnicodeCharacter{01C7}{LJ} \DeclareUnicodeCharacter{01C8}{Lj} \DeclareUnicodeCharacter{01C9}{lj} \DeclareUnicodeCharacter{01CA}{NJ} \DeclareUnicodeCharacter{01CB}{Nj} \DeclareUnicodeCharacter{01CC}{nj} \DeclareUnicodeCharacter{01CD}{\v{A}} \DeclareUnicodeCharacter{01CE}{\v{a}} \DeclareUnicodeCharacter{01CF}{\v{I}} \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}} \DeclareUnicodeCharacter{01D1}{\v{O}} \DeclareUnicodeCharacter{01D2}{\v{o}} \DeclareUnicodeCharacter{01D3}{\v{U}} \DeclareUnicodeCharacter{01D4}{\v{u}} \DeclareUnicodeCharacter{01E2}{\={\AE}} \DeclareUnicodeCharacter{01E3}{\={\ae}} \DeclareUnicodeCharacter{01E6}{\v{G}} \DeclareUnicodeCharacter{01E7}{\v{g}} \DeclareUnicodeCharacter{01E8}{\v{K}} \DeclareUnicodeCharacter{01E9}{\v{k}} \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}} \DeclareUnicodeCharacter{01F1}{DZ} \DeclareUnicodeCharacter{01F2}{Dz} \DeclareUnicodeCharacter{01F3}{dz} \DeclareUnicodeCharacter{01F4}{\'G} \DeclareUnicodeCharacter{01F5}{\'g} \DeclareUnicodeCharacter{01F8}{\`N} \DeclareUnicodeCharacter{01F9}{\`n} \DeclareUnicodeCharacter{01FC}{\'{\AE}} \DeclareUnicodeCharacter{01FD}{\'{\ae}} \DeclareUnicodeCharacter{01FE}{\'{\O}} \DeclareUnicodeCharacter{01FF}{\'{\o}} \DeclareUnicodeCharacter{021E}{\v{H}} \DeclareUnicodeCharacter{021F}{\v{h}} \DeclareUnicodeCharacter{0226}{\dotaccent{A}} \DeclareUnicodeCharacter{0227}{\dotaccent{a}} \DeclareUnicodeCharacter{0228}{\cedilla{E}} \DeclareUnicodeCharacter{0229}{\cedilla{e}} \DeclareUnicodeCharacter{022E}{\dotaccent{O}} \DeclareUnicodeCharacter{022F}{\dotaccent{o}} \DeclareUnicodeCharacter{0232}{\=Y} \DeclareUnicodeCharacter{0233}{\=y} \DeclareUnicodeCharacter{0237}{\dotless{j}} \DeclareUnicodeCharacter{02DB}{\ogonek{ }} \DeclareUnicodeCharacter{1E02}{\dotaccent{B}} \DeclareUnicodeCharacter{1E03}{\dotaccent{b}} \DeclareUnicodeCharacter{1E04}{\udotaccent{B}} \DeclareUnicodeCharacter{1E05}{\udotaccent{b}} \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}} \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}} \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}} \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}} \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}} \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}} \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}} \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}} \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}} \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}} \DeclareUnicodeCharacter{1E20}{\=G} \DeclareUnicodeCharacter{1E21}{\=g} \DeclareUnicodeCharacter{1E22}{\dotaccent{H}} \DeclareUnicodeCharacter{1E23}{\dotaccent{h}} \DeclareUnicodeCharacter{1E24}{\udotaccent{H}} \DeclareUnicodeCharacter{1E25}{\udotaccent{h}} \DeclareUnicodeCharacter{1E26}{\"H} \DeclareUnicodeCharacter{1E27}{\"h} \DeclareUnicodeCharacter{1E30}{\'K} \DeclareUnicodeCharacter{1E31}{\'k} \DeclareUnicodeCharacter{1E32}{\udotaccent{K}} \DeclareUnicodeCharacter{1E33}{\udotaccent{k}} \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}} \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}} \DeclareUnicodeCharacter{1E36}{\udotaccent{L}} \DeclareUnicodeCharacter{1E37}{\udotaccent{l}} \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}} \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}} \DeclareUnicodeCharacter{1E3E}{\'M} \DeclareUnicodeCharacter{1E3F}{\'m} \DeclareUnicodeCharacter{1E40}{\dotaccent{M}} \DeclareUnicodeCharacter{1E41}{\dotaccent{m}} \DeclareUnicodeCharacter{1E42}{\udotaccent{M}} \DeclareUnicodeCharacter{1E43}{\udotaccent{m}} \DeclareUnicodeCharacter{1E44}{\dotaccent{N}} \DeclareUnicodeCharacter{1E45}{\dotaccent{n}} \DeclareUnicodeCharacter{1E46}{\udotaccent{N}} \DeclareUnicodeCharacter{1E47}{\udotaccent{n}} \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}} \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}} \DeclareUnicodeCharacter{1E54}{\'P} \DeclareUnicodeCharacter{1E55}{\'p} \DeclareUnicodeCharacter{1E56}{\dotaccent{P}} \DeclareUnicodeCharacter{1E57}{\dotaccent{p}} \DeclareUnicodeCharacter{1E58}{\dotaccent{R}} \DeclareUnicodeCharacter{1E59}{\dotaccent{r}} \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}} \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}} \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}} \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}} \DeclareUnicodeCharacter{1E60}{\dotaccent{S}} \DeclareUnicodeCharacter{1E61}{\dotaccent{s}} \DeclareUnicodeCharacter{1E62}{\udotaccent{S}} \DeclareUnicodeCharacter{1E63}{\udotaccent{s}} \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}} \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}} \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}} \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}} \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}} \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}} \DeclareUnicodeCharacter{1E7C}{\~V} \DeclareUnicodeCharacter{1E7D}{\~v} \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}} \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}} \DeclareUnicodeCharacter{1E80}{\`W} \DeclareUnicodeCharacter{1E81}{\`w} \DeclareUnicodeCharacter{1E82}{\'W} \DeclareUnicodeCharacter{1E83}{\'w} \DeclareUnicodeCharacter{1E84}{\"W} \DeclareUnicodeCharacter{1E85}{\"w} \DeclareUnicodeCharacter{1E86}{\dotaccent{W}} \DeclareUnicodeCharacter{1E87}{\dotaccent{w}} \DeclareUnicodeCharacter{1E88}{\udotaccent{W}} \DeclareUnicodeCharacter{1E89}{\udotaccent{w}} \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}} \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}} \DeclareUnicodeCharacter{1E8C}{\"X} \DeclareUnicodeCharacter{1E8D}{\"x} \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}} \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}} \DeclareUnicodeCharacter{1E90}{\^Z} \DeclareUnicodeCharacter{1E91}{\^z} \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}} \DeclareUnicodeCharacter{1E93}{\udotaccent{z}} \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}} \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}} \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}} \DeclareUnicodeCharacter{1E97}{\"t} \DeclareUnicodeCharacter{1E98}{\ringaccent{w}} \DeclareUnicodeCharacter{1E99}{\ringaccent{y}} \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}} \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}} \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}} \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}} \DeclareUnicodeCharacter{1EBC}{\~E} \DeclareUnicodeCharacter{1EBD}{\~e} \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}} \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}} \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}} \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}} \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}} \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}} \DeclareUnicodeCharacter{1EF2}{\`Y} \DeclareUnicodeCharacter{1EF3}{\`y} \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}} \DeclareUnicodeCharacter{1EF8}{\~Y} \DeclareUnicodeCharacter{1EF9}{\~y} \DeclareUnicodeCharacter{2013}{--} \DeclareUnicodeCharacter{2014}{---} \DeclareUnicodeCharacter{2018}{\quoteleft} \DeclareUnicodeCharacter{2019}{\quoteright} \DeclareUnicodeCharacter{201A}{\quotesinglbase} \DeclareUnicodeCharacter{201C}{\quotedblleft} \DeclareUnicodeCharacter{201D}{\quotedblright} \DeclareUnicodeCharacter{201E}{\quotedblbase} \DeclareUnicodeCharacter{2022}{\bullet} \DeclareUnicodeCharacter{2026}{\dots} \DeclareUnicodeCharacter{2039}{\guilsinglleft} \DeclareUnicodeCharacter{203A}{\guilsinglright} \DeclareUnicodeCharacter{20AC}{\euro} \DeclareUnicodeCharacter{2192}{\expansion} \DeclareUnicodeCharacter{21D2}{\result} \DeclareUnicodeCharacter{2212}{\minus} \DeclareUnicodeCharacter{2217}{\point} \DeclareUnicodeCharacter{2261}{\equiv} }% end of \utfeightchardefs % US-ASCII character definitions. \def\asciichardefs{% nothing need be done \relax } % Make non-ASCII characters printable again for compatibility with % existing Texinfo documents that may use them, even without declaring a % document encoding. % \setnonasciicharscatcode \other \message{formatting,} \newdimen\defaultparindent \defaultparindent = 15pt \chapheadingskip = 15pt plus 4pt minus 2pt \secheadingskip = 12pt plus 3pt minus 2pt \subsecheadingskip = 9pt plus 2pt minus 2pt % Prevent underfull vbox error messages. \vbadness = 10000 % Don't be very finicky about underfull hboxes, either. \hbadness = 6666 % Following George Bush, get rid of widows and orphans. \widowpenalty=10000 \clubpenalty=10000 % Use TeX 3.0's \emergencystretch to help line breaking, but if we're % using an old version of TeX, don't do anything. We want the amount of % stretch added to depend on the line length, hence the dependence on % \hsize. We call this whenever the paper size is set. % \def\setemergencystretch{% \ifx\emergencystretch\thisisundefined % Allow us to assign to \emergencystretch anyway. \def\emergencystretch{\dimen0}% \else \emergencystretch = .15\hsize \fi } % Parameters in order: 1) textheight; 2) textwidth; % 3) voffset; 4) hoffset; 5) binding offset; 6) topskip; % 7) physical page height; 8) physical page width. % % We also call \setleading{\textleading}, so the caller should define % \textleading. The caller should also set \parskip. % \def\internalpagesizes#1#2#3#4#5#6#7#8{% \voffset = #3\relax \topskip = #6\relax \splittopskip = \topskip % \vsize = #1\relax \advance\vsize by \topskip \outervsize = \vsize \advance\outervsize by 2\topandbottommargin \pageheight = \vsize % \hsize = #2\relax \outerhsize = \hsize \advance\outerhsize by 0.5in \pagewidth = \hsize % \normaloffset = #4\relax \bindingoffset = #5\relax % \ifpdf \pdfpageheight #7\relax \pdfpagewidth #8\relax % if we don't reset these, they will remain at "1 true in" of % whatever layout pdftex was dumped with. \pdfhorigin = 1 true in \pdfvorigin = 1 true in \fi % \setleading{\textleading} % \parindent = \defaultparindent \setemergencystretch } % @letterpaper (the default). \def\letterpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % If page is nothing but text, make it come out even. \internalpagesizes{607.2pt}{6in}% that's 46 lines {\voffset}{.25in}% {\bindingoffset}{36pt}% {11in}{8.5in}% }} % Use @smallbook to reset parameters for 7x9.25 trim size. \def\smallbook{{\globaldefs = 1 \parskip = 2pt plus 1pt \textleading = 12pt % \internalpagesizes{7.5in}{5in}% {-.2in}{0in}% {\bindingoffset}{16pt}% {9.25in}{7in}% % \lispnarrowing = 0.3in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .5cm }} % Use @smallerbook to reset parameters for 6x9 trim size. % (Just testing, parameters still in flux.) \def\smallerbook{{\globaldefs = 1 \parskip = 1.5pt plus 1pt \textleading = 12pt % \internalpagesizes{7.4in}{4.8in}% {-.2in}{-.4in}% {0pt}{14pt}% {9in}{6in}% % \lispnarrowing = 0.25in \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = .4cm }} % Use @afourpaper to print on European A4 paper. \def\afourpaper{{\globaldefs = 1 \parskip = 3pt plus 2pt minus 1pt \textleading = 13.2pt % % Double-side printing via postscript on Laserjet 4050 % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm. % To change the settings for a different printer or situation, adjust % \normaloffset until the front-side and back-side texts align. Then % do the same for \bindingoffset. You can set these for testing in % your texinfo source file like this: % @tex % \global\normaloffset = -6mm % \global\bindingoffset = 10mm % @end tex \internalpagesizes{673.2pt}{160mm}% that's 51 lines {\voffset}{\hoffset}% {\bindingoffset}{44pt}% {297mm}{210mm}% % \tolerance = 700 \hfuzz = 1pt \contentsrightmargin = 0pt \defbodyindent = 5mm }} % Use @afivepaper to print on European A5 paper. % From romildo@urano.iceb.ufop.br, 2 July 2000. % He also recommends making @example and @lisp be small. \def\afivepaper{{\globaldefs = 1 \parskip = 2pt plus 1pt minus 0.1pt \textleading = 12.5pt % \internalpagesizes{160mm}{120mm}% {\voffset}{\hoffset}% {\bindingoffset}{8pt}% {210mm}{148mm}% % \lispnarrowing = 0.2in \tolerance = 800 \hfuzz = 1.2pt \contentsrightmargin = 0pt \defbodyindent = 2mm \tableindent = 12mm }} % A specific text layout, 24x15cm overall, intended for A4 paper. \def\afourlatex{{\globaldefs = 1 \afourpaper \internalpagesizes{237mm}{150mm}% {\voffset}{4.6mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% % % Must explicitly reset to 0 because we call \afourpaper. \globaldefs = 0 }} % Use @afourwide to print on A4 paper in landscape format. \def\afourwide{{\globaldefs = 1 \afourpaper \internalpagesizes{241mm}{165mm}% {\voffset}{-2.95mm}% {\bindingoffset}{7mm}% {297mm}{210mm}% \globaldefs = 0 }} % @pagesizes TEXTHEIGHT[,TEXTWIDTH] % Perhaps we should allow setting the margins, \topskip, \parskip, % and/or leading, also. Or perhaps we should compute them somehow. % \parseargdef\pagesizes{\pagesizesyyy #1,,\finish} \def\pagesizesyyy#1,#2,#3\finish{{% \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi \globaldefs = 1 % \parskip = 3pt plus 2pt minus 1pt \setleading{\textleading}% % \dimen0 = #1\relax \advance\dimen0 by \voffset % \dimen2 = \hsize \advance\dimen2 by \normaloffset % \internalpagesizes{#1}{\hsize}% {\voffset}{\normaloffset}% {\bindingoffset}{44pt}% {\dimen0}{\dimen2}% }} % Set default to letter. % \letterpaper \message{and turning on texinfo input format.} \def^^L{\par} % remove \outer, so ^L can appear in an @comment % DEL is a comment character, in case @c does not suffice. \catcode`\^^? = 14 % Define macros to output various characters with catcode for normal text. \catcode`\"=\other \def\normaldoublequote{"} \catcode`\$=\other \def\normaldollar{$}%$ font-lock fix \catcode`\+=\other \def\normalplus{+} \catcode`\<=\other \def\normalless{<} \catcode`\>=\other \def\normalgreater{>} \catcode`\^=\other \def\normalcaret{^} \catcode`\_=\other \def\normalunderscore{_} \catcode`\|=\other \def\normalverticalbar{|} \catcode`\~=\other \def\normaltilde{~} % This macro is used to make a character print one way in \tt % (where it can probably be output as-is), and another way in other fonts, % where something hairier probably needs to be done. % % #1 is what to print if we are indeed using \tt; #2 is what to print % otherwise. Since all the Computer Modern typewriter fonts have zero % interword stretch (and shrink), and it is reasonable to expect all % typewriter fonts to have this, we can check that font parameter. % \def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi} % Same as above, but check for italic font. Actually this also catches % non-italic slanted fonts since it is impossible to distinguish them from % italic fonts. But since this is only used by $ and it uses \sl anyway % this is not a problem. \def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi} % Turn off all special characters except @ % (and those which the user can use as if they were ordinary). % Most of these we simply print from the \tt font, but for some, we can % use math or other variants that look better in normal text. \catcode`\"=\active \def\activedoublequote{{\tt\char34}} \let"=\activedoublequote \catcode`\~=\active \def~{{\tt\char126}} \chardef\hat=`\^ \catcode`\^=\active \def^{{\tt \hat}} \catcode`\_=\active \def_{\ifusingtt\normalunderscore\_} \let\realunder=_ % Subroutine for the previous macro. \def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em } \catcode`\|=\active \def|{{\tt\char124}} \chardef \less=`\< \catcode`\<=\active \def<{{\tt \less}} \chardef \gtr=`\> \catcode`\>=\active \def>{{\tt \gtr}} \catcode`\+=\active \def+{{\tt \char 43}} \catcode`\$=\active \def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix % If a .fmt file is being used, characters that might appear in a file % name cannot be active until we have parsed the command line. % So turn them off again, and have \everyjob (or @setfilename) turn them on. % \otherifyactive is called near the end of this file. \def\otherifyactive{\catcode`+=\other \catcode`\_=\other} % Used sometimes to turn off (effectively) the active characters even after % parsing them. \def\turnoffactive{% \normalturnoffactive \otherbackslash } \catcode`\@=0 % \backslashcurfont outputs one backslash character in current font, % as in \char`\\. \global\chardef\backslashcurfont=`\\ \global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work % \realbackslash is an actual character `\' with catcode other, and % \doublebackslash is two of them (for the pdf outlines). {\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}} % In texinfo, backslash is an active character; it prints the backslash % in fixed width font. \catcode`\\=\active % @ for escape char from now on. % The story here is that in math mode, the \char of \backslashcurfont % ends up printing the roman \ from the math symbol font (because \char % in math mode uses the \mathcode, and plain.tex sets % \mathcode`\\="026E). It seems better for @backslashchar{} to always % print a typewriter backslash, hence we use an explicit \mathchar, % which is the decimal equivalent of "715c (class 7, e.g., use \fam; % ignored family value; char position "5C). We can't use " for the % usual hex value because it has already been made active. @def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}} @let@backslashchar = @normalbackslash % @backslashchar{} is for user documents. % On startup, @fixbackslash assigns: % @let \ = @normalbackslash % \rawbackslash defines an active \ to do \backslashcurfont. % \otherbackslash defines an active \ to be a literal `\' character with % catcode other. We switch back and forth between these. @gdef@rawbackslash{@let\=@backslashcurfont} @gdef@otherbackslash{@let\=@realbackslash} % Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of % the literal character `\'. Also revert - to its normal character, in % case the active - from code has slipped in. % {@catcode`- = @active @gdef@normalturnoffactive{% @let-=@normaldash @let"=@normaldoublequote @let$=@normaldollar %$ font-lock fix @let+=@normalplus @let<=@normalless @let>=@normalgreater @let\=@normalbackslash @let^=@normalcaret @let_=@normalunderscore @let|=@normalverticalbar @let~=@normaltilde @markupsetuplqdefault @markupsetuprqdefault @unsepspaces } } % Make _ and + \other characters, temporarily. % This is canceled by @fixbackslash. @otherifyactive % If a .fmt file is being used, we don't want the `\input texinfo' to show up. % That is what \eatinput is for; after that, the `\' should revert to printing % a backslash. % @gdef@eatinput input texinfo{@fixbackslash} @global@let\ = @eatinput % On the other hand, perhaps the file did not have a `\input texinfo'. Then % the first `\' in the file would cause an error. This macro tries to fix % that, assuming it is called before the first `\' could plausibly occur. % Also turn back on active characters that might appear in the input % file name, in case not using a pre-dumped format. % @gdef@fixbackslash{% @ifx\@eatinput @let\ = @normalbackslash @fi @catcode`+=@active @catcode`@_=@active } % Say @foo, not \foo, in error messages. @escapechar = `@@ % These (along with & and #) are made active for url-breaking, so need % active definitions as the normal characters. @def@normaldot{.} @def@normalquest{?} @def@normalslash{/} % These look ok in all fonts, so just make them not special. % @hashchar{} gets its own user-level command, because of #line. @catcode`@& = @other @def@normalamp{&} @catcode`@# = @other @def@normalhash{#} @catcode`@% = @other @def@normalpercent{%} @let @hashchar = @normalhash @c Finally, make ` and ' active, so that txicodequoteundirected and @c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we @c don't make ` and ' active, @code will not get them as active chars. @c Do this last of all since we use ` in the previous @catcode assignments. @catcode`@'=@active @catcode`@`=@active @markupsetuplqdefault @markupsetuprqdefault @c Local variables: @c eval: (add-hook 'write-file-hooks 'time-stamp) @c page-delimiter: "^\\\\message" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" @c time-stamp-end: "}" @c End: @c vim:sw=2: @ignore arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115 @end ignore ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/missing�����������������������������������������������������������������������0000755�0000000�0000000�00000015331�12167244657�013106� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Common wrapper for a few potentially missing GNU programs. scriptversion=2012-06-26.16; # UTC # Copyright (C) 1996-2013 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # 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. # 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. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi case $1 in --is-lightweight) # Used by our autoconf macros to check whether the available missing # script is modern enough. exit 0 ;; --run) # Back-compat with the calling convention used by older automake. shift ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due to PROGRAM being missing or too old. Options: -h, --help display this help and exit -v, --version output version information and exit Supported PROGRAM values: aclocal autoconf autoheader autom4te automake makeinfo bison yacc flex lex help2man Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to <bug-automake@gnu.org>." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # Run the given program, remember its exit status. "$@"; st=$? # If it succeeded, we are done. test $st -eq 0 && exit 0 # Also exit now if we it failed (or wasn't found), and '--version' was # passed; such an option is passed most likely to detect whether the # program is present and works. case $2 in --version|--help) exit $st;; esac # Exit code 63 means version mismatch. This often happens when the user # tries to use an ancient version of a tool on a file that requires a # minimum version. if test $st -eq 63; then msg="probably too old" elif test $st -eq 127; then # Program was missing. msg="missing on your system" else # Program was found and executed, but failed. Give up. exit $st fi perl_URL=http://www.perl.org/ flex_URL=http://flex.sourceforge.net/ gnu_software_URL=http://www.gnu.org/software program_details () { case $1 in aclocal|automake) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/autoconf>" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; autoconf|autom4te|autoheader) echo "The '$1' program is part of the GNU Autoconf package:" echo "<$gnu_software_URL/autoconf/>" echo "It also requires GNU m4 and Perl in order to run:" echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; esac } give_advice () { # Normalize program name to check for. normalized_program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" case $normalized_program in autoconf*) echo "You should only need it if you modified 'configure.ac'," echo "or m4 files included by it." program_details 'autoconf' ;; autoheader*) echo "You should only need it if you modified 'acconfig.h' or" echo "$configure_deps." program_details 'autoheader' ;; automake*) echo "You should only need it if you modified 'Makefile.am' or" echo "$configure_deps." program_details 'automake' ;; aclocal*) echo "You should only need it if you modified 'acinclude.m4' or" echo "$configure_deps." program_details 'aclocal' ;; autom4te*) echo "You might have modified some maintainer files that require" echo "the 'automa4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; lex*|flex*) echo "You should only need it if you modified a '.l' file." echo "You may want to install the Fast Lexical Analyzer package:" echo "<$flex_URL>" ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." echo "You might want to install the Texinfo package:" echo "<$gnu_software_URL/texinfo/>" echo "The spurious makeinfo call might also be the consequence of" echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" echo "often tells you about the needed prerequisites for installing" echo "this package. You may also peek at any GNU archive site, in" echo "case some other package contains this missing '$1' program." ;; esac } give_advice "$1" | sed -e '1s/^/WARNING: /' \ -e '2,$s/^/ /' >&2 # Propagate the correct exit status (expected to be 127 for a program # not found, 63 for a program that failed due to version mismatch). exit $st # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/config.guess������������������������������������������������������������������0000755�0000000�0000000�00000130361�12167244657�014030� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2013 Free Software Foundation, Inc. timestamp='2013-06-10' # This file 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner. # # You can get the latest version of this script from: # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD # # Please send patches with a ChangeLog entry to config-patches@gnu.org. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Operation modes: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "${UNAME_SYSTEM}" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval $set_cc_for_build cat <<-EOF > $dummy.c #include <features.h> #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` ;; esac # Note: order is significant - the case branches are not exclusive. case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ /usr/sbin/$sysctl 2>/dev/null || echo unknown)` case "${UNAME_MACHINE_ARCH}" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; *) machine=${UNAME_MACHINE_ARCH}-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently, or will in the future. case "${UNAME_MACHINE_ARCH}" in arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval $set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "${UNAME_VERSION}" in Debian*) release='-gnu' ;; *) release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit ;; *:ekkoBSD:*:*) echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} exit ;; *:SolidBSD:*:*) echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd${UNAME_RELEASE} exit ;; *:MirBSD:*:*) echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE="alpha" ;; "EV4.5 (21064)") UNAME_MACHINE="alpha" ;; "LCA4 (21066/21068)") UNAME_MACHINE="alpha" ;; "EV5 (21164)") UNAME_MACHINE="alphaev5" ;; "EV5.6 (21164A)") UNAME_MACHINE="alphaev56" ;; "EV5.6 (21164PC)") UNAME_MACHINE="alphapca56" ;; "EV5.7 (21164PC)") UNAME_MACHINE="alphapca57" ;; "EV6 (21264)") UNAME_MACHINE="alphaev6" ;; "EV6.7 (21264A)") UNAME_MACHINE="alphaev67" ;; "EV6.8CB (21264C)") UNAME_MACHINE="alphaev68" ;; "EV6.8AL (21264B)") UNAME_MACHINE="alphaev68" ;; "EV6.8CX (21264D)") UNAME_MACHINE="alphaev68" ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE="alphaev69" ;; "EV7 (21364)") UNAME_MACHINE="alphaev7" ;; "EV7.9 (21364A)") UNAME_MACHINE="alphaev79" ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux${UNAME_RELEASE} exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval $set_cc_for_build SUN_ARCH="i386" # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH="x86_64" fi fi echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos${UNAME_RELEASE} ;; sun4) echo sparc-sun-sunos${UNAME_RELEASE} ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} exit ;; m68k:machten:*:*) echo m68k-apple-machten${UNAME_RELEASE} exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`$dummy $dummyarg` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] then if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ [ ${TARGET_BINARY_INTERFACE}x = x ] then echo m88k-dg-dgux${UNAME_RELEASE} else echo m88k-dg-dguxbcs${UNAME_RELEASE} fi else echo i586-dg-dgux${UNAME_RELEASE} fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <sys/systemcfg.h> main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in 9000/31? ) HP_ARCH=m68000 ;; 9000/[34]?? ) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "${sc_cpu_version}" in 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "${sc_kernel_bits}" in 32) HP_ARCH="hppa2.0n" ;; 64) HP_ARCH="hppa2.0w" ;; '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 esac ;; esac fi if [ "${HP_ARCH}" = "" ]; then eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #define _HPUX_SOURCE #include <stdlib.h> #include <unistd.h> int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ ${HP_ARCH} = "hppa2.0w" ] then eval $set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH="hppa2.0w" else HP_ARCH="hppa64" fi fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #include <unistd.h> int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case ${UNAME_PROCESSOR} in amd64) echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; *) echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; esac exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin exit ;; *:MINGW64*:*) echo ${UNAME_MACHINE}-pc-mingw64 exit ;; *:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 exit ;; i*:MSYS*:*) echo ${UNAME_MACHINE}-pc-msys exit ;; i*:windows32*:*) # uname -m includes "-pc" on this system. echo ${UNAME_MACHINE}-mingw32 exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 exit ;; *:Interix*:*) case ${UNAME_MACHINE} in x86) echo i586-pc-interix${UNAME_RELEASE} exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix${UNAME_RELEASE} exit ;; IA64) echo ia64-unknown-interix${UNAME_RELEASE} exit ;; esac ;; [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) echo i${UNAME_MACHINE}-pc-mks exit ;; 8664:Windows_NT:*) echo x86_64-pc-mks exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? echo i586-pc-interix exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` exit ;; *:GNU:*:*) # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; aarch64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC="gnulibc1" ; fi echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; arm*:Linux:*:*) eval $set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo ${UNAME_MACHINE}-unknown-linux-${LIBC} else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi else echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf fi fi exit ;; avr32*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; cris:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; crisv32:Linux:*:*) echo ${UNAME_MACHINE}-axis-linux-${LIBC} exit ;; frv:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; hexagon:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:Linux:*:*) echo ${UNAME_MACHINE}-pc-linux-${LIBC} exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m32r*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } ;; or1k:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; or32:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; padre:Linux:*:*) echo sparc-unknown-linux-${LIBC} exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-${LIBC} exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; *) echo hppa-unknown-linux-${LIBC} ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-${LIBC} exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-${LIBC} exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-${LIBC} exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-${LIBC} exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux-${LIBC} exit ;; sh64*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; tile*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; vax:Linux:*:*) echo ${UNAME_MACHINE}-dec-linux-${LIBC} exit ;; x86_64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; xtensa*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-${LIBC} exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo ${UNAME_MACHINE}-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo ${UNAME_MACHINE}-unknown-stop exit ;; i*86:atheos:*:*) echo ${UNAME_MACHINE}-unknown-atheos exit ;; i*86:syllable:*:*) echo ${UNAME_MACHINE}-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos${UNAME_RELEASE} exit ;; i*86:*DOS:*:*) echo ${UNAME_MACHINE}-pc-msdosdjgpp exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` echo ${UNAME_MACHINE}-pc-isc$UNAME_REL elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo ${UNAME_MACHINE}-pc-sco$UNAME_REL else echo ${UNAME_MACHINE}-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configury will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo ${UNAME_MACHINE}-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says <Richard.M.Bartel@ccMail.Census.GOV> echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes <hewes@openmarket.com>. # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo ${UNAME_MACHINE}-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux${UNAME_RELEASE} exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux${UNAME_RELEASE} exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux${UNAME_RELEASE} exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval $set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi fi echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-?:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk${UNAME_RELEASE} exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk${UNAME_RELEASE} exit ;; NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = "386"; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux${UNAME_RELEASE} exit ;; *:DragonFly:*:*) echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "${UNAME_MACHINE}" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' exit ;; i*86:rdos:*:*) echo ${UNAME_MACHINE}-pc-rdos exit ;; i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; x86_64:VMkernel:*:*) echo ${UNAME_MACHINE}-unknown-esx exit ;; esac eval $set_cc_for_build cat >$dummy.c <<EOF #ifdef _SEQUENT_ # include <sys/types.h> # include <sys/utsname.h> #endif main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include <sys/param.h> printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (__arm) && defined (__acorn) && defined (__unix) printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) printf ("m68k-hp-bsd\n"); exit (0); #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) # if !defined (ultrix) # include <sys/param.h> # if defined (BSD) # if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); # else # if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); # else printf ("vax-dec-bsd\n"); exit (0); # endif # endif # else printf ("vax-dec-bsd\n"); exit (0); # endif # else printf ("vax-dec-ultrix\n"); exit (0); # endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } EOF $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) if [ -x /usr/convex/getsysinfo ] then case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; c34*) echo c34-convex-bsd exit ;; c38*) echo c38-convex-bsd exit ;; c4*) echo c4-convex-bsd exit ;; esac fi cat >&2 <<EOF $0: unable to guess system type This script, last modified $timestamp, has failed to recognize the operating system you are using. It is advised that you download the most up to date version of the config scripts from http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD and http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD If the version you run ($0) is already up to date, please send the following data and any information you think might be pertinent to <config-patches@gnu.org> in order to provide the needed information to handle your system. config.guess timestamp = $timestamp uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = ${UNAME_MACHINE} UNAME_RELEASE = ${UNAME_RELEASE} UNAME_SYSTEM = ${UNAME_SYSTEM} UNAME_VERSION = ${UNAME_VERSION} EOF exit 1 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/useless-if-before-free��������������������������������������������������������0000755�0000000�0000000�00000014114�12153706065�015660� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������eval '(exit $?0)' && eval 'exec perl -wST "$0" ${1+"$@"}' & eval 'exec perl -wST "$0" $argv:q' if 0; # Detect instances of "if (p) free (p);". # Likewise "if (p != 0)", "if (0 != p)", or with NULL; and with braces. my $VERSION = '2012-01-06 07:23'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. # Copyright (C) 2008-2013 Free Software Foundation, Inc. # 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 3 of the License, or # (at your option) any later version. # 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. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # Written by Jim Meyering use strict; use warnings; use Getopt::Long; (my $ME = $0) =~ s|.*/||; # use File::Coda; # http://meyering.net/code/Coda/ END { defined fileno STDOUT or return; close STDOUT and return; warn "$ME: failed to close standard output: $!\n"; $? ||= 1; } sub usage ($) { my ($exit_code) = @_; my $STREAM = ($exit_code == 0 ? *STDOUT : *STDERR); if ($exit_code != 0) { print $STREAM "Try '$ME --help' for more information.\n"; } else { print $STREAM <<EOF; Usage: $ME [OPTIONS] FILE... Detect any instance in FILE of a useless "if" test before a free call, e.g., "if (p) free (p);". Any such test may be safely removed without affecting the semantics of the C code in FILE. Use --name=FOO --name=BAR to also detect free-like functions named FOO and BAR. OPTIONS: --list print only the name of each matching FILE (\\0-terminated) --name=N add name N to the list of \'free\'-like functions to detect; may be repeated --help display this help and exit --version output version information and exit Exit status: 0 one or more matches 1 no match 2 an error EXAMPLE: For example, this command prints all removable "if" tests before "free" and "kfree" calls in the linux kernel sources: git ls-files -z |xargs -0 $ME --name=kfree EOF } exit $exit_code; } sub is_NULL ($) { my ($expr) = @_; return ($expr eq 'NULL' || $expr eq '0'); } { sub EXIT_MATCH {0} sub EXIT_NO_MATCH {1} sub EXIT_ERROR {2} my $err = EXIT_NO_MATCH; my $list; my @name = qw(free); GetOptions ( help => sub { usage 0 }, version => sub { print "$ME version $VERSION\n"; exit }, list => \$list, 'name=s@' => \@name, ) or usage 1; # Make sure we have the right number of non-option arguments. # Always tell the user why we fail. @ARGV < 1 and (warn "$ME: missing FILE argument\n"), usage EXIT_ERROR; my $or = join '|', @name; my $regexp = qr/(?:$or)/; # Set the input record separator. # Note: this makes it impractical to print line numbers. $/ = '"'; my $found_match = 0; FILE: foreach my $file (@ARGV) { open FH, '<', $file or (warn "$ME: can't open '$file' for reading: $!\n"), $err = EXIT_ERROR, next; while (defined (my $line = <FH>)) { while ($line =~ /\b(if\s*\(\s*([^)]+?)(?:\s*!=\s*([^)]+?))?\s*\) # 1 2 3 (?: \s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;| \s*\{\s*$regexp\s*\((?:\s*\([^)]+\))?\s*([^)]+)\)\s*;\s*\}))/sxg) { my $all = $1; my ($lhs, $rhs) = ($2, $3); my ($free_opnd, $braced_free_opnd) = ($4, $5); my $non_NULL; if (!defined $rhs) { $non_NULL = $lhs } elsif (is_NULL $rhs) { $non_NULL = $lhs } elsif (is_NULL $lhs) { $non_NULL = $rhs } else { next } # Compare the non-NULL part of the "if" expression and the # free'd expression, without regard to white space. $non_NULL =~ tr/ \t//d; my $e2 = defined $free_opnd ? $free_opnd : $braced_free_opnd; $e2 =~ tr/ \t//d; if ($non_NULL eq $e2) { $found_match = 1; $list and (print "$file\0"), next FILE; print "$file: $all\n"; } } } } continue { close FH; } $found_match && $err == EXIT_NO_MATCH and $err = EXIT_MATCH; exit $err; } my $foo = <<'EOF'; # The above is to *find* them. # This adjusts them, removing the unnecessary "if (p)" part. # FIXME: do something like this as an option (doesn't do braces): free=xfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0x3b -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s+('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\)\s*;)/$2/s' # Use the following to remove redundant uses of kfree inside braces. # Note that -0777 puts perl in slurp-whole-file mode; # but we have plenty of memory, these days... free=kfree git grep -l -z "$free *(" \ | xargs -0 useless-if-before-free -l --name="$free" \ | xargs -0 perl -0777 -pi -e \ 's/\bif\s*\(\s*(\S+?)(?:\s*!=\s*(?:0|NULL))?\s*\)\s*\{\s*('"$free"'\s*\((?:\s*\([^)]+\))?\s*\1\s*\);)\s*\}[^\n]*$/$2/gms' Be careful that the result of the above transformation is valid. If the matched string is followed by "else", then obviously, it won't be. When modifying files, refuse to process anything other than a regular file. EOF ## Local Variables: ## mode: perl ## indent-tabs-mode: nil ## eval: (add-hook 'write-file-hooks 'time-stamp) ## time-stamp-start: "my $VERSION = '" ## time-stamp-format: "%:y-%02m-%02d %02H:%02M" ## time-stamp-time-zone: "UTC" ## time-stamp-end: "'; # UTC" ## End: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/pmccabe.css�������������������������������������������������������������������0000664�0000000�0000000�00000004515�11746453142�013610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������body { font-family: Helvetica, sans-serif; } .page_title { font: 18pt Georgia, serif; color: darkred; } .section_title { font: 14pt Georgia, serif; color: darkred; } .report_timestamp { color: darkred; font-weight: bold; } .function_src { text-align: left; background: white; } .resume_table { } .resume_header_entry { color: black; } .resume_number_entry { color: darkred; font-weight: bold; text-align: right; } .ranges_table { border-spacing: 0px; border-bottom: solid 2px black; border-top: solid 2px black; border-left: solid 2px black; border-right: solid 2px black; } .ranges_header_entry { padding: 5px; border-bottom: solid 1px black; font-size: 1em; font-weight: bold; color: darkred; text-align: left; } .ranges_entry { } .ranges_entry_simple { background: #87ff75; } .ranges_entry_moderate { background: #fffc60; } .ranges_entry_high { background: #ff5a5d; } .ranges_entry_untestable { background: #993300 } .function_table { border-spacing: 0px; border-bottom: solid 2px black; border-top: solid 2px black; border-left: solid 2px black; border-right: solid 2px black; } .function_table_caption { font-size: 1.1em; font-weight: bold; color: black; padding: 5px; } .function_table_header { } .function_table_header_entry { padding: 5px; border-bottom: solid 1px black; font-size: 1em; font-weight: bold; color: darkred; text-align: left; } .function_entry { } .function_entry_simple { background: #87ff75; } .function_entry_moderate { background: #fffc60; } .function_entry_high { background: #ff5a5d; } .function_entry_untestable { background: #993300 } .function_entry_name { font-size: 1em; text-align: left; font-weight: bold; text-valign: top; border-top: solid 1px black; padding: 3px; } .function_entry_cyclo { font-size: 1em; text-align: right; text-valign: top; border-top: solid 1px black; padding: 3px; } .function_entry_number { font-size: 1em; text-align: right; text-valign: top; border-top: solid 1px black; padding: 3px; } .function_entry_filename { font-size: 1em; text-align: left; text-valign: top; border-top: solid 1px black; padding: 3px; } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/csharpcomp.sh.in��������������������������������������������������������������0000644�0000000�0000000�00000012527�12153706065�014602� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Compile a C# program. # Copyright (C) 2003-2013 Free Software Foundation, Inc. # Written by Bruno Haible <bruno@clisp.org>, 2003. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # This uses the same choices as csharpcomp.c, but instead of relying on the # environment settings at run time, it uses the environment variables # present at configuration time. # # This is a separate shell script, because the various C# compilers have # different command line options. # # Usage: /bin/sh csharpcomp.sh [OPTION] SOURCE.cs ... RES.resource ... # Options: # -o PROGRAM.exe or -o LIBRARY.dll # set the output assembly name # -L DIRECTORY search for C# libraries also in DIRECTORY # -l LIBRARY reference the C# library LIBRARY.dll # -O optimize # -g generate debugging information # func_tmpdir # creates a temporary directory. # Sets variable # - tmp pathname of freshly created temporary directory func_tmpdir () { # Use the environment variable TMPDIR, falling back to /tmp. This allows # users to specify a different temporary directory, for example, if their # /tmp is filled up or too small. : ${TMPDIR=/tmp} { # Use the mktemp program if available. If not available, hide the error # message. tmp=`(umask 077 && mktemp -d -q "$TMPDIR/gtXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { # Use a simple mkdir command. It is guaranteed to fail if the directory # already exists. $RANDOM is bash specific and expands to empty in shells # other than bash, ksh and zsh. Its use does not increase security; # rather, it minimizes the probability of failure in a very cluttered /tmp # directory. tmp=$TMPDIR/gt$$-$RANDOM (umask 077 && mkdir "$tmp") } || { echo "$0: cannot create a temporary directory in $TMPDIR" >&2 { (exit 1); exit 1; } } } sed_quote_subst='s/\([|&;<>()$`"'"'"'*?[#~=% \\]\)/\\\1/g' options_cscc= options_mcs= options_csc="-nologo" sources= while test $# != 0; do case "$1" in -o) case "$2" in *.dll) options_cscc="$options_cscc -shared" options_mcs="$options_mcs -target:library" options_csc="$options_csc -target:library" ;; *.exe) options_csc="$options_csc -target:exe" ;; esac options_cscc="$options_cscc -o "`echo "$2" | sed -e "$sed_quote_subst"` options_mcs="$options_mcs -out:"`echo "$2" | sed -e "$sed_quote_subst"` options_csc="$options_csc -out:"`echo "$2" | sed -e "$sed_quote_subst"` shift ;; -L) options_cscc="$options_cscc -L "`echo "$2" | sed -e "$sed_quote_subst"` options_mcs="$options_mcs -lib:"`echo "$2" | sed -e "$sed_quote_subst"` options_csc="$options_csc -lib:"`echo "$2" | sed -e "$sed_quote_subst"` shift ;; -l) options_cscc="$options_cscc -l "`echo "$2" | sed -e "$sed_quote_subst"` options_mcs="$options_mcs -reference:"`echo "$2" | sed -e "$sed_quote_subst"` options_csc="$options_csc -reference:"`echo "$2" | sed -e "$sed_quote_subst"`".dll" shift ;; -O) options_cscc="$options_cscc -O" options_csc="$options_csc -optimize+" ;; -g) options_cscc="$options_cscc -g" options_mcs="$options_mcs -debug" options_csc="$options_csc -debug+" ;; -*) echo "csharpcomp: unknown option '$1'" 1>&2 exit 1 ;; *.resources) options_cscc="$options_cscc -fresources="`echo "$1" | sed -e "$sed_quote_subst"` options_mcs="$options_mcs -resource:"`echo "$1" | sed -e "$sed_quote_subst"` options_csc="$options_csc -resource:"`echo "$1" | sed -e "$sed_quote_subst"` ;; *.cs) sources="$sources "`echo "$1" | sed -e "$sed_quote_subst"` ;; *) echo "csharpcomp: unknown type of argument '$1'" 1>&2 exit 1 ;; esac shift done if test -n "@HAVE_CSCC@"; then test -z "$CSHARP_VERBOSE" || echo cscc $options_cscc $sources exec cscc $options_cscc $sources else if test -n "@HAVE_MCS@"; then # mcs prints it errors and warnings to stdout, not stderr. Furthermore it # adds a useless line "Compilation succeeded..." at the end. Correct both. sed_drop_success_line='${ /^Compilation succeeded/d }' func_tmpdir trap 'rm -rf "$tmp"' 1 2 3 15 test -z "$CSHARP_VERBOSE" || echo mcs $options_mcs $sources mcs $options_mcs $sources > "$tmp"/mcs.err result=$? sed -e "$sed_drop_success_line" < "$tmp"/mcs.err >&2 rm -rf "$tmp" exit $result else if test -n "@HAVE_CSC@"; then test -z "$CSHARP_VERBOSE" || echo csc $options_csc $sources exec csc $options_csc $sources else echo 'C# compiler not found, try installing pnet, then reconfigure' 1>&2 exit 1 fi fi fi �������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/ltmain.sh���������������������������������������������������������������������0000644�0000000�0000000�00001051522�12167244642�013324� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ # libtool (GNU libtool) 2.4.2 # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, # 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, # or obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # Usage: $progname [OPTION]... [MODE-ARG]... # # Provide generalized library-building support services. # # --config show all configuration variables # --debug enable verbose shell tracing # -n, --dry-run display commands without modifying any files # --features display basic configuration information and exit # --mode=MODE use operation mode MODE # --preserve-dup-deps don't remove duplicate dependency libraries # --quiet, --silent don't print informational messages # --no-quiet, --no-silent # print informational messages (default) # --no-warn don't display warning messages # --tag=TAG use configuration variables from tag TAG # -v, --verbose print more informational messages than default # --no-verbose don't print the extra informational messages # --version print version information # -h, --help, --help-all print short, long, or detailed help message # # MODE must be one of the following: # # clean remove files from the build directory # compile compile a source file into a libtool object # execute automatically set library path, then run a program # finish complete the installation of libtool libraries # install install libraries or executables # link create a library or an executable # uninstall remove libraries from an installed directory # # MODE-ARGS vary depending on the MODE. When passed as first option, # `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. # Try `$progname --help --mode=MODE' for a more detailed description of MODE. # # When reporting a bug, please describe a test case to reproduce it and # include the following information: # # host-triplet: $host # shell: $SHELL # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) # $progname: (GNU libtool) 2.4.2 # automake: $automake_version # autoconf: $autoconf_version # # Report bugs to <bug-libtool@gnu.org>. # GNU libtool home page: <http://www.gnu.org/software/libtool/>. # General help using GNU software: <http://www.gnu.org/gethelp/>. PROGRAM=libtool PACKAGE=libtool VERSION=2.4.2 TIMESTAMP="" package_revision=1.3337 # Be Bourne compatible if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # NLS nuisances: We save the old values to restore during execute mode. lt_user_locale= lt_safe_locale= for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${$lt_var+set}\" = set; then save_$lt_var=\$$lt_var $lt_var=C export $lt_var lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" fi" done LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL $lt_unset CDPATH # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath="$0" : ${CP="cp -f"} test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} : ${Xsed="$SED -e 1s/^X//"} # Global variables: EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. exit_status=$EXIT_SUCCESS # Make sure IFS has a sensible default lt_nl=' ' IFS=" $lt_nl" dirname="s,/[^/]*$,," basename="s,^.*/,," # func_dirname file append nondir_replacement # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. func_dirname () { func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi } # func_dirname may be replaced by extended shell implementation # func_basename file func_basename () { func_basename_result=`$ECHO "${1}" | $SED "$basename"` } # func_basename may be replaced by extended shell implementation # func_dirname_and_basename file append nondir_replacement # perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # Implementation must be kept synchronized with func_dirname # and func_basename. For efficiency, we do not delegate to # those functions but instead duplicate the functionality here. func_dirname_and_basename () { # Extract subdirectory from the argument. func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` if test "X$func_dirname_result" = "X${1}"; then func_dirname_result="${3}" else func_dirname_result="$func_dirname_result${2}" fi func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` } # func_dirname_and_basename may be replaced by extended shell implementation # func_stripname prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # func_strip_suffix prefix name func_stripname () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname may be replaced by extended shell implementation # These SED scripts presuppose an absolute path with a trailing slash. pathcar='s,^/\([^/]*\).*$,\1,' pathcdr='s,^/[^/]*,,' removedotparts=':dotsl s@/\./@/@g t dotsl s,/\.$,/,' collapseslashes='s@/\{1,\}@/@g' finalslash='s,/*$,/,' # func_normal_abspath PATH # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. # value returned in "$func_normal_abspath_result" func_normal_abspath () { # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` while :; do # Processed it all yet? if test "$func_normal_abspath_tpath" = / ; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result" ; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_relative_path SRCDIR DSTDIR # generates a relative path from SRCDIR to DSTDIR, with a trailing # slash if non-empty, suitable for immediately appending a filename # without needing to append a separator. # value returned in "$func_relative_path_result" func_relative_path () { func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=${func_dirname_result} if test "x$func_relative_path_tlibdir" = x ; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test "x$func_stripname_result" != x ; then func_relative_path_result=${func_relative_path_result}/${func_stripname_result} fi # Normalisation. If bindir is libdir, return empty string, # else relative path ending with a slash; either way, target # file name can be directly appended. if test ! -z "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result/" func_relative_path_result=$func_stripname_result fi } # The name of this program: func_dirname_and_basename "$progpath" progname=$func_basename_result # Make sure we have an absolute path for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=$func_dirname_result progdir=`cd "$progdir" && pwd` progpath="$progdir/$progname" ;; *) save_IFS="$IFS" IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS="$save_IFS" test -x "$progdir/$progname" && break done IFS="$save_IFS" test -n "$progdir" || progdir=`pwd` progpath="$progdir/$progname" ;; esac # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='s/\([`"$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' # Sed substitution that converts a w32 file name or path # which contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-`\' parameter expansions in output of double_quote_subst that were # `\'-ed in input to the same. If an odd number of `\' preceded a '$' # in input to double_quote_subst, that '$' was protected from expansion. # Since each input `\' is now two `\'s, look for any number of runs of # four `\'s followed by two `\'s and then a '$'. `\' that '$'. bs='\\' bs2='\\\\' bs4='\\\\\\\\' dollar='\$' sed_double_backslash="\ s/$bs4/&\\ /g s/^$bs2$dollar/$bs&/ s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g s/\n//g" # Standard options: opt_dry_run=false opt_help=false opt_quiet=false opt_verbose=false opt_warning=: # func_echo arg... # Echo program name prefixed message, along with the current mode # name if it has been set yet. func_echo () { $ECHO "$progname: ${opt_mode+$opt_mode: }$*" } # func_verbose arg... # Echo program name prefixed message in verbose mode only. func_verbose () { $opt_verbose && func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_error arg... # Echo program name prefixed message to standard error. func_error () { $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 } # func_warning arg... # Echo program name prefixed warning message to standard error. func_warning () { $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 # bash bug again: : } # func_fatal_error arg... # Echo program name prefixed message to standard error, and exit. func_fatal_error () { func_error ${1+"$@"} exit $EXIT_FAILURE } # func_fatal_help arg... # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { func_error ${1+"$@"} func_fatal_error "$help" } help="Try \`$progname --help' for more information." ## default # func_grep expression filename # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $GREP "$1" "$2" >/dev/null 2>&1 } # func_mkdir_p directory-path # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { my_directory_path="$1" my_dir_list= if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then # Protect directory names starting with `-' case $my_directory_path in -*) my_directory_path="./$my_directory_path" ;; esac # While some portion of DIR does not yet exist... while test ! -d "$my_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. my_dir_list="$my_directory_path:$my_dir_list" # If the last portion added has no slash in it, the list is done case $my_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` done my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` save_mkdir_p_IFS="$IFS"; IFS=':' for my_dir in $my_dir_list; do IFS="$save_mkdir_p_IFS" # mkdir can fail with a `File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$my_dir" 2>/dev/null || : done IFS="$save_mkdir_p_IFS" # Bail out if we (or some other process) failed to create a directory. test -d "$my_directory_path" || \ func_fatal_error "Failed to create \`$1'" fi } # func_mktempdir [string] # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, STRING is the basename for that directory. func_mktempdir () { my_template="${TMPDIR-/tmp}/${1-$progname}" if test "$opt_dry_run" = ":"; then # Return a directory name, but don't create it in dry-run mode my_tmpdir="${my_template}-$$" else # If mktemp works, use that first and foremost my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` if test ! -d "$my_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race my_tmpdir="${my_template}-${RANDOM-0}$$" save_mktempdir_umask=`umask` umask 0077 $MKDIR "$my_tmpdir" umask $save_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$my_tmpdir" || \ func_fatal_error "cannot create temporary directory \`$my_tmpdir'" fi $ECHO "$my_tmpdir" } # func_quote_for_eval arg # Aesthetically quote ARG to be evaled later. # This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT # is double-quoted, suitable for a subsequent eval, whereas # FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters # which are still active within double quotes backslashified. func_quote_for_eval () { case $1 in *[\\\`\"\$]*) func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; *) func_quote_for_eval_unquoted_result="$1" ;; esac case $func_quote_for_eval_unquoted_result in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and and variable # expansion for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" ;; *) func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" esac } # func_quote_for_expand arg # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { case $1 in *[\\\`\"]*) my_arg=`$ECHO "$1" | $SED \ -e "$double_quote_subst" -e "$sed_double_backslash"` ;; *) my_arg="$1" ;; esac case $my_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") my_arg="\"$my_arg\"" ;; esac func_quote_for_expand_result="$my_arg" } # func_show_eval cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$my_cmd" my_status=$? if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_show_eval_locale cmd [fail_exp] # Unless opt_silent is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { my_cmd="$1" my_fail_exp="${2-:}" ${opt_silent-false} || { func_quote_for_expand "$my_cmd" eval "func_echo $func_quote_for_expand_result" } if ${opt_dry_run-false}; then :; else eval "$lt_user_locale $my_cmd" my_status=$? eval "$lt_safe_locale" if test "$my_status" -eq 0; then :; else eval "(exit $my_status); $my_fail_exp" fi fi } # func_tr_sh # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_version # Echo version message to standard output and exit. func_version () { $opt_debug $SED -n '/(C)/!b go :more /\./!{ N s/\n# / / b more } :go /^# '$PROGRAM' (GNU /,/# warranty; / { s/^# // s/^# *$// s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ p }' < "$progpath" exit $? } # func_usage # Echo short help message to standard output and exit. func_usage () { $opt_debug $SED -n '/^# Usage:/,/^# *.*--help/ { s/^# // s/^# *$// s/\$progname/'$progname'/ p }' < "$progpath" echo $ECHO "run \`$progname --help | more' for full usage" exit $? } # func_help [NOEXIT] # Echo long help message to standard output and exit, # unless 'noexit' is passed as argument. func_help () { $opt_debug $SED -n '/^# Usage:/,/# Report bugs to/ { :print s/^# // s/^# *$// s*\$progname*'$progname'* s*\$host*'"$host"'* s*\$SHELL*'"$SHELL"'* s*\$LTCC*'"$LTCC"'* s*\$LTCFLAGS*'"$LTCFLAGS"'* s*\$LD*'"$LD"'* s/\$with_gnu_ld/'"$with_gnu_ld"'/ s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ p d } /^# .* home page:/b print /^# General help using/b print ' < "$progpath" ret=$? if test -z "$1"; then exit $ret fi } # func_missing_arg argname # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $opt_debug func_error "missing argument for $1." exit_cmd=exit } # func_split_short_opt shortopt # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. func_split_short_opt () { my_sed_short_opt='1s/^\(..\).*$/\1/;q' my_sed_short_rest='1s/^..\(.*\)$/\1/;q' func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` } # func_split_short_opt may be replaced by extended shell implementation # func_split_long_opt longopt # Set func_split_long_opt_name and func_split_long_opt_arg shell # variables after splitting LONGOPT at the `=' sign. func_split_long_opt () { my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' my_sed_long_arg='1s/^--[^=]*=//' func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` } # func_split_long_opt may be replaced by extended shell implementation exit_cmd=: magic="%%%MAGIC variable%%%" magic_exe="%%%MAGIC EXE variable%%%" # Global variables. nonopt= preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # func_append var value # Append VALUE to the end of shell variable VAR. func_append () { eval "${1}=\$${1}\${2}" } # func_append may be replaced by extended shell implementation # func_append_quoted var value # Quote VALUE and append to the end of shell variable VAR, separated # by a space. func_append_quoted () { func_quote_for_eval "${2}" eval "${1}=\$${1}\\ \$func_quote_for_eval_result" } # func_append_quoted may be replaced by extended shell implementation # func_arith arithmetic-term... func_arith () { func_arith_result=`expr "${@}"` } # func_arith may be replaced by extended shell implementation # func_len string # STRING may not start with a hyphen. func_len () { func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` } # func_len may be replaced by extended shell implementation # func_lo2o object func_lo2o () { func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` } # func_lo2o may be replaced by extended shell implementation # func_xform libobj-or-source func_xform () { func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` } # func_xform may be replaced by extended shell implementation # func_fatal_configuration arg... # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_error ${1+"$@"} func_error "See the $PACKAGE documentation for more information." func_fatal_error "Fatal configuration error." } # func_config # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # Display the features supported by this script. func_features () { echo "host: $host" if test "$build_libtool_libs" = yes; then echo "enable shared libraries" else echo "disable shared libraries" fi if test "$build_old_libs" = yes; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag tagname # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname="$1" re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf="/$re_begincf/,/$re_endcf/p" # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Option defaults: opt_debug=: opt_dry_run=false opt_config=false opt_preserve_dup_deps=false opt_features=false opt_finish=false opt_help=false opt_help_all=false opt_silent=: opt_warning=: opt_verbose=: opt_silent=false opt_verbose=false # Parse options once, thoroughly. This comes as soon as possible in the # script to make things like `--version' happen as quickly as we can. { # this just eases exit handling while test $# -gt 0; do opt="$1" shift case $opt in --debug|-x) opt_debug='set -x' func_echo "enabling shell trace mode" $opt_debug ;; --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) opt_config=: func_config ;; --dlopen|-dlopen) optarg="$1" opt_dlopen="${opt_dlopen+$opt_dlopen }$optarg" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) opt_features=: func_features ;; --finish) opt_finish=: set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help_all=: opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_mode="$optarg" case $optarg in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_silent=false func_append preserve_args " $opt" ;; --no-warning|--no-warn) opt_warning=false func_append preserve_args " $opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $opt" ;; --silent|--quiet) opt_silent=: func_append preserve_args " $opt" opt_verbose=false ;; --verbose|-v) opt_verbose=: func_append preserve_args " $opt" opt_silent=false ;; --tag) test $# = 0 && func_missing_arg $opt && break optarg="$1" opt_tag="$optarg" func_append preserve_args " $opt $optarg" func_enable_tag "$optarg" shift ;; -\?|-h) func_usage ;; --help) func_help ;; --version) func_version ;; # Separate optargs to long options: --*=*) func_split_long_opt "$opt" set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-n*|-v*) func_split_short_opt "$opt" set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognized option \`$opt'" ;; *) set dummy "$opt" ${1+"$@"}; shift; break ;; esac done # Validate options: # save first non-option argument if test "$#" -gt 0; then nonopt="$opt" shift fi # preserve --debug test "$opt_debug" = : || func_append preserve_args " --debug" case $host in *cygwin* | *mingw* | *pw32* | *cegcc*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then func_fatal_configuration "not configured to build any kind of library" fi # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test "$opt_mode" != execute; then func_error "unrecognized option \`-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help="$help" help="Try \`$progname --help --mode=$opt_mode' for more information." } # Bail if the options were screwed $exit_cmd $EXIT_FAILURE } ## ----------- ## ## Main. ## ## ----------- ## # func_lalib_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null \ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_unsafe_p file # True iff FILE is a libtool `.la' library or `.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if `file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case "$lalib_p_line" in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test "$lalib_p" = yes } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { func_lalib_p "$1" } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $opt_debug save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$save_ifs eval cmd=\"$cmd\" func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # `FILE.' does not work on cygwin managed mounts. func_source () { $opt_debug case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case "$lt_sysroot:$1" in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result="=$func_stripname_result" ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $opt_debug if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with \`--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=${1} if test "$build_libtool_libs" = yes; then write_lobj=\'${2}\' else write_lobj=none fi if test "$build_old_libs" = yes; then write_oldobj=\'${3}\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T <<EOF # $write_libobj - a libtool object file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # Name of the PIC object. pic_object=$write_lobj # Name of the non-PIC object non_pic_object=$write_oldobj EOF $MV "${write_libobj}T" "${write_libobj}" } } ################################################## # FILE NAME AND PATH CONVERSION HELPER FUNCTIONS # ################################################## # func_convert_core_file_wine_to_w32 ARG # Helper function used by file name conversion functions when $build is *nix, # and $host is mingw, cygwin, or some other w32 environment. Relies on a # correctly configured wine environment available, with the winepath program # in $build's $PATH. # # ARG is the $build file name to be converted to w32 format. # Result is available in $func_convert_core_file_wine_to_w32_result, and will # be empty on error (or when ARG is empty) func_convert_core_file_wine_to_w32 () { $opt_debug func_convert_core_file_wine_to_w32_result="$1" if test -n "$1"; then # Unfortunately, winepath does not exit with a non-zero error code, so we # are forced to check the contents of stdout. On the other hand, if the # command is not found, the shell will set an exit code of 127 and print # *an error message* to stdout. So we must check for both error code of # zero AND non-empty stdout, which explains the odd construction: func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null` if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$lt_sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $opt_debug # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result="" if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result" ; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $opt_debug if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $opt_debug # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $opt_debug if test -z "$2" && test -n "$1" ; then func_error "Could not determine host file name corresponding to" func_error " \`$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result="$1" fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $opt_debug if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " \`$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result="$3" fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $opt_debug case $4 in $1 ) func_to_host_path_result="$3$func_to_host_path_result" ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via `$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $opt_debug $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $opt_debug case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result="$1" } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result="$func_convert_core_msys_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $opt_debug func_to_host_file_result="$1" if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result="$func_cygpath_result" fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via `$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $opt_debug if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd="func_convert_path_${func_stripname_result}" fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $opt_debug func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result="$1" } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_msys_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $opt_debug func_to_host_path_result="$1" if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result="$func_cygpath_result" func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_mode_compile arg... func_mode_compile () { $opt_debug # Get the compilation command and the source file. base_compile= srcfile="$nonopt" # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg="$arg" arg_mode=normal ;; target ) libobj="$arg" arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify \`-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs="$IFS"; IFS=',' for arg in $args; do IFS="$save_ifs" func_append_quoted lastarg "$arg" done IFS="$save_ifs" func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg="$srcfile" srcfile="$arg" ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with \`-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj="$func_basename_result" } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from \`$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name \`$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname="$func_basename_result" xdir="$func_dirname_result" lobj=${xdir}$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test "$build_old_libs" = yes; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test "$compiler_c_o" = no; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test "$suppress_opt" = yes; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test "$compiler_c_o" = yes; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test "$need_locks" = warn && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support \`-c' and \`-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test "$need_locks" != no; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test "$opt_mode" = compile && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a \`.o' file suitable for static linking -static only build a \`.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a \`standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix \`.c' with the library object suffix, \`.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to \`-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the \`--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the \`install' or \`cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE Use a list of object files found in FILE to specify objects -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with \`-') are ignored. Every other argument is treated as a filename. Files ending in \`.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in \`.la', then a libtool library is created, only library objects (\`.lo' files) may be specified, and \`-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created using \`ar' and \`ranlib', or on Windows using \`lib'. If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode \`$opt_mode'" ;; esac echo $ECHO "Try \`$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test "$opt_help" = :; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | sed -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | sed '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $opt_debug # The first argument is the command name. cmd="$nonopt" test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "\`$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "\`$file' was not linked with \`-export-dynamic'" continue fi func_dirname "$file" "" "." dir="$func_dirname_result" if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir="$func_dirname_result" ;; *) func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir="$absdir" # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic="$magic" # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file="$progdir/$program" fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if test "X$opt_dry_run" = Xfalse; then if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd="\$cmd$args" else # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS fi } test "$opt_mode" = execute && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $opt_debug libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "\`$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument \`$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and \`=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_silent && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the \`-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the \`$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the \`$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test "$opt_mode" = finish && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $opt_debug # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac; then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=no stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=yes ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test "x$prev" = x-m && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the \`$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=yes if test "$isdir" = yes; then destdir="$dest" destname= else func_dirname_and_basename "$dest" "" "." destdir="$func_dirname_result" destname="$func_basename_result" # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "\`$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "\`$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "\`$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir="$func_dirname_result" func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking \`$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname="$1" shift srcname="$realname" test -n "$relink_command" && srcname="$realname"T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme="$stripme" case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme="" ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try `ln -sf' first, because the `ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib="$destdir/$realname" func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name="$func_basename_result" instname="$dir/$name"i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest="$destfile" destfile= ;; *) func_fatal_help "cannot copy a libtool object to \`$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test "$build_old_libs" = yes; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile="$destdir/$destname" else func_basename "$file" destfile="$func_basename_result" destfile="$destdir/$destfile" fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext="" case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=".exe" fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script \`$wrapper'" finalize=yes for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then func_warning "\`$lib' has not been installed in \`$libdir'" finalize=no fi done relink_command= func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then $opt_dry_run || { if test "$finalize" = yes; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file="$func_basename_result" outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_silent || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink \`$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file="$outputname" else func_warning "cannot relink \`$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name="$func_basename_result" # Set up the ranlib parameters. oldlib="$destdir/$name" func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run \`$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test "$opt_mode" = install && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $opt_debug my_outputname="$1" my_originator="$2" my_pic_p="${3-no}" my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms="${my_outputname}S.c" else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist="$output_objdir/${my_outputname}.nm" func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif /* External symbol declarations for the compiler. */\ " if test "$dlself" = yes; then func_verbose "generating symbol list for \`$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols="$output_objdir/$outputname.exp" $opt_dry_run || { $RM $export_symbols eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from \`$dlprefile'" func_basename "$dlprefile" name="$func_basename_result" case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename="" if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname" ; then func_basename "$dlprefile_dlname" dlprefile_dlbasename="$func_basename_result" else # no lafile. user explicitly requested -dlpreopen <import library>. $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename" ; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 </dev/null >/dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[]; LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = {\ { \"$my_originator\", (void *) 0 }," case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) if test "X$my_pic_p" != Xno; then pic_flag_for_symtable=" $pic_flag" fi ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' # Transform the symbol file into the correct name. symfileobj="$output_objdir/${my_outputname}S.$objext" case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for \`$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $opt_debug win32_libid_type="unknown" win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s,.*,import, p q } }'` case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $opt_debug sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $opt_debug match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive which possess that section. Heuristic: eliminate # all those which have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $opt_debug func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $opt_debug if func_cygming_gnu_implib_p "$1" ; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1" ; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result="" fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $opt_debug f_ex_an_ar_dir="$1"; shift f_ex_an_ar_oldlib="$1" if test "$lock_old_archive_extraction" = yes; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test "$lock_old_archive_extraction" = yes; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $opt_debug my_gentop="$1"; shift my_oldlibs=${1+"$@"} my_oldobjs="" my_xlib="" my_xabs="" my_xdir="" for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib="$func_basename_result" my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir="$my_gentop/$my_xlib_u" func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` darwin_base_archive=`basename "$darwin_archive"` darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches ; do func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" func_extract_an_archive "`pwd`" "${darwin_base_archive}" cd "$darwin_curdir" $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result="$my_oldobjs" } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory in which it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ which is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options which match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test "$fast_install" = yes; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else $ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat <<EOF /* $cwrappersource - temporary wrapper executable for $objdir/$outputname Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION The $output program cannot be directly executed until all the libtool libraries that it depends on are installed. This wrapper executable should never be moved out of the build directory. If it is, it will not operate correctly. */ EOF cat <<"EOF" #ifdef _MSC_VER # define _CRT_SECURE_NO_DEPRECATE 1 #endif #include <stdio.h> #include <stdlib.h> #ifdef _MSC_VER # include <direct.h> # include <process.h> # include <io.h> #else # include <unistd.h> # include <stdint.h> # ifdef __CYGWIN__ # include <io.h> # endif #endif #include <malloc.h> #include <stdarg.h> #include <assert.h> #include <string.h> #include <ctype.h> #include <errno.h> #include <fcntl.h> #include <sys/stat.h> /* declarations of non-ANSI functions */ #if defined(__MINGW32__) # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined(__CYGWIN__) # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined (other platforms) ... */ #endif /* portability defines, excluding path handling macros */ #if defined(_MSC_VER) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC # ifndef _INTPTR_T_DEFINED # define _INTPTR_T_DEFINED # define intptr_t int # endif #elif defined(__MINGW32__) # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined(__CYGWIN__) # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined (other platforms) ... */ #endif #if defined(PATH_MAX) # define LT_PATHMAX PATH_MAX #elif defined(MAXPATHLEN) # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ defined (__OS2__) # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free ((void *) stale); stale = 0; } \ } while (0) #if defined(LT_DEBUGWRAPPER) static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <<EOF volatile const char * MAGIC_EXE = "$magic_exe"; const char * LIB_PATH_VARNAME = "$shlibpath_var"; EOF if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then func_to_host_path "$temp_rpath" cat <<EOF const char * LIB_PATH_VALUE = "$func_to_host_path_result"; EOF else cat <<"EOF" const char * LIB_PATH_VALUE = ""; EOF fi if test -n "$dllsearchpath"; then func_to_host_path "$dllsearchpath:" cat <<EOF const char * EXE_PATH_VARNAME = "PATH"; const char * EXE_PATH_VALUE = "$func_to_host_path_result"; EOF else cat <<"EOF" const char * EXE_PATH_VARNAME = ""; const char * EXE_PATH_VALUE = ""; EOF fi if test "$fast_install" = yes; then cat <<EOF const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */ EOF else cat <<EOF const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */ EOF fi cat <<"EOF" #define LTWRAPPER_OPTION_PREFIX "--lt-" static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX; static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script"; static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug"; int main (int argc, char *argv[]) { char **newargz; int newargc; char *tmp_pathspec; char *actual_cwrapper_path; char *actual_cwrapper_name; char *target_name; char *lt_argv_zero; intptr_t rval = 127; int i; program_name = (char *) xstrdup (base_name (argv[0])); newargz = XMALLOC (char *, argc + 1); /* very simple arg parsing; don't want to rely on getopt * also, copy all non cwrapper options to newargz, except * argz[0], which is handled differently */ newargc=0; for (i = 1; i < argc; i++) { if (strcmp (argv[i], dumpscript_opt) == 0) { EOF case "$host" in *mingw* | *cygwin* ) # make stdout use "unix" line endings echo " setmode(1,_O_BINARY);" ;; esac cat <<"EOF" lt_dump_script (stdout); return 0; } if (strcmp (argv[i], debug_opt) == 0) { lt_debug = 1; continue; } if (strcmp (argv[i], ltwrapper_option_prefix) == 0) { /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX namespace, but it is not one of the ones we know about and have already dealt with, above (inluding dump-script), then report an error. Otherwise, targets might begin to believe they are allowed to use options in the LTWRAPPER_OPTION_PREFIX namespace. The first time any user complains about this, we'll need to make LTWRAPPER_OPTION_PREFIX a configure-time option or a configure.ac-settable value. */ lt_fatal (__FILE__, __LINE__, "unrecognized %s option: '%s'", ltwrapper_option_prefix, argv[i]); } /* otherwise ... */ newargz[++newargc] = xstrdup (argv[i]); } newargz[++newargc] = NULL; EOF cat <<EOF /* The GNU banner must be the first non-error debug message */ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n"); EOF cat <<"EOF" lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]); lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name); tmp_pathspec = find_executable (argv[0]); if (tmp_pathspec == NULL) lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]); lt_debugprintf (__FILE__, __LINE__, "(main) found exe (before symlink chase) at: %s\n", tmp_pathspec); actual_cwrapper_path = chase_symlinks (tmp_pathspec); lt_debugprintf (__FILE__, __LINE__, "(main) found exe (after symlink chase) at: %s\n", actual_cwrapper_path); XFREE (tmp_pathspec); actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path)); strendzap (actual_cwrapper_path, actual_cwrapper_name); /* wrapper name transforms */ strendzap (actual_cwrapper_name, ".exe"); tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1); XFREE (actual_cwrapper_name); actual_cwrapper_name = tmp_pathspec; tmp_pathspec = 0; /* target_name transforms -- use actual target program name; might have lt- prefix */ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME)); strendzap (target_name, ".exe"); tmp_pathspec = lt_extend_str (target_name, ".exe", 1); XFREE (target_name); target_name = tmp_pathspec; tmp_pathspec = 0; lt_debugprintf (__FILE__, __LINE__, "(main) libtool target name: %s\n", target_name); EOF cat <<EOF newargz[0] = XMALLOC (char, (strlen (actual_cwrapper_path) + strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1)); strcpy (newargz[0], actual_cwrapper_path); strcat (newargz[0], "$objdir"); strcat (newargz[0], "/"); EOF cat <<"EOF" /* stop here, and copy so we don't have to do this twice */ tmp_pathspec = xstrdup (newargz[0]); /* do NOT want the lt- prefix here, so use actual_cwrapper_name */ strcat (newargz[0], actual_cwrapper_name); /* DO want the lt- prefix here if it exists, so use target_name */ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1); XFREE (tmp_pathspec); tmp_pathspec = NULL; EOF case $host_os in mingw*) cat <<"EOF" { char* p; while ((p = strchr (newargz[0], '\\')) != NULL) { *p = '/'; } while ((p = strchr (lt_argv_zero, '\\')) != NULL) { *p = '/'; } } EOF ;; esac cat <<"EOF" XFREE (target_name); XFREE (actual_cwrapper_path); XFREE (actual_cwrapper_name); lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */ lt_setenv ("DUALCASE", "1"); /* for MSK sh */ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath) because on Windows, both *_VARNAMEs are PATH but uninstalled libraries must come first. */ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE); lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE); lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n", nonnull (lt_argv_zero)); for (i = 0; i < newargc; i++) { lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n", i, nonnull (newargz[i])); } EOF case $host_os in mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ newargz = prepare_spawn (newargz); rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz); if (rval == -1) { /* failed to start process */ lt_debugprintf (__FILE__, __LINE__, "(main) failed to launch target \"%s\": %s\n", lt_argv_zero, nonnull (strerror (errno))); return 127; } return rval; EOF ;; *) cat <<"EOF" execv (lt_argv_zero, newargz); return rval; /* =127, but avoids unused variable warning */ EOF ;; esac cat <<"EOF" } void * xmalloc (size_t num) { void *p = (void *) malloc (num); if (!p) lt_fatal (__FILE__, __LINE__, "memory exhausted"); return p; } char * xstrdup (const char *string) { return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL; } const char * base_name (const char *name) { const char *base; #if defined (HAVE_DOS_BASED_FILE_SYSTEM) /* Skip over the disk name in MSDOS pathnames. */ if (isalpha ((unsigned char) name[0]) && name[1] == ':') name += 2; #endif for (base = name; *name; name++) if (IS_DIR_SEPARATOR (*name)) base = name + 1; return base; } int check_executable (const char *path) { struct stat st; lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if ((stat (path, &st) >= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; int tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined (HAVE_DOS_BASED_FILE_SYSTEM) if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined (HAVE_DOS_BASED_FILE_SYSTEM) } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = q - p; p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (strcmp (str, pat) == 0) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else int len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { int orig_value_len = strlen (orig_value); int add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ int len = strlen (new_value); while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[len-1] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $opt_debug case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_mode_link arg... func_mode_link () { $opt_debug case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # which system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll which has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=no prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module="${wl}-single_module" func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test "$build_libtool_libs" != yes && \ func_fatal_configuration "can not build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg="$1" shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir="$arg" prev= continue ;; dlfiles|dlprefiles) if test "$preload" = no; then # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=yes fi case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test "$dlself" = no; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test "$prev" = dlprefiles; then dlself=yes elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test "$prev" = dlfiles; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols="$arg" test -f "$arg" \ || func_fatal_error "symbol file \`$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex="$arg" prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir="$arg" prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file \`$arg' does not exist" fi arg=$save_arg prev= continue ;; precious_regex) precious_files_regex="$arg" prev= continue ;; release) release="-$arg" prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test "$prev" = rpath; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds="$arg" prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg="$arg" case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "\`-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test "X$arg" = "X-export-symbols"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between \`-L' and \`$1'" else func_fatal_error "need path for \`-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of \`$dir'" dir="$absdir" ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test "X$arg" = "X-lc" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test "X$arg" = "X-lc" && continue ;; esac elif test "X$arg" = "X-lc_r"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module="${wl}-multi_module" continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "\`-no-install' is ignored for $host" func_warning "assuming \`-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs="$IFS"; IFS=',' for flag in $args; do IFS="$save_ifs" func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS="$save_ifs" func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-flto*|-fwhopr*|-fuse-linker-plugin) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test "$pic_object" = none && test "$non_pic_object" = none; then func_fatal_error "cannot find name of object for \`$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" if test "$pic_object" != none; then # Prepend the subdirectory the object is found in. pic_object="$xdir$pic_object" if test "$prev" = dlfiles; then if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test "$prev" = dlprefiles; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg="$pic_object" fi # Non-PIC object. if test "$non_pic_object" != none; then # Prepend the subdirectory the object is found in. non_pic_object="$xdir$non_pic_object" # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test "$pic_object" = none ; then arg="$non_pic_object" fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object="$pic_object" func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir="$func_dirname_result" func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "\`$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test "$prev" = dlfiles; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test "$prev" = dlprefiles; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg="$func_quote_for_eval_result" ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the \`$prevarg' option requires an argument" if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname="$func_basename_result" libobjs_save="$libobjs" if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" func_dirname "$output" "/" "" output_objdir="$func_dirname_result$objdir" func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps ; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test "$linkmode" = lib; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=no newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test "$linkmode,$pass" = "lib,link"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs="$tmp_deplibs" fi if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan"; then libs="$deplibs" deplibs= fi if test "$linkmode" = prog; then case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs="$dlprefiles" fi if test "$pass" = dlopen; then # Collect dlpreopened libraries save_deplibs="$deplibs" deplibs= fi for deplib in $libs; do lib= found=no case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test "$linkmode" != lib && test "$linkmode" != prog; then func_warning "\`-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test "$linkmode" = lib; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib="$searchdir/lib${name}${search_ext}" if test -f "$lib"; then if test "$search_ext" = ".la"; then found=yes else found=no fi break 2 fi done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue else # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll="$l" done if test "X$ll" = "X$old_library" ; then # only static version available found=no func_dirname "$lib" "" "." ladir="$func_dirname_result" lib=$ladir/$old_library if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi fi ;; # -l *.ltframework) if test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test "$linkmode" = lib ; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "\`-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test "$pass" = link; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=no case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=yes fi ;; pass_all) valid_a_lib=yes ;; esac if test "$valid_a_lib" != yes; then echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." else echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi ;; esac continue ;; prog) if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test "$pass" = conv; then deplibs="$deplib $deplibs" elif test "$linkmode" = prog; then if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=yes continue ;; esac # case $deplib if test "$found" = yes || test -f "$lib"; then : else func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" fi # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "\`$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir="$func_dirname_result" dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test "$prefer_static_libs" = yes || test "$prefer_static_libs,$installed" = "built,no"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib="$l" done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for \`$lib'" fi # This library was specified with -dlopen. if test "$pass" = dlopen; then if test -z "$libdir"; then func_fatal_error "cannot -dlopen a convenience library: \`$lib'" fi if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of \`$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir="$ladir" fi ;; esac func_basename "$lib" laname="$func_basename_result" # Find the relevant object directory and library name. if test "X$installed" = Xyes; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library \`$lib' was moved." dir="$ladir" absdir="$abs_ladir" libdir="$abs_ladir" else dir="$lt_sysroot$libdir" absdir="$lt_sysroot$libdir" fi test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir="$ladir" absdir="$abs_ladir" # Remove this search path later func_append notinst_path " $abs_ladir" else dir="$ladir/$objdir" absdir="$abs_ladir/$objdir" # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test "$pass" = dlpreopen; then if test -z "$libdir" && test "$linkmode" = prog; then func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" fi case "$host" in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test "$linkmode" = prog && test "$pass" != link; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=no if test "$link_all_deplibs" != no || test -z "$library_names" || test "$build_libtool_libs" = no; then linkalldeplibs=yes fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test "$linkmode,$pass" = "prog,link"; then if test -n "$library_names" && { { test "$prefer_static_libs" = no || test "$prefer_static_libs,$installed" = "built,yes"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then # Make sure the rpath contains only unique directories. case "$temp_rpath:" in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && { test "$deplibs_check_method" = pass_all || { test "$build_libtool_libs" = yes && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test "$use_static_libs" = built && test "$installed" = yes; then use_static_libs=no fi if test -n "$library_names" && { test "$use_static_libs" = no || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test "$installed" = no; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule="" for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule="$dlpremoduletest" break fi done if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then echo if test "$linkmode" = prog; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test "$linkmode" = lib && test "$hardcode_into_libs" = yes; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname="$1" shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname="$dlname" elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc*) func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; esac eval soname=\"$soname_spec\" else soname="$realname" fi # Make a new name for the extract_expsyms_cmds to use soroot="$soname" func_basename "$soroot" soname="$func_basename_result" func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from \`$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for \`$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test "$linkmode" = prog || test "$opt_mode" != relink; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" case $host in *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; *-*-sysv4*uw2*) add_dir="-L$dir" ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir="-L$dir" ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we can not # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null ; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library" ; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add="$dir/$old_library" fi elif test -n "$old_library"; then add="$dir/$old_library" fi fi esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; esac add_dir="-L$dir" add="-l$name" elif test "$hardcode_shlibpath_var" = no; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; relink) if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$absdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" add="-l$name" else lib_linked=no fi ;; *) lib_linked=no ;; esac if test "$lib_linked" != yes; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test "$hardcode_direct" != yes && test "$hardcode_minus_L" != yes && test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test "$linkmode" = prog || test "$opt_mode" = relink; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test "$hardcode_direct" = yes && test "$hardcode_direct_absolute" = no; then add="$libdir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$libdir" add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add="-l$name" elif test "$hardcode_automatic" = yes; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then add="$inst_prefix_dir$libdir/$linklib" else add="$libdir/$linklib" fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add="-l$name" fi if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test "$hardcode_direct" != unsupported; then test -n "$old_library" && linklib="$old_library" compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test "$build_libtool_libs" = yes; then # Not a shared library if test "$deplibs_check_method" != pass_all; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system can not link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test "$linkmode" = lib; then if test -n "$dependency_libs" && { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes || test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs="$temp_deplibs" fi func_append newlib_search_path " $absdir" # Link against this library test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps ; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path="$deplib" ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of \`$dir'" absdir="$dir" fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names" ; then for tmp in $deplibrary_names ; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl" ; then depdepl="$absdir/$objdir/$depdepl" darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" path= fi fi ;; *) path="-L$absdir/$objdir" ;; esac else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "\`$deplib' seems to be moved" path="-L$absdir" fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test "$pass" = link; then if test "$linkmode" = "prog"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs="$newdependency_libs" if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test "$pass" != dlopen; then if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= fi if test "$linkmode,$pass" != "prog,link"; then vars="deplibs" else vars="compile_deplibs finalize_deplibs" fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs ; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i="" ;; esac if test -n "$i" ; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test "$linkmode" = prog; then dlfiles="$newdlfiles" fi if test "$linkmode" = prog || test "$linkmode" = lib; then dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "\`-R' is ignored for archives" test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "\`-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "\`-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs="$output" func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form `libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test "$module" = no && \ func_fatal_help "libtool library \`$output' must begin with \`lib'" if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test "$dlself" != no && \ func_warning "\`-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test "$#" -gt 1 && \ func_warning "ignoring multiple \`-rpath's for a libtool library" install_libdir="$1" oldlibs= if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. # Some compilers have problems with a `.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "\`-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "\`-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs="$IFS"; IFS=':' set dummy $vinfo 0 0 0 shift IFS="$save_ifs" test -n "$7" && \ func_fatal_help "too many parameters to \`-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major="$1" number_minor="$2" number_revision="$3" # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # which has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_revision" ;; freebsd-aout|freebsd-elf|qnx|sunos) current="$number_major" revision="$number_minor" age="0" ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age="$number_minor" revision="$number_minor" lt_irix_increment=no ;; esac ;; no) current="$1" revision="$2" age="$3" ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT \`$current' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION \`$revision' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE \`$age' must be a nonnegative integer" func_fatal_error "\`$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE \`$age' is greater than the current interface number \`$current'" func_fatal_error "\`$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) major=".$current" versuffix=".$current.$revision"; ;; freebsd-elf) major=".$current" versuffix=".$current" ;; irix | nonstopux) if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring="$verstring_prefix$major.$revision" # Add in all the interfaces that we are compatible with. loop=$revision while test "$loop" -ne 0; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring_prefix$major.$iface:$verstring" done # Before this point, $major must not contain `.'. major=.$major versuffix="$major.$revision" ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix="$major.$age.$revision" ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=".$current.$age.$revision" verstring="$current.$age.$revision" # Add in all the interfaces that we are compatible with. loop=$age while test "$loop" -ne 0; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring="$verstring:${iface}.0" done # Make executables depend on our current version. func_append verstring ":${current}.0" ;; qnx) major=".$current" versuffix=".$current" ;; sunos) major=".$current" versuffix=".$current.$revision" ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 filesystems. func_arith $current - $age major=$func_arith_result versuffix="-$major" ;; *) func_fatal_configuration "unknown library version type \`$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring="0.0" ;; esac if test "$need_version" = no; then versuffix= else versuffix=".0.0" fi fi # Remove version info from name if versioning should be avoided if test "$avoid_version" = yes && test "$need_version" = no; then major= versuffix= verstring="" fi # Check to see if the archive will have undefined symbols. if test "$allow_undefined" = yes; then if test "$allow_undefined_flag" = unsupported; then func_warning "undefined symbols not allowed in $host shared libraries" build_libtool_libs=no build_old_libs=yes fi else # Don't allow undefined symbols. allow_undefined_flag="$no_undefined_flag" fi fi func_generate_dlsyms "$libname" "$libname" "yes" func_append libobjs " $symfileobj" test "X$libobjs" = "X " && libobjs= if test "$opt_mode" != relink; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) if test "X$precious_files_regex" != "X"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles="$dlfiles" dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles="$dlprefiles" dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test "$build_libtool_need_lc" = "yes"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release="" versuffix="" major="" newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c <<EOF int main() { return 0; } EOF $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then ldd_output=`ldd conftest` for i in $deplibs; do case $i in -l*) func_stripname -l '' "$i" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" i="" ;; esac fi if test -n "$i" ; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then func_append newdeplibs " $i" else droppeddeps=yes echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which I believe you do not have" echo "*** because a test_compile did reveal that the linker did not use it for" echo "*** its dynamic dependency list that programs get resolved with at runtime." fi fi ;; *) func_append newdeplibs " $i" ;; esac done else # Error occurred in the first compile. Let's try to salvage # the situation: Compile a separate program for each library. for i in $deplibs; do case $i in -l*) func_stripname -l '' "$i" name=$func_stripname_result $opt_dry_run || $RM conftest if $LTCC $LTCFLAGS -o conftest conftest.c $i; then ldd_output=`ldd conftest` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $i "*) func_append newdeplibs " $i" i="" ;; esac fi if test -n "$i" ; then libname=`eval "\\$ECHO \"$libname_spec\""` deplib_matches=`eval "\\$ECHO \"$library_names_spec\""` set dummy $deplib_matches; shift deplib_match=$1 if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then func_append newdeplibs " $i" else droppeddeps=yes echo $ECHO "*** Warning: dynamic linker does not accept needed library $i." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because a test_compile did reveal that the linker did not use this one" echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi fi else droppeddeps=yes echo $ECHO "*** Warning! Library $i is needed by this library but I was not able to" echo "*** make it link in! You will probably need to install it or some" echo "*** library that it depends on before this library will be fully" echo "*** functional. Installing it before continuing would be even better." fi ;; *) func_append newdeplibs " $i" ;; esac done fi ;; file_magic*) set dummy $deplibs_check_method; shift file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` if test -n "$file_magic_glob"; then libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob` else libnameglob=$libname fi test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do if test "$want_nocaseglob" = yes; then shopt -s nocaseglob potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib="$potent_lib" while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib="" ;; esac fi if test -n "$a_deplib" ; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib="$potent_lib" # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib="" break 2 fi done done fi if test -n "$a_deplib" ; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs="" tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then for i in $predeps $postdeps ; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test "X$deplibs_check_method" = "Xnone"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test "$droppeddeps" = yes; then if test "$module" = yes; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using \`nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test "$allow_undefined" = no; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs="$new_libs" # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then # Remove ${wl} instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath="$finalize_rpath" test "$opt_mode" != relink && rpath="$compile_rpath$rpath" for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath="$finalize_shlibpath" test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname="$1" shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname="$realname" fi if test -z "$dlname"; then dlname=$soname fi lib="$output_objdir/$realname" linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols="$output_objdir/$libname.uexp" func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile if test "x`$SED 1q $export_symbols`" != xEXPORTS; then # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols="$export_symbols" export_symbols= always_export_symbols=yes fi fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd1 in $cmds; do IFS="$save_ifs" # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test "$try_normal_branch" = yes \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=${output_objdir}/${output_la}.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS="$save_ifs" if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs="$tmp_deplibs" if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test "$compiler_needs_object" = yes && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test "X$skipped_export" != "X:" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then output=${output_objdir}/${output_la}.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then output=${output_objdir}/${output_la}.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test "$compiler_needs_object" = yes; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-${k}.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test "X$objlist" = X || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test "$k" -eq 1 ; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-${k}.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-${k}.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\${concat_cmds}$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi if ${skipped_export-false}; then func_verbose "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi fi test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs="$IFS"; IFS='~' for cmd in $concat_cmds; do IFS="$save_ifs" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi if ${skipped_export-false}; then if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols="$export_symbols" test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi fi libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test "$module" = yes && test -n "$module_cmds" ; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" eval cmd=\"$cmd\" $opt_silent || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test "$opt_mode" = relink; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$opt_mode" = relink; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test "$module" = yes || test "$export_dynamic" = yes; then # On all known operating systems, these are identical. dlname="$soname" fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then func_warning "\`-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "\`-l' and \`-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "\`-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "\`-R' is ignored for objects" test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for objects" test -n "$release" && \ func_warning "\`-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object \`$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj="$output" ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # reload_cmds runs $LD directly, so let us get rid of # -Wl from whole_archive_flag_spec and hope we can get by with # turning comma into space.. wl= if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` else gentop="$output_objdir/${obj}x" func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" # Create the old-style object. reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "\`-version-info' is ignored for programs" test -n "$release" && \ func_warning "\`-release' is ignored for programs" test "$preload" = yes \ && test "$dlopen_support" = unknown \ && test "$dlopen_self" = unknown \ && test "$dlopen_self_static" = unknown && \ func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test "$tagname" = CXX ; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " ${wl}-bind_at_load" func_append finalize_command " ${wl}-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs="$new_libs" func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath="$rpath" rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs="$libdir" else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath="$rpath" if test -n "$libobjs" && test "$build_old_libs" = yes; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" "no" # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=yes case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=no ;; *cygwin* | *mingw* ) if test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; *) if test "$need_relink" = no || test "$build_libtool_libs" != yes; then wrappers_required=no fi ;; esac if test "$wrappers_required" = no; then # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.${objext}"; then func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' fi exit $exit_status fi if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test "$no_install" = yes; then # We don't need to create a wrapper script. link_command="$compile_var$compile_command$compile_rpath" # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then # Fast installation is not supported link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" func_warning "this platform does not like uninstalled shared libraries" func_warning "\`$output' will be relinked during installation" else if test "$fast_install" != no; then link_command="$finalize_var$compile_command$finalize_rpath" if test "$fast_install" = yes; then relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` else # fast_install is set to needless relink_command= fi else link_command="$compile_var$compile_command$compile_rpath" relink_command="$finalize_var$finalize_command$finalize_rpath" fi fi # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource="$output_path/$objdir/lt-$output_name.c" cwrapper="$output_path/$output_name.exe" $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host" ; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do if test "$build_libtool_libs" = convenience; then oldobjs="$libobjs_save $symfileobj" addlibs="$convenience" build_libtool_libs=no else if test "$build_libtool_libs" = module; then oldobjs="$libobjs_save" build_libtool_libs=no else oldobjs="$old_deplibs $non_pic_objects" if test "$preload" = yes && test -f "$symfileobj"; then func_append oldobjs " $symfileobj" fi fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop="$output_objdir/${outputname}x" func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase="$func_basename_result" case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj" ; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test "X$oldobjs" = "X" ; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test "$build_old_libs" = yes && old_library="$libname.$libext" func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test "$hardcode_automatic" = yes ; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test "$installed" = yes; then if test -z "$install_libdir"; then break fi output="$output_objdir/$outputname"i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name="$func_basename_result" func_resolve_sysroot "$deplib" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "\`$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs="$newdependency_libs" newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name="$func_basename_result" eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "\`$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles="$newdlprefiles" else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles="$newdlfiles" newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles="$newdlprefiles" fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test "x$bindir" != x ; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that can not go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test "$installed" = no && test "$need_relink" = yes; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } { test "$opt_mode" = link || test "$opt_mode" = relink; } && func_mode_link ${1+"$@"} # func_mode_uninstall arg... func_mode_uninstall () { $opt_debug RM="$nonopt" files= rmforce= exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic="$magic" for arg do case $arg in -f) func_append RM " $arg"; rmforce=yes ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir="$func_dirname_result" if test "X$dir" = X.; then odir="$objdir" else odir="$dir/$objdir" fi func_basename "$file" name="$func_basename_result" test "$opt_mode" = uninstall && odir="$dir" # Remember odir for removal later, being careful to avoid duplicates if test "$opt_mode" = clean; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif test "$rmforce" = yes; then continue fi rmfiles="$file" case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case "$opt_mode" in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test "$pic_object" != none; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test "$non_pic_object" != none; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test "$opt_mode" = clean ; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.${objext}" if test "$fast_install" = yes && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name" ; then func_append rmfiles " $odir/lt-${noexename}.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } { test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && func_mode_uninstall ${1+"$@"} test -z "$opt_mode" && { help="$generic_help" func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode \`$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # in which we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # vi:sw=2 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/pmccabe2html������������������������������������������������������������������0000644�0000000�0000000�00000060413�12153706065�013763� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# pmccabe2html - AWK script to convert pmccabe output to html -*- awk -*- # Copyright (C) 2007-2013 Free Software Foundation, Inc. # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # Written by Jose E. Marchesi <jemarch@gnu.org>. # Adapted for gnulib by Simon Josefsson <simon@josefsson.org>. # Added support for C++ by Giuseppe Scrivano <gscrivano@gnu.org>. # Typical Invocation is from a Makefile.am: # # CYCLO_SOURCES = ${top_srcdir}/src/*.[ch] # # cyclo-$(PACKAGE).html: $(CYCLO_SOURCES) # $(PMCCABE) $(CYCLO_SOURCES) \ # | sort -nr \ # | $(AWK) -f ${top_srcdir}/build-aux/pmccabe2html \ # -v lang=html -v name="$(PACKAGE_NAME)" \ # -v vcurl="http://git.savannah.gnu.org/gitweb/?p=$(PACKAGE).git;a=blob;f=%FILENAME%;hb=HEAD" \ # -v url="http://www.gnu.org/software/$(PACKAGE)/" \ # -v css=${top_srcdir}/build-aux/pmccabe.css \ # -v cut_dir=${top_srcdir}/ \ # > $@-tmp # mv $@-tmp $@ # # The variables available are: # lang output language, either 'html' or 'wiki' # name project name # url link to project's home page # vcurl URL to version controlled source code browser, # a %FILENAME% in the string is replaced with the relative # source filename # css CSS stylesheet filename, included verbatim in HTML output # css_url link to CSS stylesheet, an URL # Prologue & configuration BEGIN { section_global_stats_p = 1 section_function_cyclo_p = 1 # "html" or "wiki" package_name = name output_lang = lang # General Options cyclo_simple_max = 10 cyclo_moderate_max = 20 cyclo_high_max = 50 source_file_link_tmpl = vcurl # HTML options if (url != "") { html_prolog = "<a href=\"" url "\">Back to " package_name " Homepage</a><br/><br/>" } html_epilog = "<hr color=\"black\" size=\"2\"/> \ Copyright (c) 2007, 2008 Free Software Foundation, Inc." html_doctype = "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \ \"http://www.w3.org/TR/html401/loose.dtd\">" html_comment = "<!-- Generated by gnulib's pmccabe2html at " systime() " -->" html_title = "Cyclomatic Complexity report for " package_name # Wiki options wiki_prolog = "{{Note|This page has been automatically generated}}" wiki_epilog = "" # Internal variables nfuncs = 0; } # Functions function build_stats() { # Maximum modified cyclo for (fcn in mcyclo) { num_of_functions++ if (mcyclo[fcn] > max_mcyclo) { max_mcyclo = mcyclo[fcn] } if (mcyclo[fcn] > cyclo_high_max) { num_of_untestable_functions++ } else if (mcyclo[fcn] > cyclo_moderate_max) { num_of_high_functions++ } else if (mcyclo[fcn] > cyclo_simple_max) { num_of_moderate_functions++ } else { num_of_simple_functions++ } } } function html_fnc_table_complete (caption) { html_fnc_table(caption, 1, 1, 0, 1, 1, 0, 1) } function html_fnc_table_abbrev (caption) { html_fnc_table(caption, 1, 1, 0, 0, 1, 0, 0) } function html_fnc_table (caption, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { print "<table width=\"90%\" class=\"function_table\" cellpadding=\"0\" cellspacing=\"0\">" if (caption != "") { print "<caption class=\"function_table_caption\">" caption "</caption>" } html_fnc_header(fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) for (nfnc = 1; nfnc <= nfuncs; nfnc++) { html_fnc(nfnc, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) } print "</table>" } function html_header () { print html_doctype print "<html>" print html_comment print "<head>" print "<title>" html_title "" print "" print "" print "" print "" print "" print "" print "" print "" if (css_url != "") { print "" } if (css != "") { print "" close(css) } print "" print "" } function html_footer () { print "" print "" } function html_fnc_header (fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { print "" if (fname_p) { # Function name print "" print "" print "" print "" print "Function Name" print "" } if (mcyclo_p) { # Modified cyclo print "" print "Modified Cyclo" print "" } if (cyclo_p) { # Cyclo print "" print "Cyclomatic" print "
    " print "Complexity" print "" } if (num_statements_p) { print "" print "Number of" print "
    " print "Statements" print "" } if (num_lines_p) { print "" print "Number of" print "
    " print "Lines" print "" } if (first_line_p) { print "" print "First Line" print "" } if (file_p) { print "" print "Source File" print "" } print "" } function html_fnc (nfun, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { fname = fnames[nfun] # Function name trclass = "function_entry_simple" if (mcyclo[nfun] > cyclo_high_max) { trclass="function_entry_untestable" } else if (mcyclo[nfun] > cyclo_moderate_max) { trclass="function_entry_high" } else if (mcyclo[nfun] > cyclo_simple_max) { trclass="function_entry_moderate" } print "" if (fname_p) { print "" if (file_p && mcyclo[nfun] > cyclo_simple_max) { print "\ " } else { print " " } print "" print "" print fname print "" } if (mcyclo_p) { # Modified cyclo print "" print mcyclo[nfun] print "" } if (cyclo_p) { # Cyclo print "" print cyclo[nfun] print "" } if (num_statements_p) { # Number of statements print "" print num_statements[nfun] print "" } if (num_lines_p) { # Number of lines print "" print num_lines[nfun] print "" } if (first_line_p) { # First line print "" print first_line[nfun] print "" } if (file_p) { href = "" if (source_file_link_tmpl != "") { # Get href target href = source_file_link_tmpl sub(/%FILENAME%/, file[nfun], href) } # Source file print "" if (href != "") { print "" file[nfun] "" } else { print file[nfun] } print "" print "" if (mcyclo[nfun] > cyclo_simple_max) { print "" num_columns = 1; if (fname_p) { num_columns++ } if (mcyclo_p) { num_columns++ } if (cyclo_p) { num_columns++ } if (num_statements_p) { num_columns++ } if (num_lines_p) { num_columns++ } if (first_line_p) { num_columns++ } if (file_p) { num_columns++ } print "" print "
    " print "
    "
    
                while ((getline codeline < (fname nfun "_fn.txt")) > 0)
                {
                    sub(/\\/, ">", codeline)
                    sub(/&/, "&", codeline)
    
                    print codeline
                }
                close(fname nfun "_fn.txt")
                system("rm " "'" fname "'" nfun "_fn.txt")
                print "
    " print "
    " print "" print "" } } } function html_global_stats () { print "
    Summary
    " print "" # Total number of functions print "" print "" print "" print "" # Number of simple functions print "" print "" print "" print "" # Number of moderate functions print "" print "" print "" print "" # Number of high functions print "" print "" print "" print "" # Number of untestable functions print "" print "" print "" print "" print "
    " print "Total number of functions" print "" print num_of_functions print "
    " print "Number of low risk functions" print "" print num_of_simple_functions print "
    " print "Number of moderate risk functions" print "" print num_of_moderate_functions print "
    " print "Number of high risk functions" print "" print num_of_high_functions print "
    " print "Number of untestable functions" print "" print num_of_untestable_functions print "
    " print "
    " } function html_function_cyclo () { print "
    Details for all functions
    " print "" print "" print "" print "" print "" print "" # Simple print "" print "" print "" print "" print "" # Moderate print "" print "" print "" print "" print "" # High print "" print "" print "" print "" print "" # Untestable print "" print "" print "" print "" print "" print "
    " print " " print "" print "Cyclomatic Complexity" print "" print "Risk Evaluation" print "
    " print " " print "" print "0 - " cyclo_simple_max print "" print "Simple module, without much risk" print "
    " print " " print "" print cyclo_simple_max + 1 " - " cyclo_moderate_max print "" print "More complex module, moderate risk" print "
    " print " " print "" print cyclo_moderate_max + 1 " - " cyclo_high_max print "" print "Complex module, high risk" print "
    " print " " print "" print "greater than " cyclo_high_max print "" print "Untestable module, very high risk" print "
    " print "
    " html_fnc_table_complete("") } function wiki_global_stats () { print "{| class=\"cyclo_summary_table\"" # Total number of functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Total number of functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_functions # Number of simple functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of low risk functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_simple_functions # Number of moderate functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of moderate risk functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_moderate_functions # Number of high functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of high risk functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_high_functions # Number of untestable functions print "|-" print "| class=\"cyclo_summary_header_entry\" | Number of untestable functions" print "| class=\"cyclo_summary_number_entry\" |" num_of_untestable_functions print "|}" } function wiki_function_cyclo () { print "==Details for all functions==" print "Used ranges:" print "{| class =\"cyclo_ranges_table\"" print "|-" print "| class=\"cyclo_ranges_header_entry\" | " print "| class=\"cyclo_ranges_header_entry\" | Cyclomatic Complexity" print "| class=\"cyclo_ranges_header_entry\" | Risk Evaluation" # Simple print "|-" print "| class=\"cyclo_ranges_entry_simple\" | " print "| class=\"cyclo_ranges_entry\" | 0 - " cyclo_simple_max print "| class=\"cyclo_ranges_entry\" | Simple module, without much risk" # Moderate print "|-" print "| class=\"cyclo_ranges_entry_moderate\" | " print "| class=\"cyclo_ranges_entry\" |" cyclo_simple_max + 1 " - " cyclo_moderate_max print "| class=\"cyclo_ranges_entry\" | More complex module, moderate risk" # High print "|-" print "| class=\"cyclo_ranges_entry_high\" | " print "| class=\"cyclo_ranges_entry\" |" cyclo_moderate_max + 1 " - " cyclo_high_max print "| class=\"cyclo_ranges_entry\" | Complex module, high risk" # Untestable print "|-" print "| class=\"cyclo_ranges_entry_untestable\" | " print "| class=\"cyclo_ranges_entry\" | greater than " cyclo_high_max print "| class=\"cyclo_ranges_entry\" | Untestable module, very high risk" print "|}" print "" print "" wiki_fnc_table_complete("") } function wiki_fnc_table_complete (caption) { wiki_fnc_table(caption, 1, 1, 0, 1, 1, 0, 1) } function wiki_fnc_table_abbrev (caption) { wiki_fnc_table(caption, 1, 0, 0, 0, 0, 0, 0) } function wiki_fnc_table (caption, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { print "{| width=\"90%\" class=\"cyclo_function_table\" cellpadding=\"0\" cellspacing=\"0\">" if (caption != "") { print "|+" caption } wiki_fnc_header(fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) for (nfnc = 1; nfnc <= nfuncs; nfnc++) { wiki_fnc(nfnc, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) } print "|}" } function wiki_fnc_header (fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { if (fname_p) { # Function name print "! class=\"cyclo_function_table_header_entry\" | Function Name" } if (mcyclo_p) { # Modified cyclo print "! class=\"cyclo_function_table_header_entry\" | Modified Cyclo" } if (cyclo_p) { # Cyclo print "! class=\"cyclo_function_table_header_entry\" | Cyclomatic Complexity" } if (num_statements_p) { print "! class=\"cyclo_function_table_header_entry\" | Number of Statements" } if (num_lines_p) { print "! class=\"cyclo_function_table_header_entry\" | Number of Lines" } if (first_line_p) { print "! class=\"cyclo_function_table_header_entry\" | First Line" } if (file_p) { print "! class=\"cyclo_function_table_header_entry\" | Source File" } } function wiki_fnc (nfnc, fname_p, mcyclo_p, cyclo_p, num_statements_p, num_lines_p, first_line_p, file_p) { fname = fnames[nfnc] # Function name trclass = "cyclo_function_entry_simple" if (mcyclo[nfnc] > cyclo_high_max) { trclass="cyclo_function_entry_untestable" } else if (mcyclo[nfnc] > cyclo_moderate_max) { trclass="cyclo_function_entry_high" } else if (mcyclo[nfnc] > cyclo_simple_max) { trclass="cyclo_function_entry_moderate" } print "|- class=\"" trclass "\"" if (fname_p) { print "| class=\"cyclo_function_entry_name\" |" fname } if (mcyclo_p) { # Modified cyclo print "| class=\"cyclo_function_entry_cyclo\" |" mcyclo[nfnc] } if (cyclo_p) { # Cyclo print "| class=\"cyclo_function_entry_cyclo\" |" cyclo[nfnc] } if (num_statements_p) { # Number of statements print "| class=\"cyclo_function_entry_number\" |" num_statements[nfnc] } if (num_lines_p) { # Number of lines print "| class=\"cyclo_function_entry_number\" |" num_lines[nfnc] } if (first_line_p) { # First line print "| class=\"cyclo_function_entry_number\" |" first_line[nfnc] } if (file_p) { href = "" if (source_file_link_tmpl != "") { # Get href target href = source_file_link_tmpl sub(/%FILENAME%/, file[nfnc], href) } # Source file print "| class=\"cyclo_function_entry_filename\" |" \ ((href != "") ? "[" href " " file[nfnc] "]" : "[" file[nfnc] "]") } } # Scan data from a line { function_name = $7 nfuncs++; fnames[nfuncs] = function_name mcyclo[nfuncs] = $1 cyclo[nfuncs] = $2 num_statements[nfuncs] = $3 first_line[nfuncs] = $4 num_lines[nfuncs] = $5 # Build the filename from the file_spec ($6) begin_util_path = index($6, cut_dir) tmpfilename = substr($6, begin_util_path + length(cut_dir)) sub(/\([0-9]+\):/, "", tmpfilename) file[nfuncs] = tmpfilename if (mcyclo[nfuncs] > cyclo_simple_max) { # Extract function contents to a fn_txt file filepath = $6 sub(/\([0-9]+\):/, "", filepath) num_line = 0 while ((getline codeline < filepath) > 0) { num_line++; if ((num_line >= first_line[nfuncs]) && (num_line < first_line[nfuncs] + num_lines[nfuncs])) { print codeline > (function_name nfuncs "_fn.txt") } } close (function_name nfuncs "_fn.txt") close(filepath) } # Initial values for statistics variables num_of_functions = 0 max_mcyclo = 0 max_function_length = 0 num_of_simple_functions = 0 num_of_moderate_functions = 0 num_of_high_functions = 0 num_of_untestable_functions = 0 } # Epilogue END { # Print header (only for html) if (output_lang == "html") { html_header() } # Print prolog if ((output_lang == "html") && (html_prolog != "")) { print html_prolog } if ((output_lang == "wiki") && (wiki_prolog != "")) { print wiki_prolog } if (output_lang == "html") { print "
    " package_name " Cyclomatic Complexity Report
    " print "

    Report generated at: " strftime() "

    " } if (output_lang == "wiki") { print "==" package_name " Cyclomatic Complexity Report==" print "Report generated at: '''" strftime() "'''" } if (section_global_stats_p) { build_stats() if (output_lang == "html") { html_global_stats() } if (output_lang == "wiki") { wiki_global_stats() } } if (section_function_cyclo_p) { if (output_lang == "html") { html_function_cyclo() } if (output_lang == "wiki") { wiki_function_cyclo() } } # Print epilog if ((output_lang == "html") && (html_epilog != "")) { print html_epilog } if ((output_lang == "wiki") && (wiki_epilog != "")) { print wiki_epilog } # Print footer (html only) if (output_lang == "html") { html_footer() } } # End of pmccabe2html libidn-1.28/build-aux/gnupload0000755000000000000000000002744712153706065013250 00000000000000#!/bin/sh # Sign files and upload them. scriptversion=2013-03-19.17; # UTC # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # 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 3, or (at your option) # any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Originally written by Alexandre Duret-Lutz . # The master copy of this file is maintained in the gnulib Git repository. # Please send bug reports and feature requests to bug-gnulib@gnu.org. set -e GPG='gpg --batch --no-tty' conffile=.gnuploadrc to= dry_run=false replace= symlink_files= delete_files= delete_symlinks= collect_var= dbg= nl=' ' usage="Usage: $0 [OPTION]... [CMD] FILE... [[CMD] FILE...] Sign all FILES, and process them at the destinations specified with --to. If CMD is not given, it defaults to uploading. See examples below. Commands: --delete delete FILES from destination --symlink create symbolic links --rmsymlink remove symbolic links -- treat the remaining arguments as files to upload Options: --to DEST specify a destination DEST for FILES (multiple --to options are allowed) --user NAME sign with key NAME --replace allow replacements of existing files --symlink-regex[=EXPR] use sed script EXPR to compute symbolic link names --dry-run do nothing, show what would have been done (including the constructed directive file) --version output version information and exit --help print this help text and exit If --symlink-regex is given without EXPR, then the link target name is created by replacing the version information with '-latest', e.g.: foo-1.3.4.tar.gz -> foo-latest.tar.gz Recognized destinations are: alpha.gnu.org:DIRECTORY savannah.gnu.org:DIRECTORY savannah.nongnu.org:DIRECTORY ftp.gnu.org:DIRECTORY build directive files and upload files by FTP download.gnu.org.ua:{alpha|ftp}/DIRECTORY build directive files and upload files by SFTP [user@]host:DIRECTORY upload files with scp Options and commands are applied in order. If the file $conffile exists in the current working directory, its contents are prepended to the actual command line options. Use this to keep your defaults. Comments (#) and empty lines in $conffile are allowed. gives some further background. Examples: 1. Upload foobar-1.0.tar.gz to ftp.gnu.org: gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz 2. Upload foobar-1.0.tar.gz and foobar-1.0.tar.xz to ftp.gnu.org: gnupload --to ftp.gnu.org:foobar foobar-1.0.tar.gz foobar-1.0.tar.xz 3. Same as above, and also create symbolic links to foobar-latest.tar.*: gnupload --to ftp.gnu.org:foobar \\ --symlink-regex \\ foobar-1.0.tar.gz foobar-1.0.tar.xz 4. Upload foobar-0.9.90.tar.gz to two sites: gnupload --to alpha.gnu.org:foobar \\ --to sources.redhat.com:~ftp/pub/foobar \\ foobar-0.9.90.tar.gz 5. Delete oopsbar-0.9.91.tar.gz and upload foobar-0.9.91.tar.gz (the -- terminates the list of files to delete): gnupload --to alpha.gnu.org:foobar \\ --to sources.redhat.com:~ftp/pub/foobar \\ --delete oopsbar-0.9.91.tar.gz \\ -- foobar-0.9.91.tar.gz gnupload executes a program ncftpput to do the transfers; if you don't happen to have an ncftp package installed, the ncftpput-ftp script in the build-aux/ directory of the gnulib package (http://savannah.gnu.org/projects/gnulib) may serve as a replacement. Send patches and bug reports to ." # Read local configuration file if test -r "$conffile"; then echo "$0: Reading configuration file $conffile" conf=`sed 's/#.*$//;/^$/d' "$conffile" | tr "\015$nl" ' '` eval set x "$conf \"\$@\"" shift fi while test -n "$1"; do case $1 in -*) collect_var= case $1 in --help) echo "$usage" exit $? ;; --to) if test -z "$2"; then echo "$0: Missing argument for --to" 1>&2 exit 1 elif echo "$2" | grep 'ftp-upload\.gnu\.org' >/dev/null; then echo "$0: Use ftp.gnu.org:PKGNAME or alpha.gnu.org:PKGNAME" >&2 echo "$0: for the destination, not ftp-upload.gnu.org (which" >&2 echo "$0: is used for direct ftp uploads, not with gnupload)." >&2 echo "$0: See --help and its examples if need be." >&2 exit 1 else to="$to $2" shift fi ;; --user) if test -z "$2"; then echo "$0: Missing argument for --user" 1>&2 exit 1 else GPG="$GPG --local-user $2" shift fi ;; --delete) collect_var=delete_files ;; --replace) replace="replace: true" ;; --rmsymlink) collect_var=delete_symlinks ;; --symlink-regex=*) symlink_expr=`expr "$1" : '[^=]*=\(.*\)'` ;; --symlink-regex) symlink_expr='s|-[0-9][0-9\.]*\(-[0-9][0-9]*\)\{0,1\}\.|-latest.|' ;; --symlink) collect_var=symlink_files ;; --dry-run|-n) dry_run=: ;; --version) echo "gnupload $scriptversion" exit $? ;; --) shift break ;; -*) echo "$0: Unknown option '$1', try '$0 --help'" 1>&2 exit 1 ;; esac ;; *) if test -z "$collect_var"; then break else eval "$collect_var=\"\$$collect_var $1\"" fi ;; esac shift done dprint() { echo "Running $* ..." } if $dry_run; then dbg=dprint fi if test -z "$to"; then echo "$0: Missing destination sites" >&2 exit 1 fi if test -n "$symlink_files"; then x=`echo "$symlink_files" | sed 's/[^ ]//g;s/ //g'` if test -n "$x"; then echo "$0: Odd number of symlink arguments" >&2 exit 1 fi fi if test $# = 0; then if test -z "${symlink_files}${delete_files}${delete_symlinks}"; then echo "$0: No file to upload" 1>&2 exit 1 fi else # Make sure all files exist. We don't want to ask # for the passphrase if the script will fail. for file do if test ! -f $file; then echo "$0: Cannot find '$file'" 1>&2 exit 1 elif test -n "$symlink_expr"; then linkname=`echo $file | sed "$symlink_expr"` if test -z "$linkname"; then echo "$0: symlink expression produces empty results" >&2 exit 1 elif test "$linkname" = $file; then echo "$0: symlink expression does not alter file name" >&2 exit 1 fi fi done fi # Make sure passphrase is not exported in the environment. unset passphrase unset passphrase_fd_0 GNUPGHOME=${GNUPGHOME:-$HOME/.gnupg} # Reset PATH to be sure that echo is a built-in. We will later use # 'echo $passphrase' to output the passphrase, so it is important that # it is a built-in (third-party programs tend to appear in 'ps' # listings with their arguments...). # Remember this script runs with 'set -e', so if echo is not built-in # it will exit now. if $dry_run || grep -q "^use-agent" $GNUPGHOME/gpg.conf; then :; else PATH=/empty echo -n "Enter GPG passphrase: " stty -echo read -r passphrase stty echo echo passphrase_fd_0="--passphrase-fd 0" fi if test $# -ne 0; then for file do echo "Signing $file ..." rm -f $file.sig echo "$passphrase" | $dbg $GPG $passphrase_fd_0 -ba -o $file.sig $file done fi # mkdirective DESTDIR BASE FILE STMT # Arguments: See upload, below mkdirective () { stmt="$4" if test -n "$3"; then stmt=" filename: $3$stmt" fi cat >${2}.directive<&2 fi $dbg ncftpput savannah.gnu.org /incoming/savannah/$destdir $files ;; savannah.nongnu.org:*) if test -z "$files"; then echo "$0: warning: standalone directives not applicable for $dest" >&2 fi $dbg ncftpput savannah.nongnu.org /incoming/savannah/$destdir $files ;; download.gnu.org.ua:alpha/*|download.gnu.org.ua:ftp/*) destdir_p1=`echo "$destdir" | sed 's,^[^/]*/,,'` destdir_topdir=`echo "$destdir" | sed 's,/.*,,'` mkdirective "$destdir_p1" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive for f in $files $base.directive.asc do echo put $f done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir ;; /*) dest_host=`echo "$dest" | sed 's,:.*,,'` mkdirective "$destdir" "$base" "$file" "$stmt" echo "$passphrase" | $dbg $GPG $passphrase_fd_0 --clearsign $base.directive $dbg cp $files $base.directive.asc $dest_host ;; *) if test -z "$files"; then echo "$0: warning: standalone directives not applicable for $dest" >&2 fi $dbg scp $files $dest ;; esac rm -f $base.directive $base.directive.asc } ##### # Process any standalone directives stmt= if test -n "$symlink_files"; then stmt="$stmt `mksymlink $symlink_files`" fi for file in $delete_files do stmt="$stmt archive: $file" done for file in $delete_symlinks do stmt="$stmt rmsymlink: $file" done if test -n "$stmt"; then for dest in $to do destdir=`echo $dest | sed 's/[^:]*://'` upload "$dest" "$destdir" "`hostname`-$$" "" "$stmt" done fi # Process actual uploads for dest in $to do for file do echo "Uploading $file to $dest ..." stmt= # # allowing file replacement is all or nothing. if test -n "$replace"; then stmt="$stmt $replace" fi # files="$file $file.sig" destdir=`echo $dest | sed 's/[^:]*://'` if test -n "$symlink_expr"; then linkname=`echo $file | sed "$symlink_expr"` stmt="$stmt symlink: $file $linkname symlink: $file.sig $linkname.sig" fi upload "$dest" "$destdir" "$file" "$file" "$stmt" "$files" done done exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libidn-1.28/build-aux/update-copyright0000755000000000000000000002242112153706065014712 00000000000000eval '(exit $?0)' && eval 'exec perl -wS -0777 -pi "$0" ${1+"$@"}' & eval 'exec perl -wS -0777 -pi "$0" $argv:q' if 0; # Update an FSF copyright year list to include the current year. my $VERSION = '2013-01-03.09:41'; # UTC # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # 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 3, or (at your option) # any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Written by Jim Meyering and Joel E. Denny # The arguments to this script should be names of files that contain # copyright statements to be updated. The copyright holder's name # defaults to "Free Software Foundation, Inc." but may be changed to # any other name by using the "UPDATE_COPYRIGHT_HOLDER" environment # variable. # # For example, you might wish to use the update-copyright target rule # in maint.mk from gnulib's maintainer-makefile module. # # Iff a copyright statement is recognized in a file and the final # year is not the current year, then the statement is updated for the # new year and it is reformatted to: # # 1. Fit within 72 columns. # 2. Convert 2-digit years to 4-digit years by prepending "19". # 3. Expand copyright year intervals. (See "Environment variables" # below.) # # A warning is printed for every file for which no copyright # statement is recognized. # # Each file's copyright statement must be formatted correctly in # order to be recognized. For example, each of these is fine: # # Copyright @copyright{} 1990-2005, 2007-2009 Free Software # Foundation, Inc. # # # Copyright (C) 1990-2005, 2007-2009 Free Software # # Foundation, Inc. # # /* # * Copyright © 90,2005,2007-2009 # * Free Software Foundation, Inc. # */ # # However, the following format is not recognized because the line # prefix changes after the first line: # # ## Copyright (C) 1990-2005, 2007-2009 Free Software # # Foundation, Inc. # # However, any correctly formatted copyright statement following # a non-matching copyright statements would be recognized. # # The exact conditions that a file's copyright statement must meet # to be recognized are: # # 1. It is the first copyright statement that meets all of the # following conditions. Subsequent copyright statements are # ignored. # 2. Its format is "Copyright (C)", then a list of copyright years, # and then the name of the copyright holder. # 3. The "(C)" takes one of the following forms or is omitted # entirely: # # A. (C) # B. (c) # C. @copyright{} # D. © # # 4. The "Copyright" appears at the beginning of a line, except that it # may be prefixed by any sequence (e.g., a comment) of no more than # 5 characters -- including white space. # 5. Iff such a prefix is present, the same prefix appears at the # beginning of each remaining line within the FSF copyright # statement. There is one exception in order to support C-style # comments: if the first line's prefix contains nothing but # whitespace surrounding a "/*", then the prefix for all subsequent # lines is the same as the first line's prefix except with each of # "/" and possibly "*" replaced by a " ". The replacement of "*" # by " " is consistent throughout all subsequent lines. # 6. Blank lines, even if preceded by the prefix, do not appear # within the FSF copyright statement. # 7. Each copyright year is 2 or 4 digits, and years are separated by # commas or dashes. Whitespace may appear after commas. # # Environment variables: # # 1. If UPDATE_COPYRIGHT_FORCE=1, a recognized FSF copyright statement # is reformatted even if it does not need updating for the new # year. If unset or set to 0, only updated FSF copyright # statements are reformatted. # 2. If UPDATE_COPYRIGHT_USE_INTERVALS=1, every series of consecutive # copyright years (such as 90, 1991, 1992-2007, 2008) in a # reformatted FSF copyright statement is collapsed to a single # interval (such as 1990-2008). If unset or set to 0, all existing # copyright year intervals in a reformatted FSF copyright statement # are expanded instead. # If UPDATE_COPYRIGHT_USE_INTERVALS=2, convert a sequence with gaps # to the minimal containing range. For example, convert # 2000, 2004-2007, 2009 to 2000-2009. # 3. For testing purposes, you can set the assumed current year in # UPDATE_COPYRIGHT_YEAR. # 4. The default maximum line length for a copyright line is 72. # Set UPDATE_COPYRIGHT_MAX_LINE_LENGTH to use a different length. # 5. Set UPDATE_COPYRIGHT_HOLDER if the copyright holder is other # than "Free Software Foundation, Inc.". use strict; use warnings; my $copyright_re = 'Copyright'; my $circle_c_re = '(?:\([cC]\)|@copyright{}|©)'; my $holder = $ENV{UPDATE_COPYRIGHT_HOLDER}; $holder ||= 'Free Software Foundation, Inc.'; my $prefix_max = 5; my $margin = $ENV{UPDATE_COPYRIGHT_MAX_LINE_LENGTH}; !$margin || $margin !~ m/^\d+$/ and $margin = 72; my $tab_width = 8; my $this_year = $ENV{UPDATE_COPYRIGHT_YEAR}; if (!$this_year || $this_year !~ m/^\d{4}$/) { my ($sec, $min, $hour, $mday, $month, $year) = localtime (time ()); $this_year = $year + 1900; } # Unless the file consistently uses "\r\n" as the EOL, use "\n" instead. my $eol = /(?:^|[^\r])\n/ ? "\n" : "\r\n"; my $leading; my $prefix; my $ws_re; my $stmt_re; while (/(^|\n)(.{0,$prefix_max})$copyright_re/g) { $leading = "$1$2"; $prefix = $2; if ($prefix =~ /^(\s*\/)\*(\s*)$/) { $prefix =~ s,/, ,; my $prefix_ws = $prefix; $prefix_ws =~ s/\*/ /; # Only whitespace. if (/\G(?:[^*\n]|\*[^\/\n])*\*?\n$prefix_ws/) { $prefix = $prefix_ws; } } $ws_re = '[ \t\r\f]'; # \s without \n $ws_re = "(?:$ws_re*(?:$ws_re|\\n" . quotemeta($prefix) . ")$ws_re*)"; my $holder_re = $holder; $holder_re =~ s/\s/$ws_re/g; my $stmt_remainder_re = "(?:$ws_re$circle_c_re)?" . "$ws_re(?:(?:\\d\\d)?\\d\\d(?:,$ws_re?|-))*" . "((?:\\d\\d)?\\d\\d)$ws_re$holder_re"; if (/\G$stmt_remainder_re/) { $stmt_re = quotemeta($leading) . "($copyright_re$stmt_remainder_re)"; last; } } if (defined $stmt_re) { /$stmt_re/ or die; # Should never die. my $stmt = $1; my $final_year_orig = $2; # Handle two-digit year numbers like "98" and "99". my $final_year = $final_year_orig; $final_year <= 99 and $final_year += 1900; if ($final_year != $this_year) { # Update the year. $stmt =~ s/\b$final_year_orig\b/$final_year, $this_year/; } if ($final_year != $this_year || $ENV{'UPDATE_COPYRIGHT_FORCE'}) { # Normalize all whitespace including newline-prefix sequences. $stmt =~ s/$ws_re/ /g; # Put spaces after commas. $stmt =~ s/, ?/, /g; # Convert 2-digit to 4-digit years. $stmt =~ s/(\b\d\d\b)/19$1/g; # Make the use of intervals consistent. if (!$ENV{UPDATE_COPYRIGHT_USE_INTERVALS}) { $stmt =~ s/(\d{4})-(\d{4})/join(', ', $1..$2)/eg; } else { $stmt =~ s/ (\d{4}) (?: (,\ |-) ((??{ if ($2 eq '-') { '\d{4}'; } elsif (!$3) { $1 + 1; } else { $3 + 1; } })) )+ /$1-$3/gx; # When it's 2, emit a single range encompassing all year numbers. $ENV{UPDATE_COPYRIGHT_USE_INTERVALS} == 2 and $stmt =~ s/\b(\d{4})\b.*\b(\d{4})\b/$1-$2/; } # Format within margin. my $stmt_wrapped; my $text_margin = $margin - length($prefix); if ($prefix =~ /^(\t+)/) { $text_margin -= length($1) * ($tab_width - 1); } while (length $stmt) { if (($stmt =~ s/^(.{1,$text_margin})(?: |$)//) || ($stmt =~ s/^([\S]+)(?: |$)//)) { my $line = $1; $stmt_wrapped .= $stmt_wrapped ? "$eol$prefix" : $leading; $stmt_wrapped .= $line; } else { # Should be unreachable, but we don't want an infinite # loop if it can be reached. die; } } # Replace the old copyright statement. s/$stmt_re/$stmt_wrapped/; } } else { print STDERR "$ARGV: warning: copyright statement not found\n"; } # Local variables: # mode: perl # indent-tabs-mode: nil # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "my $VERSION = '" # time-stamp-format: "%:y-%02m-%02d.%02H:%02M" # time-stamp-time-zone: "UTC" # time-stamp-end: "'; # UTC" # End: libidn-1.28/build-aux/compile0000755000000000000000000001624512167244657013072 00000000000000#! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2012-10-14.11; # UTC # Copyright (C) 1999-2013 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . EOF exit $? ;; -v | --v*) echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: libidn-1.28/build-aux/gendocs.sh0000755000000000000000000003745112153706065013466 00000000000000#!/bin/sh -e # gendocs.sh -- generate a GNU manual in many formats. This script is # mentioned in maintain.texi. See the help message below for usage details. scriptversion=2013-03-08.15 # Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 # Free Software Foundation, Inc. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # Original author: Mohit Agarwal. # Send bug reports and any other correspondence to bug-texinfo@gnu.org. # # The latest version of this script, and the companion template, is # available from Texinfo CVS: # http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs.sh # http://savannah.gnu.org/cgi-bin/viewcvs/texinfo/texinfo/util/gendocs_template # # An up-to-date copy is also maintained in Gnulib (gnu.org/software/gnulib). # TODO: # - image importation was only implemented for HTML generated by # makeinfo. But it should be simple enough to adjust. # - images are not imported in the source tarball. All the needed # formats (PDF, PNG, etc.) should be included. prog=`basename "$0"` srcdir=`pwd` scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh" templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template" : ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="} : ${MAKEINFO="makeinfo"} : ${TEXI2DVI="texi2dvi -t @finalout"} : ${DOCBOOK2HTML="docbook2html"} : ${DOCBOOK2PDF="docbook2pdf"} : ${DOCBOOK2TXT="docbook2txt"} : ${GENDOCS_TEMPLATE_DIR="."} : ${PERL='perl'} : ${TEXI2HTML="texi2html"} unset CDPATH unset use_texi2html version="gendocs.sh $scriptversion Copyright 2013 Free Software Foundation, Inc. There is NO warranty. You may redistribute this software under the terms of the GNU General Public License. For more information about these matters, see the files named COPYING." usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE Generate output in various formats from PACKAGE.texinfo (or .texi or .txi) source. See the GNU Maintainers document for a more extensive discussion: http://www.gnu.org/prep/maintain_toc.html Options: --email ADR use ADR as contact in generated web pages; always give this. -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi} -o OUTDIR write files into OUTDIR, instead of manual/. -I DIR append DIR to the Texinfo search path. --common ARG pass ARG in all invocations. --html ARG pass ARG to makeinfo or texi2html for HTML targets. --info ARG pass ARG to makeinfo for Info, instead of --no-split. --no-ascii skip generating the plain text output. --source ARG include ARG in tar archive of sources. --split HOW make split HTML by node, section, chapter; default node. --texi2html use texi2html to make HTML target, with all split versions. --docbook convert through DocBook too (xml, txt, html, pdf). --help display this help and exit successfully. --version display version information and exit successfully. Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\" Typical sequence: cd PACKAGESOURCE/doc wget \"$scripturl\" wget \"$templateurl\" $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\" Output will be in a new subdirectory \"manual\" (by default; use -o OUTDIR to override). Move all the new files into your web CVS tree, as explained in the Web Pages node of maintain.texi. Please use the --email ADDRESS option so your own bug-reporting address will be used in the generated HTML pages. MANUAL-TITLE is included as part of the HTML of the overall manual/index.html file. It should include the name of the package being documented. manual/index.html is created by substitution from the file $GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the generic template for your own purposes.) If you have several manuals, you'll need to run this script several times with different MANUAL values, specifying a different output directory with -o each time. Then write (by hand) an overall index.html with links to them all. If a manual's Texinfo sources are spread across several directories, first copy or symlink all Texinfo sources into a single directory. (Part of the script's work is to make a tar.gz of the sources.) As implied above, by default monolithic Info files are generated. If you want split Info, or other Info options, use --info to override. You can set the environment variables MAKEINFO, TEXI2DVI, TEXI2HTML, and PERL to control the programs that get executed, and GENDOCS_TEMPLATE_DIR to control where the gendocs_template file is looked for. With --docbook, the environment variables DOCBOOK2HTML, DOCBOOK2PDF, and DOCBOOK2TXT are also consulted. By default, makeinfo and texi2dvi are run in the default (English) locale, since that's the language of most Texinfo manuals. If you happen to have a non-English manual and non-English web site, see the SETLANG setting in the source. Email bug reports or enhancement requests to bug-texinfo@gnu.org. " MANUAL_TITLE= PACKAGE= EMAIL=webmasters@gnu.org # please override with --email commonarg= # passed to all makeinfo/texi2html invcations. dirargs= # passed to all tools (-I dir). dirs= # -I's directories. htmlarg= infoarg=--no-split generate_ascii=true outdir=manual source_extra= split=node srcfile= while test $# -gt 0; do case $1 in -s) shift; srcfile=$1;; -o) shift; outdir=$1;; -I) shift; dirargs="$dirargs -I '$1'"; dirs="$dirs $1";; --common) shift; commonarg=$1;; --docbook) docbook=yes;; --email) shift; EMAIL=$1;; --html) shift; htmlarg=$1;; --info) shift; infoarg=$1;; --no-ascii) generate_ascii=false;; --source) shift; source_extra=$1;; --split) shift; split=$1;; --texi2html) use_texi2html=1;; --help) echo "$usage"; exit 0;; --version) echo "$version"; exit 0;; -*) echo "$0: Unknown option \`$1'." >&2 echo "$0: Try \`--help' for more information." >&2 exit 1;; *) if test -z "$PACKAGE"; then PACKAGE=$1 elif test -z "$MANUAL_TITLE"; then MANUAL_TITLE=$1 else echo "$0: extra non-option argument \`$1'." >&2 exit 1 fi;; esac shift done # makeinfo uses the dirargs, but texi2dvi doesn't. commonarg=" $dirargs $commonarg" # For most of the following, the base name is just $PACKAGE base=$PACKAGE if test -n "$srcfile"; then # but here, we use the basename of $srcfile base=`basename "$srcfile"` case $base in *.txi|*.texi|*.texinfo) base=`echo "$base"|sed 's/\.[texinfo]*$//'`;; esac PACKAGE=$base elif test -s "$srcdir/$PACKAGE.texinfo"; then srcfile=$srcdir/$PACKAGE.texinfo elif test -s "$srcdir/$PACKAGE.texi"; then srcfile=$srcdir/$PACKAGE.texi elif test -s "$srcdir/$PACKAGE.txi"; then srcfile=$srcdir/$PACKAGE.txi else echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 exit 1 fi if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 echo "$0: it is available from $templateurl." >&2 exit 1 fi # Function to return size of $1 in something resembling kilobytes. calcsize() { size=`ls -ksl $1 | awk '{print $1}'` echo $size } # copy_images OUTDIR HTML-FILE... # ------------------------------- # Copy all the images needed by the HTML-FILEs into OUTDIR. Look # for them in the -I directories. copy_images() { local odir odir=$1 shift $PERL -n -e " BEGIN { \$me = '$prog'; \$odir = '$odir'; @dirs = qw($dirs); } " -e ' /<img src="(.*?)"/g && ++$need{$1}; END { #print "$me: @{[keys %need]}\n"; # for debugging, show images found. FILE: for my $f (keys %need) { for my $d (@dirs) { if (-f "$d/$f") { use File::Basename; my $dest = dirname ("$odir/$f"); # use File::Path; -d $dest || mkpath ($dest) || die "$me: cannot mkdir $dest: $!\n"; # use File::Copy; copy ("$d/$f", $dest) || die "$me: cannot copy $d/$f to $dest: $!\n"; next FILE; } } die "$me: $ARGV: cannot find image $f\n"; } } ' -- "$@" || exit 1 } case $outdir in /*) abs_outdir=$outdir;; *) abs_outdir=$srcdir/$outdir;; esac echo "Making output for $srcfile" echo " in `pwd`" mkdir -p "$outdir/" cmd="$SETLANG $MAKEINFO -o $PACKAGE.info $commonarg $infoarg \"$srcfile\"" echo "Generating info... ($cmd)" eval "$cmd" tar czf "$outdir/$PACKAGE.info.tar.gz" $PACKAGE.info* ls -l "$outdir/$PACKAGE.info.tar.gz" info_tgz_size=`calcsize "$outdir/$PACKAGE.info.tar.gz"` # do not mv the info files, there's no point in having them available # separately on the web. cmd="$SETLANG $TEXI2DVI $dirargs \"$srcfile\"" printf "\nGenerating dvi... ($cmd)\n" eval "$cmd" # compress/finish dvi: gzip -f -9 $PACKAGE.dvi dvi_gz_size=`calcsize $PACKAGE.dvi.gz` mv $PACKAGE.dvi.gz "$outdir/" ls -l "$outdir/$PACKAGE.dvi.gz" cmd="$SETLANG $TEXI2DVI --pdf $dirargs \"$srcfile\"" printf "\nGenerating pdf... ($cmd)\n" eval "$cmd" pdf_size=`calcsize $PACKAGE.pdf` mv $PACKAGE.pdf "$outdir/" ls -l "$outdir/$PACKAGE.pdf" if $generate_ascii; then opt="-o $PACKAGE.txt --no-split --no-headers $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating ascii... ($cmd)\n" eval "$cmd" ascii_size=`calcsize $PACKAGE.txt` gzip -f -9 -c $PACKAGE.txt >"$outdir/$PACKAGE.txt.gz" ascii_gz_size=`calcsize "$outdir/$PACKAGE.txt.gz"` mv $PACKAGE.txt "$outdir/" ls -l "$outdir/$PACKAGE.txt" "$outdir/$PACKAGE.txt.gz" fi # Split HTML at level $1. Used for texi2html. html_split() { opt="--split=$1 --node-files $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\"" printf "\nGenerating html by $1... ($cmd)\n" eval "$cmd" split_html_dir=$PACKAGE.html ( cd ${split_html_dir} || exit 1 ln -sf ${PACKAGE}.html index.html tar -czf "$abs_outdir/${PACKAGE}.html_$1.tar.gz" -- *.html ) eval html_$1_tgz_size=`calcsize "$outdir/${PACKAGE}.html_$1.tar.gz"` rm -f "$outdir"/html_$1/*.html mkdir -p "$outdir/html_$1/" mv ${split_html_dir}/*.html "$outdir/html_$1/" rmdir ${split_html_dir} } if test -z "$use_texi2html"; then opt="--no-split --html -o $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating monolithic html... ($cmd)\n" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` copy_images "$outdir/" $PACKAGE.html mv $PACKAGE.html "$outdir/" ls -l "$outdir/$PACKAGE.html" "$outdir/$PACKAGE.html.gz" # Before Texinfo 5.0, makeinfo did not accept a --split=HOW option, # it just always split by node. So if we're splitting by node anyway, # leave it out. if test "x$split" = xnode; then split_arg= else split_arg=--split=$split fi # opt="--html -o $PACKAGE.html $split_arg $commonarg $htmlarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" printf "\nGenerating html by $split... ($cmd)\n" eval "$cmd" split_html_dir=$PACKAGE.html copy_images $split_html_dir/ $split_html_dir/*.html ( cd $split_html_dir || exit 1 tar -czf "$abs_outdir/$PACKAGE.html_$split.tar.gz" -- * ) eval \ html_${split}_tgz_size=`calcsize "$outdir/$PACKAGE.html_$split.tar.gz"` rm -rf "$outdir/html_$split/" mv $split_html_dir "$outdir/html_$split/" du -s "$outdir/html_$split/" ls -l "$outdir/$PACKAGE.html_$split.tar.gz" else # use texi2html: opt="--output $PACKAGE.html $commonarg $htmlarg" cmd="$SETLANG $TEXI2HTML $opt \"$srcfile\"" printf "\nGenerating monolithic html with texi2html... ($cmd)\n" rm -rf $PACKAGE.html # in case a directory is left over eval "$cmd" html_mono_size=`calcsize $PACKAGE.html` gzip -f -9 -c $PACKAGE.html >"$outdir/$PACKAGE.html.gz" html_mono_gz_size=`calcsize "$outdir/$PACKAGE.html.gz"` mv $PACKAGE.html "$outdir/" html_split node html_split chapter html_split section fi printf "\nMaking .tar.gz for sources...\n" d=`dirname $srcfile` ( cd "$d" srcfiles=`ls -d *.texinfo *.texi *.txi *.eps $source_extra 2>/dev/null` || true tar czfh "$abs_outdir/$PACKAGE.texi.tar.gz" $srcfiles ls -l "$abs_outdir/$PACKAGE.texi.tar.gz" ) texi_tgz_size=`calcsize "$outdir/$PACKAGE.texi.tar.gz"` if test -n "$docbook"; then opt="-o - --docbook $commonarg" cmd="$SETLANG $MAKEINFO $opt \"$srcfile\" >${srcdir}/$PACKAGE-db.xml" printf "\nGenerating docbook XML... ($cmd)\n" eval "$cmd" docbook_xml_size=`calcsize $PACKAGE-db.xml` gzip -f -9 -c $PACKAGE-db.xml >"$outdir/$PACKAGE-db.xml.gz" docbook_xml_gz_size=`calcsize "$outdir/$PACKAGE-db.xml.gz"` mv $PACKAGE-db.xml "$outdir/" split_html_db_dir=html_node_db opt="$commonarg -o $split_html_db_dir" cmd="$DOCBOOK2HTML $opt \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook HTML... ($cmd)\n" eval "$cmd" ( cd ${split_html_db_dir} || exit 1 tar -czf "$abs_outdir/${PACKAGE}.html_node_db.tar.gz" -- *.html ) html_node_db_tgz_size=`calcsize "$outdir/${PACKAGE}.html_node_db.tar.gz"` rm -f "$outdir"/html_node_db/*.html mkdir -p "$outdir/html_node_db" mv ${split_html_db_dir}/*.html "$outdir/html_node_db/" rmdir ${split_html_db_dir} cmd="$DOCBOOK2TXT \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook ASCII... ($cmd)\n" eval "$cmd" docbook_ascii_size=`calcsize $PACKAGE-db.txt` mv $PACKAGE-db.txt "$outdir/" cmd="$DOCBOOK2PDF \"${outdir}/$PACKAGE-db.xml\"" printf "\nGenerating docbook PDF... ($cmd)\n" eval "$cmd" docbook_pdf_size=`calcsize $PACKAGE-db.pdf` mv $PACKAGE-db.pdf "$outdir/" fi printf "\nMaking index file...\n" if test -z "$use_texi2html"; then CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\ /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d" else # should take account of --split here. CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d" fi curdate=`$SETLANG date '+%B %d, %Y'` sed \ -e "s!%%TITLE%%!$MANUAL_TITLE!g" \ -e "s!%%EMAIL%%!$EMAIL!g" \ -e "s!%%PACKAGE%%!$PACKAGE!g" \ -e "s!%%DATE%%!$curdate!g" \ -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \ -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \ -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \ -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \ -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \ -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \ -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \ -e "s!%%PDF_SIZE%%!$pdf_size!g" \ -e "s!%%ASCII_SIZE%%!$ascii_size!g" \ -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \ -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \ -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \ -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \ -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \ -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \ -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \ -e "s,%%SCRIPTURL%%,$scripturl,g" \ -e "s!%%SCRIPTNAME%%!$prog!g" \ -e "$CONDS" \ $GENDOCS_TEMPLATE_DIR/gendocs_template >"$outdir/index.html" echo "Done, see $outdir/ subdirectory for new files." # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-end: "$" # End: �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/test-driver�������������������������������������������������������������������0000755�0000000�0000000�00000007611�12167244661�013702� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # test-driver - basic testsuite driver script. scriptversion=2012-06-27.10; # UTC # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # 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. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to <bug-automake@gnu.org> or send patches to # <automake-patches@gnu.org>. # Make unconditional expansion of undefined variables an error. This # helps a lot in preventing typo-related bugs. set -u usage_error () { echo "$0: $*" >&2 print_usage >&2 exit 2 } print_usage () { cat <<END Usage: test-driver --test-name=NAME --log-file=PATH --trs-file=PATH [--expect-failure={yes|no}] [--color-tests={yes|no}] [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT The '--test-name', '--log-file' and '--trs-file' options are mandatory. END } # TODO: better error handling in option parsing (in particular, ensure # TODO: $log_file, $trs_file and $test_name are defined). test_name= # Used for reporting. log_file= # Where to save the output of the test script. trs_file= # Where to save the metadata of the test run. expect_failure=no color_tests=no enable_hard_errors=yes while test $# -gt 0; do case $1 in --help) print_usage; exit $?;; --version) echo "test-driver $scriptversion"; exit $?;; --test-name) test_name=$2; shift;; --log-file) log_file=$2; shift;; --trs-file) trs_file=$2; shift;; --color-tests) color_tests=$2; shift;; --expect-failure) expect_failure=$2; shift;; --enable-hard-errors) enable_hard_errors=$2; shift;; --) shift; break;; -*) usage_error "invalid option: '$1'";; esac shift done if test $color_tests = yes; then # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'. red='' # Red. grn='' # Green. lgn='' # Light green. blu='' # Blue. mgn='' # Magenta. std='' # No color. else red= grn= lgn= blu= mgn= std= fi do_exit='rm -f $log_file $trs_file; (exit $st); exit $st' trap "st=129; $do_exit" 1 trap "st=130; $do_exit" 2 trap "st=141; $do_exit" 13 trap "st=143; $do_exit" 15 # Test script is run here. "$@" >$log_file 2>&1 estatus=$? if test $enable_hard_errors = no && test $estatus -eq 99; then estatus=1 fi case $estatus:$expect_failure in 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; 0:*) col=$grn res=PASS recheck=no gcopy=no;; 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; *:*) col=$red res=FAIL recheck=yes gcopy=yes;; esac # Report outcome to console. echo "${col}${res}${std}: $test_name" # Register the test result, and other relevant metadata. echo ":test-result: $res" > $trs_file echo ":global-test-result: $res" >> $trs_file echo ":recheck: $recheck" >> $trs_file echo ":copy-in-global-log: $gcopy" >> $trs_file # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: �����������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/vc-list-files�����������������������������������������������������������������0000755�0000000�0000000�00000007343�12153706065�014111� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # List version-controlled file names. # Print a version string. scriptversion=2011-05-16.22; # UTC # Copyright (C) 2006-2013 Free Software Foundation, Inc. # 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 3 of the License, or # (at your option) any later version. # 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. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # List the specified version-controlled files. # With no argument, list them all. With a single DIRECTORY argument, # list the version-controlled files in that directory. # If there's an argument, it must be a single, "."-relative directory name. # cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/ postprocess= case $1 in --help) cat <<EOF Usage: $0 [-C SRCDIR] [DIR...] Output a list of version-controlled files in DIR (default .), relative to SRCDIR (default .). SRCDIR must be the top directory of a checkout. Options: --help print this help, then exit --version print version number, then exit -C SRCDIR change directory to SRCDIR before generating list Report bugs and patches to <bug-gnulib@gnu.org>. EOF exit ;; --version) year=`echo "$scriptversion" | sed 's/[^0-9].*//'` cat <<EOF vc-list-files $scriptversion Copyright (C) $year Free Software Foundation, Inc, License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. EOF exit ;; -C) test "$2" = . || postprocess="| sed 's|^|$2/|'" cd "$2" || exit 1 shift; shift ;; esac test $# = 0 && set . for dir do if test -d .git; then test "x$dir" = x. \ && dir= sed_esc= \ || { dir="$dir/"; sed_esc=`echo "$dir"|env sed 's,\([\\/]\),\\\\\1,g'`; } # Ignore git symlinks - either they point into the tree, in which case # we don't need to visit the target twice, or they point somewhere # else (often into a submodule), in which case the content does not # belong to this package. eval exec git ls-tree -r 'HEAD:"$dir"' \ \| sed -n '"s/^100[^ ]*./$sed_esc/p"' $postprocess elif test -d .hg; then eval exec hg locate '"$dir/*"' $postprocess elif test -d .bzr; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" eval exec bzr ls -R --versioned '"$dir"' $postprocess elif test -d CVS; then test "$postprocess" = '' && postprocess="| sed 's|^\./||'" if test -x build-aux/cvsu; then eval build-aux/cvsu --find --types=AFGM '"$dir"' $postprocess elif (cvsu --help) >/dev/null 2>&1; then eval cvsu --find --types=AFGM '"$dir"' $postprocess else eval awk -F/ \''{ \ if (!$1 && $3 !~ /^-/) { \ f=FILENAME; \ if (f ~ /CVS\/Entries$/) \ f = substr(f, 1, length(f)-11); \ print f $2; \ }}'\'' \ `find "$dir" -name Entries -print` /dev/null' $postprocess fi elif test -d .svn; then eval exec svn list -R '"$dir"' $postprocess else echo "$0: Failed to determine type of version control used in `pwd`" 1>&2 exit 1 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/csharpexec.sh.in��������������������������������������������������������������0000644�0000000�0000000�00000005405�12153706065�014565� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # Execute a C# program. # Copyright (C) 2003-2013 Free Software Foundation, Inc. # Written by Bruno Haible <bruno@clisp.org>, 2003. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # This uses the same choices as csharpexec.c, but instead of relying on the # environment settings at run time, it uses the environment variables # present at configuration time. # # This is a separate shell script, because the various C# interpreters have # different command line options. # # Usage: /bin/sh csharpexec.sh [OPTION] program.exe [ARGUMENTS] # Options: # -L DIRECTORY search for C# libraries also in DIRECTORY sed_quote_subst='s/\([|&;<>()$`"'"'"'*?[#~=% \\]\)/\\\1/g' options_ilrun= libdirs_mono= prog= while test $# != 0; do case "$1" in -L) options_ilrun="$options_ilrun -L "`echo "$2" | sed -e "$sed_quote_subst"` libdirs_mono="${libdirs_mono:+$libdirs_mono@MONO_PATH_SEPARATOR@}$2" shift ;; -*) echo "csharpexec: unknown option '$1'" 1>&2 exit 1 ;; *) prog="$1" break ;; esac shift done if test -z "$prog"; then echo "csharpexec: no program specified" 1>&2 exit 1 fi case "$prog" in *.exe) ;; *) echo "csharpexec: program is not a .exe" 1>&2 exit 1 ;; esac if test -n "@HAVE_ILRUN@"; then test -z "$CSHARP_VERBOSE" || echo ilrun $options_ilrun "$@" exec ilrun $options_ilrun "$@" else if test -n "@HAVE_MONO@"; then CONF_MONO_PATH='@MONO_PATH@' if test -n "$libdirs_mono"; then MONO_PATH="$libdirs_mono${CONF_MONO_PATH:+@MONO_PATH_SEPARATOR@$CONF_MONO_PATH}" else MONO_PATH="$CONF_MONO_PATH" fi export MONO_PATH test -z "$CSHARP_VERBOSE" || echo mono "$@" exec mono "$@" else if test -n "@HAVE_CLIX@"; then CONF_CLIX_PATH='@CLIX_PATH@' if test -n "$libdirs_mono"; then @CLIX_PATH_VAR@="$libdirs_mono${CONF_CLIX_PATH:+@MONO_PATH_SEPARATOR@$CONF_CLIX_PATH}" else @CLIX_PATH_VAR@="$CONF_CLIX_PATH" fi export @CLIX_PATH_VAR@ test -z "$CSHARP_VERBOSE" || echo clix "$@" exec clix "$@" else echo 'C# virtual machine not found, try installing pnet, then reconfigure' 1>&2 exit 1 fi fi fi �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/ar-lib������������������������������������������������������������������������0000755�0000000�0000000�00000013302�12167244657�012577� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#! /bin/sh # Wrapper for Microsoft lib.exe me=ar-lib scriptversion=2012-03-01.08; # UTC # Copyright (C) 2010-2013 Free Software Foundation, Inc. # Written by Peter Rosin <peda@lysator.liu.se>. # # 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. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # This file is maintained in Automake, please report # bugs to <bug-automake@gnu.org> or send patches to # <automake-patches@gnu.org>. # func_error message func_error () { echo "$me: $1" 1>&2 exit 1 } file_conv= # func_file_conv build_file # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv in mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin) file=`cygpath -m "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_at_file at_file operation archive # Iterate over all members in AT_FILE performing OPERATION on ARCHIVE # for each of them. # When interpreting the content of the @FILE, do NOT use func_file_conv, # since the user would need to supply preconverted file names to # binutils ar, at least for MinGW. func_at_file () { operation=$2 archive=$3 at_file_contents=`cat "$1"` eval set x "$at_file_contents" shift for member do $AR -NOLOGO $operation:"$member" "$archive" || exit $? done } case $1 in '') func_error "no command. Try '$0 --help' for more information." ;; -h | --h*) cat <<EOF Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...] Members may be specified in a file named with @FILE. EOF exit $? ;; -v | --v*) echo "$me, version $scriptversion" exit $? ;; esac if test $# -lt 3; then func_error "you must specify a program, an action and an archive" fi AR=$1 shift while : do if test $# -lt 2; then func_error "you must specify a program, an action and an archive" fi case $1 in -lib | -LIB \ | -ltcg | -LTCG \ | -machine* | -MACHINE* \ | -subsystem* | -SUBSYSTEM* \ | -verbose | -VERBOSE \ | -wx* | -WX* ) AR="$AR $1" shift ;; *) action=$1 shift break ;; esac done orig_archive=$1 shift func_file_conv "$orig_archive" archive=$file # strip leading dash in $action action=${action#-} delete= extract= list= quick= replace= index= create= while test -n "$action" do case $action in d*) delete=yes ;; x*) extract=yes ;; t*) list=yes ;; q*) quick=yes ;; r*) replace=yes ;; s*) index=yes ;; S*) ;; # the index is always updated implicitly c*) create=yes ;; u*) ;; # TODO: don't ignore the update modifier v*) ;; # TODO: don't ignore the verbose modifier *) func_error "unknown action specified" ;; esac action=${action#?} done case $delete$extract$list$quick$replace,$index in yes,* | ,yes) ;; yesyes*) func_error "more than one action specified" ;; *) func_error "no action specified" ;; esac if test -n "$delete"; then if test ! -f "$orig_archive"; then func_error "archive not found" fi for member do case $1 in @*) func_at_file "${1#@}" -REMOVE "$archive" ;; *) func_file_conv "$1" $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $? ;; esac done elif test -n "$extract"; then if test ! -f "$orig_archive"; then func_error "archive not found" fi if test $# -gt 0; then for member do case $1 in @*) func_at_file "${1#@}" -EXTRACT "$archive" ;; *) func_file_conv "$1" $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $? ;; esac done else $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member do $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $? done fi elif test -n "$quick$replace"; then if test ! -f "$orig_archive"; then if test -z "$create"; then echo "$me: creating $orig_archive" fi orig_archive= else orig_archive=$archive fi for member do case $1 in @*) func_file_conv "${1#@}" set x "$@" "@$file" ;; *) func_file_conv "$1" set x "$@" "$file" ;; esac shift shift done if test -n "$orig_archive"; then $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $? else $AR -NOLOGO -OUT:"$archive" "$@" || exit $? fi elif test -n "$list"; then if test ! -f "$orig_archive"; then func_error "archive not found" fi $AR -NOLOGO -LIST "$archive" || exit $? fi ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/install-sh��������������������������������������������������������������������0000755�0000000�0000000�00000033255�12167244657�013520� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS 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. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/snippet/����������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253754�013244� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/snippet/arg-nonnull.h���������������������������������������������������������0000644�0000000�0000000�00000002300�12153706065�015555� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for declaring that specific arguments must not be NULL. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools that the values passed as arguments n, ..., m must be non-NULL pointers. n = 1 stands for the first argument, n = 2 for the second argument etc. */ #ifndef _GL_ARG_NONNULL # if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3 # define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params)) # else # define _GL_ARG_NONNULL(params) # endif #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/snippet/c++defs.h�������������������������������������������������������������0000644�0000000�0000000�00000026753�12153706065�014555� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* C++ compatible function declaration macros. Copyright (C) 2010-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef _GL_CXXDEFS_H #define _GL_CXXDEFS_H /* The three most frequent use cases of these macros are: * For providing a substitute for a function that is missing on some platforms, but is declared and works fine on the platforms on which it exists: #if @GNULIB_FOO@ # if !@HAVE_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on all platforms, but is broken/insufficient and needs to be replaced on some platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif * For providing a replacement for a function that exists on some platforms but is broken/insufficient and needs to be replaced on some of them and is additionally either missing or undeclared on some other platforms: #if @GNULIB_FOO@ # if @REPLACE_FOO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef foo # define foo rpl_foo # endif _GL_FUNCDECL_RPL (foo, ...); _GL_CXXALIAS_RPL (foo, ...); # else # if !@HAVE_FOO@ or if !@HAVE_DECL_FOO@ _GL_FUNCDECL_SYS (foo, ...); # endif _GL_CXXALIAS_SYS (foo, ...); # endif _GL_CXXALIASWARN (foo); #elif defined GNULIB_POSIXCHECK ... #endif */ /* _GL_EXTERN_C declaration; performs the declaration with C linkage. */ #if defined __cplusplus # define _GL_EXTERN_C extern "C" #else # define _GL_EXTERN_C extern #endif /* _GL_FUNCDECL_RPL (func, rettype, parameters_and_attributes); declares a replacement function, named rpl_func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_RPL(func,rettype,parameters_and_attributes) \ _GL_FUNCDECL_RPL_1 (rpl_##func, rettype, parameters_and_attributes) #define _GL_FUNCDECL_RPL_1(rpl_func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype rpl_func parameters_and_attributes /* _GL_FUNCDECL_SYS (func, rettype, parameters_and_attributes); declares the system function, named func, with the given prototype, consisting of return type, parameters, and attributes. Example: _GL_FUNCDECL_SYS (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); */ #define _GL_FUNCDECL_SYS(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C rettype func parameters_and_attributes /* _GL_CXXALIAS_RPL (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to rpl_func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); */ #define _GL_CXXALIAS_RPL(func,rettype,parameters) \ _GL_CXXALIAS_RPL_1 (func, rpl_##func, rettype, parameters) #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ rettype (*const func) parameters = ::rpl_func; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_RPL_CAST_1 (func, rpl_func, rettype, parameters); is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters); except that the C function rpl_func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ rettype (*const func) parameters = \ reinterpret_cast<rettype(*)parameters>(::rpl_func); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_RPL_CAST_1(func,rpl_func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS (func, rettype, parameters); declares a C++ alias called GNULIB_NAMESPACE::func that redirects to the system provided function func, if GNULIB_NAMESPACE is defined. Example: _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* If we were to write rettype (*const func) parameters = ::func; like above in _GL_CXXALIAS_RPL_1, the compiler could optimize calls better (remove an indirection through a 'static' pointer variable), but then the _GL_CXXALIASWARN macro below would cause a warning not only for uses of ::func but also for uses of GNULIB_NAMESPACE::func. */ # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static rettype (*func) parameters = ::func; \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST (func, rettype, parameters); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function func may have a slightly different declaration. A cast is used to silence the "invalid conversion" error that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ namespace GNULIB_NAMESPACE \ { \ static rettype (*func) parameters = \ reinterpret_cast<rettype(*)parameters>(::func); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST(func,rettype,parameters) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIAS_SYS_CAST2 (func, rettype, parameters, rettype2, parameters2); is like _GL_CXXALIAS_SYS (func, rettype, parameters); except that the C function is picked among a set of overloaded functions, namely the one with rettype2 and parameters2. Two consecutive casts are used to silence the "cannot find a match" and "invalid conversion" errors that would otherwise occur. */ #if defined __cplusplus && defined GNULIB_NAMESPACE /* The outer cast must be a reinterpret_cast. The inner cast: When the function is defined as a set of overloaded functions, it works as a static_cast<>, choosing the designated variant. When the function is defined as a single variant, it works as a reinterpret_cast<>. The parenthesized cast syntax works both ways. */ # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ namespace GNULIB_NAMESPACE \ { \ static rettype (*func) parameters = \ reinterpret_cast<rettype(*)parameters>( \ (rettype2(*)parameters2)(::func)); \ } \ _GL_EXTERN_C int _gl_cxxalias_dummy #else # define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN (func); causes a warning to be emitted when ::func is used but not when GNULIB_NAMESPACE::func is used. func must be defined without overloaded variants. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN(func) \ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE) # define _GL_CXXALIASWARN_1(func,namespace) \ _GL_CXXALIASWARN_2 (func, namespace) /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_WARN_ON_USE (func, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN_2(func,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN_2(func,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN(func) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif /* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes); causes a warning to be emitted when the given overloaded variant of ::func is used but not when GNULIB_NAMESPACE::func is used. */ #if defined __cplusplus && defined GNULIB_NAMESPACE # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \ GNULIB_NAMESPACE) # define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace) /* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>, we enable the warning only when not optimizing. */ # if !__OPTIMIZE__ # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \ "The symbol ::" #func " refers to the system function. " \ "Use " #namespace "::" #func " instead.") # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ extern __typeof__ (func) func # else # define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \ _GL_EXTERN_C int _gl_cxxalias_dummy # endif #else # define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \ _GL_EXTERN_C int _gl_cxxalias_dummy #endif #endif /* _GL_CXXDEFS_H */ ���������������������libidn-1.28/build-aux/snippet/warn-on-use.h���������������������������������������������������������0000644�0000000�0000000�00000012007�12153706065�015501� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for emitting warnings if a function is used. Copyright (C) 2010-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* _GL_WARN_ON_USE (function, "literal string") issues a declaration for FUNCTION which will then trigger a compiler warning containing the text of "literal string" anywhere that function is called, if supported by the compiler. If the compiler does not support this feature, the macro expands to an unused extern declaration. This macro is useful for marking a function as a potential portability trap, with the intent that "literal string" include instructions on the replacement function that should be used instead. However, one of the reasons that a function is a portability trap is if it has the wrong signature. Declaring FUNCTION with a different signature in C is a compilation error, so this macro must use the same type as any existing declaration so that programs that avoid the problematic FUNCTION do not fail to compile merely because they included a header that poisoned the function. But this implies that _GL_WARN_ON_USE is only safe to use if FUNCTION is known to already have a declaration. Use of this macro implies that there must not be any other macro hiding the declaration of FUNCTION; but undefining FUNCTION first is part of the poisoning process anyway (although for symbols that are provided only via a macro, the result is a compilation error rather than a warning containing "literal string"). Also note that in C++, it is only safe to use if FUNCTION has no overloads. For an example, it is possible to poison 'getline' by: - adding a call to gl_WARN_ON_USE_PREPARE([[#include <stdio.h>]], [getline]) in configure.ac, which potentially defines HAVE_RAW_DECL_GETLINE - adding this code to a header that wraps the system <stdio.h>: #undef getline #if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is required by POSIX 2008, but" "not universally present; use the gnulib module getline"); #endif It is not possible to directly poison global variables. But it is possible to write a wrapper accessor function, and poison that (less common usage, like &environ, will cause a compilation error rather than issue the nice warning, but the end result of informing the developer about their portability problem is still achieved): #if HAVE_RAW_DECL_ENVIRON static char ***rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is not always properly declared"); # undef environ # define environ (*rpl_environ ()) #endif */ #ifndef _GL_WARN_ON_USE # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) /* A compiler attribute is available in gcc versions 4.3.0 and later. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function __attribute__ ((__warning__ (message))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE(function, message) \ extern __typeof__ (function) function # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string") is like _GL_WARN_ON_USE (function, "string"), except that the function is declared with the given prototype, consisting of return type, parameters, and attributes. This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does not work in this case. */ #ifndef _GL_WARN_ON_USE_CXX # if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes \ __attribute__ ((__warning__ (msg))) # elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING /* Verify the existence of the function. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ extern rettype function parameters_and_attributes # else /* Unsupported. */ # define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \ _GL_WARN_EXTERN_C int _gl_warn_on_use # endif #endif /* _GL_WARN_EXTERN_C declaration; performs the declaration with C linkage. */ #ifndef _GL_WARN_EXTERN_C # if defined __cplusplus # define _GL_WARN_EXTERN_C extern "C" # else # define _GL_WARN_EXTERN_C extern # endif #endif �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/snippet/_Noreturn.h�����������������������������������������������������������0000664�0000000�0000000�00000000462�11756751410�015307� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#if !defined _Noreturn && __STDC_VERSION__ < 201112 # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/build-aux/snippet/unused-parameter.h����������������������������������������������������0000644�0000000�0000000�00000003042�12153706106�016602� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* A C macro for declaring that specific function parameters are not used. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* _GL_UNUSED_PARAMETER is a marker that can be appended to function parameter declarations for parameters that are not used. This helps to reduce warnings, such as from GCC -Wunused-parameter. The syntax is as follows: type param _GL_UNUSED_PARAMETER or more generally param_decl _GL_UNUSED_PARAMETER For example: int param _GL_UNUSED_PARAMETER int *(*param)(void) _GL_UNUSED_PARAMETER Other possible, but obscure and discouraged syntaxes: int _GL_UNUSED_PARAMETER *(*param)(void) _GL_UNUSED_PARAMETER int *(*param)(void) */ #ifndef _GL_UNUSED_PARAMETER # if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED_PARAMETER __attribute__ ((__unused__)) # else # define _GL_UNUSED_PARAMETER # endif #endif ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/�������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253754�011506� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/README�������������������������������������������������������������������������0000644�0000000�0000000�00000002176�12153706572�012310� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Libidn examples/README -- Information about files in examples/ directory. Copyright (C) 2003-2013 Simon Josefsson See the end for copying conditions. This directory contains examples on how to use Libidn. * Example 1:: Example using stringprep. This example demonstrates how the stringprep functions are used. * Example 2:: Example using punycode. This example demonstrates how the punycode functions are used. * Example 3:: Example using IDNA ToASCII. This example demonstrates how the library is used to convert internationalized domain names into ASCII compatible names. * Example 4:: Example using IDNA ToUnicode. This example demonstrates how the library is used to convert ASCII compatible names to internationalized domain names. * Example 5:: Example using TLD checking. This example demonstrates how the library is used to check a string for invalid characters within a specific TLD. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/example3.c���������������������������������������������������������������������0000644�0000000�0000000�00000004374�12153706572�013314� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* example3.c --- Example ToASCII() code showing how to use Libidn. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> /* setlocale() */ #include <stringprep.h> /* stringprep_locale_charset() */ #include <idna.h> /* idna_to_ascii_lz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example3 example3.c `pkg-config --cflags --libs libidn` * $ ./example3 * Input domain encoded as `ISO-8859-1': www.räksmörgåsª.example * Read string (length 23): 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 aa 2e 65 78 61 6d 70 6c 65 * ACE label (length 33): 'www.xn--rksmrgsa-0zap8p.example' * 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); rc = idna_to_ascii_lz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToASCII() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", p[i] & 0xFF); printf ("\n"); free (p); return 0; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/example.c����������������������������������������������������������������������0000644�0000000�0000000�00000004553�12153706572�013230� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* example.c --- Example code showing how to use stringprep(). * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> /* setlocale() */ #include <stringprep.h> /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example example.c `pkg-config --cflags --libs libidn` * $ ./example * Input string encoded as `ISO-8859-1': ª * Before locale2utf8 (length 2): aa 0a * Before stringprep (length 3): c2 aa 0a * After stringprep (length 2): 61 0a * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input string encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Before locale2utf8 (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); printf ("Before stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); rc = stringprep (buf, BUFSIZ, 0, stringprep_nameprep); if (rc != STRINGPREP_OK) printf ("Stringprep failed (%d): %s\n", rc, stringprep_strerror (rc)); else { printf ("After stringprep (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); } return 0; } �����������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/example4.c���������������������������������������������������������������������0000644�0000000�0000000�00000004407�12153706572�013312� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* example4.c --- Example ToUnicode() code showing how to use Libidn. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> /* setlocale() */ #include <stringprep.h> /* stringprep_locale_charset() */ #include <idna.h> /* idna_to_unicode_lzlz() */ /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example4 example4.c `pkg-config --cflags --libs libidn` * $ ./example4 * Input domain encoded as `ISO-8859-1': www.xn--rksmrgsa-0zap8p.example * Read string (length 33): 77 77 77 2e 78 6e 2d 2d 72 6b 73 6d 72 67 73 61 2d 30 7a 61 70 38 70 2e 65 78 61 6d 70 6c 65 * ACE label (length 23): 'www.räksmörgåsa.example' * 77 77 77 2e 72 e4 6b 73 6d f6 72 67 e5 73 61 2e 65 78 61 6d 70 6c 65 * $ * */ int main (void) { char buf[BUFSIZ]; char *p; int rc; size_t i; setlocale (LC_ALL, ""); printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); rc = idna_to_unicode_lzlz (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("ToUnicode() failed (%d): %s\n", rc, idna_strerror (rc)); return EXIT_FAILURE; } printf ("ACE label (length %ld): '%s'\n", (long int) strlen (p), p); for (i = 0; i < strlen (p); i++) printf ("%02x ", p[i] & 0xFF); printf ("\n"); free (p); return 0; } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/example2.c���������������������������������������������������������������������0000644�0000000�0000000�00000014443�12153706572�013311� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* example2.c --- Example code showing how to use punycode. * Copyright (C) 2002-2013 Simon Josefsson * Copyright (C) 2002 Adam M. Costello * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #include <locale.h> /* setlocale() */ /* * This file is derived from RFC 3492 written by Adam M. Costello. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. * */ #include <assert.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <punycode.h> /* For testing, we'll just set some compile-time limits rather than */ /* use malloc(), and set a compile-time option rather than using a */ /* command-line option. */ enum { unicode_max_length = 256, ace_max_length = 256 }; static void usage (char **argv) { fprintf (stderr, "\n" "%s -e reads code points and writes a Punycode string.\n" "%s -d reads a Punycode string and writes code points.\n" "\n" "Input and output are plain text in the native character set.\n" "Code points are in the form u+hex separated by whitespace.\n" "Although the specification allows Punycode strings to contain\n" "any characters from the ASCII repertoire, this test code\n" "supports only the printable characters, and needs the Punycode\n" "string to be followed by a newline.\n" "The case of the u in u+hex is the force-to-uppercase flag.\n", argv[0], argv[0]); exit (EXIT_FAILURE); } static void fail (const char *msg) { fputs (msg, stderr); exit (EXIT_FAILURE); } static const char too_big[] = "input or output is too large, recompile with larger limits\n"; static const char invalid_input[] = "invalid input\n"; static const char overflow[] = "arithmetic overflow\n"; static const char io_error[] = "I/O error\n"; /* The following string is used to convert printable */ /* characters between ASCII and the native charset: */ static const char print_ascii[] = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" " !\"#$%&'()*+,-./" "0123456789:;<=>?" "\0x40" /* at sign */ "ABCDEFGHIJKLMNO" "PQRSTUVWXYZ[\\]^_" "`abcdefghijklmno" "pqrstuvwxyz{|}~\n"; int main (int argc, char **argv) { enum punycode_status status; int r; size_t input_length, output_length, j; unsigned char case_flags[unicode_max_length]; setlocale (LC_ALL, ""); if (argc != 2) usage (argv); if (argv[1][0] != '-') usage (argv); if (argv[1][2] != 0) usage (argv); if (argv[1][1] == 'e') { uint32_t input[unicode_max_length]; unsigned long codept; char output[ace_max_length + 1], uplus[3]; int c; /* Read the input code points: */ input_length = 0; for (;;) { r = scanf ("%2s%lx", uplus, &codept); if (ferror (stdin)) fail (io_error); if (r == EOF || r == 0) break; if (r != 2 || uplus[1] != '+' || codept > (uint32_t) - 1) { fail (invalid_input); } if (input_length == unicode_max_length) fail (too_big); if (uplus[0] == 'u') case_flags[input_length] = 0; else if (uplus[0] == 'U') case_flags[input_length] = 1; else fail (invalid_input); input[input_length++] = codept; } /* Encode: */ output_length = ace_max_length; status = punycode_encode (input_length, input, case_flags, &output_length, output); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Convert to native charset and output: */ for (j = 0; j < output_length; ++j) { c = output[j]; assert (c >= 0 && c <= 127); if (print_ascii[c] == 0) fail (invalid_input); output[j] = print_ascii[c]; } output[j] = 0; r = puts (output); if (r == EOF) fail (io_error); return EXIT_SUCCESS; } if (argv[1][1] == 'd') { char input[ace_max_length + 2], *p, *pp; uint32_t output[unicode_max_length]; /* Read the Punycode input string and convert to ASCII: */ if (!fgets (input, ace_max_length + 2, stdin)) fail (io_error); if (ferror (stdin)) fail (io_error); if (feof (stdin)) fail (invalid_input); input_length = strlen (input) - 1; if (input[input_length] != '\n') fail (too_big); input[input_length] = 0; for (p = input; *p != 0; ++p) { pp = strchr (print_ascii, *p); if (pp == 0) fail (invalid_input); *p = pp - print_ascii; } /* Decode: */ output_length = unicode_max_length; status = punycode_decode (input_length, input, &output_length, output, case_flags); if (status == punycode_bad_input) fail (invalid_input); if (status == punycode_big_output) fail (too_big); if (status == punycode_overflow) fail (overflow); assert (status == punycode_success); /* Output the result: */ for (j = 0; j < output_length; ++j) { r = printf ("%s+%04lX\n", case_flags[j] ? "U" : "u", (unsigned long) output[j]); if (r < 0) fail (io_error); } return EXIT_SUCCESS; } usage (argv); return EXIT_SUCCESS; /* not reached, but quiets compiler warning */ } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/example5.c���������������������������������������������������������������������0000644�0000000�0000000�00000006304�12153706572�013311� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* example5.c --- Example TLD checking. * Copyright (C) 2004-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #include <stdio.h> #include <stdlib.h> #include <string.h> /* Get stringprep_locale_charset, etc. */ #include <stringprep.h> /* Get idna_to_ascii_8z, etc. */ #include <idna.h> /* Get tld_check_4z. */ #include <tld.h> /* * Compiling using libtool and pkg-config is recommended: * * $ libtool cc -o example5 example5.c `pkg-config --cflags --libs libidn` * $ ./example5 * Input domain encoded as `UTF-8': fooß.no * Read string (length 8): 66 6f 6f c3 9f 2e 6e 6f * ToASCII string (length 8): fooss.no * ToUnicode string: U+0066 U+006f U+006f U+0073 U+0073 U+002e U+006e U+006f * Domain accepted by TLD check * * $ ./example5 * Input domain encoded as `UTF-8': gr€€n.no * Read string (length 12): 67 72 e2 82 ac e2 82 ac 6e 2e 6e 6f * ToASCII string (length 16): xn--grn-l50aa.no * ToUnicode string: U+0067 U+0072 U+20ac U+20ac U+006e U+002e U+006e U+006f * Domain rejected by TLD check, Unicode position 2 * */ int main (void) { char buf[BUFSIZ]; char *p; uint32_t *r; int rc; size_t errpos, i; printf ("Input domain encoded as `%s': ", stringprep_locale_charset ()); fflush (stdout); if (!fgets (buf, BUFSIZ, stdin)) perror ("fgets"); buf[strlen (buf) - 1] = '\0'; printf ("Read string (length %ld): ", (long int) strlen (buf)); for (i = 0; i < strlen (buf); i++) printf ("%02x ", buf[i] & 0xFF); printf ("\n"); p = stringprep_locale_to_utf8 (buf); if (p) { strcpy (buf, p); free (p); } else printf ("Could not convert string to UTF-8, continuing anyway...\n"); rc = idna_to_ascii_8z (buf, &p, 0); if (rc != IDNA_SUCCESS) { printf ("idna_to_ascii_8z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToASCII string (length %ld): %s\n", (long int) strlen (p), p); rc = idna_to_unicode_8z4z (p, &r, 0); free (p); if (rc != IDNA_SUCCESS) { printf ("idna_to_unicode_8z4z failed (%d): %s\n", rc, idna_strerror (rc)); return 2; } printf ("ToUnicode string: "); for (i = 0; r[i]; i++) printf ("U+%04x ", r[i]); printf ("\n"); rc = tld_check_4z (r, &errpos, NULL); free (r); if (rc == TLD_INVALID) { printf ("Domain rejected by TLD check, Unicode position %ld\n", (long int) errpos); return 1; } else if (rc != TLD_SUCCESS) { printf ("tld_check_4z() failed (%d): %s\n", rc, tld_strerror (rc)); return 2; } printf ("Domain accepted by TLD check\n"); return 0; } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/examples/Makefile.am��������������������������������������������������������������������0000644�0000000�0000000�00000001753�12153706572�013464� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. EXTRA_DIST = README AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib LDADD = ../lib/libidn.la noinst_PROGRAMS = example example2 example3 example4 if TLD noinst_PROGRAMS += example5 endif ���������������������libidn-1.28/examples/Makefile.in��������������������������������������������������������������������0000644�0000000�0000000�00000137461�12167244660�013503� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ noinst_PROGRAMS = example$(EXEEXT) example2$(EXEEXT) example3$(EXEEXT) \ example4$(EXEEXT) $(am__EXEEXT_1) @TLD_TRUE@am__append_1 = example5 subdir = examples DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp README ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @TLD_TRUE@am__EXEEXT_1 = example5$(EXEEXT) PROGRAMS = $(noinst_PROGRAMS) example_SOURCES = example.c example_OBJECTS = example.$(OBJEXT) example_LDADD = $(LDADD) example_DEPENDENCIES = ../lib/libidn.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = example2_SOURCES = example2.c example2_OBJECTS = example2.$(OBJEXT) example2_LDADD = $(LDADD) example2_DEPENDENCIES = ../lib/libidn.la example3_SOURCES = example3.c example3_OBJECTS = example3.$(OBJEXT) example3_LDADD = $(LDADD) example3_DEPENDENCIES = ../lib/libidn.la example4_SOURCES = example4.c example4_OBJECTS = example4.$(OBJEXT) example4_LDADD = $(LDADD) example4_DEPENDENCIES = ../lib/libidn.la example5_SOURCES = example5.c example5_OBJECTS = example5.$(OBJEXT) example5_LDADD = $(LDADD) example5_DEPENDENCIES = ../lib/libidn.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = example.c example2.c example3.c example4.c example5.c DIST_SOURCES = example.c example2.c example3.c example4.c example5.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = README AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib LDADD = ../lib/libidn.la all: all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu examples/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list example$(EXEEXT): $(example_OBJECTS) $(example_DEPENDENCIES) $(EXTRA_example_DEPENDENCIES) @rm -f example$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example_OBJECTS) $(example_LDADD) $(LIBS) example2$(EXEEXT): $(example2_OBJECTS) $(example2_DEPENDENCIES) $(EXTRA_example2_DEPENDENCIES) @rm -f example2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example2_OBJECTS) $(example2_LDADD) $(LIBS) example3$(EXEEXT): $(example3_OBJECTS) $(example3_DEPENDENCIES) $(EXTRA_example3_DEPENDENCIES) @rm -f example3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example3_OBJECTS) $(example3_LDADD) $(LIBS) example4$(EXEEXT): $(example4_OBJECTS) $(example4_DEPENDENCIES) $(EXTRA_example4_DEPENDENCIES) @rm -f example4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example4_OBJECTS) $(example4_LDADD) $(LIBS) example5$(EXEEXT): $(example5_OBJECTS) $(example5_DEPENDENCIES) $(EXTRA_example5_DEPENDENCIES) @rm -f example5$(EXEEXT) $(AM_V_CCLD)$(LINK) $(example5_OBJECTS) $(example5_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/example5.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253751�010454� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/punycode.el�������������������������������������������������������������������������0000644�0000000�0000000�00000014172�12153706572�012550� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������;;; punycode.el --- An ASCII compatible Unicode encoding format. ;; Copyright (C) 2003-2013 Simon Josefsson ;; Keywords: punycode, idna, idn, unicode, encoding ;; This file is part of GNU Libidn. ;; 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 3 of the License, or ;; (at your option) any later version. ;; 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. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;; A simple wrapper around the command line "idn" utility in GNU ;; Libidn to make punycode operations available in Emacs. ;; Example: ;; ;; (punycode-encode "rksmrgs") ;; => "rksmrgs-5wao1o" ;; ;; (punycode-encode "foo") ;; => "foo-" ;; ;; (punycode-decode "rksmrgs-5wao1o") ;; => "rksmrgs" ;; ;; (punycode-decode "foo-") ;; => "foo" ;; This package is useless unless your emacs has at least partial ;; support for the UTF-8 coding system. ;; Report bugs to bug-libidn@gnu.org. ;;; Code: (defgroup punycode nil "Punycode: An ASCII compatible Unicode encoding format.") (defcustom punycode-program "idn" "Name of the GNU Libidn \"idn\" application." :type 'string :group 'punycode) (defcustom punycode-environment '("CHARSET=UTF-8") "List of environment variable definitions prepended to `process-environment'." :type '(repeat string) :group 'punycode) (defcustom punycode-encode-parameters '("--quiet" "--punycode-encode") "Parameters passed to `punycode-program' to invoke punycode encoding mode." :type '(repeat string) :group 'punycode) (defcustom punycode-decode-parameters '("--quiet" "--punycode-decode") "Parameters passed to `punycode-program' to invoke punycode decoding mode." :type '(repeat string) :group 'punycode) ;; Internal process handling: (defvar punycode-encode-process nil "Internal variable holding process for punycode encoding.") (defvar punycode-encode-response nil "Internal variable holding response data received from punycode process.") (defun punycode-encode-response-clear () (setq punycode-encode-response nil)) (defun punycode-encode-response () (while (and (eq (process-status punycode-encode-process) 'run) (null punycode-encode-response)) (accept-process-output punycode-encode-process 1)) punycode-encode-response) (defun punycode-encode-filter (process string) (setq punycode-encode-response (concat punycode-encode-response string))) (defun punycode-encode-process () (if (and punycode-encode-process (eq (process-status punycode-encode-process) 'run)) punycode-encode-process (if punycode-encode-process (condition-case () (kill-process punycode-encode-process) (error))) (when (setq punycode-encode-process (let ((process-environment (append punycode-environment process-environment))) (apply 'start-process "punycode" nil punycode-program punycode-encode-parameters))) (set-process-filter punycode-encode-process 'punycode-encode-filter) (set-process-coding-system punycode-encode-process 'utf-8 'utf-8) (process-kill-without-query punycode-encode-process)) punycode-encode-process)) (defvar punycode-decode-process nil "Internal variable holding process for punycode encoding.") (defvar punycode-decode-response nil "Internal variable holding response data received from punycode process.") (defun punycode-decode-response-clear () (setq punycode-decode-response nil)) (defun punycode-decode-response () (while (and (eq (process-status punycode-decode-process) 'run) (null punycode-decode-response)) (accept-process-output punycode-decode-process 1)) punycode-decode-response) (defun punycode-decode-filter (process string) (setq punycode-decode-response (concat punycode-decode-response string))) (defun punycode-decode-process () (if (and punycode-decode-process (eq (process-status punycode-decode-process) 'run)) punycode-decode-process (if punycode-decode-process (condition-case () (kill-process punycode-decode-process) (error))) (when (setq punycode-decode-process (let ((process-environment (append punycode-environment process-environment))) (apply 'start-process "punycode" nil punycode-program punycode-decode-parameters))) (set-process-filter punycode-decode-process 'punycode-decode-filter) (set-process-coding-system punycode-decode-process 'utf-8 'utf-8) (process-kill-without-query punycode-decode-process)) punycode-decode-process)) ;; Punycode Elisp API: (defun punycode-encode (str) "Returns a Punycode encoding of STR." (let ((proc (punycode-encode-process)) string) (if (null proc) (error "Cannot start idn application") (punycode-encode-response-clear) (process-send-string proc (concat str "\n")) (setq string (punycode-encode-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun punycode-decode (str) "Returns a possibly multibyte string which is the punycode decoding of STR." (let ((proc (punycode-decode-process)) string) (if (null proc) (error "Cannot start idn application") (punycode-decode-response-clear) (process-send-string proc (concat str "\n")) (setq string (punycode-decode-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun punycode-shutdown () "Kill the punycode related process." (interactive) (if (and punycode-decode-process (eq (process-status punycode-decode-process) 'run)) (kill-process punycode-decode-process)) (if (and punycode-encode-process (eq (process-status punycode-encode-process) 'run)) (kill-process punycode-encode-process))) (provide 'punycode) ;;; punycode.el ends here ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/idn.ggo�����������������������������������������������������������������������������0000644�0000000�0000000�00000003445�12153706572�011651� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2003-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. option "stringprep" s "Prepare string according to nameprep profile" no option "punycode-decode" d "Decode Punycode" no option "punycode-encode" e "Encode Punycode" no option "idna-to-ascii" a "Convert to ACE according to IDNA (default)" no option "idna-to-unicode" u "Convert from ACE according to IDNA" no option "allow-unassigned" - "Toggle IDNA AllowUnassigned flag" flag off option "usestd3asciirules" - "Toggle IDNA UseSTD3ASCIIRules flag" flag off option "tld" t "Check string for TLD specific rules\nOnly for --idna-to-ascii and --idna-to-unicode" flag on option "no-tld" - "Don't check string for TLD specific rules\nOnly for --idna-to-ascii and --idna-to-unicode" flag off option "nfkc" n "Normalize string according to Unicode v3.2 NFKC" no option "hidden-nfkc" k "Hidden parameter for backwards compatibility" no hidden option "profile" p "Use specified stringprep profile instead\nValid stringprep profiles are `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', and `SASLprep'." string no option "debug" - "Print debugging information" flag off option "quiet" - "Silent operation" flag off ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/idn_cmd.h���������������������������������������������������������������������������0000644�0000000�0000000�00000024110�12167245605�012137� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/** @file idn_cmd.h * @brief The header file for the command line option parser * generated by GNU Gengetopt version 2.22.5 * http://www.gnu.org/software/gengetopt. * DO NOT modify this file, since it can be overwritten * @author GNU Gengetopt by Lorenzo Bettini */ #ifndef IDN_CMD_H #define IDN_CMD_H /* If we use autoconf. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <stdio.h> /* for FILE */ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #ifndef CMDLINE_PARSER_PACKAGE /** @brief the program name (used for printing errors) */ #define CMDLINE_PARSER_PACKAGE "idn" #endif #ifndef CMDLINE_PARSER_PACKAGE_NAME /** @brief the complete program name (used for help and version) */ #define CMDLINE_PARSER_PACKAGE_NAME "idn" #endif #ifndef CMDLINE_PARSER_VERSION /** @brief the program version */ #define CMDLINE_PARSER_VERSION VERSION #endif /** @brief Where the command line options are stored */ struct gengetopt_args_info { const char *help_help; /**< @brief Print help and exit help description. */ const char *full_help_help; /**< @brief Print help, including hidden options, and exit help description. */ const char *version_help; /**< @brief Print version and exit help description. */ const char *stringprep_help; /**< @brief Prepare string according to nameprep profile help description. */ const char *punycode_decode_help; /**< @brief Decode Punycode help description. */ const char *punycode_encode_help; /**< @brief Encode Punycode help description. */ const char *idna_to_ascii_help; /**< @brief Convert to ACE according to IDNA (default) help description. */ const char *idna_to_unicode_help; /**< @brief Convert from ACE according to IDNA help description. */ int allow_unassigned_flag; /**< @brief Toggle IDNA AllowUnassigned flag (default=off). */ const char *allow_unassigned_help; /**< @brief Toggle IDNA AllowUnassigned flag help description. */ int usestd3asciirules_flag; /**< @brief Toggle IDNA UseSTD3ASCIIRules flag (default=off). */ const char *usestd3asciirules_help; /**< @brief Toggle IDNA UseSTD3ASCIIRules flag help description. */ int tld_flag; /**< @brief Check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode (default=on). */ const char *tld_help; /**< @brief Check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode help description. */ int no_tld_flag; /**< @brief Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode (default=off). */ const char *no_tld_help; /**< @brief Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode help description. */ const char *nfkc_help; /**< @brief Normalize string according to Unicode v3.2 NFKC help description. */ const char *hidden_nfkc_help; /**< @brief Hidden parameter for backwards compatibility help description. */ char * profile_arg; /**< @brief Use specified stringprep profile instead Valid stringprep profiles are `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', and `SASLprep'.. */ char * profile_orig; /**< @brief Use specified stringprep profile instead Valid stringprep profiles are `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', and `SASLprep'. original value given at command line. */ const char *profile_help; /**< @brief Use specified stringprep profile instead Valid stringprep profiles are `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', and `SASLprep'. help description. */ int debug_flag; /**< @brief Print debugging information (default=off). */ const char *debug_help; /**< @brief Print debugging information help description. */ int quiet_flag; /**< @brief Silent operation (default=off). */ const char *quiet_help; /**< @brief Silent operation help description. */ unsigned int help_given ; /**< @brief Whether help was given. */ unsigned int full_help_given ; /**< @brief Whether full-help was given. */ unsigned int version_given ; /**< @brief Whether version was given. */ unsigned int stringprep_given ; /**< @brief Whether stringprep was given. */ unsigned int punycode_decode_given ; /**< @brief Whether punycode-decode was given. */ unsigned int punycode_encode_given ; /**< @brief Whether punycode-encode was given. */ unsigned int idna_to_ascii_given ; /**< @brief Whether idna-to-ascii was given. */ unsigned int idna_to_unicode_given ; /**< @brief Whether idna-to-unicode was given. */ unsigned int allow_unassigned_given ; /**< @brief Whether allow-unassigned was given. */ unsigned int usestd3asciirules_given ; /**< @brief Whether usestd3asciirules was given. */ unsigned int tld_given ; /**< @brief Whether tld was given. */ unsigned int no_tld_given ; /**< @brief Whether no-tld was given. */ unsigned int nfkc_given ; /**< @brief Whether nfkc was given. */ unsigned int hidden_nfkc_given ; /**< @brief Whether hidden-nfkc was given. */ unsigned int profile_given ; /**< @brief Whether profile was given. */ unsigned int debug_given ; /**< @brief Whether debug was given. */ unsigned int quiet_given ; /**< @brief Whether quiet was given. */ char **inputs ; /**< @brief unamed options (options without names) */ unsigned inputs_num ; /**< @brief unamed options number */ } ; /** @brief The additional parameters to pass to parser functions */ struct cmdline_parser_params { int override; /**< @brief whether to override possibly already present options (default 0) */ int initialize; /**< @brief whether to initialize the option structure gengetopt_args_info (default 1) */ int check_required; /**< @brief whether to check that all required options were provided (default 1) */ int check_ambiguity; /**< @brief whether to check for options already specified in the option structure gengetopt_args_info (default 0) */ int print_errors; /**< @brief whether getopt_long should print an error message for a bad option (default 1) */ } ; /** @brief the purpose string of the program */ extern const char *gengetopt_args_info_purpose; /** @brief the usage string of the program */ extern const char *gengetopt_args_info_usage; /** @brief all the lines making the help output */ extern const char *gengetopt_args_info_help[]; /** @brief all the lines making the full help output (including hidden options) */ extern const char *gengetopt_args_info_full_help[]; /** * The command line parser * @param argc the number of command line options * @param argv the command line options * @param args_info the structure where option information will be stored * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser (int argc, char **argv, struct gengetopt_args_info *args_info); /** * The command line parser (version with additional parameters - deprecated) * @param argc the number of command line options * @param argv the command line options * @param args_info the structure where option information will be stored * @param override whether to override possibly already present options * @param initialize whether to initialize the option structure my_args_info * @param check_required whether to check that all required options were provided * @return 0 if everything went fine, NON 0 if an error took place * @deprecated use cmdline_parser_ext() instead */ int cmdline_parser2 (int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required); /** * The command line parser (version with additional parameters) * @param argc the number of command line options * @param argv the command line options * @param args_info the structure where option information will be stored * @param params additional parameters for the parser * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser_ext (int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params); /** * Save the contents of the option struct into an already open FILE stream. * @param outfile the stream where to dump options * @param args_info the option struct to dump * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info); /** * Save the contents of the option struct into a (text) file. * This file can be read by the config file parser (if generated by gengetopt) * @param filename the file where to save * @param args_info the option struct to save * @return 0 if everything went fine, NON 0 if an error took place */ int cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info); /** * Print the help */ void cmdline_parser_print_help(void); /** * Print the full help (including hidden options) */ void cmdline_parser_print_full_help(void); /** * Print the version */ void cmdline_parser_print_version(void); /** * Initializes all the fields a cmdline_parser_params structure * to their default values * @param params the structure to initialize */ void cmdline_parser_params_init(struct cmdline_parser_params *params); /** * Allocates dynamically a cmdline_parser_params structure and initializes * all its fields to their default values * @return the created and initialized cmdline_parser_params structure */ struct cmdline_parser_params *cmdline_parser_params_create(void); /** * Initializes the passed gengetopt_args_info structure's fields * (also set default values for options that have a default) * @param args_info the structure to initialize */ void cmdline_parser_init (struct gengetopt_args_info *args_info); /** * Deallocates the string fields of the gengetopt_args_info structure * (but does not deallocate the structure itself) * @param args_info the structure to deallocate */ void cmdline_parser_free (struct gengetopt_args_info *args_info); /** * Checks that all the required options were specified * @param args_info the structure to check * @param prog_name the name of the program that will be used to print * possible errors * @return */ int cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name); #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* IDN_CMD_H */ ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/idn.c�������������������������������������������������������������������������������0000644�0000000�0000000�00000035324�12153723226�011313� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* idn.c --- Command line interface to libidn. * Copyright (C) 2003-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <locale.h> #include <unistd.h> /* Gnulib headers. */ #include "error.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) #define N_(String) gettext_noop (String) #include "progname.h" #include "version-etc.h" /* Libidn headers. */ #include <stringprep.h> #include <punycode.h> #include <idna.h> #ifdef WITH_TLD # include <tld.h> #endif #include "idn_cmd.h" #define GREETING \ "Copyright 2002-2013 Simon Josefsson.\n" \ "GNU Libidn is free software with ABSOLUTELY NO WARRANTY. For more\n" \ "information about these matters, see <http://www.gnu.org/licenses/>.\n" const char version_etc_copyright[] = /* Do *not* mark this string for translation. %s is a copyright symbol suitable for this locale, and %d is the copyright year. */ "Copyright %s %d Simon Josefsson."; static void usage (int status) { if (status != EXIT_SUCCESS) fprintf (stderr, _("Try `%s --help' for more information.\n"), program_name); else { printf (_("\ Usage: %s [OPTION]... [STRINGS]...\n\ "), program_name); fputs (_("\ Internationalized Domain Name (IDN) convert STRINGS, or standard input.\n\ \n\ "), stdout); fputs (_("\ Command line interface to the internationalized domain name library.\n\ \n\ All strings are expected to be encoded in the preferred charset used\n\ by your locale. Use `--debug' to find out what this charset is. You\n\ can override the charset used by setting environment variable CHARSET.\n\ \n\ To process a string that starts with `-', for example `-foo', use `--'\n\ to signal the end of parameters, as in `idn --quiet -a -- -foo'.\n\ \n\ Mandatory arguments to long options are mandatory for short options too.\n\ "), stdout); fputs (_("\ -h, --help Print help and exit\n\ -V, --version Print version and exit\n\ "), stdout); fputs (_("\ -s, --stringprep Prepare string according to nameprep profile\n\ -d, --punycode-decode Decode Punycode\n\ -e, --punycode-encode Encode Punycode\n\ -a, --idna-to-ascii Convert to ACE according to IDNA (default mode)\n\ -u, --idna-to-unicode Convert from ACE according to IDNA\n\ "), stdout); fputs (_("\ --allow-unassigned Toggle IDNA AllowUnassigned flag (default off)\n\ --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default off)\n\ "), stdout); fputs (_("\ --no-tld Don't check string for TLD specific rules\n\ Only for --idna-to-ascii and --idna-to-unicode\n\ "), stdout); fputs (_("\ -n, --nfkc Normalize string according to Unicode v3.2 NFKC\n\ "), stdout); fputs (_("\ -p, --profile=STRING Use specified stringprep profile instead\n\ Valid stringprep profiles: `Nameprep',\n\ `iSCSI', `Nodeprep', `Resourceprep', \n\ `trace', `SASLprep'\n\ "), stdout); fputs (_("\ --debug Print debugging information\n\ --quiet Silent operation\n\ "), stdout); emit_bug_reporting_address (); } exit (status); } int main (int argc, char *argv[]) { struct gengetopt_args_info args_info; char readbuf[BUFSIZ]; char *p, *r; uint32_t *q; unsigned cmdn = 0; int rc; setlocale (LC_ALL, ""); set_program_name (argv[0]); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); if (cmdline_parser (argc, argv, &args_info) != 0) return EXIT_FAILURE; if (args_info.version_given) { version_etc (stdout, "idn", PACKAGE_NAME, VERSION, "Simon Josefsson", (char *) NULL); return EXIT_SUCCESS; } if (args_info.help_given) usage (EXIT_SUCCESS); /* Backwards compatibility: -n has always been the documented short form for --nfkc but, before v1.10, -k was the implemented short form. We now accept both to avoid documentation changes. */ if (args_info.hidden_nfkc_given) args_info.nfkc_given = 1; if (!args_info.stringprep_given && !args_info.punycode_encode_given && !args_info.punycode_decode_given && !args_info.idna_to_ascii_given && !args_info.idna_to_unicode_given && !args_info.nfkc_given) args_info.idna_to_ascii_given = 1; if ((args_info.stringprep_given ? 1 : 0) + (args_info.punycode_encode_given ? 1 : 0) + (args_info.punycode_decode_given ? 1 : 0) + (args_info.idna_to_ascii_given ? 1 : 0) + (args_info.idna_to_unicode_given ? 1 : 0) + (args_info.nfkc_given ? 1 : 0) != 1) { error (0, 0, _("only one of -s, -e, -d, -a, -u or -n can be specified")); usage (EXIT_FAILURE); } if (!args_info.quiet_given && args_info.inputs_num == 0 && isatty (fileno (stdin))) fprintf (stderr, "%s %s\n" GREETING, PACKAGE, VERSION); if (args_info.debug_given) fprintf (stderr, _("Charset `%s'.\n"), stringprep_locale_charset ()); if (!args_info.quiet_given && args_info.inputs_num == 0 && isatty (fileno (stdin))) fprintf (stderr, _("Type each input string on a line by itself, " "terminated by a newline character.\n")); do { if (cmdn < args_info.inputs_num) { strncpy (readbuf, args_info.inputs[cmdn++], BUFSIZ - 1); readbuf[BUFSIZ - 1] = '\0'; } else if (fgets (readbuf, BUFSIZ, stdin) == NULL) { if (feof (stdin)) break; error (EXIT_FAILURE, errno, _("input error")); } if (readbuf[strlen (readbuf) - 1] == '\n') readbuf[strlen (readbuf) - 1] = '\0'; if (args_info.stringprep_given) { p = stringprep_locale_to_utf8 (readbuf); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, NULL); if (!q) { free (p); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } free (q); rc = stringprep_profile (p, &r, args_info.profile_given ? args_info.profile_arg : "Nameprep", 0); free (p); if (rc != STRINGPREP_OK) error (EXIT_FAILURE, 0, _("stringprep_profile: %s"), stringprep_strerror (rc)); q = stringprep_utf8_to_ucs4 (r, -1, NULL); if (!q) { free (r); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); } free (q); p = stringprep_utf8_to_locale (r); free (r); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.punycode_encode_given) { size_t len, len2; p = stringprep_locale_to_utf8 (readbuf); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, &len); free (p); if (!q) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); if (args_info.debug_given) { size_t i; for (i = 0; i < len; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } len2 = BUFSIZ - 1; rc = punycode_encode (len, q, NULL, &len2, readbuf); free (q); if (rc != PUNYCODE_SUCCESS) error (EXIT_FAILURE, 0, _("punycode_encode: %s"), punycode_strerror (rc)); readbuf[len2] = '\0'; p = stringprep_utf8_to_locale (readbuf); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.punycode_decode_given) { size_t len; len = BUFSIZ; q = (uint32_t *) malloc (len * sizeof (q[0])); if (!q) error (EXIT_FAILURE, ENOMEM, N_("malloc")); rc = punycode_decode (strlen (readbuf), readbuf, &len, q, NULL); if (rc != PUNYCODE_SUCCESS) { free (q); error (EXIT_FAILURE, 0, _("punycode_decode: %s"), punycode_strerror (rc)); } if (args_info.debug_given) { size_t i; for (i = 0; i < len; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); } q[len] = 0; r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL); free (q); if (!r) error (EXIT_FAILURE, 0, _("could not convert from UCS-4 to UTF-8")); p = stringprep_utf8_to_locale (r); free (r); if (!r) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.idna_to_ascii_given) { p = stringprep_locale_to_utf8 (readbuf); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, NULL); free (p); if (!q) error (EXIT_FAILURE, 0, _("could not convert from UCS-4 to UTF-8")); if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } rc = idna_to_ascii_4z (q, &p, (args_info.allow_unassigned_given ? IDNA_ALLOW_UNASSIGNED : 0) | (args_info.usestd3asciirules_given ? IDNA_USE_STD3_ASCII_RULES : 0)); free (q); if (rc != IDNA_SUCCESS) error (EXIT_FAILURE, 0, _("idna_to_ascii_4z: %s"), idna_strerror (rc)); #ifdef WITH_TLD if (args_info.tld_flag && !args_info.no_tld_flag) { size_t errpos; rc = idna_to_unicode_8z4z (p, &q, (args_info.allow_unassigned_given ? IDNA_ALLOW_UNASSIGNED : 0) | (args_info.usestd3asciirules_given ? IDNA_USE_STD3_ASCII_RULES : 0)); if (rc != IDNA_SUCCESS) error (EXIT_FAILURE, 0, _("idna_to_unicode_8z4z (TLD): %s"), idna_strerror (rc)); if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "tld[%lu] = U+%04x\n", (unsigned long) i, q[i]); } rc = tld_check_4z (q, &errpos, NULL); free (q); if (rc == TLD_INVALID) error (EXIT_FAILURE, 0, _("tld_check_4z (position %lu): %s"), (unsigned long) errpos, tld_strerror (rc)); if (rc != TLD_SUCCESS) error (EXIT_FAILURE, 0, _("tld_check_4z: %s"), tld_strerror (rc)); } #endif if (args_info.debug_given) { size_t i; for (i = 0; p[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, p[i]); } fprintf (stdout, "%s\n", p); free (p); } if (args_info.idna_to_unicode_given) { p = stringprep_locale_to_utf8 (readbuf); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); q = stringprep_utf8_to_ucs4 (p, -1, NULL); if (!q) { free (p); error (EXIT_FAILURE, 0, _("could not convert from UCS-4 to UTF-8")); } if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); } free (q); rc = idna_to_unicode_8z4z (p, &q, (args_info.allow_unassigned_given ? IDNA_ALLOW_UNASSIGNED : 0) | (args_info.usestd3asciirules_given ? IDNA_USE_STD3_ASCII_RULES : 0)); free (p); if (rc != IDNA_SUCCESS) error (EXIT_FAILURE, 0, _("idna_to_unicode_8z4z: %s"), idna_strerror (rc)); if (args_info.debug_given) { size_t i; for (i = 0; q[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); } #ifdef WITH_TLD if (args_info.tld_flag) { size_t errpos; rc = tld_check_4z (q, &errpos, NULL); if (rc == TLD_INVALID) { free (q); error (EXIT_FAILURE, 0, _("tld_check_4z (position %lu): %s"), (unsigned long) errpos, tld_strerror (rc)); } if (rc != TLD_SUCCESS) { free (q); error (EXIT_FAILURE, 0, _("tld_check_4z: %s"), tld_strerror (rc)); } } #endif r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL); free (q); if (!r) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); p = stringprep_utf8_to_locale (r); free (r); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } if (args_info.nfkc_given) { p = stringprep_locale_to_utf8 (readbuf); if (!p) error (EXIT_FAILURE, 0, _("could not convert from %s to UTF-8"), stringprep_locale_charset ()); if (args_info.debug_given) { size_t i; q = stringprep_utf8_to_ucs4 (p, -1, NULL); if (!q) { free (p); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } for (i = 0; q[i]; i++) fprintf (stderr, "input[%lu] = U+%04x\n", (unsigned long) i, q[i]); free (q); } r = stringprep_utf8_nfkc_normalize (p, -1); free (p); if (!r) error (EXIT_FAILURE, 0, _("could not do NFKC normalization")); if (args_info.debug_given) { size_t i; q = stringprep_utf8_to_ucs4 (r, -1, NULL); if (!q) { free (r); error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to UCS-4")); } for (i = 0; q[i]; i++) fprintf (stderr, "output[%lu] = U+%04x\n", (unsigned long) i, q[i]); free (q); } p = stringprep_utf8_to_locale (r); free (r); if (!p) error (EXIT_FAILURE, 0, _("could not convert from UTF-8 to %s"), stringprep_locale_charset ()); fprintf (stdout, "%s\n", p); free (p); } } while (!feof (stdin) && !ferror (stdin) && (args_info.inputs_num == 0 || cmdn < args_info.inputs_num)); return EXIT_SUCCESS; } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/idna.el�����������������������������������������������������������������������������0000644�0000000�0000000�00000014500�12153706572�011630� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������;;; idna.el --- Internationalizing Domain Names in Applications. ;; Copyright (C) 2003-2013 Simon Josefsson ;; Keywords: idna, idn, domain name, internationalization ;; This file is part of GNU Libidn. ;; 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 3 of the License, or ;; (at your option) any later version. ;; 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. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;; A simple wrapper around the command line "idn" utility in GNU ;; Libidn to make IDNA ToASCII and ToUnicode operations available in ;; Emacs. ;; Example: ;; ;; (idna-to-ascii "rksmrgs.gnu.org") ;; => "xn--rksmrgs-5wao1o.gnu.org" ;; ;; (idna-to-ascii "www.gnu.org") ;; => "www.gnu.org" ;; ;; (idna-to-unicode "xn--rksmrgs-5wao1o.gnu.org") ;; => "rksmrgs.gnu.org" ;; ;; (idna-to-unicode "www.gnu.org") ;; => "www.gnu.org" ;; Todo: Support AllowUnassigned and UseSTD3ASCIIRules somehow? ;; This package is useless unless your emacs has at least partial ;; support for the UTF-8 coding system. ;; Report bugs to bug-libidn@gnu.org. ;;; Code: (defgroup idna nil "Internationalizing Domain Names in Applications.") (defcustom idna-program "idn" "Name of the GNU Libidn \"idn\" application." :type 'string :group 'idna) (defcustom idna-environment '("CHARSET=UTF-8") "List of environment variable definitions prepended to `process-environment'." :type '(repeat string) :group 'idna) (defcustom idna-to-ascii-parameters '("--quiet" "--idna-to-ascii" "--usestd3asciirules") "Parameters passed to `idna-program' to invoke IDNA ToASCII mode." :type '(repeat string) :group 'idna) (defcustom idna-to-unicode-parameters '("--quiet" "--idna-to-unicode" "--usestd3asciirules") "Parameters passed `idna-program' to invoke IDNA ToUnicode mode." :type '(repeat string) :group 'idna) ;; Internal process handling: (defvar idna-to-ascii-process nil "Internal variable holding process for ToASCII.") (defvar idna-to-ascii-response nil "Internal variable holding response data received from ToASCII process.") (defun idna-to-ascii-response-clear () (setq idna-to-ascii-response nil)) (defun idna-to-ascii-response () (while (and (eq (process-status idna-to-ascii-process) 'run) (null idna-to-ascii-response)) (accept-process-output idna-to-ascii-process 1)) idna-to-ascii-response) (defun idna-to-ascii-filter (process string) (setq idna-to-ascii-response (concat idna-to-ascii-response string))) (defun idna-to-ascii-process () (if (and idna-to-ascii-process (eq (process-status idna-to-ascii-process) 'run)) idna-to-ascii-process (if idna-to-ascii-process (condition-case () (kill-process idna-to-ascii-process) (error))) (when (setq idna-to-ascii-process (let ((process-environment (append idna-environment process-environment))) (apply 'start-process "idna" nil idna-program idna-to-ascii-parameters))) (set-process-filter idna-to-ascii-process 'idna-to-ascii-filter) (set-process-coding-system idna-to-ascii-process 'utf-8 'utf-8) (process-kill-without-query idna-to-ascii-process)) idna-to-ascii-process)) (defvar idna-to-unicode-process nil "Internal variable holding process for ToASCII.") (defvar idna-to-unicode-response nil "Internal variable holding response data received from ToASCII process.") (defun idna-to-unicode-response-clear () (setq idna-to-unicode-response nil)) (defun idna-to-unicode-response () (while (and (eq (process-status idna-to-unicode-process) 'run) (null idna-to-unicode-response)) (accept-process-output idna-to-unicode-process 1)) idna-to-unicode-response) (defun idna-to-unicode-filter (process string) (setq idna-to-unicode-response (concat idna-to-unicode-response string))) (defun idna-to-unicode-process () (if (and idna-to-unicode-process (eq (process-status idna-to-unicode-process) 'run)) idna-to-unicode-process (if idna-to-unicode-process (condition-case () (kill-process idna-to-unicode-process) (error))) (when (setq idna-to-unicode-process (let ((process-environment (append idna-environment process-environment))) (apply 'start-process "idna" nil idna-program idna-to-unicode-parameters))) (set-process-filter idna-to-unicode-process 'idna-to-unicode-filter) (set-process-coding-system idna-to-unicode-process 'utf-8 'utf-8) (process-kill-without-query idna-to-unicode-process)) idna-to-unicode-process)) ;; IDNA Elisp API: (defun idna-to-ascii (str) "Returns an ASCII Compatible Encoding (ACE) of STR. It is computed by the IDNA ToASCII operation, after converting the input to UTF-8." (let ((proc (idna-to-ascii-process)) string) (if (null proc) (error "Cannot start idn application (to-ascii)") (idna-to-ascii-response-clear) (process-send-string proc (concat str "\n")) (setq string (idna-to-ascii-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun idna-to-unicode (str) "Returns a possibly multibyte string after decoding STR. It is computed by the IDNA ToUnicode operation." (let ((proc (idna-to-unicode-process)) string) (if (null proc) (error "Cannot start idn application (to-unicode)") (idna-to-unicode-response-clear) (process-send-string proc (concat str "\n")) (setq string (idna-to-unicode-response)) (if (and string (string= (substring string (1- (length string))) "\n")) (substring string 0 (1- (length string))) string)))) (defun idna-shutdown () "Kill the IDNA related processes." (interactive) (if (and idna-to-ascii-process (eq (process-status idna-to-ascii-process) 'run)) (kill-process idna-to-ascii-process)) (if (and idna-to-unicode-process (eq (process-status idna-to-unicode-process) 'run)) (kill-process idna-to-unicode-process))) (provide 'idna) ;;; idna.el ends here ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/idn_cmd.c���������������������������������������������������������������������������0000644�0000000�0000000�00000063740�12167245605�012146� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* File autogenerated by gengetopt version 2.22.5 generated with the following command: gengetopt --unamed-opts --no-handle-version --no-handle-help --set-package=idn --input idn.ggo --file-name idn_cmd Makefile.am The developers of gengetopt consider the fixed text that goes in all gengetopt output files to be in the public domain: we make no copyright claims on it. */ /* If we use autoconf. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <string.h> #ifndef FIX_UNUSED #define FIX_UNUSED(X) (void) (X) /* avoid warnings for unused params */ #endif #include <getopt.h> #include "idn_cmd.h" const char *gengetopt_args_info_purpose = ""; const char *gengetopt_args_info_usage = "Usage: idn [OPTION]... [STRING]..."; const char *gengetopt_args_info_description = ""; const char *gengetopt_args_info_full_help[] = { " -h, --help Print help and exit", " --full-help Print help, including hidden options, and exit", " -V, --version Print version and exit", " -s, --stringprep Prepare string according to nameprep profile", " -d, --punycode-decode Decode Punycode", " -e, --punycode-encode Encode Punycode", " -a, --idna-to-ascii Convert to ACE according to IDNA (default)", " -u, --idna-to-unicode Convert from ACE according to IDNA", " --allow-unassigned Toggle IDNA AllowUnassigned flag (default=off)", " --usestd3asciirules Toggle IDNA UseSTD3ASCIIRules flag (default=off)", " -t, --tld Check string for TLD specific rules\n Only for --idna-to-ascii and --idna-to-unicode \n (default=on)", " --no-tld Don't check string for TLD specific rules\n Only for --idna-to-ascii and --idna-to-unicode \n (default=off)", " -n, --nfkc Normalize string according to Unicode v3.2 NFKC", " -k, --hidden-nfkc Hidden parameter for backwards compatibility", " -p, --profile=STRING Use specified stringprep profile instead\n Valid stringprep profiles are `Nameprep', `iSCSI', \n `Nodeprep', `Resourceprep', `trace', and \n `SASLprep'.", " --debug Print debugging information (default=off)", " --quiet Silent operation (default=off)", 0 }; static void init_help_array(void) { gengetopt_args_info_help[0] = gengetopt_args_info_full_help[0]; gengetopt_args_info_help[1] = gengetopt_args_info_full_help[1]; gengetopt_args_info_help[2] = gengetopt_args_info_full_help[2]; gengetopt_args_info_help[3] = gengetopt_args_info_full_help[3]; gengetopt_args_info_help[4] = gengetopt_args_info_full_help[4]; gengetopt_args_info_help[5] = gengetopt_args_info_full_help[5]; gengetopt_args_info_help[6] = gengetopt_args_info_full_help[6]; gengetopt_args_info_help[7] = gengetopt_args_info_full_help[7]; gengetopt_args_info_help[8] = gengetopt_args_info_full_help[8]; gengetopt_args_info_help[9] = gengetopt_args_info_full_help[9]; gengetopt_args_info_help[10] = gengetopt_args_info_full_help[10]; gengetopt_args_info_help[11] = gengetopt_args_info_full_help[11]; gengetopt_args_info_help[12] = gengetopt_args_info_full_help[12]; gengetopt_args_info_help[13] = gengetopt_args_info_full_help[14]; gengetopt_args_info_help[14] = gengetopt_args_info_full_help[15]; gengetopt_args_info_help[15] = gengetopt_args_info_full_help[16]; gengetopt_args_info_help[16] = 0; } const char *gengetopt_args_info_help[17]; typedef enum {ARG_NO , ARG_FLAG , ARG_STRING } cmdline_parser_arg_type; static void clear_given (struct gengetopt_args_info *args_info); static void clear_args (struct gengetopt_args_info *args_info); static int cmdline_parser_internal (int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params, const char *additional_error); static char * gengetopt_strdup (const char *s); static void clear_given (struct gengetopt_args_info *args_info) { args_info->help_given = 0 ; args_info->full_help_given = 0 ; args_info->version_given = 0 ; args_info->stringprep_given = 0 ; args_info->punycode_decode_given = 0 ; args_info->punycode_encode_given = 0 ; args_info->idna_to_ascii_given = 0 ; args_info->idna_to_unicode_given = 0 ; args_info->allow_unassigned_given = 0 ; args_info->usestd3asciirules_given = 0 ; args_info->tld_given = 0 ; args_info->no_tld_given = 0 ; args_info->nfkc_given = 0 ; args_info->hidden_nfkc_given = 0 ; args_info->profile_given = 0 ; args_info->debug_given = 0 ; args_info->quiet_given = 0 ; } static void clear_args (struct gengetopt_args_info *args_info) { FIX_UNUSED (args_info); args_info->allow_unassigned_flag = 0; args_info->usestd3asciirules_flag = 0; args_info->tld_flag = 1; args_info->no_tld_flag = 0; args_info->profile_arg = NULL; args_info->profile_orig = NULL; args_info->debug_flag = 0; args_info->quiet_flag = 0; } static void init_args_info(struct gengetopt_args_info *args_info) { init_help_array(); args_info->help_help = gengetopt_args_info_full_help[0] ; args_info->full_help_help = gengetopt_args_info_full_help[1] ; args_info->version_help = gengetopt_args_info_full_help[2] ; args_info->stringprep_help = gengetopt_args_info_full_help[3] ; args_info->punycode_decode_help = gengetopt_args_info_full_help[4] ; args_info->punycode_encode_help = gengetopt_args_info_full_help[5] ; args_info->idna_to_ascii_help = gengetopt_args_info_full_help[6] ; args_info->idna_to_unicode_help = gengetopt_args_info_full_help[7] ; args_info->allow_unassigned_help = gengetopt_args_info_full_help[8] ; args_info->usestd3asciirules_help = gengetopt_args_info_full_help[9] ; args_info->tld_help = gengetopt_args_info_full_help[10] ; args_info->no_tld_help = gengetopt_args_info_full_help[11] ; args_info->nfkc_help = gengetopt_args_info_full_help[12] ; args_info->hidden_nfkc_help = gengetopt_args_info_full_help[13] ; args_info->profile_help = gengetopt_args_info_full_help[14] ; args_info->debug_help = gengetopt_args_info_full_help[15] ; args_info->quiet_help = gengetopt_args_info_full_help[16] ; } void cmdline_parser_print_version (void) { printf ("%s %s\n", (strlen(CMDLINE_PARSER_PACKAGE_NAME) ? CMDLINE_PARSER_PACKAGE_NAME : CMDLINE_PARSER_PACKAGE), CMDLINE_PARSER_VERSION); } static void print_help_common(void) { cmdline_parser_print_version (); if (strlen(gengetopt_args_info_purpose) > 0) printf("\n%s\n", gengetopt_args_info_purpose); if (strlen(gengetopt_args_info_usage) > 0) printf("\n%s\n", gengetopt_args_info_usage); printf("\n"); if (strlen(gengetopt_args_info_description) > 0) printf("%s\n\n", gengetopt_args_info_description); } void cmdline_parser_print_help (void) { int i = 0; print_help_common(); while (gengetopt_args_info_help[i]) printf("%s\n", gengetopt_args_info_help[i++]); } void cmdline_parser_print_full_help (void) { int i = 0; print_help_common(); while (gengetopt_args_info_full_help[i]) printf("%s\n", gengetopt_args_info_full_help[i++]); } void cmdline_parser_init (struct gengetopt_args_info *args_info) { clear_given (args_info); clear_args (args_info); init_args_info (args_info); args_info->inputs = 0; args_info->inputs_num = 0; } void cmdline_parser_params_init(struct cmdline_parser_params *params) { if (params) { params->override = 0; params->initialize = 1; params->check_required = 1; params->check_ambiguity = 0; params->print_errors = 1; } } struct cmdline_parser_params * cmdline_parser_params_create(void) { struct cmdline_parser_params *params = (struct cmdline_parser_params *)malloc(sizeof(struct cmdline_parser_params)); cmdline_parser_params_init(params); return params; } static void free_string_field (char **s) { if (*s) { free (*s); *s = 0; } } static void cmdline_parser_release (struct gengetopt_args_info *args_info) { unsigned int i; free_string_field (&(args_info->profile_arg)); free_string_field (&(args_info->profile_orig)); for (i = 0; i < args_info->inputs_num; ++i) free (args_info->inputs [i]); if (args_info->inputs_num) free (args_info->inputs); clear_given (args_info); } static void write_into_file(FILE *outfile, const char *opt, const char *arg, const char *values[]) { FIX_UNUSED (values); if (arg) { fprintf(outfile, "%s=\"%s\"\n", opt, arg); } else { fprintf(outfile, "%s\n", opt); } } int cmdline_parser_dump(FILE *outfile, struct gengetopt_args_info *args_info) { int i = 0; if (!outfile) { fprintf (stderr, "%s: cannot dump options to stream\n", CMDLINE_PARSER_PACKAGE); return EXIT_FAILURE; } if (args_info->help_given) write_into_file(outfile, "help", 0, 0 ); if (args_info->full_help_given) write_into_file(outfile, "full-help", 0, 0 ); if (args_info->version_given) write_into_file(outfile, "version", 0, 0 ); if (args_info->stringprep_given) write_into_file(outfile, "stringprep", 0, 0 ); if (args_info->punycode_decode_given) write_into_file(outfile, "punycode-decode", 0, 0 ); if (args_info->punycode_encode_given) write_into_file(outfile, "punycode-encode", 0, 0 ); if (args_info->idna_to_ascii_given) write_into_file(outfile, "idna-to-ascii", 0, 0 ); if (args_info->idna_to_unicode_given) write_into_file(outfile, "idna-to-unicode", 0, 0 ); if (args_info->allow_unassigned_given) write_into_file(outfile, "allow-unassigned", 0, 0 ); if (args_info->usestd3asciirules_given) write_into_file(outfile, "usestd3asciirules", 0, 0 ); if (args_info->tld_given) write_into_file(outfile, "tld", 0, 0 ); if (args_info->no_tld_given) write_into_file(outfile, "no-tld", 0, 0 ); if (args_info->nfkc_given) write_into_file(outfile, "nfkc", 0, 0 ); if (args_info->hidden_nfkc_given) write_into_file(outfile, "hidden-nfkc", 0, 0 ); if (args_info->profile_given) write_into_file(outfile, "profile", args_info->profile_orig, 0); if (args_info->debug_given) write_into_file(outfile, "debug", 0, 0 ); if (args_info->quiet_given) write_into_file(outfile, "quiet", 0, 0 ); i = EXIT_SUCCESS; return i; } int cmdline_parser_file_save(const char *filename, struct gengetopt_args_info *args_info) { FILE *outfile; int i = 0; outfile = fopen(filename, "w"); if (!outfile) { fprintf (stderr, "%s: cannot open file for writing: %s\n", CMDLINE_PARSER_PACKAGE, filename); return EXIT_FAILURE; } i = cmdline_parser_dump(outfile, args_info); fclose (outfile); return i; } void cmdline_parser_free (struct gengetopt_args_info *args_info) { cmdline_parser_release (args_info); } /** @brief replacement of strdup, which is not standard */ char * gengetopt_strdup (const char *s) { char *result = 0; if (!s) return result; result = (char*)malloc(strlen(s) + 1); if (result == (char*)0) return (char*)0; strcpy(result, s); return result; } int cmdline_parser (int argc, char **argv, struct gengetopt_args_info *args_info) { return cmdline_parser2 (argc, argv, args_info, 0, 1, 1); } int cmdline_parser_ext (int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params) { int result; result = cmdline_parser_internal (argc, argv, args_info, params, 0); if (result == EXIT_FAILURE) { cmdline_parser_free (args_info); exit (EXIT_FAILURE); } return result; } int cmdline_parser2 (int argc, char **argv, struct gengetopt_args_info *args_info, int override, int initialize, int check_required) { int result; struct cmdline_parser_params params; params.override = override; params.initialize = initialize; params.check_required = check_required; params.check_ambiguity = 0; params.print_errors = 1; result = cmdline_parser_internal (argc, argv, args_info, ¶ms, 0); if (result == EXIT_FAILURE) { cmdline_parser_free (args_info); exit (EXIT_FAILURE); } return result; } int cmdline_parser_required (struct gengetopt_args_info *args_info, const char *prog_name) { FIX_UNUSED (args_info); FIX_UNUSED (prog_name); return EXIT_SUCCESS; } static char *package_name = 0; /** * @brief updates an option * @param field the generic pointer to the field to update * @param orig_field the pointer to the orig field * @param field_given the pointer to the number of occurrence of this option * @param prev_given the pointer to the number of occurrence already seen * @param value the argument for this option (if null no arg was specified) * @param possible_values the possible values for this option (if specified) * @param default_value the default value (in case the option only accepts fixed values) * @param arg_type the type of this option * @param check_ambiguity @see cmdline_parser_params.check_ambiguity * @param override @see cmdline_parser_params.override * @param no_free whether to free a possible previous value * @param multiple_option whether this is a multiple option * @param long_opt the corresponding long option * @param short_opt the corresponding short option (or '-' if none) * @param additional_error possible further error specification */ static int update_arg(void *field, char **orig_field, unsigned int *field_given, unsigned int *prev_given, char *value, const char *possible_values[], const char *default_value, cmdline_parser_arg_type arg_type, int check_ambiguity, int override, int no_free, int multiple_option, const char *long_opt, char short_opt, const char *additional_error) { char *stop_char = 0; const char *val = value; int found; char **string_field; FIX_UNUSED (field); stop_char = 0; found = 0; if (!multiple_option && prev_given && (*prev_given || (check_ambiguity && *field_given))) { if (short_opt != '-') fprintf (stderr, "%s: `--%s' (`-%c') option given more than once%s\n", package_name, long_opt, short_opt, (additional_error ? additional_error : "")); else fprintf (stderr, "%s: `--%s' option given more than once%s\n", package_name, long_opt, (additional_error ? additional_error : "")); return 1; /* failure */ } FIX_UNUSED (default_value); if (field_given && *field_given && ! override) return 0; if (prev_given) (*prev_given)++; if (field_given) (*field_given)++; if (possible_values) val = possible_values[found]; switch(arg_type) { case ARG_FLAG: *((int *)field) = !*((int *)field); break; case ARG_STRING: if (val) { string_field = (char **)field; if (!no_free && *string_field) free (*string_field); /* free previous string */ *string_field = gengetopt_strdup (val); } break; default: break; }; /* store the original value */ switch(arg_type) { case ARG_NO: case ARG_FLAG: break; default: if (value && orig_field) { if (no_free) { *orig_field = value; } else { if (*orig_field) free (*orig_field); /* free previous string */ *orig_field = gengetopt_strdup (value); } } }; return 0; /* OK */ } int cmdline_parser_internal ( int argc, char **argv, struct gengetopt_args_info *args_info, struct cmdline_parser_params *params, const char *additional_error) { int c; /* Character of the parsed option. */ int error = 0; struct gengetopt_args_info local_args_info; int override; int initialize; int check_required; int check_ambiguity; package_name = argv[0]; override = params->override; initialize = params->initialize; check_required = params->check_required; check_ambiguity = params->check_ambiguity; if (initialize) cmdline_parser_init (args_info); cmdline_parser_init (&local_args_info); optarg = 0; optind = 0; opterr = params->print_errors; optopt = '?'; while (1) { int option_index = 0; static struct option long_options[] = { { "help", 0, NULL, 'h' }, { "full-help", 0, NULL, 0 }, { "version", 0, NULL, 'V' }, { "stringprep", 0, NULL, 's' }, { "punycode-decode", 0, NULL, 'd' }, { "punycode-encode", 0, NULL, 'e' }, { "idna-to-ascii", 0, NULL, 'a' }, { "idna-to-unicode", 0, NULL, 'u' }, { "allow-unassigned", 0, NULL, 0 }, { "usestd3asciirules", 0, NULL, 0 }, { "tld", 0, NULL, 't' }, { "no-tld", 0, NULL, 0 }, { "nfkc", 0, NULL, 'n' }, { "hidden-nfkc", 0, NULL, 'k' }, { "profile", 1, NULL, 'p' }, { "debug", 0, NULL, 0 }, { "quiet", 0, NULL, 0 }, { 0, 0, 0, 0 } }; c = getopt_long (argc, argv, "hVsdeautnkp:", long_options, &option_index); if (c == -1) break; /* Exit from `while (1)' loop. */ switch (c) { case 'h': /* Print help and exit. */ if (update_arg( 0 , 0 , &(args_info->help_given), &(local_args_info.help_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "help", 'h', additional_error)) goto failure; cmdline_parser_free (&local_args_info); return 0; break; case 'V': /* Print version and exit. */ if (update_arg( 0 , 0 , &(args_info->version_given), &(local_args_info.version_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "version", 'V', additional_error)) goto failure; cmdline_parser_free (&local_args_info); return 0; break; case 's': /* Prepare string according to nameprep profile. */ if (update_arg( 0 , 0 , &(args_info->stringprep_given), &(local_args_info.stringprep_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "stringprep", 's', additional_error)) goto failure; break; case 'd': /* Decode Punycode. */ if (update_arg( 0 , 0 , &(args_info->punycode_decode_given), &(local_args_info.punycode_decode_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "punycode-decode", 'd', additional_error)) goto failure; break; case 'e': /* Encode Punycode. */ if (update_arg( 0 , 0 , &(args_info->punycode_encode_given), &(local_args_info.punycode_encode_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "punycode-encode", 'e', additional_error)) goto failure; break; case 'a': /* Convert to ACE according to IDNA (default). */ if (update_arg( 0 , 0 , &(args_info->idna_to_ascii_given), &(local_args_info.idna_to_ascii_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "idna-to-ascii", 'a', additional_error)) goto failure; break; case 'u': /* Convert from ACE according to IDNA. */ if (update_arg( 0 , 0 , &(args_info->idna_to_unicode_given), &(local_args_info.idna_to_unicode_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "idna-to-unicode", 'u', additional_error)) goto failure; break; case 't': /* Check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode. */ if (update_arg((void *)&(args_info->tld_flag), 0, &(args_info->tld_given), &(local_args_info.tld_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "tld", 't', additional_error)) goto failure; break; case 'n': /* Normalize string according to Unicode v3.2 NFKC. */ if (update_arg( 0 , 0 , &(args_info->nfkc_given), &(local_args_info.nfkc_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "nfkc", 'n', additional_error)) goto failure; break; case 'k': /* Hidden parameter for backwards compatibility. */ if (update_arg( 0 , 0 , &(args_info->hidden_nfkc_given), &(local_args_info.hidden_nfkc_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "hidden-nfkc", 'k', additional_error)) goto failure; break; case 'p': /* Use specified stringprep profile instead Valid stringprep profiles are `Nameprep', `iSCSI', `Nodeprep', `Resourceprep', `trace', and `SASLprep'.. */ if (update_arg( (void *)&(args_info->profile_arg), &(args_info->profile_orig), &(args_info->profile_given), &(local_args_info.profile_given), optarg, 0, 0, ARG_STRING, check_ambiguity, override, 0, 0, "profile", 'p', additional_error)) goto failure; break; case 0: /* Long option with no short option */ /* Print help, including hidden options, and exit. */ if (strcmp (long_options[option_index].name, "full-help") == 0) { if (update_arg( 0 , 0 , &(args_info->full_help_given), &(local_args_info.full_help_given), optarg, 0, 0, ARG_NO, check_ambiguity, override, 0, 0, "full-help", '-', additional_error)) goto failure; cmdline_parser_free (&local_args_info); return 0; } /* Toggle IDNA AllowUnassigned flag. */ else if (strcmp (long_options[option_index].name, "allow-unassigned") == 0) { if (update_arg((void *)&(args_info->allow_unassigned_flag), 0, &(args_info->allow_unassigned_given), &(local_args_info.allow_unassigned_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "allow-unassigned", '-', additional_error)) goto failure; } /* Toggle IDNA UseSTD3ASCIIRules flag. */ else if (strcmp (long_options[option_index].name, "usestd3asciirules") == 0) { if (update_arg((void *)&(args_info->usestd3asciirules_flag), 0, &(args_info->usestd3asciirules_given), &(local_args_info.usestd3asciirules_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "usestd3asciirules", '-', additional_error)) goto failure; } /* Don't check string for TLD specific rules Only for --idna-to-ascii and --idna-to-unicode. */ else if (strcmp (long_options[option_index].name, "no-tld") == 0) { if (update_arg((void *)&(args_info->no_tld_flag), 0, &(args_info->no_tld_given), &(local_args_info.no_tld_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "no-tld", '-', additional_error)) goto failure; } /* Print debugging information. */ else if (strcmp (long_options[option_index].name, "debug") == 0) { if (update_arg((void *)&(args_info->debug_flag), 0, &(args_info->debug_given), &(local_args_info.debug_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "debug", '-', additional_error)) goto failure; } /* Silent operation. */ else if (strcmp (long_options[option_index].name, "quiet") == 0) { if (update_arg((void *)&(args_info->quiet_flag), 0, &(args_info->quiet_given), &(local_args_info.quiet_given), optarg, 0, 0, ARG_FLAG, check_ambiguity, override, 1, 0, "quiet", '-', additional_error)) goto failure; } break; case '?': /* Invalid option. */ /* `getopt_long' already printed an error message. */ goto failure; default: /* bug: option not considered. */ fprintf (stderr, "%s: option unknown: %c%s\n", CMDLINE_PARSER_PACKAGE, c, (additional_error ? additional_error : "")); abort (); } /* switch */ } /* while */ cmdline_parser_release (&local_args_info); if ( error ) return (EXIT_FAILURE); if (optind < argc) { int i = 0 ; int found_prog_name = 0; /* whether program name, i.e., argv[0], is in the remaining args (this may happen with some implementations of getopt, but surely not with the one included by gengetopt) */ i = optind; while (i < argc) if (argv[i++] == argv[0]) { found_prog_name = 1; break; } i = 0; args_info->inputs_num = argc - optind - found_prog_name; args_info->inputs = (char **)(malloc ((args_info->inputs_num)*sizeof(char *))) ; while (optind < argc) if (argv[optind++] != argv[0]) args_info->inputs[ i++ ] = gengetopt_strdup (argv[optind-1]) ; } return 0; failure: cmdline_parser_release (&local_args_info); return (EXIT_FAILURE); } ��������������������������������libidn-1.28/src/Makefile.am�������������������������������������������������������������������������0000644�0000000�0000000�00000003137�12153706572�012433� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl AM_CPPFLAGS += -DLOCALEDIR=\"$(localedir)\" dist_lisp_DATA = punycode.el idna.el bin_PROGRAMS = idn idn_SOURCES = idn.c idn_LDADD = libidn_cmd.la ../lib/libidn.la ../gl/libgnu.la $(LTLIBINTL) localedir = $(datadir)/locale idn.c: $(BUILT_SOURCES) noinst_LTLIBRARIES = libidn_cmd.la libidn_cmd_la_SOURCES = idn.ggo idn_cmd.c idn_cmd.h libidn_cmd_la_LIBADD = ../gl/libgnu.la libidn_cmd_la_CFLAGS = idn_cmd.c idn_cmd.h: idn.ggo Makefile.am gengetopt --unamed-opts --no-handle-version --no-handle-help \ --set-package="idn" \ --input $^ --file-name idn_cmd perl -pi -e 's/\[OPTIONS\]/\[OPTION\]/g' idn_cmd.c perl -pi -e 's/\[FILES\]/\[STRING\]/g' idn_cmd.c BUILT_SOURCES = idn_cmd.c idn_cmd.h MAINTAINERCLEANFILES = $(BUILT_SOURCES) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/src/Makefile.in�������������������������������������������������������������������������0000644�0000000�0000000�00000151750�12167244662�012453� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = idn$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp $(dist_lisp_DATA) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libidn_cmd_la_DEPENDENCIES = ../gl/libgnu.la am_libidn_cmd_la_OBJECTS = libidn_cmd_la-idn_cmd.lo libidn_cmd_la_OBJECTS = $(am_libidn_cmd_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libidn_cmd_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libidn_cmd_la_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(lispdir)" PROGRAMS = $(bin_PROGRAMS) am_idn_OBJECTS = idn.$(OBJEXT) idn_OBJECTS = $(am_idn_OBJECTS) am__DEPENDENCIES_1 = idn_DEPENDENCIES = libidn_cmd.la ../lib/libidn.la ../gl/libgnu.la \ $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libidn_cmd_la_SOURCES) $(idn_SOURCES) DIST_SOURCES = $(libidn_cmd_la_SOURCES) $(idn_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } DATA = $(dist_lisp_DATA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = $(datadir)/locale localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl \ -DLOCALEDIR=\"$(localedir)\" dist_lisp_DATA = punycode.el idna.el idn_SOURCES = idn.c idn_LDADD = libidn_cmd.la ../lib/libidn.la ../gl/libgnu.la $(LTLIBINTL) noinst_LTLIBRARIES = libidn_cmd.la libidn_cmd_la_SOURCES = idn.ggo idn_cmd.c idn_cmd.h libidn_cmd_la_LIBADD = ../gl/libgnu.la libidn_cmd_la_CFLAGS = BUILT_SOURCES = idn_cmd.c idn_cmd.h MAINTAINERCLEANFILES = $(BUILT_SOURCES) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libidn_cmd.la: $(libidn_cmd_la_OBJECTS) $(libidn_cmd_la_DEPENDENCIES) $(EXTRA_libidn_cmd_la_DEPENDENCIES) $(AM_V_CCLD)$(libidn_cmd_la_LINK) $(libidn_cmd_la_OBJECTS) $(libidn_cmd_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p \ || test -f $$p1 \ ; then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' \ -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' \ `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list idn$(EXEEXT): $(idn_OBJECTS) $(idn_DEPENDENCIES) $(EXTRA_idn_DEPENDENCIES) @rm -f idn$(EXEEXT) $(AM_V_CCLD)$(LINK) $(idn_OBJECTS) $(idn_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idn.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libidn_cmd_la-idn_cmd.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< libidn_cmd_la-idn_cmd.lo: idn_cmd.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libidn_cmd_la_CFLAGS) $(CFLAGS) -MT libidn_cmd_la-idn_cmd.lo -MD -MP -MF $(DEPDIR)/libidn_cmd_la-idn_cmd.Tpo -c -o libidn_cmd_la-idn_cmd.lo `test -f 'idn_cmd.c' || echo '$(srcdir)/'`idn_cmd.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libidn_cmd_la-idn_cmd.Tpo $(DEPDIR)/libidn_cmd_la-idn_cmd.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='idn_cmd.c' object='libidn_cmd_la-idn_cmd.lo' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libidn_cmd_la_CFLAGS) $(CFLAGS) -c -o libidn_cmd_la-idn_cmd.lo `test -f 'idn_cmd.c' || echo '$(srcdir)/'`idn_cmd.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_lispDATA: $(dist_lisp_DATA) @$(NORMAL_INSTALL) @list='$(dist_lisp_DATA)'; test -n "$(lispdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(lispdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(lispdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(lispdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(lispdir)" || exit $$?; \ done uninstall-dist_lispDATA: @$(NORMAL_UNINSTALL) @list='$(dist_lisp_DATA)'; test -n "$(lispdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(lispdir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(lispdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-am clean-am: clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_lispDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_lispDATA .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ clean-binPROGRAMS clean-generic clean-libtool \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-binPROGRAMS install-data \ install-data-am install-dist_lispDATA install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \ uninstall-binPROGRAMS uninstall-dist_lispDATA idn.c: $(BUILT_SOURCES) idn_cmd.c idn_cmd.h: idn.ggo Makefile.am gengetopt --unamed-opts --no-handle-version --no-handle-help \ --set-package="idn" \ --input $^ --file-name idn_cmd perl -pi -e 's/\[OPTIONS\]/\[OPTION\]/g' idn_cmd.c perl -pi -e 's/\[FILES\]/\[STRING\]/g' idn_cmd.c # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ������������������������libidn-1.28/m4/�������������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253747�010212� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/gettext.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000035615�12167244626�012066� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# gettext.m4 serial 66 (gettext-0.18.2) dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010. dnl Macro to add for using GNU gettext. dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The dnl default (if it is not specified or empty) is 'no-libtool'. dnl INTLSYMBOL should be 'external' for packages with no intl directory, dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory. dnl If INTLSYMBOL is 'use-libtool', then a libtool library dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static, dnl depending on --{enable,disable}-{shared,static} and on the presence of dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library dnl $(top_builddir)/intl/libintl.a will be created. dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext dnl implementations (in libc or libintl) without the ngettext() function dnl will be ignored. If NEEDSYMBOL is specified and is dnl 'need-formatstring-macros', then GNU gettext implementations that don't dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored. dnl INTLDIR is used to find the intl libraries. If empty, dnl the value '$(top_builddir)/intl/' is used. dnl dnl The result of the configuration is one of three cases: dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled dnl and used. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 2) GNU gettext has been found in the system's C library. dnl Catalog format: GNU --> install in $(datadir) dnl Catalog extension: .mo after installation, .gmo in source tree dnl 3) No internationalization, always use English msgid. dnl Catalog format: none dnl Catalog extension: none dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. dnl The use of .gmo is historical (it was needed to avoid overwriting the dnl GNU format catalogs when building on a platform with an X/Open gettext), dnl but we keep it in order not to force irrelevant filename changes on the dnl maintainers. dnl AC_DEFUN([AM_GNU_GETTEXT], [ dnl Argument checking. ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], , [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT ])])])])]) ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old], [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])]) ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], , [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT ])])])]) define([gt_included_intl], ifelse([$1], [external], ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]), [yes])) define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], [])) gt_NEEDS_INIT AM_GNU_GETTEXT_NEED([$2]) AC_REQUIRE([AM_PO_SUBDIRS])dnl ifelse(gt_included_intl, yes, [ AC_REQUIRE([AM_INTL_SUBDIR])dnl ]) dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Sometimes libintl requires libiconv, so first search for libiconv. dnl Ideally we would do this search only after the dnl if test "$USE_NLS" = "yes"; then dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT dnl the configure script would need to contain the same shell code dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not dnl documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. gt_INTL_MACOSX dnl Set USE_NLS. AC_REQUIRE([AM_NLS]) ifelse(gt_included_intl, yes, [ BUILD_INCLUDED_LIBINTL=no USE_INCLUDED_LIBINTL=no ]) LIBINTL= LTLIBINTL= POSUB= dnl Add a version number to the cache macros. case " $gt_needs " in *" need-formatstring-macros "*) gt_api_version=3 ;; *" need-ngettext "*) gt_api_version=2 ;; *) gt_api_version=1 ;; esac gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" dnl If we use NLS figure out what method if test "$USE_NLS" = "yes"; then gt_use_preinstalled_gnugettext=no ifelse(gt_included_intl, yes, [ AC_MSG_CHECKING([whether included gettext is requested]) AC_ARG_WITH([included-gettext], [ --with-included-gettext use the GNU gettext library included here], nls_cv_force_use_gnu_gettext=$withval, nls_cv_force_use_gnu_gettext=no) AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" if test "$nls_cv_force_use_gnu_gettext" != "yes"; then ]) dnl User does not insist on using GNU NLS library. Figure out what dnl to use. If GNU gettext is available we use this. Else we have dnl to fall back to GNU NLS library. if test $gt_api_version -ge 3; then gt_revision_test_code=' #ifndef __GNU_GETTEXT_SUPPORTED_REVISION #define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) #endif changequote(,)dnl typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; changequote([,])dnl ' else gt_revision_test_code= fi if test $gt_api_version -ge 2; then gt_expression_test_code=' + * ngettext ("", "", 0)' else gt_expression_test_code= fi AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern int *_nl_domain_bindings; ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings ]])], [eval "$gt_func_gnugettext_libc=yes"], [eval "$gt_func_gnugettext_libc=no"])]) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then dnl Sometimes libintl requires libiconv, so first search for libiconv. ifelse(gt_included_intl, yes, , [ AM_ICONV_LINK ]) dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) dnl because that would add "-liconv" to LIBINTL and LTLIBINTL dnl even if libiconv doesn't exist. AC_LIB_LINKFLAGS_BODY([intl]) AC_CACHE_CHECK([for GNU gettext in libintl], [$gt_func_gnugettext_libintl], [gt_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $INCINTL" gt_save_LIBS="$LIBS" LIBS="$LIBS $LIBINTL" dnl Now see whether libintl exists and does not depend on libiconv. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [eval "$gt_func_gnugettext_libintl=yes"], [eval "$gt_func_gnugettext_libintl=no"]) dnl Now see whether libintl exists and depends on libiconv. if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <libintl.h> $gt_revision_test_code extern int _nl_msg_cat_cntr; extern #ifdef __cplusplus "C" #endif const char *_nl_expand_alias (const char *); ]], [[ bindtextdomain ("", ""); return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") ]])], [LIBINTL="$LIBINTL $LIBICONV" LTLIBINTL="$LTLIBINTL $LTLIBICONV" eval "$gt_func_gnugettext_libintl=yes" ]) fi CPPFLAGS="$gt_save_CPPFLAGS" LIBS="$gt_save_LIBS"]) fi dnl If an already present or preinstalled GNU gettext() is found, dnl use it. But if this macro is used in GNU gettext, and GNU dnl gettext is already preinstalled in libintl, we update this dnl libintl. (Cf. the install rule in intl/Makefile.in.) if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ && test "$PACKAGE" != gettext-runtime \ && test "$PACKAGE" != gettext-tools; }; then gt_use_preinstalled_gnugettext=yes else dnl Reset the values set by searching for libintl. LIBINTL= LTLIBINTL= INCINTL= fi ifelse(gt_included_intl, yes, [ if test "$gt_use_preinstalled_gnugettext" != "yes"; then dnl GNU gettext is not found in the C library. dnl Fall back on included GNU gettext library. nls_cv_use_gnu_gettext=yes fi fi if test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions used to generate GNU NLS library. BUILD_INCLUDED_LIBINTL=yes USE_INCLUDED_LIBINTL=yes LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD" LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD" LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` fi CATOBJEXT= if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Mark actions to use GNU gettext tools. CATOBJEXT=.gmo fi ]) if test -n "$INTL_MACOSX_LIBS"; then if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then dnl Some extra flags are needed during linking. LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" fi fi if test "$gt_use_preinstalled_gnugettext" = "yes" \ || test "$nls_cv_use_gnu_gettext" = "yes"; then AC_DEFINE([ENABLE_NLS], [1], [Define to 1 if translation of program messages to the user's native language is requested.]) else USE_NLS=no fi fi AC_MSG_CHECKING([whether to use NLS]) AC_MSG_RESULT([$USE_NLS]) if test "$USE_NLS" = "yes"; then AC_MSG_CHECKING([where the gettext function comes from]) if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then gt_source="external libintl" else gt_source="libc" fi else gt_source="included intl directory" fi AC_MSG_RESULT([$gt_source]) fi if test "$USE_NLS" = "yes"; then if test "$gt_use_preinstalled_gnugettext" = "yes"; then if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then AC_MSG_CHECKING([how to link with libintl]) AC_MSG_RESULT([$LIBINTL]) AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) fi dnl For backward compatibility. Some packages may be using this. AC_DEFINE([HAVE_GETTEXT], [1], [Define if the GNU gettext() function is already present or preinstalled.]) AC_DEFINE([HAVE_DCGETTEXT], [1], [Define if the GNU dcgettext() function is already present or preinstalled.]) fi dnl We need to process the po/ directory. POSUB=po fi ifelse(gt_included_intl, yes, [ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL dnl to 'yes' because some of the testsuite requires it. if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then BUILD_INCLUDED_LIBINTL=yes fi dnl Make all variables we use known to autoconf. AC_SUBST([BUILD_INCLUDED_LIBINTL]) AC_SUBST([USE_INCLUDED_LIBINTL]) AC_SUBST([CATOBJEXT]) dnl For backward compatibility. Some configure.ins may be using this. nls_cv_header_intl= nls_cv_header_libgt= dnl For backward compatibility. Some Makefiles may be using this. DATADIRNAME=share AC_SUBST([DATADIRNAME]) dnl For backward compatibility. Some Makefiles may be using this. INSTOBJEXT=.mo AC_SUBST([INSTOBJEXT]) dnl For backward compatibility. Some Makefiles may be using this. GENCAT=gencat AC_SUBST([GENCAT]) dnl For backward compatibility. Some Makefiles may be using this. INTLOBJS= if test "$USE_INCLUDED_LIBINTL" = yes; then INTLOBJS="\$(GETTOBJS)" fi AC_SUBST([INTLOBJS]) dnl Enable libtool support if the surrounding package wishes it. INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX]) ]) dnl For backward compatibility. Some Makefiles may be using this. INTLLIBS="$LIBINTL" AC_SUBST([INTLLIBS]) dnl Make all documented variables known to autoconf. AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AC_SUBST([POSUB]) ]) dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. m4_define([gt_NEEDS_INIT], [ m4_divert_text([DEFAULTS], [gt_needs=]) m4_define([gt_NEEDS_INIT], []) ]) dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) AC_DEFUN([AM_GNU_GETTEXT_NEED], [ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) ]) dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version]) AC_DEFUN([AM_GNU_GETTEXT_VERSION], []) �������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/progtest.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000006040�12167244627�012240� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# progtest.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1996-2003, 2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1996. AC_PREREQ([2.50]) # Search path for a program which passes the given test. dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) AC_DEFUN([AM_PATH_PROG_WITH_TEST], [ # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi # Find out how to test for executable files. Don't use a zero-byte file, # as systems may use methods other than mode bits to determine executability. cat >conf$$.file <<_ASEOF #! /bin/sh exit 0 _ASEOF chmod +x conf$$.file if test -x conf$$.file >/dev/null 2>&1; then ac_executable_p="test -x" else ac_executable_p="test -f" fi rm -f conf$$.file # Extract the first word of "$2", so it can be a program name with args. set dummy $2; ac_word=[$]2 AC_MSG_CHECKING([for $ac_word]) AC_CACHE_VAL([ac_cv_path_$1], [case "[$]$1" in [[\\/]]* | ?:[[\\/]]*) ac_cv_path_$1="[$]$1" # Let the user override the test with a path. ;; *) ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in ifelse([$5], , $PATH, [$5]); do IFS="$ac_save_IFS" test -z "$ac_dir" && ac_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD if [$3]; then ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" break 2 fi fi done done IFS="$ac_save_IFS" dnl If no 4th arg is given, leave the cache variable unset, dnl so AC_PATH_PROGS will keep looking. ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" ])dnl ;; esac])dnl $1="$ac_cv_path_$1" if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then AC_MSG_RESULT([$][$1]) else AC_MSG_RESULT([no]) fi AC_SUBST([$1])dnl ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/wchar_t.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001462�12167244627�012023� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wchar_t.m4 serial 4 (gettext-0.18.2) dnl Copyright (C) 2002-2003, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <stddef.h> has the 'wchar_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WCHAR_T], [ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include <stddef.h> wchar_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wchar_t=yes], [gt_cv_c_wchar_t=no])]) if test $gt_cv_c_wchar_t = yes; then AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.]) fi ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/update-header-version.m4�������������������������������������������������������������0000644�0000000�0000000�00000001623�12153706572�014563� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# update-header-version.m4 serial 1 dnl Copyright (C) 2008, 2010-2011, 2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # sj_UPDATE_HEADER_VERSION(HEADER-FILE) # ------------- # Update version number in HEADER-FILE. It searches for '_VERSION ".*"' # and replaces the .* part with the $PACKAGE_VERSION. AC_DEFUN([sj_UPDATE_HEADER_VERSION], [ # Update version number in lib/libtasn1.h. if ! sed 's/_VERSION ".*"/_VERSION "'$PACKAGE_VERSION'"/' $1 > fixhdr.tmp; then AC_MSG_ERROR([[*** Failed to update version number in $1...]]) fi if cmp -s $1 fixhdr.tmp 2>/dev/null; then rm -f fixhdr.tmp elif ! mv fixhdr.tmp $1; then AC_MSG_ERROR([[*** Failed to move fixhdr.tmp to $1...]]) fi ]) �������������������������������������������������������������������������������������������������������������libidn-1.28/m4/iconv.m4�����������������������������������������������������������������������������0000644�0000000�0000000�00000021620�12167244626�011507� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# iconv.m4 serial 18 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_LIB_LINKFLAGS_BODY([iconv]) ]) AC_DEFUN([AM_ICONV_LINK], [ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and dnl those with the standalone portable GNU libiconv installed). AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV dnl accordingly. AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) dnl Add $INCICONV to CPPFLAGS before performing the following checks, dnl because if the user has installed libiconv and not disabled its use dnl via --without-libiconv-prefix, he wants to use it. The first dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. am_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ am_cv_func_iconv="no, consider installing GNU libiconv" am_cv_lib_iconv=no AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_func_iconv=yes]) if test "$am_cv_func_iconv" != yes; then am_save_LIBS="$LIBS" LIBS="$LIBS $LIBICONV" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> ]], [[iconv_t cd = iconv_open("",""); iconv(cd,NULL,NULL,NULL,NULL); iconv_close(cd);]])], [am_cv_lib_iconv=yes] [am_cv_func_iconv=yes]) LIBS="$am_save_LIBS" fi ]) if test "$am_cv_func_iconv" = yes; then AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, dnl Solaris 10. am_save_LIBS="$LIBS" if test $am_cv_lib_iconv = yes; then LIBS="$LIBS $LIBICONV" fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <iconv.h> #include <string.h> int main () { int result = 0; /* Test against AIX 5.1 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); if (cd_utf8_to_88591 != (iconv_t)(-1)) { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 1; iconv_close (cd_utf8_to_88591); } } /* Test against Solaris 10 bug: Failures are not distinguishable from successful returns. */ { iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); if (cd_ascii_to_88591 != (iconv_t)(-1)) { static const char input[] = "\263"; char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_ascii_to_88591, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == 0) result |= 2; iconv_close (cd_ascii_to_88591); } } /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ { iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) result |= 4; iconv_close (cd_88591_to_utf8); } } #if 0 /* This bug could be worked around by the caller. */ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ { iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); if (cd_88591_to_utf8 != (iconv_t)(-1)) { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if ((int)res > 0) result |= 8; iconv_close (cd_88591_to_utf8); } } #endif /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is provided. */ if (/* Try standardized names. */ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) /* Try IRIX, OSF/1 names. */ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) /* Try AIX names. */ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) /* Try HP-UX names. */ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) result |= 16; return result; }]])], [am_cv_func_iconv_works=yes], [am_cv_func_iconv_works=no], [ changequote(,)dnl case "$host_os" in aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; *) am_cv_func_iconv_works="guessing yes" ;; esac changequote([,])dnl ]) LIBS="$am_save_LIBS" ]) case "$am_cv_func_iconv_works" in *no) am_func_iconv=no am_cv_lib_iconv=no ;; *) am_func_iconv=yes ;; esac else am_func_iconv=no am_cv_lib_iconv=no fi if test "$am_func_iconv" = yes; then AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function and it works.]) fi if test "$am_cv_lib_iconv" = yes; then AC_MSG_CHECKING([how to link with libiconv]) AC_MSG_RESULT([$LIBICONV]) else dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV dnl either. CPPFLAGS="$am_save_CPPFLAGS" LIBICONV= LTLIBICONV= fi AC_SUBST([LIBICONV]) AC_SUBST([LTLIBICONV]) ]) dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to dnl avoid warnings like dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required". dnl This is tricky because of the way 'aclocal' is implemented: dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN. dnl Otherwise aclocal's initial scan pass would miss the macro definition. dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions. dnl Otherwise aclocal would emit many "Use of uninitialized value $1" dnl warnings. m4_define([gl_iconv_AC_DEFUN], m4_version_prereq([2.64], [[AC_DEFUN_ONCE( [$1], [$2])]], [m4_ifdef([gl_00GNULIB], [[AC_DEFUN_ONCE( [$1], [$2])]], [[AC_DEFUN( [$1], [$2])]])])) gl_iconv_AC_DEFUN([AM_ICONV], [ AM_ICONV_LINK if test "$am_cv_func_iconv" = yes; then AC_MSG_CHECKING([for iconv declaration]) AC_CACHE_VAL([am_cv_proto_iconv], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <stdlib.h> #include <iconv.h> extern #ifdef __cplusplus "C" #endif #if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); #else size_t iconv(); #endif ]], [[]])], [am_cv_proto_iconv_arg1=""], [am_cv_proto_iconv_arg1="const"]) am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"]) am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'` AC_MSG_RESULT([ $am_cv_proto_iconv]) AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1], [Define as const if the declaration of iconv() needs const.]) dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>. m4_ifdef([gl_ICONV_H_DEFAULTS], [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test -n "$am_cv_proto_iconv_arg1"; then ICONV_CONST="const" fi ]) fi ]) ����������������������������������������������������������������������������������������������������������������libidn-1.28/m4/lib-ld.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000007143�12167244627�011541� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-ld.m4 serial 6 dnl Copyright (C) 1996-2003, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Subroutines of libtool.m4, dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid dnl collision with libtool.m4. dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) acl_cv_prog_gnu_ld=yes ;; *) acl_cv_prog_gnu_ld=no ;; esac]) with_gnu_ld=$acl_cv_prog_gnu_ld ]) dnl From libtool-2.4. Sets the variable LD. AC_DEFUN([AC_LIB_PROG_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld [default=no]])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl # Prepare PATH_SEPARATOR. # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which # contains only /bin. Note that ksh looks also at the FPATH variable, # so we have to set that as well for the test. PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ || PATH_SEPARATOR=';' } fi ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'` while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL([acl_cv_path_LD], [if test -z "$LD"; then acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$acl_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then acl_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$acl_save_ifs" else acl_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$acl_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT([$LD]) else AC_MSG_RESULT([no]) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) AC_LIB_PROG_LD_GNU ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/lock.m4������������������������������������������������������������������������������0000644�0000000�0000000�00000002667�12167244627�011334� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lock.m4 serial 13 (gettext-0.18.2) dnl Copyright (C) 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([gl_LOCK], [ AC_REQUIRE([gl_THREADLIB]) if test "$gl_threads_api" = posix; then # OSF/1 4.0 and Mac OS X 10.1 lack the pthread_rwlock_t type and the # pthread_rwlock_* functions. AC_CHECK_TYPE([pthread_rwlock_t], [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1], [Define if the POSIX multithreading library has read/write locks.])], [], [#include <pthread.h>]) # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro. AC_COMPILE_IFELSE([ AC_LANG_PROGRAM( [[#include <pthread.h>]], [[ #if __FreeBSD__ == 4 error "No, in FreeBSD 4.0 recursive mutexes actually don't work." #elif (defined __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ \ && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070) error "No, in Mac OS X < 10.7 recursive mutexes actually don't work." #else int x = (int)PTHREAD_MUTEX_RECURSIVE; return !x; #endif ]])], [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1], [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])]) fi gl_PREREQ_LOCK ]) # Prerequisites of lib/glthread/lock.c. AC_DEFUN([gl_PREREQ_LOCK], [:]) �������������������������������������������������������������������������libidn-1.28/m4/ltoptions.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000030073�12167244642�012424� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, # Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 7 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option `$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl `shared' nor `disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the `shared' and # `disable-shared' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the `static' and # `disable-static' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the `fast-install' # and `disable-fast-install' LT_INIT options. # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS="$lt_save_ifs" ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the `pic-only' and `no-pic' # LT_INIT options. # MODE is either `yes' or `no'. If omitted, it defaults to `both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for lt_pkg in $withval; do IFS="$lt_save_ifs" if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS="$lt_save_ifs" ;; esac], [pic_mode=default]) test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the `pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/gtk-doc.m4���������������������������������������������������������������������������0000664�0000000�0000000�00000004241�11746453142�011720� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl -*- mode: autoconf -*- # serial 1 dnl Usage: dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) AC_DEFUN([GTK_DOC_CHECK], [ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first dnl check for tools we added during development AC_PATH_PROG([GTKDOC_CHECK],[gtkdoc-check]) AC_PATH_PROGS([GTKDOC_REBASE],[gtkdoc-rebase],[true]) AC_PATH_PROG([GTKDOC_MKPDF],[gtkdoc-mkpdf]) dnl for overriding the documentation installation directory AC_ARG_WITH([html-dir], AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, [with_html_dir='${datadir}/gtk-doc/html']) HTML_DIR="$with_html_dir" AC_SUBST([HTML_DIR]) dnl enable/disable documentation building AC_ARG_ENABLE([gtk-doc], AS_HELP_STRING([--enable-gtk-doc], [use gtk-doc to build documentation [[default=no]]]),, [enable_gtk_doc=no]) if test x$enable_gtk_doc = xyes; then ifelse([$1],[], [PKG_CHECK_EXISTS([gtk-doc],, AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], [PKG_CHECK_EXISTS([gtk-doc >= $1],, AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build $PACKAGE_NAME]))]) fi AC_MSG_CHECKING([whether to build gtk-doc documentation]) AC_MSG_RESULT($enable_gtk_doc) dnl enable/disable output formats AC_ARG_ENABLE([gtk-doc-html], AS_HELP_STRING([--enable-gtk-doc-html], [build documentation in html format [[default=yes]]]),, [enable_gtk_doc_html=yes]) AC_ARG_ENABLE([gtk-doc-pdf], AS_HELP_STRING([--enable-gtk-doc-pdf], [build documentation in pdf format [[default=no]]]),, [enable_gtk_doc_pdf=no]) if test -z "$GTKDOC_MKPDF"; then enable_gtk_doc_pdf=no fi AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_HTML], [test x$enable_gtk_doc_html = xyes]) AM_CONDITIONAL([GTK_DOC_BUILD_PDF], [test x$enable_gtk_doc_pdf = xyes]) AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) AM_CONDITIONAL([GTK_DOC_USE_REBASE], [test -n "$GTKDOC_REBASE"]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/fcntl-o.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000011074�12167244626�011735� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# fcntl-o.m4 serial 4 dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_FUNCS_ONCE([symlink]) AC_CACHE_CHECK([for working fcntl.h], [gl_cv_header_working_fcntl_h], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include <sys/types.h> #include <sys/stat.h> #if HAVE_UNISTD_H # include <unistd.h> #else /* on Windows with MSVC */ # include <io.h> # include <stdlib.h> # defined sleep(n) _sleep ((n) * 1000) #endif #include <fcntl.h> #ifndef O_NOATIME #define O_NOATIME 0 #endif #ifndef O_NOFOLLOW #define O_NOFOLLOW 0 #endif static int const constants[] = { O_CREAT, O_EXCL, O_NOCTTY, O_TRUNC, O_APPEND, O_NONBLOCK, O_SYNC, O_ACCMODE, O_RDONLY, O_RDWR, O_WRONLY }; ]], [[ int result = !constants; #if HAVE_SYMLINK { static char const sym[] = "conftest.sym"; if (symlink ("/dev/null", sym) != 0) result |= 2; else { int fd = open (sym, O_WRONLY | O_NOFOLLOW | O_CREAT, 0); if (fd >= 0) { close (fd); result |= 4; } } if (unlink (sym) != 0 || symlink (".", sym) != 0) result |= 2; else { int fd = open (sym, O_RDONLY | O_NOFOLLOW); if (fd >= 0) { close (fd); result |= 4; } } unlink (sym); } #endif { static char const file[] = "confdefs.h"; int fd = open (file, O_RDONLY | O_NOATIME); if (fd < 0) result |= 8; else { struct stat st0; if (fstat (fd, &st0) != 0) result |= 16; else { char c; sleep (1); if (read (fd, &c, 1) != 1) result |= 24; else { if (close (fd) != 0) result |= 32; else { struct stat st1; if (stat (file, &st1) != 0) result |= 40; else if (st0.st_atime != st1.st_atime) result |= 64; } } } } } return result;]])], [gl_cv_header_working_fcntl_h=yes], [case $? in #( 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #( 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #( 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #( *) gl_cv_header_working_fcntl_h='no';; esac], [gl_cv_header_working_fcntl_h=cross-compiling])]) case $gl_cv_header_working_fcntl_h in #( *O_NOATIME* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOATIME], [$ac_val], [Define to 1 if O_NOATIME works.]) case $gl_cv_header_working_fcntl_h in #( *O_NOFOLLOW* | no | cross-compiling) ac_val=0;; #( *) ac_val=1;; esac AC_DEFINE_UNQUOTED([HAVE_WORKING_O_NOFOLLOW], [$ac_val], [Define to 1 if O_NOFOLLOW works.]) ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/pkg.m4�������������������������������������������������������������������������������0000664�0000000�0000000�00000012145�11746453142�011153� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- # # Copyright © 2004 Scott James Remnant <scott@netsplit.com>. # # 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 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # PKG_PROG_PKG_CONFIG([MIN-VERSION]) # ---------------------------------- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) fi if test -n "$PKG_CONFIG"; then _pkg_min_version=m4_default([$1], [0.9.0]) AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) PKG_CONFIG="" fi fi[]dnl ])# PKG_PROG_PKG_CONFIG # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Check to see whether a particular set of modules exists. Similar # to PKG_CHECK_MODULES(), but does not set variables or print errors. # # # Similar to PKG_CHECK_MODULES, make sure that the first instance of # this or PKG_CHECK_MODULES is called, or make sure to call # PKG_CHECK_EXISTS manually # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl if test -n "$PKG_CONFIG" && \ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then m4_ifval([$2], [$2], [:]) m4_ifvaln([$3], [else $3])dnl fi]) # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test -n "$PKG_CONFIG"; then if test -n "$$1"; then pkg_cv_[]$1="$$1" else PKG_CHECK_EXISTS([$3], [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], [pkg_failed=yes]) fi else pkg_failed=untried fi[]dnl ])# _PKG_CONFIG # _PKG_SHORT_ERRORS_SUPPORTED # ----------------------------- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then _pkg_short_errors_supported=yes else _pkg_short_errors_supported=no fi[]dnl ])# _PKG_SHORT_ERRORS_SUPPORTED # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # # # Note that if there is a possibility the first call to # PKG_CHECK_MODULES might not happen, you should be sure to include an # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac # # # -------------------------------------------------------------- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl pkg_failed=no AC_MSG_CHECKING([for $1]) _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) _PKG_CONFIG([$1][_LIBS], [libs], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test $pkg_failed = yes; then _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` fi # Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: $$1_PKG_ERRORS Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. _PKG_TEXT ])], [AC_MSG_RESULT([no]) $4]) elif test $pkg_failed = untried; then ifelse([$4], , [AC_MSG_FAILURE(dnl [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. _PKG_TEXT To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], [$4]) else $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) ifelse([$3], , :, [$3]) fi[]dnl ])# PKG_CHECK_MODULES ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/lib-link.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000100443�12167244627�012074� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-link.m4 serial 26 (gettext-0.18.2) dnl Copyright (C) 2001-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.54]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and dnl augments the CPPFLAGS variable. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [ AC_LIB_LINKFLAGS_BODY([$1], [$2]) ac_cv_lib[]Name[]_libs="$LIB[]NAME" ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME" ac_cv_lib[]Name[]_cppflags="$INC[]NAME" ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX" ]) LIB[]NAME="$ac_cv_lib[]Name[]_libs" LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs" INC[]NAME="$ac_cv_lib[]Name[]_cppflags" LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the dnl results of this search when this library appears as a dependency. HAVE_LIB[]NAME=yes popdef([NAME]) popdef([Name]) ]) dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode, [missing-message]) dnl searches for libname and the libraries corresponding to explicit and dnl implicit dependencies, together with the specified include files and dnl the ability to compile and link the specified testcode. The missing-message dnl defaults to 'no' and may contain additional hints for the user. dnl If found, it sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} dnl and LTLIB${NAME} variables and augments the CPPFLAGS variable, and dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty. dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) AC_REQUIRE([AC_LIB_RPATH]) pushdef([Name],[m4_translit([$1],[./+-], [____])]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME dnl accordingly. AC_LIB_LINKFLAGS_BODY([$1], [$2]) dnl Add $INC[]NAME to CPPFLAGS before performing the following checks, dnl because if the user has installed lib[]Name and not disabled its use dnl via --without-lib[]Name-prefix, he wants to use it. ac_save_CPPFLAGS="$CPPFLAGS" AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME) AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [ ac_save_LIBS="$LIBS" dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS, dnl because these -l options might require -L options that are present in dnl LIBS. -l options benefit only from the -L options listed before it. dnl Otherwise, add it to the front of LIBS, because it may be a static dnl library that depends on another static library that is present in LIBS. dnl Static libraries benefit only from the static libraries listed after dnl it. case " $LIB[]NAME" in *" -l"*) LIBS="$LIBS $LIB[]NAME" ;; *) LIBS="$LIB[]NAME $LIBS" ;; esac AC_LINK_IFELSE( [AC_LANG_PROGRAM([[$3]], [[$4]])], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name='m4_if([$5], [], [no], [[$5]])']) LIBS="$ac_save_LIBS" ]) if test "$ac_cv_lib[]Name" = yes; then HAVE_LIB[]NAME=yes AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the lib][$1 library.]) AC_MSG_CHECKING([how to link with lib[]$1]) AC_MSG_RESULT([$LIB[]NAME]) else HAVE_LIB[]NAME=no dnl If $LIB[]NAME didn't lead to a usable library, we don't need dnl $INC[]NAME either. CPPFLAGS="$ac_save_CPPFLAGS" LIB[]NAME= LTLIB[]NAME= LIB[]NAME[]_PREFIX= fi AC_SUBST([HAVE_LIB]NAME) AC_SUBST([LIB]NAME) AC_SUBST([LTLIB]NAME) AC_SUBST([LIB]NAME[_PREFIX]) popdef([NAME]) popdef([Name]) ]) dnl Determine the platform dependent parameters needed to use rpath: dnl acl_libext, dnl acl_shlibext, dnl acl_libname_spec, dnl acl_library_names_spec, dnl acl_hardcode_libdir_flag_spec, dnl acl_hardcode_libdir_separator, dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ dnl Tell automake >= 1.10 to complain if config.rpath is missing. m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh . ./conftest.sh rm -f ./conftest.sh acl_cv_rpath=done ]) wl="$acl_cv_wl" acl_libext="$acl_cv_libext" acl_shlibext="$acl_cv_shlibext" acl_libname_spec="$acl_cv_libname_spec" acl_library_names_spec="$acl_cv_library_names_spec" acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" acl_hardcode_direct="$acl_cv_hardcode_direct" acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" dnl Determine whether the user wants rpath handling at all. AC_ARG_ENABLE([rpath], [ --disable-rpath do not hardcode runtime library paths], :, enable_rpath=yes) ]) dnl AC_LIB_FROMPACKAGE(name, package) dnl declares that libname comes from the given package. The configure file dnl will then not have a --with-libname-prefix option but a dnl --with-package-prefix option. Several libraries can come from the same dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar dnl macro call that searches for libname. AC_DEFUN([AC_LIB_FROMPACKAGE], [ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_frompackage_]NAME, [$2]) popdef([NAME]) pushdef([PACK],[$2]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) define([acl_libsinpackage_]PACKUP, m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1]) popdef([PACKUP]) popdef([PACK]) ]) dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) dnl Autoconf >= 2.61 supports dots in --with options. pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_ARG_WITH(P_A_C_K[-prefix], [[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ && ! test -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi fi ]) dnl Search the library and its dependencies in $additional_libdir and dnl $LDFLAGS. Using breadth-first-seach. LIB[]NAME= LTLIB[]NAME= INC[]NAME= LIB[]NAME[]_PREFIX= dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been dnl computed. So it has to be reset here. HAVE_LIB[]NAME= rpathdirs= ltrpathdirs= names_already_handled= names_next_round='$1 $2' while test -n "$names_next_round"; do names_this_round="$names_next_round" names_next_round= for name in $names_this_round; do already_handled= for n in $names_already_handled; do if test "$n" = "$name"; then already_handled=yes break fi done if test -z "$already_handled"; then names_already_handled="$names_already_handled $name" dnl See if it was already located by an earlier AC_LIB_LINKFLAGS dnl or AC_LIB_HAVE_LINKFLAGS call. uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` eval value=\"\$HAVE_LIB$uppername\" if test -n "$value"; then if test "$value" = yes; then eval value=\"\$LIB$uppername\" test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" eval value=\"\$LTLIB$uppername\" test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" else dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined dnl that this library doesn't exist. So just drop it. : fi else dnl Search the library lib$name in $additional_libdir and $LDFLAGS dnl and the already constructed $LIBNAME/$LTLIBNAME. found_dir= found_la= found_so= found_a= eval libname=\"$acl_libname_spec\" # typically: libname=lib$name if test -n "$acl_shlibext"; then shrext=".$acl_shlibext" # typically: shrext=.so else shrext= fi if test $use_additional = yes; then dir="$additional_libdir" dnl The same code as in the loop below: dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi fi if test "X$found_dir" = "X"; then for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) case "$x" in -L*) dir=`echo "X$x" | sed -e 's/^X-L//'` dnl First look for a shared library. if test -n "$acl_shlibext"; then if test -f "$dir/$libname$shrext"; then found_dir="$dir" found_so="$dir/$libname$shrext" else if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then ver=`(cd "$dir" && \ for f in "$libname$shrext".*; do echo "$f"; done \ | sed -e "s,^$libname$shrext\\\\.,," \ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ | sed 1q ) 2>/dev/null` if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then found_dir="$dir" found_so="$dir/$libname$shrext.$ver" fi else eval library_names=\"$acl_library_names_spec\" for f in $library_names; do if test -f "$dir/$f"; then found_dir="$dir" found_so="$dir/$f" break fi done fi fi fi dnl Then look for a static library. if test "X$found_dir" = "X"; then if test -f "$dir/$libname.$acl_libext"; then found_dir="$dir" found_a="$dir/$libname.$acl_libext" fi fi if test "X$found_dir" != "X"; then if test -f "$dir/$libname.la"; then found_la="$dir/$libname.la" fi fi ;; esac if test "X$found_dir" != "X"; then break fi done fi if test "X$found_dir" != "X"; then dnl Found the library. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" if test "X$found_so" != "X"; then dnl Linking with a shared library. We attempt to hardcode its dnl directory into the executable's runpath, unless it's the dnl standard /usr/lib. if test "$enable_rpath" = no \ || test "X$found_dir" = "X/usr/$acl_libdirstem" \ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then dnl No hardcoding is needed. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl Use an explicit option to hardcode DIR into the resulting dnl binary. dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $found_dir" fi dnl The hardcoding into $LIBNAME is system dependent. if test "$acl_hardcode_direct" = yes; then dnl Using DIR/libNAME.so during linking hardcodes DIR into the dnl resulting binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode DIR into the resulting dnl binary. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $found_dir" fi else dnl Rely on "-L$found_dir". dnl But don't add it if it's already contained in the LDFLAGS dnl or the already constructed $LIBNAME haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$found_dir"; then haveit=yes break fi done if test -z "$haveit"; then LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" fi if test "$acl_hardcode_minus_L" != no; then dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" else dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH dnl here, because this doesn't fit in flags passed to the dnl compiler. So give up. No hardcoding. This affects only dnl very old systems. dnl FIXME: Not sure whether we should use dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" dnl here. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" fi fi fi fi else if test "X$found_a" != "X"; then dnl Linking with a static library. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" else dnl We shouldn't come here, but anyway it's good to have a dnl fallback. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" fi fi dnl Assume the include files are nearby. additional_includedir= case "$found_dir" in */$acl_libdirstem | */$acl_libdirstem/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; */$acl_libdirstem2 | */$acl_libdirstem2/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` if test "$name" = '$1'; then LIB[]NAME[]_PREFIX="$basedir" fi additional_includedir="$basedir/include" ;; esac if test "X$additional_includedir" != "X"; then dnl Potentially add $additional_includedir to $INCNAME. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's /usr/local/include and we are using GCC on Linux, dnl 3. if it's already present in $CPPFLAGS or the already dnl constructed $INCNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then for x in $CPPFLAGS $INC[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $INCNAME. INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" fi fi fi fi fi dnl Look for dependencies. if test -n "$found_la"; then dnl Read the .la file. It defines the variables dnl dlname, library_names, old_library, dependency_libs, current, dnl age, revision, installed, dlopen, dlpreopen, libdir. save_libdir="$libdir" case "$found_la" in */* | *\\*) . "$found_la" ;; *) . "./$found_la" ;; esac libdir="$save_libdir" dnl We use only dependency_libs. for dep in $dependency_libs; do case "$dep" in -L*) additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's /usr/local/lib and we are using GCC on Linux, dnl 3. if it's already present in $LDFLAGS or the already dnl constructed $LIBNAME, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then haveit= if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then haveit= for x in $LDFLAGS $LIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LIBNAME. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir" fi fi haveit= for x in $LDFLAGS $LTLIB[]NAME; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LTLIBNAME. LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir" fi fi fi fi ;; -R*) dir=`echo "X$dep" | sed -e 's/^X-R//'` if test "$enable_rpath" != no; then dnl Potentially add DIR to rpathdirs. dnl The rpathdirs will be appended to $LIBNAME at the end. haveit= for x in $rpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then rpathdirs="$rpathdirs $dir" fi dnl Potentially add DIR to ltrpathdirs. dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. haveit= for x in $ltrpathdirs; do if test "X$x" = "X$dir"; then haveit=yes break fi done if test -z "$haveit"; then ltrpathdirs="$ltrpathdirs $dir" fi fi ;; -l*) dnl Handle this in the next round. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` ;; *.la) dnl Handle this in the next round. Throw away the .la's dnl directory; it is already contained in a preceding -L dnl option. names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` ;; *) dnl Most likely an immediate library name. LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" ;; esac done fi else dnl Didn't find the library; assume it is in the system directories dnl known to the linker and runtime loader. (All the system dnl directories known to the linker should also be known to the dnl runtime loader, otherwise the system is severely misconfigured.) LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" fi fi fi done done if test "X$rpathdirs" != "X"; then if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user must dnl pass all path elements in one option. We can arrange that for a dnl single library, but not when more than one $LIBNAMEs are used. alldirs= for found_dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" done dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" else dnl The -rpath options are cumulative. for found_dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$found_dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" done fi fi if test "X$ltrpathdirs" != "X"; then dnl When using libtool, the option that works for both libraries and dnl executables is -R. The -R options are cumulative. for found_dir in $ltrpathdirs; do LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) popdef([NAME]) ]) dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, dnl unless already present in VAR. dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes dnl contains two or three consecutive elements that belong together. AC_DEFUN([AC_LIB_APPENDTOVAR], [ for element in [$2]; do haveit= for x in $[$1]; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X$element"; then haveit=yes break fi done if test -z "$haveit"; then [$1]="${[$1]}${[$1]:+ }$element" fi done ]) dnl For those cases where a variable contains several -L and -l options dnl referring to unknown libraries and directories, this macro determines the dnl necessary additional linker options for the runtime path. dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) dnl sets LDADDVAR to linker options needed together with LIBSVALUE. dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, dnl otherwise linking without libtool is assumed. AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [ AC_REQUIRE([AC_LIB_RPATH]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) $1= if test "$enable_rpath" != no; then if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then dnl Use an explicit option to hardcode directories into the resulting dnl binary. rpathdirs= next= for opt in $2; do if test -n "$next"; then dir="$next" dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= else case $opt in -L) next=yes ;; -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'` dnl No need to hardcode the standard /usr/lib. if test "X$dir" != "X/usr/$acl_libdirstem" \ && test "X$dir" != "X/usr/$acl_libdirstem2"; then rpathdirs="$rpathdirs $dir" fi next= ;; *) next= ;; esac fi done if test "X$rpathdirs" != "X"; then if test -n ""$3""; then dnl libtool is used for linking. Use -R options. for dir in $rpathdirs; do $1="${$1}${$1:+ }-R$dir" done else dnl The linker is used for linking directly. if test -n "$acl_hardcode_libdir_separator"; then dnl Weird platform: only the last -rpath option counts, the user dnl must pass all path elements in one option. alldirs= for dir in $rpathdirs; do alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" done acl_save_libdir="$libdir" libdir="$alldirs" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="$flag" else dnl The -rpath options are cumulative. for dir in $rpathdirs; do acl_save_libdir="$libdir" libdir="$dir" eval flag=\"$acl_hardcode_libdir_flag_spec\" libdir="$acl_save_libdir" $1="${$1}${$1:+ }$flag" done fi fi fi fi fi AC_SUBST([$1]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/visibility.m4������������������������������������������������������������������������0000644�0000000�0000000�00000006427�12167244627�012571� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# visibility.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2005, 2008, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Tests whether the compiler supports the command-line option dnl -fvisibility=hidden and the function and variable attributes dnl __attribute__((__visibility__("hidden"))) and dnl __attribute__((__visibility__("default"))). dnl Does *not* test for __visibility__("protected") - which has tricky dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on dnl Mac OS X. dnl Does *not* test for __visibility__("internal") - which has processor dnl dependent semantics. dnl Does *not* test for #pragma GCC visibility push(hidden) - which is dnl "really only recommended for legacy code". dnl Set the variable CFLAG_VISIBILITY. dnl Defines and sets the variable HAVE_VISIBILITY. AC_DEFUN([gl_VISIBILITY], [ AC_REQUIRE([AC_PROG_CC]) CFLAG_VISIBILITY= HAVE_VISIBILITY=0 if test -n "$GCC"; then dnl First, check whether -Werror can be added to the command line, or dnl whether it leads to an error because of some other option that the dnl user has put into $CC $CFLAGS $CPPFLAGS. AC_MSG_CHECKING([whether the -Werror option is usable]) AC_CACHE_VAL([gl_cv_cc_vis_werror], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_vis_werror=yes], [gl_cv_cc_vis_werror=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_vis_werror]) dnl Now check whether visibility declarations are supported. AC_MSG_CHECKING([for simple visibility declarations]) AC_CACHE_VAL([gl_cv_cc_visibility], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fvisibility=hidden" dnl We use the option -Werror and a function dummyfunc, because on some dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning dnl "visibility attribute not supported in this configuration; ignored" dnl at the first function definition in every compilation unit, and we dnl don't want to use the option in this case. if test $gl_cv_cc_vis_werror = yes; then CFLAGS="$CFLAGS -Werror" fi AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[extern __attribute__((__visibility__("hidden"))) int hiddenvar; extern __attribute__((__visibility__("default"))) int exportedvar; extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void); extern __attribute__((__visibility__("default"))) int exportedfunc (void); void dummyfunc (void) {} ]], [[]])], [gl_cv_cc_visibility=yes], [gl_cv_cc_visibility=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_visibility]) if test $gl_cv_cc_visibility = yes; then CFLAG_VISIBILITY="-fvisibility=hidden" HAVE_VISIBILITY=1 fi fi AC_SUBST([CFLAG_VISIBILITY]) AC_SUBST([HAVE_VISIBILITY]) AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY], [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.]) ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/lt~obsolete.m4�����������������������������������������������������������������������0000644�0000000�0000000�00000013756�12167244643�012755� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) ������������������libidn-1.28/m4/lcmessage.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000002533�12167244627�012337� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lcmessage.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1995-2002, 2004-2005, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995. # Check whether LC_MESSAGES is available in <locale.h>. AC_DEFUN([gt_LC_MESSAGES], [ AC_CACHE_CHECK([for LC_MESSAGES], [gt_cv_val_LC_MESSAGES], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <locale.h>]], [[return LC_MESSAGES]])], [gt_cv_val_LC_MESSAGES=yes], [gt_cv_val_LC_MESSAGES=no])]) if test $gt_cv_val_LC_MESSAGES = yes; then AC_DEFINE([HAVE_LC_MESSAGES], [1], [Define if your <locale.h> file defines LC_MESSAGES.]) fi ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/ltsugar.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000010424�12167244642�012050� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59 which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/intlmacosx.m4������������������������������������������������������������������������0000644�0000000�0000000�00000004753�12167244627�012563� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# intlmacosx.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2004-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Checks for special options needed on Mac OS X. dnl Defines INTL_MACOSX_LIBS. AC_DEFUN([gt_INTL_MACOSX], [ dnl Check for API introduced in Mac OS X 10.2. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <CoreFoundation/CFPreferences.h>]], [[CFPreferencesCopyAppValue(NULL, NULL)]])], [gt_cv_func_CFPreferencesCopyAppValue=yes], [gt_cv_func_CFPreferencesCopyAppValue=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi dnl Check for API introduced in Mac OS X 10.3. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <CoreFoundation/CFLocale.h>]], [[CFLocaleCopyCurrent();]])], [gt_cv_func_CFLocaleCopyCurrent=yes], [gt_cv_func_CFLocaleCopyCurrent=no]) LIBS="$gt_save_LIBS"]) if test $gt_cv_func_CFLocaleCopyCurrent = yes; then AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi INTL_MACOSX_LIBS= if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) ]) ���������������������libidn-1.28/m4/nls.m4�������������������������������������������������������������������������������0000644�0000000�0000000�00000002315�12167244627�011166� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# nls.m4 serial 5 (gettext-0.18) dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. AC_PREREQ([2.50]) AC_DEFUN([AM_NLS], [ AC_MSG_CHECKING([whether NLS is requested]) dnl Default is enabled NLS AC_ARG_ENABLE([nls], [ --disable-nls do not use Native Language Support], USE_NLS=$enableval, USE_NLS=yes) AC_MSG_RESULT([$USE_NLS]) AC_SUBST([USE_NLS]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/ac_prog_jar.m4�����������������������������������������������������������������������0000664�0000000�0000000�00000000676�11746453142�012646� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Available from the GNU Autoconf Macro Archive at: dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_prog_jar.html dnl AC_DEFUN([AC_PROG_JAR],[ AC_REQUIRE([AC_EXEEXT])dnl if test "x$JAVAPREFIX" = x; then test "x$JAR" = x && AC_CHECK_PROGS(JAR, jar$EXEEXT) else test "x$JAR" = x && AC_CHECK_PROGS(JAR, jar, $JAVAPREFIX) fi test "x$JAR" = x && AC_MSG_ERROR([no acceptable jar program found in \$PATH]) AC_PROVIDE([$0])dnl ]) ������������������������������������������������������������������libidn-1.28/m4/longlong.m4��������������������������������������������������������������������������0000644�0000000�0000000�00000011203�12167244627�012205� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# longlong.m4 serial 17 dnl Copyright (C) 1999-2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. # Define HAVE_LONG_LONG_INT if 'long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be # defined. In this case you can treat 'long long int' like 'long int'. AC_DEFUN([AC_TYPE_LONG_LONG_INT], [ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int], [ac_cv_type_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int if test $ac_cv_type_long_long_int = yes; then dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004. dnl If cross compiling, assume the bug is not important, since dnl nobody cross compiles for this platform as far as we know. AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[@%:@include <limits.h> @%:@ifndef LLONG_MAX @%:@ define HALF \ (1LL << (sizeof (long long int) * CHAR_BIT - 2)) @%:@ define LLONG_MAX (HALF - 1 + HALF) @%:@endif]], [[long long int n = 1; int i; for (i = 0; ; i++) { long long int m = n << i; if (m >> i != n) return 1; if (LLONG_MAX / 2 < m) break; } return 0;]])], [], [ac_cv_type_long_long_int=no], [:]) fi fi]) if test $ac_cv_type_long_long_int = yes; then AC_DEFINE([HAVE_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'long long int'.]) fi ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. # This fixes a bug in Autoconf 2.61, and can be faster # than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT # will not be defined. In this case you can treat 'unsigned long long int' # like 'unsigned long int'. AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [ AC_CACHE_CHECK([for unsigned long long int], [ac_cv_type_unsigned_long_long_int], [ac_cv_type_unsigned_long_long_int=yes if test "x${ac_cv_prog_cc_c99-no}" = xno; then AC_LINK_IFELSE( [_AC_TYPE_LONG_LONG_SNIPPET], [], [ac_cv_type_unsigned_long_long_int=no]) fi]) if test $ac_cv_type_unsigned_long_long_int = yes; then AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1], [Define to 1 if the system has the type 'unsigned long long int'.]) fi ]) # Expands to a C program that can be used to test for simultaneous support # of 'long long' and 'unsigned long long'. We don't want to say that # 'long long' is available if 'unsigned long long' is not, or vice versa, # because too many programs rely on the symmetry between signed and unsigned # integer types (excluding 'bool'). AC_DEFUN([_AC_TYPE_LONG_LONG_SNIPPET], [ AC_LANG_PROGRAM( [[/* For now, do not test the preprocessor; as of 2007 there are too many implementations with broken preprocessors. Perhaps this can be revisited in 2012. In the meantime, code should not expect #if to work with literals wider than 32 bits. */ /* Test literals. */ long long int ll = 9223372036854775807ll; long long int nll = -9223372036854775807LL; unsigned long long int ull = 18446744073709551615ULL; /* Test constant expressions. */ typedef int a[((-9223372036854775807LL < 0 && 0 < 9223372036854775807ll) ? 1 : -1)]; typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1 ? 1 : -1)]; int i = 63;]], [[/* Test availability of runtime routines for shift and division. */ long long int llmax = 9223372036854775807ll; unsigned long long int ullmax = 18446744073709551615ull; return ((ll << 63) | (ll >> 63) | (ll < i) | (ll > i) | (llmax / ll) | (llmax % ll) | (ull << 63) | (ull >> 63) | (ull << i) | (ull >> i) | (ullmax / ull) | (ullmax % ull));]]) ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/ltversion.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000001262�12167244643�012415� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 3337 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.2]) m4_define([LT_PACKAGE_REVISION], [1.3337]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' macro_revision='1.3337' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/codeset.m4���������������������������������������������������������������������������0000644�0000000�0000000�00000001500�12167244626�012012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# codeset.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2000-2002, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_DEFUN([AM_LANGINFO_CODESET], [ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <langinfo.h>]], [[char* cs = nl_langinfo(CODESET); return !cs;]])], [am_cv_langinfo_codeset=yes], [am_cv_langinfo_codeset=no]) ]) if test $am_cv_langinfo_codeset = yes; then AC_DEFINE([HAVE_LANGINFO_CODESET], [1], [Define if you have <langinfo.h> and nl_langinfo(CODESET).]) fi ]) ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/lib-prefix.m4������������������������������������������������������������������������0000644�0000000�0000000�00000020422�12167244627�012432� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# lib-prefix.m4 serial 7 (gettext-0.18) dnl Copyright (C) 2001-2005, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't dnl require excessive bracketing. ifdef([AC_HELP_STRING], [AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], [AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed dnl with the same --prefix option. dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate dnl libraries, but is otherwise very convenient. AC_DEFUN([AC_LIB_PREFIX], [ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) AC_LIB_ARG_WITH([lib-prefix], [ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib --without-lib-prefix don't search for libraries in includedir and libdir], [ if test "X$withval" = "Xno"; then use_additional=no else if test "X$withval" = "X"; then AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) else additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" fi fi ]) if test $use_additional = yes; then dnl Potentially add $additional_includedir to $CPPFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/include, dnl 2. if it's already present in $CPPFLAGS, dnl 3. if it's /usr/local/include and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_includedir" != "X/usr/include"; then haveit= for x in $CPPFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-I$additional_includedir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_includedir" = "X/usr/local/include"; then if test -n "$GCC"; then case $host_os in linux* | gnu* | k*bsd*-gnu) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_includedir"; then dnl Really add $additional_includedir to $CPPFLAGS. CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" fi fi fi fi dnl Potentially add $additional_libdir to $LDFLAGS. dnl But don't add it dnl 1. if it's the standard /usr/lib, dnl 2. if it's already present in $LDFLAGS, dnl 3. if it's /usr/local/lib and we are using GCC on Linux, dnl 4. if it doesn't exist as a directory. if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then haveit= for x in $LDFLAGS; do AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) if test "X$x" = "X-L$additional_libdir"; then haveit=yes break fi done if test -z "$haveit"; then if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then if test -n "$GCC"; then case $host_os in linux*) haveit=yes;; esac fi fi if test -z "$haveit"; then if test -d "$additional_libdir"; then dnl Really add $additional_libdir to $LDFLAGS. LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" fi fi fi fi fi ]) dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, dnl acl_final_exec_prefix, containing the values to which $prefix and dnl $exec_prefix will expand at the end of the configure script. AC_DEFUN([AC_LIB_PREPARE_PREFIX], [ dnl Unfortunately, prefix and exec_prefix get only finally determined dnl at the end of configure. if test "X$prefix" = "XNONE"; then acl_final_prefix="$ac_default_prefix" else acl_final_prefix="$prefix" fi if test "X$exec_prefix" = "XNONE"; then acl_final_exec_prefix='${prefix}' else acl_final_exec_prefix="$exec_prefix" fi acl_save_prefix="$prefix" prefix="$acl_final_prefix" eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" prefix="$acl_save_prefix" ]) dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the dnl variables prefix and exec_prefix bound to the values they will have dnl at the end of the configure script. AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [ acl_save_prefix="$prefix" prefix="$acl_final_prefix" acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" $1 exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" ]) dnl AC_LIB_PREPARE_MULTILIB creates dnl - a variable acl_libdirstem, containing the basename of the libdir, either dnl "lib" or "lib64" or "lib/64", dnl - a variable acl_libdirstem2, as a secondary possible value for dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or dnl "lib/amd64". AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [ dnl There is no formal standard regarding lib and lib64. dnl On glibc systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine dnl the compiler's default mode by looking at the compiler's library search dnl path. If at least one of its elements ends in /lib64 or points to a dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI. dnl Otherwise we use the default, namely "lib". dnl On Solaris systems, the current practice is that on a system supporting dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) acl_libdirstem=lib acl_libdirstem2= case "$host_os" in solaris*) dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>. dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], [AC_EGREP_CPP([sixtyfour bits], [ #ifdef _LP64 sixtyfour bits #endif ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no]) ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; i*86 | x86_64) acl_libdirstem2=lib/amd64 ;; esac fi ;; *) searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` if test -n "$searchpath"; then acl_save_IFS="${IFS= }"; IFS=":" for searchdir in $searchpath; do if test -d "$searchdir"; then case "$searchdir" in */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; */../ | */.. ) # Better ignore directories of this form. They are misleading. ;; *) searchdir=`cd "$searchdir" && pwd` case "$searchdir" in */lib64 ) acl_libdirstem=lib64 ;; esac ;; esac fi done IFS="$acl_save_IFS" fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" ]) ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/libtool.m4���������������������������������������������������������������������������0000644�0000000�0000000�00001057216�12167244642�012046� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, # 2006, 2007, 2008, 2009, 2010, 2011 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is part of GNU Libtool. # # GNU Libtool 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 of # the License, or (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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. # # You should have received a copy of the GNU General Public License # along with GNU Libtool; see the file COPYING. If not, a copy # can be downloaded from http://www.gnu.org/licenses/gpl.html, or # obtained by writing to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ]) # serial 57 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS="$ltmain" # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_CC_BASENAME(CC) # ------------------- # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. m4_defun([_LT_CC_BASENAME], [for cc_temp in $1""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a `.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld="$lt_cv_prog_gnu_ld" old_CC="$CC" old_CFLAGS="$CFLAGS" # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from `configure', and `config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # `config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain="$ac_aux_dir/ltmain.sh" ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the `libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to `config.status' so that its # declaration there will have the same value as in `configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags="_LT_TAGS"dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the `libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into `config.status', and then the shell code to quote escape them in # for loops in `config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # `#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test $lt_write_fail = 0 && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ \`$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to <bug-libtool@gnu.org>." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test $[#] != 0 do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try \`$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try \`$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test "$silent" = yes && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options which allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}" ; then setopt NO_GLOB_SUBST fi cfgfile="${ofile}T" trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # _LT_COPYING _LT_LIBTOOL_TAGS # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test "X${COLLECT_NAMES+set}" != Xset; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) _LT_PROG_REPLACE_SHELLFNS mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' TIMESTAMP='$TIMESTAMP' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "${LT_MULTI_MODULE}"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test $_lt_result -eq 0; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS="$save_LDFLAGS" ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; 10.[[012]]*) _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test "$lt_cv_apple_cc_single_mod" = "yes"; then _lt_dar_single_mod='$single_module' fi if test "$lt_cv_ld_exported_symbols_list" = "yes"; then _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' fi if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test "$lt_cv_ld_force_load" = "yes"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" case $cc_basename in ifort*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test "$_lt_dar_can_shared" = "yes"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" m4_if([$1], [CXX], [ if test "$lt_cv_apple_cc_single_mod" != "yes"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test "${lt_cv_aix_libpath+set}" = set; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script which will find a shell with a builtin # printf (which we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case "$ECHO" in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified).], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case ${with_sysroot} in #( yes) if test "$GCC" = yes; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([${with_sysroot}]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and in which our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE="32" ;; *ELF-64*) HPUX_IA64_MODE="64" ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out which ABI we are using. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test "$lt_cv_prog_gnu_ld" = yes; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_i386" ;; ppc64-*linux*|powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; ppc*-*linux*|powerpc*-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test x"$lt_cv_cc_needs_belf" != x"yes"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS="$SAVE_CFLAGS" fi ;; *-*solaris*) # Find out which ABI we are using. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD="${LD-ld}_sol2" fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks="$enable_libtool_lock" ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -eq 0; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test "$ac_status" -ne 0; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test "x$lt_cv_ar_at_file" = xno; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test x"[$]$2" = xyes; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS="$save_LDFLAGS" ]) if test x"[$]$2" = xyes; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring="ABCD" case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8 ; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test $i != 17 # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n $lt_cv_sys_max_cmd_len ; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include <dlfcn.h> #endif #include <stdio.h> #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisbility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen="dlopen" lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ lt_cv_dlopen="dyld" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen="shl_load"], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) ]) ]) ]) ]) ]) ;; esac if test "x$lt_cv_dlopen" != xno; then enable_dlopen=yes else enable_dlopen=no fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test "x$lt_cv_dlopen_self" = xyes; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS="$save_CPPFLAGS" LDFLAGS="$save_LDFLAGS" LIBS="$save_LIBS" ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links="nottested" if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test "$hard_links" = no; then AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", [Define to the sub-directory in which libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then # We can hardcode non-existent directories. if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then # Fast installation is not supported enable_fast_install=no elif test "$shlibpath_overrides_runpath" = yes || test "$enable_shared" = no; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP" ; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test "$GCC" = yes; then case $host_os in darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; *) lt_awk_arg="/^libraries:/" ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; *) lt_sed_strip_eq="s,=/,/,g" ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary. lt_tmp_lt_search_path_spec= lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path/$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" else test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS=" "; FS="/|\n";} { lt_foo=""; lt_count=0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo="/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='${libname}${release}${shared_ext}$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line `#! .'. This would cause the generated library to # depend on `.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # AIX (on Power*) has no versioning support, so currently we can not hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib<name>.so # instead of lib<name>.a to let people know that these are not # typical AIX shared libraries. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=".dll" need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' library_names_spec='${libname}.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec="$LIB" if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \${file}`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' soname_spec='${libname}${release}${major}$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=yes sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' if test "X$HPUX_IA64_MODE" = X32; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test "$lt_cv_prog_gnu_ld" = yes; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. case $host_os in openbsd3.3 | openbsd3.3.*) need_version=yes ;; *) need_version=no ;; esac library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then case $host_os in openbsd2.[[89]] | openbsd2.[[89]].*) shlibpath_overrides_runpath=no ;; *) shlibpath_overrides_runpath=yes ;; esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' shrext_cmds=".dll" need_lib_prefix=no library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='${libname}${release}${shared_ext}$major' library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test "$with_gnu_ld" = yes; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec ;then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' soname_spec='$libname${shared_ext}.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=freebsd-elf need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test "$with_gnu_ld" = yes; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test "$dynamic_linker" = no && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test "$GCC" = yes; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" fi if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" fi _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([], [sys_lib_dlsearch_path_spec], [2], [Run-time system search path for libraries]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program which can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD="$MAGIC_CMD" lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$1; then lt_cv_path_MAGIC_CMD="$ac_dir/$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS="$lt_save_ifs" MAGIC_CMD="$lt_save_MAGIC_CMD" ;; esac]) MAGIC_CMD="$lt_cv_path_MAGIC_CMD" if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program which can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test "$withval" = no || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test "$with_gnu_ld" = yes; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) test "$with_gnu_ld" != no && break ;; *) test "$with_gnu_ld" != yes && break ;; esac fi done IFS="$lt_save_ifs" else lt_cv_path_LD="$LD" # Let the user override the test with a path. fi]) LD="$lt_cv_path_LD" if test -n "$LD"; then AC_MSG_RESULT($LD) else AC_MSG_RESULT(no) fi test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) _LT_PATH_LD_GNU AC_SUBST([LD]) _LT_TAGDECL([], [LD], [1], [The linker used to build libraries]) ])# LT_PATH_LD # Old names: AU_ALIAS([AM_PROG_LD], [LT_PATH_LD]) AU_ALIAS([AC_PROG_LD], [LT_PATH_LD]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_LD], []) dnl AC_DEFUN([AC_PROG_LD], []) # _LT_PATH_LD_GNU #- -------------- m4_defun([_LT_PATH_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, [# I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 </dev/null` in *GNU* | *'with BFD'*) lt_cv_prog_gnu_ld=yes ;; *) lt_cv_prog_gnu_ld=no ;; esac]) with_gnu_ld=$lt_cv_prog_gnu_ld ])# _LT_PATH_LD_GNU # _LT_CMD_RELOAD # -------------- # find reload flag for linker # -- PORTME Some linkers may need a different reload flag. m4_defun([_LT_CMD_RELOAD], [AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, [lt_cv_ld_reload_flag='-r']) reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test "$GCC" != yes; then reload_cmds=false fi ;; darwin*) if test "$GCC" = yes; then reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac _LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl _LT_TAGDECL([], [reload_cmds], [2])dnl ])# _LT_CMD_RELOAD # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # `unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; gnu*) lt_cv_deplibs_check_method=pass_all ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM="$NM" else lt_nm_to_check="${ac_tool_prefix}nm" if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. tmp_nm="$ac_dir/$lt_tmp_nm" if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then # Check to see if the nm accepts a BSD-compat flag. # Adding the `sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in */dev/null* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS="$lt_save_ifs" done : ${lt_cv_path_NM=no} fi]) if test "$lt_cv_path_NM" != "no"; then NM="$lt_cv_path_NM" else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test "$DUMPBIN" != ":"; then NM="$DUMPBIN" fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh # decide which to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd="$ECHO" ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test "x$lt_cv_path_mainfest_tool" != xyes; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM="-lm") ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test "$GCC" = yes; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test "$host_cpu" = ia64; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function # and D for any global variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ " {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ " s[1]~/^[@?]/{print s[1], s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) /* DATA imports from DLLs on WIN32 con't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined(__osf__) /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test "$pipe_works" = yes; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' if test "$host_cpu" != ia64; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64 which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test "$GCC" = yes; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms which do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global defined # symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ` (' and `)$', so one must not match beginning or # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', # as well as any symbol that contains `d'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test "$GCC" != yes; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test "$with_gnu_ld" = yes; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test "$lt_use_gnu_ld_interface" = yes; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='${wl}' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test "$host_cpu" != ia64; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test "$host_os" = linux-dietlibc; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test "$tmp_diet" = no then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi case $cc_basename in xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to AIX nm, but means don't demangle with GNU nm # Also, AIX nm treats weak defined symbols like other global # defined symbols, whereas GNU nm marks them as "W". if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then aix_use_runtimelinking=yes break fi done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GCC" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; hpux10*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test "$GCC" = yes && test "$with_gnu_ld" = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test "$with_gnu_ld" = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS="$save_LDFLAGS"]) if test "$lt_cv_irix_exported_symbol" = yes; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' else case $host_os in openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ;; esac fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ;; osf3*) if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test "$GCC" = yes; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test "$GCC" = yes; then wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='${wl}' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. GCC discards it without `$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test "$GCC" = yes; then _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test "x$host_vendor" = xsequent; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' if test "$GCC" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test x$host_vendor = xsni; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test "$enable_shared" = yes && test "$GCC" = yes; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting ${shlibpath_var} if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC="$CC" AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report which library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC="$lt_save_CC" ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to `libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test "X$CXX" != "Xno" && ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || (test "X$CXX" != "Xg++"))) ; then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_caught_CXX_error" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test "$GXX" = yes; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test "$GXX" = yes; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test "$with_gnu_ld" = yes; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='${wl}' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test "$host_cpu" = ia64; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag="" else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # need to do runtime linking. case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' if test "$GXX" = yes; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`${CC} -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi else # not using gcc if test "$host_cpu" = ia64; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test "$aix_use_runtimelinking" = yes; then shared_flag='${wl}-G' else shared_flag='${wl}-bM:SRE' fi fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test "$aix_use_runtimelinking" = yes; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" else if test "$host_cpu" = ia64; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' if test "$with_gnu_ld" = yes; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes # This is similar to how AIX traditionally builds its shared # libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach <jrb3@best.com> says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=".dll" # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; else $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile="$lt_outputfile.exe" lt_tool_outputfile="$lt_tool_outputfile.exe" ;; esac~ func_to_tool_file "$lt_outputfile"~ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file (1st line # is EXPORTS), use it as is; otherwise, prepend... _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; gnu*) ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test $with_gnu_ld = no; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes; then if test $with_gnu_ld = no; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test "$GXX" = yes; then if test "$with_gnu_ld" = no; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' if test "x$supports_anon_versioning" = xyes; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd2*) # C++ shared libraries are fairly broken _LT_TAGVAR(ld_shlibs, $1)=no ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands `-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test "$GXX" = yes && test "$with_gnu_ld" = no; then _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require `-G' NOT `-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We can NOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no _LT_TAGVAR(GCC, $1)="$GXX" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test "$_lt_caught_CXX_error" != yes AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case ${2} in .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case ${prev}${p} in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test $p = "-L" || test $p = "-R"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test "$pre_test_object_deps_done" = no; then case ${prev} in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)="${prev}${p}" else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test "$pre_test_object_deps_done" = no; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)="$p" else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)="$p" else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # The more standards-conforming stlport4 library is # incompatible with the Cstd library. Avoid specifying # it if it's in CXXFLAGS. Ignore libCrun as # -library=stlport4 depends on it. case " $CXX $CXXFLAGS " in *" -library=stlport4 "*) solaris_use_stlport4=yes ;; esac # Adding this requires a known-good setup of shared libraries for # Sun compiler versions before 5.6, else PIC objects from an old # archive will be linked into the output, leading to subtle bugs. if test "$solaris_use_stlport4" != yes; then _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' fi ;; esac ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test "X$F77" = "Xno"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_F77" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$G77" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC="$lt_save_CC" CFLAGS="$lt_save_CFLAGS" fi # test "$_lt_disable_F77" != yes AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test "X$FC" = "Xno"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test "$_lt_disable_FC" != yes; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test "$enable_shared" = yes && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then test "$enable_shared" = yes && enable_static=no fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" _LT_TAGVAR(LD, $1)="$LD" ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test "$_lt_disable_FC" != yes AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)="$LD" _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to `libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code="$lt_simple_compile_test_code" # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC="$CC" lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f $lt_ac_sed && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test $lt_ac_count -gt 10 && break lt_ac_count=`expr $lt_ac_count + 1` if test $lt_ac_count -gt $lt_ac_max; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [AC_MSG_CHECKING([whether the shell understands some XSI constructs]) # Try some XSI features xsi_shell=no ( _lt_dummy="a/b/c" test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ = c,a/b,b/c, \ && eval 'test $(( 1 + 1 )) -eq 2 \ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ && xsi_shell=yes AC_MSG_RESULT([$xsi_shell]) _LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) AC_MSG_CHECKING([whether the shell understands "+="]) lt_shell_append=no ( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ >/dev/null 2>&1 \ && lt_shell_append=yes AC_MSG_RESULT([$lt_shell_append]) _LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) # ------------------------------------------------------ # In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and # '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. m4_defun([_LT_PROG_FUNCTION_REPLACE], [dnl { sed -e '/^$1 ()$/,/^} # $1 /c\ $1 ()\ {\ m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) } # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: ]) # _LT_PROG_REPLACE_SHELLFNS # ------------------------- # Replace existing portable implementations of several shell functions with # equivalent extended shell implementations where those features are available.. m4_defun([_LT_PROG_REPLACE_SHELLFNS], [if test x"$xsi_shell" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl case ${1} in */*) func_dirname_result="${1%/*}${2}" ;; * ) func_dirname_result="${3}" ;; esac func_basename_result="${1##*/}"]) _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary parameter first. func_stripname_result=${3} func_stripname_result=${func_stripname_result#"${1}"} func_stripname_result=${func_stripname_result%"${2}"}]) _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl func_split_long_opt_name=${1%%=*} func_split_long_opt_arg=${1#*=}]) _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl case ${1} in *.lo) func_lo2o_result=${1%.lo}.${objext} ;; *) func_lo2o_result=${1} ;; esac]) _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) fi if test x"$lt_shell_append" = xyes; then _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl func_quote_for_eval "${2}" dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) # Save a `func_append' function call where possible by direct use of '+=' sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: else # Save a `func_append' function call even when '+=' is not available sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ && mv -f "$cfgfile.tmp" "$cfgfile" \ || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") test 0 -eq $? || _lt_function_replace_fail=: fi if test x"$_lt_function_replace_fail" = x":"; then AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) fi ]) # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine which file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/threadlib.m4�������������������������������������������������������������������������0000644�0000000�0000000�00000034143�12167244627�012334� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# threadlib.m4 serial 10 (gettext-0.18.2) dnl Copyright (C) 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl gl_THREADLIB dnl ------------ dnl Tests for a multithreading library to be used. dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the dnl default is 'no', otherwise it is system dependent. In both cases, the user dnl can change the choice through the options --enable-threads=choice or dnl --disable-threads. dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS, dnl USE_PTH_THREADS, USE_WINDOWS_THREADS dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with dnl libtool). dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for dnl programs that really need multithread functionality. The difference dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread". dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for dnl multithread-safe programs. AC_DEFUN([gl_THREADLIB_EARLY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) ]) dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_EARLY_BODY], [ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that dnl influences the result of the autoconf tests that test for *_unlocked dnl declarations, on AIX 5 at least. Therefore it must come early. AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl AC_BEFORE([$0], [gl_ARGP])dnl AC_REQUIRE([AC_CANONICAL_HOST]) dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems. dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes dnl AC_GNU_SOURCE. m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], [AC_REQUIRE([AC_GNU_SOURCE])]) dnl Check for multithreading. m4_ifdef([gl_THREADLIB_DEFAULT_NO], [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])], [m4_divert_text([DEFAULTS], [gl_use_threads_default=])]) AC_ARG_ENABLE([threads], AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [ AC_HELP_STRING([--disable-threads], [build without multithread safety])]), [gl_use_threads=$enableval], [if test -n "$gl_use_threads_default"; then gl_use_threads="$gl_use_threads_default" else changequote(,)dnl case "$host_os" in dnl Disable multithreading by default on OSF/1, because it interferes dnl with fork()/exec(): When msgexec is linked with -lpthread, its dnl child process gets an endless segmentation fault inside execvp(). dnl Disable multithreading by default on Cygwin 1.5.x, because it has dnl bugs that lead to endless loops or crashes. See dnl <http://cygwin.com/ml/cygwin/2009-08/msg00283.html>. osf*) gl_use_threads=no ;; cygwin*) case `uname -r` in 1.[0-5].*) gl_use_threads=no ;; *) gl_use_threads=yes ;; esac ;; *) gl_use_threads=yes ;; esac changequote([,])dnl fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # For using <pthread.h>: case "$host_os" in osf*) # On OSF/1, the compiler needs the flag -D_REENTRANT so that it # groks <pthread.h>. cc also understands the flag -pthread, but # we don't use it because 1. gcc-2.95 doesn't understand -pthread, # 2. putting a flag into CPPFLAGS that has an effect on the linker # causes the AC_LINK_IFELSE test below to succeed unexpectedly, # leading to wrong values of LIBTHREAD and LTLIBTHREAD. CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac # Some systems optimize for single-threaded programs by default, and # need special flags to disable these optimizations. For example, the # definition of 'errno' in <errno.h>. case "$host_os" in aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;; solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;; esac fi ]) dnl The guts of gl_THREADLIB. Needs to be expanded only once. AC_DEFUN([gl_THREADLIB_BODY], [ AC_REQUIRE([gl_THREADLIB_EARLY_BODY]) gl_threads_api=none LIBTHREAD= LTLIBTHREAD= LIBMULTITHREAD= LTLIBMULTITHREAD= if test "$gl_use_threads" != no; then dnl Check whether the compiler and linker support weak declarations. AC_CACHE_CHECK([whether imported symbols can be declared weak], [gl_cv_have_weak], [gl_cv_have_weak=no dnl First, test whether the compiler accepts it syntactically. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[extern void xyzzy (); #pragma weak xyzzy]], [[xyzzy();]])], [gl_cv_have_weak=maybe]) if test $gl_cv_have_weak = maybe; then dnl Second, test whether it actually works. On Cygwin 1.7.2, with dnl gcc 4.3, symbols declared weak always evaluate to the address 0. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include <stdio.h> #pragma weak fputs int main () { return (fputs == NULL); }]])], [gl_cv_have_weak=yes], [gl_cv_have_weak=no], [dnl When cross-compiling, assume that only ELF platforms support dnl weak symbols. AC_EGREP_CPP([Extensible Linking Format], [#ifdef __ELF__ Extensible Linking Format #endif ], [gl_cv_have_weak="guessing yes"], [gl_cv_have_weak="guessing no"]) ]) fi ]) if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY. AC_CHECK_HEADER([pthread.h], [gl_have_pthread_h=yes], [gl_have_pthread_h=no]) if test "$gl_have_pthread_h" = yes; then # Other possible tests: # -lpthreads (FSU threads, PCthreads) # -lgthreads gl_have_pthread= # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist # in libc. IRIX 6.5 has the first one in both libc and libpthread, but # the second one only in libpthread, and lock.c needs it. AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include <pthread.h>]], [[pthread_mutex_lock((pthread_mutex_t*)0); pthread_mutexattr_init((pthread_mutexattr_t*)0);]])], [gl_have_pthread=yes]) # Test for libpthread by looking for pthread_kill. (Not pthread_self, # since it is defined as a macro on OSF/1.) if test -n "$gl_have_pthread"; then # The program links fine without libpthread. But it may actually # need to link with libpthread in order to create multiple threads. AC_CHECK_LIB([pthread], [pthread_kill], [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread # On Solaris and HP-UX, most pthread functions exist also in libc. # Therefore pthread_in_use() needs to actually try to create a # thread: pthread_create from libc will fail, whereas # pthread_create will actually create a thread. case "$host_os" in solaris* | hpux*) AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1], [Define if the pthread_in_use() detection is hard.]) esac ]) else # Some library is needed. Try libpthread and libc_r. AC_CHECK_LIB([pthread], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread]) if test -z "$gl_have_pthread"; then # For FreeBSD 4. AC_CHECK_LIB([c_r], [pthread_kill], [gl_have_pthread=yes LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r]) fi fi if test -n "$gl_have_pthread"; then gl_threads_api=posix AC_DEFINE([USE_POSIX_THREADS], [1], [Define if the POSIX multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_POSIX_THREADS_WEAK], [1], [Define if references to the POSIX multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi fi if test -z "$gl_have_pthread"; then if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then gl_have_solaristhread= gl_save_LIBS="$LIBS" LIBS="$LIBS -lthread" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[ #include <thread.h> #include <synch.h> ]], [[thr_self();]])], [gl_have_solaristhread=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_solaristhread"; then gl_threads_api=solaris LIBTHREAD=-lthread LTLIBTHREAD=-lthread LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_SOLARIS_THREADS], [1], [Define if the old Solaris multithreading library can be used.]) if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1], [Define if references to the old Solaris multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi fi fi if test "$gl_use_threads" = pth; then gl_save_CPPFLAGS="$CPPFLAGS" AC_LIB_LINKFLAGS([pth]) gl_have_pth= gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBPTH" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[#include <pth.h>]], [[pth_self();]])], [gl_have_pth=yes]) LIBS="$gl_save_LIBS" if test -n "$gl_have_pth"; then gl_threads_api=pth LIBTHREAD="$LIBPTH" LTLIBTHREAD="$LTLIBPTH" LIBMULTITHREAD="$LIBTHREAD" LTLIBMULTITHREAD="$LTLIBTHREAD" AC_DEFINE([USE_PTH_THREADS], [1], [Define if the GNU Pth multithreading library can be used.]) if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then AC_DEFINE([USE_PTH_THREADS_WEAK], [1], [Define if references to the GNU Pth multithreading library should be made weak.]) LIBTHREAD= LTLIBTHREAD= fi fi else CPPFLAGS="$gl_save_CPPFLAGS" fi fi if test -z "$gl_have_pthread"; then case "$gl_use_threads" in yes | windows | win32) # The 'win32' is for backward compatibility. if { case "$host_os" in mingw*) true;; *) false;; esac }; then gl_threads_api=windows AC_DEFINE([USE_WINDOWS_THREADS], [1], [Define if the native Windows multithreading API can be used.]) fi ;; esac fi fi AC_MSG_CHECKING([for multithread API to use]) AC_MSG_RESULT([$gl_threads_api]) AC_SUBST([LIBTHREAD]) AC_SUBST([LTLIBTHREAD]) AC_SUBST([LIBMULTITHREAD]) AC_SUBST([LTLIBMULTITHREAD]) ]) AC_DEFUN([gl_THREADLIB], [ AC_REQUIRE([gl_THREADLIB_EARLY]) AC_REQUIRE([gl_THREADLIB_BODY]) ]) dnl gl_DISABLE_THREADS dnl ------------------ dnl Sets the gl_THREADLIB default so that threads are not used by default. dnl The user can still override it at installation time, by using the dnl configure option '--enable-threads'. AC_DEFUN([gl_DISABLE_THREADS], [ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no]) ]) dnl Survey of platforms: dnl dnl Platform Available Compiler Supports test-lock dnl flavours option weak result dnl --------------- --------- --------- -------- --------- dnl Linux 2.4/glibc posix -lpthread Y OK dnl dnl GNU Hurd/glibc posix dnl dnl FreeBSD 5.3 posix -lc_r Y dnl posix -lkse ? Y dnl posix -lpthread ? Y dnl posix -lthr Y dnl dnl FreeBSD 5.2 posix -lc_r Y dnl posix -lkse Y dnl posix -lthr Y dnl dnl FreeBSD 4.0,4.10 posix -lc_r Y OK dnl dnl NetBSD 1.6 -- dnl dnl OpenBSD 3.4 posix -lpthread Y OK dnl dnl Mac OS X 10.[123] posix -lpthread Y OK dnl dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK dnl dnl HP-UX 11 posix -lpthread N (cc) OK dnl Y (gcc) dnl dnl IRIX 6.5 posix -lpthread Y 0.5 dnl dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK dnl dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK dnl -lpthread (gcc) Y dnl dnl Cygwin posix -lpthread Y OK dnl dnl Any of the above pth -lpth 0.0 dnl dnl Mingw windows N OK dnl dnl BeOS 5 -- dnl dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is dnl turned off: dnl OK if all three tests terminate OK, dnl 0.5 if the first test terminates OK but the second one loops endlessly, dnl 0.0 if the first test already loops endlessly. �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/po.m4��������������������������������������������������������������������������������0000644�0000000�0000000�00000045041�12167244627�011013� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# po.m4 serial 21 (gettext-0.18.3) dnl Copyright (C) 1995-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl dnl This file can can be used in projects which are not available under dnl the GNU General Public License or the GNU Library General Public dnl License but which still want to provide support for the GNU gettext dnl functionality. dnl Please note that the actual code of the GNU gettext library is covered dnl by the GNU Library General Public License, and the rest of the GNU dnl gettext package package is covered by the GNU General Public License. dnl They are *not* in the public domain. dnl Authors: dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000. dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003. AC_PREREQ([2.60]) dnl Checks for all prerequisites of the po subdirectory. AC_DEFUN([AM_PO_SUBDIRS], [ AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_REQUIRE([AC_PROG_SED])dnl AC_REQUIRE([AM_NLS])dnl dnl Release version of the gettext macros. This is used to ensure that dnl the gettext macros and po/Makefile.in.in are in sync. AC_SUBST([GETTEXT_MACRO_VERSION], [0.18]) dnl Perform the following tests also if --disable-nls has been given, dnl because they are needed for "make dist" to work. dnl Search for GNU msgfmt in the PATH. dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. dnl The second test excludes FreeBSD msgfmt. AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) dnl Test whether it is GNU msgfmt >= 0.15. changequote(,)dnl case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; *) MSGFMT_015=$MSGFMT ;; esac changequote([,])dnl AC_SUBST([MSGFMT_015]) changequote(,)dnl case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; *) GMSGFMT_015=$GMSGFMT ;; esac changequote([,])dnl AC_SUBST([GMSGFMT_015]) dnl Search for GNU xgettext 0.12 or newer in the PATH. dnl The first test excludes Solaris xgettext and early GNU xgettext versions. dnl The second test excludes FreeBSD xgettext. AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], :) dnl Remove leftover from FreeBSD xgettext call. rm -f messages.po dnl Test whether it is GNU xgettext >= 0.15. changequote(,)dnl case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; *) XGETTEXT_015=$XGETTEXT ;; esac changequote([,])dnl AC_SUBST([XGETTEXT_015]) dnl Search for GNU msgmerge 0.11 or newer in the PATH. AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) dnl Installation directories. dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we dnl have to define it here, so that it can be used in po/Makefile. test -n "$localedir" || localedir='${datadir}/locale' AC_SUBST([localedir]) dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) AC_CONFIG_COMMANDS([po-directories], [[ for ac_file in $CONFIG_FILES; do # Support "outfile[:infile[:infile...]]" case "$ac_file" in *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; esac # PO directories have a Makefile.in generated from Makefile.in.in. case "$ac_file" in */Makefile.in) # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Treat a directory as a PO directory if and only if it has a # POTFILES.in file. This allows packages to have multiple PO # directories under different names or in different locations. if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then rm -f "$ac_dir/POTFILES" test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" gt_tab=`printf '\t'` cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" POMAKEFILEDEPS="POTFILES.in" # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend # on $ac_dir but don't depend on user-specified configuration # parameters. if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" done fi test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do if test -f "$f"; then case "$f" in *.orig | *.bak | *~) ;; *) cat "$f" >> "$ac_dir/Makefile" ;; esac fi done fi ;; esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it # from automake < 1.5. eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) ]) dnl Postprocesses a Makefile in a directory containing PO files. AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [ # When this code is run, in config.status, two variables have already been # set: # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in, # - LINGUAS is the value of the environment variable LINGUAS at configure # time. changequote(,)dnl # Adjust a relative srcdir. ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` # In autoconf-2.13 it is called $ac_given_srcdir. # In autoconf-2.50 it is called $srcdir. test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" case "$ac_given_srcdir" in .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; /*) top_srcdir="$ac_given_srcdir" ;; *) top_srcdir="$ac_dots$ac_given_srcdir" ;; esac # Find a way to echo strings without interpreting backslash. if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then gt_echo='echo' else if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then gt_echo='printf %s\n' else echo_func () { cat <<EOT $* EOT } gt_echo='echo_func' fi fi # A sed script that extracts the value of VARIABLE from a Makefile. tab=`printf '\t'` sed_x_variable=' # Test if the hold space is empty. x s/P/P/ x ta # Yes it was empty. Look if we have the expected variable definition. /^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{ # Seen the first line of the variable definition. s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=// ba } bd :a # Here we are processing a line from the variable definition. # Remove comment, more precisely replace it with a space. s/#.*$/ / # See if the line ends in a backslash. tb :b s/\\$// # Print the line, without the trailing backslash. p tc # There was no trailing backslash. The end of the variable definition is # reached. Clear the hold space. s/^.*$// x bd :c # A trailing backslash means that the variable definition continues in the # next line. Put a nonempty string into the hold space to indicate this. s/^.*$/P/ x :d ' changequote([,])dnl # Set POTFILES to the value of the Makefile variable POTFILES. sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'` POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"` # Compute POTFILES_DEPS as # $(foreach file, $(POTFILES), $(top_srcdir)/$(file)) POTFILES_DEPS= for file in $POTFILES; do POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file" done POMAKEFILEDEPS="" if test -n "$OBSOLETE_ALL_LINGUAS"; then test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" fi if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'` ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` fi # Hide the ALL_LINGUAS assignment from automake < 1.5. eval 'ALL_LINGUAS''=$ALL_LINGUAS_' # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) # Compute DUMMYPOFILES # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) # Compute GMOFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) # Compute PROPERTIESFILES # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties) # Compute CLASSFILES # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class) # Compute QMFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm) # Compute MSGFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg) # Compute RESOURCESDLLFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll) case "$ac_given_srcdir" in .) srcdirpre= ;; *) srcdirpre='$(srcdir)/' ;; esac POFILES= UPDATEPOFILES= DUMMYPOFILES= GMOFILES= PROPERTIESFILES= CLASSFILES= QMFILES= MSGFILES= RESOURCESDLLFILES= for lang in $ALL_LINGUAS; do POFILES="$POFILES $srcdirpre$lang.po" UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" DUMMYPOFILES="$DUMMYPOFILES $lang.nop" GMOFILES="$GMOFILES $srcdirpre$lang.gmo" PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties" CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class" QMFILES="$QMFILES $srcdirpre$lang.qm" frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg" frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll" done # CATALOGS depends on both $ac_dir and the user's LINGUAS # environment variable. INST_LINGUAS= if test -n "$ALL_LINGUAS"; then for presentlang in $ALL_LINGUAS; do useit=no if test "%UNSET%" != "$LINGUAS"; then desiredlanguages="$LINGUAS" else desiredlanguages="$ALL_LINGUAS" fi for desiredlang in $desiredlanguages; do # Use the presentlang catalog if desiredlang is # a. equal to presentlang, or # b. a variant of presentlang (because in this case, # presentlang can be used as a fallback for messages # which are not translated in the desiredlang catalog). case "$desiredlang" in "$presentlang"*) useit=yes;; esac done if test $useit = yes; then INST_LINGUAS="$INST_LINGUAS $presentlang" fi done fi CATALOGS= JAVACATALOGS= QTCATALOGS= TCLCATALOGS= CSHARPCATALOGS= if test -n "$INST_LINGUAS"; then for lang in $INST_LINGUAS; do CATALOGS="$CATALOGS $lang.gmo" JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties" QTCATALOGS="$QTCATALOGS $lang.qm" frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg" frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll" done fi sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" tab=`printf '\t'` if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'` cat >> "$ac_file.tmp" <<EOF $frobbedlang.msg: $lang.po ${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \ ${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } EOF done fi if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then # Add dependencies that cannot be formulated as a simple suffix rule. for lang in $ALL_LINGUAS; do frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'` cat >> "$ac_file.tmp" <<EOF $frobbedlang/\$(DOMAIN).resources.dll: $lang.po ${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \ ${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; } EOF done fi if test -n "$POMAKEFILEDEPS"; then cat >> "$ac_file.tmp" <<EOF Makefile: $POMAKEFILEDEPS EOF fi mv "$ac_file.tmp" "$ac_file" ]) dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. AC_DEFUN([AM_XGETTEXT_OPTION_INIT], [ XGETTEXT_EXTRA_OPTIONS= ]) dnl Registers an option to be passed to xgettext in the po subdirectory. AC_DEFUN([AM_XGETTEXT_OPTION], [ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/wint_t.m4����������������������������������������������������������������������������0000644�0000000�0000000�00000002035�12167244627�011675� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# wint_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2003, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether <wchar.h> has the 'wint_t' type. dnl Prerequisite: AC_PROG_CC AC_DEFUN([gt_TYPE_WINT_T], [ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before <wchar.h>. BSD/OS 4.0.1 has a bug: <stddef.h>, <stdio.h> and <time.h> must be included before <wchar.h>. */ #include <stddef.h> #include <stdio.h> #include <time.h> #include <wchar.h> wint_t foo = (wchar_t)'\0';]], [[]])], [gt_cv_c_wint_t=yes], [gt_cv_c_wint_t=no])]) if test $gt_cv_c_wint_t = yes; then AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.]) fi ]) ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/m4/inttypes-pri.m4����������������������������������������������������������������������0000644�0000000�0000000�00000002345�12167244627�013044� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# inttypes-pri.m4 serial 7 (gettext-0.18.2) dnl Copyright (C) 1997-2002, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. AC_PREREQ([2.53]) # Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI* # macros to non-string values. This is the case on AIX 4.3.3. AC_DEFUN([gt_INTTYPES_PRI], [ AC_CHECK_HEADERS([inttypes.h]) if test $ac_cv_header_inttypes_h = yes; then AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken], [gt_cv_inttypes_pri_broken], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include <inttypes.h> #ifdef PRId32 char *p = PRId32; #endif ]], [[]])], [gt_cv_inttypes_pri_broken=no], [gt_cv_inttypes_pri_broken=yes]) ]) fi if test "$gt_cv_inttypes_pri_broken" = yes; then AC_DEFINE_UNQUOTED([PRI_MACROS_BROKEN], [1], [Define if <inttypes.h> exists and defines unusable PRI* macros.]) PRI_MACROS_BROKEN=1 else PRI_MACROS_BROKEN=0 fi AC_SUBST([PRI_MACROS_BROKEN]) ]) �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/COPYINGv2�������������������������������������������������������������������������������0000664�0000000�0000000�00000043254�11746453142�011120� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������ GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> 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 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. <signature of Ty Coon>, 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/INSTALL���������������������������������������������������������������������������������0000644�0000000�0000000�00000036605�12167244657�010655� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Installation Instructions ************************* Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. Basic Installation ================== Briefly, the shell commands `./configure; make; make install' should configure, build, and install this package. The following more-detailed instructions are generic; see the `README' file for instructions specific to this package. Some packages provide this `INSTALL' file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in *note Makefile Conventions: (standards)Makefile Conventions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). It can also use an optional file (typically called `config.cache' and enabled with `--cache-file=config.cache' or simply `-C') that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If you are using the cache, and at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.ac' (or `configure.in') is used to create `configure' by a program called `autoconf'. You need `configure.ac' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. Running `configure' might take a while. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 4. Type `make install' to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the `make install' phase executed with root privileges. 5. Optionally, type `make installcheck' to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior `make install' required root privileges, verifies that the installation completed correctly. 6. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. 7. Often, you can also type `make uninstall' to remove the installed files again. In practice, not all packages have tested that uninstallation works correctly, even though it is required by the GNU Coding Standards. 8. Some packages, particularly those that use Automake, provide `make distcheck', which can by used by developers to test that all other targets like `make install' and `make uninstall' work correctly. This target is generally not run by end users. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. Run `./configure --help' for details on some of the pertinent environment variables. You can give `configure' initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=c99 CFLAGS=-g LIBS=-lposix *Note Defining Variables::, for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you can use GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. This is known as a "VPATH" build. With a non-GNU `make', it is safer to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. On MacOS X 10.5 and later systems, you can create libraries and executables that work on multiple system types--known as "fat" or "universal" binaries--by specifying multiple `-arch' options to the compiler but only a single `-arch' option to the preprocessor. Like this: ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ CPP="gcc -E" CXXCPP="g++ -E" This is not guaranteed to produce working output in all cases, you may have to build one architecture at a time and combine the results using the `lipo' tool if you have problems. Installation Names ================== By default, `make install' installs the package's commands under `/usr/local/bin', include files under `/usr/local/include', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PREFIX', where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option `--exec-prefix=PREFIX' to `configure', the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=DIR' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of `${prefix}', so that specifying just `--prefix' will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to `configure'; however, many packages provide one or both of the following shortcuts of passing variable assignments to the `make install' command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, `make install prefix=/alternate/directory' will choose an alternate location for all directory configuration variables that were expressed in terms of `${prefix}'. Any directories that were specified during `configure', but not in terms of `${prefix}', must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the `DESTDIR' variable. For example, `make install DESTDIR=/alternate/directory' will prepend `/alternate/directory' before all installation names. The approach of `DESTDIR' overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of `${prefix}' at `configure' time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Some packages offer the ability to configure how verbose the execution of `make' will be. For these packages, running `./configure --enable-silent-rules' sets the default to minimal output, which can be overridden with `make V=1'; while running `./configure --disable-silent-rules' sets the default to verbose, which can be overridden with `make V=0'. Particular systems ================== On HP-UX, the default C compiler is not ANSI C compatible. If GNU CC is not installed, it is recommended to use the following options in order to use an ANSI C compiler: ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" and if that doesn't work, install pre-built binaries of GCC for HP-UX. HP-UX `make' updates targets which have the same time stamps as their prerequisites, which makes it generally unusable when shipped generated files such as `configure' are involved. Use GNU `make' instead. On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot parse its `<wchar.h>' header file. The option `-nodtk' can be used as a workaround. If GNU CC is not installed, it is therefore recommended to try ./configure CC="cc" and if that doesn't work, try ./configure CC="cc -nodtk" On Solaris, don't put `/usr/ucb' early in your `PATH'. This directory contains several dysfunctional programs; working variants of these programs are available in `/usr/bin'. So, if you need `/usr/ucb' in your `PATH', put it _after_ `/usr/bin'. On Haiku, software installed for all users goes in `/boot/common', not `/usr/local'. It is recommended to use the following options: ./configure --prefix=/boot/common Specifying the System Type ========================== There may be some features `configure' cannot figure out automatically, but needs to determine by the type of machine the package will run on. Usually, assuming the package is built to be run on the _same_ architectures, `configure' can figure that out, but if it prints a message saying it cannot guess the machine type, give it the `--build=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name which has the form: CPU-COMPANY-SYSTEM where SYSTEM can have one of these forms: OS KERNEL-OS See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the machine type. If you are _building_ compiler tools for cross-compiling, you should use the option `--target=TYPE' to select the type of system they will produce code for. If you want to _use_ a cross compiler, that generates code for a platform different from the build platform, you should specify the "host" platform (i.e., that on which the generated programs will eventually be run) with `--host=TYPE'. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to `configure'. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the `configure' command line, using `VAR=value'. For example: ./configure CC=/usr/local2/bin/gcc causes the specified `gcc' to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for `CONFIG_SHELL' due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash `configure' Invocation ====================== `configure' recognizes the following options to control how it operates. `--help' `-h' Print a summary of all of the options to `configure', and exit. `--help=short' `--help=recursive' Print a summary of the options unique to this package's `configure', and exit. The `short' variant lists options used only in the top level, while the `recursive' variant lists options also present in any nested packages. `--version' `-V' Print the version of Autoconf used to generate the `configure' script, and exit. `--cache-file=FILE' Enable the cache: use and save the results of the tests in FILE, traditionally `config.cache'. FILE defaults to `/dev/null' to disable caching. `--config-cache' `-C' Alias for `--cache-file=config.cache'. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--prefix=DIR' Use DIR as the installation prefix. *note Installation Names:: for more details, including other options available for fine-tuning the installation locations. `--no-create' `-n' Run the configure checks, but stop before creating any output files. `configure' also accepts some other, not widely useful, options. Run `configure --help' for more details. ���������������������������������������������������������������������������������������������������������������������������libidn-1.28/README����������������������������������������������������������������������������������0000644�0000000�0000000�00000002266�12153706572�010472� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Libidn README -- Important introductory notes. Copyright (C) 2002-2013 Simon Josefsson See the end for copying conditions. Libidn is a package for internationalized string handling based on the Stringprep, Punycode, IDNA and TLD specifications. Libidn is a GNU project. See the file COPYING for licensing information. Read INSTALL for installation instructions, and doc/libidn.* for the manual in various formats (including Info, HTML, PostScript, and PDF). Libidn will not be stable without your help. Report bugs, proof read the manual, or make a monetary donation. If you need help to use Libidn, or wish to help others, you are invited to join our mailing list help-libidn@gnu.org, see <https://lists.gnu.org/mailman/listinfo/help-libidn>. For more information, see <https://www.gnu.org/software/libidn/>. For any copyright year range specified as YYYY-ZZZZ in this package note that the range specifies every single year in that closed interval. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/configure.ac����������������������������������������������������������������������������0000644�0000000�0000000�00000014515�12166512405�012072� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������dnl Process this file with autoconf to produce a configure script. dnl Copyright (C) 2002-2013 Simon Josefsson dnl dnl This file is part of GNU Libidn. dnl dnl This program is free software: you can redistribute it and/or modify dnl it under the terms of the GNU General Public License as published by dnl the Free Software Foundation, either version 3 of the License, or dnl (at your option) any later version. dnl dnl This program is distributed in the hope that it will be useful, dnl but WITHOUT ANY WARRANTY; without even the implied warranty of dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the dnl GNU General Public License for more details. dnl dnl You should have received a copy of the GNU General Public License dnl along with this program. If not, see <http://www.gnu.org/licenses/>. AC_PREREQ(2.61) AC_INIT([GNU Libidn], [1.28], [bug-libidn@gnu.org]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS(config.h) AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-override]) AM_SILENT_RULES([yes]) # Library code modified: REVISION++ # Interfaces changed/added/removed: CURRENT++ REVISION=0 # Interfaces added: AGE++ # Interfaces removed: AGE=0 AC_SUBST(LT_CURRENT, 17) AC_SUBST(LT_REVISION, 11) AC_SUBST(LT_AGE, 6) AC_PROG_CC gl_EARLY lgl_EARLY # For DEF file. DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}` AC_SUBST(DLL_VERSION) # We can't replace this with LT_INIT([win32-dll]) yet. For example, # the Ubuntu 8.04 LTS is still shipping a libtool version that doesn't # have it. AC_LIBTOOL_WIN32_DLL m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) AC_PROG_LIBTOOL # Checks for programs. AM_MISSING_PROG(PERL, perl, $missing_dir) AM_MISSING_PROG(HELP2MAN, help2man, $missing_dir) AM_GNU_GETTEXT(external) AM_GNU_GETTEXT_VERSION(0.18.3) AM_ICONV AM_PATH_LISPDIR if test "$am_cv_func_iconv" != "yes"; then AC_MSG_NOTICE([ *** Your system does not have iconv(). The iconv() function is not strictly required by the source code. However, that may change in the future, unless you report that this may be a problem for you. Please report this to $PACKAGE_BUGREPORT. ***]) fi # Checks for header files. AC_HEADER_STDC # For gnulib stuff in gl/. gl_INIT lgl_INIT # Check if locale stuff works AM_LANGINFO_CODESET # Make it possible to disable TLD code. AC_ARG_ENABLE(tld, AC_HELP_STRING([--disable-tld], [disable TLD code]), enable_tld=$enableval, enable_tld=yes) AM_CONDITIONAL(TLD, test "$enable_tld" != "no") if test "$enable_tld" != "no"; then AC_DEFINE([WITH_TLD], 1, [Define to 1 if you want TLD code.]) fi AC_MSG_CHECKING([if TLD API for specific TLD rules should be built]) AC_MSG_RESULT($enable_tld) # Check for gtk-doc. GTK_DOC_CHECK(1.1) # Check for java AC_ARG_ENABLE(java, AC_HELP_STRING([--enable-java], [enable Java API]),, enable_java=no) AM_PROG_GCJ if test "$enable_java" != "no"; then AC_PROG_JAR AM_MISSING_PROG(GJDOC, gjdoc, $missing_dir) fi AM_CONDITIONAL(JAVA, test "$enable_java" != "no") AC_MSG_CHECKING([if implementation in Java should be built]) AC_MSG_RESULT($enable_java) # Check for C# if test -n "$HAVE_CSHARPCOMP"; then gt_CSHARPEXEC fi AC_MSG_CHECKING([[if implementation in C# should be built]]) if test -n "$HAVE_CSHARPCOMP" && test -n "$HAVE_CSHARPEXEC"; then enable_csharp=yes else enable_csharp=no fi AC_MSG_RESULT($enable_csharp) AM_CONDITIONAL(CSHARP, test "$enable_csharp" = yes) sj_UPDATE_HEADER_VERSION([$srcdir/lib/stringprep.h]) AC_ARG_ENABLE([gcc-warnings], [AS_HELP_STRING([--enable-gcc-warnings], [turn on lots of GCC warnings (for developers)])], [case $enableval in yes|no) ;; *) AC_MSG_ERROR([bad value $enableval for gcc-warnings option]) ;; esac gl_gcc_warnings=$enableval], [gl_gcc_warnings=no] ) if test "$gl_gcc_warnings" = yes; then gl_WARN_ADD([-Werror], [WERROR_CFLAGS]) gl_WARN_ADD([-Wframe-larger-than=112], [WSTACK_CFLAGS]) nw="$nw -Wsystem-headers" # Don't let system headers trigger warnings nw="$nw -Wpadded" # Struct in src/idn_cmd.h is not padded nw="$nw -Wformat" # Self tests and examples print size_t as %d nw="$nw -Wc++-compat" # We don't care strongly about C++ compilers nw="$nw -Woverlength-strings" # Some of our strings are too large nw="$nw -Wsign-conversion" # Too many warnings for now nw="$nw -Wconversion" # Too many warnings for now nw="$nw -Wtraditional" # Warns on #elif which we use often nw="$nw -Wtraditional-conversion" # Too many warnings for now nw="$nw -Wmissing-noreturn" # Too many warnings for now nw="$nw -Wunreachable-code" # Too many false positives nw="$nw -Wlogical-op" # Too many false positives nw="$nw -Wsuggest-attribute=pure" # Is it worth using attributes? nw="$nw -Wsuggest-attribute=const" # Is it worth using attributes? gl_MANYWARN_ALL_GCC([ws]) gl_MANYWARN_COMPLEMENT(ws, [$ws], [$nw]) for w in $ws; do gl_WARN_ADD([$w]) done gl_WARN_ADD([-fdiagnostics-show-option]) gl_WARN_ADD([-Wno-missing-field-initializers]) # Rely on missing field = 0. fi AC_CONFIG_FILES([ Makefile contrib/doxygen/Doxyfile csharp/Makefile doc/Makefile doc/cyclo/Makefile doc/java/Makefile doc/reference/Makefile doc/reference/version.xml doc/specifications/Makefile doc/tld/Makefile examples/Makefile gl/Makefile gltests/Makefile java/Makefile java/pom.xml java/src/Makefile java/src/main/Makefile java/src/main/java/Makefile java/src/main/java/gnu/Makefile java/src/main/java/gnu/inet/Makefile java/src/main/java/gnu/inet/encoding/Makefile java/src/util/Makefile java/src/util/java/Makefile java/src/test/Makefile java/src/test/java/Makefile lib/Makefile lib/gl/Makefile lib/gltests/Makefile libidn.pc po/Makefile.in src/Makefile tests/Makefile ]) AC_OUTPUT AC_MSG_NOTICE([summary of build options: version: ${VERSION} shared $LT_CURRENT:$LT_REVISION:$LT_AGE Host type: ${host} Install prefix: ${prefix} Compiler: ${CC} Warning flags: ${WARN_CFLAGS} Library types: Shared=${enable_shared}, Static=${enable_static} Libiconv: $am_cv_func_iconv Valgrind: ${VALGRIND} Version script: $have_ld_version_script TLD code: $enable_tld Build Java port: $enable_java Build C# port: $enable_csharp ]) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/ABOUT-NLS�������������������������������������������������������������������������������0000644�0000000�0000000�00000267133�12167244626�011051� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������1 Notes on the Free Translation Project *************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all together, so that free software will gradually become able to speak many languages. A few packages already provide translations for their messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, itself available at your nearest GNU archive site. But you do _not_ need to install GNU `gettext' prior to configuring, installing or using this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and work on translations can contact the appropriate team. 1.1 INSTALL Matters =================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such packages use GNU `gettext'. Other packages have their own ways to internationalization, predating GNU `gettext'. By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already provides the GNU `gettext' functions. Installers may use special options at configuration time for changing the default behaviour. The command: ./configure --disable-nls will _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl' library and will decide to use it. If not, you may have to to use the `--with-libintl-prefix' option to tell `configure' where to look for it. Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed together with the package. However, the environment variable `LINGUAS' may be set, prior to configuration, to limit the installed set. `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. 1.2 Using This Package ====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate `LL_CC' combination. If you happen to have the `LC_ALL' or some other `LC_xxx' environment variables set, you should unset them before setting `LANG', otherwise the setting of `LANG' will not have the desired effect. Here `LL' is an ISO 639 two-letter language code, and `CC' is an ISO 3166 two-letter country code. For example, let's suppose that you speak German and live in Germany. At the shell prompt, merely execute `setenv LANG de_DE' (in `csh'), `export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). This can be done from your `.login' or `.profile' file, once and for all. You might think that the country code specification is redundant. But in fact, some languages have dialects in different countries. For example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The country code serves to distinguish the dialects. The locale naming convention of `LL_CC', with `LL' denoting the language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of locales supported by your system for your language by running the command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you understand other languages, you can set up a priority list of languages. This is done through a different environment variable, called `LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' for the purpose of message handling, but you still need to have `LANG' set to the primary language; this is required by other parts of the system libraries. For example, some Swedish users who would rather read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. Special advice for Norwegian users: The language code for Norwegian bokma*l changed from `no' to `nb' recently (in 2003). During the transition period, while some message catalogs for this language are installed under `nb' and some older ones under `no', it's recommended for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and older translations are used. In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. 1.3 Translating Teams ===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also able to synergize with other translators speaking the same language. Each translation team has its own mailing list. The up-to-date list of teams can be found at the Free Translation Project's homepage, `http://translationproject.org/', in the "Teams" area. If you'd like to volunteer to _work_ at translating messages, you should become a member of the translating team for your own language. The subscribing address is _not_ the same as the list itself, it has `-request' appended. For example, speakers of Swedish can send a message to `sv-request@li.org', having this message body: subscribe Keep in mind that team members are expected to participate _actively_ in translations, or at solving translational difficulties, rather than merely lurking around. If your team does not exist yet and you want to start one, or if you are unsure about what to do or how to get started, please write to `coordinator@translationproject.org' to reach the coordinator for all translator teams. The English team is special. It works at improving and uniformizing the terminology in use. Proven linguistic skills are praised more than programming skills, here. 1.4 Available Packages ====================== Languages are not equally supported in all packages. The following matrix shows the current state of internationalization, as of June 2010. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. Ready PO files af am an ar as ast az be be@latin bg bn_IN bs ca +--------------------------------------------------+ a2ps | [] [] | aegis | | ant-phone | | anubis | | aspell | [] [] | bash | | bfd | | bibshelf | [] | binutils | | bison | | bison-runtime | [] | bluez-pin | [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] [] | cpio | | cppi | | cpplib | [] | cryptsetup | | dfarc | | dialog | [] [] | dico | | diffutils | [] | dink | | doodle | | e2fsprogs | [] | enscript | [] | exif | | fetchmail | [] | findutils | [] | flex | [] | freedink | | gas | | gawk | [] [] | gcal | [] | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] [] | gettext-tools | [] [] | gip | [] | gjay | | gliv | [] | glunarclock | [] [] | gnubiff | | gnucash | [] | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | | gold | | gpe-aerial | | gpe-beam | | gpe-bluetooth | | gpe-calendar | | gpe-clock | [] | gpe-conf | | gpe-contacts | | gpe-edit | | gpe-filemanager | | gpe-go | | gpe-login | | gpe-ownerinfo | [] | gpe-package | | gpe-sketchbook | | gpe-su | [] | gpe-taskmanager | [] | gpe-timesheet | [] | gpe-today | [] | gpe-todo | | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | [] [] | gsasl | | gss | | gst-plugins-bad | [] | gst-plugins-base | [] | gst-plugins-good | [] | gst-plugins-ugly | [] | gstreamer | [] [] [] | gtick | | gtkam | [] | gtkorphan | [] | gtkspell | [] [] [] | gutenprint | | hello | [] | help2man | | hylafax | | idutils | | indent | [] [] | iso_15924 | | iso_3166 | [] [] [] [] [] [] [] | iso_3166_2 | | iso_4217 | | iso_639 | [] [] [] [] | iso_639_3 | | jwhois | | kbd | | keytouch | [] | keytouch-editor | | keytouch-keyboa... | [] | klavaro | [] | latrine | | ld | [] | leafpad | [] [] | libc | [] [] | libexif | () | libextractor | | libgnutls | | libgpewidget | | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | [] | libidn | | lifelines | | liferea | [] [] | lilypond | | linkdr | [] | lordsawar | | lprng | | lynx | [] | m4 | | mailfromd | | mailutils | | make | | man-db | | man-db-manpages | | minicom | | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | | psmisc | | pspp | [] | pwdutils | | radius | [] | recode | [] [] | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] [] | sed | [] [] | sharutils | [] [] | shishi | | skencil | | solfege | | solfege-manual | | soundtracker | | sp | | sysstat | | tar | [] | texinfo | | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] [] | wyslij-po | | xchat | [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] | +--------------------------------------------------+ af am an ar as ast az be be@latin bg bn_IN bs ca 6 0 1 2 3 19 1 10 3 28 3 1 38 crh cs da de el en en_GB en_ZA eo es et eu fa +-------------------------------------------------+ a2ps | [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] () | anubis | [] [] | aspell | [] [] [] [] [] | bash | [] [] [] | bfd | [] | bibshelf | [] [] [] | binutils | [] | bison | [] [] | bison-runtime | [] [] [] [] | bluez-pin | [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] [] [] | cflow | [] [] | clisp | [] [] [] [] | coreutils | [] [] [] [] | cpio | | cppi | | cpplib | [] [] [] | cryptsetup | [] | dfarc | [] [] [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] | dink | [] [] [] | doodle | [] | e2fsprogs | [] [] [] | enscript | [] [] [] | exif | () [] [] | fetchmail | [] [] () [] [] [] | findutils | [] [] [] | flex | [] [] | freedink | [] [] [] | gas | [] | gawk | [] [] [] | gcal | [] | gcc | [] [] | gettext-examples | [] [] [] [] | gettext-runtime | [] [] [] [] | gettext-tools | [] [] [] | gip | [] [] [] [] | gjay | [] | gliv | [] [] [] | glunarclock | [] [] | gnubiff | () | gnucash | [] () () () () | gnuedu | [] [] | gnulib | [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] | gpe-aerial | [] [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] | gpe-conf | [] [] [] | gpe-contacts | [] [] [] | gpe-edit | [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] | gpe-taskmanager | [] [] [] [] | gpe-timesheet | [] [] [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] () [] [] [] | gprof | [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] | grub | [] [] | gsasl | [] | gss | | gst-plugins-bad | [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] () [] | gtkam | [] [] () [] [] | gtkorphan | [] [] [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | [] [] [] | hello | [] [] [] [] | help2man | [] | hylafax | [] [] | idutils | [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] [] [] [] () [] [] [] () | iso_3166_2 | () | iso_4217 | [] [] [] () [] [] | iso_639 | [] [] [] [] () [] [] | iso_639_3 | [] | jwhois | [] | kbd | [] [] [] [] [] | keytouch | [] [] | keytouch-editor | [] [] | keytouch-keyboa... | [] | klavaro | [] [] [] [] | latrine | [] () | ld | [] [] | leafpad | [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | [] [] | libgphoto2 | [] () | libgphoto2_port | [] () [] | libgsasl | | libiconv | [] [] [] [] [] | libidn | [] [] [] | lifelines | [] () | liferea | [] [] [] [] [] | lilypond | [] [] [] | linkdr | [] [] [] | lordsawar | [] | lprng | | lynx | [] [] [] [] | m4 | [] [] [] [] | mailfromd | | mailutils | [] | make | [] [] [] | man-db | | man-db-manpages | | minicom | [] [] [] [] | mkisofs | | myserver | | nano | [] [] [] | opcodes | [] [] | parted | [] [] | pies | | popt | [] [] [] [] [] | psmisc | [] [] [] | pspp | [] | pwdutils | [] | radius | [] | recode | [] [] [] [] [] [] | rosegarden | () () () | rpm | [] [] [] | rush | | sarg | | screem | | scrollkeeper | [] [] [] [] [] | sed | [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | | skencil | [] () [] | solfege | [] [] [] | solfege-manual | [] [] | soundtracker | [] [] [] | sp | [] | sysstat | [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] | tin | [] [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] | vice | () () | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] | wyslij-po | | xchat | [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] [] | +-------------------------------------------------+ crh cs da de el en en_GB en_ZA eo es et eu fa 5 64 105 117 18 1 8 0 28 89 18 19 0 fi fr ga gl gu he hi hr hu hy id is it ja ka kn +----------------------------------------------------+ a2ps | [] [] [] [] | aegis | [] [] | ant-phone | [] [] | anubis | [] [] [] [] | aspell | [] [] [] [] | bash | [] [] [] [] | bfd | [] [] [] | bibshelf | [] [] [] [] [] | binutils | [] [] [] | bison | [] [] [] [] | bison-runtime | [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] | buzztard | [] | cflow | [] [] [] | clisp | [] | coreutils | [] [] [] [] [] | cpio | [] [] [] [] | cppi | [] [] | cpplib | [] [] [] | cryptsetup | [] [] [] | dfarc | [] [] [] | dialog | [] [] [] [] [] [] [] | dico | | diffutils | [] [] [] [] [] [] [] [] [] | dink | [] | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] | exif | [] [] [] [] [] [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] [] | flex | [] [] [] | freedink | [] [] [] | gas | [] [] | gawk | [] [] [] [] () [] | gcal | [] | gcc | [] | gettext-examples | [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] | gettext-tools | [] [] [] [] | gip | [] [] [] [] [] [] | gjay | [] | gliv | [] () | glunarclock | [] [] [] [] | gnubiff | () [] () | gnucash | () () () () () [] | gnuedu | [] [] | gnulib | [] [] [] [] [] [] | gnunet | | gnunet-gtk | [] | gnutls | [] [] | gold | [] [] | gpe-aerial | [] [] [] | gpe-beam | [] [] [] [] | gpe-bluetooth | [] [] [] [] | gpe-calendar | [] [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] [] [] | gpe-contacts | [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] [] | gpe-go | [] [] [] [] [] | gpe-login | [] [] [] | gpe-ownerinfo | [] [] [] [] [] | gpe-package | [] [] [] | gpe-sketchbook | [] [] [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] | gpe-todo | [] [] [] | gphoto2 | [] [] [] [] [] [] | gprof | [] [] [] [] | gpsdrive | [] [] [] | gramadoir | [] [] [] | grep | [] [] | grub | [] [] [] [] | gsasl | [] [] [] [] [] | gss | [] [] [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] [] [] | gtkam | [] [] [] [] [] | gtkorphan | [] [] [] | gtkspell | [] [] [] [] [] [] [] [] [] | gutenprint | [] [] [] [] | hello | [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] [] | indent | [] [] [] [] [] [] [] [] | iso_15924 | [] () [] [] | iso_3166 | [] () [] [] [] [] [] [] [] [] [] [] | iso_3166_2 | () [] [] [] | iso_4217 | [] () [] [] [] [] | iso_639 | [] () [] [] [] [] [] [] [] | iso_639_3 | () [] [] | jwhois | [] [] [] [] [] | kbd | [] [] | keytouch | [] [] [] [] [] [] | keytouch-editor | [] [] [] [] [] | keytouch-keyboa... | [] [] [] [] [] | klavaro | [] [] | latrine | [] [] [] | ld | [] [] [] [] | leafpad | [] [] [] [] [] [] [] () | libc | [] [] [] [] [] | libexif | [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] [] | libgphoto2_port | [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] [] | libidn | [] [] [] [] | lifelines | () | liferea | [] [] [] [] | lilypond | [] [] | linkdr | [] [] [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] [] [] | m4 | [] [] [] [] [] [] | mailfromd | | mailutils | [] [] | make | [] [] [] [] [] [] [] [] [] | man-db | [] [] | man-db-manpages | [] | minicom | [] [] [] [] [] | mkisofs | [] [] [] [] | myserver | | nano | [] [] [] [] [] [] | opcodes | [] [] [] [] | parted | [] [] [] [] | pies | | popt | [] [] [] [] [] [] [] [] [] | psmisc | [] [] [] | pspp | | pwdutils | [] [] | radius | [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () () () () | rpm | [] [] | rush | | sarg | [] | screem | [] [] | scrollkeeper | [] [] [] [] | sed | [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] [] [] [] | shishi | [] | skencil | [] | solfege | [] [] [] [] | solfege-manual | [] [] | soundtracker | [] [] | sp | [] () | sysstat | [] [] [] [] [] | tar | [] [] [] [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | [] [] | util-linux-ng | [] [] [] [] [] [] | vice | () () () | vmm | [] | vorbis-tools | [] | wastesedge | () () | wdiff | [] | wget | [] [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] [] [] | +----------------------------------------------------+ fi fr ga gl gu he hi hr hu hy id is it ja ka kn 105 121 53 20 4 8 3 5 53 2 120 5 84 67 0 4 ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne +-----------------------------------------------+ a2ps | [] | aegis | | ant-phone | | anubis | [] [] | aspell | [] | bash | | bfd | | bibshelf | [] [] | binutils | | bison | [] | bison-runtime | [] [] [] [] [] | bluez-pin | [] [] [] [] [] | bombono-dvd | | buzztard | | cflow | | clisp | | coreutils | [] | cpio | | cppi | | cpplib | | cryptsetup | | dfarc | [] | dialog | [] [] [] [] [] | dico | | diffutils | [] [] | dink | | doodle | | e2fsprogs | | enscript | | exif | [] | fetchmail | | findutils | | flex | | freedink | [] | gas | | gawk | | gcal | | gcc | | gettext-examples | [] [] [] [] | gettext-runtime | [] | gettext-tools | [] | gip | [] [] | gjay | | gliv | | glunarclock | [] | gnubiff | | gnucash | () () () () | gnuedu | | gnulib | | gnunet | | gnunet-gtk | | gnutls | [] | gold | | gpe-aerial | [] | gpe-beam | [] | gpe-bluetooth | [] [] | gpe-calendar | [] | gpe-clock | [] [] [] [] [] | gpe-conf | [] [] | gpe-contacts | [] [] | gpe-edit | [] | gpe-filemanager | [] [] | gpe-go | [] [] [] | gpe-login | [] | gpe-ownerinfo | [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] | gpe-su | [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] | gpe-timesheet | [] [] | gpe-today | [] [] [] [] | gpe-todo | [] [] | gphoto2 | | gprof | [] | gpsdrive | | gramadoir | | grep | | grub | | gsasl | | gss | | gst-plugins-bad | [] [] [] [] | gst-plugins-base | [] [] | gst-plugins-good | [] [] | gst-plugins-ugly | [] [] [] [] [] | gstreamer | | gtick | | gtkam | [] | gtkorphan | [] [] | gtkspell | [] [] [] [] [] [] [] | gutenprint | | hello | [] [] [] | help2man | | hylafax | | idutils | | indent | | iso_15924 | [] [] | iso_3166 | [] [] () [] [] [] [] [] | iso_3166_2 | | iso_4217 | [] [] | iso_639 | [] [] | iso_639_3 | [] | jwhois | [] | kbd | | keytouch | [] | keytouch-editor | [] | keytouch-keyboa... | [] | klavaro | [] | latrine | [] | ld | | leafpad | [] [] [] | libc | [] | libexif | | libextractor | | libgnutls | [] | libgpewidget | [] [] | libgpg-error | | libgphoto2 | | libgphoto2_port | | libgsasl | | libiconv | | libidn | | lifelines | | liferea | | lilypond | | linkdr | | lordsawar | | lprng | | lynx | | m4 | | mailfromd | | mailutils | | make | [] | man-db | | man-db-manpages | | minicom | [] | mkisofs | | myserver | | nano | [] [] | opcodes | | parted | | pies | | popt | [] [] [] | psmisc | | pspp | | pwdutils | | radius | | recode | | rosegarden | | rpm | | rush | | sarg | | screem | | scrollkeeper | [] [] | sed | | sharutils | | shishi | | skencil | | solfege | [] | solfege-manual | | soundtracker | | sp | | sysstat | [] | tar | [] | texinfo | [] | tin | | unicode-han-tra... | | unicode-transla... | | util-linux-ng | | vice | | vmm | | vorbis-tools | | wastesedge | | wdiff | | wget | [] | wyslij-po | | xchat | [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +-----------------------------------------------+ ko ku ky lg lt lv mk ml mn mr ms mt nb nds ne 20 5 10 1 13 48 4 2 2 4 24 10 20 3 1 nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr +---------------------------------------------------+ a2ps | [] [] [] [] [] [] [] [] | aegis | [] [] [] | ant-phone | [] [] | anubis | [] [] [] | aspell | [] [] [] [] [] | bash | [] [] | bfd | [] | bibshelf | [] [] | binutils | [] [] | bison | [] [] [] | bison-runtime | [] [] [] [] [] [] [] | bluez-pin | [] [] [] [] [] [] [] [] | bombono-dvd | [] () | buzztard | [] [] | cflow | [] | clisp | [] [] | coreutils | [] [] [] [] [] [] | cpio | [] [] [] | cppi | [] | cpplib | [] | cryptsetup | [] | dfarc | [] | dialog | [] [] [] [] | dico | [] | diffutils | [] [] [] [] [] [] | dink | () | doodle | [] [] | e2fsprogs | [] [] | enscript | [] [] [] [] [] | exif | [] [] [] () [] | fetchmail | [] [] [] [] | findutils | [] [] [] [] [] | flex | [] [] [] [] [] | freedink | [] [] | gas | | gawk | [] [] [] [] | gcal | | gcc | [] | gettext-examples | [] [] [] [] [] [] [] [] | gettext-runtime | [] [] [] [] [] [] [] [] [] | gettext-tools | [] [] [] [] [] [] | gip | [] [] [] [] [] | gjay | | gliv | [] [] [] [] [] [] | glunarclock | [] [] [] [] [] | gnubiff | [] () | gnucash | [] () () () | gnuedu | [] | gnulib | [] [] [] [] | gnunet | | gnunet-gtk | | gnutls | [] [] | gold | | gpe-aerial | [] [] [] [] [] [] [] | gpe-beam | [] [] [] [] [] [] [] | gpe-bluetooth | [] [] | gpe-calendar | [] [] [] [] | gpe-clock | [] [] [] [] [] [] [] [] | gpe-conf | [] [] [] [] [] [] [] | gpe-contacts | [] [] [] [] [] | gpe-edit | [] [] [] | gpe-filemanager | [] [] [] | gpe-go | [] [] [] [] [] [] [] [] | gpe-login | [] [] | gpe-ownerinfo | [] [] [] [] [] [] [] [] | gpe-package | [] [] | gpe-sketchbook | [] [] [] [] [] [] [] | gpe-su | [] [] [] [] [] [] [] [] | gpe-taskmanager | [] [] [] [] [] [] [] [] | gpe-timesheet | [] [] [] [] [] [] [] [] | gpe-today | [] [] [] [] [] [] [] [] | gpe-todo | [] [] [] [] [] | gphoto2 | [] [] [] [] [] [] [] [] | gprof | [] [] [] | gpsdrive | [] [] | gramadoir | [] [] | grep | [] [] [] [] | grub | [] [] [] | gsasl | [] [] [] [] | gss | [] [] [] | gst-plugins-bad | [] [] [] [] [] [] | gst-plugins-base | [] [] [] [] [] | gst-plugins-good | [] [] [] [] [] | gst-plugins-ugly | [] [] [] [] [] [] | gstreamer | [] [] [] [] [] | gtick | [] [] [] | gtkam | [] [] [] [] [] [] | gtkorphan | [] | gtkspell | [] [] [] [] [] [] [] [] [] [] | gutenprint | [] [] | hello | [] [] [] [] | help2man | [] [] | hylafax | [] | idutils | [] [] [] [] [] | indent | [] [] [] [] [] [] [] | iso_15924 | [] [] [] [] | iso_3166 | [] [] [] [] [] () [] [] [] [] [] [] [] [] | iso_3166_2 | [] [] [] | iso_4217 | [] [] [] [] [] [] [] [] | iso_639 | [] [] [] [] [] [] [] [] [] | iso_639_3 | [] [] | jwhois | [] [] [] [] | kbd | [] [] [] | keytouch | [] [] [] | keytouch-editor | [] [] [] | keytouch-keyboa... | [] [] [] | klavaro | [] [] | latrine | [] [] | ld | | leafpad | [] [] [] [] [] [] [] [] [] | libc | [] [] [] [] | libexif | [] [] () [] | libextractor | | libgnutls | [] [] | libgpewidget | [] [] [] | libgpg-error | [] [] | libgphoto2 | [] [] | libgphoto2_port | [] [] [] [] [] | libgsasl | [] [] [] [] [] | libiconv | [] [] [] [] [] | libidn | [] [] | lifelines | [] [] | liferea | [] [] [] [] [] () () [] | lilypond | [] | linkdr | [] [] [] | lordsawar | | lprng | [] | lynx | [] [] [] | m4 | [] [] [] [] [] | mailfromd | [] | mailutils | [] | make | [] [] [] [] | man-db | [] [] [] | man-db-manpages | [] [] [] | minicom | [] [] [] [] | mkisofs | [] [] [] | myserver | | nano | [] [] [] [] | opcodes | [] [] | parted | [] [] [] [] | pies | [] | popt | [] [] [] [] | psmisc | [] [] [] | pspp | [] [] | pwdutils | [] | radius | [] [] [] | recode | [] [] [] [] [] [] [] [] | rosegarden | () () | rpm | [] [] [] | rush | [] [] | sarg | | screem | | scrollkeeper | [] [] [] [] [] [] [] [] | sed | [] [] [] [] [] [] [] [] [] | sharutils | [] [] [] [] | shishi | [] | skencil | [] [] | solfege | [] [] [] [] | solfege-manual | [] [] [] | soundtracker | [] | sp | | sysstat | [] [] [] [] | tar | [] [] [] [] | texinfo | [] [] [] [] | tin | [] | unicode-han-tra... | | unicode-transla... | | util-linux-ng | [] [] [] [] [] | vice | [] | vmm | [] | vorbis-tools | [] [] | wastesedge | [] | wdiff | [] [] | wget | [] [] [] [] [] [] [] | wyslij-po | [] [] [] | xchat | [] [] [] [] [] [] [] [] [] | xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] [] [] [] [] | xkeyboard-config | [] [] [] | +---------------------------------------------------+ nl nn or pa pl ps pt pt_BR ro ru rw sk sl sq sr 135 10 4 7 105 1 29 62 47 91 3 54 46 9 37 sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW +---------------------------------------------------+ a2ps | [] [] [] [] [] | 27 aegis | [] | 9 ant-phone | [] [] [] [] | 9 anubis | [] [] [] [] | 15 aspell | [] [] [] | 20 bash | [] [] [] | 12 bfd | [] | 6 bibshelf | [] [] [] | 16 binutils | [] [] | 8 bison | [] [] | 12 bison-runtime | [] [] [] [] [] [] | 29 bluez-pin | [] [] [] [] [] [] [] [] | 37 bombono-dvd | [] | 4 buzztard | [] | 7 cflow | [] [] [] | 9 clisp | | 10 coreutils | [] [] [] [] | 22 cpio | [] [] [] [] [] [] | 13 cppi | [] [] | 5 cpplib | [] [] [] [] [] [] | 14 cryptsetup | [] [] | 7 dfarc | [] | 9 dialog | [] [] [] [] [] [] [] | 30 dico | [] | 2 diffutils | [] [] [] [] [] [] | 30 dink | | 4 doodle | [] [] | 7 e2fsprogs | [] [] [] | 11 enscript | [] [] [] [] | 17 exif | [] [] [] | 16 fetchmail | [] [] [] | 17 findutils | [] [] [] [] [] | 20 flex | [] [] [] [] | 15 freedink | [] | 10 gas | [] | 4 gawk | [] [] [] [] | 18 gcal | [] [] | 5 gcc | [] [] [] | 7 gettext-examples | [] [] [] [] [] [] [] | 34 gettext-runtime | [] [] [] [] [] [] [] | 29 gettext-tools | [] [] [] [] [] [] | 22 gip | [] [] [] [] | 22 gjay | [] | 3 gliv | [] [] [] | 14 glunarclock | [] [] [] [] [] | 19 gnubiff | [] [] | 4 gnucash | () [] () [] () | 10 gnuedu | [] [] | 7 gnulib | [] [] [] [] | 16 gnunet | [] | 1 gnunet-gtk | [] [] [] | 5 gnutls | [] [] [] | 10 gold | [] | 4 gpe-aerial | [] [] [] | 18 gpe-beam | [] [] [] | 19 gpe-bluetooth | [] [] [] | 13 gpe-calendar | [] [] [] [] | 12 gpe-clock | [] [] [] [] [] | 28 gpe-conf | [] [] [] [] | 20 gpe-contacts | [] [] [] | 17 gpe-edit | [] [] [] | 12 gpe-filemanager | [] [] [] [] | 16 gpe-go | [] [] [] [] [] | 25 gpe-login | [] [] [] | 11 gpe-ownerinfo | [] [] [] [] [] | 25 gpe-package | [] [] [] | 13 gpe-sketchbook | [] [] [] | 20 gpe-su | [] [] [] [] [] | 30 gpe-taskmanager | [] [] [] [] [] | 29 gpe-timesheet | [] [] [] [] [] | 25 gpe-today | [] [] [] [] [] [] | 30 gpe-todo | [] [] [] [] | 17 gphoto2 | [] [] [] [] [] | 24 gprof | [] [] [] | 15 gpsdrive | [] [] [] | 11 gramadoir | [] [] [] | 11 grep | [] [] [] | 10 grub | [] [] [] | 14 gsasl | [] [] [] [] | 14 gss | [] [] [] | 11 gst-plugins-bad | [] [] [] [] | 26 gst-plugins-base | [] [] [] [] [] | 24 gst-plugins-good | [] [] [] [] | 24 gst-plugins-ugly | [] [] [] [] [] | 29 gstreamer | [] [] [] [] | 22 gtick | [] [] [] | 13 gtkam | [] [] [] | 20 gtkorphan | [] [] [] | 14 gtkspell | [] [] [] [] [] [] [] [] [] | 45 gutenprint | [] | 10 hello | [] [] [] [] [] [] | 21 help2man | [] [] | 7 hylafax | [] | 5 idutils | [] [] [] [] | 17 indent | [] [] [] [] [] [] | 30 iso_15924 | () [] () [] [] | 16 iso_3166 | [] [] () [] [] () [] [] [] () | 53 iso_3166_2 | () [] () [] | 9 iso_4217 | [] () [] [] () [] [] | 26 iso_639 | [] [] [] () [] () [] [] [] [] | 38 iso_639_3 | [] () | 8 jwhois | [] [] [] [] [] | 16 kbd | [] [] [] [] [] | 15 keytouch | [] [] [] | 16 keytouch-editor | [] [] [] | 14 keytouch-keyboa... | [] [] [] | 14 klavaro | [] | 11 latrine | [] [] [] | 10 ld | [] [] [] [] | 11 leafpad | [] [] [] [] [] [] | 33 libc | [] [] [] [] [] | 21 libexif | [] () | 7 libextractor | [] | 1 libgnutls | [] [] [] | 9 libgpewidget | [] [] [] | 14 libgpg-error | [] [] [] | 9 libgphoto2 | [] [] | 8 libgphoto2_port | [] [] [] [] | 14 libgsasl | [] [] [] | 13 libiconv | [] [] [] [] | 21 libidn | () [] [] | 11 lifelines | [] | 4 liferea | [] [] [] | 21 lilypond | [] | 7 linkdr | [] [] [] [] [] | 17 lordsawar | | 1 lprng | [] | 3 lynx | [] [] [] [] | 17 m4 | [] [] [] [] | 19 mailfromd | [] [] | 3 mailutils | [] | 5 make | [] [] [] [] | 21 man-db | [] [] [] | 8 man-db-manpages | | 4 minicom | [] [] | 16 mkisofs | [] [] | 9 myserver | | 0 nano | [] [] [] [] | 21 opcodes | [] [] [] | 11 parted | [] [] [] [] [] | 15 pies | [] [] | 3 popt | [] [] [] [] [] [] | 27 psmisc | [] [] | 11 pspp | | 4 pwdutils | [] [] | 6 radius | [] [] | 9 recode | [] [] [] [] | 28 rosegarden | () | 0 rpm | [] [] [] | 11 rush | [] [] | 4 sarg | | 1 screem | [] | 3 scrollkeeper | [] [] [] [] [] | 27 sed | [] [] [] [] [] | 30 sharutils | [] [] [] [] [] | 22 shishi | [] | 3 skencil | [] [] | 7 solfege | [] [] [] [] | 16 solfege-manual | [] | 8 soundtracker | [] [] [] | 9 sp | [] | 3 sysstat | [] [] | 15 tar | [] [] [] [] [] [] | 23 texinfo | [] [] [] [] [] | 17 tin | | 4 unicode-han-tra... | | 0 unicode-transla... | | 2 util-linux-ng | [] [] [] [] | 20 vice | () () | 1 vmm | [] | 4 vorbis-tools | [] | 6 wastesedge | | 2 wdiff | [] [] | 7 wget | [] [] [] [] [] | 26 wyslij-po | [] [] | 8 xchat | [] [] [] [] [] [] | 36 xdg-user-dirs | [] [] [] [] [] [] [] [] [] [] | 63 xkeyboard-config | [] [] [] | 22 +---------------------------------------------------+ 85 teams sv sw ta te tg th tr uk vi wa zh_CN zh_HK zh_TW 178 domains 119 1 3 3 0 10 65 51 155 17 98 7 41 2618 Some counters in the preceding matrix are higher than the number of visible blocks let us expect. This is because a few extra PO files are used for implementing regional variants of languages, or language dialects. For a PO file in the matrix above to be effective, the package to which it applies should also have been internationalized and distributed as such by its maintainer. There might be an observable lag between the mere existence a PO file and its wide availability in a distribution. If June 2010 seems to be old, you may fetch a more recent copy of this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date matrix with full percentage details can be found at `http://translationproject.org/extra/matrix.html'. 1.5 Using `gettext' in new packages =================================== If you are writing a freely available program and want to internationalize it you are welcome to use GNU `gettext' in your package. Of course you have to respect the GNU Library General Public License which covers the use of the GNU `gettext' library. This means in particular that even non-free programs can use `libintl' as a shared library, whereas only free software can use `libintl' as a static library or use modified versions of `libintl'. Once the sources are changed appropriately and the setup can handle the use of `gettext' the only thing missing are the translations. The Free Translation Project is also available for packages which are not developed inside the GNU project. Therefore the information given above applies also for every other Free Software Project. Contact `coordinator@translationproject.org' to make the `.pot' files available to the translation teams. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/GNUmakefile�����������������������������������������������������������������������������0000644�0000000�0000000�00000010735�12153706065�011661� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Having a separate GNUmakefile lets me 'include' the dynamically # generated rules created via cfg.mk (package-local configuration) # as well as maint.mk (generic maintainer rules). # This makefile is used only if you run GNU Make. # It is necessary if you want to build targets usually of interest # only to the maintainer. # Copyright (C) 2001, 2003, 2006-2013 Free Software Foundation, Inc. # 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 3 of the License, or # (at your option) any later version. # 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. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # If the user runs GNU make but has not yet run ./configure, # give them a diagnostic. _gl-Makefile := $(wildcard [M]akefile) ifneq ($(_gl-Makefile),) # Make tar archive easier to reproduce. export TAR_OPTIONS = --owner=0 --group=0 --numeric-owner # Allow the user to add to this in the Makefile. ALL_RECURSIVE_TARGETS = include Makefile # Some projects override e.g., _autoreconf here. -include $(srcdir)/cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include $(srcdir)/maint.mk # Ensure that $(VERSION) is up to date for dist-related targets, but not # for others: rerunning autoreconf and recompiling everything isn't cheap. _have-git-version-gen := \ $(shell test -f $(srcdir)/$(_build-aux)/git-version-gen && echo yes) ifeq ($(_have-git-version-gen)0,yes$(MAKELEVEL)) _is-dist-target ?= $(filter-out %clean, \ $(filter maintainer-% dist% alpha beta stable,$(MAKECMDGOALS))) _is-install-target ?= $(filter-out %check, $(filter install%,$(MAKECMDGOALS))) ifneq (,$(_is-dist-target)$(_is-install-target)) _curr-ver := $(shell cd $(srcdir) \ && $(_build-aux)/git-version-gen \ .tarball-version \ $(git-version-gen-tag-sed-script)) ifneq ($(_curr-ver),$(VERSION)) ifeq ($(_curr-ver),UNKNOWN) $(info WARNING: unable to verify if $(VERSION) is the correct version) else ifneq (,$(_is-install-target)) # GNU Coding Standards state that 'make install' should not cause # recompilation after 'make all'. But as long as changing the version # string alters config.h, the cost of having 'make all' always have an # up-to-date version is prohibitive. So, as a compromise, we merely # warn when installing a version string that is out of date; the user # should run 'autoreconf' (or something like 'make distcheck') to # fix the version, 'make all' to propagate it, then 'make install'. $(info WARNING: version string $(VERSION) is out of date;) $(info run '$(MAKE) _version' to fix it) else $(info INFO: running autoreconf for new version string: $(_curr-ver)) GNUmakefile: _version touch GNUmakefile endif endif endif endif endif .PHONY: _version _version: cd $(srcdir) && rm -rf autom4te.cache .version && $(_autoreconf) $(MAKE) $(AM_MAKEFLAGS) Makefile else .DEFAULT_GOAL := abort-due-to-no-makefile srcdir = . # The package can override .DEFAULT_GOAL to run actions like autoreconf. -include ./cfg.mk # Allow cfg.mk to override these. _build-aux ?= build-aux _autoreconf ?= autoreconf -v include ./maint.mk ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile) $(MAKECMDGOALS): abort-due-to-no-makefile endif abort-due-to-no-makefile: @echo There seems to be no Makefile in this directory. 1>&2 @echo "You must run ./configure before running 'make'." 1>&2 @exit 1 endif # Tell version 3.79 and up of GNU make to not build goals in this # directory in parallel, in case someone tries to build multiple # targets, and one of them can cause a recursive target to be invoked. # Only set this if Automake doesn't provide it. AM_RECURSIVE_TARGETS ?= $(RECURSIVE_TARGETS:-recursive=) \ $(RECURSIVE_CLEAN_TARGETS:-recursive=) \ dist distcheck tags ctags ALL_RECURSIVE_TARGETS += $(AM_RECURSIVE_TARGETS) ifneq ($(word 2, $(MAKECMDGOALS)), ) ifneq ($(filter $(ALL_RECURSIVE_TARGETS), $(MAKECMDGOALS)), ) .NOTPARALLEL: endif endif �����������������������������������libidn-1.28/TODO������������������������������������������������������������������������������������0000644�0000000�0000000�00000001521�12153706572�010273� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������Libidn TODO -- Future directions. Copyright (C) 2002-2013 Simon Josefsson See the end for copying conditions. If you like to start working on anything, please let me know so work duplication can be avoided. - Optimize stringprep for speed, the table searching is slow (but does it matter?). - Optimize for size? The stringprep tables can be compressed _alot_ (most map entries are simply zeroes). - Port applications to use libidn. - Include more stringprep profiles. - Improve IDN tool. - Reimplement punycode without string length restrictions. - Reject invalid Unicode data. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/����������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253754�011032� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_idna.c������������������������������������������������������������������������0000644�0000000�0000000�00000024040�12153706572�012717� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_idna.c --- Self tests for idna_to_ascii(). * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <stringprep.h> #include <idna.h> #include <idn-free.h> #include "utils.h" struct idna { const char *name; size_t inlen; uint32_t in[100]; const char *out; int flags; int toasciirc; int tounicoderc; }; static const struct idna idna[] = { { "Arabic (Egyptian)", 17, { 0x0644, 0x064A, 0x0647, 0x0645, 0x0627, 0x0628, 0x062A, 0x0643, 0x0644, 0x0645, 0x0648, 0x0634, 0x0639, 0x0631, 0x0628, 0x064A, 0x061F}, IDNA_ACE_PREFIX "egbpdaj6bu4bxfgehfvwxn", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Chinese (simplified)", 9, { 0x4ED6, 0x4EEC, 0x4E3A, 0x4EC0, 0x4E48, 0x4E0D, 0x8BF4, 0x4E2D, 0x6587}, IDNA_ACE_PREFIX "ihqwcrb4cv8a8dqg056pqjye", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Chinese (traditional)", 9, { 0x4ED6, 0x5011, 0x7232, 0x4EC0, 0x9EBD, 0x4E0D, 0x8AAA, 0x4E2D, 0x6587}, IDNA_ACE_PREFIX "ihqwctvzc91f659drss3x8bo0yb", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Czech: Pro[CCARON]prost[ECARON]nemluv[IACUTE][CCARON]esky", 22, { 0x0050, 0x0072, 0x006F, 0x010D, 0x0070, 0x0072, 0x006F, 0x0073, 0x0074, 0x011B, 0x006E, 0x0065, 0x006D, 0x006C, 0x0075, 0x0076, 0x00ED, 0x010D, 0x0065, 0x0073, 0x006B, 0x0079}, IDNA_ACE_PREFIX "Proprostnemluvesky-uyb24dma41a", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Hebrew", 22, { 0x05DC, 0x05DE, 0x05D4, 0x05D4, 0x05DD, 0x05E4, 0x05E9, 0x05D5, 0x05D8, 0x05DC, 0x05D0, 0x05DE, 0x05D3, 0x05D1, 0x05E8, 0x05D9, 0x05DD, 0x05E2, 0x05D1, 0x05E8, 0x05D9, 0x05EA}, IDNA_ACE_PREFIX "4dbcagdahymbxekheh6e0a7fei0b", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Hindi (Devanagari)", 30, { 0x092F, 0x0939, 0x0932, 0x094B, 0x0917, 0x0939, 0x093F, 0x0928, 0x094D, 0x0926, 0x0940, 0x0915, 0x094D, 0x092F, 0x094B, 0x0902, 0x0928, 0x0939, 0x0940, 0x0902, 0x092C, 0x094B, 0x0932, 0x0938, 0x0915, 0x0924, 0x0947, 0x0939, 0x0948, 0x0902}, IDNA_ACE_PREFIX "i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd", 0, IDNA_SUCCESS}, { "Japanese (kanji and hiragana)", 18, { 0x306A, 0x305C, 0x307F, 0x3093, 0x306A, 0x65E5, 0x672C, 0x8A9E, 0x3092, 0x8A71, 0x3057, 0x3066, 0x304F, 0x308C, 0x306A, 0x3044, 0x306E, 0x304B}, IDNA_ACE_PREFIX "n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa", 0, IDNA_SUCCESS}, { "Korean (Hangul syllables)", 24, { 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774, 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74, 0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C}, IDNA_ACE_PREFIX "989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt" "30a5jpsd879ccm6fea98c", 0, IDNA_PUNYCODE_ERROR, IDNA_PUNYCODE_ERROR}, /* too long output */ { "Russian (Cyrillic)", 28, { 0x043F, 0x043E, 0x0447, 0x0435, 0x043C, 0x0443, 0x0436, 0x0435, 0x043E, 0x043D, 0x0438, 0x043D, 0x0435, 0x0433, 0x043E, 0x0432, 0x043E, 0x0440, 0x044F, 0x0442, 0x043F, 0x043E, 0x0440, 0x0443, 0x0441, 0x0441, 0x043A, 0x0438}, IDNA_ACE_PREFIX "b1abfaaepdrnnbgefbadotcwatmq2g4l", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Spanish: Porqu[EACUTE]nopuedensimplementehablarenEspa[NTILDE]ol", 40, { 0x0050, 0x006F, 0x0072, 0x0071, 0x0075, 0x00E9, 0x006E, 0x006F, 0x0070, 0x0075, 0x0065, 0x0064, 0x0065, 0x006E, 0x0073, 0x0069, 0x006D, 0x0070, 0x006C, 0x0065, 0x006D, 0x0065, 0x006E, 0x0074, 0x0065, 0x0068, 0x0061, 0x0062, 0x006C, 0x0061, 0x0072, 0x0065, 0x006E, 0x0045, 0x0073, 0x0070, 0x0061, 0x00F1, 0x006F, 0x006C}, IDNA_ACE_PREFIX "PorqunopuedensimplementehablarenEspaol-fmd56a", 0, IDNA_SUCCESS}, { "Vietnamese", 31, { 0x0054, 0x1EA1, 0x0069, 0x0073, 0x0061, 0x006F, 0x0068, 0x1ECD, 0x006B, 0x0068, 0x00F4, 0x006E, 0x0067, 0x0074, 0x0068, 0x1EC3, 0x0063, 0x0068, 0x1EC9, 0x006E, 0x00F3, 0x0069, 0x0074, 0x0069, 0x1EBF, 0x006E, 0x0067, 0x0056, 0x0069, 0x1EC7, 0x0074}, IDNA_ACE_PREFIX "TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g", 0, IDNA_SUCCESS}, { "Japanese 3[NEN]B[GUMI][KINPACHI][SENSEI]", 8, { 0x0033, 0x5E74, 0x0042, 0x7D44, 0x91D1, 0x516B, 0x5148, 0x751F}, IDNA_ACE_PREFIX "3B-ww4c5e180e575a65lsy2b", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese [AMURO][NAMIE]-with-SUPER-MONKEYS", 24, { 0x5B89, 0x5BA4, 0x5948, 0x7F8E, 0x6075, 0x002D, 0x0077, 0x0069, 0x0074, 0x0068, 0x002D, 0x0053, 0x0055, 0x0050, 0x0045, 0x0052, 0x002D, 0x004D, 0x004F, 0x004E, 0x004B, 0x0045, 0x0059, 0x0053}, IDNA_ACE_PREFIX "-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n", 0, IDNA_SUCCESS}, { "Japanese Hello-Another-Way-[SOREZORE][NO][BASHO]", 25, { 0x0048, 0x0065, 0x006C, 0x006C, 0x006F, 0x002D, 0x0041, 0x006E, 0x006F, 0x0074, 0x0068, 0x0065, 0x0072, 0x002D, 0x0057, 0x0061, 0x0079, 0x002D, 0x305D, 0x308C, 0x305E, 0x308C, 0x306E, 0x5834, 0x6240}, IDNA_ACE_PREFIX "Hello-Another-Way--fc4qua05auwb3674vfr0b", 0, IDNA_SUCCESS}, { "Japanese [HITOTSU][YANE][NO][SHITA]2", 8, { 0x3072, 0x3068, 0x3064, 0x5C4B, 0x6839, 0x306E, 0x4E0B, 0x0032}, IDNA_ACE_PREFIX "2-u9tlzr9756bt3uc0v", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese Maji[DE]Koi[SURU]5[BYOU][MAE]", 13, { 0x004D, 0x0061, 0x006A, 0x0069, 0x3067, 0x004B, 0x006F, 0x0069, 0x3059, 0x308B, 0x0035, 0x79D2, 0x524D}, IDNA_ACE_PREFIX "MajiKoi5-783gue6qz075azm5e", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese [PAFII]de[RUNBA]", 9, { 0x30D1, 0x30D5, 0x30A3, 0x30FC, 0x0064, 0x0065, 0x30EB, 0x30F3, 0x30D0}, IDNA_ACE_PREFIX "de-jg4avhby1noc0d", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Japanese [SONO][SUPIIDO][DE]", 7, { 0x305D, 0x306E, 0x30B9, 0x30D4, 0x30FC, 0x30C9, 0x3067}, IDNA_ACE_PREFIX "d9juau41awczczp", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Greek", 8, { 0x03b5, 0x03bb, 0x03bb, 0x03b7, 0x03bd, 0x03b9, 0x03ba, 0x03ac}, IDNA_ACE_PREFIX "hxargifdar", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Maltese (Malti)", 10, { 0x0062, 0x006f, 0x006e, 0x0121, 0x0075, 0x0073, 0x0061, 0x0127, 0x0127, 0x0061}, IDNA_ACE_PREFIX "bonusaa-5bb1da", 0, IDNA_SUCCESS, IDNA_SUCCESS}, { "Russian (Cyrillic)", 28, { 0x043f, 0x043e, 0x0447, 0x0435, 0x043c, 0x0443, 0x0436, 0x0435, 0x043e, 0x043d, 0x0438, 0x043d, 0x0435, 0x0433, 0x043e, 0x0432, 0x043e, 0x0440, 0x044f, 0x0442, 0x043f, 0x043e, 0x0440, 0x0443, 0x0441, 0x0441, 0x043a, 0x0438}, IDNA_ACE_PREFIX "b1abfaaepdrnnbgefbadotcwatmq2g4l", 0, IDNA_SUCCESS, IDNA_SUCCESS}, #if 0 { "(S) -> $1.00 <-", 11, { 0x002D, 0x003E, 0x0020, 0x0024, 0x0031, 0x002E, 0x0030, 0x0030, 0x0020, 0x003C, 0x002D}, IDNA_ACE_PREFIX "-> $1.00 <--", 0, IDNA_SUCCESS, IDNA_SUCCESS}, #endif { /* XXX depends on IDNA_ACE_PREFIX */ "ToASCII() with ACE prefix", 4 + 3, { 'x', 'n', '-', '-', 'f', 'o', 0x3067}, IDNA_ACE_PREFIX "too long too long too long too long too long too " "long too long too long too long too long ", 0, IDNA_CONTAINS_ACE_PREFIX, IDNA_PUNYCODE_ERROR} }; void doit (void) { char label[100]; uint32_t *ucs4label = NULL; uint32_t tmp[100]; size_t len, len2, i; int rc; for (i = 0; i < sizeof (idna) / sizeof (idna[0]); i++) { if (debug) printf ("IDNA entry %ld: %s\n", i, idna[i].name); if (debug) { printf ("in:\n"); ucs4print (idna[i].in, idna[i].inlen); } rc = idna_to_ascii_4i (idna[i].in, idna[i].inlen, label, idna[i].flags); if (rc != idna[i].toasciirc) { fail ("IDNA entry %ld failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (debug && rc == IDNA_SUCCESS) { printf ("computed out: %s\n", label); printf ("expected out: %s\n", idna[i].out); } else if (debug) printf ("returned %d expected %d\n", rc, idna[i].toasciirc); if (rc == IDNA_SUCCESS) { if (strlen (idna[i].out) != strlen (label) || strcasecmp (idna[i].out, label) != 0) { fail ("IDNA entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n"); } else if (debug) printf ("OK\n"); if (ucs4label) idn_free (ucs4label); ucs4label = stringprep_utf8_to_ucs4 (idna[i].out, -1, &len); if (debug) { printf ("in: %s (%ld==%ld)\n", idna[i].out, strlen (idna[i].out), len); ucs4print (ucs4label, len); } len2 = sizeof (tmp) / sizeof (tmp[0]); rc = idna_to_unicode_44i (ucs4label, len, tmp, &len2, idna[i].flags); if (debug) { printf ("expected out (%ld):\n", rc == IDNA_SUCCESS ? idna[i].inlen : len); if (rc == IDNA_SUCCESS) ucs4print (idna[i].in, idna[i].inlen); else ucs4print (ucs4label, len); printf ("computed out (%ld):\n", len2); ucs4print (tmp, len2); } if (rc != idna[i].tounicoderc) { fail ("IDNA entry %ld failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if ((rc == IDNA_SUCCESS && (len2 != idna[i].inlen || memcmp (idna[i].in, tmp, len2) != 0)) || (rc != IDNA_SUCCESS && (len2 != len || memcmp (ucs4label, tmp, len) != 0))) { if (debug) { if (rc == IDNA_SUCCESS) printf ("len=%ld len2=%ld\n", len2, idna[i].inlen); else printf ("len=%ld len2=%ld\n", len, len2); } fail ("IDNA entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); } if (ucs4label) idn_free (ucs4label); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_punycode.c��������������������������������������������������������������������0000644�0000000�0000000�00000020515�12153706572�013635� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_punycode.c --- Self tests for punycode. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <punycode.h> #include "utils.h" struct punycode { const char *name; size_t inlen; uint32_t in[100]; const char *out; int rc; }; const struct punycode punycode[] = { { "(A) Arabic (Egyptian)", 17, { 0x0644, 0x064A, 0x0647, 0x0645, 0x0627, 0x0628, 0x062A, 0x0643, 0x0644, 0x0645, 0x0648, 0x0634, 0x0639, 0x0631, 0x0628, 0x064A, 0x061F}, "egbpdaj6bu4bxfgehfvwxn", PUNYCODE_SUCCESS}, { "(B) Chinese (simplified)", 9, { 0x4ED6, 0x4EEC, 0x4E3A, 0x4EC0, 0x4E48, 0x4E0D, 0x8BF4, 0x4E2D, 0x6587}, "ihqwcrb4cv8a8dqg056pqjye", PUNYCODE_SUCCESS}, { "(C) Chinese (traditional)", 9, { 0x4ED6, 0x5011, 0x7232, 0x4EC0, 0x9EBD, 0x4E0D, 0x8AAA, 0x4E2D, 0x6587}, "ihqwctvzc91f659drss3x8bo0yb", PUNYCODE_SUCCESS}, { "(D) Czech: Pro<ccaron>prost<ecaron>nemluv<iacute><ccaron>esky", 22, { 0x0050, 0x0072, 0x006F, 0x010D, 0x0070, 0x0072, 0x006F, 0x0073, 0x0074, 0x011B, 0x006E, 0x0065, 0x006D, 0x006C, 0x0075, 0x0076, 0x00ED, 0x010D, 0x0065, 0x0073, 0x006B, 0x0079}, "Proprostnemluvesky-uyb24dma41a", PUNYCODE_SUCCESS}, { "(E) Hebrew:", 22, { 0x05DC, 0x05DE, 0x05D4, 0x05D4, 0x05DD, 0x05E4, 0x05E9, 0x05D5, 0x05D8, 0x05DC, 0x05D0, 0x05DE, 0x05D3, 0x05D1, 0x05E8, 0x05D9, 0x05DD, 0x05E2, 0x05D1, 0x05E8, 0x05D9, 0x05EA}, "4dbcagdahymbxekheh6e0a7fei0b", PUNYCODE_SUCCESS}, { "(F) Hindi (Devanagari):", 30, { 0x092F, 0x0939, 0x0932, 0x094B, 0x0917, 0x0939, 0x093F, 0x0928, 0x094D, 0x0926, 0x0940, 0x0915, 0x094D, 0x092F, 0x094B, 0x0902, 0x0928, 0x0939, 0x0940, 0x0902, 0x092C, 0x094B, 0x0932, 0x0938, 0x0915, 0x0924, 0x0947, 0x0939, 0x0948, 0x0902}, "i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd", PUNYCODE_SUCCESS}, { "(G) Japanese (kanji and hiragana):", 18, { 0x306A, 0x305C, 0x307F, 0x3093, 0x306A, 0x65E5, 0x672C, 0x8A9E, 0x3092, 0x8A71, 0x3057, 0x3066, 0x304F, 0x308C, 0x306A, 0x3044, 0x306E, 0x304B}, "n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa", PUNYCODE_SUCCESS}, { "(H) Korean (Hangul syllables):", 24, { 0xC138, 0xACC4, 0xC758, 0xBAA8, 0xB4E0, 0xC0AC, 0xB78C, 0xB4E4, 0xC774, 0xD55C, 0xAD6D, 0xC5B4, 0xB97C, 0xC774, 0xD574, 0xD55C, 0xB2E4, 0xBA74, 0xC5BC, 0xB9C8, 0xB098, 0xC88B, 0xC744, 0xAE4C}, "989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c", PUNYCODE_SUCCESS}, { "(I) Russian (Cyrillic):", 28, { 0x043F, 0x043E, 0x0447, 0x0435, 0x043C, 0x0443, 0x0436, 0x0435, 0x043E, 0x043D, 0x0438, 0x043D, 0x0435, 0x0433, 0x043E, 0x0432, 0x043E, 0x0440, 0x044F, 0x0442, 0x043F, 0x043E, 0x0440, 0x0443, 0x0441, 0x0441, 0x043A, 0x0438}, "b1abfaaepdrnnbgefbadotcwatmq2g4l", PUNYCODE_SUCCESS}, { "(J) Spanish: Porqu<eacute>nopuedensimplementehablarenEspa<ntilde>ol", 40, { 0x0050, 0x006F, 0x0072, 0x0071, 0x0075, 0x00E9, 0x006E, 0x006F, 0x0070, 0x0075, 0x0065, 0x0064, 0x0065, 0x006E, 0x0073, 0x0069, 0x006D, 0x0070, 0x006C, 0x0065, 0x006D, 0x0065, 0x006E, 0x0074, 0x0065, 0x0068, 0x0061, 0x0062, 0x006C, 0x0061, 0x0072, 0x0065, 0x006E, 0x0045, 0x0073, 0x0070, 0x0061, 0x00F1, 0x006F, 0x006C}, "PorqunopuedensimplementehablarenEspaol-fmd56a", PUNYCODE_SUCCESS}, { "(K) Vietnamese:", 31, { 0x0054, 0x1EA1, 0x0069, 0x0073, 0x0061, 0x006F, 0x0068, 0x1ECD, 0x006B, 0x0068, 0x00F4, 0x006E, 0x0067, 0x0074, 0x0068, 0x1EC3, 0x0063, 0x0068, 0x1EC9, 0x006E, 0x00F3, 0x0069, 0x0074, 0x0069, 0x1EBF, 0x006E, 0x0067, 0x0056, 0x0069, 0x1EC7, 0x0074}, "TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g", PUNYCODE_SUCCESS}, { "(L) 3<nen>B<gumi><kinpachi><sensei>", 8, { 0x0033, 0x5E74, 0x0042, 0x7D44, 0x91D1, 0x516B, 0x5148, 0x751F}, "3B-ww4c5e180e575a65lsy2b", PUNYCODE_SUCCESS}, { "(M) <amuro><namie>-with-SUPER-MONKEYS", 24, { 0x5B89, 0x5BA4, 0x5948, 0x7F8E, 0x6075, 0x002D, 0x0077, 0x0069, 0x0074, 0x0068, 0x002D, 0x0053, 0x0055, 0x0050, 0x0045, 0x0052, 0x002D, 0x004D, 0x004F, 0x004E, 0x004B, 0x0045, 0x0059, 0x0053}, "-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n", PUNYCODE_SUCCESS}, { "(N) Hello-Another-Way-<sorezore><no><basho>", 25, { 0x0048, 0x0065, 0x006C, 0x006C, 0x006F, 0x002D, 0x0041, 0x006E, 0x006F, 0x0074, 0x0068, 0x0065, 0x0072, 0x002D, 0x0057, 0x0061, 0x0079, 0x002D, 0x305D, 0x308C, 0x305E, 0x308C, 0x306E, 0x5834, 0x6240}, "Hello-Another-Way--fc4qua05auwb3674vfr0b", PUNYCODE_SUCCESS}, { "(O) <hitotsu><yane><no><shita>2", 8, { 0x3072, 0x3068, 0x3064, 0x5C4B, 0x6839, 0x306E, 0x4E0B, 0x0032}, "2-u9tlzr9756bt3uc0v", PUNYCODE_SUCCESS}, { "(P) Maji<de>Koi<suru>5<byou><mae>", 13, { 0x004D, 0x0061, 0x006A, 0x0069, 0x3067, 0x004B, 0x006F, 0x0069, 0x3059, 0x308B, 0x0035, 0x79D2, 0x524D}, "MajiKoi5-783gue6qz075azm5e", PUNYCODE_SUCCESS}, { "(Q) <pafii>de<runba>", 9, { 0x30D1, 0x30D5, 0x30A3, 0x30FC, 0x0064, 0x0065, 0x30EB, 0x30F3, 0x30D0}, "de-jg4avhby1noc0d", PUNYCODE_SUCCESS}, { "(R) <sono><supiido><de>", 7, { 0x305D, 0x306E, 0x30B9, 0x30D4, 0x30FC, 0x30C9, 0x3067}, "d9juau41awczczp", PUNYCODE_SUCCESS}, { "(S) -> $1.00 <-", 11, { 0x002D, 0x003E, 0x0020, 0x0024, 0x0031, 0x002E, 0x0030, 0x0030, 0x0020, 0x003C, 0x002D}, "-> $1.00 <--", PUNYCODE_SUCCESS} }; void doit (void) { char *p; uint32_t *q; int rc; size_t i, outlen; p = malloc (sizeof (*p) * BUFSIZ); if (p == NULL) fail ("malloc() returned NULL\n"); q = malloc (sizeof (*q) * BUFSIZ); if (q == NULL) fail ("malloc() returned NULL\n"); for (i = 0; i < sizeof (punycode) / sizeof (punycode[0]); i++) { if (debug) printf ("PUNYCODE entry %ld: %s\n", i, punycode[i].name); if (debug) { printf ("in:\n"); ucs4print (punycode[i].in, punycode[i].inlen); } outlen = BUFSIZ; rc = punycode_encode (punycode[i].inlen, punycode[i].in, NULL, &outlen, p); if (rc != punycode[i].rc) { fail ("punycode_encode() entry %ld failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (rc == PUNYCODE_SUCCESS) p[outlen] = '\0'; if (debug && rc == PUNYCODE_SUCCESS) { printf ("computed out: %s\n", p); printf ("expected out: %s\n", punycode[i].out); } else if (debug) printf ("returned %d expected %d\n", rc, punycode[i].rc); if (rc == PUNYCODE_SUCCESS) { if (strlen (punycode[i].out) != strlen (p) || memcmp (punycode[i].out, p, strlen (p)) != 0) { fail ("punycode() entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); } else if (debug) printf ("OK\n\n"); if (debug) { printf ("in: %s\n", punycode[i].out); } outlen = BUFSIZ; rc = punycode_decode (strlen (punycode[i].out), punycode[i].out, &outlen, q, NULL); if (rc != punycode[i].rc) { fail ("punycode() entry %ld failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (debug && rc == PUNYCODE_SUCCESS) { printf ("computed out:\n"); ucs4print (q, outlen); printf ("expected out:\n"); ucs4print (punycode[i].in, punycode[i].inlen); } else if (debug) printf ("returned %d expected %d\n", rc, punycode[i].rc); if (rc == PUNYCODE_SUCCESS) { if (punycode[i].inlen != outlen || memcmp (punycode[i].in, q, outlen) != 0) { fail ("punycode_decode() entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); } else if (debug) printf ("OK\n\n"); } free (q); free (p); } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/utils.c���������������������������������������������������������������������������0000644�0000000�0000000�00000006761�12153706572�012264� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* utils.c --- Self test utilities. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include "utils.h" int debug = 0; int error_count = 0; int break_on_error = 0; void fail (const char *format, ...) { va_list arg_ptr; va_start (arg_ptr, format); vfprintf (stderr, format, arg_ptr); va_end (arg_ptr); error_count++; if (break_on_error) exit (EXIT_FAILURE); } void escapeprint (const char *str, size_t len) { size_t i; printf (" (length %ld bytes):\n\t", len); for (i = 0; i < len; i++) { if (((str[i] & 0xFF) >= 'A' && (str[i] & 0xFF) <= 'Z') || ((str[i] & 0xFF) >= 'a' && (str[i] & 0xFF) <= 'z') || ((str[i] & 0xFF) >= '0' && (str[i] & 0xFF) <= '9') || (str[i] & 0xFF) == ' ' || (str[i] & 0xFF) == '.') printf ("%c", (str[i] & 0xFF)); else printf ("\\x%02X", (str[i] & 0xFF)); if ((i + 1) % 16 == 0 && (i + 1) < len) printf ("'\n\t'"); } printf ("\n"); } void hexprint (const char *str, size_t len) { size_t i; printf ("\t;; "); for (i = 0; i < len; i++) { printf ("%02x ", (str[i] & 0xFF)); if ((i + 1) % 8 == 0) printf (" "); if ((i + 1) % 16 == 0 && i + 1 < len) printf ("\n\t;; "); } printf ("\n"); } void binprint (const char *str, size_t len) { size_t i; printf ("\t;; "); for (i = 0; i < len; i++) { printf ("%d%d%d%d%d%d%d%d ", (str[i] & 0xFF) & 0x80 ? 1 : 0, (str[i] & 0xFF) & 0x40 ? 1 : 0, (str[i] & 0xFF) & 0x20 ? 1 : 0, (str[i] & 0xFF) & 0x10 ? 1 : 0, (str[i] & 0xFF) & 0x08 ? 1 : 0, (str[i] & 0xFF) & 0x04 ? 1 : 0, (str[i] & 0xFF) & 0x02 ? 1 : 0, (str[i] & 0xFF) & 0x01 ? 1 : 0); if ((i + 1) % 3 == 0) printf (" "); if ((i + 1) % 6 == 0 && i + 1 < len) printf ("\n\t;; "); } printf ("\n"); } void ucs4print (const uint32_t * str, size_t len) { size_t i; printf ("\t;; "); for (i = 0; (len == (size_t) -1) ? str[i] : i < len; i++) { printf ("U+%04x ", str[i]); if ((i + 1) % 4 == 0) printf (" "); if ((i + 1) % 8 == 0 && i + 1 < len) printf ("\n\t;; "); } puts (""); } int main (int argc, char *argv[]) { do if (strcmp (argv[argc - 1], "-v") == 0 || strcmp (argv[argc - 1], "--verbose") == 0) debug = 1; else if (strcmp (argv[argc - 1], "-b") == 0 || strcmp (argv[argc - 1], "--break-on-error") == 0) break_on_error = 1; else if (strcmp (argv[argc - 1], "-h") == 0 || strcmp (argv[argc - 1], "-?") == 0 || strcmp (argv[argc - 1], "--help") == 0) { printf ("Usage: %s [-vbh?] [--verbose] [--break-on-error] [--help]\n", argv[0]); return 1; } while (argc-- > 1); doit (); if (debug) printf ("Self tests done with %d errors\n", error_count); return error_count ? 1 : 0; } ���������������libidn-1.28/tests/tst_symbols.c���������������������������������������������������������������������0000644�0000000�0000000�00000013147�12153706572�013502� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_symbols.c --- Test if all exported symbols are available. * Copyright (C) 2010-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <assert.h> #include <stringprep.h> #include <idna.h> #include <punycode.h> #include <idn-free.h> #include <pr29.h> #ifdef WITH_TLD # include <tld.h> #endif static void assert_symbol_exists (const void *p) { assert (p); } int main (void) { assert_symbol_exists ((const void *) idn_free); assert_symbol_exists ((const void *) idna_strerror); assert_symbol_exists ((const void *) idna_to_ascii_4i); assert_symbol_exists ((const void *) idna_to_ascii_4z); assert_symbol_exists ((const void *) idna_to_ascii_8z); assert_symbol_exists ((const void *) idna_to_ascii_lz); assert_symbol_exists ((const void *) idna_to_unicode_44i); assert_symbol_exists ((const void *) idna_to_unicode_4z4z); assert_symbol_exists ((const void *) idna_to_unicode_8z4z); assert_symbol_exists ((const void *) idna_to_unicode_8z8z); assert_symbol_exists ((const void *) idna_to_unicode_8zlz); assert_symbol_exists ((const void *) idna_to_unicode_lzlz); assert_symbol_exists ((const void *) pr29_4); assert_symbol_exists ((const void *) pr29_4z); assert_symbol_exists ((const void *) pr29_8z); assert_symbol_exists ((const void *) pr29_strerror); assert_symbol_exists ((const void *) punycode_decode); assert_symbol_exists ((const void *) punycode_encode); assert_symbol_exists ((const void *) punycode_strerror); assert_symbol_exists ((const void *) stringprep); assert_symbol_exists ((const void *) stringprep_4i); assert_symbol_exists ((const void *) stringprep_4zi); assert_symbol_exists ((const void *) stringprep_check_version); assert_symbol_exists ((const void *) stringprep_convert); assert_symbol_exists ((const void *) stringprep_iscsi); assert_symbol_exists ((const void *) stringprep_iscsi_prohibit); assert_symbol_exists ((const void *) stringprep_kerberos5); assert_symbol_exists ((const void *) stringprep_locale_charset); assert_symbol_exists ((const void *) stringprep_locale_to_utf8); assert_symbol_exists ((const void *) stringprep_nameprep); assert_symbol_exists ((const void *) stringprep_plain); assert_symbol_exists ((const void *) stringprep_profile); assert_symbol_exists ((const void *) stringprep_profiles); assert_symbol_exists ((const void *) stringprep_rfc3454_A_1); assert_symbol_exists ((const void *) stringprep_rfc3454_B_1); assert_symbol_exists ((const void *) stringprep_rfc3454_B_2); assert_symbol_exists ((const void *) stringprep_rfc3454_B_3); assert_symbol_exists ((const void *) stringprep_rfc3454_C_1_1); assert_symbol_exists ((const void *) stringprep_rfc3454_C_1_2); assert_symbol_exists ((const void *) stringprep_rfc3454_C_2_1); assert_symbol_exists ((const void *) stringprep_rfc3454_C_2_2); assert_symbol_exists ((const void *) stringprep_rfc3454_C_3); assert_symbol_exists ((const void *) stringprep_rfc3454_C_4); assert_symbol_exists ((const void *) stringprep_rfc3454_C_5); assert_symbol_exists ((const void *) stringprep_rfc3454_C_6); assert_symbol_exists ((const void *) stringprep_rfc3454_C_7); assert_symbol_exists ((const void *) stringprep_rfc3454_C_8); assert_symbol_exists ((const void *) stringprep_rfc3454_C_9); assert_symbol_exists ((const void *) stringprep_rfc3454_D_1); assert_symbol_exists ((const void *) stringprep_rfc3454_D_2); assert_symbol_exists ((const void *) stringprep_saslprep); assert_symbol_exists ((const void *) stringprep_saslprep_space_map); assert_symbol_exists ((const void *) stringprep_strerror); assert_symbol_exists ((const void *) stringprep_trace); assert_symbol_exists ((const void *) stringprep_ucs4_nfkc_normalize); assert_symbol_exists ((const void *) stringprep_ucs4_to_utf8); assert_symbol_exists ((const void *) stringprep_unichar_to_utf8); assert_symbol_exists ((const void *) stringprep_utf8_nfkc_normalize); assert_symbol_exists ((const void *) stringprep_utf8_to_locale); assert_symbol_exists ((const void *) stringprep_utf8_to_ucs4); assert_symbol_exists ((const void *) stringprep_utf8_to_unichar); assert_symbol_exists ((const void *) stringprep_xmpp_nodeprep); assert_symbol_exists ((const void *) stringprep_xmpp_nodeprep_prohibit); assert_symbol_exists ((const void *) stringprep_xmpp_resourceprep); assert_symbol_exists ((const void *) tld_check_4); assert_symbol_exists ((const void *) tld_check_4t); assert_symbol_exists ((const void *) tld_check_4tz); assert_symbol_exists ((const void *) tld_check_4z); assert_symbol_exists ((const void *) tld_check_8z); assert_symbol_exists ((const void *) tld_check_lz); assert_symbol_exists ((const void *) tld_default_table); assert_symbol_exists ((const void *) tld_get_4); assert_symbol_exists ((const void *) tld_get_4z); assert_symbol_exists ((const void *) tld_get_table); assert_symbol_exists ((const void *) tld_get_z); assert_symbol_exists ((const void *) tld_strerror); return 0; } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_nfkc.c������������������������������������������������������������������������0000644�0000000�0000000�00000006056�12153706572�012734� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_nfkc.c --- Self tests for stringprep_utf8_nfkc_normalize(). * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <stringprep.h> #include "utils.h" struct nfkc { const char *in; const char *out; }; static struct nfkc nfkc[] = { {"\xC2\xB5", "\xCE\xBC"}, {"\xC2\xAA", "\x61"}, /* From <http://www.unicode.org/review/pr-29.html>. Note that we * compute the output according to Unicode 3.2 without the proposed * update. * * 1. * * U+1100 (ᄀ) HANGUL CHOSEONG KIYEOK + * U+0300 (◌̀) COMBINING GRAVE ACCENT + * U+1161 (ᅡ) HANGUL JUNGSEONG A * * According to the old language, the NFC form of this would be B: * * 2. * * U+AC00 (가) HANGUL SYLLABLE GA + * U+0300 (◌̀) COMBINING GRAVE ACCENT */ {"\xE1\x84\x80\xCC\x80\xE1\x85\xA1", "\xEA\xB0\x80\xCC\x80"}, /* Second test case from page. Again, we do not implement the * updated proposal. <U+0B47; U+0300; U+0B3E> -> U+0B4B U+0300 */ {"\xE0\xAD\x87\xCC\x80\xE0\xAC\xBE", "\xE0\xAD\x8b\xCC\x80"} }; void doit (void) { char *out; size_t i; for (i = 0; i < sizeof (nfkc) / sizeof (nfkc[0]); i++) { if (debug) printf ("NFKC entry %ld\n", i); out = stringprep_utf8_nfkc_normalize (nfkc[i].in, (ssize_t) strlen (nfkc[i].in)); if (out == NULL) { fail ("NFKC entry %ld failed fatally\n", i); continue; } if (debug) { uint32_t *t; size_t len; printf ("in:\n"); escapeprint (nfkc[i].in, strlen (nfkc[i].in)); hexprint (nfkc[i].in, strlen (nfkc[i].in)); binprint (nfkc[i].in, strlen (nfkc[i].in)); printf ("out:\n"); escapeprint (out, strlen (out)); hexprint (out, strlen (out)); binprint (out, strlen (out)); t = stringprep_utf8_to_ucs4 (out, -1, &len); if (t) { ucs4print (t, len); free (t); } printf ("expected out:\n"); escapeprint (nfkc[i].out, strlen (nfkc[i].out)); hexprint (nfkc[i].out, strlen (nfkc[i].out)); binprint (nfkc[i].out, strlen (nfkc[i].out)); } if (strlen (nfkc[i].out) != strlen (out) || memcmp (nfkc[i].out, out, strlen (out)) != 0) { fail ("NFKC entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n"); free (out); } } ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_idna2.c�����������������������������������������������������������������������0000644�0000000�0000000�00000046531�12153706572�013012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_idna2.c --- Self tests for idna_to_ascii_8z(). * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <idna.h> #include "utils.h" struct idna { const char *in; const char *out; }; static const struct idna idna[] = { {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc3\xad\x64\x6e", "example.xn--dn-mja" /* 1-1-1 Has an IDN in just the TLD */ }, {"\xc3\xab\x78\x2e\xc3\xad\x64\x6e", "xn--x-ega.xn--dn-mja" /* 1-1-2 Has an IDN in the TLD and SLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc3\xa5\xc3\xbe\xc3\xa7", "example.xn--5cae2e" /* 1-2-1 Latin-1 TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc4\x83\x62\xc4\x89", "example.xn--b-rhat" /* 1-2-2 Latin Extended A TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc8\xa7\xc6\x80\xc6\x88", "example.xn--lhaq98b" /* 1-2-3 Latin Extended B TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\xb8\x81\xe1\xb8\x83\xe1\xb8\x89", "example.xn--2fges" /* 1-2-4 Latin Extended Additional TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe4\xb8\xbf\xe4\xba\xba\xe5\xb0\xb8", "example.xn--xiqplj17a" /* 1-3-1 Han TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe3\x81\x8b\xe3\x81\x8c\xe3\x81\x8d", "example.xn--u8jcd" /* 1-3-2 Hiragana TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe3\x82\xab\xe3\x82\xac\xe3\x82\xad", "example.xn--lckcd" /* 1-3-3 Katakana TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x84\x80\xe1\x85\xa1\xe1\x86\xa8", "example.xn--p39a" /* 1-3-4 Hangul Jamo TLD */ /* Don't resolve as example.xn--ypd8qrh */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xea\xb1\xa9\xeb\x93\x86\xec\x80\xba", "example.xn--o69aq2nl0j" /* 1-3-5 Hangul TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xea\x80\x8a\xea\x80\xa0\xea\x8a\xb8", "example.xn--6l7arby7j" /* 1-3-6 Yi TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xce\xb1\xce\xb2\xce\xb3", "example.xn--mxacd" /* 1-3-7 Greek TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\xbc\x82\xe1\xbc\xa6\xe1\xbd\x95", "example.xn--fng7dpg" /* 1-3-8 Greek Extended TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd0\xb0\xd0\xb1\xd0\xb2", "example.xn--80acd" /* 1-3-9 Cyrillic TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd5\xa1\xd5\xa2\xd5\xa3", "example.xn--y9acd" /* 1-3-10 Armeian TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x83\x90\xe1\x83\x91\xe1\x83\x92", "example.xn--lodcd" /* 1-3-11 Georgian TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe2\x88\xa1\xe2\x86\xba\xe2\x8a\x82", "example.xn--b7gxomk" /* 1-4-1 Symbols TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xa4\x95\xe0\xa4\x96\xe0\xa4\x97", "example.xn--11bcd" /* 1-5-1 Devanagari TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xa6\x95\xe0\xa6\x96\xe0\xa6\x97", "example.xn--p5bcd" /* 1-5-2 Bengali TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xa8\x95\xe0\xa8\x96\xe0\xa8\x97", "example.xn--d9bcd" /* 1-5-3 Gurmukhi TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xaa\x95\xe0\xaa\x96\xe0\xaa\x97", "example.xn--0dccd" /* 1-5-4 Gujarati TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xac\x95\xe0\xac\x96\xe0\xac\x97", "example.xn--ohccd" /* 1-5-5 Oriya TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xae\x95\xe0\xae\x99\xe0\xae\x9a", "example.xn--clcid" /* 1-5-6 Tamil TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb0\x95\xe0\xb0\x96\xe0\xb0\x97", "example.xn--zoccd" /* 1-5-7 Telugu TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb2\x95\xe0\xb2\x96\xe0\xb2\x97", "example.xn--nsccd" /* 1-5-8 Kannada TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb4\x95\xe0\xb4\x96\xe0\xb4\x97", "example.xn--bwccd" /* 1-5-9 Malayalam TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb6\x9a\xe0\xb6\x9b\xe0\xb6\x9c", "example.xn--3zccd" /* 1-5-10 Sinhala TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xb8\x81\xe0\xb8\x82\xe0\xb8\x83", "example.xn--12ccd" /* 1-5-11 Thai TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xba\x81\xe0\xba\x82\xe0\xba\x84", "example.xn--p6ccg" /* 1-5-12 Lao TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe0\xbd\x80\xe0\xbd\x81\xe0\xbd\x82", "example.xn--5cdcd" /* 1-5-13 Tibetan TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x80\x80\xe1\x80\x81\xe1\x80\x82", "example.xn--nidcd" /* 1-5-14 Myanmar TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\x9e\x80\xe1\x9e\x81\xe1\x9e\x82", "example.xn--i2ecd" /* 1-5-15 Khmer TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xe1\xa0\xa0\xe1\xa0\xa1\xe1\xa0\xa2", "example.xn--26ecd" /* 1-5-16 Mongolian TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd8\xa7\xd8\xa8\xd8\xa9", "example.xn--mgbcd" /* 1-6-1 Arabic TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xd7\x90\xd7\x91\xd7\x92", "example.xn--4dbcd" /* 1-6-2 Hebrew TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xdc\x90\xdc\x91\xdc\x92", "example.xn--9mbcd" /* 1-6-3 Syriac TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\x61\x62\x63\xe3\x82\xab\xe3\x82\xac\xe3\x82\xad", "example.xn--abc-mj4bfg" /* 1-7-1 ASCII and non-Latin TLD */ }, {"\x65\x78\x61\x6d\x70\x6c\x65\x2e\xc3\xa5\xc3\xbe\xc3\xa7\xe3\x82\xab\xe3\x82\xac\xe3\x82\xad", "example.xn--5cae2e328wfag" /* 1-7-2 Latin (non-ASCII) and non-Latin TLD */ }, {"\xc3\xad\x21\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-1-1 Includes ! before Nameprep */ /* Don't resolve as xn--!dn-qma.example */ }, {"\xc3\xad\x24\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-1-2 Includes $ before Nameprep */ /* Don't resolve as xn--$dn-qma.example */ }, {"\xc3\xad\x2b\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-1-3 Includes + before Nameprep */ /* Don't resolve as xn--+dn-qma.example */ }, {"\x2d\xc3\xad\x31\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-2-1 Leading hyphen before Nameprep */ /* Don't resolve as xn---1dn-vpa.example */ }, {"\xc3\xad\x31\x64\x6e\x2d\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-2-2 Trailing hyphen before Nameprep */ /* Don't resolve as xn--1dn--upa.example */ }, {"\xc3\xad\xef\xbc\x8b\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-3-1 Gets a + after Nameprep */ /* Don't resolve as xn--dn-mja0331x.example */ }, {"\xc3\xad\xe2\x81\xbc\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-3-2 Gets a = after Nameprep */ /* Don't resolve as xn--dn-mja0343a.example */ }, {"\xef\xb9\xa3\xc3\xad\x32\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-4-1 Leading hyphen after Nameprep */ /* Don't resolve as xn--2dn-qma32863a.example */ /* Don't resolve as xn---2dn-vpa.example */ }, {"\xc3\xad\x32\x64\x6e\xef\xbc\x8d\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-3-4-2 Trailing hyphen after Nameprep */ /* Don't resolve as xn--2dn-qma79363a.example */ /* Don't resolve as xn--2dn--upa.example */ }, {"\xc2\xb9\x31\x2e\x65\x78\x61\x6d\x70\x6c\x65", "11.example" /* 2-4-1 All-ASCII check, Latin */ }, {"\xe2\x85\xa5\x76\x69\x2e\x65\x78\x61\x6d\x70\x6c\x65", "vivi.example" /* 2-4-2 All-ASCII check, symbol */ }, {"\xc3\x9f\x73\x73\x2e\x65\x78\x61\x6d\x70\x6c\x65", "ssss.example" /* 2-4-3 All-ASCII check, sharp S */ }, {"\x78\x6e\x2d\x2d\xc3\xaf\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-5-1 ACE prefix before Nameprep, body */ /* Don't resolve as xn--xn--dn-sja.example */ /* Don't resolve as xn--dn-sja.example */ }, {"\xe2\x85\xb9\x6e\x2d\x2d\xc3\xa4\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 2-5-2 ACE prefix before Nameprep, prefix */ /* Don't resolve as xn--xn--dn-uia.example */ /* Don't resolve as xn--dn-uia.example */ }, {"", "" /* 2-8-1 Zero-length label after Nameprep */ /* Don't resolve as xn--kba.example */ /* Don't resolve as xn--.example */ }, {"\x33\x30\x30\x32\x2d\x74\x65\x73\x74\xe3\x80\x82\xc3\xad\x64\x6e", "3002-test.xn--dn-mja" /* 2-9-1 U+3002 acts as a label separator */ /* Don't resolve as xn--3002-testdn-wcb2087m.example */ }, {"\x66\x66\x30\x65\x2d\x74\x65\x73\x74\xef\xbc\x8e\xc3\xad\x64\x6e", "ff0e-test.xn--dn-mja" /* 2-9-2 U+FF0E acts as a label separator */ /* Don't resolve as xn--ff0e-testdn-wcb45865f.example */ }, {"\x66\x66\x36\x31\x2d\x74\x65\x73\x74\xef\xbd\xa1\xc3\xad\x64\x6e", "ff61-test.xn--dn-mja" /* 2-9-3 U+FF61 acts as a label separator */ /* Don't resolve as xn--ff61-testdn-wcb33975f.example */ }, {"\x30\x30\x61\x64\x6f\x75\x74\xc2\xad\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--00adoutdn-m5a.example" /* 4-1-1-1 00adout<00AD><00ED>dn.example -> 00adout<00ED>dn.example */ /* Don't resolve as xn--00adoutdn-cna81e.example */ }, {"\x32\x30\x30\x64\x6f\x75\x74\xe2\x80\x8d\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--200doutdn-m5a.example" /* 4-1-1-2 200dout<200D><00ED>dn.example -> 200dout<00ED>dn.example */ /* Don't resolve as xn--200doutdn-m5a1678f.example */ }, {"\x73\x69\x6d\x70\x6c\x65\x63\x61\x70\x44\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--simplecapddn-1fb.example" /* 4-1-2-1 simplecap<0044><00ED>dn.example -> simplecap<0064><00ED>dn.example */ }, {"\x6c\x61\x74\x69\x6e\x74\x6f\x67\x72\x65\x65\x6b\xc2\xb5\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--latintogreekdn-cmb716i.example" /* 4-1-2-2 latintogreek<00B5><00ED>dn.example -> latintogreek<03BC><00ED>dn.example */ /* Don't resolve as xn--latintogreekdn-cxa01g.example */ }, {"\x6c\x61\x74\x69\x6e\x65\x78\x74\xc3\x87\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--latinextdn-v6a6e.example" /* 4-1-2-3 latinext<00C7><00ED>dn.example -> latinext<00E7><00ED>dn.example */ /* Don't resolve as xn--latinextdn-twa07b.example */ }, {"\x73\x68\x61\x72\x70\x73\xc3\x9f\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--sharpsssdn-r8a.example" /* 4-1-2-4 sharps<00DF><00ED>dn.example -> sharpsss<00ED>dn.example */ /* Don't resolve as xn--sharpsdn-vya4l.example */ }, {"\x74\x75\x72\x6b\x69\x73\x68\x69\xc4\xb0\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--turkishiidn-wcb701e.example" /* 4-1-2-5 turkishi<0130><00ED>dn.example -> turkishi<0069><0307><00ED>dn.example */ /* Don't resolve as xn--turkishidn-r8a71f.example */ }, {"\x65\x78\x70\x74\x77\x6f\xc5\x89\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--exptwondn-m5a502c.example" /* 4-1-2-6 exptwo<0149><00ED>dn.example -> exptwo<02BC><006E><00ED>dn.example */ /* Don't resolve as xn--exptwodn-h2a33g.example */ }, {"\x61\x64\x64\x66\x6f\x6c\x64\xcf\x92\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--addfolddn-m5a121f.example" /* 4-1-2-7 addfold<03D2><00ED>dn.example -> addfold<03C5><00ED>dn.example */ /* Don't resolve as xn--addfolddn-m5a462f.example */ }, {"\x65\x78\x70\x74\x68\x72\x65\x65\xe1\xbd\x92\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--expthreedn-r8a5844g.example" /* 4-1-2-8 expthree<1F52><00ED>dn.example -> expthree<03C5><0313><0300><00ED>dn.example */ }, {"\x6e\x6f\x6e\x62\x6d\x70\xf0\x90\x90\x80\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--nonbmpdn-h2a34747d.example" /* 4-1-2-9 nonbmp<10400><00ED>dn.example -> nonbmp<10428><00ED>dn.example */ /* Don't resolve as xn--nonbmpdn-h2a37046d.example */ }, {"\x6e\x6f\x6e\x62\x6d\x70\x74\x6f\x61\x73\x63\x69\x69\xf0\x9d\x90\x80\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--nonbmptoasciiadn-msb.example" /* 4-1-2-10 nonbmptoascii<1D400><00ED>dn.example -> nonbmptoasciia<00ED>dn.example */ /* Don't resolve as xn--nonbmptoasciidn-hpb54112i.example */ }, {"\x72\x65\x67\x63\x6f\x6d\x62\x65\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--regcombdn-h4a8b.example" /* 4-2-1-1 regcomb<0065><0301><00ED>dn.example -> regcomb<00E9><00ED>dn.example */ /* Don't resolve as xn--regcombedn-r8a794d.example */ }, {"\x63\x6f\x6d\x62\x61\x6e\x64\x63\x61\x73\x65\x45\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--combandcasedn-lhb4d.example" /* 4-2-1-2 combandcase<0045><0301><00ED>dn.example -> combandcase<00E9><00ED>dn.example */ /* Don't resolve as xn--combandcaseedn-cmb526f.example */ }, {"\x61\x64\x6a\x63\x6f\x6d\x62\xc2\xba\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--adjcombdn-m5a9d.example" /* 4-2-1-3 adjcomb<00BA><0301><00ED>dn.example -> adjcomb<00F3><00ED>dn.example */ /* Don't resolve as xn--adjcombdn-1qa57cp3r.example */ }, {"\x65\x78\x74\x63\x6f\x6d\x62\x6f\x63\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--extcombodn-r8a52a.example" /* 4-2-1-4 extcombo<0063><0301><00ED>dn.example -> extcombo<0107><00ED>dn.example */ /* Don't resolve as xn--extcombocdn-wcb920e.example */ }, {"\x64\x6f\x75\x62\x6c\x65\x64\x69\x61\x63\x31\x75\xcc\x88\xcc\x81\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--doublediac1dn-6ib836a.example" /* 4-2-1-5 doublediac1<0075><0308><0301><00ED>dn.example -> doublediac2<01D8><00ED>dn.example */ /* Don't resolve as xn--doublediac1udn-cmb526fnd.example */ }, {"\x64\x6f\x75\x62\x6c\x65\x64\x69\x61\x63\x32\x75\xcc\x81\xcc\x88\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--doublediac2dn-6ib8qs73a.example" /* 4-2-1-6 doublediac2<0075><0301><0308><00ED>dn.example -> doublediac2<01D8><00ED>dn.example */ /* Don't resolve as xn--doublediac2udn-cmb526fod.example */ }, {"\x6e\x65\x77\x6e\x6f\x72\x6d\xf0\xaf\xa1\xb4\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--newnormdn-m5a7856x.example" /* 4-2-2-1 newnorm<2F874><00ED>dn.example -> newnorm<5F33><00ED>dn.example should not become <5F53> */ /* Don't resolve as xn--newnormdn-m5a9396x.example */ /* Don't resolve as xn--newnormdn-m5a9968x.example */ }, {"\xe2\x80\x80\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-1 Spacing */ /* Don't resolve as xn--dn-mja3392a.example */ }, {"\xdb\x9d\xc3\xad\x64\x6e\x2d\x32\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-2 Control */ /* Don't resolve as xn--dn-2-upa332g.example */ }, {"\xee\x80\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-3 Private use */ /* Don't resolve as xn--dn-mja1659t.example */ }, {"\xf3\xb0\x80\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-4 Private use, non-BMP */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xef\xb7\x9d\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-5 Non-character */ /* Don't resolve as xn--dn-mja1210x.example */ }, {"\xf0\x9f\xbf\xbe\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-6 Non-character, non-BMP */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xef\xbf\xbd\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-7 Surrogate points */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xef\xbf\xba\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-8 Inappropriate for plain */ /* Don't resolve as xn--dn-mja5822x.example */ }, {"\xe2\xbf\xb5\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-9 Inappropriate for canonical */ /* Don't resolve as xn--dn-mja3729b.example */ }, {"\xe2\x81\xaa\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-10 Change display simple */ /* Don't resolve as xn--dn-mja7533a.example */ }, {"\xe2\x80\x8f\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-11 Change display RTL */ /* Don't resolve as xn--dn-mja3992a.example */ }, {"\xf3\xa0\x80\x81\xf3\xa0\x81\x85\xf3\xa0\x81\x8e\x68\x69\x69\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-3-12 Language tags */ /* Don't resolve as xn--hiidn-km43aaa.example */ }, {"\xd8\xa8\x6f\xd8\xb8\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-1 Arabic RandALCat-LCat-RandALCat */ /* Don't resolve as xn--o-0mc3c.example */ }, {"\xd8\xa8\xd8\xb8\x6f\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-2 Arabic RandALCat-RandALCat-other */ /* Don't resolve as xn--o-0mc2c.example */ }, {"\x6f\xd8\xa8\xd8\xb8\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-3 Arabic other-RandALCat-RandALCat */ /* Don't resolve as xn--o-1mc2c.example */ }, {"\xd7\x91\x6f\xd7\xa1\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-4 Hebrew RandALCat-LCat-RandALCat */ /* Don't resolve as xn--o-1hc3c.example */ }, {"\xd7\x91\xd7\xa1\x6f\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-5 Hebrew RandALCat-RandALCat-other */ /* Don't resolve as xn--o-1hc2c.example */ }, {"\x6f\xd7\x91\xd7\xa1\x2e\x65\x78\x61\x6d\x70\x6c\x65", "" /* 4-4-6 Hebrew other-RandALCat-RandALCat */ /* Don't resolve as xn--o-2hc2c.example */ }, {"\xc8\xb7\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja33k.example" /* 5-1-1 Unassigned in BMP; zone editors should reject */ }, {"\xf0\x90\x88\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja7734x.example" /* 5-1-2 Unassinged outside BMP; zone editors should reject */ /* Don't resolve as xn--dn-mja7922x.example */ }, {"\xc8\xb4\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja12k.example" /* 5-2-1 Newly assigned in BMP; zone editors should reject */ }, {"\xf0\x90\x80\x85\xc3\xad\x64\x6e\x2e\x65\x78\x61\x6d\x70\x6c\x65", "xn--dn-mja9232x.example" /* 5-2-2 Newly assigned outside of BMP; zone editors should reject */ /* Don't resolve as xn--dn-mja7922x.example */ } }; void doit (void) { size_t i; char *out; int rc; for (i = 0; i < sizeof (idna) / sizeof (idna[0]); i++) { if (debug) printf ("IDNA2 entry %ld\n", i); if (debug) { uint32_t *p; size_t len; printf ("in: %s\n", idna[i].in); hexprint (idna[i].in, strlen (idna[i].in)); escapeprint (idna[i].in, strlen (idna[i].in)); p = stringprep_utf8_to_ucs4 (idna[i].in, -1, &len); ucs4print (p, len); free (p); } rc = idna_to_ascii_8z (idna[i].in, &out, IDNA_ALLOW_UNASSIGNED | IDNA_USE_STD3_ASCII_RULES); if (rc != IDNA_SUCCESS && strlen (idna[i].out) > 0) { fail ("IDNA2 entry %ld failed: %d\n", i, rc); continue; } if (debug && rc == IDNA_SUCCESS) { printf ("computed out: %s\n", out); printf ("expected out: %s\n", idna[i].out); } else if (debug) printf ("returned %d\n", rc); if (rc == IDNA_SUCCESS) { if (strlen (idna[i].out) != strlen (out) || strcasecmp (idna[i].out, out) != 0) { fail ("IDNA2 entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n"); free (out); out = NULL; } else if (rc != IDNA_SUCCESS && strlen (idna[i].out) == 0 && debug) printf ("OK (fail)\n"); else if (debug) printf ("OK\n"); } } �����������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_idna3.c�����������������������������������������������������������������������0000644�0000000�0000000�00000004545�12153706572�013012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_idna3.c --- Self tests for upper-case XN-- regression. * Copyright (C) 2011-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <idna.h> #include <idn-free.h> #include "utils.h" struct idna { const char *in; const char *out; }; static const struct idna idna[] = { /* Test vectors from http://bugs.debian.org/610617 */ { "XN----7SBAABF4DLDYSIEHP4NTB.XN--P1AI", "\xd1\x81\xd0\xb0\xd0\xbc\xd0\xb0\xd1\x80\xd1\x81\xd0\xba\xd0\xb0\xd1" "\x8f\x2d\xd0\xbe\xd0\xb1\xd0\xbb\xd0\xb0\xd1\x81\xd1\x82\xd1\x8c\x2e" "\xd1\x80\xd1\x84"}, { "xn----7SBAABF4DLDYSIEHP4NTB.XN--P1AI", "\xd1\x81\xd0\xb0\xd0\xbc\xd0\xb0\xd1\x80\xd1\x81\xd0\xba\xd0\xb0\xd1" "\x8f\x2d\xd0\xbe\xd0\xb1\xd0\xbb\xd0\xb0\xd1\x81\xd1\x82\xd1\x8c\x2e" "\xd1\x80\xd1\x84"}, { "xn----7SBAABF4DLDYSIEHP4NTB.xn--P1AI", "\xd1\x81\xd0\xb0\xd0\xbc\xd0\xb0\xd1\x80\xd1\x81\xd0\xba\xd0\xb0\xd1" "\x8f\x2d\xd0\xbe\xd0\xb1\xd0\xbb\xd0\xb0\xd1\x81\xd1\x82\xd1\x8c\x2e" "\xd1\x80\xd1\x84"} }; void doit (void) { int rc; char *out = NULL; size_t i; for (i = 0; i < sizeof (idna) / sizeof (idna[0]); i++) { rc = idna_to_unicode_8z8z (idna[i].in, &out, 0); if (rc != IDNA_SUCCESS) fail ("IDNA3[%ld] failed %d\n", i, rc); if (debug && rc == IDNA_SUCCESS) { printf ("input: %s\n", idna[i].in); printf ("computed out: %s\n", out); printf ("expected out: %s\n", idna[i].out); } if (strcmp (out, idna[i].out) != 0) fail ("IDNA3[%ld] failed\n", i); else if (debug) printf ("IDNA3[%ld] success\n", i); if (out) idn_free (out); } } �����������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/utils.h���������������������������������������������������������������������������0000644�0000000�0000000�00000002726�12153706572�012266� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* utils.h --- Prototypes for self test utilities. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifndef UTILS_H # define UTILS_H # include <string.h> # include <stdarg.h> # include <stringprep.h> #ifndef __attribute__ # if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) # define __attribute__(Spec) /* empty */ # endif #endif extern int debug; extern int error_count; extern int break_on_error; extern void fail (const char *format, ...) __attribute__ ((format (printf, 1, 2))); extern void escapeprint (const char *str, size_t len); extern void hexprint (const char *str, size_t len); extern void binprint (const char *str, size_t len); extern void ucs4print (const uint32_t * str, size_t len); /* This must be implemented elsewhere. */ extern void doit (void); #endif /* UTILS_H */ ������������������������������������������libidn-1.28/tests/tst_pr29.c������������������������������������������������������������������������0000644�0000000�0000000�00000006543�12153706572�012610� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_pr29.c --- Self tests for pr29_*(). * Copyright (C) 2004-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <pr29.h> #include "utils.h" struct tv { const char *name; size_t inlen; uint32_t in[100]; int rc; }; static const struct tv tv[] = { { "Problem Sequence A", 3, {0x1100, 0x0300, 0x1161, 0}, PR29_PROBLEM}, { "Test Case", 3, {0x0B47, 0x0300, 0x0B3E, 0}, PR29_PROBLEM}, { "Instability Example", 4, {0x1100, 0x0300, 0x1161, 0x0323, 0}, PR29_PROBLEM}, { "Not a problem sequence 1", 3, {0x1100, 0x1161, 0x0300, 0}, PR29_SUCCESS}, { "Not a problem sequence 2", 3, {0x0300, 0x1100, 0x1161, 0}, PR29_SUCCESS}, { "Not a problem sequence 3", 3, {0x1161, 0x1100, 0x0300, 0}, PR29_SUCCESS}, { "Not a problem sequence 4", 3, {0x1161, 0x0300, 0x1100, 0}, PR29_SUCCESS}, { "Not a problem sequence 5", 3, {0x1100, 0x00AA, 0x1161, 0}, PR29_SUCCESS}, { /* http://lists.gnu.org/archive/html/help-libidn/2012-01/msg00008.html */ "Infloop", 3, {0x1100, 0x0300, 0x4711, 0}, PR29_SUCCESS} }; void doit (void) { size_t i; int rc; for (i = 0; i < sizeof (tv) / sizeof (tv[0]); i++) { if (debug) { uint32_t *p, *q; printf ("PR29 entry %ld: %s\n", i, tv[i].name); printf ("in:\n"); ucs4print (tv[i].in, tv[i].inlen); printf ("nfkc:\n"); p = stringprep_ucs4_nfkc_normalize (tv[i].in, tv[i].inlen); ucs4print (p, -1); printf ("second nfkc:\n"); q = stringprep_ucs4_nfkc_normalize (p, -1); ucs4print (q, -1); free (p); free (q); } rc = pr29_4 (tv[i].in, tv[i].inlen); if (rc != tv[i].rc) { fail ("PR29 entry %ld failed (expected %d): %d\n", i, tv[i].rc, rc); if (debug) printf ("FATAL\n"); continue; } rc = pr29_4z (tv[i].in); if (rc != tv[i].rc) { fail ("PR29 entry %ld failed (expected %d): %d\n", i, tv[i].rc, rc); if (debug) printf ("FATAL\n"); continue; } { char *p; size_t items_read, items_written; p = stringprep_ucs4_to_utf8 (tv[i].in, (ssize_t) tv[i].inlen, &items_read, &items_written); if (p == NULL) fail ("FAIL: stringprep_ucs4_to_utf8(tv[%ld]) == NULL\n", i); if (debug) hexprint (p, strlen (p)); rc = pr29_8z (p); free (p); if (rc != tv[i].rc) { fail ("PR29 entry %ld failed (expected %d): %d\n", i, tv[i].rc, rc); if (debug) printf ("FATAL\n"); continue; } } if (debug) { if (tv[i].rc != PR29_SUCCESS) printf ("EXPECTED FAIL\n"); else printf ("OK\n"); } } } �������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_toutf8.c����������������������������������������������������������������������0000644�0000000�0000000�00000003230�12153706572�013233� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_toutf8.c --- Self tests for UTF-8 conversion functions. * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <stringprep.h> #include "utils.h" void doit (void) { char *p; const char *q; q = stringprep_locale_charset (); if (q == NULL) fail ("FAIL: stringprep_locale_charset == NULL\n"); if (debug) printf ("PASS: stringprep_locale_charset == %s\n", q); p = stringprep_locale_to_utf8 ("foo"); if (!p || memcmp (p, "foo", 4) != 0) fail ("FAIL: stringprep_locale_to_utf8(\"foo\") == %s\n", p); if (debug) printf ("PASS: stringprep_locale_to_utf8(\"foo\") == %s\n", p); free (p); p = stringprep_utf8_to_locale ("foo"); if (!p || memcmp (p, "foo", 4) != 0) fail ("FAIL: stringprep_utf8_to_locale(\"foo\") == %s\n", p); if (debug) printf ("PASS: stringprep_utf8_to_locale(\"foo\") == %s\n", p); free (p); } ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_stringprep.c������������������������������������������������������������������0000644�0000000�0000000�00000026504�12153706572�014210� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_stringprep.c --- Self tests for stringprep(). * Copyright (C) 2002-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <stringprep.h> #include "utils.h" struct stringprep { const char *comment; const char *in; const char *out; const char *profile; int flags; int rc; }; const struct stringprep strprep[] = { {"Map to nothing", "foo\xC2\xAD\xCD\x8F\xE1\xA0\x86\xE1\xA0\x8B" "bar" "\xE2\x80\x8B\xE2\x81\xA0" "baz\xEF\xB8\x80\xEF\xB8\x88" "\xEF\xB8\x8F\xEF\xBB\xBF", "foobarbaz"}, {"Case folding ASCII U+0043 U+0041 U+0046 U+0045", "CAFE", "cafe"}, {"Case folding 8bit U+00DF (german sharp s)", "\xC3\x9F", "ss"}, {"Case folding U+0130 (turkish capital I with dot)", "\xC4\xB0", "i\xcc\x87"}, {"Case folding multibyte U+0143 U+037A", "\xC5\x83\xCD\xBA", "\xC5\x84 \xCE\xB9"}, {"Case folding U+2121 U+33C6 U+1D7BB", "\xE2\x84\xA1\xE3\x8F\x86\xF0\x9D\x9E\xBB", "telc\xE2\x88\x95" "kg\xCF\x83"}, {"Normalization of U+006a U+030c U+00A0 U+00AA", "\x6A\xCC\x8C\xC2\xA0\xC2\xAA", "\xC7\xB0 a"}, {"Case folding U+1FB7 and normalization", "\xE1\xBE\xB7", "\xE1\xBE\xB6\xCE\xB9"}, {"Self-reverting case folding U+01F0 and normalization", "\xC7\xB0", "\xC7\xB0"}, {"Self-reverting case folding U+0390 and normalization", "\xCE\x90", "\xCE\x90"}, {"Self-reverting case folding U+03B0 and normalization", "\xCE\xB0", "\xCE\xB0"}, {"Self-reverting case folding U+1E96 and normalization", "\xE1\xBA\x96", "\xE1\xBA\x96"}, {"Self-reverting case folding U+1F56 and normalization", "\xE1\xBD\x96", "\xE1\xBD\x96"}, {"ASCII space character U+0020", "\x20", "\x20"}, {"Non-ASCII 8bit space character U+00A0", "\xC2\xA0", "\x20"}, {"Non-ASCII multibyte space character U+1680", "\xE1\x9A\x80", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-ASCII multibyte space character U+2000", "\xE2\x80\x80", "\x20"}, {"Zero Width Space U+200b", "\xE2\x80\x8b", ""}, {"Non-ASCII multibyte space character U+3000", "\xE3\x80\x80", "\x20"}, {"ASCII control characters U+0010 U+007F", "\x10\x7F", "\x10\x7F"}, {"Non-ASCII 8bit control character U+0085", "\xC2\x85", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-ASCII multibyte control character U+180E", "\xE1\xA0\x8E", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Zero Width No-Break Space U+FEFF", "\xEF\xBB\xBF", ""}, {"Non-ASCII control character U+1D175", "\xF0\x9D\x85\xB5", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Plane 0 private use character U+F123", "\xEF\x84\xA3", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Plane 15 private use character U+F1234", "\xF3\xB1\x88\xB4", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Plane 16 private use character U+10F234", "\xF4\x8F\x88\xB4", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-character code point U+8FFFE", "\xF2\x8F\xBF\xBE", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-character code point U+10FFFF", "\xF4\x8F\xBF\xBF", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Surrogate code U+DF42", "\xED\xBD\x82", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Non-plain text character U+FFFD", "\xEF\xBF\xBD", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Ideographic description character U+2FF5", "\xE2\xBF\xB5", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Display property character U+0341", "\xCD\x81", "\xCC\x81"}, {"Left-to-right mark U+200E", "\xE2\x80\x8E", "\xCC\x81", "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Deprecated U+202A", "\xE2\x80\xAA", "\xCC\x81", "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Language tagging character U+E0001", "\xF3\xA0\x80\x81", "\xCC\x81", "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Language tagging character U+E0042", "\xF3\xA0\x81\x82", NULL, "Nameprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Bidi: RandALCat character U+05BE and LCat characters", "foo\xD6\xBE" "bar", NULL, "Nameprep", 0, STRINGPREP_BIDI_BOTH_L_AND_RAL}, {"Bidi: RandALCat character U+FD50 and LCat characters", "foo\xEF\xB5\x90" "bar", NULL, "Nameprep", 0, STRINGPREP_BIDI_BOTH_L_AND_RAL}, {"Bidi: RandALCat character U+FB38 and LCat characters", "foo\xEF\xB9\xB6" "bar", "foo \xd9\x8e" "bar"}, {"Bidi: RandALCat without trailing RandALCat U+0627 U+0031", "\xD8\xA7\x31", NULL, "Nameprep", 0, STRINGPREP_BIDI_LEADTRAIL_NOT_RAL}, {"Bidi: RandALCat character U+0627 U+0031 U+0628", "\xD8\xA7\x31\xD8\xA8", "\xD8\xA7\x31\xD8\xA8"}, {"Unassigned code point U+E0002", "\xF3\xA0\x80\x82", NULL, "Nameprep", STRINGPREP_NO_UNASSIGNED, STRINGPREP_CONTAINS_UNASSIGNED}, {"Larger test (shrinking)", "X\xC2\xAD\xC3\x9F\xC4\xB0\xE2\x84\xA1\x6a\xcc\x8c\xc2\xa0\xc2" "\xaa\xce\xb0\xe2\x80\x80", "xssi\xcc\x87" "tel\xc7\xb0 a\xce\xb0 ", "Nameprep"}, {"Larger test (expanding)", "X\xC3\x9F\xe3\x8c\x96\xC4\xB0\xE2\x84\xA1\xE2\x92\x9F\xE3\x8c\x80", "xss\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88" "\xe3\x83\xab" "i\xcc\x87" "tel\x28" "d\x29\xe3\x82\xa2\xe3\x83\x91" "\xe3\x83\xbc\xe3\x83\x88"}, {"Test of prohibited ASCII character U+0020", "\x20", NULL, "Nodeprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Test of NFKC U+00A0 and prohibited character U+0020", "\xC2\xA0", NULL, "Nodeprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"Case map + normalization", "\xC2\xB5", "\xCE\xBC", "Nameprep"}, /* The rest are rather non-interesting, but no point in removing working test cases... */ {"case_nonfkc", "\xC2\xB5", "\xCE\xBC", "Nameprep", STRINGPREP_NO_NFKC, STRINGPREP_FLAG_ERROR}, {"NFKC test", "\xC2\xAA", "\x61", "Nameprep"}, {"nameprep, exposed a bug in libstringprep 0.0.5", "\xC2\xAA\x0A", "\x61\x0A"}, {"unassigned code point U+0221", "\xC8\xA1", "\xC8\xA1", "Nameprep"}, {"Unassigned code point U+0221", "\xC8\xA1", NULL, "Nameprep", STRINGPREP_NO_UNASSIGNED, STRINGPREP_CONTAINS_UNASSIGNED}, {"Unassigned code point U+0236", "\xC8\xB6", "\xC8\xB6", "Nameprep"}, {"unassigned code point U+0236", "\xC8\xB6", NULL, "Nameprep", STRINGPREP_NO_UNASSIGNED, STRINGPREP_CONTAINS_UNASSIGNED}, {"bidi both RandALCat and LCat U+0627 U+00AA U+0628", "\xD8\xA7\xC2\xAA\xD8\xA8", NULL, "Nameprep", 0, STRINGPREP_BIDI_BOTH_L_AND_RAL}, /* XMPP */ {"XMPP node profile prohibited output", "foo@bar", NULL, "Nodeprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"XMPP resource profile on same string should work though", "foo@bar", "foo@bar", "Resourceprep"}, /* iSCSI */ {"iSCSI 1", "Example-Name", "example-name", "iSCSI"}, {"iSCSI 2", "O+o", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"iSCSI 3", "\x01", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"iSCSI 4", "\xE3\x80\x82", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"iSCSI 5", "\xE2\xBF\xB5", NULL, "iSCSI", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"SASL profile", "Example\xC2\xA0" "Name", "Example Name", "SASLprep"}, /* SASL trace */ {"SASL ANONYMOUS plain mechanism", "simon@josefsson.org", "simon@josefsson.org", "plain"}, {"SASLprep 1 old", "x\xC2\xADy", "xy", "SASLprep"}, {"SASLprep 4 old", "\xE2\x85\xA3", "IV", "SASLprep"}, /* SASLprep test vectors. */ {"SASLprep 1 SOFT HYPHEN mapped to nothing", "I\xC2\xADX", "IX", "SASLprep"}, {"SASLprep 2 no transformation", "user", "user", "SASLprep"}, {"SASLprep 3 case preserved, will not match #2", "USER", "USER", "SASLprep"}, {"SASLprep 4 output is NFKC, input in ISO 8859-1", "\xC2\xAA", "a", "SASLprep"}, {"SASLprep 5 output is NFKC, will match #1", "\xE2\x85\xA8", "IX", "SASLprep"}, {"SASLprep 6 Error - prohibited character", "\x07", NULL, "SASLprep", 0, STRINGPREP_CONTAINS_PROHIBITED}, {"SASLprep 7 Error - bidirectional check", "\xD8\xA7" "1", NULL, "SASLprep", 0, STRINGPREP_BIDI_LEADTRAIL_NOT_RAL} }; void doit (void) { char *p; int rc; size_t i; if (!stringprep_check_version (STRINGPREP_VERSION)) fail ("stringprep_check_version failed (header %s runtime %s)\n", STRINGPREP_VERSION, stringprep_check_version (NULL)); if (!stringprep_check_version (NULL)) fail ("stringprep_check_version(NULL) failed\n"); if (strcmp (stringprep_check_version (NULL), STRINGPREP_VERSION) != 0) fail ("stringprep_check_version failure (header %s runtime %s)\n", STRINGPREP_VERSION, stringprep_check_version (NULL)); if (stringprep_check_version ("100.100")) fail ("stringprep_check_version(\"100.100\") failed\n"); for (i = 0; i < sizeof (strprep) / sizeof (strprep[0]); i++) { if (debug) printf ("STRINGPREP entry %ld\n", i); if (debug) { printf ("flags: %d\n", strprep[i].flags); printf ("in: "); escapeprint (strprep[i].in, strlen (strprep[i].in)); hexprint (strprep[i].in, strlen (strprep[i].in)); binprint (strprep[i].in, strlen (strprep[i].in)); } { uint32_t *l; char *x; l = stringprep_utf8_to_ucs4 (strprep[i].in, -1, NULL); x = stringprep_ucs4_to_utf8 (l, -1, NULL, NULL); free (l); if (strcmp (strprep[i].in, x) != 0) { fail ("bad UTF-8 in entry %ld\n", i); if (debug) { puts ("expected:"); escapeprint (strprep[i].in, strlen (strprep[i].in)); hexprint (strprep[i].in, strlen (strprep[i].in)); puts ("computed:"); escapeprint (x, strlen (x)); hexprint (x, strlen (x)); } } free (x); } rc = stringprep_profile (strprep[i].in, &p, strprep[i].profile ? strprep[i].profile : "Nameprep", strprep[i].flags); if (rc != strprep[i].rc) { fail ("stringprep() entry %ld failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); if (rc == STRINGPREP_OK) free (p); continue; } if (debug && rc == STRINGPREP_OK) { printf ("out: "); escapeprint (p, strlen (p)); hexprint (p, strlen (p)); binprint (p, strlen (p)); printf ("expected out: "); escapeprint (strprep[i].out, strlen (strprep[i].out)); hexprint (strprep[i].out, strlen (strprep[i].out)); binprint (strprep[i].out, strlen (strprep[i].out)); } else if (debug) printf ("returned %d expected %d\n", rc, strprep[i].rc); if (rc == STRINGPREP_OK) { if (strlen (strprep[i].out) != strlen (p) || memcmp (strprep[i].out, p, strlen (p)) != 0) { fail ("stringprep() entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (debug) printf ("OK\n\n"); free (p); } else if (debug) printf ("OK\n\n"); } #if 0 { char p[20]; memset (p, 0, 10); stringprep_unichar_to_utf8 (0x00DF, p); hexprint (p, strlen (p)); puts (""); } #endif } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_idna4.c�����������������������������������������������������������������������0000644�0000000�0000000�00000002627�12153706572�013012� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_idna4.c --- Self tests for memory leak regression. * Copyright (C) 2011-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <idna.h> #include <idn-free.h> #include "utils.h" void doit (void) { int rc; char *out = NULL; rc = idna_to_ascii_8z("search...", &out, 0); if (rc != IDNA_INVALID_LENGTH) fail ("unexpected rc %d\n", rc); rc = idna_to_ascii_8z("google.com................point", &out, 0); if (rc != IDNA_INVALID_LENGTH) fail ("unexpected rc %d\n", rc); rc = idna_to_ascii_8z("Loading...]", &out, 0); if (rc != IDNA_INVALID_LENGTH) fail ("unexpected rc %d\n", rc); } ���������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_strerror.c��������������������������������������������������������������������0000644�0000000�0000000�00000010045�12153706572�013666� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_strerror.c --- Self tests for *_strerror(). * Copyright (C) 2004-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <idna.h> #include <pr29.h> #include <punycode.h> #include <stringprep.h> #include <tld.h> #include "utils.h" #define SUCCESS "Success" #define UNKNOWN "Unknown error" void doit (void) { const char *p; /* Test success. */ p = idna_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("idna_strerror (0) failed: %s\n", p); if (debug) printf ("idna_strerror (0) OK\n"); p = pr29_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("pr29_strerror (0) failed: %s\n", p); if (debug) printf ("pr29_strerror (0) OK\n"); p = punycode_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("punycode_strerror (0) failed: %s\n", p); if (debug) printf ("punycode_strerror (0) OK\n"); p = stringprep_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("stringprep_strerror (0) failed: %s\n", p); if (debug) printf ("stringprep_strerror (0) OK\n"); p = tld_strerror (0); if (strcmp (p, SUCCESS) != 0) fail ("tld_strerror (0) failed: %s\n", p); if (debug) printf ("tld_strerror (0) OK\n"); /* Test unknown error. */ p = idna_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("idna_strerror (42) failed: %s\n", p); if (debug) printf ("idna_strerror (42) OK\n"); p = pr29_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("pr29_strerror (42) failed: %s\n", p); if (debug) printf ("pr29_strerror (42) OK\n"); p = punycode_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("punycode_strerror (42) failed: %s\n", p); if (debug) printf ("punycode_strerror (42) OK\n"); p = stringprep_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("stringprep_strerror (42) failed: %s\n", p); if (debug) printf ("stringprep_strerror (42) OK\n"); p = tld_strerror (42); if (strcmp (p, UNKNOWN) != 0) fail ("tld_strerror (42) failed: %s\n", p); if (debug) printf ("tld_strerror (42) OK\n"); /* Iterate through all error codes. */ { size_t i; const char *last_p = NULL; for (i = 0;; i++) { p = idna_strerror (i); if (p == last_p) { if (i == 11) { i = 200; continue; } break; } if (debug) printf ("idna %ld: %s\n", i, p); last_p = p; } } { size_t i; const char *last_p = NULL; for (i = 0;; i++) { p = pr29_strerror (i); if (p == last_p) break; if (debug) printf ("pr29 %ld: %s\n", i, p); last_p = p; } } { size_t i; const char *last_p = NULL; for (i = 0;; i++) { p = punycode_strerror (i); if (p == last_p) break; if (debug) printf ("punycode %ld: %s\n", i, p); last_p = p; } } { size_t i; const char *last_p = NULL; for (i = 0;; i++) { p = stringprep_strerror (i); if (p == last_p) { if (i == 7) { i = 99; continue; } else if (i == 105) { i = 199; continue; } break; } if (debug) printf ("stringprep %ld: %s\n", i, p); last_p = p; } } { size_t i; const char *last_p = NULL; for (i = 0;; i++) { p = tld_strerror (i); if (p == last_p) break; if (debug) printf ("tld %ld: %s\n", i, p); last_p = p; } } } �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/libidn.supp�����������������������������������������������������������������������0000644�0000000�0000000�00000001765�12153706572�013131� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# libidn.supp -- Valgrind suppression file for Libidn # Copyright (C) 2012-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. { gcc strlen optimization Memcheck:Addr4 fun:idna_to_ascii_4z fun:idna_to_ascii_8z fun:doit fun:main } { gcc strlen optimization Memcheck:Addr4 fun:idna_to_ascii_4z fun:idna_to_ascii_8z fun:doit fun:main } �����������libidn-1.28/tests/Makefile.am�����������������������������������������������������������������������0000644�0000000�0000000�00000002413�12153706572�013002� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl AM_LDFLAGS = -no-install LDADD = libutils.a ../lib/libidn.la check_LIBRARIES = libutils.a libutils_a_SOURCES = utils.h utils.c ctests = tst_stringprep tst_punycode tst_idna tst_idna2 tst_idna3 \ tst_idna4 tst_nfkc tst_pr29 tst_strerror tst_toutf8 \ tst_symbols if TLD ctests += tst_tld endif EXTRA_DIST = libidn.supp TESTS = $(ctests) check_PROGRAMS = $(ctests) TESTS_ENVIRONMENT = $(VALGRIND) �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/tst_tld.c�������������������������������������������������������������������������0000644�0000000�0000000�00000016073�12153706572�012576� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������/* tst_tld.c --- Self tests for tld_*(). * Copyright (C) 2004-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <stringprep.h> #include <idn-free.h> #include <tld.h> #include "utils.h" struct tld { const char *name; const char *tld; const char *example; size_t inlen; uint32_t in[100]; int rc; size_t errpos; }; static const struct tld tld[] = { { "Simple valid French domain", "fr", "example.fr", 3, {0x00E0, 0x00E2, 0x00E6}, TLD_SUCCESS}, { "Simple invalid French domain", "fr", "ªexample.fr", 5, {0x00E0, 0x00E2, 0x00E6, 0x4711, 0x0042}, TLD_INVALID, 3} }; static const Tld_table _tld_fr_override = { "fr", "2.0", 0, NULL }; /* Main array */ const Tld_table * my_tld_tables[] = { &_tld_fr_override, NULL }; void doit (void) { size_t i; const Tld_table *tldtable; char *out; size_t errpos; int rc; tldtable = tld_get_table (NULL, NULL); if (tldtable != NULL) fail ("FAIL: tld_get_table (NULL, NULL) != NULL\n"); tldtable = tld_get_table ("nonexisting", NULL); if (tldtable != NULL) fail ("FAIL: tld_get_table (\"nonexisting\", NULL) != NULL\n"); tldtable = tld_default_table (NULL, NULL); if (tldtable != NULL) fail ("FAIL: tld_default_table (NULL, NULL) != NULL\n"); tldtable = tld_default_table (NULL, NULL); if (tldtable != NULL) fail ("FAIL: tld_default_table (NULL, NULL) != NULL\n"); tldtable = tld_default_table ("fr", NULL); if (tldtable == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL) == NULL\n"); else if (tldtable->version == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL)->version == NULL\n"); else if (tldtable->name && strcmp (tldtable->version, "1.0") != 0) fail ("FAIL: tld_default_table (\"fr\", NULL)->version = \"%s\"" " != \"1.0\"\n", tldtable->version); tldtable = tld_default_table ("fr", my_tld_tables); if (tldtable == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL) == NULL\n"); else if (tldtable->version == NULL) fail ("FAIL: tld_default_table (\"fr\", NULL)->version == NULL\n"); else if (tldtable->name && strcmp (tldtable->version, "2.0") != 0) fail ("FAIL: tld_default_table (\"fr\", NULL)->version = \"%s\"" " != \"2.0\"\n", tldtable->version); rc = tld_get_4 (NULL, 42, &out); if (rc != TLD_NODATA) fail ("FAIL: tld_get_4 (NULL, 42, &out) != TLD_NODATA: %d\n", rc); rc = tld_get_4 (tld[0].in, 0, &out); if (rc != TLD_NODATA) fail ("FAIL: tld_get_4 (NULL, 42, &out) != TLD_NODATA: %d\n", rc); rc = tld_check_4t (tld[0].in, tld[0].inlen, NULL, NULL); if (rc != TLD_SUCCESS) fail ("FAIL: tld_check_4t (tld=NULL) != TLD_SUCCESS: %d\n", rc); rc = tld_check_4z (NULL, NULL, NULL); if (rc != TLD_NODATA) fail ("FAIL: tld_check_4z (NULL) != TLD_NODATA: %d\n", rc); rc = tld_check_4z (tld[0].in, NULL, NULL); if (rc != TLD_SUCCESS) fail ("FAIL: tld_check_4z (in) != TLD_SUCCESS: %d\n", rc); rc = tld_check_8z (NULL, NULL, NULL); if (rc != TLD_NODATA) fail ("FAIL: tld_check_8z (NULL) != TLD_NODATA: %d\n", rc); rc = tld_check_lz (NULL, NULL, NULL); if (rc != TLD_NODATA) fail ("FAIL: tld_check_lz (NULL) != TLD_NODATA: %d\n", rc); rc = tld_check_lz ("foo", NULL, NULL); if (rc != TLD_SUCCESS) fail ("FAIL: tld_check_lz (\"foo\") != TLD_SUCCESS: %d\n", rc); { uint32_t in[] = { 0x73, 0x6a, 0x64, 0x2e, 0x73, 0x65, 0x00 }; const char *p; rc = tld_get_4 (in, 6, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_4 (in, 6, &out) != TLD_OK: %d\n", rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_4 (in, 6, &out): %s\n", out); idn_free (out); rc = tld_get_4z (in, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_4z (in, &out) != TLD_OK: %d\n", rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_4z (in, &out): %s\n", out); idn_free (out); p = "sjd.se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); p = "foo.bar.baz.sjd.se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); p = ".sjd.se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); p = ".se"; rc = tld_get_z (p, &out); if (rc != TLD_SUCCESS) fail ("FAIL: tld_get_z (\"%s\", &out) != TLD_OK: %d\n", p, rc); if (strcmp ("se", out) != 0) fail ("FAIL: tld_get_z (\"%s\", &out): %s\n", p, out); idn_free (out); } for (i = 0; i < sizeof (tld) / sizeof (tld[0]); i++) { if (debug) printf ("TLD entry %ld: %s\n", i, tld[i].name); if (debug) { printf ("in:\n"); ucs4print (tld[i].in, tld[i].inlen); } tldtable = tld_default_table (tld[i].tld, NULL); if (tldtable == NULL) { fail ("TLD entry %ld tld_get_table (%s)\n", i, tld[i].tld); if (debug) printf ("FATAL\n"); continue; } rc = tld_check_4t (tld[i].in, tld[i].inlen, &errpos, tldtable); if (rc != tld[i].rc) { fail ("TLD entry %ld failed: %d\n", i, rc); if (debug) printf ("FATAL\n"); continue; } if (debug) printf ("returned %d expected %d\n", rc, tld[i].rc); if (rc != tld[i].rc) { fail ("TLD entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } else if (rc == TLD_INVALID) { if (debug) printf ("returned errpos %ld expected errpos %ld\n", errpos, tld[i].errpos); if (tld[i].errpos != errpos) { fail ("TLD entry %ld failed because errpos %ld != %ld\n", i, tld[i].errpos, errpos); if (debug) printf ("ERROR\n"); } } else if (debug) printf ("OK\n"); { rc = tld_check_8z (tld[i].example, &errpos, NULL); if (rc != tld[i].rc) { fail ("TLD entry %ld failed\n", i); if (debug) printf ("ERROR\n"); } if (debug) printf ("TLD entry %ld tld_check_8z (%s)\n", i, tld[i].example); } } } ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/tests/Makefile.in�����������������������������������������������������������������������0000644�0000000�0000000�00000212136�12167244663�013023� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @TLD_TRUE@am__append_1 = tst_tld TESTS = $(am__EXEEXT_2) check_PROGRAMS = $(am__EXEEXT_2) subdir = tests DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp \ $(top_srcdir)/build-aux/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libutils_a_AR = $(AR) $(ARFLAGS) libutils_a_LIBADD = am_libutils_a_OBJECTS = utils.$(OBJEXT) libutils_a_OBJECTS = $(am_libutils_a_OBJECTS) @TLD_TRUE@am__EXEEXT_1 = tst_tld$(EXEEXT) am__EXEEXT_2 = tst_stringprep$(EXEEXT) tst_punycode$(EXEEXT) \ tst_idna$(EXEEXT) tst_idna2$(EXEEXT) tst_idna3$(EXEEXT) \ tst_idna4$(EXEEXT) tst_nfkc$(EXEEXT) tst_pr29$(EXEEXT) \ tst_strerror$(EXEEXT) tst_toutf8$(EXEEXT) tst_symbols$(EXEEXT) \ $(am__EXEEXT_1) tst_idna_SOURCES = tst_idna.c tst_idna_OBJECTS = tst_idna.$(OBJEXT) tst_idna_LDADD = $(LDADD) tst_idna_DEPENDENCIES = libutils.a ../lib/libidn.la AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = tst_idna2_SOURCES = tst_idna2.c tst_idna2_OBJECTS = tst_idna2.$(OBJEXT) tst_idna2_LDADD = $(LDADD) tst_idna2_DEPENDENCIES = libutils.a ../lib/libidn.la tst_idna3_SOURCES = tst_idna3.c tst_idna3_OBJECTS = tst_idna3.$(OBJEXT) tst_idna3_LDADD = $(LDADD) tst_idna3_DEPENDENCIES = libutils.a ../lib/libidn.la tst_idna4_SOURCES = tst_idna4.c tst_idna4_OBJECTS = tst_idna4.$(OBJEXT) tst_idna4_LDADD = $(LDADD) tst_idna4_DEPENDENCIES = libutils.a ../lib/libidn.la tst_nfkc_SOURCES = tst_nfkc.c tst_nfkc_OBJECTS = tst_nfkc.$(OBJEXT) tst_nfkc_LDADD = $(LDADD) tst_nfkc_DEPENDENCIES = libutils.a ../lib/libidn.la tst_pr29_SOURCES = tst_pr29.c tst_pr29_OBJECTS = tst_pr29.$(OBJEXT) tst_pr29_LDADD = $(LDADD) tst_pr29_DEPENDENCIES = libutils.a ../lib/libidn.la tst_punycode_SOURCES = tst_punycode.c tst_punycode_OBJECTS = tst_punycode.$(OBJEXT) tst_punycode_LDADD = $(LDADD) tst_punycode_DEPENDENCIES = libutils.a ../lib/libidn.la tst_strerror_SOURCES = tst_strerror.c tst_strerror_OBJECTS = tst_strerror.$(OBJEXT) tst_strerror_LDADD = $(LDADD) tst_strerror_DEPENDENCIES = libutils.a ../lib/libidn.la tst_stringprep_SOURCES = tst_stringprep.c tst_stringprep_OBJECTS = tst_stringprep.$(OBJEXT) tst_stringprep_LDADD = $(LDADD) tst_stringprep_DEPENDENCIES = libutils.a ../lib/libidn.la tst_symbols_SOURCES = tst_symbols.c tst_symbols_OBJECTS = tst_symbols.$(OBJEXT) tst_symbols_LDADD = $(LDADD) tst_symbols_DEPENDENCIES = libutils.a ../lib/libidn.la tst_tld_SOURCES = tst_tld.c tst_tld_OBJECTS = tst_tld.$(OBJEXT) tst_tld_LDADD = $(LDADD) tst_tld_DEPENDENCIES = libutils.a ../lib/libidn.la tst_toutf8_SOURCES = tst_toutf8.c tst_toutf8_OBJECTS = tst_toutf8.$(OBJEXT) tst_toutf8_LDADD = $(LDADD) tst_toutf8_DEPENDENCIES = libutils.a ../lib/libidn.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libutils_a_SOURCES) tst_idna.c tst_idna2.c tst_idna3.c \ tst_idna4.c tst_nfkc.c tst_pr29.c tst_punycode.c \ tst_strerror.c tst_stringprep.c tst_symbols.c tst_tld.c \ tst_toutf8.c DIST_SOURCES = $(libutils_a_SOURCES) tst_idna.c tst_idna2.c \ tst_idna3.c tst_idna4.c tst_nfkc.c tst_pr29.c tst_punycode.c \ tst_strerror.c tst_stringprep.c tst_symbols.c tst_tld.c \ tst_toutf8.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) AM_RECURSIVE_TARGETS = check recheck TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AM_CFLAGS = $(WERROR_CFLAGS) $(WARN_CFLAGS) AM_CPPFLAGS = -I$(top_srcdir)/lib -I../lib -I$(top_srcdir)/gl -I../gl AM_LDFLAGS = -no-install LDADD = libutils.a ../lib/libidn.la check_LIBRARIES = libutils.a libutils_a_SOURCES = utils.h utils.c ctests = tst_stringprep tst_punycode tst_idna tst_idna2 tst_idna3 \ tst_idna4 tst_nfkc tst_pr29 tst_strerror tst_toutf8 \ tst_symbols $(am__append_1) EXTRA_DIST = libidn.supp TESTS_ENVIRONMENT = $(VALGRIND) all: all-am .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu tests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkLIBRARIES: -test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES) libutils.a: $(libutils_a_OBJECTS) $(libutils_a_DEPENDENCIES) $(EXTRA_libutils_a_DEPENDENCIES) $(AM_V_at)-rm -f libutils.a $(AM_V_AR)$(libutils_a_AR) libutils.a $(libutils_a_OBJECTS) $(libutils_a_LIBADD) $(AM_V_at)$(RANLIB) libutils.a clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list tst_idna$(EXEEXT): $(tst_idna_OBJECTS) $(tst_idna_DEPENDENCIES) $(EXTRA_tst_idna_DEPENDENCIES) @rm -f tst_idna$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna_OBJECTS) $(tst_idna_LDADD) $(LIBS) tst_idna2$(EXEEXT): $(tst_idna2_OBJECTS) $(tst_idna2_DEPENDENCIES) $(EXTRA_tst_idna2_DEPENDENCIES) @rm -f tst_idna2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna2_OBJECTS) $(tst_idna2_LDADD) $(LIBS) tst_idna3$(EXEEXT): $(tst_idna3_OBJECTS) $(tst_idna3_DEPENDENCIES) $(EXTRA_tst_idna3_DEPENDENCIES) @rm -f tst_idna3$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna3_OBJECTS) $(tst_idna3_LDADD) $(LIBS) tst_idna4$(EXEEXT): $(tst_idna4_OBJECTS) $(tst_idna4_DEPENDENCIES) $(EXTRA_tst_idna4_DEPENDENCIES) @rm -f tst_idna4$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_idna4_OBJECTS) $(tst_idna4_LDADD) $(LIBS) tst_nfkc$(EXEEXT): $(tst_nfkc_OBJECTS) $(tst_nfkc_DEPENDENCIES) $(EXTRA_tst_nfkc_DEPENDENCIES) @rm -f tst_nfkc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_nfkc_OBJECTS) $(tst_nfkc_LDADD) $(LIBS) tst_pr29$(EXEEXT): $(tst_pr29_OBJECTS) $(tst_pr29_DEPENDENCIES) $(EXTRA_tst_pr29_DEPENDENCIES) @rm -f tst_pr29$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_pr29_OBJECTS) $(tst_pr29_LDADD) $(LIBS) tst_punycode$(EXEEXT): $(tst_punycode_OBJECTS) $(tst_punycode_DEPENDENCIES) $(EXTRA_tst_punycode_DEPENDENCIES) @rm -f tst_punycode$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_punycode_OBJECTS) $(tst_punycode_LDADD) $(LIBS) tst_strerror$(EXEEXT): $(tst_strerror_OBJECTS) $(tst_strerror_DEPENDENCIES) $(EXTRA_tst_strerror_DEPENDENCIES) @rm -f tst_strerror$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_strerror_OBJECTS) $(tst_strerror_LDADD) $(LIBS) tst_stringprep$(EXEEXT): $(tst_stringprep_OBJECTS) $(tst_stringprep_DEPENDENCIES) $(EXTRA_tst_stringprep_DEPENDENCIES) @rm -f tst_stringprep$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_stringprep_OBJECTS) $(tst_stringprep_LDADD) $(LIBS) tst_symbols$(EXEEXT): $(tst_symbols_OBJECTS) $(tst_symbols_DEPENDENCIES) $(EXTRA_tst_symbols_DEPENDENCIES) @rm -f tst_symbols$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_symbols_OBJECTS) $(tst_symbols_LDADD) $(LIBS) tst_tld$(EXEEXT): $(tst_tld_OBJECTS) $(tst_tld_DEPENDENCIES) $(EXTRA_tst_tld_DEPENDENCIES) @rm -f tst_tld$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_tld_OBJECTS) $(tst_tld_LDADD) $(LIBS) tst_toutf8$(EXEEXT): $(tst_toutf8_OBJECTS) $(tst_toutf8_DEPENDENCIES) $(EXTRA_tst_toutf8_DEPENDENCIES) @rm -f tst_toutf8$(EXEEXT) $(AM_V_CCLD)$(LINK) $(tst_toutf8_OBJECTS) $(tst_toutf8_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna3.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_idna4.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_nfkc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_pr29.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_punycode.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_strerror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_stringprep.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_symbols.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_tld.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tst_toutf8.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utils.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_LIBRARIES) $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? tst_stringprep.log: tst_stringprep$(EXEEXT) @p='tst_stringprep$(EXEEXT)'; \ b='tst_stringprep'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_punycode.log: tst_punycode$(EXEEXT) @p='tst_punycode$(EXEEXT)'; \ b='tst_punycode'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna.log: tst_idna$(EXEEXT) @p='tst_idna$(EXEEXT)'; \ b='tst_idna'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna2.log: tst_idna2$(EXEEXT) @p='tst_idna2$(EXEEXT)'; \ b='tst_idna2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna3.log: tst_idna3$(EXEEXT) @p='tst_idna3$(EXEEXT)'; \ b='tst_idna3'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_idna4.log: tst_idna4$(EXEEXT) @p='tst_idna4$(EXEEXT)'; \ b='tst_idna4'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_nfkc.log: tst_nfkc$(EXEEXT) @p='tst_nfkc$(EXEEXT)'; \ b='tst_nfkc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_pr29.log: tst_pr29$(EXEEXT) @p='tst_pr29$(EXEEXT)'; \ b='tst_pr29'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_strerror.log: tst_strerror$(EXEEXT) @p='tst_strerror$(EXEEXT)'; \ b='tst_strerror'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_toutf8.log: tst_toutf8$(EXEEXT) @p='tst_toutf8$(EXEEXT)'; \ b='tst_toutf8'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_symbols.log: tst_symbols$(EXEEXT) @p='tst_symbols$(EXEEXT)'; \ b='tst_symbols'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) tst_tld.log: tst_tld$(EXEEXT) @p='tst_tld$(EXEEXT)'; \ b='tst_tld'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \ clean-libtool mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: check-am install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-TESTS check-am clean \ clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \ clean-libtool cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ pdf pdf-am ps ps-am recheck tags tags-am uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: ����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/cfg.mk����������������������������������������������������������������������������������0000644�0000000�0000000�00000013713�12166506366�010704� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Copyright (C) 2006-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. WFLAGS ?= --enable-gcc-warnings ADDFLAGS ?= CFGFLAGS ?= --enable-java --enable-gtk-doc --enable-gtk-doc-pdf \ $(ADDFLAGS) $(WFLAGS) ifeq ($(.DEFAULT_GOAL),abort-due-to-no-makefile) .DEFAULT_GOAL := bootstrap endif local-checks-to-skip = sc_prohibit_strcmp sc_prohibit_have_config_h \ sc_require_config_h sc_require_config_h_first \ sc_prohibit_HAVE_MBRTOWC sc_program_name sc_trailing_blank \ sc_GPL_version sc_immutable_NEWS VC_LIST_ALWAYS_EXCLUDE_REGEX = \ ^(GNUmakefile|maint.mk|gtk-doc.make|m4/pkg.m4|doc/specifications|contrib/doxygen/Doxyfile|doc/fdl-1.3.texi|csharp/libidn.*suo|(lib/)?(gl|gltests|build-aux)/) update-copyright-env = UPDATE_COPYRIGHT_HOLDER="Simon Josefsson" UPDATE_COPYRIGHT_USE_INTERVALS=1 # Explicit syntax-check exceptions. exclude_file_name_regexp--sc_bindtextdomain = ^examples/|libc/|tests/ exclude_file_name_regexp--sc_prohibit_atoi_atof = ^examples/example2.c$$ exclude_file_name_regexp--sc_copyright_check = ^doc/libidn.texi exclude_file_name_regexp--sc_useless_cpp_parens = ^lib/nfkc.c$$ exclude_file_name_regexp--sc_prohibit_strncpy = ^src/idn.c$$ doc/Makefile.gdoc: printf "gdoc_MANS =\ngdoc_TEXINFOS =\n" > doc/Makefile.gdoc autoreconf: doc/Makefile.gdoc for f in po/*.po.in; do \ cp $$f `echo $$f | sed 's/.in//'`; \ done touch ChangeLog test -f ./configure || autoreconf --install update-po: refresh-po for f in `ls po/*.po | grep -v quot.po`; do \ cp $$f $$f.in; \ done git add po/*.po.in git commit -m "Sync with TP." po/LINGUAS po/*.po.in bootstrap: autoreconf ./configure $(CFGFLAGS) review-diff: git diff `git describe --abbrev=0`.. \ | grep -v -e ^index -e '^diff --git' \ | filterdiff -p 1 -x 'build-aux/*' -x 'gl/*' -x 'gltests/*' -x 'lib/gl/*' -x 'lib/gltests/*' -x 'po/*' -x 'maint.mk' -x '.gitignore' -x '.x-sc*' -x ChangeLog -x GNUmakefile \ | less # Release htmldir = ../www-$(PACKAGE) i18n: -$(MAKE) update-po coverage-my: ln -s . lib/gl/unistr/unistr ln -s . lib/gltests/glthread/glthread ln -s . lib/gltests/unistr/unistr $(MAKE) coverage WERROR_CFLAGS= coverage-copy: rm -fv `find $(htmldir)/coverage -type f | grep -v CVS` cp -rv $(COVERAGE_OUT)/* $(htmldir)/coverage/ coverage-upload: cd $(htmldir) && cvs commit -m "Update." coverage clang: make clean scan-build ./configure rm -rf scan.tmp scan-build -o scan.tmp make clang-copy: rm -fv `find $(htmldir)/clang-analyzer -type f | grep -v CVS` mkdir -p $(htmldir)/clang-analyzer/ cp -rv scan.tmp/*/* $(htmldir)/clang-analyzer/ clang-upload: cd $(htmldir) && \ cvs add clang-analyzer || true && \ cvs add clang-analyzer/*.css clang-analyzer/*.js \ clang-analyzer/*.html || true && \ cvs commit -m "Update." clang-analyzer cyclo-copy: cp -v doc/cyclo/cyclo-$(PACKAGE).html $(htmldir)/cyclo/index.html cyclo-upload: cd $(htmldir) && cvs commit -m "Update." cyclo/index.html gendoc-copy: cd doc && $(SHELL) ../build-aux/gendocs.sh -I ../examples -I . \ --email $(PACKAGE_BUGREPORT) \ --html "--css-include=texinfo.css" \ -o ../$(htmldir)/manual/ $(PACKAGE) "$(PACKAGE_NAME)" gendoc-upload: cd $(htmldir) && \ cvs add manual || true && \ cvs add manual/html_node || true && \ cvs add -kb manual/*.gz manual/*.pdf \ manual/html_node/*.png || true && \ cvs add manual/*.txt manual/*.html \ manual/html_node/*.html || true && \ cvs commit -m "Update." manual/ gtkdoc-copy: mkdir -p $(htmldir)/reference/ cp -v doc/reference/$(PACKAGE).pdf \ doc/reference/html/*.html \ doc/reference/html/*.png \ doc/reference/html/*.devhelp2 \ doc/reference/html/*.css \ $(htmldir)/reference/ gtkdoc-upload: cd $(htmldir) && \ cvs add reference || true && \ cvs add -kb reference/*.png reference/*.pdf || true && \ cvs add reference/*.html reference/*.css \ reference/*.devhelp2 || true && \ cvs commit -m "Update." reference/ javadoc-copy: cp -rv doc/java/* $(htmldir)/javadoc/ javadoc-upload: cd $(htmldir) && \ cvs commit -m "Update." javadoc/ doxygen-copy: cd contrib/doxygen && doxygen && cd ../.. && cp -v contrib/doxygen/html/* $(htmldir)/doxygen/ && cd contrib/doxygen/latex && make refman.pdf && cd ../../../ && cp contrib/doxygen/latex/refman.pdf $(htmldir)/doxygen/$(PACKAGE).pdf doxygen-upload: cd $(htmldir) && \ cvs add doxygen || true && \ cvs add -kb doxygen/*.png || true && \ cvs add doxygen/*.js doxygen/*.html || true && \ cvs commit -m "Update." doxygen/ ChangeLog: git2cl > ChangeLog cat .clcopying >> ChangeLog tag = $(PACKAGE)-`echo $(VERSION) | sed 's/\./-/g'` tarball: ! git tag -l $(tag) | grep $(PACKAGE) > /dev/null rm -f ChangeLog $(MAKE) ChangeLog distcheck binaries: cd windows && make -f libidn4win.mk libidn4win VERSION=$(VERSION) binaries-upload: cd windows && make -f libidn4win.mk upload VERSION=$(VERSION) source: git tag -u b565716f -m $(VERSION) $(tag) release-check: syntax-check i18n tarball binaries gendoc-copy gtkdoc-copy coverage-my coverage-copy clang clang-copy cyclo-copy javadoc-copy doxygen-copy release-upload-www: gendoc-upload gtkdoc-upload coverage-upload clang-upload cyclo-upload javadoc-upload doxygen-upload release-upload-ftp: build-aux/gnupload --to ftp.gnu.org:$(PACKAGE) $(distdir).tar.gz cp $(distdir).tar.gz $(distdir).tar.gz.sig ../releases/$(PACKAGE)/ git push git push --tags release: release-check release-upload-www source release-upload-ftp binaries-upload �����������������������������������������������������libidn-1.28/contrib/��������������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253747�011332� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/contrib/doxygen/������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253747�013007� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/contrib/doxygen/Doxyfile.orig�����������������������������������������������������������0000664�0000000�0000000�00000163742�11746453142�015404� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Doxyfile 1.5.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, # Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, # and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command <command> <input-file>, where <command> is the value of # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command <filter> <input-file>, where <filter> # is the value of the INPUT_FILTER tag, and <input-file> is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values # for this tag are: HIERARCHIES, which will generate the Groups, Directories, # and Class Hiererachy pages using a tree view instead of an ordered list; # ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which # disables this behavior completely. For backwards compatibility with previous # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = NONE # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is enabled by default, which results in a transparent # background. Warning: Depending on the platform used, enabling this option # may lead to badly anti-aliased labels on the edges of a graph (i.e. they # become hard to read). DOT_TRANSPARENT = YES # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO ������������������������������libidn-1.28/contrib/doxygen/Doxyfile.in�������������������������������������������������������������0000664�0000000�0000000�00000164045�11746453142�015047� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������# Doxyfile 1.5.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = @PACKAGE@ # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = @VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Farsi, Finnish, French, German, Greek, # Hungarian, Italian, Japanese, Japanese-en (Japanese with English messages), # Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, Polish, # Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, Swedish, # and Ukrainian. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = NO # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the DETAILS_AT_TOP tag is set to YES then Doxygen # will output the detailed description near the top, like JavaDoc. # If set to NO, the detailed description appears after the member # documentation. DETAILS_AT_TOP = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = YES # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = NO # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = YES # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = NO # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command <command> <input-file>, where <command> is the value of # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = ../../lib # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 FILE_PATTERNS = # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = NO # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = ../../examples # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = example*.c # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command <filter> <input-file>, where <filter> # is the value of the INPUT_FILTER tag, and <input-file> is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = ./gdoc2doxygen # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the # filter if there is a match. The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. Otherwise they will link to the documentstion. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = NO # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to FRAME, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, # Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are # probably better off using the HTML help feature. Other possible values # for this tag are: HIERARCHIES, which will generate the Groups, Directories, # and Class Hiererachy pages using a tree view instead of an ordered list; # ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which # disables this behavior completely. For backwards compatibility with previous # releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE # respectively. GENERATE_TREEVIEW = NONE # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. This is useful # if you want to understand what is going on. On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is enabled by default, which results in a transparent # background. Warning: Depending on the platform used, enabling this option # may lead to badly anti-aliased labels on the edges of a graph (i.e. they # become hard to read). DOT_TRANSPARENT = YES # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES #--------------------------------------------------------------------------- # Configuration::additions related to the search engine #--------------------------------------------------------------------------- # The SEARCHENGINE tag specifies whether or not a search engine should be # used. If set to NO the values of all tags below this one will be ignored. SEARCHENGINE = NO �������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/contrib/doxygen/gdoc2doxygen������������������������������������������������������������0000755�0000000�0000000�00000001512�12153706572�015242� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������#!/usr/bin/perl # Copyright (C) 2003-2013 Simon Josefsson # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # I consider the output of this program to be unrestricted. Use it as # you will. while (<>) { s, \* @(.*):, * \\param $1,g; print $_; } ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/contrib/web/����������������������������������������������������������������������������0000755�0000000�0000000�00000000000�12167253747�012107� 5����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������libidn-1.28/contrib/web/idn.php���������������������������������������������������������������������0000664�0000000�0000000�00000057700�11746453142�013316� �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������0000000�0000000������������������������������������������������������������������������������������������������������������������������������������������������������������������������<?php $charset = $_REQUEST["charset"]; $lastcharset = $_REQUEST["lastcharset"]; $mode = $_REQUEST["mode"]; $data = $_REQUEST["data"]; $profile = $_REQUEST["profile"]; $allowunassigned = $_REQUEST["allowunassigned"]; $usestd3asciirules = $_REQUEST["usestd3asciirules"]; $debug = $_REQUEST["debug"]; if (!$charset) { $data = "räksmörgås.josefßon.org"; $charset = "UTF-8"; } header("Content-Type: text/html; charset=$charset"); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=<?php print $charset ?>"> <title>Try GNU Libidn

    Try GNU Libidn

    This page allows you to try the string preparation, punycode encode/decode and ToASCII/ToUnicode operations of GNU Libidn. If you encounter a problem with this page, write a (detailed!) report to bug-libidn@gnu.org.

    If you are interested in commercial support or enhancement of Libidn, you can contact me.

    Free shrimp sandwiches are served over here (or here if you want the experimental flavour).

    This page ignores any Accept-Charset headers sent by your browser. Instead, the Unicode repertoire encoded as UTF-8 is used. If you are using software that cannot handle this, you must select another MIME charset below. BIG5, ISO-2022-JP-2, ISO-8859-1, and KOI-8 are popular choices. I am sorry for the inconvenience.


    Input

    The following string must only contain characters that your browser is able to represent in when submitting this form. If you wish to use another charset you must select it below, submit the form and wait for a new page to load, and then enter your string.

    >Prepare string using profile:
    >Punycode encode
    > Punycode decode
    >IDNA ToASCII
    >IDNA ToUnicode
    >Allow Unassigned
    >UseSTD3ASCIIRules
    >Debug
    Change MIME charset of page to:


    Output

    &1";
       $h = popen($cmd, "r");
       while($s = fgets($h, 1024)) { $out .= $s; };
       pclose($h);
       print "$ CHARSET=" .  escapeshellarg($charset) . " $cmd\n";
       print $out;
       print "$ \n";
    ?>
    

    Examples


    Error codes

    
      enum
      {
        PUNYCODE_SUCCESS = 0,
        PUNYCODE_BAD_INPUT,		/* Input is invalid.                       */
        PUNYCODE_BIG_OUTPUT,	/* Output would exceed the space provided. */
        PUNYCODE_OVERFLOW		/* Input needs wider integers to process.  */
      };
    
    
      typedef enum
      {
        STRINGPREP_OK = 0,
        /* Stringprep errors. */
        STRINGPREP_CONTAINS_UNASSIGNED = 1,
        STRINGPREP_CONTAINS_PROHIBITED = 2,
        STRINGPREP_BIDI_BOTH_L_AND_RAL = 3,
        STRINGPREP_BIDI_LEADTRAIL_NOT_RAL = 4,
        STRINGPREP_BIDI_CONTAINS_PROHIBITED = 5,
        /* Error in calling application. */
        STRINGPREP_TOO_SMALL_BUFFER = 100,
        STRINGPREP_PROFILE_ERROR = 101,
        STRINGPREP_FLAG_ERROR = 102,
        STRINGPREP_UNKNOWN_PROFILE = 103,
        /* Internal errors. */
        STRINGPREP_NFKC_FAILED = 200,
        STRINGPREP_MALLOC_ERROR = 201
      } Stringprep_rc;
    
      typedef enum
      {
        IDNA_SUCCESS = 0,
        IDNA_STRINGPREP_ERROR = 1,
        IDNA_PUNYCODE_ERROR = 2,
        IDNA_CONTAINS_NON_LDH = 3,
        /* Workaround typo in earlier versions. */
        IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH,
        IDNA_CONTAINS_MINUS = 4,
        IDNA_INVALID_LENGTH = 5,
        IDNA_NO_ACE_PREFIX = 6,
        IDNA_ROUNDTRIP_VERIFY_ERROR = 7,
        IDNA_CONTAINS_ACE_PREFIX = 8,
        IDNA_ICONV_ERROR = 9,
        /* Internal errors. */
        IDNA_MALLOC_ERROR = 201
      } Idna_rc;
    

    libidn-1.28/contrib/idn-python/0000755000000000000000000000000012167253747013423 500000000000000libidn-1.28/contrib/idn-python/README0000664000000000000000000000121711746453142014217 00000000000000*** Note that as of version 2.3 Python has native IDN support, see *** . This is a Python interface over Simon Josefsson's libidn . To install, be sure you have libidn installed, check the Makefile, and type "make" and "make install". Sample use: import idn print idn.idn2ace("Café"); # The string must be in UTF-8 With a conversion to UTF-8 first, assuming your locale is Latin-1: import idn name = sys.argv[1] ustring = unicode(name, "Latin-1") print idn.idn2ace(ustring.encode("UTF-8")) ------------------ Stephane Bortzmeyer libidn-1.28/contrib/idn-python/Makefile0000664000000000000000000000032611746453142014777 00000000000000INCLUDE=/usr/include/python2.1 INSTDIR=/usr/local/lib/python2.1/site-packages LIBS=-lidn all: idn.so %.so: %.c gcc -I${INCLUDE} ${LIBS} -shared -fPIC -o $@ $< install: cp idn.so ${INSTDIR} clean: rm -f *.so libidn-1.28/contrib/idn-python/idn.c0000664000000000000000000000346511746453142014264 00000000000000/* * This is a Python interface over Simon Josefsson's libidn * . * * Stephane Bortzmeyer * */ #include #include #include #define MESSAGE_SIZE 512 static PyObject *IDNError; static PyObject *IDNInvLengthError; #define onError(message) { PyErr_SetString(IDNError, message); free(message); return NULL; } static PyObject * idn2ace (PyObject * self, PyObject * args) { char *instr, *result; int rc; PyObject *outstr; if (!PyArg_ParseTuple (args, "s", &instr)) onError ("Invalid argument"); rc = idna_to_ascii_8z (instr, &result); if (rc != IDNA_SUCCESS) { switch (rc) { case IDNA_INVALID_LENGTH: result = malloc (MESSAGE_SIZE); sprintf (result, "%d bytes", strlen (instr)); PyErr_SetString (IDNInvLengthError, result); free (result); return NULL; break; default: result = malloc (MESSAGE_SIZE); sprintf (result, "IDN error: %d (see idna.h)", rc); onError (result); } } outstr = Py_BuildValue ("s", result); return outstr; } static PyObject * ace2idn (PyObject * self, PyObject * args) { char *instr, *result; int rc; PyObject *outstr; if (!PyArg_ParseTuple (args, "s", &instr)) onError ("Invalid argument"); rc = idna_to_unicode_8z8z (instr, &result); if (rc != IDNA_SUCCESS) { result = malloc (MESSAGE_SIZE); sprintf (result, "IDN error: %d (see idna.h)", rc); onError (result); } outstr = Py_BuildValue ("s", result); return outstr; } static struct PyMethodDef methods[] = { {"idn2ace", idn2ace, 1}, {"ace2idn", ace2idn, 1}, {NULL, NULL} }; void initidn () { Py_InitModule ("idn", methods); IDNError = PyErr_NewException ("idn.error", NULL, NULL); IDNInvLengthError = PyErr_NewException ("idn.invalidLength", NULL, NULL); } libidn-1.28/contrib/idn-python/test.py0000664000000000000000000000036211746453142014670 00000000000000#!/usr/bin/python locale = "Latin-1" import idn import sys if len(sys.argv) <= 1: print "Usage: %s name" % sys.argv[0] sys.exit(1) name = sys.argv[1] ustring = unicode(name, locale) print idn.idn2ace(ustring.encode("UTF-8")) libidn-1.28/contrib/README0000644000000000000000000000216312153706572012126 00000000000000Libidn contrib/README -- Notes for the contrib/ subdirectory. Copyright (C) 2003-2013 Simon Josefsson See the end for copying conditions. The idn-python/ sub-directory contains a Python interface for Libidn, contributed by Stephane Bortzmeyer . It is licensed under the same licence as Libidn itself. Note that as of version 2.3 Python has native IDN support, see . The web/ sub-directory contains a online libidn interface in PHP. The java/ sub-directory builds Java *.class files that implement the Libidn API. Note! It is unfinished and left as a proof of concept. A developer with knowledge about Java is encouraged to take over it. The doxygen/ sub-directory builds Doxygen documentation (HTML, LaTeX/PDF and MAN). Simply invoke "doxygen" in that directory and it should build the documentation. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/contrib/java/0000755000000000000000000000000012167253747012253 500000000000000libidn-1.28/contrib/java/IDNA.java0000644000000000000000000000017112153707514013537 00000000000000class IDNA { public native String toAscii(String str); static { System.loadLibrary("idn-java"); } } libidn-1.28/contrib/java/IDNA.c0000664000000000000000000000055111746453142013046 00000000000000#include #include "IDNA.h" JNIEXPORT jstring JNICALL Java_IDNA_toAscii(JNIEnv *env, jobject obj, jstring jstr) { const char *in; const char *out; int rc; in = (*env)->GetStringUTFChars(env, jstr, 0); rc = idna_to_ascii_from_utf8 (in, &out, 0, 0); (*env)->ReleaseStringUTFChars(env, jstr, in); return (*env)->NewStringUTF(env, out); } libidn-1.28/contrib/java/README0000644000000000000000000000245612153706572013054 00000000000000Libidn README -- Notes for the JAVA API proof of concept. Copyright (C) 2003-2013 Simon Josefsson See the end for copying conditions. This directory builds Java *.class files that implement the Libidn API. Note! It is unfinished and left as a proof of concept. A developer with knowledge about Java is encouraged to take over it. The current Makefile.am require GCJ. It was tested with Sun JDK 1.1 and IBM JDK 1.1.8 too, after replacing "gcj" with "javac" and "gcjh" with "javah" in Makefile.am. Some combinations of compilation with one package and executing using another package (e.g., compile with GCJ, run with Sun's JRE) also seemed to work. $ ./autogen.sh $ ./configure $ make $ su # make install # exit $ make ExampleIDNA $ gij ExampleIDNA räksmörgås xn--rksmrgs-5wao1o $ Please let me know if you want to finish and maintain the Java API glue. It may involve some tedious work initially, but could be useful for Java developers. Eventually I think the Java API Glue functions should be merged into libidn, instead of having a separate libidn-java library. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/contrib/java/configure.ac0000664000000000000000000000025111746453142014452 00000000000000AC_INIT(libidn-java, 0.0.0, bug-libidn@gnu.org) AM_INIT_AUTOMAKE(foreign) AM_CONFIG_HEADER(config.h) AC_PROG_LIBTOOL AC_PROG_CC AC_CONFIG_FILES([Makefile]) AC_OUTPUT libidn-1.28/contrib/java/autogen.sh0000775000000000000000000000006411746453142014167 00000000000000#!/bin/sh -x autoreconf --install --force --verbose libidn-1.28/contrib/java/ExampleIDNA.java0000644000000000000000000000017312153707514015055 00000000000000class ExampleIDNA { public static void main(String[] args) { System.out.println(new IDNA().toAscii(args[0])); } } libidn-1.28/contrib/java/Makefile.am0000644000000000000000000000175412153706572014230 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . lib_LTLIBRARIES = libidn-java.la libidn_java_la_SOURCES = IDNA.c libidn_java_la_LIBADD = -lidn %.class: %.java gcj -C $< %.h: %.class gcjh -jni $* IDNA.c: IDNA.h clean-local: rm -f IDNA.h IDNA.class ExampleIDNA.class *~ libidn-1.28/COPYINGv30000664000000000000000000010451311746453142011115 00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . libidn-1.28/gltests/0000755000000000000000000000000012167253754011355 500000000000000libidn-1.28/gltests/test-open.c0000644000000000000000000000214712153706067013356 00000000000000/* Test of opening a file descriptor. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (open, int, (char const *, int, ...)); #include #include #include #include #include "macros.h" #define BASE "test-open.t" #include "test-open.h" int main (void) { return test_open (open, true); } libidn-1.28/gltests/stdint.in.h0000644000000000000000000004461012153706066013357 00000000000000/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* * ISO C 99 for platforms that lack it. * */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes , use the system , not our substitute. This avoids problems with (for example) VMS, whose includes . */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's . Ideally we should test __BIONIC__ here, but it is only defined after has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ \ && defined _SYS_TYPES_H_ && !defined __need_size_t # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). AIX 5.2 isn't needed and causes troubles. Mac OS X 10.4.6 includes (which is us), but relies on the system definitions, so include after @NEXT_STDINT_H@. */ #if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include #endif /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX. */ #include #if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, includes , which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. also defines intptr_t and uintptr_t. */ # include #elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include #endif #if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by . */ # include #endif #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ #define _STDINT_MIN(signed, bits, zero) \ ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) #define _STDINT_MAX(signed, bits, zero) \ ((signed) \ ? ~ _STDINT_MIN (signed, bits, zero) \ : /* The expression for the unsigned case. The subtraction of (signed) \ is a nop in the unsigned case and avoids "signed integer overflow" \ warnings in the signed case. */ \ ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ #undef int8_t #undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; #define int8_t gl_int8_t #define uint8_t gl_uint8_t #undef int16_t #undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; #define int16_t gl_int16_t #define uint16_t gl_uint16_t #undef int32_t #undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; #define int32_t gl_int32_t #define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ #ifdef INT64_MAX # define GL_INT64_T #else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif @HAVE_LONG_LONG_INT@ # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif #endif #ifdef UINT64_MAX # define GL_UINT64_T #else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif @HAVE_UNSIGNED_LONG_LONG_INT@ # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif #endif /* Avoid collision with Solaris 2.5.1 etc. */ #define _UINT8_T #define _UINT32_T #define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ #undef int_least8_t #undef uint_least8_t #undef int_least16_t #undef uint_least16_t #undef int_least32_t #undef uint_least32_t #undef int_least64_t #undef uint_least64_t #define int_least8_t int8_t #define uint_least8_t uint8_t #define int_least16_t int16_t #define uint_least16_t uint16_t #define int_least32_t int32_t #define uint_least32_t uint32_t #ifdef GL_INT64_T # define int_least64_t int64_t #endif #ifdef GL_UINT64_T # define uint_least64_t uint64_t #endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ #undef int_fast8_t #undef uint_fast8_t #undef int_fast16_t #undef uint_fast16_t #undef int_fast32_t #undef uint_fast32_t #undef int_fast64_t #undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; #ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; #else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; #endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; #define int_fast8_t gl_int_fast8_t #define uint_fast8_t gl_uint_fast8_t #define int_fast16_t gl_int_fast16_t #define uint_fast16_t gl_uint_fast16_t #define int_fast32_t gl_int_fast32_t #define uint_fast32_t gl_uint_fast32_t #ifdef GL_INT64_T # define int_fast64_t int64_t #endif #ifdef GL_UINT64_T # define uint_fast64_t uint64_t #endif /* 7.18.1.4. Integer types capable of holding object pointers */ #undef intptr_t #undef uintptr_t typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; #define intptr_t gl_intptr_t #define uintptr_t gl_uintptr_t /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ #ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif #endif #ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif #endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; #define GNULIB_defined_stdint_types 1 #endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ #undef INT8_MIN #undef INT8_MAX #undef UINT8_MAX #define INT8_MIN (~ INT8_MAX) #define INT8_MAX 127 #define UINT8_MAX 255 #undef INT16_MIN #undef INT16_MAX #undef UINT16_MAX #define INT16_MIN (~ INT16_MAX) #define INT16_MAX 32767 #define UINT16_MAX 65535 #undef INT32_MIN #undef INT32_MAX #undef UINT32_MAX #define INT32_MIN (~ INT32_MAX) #define INT32_MAX 2147483647 #define UINT32_MAX 4294967295U #if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) #endif #if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) #endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ #undef INT_LEAST8_MIN #undef INT_LEAST8_MAX #undef UINT_LEAST8_MAX #define INT_LEAST8_MIN INT8_MIN #define INT_LEAST8_MAX INT8_MAX #define UINT_LEAST8_MAX UINT8_MAX #undef INT_LEAST16_MIN #undef INT_LEAST16_MAX #undef UINT_LEAST16_MAX #define INT_LEAST16_MIN INT16_MIN #define INT_LEAST16_MAX INT16_MAX #define UINT_LEAST16_MAX UINT16_MAX #undef INT_LEAST32_MIN #undef INT_LEAST32_MAX #undef UINT_LEAST32_MAX #define INT_LEAST32_MIN INT32_MIN #define INT_LEAST32_MAX INT32_MAX #define UINT_LEAST32_MAX UINT32_MAX #undef INT_LEAST64_MIN #undef INT_LEAST64_MAX #ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX #endif #undef UINT_LEAST64_MAX #ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX #endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ #undef INT_FAST8_MIN #undef INT_FAST8_MAX #undef UINT_FAST8_MAX #define INT_FAST8_MIN SCHAR_MIN #define INT_FAST8_MAX SCHAR_MAX #define UINT_FAST8_MAX UCHAR_MAX #undef INT_FAST16_MIN #undef INT_FAST16_MAX #undef UINT_FAST16_MAX #define INT_FAST16_MIN INT_FAST32_MIN #define INT_FAST16_MAX INT_FAST32_MAX #define UINT_FAST16_MAX UINT_FAST32_MAX #undef INT_FAST32_MIN #undef INT_FAST32_MAX #undef UINT_FAST32_MAX #ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX #else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX #endif #undef INT_FAST64_MIN #undef INT_FAST64_MAX #ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX #endif #undef UINT_FAST64_MAX #ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX #endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ #undef INTPTR_MIN #undef INTPTR_MAX #undef UINTPTR_MAX #define INTPTR_MIN LONG_MIN #define INTPTR_MAX LONG_MAX #define UINTPTR_MAX ULONG_MAX /* 7.18.2.5. Limits of greatest-width integer types */ #ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif #endif #ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif #endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ #undef PTRDIFF_MIN #undef PTRDIFF_MAX #if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif #else # define PTRDIFF_MIN \ _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) #endif /* sig_atomic_t limits */ #undef SIG_ATOMIC_MIN #undef SIG_ATOMIC_MAX #define SIG_ATOMIC_MIN \ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) #define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ #undef SIZE_MAX #if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif #else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) #endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ #if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) /* BSD/OS 4.0.1 has a bug: , and must be included before . */ # include # include # include # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H # include # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H #endif #undef WCHAR_MIN #undef WCHAR_MAX #define WCHAR_MIN \ _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) #define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ #undef WINT_MIN #undef WINT_MAX #define WINT_MIN \ _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) #define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ #undef INT8_C #undef UINT8_C #define INT8_C(x) x #define UINT8_C(x) x #undef INT16_C #undef UINT16_C #define INT16_C(x) x #define UINT16_C(x) x #undef INT32_C #undef UINT32_C #define INT32_C(x) x #define UINT32_C(x) x ## U #undef INT64_C #undef UINT64_C #if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L #elif defined _MSC_VER # define INT64_C(x) x##i64 #elif @HAVE_LONG_LONG_INT@ # define INT64_C(x) x##LL #endif #if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL #elif defined _MSC_VER # define UINT64_C(x) x##ui64 #elif @HAVE_UNSIGNED_LONG_LONG_INT@ # define UINT64_C(x) x##ULL #endif /* 7.18.4.2. Macros for greatest-width integer constants */ #ifndef INTMAX_C # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif #endif #ifndef UINTMAX_C # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif #endif #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ libidn-1.28/gltests/binary-io.c0000644000000000000000000000012612061006072013307 00000000000000#include #define BINARY_IO_INLINE _GL_EXTERN_INLINE #include "binary-io.h" libidn-1.28/gltests/fd-hook.h0000644000000000000000000001135112153706066012770 00000000000000/* Hook for making making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef FD_HOOK_H #define FD_HOOK_H #ifdef __cplusplus extern "C" { #endif /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* Type of function that closes FD. */ typedef int (*gl_close_fn) (int fd); /* Type of function that applies a control request to FD. */ typedef int (*gl_ioctl_fn) (int fd, int request, void *arg); /* An element of the list of file descriptor hooks. In CLOS (Common Lisp Object System) speak, it consists of an "around" method for the close() function and an "around" method for the ioctl() function. The fields of this structure are considered private. */ struct fd_hook { /* Doubly linked list. */ struct fd_hook *private_next; struct fd_hook *private_prev; /* Function that treats the types of FD that it knows about and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */ int (*private_close_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Function that treats the types of FD that it knows about and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a fallback. */ int (*private_ioctl_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); }; /* This type of function closes FD, applying special knowledge for the FD types it knows about, and calls execute_close_hooks (REMAINING_LIST, PRIMARY, FD) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for close(). */ typedef int (*close_hook_fn) (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd); /* Execute all close hooks, with PRIMARY as "primary" method. Return 0 or -1, like close() would do. */ extern int execute_all_close_hooks (gl_close_fn primary, int fd); /* This type of function applies a control request to FD, applying special knowledge for the FD types it knows about, and calls execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) for the other FD types. In CLOS speak, REMAINING_LIST is the remaining list of "around" methods, and PRIMARY is the "primary" method for ioctl(). */ typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg); /* Execute all ioctl hooks, with PRIMARY as "primary" method. Return 0 or -1, like ioctl() would do. */ extern int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg); /* Add a function pair to the list of file descriptor hooks. CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change. The LINK variable points to a piece of memory which is guaranteed to be accessible until the corresponding call to unregister_fd_hook. */ extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link); /* Removes a hook from the list of file descriptor hooks. */ extern void unregister_fd_hook (struct fd_hook *link); #endif #ifdef __cplusplus } #endif #endif /* FD_HOOK_H */ libidn-1.28/gltests/test-vc-list-files-cvs.sh0000755000000000000000000000324012153706067016055 00000000000000#!/bin/sh # Unit tests for vc-list-files # Copyright (C) 2008-2013 Free Software Foundation, Inc. # This file is part of the GNUlib Library. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ : ${srcdir=.} . "$srcdir/init.sh"; path_prepend_ "$abs_aux_dir" . tmpdir=vc-cvs repo=`pwd`/$tmpdir/repo fail=0 for i in with-cvsu without; do # On the first iteration, test using cvsu, if it's in your path. # On the second iteration, ensure that cvsu fails, so we'll # exercise the awk-using code. if test $i = without; then printf '%s\n' '#!/bin/sh' 'exit 1' > cvsu chmod a+x cvsu PATH=`pwd`:$PATH export PATH fi ok=0 mkdir $tmpdir && cd $tmpdir && # without cvs, skip the test { ( cvs -Q -d "$repo" init ) > /dev/null 2>&1 \ || skip_ "cvs not found in PATH"; } && mkdir w && cd w && mkdir d && touch d/a b c && cvs -Q -d "$repo" import -m imp m M M0 && cvs -Q -d "$repo" co m && cd m && printf '%s\n' b c d/a > expected && vc-list-files | sort > actual && compare expected actual && ok=1 test $ok = 0 && fail=1 done Exit $fail libidn-1.28/gltests/ignore-value.h0000644000000000000000000000377412166505337014052 00000000000000/* ignore a function return without a compiler warning Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Jim Meyering, Eric Blake and Pádraig Brady. */ /* Use "ignore_value" to avoid a warning when using a function declared with gcc's warn_unused_result attribute, but for which you really do want to ignore the result. Traditionally, people have used a "(void)" cast to indicate that a function's return value is deliberately unused. However, if the function is declared with __attribute__((warn_unused_result)), gcc issues a warning even with the cast. Caution: most of the time, you really should heed gcc's warning, and check the return value. However, in those exceptional cases in which you're sure you know what you're doing, use this function. For the record, here's one of the ignorable warnings: "copy.c:233: warning: ignoring return value of 'fchown', declared with attribute warn_unused_result". */ #ifndef _GL_IGNORE_VALUE_H #define _GL_IGNORE_VALUE_H /* The __attribute__((__warn_unused_result__)) feature is available in gcc versions 3.4 and newer, while the typeof feature has been available since 2.7 at least. */ #if 3 < __GNUC__ + (4 <= __GNUC_MINOR__) # define ignore_value(x) \ (__extension__ ({ __typeof__ (x) __x = (x); (void) __x; })) #else # define ignore_value(x) ((void) (x)) #endif #endif libidn-1.28/gltests/sys_stat.in.h0000644000000000000000000004767112153706066013735 00000000000000/* Provide a more complete sys/stat header file. Copyright (C) 2005-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake, Paul Eggert, and Jim Meyering. */ /* This file is supposed to be used on platforms where is incomplete. It is intended to provide definitions and prototypes needed by an application. Start with what the system provides. */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_sys_stat_h /* Special invocation convention. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_SYS_STAT_H /* Get nlink_t. May also define off_t to a 64-bit type on native Windows. */ #include /* Get struct timespec. */ #include /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@ #ifndef _@GUARD_PREFIX@_SYS_STAT_H #define _@GUARD_PREFIX@_SYS_STAT_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Before doing "#define mkdir rpl_mkdir" below, we need to include all headers that may declare mkdir(). Native Windows platforms declare mkdir in and/or , not in . */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in . */ #if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif /* Large File Support on native Windows. */ #if @WINDOWS_64_BIT_ST_SIZE@ # define stat _stati64 #endif #ifndef S_IFIFO # ifdef _S_IFIFO # define S_IFIFO _S_IFIFO # endif #endif #ifndef S_IFMT # define S_IFMT 0170000 #endif #if STAT_MACROS_BROKEN # undef S_ISBLK # undef S_ISCHR # undef S_ISDIR # undef S_ISFIFO # undef S_ISLNK # undef S_ISNAM # undef S_ISMPB # undef S_ISMPC # undef S_ISNWK # undef S_ISREG # undef S_ISSOCK #endif #ifndef S_ISBLK # ifdef S_IFBLK # define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) # else # define S_ISBLK(m) 0 # endif #endif #ifndef S_ISCHR # ifdef S_IFCHR # define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) # else # define S_ISCHR(m) 0 # endif #endif #ifndef S_ISDIR # ifdef S_IFDIR # define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) # else # define S_ISDIR(m) 0 # endif #endif #ifndef S_ISDOOR /* Solaris 2.5 and up */ # define S_ISDOOR(m) 0 #endif #ifndef S_ISFIFO # ifdef S_IFIFO # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) # else # define S_ISFIFO(m) 0 # endif #endif #ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif #endif #ifndef S_ISMPB /* V7 */ # ifdef S_IFMPB # define S_ISMPB(m) (((m) & S_IFMT) == S_IFMPB) # define S_ISMPC(m) (((m) & S_IFMT) == S_IFMPC) # else # define S_ISMPB(m) 0 # define S_ISMPC(m) 0 # endif #endif #ifndef S_ISMPX /* AIX */ # define S_ISMPX(m) 0 #endif #ifndef S_ISNAM /* Xenix */ # ifdef S_IFNAM # define S_ISNAM(m) (((m) & S_IFMT) == S_IFNAM) # else # define S_ISNAM(m) 0 # endif #endif #ifndef S_ISNWK /* HP/UX */ # ifdef S_IFNWK # define S_ISNWK(m) (((m) & S_IFMT) == S_IFNWK) # else # define S_ISNWK(m) 0 # endif #endif #ifndef S_ISPORT /* Solaris 10 and up */ # define S_ISPORT(m) 0 #endif #ifndef S_ISREG # ifdef S_IFREG # define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) # else # define S_ISREG(m) 0 # endif #endif #ifndef S_ISSOCK # ifdef S_IFSOCK # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) # else # define S_ISSOCK(m) 0 # endif #endif #ifndef S_TYPEISMQ # define S_TYPEISMQ(p) 0 #endif #ifndef S_TYPEISTMO # define S_TYPEISTMO(p) 0 #endif #ifndef S_TYPEISSEM # ifdef S_INSEM # define S_TYPEISSEM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSEM) # else # define S_TYPEISSEM(p) 0 # endif #endif #ifndef S_TYPEISSHM # ifdef S_INSHD # define S_TYPEISSHM(p) (S_ISNAM ((p)->st_mode) && (p)->st_rdev == S_INSHD) # else # define S_TYPEISSHM(p) 0 # endif #endif /* high performance ("contiguous data") */ #ifndef S_ISCTG # define S_ISCTG(p) 0 #endif /* Cray DMF (data migration facility): off line, with data */ #ifndef S_ISOFD # define S_ISOFD(p) 0 #endif /* Cray DMF (data migration facility): off line, with no data */ #ifndef S_ISOFL # define S_ISOFL(p) 0 #endif /* 4.4BSD whiteout */ #ifndef S_ISWHT # define S_ISWHT(m) 0 #endif /* If any of the following are undefined, define them to their de facto standard values. */ #if !S_ISUID # define S_ISUID 04000 #endif #if !S_ISGID # define S_ISGID 02000 #endif /* S_ISVTX is a common extension to POSIX. */ #ifndef S_ISVTX # define S_ISVTX 01000 #endif #if !S_IRUSR && S_IREAD # define S_IRUSR S_IREAD #endif #if !S_IRUSR # define S_IRUSR 00400 #endif #if !S_IRGRP # define S_IRGRP (S_IRUSR >> 3) #endif #if !S_IROTH # define S_IROTH (S_IRUSR >> 6) #endif #if !S_IWUSR && S_IWRITE # define S_IWUSR S_IWRITE #endif #if !S_IWUSR # define S_IWUSR 00200 #endif #if !S_IWGRP # define S_IWGRP (S_IWUSR >> 3) #endif #if !S_IWOTH # define S_IWOTH (S_IWUSR >> 6) #endif #if !S_IXUSR && S_IEXEC # define S_IXUSR S_IEXEC #endif #if !S_IXUSR # define S_IXUSR 00100 #endif #if !S_IXGRP # define S_IXGRP (S_IXUSR >> 3) #endif #if !S_IXOTH # define S_IXOTH (S_IXUSR >> 6) #endif #if !S_IRWXU # define S_IRWXU (S_IRUSR | S_IWUSR | S_IXUSR) #endif #if !S_IRWXG # define S_IRWXG (S_IRGRP | S_IWGRP | S_IXGRP) #endif #if !S_IRWXO # define S_IRWXO (S_IROTH | S_IWOTH | S_IXOTH) #endif /* S_IXUGO is a common extension to POSIX. */ #if !S_IXUGO # define S_IXUGO (S_IXUSR | S_IXGRP | S_IXOTH) #endif #ifndef S_IRWXUGO # define S_IRWXUGO (S_IRWXU | S_IRWXG | S_IRWXO) #endif /* Macros for futimens and utimensat. */ #ifndef UTIME_NOW # define UTIME_NOW (-1) # define UTIME_OMIT (-2) #endif #if @GNULIB_FCHMODAT@ # if !@HAVE_FCHMODAT@ _GL_FUNCDECL_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchmodat, int, (int fd, char const *file, mode_t mode, int flag)); _GL_CXXALIASWARN (fchmodat); #elif defined GNULIB_POSIXCHECK # undef fchmodat # if HAVE_RAW_DECL_FCHMODAT _GL_WARN_ON_USE (fchmodat, "fchmodat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FSTAT@ # if @REPLACE_FSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstat # define fstat rpl_fstat # endif _GL_FUNCDECL_RPL (fstat, int, (int fd, struct stat *buf) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fstat, int, (int fd, struct stat *buf)); # else _GL_CXXALIAS_SYS (fstat, int, (int fd, struct stat *buf)); # endif _GL_CXXALIASWARN (fstat); #elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # define fstat _fstati64 #elif defined GNULIB_POSIXCHECK # undef fstat # if HAVE_RAW_DECL_FSTAT _GL_WARN_ON_USE (fstat, "fstat has portability problems - " "use gnulib module fstat for portability"); # endif #endif #if @GNULIB_FSTATAT@ # if @REPLACE_FSTATAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fstatat # define fstatat rpl_fstatat # endif _GL_FUNCDECL_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # else # if !@HAVE_FSTATAT@ _GL_FUNCDECL_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (fstatat, int, (int fd, char const *name, struct stat *st, int flags)); # endif _GL_CXXALIASWARN (fstatat); #elif defined GNULIB_POSIXCHECK # undef fstatat # if HAVE_RAW_DECL_FSTATAT _GL_WARN_ON_USE (fstatat, "fstatat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FUTIMENS@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens implementation relies on futimesat, which on Solaris 10 makes an invocation to futimens that is meant to invoke the libc's futimens(), not gnulib's futimens(). */ # if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef futimens # define futimens rpl_futimens # endif _GL_FUNCDECL_RPL (futimens, int, (int fd, struct timespec const times[2])); _GL_CXXALIAS_RPL (futimens, int, (int fd, struct timespec const times[2])); # else # if !@HAVE_FUTIMENS@ _GL_FUNCDECL_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif _GL_CXXALIAS_SYS (futimens, int, (int fd, struct timespec const times[2])); # endif # if @HAVE_FUTIMENS@ _GL_CXXALIASWARN (futimens); # endif #elif defined GNULIB_POSIXCHECK # undef futimens # if HAVE_RAW_DECL_FUTIMENS _GL_WARN_ON_USE (futimens, "futimens is not portable - " "use gnulib module futimens for portability"); # endif #endif #if @GNULIB_LCHMOD@ /* Change the mode of FILENAME to MODE, without dereferencing it if FILENAME denotes a symbolic link. */ # if !@HAVE_LCHMOD@ /* The lchmod replacement follows symbolic links. Callers should take this into account; lchmod should be applied only to arguments that are known to not be symbolic links. On hosts that lack lchmod, this can lead to race conditions between the check and the invocation of lchmod, but we know of no workarounds that are reliable in general. You might try requesting support for lchmod from your operating system supplier. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lchmod chmod # endif /* Need to cast, because on mingw, the second parameter of chmod is int mode. */ _GL_CXXALIAS_RPL_CAST_1 (lchmod, chmod, int, (const char *filename, mode_t mode)); # else # if 0 /* assume already declared */ _GL_FUNCDECL_SYS (lchmod, int, (const char *filename, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchmod, int, (const char *filename, mode_t mode)); # endif # if @HAVE_LCHMOD@ _GL_CXXALIASWARN (lchmod); # endif #elif defined GNULIB_POSIXCHECK # undef lchmod # if HAVE_RAW_DECL_LCHMOD _GL_WARN_ON_USE (lchmod, "lchmod is unportable - " "use gnulib module lchmod for portability"); # endif #endif #if @GNULIB_LSTAT@ # if ! @HAVE_LSTAT@ /* mingw does not support symlinks, therefore it does not have lstat. But without links, stat does just fine. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lstat stat # endif _GL_CXXALIAS_RPL_1 (lstat, stat, int, (const char *name, struct stat *buf)); # elif @REPLACE_LSTAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lstat # define lstat rpl_lstat # endif _GL_FUNCDECL_RPL (lstat, int, (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (lstat, int, (const char *name, struct stat *buf)); # else _GL_CXXALIAS_SYS (lstat, int, (const char *name, struct stat *buf)); # endif # if @HAVE_LSTAT@ _GL_CXXALIASWARN (lstat); # endif #elif defined GNULIB_POSIXCHECK # undef lstat # if HAVE_RAW_DECL_LSTAT _GL_WARN_ON_USE (lstat, "lstat is unportable - " "use gnulib module lstat for portability"); # endif #endif #if @REPLACE_MKDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkdir # define mkdir rpl_mkdir # endif _GL_FUNCDECL_RPL (mkdir, int, (char const *name, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); #else /* mingw's _mkdir() function has 1 argument, but we pass 2 arguments. Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes and , which are included above. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int rpl_mkdir (char const *name, mode_t mode) { return _mkdir (name); } # define GNULIB_defined_rpl_mkdir 1 # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkdir rpl_mkdir # endif _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); # else _GL_CXXALIAS_SYS (mkdir, int, (char const *name, mode_t mode)); # endif #endif _GL_CXXALIASWARN (mkdir); #if @GNULIB_MKDIRAT@ # if !@HAVE_MKDIRAT@ _GL_FUNCDECL_SYS (mkdirat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkdirat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkdirat); #elif defined GNULIB_POSIXCHECK # undef mkdirat # if HAVE_RAW_DECL_MKDIRAT _GL_WARN_ON_USE (mkdirat, "mkdirat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_MKFIFO@ # if @REPLACE_MKFIFO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mkfifo # define mkfifo rpl_mkfifo # endif _GL_FUNCDECL_RPL (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkfifo, int, (char const *file, mode_t mode)); # else # if !@HAVE_MKFIFO@ _GL_FUNCDECL_SYS (mkfifo, int, (char const *file, mode_t mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkfifo, int, (char const *file, mode_t mode)); # endif _GL_CXXALIASWARN (mkfifo); #elif defined GNULIB_POSIXCHECK # undef mkfifo # if HAVE_RAW_DECL_MKFIFO _GL_WARN_ON_USE (mkfifo, "mkfifo is not portable - " "use gnulib module mkfifo for portability"); # endif #endif #if @GNULIB_MKFIFOAT@ # if !@HAVE_MKFIFOAT@ _GL_FUNCDECL_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mkfifoat, int, (int fd, char const *file, mode_t mode)); _GL_CXXALIASWARN (mkfifoat); #elif defined GNULIB_POSIXCHECK # undef mkfifoat # if HAVE_RAW_DECL_MKFIFOAT _GL_WARN_ON_USE (mkfifoat, "mkfifoat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_MKNOD@ # if @REPLACE_MKNOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mknod # define mknod rpl_mknod # endif _GL_FUNCDECL_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mknod, int, (char const *file, mode_t mode, dev_t dev)); # else # if !@HAVE_MKNOD@ _GL_FUNCDECL_SYS (mknod, int, (char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */ _GL_CXXALIAS_SYS_CAST (mknod, int, (char const *file, mode_t mode, dev_t dev)); # endif _GL_CXXALIASWARN (mknod); #elif defined GNULIB_POSIXCHECK # undef mknod # if HAVE_RAW_DECL_MKNOD _GL_WARN_ON_USE (mknod, "mknod is not portable - " "use gnulib module mknod for portability"); # endif #endif #if @GNULIB_MKNODAT@ # if !@HAVE_MKNODAT@ _GL_FUNCDECL_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mknodat, int, (int fd, char const *file, mode_t mode, dev_t dev)); _GL_CXXALIASWARN (mknodat); #elif defined GNULIB_POSIXCHECK # undef mknodat # if HAVE_RAW_DECL_MKNODAT _GL_WARN_ON_USE (mknodat, "mknodat is not portable - " "use gnulib module mkfifoat for portability"); # endif #endif #if @GNULIB_STAT@ # if @REPLACE_STAT@ /* We can't use the object-like #define stat rpl_stat, because of struct stat. This means that rpl_stat will not be used if the user does (stat)(a,b). Oh well. */ # if defined _AIX && defined stat && defined _LARGE_FILES /* With _LARGE_FILES defined, AIX (only) defines stat to stat64, so we have to replace stat64() instead of stat(). */ # undef stat64 # define stat64(name, st) rpl_stat (name, st) # elif @WINDOWS_64_BIT_ST_SIZE@ /* Above, we define stat to _stati64. */ # if defined __MINGW32__ && defined _stati64 # ifndef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined _stati64 # ifdef _USE_32BIT_TIME_T /* The system headers define _stati64 to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define _stati64 to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # else # undef _stati64 # define _stati64(name, st) rpl_stat (name, st) # endif # elif defined __MINGW32__ && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32i64. */ # undef _stat32i64 # define _stat32i64(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64. */ # undef _stat64 # define _stat64(name, st) rpl_stat (name, st) # endif # elif defined _MSC_VER && defined stat # ifdef _USE_32BIT_TIME_T /* The system headers define stat to _stat32. */ # undef _stat32 # define _stat32(name, st) rpl_stat (name, st) # else /* The system headers define stat to _stat64i32. */ # undef _stat64i32 # define _stat64i32(name, st) rpl_stat (name, st) # endif # else /* !(_AIX ||__MINGW32__ || _MSC_VER) */ # undef stat # define stat(name, st) rpl_stat (name, st) # endif /* !_LARGE_FILES */ _GL_EXTERN_C int stat (const char *name, struct stat *buf) _GL_ARG_NONNULL ((1, 2)); # endif #elif defined GNULIB_POSIXCHECK # undef stat # if HAVE_RAW_DECL_STAT _GL_WARN_ON_USE (stat, "stat is unportable - " "use gnulib module stat for portability"); # endif #endif #if @GNULIB_UTIMENSAT@ /* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat implementation relies on futimesat, which on Solaris 10 makes an invocation to utimensat that is meant to invoke the libc's utimensat(), not gnulib's utimensat(). */ # if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef utimensat # define utimensat rpl_utimensat # endif _GL_FUNCDECL_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # else # if !@HAVE_UTIMENSAT@ _GL_FUNCDECL_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (utimensat, int, (int fd, char const *name, struct timespec const times[2], int flag)); # endif # if @HAVE_UTIMENSAT@ _GL_CXXALIASWARN (utimensat); # endif #elif defined GNULIB_POSIXCHECK # undef utimensat # if HAVE_RAW_DECL_UTIMENSAT _GL_WARN_ON_USE (utimensat, "utimensat is not portable - " "use gnulib module utimensat for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif /* _@GUARD_PREFIX@_SYS_STAT_H */ #endif libidn-1.28/gltests/test-fdopen.c0000644000000000000000000000245712153706066013673 00000000000000/* Test opening a stream with a file descriptor. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fdopen, FILE *, (int, const char *)); #include #include #include "macros.h" int main (void) { /* Test behaviour for invalid file descriptors. */ { FILE *fp; errno = 0; fp = fdopen (-1, "r"); if (fp == NULL) ASSERT (errno == EBADF); else fclose (fp); } { FILE *fp; close (99); errno = 0; fp = fdopen (99, "r"); if (fp == NULL) ASSERT (errno == EBADF); else fclose (fp); } return 0; } libidn-1.28/gltests/test-malloca.c0000644000000000000000000000306012153706067014020 00000000000000/* Test of safe automatic memory allocation. Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2005. */ #include #include "malloca.h" #include static void do_allocation (int n) { void *ptr = malloca (n); freea (ptr); safe_alloca (n); } void (*func) (int) = do_allocation; int main () { int i; /* This slows down malloc a lot. */ unsetenv ("MALLOC_PERTURB_"); /* Repeat a lot of times, to make sure there's no memory leak. */ for (i = 0; i < 50000; i++) { /* Try various values. n = 0 gave a crash on Alpha with gcc-2.5.8. Some versions of Mac OS X have a stack size limit of 512 KB. */ func (34); func (134); func (399); func (510823); func (129321); func (0); func (4070); func (4095); func (1); func (16582); } return 0; } libidn-1.28/gltests/wchar.in.h0000644000000000000000000010167512153706067013164 00000000000000/* A substitute for ISO C99 , for platforms that have issues. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * ISO C 99 for platforms that have issues. * * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H /* Special invocation convention: - Inside glibc and uClibc header files. - On HP-UX 11.00 we have a sequence of nested includes -> -> , and the latter includes , once indirectly -> -> -> and once directly. In both situations 'wint_t' is not yet defined, therefore we cannot provide the function overrides; instead include only the system's . - On IRIX 6.5, similarly, we have an include -> , and the latter includes . But here, we have no way to detect whether is completely included or is still being included. */ #@INCLUDE_NEXT@ @NEXT_WCHAR_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H #if @HAVE_FEATURES_H@ # include /* for __GLIBC__ */ #endif /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . In some builds of uClibc, is nonexistent and wchar_t is defined by . But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif #ifndef __GLIBC__ # include # include #endif /* Include the original if it exists. Some builds of uClibc lack it. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCHAR_H@ # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ #endif #undef _GL_ALREADY_INCLUDING_WCHAR_H #ifndef _@GUARD_PREFIX@_WCHAR_H #define _@GUARD_PREFIX@_WCHAR_H /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Define wint_t and WEOF. (Also done in wctype.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* MSVC defines wint_t as 'unsigned short' in . This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if defined _MSC_VER # if !GNULIB_defined_wint_t # include typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif /* Override mbstate_t if it is too small. On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for implementing mbrtowc for encodings like UTF-8. */ #if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t typedef int rpl_mbstate_t; # undef mbstate_t # define mbstate_t rpl_mbstate_t # define GNULIB_defined_mbstate_t 1 # endif #endif /* Convert a single-byte character to a wide character. */ #if @GNULIB_BTOWC@ # if @REPLACE_BTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef btowc # define btowc rpl_btowc # endif _GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); # else # if !@HAVE_BTOWC@ _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (btowc, wint_t, (int c)); # endif _GL_CXXALIASWARN (btowc); #elif defined GNULIB_POSIXCHECK # undef btowc # if HAVE_RAW_DECL_BTOWC _GL_WARN_ON_USE (btowc, "btowc is unportable - " "use gnulib module btowc for portability"); # endif #endif /* Convert a wide character to a single-byte character. */ #if @GNULIB_WCTOB@ # if @REPLACE_WCTOB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctob # define wctob rpl_wctob # endif _GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); # else # if !defined wctob && !@HAVE_DECL_WCTOB@ /* wctob is provided by gnulib, or wctob exists but is not declared. */ _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); # endif _GL_CXXALIASWARN (wctob); #elif defined GNULIB_POSIXCHECK # undef wctob # if HAVE_RAW_DECL_WCTOB _GL_WARN_ON_USE (wctob, "wctob is unportable - " "use gnulib module wctob for portability"); # endif #endif /* Test whether *PS is in the initial state. */ #if @GNULIB_MBSINIT@ # if @REPLACE_MBSINIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsinit # define mbsinit rpl_mbsinit # endif _GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); _GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); # else # if !@HAVE_MBSINIT@ _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsinit); #elif defined GNULIB_POSIXCHECK # undef mbsinit # if HAVE_RAW_DECL_MBSINIT _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " "use gnulib module mbsinit for portability"); # endif #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBRTOWC@ # if @REPLACE_MBRTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrtowc # define mbrtowc rpl_mbrtowc # endif _GL_FUNCDECL_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRTOWC@ _GL_FUNCDECL_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrtowc); #elif defined GNULIB_POSIXCHECK # undef mbrtowc # if HAVE_RAW_DECL_MBRTOWC _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " "use gnulib module mbrtowc for portability"); # endif #endif /* Recognize a multibyte character. */ #if @GNULIB_MBRLEN@ # if @REPLACE_MBRLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrlen # define mbrlen rpl_mbrlen # endif _GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRLEN@ _GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrlen); #elif defined GNULIB_POSIXCHECK # undef mbrlen # if HAVE_RAW_DECL_MBRLEN _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " "use gnulib module mbrlen for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSRTOWCS@ # if @REPLACE_MBSRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsrtowcs # define mbsrtowcs rpl_mbsrtowcs # endif _GL_FUNCDECL_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSRTOWCS@ _GL_FUNCDECL_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsrtowcs # if HAVE_RAW_DECL_MBSRTOWCS _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " "use gnulib module mbsrtowcs for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSNRTOWCS@ # if @REPLACE_MBSNRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsnrtowcs # define mbsnrtowcs rpl_mbsnrtowcs # endif _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSNRTOWCS@ _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsnrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsnrtowcs # if HAVE_RAW_DECL_MBSNRTOWCS _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " "use gnulib module mbsnrtowcs for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCRTOMB@ # if @REPLACE_WCRTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcrtomb # define wcrtomb rpl_wcrtomb # endif _GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); _GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # else # if !@HAVE_WCRTOMB@ _GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcrtomb); #elif defined GNULIB_POSIXCHECK # undef wcrtomb # if HAVE_RAW_DECL_WCRTOMB _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " "use gnulib module wcrtomb for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSRTOMBS@ # if @REPLACE_WCSRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsrtombs # define wcsrtombs rpl_wcsrtombs # endif _GL_FUNCDECL_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSRTOMBS@ _GL_FUNCDECL_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsrtombs # if HAVE_RAW_DECL_WCSRTOMBS _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " "use gnulib module wcsrtombs for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSNRTOMBS@ # if @REPLACE_WCSNRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsnrtombs # define wcsnrtombs rpl_wcsnrtombs # endif _GL_FUNCDECL_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSNRTOMBS@ _GL_FUNCDECL_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsnrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsnrtombs # if HAVE_RAW_DECL_WCSNRTOMBS _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " "use gnulib module wcsnrtombs for portability"); # endif #endif /* Return the number of screen columns needed for WC. */ #if @GNULIB_WCWIDTH@ # if @REPLACE_WCWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcwidth # define wcwidth rpl_wcwidth # endif _GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # else # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif _GL_CXXALIASWARN (wcwidth); #elif defined GNULIB_POSIXCHECK # undef wcwidth # if HAVE_RAW_DECL_WCWIDTH _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " "use gnulib module wcwidth for portability"); # endif #endif /* Search N wide characters of S for C. */ #if @GNULIB_WMEMCHR@ # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (wmemchr, wchar_t *, (const wchar_t *, wchar_t, size_t), const wchar_t *, (const wchar_t *, wchar_t, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # else _GL_CXXALIASWARN (wmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " "use gnulib module wmemchr for portability"); # endif #endif /* Compare N wide characters of S1 and S2. */ #if @GNULIB_WMEMCMP@ # if !@HAVE_WMEMCMP@ _GL_FUNCDECL_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wmemcmp); #elif defined GNULIB_POSIXCHECK # undef wmemcmp # if HAVE_RAW_DECL_WMEMCMP _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " "use gnulib module wmemcmp for portability"); # endif #endif /* Copy N wide characters of SRC to DEST. */ #if @GNULIB_WMEMCPY@ # if !@HAVE_WMEMCPY@ _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemcpy); #elif defined GNULIB_POSIXCHECK # undef wmemcpy # if HAVE_RAW_DECL_WMEMCPY _GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " "use gnulib module wmemcpy for portability"); # endif #endif /* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ #if @GNULIB_WMEMMOVE@ # if !@HAVE_WMEMMOVE@ _GL_FUNCDECL_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemmove); #elif defined GNULIB_POSIXCHECK # undef wmemmove # if HAVE_RAW_DECL_WMEMMOVE _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " "use gnulib module wmemmove for portability"); # endif #endif /* Set N wide characters of S to C. */ #if @GNULIB_WMEMSET@ # if !@HAVE_WMEMSET@ _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # endif _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN (wmemset); #elif defined GNULIB_POSIXCHECK # undef wmemset # if HAVE_RAW_DECL_WMEMSET _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " "use gnulib module wmemset for portability"); # endif #endif /* Return the number of wide characters in S. */ #if @GNULIB_WCSLEN@ # if !@HAVE_WCSLEN@ _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); _GL_CXXALIASWARN (wcslen); #elif defined GNULIB_POSIXCHECK # undef wcslen # if HAVE_RAW_DECL_WCSLEN _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " "use gnulib module wcslen for portability"); # endif #endif /* Return the number of wide characters in S, but at most MAXLEN. */ #if @GNULIB_WCSNLEN@ # if !@HAVE_WCSNLEN@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); _GL_CXXALIASWARN (wcsnlen); #elif defined GNULIB_POSIXCHECK # undef wcsnlen # if HAVE_RAW_DECL_WCSNLEN _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " "use gnulib module wcsnlen for portability"); # endif #endif /* Copy SRC to DEST. */ #if @GNULIB_WCSCPY@ # if !@HAVE_WCSCPY@ _GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscpy); #elif defined GNULIB_POSIXCHECK # undef wcscpy # if HAVE_RAW_DECL_WCSCPY _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " "use gnulib module wcscpy for portability"); # endif #endif /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ #if @GNULIB_WCPCPY@ # if !@HAVE_WCPCPY@ _GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcpcpy); #elif defined GNULIB_POSIXCHECK # undef wcpcpy # if HAVE_RAW_DECL_WCPCPY _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " "use gnulib module wcpcpy for portability"); # endif #endif /* Copy no more than N wide characters of SRC to DEST. */ #if @GNULIB_WCSNCPY@ # if !@HAVE_WCSNCPY@ _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncpy); #elif defined GNULIB_POSIXCHECK # undef wcsncpy # if HAVE_RAW_DECL_WCSNCPY _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " "use gnulib module wcsncpy for portability"); # endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ #if @GNULIB_WCPNCPY@ # if !@HAVE_WCPNCPY@ _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcpncpy); #elif defined GNULIB_POSIXCHECK # undef wcpncpy # if HAVE_RAW_DECL_WCPNCPY _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " "use gnulib module wcpncpy for portability"); # endif #endif /* Append SRC onto DEST. */ #if @GNULIB_WCSCAT@ # if !@HAVE_WCSCAT@ _GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscat); #elif defined GNULIB_POSIXCHECK # undef wcscat # if HAVE_RAW_DECL_WCSCAT _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " "use gnulib module wcscat for portability"); # endif #endif /* Append no more than N wide characters of SRC onto DEST. */ #if @GNULIB_WCSNCAT@ # if !@HAVE_WCSNCAT@ _GL_FUNCDECL_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncat); #elif defined GNULIB_POSIXCHECK # undef wcsncat # if HAVE_RAW_DECL_WCSNCAT _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " "use gnulib module wcsncat for portability"); # endif #endif /* Compare S1 and S2. */ #if @GNULIB_WCSCMP@ # if !@HAVE_WCSCMP@ _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscmp); #elif defined GNULIB_POSIXCHECK # undef wcscmp # if HAVE_RAW_DECL_WCSCMP _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " "use gnulib module wcscmp for portability"); # endif #endif /* Compare no more than N wide characters of S1 and S2. */ #if @GNULIB_WCSNCMP@ # if !@HAVE_WCSNCMP@ _GL_FUNCDECL_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncmp); #elif defined GNULIB_POSIXCHECK # undef wcsncmp # if HAVE_RAW_DECL_WCSNCMP _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " "use gnulib module wcsncmp for portability"); # endif #endif /* Compare S1 and S2, ignoring case. */ #if @GNULIB_WCSCASECMP@ # if !@HAVE_WCSCASECMP@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscasecmp); #elif defined GNULIB_POSIXCHECK # undef wcscasecmp # if HAVE_RAW_DECL_WCSCASECMP _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " "use gnulib module wcscasecmp for portability"); # endif #endif /* Compare no more than N chars of S1 and S2, ignoring case. */ #if @GNULIB_WCSNCASECMP@ # if !@HAVE_WCSNCASECMP@ _GL_FUNCDECL_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncasecmp); #elif defined GNULIB_POSIXCHECK # undef wcsncasecmp # if HAVE_RAW_DECL_WCSNCASECMP _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " "use gnulib module wcsncasecmp for portability"); # endif #endif /* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE category of the current locale. */ #if @GNULIB_WCSCOLL@ # if !@HAVE_WCSCOLL@ _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # endif _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscoll); #elif defined GNULIB_POSIXCHECK # undef wcscoll # if HAVE_RAW_DECL_WCSCOLL _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " "use gnulib module wcscoll for portability"); # endif #endif /* Transform S2 into array pointed to by S1 such that if wcscmp is applied to two transformed strings the result is the as applying 'wcscoll' to the original strings. */ #if @GNULIB_WCSXFRM@ # if !@HAVE_WCSXFRM@ _GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); # endif _GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsxfrm); #elif defined GNULIB_POSIXCHECK # undef wcsxfrm # if HAVE_RAW_DECL_WCSXFRM _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " "use gnulib module wcsxfrm for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_WCSDUP@ # if !@HAVE_WCSDUP@ _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s)); # endif _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); _GL_CXXALIASWARN (wcsdup); #elif defined GNULIB_POSIXCHECK # undef wcsdup # if HAVE_RAW_DECL_WCSDUP _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " "use gnulib module wcsdup for portability"); # endif #endif /* Find the first occurrence of WC in WCS. */ #if @GNULIB_WCSCHR@ # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcschr (const wchar_t *, wchar_t); wchar_t * std::wcschr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcschr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcschr); # endif #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR _GL_WARN_ON_USE (wcschr, "wcschr is unportable - " "use gnulib module wcschr for portability"); # endif #endif /* Find the last occurrence of WC in WCS. */ #if @GNULIB_WCSRCHR@ # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); wchar_t * std::wcsrchr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcsrchr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcsrchr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " "use gnulib module wcsrchr for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters not in REJECT. */ #if @GNULIB_WCSCSPN@ # if !@HAVE_WCSCSPN@ _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); _GL_CXXALIASWARN (wcscspn); #elif defined GNULIB_POSIXCHECK # undef wcscspn # if HAVE_RAW_DECL_WCSCSPN _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " "use gnulib module wcscspn for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters in ACCEPT. */ #if @GNULIB_WCSSPN@ # if !@HAVE_WCSSPN@ _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN (wcsspn); #elif defined GNULIB_POSIXCHECK # undef wcsspn # if HAVE_RAW_DECL_WCSSPN _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " "use gnulib module wcsspn for portability"); # endif #endif /* Find the first occurrence in WCS of any character in ACCEPT. */ #if @GNULIB_WCSPBRK@ # if !@HAVE_WCSPBRK@ _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcspbrk, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, (wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # else _GL_CXXALIASWARN (wcspbrk); # endif #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " "use gnulib module wcspbrk for portability"); # endif #endif /* Find the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_WCSSTR@ # if !@HAVE_WCSSTR@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *haystack, const wchar_t *needle) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); wchar_t * std::wcsstr (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcsstr, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsstr, wchar_t *, (wchar_t *haystack, const wchar_t *needle)); _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, (const wchar_t *haystack, const wchar_t *needle)); # else _GL_CXXALIASWARN (wcsstr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " "use gnulib module wcsstr for portability"); # endif #endif /* Divide WCS into tokens separated by characters in DELIM. */ #if @GNULIB_WCSTOK@ # if !@HAVE_WCSTOK@ _GL_FUNCDECL_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); # endif _GL_CXXALIAS_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); _GL_CXXALIASWARN (wcstok); #elif defined GNULIB_POSIXCHECK # undef wcstok # if HAVE_RAW_DECL_WCSTOK _GL_WARN_ON_USE (wcstok, "wcstok is unportable - " "use gnulib module wcstok for portability"); # endif #endif /* Determine number of column positions required for first N wide characters (or fewer if S ends before this) in S. */ #if @GNULIB_WCSWIDTH@ # if @REPLACE_WCSWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcswidth # define wcswidth rpl_wcswidth # endif _GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); # else # if !@HAVE_WCSWIDTH@ _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); # endif _GL_CXXALIASWARN (wcswidth); #elif defined GNULIB_POSIXCHECK # undef wcswidth # if HAVE_RAW_DECL_WCSWIDTH _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " "use gnulib module wcswidth for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif libidn-1.28/gltests/test-unsetenv.c0000644000000000000000000000337512153706067014270 00000000000000/* Tests of unsetenv. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (unsetenv, int, (char const *)); #include #include #include #include "macros.h" int main (void) { char entry[] = "b=2"; /* Test removal when multiple entries present. */ ASSERT (putenv ((char *) "a=1") == 0); ASSERT (putenv (entry) == 0); entry[0] = 'a'; /* Unspecified what getenv("a") would be at this point. */ ASSERT (unsetenv ("a") == 0); /* Both entries will be removed. */ ASSERT (getenv ("a") == NULL); ASSERT (unsetenv ("a") == 0); /* Required to fail with EINVAL. */ errno = 0; ASSERT (unsetenv ("") == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (unsetenv ("a=b") == -1); ASSERT (errno == EINVAL); #if 0 /* glibc and gnulib's implementation guarantee this, but POSIX no longer requires it: http://austingroupbugs.net/view.php?id=185 */ errno = 0; ASSERT (unsetenv (NULL) == -1); ASSERT (errno == EINVAL); #endif return 0; } libidn-1.28/gltests/test-fstat.c0000644000000000000000000000237412153706066013537 00000000000000/* Tests of fstat() function. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fstat, int, (int, struct stat *)); #include #include #include "macros.h" int main (int argc, char *argv[]) { /* Test behaviour for invalid file descriptors. */ { struct stat statbuf; errno = 0; ASSERT (fstat (-1, &statbuf) == -1); ASSERT (errno == EBADF); } { struct stat statbuf; close (99); errno = 0; ASSERT (fstat (99, &statbuf) == -1); ASSERT (errno == EBADF); } return 0; } libidn-1.28/gltests/test-inttypes.c0000644000000000000000000000606012153706067014272 00000000000000/* Test of substitute. Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include /* Tests for macros supposed to be defined in inttypes.h. */ const char *k = /* implicit string concatenation */ #ifdef INT8_MAX PRId8 PRIi8 #endif #ifdef UINT8_MAX PRIo8 PRIu8 PRIx8 PRIX8 #endif #ifdef INT16_MAX PRId16 PRIi16 #endif #ifdef UINT16_MAX PRIo16 PRIu16 PRIx16 PRIX16 #endif #ifdef INT32_MAX PRId32 PRIi32 #endif #ifdef UINT32_MAX PRIo32 PRIu32 PRIx32 PRIX32 #endif #ifdef INT64_MAX PRId64 PRIi64 #endif #ifdef UINT64_MAX PRIo64 PRIu64 PRIx64 PRIX64 #endif PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8 PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16 PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32 PRIdLEAST64 PRIiLEAST64 PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64 PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8 PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16 PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32 PRIdFAST64 PRIiFAST64 PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64 PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX #ifdef INTPTR_MAX PRIdPTR PRIiPTR #endif #ifdef UINTPTR_MAX PRIoPTR PRIuPTR PRIxPTR PRIXPTR #endif ; const char *l = /* implicit string concatenation */ #ifdef INT8_MAX SCNd8 SCNi8 #endif #ifdef UINT8_MAX SCNo8 SCNu8 SCNx8 #endif #ifdef INT16_MAX SCNd16 SCNi16 #endif #ifdef UINT16_MAX SCNo16 SCNu16 SCNx16 #endif #ifdef INT32_MAX SCNd32 SCNi32 #endif #ifdef UINT32_MAX SCNo32 SCNu32 SCNx32 #endif #ifdef INT64_MAX SCNd64 SCNi64 #endif #ifdef UINT64_MAX SCNo64 SCNu64 SCNx64 #endif SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8 SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16 SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32 SCNdLEAST64 SCNiLEAST64 SCNoLEAST64 SCNuLEAST64 SCNxLEAST64 SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8 SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16 SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32 SCNdFAST64 SCNiFAST64 SCNoFAST64 SCNuFAST64 SCNxFAST64 SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX #ifdef INTPTR_MAX SCNdPTR SCNiPTR #endif #ifdef UINTPTR_MAX SCNoPTR SCNuPTR SCNxPTR #endif ; int main (void) { return 0; } libidn-1.28/gltests/test-getopt.h0000644000000000000000000012566112153706067013733 00000000000000/* Test of command line argument processing. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2009. */ #include /* The glibc/gnulib implementation of getopt supports setting optind = 0, but not all other implementations do. This matters for getopt. But for getopt_long, we require GNU compatibility. */ #if defined __GETOPT_PREFIX || (__GLIBC__ >= 2 && !defined __UCLIBC__) # define OPTIND_MIN 0 #elif HAVE_DECL_OPTRESET # define OPTIND_MIN (optreset = 1) #else # define OPTIND_MIN 1 #endif static void getopt_loop (int argc, const char **argv, const char *options, int *a_seen, int *b_seen, const char **p_value, const char **q_value, int *non_options_count, const char **non_options, int *unrecognized, bool *message_issued) { int c; int pos = ftell (stderr); while ((c = getopt (argc, (char **) argv, options)) != -1) { switch (c) { case 'a': (*a_seen)++; break; case 'b': (*b_seen)++; break; case 'p': *p_value = optarg; break; case 'q': *q_value = optarg; break; case '\1': /* Must only happen with option '-' at the beginning. */ ASSERT (options[0] == '-'); non_options[(*non_options_count)++] = optarg; break; case ':': /* Must only happen with option ':' at the beginning. */ ASSERT (options[0] == ':' || ((options[0] == '-' || options[0] == '+') && options[1] == ':')); /* fall through */ case '?': *unrecognized = optopt; break; default: *unrecognized = c; break; } } *message_issued = pos < ftell (stderr); } static void test_getopt (void) { int start; bool posixly = !!getenv ("POSIXLY_CORRECT"); /* See comment in getopt.c: glibc gets a LSB-compliant getopt. Standalone applications get a POSIX-compliant getopt. */ #if defined __GETOPT_PREFIX || !(__GLIBC__ >= 2 || defined __MINGW32__) /* Using getopt from gnulib or from a non-glibc system. */ posixly = true; #endif /* Test processing of boolean options. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-a"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "ab", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-b"; argv[argc++] = "-a"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "ab", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-ba"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "ab", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-ab"; argv[argc++] = "-a"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "ab", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 2); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); ASSERT (!output); } /* Test processing of options with arguments. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-pfoo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "p:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "p:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-ab"; argv[argc++] = "-q"; argv[argc++] = "baz"; argv[argc++] = "-pfoo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value != NULL && strcmp (q_value, "baz") == 0); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); ASSERT (!output); } #if GNULIB_TEST_GETOPT_GNU /* Test processing of options with optional arguments. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-pfoo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "p::q::", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "p::q::", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "abp::q::", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); ASSERT (!output); } #endif /* GNULIB_TEST_GETOPT_GNU */ /* Check that invalid options are recognized; and that both opterr and leading ':' can silence output. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-x"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 42; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'x'); ASSERT (optind == 5); ASSERT (output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-x"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 0; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'x'); ASSERT (optind == 5); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-x"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, ":abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'x'); ASSERT (optind == 5); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-:"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 42; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == ':'); ASSERT (optind == 5); ASSERT (output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-:"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 0; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == ':'); ASSERT (optind == 5); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-:"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, ":abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == ':'); ASSERT (optind == 5); ASSERT (!output); } /* Check for missing argument behavior. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-ap"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'p'); ASSERT (optind == 2); ASSERT (output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-ap"; argv[argc] = NULL; optind = start; opterr = 0; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'p'); ASSERT (optind == 2); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-ap"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, ":abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'p'); ASSERT (optind == 2); ASSERT (!output); } /* Check that by default, non-options arguments are moved to the end. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); if (posixly) { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); ASSERT (!output); } else { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "donald") == 0); ASSERT (strcmp (argv[5], "duck") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); ASSERT (!output); } } /* Check that '--' ends the argument processing. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[20]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "--"; argv[argc++] = "-b"; argv[argc++] = "foo"; argv[argc++] = "-q"; argv[argc++] = "johnny"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); if (posixly) { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "--") == 0); ASSERT (strcmp (argv[7], "-b") == 0); ASSERT (strcmp (argv[8], "foo") == 0); ASSERT (strcmp (argv[9], "-q") == 0); ASSERT (strcmp (argv[10], "johnny") == 0); ASSERT (strcmp (argv[11], "bar") == 0); ASSERT (argv[12] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); ASSERT (!output); } else { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "--") == 0); ASSERT (strcmp (argv[5], "donald") == 0); ASSERT (strcmp (argv[6], "duck") == 0); ASSERT (strcmp (argv[7], "-b") == 0); ASSERT (strcmp (argv[8], "foo") == 0); ASSERT (strcmp (argv[9], "-q") == 0); ASSERT (strcmp (argv[10], "johnny") == 0); ASSERT (strcmp (argv[11], "bar") == 0); ASSERT (argv[12] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); ASSERT (!output); } } #if GNULIB_TEST_GETOPT_GNU /* Check that the '-' flag causes non-options to be returned in order. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "-abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 3); ASSERT (strcmp (non_options[0], "donald") == 0); ASSERT (strcmp (non_options[1], "duck") == 0); ASSERT (strcmp (non_options[2], "bar") == 0); ASSERT (unrecognized == 0); ASSERT (optind == 7); ASSERT (!output); } /* Check that '--' ends the argument processing. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[20]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "--"; argv[argc++] = "-b"; argv[argc++] = "foo"; argv[argc++] = "-q"; argv[argc++] = "johnny"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "-abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "--") == 0); ASSERT (strcmp (argv[7], "-b") == 0); ASSERT (strcmp (argv[8], "foo") == 0); ASSERT (strcmp (argv[9], "-q") == 0); ASSERT (strcmp (argv[10], "johnny") == 0); ASSERT (strcmp (argv[11], "bar") == 0); ASSERT (argv[12] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (!output); if (non_options_count == 2) { /* glibc behaviour. */ ASSERT (non_options_count == 2); ASSERT (strcmp (non_options[0], "donald") == 0); ASSERT (strcmp (non_options[1], "duck") == 0); ASSERT (unrecognized == 0); ASSERT (optind == 7); } else { /* Another valid behaviour. */ ASSERT (non_options_count == 7); ASSERT (strcmp (non_options[0], "donald") == 0); ASSERT (strcmp (non_options[1], "duck") == 0); ASSERT (strcmp (non_options[2], "-b") == 0); ASSERT (strcmp (non_options[3], "foo") == 0); ASSERT (strcmp (non_options[4], "-q") == 0); ASSERT (strcmp (non_options[5], "johnny") == 0); ASSERT (strcmp (non_options[6], "bar") == 0); ASSERT (unrecognized == 0); ASSERT (optind == 12); } } /* Check that the '-' flag has to come first. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "abp:q:-", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); if (posixly) { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); ASSERT (!output); } else { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "donald") == 0); ASSERT (strcmp (argv[5], "duck") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); ASSERT (!output); } } /* Check that the '+' flag causes the first non-option to terminate the loop. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "+abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-+"; argv[argc] = NULL; optind = start; getopt_loop (argc, argv, "+abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == '+'); ASSERT (optind == 2); ASSERT (output); } /* Check that '--' ends the argument processing. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[20]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "--"; argv[argc++] = "-b"; argv[argc++] = "foo"; argv[argc++] = "-q"; argv[argc++] = "johnny"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "+abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "--") == 0); ASSERT (strcmp (argv[7], "-b") == 0); ASSERT (strcmp (argv[8], "foo") == 0); ASSERT (strcmp (argv[9], "-q") == 0); ASSERT (strcmp (argv[10], "johnny") == 0); ASSERT (strcmp (argv[11], "bar") == 0); ASSERT (argv[12] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); ASSERT (!output); } #endif /* GNULIB_TEST_GETOPT_GNU */ /* Check that the '+' flag has to come first. */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "abp:q:+", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); if (posixly) { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); ASSERT (!output); } else { ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "donald") == 0); ASSERT (strcmp (argv[5], "duck") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); ASSERT (!output); } } #if GNULIB_TEST_GETOPT_GNU /* If GNU extensions are supported, require compliance with POSIX interpretation on leading '+' behavior. http://austingroupbugs.net/view.php?id=191 */ for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; opterr = 1; getopt_loop (argc, argv, "+:abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc] = NULL; optind = start; getopt_loop (argc, argv, "+:abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'p'); ASSERT (optind == 2); ASSERT (!output); } for (start = OPTIND_MIN; start <= 1; start++) { int a_seen = 0; int b_seen = 0; const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; bool output; int argc = 0; const char *argv[10]; argv[argc++] = "program"; argv[argc++] = "-b"; argv[argc++] = "-p"; argv[argc] = NULL; optind = start; getopt_loop (argc, argv, "+:abp:q:", &a_seen, &b_seen, &p_value, &q_value, &non_options_count, non_options, &unrecognized, &output); ASSERT (a_seen == 0); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'p'); ASSERT (optind == 3); ASSERT (!output); } /* Check that 'W' does not dump core: http://sourceware.org/bugzilla/show_bug.cgi?id=12922 Technically, POSIX says the presence of ';' in the opt-string gives unspecified behavior, so we only test this when GNU compliance is desired. */ for (start = OPTIND_MIN; start <= 1; start++) { int argc = 0; const char *argv[10]; int pos = ftell (stderr); argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc++] = "dummy"; argv[argc] = NULL; optind = start; opterr = 1; ASSERT (getopt (argc, (char **) argv, "W;") == 'W'); ASSERT (ftell (stderr) == pos); ASSERT (optind == 2); } #endif /* GNULIB_TEST_GETOPT_GNU */ } libidn-1.28/gltests/getdtablesize.c0000644000000000000000000000476312153706065014272 00000000000000/* getdtablesize() function for platforms that don't have it. Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2008. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ #include #include "msvc-inval.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int _setmaxstdio_nothrow (int newmax) { int result; TRY_MSVC_INVAL { result = _setmaxstdio (newmax); } CATCH_MSVC_INVAL { result = -1; } DONE_MSVC_INVAL; return result; } # define _setmaxstdio _setmaxstdio_nothrow #endif /* Cache for the previous getdtablesize () result. */ static int dtablesize; int getdtablesize (void) { if (dtablesize == 0) { /* We are looking for the number N such that the valid file descriptors are 0..N-1. It can be obtained through a loop as follows: { int fd; for (fd = 3; fd < 65536; fd++) if (dup2 (0, fd) == -1) break; return fd; } On Windows XP, the result is 2048. The drawback of this loop is that it allocates memory for a libc internal array that is never freed. The number N can also be obtained as the upper bound for _getmaxstdio (). _getmaxstdio () returns the maximum number of open FILE objects. The sanity check in _setmaxstdio reveals the maximum number of file descriptors. This too allocates memory, but it is freed when we call _setmaxstdio with the original value. */ int orig_max_stdio = _getmaxstdio (); unsigned int bound; for (bound = 0x10000; _setmaxstdio (bound) < 0; bound = bound / 2) ; _setmaxstdio (orig_max_stdio); dtablesize = bound; } return dtablesize; } #endif libidn-1.28/gltests/setenv.c0000644000000000000000000002502612153706066012744 00000000000000/* Copyright (C) 1992, 1995-2003, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if !_LIBC /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ # define _GL_ARG_NONNULL(params) # define _GL_USE_STDLIB_ALLOC 1 # include #endif #include /* Specification. */ #include #include #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include #if _LIBC || HAVE_UNISTD_H # include #endif #if !_LIBC # include "malloca.h" #endif #if _LIBC || !HAVE_SETENV #if !_LIBC # define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif /* In the GNU C library we must keep the namespace clean. */ #ifdef _LIBC # define setenv __setenv # define clearenv __clearenv # define tfind __tfind # define tsearch __tsearch #endif /* In the GNU C library implementation we try to be more clever and allow arbitrarily many changes of the environment given that the used values are from a small set. Outside glibc this will eat up all memory after a while. */ #if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ && defined __GNUC__) # define USE_TSEARCH 1 # include typedef int (*compar_fn_t) (const void *, const void *); /* This is a pointer to the root of the search tree with the known values. */ static void *known_values; # define KNOWN_VALUE(Str) \ ({ \ void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ value != NULL ? *(char **) value : NULL; \ }) # define STORE_VALUE(Str) \ tsearch (Str, &known_values, (compar_fn_t) strcmp) #else # undef USE_TSEARCH # define KNOWN_VALUE(Str) NULL # define STORE_VALUE(Str) do { } while (0) #endif /* If this variable is not a null pointer we allocated the current environment. */ static char **last_environ; /* This function is used by 'setenv' and 'putenv'. The difference between the two functions is that for the former must create a new string which is then placed in the environment, while the argument of 'putenv' must be used directly. This is all complicated by the fact that we try to reuse values once generated for a 'setenv' call since we can never free the strings. */ int __add_to_environ (const char *name, const char *value, const char *combined, int replace) { char **ep; size_t size; const size_t namelen = strlen (name); const size_t vallen = value != NULL ? strlen (value) + 1 : 0; LOCK; /* We have to get the pointer now that we have the lock and not earlier since another thread might have created a new environment. */ ep = __environ; size = 0; if (ep != NULL) { for (; *ep != NULL; ++ep) if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') break; else ++size; } if (ep == NULL || *ep == NULL) { char **new_environ; #ifdef USE_TSEARCH char *new_value; #endif /* We allocated this space; we can extend it. */ new_environ = (char **) (last_environ == NULL ? malloc ((size + 2) * sizeof (char *)) : realloc (last_environ, (size + 2) * sizeof (char *))); if (new_environ == NULL) { /* It's easier to set errno to ENOMEM than to rely on the 'malloc-posix' and 'realloc-posix' gnulib modules. */ __set_errno (ENOMEM); UNLOCK; return -1; } /* If the whole entry is given add it. */ if (combined != NULL) /* We must not add the string to the search tree since it belongs to the user. */ new_environ[size] = (char *) combined; else { /* See whether the value is already known. */ #ifdef USE_TSEARCH # ifdef _LIBC new_value = (char *) alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = (char *) malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif new_environ[size] = KNOWN_VALUE (new_value); if (new_environ[size] == NULL) #endif { new_environ[size] = (char *) malloc (namelen + 1 + vallen); if (new_environ[size] == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (new_environ[size], new_value, namelen + 1 + vallen); #else memcpy (new_environ[size], name, namelen); new_environ[size][namelen] = '='; memcpy (&new_environ[size][namelen + 1], value, vallen); #endif /* And save the value now. We cannot do this when we remove the string since then we cannot decide whether it is a user string or not. */ STORE_VALUE (new_environ[size]); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } if (__environ != last_environ) memcpy ((char *) new_environ, (char *) __environ, size * sizeof (char *)); new_environ[size + 1] = NULL; last_environ = __environ = new_environ; } else if (replace) { char *np; /* Use the user string if given. */ if (combined != NULL) np = (char *) combined; else { #ifdef USE_TSEARCH char *new_value; # ifdef _LIBC new_value = alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif np = KNOWN_VALUE (new_value); if (np == NULL) #endif { np = (char *) malloc (namelen + 1 + vallen); if (np == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (np, new_value, namelen + 1 + vallen); #else memcpy (np, name, namelen); np[namelen] = '='; memcpy (&np[namelen + 1], value, vallen); #endif /* And remember the value. */ STORE_VALUE (np); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } *ep = np; } UNLOCK; return 0; } int setenv (const char *name, const char *value, int replace) { if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } return __add_to_environ (name, value, NULL, replace); } /* The 'clearenv' was planned to be added to POSIX.1 but probably never made it. Nevertheless the POSIX.9 standard (POSIX bindings for Fortran 77) requires this function. */ int clearenv (void) { LOCK; if (__environ == last_environ && __environ != NULL) { /* We allocated this environment so we can free it. */ free (__environ); last_environ = NULL; } /* Clear the environment pointer removes the whole environment. */ __environ = NULL; UNLOCK; return 0; } #ifdef _LIBC static void free_mem (void) { /* Remove all traces. */ clearenv (); /* Now remove the search tree. */ __tdestroy (known_values, free); known_values = NULL; } text_set_element (__libc_subfreeres, free_mem); # undef setenv # undef clearenv weak_alias (__setenv, setenv) weak_alias (__clearenv, clearenv) #endif #endif /* _LIBC || !HAVE_SETENV */ /* The rest of this file is called into use when replacing an existing but buggy setenv. Known bugs include failure to diagnose invalid name, and consuming a leading '=' from value. */ #if HAVE_SETENV # undef setenv # if !HAVE_DECL_SETENV extern int setenv (const char *, const char *, int); # endif # define STREQ(a, b) (strcmp (a, b) == 0) int rpl_setenv (const char *name, const char *value, int replace) { int result; if (!name || !*name || strchr (name, '=')) { errno = EINVAL; return -1; } /* Call the real setenv even if replace is 0, in case implementation has underlying data to update, such as when environ changes. */ result = setenv (name, value, replace); if (result == 0 && replace && *value == '=') { char *tmp = getenv (name); if (!STREQ (tmp, value)) { int saved_errno; size_t len = strlen (value); tmp = malloca (len + 2); /* Since leading '=' is eaten, double it up. */ *tmp = '='; memcpy (tmp + 1, value, len + 1); result = setenv (name, tmp, replace); saved_errno = errno; freea (tmp); errno = saved_errno; } } return result; } #endif /* HAVE_SETENV */ libidn-1.28/gltests/test-verify.sh0000775000000000000000000000130511746453142014111 00000000000000#!/bin/sh . "${srcdir=.}/init.sh" # We are not interested in triggering bugs in the compilers and tools # (such as gcc 4.3.1 on openSUSE 11.0). unset MALLOC_PERTURB_ # Rather than figure out how to invoke the compiler with the right # include path ourselves, we let make do it: (cd "$initial_cwd_" && rm -f test-verify.o \ && $MAKE test-verify.o >/dev/null 2>&1) \ || skip_ "cannot compile error-free" # Now, prove that we encounter all expected compilation failures: : >out : >err for i in 1 2 3 4 5; do (cd "$initial_cwd_" rm -f test-verify.o $MAKE CFLAGS=-DEXP_FAIL=$i test-verify.o) >>out 2>>err \ && { warn_ "compiler didn't detect verification failure $i"; fail=1; } done Exit $fail libidn-1.28/gltests/macros.h0000644000000000000000000000651412153706066012732 00000000000000/* Common macros used by gnulib tests. Copyright (C) 2006-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* This file contains macros that are used by many gnulib tests. Put here only frequently used macros, say, used by 10 tests or more. */ #include #include /* Define ASSERT_STREAM before including this file if ASSERT must target a stream other than stderr. */ #ifndef ASSERT_STREAM # define ASSERT_STREAM stderr #endif /* ASSERT (condition); verifies that the specified condition is fulfilled. If not, a message is printed to ASSERT_STREAM if defined (defaulting to stderr if undefined) and the program is terminated with an error code. This macro has the following properties: - The programmer specifies the expected condition, not the failure condition. This simplifies thinking. - The condition is tested always, regardless of compilation flags. (Unlike the macro from .) - On Unix platforms, the tester can debug the test program with a debugger (provided core dumps are enabled: "ulimit -c unlimited"). - For the sake of platforms where no debugger is available (such as some mingw systems), an error message is printed on the error stream that includes the source location of the ASSERT invocation. */ #define ASSERT(expr) \ do \ { \ if (!(expr)) \ { \ fprintf (ASSERT_STREAM, "%s:%d: assertion failed\n", \ __FILE__, __LINE__); \ fflush (ASSERT_STREAM); \ abort (); \ } \ } \ while (0) /* SIZEOF (array) returns the number of elements of an array. It works for arrays that are declared outside functions and for local variables of array type. It does *not* work for function parameters of array type, because they are actually parameters of pointer type. */ #define SIZEOF(array) (sizeof (array) / sizeof (array[0])) /* STREQ (str1, str2) Return true if two strings compare equal. */ #define STREQ(a, b) (strcmp (a, b) == 0) /* Some numbers in the interval [0,1). */ extern const float randomf[1000]; extern const double randomd[1000]; extern const long double randoml[1000]; libidn-1.28/gltests/test-fgetc.c0000644000000000000000000000470412153706066013505 00000000000000/* Test of fgetc() function. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fgetc, int, (FILE *)); #include #include #include #include "msvc-inval.h" #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fgetc.txt"; /* We don't have an fgetc() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Prepare a file. */ { const char text[] = "hello world"; int fd = open (filename, O_RDWR | O_CREAT | O_TRUNC, 0600); ASSERT (fd >= 0); ASSERT (write (fd, text, sizeof (text)) == sizeof (text)); ASSERT (close (fd) == 0); } /* Test that fgetc() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "r"); ASSERT (fp != NULL); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fgetc (fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fgetc() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "r"); if (fp != NULL) { errno = 0; ASSERT (fgetc (fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "r"); if (fp != NULL) { errno = 0; ASSERT (fgetc (fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libidn-1.28/gltests/same-inode.h0000644000000000000000000000220212153706066013455 00000000000000/* Determine whether two stat buffers refer to the same file. Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef SAME_INODE_H # define SAME_INODE_H 1 # ifdef __VMS # define SAME_INODE(a, b) \ ((a).st_ino[0] == (b).st_ino[0] \ && (a).st_ino[1] == (b).st_ino[1] \ && (a).st_ino[2] == (b).st_ino[2] \ && (a).st_dev == (b).st_dev) # else # define SAME_INODE(a, b) \ ((a).st_ino == (b).st_ino \ && (a).st_dev == (b).st_dev) # endif #endif libidn-1.28/gltests/test-pathmax.c0000644000000000000000000000170312153706067014054 00000000000000/* Test of "pathmax.h". Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2011. */ #include #include "pathmax.h" /* Check that PATH_MAX is a constant if it is defined. */ #ifdef PATH_MAX int a = PATH_MAX; #endif int main (void) { return 0; } libidn-1.28/gltests/stdio.in.h0000644000000000000000000014127412153706066013200 00000000000000/* A GNU-like . Copyright (C) 2004, 2007-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H /* Special invocation convention: - Inside glibc header files. - On OSF/1 5.1 we have a sequence of nested includes -> -> -> -> -> -> -> . In this situation, the functions are not yet declared, therefore we cannot provide the C++ aliases. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDIO_H #define _GL_ALREADY_INCLUDING_STDIO_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDIO_H@ #undef _GL_ALREADY_INCLUDING_STDIO_H #ifndef _@GUARD_PREFIX@_STDIO_H #define _@GUARD_PREFIX@_STDIO_H /* Get va_list. Needed on many systems, including glibc 2.8. */ #include #include /* Get off_t and ssize_t. Needed on many systems, including glibc 2.8 and eglibc 2.11.2. May also define off_t to a 64-bit type on native Windows. */ #include /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF, except that it indicates to GCC that the supported format string directives are the ones of the system printf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument)) /* _GL_ATTRIBUTE_FORMAT_SCANF indicates to GCC that the function takes a format string and arguments, where the format string directives are the ones standardized by ISO C99 and POSIX. */ #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4) # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument)) #else # define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) #endif /* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF, except that it indicates to GCC that the supported format string directives are the ones of the system scanf(), rather than the ones standardized by ISO C99 and POSIX. */ #define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument)) /* Solaris 10 declares renameat in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Macros for stringification. */ #define _GL_STDIO_STRINGIZE(token) #token #define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token) #if @GNULIB_DPRINTF@ # if @REPLACE_DPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dprintf rpl_dprintf # endif _GL_FUNCDECL_RPL (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (dprintf, int, (int fd, const char *format, ...)); # else # if !@HAVE_DPRINTF@ _GL_FUNCDECL_SYS (dprintf, int, (int fd, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (dprintf, int, (int fd, const char *format, ...)); # endif _GL_CXXALIASWARN (dprintf); #elif defined GNULIB_POSIXCHECK # undef dprintf # if HAVE_RAW_DECL_DPRINTF _GL_WARN_ON_USE (dprintf, "dprintf is unportable - " "use gnulib module dprintf for portability"); # endif #endif #if @GNULIB_FCLOSE@ /* Close STREAM and its underlying file descriptor. */ # if @REPLACE_FCLOSE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fclose rpl_fclose # endif _GL_FUNCDECL_RPL (fclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fclose, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fclose, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fclose); #elif defined GNULIB_POSIXCHECK # undef fclose /* Assume fclose is always declared. */ _GL_WARN_ON_USE (fclose, "fclose is not always POSIX compliant - " "use gnulib module fclose for portable POSIX compliance"); #endif #if @GNULIB_FDOPEN@ # if @REPLACE_FDOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fdopen # define fdopen rpl_fdopen # endif _GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode)); # else _GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode)); # endif _GL_CXXALIASWARN (fdopen); #elif defined GNULIB_POSIXCHECK # undef fdopen /* Assume fdopen is always declared. */ _GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - " "use gnulib module fdopen for portability"); #endif #if @GNULIB_FFLUSH@ /* Flush all pending data on STREAM according to POSIX rules. Both output and seekable input streams are supported. Note! LOSS OF DATA can occur if fflush is applied on an input stream that is _not_seekable_ or on an update stream that is _not_seekable_ and in which the most recent operation was input. Seekability can be tested with lseek(fileno(fp),0,SEEK_CUR). */ # if @REPLACE_FFLUSH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fflush rpl_fflush # endif _GL_FUNCDECL_RPL (fflush, int, (FILE *gl_stream)); _GL_CXXALIAS_RPL (fflush, int, (FILE *gl_stream)); # else _GL_CXXALIAS_SYS (fflush, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fflush); #elif defined GNULIB_POSIXCHECK # undef fflush /* Assume fflush is always declared. */ _GL_WARN_ON_USE (fflush, "fflush is not always POSIX compliant - " "use gnulib module fflush for portable POSIX compliance"); #endif #if @GNULIB_FGETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgetc # define fgetc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (fgetc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (fgetc); #endif #if @GNULIB_FGETS@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fgets # define fgets rpl_fgets # endif _GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream) _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream)); # else _GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream)); # endif _GL_CXXALIASWARN (fgets); #endif #if @GNULIB_FOPEN@ # if @REPLACE_FOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fopen # define fopen rpl_fopen # endif _GL_FUNCDECL_RPL (fopen, FILE *, (const char *filename, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fopen, FILE *, (const char *filename, const char *mode)); # else _GL_CXXALIAS_SYS (fopen, FILE *, (const char *filename, const char *mode)); # endif _GL_CXXALIASWARN (fopen); #elif defined GNULIB_POSIXCHECK # undef fopen /* Assume fopen is always declared. */ _GL_WARN_ON_USE (fopen, "fopen on native Windows platforms is not POSIX compliant - " "use gnulib module fopen for portability"); #endif #if @GNULIB_FPRINTF_POSIX@ || @GNULIB_FPRINTF@ # if (@GNULIB_FPRINTF_POSIX@ && @REPLACE_FPRINTF@) \ || (@GNULIB_FPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fprintf rpl_fprintf # endif # define GNULIB_overrides_fprintf 1 # if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (fprintf, int, (FILE *fp, const char *format, ...)); # else _GL_CXXALIAS_SYS (fprintf, int, (FILE *fp, const char *format, ...)); # endif _GL_CXXALIASWARN (fprintf); #endif #if !@GNULIB_FPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_fprintf # undef fprintf # endif /* Assume fprintf is always declared. */ _GL_WARN_ON_USE (fprintf, "fprintf is not always POSIX compliant - " "use gnulib module fprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_FPURGE@ /* Discard all pending buffered I/O data on STREAM. STREAM must not be wide-character oriented. When discarding pending output, the file position is set back to where it was before the write calls. When discarding pending input, the file position is advanced to match the end of the previously read input. Return 0 if successful. Upon error, return -1 and set errno. */ # if @REPLACE_FPURGE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define fpurge rpl_fpurge # endif _GL_FUNCDECL_RPL (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fpurge, int, (FILE *gl_stream)); # else # if !@HAVE_DECL_FPURGE@ _GL_FUNCDECL_SYS (fpurge, int, (FILE *gl_stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fpurge, int, (FILE *gl_stream)); # endif _GL_CXXALIASWARN (fpurge); #elif defined GNULIB_POSIXCHECK # undef fpurge # if HAVE_RAW_DECL_FPURGE _GL_WARN_ON_USE (fpurge, "fpurge is not always present - " "use gnulib module fpurge for portability"); # endif #endif #if @GNULIB_FPUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputc # define fputc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (fputc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (fputc); #endif #if @GNULIB_FPUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fputs # define fputs rpl_fputs # endif _GL_FUNCDECL_RPL (fputs, int, (const char *string, FILE *stream) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fputs, int, (const char *string, FILE *stream)); # else _GL_CXXALIAS_SYS (fputs, int, (const char *string, FILE *stream)); # endif _GL_CXXALIASWARN (fputs); #endif #if @GNULIB_FREAD@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fread # define fread rpl_fread # endif _GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((4))); _GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)); # endif _GL_CXXALIASWARN (fread); #endif #if @GNULIB_FREOPEN@ # if @REPLACE_FREOPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef freopen # define freopen rpl_freopen # endif _GL_FUNCDECL_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # else _GL_CXXALIAS_SYS (freopen, FILE *, (const char *filename, const char *mode, FILE *stream)); # endif _GL_CXXALIASWARN (freopen); #elif defined GNULIB_POSIXCHECK # undef freopen /* Assume freopen is always declared. */ _GL_WARN_ON_USE (freopen, "freopen on native Windows platforms is not POSIX compliant - " "use gnulib module freopen for portability"); #endif #if @GNULIB_FSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fscanf # define fscanf rpl_fscanf # endif _GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...)); # else _GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...)); # endif _GL_CXXALIASWARN (fscanf); #endif /* Set up the following warnings, based on which modules are in use. GNU Coding Standards discourage the use of fseek, since it imposes an arbitrary limitation on some 32-bit hosts. Remember that the fseek module depends on the fseeko module, so we only have three cases to consider: 1. The developer is not using either module. Issue a warning under GNULIB_POSIXCHECK for both functions, to remind them that both functions have bugs on some systems. _GL_NO_LARGE_FILES has no impact on this warning. 2. The developer is using both modules. They may be unaware of the arbitrary limitations of fseek, so issue a warning under GNULIB_POSIXCHECK. On the other hand, they may be using both modules intentionally, so the developer can define _GL_NO_LARGE_FILES in the compilation units where the use of fseek is safe, to silence the warning. 3. The developer is using the fseeko module, but not fseek. Gnulib guarantees that fseek will still work around platform bugs in that case, but we presume that the developer is aware of the pitfalls of fseek and was trying to avoid it, so issue a warning even when GNULIB_POSIXCHECK is undefined. Again, _GL_NO_LARGE_FILES can be defined to silence the warning in particular compilation units. In C++ compilations with GNULIB_NAMESPACE, in order to avoid that fseek gets defined as a macro, it is recommended that the developer uses the fseek module, even if he is not calling the fseek function. Most gnulib clients that perform stream operations should fall into category 3. */ #if @GNULIB_FSEEK@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 2, above. */ # undef fseek # endif # if @REPLACE_FSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseek # define fseek rpl_fseek # endif _GL_FUNCDECL_RPL (fseek, int, (FILE *fp, long offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseek, int, (FILE *fp, long offset, int whence)); # else _GL_CXXALIAS_SYS (fseek, int, (FILE *fp, long offset, int whence)); # endif _GL_CXXALIASWARN (fseek); #endif #if @GNULIB_FSEEKO@ # if !@GNULIB_FSEEK@ && !defined _GL_NO_LARGE_FILES # define _GL_FSEEK_WARN /* Category 3, above. */ # undef fseek # endif # if @REPLACE_FSEEKO@ /* Provide an fseeko function that is aware of a preceding fflush(), and which detects pipes. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fseeko # define fseeko rpl_fseeko # endif _GL_FUNCDECL_RPL (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence)); # else # if ! @HAVE_DECL_FSEEKO@ _GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)); # endif _GL_CXXALIASWARN (fseeko); #elif defined GNULIB_POSIXCHECK # define _GL_FSEEK_WARN /* Category 1, above. */ # undef fseek # undef fseeko # if HAVE_RAW_DECL_FSEEKO _GL_WARN_ON_USE (fseeko, "fseeko is unportable - " "use gnulib module fseeko for portability"); # endif #endif #ifdef _GL_FSEEK_WARN # undef _GL_FSEEK_WARN /* Here, either fseek is undefined (but C89 guarantees that it is declared), or it is defined as rpl_fseek (declared above). */ _GL_WARN_ON_USE (fseek, "fseek cannot handle files larger than 4 GB " "on 32-bit platforms - " "use fseeko function for handling of large files"); #endif /* ftell, ftello. See the comments on fseek/fseeko. */ #if @GNULIB_FTELL@ # if defined GNULIB_POSIXCHECK && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 2, above. */ # undef ftell # endif # if @REPLACE_FTELL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftell # define ftell rpl_ftell # endif _GL_FUNCDECL_RPL (ftell, long, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftell, long, (FILE *fp)); # else _GL_CXXALIAS_SYS (ftell, long, (FILE *fp)); # endif _GL_CXXALIASWARN (ftell); #endif #if @GNULIB_FTELLO@ # if !@GNULIB_FTELL@ && !defined _GL_NO_LARGE_FILES # define _GL_FTELL_WARN /* Category 3, above. */ # undef ftell # endif # if @REPLACE_FTELLO@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftello # define ftello rpl_ftello # endif _GL_FUNCDECL_RPL (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp)); # else # if ! @HAVE_DECL_FTELLO@ _GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (ftello, off_t, (FILE *fp)); # endif _GL_CXXALIASWARN (ftello); #elif defined GNULIB_POSIXCHECK # define _GL_FTELL_WARN /* Category 1, above. */ # undef ftell # undef ftello # if HAVE_RAW_DECL_FTELLO _GL_WARN_ON_USE (ftello, "ftello is unportable - " "use gnulib module ftello for portability"); # endif #endif #ifdef _GL_FTELL_WARN # undef _GL_FTELL_WARN /* Here, either ftell is undefined (but C89 guarantees that it is declared), or it is defined as rpl_ftell (declared above). */ _GL_WARN_ON_USE (ftell, "ftell cannot handle files larger than 4 GB " "on 32-bit platforms - " "use ftello function for handling of large files"); #endif #if @GNULIB_FWRITE@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fwrite # define fwrite rpl_fwrite # endif _GL_FUNCDECL_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream) _GL_ARG_NONNULL ((1, 4))); _GL_CXXALIAS_RPL (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); # else _GL_CXXALIAS_SYS (fwrite, size_t, (const void *ptr, size_t s, size_t n, FILE *stream)); /* Work around bug 11959 when fortifying glibc 2.4 through 2.15 , which sometimes causes an unwanted diagnostic for fwrite calls. This affects only function declaration attributes under certain versions of gcc and clang, and is not needed for C++. */ # if (0 < __USE_FORTIFY_LEVEL \ && __GLIBC__ == 2 && 4 <= __GLIBC_MINOR__ && __GLIBC_MINOR__ <= 15 \ && 3 < __GNUC__ + (4 <= __GNUC_MINOR__) \ && !defined __cplusplus) # undef fwrite # undef fwrite_unlocked extern size_t __REDIRECT (rpl_fwrite, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite); extern size_t __REDIRECT (rpl_fwrite_unlocked, (const void *__restrict, size_t, size_t, FILE *__restrict), fwrite_unlocked); # define fwrite rpl_fwrite # define fwrite_unlocked rpl_fwrite_unlocked # endif # endif _GL_CXXALIASWARN (fwrite); #endif #if @GNULIB_GETC@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getc # define getc rpl_fgetc # endif _GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream)); # else _GL_CXXALIAS_SYS (getc, int, (FILE *stream)); # endif _GL_CXXALIASWARN (getc); #endif #if @GNULIB_GETCHAR@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getchar # define getchar rpl_getchar # endif _GL_FUNCDECL_RPL (getchar, int, (void)); _GL_CXXALIAS_RPL (getchar, int, (void)); # else _GL_CXXALIAS_SYS (getchar, int, (void)); # endif _GL_CXXALIASWARN (getchar); #endif #if @GNULIB_GETDELIM@ /* Read input, up to (and including) the next occurrence of DELIMITER, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETDELIM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdelim # define getdelim rpl_getdelim # endif _GL_FUNCDECL_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); _GL_CXXALIAS_RPL (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # else # if !@HAVE_DECL_GETDELIM@ _GL_FUNCDECL_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream) _GL_ARG_NONNULL ((1, 2, 4))); # endif _GL_CXXALIAS_SYS (getdelim, ssize_t, (char **lineptr, size_t *linesize, int delimiter, FILE *stream)); # endif _GL_CXXALIASWARN (getdelim); #elif defined GNULIB_POSIXCHECK # undef getdelim # if HAVE_RAW_DECL_GETDELIM _GL_WARN_ON_USE (getdelim, "getdelim is unportable - " "use gnulib module getdelim for portability"); # endif #endif #if @GNULIB_GETLINE@ /* Read a line, up to (and including) the next newline, from STREAM, store it in *LINEPTR (and NUL-terminate it). *LINEPTR is a pointer returned from malloc (or NULL), pointing to *LINESIZE bytes of space. It is realloc'd as necessary. Return the number of bytes read and stored at *LINEPTR (not including the NUL terminator), or -1 on error or EOF. */ # if @REPLACE_GETLINE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getline # define getline rpl_getline # endif _GL_FUNCDECL_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); _GL_CXXALIAS_RPL (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # else # if !@HAVE_DECL_GETLINE@ _GL_FUNCDECL_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getline, ssize_t, (char **lineptr, size_t *linesize, FILE *stream)); # endif # if @HAVE_DECL_GETLINE@ _GL_CXXALIASWARN (getline); # endif #elif defined GNULIB_POSIXCHECK # undef getline # if HAVE_RAW_DECL_GETLINE _GL_WARN_ON_USE (getline, "getline is unportable - " "use gnulib module getline for portability"); # endif #endif /* It is very rare that the developer ever has full control of stdin, so any use of gets warrants an unconditional warning; besides, C11 removed it. */ #undef gets #if HAVE_RAW_DECL_GETS _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ struct obstack; /* Grow an obstack with formatted output. Return the number of bytes added to OBS. No trailing nul byte is added, and the object should be closed with obstack_finish before use. Upon memory allocation error, call obstack_alloc_failed_handler. Upon other error, return -1. */ # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_printf rpl_obstack_printf # endif _GL_FUNCDECL_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_printf, int, (struct obstack *obs, const char *format, ...)); # endif _GL_CXXALIASWARN (obstack_printf); # if @REPLACE_OBSTACK_PRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define obstack_vprintf rpl_obstack_vprintf # endif _GL_FUNCDECL_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # else # if !@HAVE_DECL_OBSTACK_PRINTF@ _GL_FUNCDECL_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (obstack_vprintf, int, (struct obstack *obs, const char *format, va_list args)); # endif _GL_CXXALIASWARN (obstack_vprintf); #endif #if @GNULIB_PCLOSE@ # if !@HAVE_PCLOSE@ _GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pclose, int, (FILE *stream)); _GL_CXXALIASWARN (pclose); #elif defined GNULIB_POSIXCHECK # undef pclose # if HAVE_RAW_DECL_PCLOSE _GL_WARN_ON_USE (pclose, "pclose is unportable - " "use gnulib module pclose for more portability"); # endif #endif #if @GNULIB_PERROR@ /* Print a message to standard error, describing the value of ERRNO, (if STRING is not NULL and not empty) prefixed with STRING and ": ", and terminated with a newline. */ # if @REPLACE_PERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define perror rpl_perror # endif _GL_FUNCDECL_RPL (perror, void, (const char *string)); _GL_CXXALIAS_RPL (perror, void, (const char *string)); # else _GL_CXXALIAS_SYS (perror, void, (const char *string)); # endif _GL_CXXALIASWARN (perror); #elif defined GNULIB_POSIXCHECK # undef perror /* Assume perror is always declared. */ _GL_WARN_ON_USE (perror, "perror is not always POSIX compliant - " "use gnulib module perror for portability"); #endif #if @GNULIB_POPEN@ # if @REPLACE_POPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef popen # define popen rpl_popen # endif _GL_FUNCDECL_RPL (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (popen, FILE *, (const char *cmd, const char *mode)); # else # if !@HAVE_POPEN@ _GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (popen, FILE *, (const char *cmd, const char *mode)); # endif _GL_CXXALIASWARN (popen); #elif defined GNULIB_POSIXCHECK # undef popen # if HAVE_RAW_DECL_POPEN _GL_WARN_ON_USE (popen, "popen is buggy on some platforms - " "use gnulib module popen or pipe for more portability"); # endif #endif #if @GNULIB_PRINTF_POSIX@ || @GNULIB_PRINTF@ # if (@GNULIB_PRINTF_POSIX@ && @REPLACE_PRINTF@) \ || (@GNULIB_PRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) /* Don't break __attribute__((format(printf,M,N))). */ # define printf __printf__ # endif # if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL_1 (__printf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf)) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define printf rpl_printf # endif _GL_FUNCDECL_RPL (printf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (printf, int, (const char *format, ...)); # endif # define GNULIB_overrides_printf 1 # else _GL_CXXALIAS_SYS (printf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (printf); #endif #if !@GNULIB_PRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_printf # undef printf # endif /* Assume printf is always declared. */ _GL_WARN_ON_USE (printf, "printf is not always POSIX compliant - " "use gnulib module printf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_PUTC@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putc # define putc rpl_fputc # endif _GL_FUNCDECL_RPL (fputc, int, (int c, FILE *stream) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL_1 (putc, rpl_fputc, int, (int c, FILE *stream)); # else _GL_CXXALIAS_SYS (putc, int, (int c, FILE *stream)); # endif _GL_CXXALIASWARN (putc); #endif #if @GNULIB_PUTCHAR@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putchar # define putchar rpl_putchar # endif _GL_FUNCDECL_RPL (putchar, int, (int c)); _GL_CXXALIAS_RPL (putchar, int, (int c)); # else _GL_CXXALIAS_SYS (putchar, int, (int c)); # endif _GL_CXXALIASWARN (putchar); #endif #if @GNULIB_PUTS@ # if @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef puts # define puts rpl_puts # endif _GL_FUNCDECL_RPL (puts, int, (const char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (puts, int, (const char *string)); # else _GL_CXXALIAS_SYS (puts, int, (const char *string)); # endif _GL_CXXALIASWARN (puts); #endif #if @GNULIB_REMOVE@ # if @REPLACE_REMOVE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef remove # define remove rpl_remove # endif _GL_FUNCDECL_RPL (remove, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (remove, int, (const char *name)); # else _GL_CXXALIAS_SYS (remove, int, (const char *name)); # endif _GL_CXXALIASWARN (remove); #elif defined GNULIB_POSIXCHECK # undef remove /* Assume remove is always declared. */ _GL_WARN_ON_USE (remove, "remove cannot handle directories on some platforms - " "use gnulib module remove for more portability"); #endif #if @GNULIB_RENAME@ # if @REPLACE_RENAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef rename # define rename rpl_rename # endif _GL_FUNCDECL_RPL (rename, int, (const char *old_filename, const char *new_filename) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (rename, int, (const char *old_filename, const char *new_filename)); # else _GL_CXXALIAS_SYS (rename, int, (const char *old_filename, const char *new_filename)); # endif _GL_CXXALIASWARN (rename); #elif defined GNULIB_POSIXCHECK # undef rename /* Assume rename is always declared. */ _GL_WARN_ON_USE (rename, "rename is buggy on some platforms - " "use gnulib module rename for more portability"); #endif #if @GNULIB_RENAMEAT@ # if @REPLACE_RENAMEAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef renameat # define renameat rpl_renameat # endif _GL_FUNCDECL_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # else # if !@HAVE_RENAMEAT@ _GL_FUNCDECL_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (renameat, int, (int fd1, char const *file1, int fd2, char const *file2)); # endif _GL_CXXALIASWARN (renameat); #elif defined GNULIB_POSIXCHECK # undef renameat # if HAVE_RAW_DECL_RENAMEAT _GL_WARN_ON_USE (renameat, "renameat is not portable - " "use gnulib module renameat for portability"); # endif #endif #if @GNULIB_SCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if defined __GNUC__ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf /* Don't break __attribute__((format(scanf,M,N))). */ # define scanf __scanf__ # endif _GL_FUNCDECL_RPL_1 (__scanf__, int, (const char *format, ...) __asm__ (@ASM_SYMBOL_PREFIX@ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf)) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...)); # else # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef scanf # define scanf rpl_scanf # endif _GL_FUNCDECL_RPL (scanf, int, (const char *format, ...) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (scanf, int, (const char *format, ...)); # endif # else _GL_CXXALIAS_SYS (scanf, int, (const char *format, ...)); # endif _GL_CXXALIASWARN (scanf); #endif #if @GNULIB_SNPRINTF@ # if @REPLACE_SNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define snprintf rpl_snprintf # endif _GL_FUNCDECL_RPL (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (snprintf, int, (char *str, size_t size, const char *format, ...)); # else # if !@HAVE_DECL_SNPRINTF@ _GL_FUNCDECL_SYS (snprintf, int, (char *str, size_t size, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 4) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (snprintf, int, (char *str, size_t size, const char *format, ...)); # endif _GL_CXXALIASWARN (snprintf); #elif defined GNULIB_POSIXCHECK # undef snprintf # if HAVE_RAW_DECL_SNPRINTF _GL_WARN_ON_USE (snprintf, "snprintf is unportable - " "use gnulib module snprintf for portability"); # endif #endif /* Some people would argue that all sprintf uses should be warned about (for example, OpenBSD issues a link warning for it), since it can cause security holes due to buffer overruns. However, we believe that sprintf can be used safely, and is more efficient than snprintf in those safe cases; and as proof of our belief, we use sprintf in several gnulib modules. So this header intentionally avoids adding a warning to sprintf except when GNULIB_POSIXCHECK is defined. */ #if @GNULIB_SPRINTF_POSIX@ # if @REPLACE_SPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define sprintf rpl_sprintf # endif _GL_FUNCDECL_RPL (sprintf, int, (char *str, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (sprintf, int, (char *str, const char *format, ...)); # else _GL_CXXALIAS_SYS (sprintf, int, (char *str, const char *format, ...)); # endif _GL_CXXALIASWARN (sprintf); #elif defined GNULIB_POSIXCHECK # undef sprintf /* Assume sprintf is always declared. */ _GL_WARN_ON_USE (sprintf, "sprintf is not always POSIX compliant - " "use gnulib module sprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_TMPFILE@ # if @REPLACE_TMPFILE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define tmpfile rpl_tmpfile # endif _GL_FUNCDECL_RPL (tmpfile, FILE *, (void)); _GL_CXXALIAS_RPL (tmpfile, FILE *, (void)); # else _GL_CXXALIAS_SYS (tmpfile, FILE *, (void)); # endif _GL_CXXALIASWARN (tmpfile); #elif defined GNULIB_POSIXCHECK # undef tmpfile # if HAVE_RAW_DECL_TMPFILE _GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - " "use gnulib module tmpfile for portability"); # endif #endif #if @GNULIB_VASPRINTF@ /* Write formatted output to a string dynamically allocated with malloc(). If the memory allocation succeeds, store the address of the string in *RESULT and return the number of resulting bytes, excluding the trailing NUL. Upon memory allocation error, or some other error, return -1. */ # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define asprintf rpl_asprintf # endif _GL_FUNCDECL_RPL (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (asprintf, int, (char **result, const char *format, ...)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (asprintf, int, (char **result, const char *format, ...) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (asprintf, int, (char **result, const char *format, ...)); # endif _GL_CXXALIASWARN (asprintf); # if @REPLACE_VASPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vasprintf rpl_vasprintf # endif _GL_FUNCDECL_RPL (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vasprintf, int, (char **result, const char *format, va_list args)); # else # if !@HAVE_VASPRINTF@ _GL_FUNCDECL_SYS (vasprintf, int, (char **result, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (vasprintf, int, (char **result, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vasprintf); #endif #if @GNULIB_VDPRINTF@ # if @REPLACE_VDPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vdprintf rpl_vdprintf # endif _GL_FUNCDECL_RPL (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (vdprintf, int, (int fd, const char *format, va_list args)); # else # if !@HAVE_VDPRINTF@ _GL_FUNCDECL_SYS (vdprintf, int, (int fd, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((2))); # endif /* Need to cast, because on Solaris, the third parameter will likely be __va_list args. */ _GL_CXXALIAS_SYS_CAST (vdprintf, int, (int fd, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vdprintf); #elif defined GNULIB_POSIXCHECK # undef vdprintf # if HAVE_RAW_DECL_VDPRINTF _GL_WARN_ON_USE (vdprintf, "vdprintf is unportable - " "use gnulib module vdprintf for portability"); # endif #endif #if @GNULIB_VFPRINTF_POSIX@ || @GNULIB_VFPRINTF@ # if (@GNULIB_VFPRINTF_POSIX@ && @REPLACE_VFPRINTF@) \ || (@GNULIB_VFPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vfprintf rpl_vfprintf # endif # define GNULIB_overrides_vfprintf 1 # if @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); # else _GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vfprintf, int, (FILE *fp, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfprintf); #endif #if !@GNULIB_VFPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vfprintf # undef vfprintf # endif /* Assume vfprintf is always declared. */ _GL_WARN_ON_USE (vfprintf, "vfprintf is not always POSIX compliant - " "use gnulib module vfprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VFSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vfscanf # define vfscanf rpl_vfscanf # endif _GL_FUNCDECL_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vfscanf, int, (FILE *stream, const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vfscanf, int, (FILE *stream, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vfscanf); #endif #if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@ # if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \ || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@)) # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vprintf rpl_vprintf # endif # define GNULIB_overrides_vprintf 1 # if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@ _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0) _GL_ARG_NONNULL ((1))); # else _GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args)); # else /* Need to cast, because on Solaris, the second parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vprintf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vprintf); #endif #if !@GNULIB_VPRINTF_POSIX@ && defined GNULIB_POSIXCHECK # if !GNULIB_overrides_vprintf # undef vprintf # endif /* Assume vprintf is always declared. */ _GL_WARN_ON_USE (vprintf, "vprintf is not always POSIX compliant - " "use gnulib module vprintf-posix for portable " "POSIX compliance"); #endif #if @GNULIB_VSCANF@ # if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef vscanf # define vscanf rpl_vscanf # endif _GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args)); # else _GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args)); # endif _GL_CXXALIASWARN (vscanf); #endif #if @GNULIB_VSNPRINTF@ # if @REPLACE_VSNPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsnprintf rpl_vsnprintf # endif _GL_FUNCDECL_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); _GL_CXXALIAS_RPL (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # else # if !@HAVE_DECL_VSNPRINTF@ _GL_FUNCDECL_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (3, 0) _GL_ARG_NONNULL ((3))); # endif _GL_CXXALIAS_SYS (vsnprintf, int, (char *str, size_t size, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsnprintf); #elif defined GNULIB_POSIXCHECK # undef vsnprintf # if HAVE_RAW_DECL_VSNPRINTF _GL_WARN_ON_USE (vsnprintf, "vsnprintf is unportable - " "use gnulib module vsnprintf for portability"); # endif #endif #if @GNULIB_VSPRINTF_POSIX@ # if @REPLACE_VSPRINTF@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define vsprintf rpl_vsprintf # endif _GL_FUNCDECL_RPL (vsprintf, int, (char *str, const char *format, va_list args) _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (vsprintf, int, (char *str, const char *format, va_list args)); # else /* Need to cast, because on Solaris, the third parameter is __va_list args and GCC's fixincludes did not change this to __gnuc_va_list. */ _GL_CXXALIAS_SYS_CAST (vsprintf, int, (char *str, const char *format, va_list args)); # endif _GL_CXXALIASWARN (vsprintf); #elif defined GNULIB_POSIXCHECK # undef vsprintf /* Assume vsprintf is always declared. */ _GL_WARN_ON_USE (vsprintf, "vsprintf is not always POSIX compliant - " "use gnulib module vsprintf-posix for portable " "POSIX compliance"); #endif #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif /* _@GUARD_PREFIX@_STDIO_H */ #endif libidn-1.28/gltests/test-getopt.c0000644000000000000000000000547212153706067013723 00000000000000/* Test of command line argument processing. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2009. */ #include /* None of the files accessed by this test are large, so disable the ftell link warning if we are not using the gnulib ftell module. */ #define _GL_NO_LARGE_FILES #if GNULIB_TEST_GETOPT_GNU # include # ifndef __getopt_argv_const # define __getopt_argv_const const # endif # include "signature.h" SIGNATURE_CHECK (getopt_long, int, (int, char *__getopt_argv_const *, char const *, struct option const *, int *)); SIGNATURE_CHECK (getopt_long_only, int, (int, char *__getopt_argv_const *, char const *, struct option const *, int *)); #endif #include #include "signature.h" SIGNATURE_CHECK (getopt, int, (int, char * const[], char const *)); #include #include #include /* This test intentionally remaps stderr. So, we arrange to have fd 10 (outside the range of interesting fd's during the test) set up to duplicate the original stderr. */ #define BACKUP_STDERR_FILENO 10 #define ASSERT_STREAM myerr #include "macros.h" static FILE *myerr; #include "test-getopt.h" #if GNULIB_TEST_GETOPT_GNU # include "test-getopt_long.h" #endif int main (void) { /* This test validates that stderr is used correctly, so move the original into fd 10. */ if (dup2 (STDERR_FILENO, BACKUP_STDERR_FILENO) != BACKUP_STDERR_FILENO || (myerr = fdopen (BACKUP_STDERR_FILENO, "w")) == NULL) return 2; ASSERT (freopen ("test-getopt.tmp", "w", stderr) == stderr); /* These default values are required by POSIX. */ ASSERT (optind == 1); ASSERT (opterr != 0); setenv ("POSIXLY_CORRECT", "1", 1); test_getopt (); #if GNULIB_TEST_GETOPT_GNU test_getopt_long_posix (); #endif unsetenv ("POSIXLY_CORRECT"); test_getopt (); #if GNULIB_TEST_GETOPT_GNU test_getopt_long (); test_getopt_long_only (); #endif ASSERT (fclose (stderr) == 0); ASSERT (remove ("test-getopt.tmp") == 0); return 0; } libidn-1.28/gltests/test-version-etc.c0000644000000000000000000000210712153706067014647 00000000000000/* Test suite for version-etc. Copyright (C) 2009-2013 Free Software Foundation, Inc. This file is part of the GNUlib Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include "version-etc.h" #include "progname.h" #define AUTHORS "Sergey Poznyakoff", "Eric Blake" int main (int argc _GL_UNUSED, char **argv) { set_program_name (argv[0]); version_etc (stdout, "test-version-etc", "dummy", "0", AUTHORS, (const char *) NULL); return 0; } libidn-1.28/gltests/test-lstat.c0000644000000000000000000000340512153706067013542 00000000000000/* Test of lstat() function. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Simon Josefsson, 2008; and Eric Blake, 2009. */ #include #include /* Caution: lstat may be a function-like macro. Although this signature check must pass, it may be the signature of the real (and broken) lstat rather than rpl_lstat. Most code should not use the address of lstat. */ #include "signature.h" SIGNATURE_CHECK (lstat, int, (char const *, struct stat *)); #include #include #include #include #include #include #include "same-inode.h" #include "ignore-value.h" #include "macros.h" #define BASE "test-lstat.t" #include "test-lstat.h" /* Wrapper around lstat, which works even if lstat is a function-like macro, where test_lstat_func(lstat) would do the wrong thing. */ static int do_lstat (char const *name, struct stat *st) { return lstat (name, st); } int main (void) { /* Remove any leftovers from a previous partial run. */ ignore_value (system ("rm -rf " BASE "*")); return test_lstat_func (do_lstat, true); } libidn-1.28/gltests/test-dup2.c0000644000000000000000000001336412153706066013271 00000000000000/* Test duplicating file descriptors. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (dup2, int, (int, int)); #include #include #if HAVE_SYS_RESOURCE_H # include #endif #include "binary-io.h" #if GNULIB_TEST_CLOEXEC # include "cloexec.h" #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # include "msvc-nothrow.h" #endif #include "macros.h" /* Return non-zero if FD is open. */ static int is_open (int fd) { #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; #else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); #endif } #if GNULIB_TEST_CLOEXEC /* Return non-zero if FD is open and inheritable across exec/spawn. */ static int is_inheritable (int fd) { # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows, the initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE, and there is no fcntl. */ HANDLE h = (HANDLE) _get_osfhandle (fd); DWORD flags; if (h == INVALID_HANDLE_VALUE || GetHandleInformation (h, &flags) == 0) return 0; return (flags & HANDLE_FLAG_INHERIT) != 0; # else # ifndef F_GETFD # error Please port fcntl to your platform # endif int i = fcntl (fd, F_GETFD); return 0 <= i && (i & FD_CLOEXEC) == 0; # endif } #endif /* GNULIB_TEST_CLOEXEC */ #if !O_BINARY # define setmode(f,m) zero () static int zero (void) { return 0; } #endif /* Return non-zero if FD is open in the given MODE, which is either O_TEXT or O_BINARY. */ static int is_mode (int fd, int mode) { int value = setmode (fd, O_BINARY); setmode (fd, value); return mode == value; } int main (void) { const char *file = "test-dup2.tmp"; char buffer[1]; int bad_fd = getdtablesize (); int fd = open (file, O_CREAT | O_TRUNC | O_RDWR, 0600); /* Assume std descriptors were provided by invoker. */ ASSERT (STDERR_FILENO < fd); ASSERT (is_open (fd)); /* Ignore any other fd's leaked into this process. */ close (fd + 1); close (fd + 2); ASSERT (!is_open (fd + 1)); ASSERT (!is_open (fd + 2)); /* Assigning to self must be a no-op. */ ASSERT (dup2 (fd, fd) == fd); ASSERT (is_open (fd)); /* The source must be valid. */ errno = 0; ASSERT (dup2 (-1, fd) == -1); ASSERT (errno == EBADF); close (99); errno = 0; ASSERT (dup2 (99, fd) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (dup2 (AT_FDCWD, fd) == -1); ASSERT (errno == EBADF); ASSERT (is_open (fd)); /* If the source is not open, then the destination is unaffected. */ errno = 0; ASSERT (dup2 (fd + 1, fd + 1) == -1); ASSERT (errno == EBADF); ASSERT (!is_open (fd + 1)); errno = 0; ASSERT (dup2 (fd + 1, fd) == -1); ASSERT (errno == EBADF); ASSERT (is_open (fd)); /* The destination must be valid. */ errno = 0; ASSERT (dup2 (fd, -2) == -1); ASSERT (errno == EBADF); errno = 0; ASSERT (dup2 (fd, bad_fd) == -1); ASSERT (errno == EBADF); /* Using dup2 can skip fds. */ ASSERT (dup2 (fd, fd + 2) == fd + 2); ASSERT (is_open (fd)); ASSERT (!is_open (fd + 1)); ASSERT (is_open (fd + 2)); /* Verify that dup2 closes the previous occupant of a fd. */ ASSERT (open ("/dev/null", O_WRONLY, 0600) == fd + 1); ASSERT (dup2 (fd + 1, fd) == fd); ASSERT (close (fd + 1) == 0); ASSERT (write (fd, "1", 1) == 1); ASSERT (dup2 (fd + 2, fd) == fd); ASSERT (lseek (fd, 0, SEEK_END) == 0); ASSERT (write (fd + 2, "2", 1) == 1); ASSERT (lseek (fd, 0, SEEK_SET) == 0); ASSERT (read (fd, buffer, 1) == 1); ASSERT (*buffer == '2'); #if GNULIB_TEST_CLOEXEC /* Any new fd created by dup2 must not be cloexec. */ ASSERT (close (fd + 2) == 0); ASSERT (dup_cloexec (fd) == fd + 1); ASSERT (!is_inheritable (fd + 1)); ASSERT (dup2 (fd + 1, fd + 1) == fd + 1); ASSERT (!is_inheritable (fd + 1)); ASSERT (dup2 (fd + 1, fd + 2) == fd + 2); ASSERT (!is_inheritable (fd + 1)); ASSERT (is_inheritable (fd + 2)); errno = 0; ASSERT (dup2 (fd + 1, -1) == -1); ASSERT (errno == EBADF); ASSERT (!is_inheritable (fd + 1)); #endif /* On systems that distinguish between text and binary mode, dup2 reuses the mode of the source. */ setmode (fd, O_BINARY); ASSERT (is_mode (fd, O_BINARY)); ASSERT (dup2 (fd, fd + 1) == fd + 1); ASSERT (is_mode (fd + 1, O_BINARY)); setmode (fd, O_TEXT); ASSERT (is_mode (fd, O_TEXT)); ASSERT (dup2 (fd, fd + 1) == fd + 1); ASSERT (is_mode (fd + 1, O_TEXT)); /* Clean up. */ ASSERT (close (fd + 2) == 0); ASSERT (close (fd + 1) == 0); ASSERT (close (fd) == 0); ASSERT (unlink (file) == 0); return 0; } libidn-1.28/gltests/getcwd-lgpl.c0000644000000000000000000000606612166505337013656 00000000000000/* Copyright (C) 2011-2013 Free Software Foundation, Inc. This file is part of gnulib. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification */ #include #include #include #include #if GNULIB_GETCWD /* Favor GPL getcwd.c if both getcwd and getcwd-lgpl modules are in use. */ typedef int dummy; #else /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Returns NULL if the directory couldn't be determined (perhaps because the absolute name was longer than PATH_MAX, or because of missing read/search permissions on parent directories) or SIZE was too small. If successful, returns BUF. If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # undef getcwd char * rpl_getcwd (char *buf, size_t size) { char *ptr; char *result; /* Handle single size operations. */ if (buf) { if (!size) { errno = EINVAL; return NULL; } return getcwd (buf, size); } if (size) { buf = malloc (size); if (!buf) { errno = ENOMEM; return NULL; } result = getcwd (buf, size); if (!result) { int saved_errno = errno; free (buf); errno = saved_errno; } return result; } /* Flexible sizing requested. Avoid over-allocation for the common case of a name that fits within a 4k page, minus some space for local variables, to be sure we don't skip over a guard page. */ { char tmp[4032]; size = sizeof tmp; ptr = getcwd (tmp, size); if (ptr) { result = strdup (ptr); if (!result) errno = ENOMEM; return result; } if (errno != ERANGE) return NULL; } /* My what a large directory name we have. */ do { size <<= 1; ptr = realloc (buf, size); if (ptr == NULL) { free (buf); errno = ENOMEM; return NULL; } buf = ptr; result = getcwd (buf, size); } while (!result && errno == ERANGE); if (!result) { int saved_errno = errno; free (buf); errno = saved_errno; } else { /* Trim to fit, if possible. */ result = realloc (buf, strlen (buf) + 1); if (!result) result = buf; } return result; } #endif libidn-1.28/gltests/inttypes.in.h0000644000000000000000000006375212153706066013741 00000000000000/* Copyright (C) 2006-2013 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* * ISO C 99 for platforms that lack it. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Include the original if it exists, and if this file has not been included yet or if this file includes gnulib stdint.h which in turn includes this file. The include_next requires a split double-inclusion guard. */ #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H # if @HAVE_INTTYPES_H@ /* Some pre-C++11 implementations need this. */ # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS # define __STDC_FORMAT_MACROS 1 # endif # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ # endif #endif #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H #define INTTYPES_H /* Include or the gnulib replacement. But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include #endif /* Get CHAR_BIT. */ #include #if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX) # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to ." #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* 7.8.1 Macros for format specifiers */ #if defined _TNS_R_TARGET /* Tandem NonStop R series and compatible platforms released before July 2005 support %Ld but not %lld. */ # define _LONG_LONG_FORMAT_PREFIX "L" #else # define _LONG_LONG_FORMAT_PREFIX "ll" #endif #if !defined PRId8 || @PRI_MACROS_BROKEN@ # undef PRId8 # ifdef INT8_MAX # define PRId8 "d" # endif #endif #if !defined PRIi8 || @PRI_MACROS_BROKEN@ # undef PRIi8 # ifdef INT8_MAX # define PRIi8 "i" # endif #endif #if !defined PRIo8 || @PRI_MACROS_BROKEN@ # undef PRIo8 # ifdef UINT8_MAX # define PRIo8 "o" # endif #endif #if !defined PRIu8 || @PRI_MACROS_BROKEN@ # undef PRIu8 # ifdef UINT8_MAX # define PRIu8 "u" # endif #endif #if !defined PRIx8 || @PRI_MACROS_BROKEN@ # undef PRIx8 # ifdef UINT8_MAX # define PRIx8 "x" # endif #endif #if !defined PRIX8 || @PRI_MACROS_BROKEN@ # undef PRIX8 # ifdef UINT8_MAX # define PRIX8 "X" # endif #endif #if !defined PRId16 || @PRI_MACROS_BROKEN@ # undef PRId16 # ifdef INT16_MAX # define PRId16 "d" # endif #endif #if !defined PRIi16 || @PRI_MACROS_BROKEN@ # undef PRIi16 # ifdef INT16_MAX # define PRIi16 "i" # endif #endif #if !defined PRIo16 || @PRI_MACROS_BROKEN@ # undef PRIo16 # ifdef UINT16_MAX # define PRIo16 "o" # endif #endif #if !defined PRIu16 || @PRI_MACROS_BROKEN@ # undef PRIu16 # ifdef UINT16_MAX # define PRIu16 "u" # endif #endif #if !defined PRIx16 || @PRI_MACROS_BROKEN@ # undef PRIx16 # ifdef UINT16_MAX # define PRIx16 "x" # endif #endif #if !defined PRIX16 || @PRI_MACROS_BROKEN@ # undef PRIX16 # ifdef UINT16_MAX # define PRIX16 "X" # endif #endif #if !defined PRId32 || @PRI_MACROS_BROKEN@ # undef PRId32 # ifdef INT32_MAX # define PRId32 "d" # endif #endif #if !defined PRIi32 || @PRI_MACROS_BROKEN@ # undef PRIi32 # ifdef INT32_MAX # define PRIi32 "i" # endif #endif #if !defined PRIo32 || @PRI_MACROS_BROKEN@ # undef PRIo32 # ifdef UINT32_MAX # define PRIo32 "o" # endif #endif #if !defined PRIu32 || @PRI_MACROS_BROKEN@ # undef PRIu32 # ifdef UINT32_MAX # define PRIu32 "u" # endif #endif #if !defined PRIx32 || @PRI_MACROS_BROKEN@ # undef PRIx32 # ifdef UINT32_MAX # define PRIx32 "x" # endif #endif #if !defined PRIX32 || @PRI_MACROS_BROKEN@ # undef PRIX32 # ifdef UINT32_MAX # define PRIX32 "X" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _PRI64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRI64_PREFIX "I64" # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRId64 || @PRI_MACROS_BROKEN@ # undef PRId64 # define PRId64 _PRI64_PREFIX "d" # endif # if !defined PRIi64 || @PRI_MACROS_BROKEN@ # undef PRIi64 # define PRIi64 _PRI64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _PRIu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRIu64_PREFIX "I64" # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRIo64 || @PRI_MACROS_BROKEN@ # undef PRIo64 # define PRIo64 _PRIu64_PREFIX "o" # endif # if !defined PRIu64 || @PRI_MACROS_BROKEN@ # undef PRIu64 # define PRIu64 _PRIu64_PREFIX "u" # endif # if !defined PRIx64 || @PRI_MACROS_BROKEN@ # undef PRIx64 # define PRIx64 _PRIu64_PREFIX "x" # endif # if !defined PRIX64 || @PRI_MACROS_BROKEN@ # undef PRIX64 # define PRIX64 _PRIu64_PREFIX "X" # endif #endif #if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST8 # define PRIdLEAST8 "d" #endif #if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST8 # define PRIiLEAST8 "i" #endif #if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST8 # define PRIoLEAST8 "o" #endif #if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST8 # define PRIuLEAST8 "u" #endif #if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST8 # define PRIxLEAST8 "x" #endif #if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST8 # define PRIXLEAST8 "X" #endif #if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST16 # define PRIdLEAST16 "d" #endif #if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST16 # define PRIiLEAST16 "i" #endif #if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST16 # define PRIoLEAST16 "o" #endif #if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST16 # define PRIuLEAST16 "u" #endif #if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST16 # define PRIxLEAST16 "x" #endif #if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST16 # define PRIXLEAST16 "X" #endif #if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST32 # define PRIdLEAST32 "d" #endif #if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST32 # define PRIiLEAST32 "i" #endif #if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST32 # define PRIoLEAST32 "o" #endif #if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST32 # define PRIuLEAST32 "u" #endif #if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST32 # define PRIxLEAST32 "x" #endif #if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST32 # define PRIXLEAST32 "X" #endif #ifdef INT64_MAX # if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST64 # define PRIdLEAST64 PRId64 # endif # if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST64 # define PRIiLEAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST64 # define PRIoLEAST64 PRIo64 # endif # if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST64 # define PRIuLEAST64 PRIu64 # endif # if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST64 # define PRIxLEAST64 PRIx64 # endif # if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST64 # define PRIXLEAST64 PRIX64 # endif #endif #if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@ # undef PRIdFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIdFAST8 PRId64 # else # define PRIdFAST8 "d" # endif #endif #if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@ # undef PRIiFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIiFAST8 PRIi64 # else # define PRIiFAST8 "i" # endif #endif #if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@ # undef PRIoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIoFAST8 PRIo64 # else # define PRIoFAST8 "o" # endif #endif #if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@ # undef PRIuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIuFAST8 PRIu64 # else # define PRIuFAST8 "u" # endif #endif #if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@ # undef PRIxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIxFAST8 PRIx64 # else # define PRIxFAST8 "x" # endif #endif #if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@ # undef PRIXFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIXFAST8 PRIX64 # else # define PRIXFAST8 "X" # endif #endif #if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@ # undef PRIdFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIdFAST16 PRId64 # else # define PRIdFAST16 "d" # endif #endif #if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@ # undef PRIiFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIiFAST16 PRIi64 # else # define PRIiFAST16 "i" # endif #endif #if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@ # undef PRIoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIoFAST16 PRIo64 # else # define PRIoFAST16 "o" # endif #endif #if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@ # undef PRIuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIuFAST16 PRIu64 # else # define PRIuFAST16 "u" # endif #endif #if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@ # undef PRIxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIxFAST16 PRIx64 # else # define PRIxFAST16 "x" # endif #endif #if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@ # undef PRIXFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIXFAST16 PRIX64 # else # define PRIXFAST16 "X" # endif #endif #if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@ # undef PRIdFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIdFAST32 PRId64 # else # define PRIdFAST32 "d" # endif #endif #if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@ # undef PRIiFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIiFAST32 PRIi64 # else # define PRIiFAST32 "i" # endif #endif #if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@ # undef PRIoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIoFAST32 PRIo64 # else # define PRIoFAST32 "o" # endif #endif #if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@ # undef PRIuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIuFAST32 PRIu64 # else # define PRIuFAST32 "u" # endif #endif #if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@ # undef PRIxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIxFAST32 PRIx64 # else # define PRIxFAST32 "x" # endif #endif #if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@ # undef PRIXFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIXFAST32 PRIX64 # else # define PRIXFAST32 "X" # endif #endif #ifdef INT64_MAX # if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@ # undef PRIdFAST64 # define PRIdFAST64 PRId64 # endif # if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@ # undef PRIiFAST64 # define PRIiFAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@ # undef PRIoFAST64 # define PRIoFAST64 PRIo64 # endif # if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@ # undef PRIuFAST64 # define PRIuFAST64 PRIu64 # endif # if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@ # undef PRIxFAST64 # define PRIxFAST64 PRIx64 # endif # if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@ # undef PRIXFAST64 # define PRIXFAST64 PRIX64 # endif #endif #if !defined PRIdMAX || @PRI_MACROS_BROKEN@ # undef PRIdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIdMAX PRId64 # else # define PRIdMAX "ld" # endif #endif #if !defined PRIiMAX || @PRI_MACROS_BROKEN@ # undef PRIiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIiMAX PRIi64 # else # define PRIiMAX "li" # endif #endif #if !defined PRIoMAX || @PRI_MACROS_BROKEN@ # undef PRIoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIoMAX PRIo64 # else # define PRIoMAX "lo" # endif #endif #if !defined PRIuMAX || @PRI_MACROS_BROKEN@ # undef PRIuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIuMAX PRIu64 # else # define PRIuMAX "lu" # endif #endif #if !defined PRIxMAX || @PRI_MACROS_BROKEN@ # undef PRIxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIxMAX PRIx64 # else # define PRIxMAX "lx" # endif #endif #if !defined PRIXMAX || @PRI_MACROS_BROKEN@ # undef PRIXMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIXMAX PRIX64 # else # define PRIXMAX "lX" # endif #endif #if !defined PRIdPTR || @PRI_MACROS_BROKEN@ # undef PRIdPTR # ifdef INTPTR_MAX # define PRIdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined PRIiPTR || @PRI_MACROS_BROKEN@ # undef PRIiPTR # ifdef INTPTR_MAX # define PRIiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined PRIoPTR || @PRI_MACROS_BROKEN@ # undef PRIoPTR # ifdef UINTPTR_MAX # define PRIoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined PRIuPTR || @PRI_MACROS_BROKEN@ # undef PRIuPTR # ifdef UINTPTR_MAX # define PRIuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined PRIxPTR || @PRI_MACROS_BROKEN@ # undef PRIxPTR # ifdef UINTPTR_MAX # define PRIxPTR @PRIPTR_PREFIX@ "x" # endif #endif #if !defined PRIXPTR || @PRI_MACROS_BROKEN@ # undef PRIXPTR # ifdef UINTPTR_MAX # define PRIXPTR @PRIPTR_PREFIX@ "X" # endif #endif #if !defined SCNd8 || @PRI_MACROS_BROKEN@ # undef SCNd8 # ifdef INT8_MAX # define SCNd8 "hhd" # endif #endif #if !defined SCNi8 || @PRI_MACROS_BROKEN@ # undef SCNi8 # ifdef INT8_MAX # define SCNi8 "hhi" # endif #endif #if !defined SCNo8 || @PRI_MACROS_BROKEN@ # undef SCNo8 # ifdef UINT8_MAX # define SCNo8 "hho" # endif #endif #if !defined SCNu8 || @PRI_MACROS_BROKEN@ # undef SCNu8 # ifdef UINT8_MAX # define SCNu8 "hhu" # endif #endif #if !defined SCNx8 || @PRI_MACROS_BROKEN@ # undef SCNx8 # ifdef UINT8_MAX # define SCNx8 "hhx" # endif #endif #if !defined SCNd16 || @PRI_MACROS_BROKEN@ # undef SCNd16 # ifdef INT16_MAX # define SCNd16 "hd" # endif #endif #if !defined SCNi16 || @PRI_MACROS_BROKEN@ # undef SCNi16 # ifdef INT16_MAX # define SCNi16 "hi" # endif #endif #if !defined SCNo16 || @PRI_MACROS_BROKEN@ # undef SCNo16 # ifdef UINT16_MAX # define SCNo16 "ho" # endif #endif #if !defined SCNu16 || @PRI_MACROS_BROKEN@ # undef SCNu16 # ifdef UINT16_MAX # define SCNu16 "hu" # endif #endif #if !defined SCNx16 || @PRI_MACROS_BROKEN@ # undef SCNx16 # ifdef UINT16_MAX # define SCNx16 "hx" # endif #endif #if !defined SCNd32 || @PRI_MACROS_BROKEN@ # undef SCNd32 # ifdef INT32_MAX # define SCNd32 "d" # endif #endif #if !defined SCNi32 || @PRI_MACROS_BROKEN@ # undef SCNi32 # ifdef INT32_MAX # define SCNi32 "i" # endif #endif #if !defined SCNo32 || @PRI_MACROS_BROKEN@ # undef SCNo32 # ifdef UINT32_MAX # define SCNo32 "o" # endif #endif #if !defined SCNu32 || @PRI_MACROS_BROKEN@ # undef SCNu32 # ifdef UINT32_MAX # define SCNu32 "u" # endif #endif #if !defined SCNx32 || @PRI_MACROS_BROKEN@ # undef SCNx32 # ifdef UINT32_MAX # define SCNx32 "x" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _SCN64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCN64_PREFIX "I64" # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNd64 || @PRI_MACROS_BROKEN@ # undef SCNd64 # define SCNd64 _SCN64_PREFIX "d" # endif # if !defined SCNi64 || @PRI_MACROS_BROKEN@ # undef SCNi64 # define SCNi64 _SCN64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _SCNu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCNu64_PREFIX "I64" # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNo64 || @PRI_MACROS_BROKEN@ # undef SCNo64 # define SCNo64 _SCNu64_PREFIX "o" # endif # if !defined SCNu64 || @PRI_MACROS_BROKEN@ # undef SCNu64 # define SCNu64 _SCNu64_PREFIX "u" # endif # if !defined SCNx64 || @PRI_MACROS_BROKEN@ # undef SCNx64 # define SCNx64 _SCNu64_PREFIX "x" # endif #endif #if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST8 # define SCNdLEAST8 "hhd" #endif #if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST8 # define SCNiLEAST8 "hhi" #endif #if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST8 # define SCNoLEAST8 "hho" #endif #if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST8 # define SCNuLEAST8 "hhu" #endif #if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST8 # define SCNxLEAST8 "hhx" #endif #if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST16 # define SCNdLEAST16 "hd" #endif #if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST16 # define SCNiLEAST16 "hi" #endif #if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST16 # define SCNoLEAST16 "ho" #endif #if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST16 # define SCNuLEAST16 "hu" #endif #if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST16 # define SCNxLEAST16 "hx" #endif #if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST32 # define SCNdLEAST32 "d" #endif #if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST32 # define SCNiLEAST32 "i" #endif #if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST32 # define SCNoLEAST32 "o" #endif #if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST32 # define SCNuLEAST32 "u" #endif #if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST32 # define SCNxLEAST32 "x" #endif #ifdef INT64_MAX # if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST64 # define SCNdLEAST64 SCNd64 # endif # if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST64 # define SCNiLEAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST64 # define SCNoLEAST64 SCNo64 # endif # if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST64 # define SCNuLEAST64 SCNu64 # endif # if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST64 # define SCNxLEAST64 SCNx64 # endif #endif #if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@ # undef SCNdFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNdFAST8 SCNd64 # elif INT_FAST8_MAX == 0x7fff # define SCNdFAST8 "hd" # elif INT_FAST8_MAX == 0x7f # define SCNdFAST8 "hhd" # else # define SCNdFAST8 "d" # endif #endif #if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@ # undef SCNiFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNiFAST8 SCNi64 # elif INT_FAST8_MAX == 0x7fff # define SCNiFAST8 "hi" # elif INT_FAST8_MAX == 0x7f # define SCNiFAST8 "hhi" # else # define SCNiFAST8 "i" # endif #endif #if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@ # undef SCNoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNoFAST8 SCNo64 # elif UINT_FAST8_MAX == 0xffff # define SCNoFAST8 "ho" # elif UINT_FAST8_MAX == 0xff # define SCNoFAST8 "hho" # else # define SCNoFAST8 "o" # endif #endif #if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@ # undef SCNuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNuFAST8 SCNu64 # elif UINT_FAST8_MAX == 0xffff # define SCNuFAST8 "hu" # elif UINT_FAST8_MAX == 0xff # define SCNuFAST8 "hhu" # else # define SCNuFAST8 "u" # endif #endif #if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@ # undef SCNxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNxFAST8 SCNx64 # elif UINT_FAST8_MAX == 0xffff # define SCNxFAST8 "hx" # elif UINT_FAST8_MAX == 0xff # define SCNxFAST8 "hhx" # else # define SCNxFAST8 "x" # endif #endif #if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@ # undef SCNdFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNdFAST16 SCNd64 # elif INT_FAST16_MAX == 0x7fff # define SCNdFAST16 "hd" # else # define SCNdFAST16 "d" # endif #endif #if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@ # undef SCNiFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNiFAST16 SCNi64 # elif INT_FAST16_MAX == 0x7fff # define SCNiFAST16 "hi" # else # define SCNiFAST16 "i" # endif #endif #if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@ # undef SCNoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNoFAST16 SCNo64 # elif UINT_FAST16_MAX == 0xffff # define SCNoFAST16 "ho" # else # define SCNoFAST16 "o" # endif #endif #if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@ # undef SCNuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNuFAST16 SCNu64 # elif UINT_FAST16_MAX == 0xffff # define SCNuFAST16 "hu" # else # define SCNuFAST16 "u" # endif #endif #if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@ # undef SCNxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNxFAST16 SCNx64 # elif UINT_FAST16_MAX == 0xffff # define SCNxFAST16 "hx" # else # define SCNxFAST16 "x" # endif #endif #if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@ # undef SCNdFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNdFAST32 SCNd64 # else # define SCNdFAST32 "d" # endif #endif #if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@ # undef SCNiFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNiFAST32 SCNi64 # else # define SCNiFAST32 "i" # endif #endif #if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@ # undef SCNoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNoFAST32 SCNo64 # else # define SCNoFAST32 "o" # endif #endif #if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@ # undef SCNuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNuFAST32 SCNu64 # else # define SCNuFAST32 "u" # endif #endif #if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@ # undef SCNxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNxFAST32 SCNx64 # else # define SCNxFAST32 "x" # endif #endif #ifdef INT64_MAX # if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@ # undef SCNdFAST64 # define SCNdFAST64 SCNd64 # endif # if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@ # undef SCNiFAST64 # define SCNiFAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@ # undef SCNoFAST64 # define SCNoFAST64 SCNo64 # endif # if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@ # undef SCNuFAST64 # define SCNuFAST64 SCNu64 # endif # if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@ # undef SCNxFAST64 # define SCNxFAST64 SCNx64 # endif #endif #if !defined SCNdMAX || @PRI_MACROS_BROKEN@ # undef SCNdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNdMAX SCNd64 # else # define SCNdMAX "ld" # endif #endif #if !defined SCNiMAX || @PRI_MACROS_BROKEN@ # undef SCNiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNiMAX SCNi64 # else # define SCNiMAX "li" # endif #endif #if !defined SCNoMAX || @PRI_MACROS_BROKEN@ # undef SCNoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNoMAX SCNo64 # else # define SCNoMAX "lo" # endif #endif #if !defined SCNuMAX || @PRI_MACROS_BROKEN@ # undef SCNuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNuMAX SCNu64 # else # define SCNuMAX "lu" # endif #endif #if !defined SCNxMAX || @PRI_MACROS_BROKEN@ # undef SCNxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNxMAX SCNx64 # else # define SCNxMAX "lx" # endif #endif #if !defined SCNdPTR || @PRI_MACROS_BROKEN@ # undef SCNdPTR # ifdef INTPTR_MAX # define SCNdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined SCNiPTR || @PRI_MACROS_BROKEN@ # undef SCNiPTR # ifdef INTPTR_MAX # define SCNiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined SCNoPTR || @PRI_MACROS_BROKEN@ # undef SCNoPTR # ifdef UINTPTR_MAX # define SCNoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined SCNuPTR || @PRI_MACROS_BROKEN@ # undef SCNuPTR # ifdef UINTPTR_MAX # define SCNuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined SCNxPTR || @PRI_MACROS_BROKEN@ # undef SCNxPTR # ifdef UINTPTR_MAX # define SCNxPTR @PRIPTR_PREFIX@ "x" # endif #endif /* 7.8.2 Functions for greatest-width integer types */ #ifdef __cplusplus extern "C" { #endif #if @GNULIB_IMAXABS@ # if !@HAVE_DECL_IMAXABS@ extern intmax_t imaxabs (intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxabs # if HAVE_RAW_DECL_IMAXABS _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " "use gnulib module imaxabs for portability"); # endif #endif #if @GNULIB_IMAXDIV@ # if !@HAVE_DECL_IMAXDIV@ # if !GNULIB_defined_imaxdiv_t typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; # define GNULIB_defined_imaxdiv_t 1 # endif extern imaxdiv_t imaxdiv (intmax_t, intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxdiv # if HAVE_RAW_DECL_IMAXDIV _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " "use gnulib module imaxdiv for portability"); # endif #endif #if @GNULIB_STRTOIMAX@ # if @REPLACE_STRTOIMAX@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtoimax # define strtoimax rpl_strtoimax # endif _GL_FUNCDECL_RPL (strtoimax, intmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int)); # else # if !@HAVE_DECL_STRTOIMAX@ # undef strtoimax _GL_FUNCDECL_SYS (strtoimax, intmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int)); # endif _GL_CXXALIASWARN (strtoimax); #elif defined GNULIB_POSIXCHECK # undef strtoimax # if HAVE_RAW_DECL_STRTOIMAX _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " "use gnulib module strtoimax for portability"); # endif #endif #if @GNULIB_STRTOUMAX@ # if !@HAVE_DECL_STRTOUMAX@ # undef strtoumax _GL_FUNCDECL_SYS (strtoumax, uintmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); _GL_CXXALIASWARN (strtoumax); #elif defined GNULIB_POSIXCHECK # undef strtoumax # if HAVE_RAW_DECL_STRTOUMAX _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " "use gnulib module strtoumax for portability"); # endif #endif /* Don't bother defining or declaring wcstoimax and wcstoumax, since wide-character functions like this are hardly ever useful. */ #ifdef __cplusplus } #endif #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ libidn-1.28/gltests/test-environ.c0000644000000000000000000000272712153706066014100 00000000000000/* Test of environ variable. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include int main () { /* The environment variables that are set even in the weirdest situations are HOME and PATH. POSIX says that HOME is initialized by the system, and that PATH may be unset. But in practice it's more frequent to see HOME unset and PATH set. So we test the presence of PATH. */ char **remaining_variables = environ; char *string; for (; (string = *remaining_variables) != NULL; remaining_variables++) { if (strncmp (string, "PATH=", 5) == 0) /* Found the PATH environment variable. */ return 0; } /* Failed to find the PATH environment variable. */ return 1; } libidn-1.28/gltests/test-getopt_long.h0000644000000000000000000017552412153706067014755 00000000000000/* Test of command line argument processing. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2009. */ static int a_seen; static int b_seen; static int q_seen; static const struct option long_options_required[] = { { "alpha", no_argument, NULL, 'a' }, { "beta", no_argument, &b_seen, 1 }, { "prune", required_argument, NULL, 'p' }, { "quetsche", required_argument, &q_seen, 1 }, { "xtremely-",no_argument, NULL, 1003 }, { "xtra", no_argument, NULL, 1001 }, { "xtreme", no_argument, NULL, 1002 }, { "xtremely", no_argument, NULL, 1003 }, { NULL, 0, NULL, 0 } }; static const struct option long_options_optional[] = { { "alpha", no_argument, NULL, 'a' }, { "beta", no_argument, &b_seen, 1 }, { "prune", optional_argument, NULL, 'p' }, { "quetsche", optional_argument, &q_seen, 1 }, { NULL, 0, NULL, 0 } }; static void getopt_long_loop (int argc, const char **argv, const char *options, const struct option *long_options, const char **p_value, const char **q_value, int *non_options_count, const char **non_options, int *unrecognized) { int option_index = -1; int c; opterr = 0; q_seen = 0; while ((c = getopt_long (argc, (char **) argv, options, long_options, &option_index)) != -1) { switch (c) { case 0: /* An option with a non-NULL flag pointer was processed. */ if (q_seen) *q_value = optarg; break; case 'a': a_seen++; break; case 'b': b_seen = 1; break; case 'p': *p_value = optarg; break; case 'q': *q_value = optarg; break; case '\1': /* Must only happen with option '-' at the beginning. */ ASSERT (options[0] == '-'); non_options[(*non_options_count)++] = optarg; break; case ':': /* Must only happen with option ':' at the beginning. */ ASSERT (options[0] == ':' || ((options[0] == '-' || options[0] == '+') && options[1] == ':')); /* fall through */ case '?': *unrecognized = optopt; break; default: *unrecognized = c; break; } } } /* Reduce casting, so we can use string literals elsewhere. getopt_long takes an array of char*, but luckily does not modify those elements, so we can pass const char*. */ static int do_getopt_long (int argc, const char **argv, const char *shortopts, const struct option *longopts, int *longind) { return getopt_long (argc, (char **) argv, shortopts, longopts, longind); } static void test_getopt_long (void) { int start; /* Test disambiguation of options. */ { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--x"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xt"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xtr"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xtra"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == 1001); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xtre"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xtrem"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xtreme"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == 1002); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xtremel"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == 1003); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--xtremely"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == 1003); } /* Check that -W handles unknown options. */ { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "W;", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 'W'); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-Wunknown"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "W;", long_options_required, &option_index); /* glibc and BSD behave differently here, but for now, we allow both behaviors since W support is not frequently used. */ if (c == '?') { ASSERT (optopt == 0); ASSERT (optarg == NULL); } else { ASSERT (c == 'W'); ASSERT (strcmp (optarg, "unknown") == 0); } } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc++] = "unknown"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "W;", long_options_required, &option_index); /* glibc and BSD behave differently here, but for now, we allow both behaviors since W support is not frequently used. */ if (c == '?') { ASSERT (optopt == 0); ASSERT (optarg == NULL); } else { ASSERT (c == 'W'); ASSERT (strcmp (optarg, "unknown") == 0); } } /* Test that 'W' does not dump core: http://sourceware.org/bugzilla/show_bug.cgi?id=12922 */ { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc++] = "dummy"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long (argc, argv, "W;", NULL, &option_index); ASSERT (c == 'W'); ASSERT (optind == 2); } /* Test processing of boolean short options. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-a"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-b"; argv[argc++] = "-a"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-ba"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-ab"; argv[argc++] = "-a"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 2); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } /* Test processing of boolean long options. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--alpha"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--beta"; argv[argc++] = "--alpha"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--alpha"; argv[argc++] = "--beta"; argv[argc++] = "--alpha"; argv[argc++] = "--beta"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 2); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); } /* Test processing of boolean long options via -W. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-Walpha"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abW;", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc++] = "beta"; argv[argc++] = "-W"; argv[argc++] = "alpha"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "aW;b", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-Walpha"; argv[argc++] = "-Wbeta"; argv[argc++] = "-Walpha"; argv[argc++] = "-Wbeta"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "W;ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 2); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); } /* Test processing of short options with arguments. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-pfoo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-ab"; argv[argc++] = "-q"; argv[argc++] = "baz"; argv[argc++] = "-pfoo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value != NULL && strcmp (q_value, "baz") == 0); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); } /* Test processing of long options with arguments. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--p=foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--p"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-ab"; argv[argc++] = "--q"; argv[argc++] = "baz"; argv[argc++] = "--p=foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value != NULL && strcmp (q_value, "baz") == 0); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); } /* Test processing of long options with arguments via -W. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-Wp=foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p:q:W;", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc++] = "p"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p:W;q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-ab"; argv[argc++] = "-Wq"; argv[argc++] = "baz"; argv[argc++] = "-W"; argv[argc++] = "p=foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "W;abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value != NULL && strcmp (q_value, "baz") == 0); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 6); } /* Test processing of short options with optional arguments. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-pfoo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } /* Test processing of long options with optional arguments. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--p=foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--p"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--p="; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && *p_value == '\0'); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "--p"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } /* Test processing of long options with optional arguments via -W. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-Wp=foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::q::W;", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-Wp"; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::q::W;", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-Wp="; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "W;p::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && *p_value == '\0'); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc++] = "p="; argv[argc++] = "foo"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "W;p::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && *p_value == '\0'); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 3); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-W"; argv[argc++] = "p"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "W;abp::q::", long_options_optional, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); /* ASSERT (p_value == NULL); */ ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); } /* Check that invalid options are recognized. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-x"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'x'); ASSERT (optind == 5); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "-:"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == ':'); ASSERT (optind == 5); } /* Check that unexpected arguments are recognized. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "--a="; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 'a'); ASSERT (optind == 4); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "foo"; argv[argc++] = "--b="; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "foo") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); /* When flag is non-zero, glibc sets optopt anyway, but BSD leaves optopt unchanged. */ ASSERT (unrecognized == 1 || unrecognized == 0); ASSERT (optind == 4); } /* Check that by default, non-options arguments are moved to the end. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "donald") == 0); ASSERT (strcmp (argv[5], "duck") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); } /* Check that '--' ends the argument processing. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[20]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "--"; argv[argc++] = "-b"; argv[argc++] = "foo"; argv[argc++] = "-q"; argv[argc++] = "johnny"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "--") == 0); ASSERT (strcmp (argv[5], "donald") == 0); ASSERT (strcmp (argv[6], "duck") == 0); ASSERT (strcmp (argv[7], "-b") == 0); ASSERT (strcmp (argv[8], "foo") == 0); ASSERT (strcmp (argv[9], "-q") == 0); ASSERT (strcmp (argv[10], "johnny") == 0); ASSERT (strcmp (argv[11], "bar") == 0); ASSERT (argv[12] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 5); } /* Check that the '-' flag causes non-options to be returned in order. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "-abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 3); ASSERT (strcmp (non_options[0], "donald") == 0); ASSERT (strcmp (non_options[1], "duck") == 0); ASSERT (strcmp (non_options[2], "bar") == 0); ASSERT (unrecognized == 0); ASSERT (optind == 7); } /* Check that '--' ends the argument processing. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[20]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "--"; argv[argc++] = "-b"; argv[argc++] = "foo"; argv[argc++] = "-q"; argv[argc++] = "johnny"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "-abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "--") == 0); ASSERT (strcmp (argv[7], "-b") == 0); ASSERT (strcmp (argv[8], "foo") == 0); ASSERT (strcmp (argv[9], "-q") == 0); ASSERT (strcmp (argv[10], "johnny") == 0); ASSERT (strcmp (argv[11], "bar") == 0); ASSERT (argv[12] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); if (non_options_count == 2) { /* glibc behaviour. */ ASSERT (non_options_count == 2); ASSERT (strcmp (non_options[0], "donald") == 0); ASSERT (strcmp (non_options[1], "duck") == 0); ASSERT (unrecognized == 0); ASSERT (optind == 7); } else { /* Another valid behaviour. */ ASSERT (non_options_count == 7); ASSERT (strcmp (non_options[0], "donald") == 0); ASSERT (strcmp (non_options[1], "duck") == 0); ASSERT (strcmp (non_options[2], "-b") == 0); ASSERT (strcmp (non_options[3], "foo") == 0); ASSERT (strcmp (non_options[4], "-q") == 0); ASSERT (strcmp (non_options[5], "johnny") == 0); ASSERT (strcmp (non_options[6], "bar") == 0); ASSERT (unrecognized == 0); ASSERT (optind == 12); } } /* Check that the '-' flag has to come first. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:-", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "donald") == 0); ASSERT (strcmp (argv[5], "duck") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); } /* Check that the '+' flag causes the first non-option to terminate the loop. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "+abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); } for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-+"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "+abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == '+'); ASSERT (optind == 2); } /* Check that '--' ends the argument processing. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[20]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "--"; argv[argc++] = "-b"; argv[argc++] = "foo"; argv[argc++] = "-q"; argv[argc++] = "johnny"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "+abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "--") == 0); ASSERT (strcmp (argv[7], "-b") == 0); ASSERT (strcmp (argv[8], "foo") == 0); ASSERT (strcmp (argv[9], "-q") == 0); ASSERT (strcmp (argv[10], "johnny") == 0); ASSERT (strcmp (argv[11], "bar") == 0); ASSERT (argv[12] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); } /* Check that the '+' flag has to come first. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:+", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "-p") == 0); ASSERT (strcmp (argv[2], "billy") == 0); ASSERT (strcmp (argv[3], "-a") == 0); ASSERT (strcmp (argv[4], "donald") == 0); ASSERT (strcmp (argv[5], "duck") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 1); ASSERT (b_seen == 0); ASSERT (p_value != NULL && strcmp (p_value, "billy") == 0); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); } } /* Test behavior of getopt_long when POSIXLY_CORRECT is set in the environment. Options with optional arguments should not change behavior just because of an environment variable. http://lists.gnu.org/archive/html/bug-m4/2006-09/msg00028.html */ static void test_getopt_long_posix (void) { int start; /* Check that POSIXLY_CORRECT stops parsing the same as leading '+'. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "donald"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc++] = "duck"; argv[argc++] = "-a"; argv[argc++] = "bar"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "abp:q:", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (strcmp (argv[0], "program") == 0); ASSERT (strcmp (argv[1], "donald") == 0); ASSERT (strcmp (argv[2], "-p") == 0); ASSERT (strcmp (argv[3], "billy") == 0); ASSERT (strcmp (argv[4], "duck") == 0); ASSERT (strcmp (argv[5], "-a") == 0); ASSERT (strcmp (argv[6], "bar") == 0); ASSERT (argv[7] == NULL); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 1); } /* Check that POSIXLY_CORRECT doesn't change optional arguments. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-p"; argv[argc++] = "billy"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "p::", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 0); ASSERT (b_seen == 0); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 0); ASSERT (unrecognized == 0); ASSERT (optind == 2); } /* Check that leading - still sees options after non-options. */ for (start = 0; start <= 1; start++) { const char *p_value = NULL; const char *q_value = NULL; int non_options_count = 0; const char *non_options[10]; int unrecognized = 0; int argc = 0; const char *argv[10]; a_seen = 0; b_seen = 0; argv[argc++] = "program"; argv[argc++] = "-a"; argv[argc++] = "billy"; argv[argc++] = "-b"; argv[argc] = NULL; optind = start; getopt_long_loop (argc, argv, "-ab", long_options_required, &p_value, &q_value, &non_options_count, non_options, &unrecognized); ASSERT (a_seen == 1); ASSERT (b_seen == 1); ASSERT (p_value == NULL); ASSERT (q_value == NULL); ASSERT (non_options_count == 1); ASSERT (strcmp (non_options[0], "billy") == 0); ASSERT (unrecognized == 0); ASSERT (optind == 4); } } /* Reduce casting, so we can use string literals elsewhere. getopt_long_only takes an array of char*, but luckily does not modify those elements, so we can pass const char*. */ static int do_getopt_long_only (int argc, const char **argv, const char *shortopts, const struct option *longopts, int *longind) { return getopt_long_only (argc, (char **) argv, shortopts, longopts, longind); } static void test_getopt_long_only (void) { /* Test disambiguation of options. */ { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-x"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-x"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "abx", long_options_required, &option_index); ASSERT (c == 'x'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--x"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "abx", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-b"; argv[argc] = NULL; optind = 1; opterr = 0; b_seen = 0; c = do_getopt_long_only (argc, argv, "abx", long_options_required, &option_index); ASSERT (c == 'b'); ASSERT (b_seen == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "--b"; argv[argc] = NULL; optind = 1; opterr = 0; b_seen = 0; c = do_getopt_long_only (argc, argv, "abx", long_options_required, &option_index); ASSERT (c == 0); ASSERT (b_seen == 1); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-xt"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-xt"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "abx", long_options_required, &option_index); ASSERT (c == '?'); ASSERT (optopt == 0); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-xtra"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "ab", long_options_required, &option_index); ASSERT (c == 1001); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-xtreme"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "abx:", long_options_required, &option_index); ASSERT (c == 1002); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-xtremel"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "ab", long_options_required, &option_index); /* glibc getopt_long_only is intentionally different from getopt_long when handling a prefix that is common to two spellings, when both spellings have the same option directives. BSD getopt_long_only treats both cases the same. */ ASSERT (c == 1003 || c == '?'); ASSERT (optind == 2); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-xtremel"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "abx::", long_options_required, &option_index); /* glibc getopt_long_only is intentionally different from getopt_long when handling a prefix that is common to two spellings, when both spellings have the same option directives. BSD getopt_long_only treats both cases the same. */ ASSERT (c == 1003 || c == '?'); ASSERT (optind == 2); ASSERT (optarg == NULL); } { int argc = 0; const char *argv[10]; int option_index; int c; argv[argc++] = "program"; argv[argc++] = "-xtras"; argv[argc] = NULL; optind = 1; opterr = 0; c = do_getopt_long_only (argc, argv, "abx::", long_options_required, &option_index); ASSERT (c == 'x'); ASSERT (strcmp (optarg, "tras") == 0); } } libidn-1.28/gltests/dup2.c0000644000000000000000000000716512153706066012316 00000000000000/* Duplicate an open file descriptor to a specified file descriptor. Copyright (C) 1999, 2004-2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Paul Eggert */ #include /* Specification. */ #include #include #include #if HAVE_DUP2 # undef dup2 # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include # include "msvc-inval.h" /* Get _get_osfhandle. */ # include "msvc-nothrow.h" static int ms_windows_dup2 (int fd, int desired_fd) { int result; /* If fd is closed, mingw hangs on dup2 (fd, fd). If fd is open, dup2 (fd, fd) returns 0, but all further attempts to use fd in future dup2 calls will hang. */ if (fd == desired_fd) { if ((HANDLE) _get_osfhandle (fd) == INVALID_HANDLE_VALUE) { errno = EBADF; return -1; } return fd; } /* Wine 1.0.1 return 0 when desired_fd is negative but not -1: http://bugs.winehq.org/show_bug.cgi?id=21289 */ if (desired_fd < 0) { errno = EBADF; return -1; } TRY_MSVC_INVAL { result = dup2 (fd, desired_fd); } CATCH_MSVC_INVAL { errno = EBADF; result = -1; } DONE_MSVC_INVAL; if (result == 0) result = desired_fd; return result; } # define dup2 ms_windows_dup2 # endif int rpl_dup2 (int fd, int desired_fd) { int result; # ifdef F_GETFL /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF. On Cygwin 1.5.x, dup2 (1, 1) returns 0. On Cygwin 1.7.17, dup2 (1, -1) dumps core. On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */ if (desired_fd < 0) fd = desired_fd; if (fd == desired_fd) return fcntl (fd, F_GETFL) == -1 ? -1 : fd; # endif result = dup2 (fd, desired_fd); /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */ if (result == -1 && errno == EMFILE) errno = EBADF; # if REPLACE_FCHDIR if (fd != desired_fd && result != -1) result = _gl_register_dup (fd, result); # endif return result; } #else /* !HAVE_DUP2 */ /* On older platforms, dup2 did not exist. */ # ifndef F_DUPFD static int dupfd (int fd, int desired_fd) { int duplicated_fd = dup (fd); if (duplicated_fd < 0 || duplicated_fd == desired_fd) return duplicated_fd; else { int r = dupfd (fd, desired_fd); int e = errno; close (duplicated_fd); errno = e; return r; } } # endif int dup2 (int fd, int desired_fd) { int result = fcntl (fd, F_GETFL) < 0 ? -1 : fd; if (result == -1 || fd == desired_fd) return result; close (desired_fd); # ifdef F_DUPFD result = fcntl (fd, F_DUPFD, desired_fd); # if REPLACE_FCHDIR if (0 <= result) result = _gl_register_dup (fd, result); # endif # else result = dupfd (fd, desired_fd); # endif if (result == -1 && (errno == EMFILE || errno == EINVAL)) errno = EBADF; return result; } #endif /* !HAVE_DUP2 */ libidn-1.28/gltests/pathmax.h0000644000000000000000000000555612153706066013115 00000000000000/* Define PATH_MAX somehow. Requires sys/types.h. Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _PATHMAX_H # define _PATHMAX_H /* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, including the terminating NUL byte. PATH_MAX is not defined on systems which have no limit on filename length, such as GNU/Hurd. This file does *not* define PATH_MAX always. Programs that use this file can handle the GNU/Hurd case in several ways: - Either with a package-wide handling, or with a per-file handling, - Either through a #ifdef PATH_MAX or through a fallback like #ifndef PATH_MAX # define PATH_MAX 8192 #endif or through a fallback like #ifndef PATH_MAX # define PATH_MAX pathconf ("/", _PC_PATH_MAX) #endif */ # include # include # ifndef _POSIX_PATH_MAX # define _POSIX_PATH_MAX 256 # endif /* Don't include sys/param.h if it already has been. */ # if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include # endif # if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN # endif # ifdef __hpux /* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, *not* including the terminating NUL byte, and is set to 1023. Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is not defined at all any more. */ # undef PATH_MAX # define PATH_MAX 1024 # endif # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, section "Maximum Path Length Limitation", explains that the maximum size of a filename, including the terminating NUL byte, is 260 = 3 + 256 + 1. This is the same value as - FILENAME_MAX in , - _MAX_PATH in , - MAX_PATH in . Undefine the original value, because mingw's gets it wrong. */ # undef PATH_MAX # define PATH_MAX 260 # endif #endif /* _PATHMAX_H */ libidn-1.28/gltests/fstat.c0000644000000000000000000000460512153706066012561 00000000000000/* fstat() replacement. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_fstat doesn't recurse to rpl_fstat. */ #define __need_system_sys_stat_h #include /* Get the original definition of fstat. It might be defined as a macro. */ #include #include #if _GL_WINDOWS_64_BIT_ST_SIZE # undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */ # define stat _stati64 # undef fstat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */ # define fstat _fstati64 #endif #undef __need_system_sys_stat_h static int orig_fstat (int fd, struct stat *buf) { return fstat (fd, buf); } /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "sys/stat.h" #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int fstat_nothrow (int fd, struct stat *buf) { int result; TRY_MSVC_INVAL { result = orig_fstat (fd, buf); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } #else # define fstat_nothrow orig_fstat #endif int rpl_fstat (int fd, struct stat *buf) { #if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY /* Handle the case when rpl_open() used a dummy file descriptor to work around an open() that can't normally visit directories. */ const char *name = _gl_directory_name (fd); if (name != NULL) return stat (name, buf); #endif return fstat_nothrow (fd, buf); } libidn-1.28/gltests/test-lstat.h0000644000000000000000000000727012153706067013553 00000000000000/* Test of lstat() function. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Simon Josefsson, 2008; and Eric Blake, 2009. */ /* This file is designed to test both lstat(n,buf) and fstatat(AT_FDCWD,n,buf,AT_SYMLINK_NOFOLLOW). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static int test_lstat_func (int (*func) (char const *, struct stat *), bool print) { struct stat st1; struct stat st2; /* Test for common directories. */ ASSERT (func (".", &st1) == 0); ASSERT (func ("./", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (S_ISDIR (st1.st_mode)); ASSERT (S_ISDIR (st2.st_mode)); ASSERT (func ("/", &st1) == 0); ASSERT (func ("///", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (S_ISDIR (st1.st_mode)); ASSERT (S_ISDIR (st2.st_mode)); ASSERT (func ("..", &st1) == 0); ASSERT (S_ISDIR (st1.st_mode)); /* Test for error conditions. */ errno = 0; ASSERT (func ("", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch/", &st1) == -1); ASSERT (errno == ENOENT); ASSERT (close (creat (BASE "file", 0600)) == 0); ASSERT (func (BASE "file", &st1) == 0); ASSERT (S_ISREG (st1.st_mode)); errno = 0; ASSERT (func (BASE "file/", &st1) == -1); ASSERT (errno == ENOTDIR); /* Now for some symlink tests, where supported. We set up: link1 -> directory link2 -> file link3 -> dangling link4 -> loop then test behavior both with and without trailing slash. */ if (symlink (".", BASE "link1") != 0) { ASSERT (unlink (BASE "file") == 0); if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } ASSERT (symlink (BASE "file", BASE "link2") == 0); ASSERT (symlink (BASE "nosuch", BASE "link3") == 0); ASSERT (symlink (BASE "link4", BASE "link4") == 0); ASSERT (func (BASE "link1", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); ASSERT (func (BASE "link1/", &st1) == 0); ASSERT (stat (BASE "link1", &st2) == 0); ASSERT (S_ISDIR (st1.st_mode)); ASSERT (S_ISDIR (st2.st_mode)); ASSERT (SAME_INODE (st1, st2)); ASSERT (func (BASE "link2", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); errno = 0; ASSERT (func (BASE "link2/", &st1) == -1); ASSERT (errno == ENOTDIR); ASSERT (func (BASE "link3", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); errno = 0; ASSERT (func (BASE "link3/", &st1) == -1); ASSERT (errno == ENOENT); ASSERT (func (BASE "link4", &st1) == 0); ASSERT (S_ISLNK (st1.st_mode)); errno = 0; ASSERT (func (BASE "link4/", &st1) == -1); ASSERT (errno == ELOOP); /* Cleanup. */ ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link1") == 0); ASSERT (unlink (BASE "link2") == 0); ASSERT (unlink (BASE "link3") == 0); ASSERT (unlink (BASE "link4") == 0); return 0; } libidn-1.28/gltests/test-alloca-opt.c0000644000000000000000000000276212153706066014452 00000000000000/* Test of optional automatic memory allocation. Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #if HAVE_ALLOCA static void do_allocation (int n) { void *ptr = alloca (n); (void) ptr; } void (*func) (int) = do_allocation; #endif int main () { #if HAVE_ALLOCA int i; /* Repeat a lot of times, to make sure there's no memory leak. */ for (i = 0; i < 100000; i++) { /* Try various values. n = 0 gave a crash on Alpha with gcc-2.5.8. Some versions of Mac OS X have a stack size limit of 512 KB. */ func (34); func (134); func (399); func (510823); func (129321); func (0); func (4070); func (4095); func (1); func (16582); } #endif return 0; } libidn-1.28/gltests/version-etc-fsf.c0000644000000000000000000000220212153706067014442 00000000000000/* Variable with FSF copyright information, for version-etc. Copyright (C) 1999-2006, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Jim Meyering. */ #include /* Specification. */ #include "version-etc.h" /* Default copyright goes to the FSF. */ const char version_etc_copyright[] = /* Do *not* mark this string for translation. %s is a copyright symbol suitable for this locale, and %d is the copyright year. */ "Copyright %s %d Free Software Foundation, Inc."; libidn-1.28/gltests/dosname.h0000644000000000000000000000373312153706066013074 00000000000000/* File names on MS-DOS/Windows systems. Copyright (C) 2000-2001, 2004-2006, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . From Paul Eggert and Jim Meyering. */ #ifndef _DOSNAME_H #define _DOSNAME_H #if (defined _WIN32 || defined __WIN32__ || \ defined __MSDOS__ || defined __CYGWIN__ || \ defined __EMX__ || defined __DJGPP__) /* This internal macro assumes ASCII, but all hosts that support drive letters use ASCII. */ # define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \ <= 'z' - 'a') # define FILE_SYSTEM_PREFIX_LEN(Filename) \ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0) # ifndef __CYGWIN__ # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1 # endif # define ISSLASH(C) ((C) == '/' || (C) == '\\') #else # define FILE_SYSTEM_PREFIX_LEN(Filename) 0 # define ISSLASH(C) ((C) == '/') #endif #ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0 #endif #if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE # define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)]) # else # define IS_ABSOLUTE_FILE_NAME(F) \ (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0) #endif #define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F)) #endif /* DOSNAME_H_ */ libidn-1.28/gltests/test-symlink.c0000644000000000000000000000242212153706067014077 00000000000000/* Tests of symlink. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (symlink, int, (char const *, char const *)); #include #include #include #include #include #include #include "ignore-value.h" #include "macros.h" #define BASE "test-symlink.t" #include "test-symlink.h" int main (void) { /* Remove any leftovers from a previous partial run. */ ignore_value (system ("rm -rf " BASE "*")); return test_symlink (symlink, true); } libidn-1.28/gltests/test-intprops.c0000644000000000000000000002704012153706067014272 00000000000000/* Test intprops.h. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ /* Tell gcc not to warn about the many (X < 0) expressions that the overflow macros expand to. */ #if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wtype-limits" #endif #include #include "intprops.h" #include "verify.h" #include #include #include "macros.h" /* VERIFY (X) uses a static assertion for compilers that are known to work, and falls back on a dynamic assertion for other compilers. These tests should be checkable via 'verify' rather than 'ASSERT', but using 'verify' would run into a bug with HP-UX 11.23 cc; see . */ #if __GNUC__ || __SUNPRO_C # define VERIFY(x) do { verify (x); } while (0) #else # define VERIFY(x) ASSERT (x) #endif int main (void) { /* Use VERIFY for tests that must be integer constant expressions, ASSERT otherwise. */ /* TYPE_IS_INTEGER. */ ASSERT (TYPE_IS_INTEGER (bool)); ASSERT (TYPE_IS_INTEGER (char)); ASSERT (TYPE_IS_INTEGER (signed char)); ASSERT (TYPE_IS_INTEGER (unsigned char)); ASSERT (TYPE_IS_INTEGER (short int)); ASSERT (TYPE_IS_INTEGER (unsigned short int)); ASSERT (TYPE_IS_INTEGER (int)); ASSERT (TYPE_IS_INTEGER (unsigned int)); ASSERT (TYPE_IS_INTEGER (long int)); ASSERT (TYPE_IS_INTEGER (unsigned long int)); ASSERT (TYPE_IS_INTEGER (intmax_t)); ASSERT (TYPE_IS_INTEGER (uintmax_t)); ASSERT (! TYPE_IS_INTEGER (float)); ASSERT (! TYPE_IS_INTEGER (double)); ASSERT (! TYPE_IS_INTEGER (long double)); /* TYPE_SIGNED. */ /* VERIFY (! TYPE_SIGNED (bool)); // not guaranteed by gnulib substitute */ VERIFY (TYPE_SIGNED (signed char)); VERIFY (! TYPE_SIGNED (unsigned char)); VERIFY (TYPE_SIGNED (short int)); VERIFY (! TYPE_SIGNED (unsigned short int)); VERIFY (TYPE_SIGNED (int)); VERIFY (! TYPE_SIGNED (unsigned int)); VERIFY (TYPE_SIGNED (long int)); VERIFY (! TYPE_SIGNED (unsigned long int)); VERIFY (TYPE_SIGNED (intmax_t)); VERIFY (! TYPE_SIGNED (uintmax_t)); ASSERT (TYPE_SIGNED (float)); ASSERT (TYPE_SIGNED (double)); ASSERT (TYPE_SIGNED (long double)); /* Integer representation. */ VERIFY (INT_MIN + INT_MAX < 0 ? (TYPE_TWOS_COMPLEMENT (int) && ! TYPE_ONES_COMPLEMENT (int) && ! TYPE_SIGNED_MAGNITUDE (int)) : (! TYPE_TWOS_COMPLEMENT (int) && (TYPE_ONES_COMPLEMENT (int) || TYPE_SIGNED_MAGNITUDE (int)))); /* TYPE_MINIMUM, TYPE_MAXIMUM. */ VERIFY (TYPE_MINIMUM (char) == CHAR_MIN); VERIFY (TYPE_MAXIMUM (char) == CHAR_MAX); VERIFY (TYPE_MINIMUM (unsigned char) == 0); VERIFY (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX); VERIFY (TYPE_MINIMUM (signed char) == SCHAR_MIN); VERIFY (TYPE_MAXIMUM (signed char) == SCHAR_MAX); VERIFY (TYPE_MINIMUM (short int) == SHRT_MIN); VERIFY (TYPE_MAXIMUM (short int) == SHRT_MAX); VERIFY (TYPE_MINIMUM (unsigned short int) == 0); VERIFY (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX); VERIFY (TYPE_MINIMUM (int) == INT_MIN); VERIFY (TYPE_MAXIMUM (int) == INT_MAX); VERIFY (TYPE_MINIMUM (unsigned int) == 0); VERIFY (TYPE_MAXIMUM (unsigned int) == UINT_MAX); VERIFY (TYPE_MINIMUM (long int) == LONG_MIN); VERIFY (TYPE_MAXIMUM (long int) == LONG_MAX); VERIFY (TYPE_MINIMUM (unsigned long int) == 0); VERIFY (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX); VERIFY (TYPE_MINIMUM (intmax_t) == INTMAX_MIN); VERIFY (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX); VERIFY (TYPE_MINIMUM (uintmax_t) == 0); VERIFY (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX); /* INT_BITS_STRLEN_BOUND. */ VERIFY (INT_BITS_STRLEN_BOUND (1) == 1); VERIFY (INT_BITS_STRLEN_BOUND (2620) == 789); /* INT_STRLEN_BOUND, INT_BUFSIZE_BOUND. */ #ifdef INT32_MAX /* POSIX guarantees int32_t; this ports to non-POSIX. */ VERIFY (INT_STRLEN_BOUND (int32_t) == sizeof ("-2147483648") - 1); VERIFY (INT_BUFSIZE_BOUND (int32_t) == sizeof ("-2147483648")); #endif #ifdef INT64_MAX VERIFY (INT_STRLEN_BOUND (int64_t) == sizeof ("-9223372036854775808") - 1); VERIFY (INT_BUFSIZE_BOUND (int64_t) == sizeof ("-9223372036854775808")); #endif /* All the INT__RANGE_OVERFLOW tests are equally valid as INT__OVERFLOW tests, so define a single macro to do both. */ #define CHECK_BINOP(op, a, b, min, max, overflow) \ (INT_##op##_RANGE_OVERFLOW (a, b, min, max) == (overflow) \ && INT_##op##_OVERFLOW (a, b) == (overflow)) #define CHECK_UNOP(op, a, min, max, overflow) \ (INT_##op##_RANGE_OVERFLOW (a, min, max) == (overflow) \ && INT_##op##_OVERFLOW (a) == (overflow)) /* INT__RANGE_OVERFLOW, INT__OVERFLOW. */ VERIFY (INT_ADD_RANGE_OVERFLOW (INT_MAX, 1, INT_MIN, INT_MAX)); VERIFY (INT_ADD_OVERFLOW (INT_MAX, 1)); VERIFY (CHECK_BINOP (ADD, INT_MAX, 1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (ADD, INT_MAX, -1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (ADD, INT_MIN, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (ADD, INT_MIN, -1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (ADD, UINT_MAX, 1u, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (ADD, 0u, 1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, -1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, 1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, -1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, UINT_MAX, 1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, 0u, 1u, 0u, UINT_MAX, true)); VERIFY (CHECK_UNOP (NEGATE, INT_MIN, INT_MIN, INT_MAX, TYPE_TWOS_COMPLEMENT (int))); VERIFY (CHECK_UNOP (NEGATE, 0, INT_MIN, INT_MAX, false)); VERIFY (CHECK_UNOP (NEGATE, INT_MAX, INT_MIN, INT_MAX, false)); VERIFY (CHECK_UNOP (NEGATE, 0u, 0u, UINT_MAX, false)); VERIFY (CHECK_UNOP (NEGATE, 1u, 0u, UINT_MAX, true)); VERIFY (CHECK_UNOP (NEGATE, UINT_MAX, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MAX, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MIN, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MAX, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MIN, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, -1, INT_MIN, INT_MIN, INT_MAX, INT_NEGATE_OVERFLOW (INT_MIN))); VERIFY (CHECK_BINOP (MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX, LONG_MIN, LONG_MIN, false)); VERIFY (CHECK_BINOP (DIVIDE, INT_MIN, -1, INT_MIN, INT_MAX, INT_NEGATE_OVERFLOW (INT_MIN))); VERIFY (CHECK_BINOP (DIVIDE, INT_MAX, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (DIVIDE, (unsigned int) INT_MIN, -1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (REMAINDER, INT_MIN, -1, INT_MIN, INT_MAX, INT_NEGATE_OVERFLOW (INT_MIN))); VERIFY (CHECK_BINOP (REMAINDER, INT_MAX, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (REMAINDER, (unsigned int) INT_MIN, -1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX, 1, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2 + 1, 1, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2, 1, 0u, UINT_MAX, false)); /* INT__OVERFLOW with mixed types. */ #define CHECK_SUM(a, b, overflow) \ VERIFY (INT_ADD_OVERFLOW (a, b) == (overflow)); \ VERIFY (INT_ADD_OVERFLOW (b, a) == (overflow)) CHECK_SUM (-1, LONG_MIN, true); CHECK_SUM (-1, UINT_MAX, false); CHECK_SUM (-1L, INT_MIN, INT_MIN == LONG_MIN); CHECK_SUM (0u, -1, true); CHECK_SUM (0u, 0, false); CHECK_SUM (0u, 1, false); CHECK_SUM (1, LONG_MAX, true); CHECK_SUM (1, UINT_MAX, true); CHECK_SUM (1L, INT_MAX, INT_MAX == LONG_MAX); CHECK_SUM (1u, INT_MAX, INT_MAX == UINT_MAX); CHECK_SUM (1u, INT_MIN, true); VERIFY (! INT_SUBTRACT_OVERFLOW (INT_MAX, 1u)); VERIFY (! INT_SUBTRACT_OVERFLOW (UINT_MAX, 1)); VERIFY (! INT_SUBTRACT_OVERFLOW (0u, -1)); VERIFY (INT_SUBTRACT_OVERFLOW (UINT_MAX, -1)); VERIFY (INT_SUBTRACT_OVERFLOW (INT_MIN, 1u)); VERIFY (INT_SUBTRACT_OVERFLOW (-1, 0u)); #define CHECK_PRODUCT(a, b, overflow) \ VERIFY (INT_MULTIPLY_OVERFLOW (a, b) == (overflow)); \ VERIFY (INT_MULTIPLY_OVERFLOW (b, a) == (overflow)) CHECK_PRODUCT (-1, 1u, true); CHECK_PRODUCT (-1, INT_MIN, INT_NEGATE_OVERFLOW (INT_MIN)); CHECK_PRODUCT (-1, UINT_MAX, true); CHECK_PRODUCT (-12345, LONG_MAX / -12345 - 1, true); CHECK_PRODUCT (-12345, LONG_MAX / -12345, false); CHECK_PRODUCT (0, -1, false); CHECK_PRODUCT (0, 0, false); CHECK_PRODUCT (0, 0u, false); CHECK_PRODUCT (0, 1, false); CHECK_PRODUCT (0, INT_MAX, false); CHECK_PRODUCT (0, INT_MIN, false); CHECK_PRODUCT (0, UINT_MAX, false); CHECK_PRODUCT (0u, -1, false); CHECK_PRODUCT (0u, 0, false); CHECK_PRODUCT (0u, 0u, false); CHECK_PRODUCT (0u, 1, false); CHECK_PRODUCT (0u, INT_MAX, false); CHECK_PRODUCT (0u, INT_MIN, false); CHECK_PRODUCT (0u, UINT_MAX, false); CHECK_PRODUCT (1, INT_MAX, false); CHECK_PRODUCT (1, INT_MIN, false); CHECK_PRODUCT (1, UINT_MAX, false); CHECK_PRODUCT (1u, INT_MIN, true); CHECK_PRODUCT (1u, INT_MAX, UINT_MAX < INT_MAX); CHECK_PRODUCT (INT_MAX, UINT_MAX, true); CHECK_PRODUCT (INT_MAX, ULONG_MAX, true); CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN - 1, true); CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN, false); CHECK_PRODUCT (INT_MIN, UINT_MAX, true); CHECK_PRODUCT (INT_MIN, ULONG_MAX, true); VERIFY (INT_DIVIDE_OVERFLOW (INT_MIN, -1L) == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN)); VERIFY (! INT_DIVIDE_OVERFLOW (INT_MIN, UINT_MAX)); VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINTMAX_MAX)); VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINT_MAX)); VERIFY (INT_DIVIDE_OVERFLOW (-11, 10u)); VERIFY (INT_DIVIDE_OVERFLOW (-10, 10u)); VERIFY (! INT_DIVIDE_OVERFLOW (-9, 10u)); VERIFY (INT_DIVIDE_OVERFLOW (11u, -10)); VERIFY (INT_DIVIDE_OVERFLOW (10u, -10)); VERIFY (! INT_DIVIDE_OVERFLOW (9u, -10)); VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, -1L) == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN)); VERIFY (INT_REMAINDER_OVERFLOW (-1, UINT_MAX)); VERIFY (INT_REMAINDER_OVERFLOW ((intmax_t) -1, UINTMAX_MAX)); VERIFY (INT_REMAINDER_OVERFLOW (INTMAX_MIN, UINT_MAX) == (INTMAX_MAX < UINT_MAX && - (unsigned int) INTMAX_MIN % UINT_MAX != 0)); VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, ULONG_MAX) == (INT_MIN % ULONG_MAX != 1)); VERIFY (! INT_REMAINDER_OVERFLOW (1u, -1)); VERIFY (! INT_REMAINDER_OVERFLOW (37*39u, -39)); VERIFY (INT_REMAINDER_OVERFLOW (37*39u + 1, -39)); VERIFY (INT_REMAINDER_OVERFLOW (37*39u - 1, -39)); VERIFY (! INT_REMAINDER_OVERFLOW (LONG_MAX, -INT_MAX)); return 0; } libidn-1.28/gltests/test-verify.c0000644000000000000000000000350312153706067013716 00000000000000/* Test the "verify" module. Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible. */ #include #include "verify.h" #ifndef EXP_FAIL # define EXP_FAIL 0 #endif int x; enum { a, b, c }; #if EXP_FAIL == 1 verify (x >= 0); /* should give ERROR: non-constant expression */ #endif verify (c == 2); /* should be ok */ #if EXP_FAIL == 2 verify (1 + 1 == 3); /* should give ERROR */ #endif verify (1 == 1); verify (1 == 1); /* should be ok */ enum { item = verify_true (1 == 1) * 0 + 17 /* should be ok */ }; static int function (int n) { #if EXP_FAIL == 3 verify (n >= 0); /* should give ERROR: non-constant expression */ #endif verify (c == 2); /* should be ok */ #if EXP_FAIL == 4 verify (1 + 1 == 3); /* should give ERROR */ #endif verify (1 == 1); verify (1 == 1); /* should be ok */ if (n) return ((void) verify_expr (1 == 1, 1), verify_expr (1 == 1, 8)); /* should be ok */ #if EXP_FAIL == 5 return verify_expr (1 == 2, 5); /* should give ERROR */ #endif return 0; } int main (void) { return !(function (0) == 0 && function (1) == 8); } libidn-1.28/gltests/test-getdtablesize.c0000644000000000000000000000177212153706065015244 00000000000000/* Test of getdtablesize() function. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (getdtablesize, int, (void)); #include "macros.h" int main (int argc, char *argv[]) { ASSERT (getdtablesize () >= 3); return 0; } libidn-1.28/gltests/test-fread.c0000644000000000000000000000510012153706066013465 00000000000000/* Test of fread() function. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fread, size_t, (void *, size_t, size_t, FILE *)); #include #include #include #include "msvc-inval.h" #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fread.txt"; /* We don't have an fread() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Prepare a file. */ { const char text[] = "hello world"; int fd = open (filename, O_RDWR | O_CREAT | O_TRUNC, 0600); ASSERT (fd >= 0); ASSERT (write (fd, text, sizeof (text)) == sizeof (text)); ASSERT (close (fd) == 0); } /* Test that fread() sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "r"); char buf[5]; ASSERT (fp != NULL); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fread (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fread() sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "r"); if (fp != NULL) { char buf[1]; errno = 0; ASSERT (fread (buf, 1, 1, fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "r"); if (fp != NULL) { char buf[1]; errno = 0; ASSERT (fread (buf, 1, 1, fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libidn-1.28/gltests/test-stdint.c0000644000000000000000000002617612153706067013732 00000000000000/* Test of substitute. Copyright (C) 2006-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2006. */ #include /* Whether to enable pedantic checks. */ #define DO_PEDANTIC 0 #include #include "verify.h" #include "intprops.h" #if __GNUC__ >= 2 && DO_PEDANTIC # define verify_same_types(expr1,expr2) \ extern void _verify_func(__LINE__) (__typeof__ (expr1) *); \ extern void _verify_func(__LINE__) (__typeof__ (expr2) *); # define _verify_func(line) _verify_func2(line) # define _verify_func2(line) verify_func_ ## line #else # define verify_same_types(expr1,expr2) extern void verify_func (int) #endif /* 7.18.1.1. Exact-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ int8_t a1[3] = { INT8_C (17), INT8_MIN, INT8_MAX }; verify (TYPE_MINIMUM (int8_t) == INT8_MIN); verify (TYPE_MAXIMUM (int8_t) == INT8_MAX); verify_same_types (INT8_MIN, (int8_t) 0 + 0); verify_same_types (INT8_MAX, (int8_t) 0 + 0); int16_t a2[3] = { INT16_C (17), INT16_MIN, INT16_MAX }; verify (TYPE_MINIMUM (int16_t) == INT16_MIN); verify (TYPE_MAXIMUM (int16_t) == INT16_MAX); verify_same_types (INT16_MIN, (int16_t) 0 + 0); verify_same_types (INT16_MAX, (int16_t) 0 + 0); int32_t a3[3] = { INT32_C (17), INT32_MIN, INT32_MAX }; verify (TYPE_MINIMUM (int32_t) == INT32_MIN); verify (TYPE_MAXIMUM (int32_t) == INT32_MAX); verify_same_types (INT32_MIN, (int32_t) 0 + 0); verify_same_types (INT32_MAX, (int32_t) 0 + 0); #ifdef INT64_MAX int64_t a4[3] = { INT64_C (17), INT64_MIN, INT64_MAX }; verify (TYPE_MINIMUM (int64_t) == INT64_MIN); verify (TYPE_MAXIMUM (int64_t) == INT64_MAX); verify_same_types (INT64_MIN, (int64_t) 0 + 0); verify_same_types (INT64_MAX, (int64_t) 0 + 0); #endif uint8_t b1[2] = { UINT8_C (17), UINT8_MAX }; verify (TYPE_MAXIMUM (uint8_t) == UINT8_MAX); verify_same_types (UINT8_MAX, (uint8_t) 0 + 0); uint16_t b2[2] = { UINT16_C (17), UINT16_MAX }; verify (TYPE_MAXIMUM (uint16_t) == UINT16_MAX); verify_same_types (UINT16_MAX, (uint16_t) 0 + 0); uint32_t b3[2] = { UINT32_C (17), UINT32_MAX }; verify (TYPE_MAXIMUM (uint32_t) == UINT32_MAX); verify_same_types (UINT32_MAX, (uint32_t) 0 + 0); #ifdef UINT64_MAX uint64_t b4[2] = { UINT64_C (17), UINT64_MAX }; verify (TYPE_MAXIMUM (uint64_t) == UINT64_MAX); verify_same_types (UINT64_MAX, (uint64_t) 0 + 0); #endif #if INT8_MIN && INT8_MAX && INT16_MIN && INT16_MAX && INT32_MIN && INT32_MAX /* ok */ #else err or; #endif #if UINT8_MAX && UINT16_MAX && UINT32_MAX /* ok */ #else err or; #endif /* 7.18.1.2. Minimum-width integer types */ /* 7.18.2.2. Limits of minimum-width integer types */ int_least8_t c1[3] = { 17, INT_LEAST8_MIN, INT_LEAST8_MAX }; verify (TYPE_MINIMUM (int_least8_t) == INT_LEAST8_MIN); verify (TYPE_MAXIMUM (int_least8_t) == INT_LEAST8_MAX); verify_same_types (INT_LEAST8_MIN, (int_least8_t) 0 + 0); verify_same_types (INT_LEAST8_MAX, (int_least8_t) 0 + 0); int_least16_t c2[3] = { 17, INT_LEAST16_MIN, INT_LEAST16_MAX }; verify (TYPE_MINIMUM (int_least16_t) == INT_LEAST16_MIN); verify (TYPE_MAXIMUM (int_least16_t) == INT_LEAST16_MAX); verify_same_types (INT_LEAST16_MIN, (int_least16_t) 0 + 0); verify_same_types (INT_LEAST16_MAX, (int_least16_t) 0 + 0); int_least32_t c3[3] = { 17, INT_LEAST32_MIN, INT_LEAST32_MAX }; verify (TYPE_MINIMUM (int_least32_t) == INT_LEAST32_MIN); verify (TYPE_MAXIMUM (int_least32_t) == INT_LEAST32_MAX); verify_same_types (INT_LEAST32_MIN, (int_least32_t) 0 + 0); verify_same_types (INT_LEAST32_MAX, (int_least32_t) 0 + 0); #ifdef INT_LEAST64_MAX int_least64_t c4[3] = { 17, INT_LEAST64_MIN, INT_LEAST64_MAX }; verify (TYPE_MINIMUM (int_least64_t) == INT_LEAST64_MIN); verify (TYPE_MAXIMUM (int_least64_t) == INT_LEAST64_MAX); verify_same_types (INT_LEAST64_MIN, (int_least64_t) 0 + 0); verify_same_types (INT_LEAST64_MAX, (int_least64_t) 0 + 0); #endif uint_least8_t d1[2] = { 17, UINT_LEAST8_MAX }; verify (TYPE_MAXIMUM (uint_least8_t) == UINT_LEAST8_MAX); verify_same_types (UINT_LEAST8_MAX, (uint_least8_t) 0 + 0); uint_least16_t d2[2] = { 17, UINT_LEAST16_MAX }; verify (TYPE_MAXIMUM (uint_least16_t) == UINT_LEAST16_MAX); verify_same_types (UINT_LEAST16_MAX, (uint_least16_t) 0 + 0); uint_least32_t d3[2] = { 17, UINT_LEAST32_MAX }; verify (TYPE_MAXIMUM (uint_least32_t) == UINT_LEAST32_MAX); verify_same_types (UINT_LEAST32_MAX, (uint_least32_t) 0 + 0); #ifdef UINT_LEAST64_MAX uint_least64_t d4[2] = { 17, UINT_LEAST64_MAX }; verify (TYPE_MAXIMUM (uint_least64_t) == UINT_LEAST64_MAX); verify_same_types (UINT_LEAST64_MAX, (uint_least64_t) 0 + 0); #endif #if INT_LEAST8_MIN && INT_LEAST8_MAX && INT_LEAST16_MIN && INT_LEAST16_MAX && INT_LEAST32_MIN && INT_LEAST32_MAX /* ok */ #else err or; #endif #if UINT_LEAST8_MAX && UINT_LEAST16_MAX && UINT_LEAST32_MAX /* ok */ #else err or; #endif /* 7.18.1.3. Fastest minimum-width integer types */ /* 7.18.2.3. Limits of fastest minimum-width integer types */ int_fast8_t e1[3] = { 17, INT_FAST8_MIN, INT_FAST8_MAX }; verify (TYPE_MINIMUM (int_fast8_t) == INT_FAST8_MIN); verify (TYPE_MAXIMUM (int_fast8_t) == INT_FAST8_MAX); verify_same_types (INT_FAST8_MIN, (int_fast8_t) 0 + 0); verify_same_types (INT_FAST8_MAX, (int_fast8_t) 0 + 0); int_fast16_t e2[3] = { 17, INT_FAST16_MIN, INT_FAST16_MAX }; verify (TYPE_MINIMUM (int_fast16_t) == INT_FAST16_MIN); verify (TYPE_MAXIMUM (int_fast16_t) == INT_FAST16_MAX); verify_same_types (INT_FAST16_MIN, (int_fast16_t) 0 + 0); verify_same_types (INT_FAST16_MAX, (int_fast16_t) 0 + 0); int_fast32_t e3[3] = { 17, INT_FAST32_MIN, INT_FAST32_MAX }; verify (TYPE_MINIMUM (int_fast32_t) == INT_FAST32_MIN); verify (TYPE_MAXIMUM (int_fast32_t) == INT_FAST32_MAX); verify_same_types (INT_FAST32_MIN, (int_fast32_t) 0 + 0); verify_same_types (INT_FAST32_MAX, (int_fast32_t) 0 + 0); #ifdef INT_FAST64_MAX int_fast64_t e4[3] = { 17, INT_FAST64_MIN, INT_FAST64_MAX }; verify (TYPE_MINIMUM (int_fast64_t) == INT_FAST64_MIN); verify (TYPE_MAXIMUM (int_fast64_t) == INT_FAST64_MAX); verify_same_types (INT_FAST64_MIN, (int_fast64_t) 0 + 0); verify_same_types (INT_FAST64_MAX, (int_fast64_t) 0 + 0); #endif uint_fast8_t f1[2] = { 17, UINT_FAST8_MAX }; verify (TYPE_MAXIMUM (uint_fast8_t) == UINT_FAST8_MAX); verify_same_types (UINT_FAST8_MAX, (uint_fast8_t) 0 + 0); uint_fast16_t f2[2] = { 17, UINT_FAST16_MAX }; verify (TYPE_MAXIMUM (uint_fast16_t) == UINT_FAST16_MAX); verify_same_types (UINT_FAST16_MAX, (uint_fast16_t) 0 + 0); uint_fast32_t f3[2] = { 17, UINT_FAST32_MAX }; verify (TYPE_MAXIMUM (uint_fast32_t) == UINT_FAST32_MAX); verify_same_types (UINT_FAST32_MAX, (uint_fast32_t) 0 + 0); #ifdef UINT_FAST64_MAX uint_fast64_t f4[2] = { 17, UINT_FAST64_MAX }; verify (TYPE_MAXIMUM (uint_fast64_t) == UINT_FAST64_MAX); verify_same_types (UINT_FAST64_MAX, (uint_fast64_t) 0 + 0); #endif #if INT_FAST8_MIN && INT_FAST8_MAX && INT_FAST16_MIN && INT_FAST16_MAX && INT_FAST32_MIN && INT_FAST32_MAX /* ok */ #else err or; #endif #if UINT_FAST8_MAX && UINT_FAST16_MAX && UINT_FAST32_MAX /* ok */ #else err or; #endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* 7.18.2.4. Limits of integer types capable of holding object pointers */ intptr_t g[3] = { 17, INTPTR_MIN, INTPTR_MAX }; verify (TYPE_MINIMUM (intptr_t) == INTPTR_MIN); verify (TYPE_MAXIMUM (intptr_t) == INTPTR_MAX); verify_same_types (INTPTR_MIN, (intptr_t) 0 + 0); verify_same_types (INTPTR_MAX, (intptr_t) 0 + 0); uintptr_t h[2] = { 17, UINTPTR_MAX }; verify (TYPE_MAXIMUM (uintptr_t) == UINTPTR_MAX); verify_same_types (UINTPTR_MAX, (uintptr_t) 0 + 0); #if INTPTR_MIN && INTPTR_MAX && UINTPTR_MAX /* ok */ #else err or; #endif /* 7.18.1.5. Greatest-width integer types */ /* 7.18.2.5. Limits of greatest-width integer types */ intmax_t i[3] = { INTMAX_C (17), INTMAX_MIN, INTMAX_MAX }; verify (TYPE_MINIMUM (intmax_t) == INTMAX_MIN); verify (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX); verify_same_types (INTMAX_MIN, (intmax_t) 0 + 0); verify_same_types (INTMAX_MAX, (intmax_t) 0 + 0); uintmax_t j[2] = { UINTMAX_C (17), UINTMAX_MAX }; verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX); verify_same_types (UINTMAX_MAX, (uintmax_t) 0 + 0); /* As of 2007, Sun C and HP-UX 10.20 cc don't support 'long long' constants in the preprocessor. */ #if !(defined __SUNPRO_C || (defined __hpux && !defined __GNUC__)) #if INTMAX_MIN && INTMAX_MAX && UINTMAX_MAX /* ok */ #else err or; #endif #endif /* 7.18.3. Limits of other integer types */ #include verify (TYPE_MINIMUM (ptrdiff_t) == PTRDIFF_MIN); verify (TYPE_MAXIMUM (ptrdiff_t) == PTRDIFF_MAX); verify_same_types (PTRDIFF_MIN, (ptrdiff_t) 0 + 0); verify_same_types (PTRDIFF_MAX, (ptrdiff_t) 0 + 0); #if PTRDIFF_MIN && PTRDIFF_MAX /* ok */ #else err or; #endif #include verify (TYPE_MINIMUM (sig_atomic_t) == SIG_ATOMIC_MIN); verify (TYPE_MAXIMUM (sig_atomic_t) == SIG_ATOMIC_MAX); verify_same_types (SIG_ATOMIC_MIN, (sig_atomic_t) 0 + 0); verify_same_types (SIG_ATOMIC_MAX, (sig_atomic_t) 0 + 0); #if SIG_ATOMIC_MIN != 17 && SIG_ATOMIC_MAX /* ok */ #else err or; #endif verify (TYPE_MAXIMUM (size_t) == SIZE_MAX); verify_same_types (SIZE_MAX, (size_t) 0 + 0); #if SIZE_MAX /* ok */ #else err or; #endif #if HAVE_WCHAR_T verify (TYPE_MINIMUM (wchar_t) == WCHAR_MIN); verify (TYPE_MAXIMUM (wchar_t) == WCHAR_MAX); verify_same_types (WCHAR_MIN, (wchar_t) 0 + 0); verify_same_types (WCHAR_MAX, (wchar_t) 0 + 0); # if WCHAR_MIN != 17 && WCHAR_MAX /* ok */ # else err or; # endif #endif #if HAVE_WINT_T # include verify (TYPE_MINIMUM (wint_t) == WINT_MIN); verify (TYPE_MAXIMUM (wint_t) == WINT_MAX); verify_same_types (WINT_MIN, (wint_t) 0 + 0); verify_same_types (WINT_MAX, (wint_t) 0 + 0); # if WINT_MIN != 17 && WINT_MAX /* ok */ # else err or; # endif #endif /* 7.18.4. Macros for integer constants */ verify (INT8_C (17) == 17); verify_same_types (INT8_C (17), (int_least8_t)0 + 0); verify (UINT8_C (17) == 17); verify_same_types (UINT8_C (17), (uint_least8_t)0 + 0); verify (INT16_C (17) == 17); verify_same_types (INT16_C (17), (int_least16_t)0 + 0); verify (UINT16_C (17) == 17); verify_same_types (UINT16_C (17), (uint_least16_t)0 + 0); verify (INT32_C (17) == 17); verify_same_types (INT32_C (17), (int_least32_t)0 + 0); verify (UINT32_C (17) == 17); verify_same_types (UINT32_C (17), (uint_least32_t)0 + 0); #ifdef INT64_C verify (INT64_C (17) == 17); verify_same_types (INT64_C (17), (int_least64_t)0 + 0); #endif #ifdef UINT64_C verify (UINT64_C (17) == 17); verify_same_types (UINT64_C (17), (uint_least64_t)0 + 0); #endif verify (INTMAX_C (17) == 17); verify_same_types (INTMAX_C (17), (intmax_t)0 + 0); verify (UINTMAX_C (17) == 17); verify_same_types (UINTMAX_C (17), (uintmax_t)0 + 0); int main (void) { return 0; } libidn-1.28/gltests/unsetenv.c0000644000000000000000000000547212153706067013313 00000000000000/* Copyright (C) 1992, 1995-2002, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ #define _GL_ARG_NONNULL(params) #include /* Specification. */ #include #include #if !_LIBC # define __set_errno(ev) ((errno) = (ev)) #endif #include #include #if !_LIBC # define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif /* In the GNU C library we must keep the namespace clean. */ #ifdef _LIBC # define unsetenv __unsetenv #endif #if _LIBC || !HAVE_UNSETENV int unsetenv (const char *name) { size_t len; char **ep; if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } len = strlen (name); LOCK; ep = __environ; while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { /* Found it. Remove this pointer by moving later ones back. */ char **dp = ep; do dp[0] = dp[1]; while (*dp++); /* Continue the loop in case NAME appears again. */ } else ++ep; UNLOCK; return 0; } #ifdef _LIBC # undef unsetenv weak_alias (__unsetenv, unsetenv) #endif #else /* HAVE_UNSETENV */ # undef unsetenv # if !HAVE_DECL_UNSETENV # if VOID_UNSETENV extern void unsetenv (const char *); # else extern int unsetenv (const char *); # endif # endif /* Call the underlying unsetenv, in case there is hidden bookkeeping that needs updating beyond just modifying environ. */ int rpl_unsetenv (const char *name) { int result = 0; if (!name || !*name || strchr (name, '=')) { errno = EINVAL; return -1; } while (getenv (name)) # if !VOID_UNSETENV result = # endif unsetenv (name); return result; } #endif /* HAVE_UNSETENV */ libidn-1.28/gltests/lstat.c0000644000000000000000000000667412153706066012577 00000000000000/* Work around a bug of lstat on some systems Copyright (C) 1997-2006, 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Jim Meyering */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_lstat doesn't recurse to rpl_lstat. */ #define __need_system_sys_stat_h #include #if !HAVE_LSTAT /* On systems that lack symlinks, our replacement already defined lstat as stat, so there is nothing further to do other than avoid an empty file. */ typedef int dummy; #else /* HAVE_LSTAT */ /* Get the original definition of lstat. It might be defined as a macro. */ # include # include # undef __need_system_sys_stat_h static int orig_lstat (const char *filename, struct stat *buf) { return lstat (filename, buf); } /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ # include "sys/stat.h" # include # include /* lstat works differently on Linux and Solaris systems. POSIX (see "pathname resolution" in the glossary) requires that programs like 'ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux and Solaris 10 systems, the lstat function already has the desired semantics (in treating 'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)', but on Solaris 9 and earlier it does not. If FILE has a trailing slash and specifies a symbolic link, then use stat() to get more info on the referent of FILE. If the referent is a non-directory, then set errno to ENOTDIR and return -1. Otherwise, return stat's result. */ int rpl_lstat (const char *file, struct stat *sbuf) { size_t len; int lstat_result = orig_lstat (file, sbuf); if (lstat_result != 0) return lstat_result; /* This replacement file can blindly check against '/' rather than using the ISSLASH macro, because all platforms with '\\' either lack symlinks (mingw) or have working lstat (cygwin) and thus do not compile this file. 0 len should have already been filtered out above, with a failure return of ENOENT. */ len = strlen (file); if (file[len - 1] != '/' || S_ISDIR (sbuf->st_mode)) return 0; /* At this point, a trailing slash is only permitted on symlink-to-dir; but it should have found information on the directory, not the symlink. Call stat() to get info about the link's referent. Our replacement stat guarantees valid results, even if the symlink is not pointing to a directory. */ if (!S_ISLNK (sbuf->st_mode)) { errno = ENOTDIR; return -1; } return stat (file, sbuf); } #endif /* HAVE_LSTAT */ libidn-1.28/gltests/test-version-etc.sh0000755000000000000000000000261212153706067015043 00000000000000#! /bin/sh # Test suite for version-etc. # Copyright (C) 2009-2013 Free Software Foundation, Inc. # This file is part of the GNUlib Library. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . TMP=ve-expected.tmp LC_ALL=C export LC_ALL ERR=0 cat > $TMP <. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by Sergey Poznyakoff and Eric Blake. EOT ./test-version-etc${EXEEXT} --version | sed '1s/test-version-etc (.*) .*/test-version-etc (PROJECT) VERSION/ /^Packaged by/d 2,3 s/Copyright (C) [0-9]\{4,4\}/COPYRIGHT/' | tr -d '\015' | diff -c $TMP - || ERR=1 rm $TMP exit $ERR libidn-1.28/gltests/test-open.h0000644000000000000000000000566112153706067013367 00000000000000/* Test of opening a file descriptor. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ /* This file is designed to test both open(n,buf[,mode]) and openat(AT_FDCWD,n,buf[,mode]). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static int test_open (int (*func) (char const *, int, ...), bool print) { int fd; /* Remove anything from prior partial run. */ unlink (BASE "file"); /* Cannot create directory. */ errno = 0; ASSERT (func ("nonexist.ent/", O_CREAT | O_RDONLY, 0600) == -1); ASSERT (errno == ENOTDIR || errno == EISDIR || errno == ENOENT || errno == EINVAL); /* Create a regular file. */ fd = func (BASE "file", O_CREAT | O_RDONLY, 0600); ASSERT (0 <= fd); ASSERT (close (fd) == 0); /* Trailing slash handling. */ errno = 0; ASSERT (func (BASE "file/", O_RDONLY) == -1); ASSERT (errno == ENOTDIR || errno == EISDIR || errno == EINVAL); /* Directories cannot be opened for writing. */ errno = 0; ASSERT (func (".", O_WRONLY) == -1); ASSERT (errno == EISDIR || errno == EACCES); /* /dev/null must exist, and be writable. */ fd = func ("/dev/null", O_RDONLY); ASSERT (0 <= fd); { char c; ASSERT (read (fd, &c, 1) == 0); } ASSERT (close (fd) == 0); fd = func ("/dev/null", O_WRONLY); ASSERT (0 <= fd); ASSERT (write (fd, "c", 1) == 1); ASSERT (close (fd) == 0); /* Although O_NONBLOCK on regular files can be ignored, it must not cause a failure. */ fd = func (BASE "file", O_NONBLOCK | O_RDONLY); ASSERT (0 <= fd); ASSERT (close (fd) == 0); /* Symlink handling, where supported. */ if (symlink (BASE "file", BASE "link") != 0) { ASSERT (unlink (BASE "file") == 0); if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } errno = 0; ASSERT (func (BASE "link/", O_RDONLY) == -1); ASSERT (errno == ENOTDIR); fd = func (BASE "link", O_RDONLY); ASSERT (0 <= fd); ASSERT (close (fd) == 0); /* Cleanup. */ ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link") == 0); return 0; } libidn-1.28/gltests/test-stat.c0000644000000000000000000000310712153706067013365 00000000000000/* Tests of stat. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include /* Caution: stat may be a function-like macro. Although this signature check must pass, it may be the signature of the real (and broken) stat rather than rpl_stat. Most code should not use the address of stat. */ #include "signature.h" SIGNATURE_CHECK (stat, int, (char const *, struct stat *)); #include #include #include #include #include #include "same-inode.h" #include "macros.h" #define BASE "test-stat.t" #include "test-stat.h" /* Wrapper around stat, which works even if stat is a function-like macro, where test_stat_func(stat) would do the wrong thing. */ static int do_stat (char const *name, struct stat *st) { return stat (name, st); } int main (void) { return test_stat_func (do_stat, true); } libidn-1.28/gltests/alloca.in.h0000644000000000000000000000372412153706066013306 00000000000000/* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ #ifndef _GL_ALLOCA_H #define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns, - for huge N (say, N >= 65536) - you never know how large (or small) the stack is, and when the stack cannot fulfill the memory allocation request, the program just crashes. */ #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include # define alloca _alloca # elif defined __DECC && defined __VMS # define alloca __ALLOCA # elif defined __TANDEM && defined _TNS_E_TARGET # ifdef __cplusplus extern "C" # endif void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca # else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ libidn-1.28/gltests/binary-io.h0000644000000000000000000000455412153706066013341 00000000000000/* Binary mode I/O. Copyright (C) 2001, 2003, 2005, 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _BINARY_H #define _BINARY_H /* For systems that distinguish between text and binary I/O. O_BINARY is guaranteed by the gnulib . */ #include /* The MSVC7 doesn't like to be included after '#define fileno ...', so we include it here first. */ #include _GL_INLINE_HEADER_BEGIN #ifndef BINARY_IO_INLINE # define BINARY_IO_INLINE _GL_INLINE #endif /* set_binary_mode (fd, mode) sets the binary/text I/O mode of file descriptor fd to the given mode (must be O_BINARY or O_TEXT) and returns the previous mode. */ #if O_BINARY # if defined __EMX__ || defined __DJGPP__ || defined __CYGWIN__ # include /* declares setmode() */ # define set_binary_mode setmode # else # define set_binary_mode _setmode # undef fileno # define fileno _fileno # endif #else /* On reasonable systems, binary I/O is the only choice. */ /* Use a function rather than a macro, to avoid gcc warnings "warning: statement with no effect". */ BINARY_IO_INLINE int set_binary_mode (int fd, int mode) { (void) fd; (void) mode; return O_BINARY; } #endif /* SET_BINARY (fd); changes the file descriptor fd to perform binary I/O. */ #ifdef __DJGPP__ # include /* declares isatty() */ /* Avoid putting stdin/stdout in binary mode if it is connected to the console, because that would make it impossible for the user to interrupt the program through Ctrl-C or Ctrl-Break. */ # define SET_BINARY(fd) ((void) (!isatty (fd) ? (set_binary_mode (fd, O_BINARY), 0) : 0)) #else # define SET_BINARY(fd) ((void) set_binary_mode (fd, O_BINARY)) #endif _GL_INLINE_HEADER_END #endif /* _BINARY_H */ libidn-1.28/gltests/test-setenv.c0000644000000000000000000000310612153706067013715 00000000000000/* Tests of setenv. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (setenv, int, (char const *, char const *, int)); #include #include #include #include "macros.h" int main (void) { /* Test overwriting. */ ASSERT (setenv ("a", "==", -1) == 0); ASSERT (setenv ("a", "2", 0) == 0); ASSERT (strcmp (getenv ("a"), "==") == 0); /* Required to fail with EINVAL. */ errno = 0; ASSERT (setenv ("", "", 1) == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (setenv ("a=b", "", 0) == -1); ASSERT (errno == EINVAL); #if 0 /* glibc and gnulib's implementation guarantee this, but POSIX no longer requires it: http://austingroupbugs.net/view.php?id=185 */ errno = 0; ASSERT (setenv (NULL, "", 0) == -1); ASSERT (errno == EINVAL); #endif return 0; } libidn-1.28/gltests/test-stddef.c0000644000000000000000000000316412153706067013666 00000000000000/* Test of substitute. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "verify.h" /* Check that appropriate types are defined. */ wchar_t a = 'c'; ptrdiff_t b = 1; size_t c = 2; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); /* Check that offsetof produces integer constants with correct type. */ struct d { char e; char f; }; /* Solaris 10 has a bug where offsetof is under-parenthesized, and cannot be used as an arbitrary expression. However, since it is unlikely to bite real code, we ignore that short-coming. */ /* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */ verify (sizeof (offsetof (struct d, e)) == sizeof (size_t)); verify (offsetof (struct d, e) < -1); /* Must be unsigned. */ verify (offsetof (struct d, f) == 1); int main (void) { return 0; } libidn-1.28/gltests/symlink.c0000644000000000000000000000263112153706066013123 00000000000000/* Stub for symlink(). Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #if HAVE_SYMLINK # undef symlink /* Create a symlink, but reject trailing slash. */ int rpl_symlink (char const *contents, char const *name) { size_t len = strlen (name); if (len && name[len - 1] == '/') { struct stat st; if (lstat (name, &st) == 0) errno = EEXIST; return -1; } return symlink (contents, name); } #else /* !HAVE_SYMLINK */ /* The system does not support symlinks. */ int symlink (char const *contents _GL_UNUSED, char const *name _GL_UNUSED) { errno = ENOSYS; return -1; } #endif /* !HAVE_SYMLINK */ libidn-1.28/gltests/test-stdbool.c0000644000000000000000000000666012153706067014067 00000000000000/* Test of substitute. Copyright (C) 2002-2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ /* We want this test to succeed even when using gcc's -Werror; but to do that requires a pragma that didn't exist before 4.3.0. */ #ifndef __GNUC__ # define ADDRESS_CHECK_OKAY #elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) /* No way to silence -Waddress. */ #else # pragma GCC diagnostic ignored "-Waddress" # define ADDRESS_CHECK_OKAY #endif #include #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif /* Several tests cannot be guaranteed with gnulib's , at least, not for all compilers and compiler options. */ #if HAVE_STDBOOL_H || 3 <= __GNUC__ struct s { _Bool s: 1; _Bool t; } s; #endif char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ char d[(bool) 0.5 == true ? 1 : -1]; # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning. */ /* C99 may plausibly be interpreted as not requiring support for a cast from a variable's address to bool in a static initializer. So treat it like a GCC extension. */ # ifdef __GNUC__ bool e = &s; # endif # endif char f[(_Bool) 0.0 == false ? 1 : -1]; #endif char g[true]; char h[sizeof (_Bool)]; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ char i[sizeof s.t]; #endif enum { j = false, k = true, l = false * true, m = true * 256 }; _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { int error = 0; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning. */ /* A cast from a variable's address to bool is valid in expressions. */ { bool e1 = &s; if (!e1) error = 1; } # endif #endif /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html This is a runtime test, since a corresponding compile-time test would rely on initializer extensions. */ { char digs[] = "0123456789"; if (&(digs + 5)[-2 + (bool) 1] != &digs[4]) error = 1; } return error; } libidn-1.28/gltests/fcntl.in.h0000644000000000000000000002244312153706066013160 00000000000000/* Like , but with non-working flags defined to 0. Copyright (C) 2006-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Paul Eggert */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_fcntl_h /* Special invocation convention. */ /* Needed before . May also define off_t to a 64-bit type on native Windows. */ #include /* On some systems other than glibc, is a prerequisite of . On glibc systems, we would like to avoid namespace pollution. But on glibc systems, includes inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) # include #endif #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_FCNTL_H /* Needed before . May also define off_t to a 64-bit type on native Windows. */ #include /* On some systems other than glibc, is a prerequisite of . On glibc systems, we would like to avoid namespace pollution. But on glibc systems, includes inside an extern "C" { ... } block, which leads to errors in C++ mode with the overridden from gnulib. These errors are known to be gone with g++ version >= 4.3. */ #if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) # include #endif /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_FCNTL_H@ #ifndef _@GUARD_PREFIX@_FCNTL_H #define _@GUARD_PREFIX@_FCNTL_H #ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */ # include #endif /* Native Windows platforms declare open(), creat() in . */ #if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ #if @GNULIB_FCNTL@ # if @REPLACE_FCNTL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fcntl # define fcntl rpl_fcntl # endif _GL_FUNCDECL_RPL (fcntl, int, (int fd, int action, ...)); _GL_CXXALIAS_RPL (fcntl, int, (int fd, int action, ...)); # else # if !@HAVE_FCNTL@ _GL_FUNCDECL_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIAS_SYS (fcntl, int, (int fd, int action, ...)); # endif _GL_CXXALIASWARN (fcntl); #elif defined GNULIB_POSIXCHECK # undef fcntl # if HAVE_RAW_DECL_FCNTL _GL_WARN_ON_USE (fcntl, "fcntl is not always POSIX compliant - " "use gnulib module fcntl for portability"); # endif #endif #if @GNULIB_OPEN@ # if @REPLACE_OPEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef open # define open rpl_open # endif _GL_FUNCDECL_RPL (open, int, (const char *filename, int flags, ...) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (open, int, (const char *filename, int flags, ...)); # else _GL_CXXALIAS_SYS (open, int, (const char *filename, int flags, ...)); # endif /* On HP-UX 11, in C++ mode, open() is defined as an inline function with a default argument. _GL_CXXALIASWARN does not work in this case. */ # if !defined __hpux _GL_CXXALIASWARN (open); # endif #elif defined GNULIB_POSIXCHECK # undef open /* Assume open is always declared. */ _GL_WARN_ON_USE (open, "open is not always POSIX compliant - " "use gnulib module open for portability"); #endif #if @GNULIB_OPENAT@ # if @REPLACE_OPENAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef openat # define openat rpl_openat # endif _GL_FUNCDECL_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # else # if !@HAVE_OPENAT@ _GL_FUNCDECL_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (openat, int, (int fd, char const *file, int flags, /* mode_t mode */ ...)); # endif _GL_CXXALIASWARN (openat); #elif defined GNULIB_POSIXCHECK # undef openat # if HAVE_RAW_DECL_OPENAT _GL_WARN_ON_USE (openat, "openat is not portable - " "use gnulib module openat for portability"); # endif #endif /* Fix up the FD_* macros, only known to be missing on mingw. */ #ifndef FD_CLOEXEC # define FD_CLOEXEC 1 #endif /* Fix up the supported F_* macros. Intentionally leave other F_* macros undefined. Only known to be missing on mingw. */ #ifndef F_DUPFD_CLOEXEC # define F_DUPFD_CLOEXEC 0x40000000 /* Witness variable: 1 if gnulib defined F_DUPFD_CLOEXEC, 0 otherwise. */ # define GNULIB_defined_F_DUPFD_CLOEXEC 1 #else # define GNULIB_defined_F_DUPFD_CLOEXEC 0 #endif #ifndef F_DUPFD # define F_DUPFD 1 #endif #ifndef F_GETFD # define F_GETFD 2 #endif /* Fix up the O_* macros. */ #if !defined O_DIRECT && defined O_DIRECTIO /* Tru64 spells it 'O_DIRECTIO'. */ # define O_DIRECT O_DIRECTIO #endif #if !defined O_CLOEXEC && defined O_NOINHERIT /* Mingw spells it 'O_NOINHERIT'. */ # define O_CLOEXEC O_NOINHERIT #endif #ifndef O_CLOEXEC # define O_CLOEXEC 0 #endif #ifndef O_DIRECT # define O_DIRECT 0 #endif #ifndef O_DIRECTORY # define O_DIRECTORY 0 #endif #ifndef O_DSYNC # define O_DSYNC 0 #endif #ifndef O_EXEC # define O_EXEC O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_IGNORE_CTTY # define O_IGNORE_CTTY 0 #endif #ifndef O_NDELAY # define O_NDELAY 0 #endif #ifndef O_NOATIME # define O_NOATIME 0 #endif #ifndef O_NONBLOCK # define O_NONBLOCK O_NDELAY #endif /* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY or to 0 as fallback. */ #if @GNULIB_NONBLOCKING@ # if O_NONBLOCK # define GNULIB_defined_O_NONBLOCK 0 # else # define GNULIB_defined_O_NONBLOCK 1 # undef O_NONBLOCK # define O_NONBLOCK 0x40000000 # endif #endif #ifndef O_NOCTTY # define O_NOCTTY 0 #endif #ifndef O_NOFOLLOW # define O_NOFOLLOW 0 #endif #ifndef O_NOLINK # define O_NOLINK 0 #endif #ifndef O_NOLINKS # define O_NOLINKS 0 #endif #ifndef O_NOTRANS # define O_NOTRANS 0 #endif #ifndef O_RSYNC # define O_RSYNC 0 #endif #ifndef O_SEARCH # define O_SEARCH O_RDONLY /* This is often close enough in older systems. */ #endif #ifndef O_SYNC # define O_SYNC 0 #endif #ifndef O_TTY_INIT # define O_TTY_INIT 0 #endif #if ~O_ACCMODE & (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) # undef O_ACCMODE # define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH) #endif /* For systems that distinguish between text and binary I/O. O_BINARY is usually declared in fcntl.h */ #if !defined O_BINARY && defined _O_BINARY /* For MSC-compatible compilers. */ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif #if defined __BEOS__ || defined __HAIKU__ /* BeOS 5 and Haiku have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif #ifndef O_BINARY # define O_BINARY 0 # define O_TEXT 0 #endif /* Fix up the AT_* macros. */ /* Work around a bug in Solaris 9 and 10: AT_FDCWD is positive. Its value exceeds INT_MAX, so its use as an int doesn't conform to the C standard, and GCC and Sun C complain in some cases. If the bug is present, undef AT_FDCWD here, so it can be redefined below. */ #if 0 < AT_FDCWD && AT_FDCWD == 0xffd19553 # undef AT_FDCWD #endif /* Use the same bit pattern as Solaris 9, but with the proper signedness. The bit pattern is important, in case this actually is Solaris with the above workaround. */ #ifndef AT_FDCWD # define AT_FDCWD (-3041965) #endif /* Use the same values as Solaris 9. This shouldn't matter, but there's no real reason to differ. */ #ifndef AT_SYMLINK_NOFOLLOW # define AT_SYMLINK_NOFOLLOW 4096 #endif #ifndef AT_REMOVEDIR # define AT_REMOVEDIR 1 #endif /* Solaris 9 lacks these two, so just pick unique values. */ #ifndef AT_SYMLINK_FOLLOW # define AT_SYMLINK_FOLLOW 2 #endif #ifndef AT_EACCESS # define AT_EACCESS 4 #endif #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif /* _@GUARD_PREFIX@_FCNTL_H */ #endif libidn-1.28/gltests/test-vc-list-files-git.sh0000755000000000000000000000263612153706067016055 00000000000000#!/bin/sh # Unit tests for vc-list-files # Copyright (C) 2008-2013 Free Software Foundation, Inc. # This file is part of the GNUlib Library. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ : ${srcdir=.} . "$srcdir/init.sh"; path_prepend_ "$abs_aux_dir" . tmpdir=vc-git-$$ GIT_DIR= GIT_WORK_TREE=; unset GIT_DIR GIT_WORK_TREE fail=1 mkdir $tmpdir && cd $tmpdir && # without git, skip the test # The double use of 'exit' is needed for the reference to $? inside the trap. { ( git init -q ) > /dev/null 2>&1 \ || skip_ "git not found in PATH"; } && mkdir d && touch d/a b c && git config user.email "you@example.com" && git config user.name "Your Name" && git add . > /dev/null && git commit -q -a -m log && printf '%s\n' b c d/a > expected && vc-list-files > actual && compare expected actual && fail=0 Exit $fail libidn-1.28/gltests/test-strerror.c0000644000000000000000000000370712153706067014302 00000000000000/* Test of strerror() function. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake , 2007. */ #include #include #include "signature.h" SIGNATURE_CHECK (strerror, char *, (int)); #include #include "macros.h" int main (void) { char *str; errno = 0; str = strerror (EACCES); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); errno = 0; str = strerror (ETIMEDOUT); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); errno = 0; str = strerror (EOVERFLOW); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); /* POSIX requires strerror (0) to succeed. Reject use of "Unknown error", but allow "Success", "No error", or even Solaris' "Error 0" which are distinct patterns from true out-of-range strings. http://austingroupbugs.net/view.php?id=382 */ errno = 0; str = strerror (0); ASSERT (str); ASSERT (*str); ASSERT (errno == 0); ASSERT (strstr (str, "nknown") == NULL); ASSERT (strstr (str, "ndefined") == NULL); /* POSIX requires strerror to produce a non-NULL result for all inputs; as an extension, we also guarantee a non-empty result. Reporting EINVAL is optional. */ errno = 0; str = strerror (-3); ASSERT (str); ASSERT (*str); ASSERT (errno == 0 || errno == EINVAL); return 0; } libidn-1.28/gltests/test-stdio.c0000644000000000000000000000232212153706067013532 00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); /* Check that the types are all defined. */ fpos_t t1; off_t t2; size_t t3; ssize_t t4; va_list t5; int main (void) { return 0; } libidn-1.28/gltests/test-init.sh0000755000000000000000000000450212153706067013550 00000000000000#!/bin/sh # Unit tests for init.sh # Copyright (C) 2011-2013 Free Software Foundation, Inc. # This file is part of the GNUlib Library. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ : ${srcdir=.} . "$srcdir/init.sh"; path_prepend_ . fail=0 test_compare() { touch empty || fail=1 echo xyz > in || fail=1 compare /dev/null /dev/null >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" # "err" should be empty, too, but has "set -x" output when VERBOSE=yes case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare /dev/null empty >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare in in >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare /dev/null in >out 2>err && fail=1 cat <<\EOF > exp diff -u /dev/null in --- /dev/null 1970-01-01 +++ in 1970-01-01 +xyz EOF compare exp out || fail=1 case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare empty in >out 2>err && fail=1 # Compare against expected output only if compare is using diff -u. if grep @ out >/dev/null; then # Remove the TAB-date suffix on each --- and +++ line, # for both the expected and the actual output files. # Also remove the @@ line, since Solaris 5.10 and GNU diff formats differ: # -@@ -0,0 +1 @@ # +@@ -1,0 +1,1 @@ sed 's/ .*//;/^@@/d' out > k && mv k out cat <<\EOF > exp --- empty +++ in +xyz EOF compare exp out || fail=1 fi case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac } test_compare Exit $fail libidn-1.28/gltests/test-stat.h0000644000000000000000000000602412153706067013373 00000000000000/* Tests of stat. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ /* This file is designed to test both stat(n,buf) and fstatat(AT_FDCWD,n,buf,0). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static int test_stat_func (int (*func) (char const *, struct stat *), bool print) { struct stat st1; struct stat st2; char *cwd = getcwd (NULL, 0); ASSERT (cwd); ASSERT (func (".", &st1) == 0); ASSERT (func ("./", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (func (cwd, &st2) == 0); ASSERT (SAME_INODE (st1, st2)); ASSERT (func ("/", &st1) == 0); ASSERT (func ("///", &st2) == 0); ASSERT (SAME_INODE (st1, st2)); errno = 0; ASSERT (func ("", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nosuch/", &st1) == -1); ASSERT (errno == ENOENT); ASSERT (close (creat (BASE "file", 0600)) == 0); ASSERT (func (BASE "file", &st1) == 0); errno = 0; ASSERT (func (BASE "file/", &st1) == -1); ASSERT (errno == ENOTDIR); /* Now for some symlink tests, where supported. We set up: link1 -> directory link2 -> file link3 -> dangling link4 -> loop then test behavior with trailing slash. */ if (symlink (".", BASE "link1") != 0) { ASSERT (unlink (BASE "file") == 0); if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } ASSERT (symlink (BASE "file", BASE "link2") == 0); ASSERT (symlink (BASE "nosuch", BASE "link3") == 0); ASSERT (symlink (BASE "link4", BASE "link4") == 0); ASSERT (func (BASE "link1/", &st1) == 0); ASSERT (S_ISDIR (st1.st_mode)); errno = 0; ASSERT (func (BASE "link2/", &st1) == -1); ASSERT (errno == ENOTDIR); errno = 0; ASSERT (func (BASE "link3/", &st1) == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func (BASE "link4/", &st1) == -1); ASSERT (errno == ELOOP); /* Cleanup. */ ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link1") == 0); ASSERT (unlink (BASE "link2") == 0); ASSERT (unlink (BASE "link3") == 0); ASSERT (unlink (BASE "link4") == 0); return 0; } libidn-1.28/gltests/test-sys_types.c0000644000000000000000000000172112153706067014454 00000000000000/* Test of substitute. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2011. */ #include #include /* Check that the types are all defined. */ pid_t t1; size_t t2; ssize_t t3; off_t t4; mode_t t5; int main (void) { return 0; } libidn-1.28/gltests/putenv.c0000644000000000000000000001176312153706066012764 00000000000000/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2013 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. 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 3 of the License, or any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include /* Include errno.h *after* sys/types.h to work around header problems on AIX 3.2.5. */ #include #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include #endif #if _LIBC # if HAVE_GNU_LD # define environ __environ # else extern char **environ; # endif #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif static int _unsetenv (const char *name) { size_t len; #if !HAVE_DECL__PUTENV char **ep; #endif if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } len = strlen (name); #if HAVE_DECL__PUTENV { int putenv_result, putenv_errno; char *name_ = malloc (len + 2); memcpy (name_, name, len); name_[len] = '='; name_[len + 1] = 0; putenv_result = _putenv (name_); putenv_errno = errno; free (name_); __set_errno (putenv_errno); return putenv_result; } #else LOCK; ep = environ; while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { /* Found it. Remove this pointer by moving later ones back. */ char **dp = ep; do dp[0] = dp[1]; while (*dp++); /* Continue the loop in case NAME appears again. */ } else ++ep; UNLOCK; return 0; #endif } /* Put STRING, which is of the form "NAME=VALUE", in the environment. If STRING contains no '=', then remove STRING from the environment. */ int putenv (char *string) { const char *name_end = strchr (string, '='); char **ep; if (name_end == NULL) { /* Remove the variable from the environment. */ return _unsetenv (string); } #if HAVE_DECL__PUTENV /* Rely on _putenv to allocate the new environment. If other parts of the application use _putenv, the !HAVE_DECL__PUTENV code would fight over who owns the environ vector, causing a crash. */ if (name_end[1]) return _putenv (string); else { /* _putenv ("NAME=") unsets NAME, so invoke _putenv ("NAME= ") to allocate the environ vector and then replace the new entry with "NAME=". */ int putenv_result, putenv_errno; char *name_x = malloc (name_end - string + sizeof "= "); if (!name_x) return -1; memcpy (name_x, string, name_end - string + 1); name_x[name_end - string + 1] = ' '; name_x[name_end - string + 2] = 0; putenv_result = _putenv (name_x); putenv_errno = errno; for (ep = environ; *ep; ep++) if (strcmp (*ep, name_x) == 0) { *ep = string; break; } # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (putenv_result == 0) { /* _putenv propagated "NAME= " into the subprocess environment; fix that by calling SetEnvironmentVariable directly. */ name_x[name_end - string] = 0; putenv_result = SetEnvironmentVariable (name_x, "") ? 0 : -1; putenv_errno = ENOMEM; /* ENOMEM is the only way to fail. */ } # endif free (name_x); __set_errno (putenv_errno); return putenv_result; } #else for (ep = environ; *ep; ep++) if (strncmp (*ep, string, name_end - string) == 0 && (*ep)[name_end - string] == '=') break; if (*ep) *ep = string; else { static char **last_environ = NULL; size_t size = ep - environ; char **new_environ = malloc ((size + 2) * sizeof *new_environ); if (! new_environ) return -1; new_environ[0] = string; memcpy (new_environ + 1, environ, (size + 1) * sizeof *new_environ); free (last_environ); last_environ = new_environ; environ = new_environ; } return 0; #endif } libidn-1.28/gltests/test-close.c0000644000000000000000000000220112153706066013510 00000000000000/* Test closing a file or socket. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (close, int, (int)); #include #include "macros.h" int main (void) { /* Test behaviour for invalid file descriptors. */ { errno = 0; ASSERT (close (-1) == -1); ASSERT (errno == EBADF); } { close (99); errno = 0; ASSERT (close (99) == -1); ASSERT (errno == EBADF); } return 0; } libidn-1.28/gltests/test-binary-io.c0000644000000000000000000000324612153706066014306 00000000000000/* Test of binary mode I/O. Copyright (C) 2005, 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2005. */ #include #include "binary-io.h" #include #include #include #include #include #include #include "macros.h" int main (int argc, char *argv[]) { /* Test the O_BINARY macro. */ { int fd = open ("t-bin-out0.tmp", O_CREAT | O_TRUNC | O_RDWR | O_BINARY, 0600); if (write (fd, "Hello\n", 6) < 0) exit (1); close (fd); } { struct stat statbuf; if (stat ("t-bin-out0.tmp", &statbuf) < 0) exit (1); ASSERT (statbuf.st_size == 6); } switch (argv[1][0]) { case '1': /* Test the set_binary_mode() function. */ set_binary_mode (1, O_BINARY); fputs ("Hello\n", stdout); break; case '2': /* Test the SET_BINARY macro. */ SET_BINARY (1); fputs ("Hello\n", stdout); break; default: break; } return 0; } libidn-1.28/gltests/test-binary-io.sh0000775000000000000000000000056311756751411014504 00000000000000#!/bin/sh tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 tmpfiles="$tmpfiles t-bin-out0.tmp t-bin-out1.tmp t-bin-out2.tmp" ./test-binary-io${EXEEXT} 1 > t-bin-out1.tmp || exit 1 cmp t-bin-out0.tmp t-bin-out1.tmp > /dev/null || exit 1 ./test-binary-io${EXEEXT} 2 > t-bin-out2.tmp || exit 1 cmp t-bin-out0.tmp t-bin-out2.tmp > /dev/null || exit 1 rm -fr $tmpfiles exit 0 libidn-1.28/gltests/time.in.h0000644000000000000000000002151412153706067013007 00000000000000/* A more-standard . Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Don't get in the way of glibc when it includes time.h merely to declare a few standard symbols, rather than to declare all the symbols. Also, Solaris 8 eventually includes itself recursively; if that is happening, just include the system without adding our own declarations. */ #if (defined __need_time_t || defined __need_clock_t \ || defined __need_timespec \ || defined _@GUARD_PREFIX@_TIME_H) # @INCLUDE_NEXT@ @NEXT_TIME_H@ #else # define _@GUARD_PREFIX@_TIME_H # @INCLUDE_NEXT@ @NEXT_TIME_H@ /* NetBSD 5.0 mis-defines NULL. */ # include /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). Or they define it with the wrong member names or define it in (e.g., FreeBSD circa 1997). Stock Mingw does not define it, but the pthreads-win32 library defines it in . */ # if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@ # if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ # include # elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ # include /* The pthreads-win32 also defines a couple of broken macros. */ # undef asctime_r # undef ctime_r # undef gmtime_r # undef localtime_r # undef rand_r # undef strtok_r # else # ifdef __cplusplus extern "C" { # endif # if !GNULIB_defined_struct_timespec # undef timespec # define timespec rpl_timespec struct timespec { time_t tv_sec; long int tv_nsec; }; # define GNULIB_defined_struct_timespec 1 # endif # ifdef __cplusplus } # endif # endif # endif # if !GNULIB_defined_struct_time_t_must_be_integral /* Per http://austingroupbugs.net/view.php?id=327, POSIX requires time_t to be an integer type, even though C99 permits floating point. We don't know of any implementation that uses floating point, and it is much easier to write code that doesn't have to worry about that corner case, so we force the issue. */ struct __time_t_must_be_integral { unsigned int __floating_time_t_unsupported : (time_t) 1; }; # define GNULIB_defined_struct_time_t_must_be_integral 1 # endif /* Sleep for at least RQTP seconds unless interrupted, If interrupted, return -1 and store the remaining time into RMTP. See . */ # if @GNULIB_NANOSLEEP@ # if @REPLACE_NANOSLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define nanosleep rpl_nanosleep # endif _GL_FUNCDECL_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # else # if ! @HAVE_NANOSLEEP@ _GL_FUNCDECL_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (nanosleep, int, (struct timespec const *__rqtp, struct timespec *__rmtp)); # endif _GL_CXXALIASWARN (nanosleep); # endif /* Return the 'time_t' representation of TP and normalize TP. */ # if @GNULIB_MKTIME@ # if @REPLACE_MKTIME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mktime rpl_mktime # endif _GL_FUNCDECL_RPL (mktime, time_t, (struct tm *__tp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mktime, time_t, (struct tm *__tp)); # else _GL_CXXALIAS_SYS (mktime, time_t, (struct tm *__tp)); # endif _GL_CXXALIASWARN (mktime); # endif /* Convert TIMER to RESULT, assuming local time and UTC respectively. See and . */ # if @GNULIB_TIME_R@ # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localtime_r # define localtime_r rpl_localtime_r # endif _GL_FUNCDECL_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (localtime_r); # endif # if @REPLACE_LOCALTIME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gmtime_r # define gmtime_r rpl_gmtime_r # endif _GL_FUNCDECL_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # else # if ! @HAVE_DECL_LOCALTIME_R@ _GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer, struct tm *restrict __result)); # endif # if @HAVE_DECL_LOCALTIME_R@ _GL_CXXALIASWARN (gmtime_r); # endif # endif /* Parse BUF as a time stamp, assuming FORMAT specifies its layout, and store the resulting broken-down time into TM. See . */ # if @GNULIB_STRPTIME@ # if ! @HAVE_STRPTIME@ _GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf, char const *restrict __format, struct tm *restrict __tm)); _GL_CXXALIASWARN (strptime); # endif /* Convert TM to a time_t value, assuming UTC. */ # if @GNULIB_TIMEGM@ # if @REPLACE_TIMEGM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef timegm # define timegm rpl_timegm # endif _GL_FUNCDECL_RPL (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (timegm, time_t, (struct tm *__tm)); # else # if ! @HAVE_TIMEGM@ _GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (timegm, time_t, (struct tm *__tm)); # endif _GL_CXXALIASWARN (timegm); # endif /* Encourage applications to avoid unsafe functions that can overrun buffers when given outlandish struct tm values. Portable applications should use strftime (or even sprintf) instead. */ # if defined GNULIB_POSIXCHECK # undef asctime _GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef asctime_r _GL_WARN_ON_USE (asctime, "asctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime _GL_WARN_ON_USE (asctime, "ctime can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif # if defined GNULIB_POSIXCHECK # undef ctime_r _GL_WARN_ON_USE (asctime, "ctime_r can overrun buffers in some cases - " "better use strftime (or even sprintf) instead"); # endif #endif libidn-1.28/gltests/malloca.c0000644000000000000000000001157612153706066013055 00000000000000/* Safe automatic memory allocation. Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2003. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Specification. */ #include "malloca.h" #include #include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they are only invoked for big memory sizes. */ #if HAVE_ALLOCA /* Store the mmalloca() results in a hash table. This is needed to reliably distinguish a mmalloca() result and an alloca() result. Although it is possible that the same pointer is returned by alloca() and by mmalloca() at different times in the same application, it does not lead to a bug in freea(), because: - Before a pointer returned by alloca() can point into malloc()ed memory, the function must return, and once this has happened the programmer must not call freea() on it anyway. - Before a pointer returned by mmalloca() can point into the stack, it must be freed. The only function that can free it is freea(), and when freea() frees it, it also removes it from the hash table. */ #define MAGIC_NUMBER 0x1415fb4a #define MAGIC_SIZE sizeof (int) /* This is how the header info would look like without any alignment considerations. */ struct preliminary_header { void *next; int magic; }; /* But the header's size must be a multiple of sa_alignment_max. */ #define HEADER_SIZE \ (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max) union header { void *next; struct { char room[HEADER_SIZE - MAGIC_SIZE]; int word; } magic; }; verify (HEADER_SIZE == sizeof (union header)); /* We make the hash table quite big, so that during lookups the probability of empty hash buckets is quite high. There is no need to make the hash table resizable, because when the hash table gets filled so much that the lookup becomes slow, it means that the application has memory leaks. */ #define HASH_TABLE_SIZE 257 static void * mmalloca_results[HASH_TABLE_SIZE]; #endif void * mmalloca (size_t n) { #if HAVE_ALLOCA /* Allocate one more word, that serves as an indicator for malloc()ed memory, so that freea() of an alloca() result is fast. */ size_t nplus = n + HEADER_SIZE; if (nplus >= n) { void *p = malloc (nplus); if (p != NULL) { size_t slot; union header *h = p; p = h + 1; /* Put a magic number into the indicator word. */ h->magic.word = MAGIC_NUMBER; /* Enter p into the hash table. */ slot = (uintptr_t) p % HASH_TABLE_SIZE; h->next = mmalloca_results[slot]; mmalloca_results[slot] = p; return p; } } /* Out of memory. */ return NULL; #else # if !MALLOC_0_IS_NONNULL if (n == 0) n = 1; # endif return malloc (n); #endif } #if HAVE_ALLOCA void freea (void *p) { /* mmalloca() may have returned NULL. */ if (p != NULL) { /* Attempt to quickly distinguish the mmalloca() result - which has a magic indicator word - and the alloca() result - which has an uninitialized indicator word. It is for this test that sa_increment additional bytes are allocated in the alloca() case. */ if (((int *) p)[-1] == MAGIC_NUMBER) { /* Looks like a mmalloca() result. To see whether it really is one, perform a lookup in the hash table. */ size_t slot = (uintptr_t) p % HASH_TABLE_SIZE; void **chain = &mmalloca_results[slot]; for (; *chain != NULL;) { union header *h = p; if (*chain == p) { /* Found it. Remove it from the hash table and free it. */ union header *p_begin = h - 1; *chain = p_begin->next; free (p_begin); return; } h = *chain; chain = &h[-1].next; } } /* At this point, we know it was not a mmalloca() result. */ } } #endif libidn-1.28/gltests/Makefile.am0000644000000000000000000012770712153706077013343 00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. AUTOMAKE_OPTIONS = 1.9.6 foreign SUBDIRS = . TESTS = XFAIL_TESTS = TESTS_ENVIRONMENT = noinst_PROGRAMS = check_PROGRAMS = noinst_HEADERS = noinst_LIBRARIES = check_LIBRARIES = libtests.a EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = \ -D@gltests_WITNESS@=1 \ -I. -I$(srcdir) \ -I.. -I$(srcdir)/.. \ -I../gl -I$(srcdir)/../gl LDADD = libtests.a ../gl/libgnu.la libtests.a $(LIBTESTS_LIBDEPS) libtests_a_SOURCES = libtests_a_LIBADD = $(gltests_LIBOBJS) libtests_a_DEPENDENCIES = $(gltests_LIBOBJS) EXTRA_libtests_a_SOURCES = AM_LIBTOOLFLAGS = --preserve-dup-deps TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)' ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt ## begin gnulib module alloca-opt-tests TESTS += test-alloca-opt check_PROGRAMS += test-alloca-opt EXTRA_DIST += test-alloca-opt.c ## end gnulib module alloca-opt-tests ## begin gnulib module binary-io libtests_a_SOURCES += binary-io.h binary-io.c ## end gnulib module binary-io ## begin gnulib module binary-io-tests TESTS += test-binary-io.sh check_PROGRAMS += test-binary-io EXTRA_DIST += test-binary-io.sh test-binary-io.c macros.h ## end gnulib module binary-io-tests ## begin gnulib module close EXTRA_DIST += close.c EXTRA_libtests_a_SOURCES += close.c ## end gnulib module close ## begin gnulib module close-tests TESTS += test-close check_PROGRAMS += test-close EXTRA_DIST += test-close.c signature.h macros.h ## end gnulib module close-tests ## begin gnulib module dosname EXTRA_DIST += dosname.h ## end gnulib module dosname ## begin gnulib module dup2 EXTRA_DIST += dup2.c EXTRA_libtests_a_SOURCES += dup2.c ## end gnulib module dup2 ## begin gnulib module dup2-tests TESTS += test-dup2 check_PROGRAMS += test-dup2 EXTRA_DIST += test-dup2.c signature.h macros.h ## end gnulib module dup2-tests ## begin gnulib module environ-tests TESTS += test-environ check_PROGRAMS += test-environ EXTRA_DIST += test-environ.c ## end gnulib module environ-tests ## begin gnulib module errno-tests TESTS += test-errno check_PROGRAMS += test-errno EXTRA_DIST += test-errno.c ## end gnulib module errno-tests ## begin gnulib module fcntl-h BUILT_SOURCES += fcntl.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += fcntl.h fcntl.h-t EXTRA_DIST += fcntl.in.h ## end gnulib module fcntl-h ## begin gnulib module fd-hook libtests_a_SOURCES += fd-hook.c EXTRA_DIST += fd-hook.h ## end gnulib module fd-hook ## begin gnulib module fdopen EXTRA_DIST += fdopen.c EXTRA_libtests_a_SOURCES += fdopen.c ## end gnulib module fdopen ## begin gnulib module fdopen-tests TESTS += test-fdopen check_PROGRAMS += test-fdopen EXTRA_DIST += test-fdopen.c signature.h macros.h ## end gnulib module fdopen-tests ## begin gnulib module fgetc-tests TESTS += test-fgetc check_PROGRAMS += test-fgetc EXTRA_DIST += test-fgetc.c signature.h macros.h ## end gnulib module fgetc-tests ## begin gnulib module fputc-tests TESTS += test-fputc check_PROGRAMS += test-fputc EXTRA_DIST += test-fputc.c signature.h macros.h ## end gnulib module fputc-tests ## begin gnulib module fread-tests TESTS += test-fread check_PROGRAMS += test-fread EXTRA_DIST += test-fread.c signature.h macros.h ## end gnulib module fread-tests ## begin gnulib module fstat EXTRA_DIST += fstat.c EXTRA_libtests_a_SOURCES += fstat.c ## end gnulib module fstat ## begin gnulib module fstat-tests TESTS += test-fstat check_PROGRAMS += test-fstat EXTRA_DIST += test-fstat.c signature.h macros.h ## end gnulib module fstat-tests ## begin gnulib module fwrite-tests TESTS += test-fwrite check_PROGRAMS += test-fwrite EXTRA_DIST += test-fwrite.c signature.h macros.h ## end gnulib module fwrite-tests ## begin gnulib module getcwd-lgpl EXTRA_DIST += getcwd-lgpl.c EXTRA_libtests_a_SOURCES += getcwd-lgpl.c ## end gnulib module getcwd-lgpl ## begin gnulib module getcwd-lgpl-tests TESTS += test-getcwd-lgpl check_PROGRAMS += test-getcwd-lgpl test_getcwd_lgpl_LDADD = $(LDADD) $(LIBINTL) EXTRA_DIST += test-getcwd-lgpl.c signature.h macros.h ## end gnulib module getcwd-lgpl-tests ## begin gnulib module getdtablesize EXTRA_DIST += getdtablesize.c EXTRA_libtests_a_SOURCES += getdtablesize.c ## end gnulib module getdtablesize ## begin gnulib module getdtablesize-tests TESTS += test-getdtablesize check_PROGRAMS += test-getdtablesize EXTRA_DIST += test-getdtablesize.c signature.h macros.h ## end gnulib module getdtablesize-tests ## begin gnulib module getopt-posix-tests TESTS += test-getopt check_PROGRAMS += test-getopt test_getopt_LDADD = $(LDADD) $(LIBINTL) EXTRA_DIST += macros.h signature.h test-getopt.c test-getopt.h test-getopt_long.h ## end gnulib module getopt-posix-tests ## begin gnulib module ignore-value EXTRA_DIST += ignore-value.h ## end gnulib module ignore-value ## begin gnulib module ignore-value-tests TESTS += test-ignore-value check_PROGRAMS += test-ignore-value EXTRA_DIST += test-ignore-value.c ## end gnulib module ignore-value-tests ## begin gnulib module intprops-tests TESTS += test-intprops check_PROGRAMS += test-intprops EXTRA_DIST += test-intprops.c macros.h ## end gnulib module intprops-tests ## begin gnulib module inttypes-incomplete BUILT_SOURCES += inttypes.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += inttypes.h inttypes.h-t EXTRA_DIST += inttypes.in.h ## end gnulib module inttypes-incomplete ## begin gnulib module inttypes-tests TESTS += test-inttypes check_PROGRAMS += test-inttypes EXTRA_DIST += test-inttypes.c ## end gnulib module inttypes-tests ## begin gnulib module lstat EXTRA_DIST += lstat.c EXTRA_libtests_a_SOURCES += lstat.c ## end gnulib module lstat ## begin gnulib module lstat-tests TESTS += test-lstat check_PROGRAMS += test-lstat EXTRA_DIST += test-lstat.h test-lstat.c signature.h macros.h ## end gnulib module lstat-tests ## begin gnulib module malloc-posix EXTRA_DIST += malloc.c EXTRA_libtests_a_SOURCES += malloc.c ## end gnulib module malloc-posix ## begin gnulib module malloca libtests_a_SOURCES += malloca.c EXTRA_DIST += malloca.h malloca.valgrind ## end gnulib module malloca ## begin gnulib module malloca-tests TESTS += test-malloca check_PROGRAMS += test-malloca EXTRA_DIST += test-malloca.c ## end gnulib module malloca-tests ## begin gnulib module open EXTRA_DIST += open.c EXTRA_libtests_a_SOURCES += open.c ## end gnulib module open ## begin gnulib module open-tests TESTS += test-open check_PROGRAMS += test-open EXTRA_DIST += test-open.h test-open.c signature.h macros.h ## end gnulib module open-tests ## begin gnulib module pathmax EXTRA_DIST += pathmax.h ## end gnulib module pathmax ## begin gnulib module pathmax-tests TESTS += test-pathmax check_PROGRAMS += test-pathmax EXTRA_DIST += test-pathmax.c ## end gnulib module pathmax-tests ## begin gnulib module putenv EXTRA_DIST += putenv.c EXTRA_libtests_a_SOURCES += putenv.c ## end gnulib module putenv ## begin gnulib module same-inode EXTRA_DIST += same-inode.h ## end gnulib module same-inode ## begin gnulib module setenv EXTRA_DIST += setenv.c EXTRA_libtests_a_SOURCES += setenv.c ## end gnulib module setenv ## begin gnulib module setenv-tests TESTS += test-setenv check_PROGRAMS += test-setenv EXTRA_DIST += test-setenv.c signature.h macros.h ## end gnulib module setenv-tests ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += arg-nonnull.h # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t ARG_NONNULL_H=arg-nonnull.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += c++defs.h # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += c++defs.h c++defs.h-t CXXDEFS_H=c++defs.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/warn-on-use BUILT_SOURCES += warn-on-use.h # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t WARN_ON_USE_H=warn-on-use.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module stat EXTRA_DIST += stat.c EXTRA_libtests_a_SOURCES += stat.c ## end gnulib module stat ## begin gnulib module stat-tests TESTS += test-stat check_PROGRAMS += test-stat test_stat_LDADD = $(LDADD) $(LIBINTL) EXTRA_DIST += test-stat.h test-stat.c signature.h macros.h ## end gnulib module stat-tests ## begin gnulib module stdbool BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create when the system # doesn't have one that works. if GL_GENERATE_STDBOOL_H stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ else stdbool.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool ## begin gnulib module stdbool-tests TESTS += test-stdbool check_PROGRAMS += test-stdbool EXTRA_DIST += test-stdbool.c ## end gnulib module stdbool-tests ## begin gnulib module stddef-tests TESTS += test-stddef check_PROGRAMS += test-stddef EXTRA_DIST += test-stddef.c ## end gnulib module stddef-tests ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module stdint-tests TESTS += test-stdint check_PROGRAMS += test-stdint EXTRA_DIST += test-stdint.c ## end gnulib module stdint-tests ## begin gnulib module stdio BUILT_SOURCES += stdio.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdio.h stdio.h-t EXTRA_DIST += stdio.in.h ## end gnulib module stdio ## begin gnulib module stdio-tests TESTS += test-stdio check_PROGRAMS += test-stdio EXTRA_DIST += test-stdio.c ## end gnulib module stdio-tests ## begin gnulib module stdlib BUILT_SOURCES += stdlib.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h ## end gnulib module stdlib ## begin gnulib module strerror-tests TESTS += test-strerror check_PROGRAMS += test-strerror EXTRA_DIST += test-strerror.c signature.h macros.h ## end gnulib module strerror-tests ## begin gnulib module symlink EXTRA_DIST += symlink.c EXTRA_libtests_a_SOURCES += symlink.c ## end gnulib module symlink ## begin gnulib module symlink-tests TESTS += test-symlink check_PROGRAMS += test-symlink EXTRA_DIST += test-symlink.h test-symlink.c signature.h macros.h ## end gnulib module symlink-tests ## begin gnulib module sys_stat BUILT_SOURCES += sys/stat.h # We need the following in order to create when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t MOSTLYCLEANDIRS += sys EXTRA_DIST += sys_stat.in.h ## end gnulib module sys_stat ## begin gnulib module sys_types-tests TESTS += test-sys_types check_PROGRAMS += test-sys_types EXTRA_DIST += test-sys_types.c ## end gnulib module sys_types-tests ## begin gnulib module test-framework-sh-tests TESTS += test-init.sh EXTRA_DIST += init.sh EXTRA_DIST += test-init.sh ## end gnulib module test-framework-sh-tests ## begin gnulib module time BUILT_SOURCES += time.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += time.h time.h-t EXTRA_DIST += time.in.h ## end gnulib module time ## begin gnulib module unsetenv EXTRA_DIST += unsetenv.c EXTRA_libtests_a_SOURCES += unsetenv.c ## end gnulib module unsetenv ## begin gnulib module unsetenv-tests TESTS += test-unsetenv check_PROGRAMS += test-unsetenv EXTRA_DIST += test-unsetenv.c signature.h macros.h ## end gnulib module unsetenv-tests ## begin gnulib module vc-list-files-tests TESTS += test-vc-list-files-git.sh TESTS += test-vc-list-files-cvs.sh TESTS_ENVIRONMENT += abs_aux_dir='$(abs_aux_dir)' EXTRA_DIST += test-vc-list-files-git.sh test-vc-list-files-cvs.sh ## end gnulib module vc-list-files-tests ## begin gnulib module verify-tests TESTS_ENVIRONMENT += MAKE='$(MAKE)' TESTS += test-verify test-verify.sh check_PROGRAMS += test-verify EXTRA_DIST += test-verify.c test-verify.sh ## end gnulib module verify-tests ## begin gnulib module version-etc-fsf libtests_a_SOURCES += version-etc-fsf.c ## end gnulib module version-etc-fsf ## begin gnulib module version-etc-tests TESTS += test-version-etc.sh check_PROGRAMS += test-version-etc test_version_etc_LDADD = $(LDADD) @LIBINTL@ EXTRA_DIST += test-version-etc.c test-version-etc.sh ## end gnulib module version-etc-tests ## begin gnulib module wchar BUILT_SOURCES += wchar.h # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t EXTRA_DIST += wchar.in.h ## end gnulib module wchar # Clean up after Solaris cc. clean-local: rm -rf SunWS_cache mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : libidn-1.28/gltests/stdbool.in.h0000644000000000000000000001177212153706066013523 00000000000000/* Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2001. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H /* ISO C 99 for platforms that lack it. */ /* Usage suggestions: Programs that use should be aware of some limitations and standards compliance issues. Standards compliance: - must be #included before 'bool', 'false', 'true' can be used. - You cannot assume that sizeof (bool) == 1. - Programs should not undefine the macros bool, true, and false, as C99 lists that as an "obsolescent feature". Limitations of this substitute, when used in a C89 environment: - must be #included before the '_Bool' type can be used. - You cannot assume that _Bool is a typedef; it might be a macro. - Bit-fields of type 'bool' are not supported. Portable code should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work with this substitute. With this substitute, only the values 0 and 1 give the expected result when converted to _Bool' or 'bool'. - C99 allows the use of (_Bool)0.0 in constant expressions, but this substitute cannot always provide this property. Also, it is suggested that programs use 'bool' rather than '_Bool'; this isn't required, but 'bool' is more common. */ /* 7.16. Boolean type and values */ /* BeOS already #defines false 0, true 1. We use the same definitions below, but temporarily we have to #undef them. */ #if defined __BEOS__ && !defined __HAIKU__ # include /* defines bool but not _Bool */ # undef false # undef true #endif #ifdef __cplusplus # define _Bool bool # define bool bool #else # if defined __BEOS__ && !defined __HAIKU__ /* A compiler known to have 'bool'. */ /* If the compiler already has both 'bool' and '_Bool', we can assume they are the same types. */ # if !@HAVE__BOOL@ typedef bool _Bool; # endif # else # if !defined __GNUC__ /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if was working. So we override the _Bool type. If !@HAVE__BOOL@: Need to define _Bool ourselves. As 'signed char' or as an enum type? Use of a typedef, with SunPRO C, leads to a stupid "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". Even the existence of an enum type, without a typedef, "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. The only benefit of the enum, debuggability, is not important with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ /* For the sake of symbolic names in gdb, define true and false as enum constants, not only as macros. It is tempting to write typedef enum { false = 0, true = 1 } _Bool; so that gdb prints values of type 'bool' symbolically. But then values of type '_Bool' might promote to 'int' or 'unsigned int' (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' (see ISO C 99 6.3.1.1.(2)). So add a negative value to the enum; this ensures that '_Bool' promotes to 'int'. */ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; # endif # endif # endif # define bool _Bool #endif /* The other macros must be usable in preprocessor directives. */ #ifdef __cplusplus # define false false # define true true #else # define false 0 # define true 1 #endif #define __bool_true_false_are_defined 1 #endif /* _GL_STDBOOL_H */ libidn-1.28/gltests/close.c0000644000000000000000000000270712153706066012546 00000000000000/* close replacement. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include "fd-hook.h" #include "msvc-inval.h" #undef close #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static int close_nothrow (int fd) { int result; TRY_MSVC_INVAL { result = close (fd); } CATCH_MSVC_INVAL { result = -1; errno = EBADF; } DONE_MSVC_INVAL; return result; } #else # define close_nothrow close #endif /* Override close() to call into other gnulib modules. */ int rpl_close (int fd) { #if WINDOWS_SOCKETS int retval = execute_all_close_hooks (close_nothrow, fd); #else int retval = close_nothrow (fd); #endif #if REPLACE_FCHDIR if (retval >= 0) _gl_unregister_fd (fd); #endif return retval; } libidn-1.28/gltests/stdlib.in.h0000644000000000000000000010045612153706066013334 00000000000000/* A GNU-like . Copyright (C) 1995, 2001-2004, 2006-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc /* Special invocation conventions inside some gnulib header files, and inside some glibc header files, respectively. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #ifndef _@GUARD_PREFIX@_STDLIB_H #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD 10 defines WEXITSTATUS in , not in . */ #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS # include #endif /* Solaris declares getloadavg() in . */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ # include #endif /* Native Windows platforms declare mktemp() in . */ #if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in , which is included from if _REENTRANT is defined. Include it whenever we need 'struct random_data'. */ # if @HAVE_RANDOM_H@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated replacements to coexist. */ # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; # define GNULIB_defined_struct_random_data 1 # endif # endif #endif #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* On Mac OS X 10.3, only declares mkstemp. */ /* On Mac OS X 10.5, only declares mkstemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems do not define EXIT_*, despite otherwise supporting C89. */ #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere with proper operation of xargs. */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #elif EXIT_FAILURE != 1 # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #if @GNULIB__EXIT@ /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); #elif defined GNULIB_POSIXCHECK # undef _Exit # if HAVE_RAW_DECL__EXIT _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " "use gnulib module _Exit for portability"); # endif #endif #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); #elif defined GNULIB_POSIXCHECK # undef atoll # if HAVE_RAW_DECL_ATOLL _GL_WARN_ON_USE (atoll, "atoll is unportable - " "use gnulib module atoll for portability"); # endif #endif #if @GNULIB_CALLOC_POSIX@ # if @REPLACE_CALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif _GL_CXXALIASWARN (calloc); #elif defined GNULIB_POSIXCHECK # undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ # if @REPLACE_CANONICALIZE_FILE_NAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif _GL_CXXALIASWARN (canonicalize_file_name); #elif defined GNULIB_POSIXCHECK # undef canonicalize_file_name # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_GETLOADAVG@ /* Store max(NELEM,3) load average numbers in LOADAVG[]. The three numbers are the load average of the last 1 minute, the last 5 minutes, and the last 15 minutes, respectively. LOADAVG is an array of NELEM numbers. */ # if !@HAVE_DECL_GETLOADAVG@ _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); _GL_CXXALIASWARN (getloadavg); #elif defined GNULIB_POSIXCHECK # undef getloadavg # if HAVE_RAW_DECL_GETLOADAVG _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " "use gnulib module getloadavg for portability"); # endif #endif #if @GNULIB_GETSUBOPT@ /* Assuming *OPTIONP is a comma separated list of elements of the form "token" or "token=value", getsubopt parses the first of these elements. If the first element refers to a "token" that is member of the given NULL-terminated array of tokens: - It replaces the comma with a NUL byte, updates *OPTIONP to point past the first option and the comma, sets *VALUEP to the value of the element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. For more details see the POSIX:2001 specification. http://www.opengroup.org/susv3xsh/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); _GL_CXXALIASWARN (getsubopt); #elif defined GNULIB_POSIXCHECK # undef getsubopt # if HAVE_RAW_DECL_GETSUBOPT _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " "use gnulib module getsubopt for portability"); # endif #endif #if @GNULIB_GRANTPT@ /* Change the ownership and access permission of the slave side of the pseudo-terminal whose master side is specified by FD. */ # if !@HAVE_GRANTPT@ _GL_FUNCDECL_SYS (grantpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (grantpt, int, (int fd)); _GL_CXXALIASWARN (grantpt); #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not rely on GNU or POSIX semantics for malloc and realloc (for example, by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif _GL_CXXALIASWARN (malloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBTOWC@ # if @REPLACE_MBTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbtowc # define mbtowc rpl_mbtowc # endif _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # else _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # endif _GL_CXXALIASWARN (mbtowc); #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); #elif defined GNULIB_POSIXCHECK # undef mkdtemp # if HAVE_RAW_DECL_MKDTEMP _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " "use gnulib module mkdtemp for portability"); # endif #endif #if @GNULIB_MKOSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemp); #elif defined GNULIB_POSIXCHECK # undef mkostemp # if HAVE_RAW_DECL_MKOSTEMP _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " "use gnulib module mkostemp for portability"); # endif #endif #if @GNULIB_MKOSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE before a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemps); #elif defined GNULIB_POSIXCHECK # undef mkostemps # if HAVE_RAW_DECL_MKOSTEMPS _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " "use gnulib module mkostemps for portability"); # endif #endif #if @GNULIB_MKSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif _GL_CXXALIASWARN (mkstemp); #elif defined GNULIB_POSIXCHECK # undef mkstemp # if HAVE_RAW_DECL_MKSTEMP _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " "use gnulib module mkstemp for portability"); # endif #endif #if @GNULIB_MKSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE prior to a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); #elif defined GNULIB_POSIXCHECK # undef mkstemps # if HAVE_RAW_DECL_MKSTEMPS _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " "use gnulib module mkstemps for portability"); # endif #endif #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ # if !@HAVE_POSIX_OPENPT@ _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); _GL_CXXALIASWARN (posix_openpt); #elif defined GNULIB_POSIXCHECK # undef posix_openpt # if HAVE_RAW_DECL_POSIX_OPENPT _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " "use gnulib module posix_openpt for portability"); # endif #endif #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif _GL_FUNCDECL_RPL (ptsname, char *, (int fd)); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname # if HAVE_RAW_DECL_PTSNAME _GL_WARN_ON_USE (ptsname, "ptsname is not portable - " "use gnulib module ptsname for portability"); # endif #endif #if @GNULIB_PTSNAME_R@ /* Set the pathname of the pseudo-terminal slave associated with the master FD is open on and return 0, or set errno and return non-zero on errors. */ # if @REPLACE_PTSNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname_r # define ptsname_r rpl_ptsname_r # endif _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); # else # if !@HAVE_PTSNAME_R@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r # if HAVE_RAW_DECL_PTSNAME_R _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " "use gnulib module ptsname_r for portability"); # endif #endif #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv rpl_putenv # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #endif #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ # ifndef RAND_MAX # define RAND_MAX 2147483647 # endif # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); # endif _GL_CXXALIAS_SYS (random, long, (void)); _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random # if HAVE_RAW_DECL_RANDOM _GL_WARN_ON_USE (random, "random is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); # endif _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom # if HAVE_RAW_DECL_SRANDOM _GL_WARN_ON_USE (srandom, "srandom is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random_r # define random_r rpl_random_r # endif _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); # endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r # if HAVE_RAW_DECL_RANDOM_R _GL_WARN_ON_USE (random_r, "random_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom_r # define srandom_r rpl_srandom_r # endif _GL_FUNCDECL_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r # if HAVE_RAW_DECL_SRANDOM_R _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate_r # define initstate_r rpl_initstate_r # endif _GL_FUNCDECL_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate_r # define setstate_r rpl_setstate_r # endif _GL_FUNCDECL_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif _GL_CXXALIASWARN (realloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); #endif #if @GNULIB_REALPATH@ # if @REPLACE_REALPATH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK # undef realpath # if HAVE_RAW_DECL_REALPATH _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " "canonicalize or canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_RPMATCH@ /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); #elif defined GNULIB_POSIXCHECK # undef rpmatch # if HAVE_RAW_DECL_RPMATCH _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " "use gnulib module rpmatch for portability"); # endif #endif #if @GNULIB_SECURE_GETENV@ /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, (char const *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); #elif defined GNULIB_POSIXCHECK # undef secure_getenv # if HAVE_RAW_DECL_SECURE_GETENV _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " "use gnulib module secure_getenv for portability"); # endif #endif #if @GNULIB_SETENV@ /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ # if @REPLACE_SETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setenv # define setenv rpl_setenv # endif _GL_FUNCDECL_RPL (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else # if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); # endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV _GL_WARN_ON_USE (setenv, "setenv is unportable - " "use gnulib module setenv for portability"); # endif #endif #if @GNULIB_STRTOD@ /* Parse a double from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); # else # if !@HAVE_STRTOD@ _GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp)); # endif _GL_CXXALIASWARN (strtod); #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD _GL_WARN_ON_USE (strtod, "strtod is unportable - " "use gnulib module strtod for portability"); # endif #endif #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ # if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoll, long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll # if HAVE_RAW_DECL_STRTOLL _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " "use gnulib module strtoll for portability"); # endif #endif #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ # if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull # if HAVE_RAW_DECL_STRTOULL _GL_WARN_ON_USE (strtoull, "strtoull is unportable - " "use gnulib module strtoull for portability"); # endif #endif #if @GNULIB_UNLOCKPT@ /* Unlock the slave side of the pseudo-terminal whose master side is specified by FD, so that it can be opened. */ # if !@HAVE_UNLOCKPT@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (unlockpt, int, (int fd)); _GL_CXXALIASWARN (unlockpt); #elif defined GNULIB_POSIXCHECK # undef unlockpt # if HAVE_RAW_DECL_UNLOCKPT _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " "use gnulib module unlockpt for portability"); # endif #endif #if @GNULIB_UNSETENV@ /* Remove the variable NAME from the environment. */ # if @REPLACE_UNSETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unsetenv # define unsetenv rpl_unsetenv # endif _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); # else # if !@HAVE_DECL_UNSETENV@ _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); # endif # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) _GL_CXXALIASWARN (unsetenv); # endif #elif defined GNULIB_POSIXCHECK # undef unsetenv # if HAVE_RAW_DECL_UNSETENV _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " "use gnulib module unsetenv for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCTOMB@ # if @REPLACE_WCTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctomb # define wctomb rpl_wctomb # endif _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif _GL_CXXALIASWARN (wctomb); #endif #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif libidn-1.28/gltests/test-errno.c0000644000000000000000000000555412153706066013546 00000000000000/* Test of substitute. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2008. */ #include #include /* Verify that the POSIX mandated errno values exist and can be used as initializers outside of a function. The variable names happen to match the Linux/x86 error numbers. */ int e1 = EPERM; int e2 = ENOENT; int e3 = ESRCH; int e4 = EINTR; int e5 = EIO; int e6 = ENXIO; int e7 = E2BIG; int e8 = ENOEXEC; int e9 = EBADF; int e10 = ECHILD; int e11 = EAGAIN; int e11a = EWOULDBLOCK; int e12 = ENOMEM; int e13 = EACCES; int e14 = EFAULT; int e16 = EBUSY; int e17 = EEXIST; int e18 = EXDEV; int e19 = ENODEV; int e20 = ENOTDIR; int e21 = EISDIR; int e22 = EINVAL; int e23 = ENFILE; int e24 = EMFILE; int e25 = ENOTTY; int e26 = ETXTBSY; int e27 = EFBIG; int e28 = ENOSPC; int e29 = ESPIPE; int e30 = EROFS; int e31 = EMLINK; int e32 = EPIPE; int e33 = EDOM; int e34 = ERANGE; int e35 = EDEADLK; int e36 = ENAMETOOLONG; int e37 = ENOLCK; int e38 = ENOSYS; int e39 = ENOTEMPTY; int e40 = ELOOP; int e42 = ENOMSG; int e43 = EIDRM; int e67 = ENOLINK; int e71 = EPROTO; int e72 = EMULTIHOP; int e74 = EBADMSG; int e75 = EOVERFLOW; int e84 = EILSEQ; int e88 = ENOTSOCK; int e89 = EDESTADDRREQ; int e90 = EMSGSIZE; int e91 = EPROTOTYPE; int e92 = ENOPROTOOPT; int e93 = EPROTONOSUPPORT; int e95 = EOPNOTSUPP; int e95a = ENOTSUP; int e97 = EAFNOSUPPORT; int e98 = EADDRINUSE; int e99 = EADDRNOTAVAIL; int e100 = ENETDOWN; int e101 = ENETUNREACH; int e102 = ENETRESET; int e103 = ECONNABORTED; int e104 = ECONNRESET; int e105 = ENOBUFS; int e106 = EISCONN; int e107 = ENOTCONN; int e110 = ETIMEDOUT; int e111 = ECONNREFUSED; int e113 = EHOSTUNREACH; int e114 = EALREADY; int e115 = EINPROGRESS; int e116 = ESTALE; int e122 = EDQUOT; int e125 = ECANCELED; int e130 = EOWNERDEAD; int e131 = ENOTRECOVERABLE; /* Don't verify that these errno values are all different, except for possibly EWOULDBLOCK == EAGAIN. Even Linux/x86 does not pass this check: it has ENOTSUP == EOPNOTSUPP. */ int main () { /* Verify that errno can be assigned. */ errno = EOVERFLOW; /* snprintf() callers want to distinguish EINVAL and EOVERFLOW. */ if (errno == EINVAL) return 1; return 0; } libidn-1.28/gltests/test-fwrite.c0000644000000000000000000000505012153706067013711 00000000000000/* Test of fwrite() function. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fwrite, size_t, (const void *, size_t, size_t, FILE *)); #include #include #include #include "msvc-inval.h" #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fwrite.txt"; /* We don't have an fwrite() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Test that fwrite() on an unbuffered stream sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "w"); char buf[5] = "world"; ASSERT (fp != NULL); setvbuf (fp, NULL, _IONBF, 0); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fwrite() on an unbuffered stream sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "w"); if (fp != NULL) { char buf[5] = "world"; setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "w"); if (fp != NULL) { char buf[5] = "world"; setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fwrite (buf, 1, sizeof (buf), fp) == 0); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libidn-1.28/gltests/test-ignore-value.c0000644000000000000000000000365112153706067015013 00000000000000/* Test the "ignore-value" module. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake. */ #include #include "ignore-value.h" #include #ifndef _GL_ATTRIBUTE_RETURN_CHECK # if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 4) # define _GL_ATTRIBUTE_RETURN_CHECK # else # define _GL_ATTRIBUTE_RETURN_CHECK __attribute__((__warn_unused_result__)) # endif #endif struct s { int i; }; static char doChar (void) _GL_ATTRIBUTE_RETURN_CHECK; static int doInt (void) _GL_ATTRIBUTE_RETURN_CHECK; static off_t doOff (void) _GL_ATTRIBUTE_RETURN_CHECK; static void *doPtr (void) _GL_ATTRIBUTE_RETURN_CHECK; static struct s doStruct (void) _GL_ATTRIBUTE_RETURN_CHECK; static char doChar (void) { return 0; } static int doInt (void) { return 0; } static off_t doOff (void) { return 0; } static void * doPtr (void) { return NULL; } static struct s doStruct (void) { static struct s s1; return s1; } int main (void) { /* If this test can compile with -Werror and the same warnings as the rest of the project, then we are properly silencing warnings about ignored return values. */ ignore_value (doChar ()); ignore_value (doInt ()); ignore_value (doOff ()); ignore_value (doPtr ()); ignore_value (doStruct ()); return 0; } libidn-1.28/gltests/fdopen.c0000644000000000000000000000272712153706066012716 00000000000000/* Open a stream with a given file descriptor. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #if HAVE_MSVC_INVALID_PARAMETER_HANDLER # include "msvc-inval.h" #endif #undef fdopen #if HAVE_MSVC_INVALID_PARAMETER_HANDLER static FILE * fdopen_nothrow (int fd, const char *mode) { FILE *result; TRY_MSVC_INVAL { result = fdopen (fd, mode); } CATCH_MSVC_INVAL { result = NULL; } DONE_MSVC_INVAL; return result; } #else # define fdopen_nothrow fdopen #endif FILE * rpl_fdopen (int fd, const char *mode) { int saved_errno = errno; FILE *fp; errno = 0; fp = fdopen_nothrow (fd, mode); if (fp == NULL) { if (errno == 0) errno = EBADF; } else errno = saved_errno; return fp; } libidn-1.28/gltests/signature.h0000644000000000000000000000367612153706066013455 00000000000000/* Macro for checking that a function declaration is compliant. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef SIGNATURE_CHECK /* Check that the function FN takes the specified arguments ARGS with a return type of RET. This header is designed to be included after and the one system header that is supposed to contain the function being checked, but prior to any other system headers that are necessary for the unit test. Therefore, this file does not include any system headers, nor reference anything outside of the macro arguments. For an example, if foo.h should provide: extern int foo (char, float); then the unit test named test-foo.c would start out with: #include #include #include "signature.h" SIGNATURE_CHECK (foo, int, (char, float)); #include ... */ # define SIGNATURE_CHECK(fn, ret, args) \ SIGNATURE_CHECK1 (fn, ret, args, __LINE__) /* Necessary to allow multiple SIGNATURE_CHECK lines in a unit test. Note that the checks must not occupy the same line. */ # define SIGNATURE_CHECK1(fn, ret, args, id) \ SIGNATURE_CHECK2 (fn, ret, args, id) /* macroexpand line */ # define SIGNATURE_CHECK2(fn, ret, args, id) \ static ret (* _GL_UNUSED signature_check ## id) args = fn #endif /* SIGNATURE_CHECK */ libidn-1.28/gltests/malloc.c0000644000000000000000000000273212153706066012706 00000000000000/* malloc() function that is glibc compatible. Copyright (C) 1997-1998, 2006-2007, 2009-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ #ifdef malloc # define NEED_MALLOC_GNU 1 # undef malloc /* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ #elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU # define NEED_MALLOC_GNU 1 #endif #include #include /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ void * rpl_malloc (size_t n) { void *result; #if NEED_MALLOC_GNU if (n == 0) n = 1; #endif result = malloc (n); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } libidn-1.28/gltests/stat.c0000644000000000000000000001066612153706066012417 00000000000000/* Work around platform bugs in stat. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* written by Eric Blake */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_stat doesn't recurse to rpl_stat. */ #define __need_system_sys_stat_h #include /* Get the original definition of stat. It might be defined as a macro. */ #include #include #undef __need_system_sys_stat_h #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # if _GL_WINDOWS_64_BIT_ST_SIZE # undef stat /* avoid warning on mingw64 with _FILE_OFFSET_BITS=64 */ # define stat _stati64 # define REPLACE_FUNC_STAT_DIR 1 # undef REPLACE_FUNC_STAT_FILE # elif REPLACE_FUNC_STAT_FILE /* mingw64 has a broken stat() function, based on _stat(), in libmingwex.a. Bypass it. */ # define stat _stat # define REPLACE_FUNC_STAT_DIR 1 # undef REPLACE_FUNC_STAT_FILE # endif #endif static int orig_stat (const char *filename, struct stat *buf) { return stat (filename, buf); } /* Specification. */ /* Write "sys/stat.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "sys/stat.h" #include #include #include #include #include "dosname.h" #include "verify.h" #if REPLACE_FUNC_STAT_DIR # include "pathmax.h" /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also have a constant PATH_MAX. */ # ifndef PATH_MAX # error "Please port this replacement to your platform" # endif #endif /* Store information about NAME into ST. Work around bugs with trailing slashes. Mingw has other bugs (such as st_ino always being 0 on success) which this wrapper does not work around. But at least this implementation provides the ability to emulate fchdir correctly. */ int rpl_stat (char const *name, struct stat *st) { int result = orig_stat (name, st); #if REPLACE_FUNC_STAT_FILE /* Solaris 9 mistakenly succeeds when given a non-directory with a trailing slash. */ if (result == 0 && !S_ISDIR (st->st_mode)) { size_t len = strlen (name); if (ISSLASH (name[len - 1])) { errno = ENOTDIR; return -1; } } #endif /* REPLACE_FUNC_STAT_FILE */ #if REPLACE_FUNC_STAT_DIR if (result == -1 && errno == ENOENT) { /* Due to mingw's oddities, there are some directories (like c:\) where stat() only succeeds with a trailing slash, and other directories (like c:\windows) where stat() only succeeds without a trailing slash. But we want the two to be synonymous, since chdir() manages either style. Likewise, Mingw also reports ENOENT for names longer than PATH_MAX, when we want ENAMETOOLONG, and for stat("file/"), when we want ENOTDIR. Fortunately, mingw PATH_MAX is small enough for stack allocation. */ char fixed_name[PATH_MAX + 1] = {0}; size_t len = strlen (name); bool check_dir = false; verify (PATH_MAX <= 4096); if (PATH_MAX <= len) errno = ENAMETOOLONG; else if (len) { strcpy (fixed_name, name); if (ISSLASH (fixed_name[len - 1])) { check_dir = true; while (len && ISSLASH (fixed_name[len - 1])) fixed_name[--len] = '\0'; if (!len) fixed_name[0] = '/'; } else fixed_name[len++] = '/'; result = orig_stat (fixed_name, st); if (result == 0 && check_dir && !S_ISDIR (st->st_mode)) { result = -1; errno = ENOTDIR; } } } #endif /* REPLACE_FUNC_STAT_DIR */ return result; } libidn-1.28/gltests/test-fputc.c0000644000000000000000000000457512153706066013544 00000000000000/* Test of fputc() function. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (fputc, int, (int, FILE *)); #include #include #include #include "msvc-inval.h" #include "macros.h" int main (int argc, char **argv) { const char *filename = "test-fputc.txt"; /* We don't have an fputc() function that installs an invalid parameter handler so far. So install that handler here, explicitly. */ #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING gl_msvc_inval_ensure_handler (); #endif /* Test that fputc() on an unbuffered stream sets errno if someone else closes the stream fd behind the back of stdio. */ { FILE *fp = fopen (filename, "w"); ASSERT (fp != NULL); setvbuf (fp, NULL, _IONBF, 0); ASSERT (close (fileno (fp)) == 0); errno = 0; ASSERT (fputc ('x', fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } /* Test that fputc() on an unbuffered stream sets errno if the stream was constructed with an invalid file descriptor. */ { FILE *fp = fdopen (-1, "w"); if (fp != NULL) { setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fputc ('x', fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } { FILE *fp; close (99); fp = fdopen (99, "w"); if (fp != NULL) { setvbuf (fp, NULL, _IONBF, 0); errno = 0; ASSERT (fputc ('x', fp) == EOF); ASSERT (errno == EBADF); ASSERT (ferror (fp)); fclose (fp); } } /* Clean up. */ unlink (filename); return 0; } libidn-1.28/gltests/malloca.h0000644000000000000000000001107312153706066013052 00000000000000/* Safe automatic memory allocation. Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2003. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _MALLOCA_H #define _MALLOCA_H #include #include #include #ifdef __cplusplus extern "C" { #endif /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, or NULL. Use of safe_alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns. */ #if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. This must be a macro, not a function. */ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) #else # define safe_alloca(N) ((void) (N), NULL) #endif /* malloca(N) is a safe variant of alloca(N). It allocates N bytes of memory allocated on the stack, that must be freed using freea() before the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ ((N) < 4032 - sa_increment \ ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \ : mmalloca (N)) #else # define malloca(N) \ mmalloca (N) #endif extern void * mmalloca (size_t n); /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); #else # define freea free #endif /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, on the stack. S must be positive and N must be nonnegative. The array must be freed using freea() before the function returns. */ #if 1 /* Cf. the definition of xalloc_oversized. */ # define nmalloca(n, s) \ ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \ ? NULL \ : malloca ((n) * (s))) #else extern void * nmalloca (size_t n, size_t s); #endif #ifdef __cplusplus } #endif /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ #if defined __GNUC__ || defined __IBM__ALIGNOF__ # define sa_alignof __alignof__ #elif defined __cplusplus template struct sa_alignof_helper { char __slot1; type __slot2; }; # define sa_alignof(type) offsetof (sa_alignof_helper, __slot2) #elif defined __hpux /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #elif defined _AIX /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif enum { /* The desired alignment of memory allocations is the maximum alignment among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), #if HAVE_LONG_LONG_INT sa_alignment_longlong = sa_alignof (long long), #endif sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) #if HAVE_LONG_LONG_INT | (sa_alignment_longlong - 1) #endif | (sa_alignment_longdouble - 1) ) + 1, /* The increment that guarantees room for a magic word must be >= sizeof (int) and a multiple of sa_alignment_max. */ sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max }; #endif /* _MALLOCA_H */ libidn-1.28/gltests/init.sh0000644000000000000000000004525512153706066012601 00000000000000# source this file; set up for tests # Copyright (C) 2009-2013 Free Software Foundation, Inc. # 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 3 of the License, or # (at your option) any later version. # 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. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Using this file in a test # ========================= # # The typical skeleton of a test looks like this: # # #!/bin/sh # . "${srcdir=.}/init.sh"; path_prepend_ . # Execute some commands. # Note that these commands are executed in a subdirectory, therefore you # need to prepend "../" to relative filenames in the build directory. # Note that the "path_prepend_ ." is useful only if the body of your # test invokes programs residing in the initial directory. # For example, if the programs you want to test are in src/, and this test # script is named tests/test-1, then you would use "path_prepend_ ../src", # or perhaps export PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" # to all tests via automake's TESTS_ENVIRONMENT. # Set the exit code 0 for success, 77 for skipped, or 1 or other for failure. # Use the skip_ and fail_ functions to print a diagnostic and then exit # with the corresponding exit code. # Exit $? # Executing a test that uses this file # ==================================== # # Running a single test: # $ make check TESTS=test-foo.sh # # Running a single test, with verbose output: # $ make check TESTS=test-foo.sh VERBOSE=yes # # Running a single test, with single-stepping: # 1. Go into a sub-shell: # $ bash # 2. Set relevant environment variables from TESTS_ENVIRONMENT in the # Makefile: # $ export srcdir=../../tests # this is an example # 3. Execute the commands from the test, copy&pasting them one by one: # $ . "$srcdir/init.sh"; path_prepend_ . # ... # 4. Finally # $ exit ME_=`expr "./$0" : '.*/\(.*\)$'` # We use a trap below for cleanup. This requires us to go through # hoops to get the right exit status transported through the handler. # So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests. # Turn off errexit here so that we don't trip the bug with OSF1/Tru64 # sh inside this function. Exit () { set +e; (exit $1); exit $1; } # Print warnings (e.g., about skipped and failed tests) to this file number. # Override by defining to say, 9, in init.cfg, and putting say, # export ...ENVVAR_SETTINGS...; $(SHELL) 9>&2 # in the definition of TESTS_ENVIRONMENT in your tests/Makefile.am file. # This is useful when using automake's parallel tests mode, to print # the reason for skip/failure to console, rather than to the .log files. : ${stderr_fileno_=2} # Note that correct expansion of "$*" depends on IFS starting with ' '. # Always write the full diagnostic to stderr. # When stderr_fileno_ is not 2, also emit the first line of the # diagnostic to that file descriptor. warn_ () { # If IFS does not start with ' ', set it and emit the warning in a subshell. case $IFS in ' '*) printf '%s\n' "$*" >&2 test $stderr_fileno_ = 2 \ || { printf '%s\n' "$*" | sed 1q >&$stderr_fileno_ ; } ;; *) (IFS=' '; warn_ "$@");; esac } fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; } skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; } fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; } framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; } # Sanitize this shell to POSIX mode, if possible. DUALCASE=1; export DUALCASE if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # We require $(...) support unconditionally. # We require a few additional shell features only when $EXEEXT is nonempty, # in order to support automatic $EXEEXT emulation: # - hyphen-containing alias names # - we prefer to use ${var#...} substitution, rather than having # to work around lack of support for that feature. # The following code attempts to find a shell with support for these features. # If the current shell passes the test, we're done. Otherwise, test other # shells until we find one that passes. If one is found, re-exec it. # If no acceptable shell is found, skip the current test. # # The "...set -x; P=1 true 2>err..." test is to disqualify any shell that # emits "P=1" into err, as /bin/sh from SunOS 5.11 and OpenBSD 4.7 do. # # Use "9" to indicate success (rather than 0), in case some shell acts # like Solaris 10's /bin/sh but exits successfully instead of with status 2. # Eval this code in a subshell to determine a shell's suitability. # 10 - passes all tests; ok to use # 9 - ok, but enabling "set -x" corrupts app stderr; prefer higher score # ? - not ok gl_shell_test_script_=' test $(echo y) = y || exit 1 score_=10 if test "$VERBOSE" = yes; then test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9 fi test -z "$EXEEXT" && exit $score_ shopt -s expand_aliases alias a-b="echo zoo" v=abx test ${v%x} = ab \ && test ${v#a} = bx \ && test $(a-b) = zoo \ && exit $score_ ' if test "x$1" = "x--no-reexec"; then shift else # Assume a working shell. Export to subshells (setup_ needs this). gl_set_x_corrupts_stderr_=false export gl_set_x_corrupts_stderr_ # Record the first marginally acceptable shell. marginal_= # Search for a shell that meets our requirements. for re_shell_ in __current__ "${CONFIG_SHELL:-no_shell}" \ /bin/sh bash dash zsh pdksh fail do test "$re_shell_" = no_shell && continue # If we've made it all the way to the sentinel, "fail" without # finding even a marginal shell, skip this test. if test "$re_shell_" = fail; then test -z "$marginal_" && skip_ failed to find an adequate shell re_shell_=$marginal_ break fi # When testing the current shell, simply "eval" the test code. # Otherwise, run it via $re_shell_ -c ... if test "$re_shell_" = __current__; then # 'eval'ing this code makes Solaris 10's /bin/sh exit with # $? set to 2. It does not evaluate any of the code after the # "unexpected" first '('. Thus, we must run it in a subshell. ( eval "$gl_shell_test_script_" ) > /dev/null 2>&1 else "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null fi st_=$? # $re_shell_ works just fine. Use it. if test $st_ = 10; then gl_set_x_corrupts_stderr_=false break fi # If this is our first marginally acceptable shell, remember it. if test "$st_:$marginal_" = 9: ; then marginal_="$re_shell_" gl_set_x_corrupts_stderr_=true fi done if test "$re_shell_" != __current__; then # Found a usable shell. Preserve -v and -x. case $- in *v*x* | *x*v*) opts_=-vx ;; *v*) opts_=-v ;; *x*) opts_=-x ;; *) opts_= ;; esac exec "$re_shell_" $opts_ "$0" --no-reexec "$@" echo "$ME_: exec failed" 1>&2 exit 127 fi fi # If this is bash, turn off all aliases. test -n "$BASH_VERSION" && unalias -a # Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to # PROG_NAME.exe), we want to support hyphen-containing names like test-acos. # That is part of the shell-selection test above. Why use aliases rather # than functions? Because support for hyphen-containing aliases is more # widespread than that for hyphen-containing function names. test -n "$EXEEXT" && shopt -s expand_aliases # Enable glibc's malloc-perturbing option. # This is useful for exposing code that depends on the fact that # malloc-related functions often return memory that is mostly zeroed. # If you have the time and cycles, use valgrind to do an even better job. : ${MALLOC_PERTURB_=87} export MALLOC_PERTURB_ # This is a stub function that is run upon trap (upon regular exit and # interrupt). Override it with a per-test function, e.g., to unmount # a partition, or to undo any other global state changes. cleanup_ () { :; } # Emit a header similar to that from diff -u; Print the simulated "diff" # command so that the order of arguments is clear. Don't bother with @@ lines. emit_diff_u_header_ () { printf '%s\n' "diff -u $*" \ "--- $1 1970-01-01" \ "+++ $2 1970-01-01" } # Arrange not to let diff or cmp operate on /dev/null, # since on some systems (at least OSF/1 5.1), that doesn't work. # When there are not two arguments, or no argument is /dev/null, return 2. # When one argument is /dev/null and the other is not empty, # cat the nonempty file to stderr and return 1. # Otherwise, return 0. compare_dev_null_ () { test $# = 2 || return 2 if test "x$1" = x/dev/null; then test -s "$2" || return 0 emit_diff_u_header_ "$@"; sed 's/^/+/' "$2" return 1 fi if test "x$2" = x/dev/null; then test -s "$1" || return 0 emit_diff_u_header_ "$@"; sed 's/^/-/' "$1" return 1 fi return 2 } if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \ && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then # diff accepts the -u option and does not (like AIX 7 'diff') produce an # extra space on column 1 of every content line. if test -z "$diff_out_"; then compare_ () { diff -u "$@"; } else compare_ () { if diff -u "$@" > diff.out; then # No differences were found, but Solaris 'diff' produces output # "No differences encountered". Hide this output. rm -f diff.out true else cat diff.out rm -f diff.out false fi } fi elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then if test -z "$diff_out_"; then compare_ () { diff -c "$@"; } else compare_ () { if diff -c "$@" > diff.out; then # No differences were found, but AIX and HP-UX 'diff' produce output # "No differences encountered" or "There are no differences between the # files.". Hide this output. rm -f diff.out true else cat diff.out rm -f diff.out false fi } fi elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then compare_ () { cmp -s "$@"; } else compare_ () { cmp "$@"; } fi # Usage: compare EXPECTED ACTUAL # # Given compare_dev_null_'s preprocessing, defer to compare_ if 2 or more. # Otherwise, propagate $? to caller: any diffs have already been printed. compare () { # This looks like it can be factored to use a simple "case $?" # after unchecked compare_dev_null_ invocation, but that would # fail in a "set -e" environment. if compare_dev_null_ "$@"; then return 0 else case $? in 1) return 1;; *) compare_ "$@";; esac fi } # An arbitrary prefix to help distinguish test directories. testdir_prefix_ () { printf gt; } # Run the user-overridable cleanup_ function, remove the temporary # directory and exit with the incoming value of $?. remove_tmp_ () { __st=$? cleanup_ # cd out of the directory we're about to remove cd "$initial_cwd_" || cd / || cd /tmp chmod -R u+rwx "$test_dir_" # If removal fails and exit status was to be 0, then change it to 1. rm -rf "$test_dir_" || { test $__st = 0 && __st=1; } exit $__st } # Given a directory name, DIR, if every entry in it that matches *.exe # contains only the specified bytes (see the case stmt below), then print # a space-separated list of those names and return 0. Otherwise, don't # print anything and return 1. Naming constraints apply also to DIR. find_exe_basenames_ () { feb_dir_=$1 feb_fail_=0 feb_result_= feb_sp_= for feb_file_ in $feb_dir_/*.exe; do # If there was no *.exe file, or there existed a file named "*.exe" that # was deleted between the above glob expansion and the existence test # below, just skip it. test "x$feb_file_" = "x$feb_dir_/*.exe" && test ! -f "$feb_file_" \ && continue # Exempt [.exe, since we can't create a function by that name, yet # we can't invoke [ by PATH search anyways due to shell builtins. test "x$feb_file_" = "x$feb_dir_/[.exe" && continue case $feb_file_ in *[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;; *) # Remove leading file name components as well as the .exe suffix. feb_file_=${feb_file_##*/} feb_file_=${feb_file_%.exe} feb_result_="$feb_result_$feb_sp_$feb_file_";; esac feb_sp_=' ' done test $feb_fail_ = 0 && printf %s "$feb_result_" return $feb_fail_ } # Consider the files in directory, $1. # For each file name of the form PROG.exe, create an alias named # PROG that simply invokes PROG.exe, then return 0. If any selected # file name or the directory name, $1, contains an unexpected character, # define no alias and return 1. create_exe_shims_ () { case $EXEEXT in '') return 0 ;; .exe) ;; *) echo "$0: unexpected \$EXEEXT value: $EXEEXT" 1>&2; return 1 ;; esac base_names_=`find_exe_basenames_ $1` \ || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 0; } if test -n "$base_names_"; then for base_ in $base_names_; do alias "$base_"="$base_$EXEEXT" done fi return 0 } # Use this function to prepend to PATH an absolute name for each # specified, possibly-$initial_cwd_-relative, directory. path_prepend_ () { while test $# != 0; do path_dir_=$1 case $path_dir_ in '') fail_ "invalid path dir: '$1'";; /*) abs_path_dir_=$path_dir_;; *) abs_path_dir_=$initial_cwd_/$path_dir_;; esac case $abs_path_dir_ in *:*) fail_ "invalid path dir: '$abs_path_dir_'";; esac PATH="$abs_path_dir_:$PATH" # Create an alias, FOO, for each FOO.exe in this directory. create_exe_shims_ "$abs_path_dir_" \ || fail_ "something failed (above): $abs_path_dir_" shift done export PATH } setup_ () { if test "$VERBOSE" = yes; then # Test whether set -x may cause the selected shell to corrupt an # application's stderr. Many do, including zsh-4.3.10 and the /bin/sh # from SunOS 5.11, OpenBSD 4.7 and Irix 5.x and 6.5. # If enabling verbose output this way would cause trouble, simply # issue a warning and refrain. if $gl_set_x_corrupts_stderr_; then warn_ "using SHELL=$SHELL with 'set -x' corrupts stderr" else set -x fi fi initial_cwd_=$PWD fail=0 pfx_=`testdir_prefix_` test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \ || fail_ "failed to create temporary directory in $initial_cwd_" cd "$test_dir_" || fail_ "failed to cd to temporary directory" # As autoconf-generated configure scripts do, ensure that IFS # is defined initially, so that saving and restoring $IFS works. gl_init_sh_nl_=' ' IFS=" "" $gl_init_sh_nl_" # This trap statement, along with a trap on 0 below, ensure that the # temporary directory, $test_dir_, is removed upon exit as well as # upon receipt of any of the listed signals. for sig_ in 1 2 3 13 15; do eval "trap 'Exit $(expr $sig_ + 128)' $sig_" done } # Create a temporary directory, much like mktemp -d does. # Written by Jim Meyering. # # Usage: mktempd_ /tmp phoey.XXXXXXXXXX # # First, try to use the mktemp program. # Failing that, we'll roll our own mktemp-like function: # - try to get random bytes from /dev/urandom # - failing that, generate output from a combination of quickly-varying # sources and gzip. Ignore non-varying gzip header, and extract # "random" bits from there. # - given those bits, map to file-name bytes using tr, and try to create # the desired directory. # - make only $MAX_TRIES_ attempts # Helper function. Print $N pseudo-random bytes from a-zA-Z0-9. rand_bytes_ () { n_=$1 # Maybe try openssl rand -base64 $n_prime_|tr '+/=\012' abcd first? # But if they have openssl, they probably have mktemp, too. chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 dev_rand_=/dev/urandom if test -r "$dev_rand_"; then # Note: 256-length($chars_) == 194; 3 copies of $chars_ is 186 + 8 = 194. dd ibs=$n_ count=1 if=$dev_rand_ 2>/dev/null \ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_ return fi n_plus_50_=`expr $n_ + 50` cmds_='date; date +%N; free; who -a; w; ps auxww; ps ef; netstat -n' data_=` (eval "$cmds_") 2>&1 | gzip ` # Ensure that $data_ has length at least 50+$n_ while :; do len_=`echo "$data_"|wc -c` test $n_plus_50_ -le $len_ && break; data_=` (echo "$data_"; eval "$cmds_") 2>&1 | gzip ` done echo "$data_" \ | dd bs=1 skip=50 count=$n_ 2>/dev/null \ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_ } mktempd_ () { case $# in 2);; *) fail_ "Usage: mktempd_ DIR TEMPLATE";; esac destdir_=$1 template_=$2 MAX_TRIES_=4 # Disallow any trailing slash on specified destdir: # it would subvert the post-mktemp "case"-based destdir test. case $destdir_ in /) ;; */) fail_ "invalid destination dir: remove trailing slash(es)";; esac case $template_ in *XXXX) ;; *) fail_ \ "invalid template: $template_ (must have a suffix of at least 4 X's)";; esac # First, try to use mktemp. d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \ || fail=1 # The resulting name must be in the specified directory. case $d in "$destdir_"*);; *) fail=1;; esac # It must have created the directory. test -d "$d" || fail=1 # It must have 0700 permissions. Handle sticky "S" bits. perms=`ls -dgo "$d" 2>/dev/null|tr S -` || fail=1 case $perms in drwx------*) ;; *) fail=1;; esac test $fail = 0 && { echo "$d" return } # If we reach this point, we'll have to create a directory manually. # Get a copy of the template without its suffix of X's. base_template_=`echo "$template_"|sed 's/XX*$//'` # Calculate how many X's we've just removed. template_length_=`echo "$template_" | wc -c` nx_=`echo "$base_template_" | wc -c` nx_=`expr $template_length_ - $nx_` err_= i_=1 while :; do X_=`rand_bytes_ $nx_` candidate_dir_="$destdir_/$base_template_$X_" err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \ && { echo "$candidate_dir_"; return; } test $MAX_TRIES_ -le $i_ && break; i_=`expr $i_ + 1` done fail_ "$err_" } # If you want to override the testdir_prefix_ function, # or to add more utility functions, use this file. test -f "$srcdir/init.cfg" \ && . "$srcdir/init.cfg" setup_ "$@" # This trap is here, rather than in the setup_ function, because some # shells run the exit trap at shell function exit, rather than script exit. trap remove_tmp_ 0 libidn-1.28/gltests/test-symlink.h0000644000000000000000000000607012153706067014107 00000000000000/* Tests of symlink. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ /* This file is designed to test both symlink(a,b) and symlinkat(a,AT_FDCWD,b). FUNC is the function to test. Assumes that BASE and ASSERT are already defined, and that appropriate headers are already included. If PRINT, warn before skipping symlink tests with status 77. */ static int test_symlink (int (*func) (char const *, char const *), bool print) { if (func ("nowhere", BASE "link1")) { if (print) fputs ("skipping test: symlinks not supported on this file system\n", stderr); return 77; } /* Some systems allow the creation of 0-length symlinks as a synonym for "."; but most reject it. */ { int status; errno = 0; status = func ("", BASE "link2"); if (status == -1) ASSERT (errno == ENOENT || errno == EINVAL); else { ASSERT (status == 0); ASSERT (unlink (BASE "link2") == 0); } } /* Sanity checks of failures. */ errno = 0; ASSERT (func ("nowhere", "") == -1); ASSERT (errno == ENOENT); errno = 0; ASSERT (func ("nowhere", ".") == -1); ASSERT (errno == EEXIST || errno == EINVAL); errno = 0; ASSERT (func ("somewhere", BASE "link1") == -1); ASSERT (errno == EEXIST); errno = 0; ASSERT (func ("nowhere", BASE "link2/") == -1); ASSERT (errno == ENOTDIR || errno == ENOENT); ASSERT (mkdir (BASE "dir", 0700) == 0); errno = 0; ASSERT (func ("nowhere", BASE "dir") == -1); ASSERT (errno == EEXIST); errno = 0; ASSERT (func ("nowhere", BASE "dir/") == -1); ASSERT (errno == EEXIST || errno == EINVAL); ASSERT (close (creat (BASE "file", 0600)) == 0); errno = 0; ASSERT (func ("nowhere", BASE "file") == -1); ASSERT (errno == EEXIST); errno = 0; ASSERT (func ("nowhere", BASE "file/") == -1); ASSERT (errno == EEXIST || errno == ENOTDIR || errno == ENOENT); /* Trailing slash must always be rejected. */ ASSERT (unlink (BASE "link1") == 0); ASSERT (func (BASE "link2", BASE "link1") == 0); errno = 0; ASSERT (func (BASE "nowhere", BASE "link1/") == -1); ASSERT (errno == EEXIST || errno == ENOTDIR || errno == ENOENT); errno = 0; ASSERT (unlink (BASE "link2") == -1); ASSERT (errno == ENOENT); /* Cleanup. */ ASSERT (rmdir (BASE "dir") == 0); ASSERT (unlink (BASE "file") == 0); ASSERT (unlink (BASE "link1") == 0); return 0; } libidn-1.28/gltests/open.c0000644000000000000000000001375512153706066012407 00000000000000/* Open a descriptor to a file. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ /* If the user's config.h happens to include , let it include only the system's here, so that orig_open doesn't recurse to rpl_open. */ #define __need_system_fcntl_h #include /* Get the original definition of open. It might be defined as a macro. */ #include #include #undef __need_system_fcntl_h static int orig_open (const char *filename, int flags, mode_t mode) { return open (filename, flags, mode); } /* Specification. */ /* Write "fcntl.h" here, not , otherwise OSF/1 5.1 DTK cc eliminates this include because of the preliminary #include above. */ #include "fcntl.h" #include #include #include #include #include #include #ifndef REPLACE_OPEN_DIRECTORY # define REPLACE_OPEN_DIRECTORY 0 #endif int open (const char *filename, int flags, ...) { mode_t mode; int fd; mode = 0; if (flags & O_CREAT) { va_list arg; va_start (arg, flags); /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 creates crashing code when 'mode_t' is smaller than 'int'. */ mode = va_arg (arg, PROMOTED_MODE_T); va_end (arg); } #if GNULIB_defined_O_NONBLOCK /* The only known platform that lacks O_NONBLOCK is mingw, but it also lacks named pipes and Unix sockets, which are the only two file types that require non-blocking handling in open(). Therefore, it is safe to ignore O_NONBLOCK here. It is handy that mingw also lacks openat(), so that is also covered here. */ flags &= ~O_NONBLOCK; #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and one of O_CREAT, O_WRONLY, O_RDWR is specified, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file already exists as a directory, then - if O_CREAT is specified, open() must fail because of the semantics of O_CREAT, - if O_WRONLY or O_RDWR is specified, open() must fail because POSIX says that it fails with errno = EISDIR in this case. If the named file does not exist or does not name a directory, then - if O_CREAT is specified, open() must fail since open() cannot create directories, - if O_WRONLY or O_RDWR is specified, open() must fail because the file does not contain a '.' directory. */ if (flags & (O_CREAT | O_WRONLY | O_RDWR)) { size_t len = strlen (filename); if (len > 0 && filename[len - 1] == '/') { errno = EISDIR; return -1; } } #endif fd = orig_open (filename, flags, mode); #if REPLACE_FCHDIR /* Implementing fchdir and fdopendir requires the ability to open a directory file descriptor. If open doesn't support that (as on mingw), we use a dummy file that behaves the same as directories on Linux (ie. always reports EOF on attempts to read()), and override fstat() in fchdir.c to hide the fact that we have a dummy. */ if (REPLACE_OPEN_DIRECTORY && fd < 0 && errno == EACCES && ((flags & O_ACCMODE) == O_RDONLY || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH))) { struct stat statbuf; if (stat (filename, &statbuf) == 0 && S_ISDIR (statbuf.st_mode)) { /* Maximum recursion depth of 1. */ fd = open ("/dev/null", flags, mode); if (0 <= fd) fd = _gl_register_fd (fd, filename); } else errno = EACCES; } #endif #if OPEN_TRAILING_SLASH_BUG /* If the filename ends in a slash and fd does not refer to a directory, then fail. Rationale: POSIX says that "A pathname that contains at least one non-slash character and that ends with one or more trailing slashes shall be resolved as if a single dot character ( '.' ) were appended to the pathname." and "The special filename dot shall refer to the directory specified by its predecessor." If the named file without the slash is not a directory, open() must fail with ENOTDIR. */ if (fd >= 0) { /* We know len is positive, since open did not fail with ENOENT. */ size_t len = strlen (filename); if (filename[len - 1] == '/') { struct stat statbuf; if (fstat (fd, &statbuf) >= 0 && !S_ISDIR (statbuf.st_mode)) { close (fd); errno = ENOTDIR; return -1; } } } #endif #if REPLACE_FCHDIR if (!REPLACE_OPEN_DIRECTORY && 0 <= fd) fd = _gl_register_fd (fd, filename); #endif return fd; } libidn-1.28/gltests/Makefile.in0000644000000000000000000040775012167244661013354 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ TESTS = test-alloca-opt$(EXEEXT) test-binary-io.sh test-close$(EXEEXT) \ test-dup2$(EXEEXT) test-environ$(EXEEXT) test-errno$(EXEEXT) \ test-fdopen$(EXEEXT) test-fgetc$(EXEEXT) test-fputc$(EXEEXT) \ test-fread$(EXEEXT) test-fstat$(EXEEXT) test-fwrite$(EXEEXT) \ test-getcwd-lgpl$(EXEEXT) test-getdtablesize$(EXEEXT) \ test-getopt$(EXEEXT) test-ignore-value$(EXEEXT) \ test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \ test-lstat$(EXEEXT) test-malloca$(EXEEXT) test-open$(EXEEXT) \ test-pathmax$(EXEEXT) test-setenv$(EXEEXT) test-stat$(EXEEXT) \ test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \ test-stdint$(EXEEXT) test-stdio$(EXEEXT) \ test-strerror$(EXEEXT) test-symlink$(EXEEXT) \ test-sys_types$(EXEEXT) test-init.sh test-unsetenv$(EXEEXT) \ test-vc-list-files-git.sh test-vc-list-files-cvs.sh \ test-verify$(EXEEXT) test-verify.sh test-version-etc.sh XFAIL_TESTS = noinst_PROGRAMS = check_PROGRAMS = test-alloca-opt$(EXEEXT) test-binary-io$(EXEEXT) \ test-close$(EXEEXT) test-dup2$(EXEEXT) test-environ$(EXEEXT) \ test-errno$(EXEEXT) test-fdopen$(EXEEXT) test-fgetc$(EXEEXT) \ test-fputc$(EXEEXT) test-fread$(EXEEXT) test-fstat$(EXEEXT) \ test-fwrite$(EXEEXT) test-getcwd-lgpl$(EXEEXT) \ test-getdtablesize$(EXEEXT) test-getopt$(EXEEXT) \ test-ignore-value$(EXEEXT) test-intprops$(EXEEXT) \ test-inttypes$(EXEEXT) test-lstat$(EXEEXT) \ test-malloca$(EXEEXT) test-open$(EXEEXT) test-pathmax$(EXEEXT) \ test-setenv$(EXEEXT) test-stat$(EXEEXT) test-stdbool$(EXEEXT) \ test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdio$(EXEEXT) \ test-strerror$(EXEEXT) test-symlink$(EXEEXT) \ test-sys_types$(EXEEXT) test-unsetenv$(EXEEXT) \ test-verify$(EXEEXT) test-version-etc$(EXEEXT) subdir = gltests DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) \ $(top_srcdir)/build-aux/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libtests_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am_libtests_a_OBJECTS = binary-io.$(OBJEXT) fd-hook.$(OBJEXT) \ malloca.$(OBJEXT) version-etc-fsf.$(OBJEXT) libtests_a_OBJECTS = $(am_libtests_a_OBJECTS) PROGRAMS = $(noinst_PROGRAMS) test_alloca_opt_SOURCES = test-alloca-opt.c test_alloca_opt_OBJECTS = test-alloca-opt.$(OBJEXT) test_alloca_opt_LDADD = $(LDADD) test_alloca_opt_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = test_binary_io_SOURCES = test-binary-io.c test_binary_io_OBJECTS = test-binary-io.$(OBJEXT) test_binary_io_LDADD = $(LDADD) test_binary_io_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_close_SOURCES = test-close.c test_close_OBJECTS = test-close.$(OBJEXT) test_close_LDADD = $(LDADD) test_close_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_dup2_SOURCES = test-dup2.c test_dup2_OBJECTS = test-dup2.$(OBJEXT) test_dup2_LDADD = $(LDADD) test_dup2_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_environ_SOURCES = test-environ.c test_environ_OBJECTS = test-environ.$(OBJEXT) test_environ_LDADD = $(LDADD) test_environ_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_errno_SOURCES = test-errno.c test_errno_OBJECTS = test-errno.$(OBJEXT) test_errno_LDADD = $(LDADD) test_errno_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_fdopen_SOURCES = test-fdopen.c test_fdopen_OBJECTS = test-fdopen.$(OBJEXT) test_fdopen_LDADD = $(LDADD) test_fdopen_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_fgetc_SOURCES = test-fgetc.c test_fgetc_OBJECTS = test-fgetc.$(OBJEXT) test_fgetc_LDADD = $(LDADD) test_fgetc_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_fputc_SOURCES = test-fputc.c test_fputc_OBJECTS = test-fputc.$(OBJEXT) test_fputc_LDADD = $(LDADD) test_fputc_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_fread_SOURCES = test-fread.c test_fread_OBJECTS = test-fread.$(OBJEXT) test_fread_LDADD = $(LDADD) test_fread_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_fstat_SOURCES = test-fstat.c test_fstat_OBJECTS = test-fstat.$(OBJEXT) test_fstat_LDADD = $(LDADD) test_fstat_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_fwrite_SOURCES = test-fwrite.c test_fwrite_OBJECTS = test-fwrite.$(OBJEXT) test_fwrite_LDADD = $(LDADD) test_fwrite_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_getcwd_lgpl_SOURCES = test-getcwd-lgpl.c test_getcwd_lgpl_OBJECTS = test-getcwd-lgpl.$(OBJEXT) am__DEPENDENCIES_2 = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_getcwd_lgpl_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_getdtablesize_SOURCES = test-getdtablesize.c test_getdtablesize_OBJECTS = test-getdtablesize.$(OBJEXT) test_getdtablesize_LDADD = $(LDADD) test_getdtablesize_DEPENDENCIES = libtests.a ../gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_getopt_SOURCES = test-getopt.c test_getopt_OBJECTS = test-getopt.$(OBJEXT) test_getopt_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) test_ignore_value_SOURCES = test-ignore-value.c test_ignore_value_OBJECTS = test-ignore-value.$(OBJEXT) test_ignore_value_LDADD = $(LDADD) test_ignore_value_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_intprops_SOURCES = test-intprops.c test_intprops_OBJECTS = test-intprops.$(OBJEXT) test_intprops_LDADD = $(LDADD) test_intprops_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_inttypes_SOURCES = test-inttypes.c test_inttypes_OBJECTS = test-inttypes.$(OBJEXT) test_inttypes_LDADD = $(LDADD) test_inttypes_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_lstat_SOURCES = test-lstat.c test_lstat_OBJECTS = test-lstat.$(OBJEXT) test_lstat_LDADD = $(LDADD) test_lstat_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_malloca_SOURCES = test-malloca.c test_malloca_OBJECTS = test-malloca.$(OBJEXT) test_malloca_LDADD = $(LDADD) test_malloca_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_open_SOURCES = test-open.c test_open_OBJECTS = test-open.$(OBJEXT) test_open_LDADD = $(LDADD) test_open_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_pathmax_SOURCES = test-pathmax.c test_pathmax_OBJECTS = test-pathmax.$(OBJEXT) test_pathmax_LDADD = $(LDADD) test_pathmax_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_setenv_SOURCES = test-setenv.c test_setenv_OBJECTS = test-setenv.$(OBJEXT) test_setenv_LDADD = $(LDADD) test_setenv_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_stat_SOURCES = test-stat.c test_stat_OBJECTS = test-stat.$(OBJEXT) test_stat_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) test_stdbool_SOURCES = test-stdbool.c test_stdbool_OBJECTS = test-stdbool.$(OBJEXT) test_stdbool_LDADD = $(LDADD) test_stdbool_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_stddef_SOURCES = test-stddef.c test_stddef_OBJECTS = test-stddef.$(OBJEXT) test_stddef_LDADD = $(LDADD) test_stddef_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_stdint_SOURCES = test-stdint.c test_stdint_OBJECTS = test-stdint.$(OBJEXT) test_stdint_LDADD = $(LDADD) test_stdint_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_stdio_SOURCES = test-stdio.c test_stdio_OBJECTS = test-stdio.$(OBJEXT) test_stdio_LDADD = $(LDADD) test_stdio_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_strerror_SOURCES = test-strerror.c test_strerror_OBJECTS = test-strerror.$(OBJEXT) test_strerror_LDADD = $(LDADD) test_strerror_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_symlink_SOURCES = test-symlink.c test_symlink_OBJECTS = test-symlink.$(OBJEXT) test_symlink_LDADD = $(LDADD) test_symlink_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_sys_types_SOURCES = test-sys_types.c test_sys_types_OBJECTS = test-sys_types.$(OBJEXT) test_sys_types_LDADD = $(LDADD) test_sys_types_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_unsetenv_SOURCES = test-unsetenv.c test_unsetenv_OBJECTS = test-unsetenv.$(OBJEXT) test_unsetenv_LDADD = $(LDADD) test_unsetenv_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_verify_SOURCES = test-verify.c test_verify_OBJECTS = test-verify.$(OBJEXT) test_verify_LDADD = $(LDADD) test_verify_DEPENDENCIES = libtests.a ../gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_version_etc_SOURCES = test-version-etc.c test_version_etc_OBJECTS = test-version-etc.$(OBJEXT) test_version_etc_DEPENDENCIES = $(am__DEPENDENCIES_2) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \ test-alloca-opt.c test-binary-io.c test-close.c test-dup2.c \ test-environ.c test-errno.c test-fdopen.c test-fgetc.c \ test-fputc.c test-fread.c test-fstat.c test-fwrite.c \ test-getcwd-lgpl.c test-getdtablesize.c test-getopt.c \ test-ignore-value.c test-intprops.c test-inttypes.c \ test-lstat.c test-malloca.c test-open.c test-pathmax.c \ test-setenv.c test-stat.c test-stdbool.c test-stddef.c \ test-stdint.c test-stdio.c test-strerror.c test-symlink.c \ test-sys_types.c test-unsetenv.c test-verify.c \ test-version-etc.c DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \ test-alloca-opt.c test-binary-io.c test-close.c test-dup2.c \ test-environ.c test-errno.c test-fdopen.c test-fgetc.c \ test-fputc.c test-fread.c test-fstat.c test-fwrite.c \ test-getcwd-lgpl.c test-getdtablesize.c test-getopt.c \ test-ignore-value.c test-intprops.c test-inttypes.c \ test-lstat.c test-malloca.c test-open.c test-pathmax.c \ test-setenv.c test-stat.c test-stdbool.c test-stddef.c \ test-stdint.c test-stdio.c test-strerror.c test-symlink.c \ test-sys_types.c test-unsetenv.c test-verify.c \ test-version-etc.c RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ check recheck distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.9.6 foreign SUBDIRS = . TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \ abs_aux_dir='$(abs_aux_dir)' MAKE='$(MAKE)' noinst_HEADERS = noinst_LIBRARIES = check_LIBRARIES = libtests.a EXTRA_DIST = alloca.in.h test-alloca-opt.c test-binary-io.sh \ test-binary-io.c macros.h close.c test-close.c signature.h \ macros.h dosname.h dup2.c test-dup2.c signature.h macros.h \ test-environ.c test-errno.c fcntl.in.h fd-hook.h fdopen.c \ test-fdopen.c signature.h macros.h test-fgetc.c signature.h \ macros.h test-fputc.c signature.h macros.h test-fread.c \ signature.h macros.h fstat.c test-fstat.c signature.h macros.h \ test-fwrite.c signature.h macros.h getcwd-lgpl.c \ test-getcwd-lgpl.c signature.h macros.h getdtablesize.c \ test-getdtablesize.c signature.h macros.h macros.h signature.h \ test-getopt.c test-getopt.h test-getopt_long.h ignore-value.h \ test-ignore-value.c test-intprops.c macros.h inttypes.in.h \ test-inttypes.c lstat.c test-lstat.h test-lstat.c signature.h \ macros.h malloc.c malloca.h malloca.valgrind test-malloca.c \ open.c test-open.h test-open.c signature.h macros.h pathmax.h \ test-pathmax.c putenv.c same-inode.h setenv.c test-setenv.c \ signature.h macros.h \ $(top_srcdir)/build-aux/snippet/_Noreturn.h \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ $(top_srcdir)/build-aux/snippet/warn-on-use.h stat.c \ test-stat.h test-stat.c signature.h macros.h stdbool.in.h \ test-stdbool.c test-stddef.c stdint.in.h test-stdint.c \ stdio.in.h test-stdio.c stdlib.in.h test-strerror.c \ signature.h macros.h symlink.c test-symlink.h test-symlink.c \ signature.h macros.h sys_stat.in.h test-sys_types.c init.sh \ test-init.sh time.in.h unsetenv.c test-unsetenv.c signature.h \ macros.h test-vc-list-files-git.sh test-vc-list-files-cvs.sh \ test-verify.c test-verify.sh test-version-etc.c \ test-version-etc.sh wchar.in.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES = $(ALLOCA_H) fcntl.h inttypes.h arg-nonnull.h c++defs.h \ warn-on-use.h $(STDBOOL_H) $(STDINT_H) stdio.h stdlib.h \ sys/stat.h time.h wchar.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t fcntl.h \ fcntl.h-t inttypes.h inttypes.h-t arg-nonnull.h \ arg-nonnull.h-t c++defs.h c++defs.h-t warn-on-use.h \ warn-on-use.h-t stdbool.h stdbool.h-t stdint.h stdint.h-t \ stdio.h stdio.h-t stdlib.h stdlib.h-t sys/stat.h sys/stat.h-t \ time.h time.h-t wchar.h wchar.h-t MOSTLYCLEANDIRS = sys CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = \ -D@gltests_WITNESS@=1 \ -I. -I$(srcdir) \ -I.. -I$(srcdir)/.. \ -I../gl -I$(srcdir)/../gl LDADD = libtests.a ../gl/libgnu.la libtests.a $(LIBTESTS_LIBDEPS) libtests_a_SOURCES = binary-io.h binary-io.c fd-hook.c malloca.c \ version-etc-fsf.c libtests_a_LIBADD = $(gltests_LIBOBJS) libtests_a_DEPENDENCIES = $(gltests_LIBOBJS) EXTRA_libtests_a_SOURCES = close.c dup2.c fdopen.c fstat.c \ getcwd-lgpl.c getdtablesize.c lstat.c malloc.c open.c putenv.c \ setenv.c stat.c symlink.c unsetenv.c AM_LIBTOOLFLAGS = --preserve-dup-deps test_getcwd_lgpl_LDADD = $(LDADD) $(LIBINTL) test_getopt_LDADD = $(LDADD) $(LIBINTL) # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h ARG_NONNULL_H = arg-nonnull.h CXXDEFS_H = c++defs.h WARN_ON_USE_H = warn-on-use.h test_stat_LDADD = $(LDADD) $(LIBINTL) test_version_etc_LDADD = $(LDADD) @LIBINTL@ all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign gltests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign gltests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkLIBRARIES: -test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES) clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) $(AM_V_at)-rm -f libtests.a $(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD) $(AM_V_at)$(RANLIB) libtests.a clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test-alloca-opt$(EXEEXT): $(test_alloca_opt_OBJECTS) $(test_alloca_opt_DEPENDENCIES) $(EXTRA_test_alloca_opt_DEPENDENCIES) @rm -f test-alloca-opt$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_alloca_opt_OBJECTS) $(test_alloca_opt_LDADD) $(LIBS) test-binary-io$(EXEEXT): $(test_binary_io_OBJECTS) $(test_binary_io_DEPENDENCIES) $(EXTRA_test_binary_io_DEPENDENCIES) @rm -f test-binary-io$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_binary_io_OBJECTS) $(test_binary_io_LDADD) $(LIBS) test-close$(EXEEXT): $(test_close_OBJECTS) $(test_close_DEPENDENCIES) $(EXTRA_test_close_DEPENDENCIES) @rm -f test-close$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_close_OBJECTS) $(test_close_LDADD) $(LIBS) test-dup2$(EXEEXT): $(test_dup2_OBJECTS) $(test_dup2_DEPENDENCIES) $(EXTRA_test_dup2_DEPENDENCIES) @rm -f test-dup2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_dup2_OBJECTS) $(test_dup2_LDADD) $(LIBS) test-environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) $(EXTRA_test_environ_DEPENDENCIES) @rm -f test-environ$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS) test-errno$(EXEEXT): $(test_errno_OBJECTS) $(test_errno_DEPENDENCIES) $(EXTRA_test_errno_DEPENDENCIES) @rm -f test-errno$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_errno_OBJECTS) $(test_errno_LDADD) $(LIBS) test-fdopen$(EXEEXT): $(test_fdopen_OBJECTS) $(test_fdopen_DEPENDENCIES) $(EXTRA_test_fdopen_DEPENDENCIES) @rm -f test-fdopen$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fdopen_OBJECTS) $(test_fdopen_LDADD) $(LIBS) test-fgetc$(EXEEXT): $(test_fgetc_OBJECTS) $(test_fgetc_DEPENDENCIES) $(EXTRA_test_fgetc_DEPENDENCIES) @rm -f test-fgetc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fgetc_OBJECTS) $(test_fgetc_LDADD) $(LIBS) test-fputc$(EXEEXT): $(test_fputc_OBJECTS) $(test_fputc_DEPENDENCIES) $(EXTRA_test_fputc_DEPENDENCIES) @rm -f test-fputc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fputc_OBJECTS) $(test_fputc_LDADD) $(LIBS) test-fread$(EXEEXT): $(test_fread_OBJECTS) $(test_fread_DEPENDENCIES) $(EXTRA_test_fread_DEPENDENCIES) @rm -f test-fread$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fread_OBJECTS) $(test_fread_LDADD) $(LIBS) test-fstat$(EXEEXT): $(test_fstat_OBJECTS) $(test_fstat_DEPENDENCIES) $(EXTRA_test_fstat_DEPENDENCIES) @rm -f test-fstat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fstat_OBJECTS) $(test_fstat_LDADD) $(LIBS) test-fwrite$(EXEEXT): $(test_fwrite_OBJECTS) $(test_fwrite_DEPENDENCIES) $(EXTRA_test_fwrite_DEPENDENCIES) @rm -f test-fwrite$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_fwrite_OBJECTS) $(test_fwrite_LDADD) $(LIBS) test-getcwd-lgpl$(EXEEXT): $(test_getcwd_lgpl_OBJECTS) $(test_getcwd_lgpl_DEPENDENCIES) $(EXTRA_test_getcwd_lgpl_DEPENDENCIES) @rm -f test-getcwd-lgpl$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getcwd_lgpl_OBJECTS) $(test_getcwd_lgpl_LDADD) $(LIBS) test-getdtablesize$(EXEEXT): $(test_getdtablesize_OBJECTS) $(test_getdtablesize_DEPENDENCIES) $(EXTRA_test_getdtablesize_DEPENDENCIES) @rm -f test-getdtablesize$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getdtablesize_OBJECTS) $(test_getdtablesize_LDADD) $(LIBS) test-getopt$(EXEEXT): $(test_getopt_OBJECTS) $(test_getopt_DEPENDENCIES) $(EXTRA_test_getopt_DEPENDENCIES) @rm -f test-getopt$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_getopt_OBJECTS) $(test_getopt_LDADD) $(LIBS) test-ignore-value$(EXEEXT): $(test_ignore_value_OBJECTS) $(test_ignore_value_DEPENDENCIES) $(EXTRA_test_ignore_value_DEPENDENCIES) @rm -f test-ignore-value$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_ignore_value_OBJECTS) $(test_ignore_value_LDADD) $(LIBS) test-intprops$(EXEEXT): $(test_intprops_OBJECTS) $(test_intprops_DEPENDENCIES) $(EXTRA_test_intprops_DEPENDENCIES) @rm -f test-intprops$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_intprops_OBJECTS) $(test_intprops_LDADD) $(LIBS) test-inttypes$(EXEEXT): $(test_inttypes_OBJECTS) $(test_inttypes_DEPENDENCIES) $(EXTRA_test_inttypes_DEPENDENCIES) @rm -f test-inttypes$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_inttypes_OBJECTS) $(test_inttypes_LDADD) $(LIBS) test-lstat$(EXEEXT): $(test_lstat_OBJECTS) $(test_lstat_DEPENDENCIES) $(EXTRA_test_lstat_DEPENDENCIES) @rm -f test-lstat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_lstat_OBJECTS) $(test_lstat_LDADD) $(LIBS) test-malloca$(EXEEXT): $(test_malloca_OBJECTS) $(test_malloca_DEPENDENCIES) $(EXTRA_test_malloca_DEPENDENCIES) @rm -f test-malloca$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_malloca_OBJECTS) $(test_malloca_LDADD) $(LIBS) test-open$(EXEEXT): $(test_open_OBJECTS) $(test_open_DEPENDENCIES) $(EXTRA_test_open_DEPENDENCIES) @rm -f test-open$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_open_OBJECTS) $(test_open_LDADD) $(LIBS) test-pathmax$(EXEEXT): $(test_pathmax_OBJECTS) $(test_pathmax_DEPENDENCIES) $(EXTRA_test_pathmax_DEPENDENCIES) @rm -f test-pathmax$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_pathmax_OBJECTS) $(test_pathmax_LDADD) $(LIBS) test-setenv$(EXEEXT): $(test_setenv_OBJECTS) $(test_setenv_DEPENDENCIES) $(EXTRA_test_setenv_DEPENDENCIES) @rm -f test-setenv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setenv_OBJECTS) $(test_setenv_LDADD) $(LIBS) test-stat$(EXEEXT): $(test_stat_OBJECTS) $(test_stat_DEPENDENCIES) $(EXTRA_test_stat_DEPENDENCIES) @rm -f test-stat$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stat_OBJECTS) $(test_stat_LDADD) $(LIBS) test-stdbool$(EXEEXT): $(test_stdbool_OBJECTS) $(test_stdbool_DEPENDENCIES) $(EXTRA_test_stdbool_DEPENDENCIES) @rm -f test-stdbool$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdbool_OBJECTS) $(test_stdbool_LDADD) $(LIBS) test-stddef$(EXEEXT): $(test_stddef_OBJECTS) $(test_stddef_DEPENDENCIES) $(EXTRA_test_stddef_DEPENDENCIES) @rm -f test-stddef$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stddef_OBJECTS) $(test_stddef_LDADD) $(LIBS) test-stdint$(EXEEXT): $(test_stdint_OBJECTS) $(test_stdint_DEPENDENCIES) $(EXTRA_test_stdint_DEPENDENCIES) @rm -f test-stdint$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdint_OBJECTS) $(test_stdint_LDADD) $(LIBS) test-stdio$(EXEEXT): $(test_stdio_OBJECTS) $(test_stdio_DEPENDENCIES) $(EXTRA_test_stdio_DEPENDENCIES) @rm -f test-stdio$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdio_OBJECTS) $(test_stdio_LDADD) $(LIBS) test-strerror$(EXEEXT): $(test_strerror_OBJECTS) $(test_strerror_DEPENDENCIES) $(EXTRA_test_strerror_DEPENDENCIES) @rm -f test-strerror$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_strerror_OBJECTS) $(test_strerror_LDADD) $(LIBS) test-symlink$(EXEEXT): $(test_symlink_OBJECTS) $(test_symlink_DEPENDENCIES) $(EXTRA_test_symlink_DEPENDENCIES) @rm -f test-symlink$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_symlink_OBJECTS) $(test_symlink_LDADD) $(LIBS) test-sys_types$(EXEEXT): $(test_sys_types_OBJECTS) $(test_sys_types_DEPENDENCIES) $(EXTRA_test_sys_types_DEPENDENCIES) @rm -f test-sys_types$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_types_OBJECTS) $(test_sys_types_LDADD) $(LIBS) test-unsetenv$(EXEEXT): $(test_unsetenv_OBJECTS) $(test_unsetenv_DEPENDENCIES) $(EXTRA_test_unsetenv_DEPENDENCIES) @rm -f test-unsetenv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_unsetenv_OBJECTS) $(test_unsetenv_LDADD) $(LIBS) test-verify$(EXEEXT): $(test_verify_OBJECTS) $(test_verify_DEPENDENCIES) $(EXTRA_test_verify_DEPENDENCIES) @rm -f test-verify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_verify_OBJECTS) $(test_verify_LDADD) $(LIBS) test-version-etc$(EXEEXT): $(test_version_etc_OBJECTS) $(test_version_etc_DEPENDENCIES) $(EXTRA_test_version_etc_DEPENDENCIES) @rm -f test-version-etc$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_version_etc_OBJECTS) $(test_version_etc_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/binary-io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/close.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dup2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fdopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getdtablesize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alloca-opt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-binary-io.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-close.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-dup2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-environ.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-errno.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fdopen.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fgetc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fputc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-fwrite.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getcwd-lgpl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getdtablesize.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-getopt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-ignore-value.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-intprops.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttypes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lstat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-pathmax.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stat.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdbool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stddef.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdint.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdio.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strerror.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-symlink.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_types.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unsetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-version-etc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc-fsf.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_LIBRARIES) $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? test-alloca-opt.log: test-alloca-opt$(EXEEXT) @p='test-alloca-opt$(EXEEXT)'; \ b='test-alloca-opt'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-binary-io.sh.log: test-binary-io.sh @p='test-binary-io.sh'; \ b='test-binary-io.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-close.log: test-close$(EXEEXT) @p='test-close$(EXEEXT)'; \ b='test-close'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-dup2.log: test-dup2$(EXEEXT) @p='test-dup2$(EXEEXT)'; \ b='test-dup2'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-environ.log: test-environ$(EXEEXT) @p='test-environ$(EXEEXT)'; \ b='test-environ'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-errno.log: test-errno$(EXEEXT) @p='test-errno$(EXEEXT)'; \ b='test-errno'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fdopen.log: test-fdopen$(EXEEXT) @p='test-fdopen$(EXEEXT)'; \ b='test-fdopen'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fgetc.log: test-fgetc$(EXEEXT) @p='test-fgetc$(EXEEXT)'; \ b='test-fgetc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fputc.log: test-fputc$(EXEEXT) @p='test-fputc$(EXEEXT)'; \ b='test-fputc'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fread.log: test-fread$(EXEEXT) @p='test-fread$(EXEEXT)'; \ b='test-fread'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fstat.log: test-fstat$(EXEEXT) @p='test-fstat$(EXEEXT)'; \ b='test-fstat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-fwrite.log: test-fwrite$(EXEEXT) @p='test-fwrite$(EXEEXT)'; \ b='test-fwrite'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getcwd-lgpl.log: test-getcwd-lgpl$(EXEEXT) @p='test-getcwd-lgpl$(EXEEXT)'; \ b='test-getcwd-lgpl'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getdtablesize.log: test-getdtablesize$(EXEEXT) @p='test-getdtablesize$(EXEEXT)'; \ b='test-getdtablesize'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-getopt.log: test-getopt$(EXEEXT) @p='test-getopt$(EXEEXT)'; \ b='test-getopt'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-ignore-value.log: test-ignore-value$(EXEEXT) @p='test-ignore-value$(EXEEXT)'; \ b='test-ignore-value'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-intprops.log: test-intprops$(EXEEXT) @p='test-intprops$(EXEEXT)'; \ b='test-intprops'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-inttypes.log: test-inttypes$(EXEEXT) @p='test-inttypes$(EXEEXT)'; \ b='test-inttypes'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-lstat.log: test-lstat$(EXEEXT) @p='test-lstat$(EXEEXT)'; \ b='test-lstat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-malloca.log: test-malloca$(EXEEXT) @p='test-malloca$(EXEEXT)'; \ b='test-malloca'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-open.log: test-open$(EXEEXT) @p='test-open$(EXEEXT)'; \ b='test-open'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-pathmax.log: test-pathmax$(EXEEXT) @p='test-pathmax$(EXEEXT)'; \ b='test-pathmax'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setenv.log: test-setenv$(EXEEXT) @p='test-setenv$(EXEEXT)'; \ b='test-setenv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stat.log: test-stat$(EXEEXT) @p='test-stat$(EXEEXT)'; \ b='test-stat'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdbool.log: test-stdbool$(EXEEXT) @p='test-stdbool$(EXEEXT)'; \ b='test-stdbool'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stddef.log: test-stddef$(EXEEXT) @p='test-stddef$(EXEEXT)'; \ b='test-stddef'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdint.log: test-stdint$(EXEEXT) @p='test-stdint$(EXEEXT)'; \ b='test-stdint'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdio.log: test-stdio$(EXEEXT) @p='test-stdio$(EXEEXT)'; \ b='test-stdio'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-strerror.log: test-strerror$(EXEEXT) @p='test-strerror$(EXEEXT)'; \ b='test-strerror'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-symlink.log: test-symlink$(EXEEXT) @p='test-symlink$(EXEEXT)'; \ b='test-symlink'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_types.log: test-sys_types$(EXEEXT) @p='test-sys_types$(EXEEXT)'; \ b='test-sys_types'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-init.sh.log: test-init.sh @p='test-init.sh'; \ b='test-init.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-unsetenv.log: test-unsetenv$(EXEEXT) @p='test-unsetenv$(EXEEXT)'; \ b='test-unsetenv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-vc-list-files-git.sh.log: test-vc-list-files-git.sh @p='test-vc-list-files-git.sh'; \ b='test-vc-list-files-git.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-vc-list-files-cvs.sh.log: test-vc-list-files-cvs.sh @p='test-vc-list-files-cvs.sh'; \ b='test-vc-list-files-cvs.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-verify.log: test-verify$(EXEEXT) @p='test-verify$(EXEEXT)'; \ b='test-verify'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-verify.sh.log: test-verify.sh @p='test-verify.sh'; \ b='test-verify.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-version-etc.sh.log: test-version-etc.sh @p='test-version-etc.sh'; \ b='test-version-etc.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \ clean-libtool clean-local clean-noinstLIBRARIES \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check check-am install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-TESTS check-am clean clean-checkLIBRARIES \ clean-checkPROGRAMS clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am recheck tags tags-am uninstall uninstall-am # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \ @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/g' \ -e 's/@''GNULIB_OPEN''@/$(GNULIB_OPEN)/g' \ -e 's/@''GNULIB_OPENAT''@/$(GNULIB_OPENAT)/g' \ -e 's|@''HAVE_FCNTL''@|$(HAVE_FCNTL)|g' \ -e 's|@''HAVE_OPENAT''@|$(HAVE_OPENAT)|g' \ -e 's|@''REPLACE_FCNTL''@|$(REPLACE_FCNTL)|g' \ -e 's|@''REPLACE_OPEN''@|$(REPLACE_OPEN)|g' \ -e 's|@''REPLACE_OPENAT''@|$(REPLACE_OPENAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/fcntl.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ } > $@-t && \ mv $@-t $@ # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdio.h: stdio.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDIO_H''@|$(NEXT_STDIO_H)|g' \ -e 's/@''GNULIB_DPRINTF''@/$(GNULIB_DPRINTF)/g' \ -e 's/@''GNULIB_FCLOSE''@/$(GNULIB_FCLOSE)/g' \ -e 's/@''GNULIB_FDOPEN''@/$(GNULIB_FDOPEN)/g' \ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/g' \ -e 's/@''GNULIB_FOPEN''@/$(GNULIB_FOPEN)/g' \ -e 's/@''GNULIB_FPRINTF''@/$(GNULIB_FPRINTF)/g' \ -e 's/@''GNULIB_FPRINTF_POSIX''@/$(GNULIB_FPRINTF_POSIX)/g' \ -e 's/@''GNULIB_FPURGE''@/$(GNULIB_FPURGE)/g' \ -e 's/@''GNULIB_FPUTC''@/$(GNULIB_FPUTC)/g' \ -e 's/@''GNULIB_FPUTS''@/$(GNULIB_FPUTS)/g' \ -e 's/@''GNULIB_FREAD''@/$(GNULIB_FREAD)/g' \ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/g' \ -e 's/@''GNULIB_FSEEK''@/$(GNULIB_FSEEK)/g' \ -e 's/@''GNULIB_FSEEKO''@/$(GNULIB_FSEEKO)/g' \ -e 's/@''GNULIB_FTELL''@/$(GNULIB_FTELL)/g' \ -e 's/@''GNULIB_FTELLO''@/$(GNULIB_FTELLO)/g' \ -e 's/@''GNULIB_FWRITE''@/$(GNULIB_FWRITE)/g' \ -e 's/@''GNULIB_GETC''@/$(GNULIB_GETC)/g' \ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/g' \ -e 's/@''GNULIB_PERROR''@/$(GNULIB_PERROR)/g' \ -e 's/@''GNULIB_POPEN''@/$(GNULIB_POPEN)/g' \ -e 's/@''GNULIB_PRINTF''@/$(GNULIB_PRINTF)/g' \ -e 's/@''GNULIB_PRINTF_POSIX''@/$(GNULIB_PRINTF_POSIX)/g' \ -e 's/@''GNULIB_PUTC''@/$(GNULIB_PUTC)/g' \ -e 's/@''GNULIB_PUTCHAR''@/$(GNULIB_PUTCHAR)/g' \ -e 's/@''GNULIB_PUTS''@/$(GNULIB_PUTS)/g' \ -e 's/@''GNULIB_REMOVE''@/$(GNULIB_REMOVE)/g' \ -e 's/@''GNULIB_RENAME''@/$(GNULIB_RENAME)/g' \ -e 's/@''GNULIB_RENAMEAT''@/$(GNULIB_RENAMEAT)/g' \ -e 's/@''GNULIB_SCANF''@/$(GNULIB_SCANF)/g' \ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/g' \ -e 's/@''GNULIB_VASPRINTF''@/$(GNULIB_VASPRINTF)/g' \ -e 's/@''GNULIB_VDPRINTF''@/$(GNULIB_VDPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF''@/$(GNULIB_VFPRINTF)/g' \ -e 's/@''GNULIB_VFPRINTF_POSIX''@/$(GNULIB_VFPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VFSCANF''@/$(GNULIB_VFSCANF)/g' \ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/g' \ -e 's/@''GNULIB_VPRINTF''@/$(GNULIB_VPRINTF)/g' \ -e 's/@''GNULIB_VPRINTF_POSIX''@/$(GNULIB_VPRINTF_POSIX)/g' \ -e 's/@''GNULIB_VSNPRINTF''@/$(GNULIB_VSNPRINTF)/g' \ -e 's/@''GNULIB_VSPRINTF_POSIX''@/$(GNULIB_VSPRINTF_POSIX)/g' \ < $(srcdir)/stdio.in.h | \ sed -e 's|@''HAVE_DECL_FPURGE''@|$(HAVE_DECL_FPURGE)|g' \ -e 's|@''HAVE_DECL_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|g' \ -e 's|@''HAVE_DECL_GETDELIM''@|$(HAVE_DECL_GETDELIM)|g' \ -e 's|@''HAVE_DECL_GETLINE''@|$(HAVE_DECL_GETLINE)|g' \ -e 's|@''HAVE_DECL_OBSTACK_PRINTF''@|$(HAVE_DECL_OBSTACK_PRINTF)|g' \ -e 's|@''HAVE_DECL_SNPRINTF''@|$(HAVE_DECL_SNPRINTF)|g' \ -e 's|@''HAVE_DECL_VSNPRINTF''@|$(HAVE_DECL_VSNPRINTF)|g' \ -e 's|@''HAVE_DPRINTF''@|$(HAVE_DPRINTF)|g' \ -e 's|@''HAVE_FSEEKO''@|$(HAVE_FSEEKO)|g' \ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|g' \ -e 's|@''HAVE_RENAMEAT''@|$(HAVE_RENAMEAT)|g' \ -e 's|@''HAVE_VASPRINTF''@|$(HAVE_VASPRINTF)|g' \ -e 's|@''HAVE_VDPRINTF''@|$(HAVE_VDPRINTF)|g' \ -e 's|@''REPLACE_DPRINTF''@|$(REPLACE_DPRINTF)|g' \ -e 's|@''REPLACE_FCLOSE''@|$(REPLACE_FCLOSE)|g' \ -e 's|@''REPLACE_FDOPEN''@|$(REPLACE_FDOPEN)|g' \ -e 's|@''REPLACE_FFLUSH''@|$(REPLACE_FFLUSH)|g' \ -e 's|@''REPLACE_FOPEN''@|$(REPLACE_FOPEN)|g' \ -e 's|@''REPLACE_FPRINTF''@|$(REPLACE_FPRINTF)|g' \ -e 's|@''REPLACE_FPURGE''@|$(REPLACE_FPURGE)|g' \ -e 's|@''REPLACE_FREOPEN''@|$(REPLACE_FREOPEN)|g' \ -e 's|@''REPLACE_FSEEK''@|$(REPLACE_FSEEK)|g' \ -e 's|@''REPLACE_FSEEKO''@|$(REPLACE_FSEEKO)|g' \ -e 's|@''REPLACE_FTELL''@|$(REPLACE_FTELL)|g' \ -e 's|@''REPLACE_FTELLO''@|$(REPLACE_FTELLO)|g' \ -e 's|@''REPLACE_GETDELIM''@|$(REPLACE_GETDELIM)|g' \ -e 's|@''REPLACE_GETLINE''@|$(REPLACE_GETLINE)|g' \ -e 's|@''REPLACE_OBSTACK_PRINTF''@|$(REPLACE_OBSTACK_PRINTF)|g' \ -e 's|@''REPLACE_PERROR''@|$(REPLACE_PERROR)|g' \ -e 's|@''REPLACE_POPEN''@|$(REPLACE_POPEN)|g' \ -e 's|@''REPLACE_PRINTF''@|$(REPLACE_PRINTF)|g' \ -e 's|@''REPLACE_REMOVE''@|$(REPLACE_REMOVE)|g' \ -e 's|@''REPLACE_RENAME''@|$(REPLACE_RENAME)|g' \ -e 's|@''REPLACE_RENAMEAT''@|$(REPLACE_RENAMEAT)|g' \ -e 's|@''REPLACE_SNPRINTF''@|$(REPLACE_SNPRINTF)|g' \ -e 's|@''REPLACE_SPRINTF''@|$(REPLACE_SPRINTF)|g' \ -e 's|@''REPLACE_STDIO_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|g' \ -e 's|@''REPLACE_VASPRINTF''@|$(REPLACE_VASPRINTF)|g' \ -e 's|@''REPLACE_VDPRINTF''@|$(REPLACE_VDPRINTF)|g' \ -e 's|@''REPLACE_VFPRINTF''@|$(REPLACE_VFPRINTF)|g' \ -e 's|@''REPLACE_VPRINTF''@|$(REPLACE_VPRINTF)|g' \ -e 's|@''REPLACE_VSNPRINTF''@|$(REPLACE_VSNPRINTF)|g' \ -e 's|@''REPLACE_VSPRINTF''@|$(REPLACE_VSPRINTF)|g' \ -e 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # has one that is incomplete. sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_stat.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/time.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # Clean up after Solaris cc. clean-local: rm -rf SunWS_cache mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/gltests/test-getcwd-lgpl.c0000644000000000000000000000510512153706067014623 00000000000000/* Test of getcwd() function. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (getcwd, char *, (char *, size_t)); #include #include #include #include #include "macros.h" int main (int argc, char **argv) { char *pwd1; char *pwd2; /* If the user provides an argument, attempt to chdir there first. */ if (1 < argc) { if (chdir (argv[1]) == 0) printf ("changed to directory %s\n", argv[1]); } pwd1 = getcwd (NULL, 0); ASSERT (pwd1 && *pwd1); if (1 < argc) printf ("cwd=%s\n", pwd1); /* Make sure the result is usable. */ ASSERT (chdir (pwd1) == 0); ASSERT (chdir (".//./.") == 0); /* Make sure that result is normalized. */ pwd2 = getcwd (NULL, 0); ASSERT (pwd2); ASSERT (strcmp (pwd1, pwd2) == 0); free (pwd2); { size_t len = strlen (pwd1); ssize_t i = len - 10; if (i < 1) i = 1; pwd2 = getcwd (NULL, len + 1); ASSERT (pwd2); free (pwd2); pwd2 = malloc (len + 2); for ( ; i <= len; i++) { char *tmp; errno = 0; ASSERT (getcwd (pwd2, i) == NULL); ASSERT (errno == ERANGE); /* Allow either glibc or BSD behavior, since POSIX allows both. */ errno = 0; tmp = getcwd (NULL, i); if (tmp) { ASSERT (strcmp (pwd1, tmp) == 0); free (tmp); } else { ASSERT (errno == ERANGE); } } ASSERT (getcwd (pwd2, len + 1) == pwd2); pwd2[len] = '/'; pwd2[len + 1] = '\0'; } ASSERT (strstr (pwd2, "/./") == NULL); ASSERT (strstr (pwd2, "/../") == NULL); ASSERT (strstr (pwd2 + 1 + (pwd2[1] == '/'), "//") == NULL); /* Validate a POSIX requirement on size. */ errno = 0; ASSERT (getcwd(pwd2, 0) == NULL); ASSERT (errno == EINVAL); free (pwd1); free (pwd2); return 0; } libidn-1.28/gltests/fd-hook.c0000644000000000000000000000701212153706066012762 00000000000000/* Hook for making making file descriptor functions close(), ioctl() extensible. Copyright (C) 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2009. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include "fd-hook.h" #include /* Currently, this entire code is only needed for the handling of sockets on native Windows platforms. */ #if WINDOWS_SOCKETS /* The first and last link in the doubly linked list. Initially the list is empty. */ static struct fd_hook anchor = { &anchor, &anchor, NULL, NULL }; int execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary, int fd) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd); else return remaining_list->private_close_fn (remaining_list->private_next, primary, fd); } int execute_all_close_hooks (gl_close_fn primary, int fd) { return execute_close_hooks (anchor.private_next, primary, fd); } int execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary, int fd, int request, void *arg) { if (remaining_list == &anchor) /* End of list reached. */ return primary (fd, request, arg); else return remaining_list->private_ioctl_fn (remaining_list->private_next, primary, fd, request, arg); } int execute_all_ioctl_hooks (gl_ioctl_fn primary, int fd, int request, void *arg) { return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg); } void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link) { if (close_hook == NULL) close_hook = execute_close_hooks; if (ioctl_hook == NULL) ioctl_hook = execute_ioctl_hooks; if (link->private_next == NULL && link->private_prev == NULL) { /* Add the link to the doubly linked list. */ link->private_next = anchor.private_next; link->private_prev = &anchor; link->private_close_fn = close_hook; link->private_ioctl_fn = ioctl_hook; anchor.private_next->private_prev = link; anchor.private_next = link; } else { /* The link is already in use. */ if (link->private_close_fn != close_hook || link->private_ioctl_fn != ioctl_hook) abort (); } } void unregister_fd_hook (struct fd_hook *link) { struct fd_hook *next = link->private_next; struct fd_hook *prev = link->private_prev; if (next != NULL && prev != NULL) { /* The link is in use. Remove it from the doubly linked list. */ prev->private_next = next; next->private_prev = prev; /* Clear the link, to mark it unused. */ link->private_next = NULL; link->private_prev = NULL; link->private_close_fn = NULL; link->private_ioctl_fn = NULL; } } #endif libidn-1.28/gltests/malloca.valgrind0000664000000000000000000000025711746453142014436 00000000000000# Suppress a valgrind message about use of uninitialized memory in freea(). # This use is OK because it provides only a speedup. { freea Memcheck:Cond fun:freea } libidn-1.28/gtk-doc.make0000664000000000000000000002061311746453142011776 00000000000000# -*- mode: makefile -*- #################################### # Everything below here is generic # #################################### if GTK_DOC_USE_LIBTOOL GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) GTKDOC_RUN = $(LIBTOOL) --mode=execute else GTKDOC_CC = $(CC) $(INCLUDES) $(GTKDOC_DEPS_CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) GTKDOC_LD = $(CC) $(GTKDOC_DEPS_LIBS) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) GTKDOC_RUN = endif # We set GPATH here; this gives us semantics for GNU make # which are more like other make's VPATH, when it comes to # whether a source that is a target of one rule is then # searched for in VPATH/GPATH. # GPATH = $(srcdir) TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE) SETUP_FILES = \ $(content_files) \ $(DOC_MAIN_SGML_FILE) \ $(DOC_MODULE)-sections.txt \ $(DOC_MODULE)-overrides.txt EXTRA_DIST = \ $(HTML_IMAGES) \ $(SETUP_FILES) DOC_STAMPS=setup-build.stamp scan-build.stamp tmpl-build.stamp sgml-build.stamp \ html-build.stamp pdf-build.stamp \ tmpl.stamp sgml.stamp html.stamp pdf.stamp SCANOBJ_FILES = \ $(DOC_MODULE).args \ $(DOC_MODULE).hierarchy \ $(DOC_MODULE).interfaces \ $(DOC_MODULE).prerequisites \ $(DOC_MODULE).signals REPORT_FILES = \ $(DOC_MODULE)-undocumented.txt \ $(DOC_MODULE)-undeclared.txt \ $(DOC_MODULE)-unused.txt CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) if ENABLE_GTK_DOC if GTK_DOC_BUILD_HTML HTML_BUILD_STAMP=html-build.stamp else HTML_BUILD_STAMP= endif if GTK_DOC_BUILD_PDF PDF_BUILD_STAMP=pdf-build.stamp else PDF_BUILD_STAMP= endif all-local: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) else all-local: endif docs: $(HTML_BUILD_STAMP) $(PDF_BUILD_STAMP) $(REPORT_FILES): sgml-build.stamp #### setup #### setup-build.stamp: -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ echo ' DOC Preparing build'; \ files=`echo $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types`; \ if test "x$$files" != "x" ; then \ for file in $$files ; do \ test -f $(abs_srcdir)/$$file && \ cp -pu $(abs_srcdir)/$$file $(abs_builddir)/ || true; \ done; \ fi; \ test -d $(abs_srcdir)/tmpl && \ { cp -rp $(abs_srcdir)/tmpl $(abs_builddir)/; \ chmod -R u+w $(abs_builddir)/tmpl; } \ fi @touch setup-build.stamp #### scan #### scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) @echo ' DOC Scanning header files' @_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-scan --module=$(DOC_MODULE) --ignore-headers="$(IGNORE_HFILES)" $${_source_dir} $(SCAN_OPTIONS) $(EXTRA_HFILES) @if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null 2>&1 ; then \ echo " DOC Introspecting gobjects"; \ scanobj_options=""; \ gtkdoc-scangobj 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$(?)" = "0"; then \ if test "x$(V)" = "x1"; then \ scanobj_options="--verbose"; \ fi; \ fi; \ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" RUN="$(GTKDOC_RUN)" CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ gtkdoc-scangobj $(SCANGOBJ_OPTIONS) $$scanobj_options --module=$(DOC_MODULE); \ else \ for i in $(SCANOBJ_FILES) ; do \ test -f $$i || touch $$i ; \ done \ fi @touch scan-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp @true #### templates #### tmpl-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt @echo ' DOC Rebuilding template files' @gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS) @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ if test -w $(abs_srcdir) ; then \ cp -rp $(abs_builddir)/tmpl $(abs_srcdir)/; \ fi \ fi @touch tmpl-build.stamp tmpl.stamp: tmpl-build.stamp @true $(srcdir)/tmpl/*.sgml: @true #### xml #### sgml-build.stamp: tmpl.stamp $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files) @echo ' DOC Building XML' @-chmod -R u+w $(srcdir) @_source_dir='' ; \ for i in $(DOC_SOURCE_DIR) ; do \ _source_dir="$${_source_dir} --source-dir=$$i" ; \ done ; \ gtkdoc-mkdb --module=$(DOC_MODULE) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $${_source_dir} $(MKDB_OPTIONS) @touch sgml-build.stamp sgml.stamp: sgml-build.stamp @true #### html #### html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo ' DOC Building HTML' @rm -rf html @mkdir html @mkhtml_options=""; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$(?)" = "0"; then \ if test "x$(V)" = "x1"; then \ mkhtml_options="$$mkhtml_options --verbose"; \ fi; \ fi; \ gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ if test "$(?)" = "0"; then \ mkhtml_options="$$mkhtml_options --path=\"$(abs_srcdir)\""; \ fi; \ cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) -@test "x$(HTML_IMAGES)" = "x" || \ for file in $(HTML_IMAGES) ; do \ if test -f $(abs_srcdir)/$$file ; then \ cp $(abs_srcdir)/$$file $(abs_builddir)/html; \ fi; \ if test -f $(abs_builddir)/$$file ; then \ cp $(abs_builddir)/$$file $(abs_builddir)/html; \ fi; \ done; @echo ' DOC Fixing cross-references' @gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) @touch html-build.stamp #### pdf #### pdf-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) @echo ' DOC Building PDF' @rm -f $(DOC_MODULE).pdf @mkpdf_options=""; \ gtkdoc-mkpdf 2>&1 --help | grep >/dev/null "\-\-verbose"; \ if test "$(?)" = "0"; then \ if test "x$(V)" = "x1"; then \ mkpdf_options="$$mkpdf_options --verbose"; \ fi; \ fi; \ if test "x$(HTML_IMAGES)" != "x"; then \ for img in $(HTML_IMAGES); do \ part=`dirname $$img`; \ echo $$mkpdf_options | grep >/dev/null "\-\-imgdir=$$part "; \ if test $$? != 0; then \ mkpdf_options="$$mkpdf_options --imgdir=$$part"; \ fi; \ done; \ fi; \ gtkdoc-mkpdf --path="$(abs_srcdir)" $$mkpdf_options $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) $(MKPDF_OPTIONS) @touch pdf-build.stamp ############## clean-local: @rm -f *~ *.bak @rm -rf .libs distclean-local: @rm -rf xml html $(REPORT_FILES) $(DOC_MODULE).pdf \ $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt @if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ rm -f $(SETUP_FILES) $(expand_content_files) $(DOC_MODULE).types; \ rm -rf tmpl; \ fi maintainer-clean-local: clean @rm -rf xml html install-data-local: @installfiles=`echo $(builddir)/html/*`; \ if test "$$installfiles" = '$(builddir)/html/*'; \ then echo 1>&2 'Nothing to install' ; \ else \ if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ $(mkinstalldirs) $${installdir} ; \ for i in $$installfiles; do \ echo ' $(INSTALL_DATA) '$$i ; \ $(INSTALL_DATA) $$i $${installdir}; \ done; \ if test -n "$(DOC_MODULE_VERSION)"; then \ mv -f $${installdir}/$(DOC_MODULE).devhelp2 \ $${installdir}/$(DOC_MODULE)-$(DOC_MODULE_VERSION).devhelp2; \ fi; \ $(GTKDOC_REBASE) --relative --dest-dir=$(DESTDIR) --html-dir=$${installdir}; \ fi uninstall-local: @if test -n "$(DOC_MODULE_VERSION)"; then \ installdir="$(DESTDIR)$(TARGET_DIR)-$(DOC_MODULE_VERSION)"; \ else \ installdir="$(DESTDIR)$(TARGET_DIR)"; \ fi; \ rm -rf $${installdir} # # Require gtk-doc when making dist # if ENABLE_GTK_DOC dist-check-gtkdoc: else dist-check-gtkdoc: @echo "*** gtk-doc must be installed and enabled in order to make dist" @false endif dist-hook: dist-check-gtkdoc dist-hook-local @mkdir $(distdir)/tmpl @mkdir $(distdir)/html @-cp ./tmpl/*.sgml $(distdir)/tmpl @cp ./html/* $(distdir)/html @-cp ./$(DOC_MODULE).pdf $(distdir)/ @-cp ./$(DOC_MODULE).types $(distdir)/ @-cp ./$(DOC_MODULE)-sections.txt $(distdir)/ @cd $(distdir) && rm -f $(DISTCLEANFILES) @$(GTKDOC_REBASE) --online --relative --html-dir=$(distdir)/html .PHONY : dist-hook-local docs libidn-1.28/AUTHORS0000644000000000000000000013150212153712274010652 00000000000000Libidn AUTHORS -- Information about the authors. Copyright (C) 2002-2013 Simon Josefsson See the end for copying conditions. Simon Josefsson Designed and implemented libidn. Thomas Jacob Contributed TLD support. Oliver Hitz Contributed Java implementation. Stefan Larsson Optimized Java implementation. Added Maven support. Alexander Gnauck Contributed C# port. Adam Strzelecki Contributed Windows Visual Studio project files. -----BEGIN PGP PUBLIC KEY BLOCK----- URL: http://josefsson.org/key.txt Comment: This 0xB565716F key is used to sign releases of Libidn. mKsEPNUHKwEFALqJSBHn6Qk5ex138kwymxA3idCFoTi5Q6mVooEVVaYVfeDG+5uV T5rhTFDfDcT9SO0eIlfKOraSRnVEHyDDH2PAgJFxyneFELcmLUQ66D+m8z+ziGro 6bcDSBBDMRkHIX6/kH/vnevjqivIld+j8WTcVX+SArcKyzgQ58uMTrfQdLqzh6D9 sE/838+ZPZkabmKKWMVWccoaUbWGYOcNwO0ABim0JVNpbW9uIEpvc2Vmc3NvbiA8 c2ltb25Aam9zZWZzc29uLm9yZz6I+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgEC F4AiGGRuczpzaW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCTvm3NgUJFLfe CQAKCRDtoh6UtWVxb7BxBQC3UF6FW9nyukBsGUvz7clNOdAhPyfkvab049xuubjC +kHGJuS25IzpvvLPIIUik6zZ0cQIWRtzPM2/6rWuktABHFQ0sf0A/o6f7ApEMnna MXxNhR2ymWjzc2jSF1zjg/KjwPpzk68Irk6fHbT/vuZASrcXT7ORy+vjhoSoU1uO zemp4tO8tK1ehsGKXQN7pPKhWpsMO5zVzZHxAlNUzUsXiEYEExECAAYFAj1Y8sIA CgkQV5Mp08AbKiJmNwCgkgjjuS5TcZq4rVBWNYu1VwQlJWYAoJZf+pBNBvzT9xOg Hcs1cAMwT4FHiEwEExECAAwFAj1esHUFgwFXijYACgkQvLvElXGKklZXlwCfTWSl L2/3q5Od3zBVMKVHgpTo4asAnAtw7vVEIwp9pPuy1oKjTB/obqltiEYEExECAAYF AkEAyoIACgkQntdYP8FOsoK0XQCfRN1QBVk7/eu4YbFQBqH463dcHx4AoMp2QurM RXFDImswJ1Wi9K65dq66iEYEExECAAYFAkD/P4YACgkQlv+ZxCXA7Au9KACfYKMn MPmlbZDi5/Le4mcLCUlQ+SsAn2qOQ14l/ellraqWXbvacCJkOyNpiEwEEhECAAwF AkDgVz0FgwCTtOwACgkQyIHdR0rnq0csrwCgtL27/ndpjew28bGVYU9tBmIg2GUA oKFFKKHvJB2pVjRkRL4DjohSdIrkiEYEExECAAYFAkJJAYsACgkQj8NyXz1o1joW fwCgtb8mtlI8rg52vT5DRU+Ct3NuDfEAoL7IX823ezbe7HVegheirf3q7zmKiKIE EAECAAwFAkJG+cEFgwDmsQ4ACgkQv9buWFf3fwmuCwQAtAopBWKTnll1t4lFnR+C mvXdqui6g/MhMVjGlnGaxzKfdlXIDT3i6VEMQk639rCLUxNB5YiQZZm7aABg1dwt f10mFQUkm9dt4d852cu6ytmljXLJ4NIQFrhZQUrxvh8s8j41oN/hcwyLaX+FLI0G 6Jehz0m0nPlEQf0sJ/4oCuqITAQTEQIADAUCQklECgWDABPOSgAKCRBmvnH/Z0ho g9kYAJ0QKz8Gt/kc7Q9Y/Ahh/wZO6vaQ9QCggcgpRYoJ6g1QXYWdTO/Hxve4Lu+I TAQQEQIADAUCQk2CtQWDAOAoGgAKCRA7jqQfgvYSQDh8AJ43bDTlK1p/aLXxJ2/1 pFrHWFvncACgvVli4V9P6pVhP9p+H3APtQ+URVSJASIEEwECAAwFAkJhOZ0FgwDM cTIACgkQC3gy83PWLUFxowf/YLAopAmpU94kKSC4ECFsLXDivJ4LCOxgqZ0u7Fgi QgwWK1miJJnW9gME5vE/jMHlsjGwUKJDC3SfbgjOJj31ivrGIh4od8+zU0bwlwoJ ppDF/5cbzBheUiCsz+BVBZs8ii4OahnoELUzXbyVZITkMztmn/2+7DYXqqf1tCTy wIR/hQzFp6W7GNT/I73Ksz/cKop4jzxE5whkl+5NMBk9VYhfa2X49/S65nwXg4ii BPQN0UrhN0ZvrF+uKX6oVlOX+30CrPyT8FkcRk1AOhUpqblk2M2DblOebgxfF1ZV jXNNN/0fZhy4iTbYSggndO5PIybKMkMogVtO07F/8lvtC4hMBBMRAgAMBQJC2LCN BYMAVPpCAAoJEBhZ0B9ne6Hs7fEAn145gLDePrbxrfwN2dG5+IuvpvtYAJ4oRmRy hxwpwahGE+5281z2VTrQ9YhMBBMRAgAMBQJC2LCxBYMAVPoeAAoJEIHC9+viE7aS 7sAAnRYuXokAy66xi04YD1ODtssYFw7nAJ4lqshFVn7NR5yznu0tioYLFwyc54hM BBMRAgAMBQJC2LDRBYMAVPn+AAoJEGtw7Nldw/Rz2iEAoJFrzoYjkR5ANZYbeX/o zQecQCmAAJwNCoPySmaxrwO6BiUd11bO80bPxYkCIgQTAQIADAUCQtiw8QWDAFT5 3gAKCRCq4+bOZqFEaF90D/9xV8ua/ezhWOu5ADgHE1yeWMWQsecIx9TA5QVQg8pp jA3E2REe/lJbCweVhwfvSmuvuymRQw71cIdmqF1dz9R8mb62N1r07DcPxibhtHi4 poENxIHqvEbtOR17Y6Ql4DW4PjK1ut9y2y58HK6XTiqCtbg43jEcbXk1r9qLJl2L gopYJQ1KJCwfn+DCVadRA2FgVclMGUGIdiiTwp12+E/70oYoMzLwm+7MUgbJUpRL ytsc5frhT91iX2lPoeylAHAQ0681WiawvexlqtAPto9Gjbtnw32oSOqIJcbbMhN8 G87pkvBhk5wXfVM7kyutBFhIHcQFGeuGkZpgeXt40NcUJffn+KOfeXzgdQwmwNlo 9K0arxNpIukgugvVeNtsKj1gtW7IkYcLmvlDyShz/cytguNEU+1W0ZeG73Tjphs8 mCSlCKVcNWcy2l7z/DvB3VPibac525/Sw1ZIq7DShRHHv8x02/658LEW7gSvvZ4j 3yuZSNgL2lgPzaYoQo+8ysHK9dqViVBXAHIwVZTmXptb5zxQcHtFUnR51IDSAfBG d7gjU5NJNfKKngLjDJy56nmJGMw/+13F5XFcjGPC9t6ZKoQud712K8TRIczWgGMn gkahyTl4KIwPxVzWnUN0IkcsO/5yO3JudWzzYB6r1QomCSAAA+uirstJwVtBWsCA 54hGBBARAgAGBQJC8krrAAoJEG74r8KGV0rKoI4An0CQA/3wPCxskfqLhvN69ViN c9GhAJwMR5Nl4q7Y4c5j9BOG+9Yxaom2OYhMBBMRAgAMBQJC8cBwBYMAO+pfAAoJ ECmqKFIzPnwjCzsAmgIwd1uJC2Ka3bIgTCJukFjCcdWRAJ47P2tLKEcvatuPnnPT yWYuXGTBqIhGBBARAgAGBQJD+NOYAAoJEOFd2FexXDfRRVoAnj+kNh2yJiIAI9JE Vccgdv8cdElgAJ9jZHFa4KIdIsdGQZ5G4qS0YkHwKojYBBMBAgAiAhsDBAsHAwID FQIDAxYCAQIeAQIXgAUCPr1HRAUJAtWOGQAKCRDtoh6UtWVxb3F2BP9Whe+ArZn6 WlbpHF+37Rqr+KmXL2fLI0b+phneaieRvACsOmPD3jDpvxz/xVf8s49SJ2+a23Ia iCA8Boyws9sBxn5N+yWhdYYjfDbH3JUOQz7BKN/9o8EAYuU8pmQtEN0q4+QiNsU0 a8qLAV3qmEOwLfkB4z4H+aDZxe/p7vIYP4QmzTn3ZQ0mYR5mxpc52pF82KVyNWWJ vmcirPwKSckEiNgEEwECACICGwMECwcDAgMVAgMDFgIBAh4BAheABQI/pCtUBQkD vHImAAoJEO2iHpS1ZXFvPREE/j3fX+cLxCCZNTjMhThGFujiT7ty4x1jVc91J6QO A+Jp+78NIIeyg3JTeR3WIv7/WFNzLKJXJEEcga+0ViPjoLfvGsHMAnwXqPYAxu1c DY4jId0bCYgoVlnfF9gwOWxebtotLpCiuXGL/168zEAXWJpPg6r2MfPhAKUJ9G8q 52OOWJW3cObxoZ2gyXjuWOFtygZ1vUAqP/8UGeZNdajHD5uI2AQTAQIAIgIbAwQL BwMCAxUCAwMWAgECHgECF4AFAkCGvikFCQSfBP4ACgkQ7aIelLVlcW9oqwT/a2nW kFFy1q16WURE8vp+Tqu6i4r5mTdyHjbhQeZh5Pub5DEJiFuWXxE73JVrnNozacQb Vbsnn54B4Xv6tuEDMxaTXSjreDY6D08urM8A0gnUHCAOwxtmepm9wxk/l3WAXWwz QoQaqZ2PSPFGW4Epk8+JwWKoLv1O2i9NbycGEccF9rr6I12319Vzk+P4P3FOgCwa dAQHSGS3Y6hlLm/RGIjYBBMBAgAiAhsDBAsHAwIDFQIDAxYCAQIeAQIXgAUCQW/E VgUJBYgLKQAKCRDtoh6UtWVxb8gUBP9Oiapzi+7qCcpj8Yy55jQvgpXkhe9g5DuT lRiHYjP5vTvXJNF7pDOOPj1pSUxumC3viv/pxUaWKp3tSOjsT0ZVgy4ah6rUdjyy bLAOAiPmAP3ryStzURF5/RnQbbzrSGZJRfeQIxY2871hWg241/wslRtNpsxYSPCI PHMVB4SSFYzzbKRgUU7SXsVQYBAlRU644UE+dB+b17slv1xvagOUiNgEEwECACIF Aj0lzz0CGwMFCQHhM4AECwcDAgMVAgMDFgIBAh4BAheAAAoJEO2iHpS1ZXFvt3ME /ijwFJCSNoY1AfCEm3AX6vRKUbjiy0MdemsqajXF6awcbIaeCwk3wVr9JOs1usu2 /AQQDvz0sf/hEv6c3sMTYspD6+QzrRMUVbLm0fp+pRZKyaW1tO+/JIoOl8qsOwod kXPQ7CYFvSZhhkxdUwVOa6UtL6kOdCjQAy7DDQTzdcC/GxHQNVUNF5KcBWC7LMN6 iAt0dAFEMaQz4t37CHq+DCyI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4Ai GGRuczpzaW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCQkBc0AUJBlijpAAK CRDtoh6UtWVxb9EIBP4pk/ztQF+XV5L4krXEmbjAsGb9C+I+4OoRUY/mWDvNAjGp pkhFD+8Q3oQvg+1dcPsJ5rQHSXgA2w1bOsTknK9DamyY35LHd9T0ZSllXOUX9q3Q eKiDBYc2KB35ZtxKNIA4Lt5qDgYbSgtlERxDY94BCSy4YApdwATei3O32t5IoR+B roeIr+w+zn9mVulkn3pRXByYDX/scxcTtWwRL+UNiPsEEwECAEUCGwMECwcDAgMV AgMDFgIBAh4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9yZz90eXBlPUNFUlQF AkMVrNEFCQcvRSYACgkQ7aIelLVlcW+ahgUAnWORH5p6Cdk/zhen4sUwwnzsFyAO Z7vaVPrQPq58Czl2FymLm5kJgsGXH8b6KLxVMo8hjTZnsm+zO6XTLXsnnK7nXk70 gBJ0AAM0XGlG53qDvvQmq3RkfFMHuSmxL+zL8pXTmnywIlEpgDHPVKbPKF3c508H FEPKFnDjuyRwPgq3q2mhC/qYYBRvw9hjjeRCqDTdC5wHuWLzs5MCLeG+3YhGBBAR AgAGBQJEc4b8AAoJEAixI47drUe278gAn15puEaeLjlpaTndlvxT+LAH/951AJ9b 0Hlo7Py6F9c1liLsMNWNDnyvZ4j7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIX gCIYZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJD8ykBBQkIC2/U AAoJEO2iHpS1ZXFvrF0FAJLVqSWQ2fYNGCvBH4xRS4n2LruzdubmzNuCIZrc75M+ RfTvYeHwCNDY8H+PggYuXMT8armHvFvyL7jln864M9LTX4TwROrqKlkNgOkfxdSg Oz4QE9RHxxooF1GMl1yhxCoumixYE5w0z0LGYRKy/Xzd3+VMcUaFXvEqY6Q+cnQo qChCvKRmsIFhF4b4SAqzRePdx6U3PBpC4FbIlkQkpbaIRgQQEQIABgUCRYwLkgAK CRApqihSMz58I53iAJ47ZGEOrZrMqV6WKmfKa8+5907zeQCeI9LFETr1SK3IHx/7 S7RlQhoqAzeI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpzaW1v bi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCRObocwUJCP8vSAAKCRDtoh6UtWVx b9fhBQCRE0dBfP855Vv2fPCzIxnu1I0GM9BjmAC4uMNdW6o7I4yQMXNYpP8RdxDz PTon1JYQZqQW77EdqtwjFeguScudF8+85I2FtKDmzl0NNubmX6ckxdCbuUmOk2Vu H0IQ8O0f1htk0h4dQB97YA8zu9AtqyASkdCDbRC7RgoaeUaV7N7v8RM3KpEJm6pc eQT1DLqOQIFAp/cDa76xXK2Xrd4IiGsEEBECACsFAkXhdvUFgwKHjGMeGmh0dHA6 Ly93d3cuY2FjZXJ0Lm9yZy9jcHMucGhwAAoJENK7DQFl0P1YbgMAnj34VvAwJhWn Z79fbgSY9O7CIBJFAKCJEs0DbASutepLJhiysH3J61b5D4hGBBARAgAGBQJF4sLA AAoJEKrPs4YhG27v90UAoKBHaY3RXOkwk5YL58jSYoOWltJ/AKDTwdKSURBZ3RTe GkriWGZRy2sfd4kCHAQQAQIABgUCReGU9AAKCRAmSeYoxdNNBWHAD/4+/J4V7cM1 dMrr6rpaggfgRa7d121f4n+KVn69fmxBr6vMkGP+8Aor4xMGvkL6HYJvOMRK752H wXij7TM0HdGqU0S6cisOXiS/LOPQOayz6HuvliIhJeyDF4wfI358ZH8gVTKTn+1l tqWmggd8KVbU2pEvNte+lD0VIxK0wrUT0nFEYoJsDlTUVpnmM4PxP8TwoIRwo/h9 NnL8zeh+5sj0D5tZW4DsTC1AVPH1WYUN4aY2lv49twDh63oXbzXZQ+xKWJeiByao DeEOFtouwTb7RbmDBB1i0aeb7gWCryUiHD4p2zf+R+4ikcwcG0LzR7DC3WFdlPnb NII/G31ZDacpPqkk5S3LL2jIXKhpD15ilbXGjkqsBAkOJpO7rehVbxEGUfGh+2TZ cCvLHeh9ckgjimFlZywk230H/tkQJpnHaTOmhNbBbowUkIdCjTBLkqyW99sM2heD kmkYh9jJTj2BLVED4HrgyMp+dXGeDM7nVGDCPfbaFTTz6It+ODndAC2Q0d0N59Sz x2Xb8LYfngezdhV0q0GgGXl+vh9zvZnpHV7Bef6ABTq0IOQri83IZv3HlyBeK6KP JTx+ll32ByQ8JcMuAAaVqWXI914J/fD9bvsTzJNQsPEa8yBta22Ww+jcnHBBhAbU Kfw5FKNDrqYr4VGY9+am80YmnIRQIt7Fu4hGBBARAgAGBQJF4fboAAoJEE1EwCDF wFuuzREAn11W3gtaynmEAcxw/WxLdndmL0mmAKCsf55yO8kTmKoohRXpfo+jn4HB XYhGBBARAgAGBQJF4gz4AAoJEFUVYHaRYekRxxwAmwVy1T7YQQtP7xXNdM+EVUxL nteTAJ9AzaxlVV4dO/OZTG9QDbqztagH54hGBBARAgAGBQJF4grQAAoJEMfZMCWd /6rUv38An3mkvCWcxGKhN6/PgQ2+W4zpFQPDAKCxweB0Xh/TQDjQ/dSaoj/BccNK LIhGBBARAgAGBQJF4hFCAAoJEOVE3gebfDKNJ4sAn3owtLwwEWtpw9VQxTc66cmd oFqPAJ4r2z3VgRa/Ns/uWMxV0Zlee/f2M4hGBBARAgAGBQJF4i3gAAoJEHZJQAVJ ruv2v54AoJCl4M0ClZrwxyTkOXJs7xeQjtDtAJ485636UH2u71nZdIyGTMqQkszm BohGBBARAgAGBQJF4sNEAAoJEH5OpU/Qq0B1NE8AoOJY9VXq8PPDDPjRPaJLahjO ykz+AKDN3jXgHvqD26euQ1ksEBc8Vn6zF4hMBBARAgAMBQJF4sR8BYMChj7cAAoJ EHMcr9NTwaMv9/EAn35hATWBiY7ra8Z2bjy+GZ4eSLQmAKDX1GfInkT57/rzmpkx n+IQlikCMIhGBBARAgAGBQJF4s6iAAoJENoZYjcCOz9PA5IAoIZucQg6PaqLETbG ch/y2UM6BhZ2AJ92fj8dOvoKNxn9Rh4UcTSSiPXNDohGBBARAgAGBQJF4eL3AAoJ EHhn1Tx0eTXduhcAn2LWbAgZcRRU7PJtIO3zqsIm6keDAKCeZgrQaUd1GSNW4AzZ LuT/XXiWW4kCHAQQAQIABgUCReLO2gAKCRBSIlPD1yc5gYUMD/0ah8KqI6rjyi7p WqPPcPKy9ZCnPJv2JJllu1wx4dqRZnUVA3rmHAUpzQp7HsfMXWLgjxOnUEvzjZkP PamYnczdE65l5M8zah1WNjfR8Vk4/XaeolVXe3a5R8Vxj27QRa+T5yEHprb5hPo4 uFWkPlJgJd+qcXCIc28135QngN5uRRQK4NnM/oTtv2nv15L4M4qiH6V+We5IW+Tj t74O0mSEekg1bB/XKlF/XcgyO8rEZgqwufZ4cHbzWYXw3C+CKkhDSDItGUw9HesO u1FS+Mf/Js4+/kFjW8ZJPFO+A2z3gYTDzaXGq2zlvbqw1gYId5pbukVM6PRqQrlq tI2Kza7/CY85b+DVU9Zwe/Hr+yYnEJdG+eWkshmB0mIXgQlSaf/sglsAncrmxA/g m5IxaE3TIRW/mtizuCUwq+gigIUEANAsNwR5a/RAekc8aNaO1cSj8izlGqrl6cuQ 5jyizUJB5AcOV4CUDiazITOasbt4+xx9MTsciqWIkMLYRloVuqXgsoKOTxTT6Zq+ lPEGRyYds7OEdaXHWPO0OJ2ZPCagb3OvqxJc123Xf7XXySGkGXzZgoA6D4BwIB0b 5WQFq8722b0tJPktH2a5clKJio3SMir1bpPT6b/CM/Mrk3kIFKJpmvEBYrKTCfhJ nDI2GJ4Z/f6rUDhiyQ5yj5Rop2zot4hGBBARAgAGBQJF4vk5AAoJEItKxIGsHnFe eYYAnRbZnnFoSrbo5E908zFdUPwfVfUoAJ9Dgo1WuGHPD+89PSqsyMshK1qavIhG BBARAgAGBQJF4y0kAAoJELOx+BoCeHiA9a0An0E0Zyjequ/iRSSB+YolhRqc87tp AJ9PeRbv8Ce1TY6qCoyIO76zYScX5YhGBBARAgAGBQJF40D2AAoJEDiaVjzCcqEm vrkAnimr8D1OTH8O8+E3A2VOoxLhG8PTAJ93AR9hPTBxVBY+TqzapQz12ROtjohG BBARAgAGBQJF40DdAAoJEB9/MmoS7vYqmnUAnjcrUSIjc8jjfdxLhJES9yDBTP/g AJ9ZSpKAG4kvVjZqcSBhudGIw2NkQokBHAQQAQIABgUCReM6egAKCRDo4GL2DcsE MZKUB/9bQd/kyhettf5FPhSPgtVgZanF2kI0WnDWUGXbbn8vLs7GNGsb6eyuUDEM kL/f6xtVHNPC44HarRbawhph/m0P25KQlaHX4120gdYzPR7mnUMk9g7P2ycNrcND 730oJMS3f8FBhe9fnt4adPU8mp5fgU2zTsdVHpa2zUVZHNh84iuEoxoZJEWEyHHJ ke/avbbc/G6JmMD+8vOV8nKHbuzNOAfA09kPJWAPcfR/grCpEMZ8SkB9F4FvPEjU 2HxeFKx1vWNTamkr6ygUVlX7bBwLCe9p+7ue1rMeKOMsJF7UnAkOthEC2IeyhPn1 gyErrjYzQOX+3+YPCSO73fBxSG6liEYEEBECAAYFAkXjS5cACgkQKJz/wOY81tb5 TwCeLd//hOBTT9hnSkZFuxLso9J3cToAoKnsSW/csdFyRJLh024CqSzu3/QXiEYE ExECAAYFAkXjRMAACgkQjCXuDw3At9aUHQCglgCi6nNiupwbEfwEsvd4MRYVzGsA niDj36LSv47TIbmUQJlR/qiNJ+phiEYEEBECAAYFAkXjVQEACgkQmEvTgKxfcAxE EACgmX4IGrSutcvAs9Pfr6JYEE3hdsYAn1yLt/tyLO9laWWhLKhNH7MPHc0xiEYE EBECAAYFAkXjT0YACgkQIae1O4AJae8N+ACfXCp09XmUQQ/xvA4LipoTAoyqX+oA n3aZHFSOKENXaHthrpt0FFaPVNEJiEYEEBECAAYFAkXjfaMACgkQzxI0fJaL1Yct 2gCdEw43ra6oy0cwLX+zwRzTXazKQn0An0FuDnGs6J5+x6hlK3MFjyfRYZc5iEYE EBECAAYFAkXkGvoACgkQZDZDYQnzQCR0eACfWdtadQLH9Bbi/YPOcheMmavmCrUA n1fBKs46WOq7jppufBXwcncegfxHiEYEEBECAAYFAkXlgbQACgkQeQ6MlGH/2qvD yQCffMAMRUHCPKIbbz59BVNmgpyvSmYAnRMspmLYF0gk0xfHoIFaS3nwt3DgiQIc BBABAgAGBQJF6Vo/AAoJEFeTDasLhrBnakQP/1Z460aR3KyxrCrEcDJ/Vzf7vsbq 1DQnmoRuIgpKmR87N3qRLb2p94ffRYYxlWcFj1jiYT3Wq2bxjHyCZPgcAM2bQuuJ MFxQo2xgwobyNqesIafgdbMjdUEAVy+NTyJfdmM3I57lkrleGz6lk9ojMLoIDa/t R1C+uoLuSWMj0Xk/nCT+WnN3/xqZyPIa+i6MN8fuI6Nsa/C1jiNw2FnZy721hl+P 1Bhx+i9aiXCR0qz/3AOAOz25F0OXNKKdzOgdo5mCkelbUaey4gPpvb2oZ30rh6VT elOOlGU6WbEO3DQBuOGAxJ1Ux801przITs1923bZU8EPyfDZyZWINkpl7M4En4bq GKQkjTIfE8GrSSCp9rsLg1siK38yMYodegSzSJ7ZWWGlyuKvrim1eQw8svSzRphs ujaDJG8Oy3Dlc3qBbA/CGx1OtyML5G/w5C5b2Wz/BkMgHnOfOJSVjGlJJrxGyydR qThibZ88yRcZ8130COubR4Rr2I+TD+FZLhGtzQGia4gDQ9QG5td6LS5yLPc3Y52N cwWsbMHWzLTQ2k3O7PcsetRPLpduiq1eZUZZveY0MSjH+uH3xzp6qfj9I4FDtK6e pHQ0F9Dw8kK9qBAhiqrKxsUUbalx5Pup0gIkzNe1vzjByS2P/j2VMhbinhG5FZl0 O2mPcIXHeHlAJdGCiEYEEBECAAYFAkXt5LkACgkQMGnpIbeahxy4RwCggxD0dEmG z7ipFrmwbIGTxuxIS+IAoKfxzxjiT2m3AEvfkL/xNuqgenPViEYEEBECAAYFAkXk wVwACgkQcLIDITr1nRa4rQCfZvrXaoYQ8TeX/lhuJfmsPb7kIRcAniKy+cTGNExR mZutFX/OcnatDZExiEYEEBECAAYFAkXqoaAACgkQL5UVCKrmAi7oEwCgu/2cheN4 mU+yFFIG6HmLrbeIc5IAoI2I4eLWJdmLpJleOYgF7CtTGIKxiEYEEBECAAYFAkX/ bGMACgkQOpD/wRQI1/HBUwCglcM0b6fl1oP8iofWeovuhSk4+5sAmQHrgf2pbqFW 1oTBNS60dNQjA7VdiEYEEBECAAYFAka12CoACgkQXeJJllsDWKIizACgqk7R3Bhn GgzraKbcP9qSMhbYBr8An2Xah3bURySnK2QBDx4GzNM/vCTqiEYEEBECAAYFAkdZ tOwACgkQcgQ2cL3l8e4/XACg2opaihfpMLeOKb2bNSD7cLpI3N0An2A2r+PcOgUD t3qIIZ8i24HAhBnSiEYEEBECAAYFAkdZt8kACgkQ4Q56CecvefrAfgCfU/NbkK4w CiFMyviXo/F8tOEGyqkAnAgNaSmDzLkYZxHlM0SXosfHfV9diEYEExECAAYFAkda cyUACgkQaGtW3WCKJJsOKwCeLKhorr01GCKnXR8QaGvImLVOm98AoJpyR9WMJ0cs X+CuEdzGJDTlD8pxiEYEEBECAAYFAkddIIAACgkQt5wosOl/hW0OtwCgposF7nuk dTQ1nsQd1AGHb0CkQzYAn06bBOKMXsPcN2VvMiO2hiv9FLhniHoEExECADoFAkdc k2IzGmh0dHA6Ly93d3cuaGVucmlrbm9yZHN0cm9tLm5ldC9zaWduLXBvbGljeS0y MDA2LTEwAAoJEOdekMA5zDPbZ9IAnRTxxJl2Rtv1ZbnGsOuPJ6musP+5AJ9b8b3Y 9BL7PRHzWgQjzALVVXRrdIhGBBARAgAGBQJHXR/KAAoJEPG6TB7RyLqP7nYAn048 cLE/iNKJFxl/RwkY9VcRedkrAJ9+Y6u67OnG6HneUhzqGvMDbaGmAohGBBARAgAG BQJHXYVBAAoJEIUGW1nVLdGnUJ0AnjF43FY5SwhcW2JmuPVu1YnWfrwwAJ990zkv mIQtRCrxMzMgThz4jVaoEIhGBBARAgAGBQJHXAvSAAoJEO2/HhEm8iS4g2YAoMWb nnF/sbeM8+WToKO0nnoJrXVAAJ9iX3wXtSwAqrK+3X5imRfXGTxh8ohGBBMRAgAG BQJHXuTeAAoJEIXCJ+WlVzjy4fQAoKz8piSTCDPkv0qeNq0bdoDs9mOxAJ4lO8Hp GDqjYheaAvKG7tFZ1fsZjIj7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIY ZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJF1dVYBQkLk/wtAAoJ EO2iHpS1ZXFvjEQE/1HviHOOSHv0ZuOd+H6SVlkwnhmx4g6fpyeeOa49lywggMBL 8zddB/928PMYFQQ+pvYmECkOK+O6sVO2NkubopZwE/hUjt5sc0XTYQ9Lvxp40N/K UR8fSR5FvLQSWYGYRDXkK3t3Cta83ZeJk2IK43DpgVoFWMN6x69DlRGTyRWbB2Vd RvSZz3ZKp86p5cnwMT++K+pNxq+eY0UJorLRj+SIRgQQEQIABgUCSES5dgAKCRBQ LE8plp8qHbO7AKCPmi7Ri8FKIY/Wf9Ksa2NFDxUnRwCcCdAwwG67ZmplFNtZlVDW wFEcvT+IRgQSEQIABgUCSFlvKwAKCRAk0yv5qpXDSUwfAJ0TPD78S3J8UvoziG+b TCLTlPz1XwCgnWlV3PBKvOxuGSAdm/DOMlY1ogKJAaAEEAECAAYFAkkGvzkACgkQ Ke5YuZaGUXFYtgwgx9yOo8cCR2a0d/0J8Ux8wAnjLI8m68BCiKW6HmAzXx/mNX2e zicSEyqcvv4q5XdpvSrcA2kmlREBpu7mmnyerUuWWsTLMbi9clXaKRZ6yQJQBbrR YwrXtzdFziHqFjw+hC19uVXlPhXYa/8YL6aCO4JUlzWWgVF8xHupfRTIeXuGLkC+ sWww2VmSm8Fg0FBG9jpIt4wYxNMI77so4szE/hoFQSdRtY1lC18jjluNiygGNQQP n7r5OKwrK9hX1gGZA2tGYVX0ZoYASRPZcUUzaYPH5cZ86SAg15zzroVD4etmk/2i I4sdzR9PyKr0zUp5FNSAFRey6avPAhaTNsyVDRiKmK3PnZF9H9HaRLJJnQEcvevN 04Vg10VW/O3zCFMFi8zuxUP6ygoDdWZT9jR4wbzVEyFY7AUwXnStDd39p3oamTb9 XtlngTJjmVBZIOlap4vmKsm0t2xviaxto6uR+656Ya49+SoXp+u5+dGDT2o0kFlN aC5r9zovItqdDYUHtn7DsIhGBBARAgAGBQJJZyWPAAoJEEc46iFldJl61+EAn1jp iTpjqq/l1oKwJQYDB0WsqGd+AKDEiDHvrN46b58gzQKdVbs472bFS4j7BBMBAgBF AhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/ dHlwZT1DRVJUBQJIYfmJBQkNGHReAAoJEO2iHpS1ZXFvdAwFAIshSBfY4Zn4BQfa p1gTIjjcRy/v/bBnNMf8gMXkfm1FLTAaanO+n+lHsTNErPtaEfx8dyjvEg+wmOba qAJYoR75pXBFbLKdiN/P1Tp5Wd/C0t+cTT2datz2PL5XFKAMRko9rST8C1MWOiri H8akc6U6M+1Vy/dYcO2Tf3DxrXDLTFyrkfV9oREMsRFZu6W8P7UT578Epin/sTYY A619IXOI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpzaW1vbi5q b3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCSaEuAAUJDq1aTgAKCRDtoh6UtWVxb4pU BP9f7+9yeYZCJTvILOWlsYIvl7J2P0em2qYn3NbDUS1yq+BUO8udTYNWwyxX9zGT 5obhX9bhcWgms/UbGMsvlZcOT+e438P0t1q5q8u+FOgZtfkgZvyacCFvT4Fnd00B +RaaGZ2atnodvhN8qpzHIf8GVrhzULEtdA55BRw+x5f6ORdSD14IFWirQ4WWKaXT URx5LIRxs6twYJawkumU6m4KiNgEEwECACICGwMECwcDAgMVAgMDFgIBAh4BAheA BQJAhr4rBQkEnwT+AAoJEO2iHpS1ZXFvkxgE/2ZfCBqYKIe3SDM0tOVNrIeSZuVN Uyn2xoqRKK4VomvTI1eMShfGa0twPVlBB5xXHt06yRbwjobJykmDc/Hmteel+FVW OcehnXq8T22gLENlEM0CUZellosNwFwdnWGOHGZs/B4BVCh2pzsCra6di7MKCznZ DOHX3TBLoqVHjWzCldxtwc6Y7fAsEtrLVos4+0JvjQoYYgHQyril5ywHYs+InAQQ AQIABgUCSw6cnwAKCRD1TYragIIf6syABACYfsh56PcvpDJ3pGPoylowLFW4DEP1 4dFlADmaZd+SedFZqXI/Vv+7fT19W1cx/HqG46WwmSQjPYSqI3IMpB4IYMnsDYDn is9GIXLZyy/s4i8WBiiuRkuG69Q+SOjyF4X7MBh3UB2zkelpHHe1OTknOQ+7qzpZ rp6YhpAMSmSx8ohGBBARAgAGBQJF6qGjAAoJEC+VFQiq5gIukCUAn2UXazhZrEHL vZH0c56N2LdNHYI6AJ4zZnN8vY09pgpA6p7+YGQfnjuyBohGBBARAgAGBQJK/ASb AAoJENG84OKPoRoVuxQAnRhqvmMVRkSQiHLSQEnXu4zO2SiXAJ4l9/uWrMqAKUPe BcxbT7xrnru0zIhGBBARAgAGBQJK/BdwAAoJEHJZXrGBcEuTMP4AoKtme6FdYL53 bVxbHklI8QwQEx6jAKCPSXqJmdslSfamkqA0dTncqUAZPohGBBARAgAGBQJLASuc AAoJEBgFUbrZWjw1PeIAn3GHmjiGSmkJzDAKpovoGEviB4DQAJ4+tap00n1o0q+b +8YjEN9tCt/VZohGBBARAgAGBQJLDEARAAoJEHfdleLqUuz0LZMAn3fBmDQzpfUX yhciz6dUirKC0L6aAJ9IbQB4y0s1o8eR2ZxRXy5cYB30FIhGBBARAgAGBQJLDbh7 AAoJEI53TMap06Pgx1gAnArZ857v7THGYpmTCjbwBz1oh7+4AJ9CNLFSBqnrZ+9p YKH12RiFHLmuLYhMBBMRAgAMBQI9XrB1BYMBV4o2AAoJELy7xJVxipJWGZ0Anjly M5hKGecjlTcoKYWJlMDjf0vCAJ99oFg8mkzKasg3CREHi3Y3Fu26EohGBBARAgAG BQJLHGQ7AAoJEMcaTGXwWbHRLcgAn2h+moRVxidIb1mADTBGcOy0DjFjAJ9JLJMZ gCvnQEmvyZcIssqTJ8Gx4YhWBBARCwAGBQJLEp4JAAoJEPKthaweQrNnE7UA3jYY Ov08+w9dAdbxBmwnL+Lev2ZdSP8M+YS1pXIA31NNq1SYUuqb2CVCGUmMo8m/a5uS Z/0c2Yyr5OSI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpzaW1v bi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCSe3n2gUJDvoUKwAKCRDtoh6UtWVx b8gaBP0SDiN4gn0EUY2PPLQvFNkvZ96dIpHbMpjfjkmYSJF0zhgcD7bxWXjXDNng BblX3JMs3yhg1GfQLvLVpQ64FakTT/XLCo9VecyFxILzq4aSQHyxG6OcAKyq9ibp Y4YtUutwV+jiO1/Zos8cdtsyDdn5RYYe6v27omKYRKrGHNlk8NjAQC2pONY8MfPz MohWOcGhwdVYatAZXYENCo7hvlruiEYEEBECAAYFAkt731IACgkQchi8veCamme7 FQCgkuR72TM4Ii1XM3gNK/u1j3B38NwAn3GgZ51dtypPDikroOtv+W3J/bI+iEYE EBECAAYFAksBnFgACgkQ2yYwJIHdsGU/+gCff51YjGdTyDHizwOHy35NzqcJMVoA n3olfNMrg1kyD1ALOsJrRzgNyBkhiEYEEBECAAYFAkxL87YACgkQgxIgkKLogl4D uQCgvZr657F1MuZpnNSIjkwcd2ptvXgAn3eAnUDlROcQMZ0mRLYU9CX2yfdZiEYE EBECAAYFAkxN8UgACgkQZR3zUj0j8l2XwgCgtRkGwT5aWUYbHugdou4OuCN5LzIA niyPXGVOll6eMmtikWqz2BvJC5dqiEYEEBECAAYFAkxN99oACgkQv2Bwi0hCbH4U TQCdGh2w9AKqGWfgM80p2l0bS7kRwIEAn3NoyUgMmxR2RCscRlymHiAO27adiGsE EBECACsFAk29TNoFgwHihQAeGmh0dHA6Ly93d3cuY2FjZXJ0Lm9yZy9jcHMucGhw AAoJENK7DQFl0P1YOFcAnjf2t4YAmxXRd3d0H7huUtVBqhtsAJ4uiqVhIskY+of4 xIMhO5JSw4GRKIj7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNp bW9uLmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJLg+AvBQkQvjD/AAoJEO2iHpS1 ZXFvNrAFAJhV4iJili/lBcZSvLUOTgVd5CO7Av33Cu/zOYT7MUW2bWWY4aB83xRL lMCIcwGFU8Tyvjow/lZLu82nih/15MMEBcjqi7XmZSszrrB0TULWWP8C6XIpSoap nVDo+irjiUjxiVnXK+ML7z5zVGeJbqfzSQdKUWBiYuxEJ6x/1E7hXW/WCgCjz9Fc NbSuXNyMIpE03BlAzpILz9n1AY1ynVWJAiIEEwECAAwFAkLYsPEFgwBU+d4ACgkQ quPmzmahRGhfdA//cVfLmv3s4VjruQA4BxNcnljFkLHnCMfUwOUFUIPKaYwNxNkR Hv5SWwsHlYcH70prr7spkUMO9XCHZqhdXc/UfJm+tjda9Ow3D8Ym4bR4uKaBDcSB 6rxG7Tkde2OkJeA1uD4ytbrfctsufByul04qgrW4ON4xHG15Na/aiyZdi4KKWCUN SiQsH5/gwlWnUQNhYFXJTBlBiHYok8KddvhP+9KGKDMy8JvuzFIGyVKUS8rbHOX6 4U/dYl9pT6HspQBwENOvNVomsL3sZarQD7aPRo27Z8N9qEjqiCXG2zITfBvO6ZLw YZOcF31TO5MrrQRYSB3EBRnrhpGaYHl7eNDXFCX35/ijn3l84HUMJsDZaPStGq8T aSLpILoL1XjbbCo9YLVuyJGHC5r5Q8koc/3MrYLjRFPtVtGXhu9046YbPJgkpQil XDVnMtpe8/w7wd1T4m2nOduf0sNWSKuw0oURx7/MdNv+ufCxFu4Er72eI98rmUjY C9pYD82mKEKPvMrByvXalYlQVwByMFWU5l6bW+c8UHB7RVJ0edSA0gHwRne4I1OT STXyip4C4wycuep5iRjMP/tdxeVxXIxjwvbemSqELne9divE0SHM1oBjJ4JGock5 eCiMD8Vc1p1DdCJHLDv+cjtybnVs82Aeq9UKJgkgAAProq7LScFbQVrAgOeI+wQT AQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpzaW1vbi5qb3NlZnNzb24u b3JnP3R5cGU9Q0VSVAUCQkBc0AUJBlijpAAKCRDtoh6UtWVxb9EIBP4pk/ztQF+X V5L4krXEmbjAsGb9C+I+4OoRUY/mWDvNAjGppkhFD+8Q3oQvg+1dcPsJ5rQHSXgA 2w1bOsTknK9DamyY35LHd9T0ZSllXOUX9q3QeKiDBYc2KB35ZtxKNIA4Lt5qDgYb SgtlERxDY94BCSy4YApdwATei3O32t5IoR+BroeIr+w+zn9mVulkn3pRXByYDX/s cxcTtWwRL+UNiEwEExECAAwFAkLYsNEFgwBU+f4ACgkQa3Ds2V3D9HPaIQCgkWvO hiORHkA1lht5f+jNB5xAKYAAnA0Kg/JKZrGvA7oGJR3XVs7zRs/FiEwEExECAAwF AkLYsLEFgwBU+h4ACgkQgcL36+ITtpLuwACdFi5eiQDLrrGLThgPU4O2yxgXDucA niWqyEVWfs1HnLOe7S2KhgsXDJzniEwEExECAAwFAkLYsI0FgwBU+kIACgkQGFnQ H2d7oezt8QCfXjmAsN4+tvGt/A3Z0bn4i6+m+1gAnihGZHKHHCnBqEYT7nbzXPZV OtD1iEwEExECAAwFAkJJRAoFgwATzkoACgkQZr5x/2dIaIPZGACdECs/Brf5HO0P WPwIYf8GTur2kPUAoIHIKUWKCeoNUF2FnUzvx8b3uC7viEwEEBECAAwFAkJNgrUF gwDgKBoACgkQO46kH4L2EkA4fACeN2w05Staf2i18Sdv9aRax1hb53AAoL1ZYuFf T+qVYT/afh9wD7UPlEVUiEYEExECAAYFAkJJAYsACgkQj8NyXz1o1joWfwCgtb8m tlI8rg52vT5DRU+Ct3NuDfEAoL7IX823ezbe7HVegheirf3q7zmKiQIcBBMBCAAG BQJOXJv+AAoJEH/Z/MsAC+7uMLUP/ihuyOK3rCtKqNdP3FrR5lJJ1WMTLx+r1iMT X5we1RfOADPtl7rwlHdOGEI1jvae2iEFVyIiBy6eKn5L9A2HhBJ7wqZsXlqmrJgR 49RzhHx00UksFmS9uat1YfX+bOH5nuytaeZDCYwBA6/sSmtbeyfSiO6YASFnIO5F gM5ZCLrCFQUAb9mFAMUTI+IpYLoPanzHcQ2LvJsfqMc2U6OlyzZJl+UOPbA0jv3h hEBJBZB//HYsNjHzLk2BIq/3Ff+VZXMXdmUdqL7eIoIEZz6ep4L0KpUGdK5Zrubg D8yLf+qtxX6B+igQ8UGONki3bBggtO7CknJg+qQB24kuSRrA8wTkY4Trxvi6hywx eFCuR+205Aakjhbz0Y7dTdZp7zJIPlFz9dfwPfEgTlZx5g6cmG0SJ9JHYG648wFQ omcv09cA4P/na7W8DzB+wL7lRjLE4OuTWN1FMN2ZzWudJf4ruPdRRtSZV4kCElSj Ht+6NpvqgWeDH0Rnm5sjFxGSwpWqPOkYEGae7KVkB5xoVUe7htBdTiIL9eNabthj R/pSaeQD70nTIkoSQwxEnQIPq3gDDxyy+hvCUM2e2u2V150NErLW6BkORtpL71Ja yHhPhCgPcYHcYrhg0HcTqNDQJUPXpJ7ATmrfFqxjSreIuJ47YSISawW4xG3qeKRy MW28oNSeiEYEEBECAAYFAk5XxfMACgkQB5GvjMAzY/TEAACfXfWm6e7MyFL6snIl EmOWw/RRr/EAn0e2W0SRyLRrjMWJk6RIVAOxW1o1iQIcBBABAgAGBQJOYMgJAAoJ EFKbqWJpCnCxDv0QANhAtHg6TFyqERlQwz9zz4eragH7e3VlU4hLRURjjJP5zy6R IuJYBzm97rpegOtt51eLkMDOjYrnwEkY58elSfOyPLQmcQX06KCF6QH2iwJyCxsB 5oCQB9IBrmK/4rs9Co2HUwxI1rw6+rfaUAsr4aT6SBylbDcMP/XwBt3MA/kjaI53 ivrTsMFjH36ffRT3LfeVafdYwux1vtYPDCDQAq7KuWCo7Dkt8bTdoyegnnqfXhvM Wokxto1e+fkl4fLmjypWt1/W0fR/jXq2/oiNk6zS6EkVxyjq5m3q06v7AR6GIRaY N4ZQOEmHlLkXlQkHiyhvlv2JbjElr5D/jb4TqUid/GrzUosDJrv+RBd7gkccGokd zIPw8D53zT38O+geT+ek6iNSVByfqCkG2emuVGjWsUfj79vrsWeyYIxksyYptx0u OHWa1ORYyRhZ80uogo0h0MvvY90j4uzJQKfdAAfF01a4MgmBDBN2YqprRqB3kInL P9GxM9zgf2lv3jYBfNBjoLZxKlaFH5ISTNHbW0ud8SfTEQTKkX6vS0zkvHCv4Uea GQ0qIgDHps88n0Jqk+9apb4Ms1aKkL0E5AJY63Z18IsehdbekgFMvg2FZiA+6J+I UvCCnG+mWQbDbcs0aaIiiN58f3gpmSDq15iPyrEwSzOSBKbWmskMd6iX+fk6tCFT aW1vbiBKb3NlZnNzb24gPGphc0BleHR1bmRvLmNvbT6IRQQQEQIABgUCSWcljwAK CRBHOOohZXSZeiUYAJdfCtm1Aij3dVLTBpyIS1lk5iYrAJ4qXN9eQAJwFC28VZgu U+VVCPg2z4hGBBARAgAGBQJC8kruAAoJEG74r8KGV0rKw/0Anj3miI06v5jOKbRJ t6wwLINA7N6RAJ9pdfC+4JZ+SMq0w9cO3NKGEsJ12ohGBBARAgAGBQJD+NOWAAoJ EOFd2FexXDfRuzYAn2jjBwZqp6NfIRZM+cPQFWosanMIAJ9gZGuZXqOGcRHDYo1V wUK7Kg8anYhGBBARAgAGBQJD+NOYAAoJEOFd2FexXDfRRVoAnj+kNh2yJiIAI9JE Vccgdv8cdElgAJ9jZHFa4KIdIsdGQZ5G4qS0YkHwKohGBBARAgAGBQJEc4b8AAoJ EAixI47drUe278gAn15puEaeLjlpaTndlvxT+LAH/951AJ9b0Hlo7Py6F9c1liLs MNWNDnyvZ4hGBBARAgAGBQJEc4cAAAoJEAixI47drUe2X7kAn2STeXyx0720Av+k aloy7DBcbQ9PAKCeHu+tG0BJiaFJ5PlFL9z7YTf6KohGBBARAgAGBQJFjAuOAAoJ ECmqKFIzPnwjjEMAn1PGwa5O+Wkrfj8P+kUbrNDbQ4njAJwNHA9EwqAhV/iunGMk eXqyYR4ESohGBBARAgAGBQJF4eL6AAoJEHhn1Tx0eTXdNRYAoNE99BYi7z6tVqND nq2+59mx8xSqAJ93ptV7L/TCXEUfcG4poHiZpSgzO4hGBBARAgAGBQJF4fboAAoJ EE1EwCDFwFuumAsAoKvDeDQF6vBxmsDQDRAyaX2hZz81AJ0fENkdFcOUkpvetayT WsiPUq9mxIhGBBARAgAGBQJF4grUAAoJEMfZMCWd/6rUgIwAnAq+iewnfvQpYXMR QPQHFQ1Q4oIWAKCbUj2FEFUlU6cFznPqIMnUzc2Az4hGBBARAgAGBQJF4gz6AAoJ EFUVYHaRYekRoGAAoLkeCD2erYxzbJSjia1ifnlNnSbPAJ9S5mNGOnmLTAYxGOVJ AgAXAtZtxIhGBBARAgAGBQJF4hFDAAoJEOVE3gebfDKN370An1/jE3l8uC/UzrtY 4E8FzB1pavjwAJ4sE44wMa8Bidx6SJny2pLFYxicZ4hGBBARAgAGBQJF4i3iAAoJ EHZJQAVJruv27z8AoL1S0MZUyWBxb0qLdQBtaDnOEDwDAKDFehqTzLa4GI1XBWnM 7+5vreKy3ohGBBARAgAGBQJF4ltVAAoJEFuTwC+eSpyd5QkAn0InDM3Ef74GDEeg EJi9CyV68RozAJ47ClCsb4r7WGCYJoplsFHvvGdWGohGBBARAgAGBQJF4sLGAAoJ EKrPs4YhG27vaK8AoO3ONc4vHoteNr4J1uO/saI/vuMDAKD4FSdsGU0DcMUzZwIx +HT74UcxRohGBBARAgAGBQJF4sNGAAoJEH5OpU/Qq0B1hCIAn3odxjrFGyc9x8KC aeBYXPcM4nN4AKDc7V60rCdebbhtFhEzdw8uw2TH34hGBBARAgAGBQJF4s6iAAoJ ENoZYjcCOz9PL7wAn2GeQZncnl0YvUhMebrsLnO6mHCYAJ4+dnk7nGWFch4j4Pz7 PUkakSavTYhGBBARAgAGBQJF4vk7AAoJEItKxIGsHnFex+0AniZ4F5qmExcEh9I3 3H/iGtQ5QKGpAJ4+FJNR7fD2hCbEb+bzWLfB5DU+74hGBBARAgAGBQJF4yKoAAoJ ENOjcASuTRzUKTYAoJeMX1gnPVKfjKvcCF2XOOFrhlaUAKDfb/kQ6DYI/0iz2qoz s2anY4cAE4hGBBARAgAGBQJF4y0qAAoJELOx+BoCeHiAVAEAnAhbHFmonRhodwe6 FSak7SPDeFxKAJ4w73sJn9Zb36S2jjtnOYgmrfgLKIhGBBARAgAGBQJF40DdAAoJ EB9/MmoS7vYqpcIAoKxAoqVD+73ldkTmVoMa8SGgRczZAJ4kyDtzFs+bsxU87qr1 QnAbJC47vYhGBBARAgAGBQJF40D3AAoJEDiaVjzCcqEmX2wAni+Nw8JZMW2jdHxu YV92EyNvMXZ0AKCUTA6JJ39mCUtXEpSgBy2zlApjyohGBBARAgAGBQJF40uXAAoJ ECic/8DmPNbWs4IAn0vpU3ALdg8yT0aq4qQJdX1oVi5bAJ9EVqkfOkE6WqPIaA5p nodCaTIddIhGBBARAgAGBQJF409IAAoJECGntTuACWnvwD8An2FF/JEayVKOL++9 YbNLXpBVeRxaAJ44hot3GOOSS2OIZZ9L/nw4ZRiHWohGBBARAgAGBQJF41UFAAoJ EJhL04CsX3AMMy8AoNI1odP+fQA6h4CLWjaEK1qndHhlAKDNY25jsLzqCcJn0JqQ aNN3gkvNx4hGBBARAgAGBQJF432jAAoJEM8SNHyWi9WHevAAn2TcTFyH84jOpejO mDSTrK30xQx1AJ46kGnM5mgIVuqSDrl/1R4PmrYN44hGBBARAgAGBQJF5Br+AAoJ EGQ2Q2EJ80AkeQwAniuGytBx5JvGcFJV5NBliOGfxhs0AJ0be5jI/yWjK/bn88x2 wmNp3mcA44hGBBARAgAGBQJF5MFdAAoJEHCyAyE69Z0W5t8AoLgQz3ZhGe/hzwQ2 bBTMeV12AyzhAJ0QWg/BHvHseBde5/14a+V8pt0SXYhGBBARAgAGBQJF5YG2AAoJ EHkOjJRh/9qrW5QAniwa6vfWlEt1H8oeUOjJCyp7Ad4GAJ44QWVps5BWoeNpJWcS 3m4cIFYEXYhGBBARAgAGBQJF6qGjAAoJEC+VFQiq5gIukCUAn2UXazhZrEHLvZH0 c56N2LdNHYI6AJ4zZnN8vY09pgpA6p7+YGQfnjuyBohGBBARAgAGBQJF7eS5AAoJ EDBp6SG3moccZusAnRbuB1slbRLAebBjUhTlyvgSdsibAJ0V/NfekMsvwX6e6my5 KBTFY4WyuohGBBARAgAGBQJF/2xwAAoJEDqQ/8EUCNfxSUEAoIDQQMHKQdtsKlcQ KL3du2kBeaj+AJ0WEKNgRh8NgrcnppW2TpOygvQqM4hGBBARAgAGBQJGtdgxAAoJ EF3iSZZbA1iisQsAoJ4LWFLNtSwDA4bNi+qIAHIVkEsbAKCW86SWOi3QcT/cZ+ed MZdqTTXeRohGBBARAgAGBQJHWbTuAAoJEHIENnC95fHuRb8An2E3kaGysE5hsrKB fkIBlco2Sb2IAJ91er1Yq2k8VOpUsBie/dysvgsYh4hGBBARAgAGBQJHWbfMAAoJ EOEOegnnL3n6TYwAn2rA+SuEU9y0LUzxr55/wc6ayG+MAJ0TsyBrQBwA5tj9xg27 dqvkZy+RYohGBBARAgAGBQJHXAvSAAoJEO2/HhEm8iS4E9oAmgImQfzgb6MQ4drV 6xO1FrGkP2g4AKCs9bCw4TPhsjuoVLLwnOgzE6+EPYhGBBARAgAGBQJHXR/OAAoJ EPG6TB7RyLqPJVAAn0ck2xBfVEwOXIAvYfiotTAAzAsFAKCgmHeAr0iUrC6YICas URoecVoJgYhGBBARAgAGBQJHXSCAAAoJELecKLDpf4VtzC4AoNG5vj9Xz/ivXays 7uOd6aqhapRBAKCMpQuXSYePOXDCEkiGG+YDtoe5mYhGBBARAgAGBQJHXYVEAAoJ EIUGW1nVLdGn4mkAoJUnzThPYZZ+i51IjmXANTqr7ys1AJ9pDllBNW6SdJ0/H/fK 3o9Mda/Pq4hGBBARAgAGBQJIRLl4AAoJEFAsTymWnyod1UAAn2eE7xX2Tm0cJTuG M86y/DTgYEWOAJwLQTb+RmtjruSpboc4HQ+HHP4T9ohGBBARAgAGBQJK/ASbAAoJ ENG84OKPoRoVgpAAn0UxXXsO8AC23hNCfuvgjSaA9kYnAJ4u5O69pG6D9X0ZmxSj BVSxv6VD2YhGBBARAgAGBQJK/BdwAAoJEHJZXrGBcEuTggAAoN5Z9FTq5ZsRFYBM q4pM1IIi5TbhAKCNUYEW6JV1TeYtU216eCIVuOV8Q4hGBBARAgAGBQJLASucAAoJ EBgFUbrZWjw1BBAAoI0+3cP62FnI3Z1TRcf+OHU9VnSZAKCA2suW6DOY2I/dKl6c P44NTvUc0YhGBBARAgAGBQJLAZxYAAoJENsmMCSB3bBl61oAnRtDOz1x35Hloibx wa5A9TC7tGprAJ9Enw3pbl149CBC4ebPdXkfG3HFwIhGBBARAgAGBQJLDEARAAoJ EHfdleLqUuz0thAAnRssFLNOymUkbXRMV2xCTBxX/MpfAKCYjyOzjPSVoS5eNl+V lRSOAM1Gv4hGBBARAgAGBQJLHGRGAAoJEMcaTGXwWbHRgkUAnRLnoCpmX6989NXj LRnSNS/dzq2UAJ0QHa6xy3Sn2641FpQ4LLsXwLrZwYhGBBARAgAGBQJLe99SAAoJ EHIYvL3gmppngOUAoL/gZ4GkR/ECCqkEeJCUzppwhvcuAJ9KMET7MeaihS3CHw97 4wVY0hEzI4hGBBARAgAGBQJMS/O2AAoJEIMSIJCi6IJev30AoI/sfMGmBnWu+UNU gQN22/V8c5NqAJ9eWEaU2hdXCP8MsbBUwIxzUAlXMYhGBBARAgAGBQJMTfFIAAoJ EGUd81I9I/JdI28AoMbAB2wCwsanUZwRLvw9Hs7iCyz8AKCeXydwOVIUAX47I/wy OwHwjZVi24hGBBARAgAGBQJMTffaAAoJEL9gcItIQmx+ngAAn3pzLNJ2gaHihWR5 KIFZuM5rjZVkAJ9Wq8/Vq8CthN5QAtXLwqEmiJCeVYhGBBIRAgAGBQJIWW8rAAoJ ECTTK/mqlcNJLoYAnjT3gs2YZrIjXS+XrW8VGc1W013uAKCophfcMkBjGBdHkDUN WvDce6uGJohGBBMRAgAGBQI9WPK/AAoJEFeTKdPAGyoiF/cAn0dqzIl3Ss2QfeWn AOWEkODC0MsoAJ9Tb+zN+kgKH0f+91o6pT6VQEPn0YhGBBMRAgAGBQJA/z93AAoJ EJb/mcQlwOwLW7EAoLqAEMsXFUj3ScAXDYcvQaR+5lN7AKDPPs/9tixtWkuHbW9S PuaUfDizQYhGBBMRAgAGBQJBAMp9AAoJEJ7XWD/BTrKC96AAn1wDNEETZX6vDoCY dUGpV8NUiyWVAKCgKBgAABm+xdRzvY2ytKMCCPLLHohGBBMRAgAGBQJCSQGLAAoJ EI/Dcl89aNY6Fn8AoLW/JrZSPK4Odr0+Q0VPgrdzbg3xAKC+yF/Nt3s23ux1XoIX oq396u85iohGBBMRAgAGBQJCSQGQAAoJEI/Dcl89aNY667EAoKu5aEpTLn2dplFP Pc7+ojRJc+vVAKDcmOrKUKjImZWIh+Y/vJLwOHYi84hGBBMRAgAGBQJF40TIAAoJ EIwl7g8NwLfW7wgAnjB0msHMLIjZvK8oSH0kWpPxmiCGAKDKaUqkSvY0y87IizLQ YijodqQvDIhGBBMRAgAGBQJHWnMlAAoJEGhrVt1giiSbLcoAnRgf744XS2aZvXzX pdkvqJo8QDZ1AJ0aBMP918C88Tf5Nd1sEIg+t39hdohGBBMRAgAGBQJHXuTeAAoJ EIXCJ+WlVzjy1CQAn11r9MoJ0GKP4+b3es9SmnZGyWr3AKCnGQnlg2tgJrChzJ9p A97GwdkosohMBBARAgAMBQJCTYK1BYMA4CgaAAoJEDuOpB+C9hJABNIAoM+b0ThD 6p/FUCWdw+nRYV0CEo2qAKC+QaW6C+mZcFBFIx6AfGyRkE8SEIhMBBARAgAMBQJC TYK1BYMA4CgaAAoJEDuOpB+C9hJAOHwAnjdsNOUrWn9otfEnb/WkWsdYW+dwAKC9 WWLhX0/qlWE/2n4fcA+1D5RFVIhMBBARAgAMBQJF4sR8BYMChj7cAAoJEHMcr9NT waMvI8YAoMfRnlA0X1QwWBSFe8ZHXyZX4hAwAKCQz64vRmNK7+9cbAzpFCotaw+h i4hMBBIRAgAMBQJA4Fc9BYMAk7TsAAoJEMiB3UdK56tHYAgAoKntYOktDGj5H5u9 hfIqE9YIayhHAJ9PdLPDyKM6C01fd002zQe/eapsj4hMBBIRAgAMBQJCHfAjBYMA PyIxAAoJEBgoK2tFOUoBYsoAnjEtckRH/RlpC18blWLwEYDTSgw7AKClQUzPgy9K Nf3j7/MsP/Emrl4+SIhMBBMRAgAMBQI9XrB1BYMBV4o2AAoJELy7xJVxipJWGZ0A njlyM5hKGecjlTcoKYWJlMDjf0vCAJ99oFg8mkzKasg3CREHi3Y3Fu26EohMBBMR AgAMBQJCSUQKBYMAE85KAAoJEGa+cf9nSGiDgwsAn3jgiKCQHBL3u0JnYrJ61zrp 257PAJ9aWgtpDW2H3FnjuFzpx3oJT1cOR4hMBBMRAgAMBQJCSUQKBYMAE85KAAoJ EGa+cf9nSGiD2RgAnRArPwa3+RztD1j8CGH/Bk7q9pD1AKCByClFignqDVBdhZ1M 78fG97gu74hMBBMRAgAMBQJC2LCNBYMAVPpCAAoJEBhZ0B9ne6HsQUsAn2Ln//Ts mEqIL/bcLtt8Vz82lqjCAJ9a5TbLuUOp4+h43F2CJjrUBL7CK4hMBBMRAgAMBQJC 2LCNBYMAVPpCAAoJEBhZ0B9ne6Hs7fEAn145gLDePrbxrfwN2dG5+IuvpvtYAJ4o RmRyhxwpwahGE+5281z2VTrQ9YhMBBMRAgAMBQJC2LCxBYMAVPoeAAoJEIHC9+vi E7aSucUAn0cfeij+j8djU6jDPm/trQHL5/KoAJ4ySAysyVQ8U3fZ+OY3XfYKXPfV KIhMBBMRAgAMBQJC2LCxBYMAVPoeAAoJEIHC9+viE7aS7sAAnRYuXokAy66xi04Y D1ODtssYFw7nAJ4lqshFVn7NR5yznu0tioYLFwyc54hMBBMRAgAMBQJC2LDRBYMA VPn+AAoJEGtw7Nldw/RzYR8An1jLVjT/3xOU0Xd9TV1ON39qxJetAKD6GoejRHaD XO2KBoQnrGVgp9wVUIhMBBMRAgAMBQJC2LDRBYMAVPn+AAoJEGtw7Nldw/Rz2iEA oJFrzoYjkR5ANZYbeX/ozQecQCmAAJwNCoPySmaxrwO6BiUd11bO80bPxYhMBBMR AgAMBQJC8cBwBYMAO+pfAAoJECmqKFIzPnwjf58AoIpuzzaOyGF3g2Ky9dV9vqEC BNs1AJ4jRU27Zwovy/hznIR9q+o+euIjoIhWBBARCwAGBQJLEp4JAAoJEPKthawe QrNnybMA3ixjtagoUDd5XAO9addD51xRSP6tBBnSpzAniPcA31KUOXObtU+ns4gD rv81TxB+LJdJZMdYJkvC8aGIawQQEQIAKwUCReF29QWDAoeMYx4aaHR0cDovL3d3 dy5jYWNlcnQub3JnL2Nwcy5waHAACgkQ0rsNAWXQ/VgiLQCgiPqK/6keqoRc1gY4 ezjVthcLdboAnjD5FfICPgGIaPM2+7HKj/FrcSJHiHoEExECADoFAkdck2IzGmh0 dHA6Ly93d3cuaGVucmlrbm9yZHN0cm9tLm5ldC9zaWduLXBvbGljeS0yMDA2LTEw AAoJEOdekMA5zDPbiTQAn3DRwnGevBwyDnhC8QwFVHLOjoXtAJ0W6gyPcHIha72N zQYU3+Wa1q6dOYicBBABAgAGBQJLDpyfAAoJEPVNitqAgh/qT4AEAIUmlRr9EnWT vdNqDHoVQoThJU/wN2V8nICTngZ5C6A0zP6VTUdF24dBlIoI6k13vkXC1/67lXU/ a9TTpi4IEzRjrb0tF5iRvFBQUlduByzbNJdGgWkkVzmsBQjSD+WeVk6ApDpdw6s5 5Tg7s/643H6eKHr54AvWIekMB0C9lOnniKIEEAECAAwFAkJG+cEFgwDmsQ4ACgkQ v9buWFf3fwmU8gP+IEINaym7K7FUvZWuCkdJcHshCGVBlTOqI9YB1CTY8LNdRHp8 jrRXBZFZODPAziH/1ZoiSQjsgTg88BUpxLLSgJHZOqhuPMWlLwa6WsytKGTkuFCn Z+mkmHKe7LVnjSKr8OrP7y5OhFtdVqb5dgi9SIeK2ass1Xo+9EWZbco+v/OI2AQT AQIAIgIbAwQLBwMCAxUCAwMWAgECHgECF4AFAj69R0YFCQLVjhkACgkQ7aIelLVl cW8Y2QT+PjSaIJj37ijex+wJ/HBLkyydqWYVZhuTPTVMLst6DQModRBj3Xi7UYlg g7lJ6tRxarVuF/eYW6Zv4jx5FePxKLBeAG+H4FRQH+ogIXeBlDx41X7L25wjSxxP hQ4CwBNMmSKckD84LdQiPrygbX8JQLsJ08XuTzDG7740d0RotqxizGhYP0QJTD67 VvffoQ0gLtB5chw7Pc9osT1+j4yizojYBBMBAgAiAhsDBAsHAwIDFQIDAxYCAQIe AQIXgAUCP6QrUQUJA7xyJgAKCRDtoh6UtWVxbwueBP4uh9ZEOuSjt2n5OpfuAabl srRzhlgPfluBMfjHNynEFsGjn81l81TCqStRln7wDUj95ZufSi3YvoYSFG1jffGM k/k2trgINtT3kxaGkfns6dykBuV7Ki2wWqdJkTe1ibyai+RCqt+J1ldSUuHdfQZ5 wALPJQRb4Hqi7M29azFHcfxbMLf3yGYyBuKC7eBVNVaR58UTFK6r0CX3T7eGuk8b iNgEEwECACICGwMECwcDAgMVAgMDFgIBAh4BAheABQJAhr4rBQkEnwT+AAoJEO2i HpS1ZXFvkxgE/2ZfCBqYKIe3SDM0tOVNrIeSZuVNUyn2xoqRKK4VomvTI1eMShfG a0twPVlBB5xXHt06yRbwjobJykmDc/Hmteel+FVWOcehnXq8T22gLENlEM0CUZel losNwFwdnWGOHGZs/B4BVCh2pzsCra6di7MKCznZDOHX3TBLoqVHjWzCldxtwc6Y 7fAsEtrLVos4+0JvjQoYYgHQyril5ywHYs+I2AQTAQIAIgIbAwQLBwMCAxUCAwMW AgECHgECF4AFAkFvxFQFCQWICykACgkQ7aIelLVlcW/xbgT8CO3clOxFv4L9gsJt xe6lRUISlvmjoiQigmw8PIQwGfTCRYA5oK4Mja47+1PzbqzY1AlEi3JyFpIQMDCp RhkhfHGjOVH2vap3aGXxSFr8JGM0SO1Z5+88uNo9N7RAi4koaykIy+GYKypoyF9U LGj5QL/bUYgzLLG8etNasmE/Dl88mEXhY3wuPwaeIEbcv/HDHBymbv7VplP/3Vht ANfOz4jYBBMBAgAiBQI81QcrAhsDBQkB4TOABAsHAwIDFQIDAxYCAQIeAQIXgAAK CRDtoh6UtWVxb4jyBP0arTNzMTakDhO8BCE03d0iru6sCFJ2qQeh4UAFXy8KZ5yb tWJxFT/Q7xn0uXKujJ99cXhuy7icDR13wWkRKG20IjKiNv9yzQaNR36+m58mjZu1 UDnGVm2PT9bELYmKTVoumi44QWgU5lgq5KZfWhsA5BQEqS5tp9k4CBBg36JCwjYx HfnWxymA1hSyMKPmgmPm6aFd+Lv9d3h5oTVs9TBOiOAEEwECACICGwMECwcDAgMV AgMDFgIBAh4BAheABQI/pCtRBQkDvHImABIJEO2iHpS1ZXFvB2VHUEcAAQELngT+ LofWRDrko7dp+TqX7gGm5bK0c4ZYD35bgTH4xzcpxBbBo5/NZfNUwqkrUZZ+8A1I /eWbn0ot2L6GEhRtY33xjJP5Nra4CDbU95MWhpH57OncpAbleyotsFqnSZE3tYm8 movkQqrfidZXUlLh3X0GecACzyUEW+B6ouzNvWsxR3H8WzC398hmMgbigu3gVTVW kefFExSuq9Al90+3hrpPG4j7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIY ZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJCQFzPBQkGWKOkAAoJ EO2iHpS1ZXFvLfME+QHcoVJUM3FqCzf/d+JhZvM5O0wtZ5qBxO793rsE7psgAcHV Ie5f87QZNtDp7ZmrnugyBhC67H2FrQKr8lqsIvKbaSzjro8yUoQtswVSef/OrhqS gEqs08Aifa66sowT1ZWO181m4BCC7aoNRovx8Huy0P+Y1Z2btPA+uu6UvZLh2iKq MP+95zloNHNHZWooG5THFQl0RdCJtybyDmLpn+uI+wQTAQIARQIbAwQLBwMCAxUC AwMWAgECHgECF4AiGGRuczpzaW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUC QkBc0AUJBlijpAAKCRDtoh6UtWVxb9EIBP4pk/ztQF+XV5L4krXEmbjAsGb9C+I+ 4OoRUY/mWDvNAjGppkhFD+8Q3oQvg+1dcPsJ5rQHSXgA2w1bOsTknK9DamyY35LH d9T0ZSllXOUX9q3QeKiDBYc2KB35ZtxKNIA4Lt5qDgYbSgtlERxDY94BCSy4YApd wATei3O32t5IoR+BroeIr+w+zn9mVulkn3pRXByYDX/scxcTtWwRL+UNiPsEEwEC AEUCGwMECwcDAgMVAgMDFgIBAh4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9y Zz90eXBlPUNFUlQFAkMVrNIFCQcvRSYACgkQ7aIelLVlcW/4KQT+IqyFzH4FIELZ 3kQrbgPDDqwEM80Xg/maosIx9rZVsZ5Zl99VCUaAl4t9O3aa0gAZGgLJpRrNaOPb TorjU5/sbRlUV4LJ8/KMG0oWXA0uuMxbPuQAa0u1cX9sqezgyveUHwpckqI5OPm4 Uj2b5vl6YAwNcnJAbcOdr9ZFx6Ckj66uudHQ91mFgG9g89jqCBy0uxe18vcT9t6z VcuzItbNI4j7BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNpbW9u Lmpvc2Vmc3Nvbi5vcmc/dHlwZT1DRVJUBQJD8yj/BQkIC2/UAAoJEO2iHpS1ZXFv nC8E/2m35x5385TCfpBBULbxdISP5DZcTlM9O30L+XZnn1lFVAFDQes7ZtLJfQtG UYzSPoA110G7ckq8YmLN46h++tV1cEdUNC/+pq+Z+hb+wGTdXL9z2cGYXH4YyUTP FYgqAvegFEpUQb2ApP9tOfnNlAu3gu74GUBN4AM1SVSOdyCApJdene5hCCFaplAe sSze2TQ3DMHFg9b3sOa1hyNI1pCI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgEC F4AiGGRuczpzaW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCRObodQUJCP8v SAAKCRDtoh6UtWVxb4FkBP9tBDCSdedRv15ohfH5pJsB6g7mByjDIXOWByKdpTIe 7on/WiA7CKWShA+zGGBEToD+6eTdlpyS8GvOk3abD1idUZEL41z2q55FYoWEF8o1 QXAwJylUjLUiMJH98DPXGVXiSknlBBfls97xNhSp8pFLqF9ZG8Fl3RJS4LWzXkjK qAqr1FkRCersY7PJC8xtIF5GStvga69kh3B1tH6oPY+ZiPsEEwECAEUCGwMECwcD AgMVAgMDFgIBAh4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9yZz90eXBlPUNF UlQFAkXV1VgFCQuT/C0ACgkQ7aIelLVlcW/oNAT7BnY+otbWxp6nuX2aKTnnmXVs VXS1DWFXLPplGwAp6b2rdlrm8pdj1BsXr9J4mLTBPdGmcJq7Yt7Srw9o/Lb3j9Lq cZYBIQP108oUMOQoDAgxgxln9ES0CucRAbFrrjeIFeZ9WM3ceoo4nmcDSXxOHTiz jODgj5GmhNvSYtE1V/wZxEgT1s91v0dNBYw3XP5deHgTuTpZskFf8wCk/kdLQYj7 BBMBAgBFAhsDBAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNpbW9uLmpvc2Vmc3Nv bi5vcmc/dHlwZT1DRVJUBQJIYfmJBQkNGHReAAoJEO2iHpS1ZXFvPh4E+wePsiIA /rMdtwMewEcEyNKmfcdRvbSWLJVykJ76BIMUTe2gBArDmk8IT+a38ydbYX7XfH+M mIDtKfTuGsZMmTjslEVSX0HCc9hDabhZpdSvIzpb2Ss4pYkyyTCn0MZqd73TCZMX /HtMw0cGT3wPtp1fdFj7TvH7IeMDkc/vCSPcZcxJuVpRvgqzHcKKGrxoO98IeF0X La5zEBp0JtNuHeKI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpz aW1vbi5qb3NlZnNzb24ub3JnP3R5cGU9Q0VSVAUCSaEuAAUJDq1aTgAKCRDtoh6U tWVxb+lEBP9fygV0LopkxFO6SKll/LZynbNBaZiz3dPki2vlWupTiQbMjJ4aliUh L7uMPX+MguMrcNhAtenA05/cAHC6UthhN5flKYeTkomGL9RbTn1fq05nqWmlbbh9 Ev3c7NfqBUEcamPip+KsvMzt6r5XIl/3eF7zOdg5Yn+/LeZdr9B0wuYgvV4L5nYD Ky6WkMA54gPNBtA2ps8yg2uZw7pWdnIdiPsEEwECAEUCGwMECwcDAgMVAgMDFgIB Ah4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9yZz90eXBlPUNFUlQFAknt59oF CQ76FCsACgkQ7aIelLVlcW9HKQT+N9SWzP9QXtBIA/eYqH6hMfSKoVF6edhFQk/7 FejAX3VE6ZVo7M1iPd70e++3nwlUYU9iUp7TaeOPLKjdCAUsDbpwNGSuj9oc2/Ba zRdjzjBqncZaOa76IzsIvBpLN9TPCcuzRMaggu1pAQMiGReFmApThaxCkOGwjFdm cWbydb0ngO4kbeHi6BXOzy1BTTRdK3Y7ThcRFvfYodeFRZDWVoj7BBMBAgBFAhsD BAsHAwIDFQIDAxYCAQIeAQIXgCIYZG5zOnNpbW9uLmpvc2Vmc3Nvbi5vcmc/dHlw ZT1DRVJUBQJLg+AxBQkQvjD/AAoJEO2iHpS1ZXFvDAgE/AzYH40Oe01TlvH651jU uR2PI2EJXOgo+2SdNekXdrWjKDnjix7TIULeCbhRCGA3VT7T6prGOVzeLUPt0Dow NLE5D9sjeq4bRvfBT0Qd+tQDsWPhw63rhRAaOT0eKRJ1GAcybsP2l/Vh/J7seYRO taeUAuipWTBHf39W5IOQjjk/pRTMrgnIop+ApncuzxQHfDXImGqzjCTIu77zKkSX tMGI+wQTAQIARQIbAwQLBwMCAxUCAwMWAgECHgECF4AiGGRuczpzaW1vbi5qb3Nl ZnNzb24ub3JnP3R5cGU9Q0VSVAUCTvm3NgUJFLfeCQAKCRDtoh6UtWVxb9AiBQCx rKdLFfVUXx4h7RAUGJAqQU1SKqURDywpwkaD8LRxGRpIRi0nd01A6PZXGqalhHb7 829MvArqLnsB90BCcQ2cJWzsZblTe1zzNOgi6682sEpW40YisLj0Rwyl+3DmvNRm J6jqWEuaKaJpSjoHrllKYQeiZ0zgke5cS0U2x2NTwXgKrrF6po67ZxXgX/9h9if3 nBEuuCqThZhEvPUis6qGiQEcBBABAgAGBQJF4zp6AAoJEOjgYvYNywQx7e0H/juf UUzX7Yw7sX2iFVN4sCIFbPJ13km/75+W63NRH6WhBnTa1z1h7w8v7ugEWd/OhuRe Hc9xG+JLoGgPvz+KdKTyJkZnokUYHMr6QE3RBfv2O/O3YZJf31bOv6Iy8ewauS6T sR7PUmSI4cV5HT80tOk9Hac1dog1WxlM9ZmS/LskBdHptc5XaIrMMxdPIKOJKFnh K17WQMtCobubqfLAyEmlFp5tlQx6xS3a/Dxc6VL/Gd+HvlzYolaD/fPXROhsdqoA YZkf6a8WOeCQsTIf3rL00S43/XM3t7dTyPNJiv5Jqds7FSLHdUiHcPn482HeGcw4 uIAPJ+uE5b+YJXRp+QyJASIEEwECAAwFAkJhOZ0FgwDMcTIACgkQC3gy83PWLUH2 Bgf9GHMCCYb349m66855EyPkJmlVRGI5Qi6m37rjRmvAjL+aBSFYoAYyUKefTyv3 TsJ8l+bAQsoaRU6wbn7uc/LwoJUTByXFj7rPOoITxx6Sa3VP1nYdXjCtarKmjzQT YU1cWwfKUbEA3fSgs4gpd801l6C21F+DbSmP8CbOtGb62Nv1Ux1CXiWn2r8VUy5A VWZ0VD4qvxxIGGn58R0vLxKC5gGFids9JdMhJd1SHQ0mFkZp/NpNOnbw2A0tfhaF spdQAoDEjOHTr9fs0PAUBrt5YcP2W+iNZ9KPfN2c707p/3vErSPxQZCoXBmnN2LA 5weNIVWZnKuJPUeyQ5FwH9orPokBoAQQAQIABgUCSQa/OQAKCRAp7li5loZRcRIv DCCoP0WynVZn3xtmZbozv1qkW0O2WjDdR5Kxs3ti31vK5HoVf+Qyii0U9AR/OJ26 Rcjj1TOBR7975vNn4dMgw58ensBZRoBnO6L5i4xw5bSO/DsrRBZirfzu0jN748rc 9f/17fa7ZWlg64QNrZzBEN/cQOwK8bcqUcsIXOddNxbp/udWVEoBhsyZZFCmpvP5 APG+g9FPsd2cGXAcy3wVvj+oJ3nNr2RKID8cbpGD67S20RNma1BtFNUbm1F7u+n5 +LbqyAd2meLxXQmN2pf8QSJIOieZVtXc0XPr2PE3/aZ9/4CscoBOtSJtO/2/KQCi yQRHLqJsyJ/pVkuJ6dzuIeh61ThUkFv/+MSueYlOxfZ1ZqUAMJo9vdUpeyrMKdLH +DQyec7qOIgxaEVCo77XnBu7NXUQU9dA2ppKr6tTyArEDeudKE4UGg8PlQ4pi9YV UcDlHc1CM/gJCuUkcz+g3t54bmMTKUm8acQjkLmBj+W1IQdt0Y4CcFnqq9uESGRq mxDQ/aLRiQIcBBABAgAGBQJF4ZT5AAoJECZJ5ijF000FiXAP/1cQ9iih1PuCQpzB zALS0Md+vzJQcKhho1V+PmQII/c893bTj/aGHh/lOV0AltG8lW6p8mHQ1tMOblHL aSrcTrUUt4wkZszw9mr36Vto53oO8pX43iEJ59xJZLdbMbt0Ikn7xcRYMOBnyRiL NP534TueKjhl+fqDIrWryYjQutIRie4Pk6BGTpjV5FktbPd0s3/PDm8ubusbUaKm DsS54+pAOYj2EpddMs/qKYq65QpsYfbMI7+9xfLronmwjoiTLjDZ0DYP/oJAZT+U 1Awquxwop4jZ9dDwjtQU8aiYOKw7WXGvPlBD7PVXHqdwjm7mKs2McUVg+Wyru0Xg mDJVfXmxOmwAcwEAleGQT1/wLVjGy00qc/0XQm1zOorhsUXVtWhoTkfQinw40t92 gF6az1CXoGC8bJAz3ifqtNhWeWHLH0870suEXyRT8GmU9wDz5w82QHXTG4rjzMzy q+tKiEH9AdSjjoffcnY90x0WNkzgqrO04kLYOw84TwvpZkEwJy8xd5M5N2go+ZxG 148AoX5rNQdY55ykCRdIorsfMnBlbI2tBaNcSLmnlaMS5QYUGAWYaVvOLsAtgsqP OMcMW8EOdvZ1lbMu2zA90r90QxyhWW9lRCOljQDOES47o0VDrGJwczP3rea9qzW4 VWGaV1yNPbZ/W7ggpL76nMQyUpXqiQIcBBABAgAGBQJF4s7iAAoJEFIiU8PXJzmB ZVcP/2j+knr/TnAy18so2tzJd6vxF3tHXiIGcS7pyyXL/Yq0p624P34dsmcaIJ20 iwTHQVEQNkCtdt2sF1Ho+yboIZ9Up1C74tvzqiOfqawVeEMdK1PQaJsBEBPr1h0v 9KhZnNMPiM6KAQtD14VSPbU7z6v7yjK20i4gZcasOhJMrH3EYByCHsaTzQfZDA+G G6E70x1zksabYWN4dHoToZ0XosOuwkBt9AjEF3T6dNbrx/OuehdwgOSxoU7/k/qx gHCfEhYkoYxfnF1jpSOw7QhX44S/w/UvVINkljIoKM+GBPmrdNUhs7NGoYoxf3I3 1uvExv5gcQVxebmN60VNO3/dvZLNqDMvpfZ6VT8HA7yrGB8DaL7TeDOcEuVFqYF+ pCOGTz1fp52p9hVKjQnGSPfqVLMjrxCI7HWZBly4Mi+Vmjd9Q4WTc/cjFhiTmjR5 UaXQ5vHT16Zzz6FxSpuzt4cmpkltZoymjDxtjzIoApR9Sn5yuZGNg/xvs9X5OZDO RLPh/sz8ksQzLKdyL8BPpHQCBZapWv2PuiENpmwG2kc88zqwddvmKTX5Amz5qUGT D93LtWCIHSf2frq3RNJ0nqR3/soC+1rrOmn1D+RlhRTXtgUiUf+hXHdq/j1ew1P7 oYWwLusqhECVN/1+Bg8MM78cUMke/QviWKXqIOf4AM3VmvtpiQIcBBABAgAGBQJF 6VpOAAoJEFeTDasLhrBn9ZcP/R2FJvi8q5fQfpncTK+V6FiuNlQqO/y1P4HQ5aa9 7G5QQLpW1o8Z1XRschYiLsCOKNOC3BEOxPqouD43zB8DN8aWgIrPsECIXZSBqn9f QnBsRerQ6BLMnQtTl+wcEyP0FvakdWZlWrKUmmm6ExKdDiloRy1+rcuzRQmyU2Ea 1+UATqIhqywilmojxpl8G0LoBYeTsCxSX8xDgaXGSY2ZU0mgFC3yHsMQrTYA6rAE tisc1LKoGWaPP3QJ3erwyeyHV3vTb40lkXYi4aOpIC/kTZpY0JlDbOSgyE4ZOWo+ yUTMiFvsb9rQjbbanHwO0DNhfykoDTMtX7hbTqks6tuqI8Q4EI8TjC3y3+M2u3Rt WDeGsvpJ/7cBimAMbctcSuEZsRw9Ow5FR5AxZwa1ot8oKzb0GWflYFWB6IkAO/e3 vDgQwUGPmBWUdq41sPOKnir36LcHhaOZuqTsc6l+bGWI4oQhfpooT1J95wle1rsD Wmi07ymDQuV7O5+M3vbLc9JQhrRWep0wBXJhcxhQ+68BOUWvSpZ/PCqXl38nvM2K AXNcJbSIGW/mCpOmion5vJmvZFR20L9DbKZY/j9wBxJwWtHhqcOd+I6oF44ZAHLt x5h3gNZ3fw8FT5+fhn2ufwd8hGUnfLYKLucuzBtunfwYuBhjCra2M2jG4av/j69v xzfLiQIiBBMBAgAMBQJC2LDxBYMAVPneAAoJEKrj5s5moURoX3QP/3FXy5r97OFY 67kAOAcTXJ5YxZCx5wjH1MDlBVCDymmMDcTZER7+UlsLB5WHB+9Ka6+7KZFDDvVw h2aoXV3P1HyZvrY3WvTsNw/GJuG0eLimgQ3Egeq8Ru05HXtjpCXgNbg+MrW633Lb LnwcrpdOKoK1uDjeMRxteTWv2osmXYuCilglDUokLB+f4MJVp1EDYWBVyUwZQYh2 KJPCnXb4T/vShigzMvCb7sxSBslSlEvK2xzl+uFP3WJfaU+h7KUAcBDTrzVaJrC9 7GWq0A+2j0aNu2fDfahI6oglxtsyE3wbzumS8GGTnBd9UzuTK60EWEgdxAUZ64aR mmB5e3jQ1xQl9+f4o595fOB1DCbA2Wj0rRqvE2ki6SC6C9V422wqPWC1bsiRhwua +UPJKHP9zK2C40RT7VbRl4bvdOOmGzyYJKUIpVw1ZzLaXvP8O8HdU+Jtpznbn9LD VkirsNKFEce/zHTb/rnwsRbuBK+9niPfK5lI2AvaWA/NpihCj7zKwcr12pWJUFcA cjBVlOZem1vnPFBwe0VSdHnUgNIB8EZ3uCNTk0k18oqeAuMMnLnqeYkYzD/7XcXl cVyMY8L23pkqhC53vXYrxNEhzNaAYyeCRqHJOXgojA/FXNadQ3QiRyw7/nI7cm51 bPNgHqvVCiYJIAAD66Kuy0nBW0FawIDniQIiBBMBAgAMBQJC2LDxBYMAVPneAAoJ EKrj5s5moURoo2EP+QENiDYVYrAiRIyXPQplagAXCg725RaqtsXvPyDBkqU4Zb2C 9wXQ49ijK/LT3het2p20bwjYmop9iClo+vuMVTdWJpjUyvzBA+rF9ya4qWwJ9mMP EppgfHhUpOILkhcniC4x5OWrNtPHeudNkubRJ7J6GZAN8g9NpxV6JIAzRYscTPR8 8jnBggErugNlDJIi2VFII4mYirlMQZURv0Hnsil7Nbg7RbBGoTqHDxNOfum4wcd1 Osjw9LJ2g8DBJGZTFXynYQvhliBNNSu3O/SZN4bs93NT1hzZMXc5cnARPWhqR7Q8 0uGuJrIOp1WW+zWHYXUoQgCi24wpdF3wKJREqWdqGPt5a23chWKvw92gHNEC1Pf4 mbwRLfbH9N1dDwoO3XA+z/R6QsxwjPIAhJbqBWL7q61SlO9RcxD+D+xBlePZitFN KME0U/paYTiE9zWHcm4mbQFvBcHRzyMTrRgQZ3QAdImA852+tr0B428xTp2fpzRO zVuhXTfkO9NmFO1QBv2QBz9Pmi40PCbyCyihvsTTZQVF+EwijRmqPkGfaYLRAKdJ v0/wvULpsBtkQVd79Sucf54oGv5gximFMhZZn8JJmEnAFpUMUIvOqv1n86KsQtIQ koJwbRXLGiKBB8eYfoJGMz0rgiYnavmuvgUpPfDzwa63Gz3KllbpcSFD1OPZiQIc BBMBCAAGBQJOXJv+AAoJEH/Z/MsAC+7uocwP/0FZCPeaUYR1HCW9E55ro+Thz4Kf o2F/nO83JQu86Z8oFSrT1e9klZ7N115nab2C+3+fe+P2Ehyy7KKMOcYTKbgMnacj vk2DY3lfsPSyR/4zKjgNHBhmQrGwyiR9nIKZVVU8DY49ed3wnj7cMYQjnvtKNyBo xKLNfQNShnsTyOFyxlHKz/m2bIaeGqEJod47QCuvEj09/vX4roMY5Lo+4GL540AM /UPdmorUzPz5TUzZTMvcoyxeGMrgfWb0mgeTO3SjzMjZzPcQ50xqbz40fZzqaEYu KrxqHFis7+nnCIp4yLjJjH3NPjw0XQsHFGRxYpNMTN7GGVDzviCVgnNHEupef4YW ra5+LUXw1wFXRRIavvEX97jEu0OCbBmG4vRafx1fR5TXP5f5TKn+0QjU9l5eBjxf 7Z42pWkXezNOrz2iBw7sTa6dTLyTafTZCfDsYAj/OMU/IBsKb1Bgo7udlN/0G4kg lY+sr2LKsJnSdVs5bXKBx1B7urlEOuWbguIV3cGmNiQxaycHNLMnxKps9s722W7L xMBGEP4hna9q3tzjCohTP8Ipws2nQL1qD6Usl9zfh/uDQUeXKlp4+TBPyTfzptaD i7d5OverTrnWmaSv+xiZpIdojNdZRIkqcVhIHaE03t51E64IYz1D9DMdatnm7SaY 1xNyJCpEPs+vlxuWiEYEEBECAAYFAk5XxfMACgkQB5GvjMAzY/SqbQCght31VjCN rCkPSpQVT5TFsj0DQpMAn1PXdwJ8Qhnc+011in9A9QeSn49wiQIcBBABAgAGBQJO YMgJAAoJEFKbqWJpCnCxJg4P/j10P3pZyGQLMW96EKr6fMY64j3EgnoceYezi5Gn HYGZ3uLa0+9uWwFwHZ62FtAlZocyWCLSNn0ny0abQRXhRbf2h1IEphv1Gw3B714b XdeI7RJqgLXo6C4eXmVawKpabII9hGdVrm8YFev2ihwMNnhD6eBjnd34t6xo1Kd2 6n8cj6h8a+nqMMaofNxCKugnhcn2KQ8ewOA9zGJLtRDQhuDFix4DN944g2cXnPNm 1tRpdUqzFN17GCOYXrxUVLaQTr6fY6GxLgEaGYz466+zQ6OnlgwPbVxjG4S0V1nQ t+WN2o3lF9jR79X90hzWv6tZz8y/BhaJ9IGIHpW7VCSnUnm2UfTHDTUhGkPgwV1G oxThas7cnGPK/2W5jrF1xUujbJLzADOQywZGkcc7b001qUSBkQXJG7aXwBbFSGmA dtaGKq8M8JEWaXgHjbs6tcCElsuA5ebhxOgT14WbSFndt+9+38hJyfyI285D02M7 ZmYK3dsReD2CZTsFDW8/7BJFqqOgyBx5aVatrVqMDNfcNBTHjWBPfyGIFED7zm4J UgrJfzTrSsFZwaE27UQKKInZfobZXf4RlfcRYfSNRM8vfk8hTQ9G+ZzFHJzci4+H pP7VYA/jHTAXg+OiUqi57dU8bxtiUEDvHJJwXrzVfzkP6wagdReTNfSpEKyGaet2 jf3UiQIiBBMBAgAMBQJC2LDxBYMAVPneAAoJEKrj5s5moURoX3QP/3FXy5r97OFY 67kAOAcTXJ5YxZCx5wjH1MDlBVCDymmMDcTZER7+UlsLB5WHB+9Ka6+7KZFDDvVw h2aoXV3P1HyZvrY3WvTsNw/GJuG0eLimgQ3Egeq8Ru05HXtjpCXgNbg+MrW633Lb LnwcrpdOKoK1uDjeMRxteTWv2osmXYuCilglDUokLB+f4MJVp1EDYWBVyUwZQYh2 KJPCnXb4T/vShigzMvCb7sxSBslSlEvK2xzl+uFP3WJfaU+h7KUAcBDTrzVaJrC9 7GWq0A+2j0aNu2fDfahI6oglxtsyE3wbzumS8GGTnBd9UzuTK60EWEgdxAUZ64aR mmB5e3jQ1xQl9+f4o595fOB1DCbA2Wj0rRqvE2ki6SC6C9V422wqPWC1bsiRhwua +UPJKHP9zK2C40RT7VbRl4bvdOOmGzyYJKUIpVw1ZzLaXvP8O8HdU+Jtpznbn9LD VkirsNKFEce/zHTb/rnwsRbuBK+9niPfK5lI2AvaWA/NpihCj7zKwcr12pWJUFcA cjBVlOZem1vnPFBwe0VSdHnUgNIB8EZ3uCNTk0k18oqeAuMMnLnqeYkYzD/7XcXl cVyMY8L23pkqhC53vXYrxNEhzNaAYyeCRqHJOXgojA/FXNadQ3QiRyw7/nI7cm51 bPNgHqvVCiYJIAAD66Kuy0nBW0FawIDniPsEEwECAEUCGwMECwcDAgMVAgMDFgIB Ah4BAheAIhhkbnM6c2ltb24uam9zZWZzc29uLm9yZz90eXBlPUNFUlQFAkJAXNAF CQZYo6QACgkQ7aIelLVlcW/RCAT+KZP87UBfl1eS+JK1xJm4wLBm/QviPuDqEVGP 5lg7zQIxqaZIRQ/vEN6EL4PtXXD7Cea0B0l4ANsNWzrE5JyvQ2psmN+Sx3fU9GUp ZVzlF/at0HiogwWHNigd+WbcSjSAOC7eag4GG0oLZREcQ2PeAQksuGAKXcAE3otz t9reSKEfga6HiK/sPs5/ZlbpZJ96UVwcmA1/7HMXE7VsES/lDYhMBBMRAgAMBQJC 2LDRBYMAVPn+AAoJEGtw7Nldw/Rz2iEAoJFrzoYjkR5ANZYbeX/ozQecQCmAAJwN CoPySmaxrwO6BiUd11bO80bPxYhMBBMRAgAMBQJC2LCxBYMAVPoeAAoJEIHC9+vi E7aS7sAAnRYuXokAy66xi04YD1ODtssYFw7nAJ4lqshFVn7NR5yznu0tioYLFwyc 54hMBBMRAgAMBQJC2LCNBYMAVPpCAAoJEBhZ0B9ne6Hs7fEAn145gLDePrbxrfwN 2dG5+IuvpvtYAJ4oRmRyhxwpwahGE+5281z2VTrQ9YhMBBMRAgAMBQJCSUQKBYMA E85KAAoJEGa+cf9nSGiD2RgAnRArPwa3+RztD1j8CGH/Bk7q9pD1AKCByClFignq DVBdhZ1M78fG97gu74hMBBARAgAMBQJCTYK1BYMA4CgaAAoJEDuOpB+C9hJAOHwA njdsNOUrWn9otfEnb/WkWsdYW+dwAKC9WWLhX0/qlWE/2n4fcA+1D5RFVIhGBBMR AgAGBQJCSQGLAAoJEI/Dcl89aNY6Fn8AoLW/JrZSPK4Odr0+Q0VPgrdzbg3xAKC+ yF/Nt3s23ux1XoIXoq396u85irirBDzVB3sBBQDY9NqhPxE2QUOVftQI4H29pEXG tf503uXpA747QyDt1V2Mi0SdppiQn6vgtd5wjjseiCxQYTFF0NgZPQOrtpnwaQLh Qo9dzerYpZDeJvfCPeqcIabchf8jbj3J1gsDNDJaoxbT3AsHm/GE+LjKN63gVMZa a1hSUbMNvv7pVmKVhFO3LS+EUXhxVeU7ZH6+A/EUy9RzujxYYOdDeLJYCLORAAYp iMUEGAECAA8CGwwFAk75tzsFCRS33b8ACgkQ7aIelLVlcW8bUAUAjDBNYESwwzuo vzIN99U5AQCmZK04SvFIKLOnVX7TysvEciB1KcMlWTb6oiUtfVrlq471i9YbNO0C wcRuF+wXEvd4gr35p1EV7xUSJtQbL1Zk1W45S6WkyqOjrajN7TDsLnGGs5EvnhPr DfKsXA9RtL8BKQ31yjOl61BN9nhVDCPBv0+d6s/dIVsDt9AGJ901RpulJF23iGRL k4fc22qR9riOBEQcLesBBADmhtD1sFupeGfp1H+G37V8mngf47BsBS93RI+3mZjN dq9Mx4+yYUCWvW12SLD2EbaBiKColY2e0K9qG8LS8kEZfyPSy+K/vBUW28YbQhe4 Dn3g7T/Q18JrNNyWPk9vVhOlnQQ9trXTW2xYCAHPXGVgHs4fDwz9AaymqwCu36tw BQAgzc7kYYjFBBgBAgAPAhsgBQJLR0FnBQkJvkF4AAoJEO2iHpS1ZXFvVWwFAIlV hh+psc/tyvhl0cACgI4SsZK6DNfTGhzLBTdVyWmv7nclhlZ5zVp9N8MC4l6v3lbX iA8aZ8FYXoK7ka38uNzpY3zlr+VXWUi+oJOQGdYOntv79To87ITU9/PfXFNBch2u kCf9t/0X04xqQYIsPfz/q9gnsTirQxiyIcflN+HtGyiqWqWs5gGFSp5w5mLMqTSp KQdkUF03M7RHPh+onlq4jgREHC7SAQQArB4IoJfse8rCqRNkVzYmbtxvzzrtyl3L rluNgS7N4rTOLgCQeUJ8lgqEr2h3KEZ8PjGBWNYww3rj/MnX64jv/Ybq9XxJc/vk FBRYT1ISqGszeFc3P0KTXnVahF5xG4MaQ6mhy4PgMq3/NETdPH+TJ+I3OL//KOa0 MpGjwmtnGrsAILXz8IeJAZIEGAECAA8CGwIFAktHQXkFCQm+QKUA18ALIAQZAQIA NAUCRPM4Ey0UgAAAAAAVAA9wa2EtYWRkcmVzc0BnbnVwZy5vcmdqYXNAZXh0dW5k by5jb20ACgkQpycTyKq7H3t8KAP/YWnPIkW4kfAWU5E93P/0R9DHa1ly7zP3JWbp m7Lxe+2ESOJwPn3GWSn3h+Ty+3UhOIsqIEM0ISQ+SPAG/ltaghcT/XUWnUtolcb6 YUVBcjQt58wpxRWZwEfwQR58aTfJHBDDHXWTq58N9YoalwTCFSviF/UzyHAysp3d Bje77/AJEO2iHpS1ZXFvoJ0E+wWuL4AbuDBrJLsjYfUCFUGc4adGy9xv37pVr6uB PzZrVJXL+JQ23Xok9IC53g33Ar8r11tT9W1uyLqs3xX5K6xB88trH4DJN/e4galU BbO+yRUKogSngkwj42kmdkm/woMC2DqV8389zS1SBqm8Xw5RsH0d9MsAukyyr+qH 8aK6nEtY+2/37V1uqbu1R7MEQhqZjuizvxqpdTaGclqEk0W4jgREHC8JAQQAxCLe mYxwWqGwXBUqMX74GTQULkvtSc82sXWixyrhPNyaxYKuAvlKO0nkXGEAwS/YMC4m +gJ7iTiskG9iWPfoXPK5S81AjRX7NA8B34BAb5rJbW2eHypOLQ99MUUBYzuNLLqp wBZTeumoaz7DgoIHNpMpD4x/Irw1mX83xNhQ6F8AIKatOU2IxQQYAQIADwIbDAUC S0dBggUJCb5AdwAKCRDtoh6UtWVxb+UQBQCWYZv+oxNKpH+uH/e8J293gaJcJ9nD kENb8Tiu8st7EXaQm8OqyrnpZyNz+c5t8VxygolhmwquonxAas5CHxfff/1hMZjn ijP2pxqJ/N2zxVxiKUfEonQ/zfnSl2OumOKD3rla8DPIaRDTxPnh02wUF64PHQOL JibEtwSMb4NMHIeiN+p+12iqwLX/s6Wq4LfwQ5aBu6tTKyulkD4oZ8QM =oc2d -----END PGP PUBLIC KEY BLOCK----- ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/csharp/0000755000000000000000000000000012167253755011151 500000000000000libidn-1.28/csharp/NFKC.cs0000644000000000000000000002224012153706572012134 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { public class NFKC { /// /// Applies NFKC normalization to a string. /// /// The string to normalize. /// An NFKC normalized string. public static string NormalizeNFKC(string sbIn) { StringBuilder sbOut = new StringBuilder(); for (int i = 0; i < sbIn.Length; i++) { char code = sbIn[i]; // In Unicode 3.0, Hangul was defined as the block from U+AC00 // to U+D7A3, however, since Unicode 3.2 the block extends until // U+D7AF. The decomposeHangul function only decomposes until // U+D7A3. Should this be changed? if (code >= 0xAC00 && code <= 0xD7AF) { sbOut.Append(decomposeHangul(code)); } else { int index = decomposeIndex(code); if (index == - 1) { sbOut.Append(code); } else { sbOut.Append(DecompositionMappings.m[index]); } } } // Bring the stringbuffer into canonical order. canonicalOrdering(sbOut); // Do the canonical composition. int last_cc = 0; int last_start = 0; for (int i = 0; i < sbOut.Length; i++) { int cc = combiningClass(sbOut[i]); if (i > 0 && (last_cc == 0 || last_cc != cc)) { // Try to combine characters char a = sbOut[last_start]; char b = sbOut[i]; int c = compose(a, b); if (c != - 1) { sbOut[last_start] = (char) c; //sbOut.deleteCharAt(i); sbOut.Remove(i, 1); i--; if (i == last_start) { last_cc = 0; } else { last_cc = combiningClass(sbOut[i - 1]); } continue; } } if (cc == 0) { last_start = i; } last_cc = cc; } return sbOut.ToString(); } /// /// Returns the index inside the decomposition table, implemented /// using a binary search. /// /// Character to look up. /// Index if found, -1 otherwise. internal static int decomposeIndex(char c) { int start = 0; int end = DecompositionKeys.k.Length / 2; while (true) { int half = (start + end) / 2; int code = DecompositionKeys.k[half * 2]; if (c == code) { return DecompositionKeys.k[half * 2 + 1]; } if (half == start) { // Character not found return - 1; } else if (c > code) { start = half; } else { end = half; } } } /// /// Returns the combining class of a given character. /// /// The character. /// The combining class. internal static int combiningClass(char c) { int h = c >> 8; int l = c & 0xff; int i = CombiningClass.i[h]; if (i > - 1) { return CombiningClass.c[i, l]; } else { return 0; } } /// /// Rearranges characters in a stringbuffer in order to respect the /// canonical ordering properties. /// /// StringBuffer to rearrange. internal static void canonicalOrdering(StringBuilder sbIn) { bool isOrdered = false; while (!isOrdered) { isOrdered = true; // 24.10.2005 int lastCC = 0; if (sbIn.Length > 0) lastCC = combiningClass(sbIn[0]); for (int i = 0; i < sbIn.Length - 1; i++) { int nextCC = combiningClass(sbIn[i + 1]); if (nextCC != 0 && lastCC > nextCC) { for (int j = i + 1; j > 0; j--) { if (combiningClass(sbIn[j - 1]) <= nextCC) { break; } char t = sbIn[j]; sbIn[j] = sbIn[j - 1]; sbIn[j - 1] = t; isOrdered = false; } nextCC = lastCC; } lastCC = nextCC; } } } /// /// Returns the index inside the composition table. /// /// Character to look up. /// Index if found, -1 otherwise. internal static int composeIndex(char a) { if (a >> 8 >= Composition.composePage.Length) { return - 1; } int ap = Composition.composePage[a >> 8]; if (ap == - 1) { return - 1; } return Composition.composeData[ap, a & 0xff]; } /// /// Tries to compose two characters canonically. /// /// First character. /// Second character. /// The composed character or -1 if no composition could be found. internal static int compose(char a, char b) { int h = composeHangul(a, b); if (h != - 1) { return h; } int ai = composeIndex(a); if (ai >= Composition.singleFirstStart && ai < Composition.singleSecondStart) { if (b == Composition.singleFirst[ai - Composition.singleFirstStart, 0]) { return Composition.singleFirst[ai - Composition.singleFirstStart, 1]; } else { return - 1; } } int bi = composeIndex(b); if (bi >= Composition.singleSecondStart) { if (a == Composition.singleSecond[bi - Composition.singleSecondStart,0]) { return Composition.singleSecond[bi - Composition.singleSecondStart,1]; } else { return - 1; } } if (ai >= 0 && ai < Composition.multiSecondStart && bi >= Composition.multiSecondStart && bi < Composition.singleFirstStart) { char[] f = Composition.multiFirst[ai]; if (bi - Composition.multiSecondStart < f.Length) { char r = f[bi - Composition.multiSecondStart]; if (r == 0) { return - 1; } else { return r; } } } return - 1; } /// /// Entire hangul code copied from: /// http://www.unicode.org/unicode/reports/tr15/ /// Several hangul specific constants /// internal const int SBase = 0xAC00; internal const int LBase = 0x1100; internal const int VBase = 0x1161; internal const int TBase = 0x11A7; internal const int LCount = 19; internal const int VCount = 21; internal const int TCount = 28; internal static readonly int NCount = VCount * TCount; internal static readonly int SCount = LCount * NCount; /// /// Decomposes a hangul character. /// /// A character to decompose. /// A string containing the hangul decomposition of the input /// character. If no hangul decomposition can be found, a string /// containing the character itself is returned. internal static string decomposeHangul(char s) { int SIndex = s - SBase; if (SIndex < 0 || SIndex >= SCount) { return s.ToString(); } StringBuilder result = new StringBuilder(); int L = LBase + SIndex / NCount; int V = VBase + (SIndex % NCount) / TCount; int T = TBase + SIndex % TCount; result.Append((char) L); result.Append((char) V); if (T != TBase) result.Append((char) T); return result.ToString(); } /// /// Composes two hangul characters. /// /// First character. /// Second character. /// Returns the composed character or -1 if the two characters cannot be composed. internal static int composeHangul(char a, char b) { // 1. check to see if two current characters are L and V int LIndex = a - LBase; if (0 <= LIndex && LIndex < LCount) { int VIndex = b - VBase; if (0 <= VIndex && VIndex < VCount) { // make syllable of form LV return SBase + (LIndex * VCount + VIndex) * TCount; } } // 2. check to see if two current characters are LV and T int SIndex = a - SBase; if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) == 0) { int TIndex = b - TBase; if (0 <= TIndex && TIndex <= TCount) { // make syllable of form LVT return a + TIndex; } } return - 1; } } } libidn-1.28/csharp/CombiningClass.cs0000644000000000000000000004556712167245632014327 00000000000000// Do not edit !!! // this file is generated automatically public class CombiningClass { public static readonly int[,] c = new int[,] { { /* Page 3 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 0, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, 0, 24, 25, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 14 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 23 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 48 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 254 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, }; public static readonly int[] i = new int[] { -1, -1, -1, 0, 1, 2, 3, 4, -1, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, 18, -1, }; } libidn-1.28/csharp/libidn.csproj0000664000000000000000000000454611746453142013561 00000000000000 Debug AnyCPU 2.0 {BED43666-B1A2-486D-871C-A65A2A925764} libidn Library 1 False False OnSuccessfulBuild True False False False bin\Debug\ False False False False False bin\Release\ False libidn-1.28/csharp/libidn_PPC.csdproj.user0000664000000000000000000000417611746453142015403 00000000000000 libidn-1.28/csharp/Stringprep.cs0000644000000000000000000002767112153706572013565 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { /// This class offers static methods for preparing internationalized /// strings. It supports the following stringprep profiles: ///
      ///
    • RFC3491 nameprep ///
    • RFC3920 XMPP nodeprep and resourceprep ///
    /// Note that this implementation only supports 16-bit Unicode code /// points. ///
    public class Stringprep { /// Preps a name according to the Stringprep profile defined in /// RFC3491. Unassigned code points are not allowed. /// * /// /// the name to prep. /// /// the prepped name. /// @throws StringprepException If the name cannot be prepped with /// this profile. /// @throws NullPointerException If the name is null. /// /// public static string NamePrep(string input) { return NamePrep(input, false); } /// Preps a name according to the Stringprep profile defined in /// RFC3491. /// * /// /// the name to prep. /// /// true if the name may contain unassigned /// code points. /// /// the prepped name. /// @throws StringprepException If the name cannot be prepped with /// this profile. /// @throws NullPointerException If the name is null. /// /// public static string NamePrep(string input, bool allowUnassigned) { if (input == null) { throw new System.NullReferenceException(); } StringBuilder s = new StringBuilder(input); if (!allowUnassigned && Contains(s, RFC3454.A1)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } Filter(s, RFC3454.B1); Map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.NormalizeNFKC(s.ToString())); // B.3 is only needed if NFKC is not used, right? // map(s, RFC3454.B3search, RFC3454.B3replace); if (Contains(s, RFC3454.C12) || Contains(s, RFC3454.C22) || Contains(s, RFC3454.C3) || Contains(s, RFC3454.C4) || Contains(s, RFC3454.C5) || Contains(s, RFC3454.C6) || Contains(s, RFC3454.C7) || Contains(s, RFC3454.C8)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling bool r = Contains(s, RFC3454.D1); bool l = Contains(s, RFC3454.D2); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!Contains(s[0], RFC3454.D1) || !Contains(s[s.Length - 1], RFC3454.D1)) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.ToString(); } /** * Characters prohibited by RFC3920 nodeprep that aren't defined as * part of the RFC3454 tables. */ private static char [] RFC3920_NODEPREP_PROHIBIT = new char [] { '\u0022', '\u0026', '\'', '\u002F', '\u003A', '\u003C', '\u003E', '\u0040' }; /// Preps a node name according to the Stringprep profile defined in /// RFC3920. Unassigned code points are not allowed. /// * /// /// the node name to prep. /// /// the prepped node name. /// @throws StringprepException If the node name cannot be prepped /// with this profile. /// @throws NullPointerException If the node name is null. /// /// public static string NodePrep(string input) { return NodePrep(input, false); } /// /// Preps a node name according to the Stringprep profile defined in RFC3920. /// /// the node name to prep. /// /// true if the node name may contain /// unassigned code points. /// /// the prepped node name. /// @throws StringprepException If the node name cannot be prepped /// with this profile. /// @throws NullPointerException If the node name is null. /// /// public static string NodePrep(string input, bool allowUnassigned) { if (input == null) { throw new System.NullReferenceException(); } StringBuilder s = new StringBuilder(input); if (!allowUnassigned && Contains(s, RFC3454.A1)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } Filter(s, RFC3454.B1); Map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.NormalizeNFKC(s.ToString())); if (Contains(s, RFC3454.C11) || Contains(s, RFC3454.C12) || Contains(s, RFC3454.C21) || Contains(s, RFC3454.C22) || Contains(s, RFC3454.C3) || Contains(s, RFC3454.C4) || Contains(s, RFC3454.C5) || Contains(s, RFC3454.C6) || Contains(s, RFC3454.C7) || Contains(s, RFC3454.C8) || Contains(s, RFC3920_NODEPREP_PROHIBIT)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling bool r = Contains(s, RFC3454.D1); bool l = Contains(s, RFC3454.D2); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!Contains(s[0], RFC3454.D1) || !Contains(s[s.Length - 1], RFC3454.D1)) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.ToString(); } /// /// Preps a resource name according to the Stringprep profile defined /// in RFC3920. Unassigned code points are not allowed. /// /// the resource name to prep. /// /// the prepped node name. /// @throws StringprepException If the resource name cannot be prepped /// with this profile. /// @throws NullPointerException If the resource name is null. /// /// public static string ResourcePrep(string input) { return ResourcePrep(input, false); } /// /// Preps a resource name according to the Stringprep profile defined /// in RFC3920. /// /// the resource name to prep. /// /// true if the resource name may contain /// unassigned code points. /// /// /// the prepped node name. /// @throws StringprepException If the resource name cannot be prepped /// with this profile. /// @throws NullPointerException If the resource name is null. /// /// public static string ResourcePrep(string input, bool allowUnassigned) { if (input == null) { throw new System.NullReferenceException(); } StringBuilder s = new StringBuilder(input); if (!allowUnassigned && Contains(s, RFC3454.A1)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } Filter(s, RFC3454.B1); s = new StringBuilder(NFKC.NormalizeNFKC(s.ToString())); if (Contains(s, RFC3454.C12) || Contains(s, RFC3454.C21) || Contains(s, RFC3454.C22) || Contains(s, RFC3454.C3) || Contains(s, RFC3454.C4) || Contains(s, RFC3454.C5) || Contains(s, RFC3454.C6) || Contains(s, RFC3454.C7) || Contains(s, RFC3454.C8)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling bool r = Contains(s, RFC3454.D1); bool l = Contains(s, RFC3454.D2); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!Contains(s[0], RFC3454.D1) || !Contains(s[s.Length - 1], RFC3454.D1)) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.ToString(); } internal static bool Contains(StringBuilder s, char[] p) { for (int i = 0; i < p.Length; i++) { char c = p[i]; for (int j = 0; j < s.Length; j++) { if (c == s[j]) { return true; } } } return false; } internal static bool Contains(StringBuilder s, char[][] p) { for (int i = 0; i < p.Length; i++) { char[] r = p[i]; if (1 == r.Length) { char c = r[0]; for (int j = 0; j < s.Length; j++) { if (c == s[j]) { return true; } } } else if (2 == r.Length) { char f = r[0]; char t = r[1]; for (int j = 0; j < s.Length; j++) { if (f <= s[j] && t >= s[j]) { return true; } } } } return false; } internal static bool Contains(char c, char[][] p) { for (int i = 0; i < p.Length; i++) { char[] r = p[i]; if (1 == r.Length) { if (c == r[0]) { return true; } } else if (2 == r.Length) { char f = r[0]; char t = r[1]; if (f <= c && t >= c) { return true; } } } return false; } internal static void Filter(StringBuilder s, char[] f) { for (int i = 0; i < f.Length; i++) { char c = f[i]; int j = 0; while (j < s.Length) { if (c == s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); } else { j++; } } } } internal static void Filter(StringBuilder s, char[][] f) { for (int i = 0; i < f.Length; i++) { char[] r = f[i]; if (1 == r.Length) { char c = r[0]; int j = 0; while (j < s.Length) { if (c == s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); } else { j++; } } } else if (2 == r.Length) { char from = r[0]; char to = r[1]; int j = 0; while (j < s.Length) { if (from <= s[j] && to >= s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); } else { j++; } } } } } internal static void Map(StringBuilder s, char[] search, string[] replace) { for (int i = 0; i < search.Length; i++) { char c = search[i]; int j = 0; while (j < s.Length) { if (c == s[j]) { //s.deleteCharAt(j); s.Remove(j, 1); if (null != replace[i]) { s.Insert(j, replace[i]); j += replace[i].Length - 1; } } else { j++; } } } } } } libidn-1.28/csharp/Composition.cs0000644000000000000000000015574012167245632013732 00000000000000// Do not edit !!! // this file is generated automatically public class Composition { /* jagged Array */ public static readonly char[][] multiFirst = new char[][] { new char[] { '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u0100', '\u0102', '\u0226', '\u00C4', '\u1EA2', '\u00C5', '\u01CD', '\u0200', '\u0202', '\u1EA0', '\u1E00', '\u0104', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E02', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E04', '\u0000', '\u0000', '\u1E06', }, new char[] { '\u0000', '\u0106', '\u0108', '\u0000', '\u0000', '\u0000', '\u010A', '\u0000', '\u0000', '\u0000', '\u010C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u00C7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E0A', '\u0000', '\u0000', '\u0000', '\u010E', '\u0000', '\u0000', '\u1E0C', '\u0000', '\u0000', '\u1E0E', '\u1E10', '\u1E12', }, new char[] { '\u00C8', '\u00C9', '\u00CA', '\u1EBC', '\u0112', '\u0114', '\u0116', '\u00CB', '\u1EBA', '\u0000', '\u011A', '\u0204', '\u0206', '\u1EB8', '\u0000', '\u0118', '\u0000', '\u0228', '\u1E18', '\u1E1A', }, new char[] { '\u0000', '\u01F4', '\u011C', '\u0000', '\u1E20', '\u011E', '\u0120', '\u0000', '\u0000', '\u0000', '\u01E6', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0122', }, new char[] { '\u0000', '\u0000', '\u0124', '\u0000', '\u0000', '\u0000', '\u1E22', '\u1E26', '\u0000', '\u0000', '\u021E', '\u0000', '\u0000', '\u1E24', '\u0000', '\u0000', '\u0000', '\u1E28', '\u0000', '\u0000', '\u1E2A', }, new char[] { '\u00CC', '\u00CD', '\u00CE', '\u0128', '\u012A', '\u012C', '\u0130', '\u00CF', '\u1EC8', '\u0000', '\u01CF', '\u0208', '\u020A', '\u1ECA', '\u0000', '\u012E', '\u0000', '\u0000', '\u0000', '\u1E2C', }, new char[] { '\u0000', '\u1E30', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01E8', '\u0000', '\u0000', '\u1E32', '\u0000', '\u0000', '\u1E34', '\u0136', }, new char[] { '\u0000', '\u0139', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u013D', '\u0000', '\u0000', '\u1E36', '\u0000', '\u0000', '\u1E3A', '\u013B', '\u1E3C', }, new char[] { '\u0000', '\u1E3E', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E40', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E42', }, new char[] { '\u01F8', '\u0143', '\u0000', '\u00D1', '\u0000', '\u0000', '\u1E44', '\u0000', '\u0000', '\u0000', '\u0147', '\u0000', '\u0000', '\u1E46', '\u0000', '\u0000', '\u1E48', '\u0145', '\u1E4A', }, new char[] { '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u014C', '\u014E', '\u022E', '\u00D6', '\u1ECE', '\u0000', '\u01D1', '\u020C', '\u020E', '\u1ECC', '\u0000', '\u01EA', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0150', '\u01A0', }, new char[] { '\u0000', '\u1E54', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E56', }, new char[] { '\u0000', '\u0154', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E58', '\u0000', '\u0000', '\u0000', '\u0158', '\u0210', '\u0212', '\u1E5A', '\u0000', '\u0000', '\u1E5E', '\u0156', }, new char[] { '\u0000', '\u015A', '\u015C', '\u0000', '\u0000', '\u0000', '\u1E60', '\u0000', '\u0000', '\u0000', '\u0160', '\u0000', '\u0000', '\u1E62', '\u0000', '\u0000', '\u0000', '\u015E', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0218', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E6A', '\u0000', '\u0000', '\u0000', '\u0164', '\u0000', '\u0000', '\u1E6C', '\u0000', '\u0000', '\u1E6E', '\u0162', '\u1E70', '\u0000', '\u0000', '\u0000', '\u0000', '\u021A', }, new char[] { '\u00D9', '\u00DA', '\u00DB', '\u0168', '\u016A', '\u016C', '\u0000', '\u00DC', '\u1EE6', '\u016E', '\u01D3', '\u0214', '\u0216', '\u1EE4', '\u0000', '\u0172', '\u0000', '\u0000', '\u1E76', '\u1E74', '\u0000', '\u0170', '\u01AF', '\u0000', '\u1E72', }, new char[] { '\u0000', '\u0000', '\u0000', '\u1E7C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E7E', }, new char[] { '\u1E80', '\u1E82', '\u0174', '\u0000', '\u0000', '\u0000', '\u1E86', '\u1E84', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E88', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E8A', '\u1E8C', }, new char[] { '\u1EF2', '\u00DD', '\u0176', '\u1EF8', '\u0232', '\u0000', '\u1E8E', '\u0178', '\u1EF6', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EF4', }, new char[] { '\u0000', '\u0179', '\u1E90', '\u0000', '\u0000', '\u0000', '\u017B', '\u0000', '\u0000', '\u0000', '\u017D', '\u0000', '\u0000', '\u1E92', '\u0000', '\u0000', '\u1E94', }, new char[] { '\u00E0', '\u00E1', '\u00E2', '\u00E3', '\u0101', '\u0103', '\u0227', '\u00E4', '\u1EA3', '\u00E5', '\u01CE', '\u0201', '\u0203', '\u1EA1', '\u1E01', '\u0105', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E03', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E05', '\u0000', '\u0000', '\u1E07', }, new char[] { '\u0000', '\u0107', '\u0109', '\u0000', '\u0000', '\u0000', '\u010B', '\u0000', '\u0000', '\u0000', '\u010D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u00E7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E0B', '\u0000', '\u0000', '\u0000', '\u010F', '\u0000', '\u0000', '\u1E0D', '\u0000', '\u0000', '\u1E0F', '\u1E11', '\u1E13', }, new char[] { '\u00E8', '\u00E9', '\u00EA', '\u1EBD', '\u0113', '\u0115', '\u0117', '\u00EB', '\u1EBB', '\u0000', '\u011B', '\u0205', '\u0207', '\u1EB9', '\u0000', '\u0119', '\u0000', '\u0229', '\u1E19', '\u1E1B', }, new char[] { '\u0000', '\u01F5', '\u011D', '\u0000', '\u1E21', '\u011F', '\u0121', '\u0000', '\u0000', '\u0000', '\u01E7', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0123', }, new char[] { '\u0000', '\u0000', '\u0125', '\u0000', '\u0000', '\u0000', '\u1E23', '\u1E27', '\u0000', '\u0000', '\u021F', '\u0000', '\u0000', '\u1E25', '\u0000', '\u0000', '\u1E96', '\u1E29', '\u0000', '\u0000', '\u1E2B', }, new char[] { '\u00EC', '\u00ED', '\u00EE', '\u0129', '\u012B', '\u012D', '\u0000', '\u00EF', '\u1EC9', '\u0000', '\u01D0', '\u0209', '\u020B', '\u1ECB', '\u0000', '\u012F', '\u0000', '\u0000', '\u0000', '\u1E2D', }, new char[] { '\u0000', '\u0000', '\u0135', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01F0', }, new char[] { '\u0000', '\u1E31', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01E9', '\u0000', '\u0000', '\u1E33', '\u0000', '\u0000', '\u1E35', '\u0137', }, new char[] { '\u0000', '\u013A', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u013E', '\u0000', '\u0000', '\u1E37', '\u0000', '\u0000', '\u1E3B', '\u013C', '\u1E3D', }, new char[] { '\u0000', '\u1E3F', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E41', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E43', }, new char[] { '\u01F9', '\u0144', '\u0000', '\u00F1', '\u0000', '\u0000', '\u1E45', '\u0000', '\u0000', '\u0000', '\u0148', '\u0000', '\u0000', '\u1E47', '\u0000', '\u0000', '\u1E49', '\u0146', '\u1E4B', }, new char[] { '\u00F2', '\u00F3', '\u00F4', '\u00F5', '\u014D', '\u014F', '\u022F', '\u00F6', '\u1ECF', '\u0000', '\u01D2', '\u020D', '\u020F', '\u1ECD', '\u0000', '\u01EB', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0151', '\u01A1', }, new char[] { '\u0000', '\u1E55', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E57', }, new char[] { '\u0000', '\u0155', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E59', '\u0000', '\u0000', '\u0000', '\u0159', '\u0211', '\u0213', '\u1E5B', '\u0000', '\u0000', '\u1E5F', '\u0157', }, new char[] { '\u0000', '\u015B', '\u015D', '\u0000', '\u0000', '\u0000', '\u1E61', '\u0000', '\u0000', '\u0000', '\u0161', '\u0000', '\u0000', '\u1E63', '\u0000', '\u0000', '\u0000', '\u015F', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0219', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E6B', '\u1E97', '\u0000', '\u0000', '\u0165', '\u0000', '\u0000', '\u1E6D', '\u0000', '\u0000', '\u1E6F', '\u0163', '\u1E71', '\u0000', '\u0000', '\u0000', '\u0000', '\u021B', }, new char[] { '\u00F9', '\u00FA', '\u00FB', '\u0169', '\u016B', '\u016D', '\u0000', '\u00FC', '\u1EE7', '\u016F', '\u01D4', '\u0215', '\u0217', '\u1EE5', '\u0000', '\u0173', '\u0000', '\u0000', '\u1E77', '\u1E75', '\u0000', '\u0171', '\u01B0', '\u0000', '\u1E73', }, new char[] { '\u0000', '\u0000', '\u0000', '\u1E7D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E7F', }, new char[] { '\u1E81', '\u1E83', '\u0175', '\u0000', '\u0000', '\u0000', '\u1E87', '\u1E85', '\u0000', '\u1E98', '\u0000', '\u0000', '\u0000', '\u1E89', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1E8B', '\u1E8D', }, new char[] { '\u1EF3', '\u00FD', '\u0177', '\u1EF9', '\u0233', '\u0000', '\u1E8F', '\u00FF', '\u1EF7', '\u1E99', '\u0000', '\u0000', '\u0000', '\u1EF5', }, new char[] { '\u0000', '\u017A', '\u1E91', '\u0000', '\u0000', '\u0000', '\u017C', '\u0000', '\u0000', '\u0000', '\u017E', '\u0000', '\u0000', '\u1E93', '\u0000', '\u0000', '\u1E95', }, new char[] { '\u1FED', '\u0385', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FC1', }, new char[] { '\u1EA6', '\u1EA4', '\u0000', '\u1EAA', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EA8', }, new char[] { '\u0000', '\u01FC', '\u0000', '\u0000', '\u01E2', }, new char[] { '\u1EC0', '\u1EBE', '\u0000', '\u1EC4', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EC2', }, new char[] { '\u1ED2', '\u1ED0', '\u0000', '\u1ED6', '\u0000', '\u0000', '\u0000', '\u0000', '\u1ED4', }, new char[] { '\u0000', '\u1E4C', '\u0000', '\u0000', '\u022C', '\u0000', '\u0000', '\u1E4E', }, new char[] { '\u01DB', '\u01D7', '\u0000', '\u0000', '\u01D5', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01D9', }, new char[] { '\u1EA7', '\u1EA5', '\u0000', '\u1EAB', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EA9', }, new char[] { '\u0000', '\u01FD', '\u0000', '\u0000', '\u01E3', }, new char[] { '\u1EC1', '\u1EBF', '\u0000', '\u1EC5', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EC3', }, new char[] { '\u1ED3', '\u1ED1', '\u0000', '\u1ED7', '\u0000', '\u0000', '\u0000', '\u0000', '\u1ED5', }, new char[] { '\u0000', '\u1E4D', '\u0000', '\u0000', '\u022D', '\u0000', '\u0000', '\u1E4F', }, new char[] { '\u01DC', '\u01D8', '\u0000', '\u0000', '\u01D6', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u01DA', }, new char[] { '\u1EB0', '\u1EAE', '\u0000', '\u1EB4', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EB2', }, new char[] { '\u1EB1', '\u1EAF', '\u0000', '\u1EB5', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EB3', }, new char[] { '\u1E14', '\u1E16', }, new char[] { '\u1E15', '\u1E17', }, new char[] { '\u1E50', '\u1E52', }, new char[] { '\u1E51', '\u1E53', }, new char[] { '\u1EDC', '\u1EDA', '\u0000', '\u1EE0', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EDE', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EE2', }, new char[] { '\u1EDD', '\u1EDB', '\u0000', '\u1EE1', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EDF', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EE3', }, new char[] { '\u1EEA', '\u1EE8', '\u0000', '\u1EEE', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EEC', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EF0', }, new char[] { '\u1EEB', '\u1EE9', '\u0000', '\u1EEF', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EED', '\u0000', '\u0000', '\u0000', '\u0000', '\u1EF1', }, new char[] { '\u1FBA', '\u0386', '\u0000', '\u0000', '\u1FB9', '\u1FB8', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F08', '\u1F09', '\u1FBC', }, new char[] { '\u1FC8', '\u0388', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F18', '\u1F19', }, new char[] { '\u1FCA', '\u0389', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F28', '\u1F29', '\u1FCC', }, new char[] { '\u1FDA', '\u038A', '\u0000', '\u0000', '\u1FD9', '\u1FD8', '\u0000', '\u03AA', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F38', '\u1F39', }, new char[] { '\u1FF8', '\u038C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F48', '\u1F49', }, new char[] { '\u1FEA', '\u038E', '\u0000', '\u0000', '\u1FE9', '\u1FE8', '\u0000', '\u03AB', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F59', }, new char[] { '\u1FFA', '\u038F', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F68', '\u1F69', '\u1FFC', }, new char[] { '\u1F70', '\u03AC', '\u0000', '\u0000', '\u1FB1', '\u1FB0', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FB6', '\u1F00', '\u1F01', '\u1FB3', }, new char[] { '\u1F72', '\u03AD', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F10', '\u1F11', }, new char[] { '\u1F74', '\u03AE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FC6', '\u1F20', '\u1F21', '\u1FC3', }, new char[] { '\u1F76', '\u03AF', '\u0000', '\u0000', '\u1FD1', '\u1FD0', '\u0000', '\u03CA', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FD6', '\u1F30', '\u1F31', }, new char[] { '\u1F78', '\u03CC', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F40', '\u1F41', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FE4', '\u1FE5', }, new char[] { '\u1F7A', '\u03CD', '\u0000', '\u0000', '\u1FE1', '\u1FE0', '\u0000', '\u03CB', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FE6', '\u1F50', '\u1F51', }, new char[] { '\u1F7C', '\u03CE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FF6', '\u1F60', '\u1F61', '\u1FF3', }, new char[] { '\u1FD2', '\u0390', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FD7', }, new char[] { '\u1FE2', '\u03B0', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FE7', }, new char[] { '\u0000', '\u03D3', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u03D4', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D0', '\u0000', '\u04D2', }, new char[] { '\u0400', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D6', '\u0000', '\u0401', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04C1', '\u0000', '\u04DC', }, new char[] { '\u040D', '\u0000', '\u0000', '\u0000', '\u04E2', '\u0419', '\u0000', '\u04E4', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u04EE', '\u040E', '\u0000', '\u04F0', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04F2', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D1', '\u0000', '\u04D3', }, new char[] { '\u0450', '\u0000', '\u0000', '\u0000', '\u0000', '\u04D7', '\u0000', '\u0451', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04C2', '\u0000', '\u04DD', }, new char[] { '\u045D', '\u0000', '\u0000', '\u0000', '\u04E3', '\u0439', '\u0000', '\u04E5', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u04EF', '\u045E', '\u0000', '\u04F1', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u04F3', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0623', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0BCA', '\u0BCC', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0CC7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0D4A', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0DDA', }, new char[] { '\u0000', '\u0000', '\u1EAC', '\u0000', '\u0000', '\u1EB6', }, new char[] { '\u0000', '\u0000', '\u1EAD', '\u0000', '\u0000', '\u1EB7', }, new char[] { '\u1F02', '\u1F04', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F06', '\u0000', '\u0000', '\u1F80', }, new char[] { '\u1F03', '\u1F05', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F07', '\u0000', '\u0000', '\u1F81', }, new char[] { '\u1F0A', '\u1F0C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F0E', '\u0000', '\u0000', '\u1F88', }, new char[] { '\u1F0B', '\u1F0D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F0F', '\u0000', '\u0000', '\u1F89', }, new char[] { '\u1F12', '\u1F14', }, new char[] { '\u1F13', '\u1F15', }, new char[] { '\u1F1A', '\u1F1C', }, new char[] { '\u1F1B', '\u1F1D', }, new char[] { '\u1F22', '\u1F24', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F26', '\u0000', '\u0000', '\u1F90', }, new char[] { '\u1F23', '\u1F25', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F27', '\u0000', '\u0000', '\u1F91', }, new char[] { '\u1F2A', '\u1F2C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F2E', '\u0000', '\u0000', '\u1F98', }, new char[] { '\u1F2B', '\u1F2D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F2F', '\u0000', '\u0000', '\u1F99', }, new char[] { '\u1F32', '\u1F34', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F36', }, new char[] { '\u1F33', '\u1F35', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F37', }, new char[] { '\u1F3A', '\u1F3C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F3E', }, new char[] { '\u1F3B', '\u1F3D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F3F', }, new char[] { '\u1F42', '\u1F44', }, new char[] { '\u1F43', '\u1F45', }, new char[] { '\u1F4A', '\u1F4C', }, new char[] { '\u1F4B', '\u1F4D', }, new char[] { '\u1F52', '\u1F54', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F56', }, new char[] { '\u1F53', '\u1F55', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F57', }, new char[] { '\u1F5B', '\u1F5D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F5F', }, new char[] { '\u1F62', '\u1F64', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F66', '\u0000', '\u0000', '\u1FA0', }, new char[] { '\u1F63', '\u1F65', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F67', '\u0000', '\u0000', '\u1FA1', }, new char[] { '\u1F6A', '\u1F6C', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F6E', '\u0000', '\u0000', '\u1FA8', }, new char[] { '\u1F6B', '\u1F6D', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1F6F', '\u0000', '\u0000', '\u1FA9', }, new char[] { '\u1FCD', '\u1FCE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FCF', }, new char[] { '\u1FDD', '\u1FDE', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u1FDF', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3070', '\u3071', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3073', '\u3074', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3076', '\u3077', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u3079', '\u307A', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u307C', '\u307D', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D0', '\u30D1', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D3', '\u30D4', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D6', '\u30D7', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30D9', '\u30DA', }, new char[] { '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u0000', '\u30DC', '\u30DD', }, }; public static readonly char[,] singleFirst = new char[,] { { '\u0338', '\u226E' }, { '\u0338', '\u2260' }, { '\u0338', '\u226F' }, { '\u0307', '\u1E1E' }, { '\u0302', '\u0134' }, { '\u0307', '\u1E1F' }, { '\u0304', '\u01DE' }, { '\u0301', '\u01FA' }, { '\u0301', '\u1E08' }, { '\u0301', '\u1E2E' }, { '\u0304', '\u022A' }, { '\u0301', '\u01FE' }, { '\u0304', '\u01DF' }, { '\u0301', '\u01FB' }, { '\u0301', '\u1E09' }, { '\u0301', '\u1E2F' }, { '\u0304', '\u022B' }, { '\u0301', '\u01FF' }, { '\u0307', '\u1E64' }, { '\u0307', '\u1E65' }, { '\u0307', '\u1E66' }, { '\u0307', '\u1E67' }, { '\u0301', '\u1E78' }, { '\u0301', '\u1E79' }, { '\u0308', '\u1E7A' }, { '\u0308', '\u1E7B' }, { '\u0307', '\u1E9B' }, { '\u030C', '\u01EE' }, { '\u0304', '\u01EC' }, { '\u0304', '\u01ED' }, { '\u0304', '\u01E0' }, { '\u0304', '\u01E1' }, { '\u0306', '\u1E1C' }, { '\u0306', '\u1E1D' }, { '\u0304', '\u0230' }, { '\u0304', '\u0231' }, { '\u030C', '\u01EF' }, { '\u0314', '\u1FEC' }, { '\u0345', '\u1FB4' }, { '\u0345', '\u1FC4' }, { '\u0345', '\u1FF4' }, { '\u0308', '\u0407' }, { '\u0301', '\u0403' }, { '\u0308', '\u04DE' }, { '\u0301', '\u040C' }, { '\u0308', '\u04E6' }, { '\u0308', '\u04F4' }, { '\u0308', '\u04F8' }, { '\u0308', '\u04EC' }, { '\u0301', '\u0453' }, { '\u0308', '\u04DF' }, { '\u0301', '\u045C' }, { '\u0308', '\u04E7' }, { '\u0308', '\u04F5' }, { '\u0308', '\u04F9' }, { '\u0308', '\u04ED' }, { '\u0308', '\u0457' }, { '\u030F', '\u0476' }, { '\u030F', '\u0477' }, { '\u0308', '\u04DA' }, { '\u0308', '\u04DB' }, { '\u0308', '\u04EA' }, { '\u0308', '\u04EB' }, { '\u0654', '\u0624' }, { '\u0654', '\u0626' }, { '\u0654', '\u06C2' }, { '\u0654', '\u06D3' }, { '\u0654', '\u06C0' }, { '\u093C', '\u0929' }, { '\u093C', '\u0931' }, { '\u093C', '\u0934' }, { '\u0BD7', '\u0B94' }, { '\u0BBE', '\u0BCB' }, { '\u0C56', '\u0C48' }, { '\u0CD5', '\u0CC0' }, { '\u0CD5', '\u0CCB' }, { '\u0D3E', '\u0D4B' }, { '\u0DCA', '\u0DDD' }, { '\u102E', '\u1026' }, { '\u0304', '\u1E38' }, { '\u0304', '\u1E39' }, { '\u0304', '\u1E5C' }, { '\u0304', '\u1E5D' }, { '\u0307', '\u1E68' }, { '\u0307', '\u1E69' }, { '\u0302', '\u1EC6' }, { '\u0302', '\u1EC7' }, { '\u0302', '\u1ED8' }, { '\u0302', '\u1ED9' }, { '\u0345', '\u1F82' }, { '\u0345', '\u1F83' }, { '\u0345', '\u1F84' }, { '\u0345', '\u1F85' }, { '\u0345', '\u1F86' }, { '\u0345', '\u1F87' }, { '\u0345', '\u1F8A' }, { '\u0345', '\u1F8B' }, { '\u0345', '\u1F8C' }, { '\u0345', '\u1F8D' }, { '\u0345', '\u1F8E' }, { '\u0345', '\u1F8F' }, { '\u0345', '\u1F92' }, { '\u0345', '\u1F93' }, { '\u0345', '\u1F94' }, { '\u0345', '\u1F95' }, { '\u0345', '\u1F96' }, { '\u0345', '\u1F97' }, { '\u0345', '\u1F9A' }, { '\u0345', '\u1F9B' }, { '\u0345', '\u1F9C' }, { '\u0345', '\u1F9D' }, { '\u0345', '\u1F9E' }, { '\u0345', '\u1F9F' }, { '\u0345', '\u1FA2' }, { '\u0345', '\u1FA3' }, { '\u0345', '\u1FA4' }, { '\u0345', '\u1FA5' }, { '\u0345', '\u1FA6' }, { '\u0345', '\u1FA7' }, { '\u0345', '\u1FAA' }, { '\u0345', '\u1FAB' }, { '\u0345', '\u1FAC' }, { '\u0345', '\u1FAD' }, { '\u0345', '\u1FAE' }, { '\u0345', '\u1FAF' }, { '\u0345', '\u1FB2' }, { '\u0345', '\u1FC2' }, { '\u0345', '\u1FF2' }, { '\u0345', '\u1FB7' }, { '\u0345', '\u1FC7' }, { '\u0345', '\u1FF7' }, { '\u0338', '\u219A' }, { '\u0338', '\u219B' }, { '\u0338', '\u21AE' }, { '\u0338', '\u21CD' }, { '\u0338', '\u21CF' }, { '\u0338', '\u21CE' }, { '\u0338', '\u2204' }, { '\u0338', '\u2209' }, { '\u0338', '\u220C' }, { '\u0338', '\u2224' }, { '\u0338', '\u2226' }, { '\u0338', '\u2241' }, { '\u0338', '\u2244' }, { '\u0338', '\u2247' }, { '\u0338', '\u2249' }, { '\u0338', '\u226D' }, { '\u0338', '\u2262' }, { '\u0338', '\u2270' }, { '\u0338', '\u2271' }, { '\u0338', '\u2274' }, { '\u0338', '\u2275' }, { '\u0338', '\u2278' }, { '\u0338', '\u2279' }, { '\u0338', '\u2280' }, { '\u0338', '\u2281' }, { '\u0338', '\u22E0' }, { '\u0338', '\u22E1' }, { '\u0338', '\u2284' }, { '\u0338', '\u2285' }, { '\u0338', '\u2288' }, { '\u0338', '\u2289' }, { '\u0338', '\u22E2' }, { '\u0338', '\u22E3' }, { '\u0338', '\u22AC' }, { '\u0338', '\u22AD' }, { '\u0338', '\u22AE' }, { '\u0338', '\u22AF' }, { '\u0338', '\u22EA' }, { '\u0338', '\u22EB' }, { '\u0338', '\u22EC' }, { '\u0338', '\u22ED' }, { '\u3099', '\u3094' }, { '\u3099', '\u304C' }, { '\u3099', '\u304E' }, { '\u3099', '\u3050' }, { '\u3099', '\u3052' }, { '\u3099', '\u3054' }, { '\u3099', '\u3056' }, { '\u3099', '\u3058' }, { '\u3099', '\u305A' }, { '\u3099', '\u305C' }, { '\u3099', '\u305E' }, { '\u3099', '\u3060' }, { '\u3099', '\u3062' }, { '\u3099', '\u3065' }, { '\u3099', '\u3067' }, { '\u3099', '\u3069' }, { '\u3099', '\u309E' }, { '\u3099', '\u30F4' }, { '\u3099', '\u30AC' }, { '\u3099', '\u30AE' }, { '\u3099', '\u30B0' }, { '\u3099', '\u30B2' }, { '\u3099', '\u30B4' }, { '\u3099', '\u30B6' }, { '\u3099', '\u30B8' }, { '\u3099', '\u30BA' }, { '\u3099', '\u30BC' }, { '\u3099', '\u30BE' }, { '\u3099', '\u30C0' }, { '\u3099', '\u30C2' }, { '\u3099', '\u30C5' }, { '\u3099', '\u30C7' }, { '\u3099', '\u30C9' }, { '\u3099', '\u30F7' }, { '\u3099', '\u30F8' }, { '\u3099', '\u30F9' }, { '\u3099', '\u30FA' }, { '\u3099', '\u30FE' }, }; public static readonly char[,] singleSecond = new char[,] { { '\u0627', '\u0622' }, { '\u0627', '\u0625' }, { '\u09C7', '\u09CB' }, { '\u09C7', '\u09CC' }, { '\u0B47', '\u0B4B' }, { '\u0B47', '\u0B48' }, { '\u0B47', '\u0B4C' }, { '\u0CC6', '\u0CCA' }, { '\u0CC6', '\u0CC8' }, { '\u0D46', '\u0D4C' }, { '\u0DD9', '\u0DDC' }, { '\u0DD9', '\u0DDE' }, }; public static readonly int multiSecondStart = 144; public static readonly int singleFirstStart = 181; public static readonly int singleSecondStart = 391; public static readonly int[] composePage = new int[] { 0, 1, 2, 3, 4, -1, 5, -1, -1, 6, -1, 7, 8, 9, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, }; public static readonly int[,] composeData = new int[,] { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 181, 182, 183, -1, -1, 0, 1, 2, 3, 4, 184, 5, 6, 7, 185, 8, 9, 10, 11, 12, 13, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, 23, 24, 25, 26, 27, 186, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, 187, 188, 49, 189, -1, -1, 50, -1, -1, -1, -1, 190, -1, -1, -1, -1, 51, 52, 191, -1, 192, -1, -1, -1, 53, -1, -1, -1, -1, -1, 54, -1, 193, 194, 55, 195, -1, -1, 56, -1, -1, -1, -1, 196, -1, -1, -1, -1, 57, 58, 197, -1, 198, -1, -1, -1, 59, -1, -1, -1, }, { -1, -1, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, 203, 204, 205, 206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, 214, -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 144, 145, 146, 147, 148, -1, 149, 150, 151, 152, 153, 165, 154, -1, -1, 155, -1, 156, -1, 170, 171, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, 157, 168, 158, 167, 161, 159, -1, -1, -1, -1, 162, 164, -1, 163, 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 71, -1, 72, -1, 73, -1, -1, -1, -1, -1, 74, -1, 218, -1, -1, -1, 75, -1, -1, -1, 76, -1, -1, 219, -1, 220, -1, -1, 77, -1, -1, -1, 78, -1, 79, -1, 80, -1, -1, -1, -1, -1, 81, -1, 82, -1, -1, -1, 83, -1, -1, -1, 84, 85, 86, -1, -1, 221, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, 223, -1, 89, 90, 224, 91, -1, 225, -1, -1, -1, 226, -1, -1, -1, -1, 92, -1, -1, -1, 227, -1, -1, -1, 228, -1, 229, -1, -1, 93, -1, -1, 230, -1, 94, 95, 231, 96, -1, 232, -1, -1, -1, 233, -1, -1, -1, -1, 97, -1, -1, -1, 234, -1, -1, -1, 235, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, 245, -1, -1, -1, -1, -1, -1, -1, -1, 391, 173, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, 248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 249, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, 99, 253, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, 398, -1, -1, -1, 100, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, 101, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 178, -1, -1, -1, -1, 401, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, 258, -1, -1, 402, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, 263, -1, -1, -1, -1, -1, -1, 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 266, 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 105, 106, 270, 271, 272, 273, 274, 275, 107, 108, 276, 277, 278, 279, 280, 281, 109, 110, -1, -1, -1, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, 113, 114, 282, 283, 284, 285, 286, 287, 115, 116, 288, 289, 290, 291, 292, 293, 117, 118, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, 125, 126, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, -1, 128, 129, 294, 295, 296, 297, 298, 299, 130, 131, 300, 301, 302, 303, 304, 305, 306, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, 133, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, 313, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, -1, 316, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, 318, -1, -1, -1, -1, 319, -1, -1, 320, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 324, -1, 325, -1, -1, 326, -1, -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, -1, -1, 329, 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, 332, -1, -1, 333, 334, -1, -1, 335, 336, 337, 338, -1, -1, -1, -1, 339, 340, -1, -1, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, -1, -1, -1, -1, -1, 346, 347, -1, 348, -1, -1, -1, -1, -1, -1, 349, 350, 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, 354, -1, 355, -1, 356, -1, 357, -1, 358, -1, 359, -1, 360, -1, 361, -1, 362, -1, 363, -1, 364, -1, 365, -1, -1, 366, -1, 367, -1, 368, -1, -1, -1, -1, -1, -1, 134, -1, -1, 135, -1, -1, 136, -1, -1, 137, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 179, 180, -1, -1, 369, -1, -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, -1, -1, 371, -1, 372, -1, 373, -1, 374, -1, 375, -1, 376, -1, 377, -1, 378, -1, 379, -1, 380, -1, 381, -1, 382, -1, -1, 383, -1, 384, -1, 385, -1, -1, -1, -1, -1, -1, 139, -1, -1, 140, -1, -1, 141, -1, -1, 142, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, 387, 388, 389, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 390, -1, -1, }, }; } libidn-1.28/csharp/IDNAException.cs0000644000000000000000000000335612153706572014014 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace Gnu.Inet.Encoding { public class IDNAException : System.Exception { public static string CONTAINS_NON_LDH = "Contains non-LDH characters."; public static string CONTAINS_HYPHEN = "Leading or trailing hyphen not allowed."; public static string CONTAINS_ACE_PREFIX = "ACE prefix (xn--) not allowed."; public static string TOO_LONG = "String too long."; public IDNAException(string m) : base(m) { } // TODO public IDNAException(StringprepException e) :base( "", e) { } public IDNAException(PunycodeException e) : base( "", e) { } } } libidn-1.28/csharp/libidn.suo0000664000000000000000000024100011746453142013053 00000000000000ࡱ>   I 8:"#$%&'()+,-./012345679;=<>TV@ABCDEFGHJKLMNOPQRUkYlmxXqrsZoRoot EntryP^+J%\IProjInfoExTaskListUserTasks$HIToolboxService )  "#$'D-./023456789;<=>@ABCOPQRTUVW_`abdefkhijmnoprstuwxyz}~#\E5ϭݗ C My User ControlsDevice ControlsCrystal ReportsData XML Schema Dialog EditorMobile Web Forms Web Forms Components Windows FormsHTMLClipboard RingGeneralonenten Windows FormsHTMLZwsbC:\Dokumente und EinstellungIVSMDPropertyBrowser*IVSMDDesignerService*DebuggerWatches DebuggerBreakpoints(*xD:\Programme\Microsoft Visual Studio .NET 2003\Vc7\crt\src\D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\mfc\D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\atl\2003\Vc7\crt\sDebuggerExceptions&' DebuggerFindSource& DebuggerFindSymbol&DebuggerMemoryWindows,T .NET 2003\Vc7\atlmfc\ͫ4.Fͫ4MultiStartupProj=;4{BED43666-B1A2-486D-871C-A65A2A925764}.dwStartupOpt=;StartupProject=&{BED43666-B1A2-486D-871C-A65A2A925764};A{BED43666-B1A2-486D-871C-A65A2A925764}.Release|ExternalFilesProjectContents: DocumentWindowPositions0 71DocumentWindowUserData.SolutionConfiguration,vAny CPU.fBatchBld=;?{BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.fBatchBld=; ActiveCfg= Debug|Any CPU;A3E01S$ A+HڪWLrJA)jKנRLкX"E:cxL[{0Aw9 Ll #O¤EL%ү##G}'bm4S8fLd9LrJA)jKנRLкX"E:cxL[{0Aw9 Ll #O¤EL%ү##G}'bm43-449142B4CAC2}.dwStartupOptQ c:\dokumente und einstellungen\gnauck\eigene dateien\visual studio 2005\projects\agsxmpp_net2.0\libidn.net\libidn\g|Any ECSPU.fBatchBld=;4{70359C49-7[{0Aw9 NSܾ M%кX"E:cxIDNATest Testqconsoletes$Bookmarks V001.01EinstellungeX auck\Eigene Dateien\Visual SECSPf6ԾmHZ*Wdrojects\agsxmpp_Net2\libidn.NET\libidn\DecompositiC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.resx]D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.resxund Einstellungen\gnauck\Eigd |{|{BED43666-B1A2-486D-871C-A65A2A925764}|libidn.csproj|c:\dokumente und einstellungen\gnauck\eigene dateien\visual studio 2005\projects\agsxmpp_net2.0\libidn.net\libidn\assemblyinfo.cs||{A6CTaskListShortcuts$)OutliningState9 %gVsToolboxService"+ObjMgrContentsV8"744A8-0E4A-4FC6-886A-064283054674}P:C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cse} sE:\Documents\agsxmpC:\Dokumente und Einstellungen\NET\libidn\DecompositionMappings.csE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cs"D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompoC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csXual Studio 2005\Projects\agsxC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cs7D:\Eigene DateieC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cse}sitionKeys.csC:\Dokumente un Visual Studio 2005\ProjeC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\PunycodeException.csܖäibidn.NET\libidC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csŕ$d einstellungen\gnauck\em\gnauck\Desktop\libidnC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csu dn\_Composition.csD:\EigC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs3)%ateien\Visual Studio 2005\PC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csP JNATest\frmMain.cs d Einstellungen\gnauck\Lokale EiC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cst8Studio 2005\Projects\agsxC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\StringprepException.csvProjects\agsxC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.cs' 2005\Projects\agsxscfE:\Documents\agsxmpC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.cs2onMappings.csnstellungen\Temp\vsp3853.tmp.cs/D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\HiddenSlnFolders"OutliningStateDir$?%BookmarkState((FAE04EC1-301F-11D3_ProjTrust: C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\li\libidn.NET\libidn\DecompositionMappings.csents\agsxmpbidn.NET\libidn\IDNA.cs6h %ү##G}'bm4-71E8-4AD1-BA56-259C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual StuD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csIvisual studio 2005\prD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs[' \8[8\8 |{CD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.cs+0\libidn.net\libidD:\Eigene Dateien\Visual StudioFAE04EC1-301F-11D3_ProjState:!OutliningState7 $OutliningState2 #"OutliningState5 ! BCSPf6ԾmHZ*WdGBSCC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\libidn.csproj^p%\C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\libidn.csproj.user4$\BCSCDebug|Any CPU 1701;1702libraryobj\Debug\libidn.dlllibraryGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\StringprepException.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csGBLI~C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\AssemblyInfo.csGBLI}C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csGBLIzC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csGBLIzC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\PunycodeException.csDELIGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllDELIGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemDELIDELIDELIDESCECSPDELIGBLI;C:\WINDOWS\MicrosoftC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\ C:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.5.20\libidn-0.5.20\java\gnu\inet\encoding\Test\Form1.csddP:G:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Programmierung\dotNet 2003\agsxmpp\libidn.NET\ConsoleTest\Class1.csB:C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:"IDNATest.frmMainC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cs9:`Gnu.Inet.Encoding.Punycode.Decode(string input)BbQ?SOC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:"IDNATest.frmMainC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs I:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)bQ?SOC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e) C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs D:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e) bQ?SOC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e) C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs :xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)bQ?SOnd Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI5C:\Programme\ProgTools\nUn 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csIHw D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs-BD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csDD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.cs:/lSD:\Eigene Dateien\Visual StudioOutliningState6 OutliningState4 OutliningState3 OutliningState1  2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cs0 dio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs_0ȚY7ents\agsxmplibidn.NET\Tests\Class1.cs lE:D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.csY$D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csE-D:\Eigene Dateien\Visual StudioOutliningState8 OutliningState10"+E6FDF8B0-F3D1-11D4_ProjState:%XmlPackageOptions$, 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_DecompositionKeys.csC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\DecompositionKeys.javaR}6-2590E339D9AD:\Eigene Dateien\Visual Studio2C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.csE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs$C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\AssemblyInfo.cs1D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.csE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cs"D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionKeys.csC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3853.tmp.cs/D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs lE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs!D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.csvE:\Documents\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs*nE:\Documents\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs(C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs#C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\NFKC.javaC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\DecompositionKeys.java D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_Composition.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\PunycodeException.cslE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.cs%D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\StringprepException.csC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3811.tmp.cs.C:\Dokumente und Einstellungen\gnauc    "#k\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs0C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.cstE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp37DF.tmp.cs+C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3802.tmp.cs,C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp3807.tmp.cs-C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_DecompositionKeys.cs C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp1B2.tmp.cs'C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csrE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cs C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs xE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.cs&D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs)l Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csC:\Dokumente und Einstellungen\gnauck\Lokale Einstellungen\Temp\vsp1B2.tmp.cs'C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libOutliningState14"OutliningState12",OutliningState13"(OutliningState11"OutliningState15"*;OutliningState16"OutliningState24"/6NOutliningState23"1S 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_Composition.cs|C:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\NFKC.java2s\Documents\agsxmpp_Net2.0\libidnidn\Composition.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.csrE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cs C:\Dokumente und Einstellungen\gnauck\EigenOutliningState37"OutliningState31"<> OutliningState36"C@ OutliningState35"DOutliningState34"OutliningState40"OutliningState41"EOutliningState42"!s\agsxmpp_Net2.0\libidn.NvE:\Documents\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csк[io 2005\Projects\agsxmpp_C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs :xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)bQ?SOfrmMain.cs I:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)bQ?SOm.XML.dll System.XMLDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702promptlibraryobj\Debug\Tests.dlllibraryGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\AssemblyInfo.csGBLI{C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\Tests\Class1.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dllGBLI5C:\Programme\ProgTools\nUnit\bin\nunit.framework.dllGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NETe Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.csD:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs xE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.cs&D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.cs)csd\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllDELIGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI5C:\Programme\ProgTools\nUnit\bin\nunit.framework.dllnunit.frameworkGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll System.XMLDELIDELIDELIDESCBCSPmJDBGBSCC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\ConsoleTest.csproj(NC:\Dokumente und Einstellungen\gne und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\ C:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.5.20\libidn-0.5.20\java\gnu\inet\encoding\Test\Form1.csdC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\ C:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.5.20\libidn-0.5.20\java\gnu\inet\encoding\Test\Form1.csddP:G:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Programmierung\dotNet 2003\agsxmpp\libidn.NET\ConsoleTest\Class1.csB:C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:"IDNATest.frmMainauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\ConsoleTest.csproj.userBCSCRelease|Any CPU 285212672TRACE 1701;1702promptexeobj\Release\ConsoleTest.exeexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Asse.NET\libidn\NFKC.cs!D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.csvE:\Documents\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs*nE:\Documents\agsxmpp_Net2.0\libidn.NET\Tests\Class1.cs(C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNAException.cszE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Composition.cs#C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.csC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.csC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encodOutliningState30"*OutliningState32"OutliningState33"=?OutliningState38"BF005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.csxE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Stringprep.cs&2005\Projects\agsxmpp_Net2mblyInfo.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dllGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIC:\Dokumente und Einstellungen\gnauck\lE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\IDNA.cs% tE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cs eien\Visual Studio 2005\ProjE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\DecompositionMappings.cs-Bsxmpp_Net2.0\lizE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\Composition.csŕ$05\Projects\agsxmpp_Net2.E:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\CombiningClass.csIbidn.NET\libidn\NFKC.cnE:\Documents\agsxmpp_Net2.0\libidn.NET\Tests\Class1.csFE%\libidn.NET\Tests\Class1.cs vzE:\Documents\agsxmpp_Net2.0\librE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\RFC3454.cs Mio 2005\Projects\agsxmpp_Net2lE:\Documents\agsxmpp_Net2.0\libidn.NET\libidn\NFKC.cs}-ridn.NET\ConsoleTest\Class1.cs1)Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}DELIGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll System.XMLDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702promptexeobj\Debug\ConsoleTest.exeexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\Class1.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\ConsoleTest\AssemblyInfo.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dllGBLIing\NFKC.javaC:\Dokumente und Einstellungen\gnauck\Desktop\libidn-0.6.0\java\gnu\inet\encoding\DecompositionKeys.java D:\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\_Composition.csD:\Eigene Dateien\Visual Studio 2C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllDELIGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.XML.dll System.XMLDELIDELIDELIDESCBCSPI5pqJV%9٩GBSCC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\IDNATest.csproj4C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\IDNATest.csproj.user/ŲBCSCRelease|Any CPU 285212672TRACE 1701;1702promptwinexeobj\Release\IDNATest.exewinexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.ndllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702promptwinexeobj\Debug\IDNATest.exewinexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\DokuOutliningState26"&OutliningState27"3:OutliningState28"OutliningState29"9A"mente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIDESCECSPft.NET\Framework\v2.0.50727\System.Drawing.dC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\Punycode.cs9:`Gnu.Inet.Encoding.Punycode.Decode(string input)BbQ?SOC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:OutliningState21":OutliningState22"0^"OutliningState17"-4cOutliningState20"2.lOutliningState18"5q OutliningState19"vOutliningState25"8|164B10B9-B200-11D0_ProjState:&*"IDNATest.frmMainC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)C:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs I:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)bQ?SOC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.cs:xIDNATest.frmMain.btnTest2_Click(object sender, EventArgs e)C:\Dokumente und Einstellungen\gnauck\Eige672TRACE 1701;1702promptwinexeobj\Release\IDNATest.exewinexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Release\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIBCSCDebug|Any CPU 285212672full DEBUG;TRACE 1701;1702promptwinexeobj\Debug\IDNATest.exewinexeApp.icoGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\AssemblyInfo.csGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\IDNATest\frmMain.csDELIGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dllGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dll'{C1B5E659-780A-4EE1-A1A7-777131FAC43C}GBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dllGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllDELIGBLIC:\Dokumente und Einstellungen\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\bin\Debug\libidn.dlllibidnGBLI>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll System.DataGBLI9C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dllSystemGBLIAC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dllSystem.DrawingGBLIGC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dllSystem.Windows.FormsGBLI=C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll System.XmlDELIDELIDELIDESCECSPOutliningState48"GOutliningState49"?libidn-1.28/csharp/generate/0000755000000000000000000000000012167253755012743 500000000000000libidn-1.28/csharp/generate/GenerateNFKC.cs0000644000000000000000000006306712153706572015415 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.IO; using System.Collections; using System.Text; namespace gnu.inet.encoding.misc { public class GenerateNFKC { internal static string stripComment(string sIn) { int c = sIn.IndexOf('#'); if (c == -1) { return sIn; } else { return sIn.Substring(0, (c) - (0)); } } internal static string[] split(string sIn, char sep) { StringBuilder sb = new StringBuilder(sIn); int c = 0; for (int i = 0; i < sb.Length; i++) { if (sb[i] == sep) { c++; } } string[] sOut = new string[c + 1]; c = 0; int l = 0; for (int i = 0; i < sb.Length; i++) { if (sb[i] == sep) { if (l >= i) { sOut[c] = ""; } else { // TODO, check this sOut[c] = sb.ToString(l, i-l); } l = i + 1; c++; } } if (l < sb.Length) { sOut[c] = sb.ToString(l, sb.Length - l); } return sOut; } internal static bool isCompatibilityMapping(string sIn) { return sIn.Length > 0 && sIn[0] == '<'; } internal static string stripCompatibilityTag(string sIn) { return sIn.Substring(sIn.IndexOf('>') + 2); } internal static string toString(string sIn) { StringBuilder sOut = new StringBuilder(); string[] chars = split(sIn, ' '); for (int i = 0; i < chars.Length; i++) { if (chars[i].Equals("005C")) { sOut.Append("\\\\"); } else if (chars[i].Equals("0022")) { sOut.Append("\\\""); } else { sOut.Append("\\u"); sOut.Append(chars[i]); } } return sOut.ToString(); } internal static string decompose(string sIn, SortedList mappings) { StringBuilder sOut = new StringBuilder(); string[] c = split(sIn, ' '); for (int i = 0; i < c.Length; i++) { if (mappings.ContainsKey(c[i])) { if (sOut.Length > 0) { sOut.Append(" "); } sOut.Append(decompose((string)mappings[c[i]], mappings)); } else { if (sOut.Length > 0) { sOut.Append(" "); } sOut.Append(c[i]); } } return sOut.ToString(); } public static void Generate() { // Check if the unicode files exist { FileInfo f1 = new FileInfo("CompositionExclusions.txt"); FileInfo f2 = new FileInfo("UnicodeData.txt"); bool tmpBool; if (File.Exists(f1.FullName)) tmpBool = true; else tmpBool = Directory.Exists(f1.FullName); bool tmpBool2; if (File.Exists(f2.FullName)) tmpBool2 = true; else tmpBool2 = Directory.Exists(f2.FullName); if (!tmpBool || !tmpBool2) { Console.WriteLine("Unable to find UnicodeData.txt or CompositionExclusions.txt."); Console.WriteLine("Please download the latest version of these file from:"); Console.WriteLine("http://www.unicode.org/Public/UNIDATA/"); System.Environment.Exit(1); } } ArrayList exclusions = new ArrayList(); { StreamReader r = new StreamReader("CompositionExclusions.txt", System.Text.Encoding.Default); string line; while (null != (line = r.ReadLine())) { line = stripComment(line); line = line.Trim(); if (line.Length == 0) { // Empty line } else if (line.Length == 4) { exclusions.Add(line); } else { // Skip code points > 0xffff } } r.Close(); } // Read UnicodeData SortedList canonical = new SortedList(); SortedList compatibility = new SortedList(); SortedList combiningClasses = new SortedList(); { StreamReader r = new StreamReader("UnicodeData.txt", Encoding.Default); string line; while (null != (line = r.ReadLine())) { line = stripComment(line); line = line.Trim(); if (line.Length == 0) { // Empty line } else { string[] f = split(line, ';'); if (f[0].Length == 4) { if (!f[5].Equals("")) { if (isCompatibilityMapping(f[5])) { compatibility[f[0]] = stripCompatibilityTag(f[5]); } else { compatibility[f[0]] = f[5]; if (!exclusions.Contains(f[0])) { canonical[f[0]] = f[5]; } } } if (!f[3].Equals("0")) { //UPGRADE_TODO: Method 'java.lang.Integer.parseInt' was converted to 'System.Convert.ToInt32' which has a different behavior. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1073'" combiningClasses[(int)System.Convert.ToInt32(f[0], 16)] = f[3]; } } else { // Skip code points > 0xffff } } } r.Close(); } // Recursively apply compatibility mappings while (true) { bool replaced = false; IEnumerator i = new HashSet(compatibility.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string v = (string)compatibility[k]; string d = decompose(v, compatibility); if (!d.Equals(v)) { replaced = true; compatibility[k] = d; } } if (!replaced) { break; } } // Eliminate duplicate mappings SortedList compatibilityKeys = new SortedList(); ArrayList compatibilityMappings = new ArrayList(); { IEnumerator i = new HashSet(compatibility.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string v = (string)compatibility[k]; int index = compatibilityMappings.IndexOf(v); if (index == -1) { index = compatibilityMappings.Count; compatibilityMappings.Add(v); } compatibilityKeys[k] = (int)index; } } // Create composition tables SortedList firstMap = new SortedList(); SortedList secondMap = new SortedList(); { IEnumerator i = new HashSet(canonical.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string v = (string)canonical[k]; string[] s = split(v, ' '); if (s.Length == 2) { // If both characters have the same combining class, they // won't be combined (in the sequence AB, B is blocked from // A if both have the same combining class) string cc1 = (string)combiningClasses[(int)System.Convert.ToInt32(s[0], 16)]; string cc2 = (string)combiningClasses[(int)System.Convert.ToInt32(s[1], 16)]; if (cc1 != null || (cc1 != null && cc1.Equals(cc2))) { // Ignore this composition // TODO check this //i.remove(); canonical.Remove(k); continue; } if (firstMap.ContainsKey(s[0])) { int c = (int)firstMap[s[0]]; firstMap[s[0]] = (int)(c + 1); } else { firstMap[s[0]] = 1; } if (secondMap.ContainsKey(s[1])) { int c = (int)secondMap[s[1]]; secondMap[s[1]] = (int)(c + 1); } else { secondMap[s[1]] = 1; } } else if (s.Length > 2) { Console.WriteLine("? wrong canonical mapping for " + k); System.Environment.Exit(1); } } } SortedList singleFirstComposition = new SortedList(); SortedList singleSecondComposition = new SortedList(); SortedList complexComposition = new SortedList(); int composeLookupMax = 0; { IEnumerator i = new HashSet(canonical.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string) i.Current; string v = (string) canonical[k]; string[] s = split(v, ' '); if (s.Length == 2) { // TODO, check this int first = 0; if(firstMap.Contains(s[0])) first = (int) firstMap[s[0]]; int second = 0; if (secondMap.Contains(s[1])) second = (int) secondMap[s[1]]; // TODO, check this if (first == 1) { singleFirstComposition[s[0]] = new string[] { s[1], k }; composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[0], 16)); } else if (second == 1) { singleSecondComposition[s[1]] = new string[] { s[0], k }; composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[1], 16)); } else { if (complexComposition.ContainsKey(s[0])) { SortedList m = (SortedList)complexComposition[s[0]]; if (m.ContainsKey(s[1])) { Console.WriteLine("? ambiguous canonical mapping for " + s[0]); System.Environment.Exit(1); } m[s[1]] = k; } else { SortedList m = new SortedList(); m[s[1]] = k; complexComposition[s[0]] = m; } composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[0], 16)); composeLookupMax = System.Math.Max(composeLookupMax, System.Convert.ToInt32(s[1], 16)); } } } } Console.WriteLine("Generating CombiningClass.cs file..."); // Dump combining classes { StreamWriter w = new StreamWriter("CombiningClass.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class CombiningClass"); w.WriteLine("{"); w.WriteLine("\tpublic static readonly int[,] c = new int[,] {"); System.Text.StringBuilder index = new System.Text.StringBuilder(); int count = 0; for (int i = 0; i < 256; i++) { bool empty = true; StringBuilder page = new StringBuilder(); page.Append(" { /* Page " + i + " */"); for (int j = 0; j < 256; j++) { int c = (int)((i << 8) + j); string cc = (string)combiningClasses[c]; if (0 == (j & 31)) { page.Append("\r\n "); } if (cc == null) { page.Append("0, "); } else { page.Append(cc + ", "); empty = false; } } page.Append("\r\n },"); index.Append(" "); if (!empty) { w.WriteLine(page.ToString()); index.Append(count++); index.Append(",\r\n"); } else { index.Append("-1,\r\n"); } } w.WriteLine(" };\r\n"); w.WriteLine("\tpublic static readonly int[] i = new int[] {"); w.Write(index.ToString()); w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Generating DecompositionKeys.cs file..."); // Dump compatibility decomposition { StreamWriter w = new StreamWriter("DecompositionKeys.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class DecompositionKeys"); w.WriteLine("{"); w.WriteLine("\tpublic static readonly int[] k = new int[] {"); IEnumerator i = new HashSet(compatibilityKeys.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; int index = ((int)compatibilityKeys[k]); w.WriteLine(" '\\u" + k + "', " + index + ","); } w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Generating DecompositionMappings.cs file..."); { StreamWriter w = new StreamWriter("DecompositionMappings.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class DecompositionMappings"); w.WriteLine("{"); w.WriteLine("\tpublic static readonly string[] m = new string[] {"); IEnumerator i = compatibilityMappings.GetEnumerator(); while (i.MoveNext()) { string m = (string)i.Current; w.WriteLine(" \"" + toString(m) + "\","); } w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Generating Composition.cs file..."); // Dump canonical composition { StreamWriter w = new StreamWriter("Composition.cs", false, Encoding.Default); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("public class Composition"); w.WriteLine("{"); IEnumerator i; int index = 0; SortedList indices = new SortedList(); i = new HashSet(complexComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string s0 = (string)i.Current; indices[(int)System.Convert.ToInt32(s0, 16)] = (int)index; index++; } int multiSecondStart = index; w.WriteLine("\t/* jagged Array */"); w.WriteLine("\tpublic static readonly char[][] multiFirst = new char[][] {"); //w.WriteLine(" public final static char[][] multiFirst = new char[][] {"); i = new HashSet(complexComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string s0 = (string)i.Current; SortedList m = (SortedList)complexComposition[s0]; SortedList line = new SortedList(); int maxIndex = 1; System.Collections.IEnumerator i2 = new HashSet(m.Keys).GetEnumerator(); while (i2.MoveNext()) { string s1 = (string)i2.Current; string k = (string)m[s1]; int s1i = (int)System.Convert.ToInt32(s1, 16); if (!indices.ContainsKey(s1i)) { indices[s1i] = (int)index; index++; } line[indices[s1i]] = k; maxIndex = System.Math.Max(maxIndex, ((int)indices[s1i])); } w.Write("\tnew char[] { "); for (int j = multiSecondStart; j <= maxIndex; j++) { if (line.ContainsKey((int)j)) { string s = (string)line[(int)j]; w.Write("'" + toString(s) + "', "); } else { //w.Write(" 0, "); w.Write("'" + toString("0000") + "', "); } } w.WriteLine("},"); } w.WriteLine(" };"); int singleFirstStart = index; w.WriteLine("\tpublic static readonly char[,] singleFirst = new char[,] {"); i = new HashSet(singleFirstComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string[] v = ((string[])singleFirstComposition[k]); w.WriteLine(" { '" + toString(v[0]) + "', '" + toString(v[1]) + "' },"); if (indices.ContainsKey((int)System.Convert.ToInt32(k, 16))) { Console.WriteLine(k + " already indexed!"); } indices[(int)System.Convert.ToInt32(k, 16)] = (int)index; index++; } w.WriteLine(" };"); int singleSecondStart = index; w.WriteLine("\tpublic static readonly char[,] singleSecond = new char[,] {"); i = new HashSet(singleSecondComposition.Keys).GetEnumerator(); while (i.MoveNext()) { string k = (string)i.Current; string[] v = ((string[])singleSecondComposition[k]); w.WriteLine(" { '" + toString(v[0]) + "', '" + toString(v[1]) + "' },"); indices[(int)System.Convert.ToInt32(k, 16)] = (int)index; index++; } w.WriteLine(" };"); w.WriteLine("\tpublic static readonly int multiSecondStart = " + multiSecondStart + ";"); w.WriteLine("\tpublic static readonly int singleFirstStart = " + singleFirstStart + ";"); w.WriteLine("\tpublic static readonly int singleSecondStart = " + singleSecondStart + ";"); System.Text.StringBuilder compositionPages = new System.Text.StringBuilder(); w.WriteLine("\tpublic static readonly int[] composePage = new int[] {"); int pageCount = 0; for (int j = 0; j * 256 < composeLookupMax + 255; j++) { bool empty = true; StringBuilder page = new StringBuilder(); for (int k = 0; k < 256; k++) { if (k % 16 == 0) { page.Append("\r\n "); } if (indices.ContainsKey((int)(j * 256 + k))) { page.Append(indices[(int)(j * 256 + k)]); page.Append(", "); empty = false; } else { page.Append("-1, "); } } if (empty) { w.WriteLine(" -1,"); } else { w.WriteLine(" " + pageCount + ","); compositionPages.Append("\t{"); compositionPages.Append(page); compositionPages.Append("\r\n },\r\n"); pageCount++; } } w.WriteLine(" };"); //w.WriteLine("\t/* jagged Array */"); w.WriteLine("\tpublic static readonly int[,] composeData = new int[,] {"); w.Write(compositionPages); w.WriteLine(" };"); w.WriteLine("}"); w.Close(); } //Console.WriteLine(" Ok."); Console.WriteLine("Finished!"); } } } libidn-1.28/csharp/generate/Program.cs0000644000000000000000000000276312153706572014624 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace gnu.inet.encoding.misc { class Program { /// /// Main entry point of this console app /// /// static void Main(string[] args) { GenerateRFC3454.Generate(); GenerateNFKC.Generate(); } } } libidn-1.28/csharp/generate/HashSet.cs0000644000000000000000000000607712153706572014556 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Collections; namespace gnu.inet.encoding.misc { /// /// HashSet class. /// public class HashSet : ArrayList { public HashSet() : base() { } public HashSet(System.Collections.ICollection c) { this.AddAll(c); } public HashSet(int capacity) : base(capacity) { } /// /// Adds a new element to the ArrayList if it is not already present. /// /// Element to insert to the ArrayList. /// Returns true if the new element was inserted, false otherwise. new public virtual bool Add(System.Object obj) { bool inserted; if ((inserted = this.Contains(obj)) == false) { base.Add(obj); } return !inserted; } /// /// Adds all the elements of the specified collection that are not present to the list. /// /// Collection where the new elements will be added /// Returns true if at least one element was added, false otherwise. public bool AddAll(System.Collections.ICollection c) { System.Collections.IEnumerator e = new System.Collections.ArrayList(c).GetEnumerator(); bool added = false; while (e.MoveNext() == true) { if (this.Add(e.Current) == true) added = true; } return added; } /// /// Returns a copy of the HashSet instance. /// /// Returns a shallow copy of the current HashSet. public override System.Object Clone() { return base.MemberwiseClone(); } } } libidn-1.28/csharp/generate/GenerateRFC3454.cs0000644000000000000000000003101412153706572015611 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.IO; using System.Text; namespace gnu.inet.encoding.misc { public class GenerateRFC3454 { internal const string FILE_RFC3454 = "rfc3454.txt"; internal const string FILE_OUTPUT = "RFC3454.cs"; public static void Generate() { if (!File.Exists(FILE_RFC3454)) { Console.WriteLine("Unable to find rfc3454.txt."); Console.WriteLine("Please download this file from:"); Console.WriteLine("http://www.ietf.org/rfc/rfc3454.txt"); return; } Console.WriteLine("Generating " + FILE_OUTPUT + " file..."); StreamReader r = new StreamReader(FILE_RFC3454); StreamWriter w = new StreamWriter(FILE_OUTPUT); w.WriteLine("// Do not edit !!!"); w.WriteLine("// this file is generated automatically"); w.WriteLine(); w.WriteLine("using System;"); w.WriteLine(); w.WriteLine("namespace Gnu.Inet.Encoding{"); w.WriteLine(); w.WriteLine("public class RFC3454"); w.WriteLine("{"); int n = 0; string t = null; System.Text.StringBuilder o1 = null; System.Text.StringBuilder o2 = null; while (true) { string line = r.ReadLine(); string l = line; if (null == l) { break; } l = l.Trim(); if (l.Equals("")) { // Ignore empty line } else if (-1 != l.IndexOf("\u000c")) { // Ignore FF } else if (0 == l.IndexOf("RFC")) { // Ignore page header } else if (0 == l.IndexOf("Hoffman & Blanchet")) { // Ignore page footer } else if (-1 != l.IndexOf("----- Start Table ")) { // Start of a table t = l.Substring(l.IndexOf("Table") + 6, (l.LastIndexOf("-----") - 1) - (l.IndexOf("Table") + 6)); o1 = new System.Text.StringBuilder(); o2 = new System.Text.StringBuilder(); } else if (-1 != l.IndexOf("----- End Table ")) { // End of a table if ("A.1".Equals(t)) { w.WriteLine(" public static char[][] A1 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("B.1".Equals(t)) { w.WriteLine(" public static char[] B1 = new char[] {\r\n" + o1.ToString() + " };\r\n"); } else if ("B.2".Equals(t)) { w.WriteLine(" public static char[] B2search = new char[] {\r\n" + o1.ToString() + " };\r\n"); w.WriteLine(" public static string[] B2replace = new string[] {\r\n" + o2.ToString() + " };\r\n"); } else if ("B.3".Equals(t)) { w.WriteLine(" public static char[] B3search = new char[] {\r\n" + o1.ToString() + " };\r\n"); w.WriteLine(" public static string[] B3replace = new string[] {\r\n" + o2.ToString() + " };\r\n"); } else if ("C.1.1".Equals(t)) { w.WriteLine(" public static char[] C11 = new char[] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.1.2".Equals(t)) { w.WriteLine(" public static char[] C12 = new char[] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.2.1".Equals(t)) { w.WriteLine(" public static char[][] C21 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.2.2".Equals(t)) { w.WriteLine(" public static char[][] C22 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.3".Equals(t)) { w.WriteLine(" public static char[][] C3 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.4".Equals(t)) { w.WriteLine(" public static char[][] C4 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.5".Equals(t)) { w.WriteLine(" public static char[][] C5 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.6".Equals(t)) { w.WriteLine(" public static char[][] C6 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.7".Equals(t)) { w.WriteLine(" public static char[][] C7 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("C.8".Equals(t)) { w.WriteLine(" public static char[][] C8 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("D.1".Equals(t)) { w.WriteLine(" public static char[][] D1 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } else if ("D.2".Equals(t)) { w.WriteLine(" public static char[][] D2 = new char[][] {\r\n" + o1.ToString() + " };\r\n"); } t = null; } else if (null != t) { // Filter comments if (-1 != l.LastIndexOf(";")) { string c = l.Substring(l.LastIndexOf(";")).Trim(); try { Convert.ToInt32(c, 16); } catch { l = l.Substring(0, (l.LastIndexOf(";")) - (0)); } } if ("A.1".Equals(t)) { if (4 == l.Length) { o1.Append(" new char[] { '\\u"); o1.Append(l); o1.Append("' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if (5 == l.Length) { //Char o1.Append("\t/* Skip characters outside the range of .NET unicode " + line.Trim() + " */\n"); //Console.WriteLine("Skip: " + l); // Skip characters outside the range of Java unicode } else if (9 == l.Length) { o1.Append(" new char[] { '\\u"); o1.Append(l.Substring(0, (4) - (0))); o1.Append("', '\\u"); o1.Append(l.Substring(5, (9) - (5))); o1.Append("' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if (11 == l.Length) { o1.Append("\t/* Skip characters outside the range of .NET unicode " + line.Trim() + " */\n"); //o1.AppendLine("// " + l); // Console.WriteLine("Skip: " + l); // Skip characters outside the range of Java unicode } else { Console.WriteLine("Unknown format of A.1 line: " + l); } } else if ("B.1".Equals(t)) { Tokenizer tok = new Tokenizer(l, " ;"); o1.Append(" '\\u" + tok.NextToken() + "',"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if ("B.2".Equals(t) || "B.3".Equals(t)) { Tokenizer tok = new Tokenizer(l, "; "); string c = tok.NextToken(); if (c.Length == 4) { o1.Append(" '\\u" + c + "',"); o1.Append("\t/*" + line.Trim() + "*/\r\n"); if (tok.HasMoreTokens()) { o2.Append(" \""); while (tok.HasMoreTokens()) { o2.Append("\\u" + tok.NextToken()); } o2.Append("\","); o2.Append("\t/*" + line.Trim() + "*/\r\n"); } else { o2.Append(" null,"); o2.Append("\t/*" + line.Trim() + "*/\r\n"); } } } else if ("C.1.1".Equals(t)) { o1.Append(" '\\u" + l + "',"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if ("C.1.2".Equals(t)) { o1.Append(" '\\u" + l + "',"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if ("C.2.1".Equals(t) || "C.2.2".Equals(t) || "C.3".Equals(t) || "C.4".Equals(t) || "C.5".Equals(t) || "C.6".Equals(t) || "C.7".Equals(t) || "C.8".Equals(t) || "D.1".Equals(t) || "D.2".Equals(t)) { if (4 == l.Length) { o1.Append(" new char[] { '\\u" + l + "' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } else if (9 == l.Length) { o1.Append(" new char[] { '\\u"); o1.Append(l.Substring(0, (4) - (0))); o1.Append("', '\\u"); o1.Append(l.Substring(5, (9) - (5))); o1.Append("' },"); o1.Append("\t/* " + line.Trim() + " */\r\n"); } } } n++; } w.WriteLine("}"); w.WriteLine("}"); w.Close(); } } } libidn-1.28/csharp/generate/Tokenizer.cs0000644000000000000000000001715512153706572015170 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Collections; using System.Text; namespace gnu.inet.encoding.misc { /// /// The class performs token processing in strings /// public class Tokenizer : IEnumerator { /// Position over the string private long currentPos = 0; /// Include demiliters in the results. private bool includeDelims = false; /// Char representation of the String to tokenize. private char[] chars = null; //The tokenizer uses the default delimiter set: the space character, the tab character, the newline character, and the carriage-return character and the form-feed character private string delimiters = " \t\n\r\f"; /// /// Initializes a new class instance with a specified string to process /// /// String to tokenize public Tokenizer(string source) { this.chars = source.ToCharArray(); } /// /// Initializes a new class instance with a specified string to process /// and the specified token delimiters to use /// /// String to tokenize /// String containing the delimiters public Tokenizer(string source, string delimiters) : this(source) { this.delimiters = delimiters; } /// /// Initializes a new class instance with a specified string to process, the specified token /// delimiters to use, and whether the delimiters must be included in the results. /// /// String to tokenize /// String containing the delimiters /// Determines if delimiters are included in the results. public Tokenizer(string source, string delimiters, bool includeDelims) : this(source, delimiters) { this.includeDelims = includeDelims; } /// /// Returns the next token from the token list /// /// The string value of the token public string NextToken() { return NextToken(this.delimiters); } /// /// Returns the next token from the source string, using the provided /// token delimiters /// /// String containing the delimiters to use /// The string value of the token public string NextToken(string delimiters) { //According to documentation, the usage of the received delimiters should be temporary (only for this call). //However, it seems it is not true, so the following line is necessary. this.delimiters = delimiters; //at the end if (this.currentPos == this.chars.Length) throw new System.ArgumentOutOfRangeException(); //if over a delimiter and delimiters must be returned else if ((System.Array.IndexOf(delimiters.ToCharArray(), chars[this.currentPos]) != -1) && this.includeDelims) return "" + this.chars[this.currentPos++]; //need to get the token wo delimiters. else return nextToken(delimiters.ToCharArray()); } //Returns the nextToken wo delimiters private string nextToken(char[] delimiters) { string token = ""; long pos = this.currentPos; //skip possible delimiters while (System.Array.IndexOf(delimiters, this.chars[currentPos]) != -1) //The last one is a delimiter (i.e there is no more tokens) if (++this.currentPos == this.chars.Length) { this.currentPos = pos; throw new System.ArgumentOutOfRangeException(); } //getting the token while (System.Array.IndexOf(delimiters, this.chars[this.currentPos]) == -1) { // don't use += to work around bug in compiler // see https://bugzilla.novell.com/show_bug.cgi?id=372483 token = token + this.chars[this.currentPos]; //the last one is not a delimiter if (++this.currentPos == this.chars.Length) break; } return token; } /// /// Determines if there are more tokens to return from the source string /// /// True or false, depending if there are more tokens public bool HasMoreTokens() { //keeping the current pos long pos = this.currentPos; try { this.NextToken(); } catch (System.ArgumentOutOfRangeException) { return false; } finally { this.currentPos = pos; } return true; } /// /// Remaining tokens count /// public int Count { get { //keeping the current pos long pos = this.currentPos; int i = 0; try { while (true) { this.NextToken(); i++; } } catch (System.ArgumentOutOfRangeException) { this.currentPos = pos; return i; } } } /// /// Performs the same action as NextToken. /// public System.Object Current { get { return (Object)this.NextToken(); } } /// // Performs the same action as HasMoreTokens. /// /// True or false, depending if there are more tokens public bool MoveNext() { return this.HasMoreTokens(); } /// /// Does nothing. /// public void Reset() { ; } } } libidn-1.28/csharp/generate/AssemblyInfo.cs0000644000000000000000000000447012153706572015605 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible // to COM components. If you need to access a type in this assembly from // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("6D72484E-39BA-4312-9B64-74FD5CB81001")] // Version information for an assembly consists of the following four values: // // Major Version // Minor Version // Build Number // Revision // [assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyFileVersion("1.0.0.0")] libidn-1.28/csharp/RFC3454.cs0000644000000000000000000055467212167245631012367 00000000000000// Do not edit !!! // this file is generated automatically using System; namespace Gnu.Inet.Encoding{ public class RFC3454 { public static char[][] A1 = new char[][] { new char[] { '\u0221' }, /* 0221 */ new char[] { '\u0234', '\u024F' }, /* 0234-024F */ new char[] { '\u02AE', '\u02AF' }, /* 02AE-02AF */ new char[] { '\u02EF', '\u02FF' }, /* 02EF-02FF */ new char[] { '\u0350', '\u035F' }, /* 0350-035F */ new char[] { '\u0370', '\u0373' }, /* 0370-0373 */ new char[] { '\u0376', '\u0379' }, /* 0376-0379 */ new char[] { '\u037B', '\u037D' }, /* 037B-037D */ new char[] { '\u037F', '\u0383' }, /* 037F-0383 */ new char[] { '\u038B' }, /* 038B */ new char[] { '\u038D' }, /* 038D */ new char[] { '\u03A2' }, /* 03A2 */ new char[] { '\u03CF' }, /* 03CF */ new char[] { '\u03F7', '\u03FF' }, /* 03F7-03FF */ new char[] { '\u0487' }, /* 0487 */ new char[] { '\u04CF' }, /* 04CF */ new char[] { '\u04F6', '\u04F7' }, /* 04F6-04F7 */ new char[] { '\u04FA', '\u04FF' }, /* 04FA-04FF */ new char[] { '\u0510', '\u0530' }, /* 0510-0530 */ new char[] { '\u0557', '\u0558' }, /* 0557-0558 */ new char[] { '\u0560' }, /* 0560 */ new char[] { '\u0588' }, /* 0588 */ new char[] { '\u058B', '\u0590' }, /* 058B-0590 */ new char[] { '\u05A2' }, /* 05A2 */ new char[] { '\u05BA' }, /* 05BA */ new char[] { '\u05C5', '\u05CF' }, /* 05C5-05CF */ new char[] { '\u05EB', '\u05EF' }, /* 05EB-05EF */ new char[] { '\u05F5', '\u060B' }, /* 05F5-060B */ new char[] { '\u060D', '\u061A' }, /* 060D-061A */ new char[] { '\u061C', '\u061E' }, /* 061C-061E */ new char[] { '\u0620' }, /* 0620 */ new char[] { '\u063B', '\u063F' }, /* 063B-063F */ new char[] { '\u0656', '\u065F' }, /* 0656-065F */ new char[] { '\u06EE', '\u06EF' }, /* 06EE-06EF */ new char[] { '\u06FF' }, /* 06FF */ new char[] { '\u070E' }, /* 070E */ new char[] { '\u072D', '\u072F' }, /* 072D-072F */ new char[] { '\u074B', '\u077F' }, /* 074B-077F */ new char[] { '\u07B2', '\u0900' }, /* 07B2-0900 */ new char[] { '\u0904' }, /* 0904 */ new char[] { '\u093A', '\u093B' }, /* 093A-093B */ new char[] { '\u094E', '\u094F' }, /* 094E-094F */ new char[] { '\u0955', '\u0957' }, /* 0955-0957 */ new char[] { '\u0971', '\u0980' }, /* 0971-0980 */ new char[] { '\u0984' }, /* 0984 */ new char[] { '\u098D', '\u098E' }, /* 098D-098E */ new char[] { '\u0991', '\u0992' }, /* 0991-0992 */ new char[] { '\u09A9' }, /* 09A9 */ new char[] { '\u09B1' }, /* 09B1 */ new char[] { '\u09B3', '\u09B5' }, /* 09B3-09B5 */ new char[] { '\u09BA', '\u09BB' }, /* 09BA-09BB */ new char[] { '\u09BD' }, /* 09BD */ new char[] { '\u09C5', '\u09C6' }, /* 09C5-09C6 */ new char[] { '\u09C9', '\u09CA' }, /* 09C9-09CA */ new char[] { '\u09CE', '\u09D6' }, /* 09CE-09D6 */ new char[] { '\u09D8', '\u09DB' }, /* 09D8-09DB */ new char[] { '\u09DE' }, /* 09DE */ new char[] { '\u09E4', '\u09E5' }, /* 09E4-09E5 */ new char[] { '\u09FB', '\u0A01' }, /* 09FB-0A01 */ new char[] { '\u0A03', '\u0A04' }, /* 0A03-0A04 */ new char[] { '\u0A0B', '\u0A0E' }, /* 0A0B-0A0E */ new char[] { '\u0A11', '\u0A12' }, /* 0A11-0A12 */ new char[] { '\u0A29' }, /* 0A29 */ new char[] { '\u0A31' }, /* 0A31 */ new char[] { '\u0A34' }, /* 0A34 */ new char[] { '\u0A37' }, /* 0A37 */ new char[] { '\u0A3A', '\u0A3B' }, /* 0A3A-0A3B */ new char[] { '\u0A3D' }, /* 0A3D */ new char[] { '\u0A43', '\u0A46' }, /* 0A43-0A46 */ new char[] { '\u0A49', '\u0A4A' }, /* 0A49-0A4A */ new char[] { '\u0A4E', '\u0A58' }, /* 0A4E-0A58 */ new char[] { '\u0A5D' }, /* 0A5D */ new char[] { '\u0A5F', '\u0A65' }, /* 0A5F-0A65 */ new char[] { '\u0A75', '\u0A80' }, /* 0A75-0A80 */ new char[] { '\u0A84' }, /* 0A84 */ new char[] { '\u0A8C' }, /* 0A8C */ new char[] { '\u0A8E' }, /* 0A8E */ new char[] { '\u0A92' }, /* 0A92 */ new char[] { '\u0AA9' }, /* 0AA9 */ new char[] { '\u0AB1' }, /* 0AB1 */ new char[] { '\u0AB4' }, /* 0AB4 */ new char[] { '\u0ABA', '\u0ABB' }, /* 0ABA-0ABB */ new char[] { '\u0AC6' }, /* 0AC6 */ new char[] { '\u0ACA' }, /* 0ACA */ new char[] { '\u0ACE', '\u0ACF' }, /* 0ACE-0ACF */ new char[] { '\u0AD1', '\u0ADF' }, /* 0AD1-0ADF */ new char[] { '\u0AE1', '\u0AE5' }, /* 0AE1-0AE5 */ new char[] { '\u0AF0', '\u0B00' }, /* 0AF0-0B00 */ new char[] { '\u0B04' }, /* 0B04 */ new char[] { '\u0B0D', '\u0B0E' }, /* 0B0D-0B0E */ new char[] { '\u0B11', '\u0B12' }, /* 0B11-0B12 */ new char[] { '\u0B29' }, /* 0B29 */ new char[] { '\u0B31' }, /* 0B31 */ new char[] { '\u0B34', '\u0B35' }, /* 0B34-0B35 */ new char[] { '\u0B3A', '\u0B3B' }, /* 0B3A-0B3B */ new char[] { '\u0B44', '\u0B46' }, /* 0B44-0B46 */ new char[] { '\u0B49', '\u0B4A' }, /* 0B49-0B4A */ new char[] { '\u0B4E', '\u0B55' }, /* 0B4E-0B55 */ new char[] { '\u0B58', '\u0B5B' }, /* 0B58-0B5B */ new char[] { '\u0B5E' }, /* 0B5E */ new char[] { '\u0B62', '\u0B65' }, /* 0B62-0B65 */ new char[] { '\u0B71', '\u0B81' }, /* 0B71-0B81 */ new char[] { '\u0B84' }, /* 0B84 */ new char[] { '\u0B8B', '\u0B8D' }, /* 0B8B-0B8D */ new char[] { '\u0B91' }, /* 0B91 */ new char[] { '\u0B96', '\u0B98' }, /* 0B96-0B98 */ new char[] { '\u0B9B' }, /* 0B9B */ new char[] { '\u0B9D' }, /* 0B9D */ new char[] { '\u0BA0', '\u0BA2' }, /* 0BA0-0BA2 */ new char[] { '\u0BA5', '\u0BA7' }, /* 0BA5-0BA7 */ new char[] { '\u0BAB', '\u0BAD' }, /* 0BAB-0BAD */ new char[] { '\u0BB6' }, /* 0BB6 */ new char[] { '\u0BBA', '\u0BBD' }, /* 0BBA-0BBD */ new char[] { '\u0BC3', '\u0BC5' }, /* 0BC3-0BC5 */ new char[] { '\u0BC9' }, /* 0BC9 */ new char[] { '\u0BCE', '\u0BD6' }, /* 0BCE-0BD6 */ new char[] { '\u0BD8', '\u0BE6' }, /* 0BD8-0BE6 */ new char[] { '\u0BF3', '\u0C00' }, /* 0BF3-0C00 */ new char[] { '\u0C04' }, /* 0C04 */ new char[] { '\u0C0D' }, /* 0C0D */ new char[] { '\u0C11' }, /* 0C11 */ new char[] { '\u0C29' }, /* 0C29 */ new char[] { '\u0C34' }, /* 0C34 */ new char[] { '\u0C3A', '\u0C3D' }, /* 0C3A-0C3D */ new char[] { '\u0C45' }, /* 0C45 */ new char[] { '\u0C49' }, /* 0C49 */ new char[] { '\u0C4E', '\u0C54' }, /* 0C4E-0C54 */ new char[] { '\u0C57', '\u0C5F' }, /* 0C57-0C5F */ new char[] { '\u0C62', '\u0C65' }, /* 0C62-0C65 */ new char[] { '\u0C70', '\u0C81' }, /* 0C70-0C81 */ new char[] { '\u0C84' }, /* 0C84 */ new char[] { '\u0C8D' }, /* 0C8D */ new char[] { '\u0C91' }, /* 0C91 */ new char[] { '\u0CA9' }, /* 0CA9 */ new char[] { '\u0CB4' }, /* 0CB4 */ new char[] { '\u0CBA', '\u0CBD' }, /* 0CBA-0CBD */ new char[] { '\u0CC5' }, /* 0CC5 */ new char[] { '\u0CC9' }, /* 0CC9 */ new char[] { '\u0CCE', '\u0CD4' }, /* 0CCE-0CD4 */ new char[] { '\u0CD7', '\u0CDD' }, /* 0CD7-0CDD */ new char[] { '\u0CDF' }, /* 0CDF */ new char[] { '\u0CE2', '\u0CE5' }, /* 0CE2-0CE5 */ new char[] { '\u0CF0', '\u0D01' }, /* 0CF0-0D01 */ new char[] { '\u0D04' }, /* 0D04 */ new char[] { '\u0D0D' }, /* 0D0D */ new char[] { '\u0D11' }, /* 0D11 */ new char[] { '\u0D29' }, /* 0D29 */ new char[] { '\u0D3A', '\u0D3D' }, /* 0D3A-0D3D */ new char[] { '\u0D44', '\u0D45' }, /* 0D44-0D45 */ new char[] { '\u0D49' }, /* 0D49 */ new char[] { '\u0D4E', '\u0D56' }, /* 0D4E-0D56 */ new char[] { '\u0D58', '\u0D5F' }, /* 0D58-0D5F */ new char[] { '\u0D62', '\u0D65' }, /* 0D62-0D65 */ new char[] { '\u0D70', '\u0D81' }, /* 0D70-0D81 */ new char[] { '\u0D84' }, /* 0D84 */ new char[] { '\u0D97', '\u0D99' }, /* 0D97-0D99 */ new char[] { '\u0DB2' }, /* 0DB2 */ new char[] { '\u0DBC' }, /* 0DBC */ new char[] { '\u0DBE', '\u0DBF' }, /* 0DBE-0DBF */ new char[] { '\u0DC7', '\u0DC9' }, /* 0DC7-0DC9 */ new char[] { '\u0DCB', '\u0DCE' }, /* 0DCB-0DCE */ new char[] { '\u0DD5' }, /* 0DD5 */ new char[] { '\u0DD7' }, /* 0DD7 */ new char[] { '\u0DE0', '\u0DF1' }, /* 0DE0-0DF1 */ new char[] { '\u0DF5', '\u0E00' }, /* 0DF5-0E00 */ new char[] { '\u0E3B', '\u0E3E' }, /* 0E3B-0E3E */ new char[] { '\u0E5C', '\u0E80' }, /* 0E5C-0E80 */ new char[] { '\u0E83' }, /* 0E83 */ new char[] { '\u0E85', '\u0E86' }, /* 0E85-0E86 */ new char[] { '\u0E89' }, /* 0E89 */ new char[] { '\u0E8B', '\u0E8C' }, /* 0E8B-0E8C */ new char[] { '\u0E8E', '\u0E93' }, /* 0E8E-0E93 */ new char[] { '\u0E98' }, /* 0E98 */ new char[] { '\u0EA0' }, /* 0EA0 */ new char[] { '\u0EA4' }, /* 0EA4 */ new char[] { '\u0EA6' }, /* 0EA6 */ new char[] { '\u0EA8', '\u0EA9' }, /* 0EA8-0EA9 */ new char[] { '\u0EAC' }, /* 0EAC */ new char[] { '\u0EBA' }, /* 0EBA */ new char[] { '\u0EBE', '\u0EBF' }, /* 0EBE-0EBF */ new char[] { '\u0EC5' }, /* 0EC5 */ new char[] { '\u0EC7' }, /* 0EC7 */ new char[] { '\u0ECE', '\u0ECF' }, /* 0ECE-0ECF */ new char[] { '\u0EDA', '\u0EDB' }, /* 0EDA-0EDB */ new char[] { '\u0EDE', '\u0EFF' }, /* 0EDE-0EFF */ new char[] { '\u0F48' }, /* 0F48 */ new char[] { '\u0F6B', '\u0F70' }, /* 0F6B-0F70 */ new char[] { '\u0F8C', '\u0F8F' }, /* 0F8C-0F8F */ new char[] { '\u0F98' }, /* 0F98 */ new char[] { '\u0FBD' }, /* 0FBD */ new char[] { '\u0FCD', '\u0FCE' }, /* 0FCD-0FCE */ new char[] { '\u0FD0', '\u0FFF' }, /* 0FD0-0FFF */ new char[] { '\u1022' }, /* 1022 */ new char[] { '\u1028' }, /* 1028 */ new char[] { '\u102B' }, /* 102B */ new char[] { '\u1033', '\u1035' }, /* 1033-1035 */ new char[] { '\u103A', '\u103F' }, /* 103A-103F */ new char[] { '\u105A', '\u109F' }, /* 105A-109F */ new char[] { '\u10C6', '\u10CF' }, /* 10C6-10CF */ new char[] { '\u10F9', '\u10FA' }, /* 10F9-10FA */ new char[] { '\u10FC', '\u10FF' }, /* 10FC-10FF */ new char[] { '\u115A', '\u115E' }, /* 115A-115E */ new char[] { '\u11A3', '\u11A7' }, /* 11A3-11A7 */ new char[] { '\u11FA', '\u11FF' }, /* 11FA-11FF */ new char[] { '\u1207' }, /* 1207 */ new char[] { '\u1247' }, /* 1247 */ new char[] { '\u1249' }, /* 1249 */ new char[] { '\u124E', '\u124F' }, /* 124E-124F */ new char[] { '\u1257' }, /* 1257 */ new char[] { '\u1259' }, /* 1259 */ new char[] { '\u125E', '\u125F' }, /* 125E-125F */ new char[] { '\u1287' }, /* 1287 */ new char[] { '\u1289' }, /* 1289 */ new char[] { '\u128E', '\u128F' }, /* 128E-128F */ new char[] { '\u12AF' }, /* 12AF */ new char[] { '\u12B1' }, /* 12B1 */ new char[] { '\u12B6', '\u12B7' }, /* 12B6-12B7 */ new char[] { '\u12BF' }, /* 12BF */ new char[] { '\u12C1' }, /* 12C1 */ new char[] { '\u12C6', '\u12C7' }, /* 12C6-12C7 */ new char[] { '\u12CF' }, /* 12CF */ new char[] { '\u12D7' }, /* 12D7 */ new char[] { '\u12EF' }, /* 12EF */ new char[] { '\u130F' }, /* 130F */ new char[] { '\u1311' }, /* 1311 */ new char[] { '\u1316', '\u1317' }, /* 1316-1317 */ new char[] { '\u131F' }, /* 131F */ new char[] { '\u1347' }, /* 1347 */ new char[] { '\u135B', '\u1360' }, /* 135B-1360 */ new char[] { '\u137D', '\u139F' }, /* 137D-139F */ new char[] { '\u13F5', '\u1400' }, /* 13F5-1400 */ new char[] { '\u1677', '\u167F' }, /* 1677-167F */ new char[] { '\u169D', '\u169F' }, /* 169D-169F */ new char[] { '\u16F1', '\u16FF' }, /* 16F1-16FF */ new char[] { '\u170D' }, /* 170D */ new char[] { '\u1715', '\u171F' }, /* 1715-171F */ new char[] { '\u1737', '\u173F' }, /* 1737-173F */ new char[] { '\u1754', '\u175F' }, /* 1754-175F */ new char[] { '\u176D' }, /* 176D */ new char[] { '\u1771' }, /* 1771 */ new char[] { '\u1774', '\u177F' }, /* 1774-177F */ new char[] { '\u17DD', '\u17DF' }, /* 17DD-17DF */ new char[] { '\u17EA', '\u17FF' }, /* 17EA-17FF */ new char[] { '\u180F' }, /* 180F */ new char[] { '\u181A', '\u181F' }, /* 181A-181F */ new char[] { '\u1878', '\u187F' }, /* 1878-187F */ new char[] { '\u18AA', '\u1DFF' }, /* 18AA-1DFF */ new char[] { '\u1E9C', '\u1E9F' }, /* 1E9C-1E9F */ new char[] { '\u1EFA', '\u1EFF' }, /* 1EFA-1EFF */ new char[] { '\u1F16', '\u1F17' }, /* 1F16-1F17 */ new char[] { '\u1F1E', '\u1F1F' }, /* 1F1E-1F1F */ new char[] { '\u1F46', '\u1F47' }, /* 1F46-1F47 */ new char[] { '\u1F4E', '\u1F4F' }, /* 1F4E-1F4F */ new char[] { '\u1F58' }, /* 1F58 */ new char[] { '\u1F5A' }, /* 1F5A */ new char[] { '\u1F5C' }, /* 1F5C */ new char[] { '\u1F5E' }, /* 1F5E */ new char[] { '\u1F7E', '\u1F7F' }, /* 1F7E-1F7F */ new char[] { '\u1FB5' }, /* 1FB5 */ new char[] { '\u1FC5' }, /* 1FC5 */ new char[] { '\u1FD4', '\u1FD5' }, /* 1FD4-1FD5 */ new char[] { '\u1FDC' }, /* 1FDC */ new char[] { '\u1FF0', '\u1FF1' }, /* 1FF0-1FF1 */ new char[] { '\u1FF5' }, /* 1FF5 */ new char[] { '\u1FFF' }, /* 1FFF */ new char[] { '\u2053', '\u2056' }, /* 2053-2056 */ new char[] { '\u2058', '\u205E' }, /* 2058-205E */ new char[] { '\u2064', '\u2069' }, /* 2064-2069 */ new char[] { '\u2072', '\u2073' }, /* 2072-2073 */ new char[] { '\u208F', '\u209F' }, /* 208F-209F */ new char[] { '\u20B2', '\u20CF' }, /* 20B2-20CF */ new char[] { '\u20EB', '\u20FF' }, /* 20EB-20FF */ new char[] { '\u213B', '\u213C' }, /* 213B-213C */ new char[] { '\u214C', '\u2152' }, /* 214C-2152 */ new char[] { '\u2184', '\u218F' }, /* 2184-218F */ new char[] { '\u23CF', '\u23FF' }, /* 23CF-23FF */ new char[] { '\u2427', '\u243F' }, /* 2427-243F */ new char[] { '\u244B', '\u245F' }, /* 244B-245F */ new char[] { '\u24FF' }, /* 24FF */ new char[] { '\u2614', '\u2615' }, /* 2614-2615 */ new char[] { '\u2618' }, /* 2618 */ new char[] { '\u267E', '\u267F' }, /* 267E-267F */ new char[] { '\u268A', '\u2700' }, /* 268A-2700 */ new char[] { '\u2705' }, /* 2705 */ new char[] { '\u270A', '\u270B' }, /* 270A-270B */ new char[] { '\u2728' }, /* 2728 */ new char[] { '\u274C' }, /* 274C */ new char[] { '\u274E' }, /* 274E */ new char[] { '\u2753', '\u2755' }, /* 2753-2755 */ new char[] { '\u2757' }, /* 2757 */ new char[] { '\u275F', '\u2760' }, /* 275F-2760 */ new char[] { '\u2795', '\u2797' }, /* 2795-2797 */ new char[] { '\u27B0' }, /* 27B0 */ new char[] { '\u27BF', '\u27CF' }, /* 27BF-27CF */ new char[] { '\u27EC', '\u27EF' }, /* 27EC-27EF */ new char[] { '\u2B00', '\u2E7F' }, /* 2B00-2E7F */ new char[] { '\u2E9A' }, /* 2E9A */ new char[] { '\u2EF4', '\u2EFF' }, /* 2EF4-2EFF */ new char[] { '\u2FD6', '\u2FEF' }, /* 2FD6-2FEF */ new char[] { '\u2FFC', '\u2FFF' }, /* 2FFC-2FFF */ new char[] { '\u3040' }, /* 3040 */ new char[] { '\u3097', '\u3098' }, /* 3097-3098 */ new char[] { '\u3100', '\u3104' }, /* 3100-3104 */ new char[] { '\u312D', '\u3130' }, /* 312D-3130 */ new char[] { '\u318F' }, /* 318F */ new char[] { '\u31B8', '\u31EF' }, /* 31B8-31EF */ new char[] { '\u321D', '\u321F' }, /* 321D-321F */ new char[] { '\u3244', '\u3250' }, /* 3244-3250 */ new char[] { '\u327C', '\u327E' }, /* 327C-327E */ new char[] { '\u32CC', '\u32CF' }, /* 32CC-32CF */ new char[] { '\u32FF' }, /* 32FF */ new char[] { '\u3377', '\u337A' }, /* 3377-337A */ new char[] { '\u33DE', '\u33DF' }, /* 33DE-33DF */ new char[] { '\u33FF' }, /* 33FF */ new char[] { '\u4DB6', '\u4DFF' }, /* 4DB6-4DFF */ new char[] { '\u9FA6', '\u9FFF' }, /* 9FA6-9FFF */ new char[] { '\uA48D', '\uA48F' }, /* A48D-A48F */ new char[] { '\uA4C7', '\uABFF' }, /* A4C7-ABFF */ new char[] { '\uD7A4', '\uD7FF' }, /* D7A4-D7FF */ new char[] { '\uFA2E', '\uFA2F' }, /* FA2E-FA2F */ new char[] { '\uFA6B', '\uFAFF' }, /* FA6B-FAFF */ new char[] { '\uFB07', '\uFB12' }, /* FB07-FB12 */ new char[] { '\uFB18', '\uFB1C' }, /* FB18-FB1C */ new char[] { '\uFB37' }, /* FB37 */ new char[] { '\uFB3D' }, /* FB3D */ new char[] { '\uFB3F' }, /* FB3F */ new char[] { '\uFB42' }, /* FB42 */ new char[] { '\uFB45' }, /* FB45 */ new char[] { '\uFBB2', '\uFBD2' }, /* FBB2-FBD2 */ new char[] { '\uFD40', '\uFD4F' }, /* FD40-FD4F */ new char[] { '\uFD90', '\uFD91' }, /* FD90-FD91 */ new char[] { '\uFDC8', '\uFDCF' }, /* FDC8-FDCF */ new char[] { '\uFDFD', '\uFDFF' }, /* FDFD-FDFF */ new char[] { '\uFE10', '\uFE1F' }, /* FE10-FE1F */ new char[] { '\uFE24', '\uFE2F' }, /* FE24-FE2F */ new char[] { '\uFE47', '\uFE48' }, /* FE47-FE48 */ new char[] { '\uFE53' }, /* FE53 */ new char[] { '\uFE67' }, /* FE67 */ new char[] { '\uFE6C', '\uFE6F' }, /* FE6C-FE6F */ new char[] { '\uFE75' }, /* FE75 */ new char[] { '\uFEFD', '\uFEFE' }, /* FEFD-FEFE */ new char[] { '\uFF00' }, /* FF00 */ new char[] { '\uFFBF', '\uFFC1' }, /* FFBF-FFC1 */ new char[] { '\uFFC8', '\uFFC9' }, /* FFC8-FFC9 */ new char[] { '\uFFD0', '\uFFD1' }, /* FFD0-FFD1 */ new char[] { '\uFFD8', '\uFFD9' }, /* FFD8-FFD9 */ new char[] { '\uFFDD', '\uFFDF' }, /* FFDD-FFDF */ new char[] { '\uFFE7' }, /* FFE7 */ new char[] { '\uFFEF', '\uFFF8' }, /* FFEF-FFF8 */ /* Skip characters outside the range of .NET unicode 10000-102FF */ /* Skip characters outside the range of .NET unicode 1031F */ /* Skip characters outside the range of .NET unicode 10324-1032F */ /* Skip characters outside the range of .NET unicode 1034B-103FF */ /* Skip characters outside the range of .NET unicode 10426-10427 */ /* Skip characters outside the range of .NET unicode 1044E-1CFFF */ /* Skip characters outside the range of .NET unicode 1D0F6-1D0FF */ /* Skip characters outside the range of .NET unicode 1D127-1D129 */ /* Skip characters outside the range of .NET unicode 1D1DE-1D3FF */ /* Skip characters outside the range of .NET unicode 1D455 */ /* Skip characters outside the range of .NET unicode 1D49D */ /* Skip characters outside the range of .NET unicode 1D4A0-1D4A1 */ /* Skip characters outside the range of .NET unicode 1D4A3-1D4A4 */ /* Skip characters outside the range of .NET unicode 1D4A7-1D4A8 */ /* Skip characters outside the range of .NET unicode 1D4AD */ /* Skip characters outside the range of .NET unicode 1D4BA */ /* Skip characters outside the range of .NET unicode 1D4BC */ /* Skip characters outside the range of .NET unicode 1D4C1 */ /* Skip characters outside the range of .NET unicode 1D4C4 */ /* Skip characters outside the range of .NET unicode 1D506 */ /* Skip characters outside the range of .NET unicode 1D50B-1D50C */ /* Skip characters outside the range of .NET unicode 1D515 */ /* Skip characters outside the range of .NET unicode 1D51D */ /* Skip characters outside the range of .NET unicode 1D53A */ /* Skip characters outside the range of .NET unicode 1D53F */ /* Skip characters outside the range of .NET unicode 1D545 */ /* Skip characters outside the range of .NET unicode 1D547-1D549 */ /* Skip characters outside the range of .NET unicode 1D551 */ /* Skip characters outside the range of .NET unicode 1D6A4-1D6A7 */ /* Skip characters outside the range of .NET unicode 1D7CA-1D7CD */ /* Skip characters outside the range of .NET unicode 1D800-1FFFD */ /* Skip characters outside the range of .NET unicode 2A6D7-2F7FF */ /* Skip characters outside the range of .NET unicode 2FA1E-2FFFD */ /* Skip characters outside the range of .NET unicode 30000-3FFFD */ /* Skip characters outside the range of .NET unicode 40000-4FFFD */ /* Skip characters outside the range of .NET unicode 50000-5FFFD */ /* Skip characters outside the range of .NET unicode 60000-6FFFD */ /* Skip characters outside the range of .NET unicode 70000-7FFFD */ /* Skip characters outside the range of .NET unicode 80000-8FFFD */ /* Skip characters outside the range of .NET unicode 90000-9FFFD */ /* Skip characters outside the range of .NET unicode A0000-AFFFD */ /* Skip characters outside the range of .NET unicode B0000-BFFFD */ /* Skip characters outside the range of .NET unicode C0000-CFFFD */ /* Skip characters outside the range of .NET unicode D0000-DFFFD */ /* Skip characters outside the range of .NET unicode E0000 */ /* Skip characters outside the range of .NET unicode E0002-E001F */ /* Skip characters outside the range of .NET unicode E0080-EFFFD */ }; public static char[] B1 = new char[] { '\u00AD', /* 00AD; ; Map to nothing */ '\u034F', /* 034F; ; Map to nothing */ '\u1806', /* 1806; ; Map to nothing */ '\u180B', /* 180B; ; Map to nothing */ '\u180C', /* 180C; ; Map to nothing */ '\u180D', /* 180D; ; Map to nothing */ '\u200B', /* 200B; ; Map to nothing */ '\u200C', /* 200C; ; Map to nothing */ '\u200D', /* 200D; ; Map to nothing */ '\u2060', /* 2060; ; Map to nothing */ '\uFE00', /* FE00; ; Map to nothing */ '\uFE01', /* FE01; ; Map to nothing */ '\uFE02', /* FE02; ; Map to nothing */ '\uFE03', /* FE03; ; Map to nothing */ '\uFE04', /* FE04; ; Map to nothing */ '\uFE05', /* FE05; ; Map to nothing */ '\uFE06', /* FE06; ; Map to nothing */ '\uFE07', /* FE07; ; Map to nothing */ '\uFE08', /* FE08; ; Map to nothing */ '\uFE09', /* FE09; ; Map to nothing */ '\uFE0A', /* FE0A; ; Map to nothing */ '\uFE0B', /* FE0B; ; Map to nothing */ '\uFE0C', /* FE0C; ; Map to nothing */ '\uFE0D', /* FE0D; ; Map to nothing */ '\uFE0E', /* FE0E; ; Map to nothing */ '\uFE0F', /* FE0F; ; Map to nothing */ '\uFEFF', /* FEFF; ; Map to nothing */ }; public static char[] B2search = new char[] { '\u0041', /*0041; 0061; Case map*/ '\u0042', /*0042; 0062; Case map*/ '\u0043', /*0043; 0063; Case map*/ '\u0044', /*0044; 0064; Case map*/ '\u0045', /*0045; 0065; Case map*/ '\u0046', /*0046; 0066; Case map*/ '\u0047', /*0047; 0067; Case map*/ '\u0048', /*0048; 0068; Case map*/ '\u0049', /*0049; 0069; Case map*/ '\u004A', /*004A; 006A; Case map*/ '\u004B', /*004B; 006B; Case map*/ '\u004C', /*004C; 006C; Case map*/ '\u004D', /*004D; 006D; Case map*/ '\u004E', /*004E; 006E; Case map*/ '\u004F', /*004F; 006F; Case map*/ '\u0050', /*0050; 0070; Case map*/ '\u0051', /*0051; 0071; Case map*/ '\u0052', /*0052; 0072; Case map*/ '\u0053', /*0053; 0073; Case map*/ '\u0054', /*0054; 0074; Case map*/ '\u0055', /*0055; 0075; Case map*/ '\u0056', /*0056; 0076; Case map*/ '\u0057', /*0057; 0077; Case map*/ '\u0058', /*0058; 0078; Case map*/ '\u0059', /*0059; 0079; Case map*/ '\u005A', /*005A; 007A; Case map*/ '\u00B5', /*00B5; 03BC; Case map*/ '\u00C0', /*00C0; 00E0; Case map*/ '\u00C1', /*00C1; 00E1; Case map*/ '\u00C2', /*00C2; 00E2; Case map*/ '\u00C3', /*00C3; 00E3; Case map*/ '\u00C4', /*00C4; 00E4; Case map*/ '\u00C5', /*00C5; 00E5; Case map*/ '\u00C6', /*00C6; 00E6; Case map*/ '\u00C7', /*00C7; 00E7; Case map*/ '\u00C8', /*00C8; 00E8; Case map*/ '\u00C9', /*00C9; 00E9; Case map*/ '\u00CA', /*00CA; 00EA; Case map*/ '\u00CB', /*00CB; 00EB; Case map*/ '\u00CC', /*00CC; 00EC; Case map*/ '\u00CD', /*00CD; 00ED; Case map*/ '\u00CE', /*00CE; 00EE; Case map*/ '\u00CF', /*00CF; 00EF; Case map*/ '\u00D0', /*00D0; 00F0; Case map*/ '\u00D1', /*00D1; 00F1; Case map*/ '\u00D2', /*00D2; 00F2; Case map*/ '\u00D3', /*00D3; 00F3; Case map*/ '\u00D4', /*00D4; 00F4; Case map*/ '\u00D5', /*00D5; 00F5; Case map*/ '\u00D6', /*00D6; 00F6; Case map*/ '\u00D8', /*00D8; 00F8; Case map*/ '\u00D9', /*00D9; 00F9; Case map*/ '\u00DA', /*00DA; 00FA; Case map*/ '\u00DB', /*00DB; 00FB; Case map*/ '\u00DC', /*00DC; 00FC; Case map*/ '\u00DD', /*00DD; 00FD; Case map*/ '\u00DE', /*00DE; 00FE; Case map*/ '\u00DF', /*00DF; 0073 0073; Case map*/ '\u0100', /*0100; 0101; Case map*/ '\u0102', /*0102; 0103; Case map*/ '\u0104', /*0104; 0105; Case map*/ '\u0106', /*0106; 0107; Case map*/ '\u0108', /*0108; 0109; Case map*/ '\u010A', /*010A; 010B; Case map*/ '\u010C', /*010C; 010D; Case map*/ '\u010E', /*010E; 010F; Case map*/ '\u0110', /*0110; 0111; Case map*/ '\u0112', /*0112; 0113; Case map*/ '\u0114', /*0114; 0115; Case map*/ '\u0116', /*0116; 0117; Case map*/ '\u0118', /*0118; 0119; Case map*/ '\u011A', /*011A; 011B; Case map*/ '\u011C', /*011C; 011D; Case map*/ '\u011E', /*011E; 011F; Case map*/ '\u0120', /*0120; 0121; Case map*/ '\u0122', /*0122; 0123; Case map*/ '\u0124', /*0124; 0125; Case map*/ '\u0126', /*0126; 0127; Case map*/ '\u0128', /*0128; 0129; Case map*/ '\u012A', /*012A; 012B; Case map*/ '\u012C', /*012C; 012D; Case map*/ '\u012E', /*012E; 012F; Case map*/ '\u0130', /*0130; 0069 0307; Case map*/ '\u0132', /*0132; 0133; Case map*/ '\u0134', /*0134; 0135; Case map*/ '\u0136', /*0136; 0137; Case map*/ '\u0139', /*0139; 013A; Case map*/ '\u013B', /*013B; 013C; Case map*/ '\u013D', /*013D; 013E; Case map*/ '\u013F', /*013F; 0140; Case map*/ '\u0141', /*0141; 0142; Case map*/ '\u0143', /*0143; 0144; Case map*/ '\u0145', /*0145; 0146; Case map*/ '\u0147', /*0147; 0148; Case map*/ '\u0149', /*0149; 02BC 006E; Case map*/ '\u014A', /*014A; 014B; Case map*/ '\u014C', /*014C; 014D; Case map*/ '\u014E', /*014E; 014F; Case map*/ '\u0150', /*0150; 0151; Case map*/ '\u0152', /*0152; 0153; Case map*/ '\u0154', /*0154; 0155; Case map*/ '\u0156', /*0156; 0157; Case map*/ '\u0158', /*0158; 0159; Case map*/ '\u015A', /*015A; 015B; Case map*/ '\u015C', /*015C; 015D; Case map*/ '\u015E', /*015E; 015F; Case map*/ '\u0160', /*0160; 0161; Case map*/ '\u0162', /*0162; 0163; Case map*/ '\u0164', /*0164; 0165; Case map*/ '\u0166', /*0166; 0167; Case map*/ '\u0168', /*0168; 0169; Case map*/ '\u016A', /*016A; 016B; Case map*/ '\u016C', /*016C; 016D; Case map*/ '\u016E', /*016E; 016F; Case map*/ '\u0170', /*0170; 0171; Case map*/ '\u0172', /*0172; 0173; Case map*/ '\u0174', /*0174; 0175; Case map*/ '\u0176', /*0176; 0177; Case map*/ '\u0178', /*0178; 00FF; Case map*/ '\u0179', /*0179; 017A; Case map*/ '\u017B', /*017B; 017C; Case map*/ '\u017D', /*017D; 017E; Case map*/ '\u017F', /*017F; 0073; Case map*/ '\u0181', /*0181; 0253; Case map*/ '\u0182', /*0182; 0183; Case map*/ '\u0184', /*0184; 0185; Case map*/ '\u0186', /*0186; 0254; Case map*/ '\u0187', /*0187; 0188; Case map*/ '\u0189', /*0189; 0256; Case map*/ '\u018A', /*018A; 0257; Case map*/ '\u018B', /*018B; 018C; Case map*/ '\u018E', /*018E; 01DD; Case map*/ '\u018F', /*018F; 0259; Case map*/ '\u0190', /*0190; 025B; Case map*/ '\u0191', /*0191; 0192; Case map*/ '\u0193', /*0193; 0260; Case map*/ '\u0194', /*0194; 0263; Case map*/ '\u0196', /*0196; 0269; Case map*/ '\u0197', /*0197; 0268; Case map*/ '\u0198', /*0198; 0199; Case map*/ '\u019C', /*019C; 026F; Case map*/ '\u019D', /*019D; 0272; Case map*/ '\u019F', /*019F; 0275; Case map*/ '\u01A0', /*01A0; 01A1; Case map*/ '\u01A2', /*01A2; 01A3; Case map*/ '\u01A4', /*01A4; 01A5; Case map*/ '\u01A6', /*01A6; 0280; Case map*/ '\u01A7', /*01A7; 01A8; Case map*/ '\u01A9', /*01A9; 0283; Case map*/ '\u01AC', /*01AC; 01AD; Case map*/ '\u01AE', /*01AE; 0288; Case map*/ '\u01AF', /*01AF; 01B0; Case map*/ '\u01B1', /*01B1; 028A; Case map*/ '\u01B2', /*01B2; 028B; Case map*/ '\u01B3', /*01B3; 01B4; Case map*/ '\u01B5', /*01B5; 01B6; Case map*/ '\u01B7', /*01B7; 0292; Case map*/ '\u01B8', /*01B8; 01B9; Case map*/ '\u01BC', /*01BC; 01BD; Case map*/ '\u01C4', /*01C4; 01C6; Case map*/ '\u01C5', /*01C5; 01C6; Case map*/ '\u01C7', /*01C7; 01C9; Case map*/ '\u01C8', /*01C8; 01C9; Case map*/ '\u01CA', /*01CA; 01CC; Case map*/ '\u01CB', /*01CB; 01CC; Case map*/ '\u01CD', /*01CD; 01CE; Case map*/ '\u01CF', /*01CF; 01D0; Case map*/ '\u01D1', /*01D1; 01D2; Case map*/ '\u01D3', /*01D3; 01D4; Case map*/ '\u01D5', /*01D5; 01D6; Case map*/ '\u01D7', /*01D7; 01D8; Case map*/ '\u01D9', /*01D9; 01DA; Case map*/ '\u01DB', /*01DB; 01DC; Case map*/ '\u01DE', /*01DE; 01DF; Case map*/ '\u01E0', /*01E0; 01E1; Case map*/ '\u01E2', /*01E2; 01E3; Case map*/ '\u01E4', /*01E4; 01E5; Case map*/ '\u01E6', /*01E6; 01E7; Case map*/ '\u01E8', /*01E8; 01E9; Case map*/ '\u01EA', /*01EA; 01EB; Case map*/ '\u01EC', /*01EC; 01ED; Case map*/ '\u01EE', /*01EE; 01EF; Case map*/ '\u01F0', /*01F0; 006A 030C; Case map*/ '\u01F1', /*01F1; 01F3; Case map*/ '\u01F2', /*01F2; 01F3; Case map*/ '\u01F4', /*01F4; 01F5; Case map*/ '\u01F6', /*01F6; 0195; Case map*/ '\u01F7', /*01F7; 01BF; Case map*/ '\u01F8', /*01F8; 01F9; Case map*/ '\u01FA', /*01FA; 01FB; Case map*/ '\u01FC', /*01FC; 01FD; Case map*/ '\u01FE', /*01FE; 01FF; Case map*/ '\u0200', /*0200; 0201; Case map*/ '\u0202', /*0202; 0203; Case map*/ '\u0204', /*0204; 0205; Case map*/ '\u0206', /*0206; 0207; Case map*/ '\u0208', /*0208; 0209; Case map*/ '\u020A', /*020A; 020B; Case map*/ '\u020C', /*020C; 020D; Case map*/ '\u020E', /*020E; 020F; Case map*/ '\u0210', /*0210; 0211; Case map*/ '\u0212', /*0212; 0213; Case map*/ '\u0214', /*0214; 0215; Case map*/ '\u0216', /*0216; 0217; Case map*/ '\u0218', /*0218; 0219; Case map*/ '\u021A', /*021A; 021B; Case map*/ '\u021C', /*021C; 021D; Case map*/ '\u021E', /*021E; 021F; Case map*/ '\u0220', /*0220; 019E; Case map*/ '\u0222', /*0222; 0223; Case map*/ '\u0224', /*0224; 0225; Case map*/ '\u0226', /*0226; 0227; Case map*/ '\u0228', /*0228; 0229; Case map*/ '\u022A', /*022A; 022B; Case map*/ '\u022C', /*022C; 022D; Case map*/ '\u022E', /*022E; 022F; Case map*/ '\u0230', /*0230; 0231; Case map*/ '\u0232', /*0232; 0233; Case map*/ '\u0345', /*0345; 03B9; Case map*/ '\u037A', /*037A; 0020 03B9; Additional folding*/ '\u0386', /*0386; 03AC; Case map*/ '\u0388', /*0388; 03AD; Case map*/ '\u0389', /*0389; 03AE; Case map*/ '\u038A', /*038A; 03AF; Case map*/ '\u038C', /*038C; 03CC; Case map*/ '\u038E', /*038E; 03CD; Case map*/ '\u038F', /*038F; 03CE; Case map*/ '\u0390', /*0390; 03B9 0308 0301; Case map*/ '\u0391', /*0391; 03B1; Case map*/ '\u0392', /*0392; 03B2; Case map*/ '\u0393', /*0393; 03B3; Case map*/ '\u0394', /*0394; 03B4; Case map*/ '\u0395', /*0395; 03B5; Case map*/ '\u0396', /*0396; 03B6; Case map*/ '\u0397', /*0397; 03B7; Case map*/ '\u0398', /*0398; 03B8; Case map*/ '\u0399', /*0399; 03B9; Case map*/ '\u039A', /*039A; 03BA; Case map*/ '\u039B', /*039B; 03BB; Case map*/ '\u039C', /*039C; 03BC; Case map*/ '\u039D', /*039D; 03BD; Case map*/ '\u039E', /*039E; 03BE; Case map*/ '\u039F', /*039F; 03BF; Case map*/ '\u03A0', /*03A0; 03C0; Case map*/ '\u03A1', /*03A1; 03C1; Case map*/ '\u03A3', /*03A3; 03C3; Case map*/ '\u03A4', /*03A4; 03C4; Case map*/ '\u03A5', /*03A5; 03C5; Case map*/ '\u03A6', /*03A6; 03C6; Case map*/ '\u03A7', /*03A7; 03C7; Case map*/ '\u03A8', /*03A8; 03C8; Case map*/ '\u03A9', /*03A9; 03C9; Case map*/ '\u03AA', /*03AA; 03CA; Case map*/ '\u03AB', /*03AB; 03CB; Case map*/ '\u03B0', /*03B0; 03C5 0308 0301; Case map*/ '\u03C2', /*03C2; 03C3; Case map*/ '\u03D0', /*03D0; 03B2; Case map*/ '\u03D1', /*03D1; 03B8; Case map*/ '\u03D2', /*03D2; 03C5; Additional folding*/ '\u03D3', /*03D3; 03CD; Additional folding*/ '\u03D4', /*03D4; 03CB; Additional folding*/ '\u03D5', /*03D5; 03C6; Case map*/ '\u03D6', /*03D6; 03C0; Case map*/ '\u03D8', /*03D8; 03D9; Case map*/ '\u03DA', /*03DA; 03DB; Case map*/ '\u03DC', /*03DC; 03DD; Case map*/ '\u03DE', /*03DE; 03DF; Case map*/ '\u03E0', /*03E0; 03E1; Case map*/ '\u03E2', /*03E2; 03E3; Case map*/ '\u03E4', /*03E4; 03E5; Case map*/ '\u03E6', /*03E6; 03E7; Case map*/ '\u03E8', /*03E8; 03E9; Case map*/ '\u03EA', /*03EA; 03EB; Case map*/ '\u03EC', /*03EC; 03ED; Case map*/ '\u03EE', /*03EE; 03EF; Case map*/ '\u03F0', /*03F0; 03BA; Case map*/ '\u03F1', /*03F1; 03C1; Case map*/ '\u03F2', /*03F2; 03C3; Case map*/ '\u03F4', /*03F4; 03B8; Case map*/ '\u03F5', /*03F5; 03B5; Case map*/ '\u0400', /*0400; 0450; Case map*/ '\u0401', /*0401; 0451; Case map*/ '\u0402', /*0402; 0452; Case map*/ '\u0403', /*0403; 0453; Case map*/ '\u0404', /*0404; 0454; Case map*/ '\u0405', /*0405; 0455; Case map*/ '\u0406', /*0406; 0456; Case map*/ '\u0407', /*0407; 0457; Case map*/ '\u0408', /*0408; 0458; Case map*/ '\u0409', /*0409; 0459; Case map*/ '\u040A', /*040A; 045A; Case map*/ '\u040B', /*040B; 045B; Case map*/ '\u040C', /*040C; 045C; Case map*/ '\u040D', /*040D; 045D; Case map*/ '\u040E', /*040E; 045E; Case map*/ '\u040F', /*040F; 045F; Case map*/ '\u0410', /*0410; 0430; Case map*/ '\u0411', /*0411; 0431; Case map*/ '\u0412', /*0412; 0432; Case map*/ '\u0413', /*0413; 0433; Case map*/ '\u0414', /*0414; 0434; Case map*/ '\u0415', /*0415; 0435; Case map*/ '\u0416', /*0416; 0436; Case map*/ '\u0417', /*0417; 0437; Case map*/ '\u0418', /*0418; 0438; Case map*/ '\u0419', /*0419; 0439; Case map*/ '\u041A', /*041A; 043A; Case map*/ '\u041B', /*041B; 043B; Case map*/ '\u041C', /*041C; 043C; Case map*/ '\u041D', /*041D; 043D; Case map*/ '\u041E', /*041E; 043E; Case map*/ '\u041F', /*041F; 043F; Case map*/ '\u0420', /*0420; 0440; Case map*/ '\u0421', /*0421; 0441; Case map*/ '\u0422', /*0422; 0442; Case map*/ '\u0423', /*0423; 0443; Case map*/ '\u0424', /*0424; 0444; Case map*/ '\u0425', /*0425; 0445; Case map*/ '\u0426', /*0426; 0446; Case map*/ '\u0427', /*0427; 0447; Case map*/ '\u0428', /*0428; 0448; Case map*/ '\u0429', /*0429; 0449; Case map*/ '\u042A', /*042A; 044A; Case map*/ '\u042B', /*042B; 044B; Case map*/ '\u042C', /*042C; 044C; Case map*/ '\u042D', /*042D; 044D; Case map*/ '\u042E', /*042E; 044E; Case map*/ '\u042F', /*042F; 044F; Case map*/ '\u0460', /*0460; 0461; Case map*/ '\u0462', /*0462; 0463; Case map*/ '\u0464', /*0464; 0465; Case map*/ '\u0466', /*0466; 0467; Case map*/ '\u0468', /*0468; 0469; Case map*/ '\u046A', /*046A; 046B; Case map*/ '\u046C', /*046C; 046D; Case map*/ '\u046E', /*046E; 046F; Case map*/ '\u0470', /*0470; 0471; Case map*/ '\u0472', /*0472; 0473; Case map*/ '\u0474', /*0474; 0475; Case map*/ '\u0476', /*0476; 0477; Case map*/ '\u0478', /*0478; 0479; Case map*/ '\u047A', /*047A; 047B; Case map*/ '\u047C', /*047C; 047D; Case map*/ '\u047E', /*047E; 047F; Case map*/ '\u0480', /*0480; 0481; Case map*/ '\u048A', /*048A; 048B; Case map*/ '\u048C', /*048C; 048D; Case map*/ '\u048E', /*048E; 048F; Case map*/ '\u0490', /*0490; 0491; Case map*/ '\u0492', /*0492; 0493; Case map*/ '\u0494', /*0494; 0495; Case map*/ '\u0496', /*0496; 0497; Case map*/ '\u0498', /*0498; 0499; Case map*/ '\u049A', /*049A; 049B; Case map*/ '\u049C', /*049C; 049D; Case map*/ '\u049E', /*049E; 049F; Case map*/ '\u04A0', /*04A0; 04A1; Case map*/ '\u04A2', /*04A2; 04A3; Case map*/ '\u04A4', /*04A4; 04A5; Case map*/ '\u04A6', /*04A6; 04A7; Case map*/ '\u04A8', /*04A8; 04A9; Case map*/ '\u04AA', /*04AA; 04AB; Case map*/ '\u04AC', /*04AC; 04AD; Case map*/ '\u04AE', /*04AE; 04AF; Case map*/ '\u04B0', /*04B0; 04B1; Case map*/ '\u04B2', /*04B2; 04B3; Case map*/ '\u04B4', /*04B4; 04B5; Case map*/ '\u04B6', /*04B6; 04B7; Case map*/ '\u04B8', /*04B8; 04B9; Case map*/ '\u04BA', /*04BA; 04BB; Case map*/ '\u04BC', /*04BC; 04BD; Case map*/ '\u04BE', /*04BE; 04BF; Case map*/ '\u04C1', /*04C1; 04C2; Case map*/ '\u04C3', /*04C3; 04C4; Case map*/ '\u04C5', /*04C5; 04C6; Case map*/ '\u04C7', /*04C7; 04C8; Case map*/ '\u04C9', /*04C9; 04CA; Case map*/ '\u04CB', /*04CB; 04CC; Case map*/ '\u04CD', /*04CD; 04CE; Case map*/ '\u04D0', /*04D0; 04D1; Case map*/ '\u04D2', /*04D2; 04D3; Case map*/ '\u04D4', /*04D4; 04D5; Case map*/ '\u04D6', /*04D6; 04D7; Case map*/ '\u04D8', /*04D8; 04D9; Case map*/ '\u04DA', /*04DA; 04DB; Case map*/ '\u04DC', /*04DC; 04DD; Case map*/ '\u04DE', /*04DE; 04DF; Case map*/ '\u04E0', /*04E0; 04E1; Case map*/ '\u04E2', /*04E2; 04E3; Case map*/ '\u04E4', /*04E4; 04E5; Case map*/ '\u04E6', /*04E6; 04E7; Case map*/ '\u04E8', /*04E8; 04E9; Case map*/ '\u04EA', /*04EA; 04EB; Case map*/ '\u04EC', /*04EC; 04ED; Case map*/ '\u04EE', /*04EE; 04EF; Case map*/ '\u04F0', /*04F0; 04F1; Case map*/ '\u04F2', /*04F2; 04F3; Case map*/ '\u04F4', /*04F4; 04F5; Case map*/ '\u04F8', /*04F8; 04F9; Case map*/ '\u0500', /*0500; 0501; Case map*/ '\u0502', /*0502; 0503; Case map*/ '\u0504', /*0504; 0505; Case map*/ '\u0506', /*0506; 0507; Case map*/ '\u0508', /*0508; 0509; Case map*/ '\u050A', /*050A; 050B; Case map*/ '\u050C', /*050C; 050D; Case map*/ '\u050E', /*050E; 050F; Case map*/ '\u0531', /*0531; 0561; Case map*/ '\u0532', /*0532; 0562; Case map*/ '\u0533', /*0533; 0563; Case map*/ '\u0534', /*0534; 0564; Case map*/ '\u0535', /*0535; 0565; Case map*/ '\u0536', /*0536; 0566; Case map*/ '\u0537', /*0537; 0567; Case map*/ '\u0538', /*0538; 0568; Case map*/ '\u0539', /*0539; 0569; Case map*/ '\u053A', /*053A; 056A; Case map*/ '\u053B', /*053B; 056B; Case map*/ '\u053C', /*053C; 056C; Case map*/ '\u053D', /*053D; 056D; Case map*/ '\u053E', /*053E; 056E; Case map*/ '\u053F', /*053F; 056F; Case map*/ '\u0540', /*0540; 0570; Case map*/ '\u0541', /*0541; 0571; Case map*/ '\u0542', /*0542; 0572; Case map*/ '\u0543', /*0543; 0573; Case map*/ '\u0544', /*0544; 0574; Case map*/ '\u0545', /*0545; 0575; Case map*/ '\u0546', /*0546; 0576; Case map*/ '\u0547', /*0547; 0577; Case map*/ '\u0548', /*0548; 0578; Case map*/ '\u0549', /*0549; 0579; Case map*/ '\u054A', /*054A; 057A; Case map*/ '\u054B', /*054B; 057B; Case map*/ '\u054C', /*054C; 057C; Case map*/ '\u054D', /*054D; 057D; Case map*/ '\u054E', /*054E; 057E; Case map*/ '\u054F', /*054F; 057F; Case map*/ '\u0550', /*0550; 0580; Case map*/ '\u0551', /*0551; 0581; Case map*/ '\u0552', /*0552; 0582; Case map*/ '\u0553', /*0553; 0583; Case map*/ '\u0554', /*0554; 0584; Case map*/ '\u0555', /*0555; 0585; Case map*/ '\u0556', /*0556; 0586; Case map*/ '\u0587', /*0587; 0565 0582; Case map*/ '\u1E00', /*1E00; 1E01; Case map*/ '\u1E02', /*1E02; 1E03; Case map*/ '\u1E04', /*1E04; 1E05; Case map*/ '\u1E06', /*1E06; 1E07; Case map*/ '\u1E08', /*1E08; 1E09; Case map*/ '\u1E0A', /*1E0A; 1E0B; Case map*/ '\u1E0C', /*1E0C; 1E0D; Case map*/ '\u1E0E', /*1E0E; 1E0F; Case map*/ '\u1E10', /*1E10; 1E11; Case map*/ '\u1E12', /*1E12; 1E13; Case map*/ '\u1E14', /*1E14; 1E15; Case map*/ '\u1E16', /*1E16; 1E17; Case map*/ '\u1E18', /*1E18; 1E19; Case map*/ '\u1E1A', /*1E1A; 1E1B; Case map*/ '\u1E1C', /*1E1C; 1E1D; Case map*/ '\u1E1E', /*1E1E; 1E1F; Case map*/ '\u1E20', /*1E20; 1E21; Case map*/ '\u1E22', /*1E22; 1E23; Case map*/ '\u1E24', /*1E24; 1E25; Case map*/ '\u1E26', /*1E26; 1E27; Case map*/ '\u1E28', /*1E28; 1E29; Case map*/ '\u1E2A', /*1E2A; 1E2B; Case map*/ '\u1E2C', /*1E2C; 1E2D; Case map*/ '\u1E2E', /*1E2E; 1E2F; Case map*/ '\u1E30', /*1E30; 1E31; Case map*/ '\u1E32', /*1E32; 1E33; Case map*/ '\u1E34', /*1E34; 1E35; Case map*/ '\u1E36', /*1E36; 1E37; Case map*/ '\u1E38', /*1E38; 1E39; Case map*/ '\u1E3A', /*1E3A; 1E3B; Case map*/ '\u1E3C', /*1E3C; 1E3D; Case map*/ '\u1E3E', /*1E3E; 1E3F; Case map*/ '\u1E40', /*1E40; 1E41; Case map*/ '\u1E42', /*1E42; 1E43; Case map*/ '\u1E44', /*1E44; 1E45; Case map*/ '\u1E46', /*1E46; 1E47; Case map*/ '\u1E48', /*1E48; 1E49; Case map*/ '\u1E4A', /*1E4A; 1E4B; Case map*/ '\u1E4C', /*1E4C; 1E4D; Case map*/ '\u1E4E', /*1E4E; 1E4F; Case map*/ '\u1E50', /*1E50; 1E51; Case map*/ '\u1E52', /*1E52; 1E53; Case map*/ '\u1E54', /*1E54; 1E55; Case map*/ '\u1E56', /*1E56; 1E57; Case map*/ '\u1E58', /*1E58; 1E59; Case map*/ '\u1E5A', /*1E5A; 1E5B; Case map*/ '\u1E5C', /*1E5C; 1E5D; Case map*/ '\u1E5E', /*1E5E; 1E5F; Case map*/ '\u1E60', /*1E60; 1E61; Case map*/ '\u1E62', /*1E62; 1E63; Case map*/ '\u1E64', /*1E64; 1E65; Case map*/ '\u1E66', /*1E66; 1E67; Case map*/ '\u1E68', /*1E68; 1E69; Case map*/ '\u1E6A', /*1E6A; 1E6B; Case map*/ '\u1E6C', /*1E6C; 1E6D; Case map*/ '\u1E6E', /*1E6E; 1E6F; Case map*/ '\u1E70', /*1E70; 1E71; Case map*/ '\u1E72', /*1E72; 1E73; Case map*/ '\u1E74', /*1E74; 1E75; Case map*/ '\u1E76', /*1E76; 1E77; Case map*/ '\u1E78', /*1E78; 1E79; Case map*/ '\u1E7A', /*1E7A; 1E7B; Case map*/ '\u1E7C', /*1E7C; 1E7D; Case map*/ '\u1E7E', /*1E7E; 1E7F; Case map*/ '\u1E80', /*1E80; 1E81; Case map*/ '\u1E82', /*1E82; 1E83; Case map*/ '\u1E84', /*1E84; 1E85; Case map*/ '\u1E86', /*1E86; 1E87; Case map*/ '\u1E88', /*1E88; 1E89; Case map*/ '\u1E8A', /*1E8A; 1E8B; Case map*/ '\u1E8C', /*1E8C; 1E8D; Case map*/ '\u1E8E', /*1E8E; 1E8F; Case map*/ '\u1E90', /*1E90; 1E91; Case map*/ '\u1E92', /*1E92; 1E93; Case map*/ '\u1E94', /*1E94; 1E95; Case map*/ '\u1E96', /*1E96; 0068 0331; Case map*/ '\u1E97', /*1E97; 0074 0308; Case map*/ '\u1E98', /*1E98; 0077 030A; Case map*/ '\u1E99', /*1E99; 0079 030A; Case map*/ '\u1E9A', /*1E9A; 0061 02BE; Case map*/ '\u1E9B', /*1E9B; 1E61; Case map*/ '\u1EA0', /*1EA0; 1EA1; Case map*/ '\u1EA2', /*1EA2; 1EA3; Case map*/ '\u1EA4', /*1EA4; 1EA5; Case map*/ '\u1EA6', /*1EA6; 1EA7; Case map*/ '\u1EA8', /*1EA8; 1EA9; Case map*/ '\u1EAA', /*1EAA; 1EAB; Case map*/ '\u1EAC', /*1EAC; 1EAD; Case map*/ '\u1EAE', /*1EAE; 1EAF; Case map*/ '\u1EB0', /*1EB0; 1EB1; Case map*/ '\u1EB2', /*1EB2; 1EB3; Case map*/ '\u1EB4', /*1EB4; 1EB5; Case map*/ '\u1EB6', /*1EB6; 1EB7; Case map*/ '\u1EB8', /*1EB8; 1EB9; Case map*/ '\u1EBA', /*1EBA; 1EBB; Case map*/ '\u1EBC', /*1EBC; 1EBD; Case map*/ '\u1EBE', /*1EBE; 1EBF; Case map*/ '\u1EC0', /*1EC0; 1EC1; Case map*/ '\u1EC2', /*1EC2; 1EC3; Case map*/ '\u1EC4', /*1EC4; 1EC5; Case map*/ '\u1EC6', /*1EC6; 1EC7; Case map*/ '\u1EC8', /*1EC8; 1EC9; Case map*/ '\u1ECA', /*1ECA; 1ECB; Case map*/ '\u1ECC', /*1ECC; 1ECD; Case map*/ '\u1ECE', /*1ECE; 1ECF; Case map*/ '\u1ED0', /*1ED0; 1ED1; Case map*/ '\u1ED2', /*1ED2; 1ED3; Case map*/ '\u1ED4', /*1ED4; 1ED5; Case map*/ '\u1ED6', /*1ED6; 1ED7; Case map*/ '\u1ED8', /*1ED8; 1ED9; Case map*/ '\u1EDA', /*1EDA; 1EDB; Case map*/ '\u1EDC', /*1EDC; 1EDD; Case map*/ '\u1EDE', /*1EDE; 1EDF; Case map*/ '\u1EE0', /*1EE0; 1EE1; Case map*/ '\u1EE2', /*1EE2; 1EE3; Case map*/ '\u1EE4', /*1EE4; 1EE5; Case map*/ '\u1EE6', /*1EE6; 1EE7; Case map*/ '\u1EE8', /*1EE8; 1EE9; Case map*/ '\u1EEA', /*1EEA; 1EEB; Case map*/ '\u1EEC', /*1EEC; 1EED; Case map*/ '\u1EEE', /*1EEE; 1EEF; Case map*/ '\u1EF0', /*1EF0; 1EF1; Case map*/ '\u1EF2', /*1EF2; 1EF3; Case map*/ '\u1EF4', /*1EF4; 1EF5; Case map*/ '\u1EF6', /*1EF6; 1EF7; Case map*/ '\u1EF8', /*1EF8; 1EF9; Case map*/ '\u1F08', /*1F08; 1F00; Case map*/ '\u1F09', /*1F09; 1F01; Case map*/ '\u1F0A', /*1F0A; 1F02; Case map*/ '\u1F0B', /*1F0B; 1F03; Case map*/ '\u1F0C', /*1F0C; 1F04; Case map*/ '\u1F0D', /*1F0D; 1F05; Case map*/ '\u1F0E', /*1F0E; 1F06; Case map*/ '\u1F0F', /*1F0F; 1F07; Case map*/ '\u1F18', /*1F18; 1F10; Case map*/ '\u1F19', /*1F19; 1F11; Case map*/ '\u1F1A', /*1F1A; 1F12; Case map*/ '\u1F1B', /*1F1B; 1F13; Case map*/ '\u1F1C', /*1F1C; 1F14; Case map*/ '\u1F1D', /*1F1D; 1F15; Case map*/ '\u1F28', /*1F28; 1F20; Case map*/ '\u1F29', /*1F29; 1F21; Case map*/ '\u1F2A', /*1F2A; 1F22; Case map*/ '\u1F2B', /*1F2B; 1F23; Case map*/ '\u1F2C', /*1F2C; 1F24; Case map*/ '\u1F2D', /*1F2D; 1F25; Case map*/ '\u1F2E', /*1F2E; 1F26; Case map*/ '\u1F2F', /*1F2F; 1F27; Case map*/ '\u1F38', /*1F38; 1F30; Case map*/ '\u1F39', /*1F39; 1F31; Case map*/ '\u1F3A', /*1F3A; 1F32; Case map*/ '\u1F3B', /*1F3B; 1F33; Case map*/ '\u1F3C', /*1F3C; 1F34; Case map*/ '\u1F3D', /*1F3D; 1F35; Case map*/ '\u1F3E', /*1F3E; 1F36; Case map*/ '\u1F3F', /*1F3F; 1F37; Case map*/ '\u1F48', /*1F48; 1F40; Case map*/ '\u1F49', /*1F49; 1F41; Case map*/ '\u1F4A', /*1F4A; 1F42; Case map*/ '\u1F4B', /*1F4B; 1F43; Case map*/ '\u1F4C', /*1F4C; 1F44; Case map*/ '\u1F4D', /*1F4D; 1F45; Case map*/ '\u1F50', /*1F50; 03C5 0313; Case map*/ '\u1F52', /*1F52; 03C5 0313 0300; Case map*/ '\u1F54', /*1F54; 03C5 0313 0301; Case map*/ '\u1F56', /*1F56; 03C5 0313 0342; Case map*/ '\u1F59', /*1F59; 1F51; Case map*/ '\u1F5B', /*1F5B; 1F53; Case map*/ '\u1F5D', /*1F5D; 1F55; Case map*/ '\u1F5F', /*1F5F; 1F57; Case map*/ '\u1F68', /*1F68; 1F60; Case map*/ '\u1F69', /*1F69; 1F61; Case map*/ '\u1F6A', /*1F6A; 1F62; Case map*/ '\u1F6B', /*1F6B; 1F63; Case map*/ '\u1F6C', /*1F6C; 1F64; Case map*/ '\u1F6D', /*1F6D; 1F65; Case map*/ '\u1F6E', /*1F6E; 1F66; Case map*/ '\u1F6F', /*1F6F; 1F67; Case map*/ '\u1F80', /*1F80; 1F00 03B9; Case map*/ '\u1F81', /*1F81; 1F01 03B9; Case map*/ '\u1F82', /*1F82; 1F02 03B9; Case map*/ '\u1F83', /*1F83; 1F03 03B9; Case map*/ '\u1F84', /*1F84; 1F04 03B9; Case map*/ '\u1F85', /*1F85; 1F05 03B9; Case map*/ '\u1F86', /*1F86; 1F06 03B9; Case map*/ '\u1F87', /*1F87; 1F07 03B9; Case map*/ '\u1F88', /*1F88; 1F00 03B9; Case map*/ '\u1F89', /*1F89; 1F01 03B9; Case map*/ '\u1F8A', /*1F8A; 1F02 03B9; Case map*/ '\u1F8B', /*1F8B; 1F03 03B9; Case map*/ '\u1F8C', /*1F8C; 1F04 03B9; Case map*/ '\u1F8D', /*1F8D; 1F05 03B9; Case map*/ '\u1F8E', /*1F8E; 1F06 03B9; Case map*/ '\u1F8F', /*1F8F; 1F07 03B9; Case map*/ '\u1F90', /*1F90; 1F20 03B9; Case map*/ '\u1F91', /*1F91; 1F21 03B9; Case map*/ '\u1F92', /*1F92; 1F22 03B9; Case map*/ '\u1F93', /*1F93; 1F23 03B9; Case map*/ '\u1F94', /*1F94; 1F24 03B9; Case map*/ '\u1F95', /*1F95; 1F25 03B9; Case map*/ '\u1F96', /*1F96; 1F26 03B9; Case map*/ '\u1F97', /*1F97; 1F27 03B9; Case map*/ '\u1F98', /*1F98; 1F20 03B9; Case map*/ '\u1F99', /*1F99; 1F21 03B9; Case map*/ '\u1F9A', /*1F9A; 1F22 03B9; Case map*/ '\u1F9B', /*1F9B; 1F23 03B9; Case map*/ '\u1F9C', /*1F9C; 1F24 03B9; Case map*/ '\u1F9D', /*1F9D; 1F25 03B9; Case map*/ '\u1F9E', /*1F9E; 1F26 03B9; Case map*/ '\u1F9F', /*1F9F; 1F27 03B9; Case map*/ '\u1FA0', /*1FA0; 1F60 03B9; Case map*/ '\u1FA1', /*1FA1; 1F61 03B9; Case map*/ '\u1FA2', /*1FA2; 1F62 03B9; Case map*/ '\u1FA3', /*1FA3; 1F63 03B9; Case map*/ '\u1FA4', /*1FA4; 1F64 03B9; Case map*/ '\u1FA5', /*1FA5; 1F65 03B9; Case map*/ '\u1FA6', /*1FA6; 1F66 03B9; Case map*/ '\u1FA7', /*1FA7; 1F67 03B9; Case map*/ '\u1FA8', /*1FA8; 1F60 03B9; Case map*/ '\u1FA9', /*1FA9; 1F61 03B9; Case map*/ '\u1FAA', /*1FAA; 1F62 03B9; Case map*/ '\u1FAB', /*1FAB; 1F63 03B9; Case map*/ '\u1FAC', /*1FAC; 1F64 03B9; Case map*/ '\u1FAD', /*1FAD; 1F65 03B9; Case map*/ '\u1FAE', /*1FAE; 1F66 03B9; Case map*/ '\u1FAF', /*1FAF; 1F67 03B9; Case map*/ '\u1FB2', /*1FB2; 1F70 03B9; Case map*/ '\u1FB3', /*1FB3; 03B1 03B9; Case map*/ '\u1FB4', /*1FB4; 03AC 03B9; Case map*/ '\u1FB6', /*1FB6; 03B1 0342; Case map*/ '\u1FB7', /*1FB7; 03B1 0342 03B9; Case map*/ '\u1FB8', /*1FB8; 1FB0; Case map*/ '\u1FB9', /*1FB9; 1FB1; Case map*/ '\u1FBA', /*1FBA; 1F70; Case map*/ '\u1FBB', /*1FBB; 1F71; Case map*/ '\u1FBC', /*1FBC; 03B1 03B9; Case map*/ '\u1FBE', /*1FBE; 03B9; Case map*/ '\u1FC2', /*1FC2; 1F74 03B9; Case map*/ '\u1FC3', /*1FC3; 03B7 03B9; Case map*/ '\u1FC4', /*1FC4; 03AE 03B9; Case map*/ '\u1FC6', /*1FC6; 03B7 0342; Case map*/ '\u1FC7', /*1FC7; 03B7 0342 03B9; Case map*/ '\u1FC8', /*1FC8; 1F72; Case map*/ '\u1FC9', /*1FC9; 1F73; Case map*/ '\u1FCA', /*1FCA; 1F74; Case map*/ '\u1FCB', /*1FCB; 1F75; Case map*/ '\u1FCC', /*1FCC; 03B7 03B9; Case map*/ '\u1FD2', /*1FD2; 03B9 0308 0300; Case map*/ '\u1FD3', /*1FD3; 03B9 0308 0301; Case map*/ '\u1FD6', /*1FD6; 03B9 0342; Case map*/ '\u1FD7', /*1FD7; 03B9 0308 0342; Case map*/ '\u1FD8', /*1FD8; 1FD0; Case map*/ '\u1FD9', /*1FD9; 1FD1; Case map*/ '\u1FDA', /*1FDA; 1F76; Case map*/ '\u1FDB', /*1FDB; 1F77; Case map*/ '\u1FE2', /*1FE2; 03C5 0308 0300; Case map*/ '\u1FE3', /*1FE3; 03C5 0308 0301; Case map*/ '\u1FE4', /*1FE4; 03C1 0313; Case map*/ '\u1FE6', /*1FE6; 03C5 0342; Case map*/ '\u1FE7', /*1FE7; 03C5 0308 0342; Case map*/ '\u1FE8', /*1FE8; 1FE0; Case map*/ '\u1FE9', /*1FE9; 1FE1; Case map*/ '\u1FEA', /*1FEA; 1F7A; Case map*/ '\u1FEB', /*1FEB; 1F7B; Case map*/ '\u1FEC', /*1FEC; 1FE5; Case map*/ '\u1FF2', /*1FF2; 1F7C 03B9; Case map*/ '\u1FF3', /*1FF3; 03C9 03B9; Case map*/ '\u1FF4', /*1FF4; 03CE 03B9; Case map*/ '\u1FF6', /*1FF6; 03C9 0342; Case map*/ '\u1FF7', /*1FF7; 03C9 0342 03B9; Case map*/ '\u1FF8', /*1FF8; 1F78; Case map*/ '\u1FF9', /*1FF9; 1F79; Case map*/ '\u1FFA', /*1FFA; 1F7C; Case map*/ '\u1FFB', /*1FFB; 1F7D; Case map*/ '\u1FFC', /*1FFC; 03C9 03B9; Case map*/ '\u20A8', /*20A8; 0072 0073; Additional folding*/ '\u2102', /*2102; 0063; Additional folding*/ '\u2103', /*2103; 00B0 0063; Additional folding*/ '\u2107', /*2107; 025B; Additional folding*/ '\u2109', /*2109; 00B0 0066; Additional folding*/ '\u210B', /*210B; 0068; Additional folding*/ '\u210C', /*210C; 0068; Additional folding*/ '\u210D', /*210D; 0068; Additional folding*/ '\u2110', /*2110; 0069; Additional folding*/ '\u2111', /*2111; 0069; Additional folding*/ '\u2112', /*2112; 006C; Additional folding*/ '\u2115', /*2115; 006E; Additional folding*/ '\u2116', /*2116; 006E 006F; Additional folding*/ '\u2119', /*2119; 0070; Additional folding*/ '\u211A', /*211A; 0071; Additional folding*/ '\u211B', /*211B; 0072; Additional folding*/ '\u211C', /*211C; 0072; Additional folding*/ '\u211D', /*211D; 0072; Additional folding*/ '\u2120', /*2120; 0073 006D; Additional folding*/ '\u2121', /*2121; 0074 0065 006C; Additional folding*/ '\u2122', /*2122; 0074 006D; Additional folding*/ '\u2124', /*2124; 007A; Additional folding*/ '\u2126', /*2126; 03C9; Case map*/ '\u2128', /*2128; 007A; Additional folding*/ '\u212A', /*212A; 006B; Case map*/ '\u212B', /*212B; 00E5; Case map*/ '\u212C', /*212C; 0062; Additional folding*/ '\u212D', /*212D; 0063; Additional folding*/ '\u2130', /*2130; 0065; Additional folding*/ '\u2131', /*2131; 0066; Additional folding*/ '\u2133', /*2133; 006D; Additional folding*/ '\u213E', /*213E; 03B3; Additional folding*/ '\u213F', /*213F; 03C0; Additional folding*/ '\u2145', /*2145; 0064; Additional folding*/ '\u2160', /*2160; 2170; Case map*/ '\u2161', /*2161; 2171; Case map*/ '\u2162', /*2162; 2172; Case map*/ '\u2163', /*2163; 2173; Case map*/ '\u2164', /*2164; 2174; Case map*/ '\u2165', /*2165; 2175; Case map*/ '\u2166', /*2166; 2176; Case map*/ '\u2167', /*2167; 2177; Case map*/ '\u2168', /*2168; 2178; Case map*/ '\u2169', /*2169; 2179; Case map*/ '\u216A', /*216A; 217A; Case map*/ '\u216B', /*216B; 217B; Case map*/ '\u216C', /*216C; 217C; Case map*/ '\u216D', /*216D; 217D; Case map*/ '\u216E', /*216E; 217E; Case map*/ '\u216F', /*216F; 217F; Case map*/ '\u24B6', /*24B6; 24D0; Case map*/ '\u24B7', /*24B7; 24D1; Case map*/ '\u24B8', /*24B8; 24D2; Case map*/ '\u24B9', /*24B9; 24D3; Case map*/ '\u24BA', /*24BA; 24D4; Case map*/ '\u24BB', /*24BB; 24D5; Case map*/ '\u24BC', /*24BC; 24D6; Case map*/ '\u24BD', /*24BD; 24D7; Case map*/ '\u24BE', /*24BE; 24D8; Case map*/ '\u24BF', /*24BF; 24D9; Case map*/ '\u24C0', /*24C0; 24DA; Case map*/ '\u24C1', /*24C1; 24DB; Case map*/ '\u24C2', /*24C2; 24DC; Case map*/ '\u24C3', /*24C3; 24DD; Case map*/ '\u24C4', /*24C4; 24DE; Case map*/ '\u24C5', /*24C5; 24DF; Case map*/ '\u24C6', /*24C6; 24E0; Case map*/ '\u24C7', /*24C7; 24E1; Case map*/ '\u24C8', /*24C8; 24E2; Case map*/ '\u24C9', /*24C9; 24E3; Case map*/ '\u24CA', /*24CA; 24E4; Case map*/ '\u24CB', /*24CB; 24E5; Case map*/ '\u24CC', /*24CC; 24E6; Case map*/ '\u24CD', /*24CD; 24E7; Case map*/ '\u24CE', /*24CE; 24E8; Case map*/ '\u24CF', /*24CF; 24E9; Case map*/ '\u3371', /*3371; 0068 0070 0061; Additional folding*/ '\u3373', /*3373; 0061 0075; Additional folding*/ '\u3375', /*3375; 006F 0076; Additional folding*/ '\u3380', /*3380; 0070 0061; Additional folding*/ '\u3381', /*3381; 006E 0061; Additional folding*/ '\u3382', /*3382; 03BC 0061; Additional folding*/ '\u3383', /*3383; 006D 0061; Additional folding*/ '\u3384', /*3384; 006B 0061; Additional folding*/ '\u3385', /*3385; 006B 0062; Additional folding*/ '\u3386', /*3386; 006D 0062; Additional folding*/ '\u3387', /*3387; 0067 0062; Additional folding*/ '\u338A', /*338A; 0070 0066; Additional folding*/ '\u338B', /*338B; 006E 0066; Additional folding*/ '\u338C', /*338C; 03BC 0066; Additional folding*/ '\u3390', /*3390; 0068 007A; Additional folding*/ '\u3391', /*3391; 006B 0068 007A; Additional folding*/ '\u3392', /*3392; 006D 0068 007A; Additional folding*/ '\u3393', /*3393; 0067 0068 007A; Additional folding*/ '\u3394', /*3394; 0074 0068 007A; Additional folding*/ '\u33A9', /*33A9; 0070 0061; Additional folding*/ '\u33AA', /*33AA; 006B 0070 0061; Additional folding*/ '\u33AB', /*33AB; 006D 0070 0061; Additional folding*/ '\u33AC', /*33AC; 0067 0070 0061; Additional folding*/ '\u33B4', /*33B4; 0070 0076; Additional folding*/ '\u33B5', /*33B5; 006E 0076; Additional folding*/ '\u33B6', /*33B6; 03BC 0076; Additional folding*/ '\u33B7', /*33B7; 006D 0076; Additional folding*/ '\u33B8', /*33B8; 006B 0076; Additional folding*/ '\u33B9', /*33B9; 006D 0076; Additional folding*/ '\u33BA', /*33BA; 0070 0077; Additional folding*/ '\u33BB', /*33BB; 006E 0077; Additional folding*/ '\u33BC', /*33BC; 03BC 0077; Additional folding*/ '\u33BD', /*33BD; 006D 0077; Additional folding*/ '\u33BE', /*33BE; 006B 0077; Additional folding*/ '\u33BF', /*33BF; 006D 0077; Additional folding*/ '\u33C0', /*33C0; 006B 03C9; Additional folding*/ '\u33C1', /*33C1; 006D 03C9; Additional folding*/ '\u33C3', /*33C3; 0062 0071; Additional folding*/ '\u33C6', /*33C6; 0063 2215 006B 0067; Additional folding*/ '\u33C7', /*33C7; 0063 006F 002E; Additional folding*/ '\u33C8', /*33C8; 0064 0062; Additional folding*/ '\u33C9', /*33C9; 0067 0079; Additional folding*/ '\u33CB', /*33CB; 0068 0070; Additional folding*/ '\u33CD', /*33CD; 006B 006B; Additional folding*/ '\u33CE', /*33CE; 006B 006D; Additional folding*/ '\u33D7', /*33D7; 0070 0068; Additional folding*/ '\u33D9', /*33D9; 0070 0070 006D; Additional folding*/ '\u33DA', /*33DA; 0070 0072; Additional folding*/ '\u33DC', /*33DC; 0073 0076; Additional folding*/ '\u33DD', /*33DD; 0077 0062; Additional folding*/ '\uFB00', /*FB00; 0066 0066; Case map*/ '\uFB01', /*FB01; 0066 0069; Case map*/ '\uFB02', /*FB02; 0066 006C; Case map*/ '\uFB03', /*FB03; 0066 0066 0069; Case map*/ '\uFB04', /*FB04; 0066 0066 006C; Case map*/ '\uFB05', /*FB05; 0073 0074; Case map*/ '\uFB06', /*FB06; 0073 0074; Case map*/ '\uFB13', /*FB13; 0574 0576; Case map*/ '\uFB14', /*FB14; 0574 0565; Case map*/ '\uFB15', /*FB15; 0574 056B; Case map*/ '\uFB16', /*FB16; 057E 0576; Case map*/ '\uFB17', /*FB17; 0574 056D; Case map*/ '\uFF21', /*FF21; FF41; Case map*/ '\uFF22', /*FF22; FF42; Case map*/ '\uFF23', /*FF23; FF43; Case map*/ '\uFF24', /*FF24; FF44; Case map*/ '\uFF25', /*FF25; FF45; Case map*/ '\uFF26', /*FF26; FF46; Case map*/ '\uFF27', /*FF27; FF47; Case map*/ '\uFF28', /*FF28; FF48; Case map*/ '\uFF29', /*FF29; FF49; Case map*/ '\uFF2A', /*FF2A; FF4A; Case map*/ '\uFF2B', /*FF2B; FF4B; Case map*/ '\uFF2C', /*FF2C; FF4C; Case map*/ '\uFF2D', /*FF2D; FF4D; Case map*/ '\uFF2E', /*FF2E; FF4E; Case map*/ '\uFF2F', /*FF2F; FF4F; Case map*/ '\uFF30', /*FF30; FF50; Case map*/ '\uFF31', /*FF31; FF51; Case map*/ '\uFF32', /*FF32; FF52; Case map*/ '\uFF33', /*FF33; FF53; Case map*/ '\uFF34', /*FF34; FF54; Case map*/ '\uFF35', /*FF35; FF55; Case map*/ '\uFF36', /*FF36; FF56; Case map*/ '\uFF37', /*FF37; FF57; Case map*/ '\uFF38', /*FF38; FF58; Case map*/ '\uFF39', /*FF39; FF59; Case map*/ '\uFF3A', /*FF3A; FF5A; Case map*/ }; public static string[] B2replace = new string[] { "\u0061", /*0041; 0061; Case map*/ "\u0062", /*0042; 0062; Case map*/ "\u0063", /*0043; 0063; Case map*/ "\u0064", /*0044; 0064; Case map*/ "\u0065", /*0045; 0065; Case map*/ "\u0066", /*0046; 0066; Case map*/ "\u0067", /*0047; 0067; Case map*/ "\u0068", /*0048; 0068; Case map*/ "\u0069", /*0049; 0069; Case map*/ "\u006A", /*004A; 006A; Case map*/ "\u006B", /*004B; 006B; Case map*/ "\u006C", /*004C; 006C; Case map*/ "\u006D", /*004D; 006D; Case map*/ "\u006E", /*004E; 006E; Case map*/ "\u006F", /*004F; 006F; Case map*/ "\u0070", /*0050; 0070; Case map*/ "\u0071", /*0051; 0071; Case map*/ "\u0072", /*0052; 0072; Case map*/ "\u0073", /*0053; 0073; Case map*/ "\u0074", /*0054; 0074; Case map*/ "\u0075", /*0055; 0075; Case map*/ "\u0076", /*0056; 0076; Case map*/ "\u0077", /*0057; 0077; Case map*/ "\u0078", /*0058; 0078; Case map*/ "\u0079", /*0059; 0079; Case map*/ "\u007A", /*005A; 007A; Case map*/ "\u03BC", /*00B5; 03BC; Case map*/ "\u00E0", /*00C0; 00E0; Case map*/ "\u00E1", /*00C1; 00E1; Case map*/ "\u00E2", /*00C2; 00E2; Case map*/ "\u00E3", /*00C3; 00E3; Case map*/ "\u00E4", /*00C4; 00E4; Case map*/ "\u00E5", /*00C5; 00E5; Case map*/ "\u00E6", /*00C6; 00E6; Case map*/ "\u00E7", /*00C7; 00E7; Case map*/ "\u00E8", /*00C8; 00E8; Case map*/ "\u00E9", /*00C9; 00E9; Case map*/ "\u00EA", /*00CA; 00EA; Case map*/ "\u00EB", /*00CB; 00EB; Case map*/ "\u00EC", /*00CC; 00EC; Case map*/ "\u00ED", /*00CD; 00ED; Case map*/ "\u00EE", /*00CE; 00EE; Case map*/ "\u00EF", /*00CF; 00EF; Case map*/ "\u00F0", /*00D0; 00F0; Case map*/ "\u00F1", /*00D1; 00F1; Case map*/ "\u00F2", /*00D2; 00F2; Case map*/ "\u00F3", /*00D3; 00F3; Case map*/ "\u00F4", /*00D4; 00F4; Case map*/ "\u00F5", /*00D5; 00F5; Case map*/ "\u00F6", /*00D6; 00F6; Case map*/ "\u00F8", /*00D8; 00F8; Case map*/ "\u00F9", /*00D9; 00F9; Case map*/ "\u00FA", /*00DA; 00FA; Case map*/ "\u00FB", /*00DB; 00FB; Case map*/ "\u00FC", /*00DC; 00FC; Case map*/ "\u00FD", /*00DD; 00FD; Case map*/ "\u00FE", /*00DE; 00FE; Case map*/ "\u0073\u0073", /*00DF; 0073 0073; Case map*/ "\u0101", /*0100; 0101; Case map*/ "\u0103", /*0102; 0103; Case map*/ "\u0105", /*0104; 0105; Case map*/ "\u0107", /*0106; 0107; Case map*/ "\u0109", /*0108; 0109; Case map*/ "\u010B", /*010A; 010B; Case map*/ "\u010D", /*010C; 010D; Case map*/ "\u010F", /*010E; 010F; Case map*/ "\u0111", /*0110; 0111; Case map*/ "\u0113", /*0112; 0113; Case map*/ "\u0115", /*0114; 0115; Case map*/ "\u0117", /*0116; 0117; Case map*/ "\u0119", /*0118; 0119; Case map*/ "\u011B", /*011A; 011B; Case map*/ "\u011D", /*011C; 011D; Case map*/ "\u011F", /*011E; 011F; Case map*/ "\u0121", /*0120; 0121; Case map*/ "\u0123", /*0122; 0123; Case map*/ "\u0125", /*0124; 0125; Case map*/ "\u0127", /*0126; 0127; Case map*/ "\u0129", /*0128; 0129; Case map*/ "\u012B", /*012A; 012B; Case map*/ "\u012D", /*012C; 012D; Case map*/ "\u012F", /*012E; 012F; Case map*/ "\u0069\u0307", /*0130; 0069 0307; Case map*/ "\u0133", /*0132; 0133; Case map*/ "\u0135", /*0134; 0135; Case map*/ "\u0137", /*0136; 0137; Case map*/ "\u013A", /*0139; 013A; Case map*/ "\u013C", /*013B; 013C; Case map*/ "\u013E", /*013D; 013E; Case map*/ "\u0140", /*013F; 0140; Case map*/ "\u0142", /*0141; 0142; Case map*/ "\u0144", /*0143; 0144; Case map*/ "\u0146", /*0145; 0146; Case map*/ "\u0148", /*0147; 0148; Case map*/ "\u02BC\u006E", /*0149; 02BC 006E; Case map*/ "\u014B", /*014A; 014B; Case map*/ "\u014D", /*014C; 014D; Case map*/ "\u014F", /*014E; 014F; Case map*/ "\u0151", /*0150; 0151; Case map*/ "\u0153", /*0152; 0153; Case map*/ "\u0155", /*0154; 0155; Case map*/ "\u0157", /*0156; 0157; Case map*/ "\u0159", /*0158; 0159; Case map*/ "\u015B", /*015A; 015B; Case map*/ "\u015D", /*015C; 015D; Case map*/ "\u015F", /*015E; 015F; Case map*/ "\u0161", /*0160; 0161; Case map*/ "\u0163", /*0162; 0163; Case map*/ "\u0165", /*0164; 0165; Case map*/ "\u0167", /*0166; 0167; Case map*/ "\u0169", /*0168; 0169; Case map*/ "\u016B", /*016A; 016B; Case map*/ "\u016D", /*016C; 016D; Case map*/ "\u016F", /*016E; 016F; Case map*/ "\u0171", /*0170; 0171; Case map*/ "\u0173", /*0172; 0173; Case map*/ "\u0175", /*0174; 0175; Case map*/ "\u0177", /*0176; 0177; Case map*/ "\u00FF", /*0178; 00FF; Case map*/ "\u017A", /*0179; 017A; Case map*/ "\u017C", /*017B; 017C; Case map*/ "\u017E", /*017D; 017E; Case map*/ "\u0073", /*017F; 0073; Case map*/ "\u0253", /*0181; 0253; Case map*/ "\u0183", /*0182; 0183; Case map*/ "\u0185", /*0184; 0185; Case map*/ "\u0254", /*0186; 0254; Case map*/ "\u0188", /*0187; 0188; Case map*/ "\u0256", /*0189; 0256; Case map*/ "\u0257", /*018A; 0257; Case map*/ "\u018C", /*018B; 018C; Case map*/ "\u01DD", /*018E; 01DD; Case map*/ "\u0259", /*018F; 0259; Case map*/ "\u025B", /*0190; 025B; Case map*/ "\u0192", /*0191; 0192; Case map*/ "\u0260", /*0193; 0260; Case map*/ "\u0263", /*0194; 0263; Case map*/ "\u0269", /*0196; 0269; Case map*/ "\u0268", /*0197; 0268; Case map*/ "\u0199", /*0198; 0199; Case map*/ "\u026F", /*019C; 026F; Case map*/ "\u0272", /*019D; 0272; Case map*/ "\u0275", /*019F; 0275; Case map*/ "\u01A1", /*01A0; 01A1; Case map*/ "\u01A3", /*01A2; 01A3; Case map*/ "\u01A5", /*01A4; 01A5; Case map*/ "\u0280", /*01A6; 0280; Case map*/ "\u01A8", /*01A7; 01A8; Case map*/ "\u0283", /*01A9; 0283; Case map*/ "\u01AD", /*01AC; 01AD; Case map*/ "\u0288", /*01AE; 0288; Case map*/ "\u01B0", /*01AF; 01B0; Case map*/ "\u028A", /*01B1; 028A; Case map*/ "\u028B", /*01B2; 028B; Case map*/ "\u01B4", /*01B3; 01B4; Case map*/ "\u01B6", /*01B5; 01B6; Case map*/ "\u0292", /*01B7; 0292; Case map*/ "\u01B9", /*01B8; 01B9; Case map*/ "\u01BD", /*01BC; 01BD; Case map*/ "\u01C6", /*01C4; 01C6; Case map*/ "\u01C6", /*01C5; 01C6; Case map*/ "\u01C9", /*01C7; 01C9; Case map*/ "\u01C9", /*01C8; 01C9; Case map*/ "\u01CC", /*01CA; 01CC; Case map*/ "\u01CC", /*01CB; 01CC; Case map*/ "\u01CE", /*01CD; 01CE; Case map*/ "\u01D0", /*01CF; 01D0; Case map*/ "\u01D2", /*01D1; 01D2; Case map*/ "\u01D4", /*01D3; 01D4; Case map*/ "\u01D6", /*01D5; 01D6; Case map*/ "\u01D8", /*01D7; 01D8; Case map*/ "\u01DA", /*01D9; 01DA; Case map*/ "\u01DC", /*01DB; 01DC; Case map*/ "\u01DF", /*01DE; 01DF; Case map*/ "\u01E1", /*01E0; 01E1; Case map*/ "\u01E3", /*01E2; 01E3; Case map*/ "\u01E5", /*01E4; 01E5; Case map*/ "\u01E7", /*01E6; 01E7; Case map*/ "\u01E9", /*01E8; 01E9; Case map*/ "\u01EB", /*01EA; 01EB; Case map*/ "\u01ED", /*01EC; 01ED; Case map*/ "\u01EF", /*01EE; 01EF; Case map*/ "\u006A\u030C", /*01F0; 006A 030C; Case map*/ "\u01F3", /*01F1; 01F3; Case map*/ "\u01F3", /*01F2; 01F3; Case map*/ "\u01F5", /*01F4; 01F5; Case map*/ "\u0195", /*01F6; 0195; Case map*/ "\u01BF", /*01F7; 01BF; Case map*/ "\u01F9", /*01F8; 01F9; Case map*/ "\u01FB", /*01FA; 01FB; Case map*/ "\u01FD", /*01FC; 01FD; Case map*/ "\u01FF", /*01FE; 01FF; Case map*/ "\u0201", /*0200; 0201; Case map*/ "\u0203", /*0202; 0203; Case map*/ "\u0205", /*0204; 0205; Case map*/ "\u0207", /*0206; 0207; Case map*/ "\u0209", /*0208; 0209; Case map*/ "\u020B", /*020A; 020B; Case map*/ "\u020D", /*020C; 020D; Case map*/ "\u020F", /*020E; 020F; Case map*/ "\u0211", /*0210; 0211; Case map*/ "\u0213", /*0212; 0213; Case map*/ "\u0215", /*0214; 0215; Case map*/ "\u0217", /*0216; 0217; Case map*/ "\u0219", /*0218; 0219; Case map*/ "\u021B", /*021A; 021B; Case map*/ "\u021D", /*021C; 021D; Case map*/ "\u021F", /*021E; 021F; Case map*/ "\u019E", /*0220; 019E; Case map*/ "\u0223", /*0222; 0223; Case map*/ "\u0225", /*0224; 0225; Case map*/ "\u0227", /*0226; 0227; Case map*/ "\u0229", /*0228; 0229; Case map*/ "\u022B", /*022A; 022B; Case map*/ "\u022D", /*022C; 022D; Case map*/ "\u022F", /*022E; 022F; Case map*/ "\u0231", /*0230; 0231; Case map*/ "\u0233", /*0232; 0233; Case map*/ "\u03B9", /*0345; 03B9; Case map*/ "\u0020\u03B9", /*037A; 0020 03B9; Additional folding*/ "\u03AC", /*0386; 03AC; Case map*/ "\u03AD", /*0388; 03AD; Case map*/ "\u03AE", /*0389; 03AE; Case map*/ "\u03AF", /*038A; 03AF; Case map*/ "\u03CC", /*038C; 03CC; Case map*/ "\u03CD", /*038E; 03CD; Case map*/ "\u03CE", /*038F; 03CE; Case map*/ "\u03B9\u0308\u0301", /*0390; 03B9 0308 0301; Case map*/ "\u03B1", /*0391; 03B1; Case map*/ "\u03B2", /*0392; 03B2; Case map*/ "\u03B3", /*0393; 03B3; Case map*/ "\u03B4", /*0394; 03B4; Case map*/ "\u03B5", /*0395; 03B5; Case map*/ "\u03B6", /*0396; 03B6; Case map*/ "\u03B7", /*0397; 03B7; Case map*/ "\u03B8", /*0398; 03B8; Case map*/ "\u03B9", /*0399; 03B9; Case map*/ "\u03BA", /*039A; 03BA; Case map*/ "\u03BB", /*039B; 03BB; Case map*/ "\u03BC", /*039C; 03BC; Case map*/ "\u03BD", /*039D; 03BD; Case map*/ "\u03BE", /*039E; 03BE; Case map*/ "\u03BF", /*039F; 03BF; Case map*/ "\u03C0", /*03A0; 03C0; Case map*/ "\u03C1", /*03A1; 03C1; Case map*/ "\u03C3", /*03A3; 03C3; Case map*/ "\u03C4", /*03A4; 03C4; Case map*/ "\u03C5", /*03A5; 03C5; Case map*/ "\u03C6", /*03A6; 03C6; Case map*/ "\u03C7", /*03A7; 03C7; Case map*/ "\u03C8", /*03A8; 03C8; Case map*/ "\u03C9", /*03A9; 03C9; Case map*/ "\u03CA", /*03AA; 03CA; Case map*/ "\u03CB", /*03AB; 03CB; Case map*/ "\u03C5\u0308\u0301", /*03B0; 03C5 0308 0301; Case map*/ "\u03C3", /*03C2; 03C3; Case map*/ "\u03B2", /*03D0; 03B2; Case map*/ "\u03B8", /*03D1; 03B8; Case map*/ "\u03C5", /*03D2; 03C5; Additional folding*/ "\u03CD", /*03D3; 03CD; Additional folding*/ "\u03CB", /*03D4; 03CB; Additional folding*/ "\u03C6", /*03D5; 03C6; Case map*/ "\u03C0", /*03D6; 03C0; Case map*/ "\u03D9", /*03D8; 03D9; Case map*/ "\u03DB", /*03DA; 03DB; Case map*/ "\u03DD", /*03DC; 03DD; Case map*/ "\u03DF", /*03DE; 03DF; Case map*/ "\u03E1", /*03E0; 03E1; Case map*/ "\u03E3", /*03E2; 03E3; Case map*/ "\u03E5", /*03E4; 03E5; Case map*/ "\u03E7", /*03E6; 03E7; Case map*/ "\u03E9", /*03E8; 03E9; Case map*/ "\u03EB", /*03EA; 03EB; Case map*/ "\u03ED", /*03EC; 03ED; Case map*/ "\u03EF", /*03EE; 03EF; Case map*/ "\u03BA", /*03F0; 03BA; Case map*/ "\u03C1", /*03F1; 03C1; Case map*/ "\u03C3", /*03F2; 03C3; Case map*/ "\u03B8", /*03F4; 03B8; Case map*/ "\u03B5", /*03F5; 03B5; Case map*/ "\u0450", /*0400; 0450; Case map*/ "\u0451", /*0401; 0451; Case map*/ "\u0452", /*0402; 0452; Case map*/ "\u0453", /*0403; 0453; Case map*/ "\u0454", /*0404; 0454; Case map*/ "\u0455", /*0405; 0455; Case map*/ "\u0456", /*0406; 0456; Case map*/ "\u0457", /*0407; 0457; Case map*/ "\u0458", /*0408; 0458; Case map*/ "\u0459", /*0409; 0459; Case map*/ "\u045A", /*040A; 045A; Case map*/ "\u045B", /*040B; 045B; Case map*/ "\u045C", /*040C; 045C; Case map*/ "\u045D", /*040D; 045D; Case map*/ "\u045E", /*040E; 045E; Case map*/ "\u045F", /*040F; 045F; Case map*/ "\u0430", /*0410; 0430; Case map*/ "\u0431", /*0411; 0431; Case map*/ "\u0432", /*0412; 0432; Case map*/ "\u0433", /*0413; 0433; Case map*/ "\u0434", /*0414; 0434; Case map*/ "\u0435", /*0415; 0435; Case map*/ "\u0436", /*0416; 0436; Case map*/ "\u0437", /*0417; 0437; Case map*/ "\u0438", /*0418; 0438; Case map*/ "\u0439", /*0419; 0439; Case map*/ "\u043A", /*041A; 043A; Case map*/ "\u043B", /*041B; 043B; Case map*/ "\u043C", /*041C; 043C; Case map*/ "\u043D", /*041D; 043D; Case map*/ "\u043E", /*041E; 043E; Case map*/ "\u043F", /*041F; 043F; Case map*/ "\u0440", /*0420; 0440; Case map*/ "\u0441", /*0421; 0441; Case map*/ "\u0442", /*0422; 0442; Case map*/ "\u0443", /*0423; 0443; Case map*/ "\u0444", /*0424; 0444; Case map*/ "\u0445", /*0425; 0445; Case map*/ "\u0446", /*0426; 0446; Case map*/ "\u0447", /*0427; 0447; Case map*/ "\u0448", /*0428; 0448; Case map*/ "\u0449", /*0429; 0449; Case map*/ "\u044A", /*042A; 044A; Case map*/ "\u044B", /*042B; 044B; Case map*/ "\u044C", /*042C; 044C; Case map*/ "\u044D", /*042D; 044D; Case map*/ "\u044E", /*042E; 044E; Case map*/ "\u044F", /*042F; 044F; Case map*/ "\u0461", /*0460; 0461; Case map*/ "\u0463", /*0462; 0463; Case map*/ "\u0465", /*0464; 0465; Case map*/ "\u0467", /*0466; 0467; Case map*/ "\u0469", /*0468; 0469; Case map*/ "\u046B", /*046A; 046B; Case map*/ "\u046D", /*046C; 046D; Case map*/ "\u046F", /*046E; 046F; Case map*/ "\u0471", /*0470; 0471; Case map*/ "\u0473", /*0472; 0473; Case map*/ "\u0475", /*0474; 0475; Case map*/ "\u0477", /*0476; 0477; Case map*/ "\u0479", /*0478; 0479; Case map*/ "\u047B", /*047A; 047B; Case map*/ "\u047D", /*047C; 047D; Case map*/ "\u047F", /*047E; 047F; Case map*/ "\u0481", /*0480; 0481; Case map*/ "\u048B", /*048A; 048B; Case map*/ "\u048D", /*048C; 048D; Case map*/ "\u048F", /*048E; 048F; Case map*/ "\u0491", /*0490; 0491; Case map*/ "\u0493", /*0492; 0493; Case map*/ "\u0495", /*0494; 0495; Case map*/ "\u0497", /*0496; 0497; Case map*/ "\u0499", /*0498; 0499; Case map*/ "\u049B", /*049A; 049B; Case map*/ "\u049D", /*049C; 049D; Case map*/ "\u049F", /*049E; 049F; Case map*/ "\u04A1", /*04A0; 04A1; Case map*/ "\u04A3", /*04A2; 04A3; Case map*/ "\u04A5", /*04A4; 04A5; Case map*/ "\u04A7", /*04A6; 04A7; Case map*/ "\u04A9", /*04A8; 04A9; Case map*/ "\u04AB", /*04AA; 04AB; Case map*/ "\u04AD", /*04AC; 04AD; Case map*/ "\u04AF", /*04AE; 04AF; Case map*/ "\u04B1", /*04B0; 04B1; Case map*/ "\u04B3", /*04B2; 04B3; Case map*/ "\u04B5", /*04B4; 04B5; Case map*/ "\u04B7", /*04B6; 04B7; Case map*/ "\u04B9", /*04B8; 04B9; Case map*/ "\u04BB", /*04BA; 04BB; Case map*/ "\u04BD", /*04BC; 04BD; Case map*/ "\u04BF", /*04BE; 04BF; Case map*/ "\u04C2", /*04C1; 04C2; Case map*/ "\u04C4", /*04C3; 04C4; Case map*/ "\u04C6", /*04C5; 04C6; Case map*/ "\u04C8", /*04C7; 04C8; Case map*/ "\u04CA", /*04C9; 04CA; Case map*/ "\u04CC", /*04CB; 04CC; Case map*/ "\u04CE", /*04CD; 04CE; Case map*/ "\u04D1", /*04D0; 04D1; Case map*/ "\u04D3", /*04D2; 04D3; Case map*/ "\u04D5", /*04D4; 04D5; Case map*/ "\u04D7", /*04D6; 04D7; Case map*/ "\u04D9", /*04D8; 04D9; Case map*/ "\u04DB", /*04DA; 04DB; Case map*/ "\u04DD", /*04DC; 04DD; Case map*/ "\u04DF", /*04DE; 04DF; Case map*/ "\u04E1", /*04E0; 04E1; Case map*/ "\u04E3", /*04E2; 04E3; Case map*/ "\u04E5", /*04E4; 04E5; Case map*/ "\u04E7", /*04E6; 04E7; Case map*/ "\u04E9", /*04E8; 04E9; Case map*/ "\u04EB", /*04EA; 04EB; Case map*/ "\u04ED", /*04EC; 04ED; Case map*/ "\u04EF", /*04EE; 04EF; Case map*/ "\u04F1", /*04F0; 04F1; Case map*/ "\u04F3", /*04F2; 04F3; Case map*/ "\u04F5", /*04F4; 04F5; Case map*/ "\u04F9", /*04F8; 04F9; Case map*/ "\u0501", /*0500; 0501; Case map*/ "\u0503", /*0502; 0503; Case map*/ "\u0505", /*0504; 0505; Case map*/ "\u0507", /*0506; 0507; Case map*/ "\u0509", /*0508; 0509; Case map*/ "\u050B", /*050A; 050B; Case map*/ "\u050D", /*050C; 050D; Case map*/ "\u050F", /*050E; 050F; Case map*/ "\u0561", /*0531; 0561; Case map*/ "\u0562", /*0532; 0562; Case map*/ "\u0563", /*0533; 0563; Case map*/ "\u0564", /*0534; 0564; Case map*/ "\u0565", /*0535; 0565; Case map*/ "\u0566", /*0536; 0566; Case map*/ "\u0567", /*0537; 0567; Case map*/ "\u0568", /*0538; 0568; Case map*/ "\u0569", /*0539; 0569; Case map*/ "\u056A", /*053A; 056A; Case map*/ "\u056B", /*053B; 056B; Case map*/ "\u056C", /*053C; 056C; Case map*/ "\u056D", /*053D; 056D; Case map*/ "\u056E", /*053E; 056E; Case map*/ "\u056F", /*053F; 056F; Case map*/ "\u0570", /*0540; 0570; Case map*/ "\u0571", /*0541; 0571; Case map*/ "\u0572", /*0542; 0572; Case map*/ "\u0573", /*0543; 0573; Case map*/ "\u0574", /*0544; 0574; Case map*/ "\u0575", /*0545; 0575; Case map*/ "\u0576", /*0546; 0576; Case map*/ "\u0577", /*0547; 0577; Case map*/ "\u0578", /*0548; 0578; Case map*/ "\u0579", /*0549; 0579; Case map*/ "\u057A", /*054A; 057A; Case map*/ "\u057B", /*054B; 057B; Case map*/ "\u057C", /*054C; 057C; Case map*/ "\u057D", /*054D; 057D; Case map*/ "\u057E", /*054E; 057E; Case map*/ "\u057F", /*054F; 057F; Case map*/ "\u0580", /*0550; 0580; Case map*/ "\u0581", /*0551; 0581; Case map*/ "\u0582", /*0552; 0582; Case map*/ "\u0583", /*0553; 0583; Case map*/ "\u0584", /*0554; 0584; Case map*/ "\u0585", /*0555; 0585; Case map*/ "\u0586", /*0556; 0586; Case map*/ "\u0565\u0582", /*0587; 0565 0582; Case map*/ "\u1E01", /*1E00; 1E01; Case map*/ "\u1E03", /*1E02; 1E03; Case map*/ "\u1E05", /*1E04; 1E05; Case map*/ "\u1E07", /*1E06; 1E07; Case map*/ "\u1E09", /*1E08; 1E09; Case map*/ "\u1E0B", /*1E0A; 1E0B; Case map*/ "\u1E0D", /*1E0C; 1E0D; Case map*/ "\u1E0F", /*1E0E; 1E0F; Case map*/ "\u1E11", /*1E10; 1E11; Case map*/ "\u1E13", /*1E12; 1E13; Case map*/ "\u1E15", /*1E14; 1E15; Case map*/ "\u1E17", /*1E16; 1E17; Case map*/ "\u1E19", /*1E18; 1E19; Case map*/ "\u1E1B", /*1E1A; 1E1B; Case map*/ "\u1E1D", /*1E1C; 1E1D; Case map*/ "\u1E1F", /*1E1E; 1E1F; Case map*/ "\u1E21", /*1E20; 1E21; Case map*/ "\u1E23", /*1E22; 1E23; Case map*/ "\u1E25", /*1E24; 1E25; Case map*/ "\u1E27", /*1E26; 1E27; Case map*/ "\u1E29", /*1E28; 1E29; Case map*/ "\u1E2B", /*1E2A; 1E2B; Case map*/ "\u1E2D", /*1E2C; 1E2D; Case map*/ "\u1E2F", /*1E2E; 1E2F; Case map*/ "\u1E31", /*1E30; 1E31; Case map*/ "\u1E33", /*1E32; 1E33; Case map*/ "\u1E35", /*1E34; 1E35; Case map*/ "\u1E37", /*1E36; 1E37; Case map*/ "\u1E39", /*1E38; 1E39; Case map*/ "\u1E3B", /*1E3A; 1E3B; Case map*/ "\u1E3D", /*1E3C; 1E3D; Case map*/ "\u1E3F", /*1E3E; 1E3F; Case map*/ "\u1E41", /*1E40; 1E41; Case map*/ "\u1E43", /*1E42; 1E43; Case map*/ "\u1E45", /*1E44; 1E45; Case map*/ "\u1E47", /*1E46; 1E47; Case map*/ "\u1E49", /*1E48; 1E49; Case map*/ "\u1E4B", /*1E4A; 1E4B; Case map*/ "\u1E4D", /*1E4C; 1E4D; Case map*/ "\u1E4F", /*1E4E; 1E4F; Case map*/ "\u1E51", /*1E50; 1E51; Case map*/ "\u1E53", /*1E52; 1E53; Case map*/ "\u1E55", /*1E54; 1E55; Case map*/ "\u1E57", /*1E56; 1E57; Case map*/ "\u1E59", /*1E58; 1E59; Case map*/ "\u1E5B", /*1E5A; 1E5B; Case map*/ "\u1E5D", /*1E5C; 1E5D; Case map*/ "\u1E5F", /*1E5E; 1E5F; Case map*/ "\u1E61", /*1E60; 1E61; Case map*/ "\u1E63", /*1E62; 1E63; Case map*/ "\u1E65", /*1E64; 1E65; Case map*/ "\u1E67", /*1E66; 1E67; Case map*/ "\u1E69", /*1E68; 1E69; Case map*/ "\u1E6B", /*1E6A; 1E6B; Case map*/ "\u1E6D", /*1E6C; 1E6D; Case map*/ "\u1E6F", /*1E6E; 1E6F; Case map*/ "\u1E71", /*1E70; 1E71; Case map*/ "\u1E73", /*1E72; 1E73; Case map*/ "\u1E75", /*1E74; 1E75; Case map*/ "\u1E77", /*1E76; 1E77; Case map*/ "\u1E79", /*1E78; 1E79; Case map*/ "\u1E7B", /*1E7A; 1E7B; Case map*/ "\u1E7D", /*1E7C; 1E7D; Case map*/ "\u1E7F", /*1E7E; 1E7F; Case map*/ "\u1E81", /*1E80; 1E81; Case map*/ "\u1E83", /*1E82; 1E83; Case map*/ "\u1E85", /*1E84; 1E85; Case map*/ "\u1E87", /*1E86; 1E87; Case map*/ "\u1E89", /*1E88; 1E89; Case map*/ "\u1E8B", /*1E8A; 1E8B; Case map*/ "\u1E8D", /*1E8C; 1E8D; Case map*/ "\u1E8F", /*1E8E; 1E8F; Case map*/ "\u1E91", /*1E90; 1E91; Case map*/ "\u1E93", /*1E92; 1E93; Case map*/ "\u1E95", /*1E94; 1E95; Case map*/ "\u0068\u0331", /*1E96; 0068 0331; Case map*/ "\u0074\u0308", /*1E97; 0074 0308; Case map*/ "\u0077\u030A", /*1E98; 0077 030A; Case map*/ "\u0079\u030A", /*1E99; 0079 030A; Case map*/ "\u0061\u02BE", /*1E9A; 0061 02BE; Case map*/ "\u1E61", /*1E9B; 1E61; Case map*/ "\u1EA1", /*1EA0; 1EA1; Case map*/ "\u1EA3", /*1EA2; 1EA3; Case map*/ "\u1EA5", /*1EA4; 1EA5; Case map*/ "\u1EA7", /*1EA6; 1EA7; Case map*/ "\u1EA9", /*1EA8; 1EA9; Case map*/ "\u1EAB", /*1EAA; 1EAB; Case map*/ "\u1EAD", /*1EAC; 1EAD; Case map*/ "\u1EAF", /*1EAE; 1EAF; Case map*/ "\u1EB1", /*1EB0; 1EB1; Case map*/ "\u1EB3", /*1EB2; 1EB3; Case map*/ "\u1EB5", /*1EB4; 1EB5; Case map*/ "\u1EB7", /*1EB6; 1EB7; Case map*/ "\u1EB9", /*1EB8; 1EB9; Case map*/ "\u1EBB", /*1EBA; 1EBB; Case map*/ "\u1EBD", /*1EBC; 1EBD; Case map*/ "\u1EBF", /*1EBE; 1EBF; Case map*/ "\u1EC1", /*1EC0; 1EC1; Case map*/ "\u1EC3", /*1EC2; 1EC3; Case map*/ "\u1EC5", /*1EC4; 1EC5; Case map*/ "\u1EC7", /*1EC6; 1EC7; Case map*/ "\u1EC9", /*1EC8; 1EC9; Case map*/ "\u1ECB", /*1ECA; 1ECB; Case map*/ "\u1ECD", /*1ECC; 1ECD; Case map*/ "\u1ECF", /*1ECE; 1ECF; Case map*/ "\u1ED1", /*1ED0; 1ED1; Case map*/ "\u1ED3", /*1ED2; 1ED3; Case map*/ "\u1ED5", /*1ED4; 1ED5; Case map*/ "\u1ED7", /*1ED6; 1ED7; Case map*/ "\u1ED9", /*1ED8; 1ED9; Case map*/ "\u1EDB", /*1EDA; 1EDB; Case map*/ "\u1EDD", /*1EDC; 1EDD; Case map*/ "\u1EDF", /*1EDE; 1EDF; Case map*/ "\u1EE1", /*1EE0; 1EE1; Case map*/ "\u1EE3", /*1EE2; 1EE3; Case map*/ "\u1EE5", /*1EE4; 1EE5; Case map*/ "\u1EE7", /*1EE6; 1EE7; Case map*/ "\u1EE9", /*1EE8; 1EE9; Case map*/ "\u1EEB", /*1EEA; 1EEB; Case map*/ "\u1EED", /*1EEC; 1EED; Case map*/ "\u1EEF", /*1EEE; 1EEF; Case map*/ "\u1EF1", /*1EF0; 1EF1; Case map*/ "\u1EF3", /*1EF2; 1EF3; Case map*/ "\u1EF5", /*1EF4; 1EF5; Case map*/ "\u1EF7", /*1EF6; 1EF7; Case map*/ "\u1EF9", /*1EF8; 1EF9; Case map*/ "\u1F00", /*1F08; 1F00; Case map*/ "\u1F01", /*1F09; 1F01; Case map*/ "\u1F02", /*1F0A; 1F02; Case map*/ "\u1F03", /*1F0B; 1F03; Case map*/ "\u1F04", /*1F0C; 1F04; Case map*/ "\u1F05", /*1F0D; 1F05; Case map*/ "\u1F06", /*1F0E; 1F06; Case map*/ "\u1F07", /*1F0F; 1F07; Case map*/ "\u1F10", /*1F18; 1F10; Case map*/ "\u1F11", /*1F19; 1F11; Case map*/ "\u1F12", /*1F1A; 1F12; Case map*/ "\u1F13", /*1F1B; 1F13; Case map*/ "\u1F14", /*1F1C; 1F14; Case map*/ "\u1F15", /*1F1D; 1F15; Case map*/ "\u1F20", /*1F28; 1F20; Case map*/ "\u1F21", /*1F29; 1F21; Case map*/ "\u1F22", /*1F2A; 1F22; Case map*/ "\u1F23", /*1F2B; 1F23; Case map*/ "\u1F24", /*1F2C; 1F24; Case map*/ "\u1F25", /*1F2D; 1F25; Case map*/ "\u1F26", /*1F2E; 1F26; Case map*/ "\u1F27", /*1F2F; 1F27; Case map*/ "\u1F30", /*1F38; 1F30; Case map*/ "\u1F31", /*1F39; 1F31; Case map*/ "\u1F32", /*1F3A; 1F32; Case map*/ "\u1F33", /*1F3B; 1F33; Case map*/ "\u1F34", /*1F3C; 1F34; Case map*/ "\u1F35", /*1F3D; 1F35; Case map*/ "\u1F36", /*1F3E; 1F36; Case map*/ "\u1F37", /*1F3F; 1F37; Case map*/ "\u1F40", /*1F48; 1F40; Case map*/ "\u1F41", /*1F49; 1F41; Case map*/ "\u1F42", /*1F4A; 1F42; Case map*/ "\u1F43", /*1F4B; 1F43; Case map*/ "\u1F44", /*1F4C; 1F44; Case map*/ "\u1F45", /*1F4D; 1F45; Case map*/ "\u03C5\u0313", /*1F50; 03C5 0313; Case map*/ "\u03C5\u0313\u0300", /*1F52; 03C5 0313 0300; Case map*/ "\u03C5\u0313\u0301", /*1F54; 03C5 0313 0301; Case map*/ "\u03C5\u0313\u0342", /*1F56; 03C5 0313 0342; Case map*/ "\u1F51", /*1F59; 1F51; Case map*/ "\u1F53", /*1F5B; 1F53; Case map*/ "\u1F55", /*1F5D; 1F55; Case map*/ "\u1F57", /*1F5F; 1F57; Case map*/ "\u1F60", /*1F68; 1F60; Case map*/ "\u1F61", /*1F69; 1F61; Case map*/ "\u1F62", /*1F6A; 1F62; Case map*/ "\u1F63", /*1F6B; 1F63; Case map*/ "\u1F64", /*1F6C; 1F64; Case map*/ "\u1F65", /*1F6D; 1F65; Case map*/ "\u1F66", /*1F6E; 1F66; Case map*/ "\u1F67", /*1F6F; 1F67; Case map*/ "\u1F00\u03B9", /*1F80; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F81; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F82; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F83; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F84; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F85; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F86; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F87; 1F07 03B9; Case map*/ "\u1F00\u03B9", /*1F88; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F89; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F8A; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F8B; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F8C; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F8D; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F8E; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F8F; 1F07 03B9; Case map*/ "\u1F20\u03B9", /*1F90; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F91; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F92; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F93; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F94; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F95; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F96; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F97; 1F27 03B9; Case map*/ "\u1F20\u03B9", /*1F98; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F99; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F9A; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F9B; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F9C; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F9D; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F9E; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F9F; 1F27 03B9; Case map*/ "\u1F60\u03B9", /*1FA0; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA1; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FA2; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FA3; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FA4; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FA5; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FA6; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FA7; 1F67 03B9; Case map*/ "\u1F60\u03B9", /*1FA8; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA9; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FAA; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FAB; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FAC; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FAD; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FAE; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FAF; 1F67 03B9; Case map*/ "\u1F70\u03B9", /*1FB2; 1F70 03B9; Case map*/ "\u03B1\u03B9", /*1FB3; 03B1 03B9; Case map*/ "\u03AC\u03B9", /*1FB4; 03AC 03B9; Case map*/ "\u03B1\u0342", /*1FB6; 03B1 0342; Case map*/ "\u03B1\u0342\u03B9", /*1FB7; 03B1 0342 03B9; Case map*/ "\u1FB0", /*1FB8; 1FB0; Case map*/ "\u1FB1", /*1FB9; 1FB1; Case map*/ "\u1F70", /*1FBA; 1F70; Case map*/ "\u1F71", /*1FBB; 1F71; Case map*/ "\u03B1\u03B9", /*1FBC; 03B1 03B9; Case map*/ "\u03B9", /*1FBE; 03B9; Case map*/ "\u1F74\u03B9", /*1FC2; 1F74 03B9; Case map*/ "\u03B7\u03B9", /*1FC3; 03B7 03B9; Case map*/ "\u03AE\u03B9", /*1FC4; 03AE 03B9; Case map*/ "\u03B7\u0342", /*1FC6; 03B7 0342; Case map*/ "\u03B7\u0342\u03B9", /*1FC7; 03B7 0342 03B9; Case map*/ "\u1F72", /*1FC8; 1F72; Case map*/ "\u1F73", /*1FC9; 1F73; Case map*/ "\u1F74", /*1FCA; 1F74; Case map*/ "\u1F75", /*1FCB; 1F75; Case map*/ "\u03B7\u03B9", /*1FCC; 03B7 03B9; Case map*/ "\u03B9\u0308\u0300", /*1FD2; 03B9 0308 0300; Case map*/ "\u03B9\u0308\u0301", /*1FD3; 03B9 0308 0301; Case map*/ "\u03B9\u0342", /*1FD6; 03B9 0342; Case map*/ "\u03B9\u0308\u0342", /*1FD7; 03B9 0308 0342; Case map*/ "\u1FD0", /*1FD8; 1FD0; Case map*/ "\u1FD1", /*1FD9; 1FD1; Case map*/ "\u1F76", /*1FDA; 1F76; Case map*/ "\u1F77", /*1FDB; 1F77; Case map*/ "\u03C5\u0308\u0300", /*1FE2; 03C5 0308 0300; Case map*/ "\u03C5\u0308\u0301", /*1FE3; 03C5 0308 0301; Case map*/ "\u03C1\u0313", /*1FE4; 03C1 0313; Case map*/ "\u03C5\u0342", /*1FE6; 03C5 0342; Case map*/ "\u03C5\u0308\u0342", /*1FE7; 03C5 0308 0342; Case map*/ "\u1FE0", /*1FE8; 1FE0; Case map*/ "\u1FE1", /*1FE9; 1FE1; Case map*/ "\u1F7A", /*1FEA; 1F7A; Case map*/ "\u1F7B", /*1FEB; 1F7B; Case map*/ "\u1FE5", /*1FEC; 1FE5; Case map*/ "\u1F7C\u03B9", /*1FF2; 1F7C 03B9; Case map*/ "\u03C9\u03B9", /*1FF3; 03C9 03B9; Case map*/ "\u03CE\u03B9", /*1FF4; 03CE 03B9; Case map*/ "\u03C9\u0342", /*1FF6; 03C9 0342; Case map*/ "\u03C9\u0342\u03B9", /*1FF7; 03C9 0342 03B9; Case map*/ "\u1F78", /*1FF8; 1F78; Case map*/ "\u1F79", /*1FF9; 1F79; Case map*/ "\u1F7C", /*1FFA; 1F7C; Case map*/ "\u1F7D", /*1FFB; 1F7D; Case map*/ "\u03C9\u03B9", /*1FFC; 03C9 03B9; Case map*/ "\u0072\u0073", /*20A8; 0072 0073; Additional folding*/ "\u0063", /*2102; 0063; Additional folding*/ "\u00B0\u0063", /*2103; 00B0 0063; Additional folding*/ "\u025B", /*2107; 025B; Additional folding*/ "\u00B0\u0066", /*2109; 00B0 0066; Additional folding*/ "\u0068", /*210B; 0068; Additional folding*/ "\u0068", /*210C; 0068; Additional folding*/ "\u0068", /*210D; 0068; Additional folding*/ "\u0069", /*2110; 0069; Additional folding*/ "\u0069", /*2111; 0069; Additional folding*/ "\u006C", /*2112; 006C; Additional folding*/ "\u006E", /*2115; 006E; Additional folding*/ "\u006E\u006F", /*2116; 006E 006F; Additional folding*/ "\u0070", /*2119; 0070; Additional folding*/ "\u0071", /*211A; 0071; Additional folding*/ "\u0072", /*211B; 0072; Additional folding*/ "\u0072", /*211C; 0072; Additional folding*/ "\u0072", /*211D; 0072; Additional folding*/ "\u0073\u006D", /*2120; 0073 006D; Additional folding*/ "\u0074\u0065\u006C", /*2121; 0074 0065 006C; Additional folding*/ "\u0074\u006D", /*2122; 0074 006D; Additional folding*/ "\u007A", /*2124; 007A; Additional folding*/ "\u03C9", /*2126; 03C9; Case map*/ "\u007A", /*2128; 007A; Additional folding*/ "\u006B", /*212A; 006B; Case map*/ "\u00E5", /*212B; 00E5; Case map*/ "\u0062", /*212C; 0062; Additional folding*/ "\u0063", /*212D; 0063; Additional folding*/ "\u0065", /*2130; 0065; Additional folding*/ "\u0066", /*2131; 0066; Additional folding*/ "\u006D", /*2133; 006D; Additional folding*/ "\u03B3", /*213E; 03B3; Additional folding*/ "\u03C0", /*213F; 03C0; Additional folding*/ "\u0064", /*2145; 0064; Additional folding*/ "\u2170", /*2160; 2170; Case map*/ "\u2171", /*2161; 2171; Case map*/ "\u2172", /*2162; 2172; Case map*/ "\u2173", /*2163; 2173; Case map*/ "\u2174", /*2164; 2174; Case map*/ "\u2175", /*2165; 2175; Case map*/ "\u2176", /*2166; 2176; Case map*/ "\u2177", /*2167; 2177; Case map*/ "\u2178", /*2168; 2178; Case map*/ "\u2179", /*2169; 2179; Case map*/ "\u217A", /*216A; 217A; Case map*/ "\u217B", /*216B; 217B; Case map*/ "\u217C", /*216C; 217C; Case map*/ "\u217D", /*216D; 217D; Case map*/ "\u217E", /*216E; 217E; Case map*/ "\u217F", /*216F; 217F; Case map*/ "\u24D0", /*24B6; 24D0; Case map*/ "\u24D1", /*24B7; 24D1; Case map*/ "\u24D2", /*24B8; 24D2; Case map*/ "\u24D3", /*24B9; 24D3; Case map*/ "\u24D4", /*24BA; 24D4; Case map*/ "\u24D5", /*24BB; 24D5; Case map*/ "\u24D6", /*24BC; 24D6; Case map*/ "\u24D7", /*24BD; 24D7; Case map*/ "\u24D8", /*24BE; 24D8; Case map*/ "\u24D9", /*24BF; 24D9; Case map*/ "\u24DA", /*24C0; 24DA; Case map*/ "\u24DB", /*24C1; 24DB; Case map*/ "\u24DC", /*24C2; 24DC; Case map*/ "\u24DD", /*24C3; 24DD; Case map*/ "\u24DE", /*24C4; 24DE; Case map*/ "\u24DF", /*24C5; 24DF; Case map*/ "\u24E0", /*24C6; 24E0; Case map*/ "\u24E1", /*24C7; 24E1; Case map*/ "\u24E2", /*24C8; 24E2; Case map*/ "\u24E3", /*24C9; 24E3; Case map*/ "\u24E4", /*24CA; 24E4; Case map*/ "\u24E5", /*24CB; 24E5; Case map*/ "\u24E6", /*24CC; 24E6; Case map*/ "\u24E7", /*24CD; 24E7; Case map*/ "\u24E8", /*24CE; 24E8; Case map*/ "\u24E9", /*24CF; 24E9; Case map*/ "\u0068\u0070\u0061", /*3371; 0068 0070 0061; Additional folding*/ "\u0061\u0075", /*3373; 0061 0075; Additional folding*/ "\u006F\u0076", /*3375; 006F 0076; Additional folding*/ "\u0070\u0061", /*3380; 0070 0061; Additional folding*/ "\u006E\u0061", /*3381; 006E 0061; Additional folding*/ "\u03BC\u0061", /*3382; 03BC 0061; Additional folding*/ "\u006D\u0061", /*3383; 006D 0061; Additional folding*/ "\u006B\u0061", /*3384; 006B 0061; Additional folding*/ "\u006B\u0062", /*3385; 006B 0062; Additional folding*/ "\u006D\u0062", /*3386; 006D 0062; Additional folding*/ "\u0067\u0062", /*3387; 0067 0062; Additional folding*/ "\u0070\u0066", /*338A; 0070 0066; Additional folding*/ "\u006E\u0066", /*338B; 006E 0066; Additional folding*/ "\u03BC\u0066", /*338C; 03BC 0066; Additional folding*/ "\u0068\u007A", /*3390; 0068 007A; Additional folding*/ "\u006B\u0068\u007A", /*3391; 006B 0068 007A; Additional folding*/ "\u006D\u0068\u007A", /*3392; 006D 0068 007A; Additional folding*/ "\u0067\u0068\u007A", /*3393; 0067 0068 007A; Additional folding*/ "\u0074\u0068\u007A", /*3394; 0074 0068 007A; Additional folding*/ "\u0070\u0061", /*33A9; 0070 0061; Additional folding*/ "\u006B\u0070\u0061", /*33AA; 006B 0070 0061; Additional folding*/ "\u006D\u0070\u0061", /*33AB; 006D 0070 0061; Additional folding*/ "\u0067\u0070\u0061", /*33AC; 0067 0070 0061; Additional folding*/ "\u0070\u0076", /*33B4; 0070 0076; Additional folding*/ "\u006E\u0076", /*33B5; 006E 0076; Additional folding*/ "\u03BC\u0076", /*33B6; 03BC 0076; Additional folding*/ "\u006D\u0076", /*33B7; 006D 0076; Additional folding*/ "\u006B\u0076", /*33B8; 006B 0076; Additional folding*/ "\u006D\u0076", /*33B9; 006D 0076; Additional folding*/ "\u0070\u0077", /*33BA; 0070 0077; Additional folding*/ "\u006E\u0077", /*33BB; 006E 0077; Additional folding*/ "\u03BC\u0077", /*33BC; 03BC 0077; Additional folding*/ "\u006D\u0077", /*33BD; 006D 0077; Additional folding*/ "\u006B\u0077", /*33BE; 006B 0077; Additional folding*/ "\u006D\u0077", /*33BF; 006D 0077; Additional folding*/ "\u006B\u03C9", /*33C0; 006B 03C9; Additional folding*/ "\u006D\u03C9", /*33C1; 006D 03C9; Additional folding*/ "\u0062\u0071", /*33C3; 0062 0071; Additional folding*/ "\u0063\u2215\u006B\u0067", /*33C6; 0063 2215 006B 0067; Additional folding*/ "\u0063\u006F\u002E", /*33C7; 0063 006F 002E; Additional folding*/ "\u0064\u0062", /*33C8; 0064 0062; Additional folding*/ "\u0067\u0079", /*33C9; 0067 0079; Additional folding*/ "\u0068\u0070", /*33CB; 0068 0070; Additional folding*/ "\u006B\u006B", /*33CD; 006B 006B; Additional folding*/ "\u006B\u006D", /*33CE; 006B 006D; Additional folding*/ "\u0070\u0068", /*33D7; 0070 0068; Additional folding*/ "\u0070\u0070\u006D", /*33D9; 0070 0070 006D; Additional folding*/ "\u0070\u0072", /*33DA; 0070 0072; Additional folding*/ "\u0073\u0076", /*33DC; 0073 0076; Additional folding*/ "\u0077\u0062", /*33DD; 0077 0062; Additional folding*/ "\u0066\u0066", /*FB00; 0066 0066; Case map*/ "\u0066\u0069", /*FB01; 0066 0069; Case map*/ "\u0066\u006C", /*FB02; 0066 006C; Case map*/ "\u0066\u0066\u0069", /*FB03; 0066 0066 0069; Case map*/ "\u0066\u0066\u006C", /*FB04; 0066 0066 006C; Case map*/ "\u0073\u0074", /*FB05; 0073 0074; Case map*/ "\u0073\u0074", /*FB06; 0073 0074; Case map*/ "\u0574\u0576", /*FB13; 0574 0576; Case map*/ "\u0574\u0565", /*FB14; 0574 0565; Case map*/ "\u0574\u056B", /*FB15; 0574 056B; Case map*/ "\u057E\u0576", /*FB16; 057E 0576; Case map*/ "\u0574\u056D", /*FB17; 0574 056D; Case map*/ "\uFF41", /*FF21; FF41; Case map*/ "\uFF42", /*FF22; FF42; Case map*/ "\uFF43", /*FF23; FF43; Case map*/ "\uFF44", /*FF24; FF44; Case map*/ "\uFF45", /*FF25; FF45; Case map*/ "\uFF46", /*FF26; FF46; Case map*/ "\uFF47", /*FF27; FF47; Case map*/ "\uFF48", /*FF28; FF48; Case map*/ "\uFF49", /*FF29; FF49; Case map*/ "\uFF4A", /*FF2A; FF4A; Case map*/ "\uFF4B", /*FF2B; FF4B; Case map*/ "\uFF4C", /*FF2C; FF4C; Case map*/ "\uFF4D", /*FF2D; FF4D; Case map*/ "\uFF4E", /*FF2E; FF4E; Case map*/ "\uFF4F", /*FF2F; FF4F; Case map*/ "\uFF50", /*FF30; FF50; Case map*/ "\uFF51", /*FF31; FF51; Case map*/ "\uFF52", /*FF32; FF52; Case map*/ "\uFF53", /*FF33; FF53; Case map*/ "\uFF54", /*FF34; FF54; Case map*/ "\uFF55", /*FF35; FF55; Case map*/ "\uFF56", /*FF36; FF56; Case map*/ "\uFF57", /*FF37; FF57; Case map*/ "\uFF58", /*FF38; FF58; Case map*/ "\uFF59", /*FF39; FF59; Case map*/ "\uFF5A", /*FF3A; FF5A; Case map*/ }; public static char[] B3search = new char[] { '\u0041', /*0041; 0061; Case map*/ '\u0042', /*0042; 0062; Case map*/ '\u0043', /*0043; 0063; Case map*/ '\u0044', /*0044; 0064; Case map*/ '\u0045', /*0045; 0065; Case map*/ '\u0046', /*0046; 0066; Case map*/ '\u0047', /*0047; 0067; Case map*/ '\u0048', /*0048; 0068; Case map*/ '\u0049', /*0049; 0069; Case map*/ '\u004A', /*004A; 006A; Case map*/ '\u004B', /*004B; 006B; Case map*/ '\u004C', /*004C; 006C; Case map*/ '\u004D', /*004D; 006D; Case map*/ '\u004E', /*004E; 006E; Case map*/ '\u004F', /*004F; 006F; Case map*/ '\u0050', /*0050; 0070; Case map*/ '\u0051', /*0051; 0071; Case map*/ '\u0052', /*0052; 0072; Case map*/ '\u0053', /*0053; 0073; Case map*/ '\u0054', /*0054; 0074; Case map*/ '\u0055', /*0055; 0075; Case map*/ '\u0056', /*0056; 0076; Case map*/ '\u0057', /*0057; 0077; Case map*/ '\u0058', /*0058; 0078; Case map*/ '\u0059', /*0059; 0079; Case map*/ '\u005A', /*005A; 007A; Case map*/ '\u00B5', /*00B5; 03BC; Case map*/ '\u00C0', /*00C0; 00E0; Case map*/ '\u00C1', /*00C1; 00E1; Case map*/ '\u00C2', /*00C2; 00E2; Case map*/ '\u00C3', /*00C3; 00E3; Case map*/ '\u00C4', /*00C4; 00E4; Case map*/ '\u00C5', /*00C5; 00E5; Case map*/ '\u00C6', /*00C6; 00E6; Case map*/ '\u00C7', /*00C7; 00E7; Case map*/ '\u00C8', /*00C8; 00E8; Case map*/ '\u00C9', /*00C9; 00E9; Case map*/ '\u00CA', /*00CA; 00EA; Case map*/ '\u00CB', /*00CB; 00EB; Case map*/ '\u00CC', /*00CC; 00EC; Case map*/ '\u00CD', /*00CD; 00ED; Case map*/ '\u00CE', /*00CE; 00EE; Case map*/ '\u00CF', /*00CF; 00EF; Case map*/ '\u00D0', /*00D0; 00F0; Case map*/ '\u00D1', /*00D1; 00F1; Case map*/ '\u00D2', /*00D2; 00F2; Case map*/ '\u00D3', /*00D3; 00F3; Case map*/ '\u00D4', /*00D4; 00F4; Case map*/ '\u00D5', /*00D5; 00F5; Case map*/ '\u00D6', /*00D6; 00F6; Case map*/ '\u00D8', /*00D8; 00F8; Case map*/ '\u00D9', /*00D9; 00F9; Case map*/ '\u00DA', /*00DA; 00FA; Case map*/ '\u00DB', /*00DB; 00FB; Case map*/ '\u00DC', /*00DC; 00FC; Case map*/ '\u00DD', /*00DD; 00FD; Case map*/ '\u00DE', /*00DE; 00FE; Case map*/ '\u00DF', /*00DF; 0073 0073; Case map*/ '\u0100', /*0100; 0101; Case map*/ '\u0102', /*0102; 0103; Case map*/ '\u0104', /*0104; 0105; Case map*/ '\u0106', /*0106; 0107; Case map*/ '\u0108', /*0108; 0109; Case map*/ '\u010A', /*010A; 010B; Case map*/ '\u010C', /*010C; 010D; Case map*/ '\u010E', /*010E; 010F; Case map*/ '\u0110', /*0110; 0111; Case map*/ '\u0112', /*0112; 0113; Case map*/ '\u0114', /*0114; 0115; Case map*/ '\u0116', /*0116; 0117; Case map*/ '\u0118', /*0118; 0119; Case map*/ '\u011A', /*011A; 011B; Case map*/ '\u011C', /*011C; 011D; Case map*/ '\u011E', /*011E; 011F; Case map*/ '\u0120', /*0120; 0121; Case map*/ '\u0122', /*0122; 0123; Case map*/ '\u0124', /*0124; 0125; Case map*/ '\u0126', /*0126; 0127; Case map*/ '\u0128', /*0128; 0129; Case map*/ '\u012A', /*012A; 012B; Case map*/ '\u012C', /*012C; 012D; Case map*/ '\u012E', /*012E; 012F; Case map*/ '\u0130', /*0130; 0069 0307; Case map*/ '\u0132', /*0132; 0133; Case map*/ '\u0134', /*0134; 0135; Case map*/ '\u0136', /*0136; 0137; Case map*/ '\u0139', /*0139; 013A; Case map*/ '\u013B', /*013B; 013C; Case map*/ '\u013D', /*013D; 013E; Case map*/ '\u013F', /*013F; 0140; Case map*/ '\u0141', /*0141; 0142; Case map*/ '\u0143', /*0143; 0144; Case map*/ '\u0145', /*0145; 0146; Case map*/ '\u0147', /*0147; 0148; Case map*/ '\u0149', /*0149; 02BC 006E; Case map*/ '\u014A', /*014A; 014B; Case map*/ '\u014C', /*014C; 014D; Case map*/ '\u014E', /*014E; 014F; Case map*/ '\u0150', /*0150; 0151; Case map*/ '\u0152', /*0152; 0153; Case map*/ '\u0154', /*0154; 0155; Case map*/ '\u0156', /*0156; 0157; Case map*/ '\u0158', /*0158; 0159; Case map*/ '\u015A', /*015A; 015B; Case map*/ '\u015C', /*015C; 015D; Case map*/ '\u015E', /*015E; 015F; Case map*/ '\u0160', /*0160; 0161; Case map*/ '\u0162', /*0162; 0163; Case map*/ '\u0164', /*0164; 0165; Case map*/ '\u0166', /*0166; 0167; Case map*/ '\u0168', /*0168; 0169; Case map*/ '\u016A', /*016A; 016B; Case map*/ '\u016C', /*016C; 016D; Case map*/ '\u016E', /*016E; 016F; Case map*/ '\u0170', /*0170; 0171; Case map*/ '\u0172', /*0172; 0173; Case map*/ '\u0174', /*0174; 0175; Case map*/ '\u0176', /*0176; 0177; Case map*/ '\u0178', /*0178; 00FF; Case map*/ '\u0179', /*0179; 017A; Case map*/ '\u017B', /*017B; 017C; Case map*/ '\u017D', /*017D; 017E; Case map*/ '\u017F', /*017F; 0073; Case map*/ '\u0181', /*0181; 0253; Case map*/ '\u0182', /*0182; 0183; Case map*/ '\u0184', /*0184; 0185; Case map*/ '\u0186', /*0186; 0254; Case map*/ '\u0187', /*0187; 0188; Case map*/ '\u0189', /*0189; 0256; Case map*/ '\u018A', /*018A; 0257; Case map*/ '\u018B', /*018B; 018C; Case map*/ '\u018E', /*018E; 01DD; Case map*/ '\u018F', /*018F; 0259; Case map*/ '\u0190', /*0190; 025B; Case map*/ '\u0191', /*0191; 0192; Case map*/ '\u0193', /*0193; 0260; Case map*/ '\u0194', /*0194; 0263; Case map*/ '\u0196', /*0196; 0269; Case map*/ '\u0197', /*0197; 0268; Case map*/ '\u0198', /*0198; 0199; Case map*/ '\u019C', /*019C; 026F; Case map*/ '\u019D', /*019D; 0272; Case map*/ '\u019F', /*019F; 0275; Case map*/ '\u01A0', /*01A0; 01A1; Case map*/ '\u01A2', /*01A2; 01A3; Case map*/ '\u01A4', /*01A4; 01A5; Case map*/ '\u01A6', /*01A6; 0280; Case map*/ '\u01A7', /*01A7; 01A8; Case map*/ '\u01A9', /*01A9; 0283; Case map*/ '\u01AC', /*01AC; 01AD; Case map*/ '\u01AE', /*01AE; 0288; Case map*/ '\u01AF', /*01AF; 01B0; Case map*/ '\u01B1', /*01B1; 028A; Case map*/ '\u01B2', /*01B2; 028B; Case map*/ '\u01B3', /*01B3; 01B4; Case map*/ '\u01B5', /*01B5; 01B6; Case map*/ '\u01B7', /*01B7; 0292; Case map*/ '\u01B8', /*01B8; 01B9; Case map*/ '\u01BC', /*01BC; 01BD; Case map*/ '\u01C4', /*01C4; 01C6; Case map*/ '\u01C5', /*01C5; 01C6; Case map*/ '\u01C7', /*01C7; 01C9; Case map*/ '\u01C8', /*01C8; 01C9; Case map*/ '\u01CA', /*01CA; 01CC; Case map*/ '\u01CB', /*01CB; 01CC; Case map*/ '\u01CD', /*01CD; 01CE; Case map*/ '\u01CF', /*01CF; 01D0; Case map*/ '\u01D1', /*01D1; 01D2; Case map*/ '\u01D3', /*01D3; 01D4; Case map*/ '\u01D5', /*01D5; 01D6; Case map*/ '\u01D7', /*01D7; 01D8; Case map*/ '\u01D9', /*01D9; 01DA; Case map*/ '\u01DB', /*01DB; 01DC; Case map*/ '\u01DE', /*01DE; 01DF; Case map*/ '\u01E0', /*01E0; 01E1; Case map*/ '\u01E2', /*01E2; 01E3; Case map*/ '\u01E4', /*01E4; 01E5; Case map*/ '\u01E6', /*01E6; 01E7; Case map*/ '\u01E8', /*01E8; 01E9; Case map*/ '\u01EA', /*01EA; 01EB; Case map*/ '\u01EC', /*01EC; 01ED; Case map*/ '\u01EE', /*01EE; 01EF; Case map*/ '\u01F0', /*01F0; 006A 030C; Case map*/ '\u01F1', /*01F1; 01F3; Case map*/ '\u01F2', /*01F2; 01F3; Case map*/ '\u01F4', /*01F4; 01F5; Case map*/ '\u01F6', /*01F6; 0195; Case map*/ '\u01F7', /*01F7; 01BF; Case map*/ '\u01F8', /*01F8; 01F9; Case map*/ '\u01FA', /*01FA; 01FB; Case map*/ '\u01FC', /*01FC; 01FD; Case map*/ '\u01FE', /*01FE; 01FF; Case map*/ '\u0200', /*0200; 0201; Case map*/ '\u0202', /*0202; 0203; Case map*/ '\u0204', /*0204; 0205; Case map*/ '\u0206', /*0206; 0207; Case map*/ '\u0208', /*0208; 0209; Case map*/ '\u020A', /*020A; 020B; Case map*/ '\u020C', /*020C; 020D; Case map*/ '\u020E', /*020E; 020F; Case map*/ '\u0210', /*0210; 0211; Case map*/ '\u0212', /*0212; 0213; Case map*/ '\u0214', /*0214; 0215; Case map*/ '\u0216', /*0216; 0217; Case map*/ '\u0218', /*0218; 0219; Case map*/ '\u021A', /*021A; 021B; Case map*/ '\u021C', /*021C; 021D; Case map*/ '\u021E', /*021E; 021F; Case map*/ '\u0220', /*0220; 019E; Case map*/ '\u0222', /*0222; 0223; Case map*/ '\u0224', /*0224; 0225; Case map*/ '\u0226', /*0226; 0227; Case map*/ '\u0228', /*0228; 0229; Case map*/ '\u022A', /*022A; 022B; Case map*/ '\u022C', /*022C; 022D; Case map*/ '\u022E', /*022E; 022F; Case map*/ '\u0230', /*0230; 0231; Case map*/ '\u0232', /*0232; 0233; Case map*/ '\u0345', /*0345; 03B9; Case map*/ '\u0386', /*0386; 03AC; Case map*/ '\u0388', /*0388; 03AD; Case map*/ '\u0389', /*0389; 03AE; Case map*/ '\u038A', /*038A; 03AF; Case map*/ '\u038C', /*038C; 03CC; Case map*/ '\u038E', /*038E; 03CD; Case map*/ '\u038F', /*038F; 03CE; Case map*/ '\u0390', /*0390; 03B9 0308 0301; Case map*/ '\u0391', /*0391; 03B1; Case map*/ '\u0392', /*0392; 03B2; Case map*/ '\u0393', /*0393; 03B3; Case map*/ '\u0394', /*0394; 03B4; Case map*/ '\u0395', /*0395; 03B5; Case map*/ '\u0396', /*0396; 03B6; Case map*/ '\u0397', /*0397; 03B7; Case map*/ '\u0398', /*0398; 03B8; Case map*/ '\u0399', /*0399; 03B9; Case map*/ '\u039A', /*039A; 03BA; Case map*/ '\u039B', /*039B; 03BB; Case map*/ '\u039C', /*039C; 03BC; Case map*/ '\u039D', /*039D; 03BD; Case map*/ '\u039E', /*039E; 03BE; Case map*/ '\u039F', /*039F; 03BF; Case map*/ '\u03A0', /*03A0; 03C0; Case map*/ '\u03A1', /*03A1; 03C1; Case map*/ '\u03A3', /*03A3; 03C3; Case map*/ '\u03A4', /*03A4; 03C4; Case map*/ '\u03A5', /*03A5; 03C5; Case map*/ '\u03A6', /*03A6; 03C6; Case map*/ '\u03A7', /*03A7; 03C7; Case map*/ '\u03A8', /*03A8; 03C8; Case map*/ '\u03A9', /*03A9; 03C9; Case map*/ '\u03AA', /*03AA; 03CA; Case map*/ '\u03AB', /*03AB; 03CB; Case map*/ '\u03B0', /*03B0; 03C5 0308 0301; Case map*/ '\u03C2', /*03C2; 03C3; Case map*/ '\u03D0', /*03D0; 03B2; Case map*/ '\u03D1', /*03D1; 03B8; Case map*/ '\u03D5', /*03D5; 03C6; Case map*/ '\u03D6', /*03D6; 03C0; Case map*/ '\u03D8', /*03D8; 03D9; Case map*/ '\u03DA', /*03DA; 03DB; Case map*/ '\u03DC', /*03DC; 03DD; Case map*/ '\u03DE', /*03DE; 03DF; Case map*/ '\u03E0', /*03E0; 03E1; Case map*/ '\u03E2', /*03E2; 03E3; Case map*/ '\u03E4', /*03E4; 03E5; Case map*/ '\u03E6', /*03E6; 03E7; Case map*/ '\u03E8', /*03E8; 03E9; Case map*/ '\u03EA', /*03EA; 03EB; Case map*/ '\u03EC', /*03EC; 03ED; Case map*/ '\u03EE', /*03EE; 03EF; Case map*/ '\u03F0', /*03F0; 03BA; Case map*/ '\u03F1', /*03F1; 03C1; Case map*/ '\u03F2', /*03F2; 03C3; Case map*/ '\u03F4', /*03F4; 03B8; Case map*/ '\u03F5', /*03F5; 03B5; Case map*/ '\u0400', /*0400; 0450; Case map*/ '\u0401', /*0401; 0451; Case map*/ '\u0402', /*0402; 0452; Case map*/ '\u0403', /*0403; 0453; Case map*/ '\u0404', /*0404; 0454; Case map*/ '\u0405', /*0405; 0455; Case map*/ '\u0406', /*0406; 0456; Case map*/ '\u0407', /*0407; 0457; Case map*/ '\u0408', /*0408; 0458; Case map*/ '\u0409', /*0409; 0459; Case map*/ '\u040A', /*040A; 045A; Case map*/ '\u040B', /*040B; 045B; Case map*/ '\u040C', /*040C; 045C; Case map*/ '\u040D', /*040D; 045D; Case map*/ '\u040E', /*040E; 045E; Case map*/ '\u040F', /*040F; 045F; Case map*/ '\u0410', /*0410; 0430; Case map*/ '\u0411', /*0411; 0431; Case map*/ '\u0412', /*0412; 0432; Case map*/ '\u0413', /*0413; 0433; Case map*/ '\u0414', /*0414; 0434; Case map*/ '\u0415', /*0415; 0435; Case map*/ '\u0416', /*0416; 0436; Case map*/ '\u0417', /*0417; 0437; Case map*/ '\u0418', /*0418; 0438; Case map*/ '\u0419', /*0419; 0439; Case map*/ '\u041A', /*041A; 043A; Case map*/ '\u041B', /*041B; 043B; Case map*/ '\u041C', /*041C; 043C; Case map*/ '\u041D', /*041D; 043D; Case map*/ '\u041E', /*041E; 043E; Case map*/ '\u041F', /*041F; 043F; Case map*/ '\u0420', /*0420; 0440; Case map*/ '\u0421', /*0421; 0441; Case map*/ '\u0422', /*0422; 0442; Case map*/ '\u0423', /*0423; 0443; Case map*/ '\u0424', /*0424; 0444; Case map*/ '\u0425', /*0425; 0445; Case map*/ '\u0426', /*0426; 0446; Case map*/ '\u0427', /*0427; 0447; Case map*/ '\u0428', /*0428; 0448; Case map*/ '\u0429', /*0429; 0449; Case map*/ '\u042A', /*042A; 044A; Case map*/ '\u042B', /*042B; 044B; Case map*/ '\u042C', /*042C; 044C; Case map*/ '\u042D', /*042D; 044D; Case map*/ '\u042E', /*042E; 044E; Case map*/ '\u042F', /*042F; 044F; Case map*/ '\u0460', /*0460; 0461; Case map*/ '\u0462', /*0462; 0463; Case map*/ '\u0464', /*0464; 0465; Case map*/ '\u0466', /*0466; 0467; Case map*/ '\u0468', /*0468; 0469; Case map*/ '\u046A', /*046A; 046B; Case map*/ '\u046C', /*046C; 046D; Case map*/ '\u046E', /*046E; 046F; Case map*/ '\u0470', /*0470; 0471; Case map*/ '\u0472', /*0472; 0473; Case map*/ '\u0474', /*0474; 0475; Case map*/ '\u0476', /*0476; 0477; Case map*/ '\u0478', /*0478; 0479; Case map*/ '\u047A', /*047A; 047B; Case map*/ '\u047C', /*047C; 047D; Case map*/ '\u047E', /*047E; 047F; Case map*/ '\u0480', /*0480; 0481; Case map*/ '\u048A', /*048A; 048B; Case map*/ '\u048C', /*048C; 048D; Case map*/ '\u048E', /*048E; 048F; Case map*/ '\u0490', /*0490; 0491; Case map*/ '\u0492', /*0492; 0493; Case map*/ '\u0494', /*0494; 0495; Case map*/ '\u0496', /*0496; 0497; Case map*/ '\u0498', /*0498; 0499; Case map*/ '\u049A', /*049A; 049B; Case map*/ '\u049C', /*049C; 049D; Case map*/ '\u049E', /*049E; 049F; Case map*/ '\u04A0', /*04A0; 04A1; Case map*/ '\u04A2', /*04A2; 04A3; Case map*/ '\u04A4', /*04A4; 04A5; Case map*/ '\u04A6', /*04A6; 04A7; Case map*/ '\u04A8', /*04A8; 04A9; Case map*/ '\u04AA', /*04AA; 04AB; Case map*/ '\u04AC', /*04AC; 04AD; Case map*/ '\u04AE', /*04AE; 04AF; Case map*/ '\u04B0', /*04B0; 04B1; Case map*/ '\u04B2', /*04B2; 04B3; Case map*/ '\u04B4', /*04B4; 04B5; Case map*/ '\u04B6', /*04B6; 04B7; Case map*/ '\u04B8', /*04B8; 04B9; Case map*/ '\u04BA', /*04BA; 04BB; Case map*/ '\u04BC', /*04BC; 04BD; Case map*/ '\u04BE', /*04BE; 04BF; Case map*/ '\u04C1', /*04C1; 04C2; Case map*/ '\u04C3', /*04C3; 04C4; Case map*/ '\u04C5', /*04C5; 04C6; Case map*/ '\u04C7', /*04C7; 04C8; Case map*/ '\u04C9', /*04C9; 04CA; Case map*/ '\u04CB', /*04CB; 04CC; Case map*/ '\u04CD', /*04CD; 04CE; Case map*/ '\u04D0', /*04D0; 04D1; Case map*/ '\u04D2', /*04D2; 04D3; Case map*/ '\u04D4', /*04D4; 04D5; Case map*/ '\u04D6', /*04D6; 04D7; Case map*/ '\u04D8', /*04D8; 04D9; Case map*/ '\u04DA', /*04DA; 04DB; Case map*/ '\u04DC', /*04DC; 04DD; Case map*/ '\u04DE', /*04DE; 04DF; Case map*/ '\u04E0', /*04E0; 04E1; Case map*/ '\u04E2', /*04E2; 04E3; Case map*/ '\u04E4', /*04E4; 04E5; Case map*/ '\u04E6', /*04E6; 04E7; Case map*/ '\u04E8', /*04E8; 04E9; Case map*/ '\u04EA', /*04EA; 04EB; Case map*/ '\u04EC', /*04EC; 04ED; Case map*/ '\u04EE', /*04EE; 04EF; Case map*/ '\u04F0', /*04F0; 04F1; Case map*/ '\u04F2', /*04F2; 04F3; Case map*/ '\u04F4', /*04F4; 04F5; Case map*/ '\u04F8', /*04F8; 04F9; Case map*/ '\u0500', /*0500; 0501; Case map*/ '\u0502', /*0502; 0503; Case map*/ '\u0504', /*0504; 0505; Case map*/ '\u0506', /*0506; 0507; Case map*/ '\u0508', /*0508; 0509; Case map*/ '\u050A', /*050A; 050B; Case map*/ '\u050C', /*050C; 050D; Case map*/ '\u050E', /*050E; 050F; Case map*/ '\u0531', /*0531; 0561; Case map*/ '\u0532', /*0532; 0562; Case map*/ '\u0533', /*0533; 0563; Case map*/ '\u0534', /*0534; 0564; Case map*/ '\u0535', /*0535; 0565; Case map*/ '\u0536', /*0536; 0566; Case map*/ '\u0537', /*0537; 0567; Case map*/ '\u0538', /*0538; 0568; Case map*/ '\u0539', /*0539; 0569; Case map*/ '\u053A', /*053A; 056A; Case map*/ '\u053B', /*053B; 056B; Case map*/ '\u053C', /*053C; 056C; Case map*/ '\u053D', /*053D; 056D; Case map*/ '\u053E', /*053E; 056E; Case map*/ '\u053F', /*053F; 056F; Case map*/ '\u0540', /*0540; 0570; Case map*/ '\u0541', /*0541; 0571; Case map*/ '\u0542', /*0542; 0572; Case map*/ '\u0543', /*0543; 0573; Case map*/ '\u0544', /*0544; 0574; Case map*/ '\u0545', /*0545; 0575; Case map*/ '\u0546', /*0546; 0576; Case map*/ '\u0547', /*0547; 0577; Case map*/ '\u0548', /*0548; 0578; Case map*/ '\u0549', /*0549; 0579; Case map*/ '\u054A', /*054A; 057A; Case map*/ '\u054B', /*054B; 057B; Case map*/ '\u054C', /*054C; 057C; Case map*/ '\u054D', /*054D; 057D; Case map*/ '\u054E', /*054E; 057E; Case map*/ '\u054F', /*054F; 057F; Case map*/ '\u0550', /*0550; 0580; Case map*/ '\u0551', /*0551; 0581; Case map*/ '\u0552', /*0552; 0582; Case map*/ '\u0553', /*0553; 0583; Case map*/ '\u0554', /*0554; 0584; Case map*/ '\u0555', /*0555; 0585; Case map*/ '\u0556', /*0556; 0586; Case map*/ '\u0587', /*0587; 0565 0582; Case map*/ '\u1E00', /*1E00; 1E01; Case map*/ '\u1E02', /*1E02; 1E03; Case map*/ '\u1E04', /*1E04; 1E05; Case map*/ '\u1E06', /*1E06; 1E07; Case map*/ '\u1E08', /*1E08; 1E09; Case map*/ '\u1E0A', /*1E0A; 1E0B; Case map*/ '\u1E0C', /*1E0C; 1E0D; Case map*/ '\u1E0E', /*1E0E; 1E0F; Case map*/ '\u1E10', /*1E10; 1E11; Case map*/ '\u1E12', /*1E12; 1E13; Case map*/ '\u1E14', /*1E14; 1E15; Case map*/ '\u1E16', /*1E16; 1E17; Case map*/ '\u1E18', /*1E18; 1E19; Case map*/ '\u1E1A', /*1E1A; 1E1B; Case map*/ '\u1E1C', /*1E1C; 1E1D; Case map*/ '\u1E1E', /*1E1E; 1E1F; Case map*/ '\u1E20', /*1E20; 1E21; Case map*/ '\u1E22', /*1E22; 1E23; Case map*/ '\u1E24', /*1E24; 1E25; Case map*/ '\u1E26', /*1E26; 1E27; Case map*/ '\u1E28', /*1E28; 1E29; Case map*/ '\u1E2A', /*1E2A; 1E2B; Case map*/ '\u1E2C', /*1E2C; 1E2D; Case map*/ '\u1E2E', /*1E2E; 1E2F; Case map*/ '\u1E30', /*1E30; 1E31; Case map*/ '\u1E32', /*1E32; 1E33; Case map*/ '\u1E34', /*1E34; 1E35; Case map*/ '\u1E36', /*1E36; 1E37; Case map*/ '\u1E38', /*1E38; 1E39; Case map*/ '\u1E3A', /*1E3A; 1E3B; Case map*/ '\u1E3C', /*1E3C; 1E3D; Case map*/ '\u1E3E', /*1E3E; 1E3F; Case map*/ '\u1E40', /*1E40; 1E41; Case map*/ '\u1E42', /*1E42; 1E43; Case map*/ '\u1E44', /*1E44; 1E45; Case map*/ '\u1E46', /*1E46; 1E47; Case map*/ '\u1E48', /*1E48; 1E49; Case map*/ '\u1E4A', /*1E4A; 1E4B; Case map*/ '\u1E4C', /*1E4C; 1E4D; Case map*/ '\u1E4E', /*1E4E; 1E4F; Case map*/ '\u1E50', /*1E50; 1E51; Case map*/ '\u1E52', /*1E52; 1E53; Case map*/ '\u1E54', /*1E54; 1E55; Case map*/ '\u1E56', /*1E56; 1E57; Case map*/ '\u1E58', /*1E58; 1E59; Case map*/ '\u1E5A', /*1E5A; 1E5B; Case map*/ '\u1E5C', /*1E5C; 1E5D; Case map*/ '\u1E5E', /*1E5E; 1E5F; Case map*/ '\u1E60', /*1E60; 1E61; Case map*/ '\u1E62', /*1E62; 1E63; Case map*/ '\u1E64', /*1E64; 1E65; Case map*/ '\u1E66', /*1E66; 1E67; Case map*/ '\u1E68', /*1E68; 1E69; Case map*/ '\u1E6A', /*1E6A; 1E6B; Case map*/ '\u1E6C', /*1E6C; 1E6D; Case map*/ '\u1E6E', /*1E6E; 1E6F; Case map*/ '\u1E70', /*1E70; 1E71; Case map*/ '\u1E72', /*1E72; 1E73; Case map*/ '\u1E74', /*1E74; 1E75; Case map*/ '\u1E76', /*1E76; 1E77; Case map*/ '\u1E78', /*1E78; 1E79; Case map*/ '\u1E7A', /*1E7A; 1E7B; Case map*/ '\u1E7C', /*1E7C; 1E7D; Case map*/ '\u1E7E', /*1E7E; 1E7F; Case map*/ '\u1E80', /*1E80; 1E81; Case map*/ '\u1E82', /*1E82; 1E83; Case map*/ '\u1E84', /*1E84; 1E85; Case map*/ '\u1E86', /*1E86; 1E87; Case map*/ '\u1E88', /*1E88; 1E89; Case map*/ '\u1E8A', /*1E8A; 1E8B; Case map*/ '\u1E8C', /*1E8C; 1E8D; Case map*/ '\u1E8E', /*1E8E; 1E8F; Case map*/ '\u1E90', /*1E90; 1E91; Case map*/ '\u1E92', /*1E92; 1E93; Case map*/ '\u1E94', /*1E94; 1E95; Case map*/ '\u1E96', /*1E96; 0068 0331; Case map*/ '\u1E97', /*1E97; 0074 0308; Case map*/ '\u1E98', /*1E98; 0077 030A; Case map*/ '\u1E99', /*1E99; 0079 030A; Case map*/ '\u1E9A', /*1E9A; 0061 02BE; Case map*/ '\u1E9B', /*1E9B; 1E61; Case map*/ '\u1EA0', /*1EA0; 1EA1; Case map*/ '\u1EA2', /*1EA2; 1EA3; Case map*/ '\u1EA4', /*1EA4; 1EA5; Case map*/ '\u1EA6', /*1EA6; 1EA7; Case map*/ '\u1EA8', /*1EA8; 1EA9; Case map*/ '\u1EAA', /*1EAA; 1EAB; Case map*/ '\u1EAC', /*1EAC; 1EAD; Case map*/ '\u1EAE', /*1EAE; 1EAF; Case map*/ '\u1EB0', /*1EB0; 1EB1; Case map*/ '\u1EB2', /*1EB2; 1EB3; Case map*/ '\u1EB4', /*1EB4; 1EB5; Case map*/ '\u1EB6', /*1EB6; 1EB7; Case map*/ '\u1EB8', /*1EB8; 1EB9; Case map*/ '\u1EBA', /*1EBA; 1EBB; Case map*/ '\u1EBC', /*1EBC; 1EBD; Case map*/ '\u1EBE', /*1EBE; 1EBF; Case map*/ '\u1EC0', /*1EC0; 1EC1; Case map*/ '\u1EC2', /*1EC2; 1EC3; Case map*/ '\u1EC4', /*1EC4; 1EC5; Case map*/ '\u1EC6', /*1EC6; 1EC7; Case map*/ '\u1EC8', /*1EC8; 1EC9; Case map*/ '\u1ECA', /*1ECA; 1ECB; Case map*/ '\u1ECC', /*1ECC; 1ECD; Case map*/ '\u1ECE', /*1ECE; 1ECF; Case map*/ '\u1ED0', /*1ED0; 1ED1; Case map*/ '\u1ED2', /*1ED2; 1ED3; Case map*/ '\u1ED4', /*1ED4; 1ED5; Case map*/ '\u1ED6', /*1ED6; 1ED7; Case map*/ '\u1ED8', /*1ED8; 1ED9; Case map*/ '\u1EDA', /*1EDA; 1EDB; Case map*/ '\u1EDC', /*1EDC; 1EDD; Case map*/ '\u1EDE', /*1EDE; 1EDF; Case map*/ '\u1EE0', /*1EE0; 1EE1; Case map*/ '\u1EE2', /*1EE2; 1EE3; Case map*/ '\u1EE4', /*1EE4; 1EE5; Case map*/ '\u1EE6', /*1EE6; 1EE7; Case map*/ '\u1EE8', /*1EE8; 1EE9; Case map*/ '\u1EEA', /*1EEA; 1EEB; Case map*/ '\u1EEC', /*1EEC; 1EED; Case map*/ '\u1EEE', /*1EEE; 1EEF; Case map*/ '\u1EF0', /*1EF0; 1EF1; Case map*/ '\u1EF2', /*1EF2; 1EF3; Case map*/ '\u1EF4', /*1EF4; 1EF5; Case map*/ '\u1EF6', /*1EF6; 1EF7; Case map*/ '\u1EF8', /*1EF8; 1EF9; Case map*/ '\u1F08', /*1F08; 1F00; Case map*/ '\u1F09', /*1F09; 1F01; Case map*/ '\u1F0A', /*1F0A; 1F02; Case map*/ '\u1F0B', /*1F0B; 1F03; Case map*/ '\u1F0C', /*1F0C; 1F04; Case map*/ '\u1F0D', /*1F0D; 1F05; Case map*/ '\u1F0E', /*1F0E; 1F06; Case map*/ '\u1F0F', /*1F0F; 1F07; Case map*/ '\u1F18', /*1F18; 1F10; Case map*/ '\u1F19', /*1F19; 1F11; Case map*/ '\u1F1A', /*1F1A; 1F12; Case map*/ '\u1F1B', /*1F1B; 1F13; Case map*/ '\u1F1C', /*1F1C; 1F14; Case map*/ '\u1F1D', /*1F1D; 1F15; Case map*/ '\u1F28', /*1F28; 1F20; Case map*/ '\u1F29', /*1F29; 1F21; Case map*/ '\u1F2A', /*1F2A; 1F22; Case map*/ '\u1F2B', /*1F2B; 1F23; Case map*/ '\u1F2C', /*1F2C; 1F24; Case map*/ '\u1F2D', /*1F2D; 1F25; Case map*/ '\u1F2E', /*1F2E; 1F26; Case map*/ '\u1F2F', /*1F2F; 1F27; Case map*/ '\u1F38', /*1F38; 1F30; Case map*/ '\u1F39', /*1F39; 1F31; Case map*/ '\u1F3A', /*1F3A; 1F32; Case map*/ '\u1F3B', /*1F3B; 1F33; Case map*/ '\u1F3C', /*1F3C; 1F34; Case map*/ '\u1F3D', /*1F3D; 1F35; Case map*/ '\u1F3E', /*1F3E; 1F36; Case map*/ '\u1F3F', /*1F3F; 1F37; Case map*/ '\u1F48', /*1F48; 1F40; Case map*/ '\u1F49', /*1F49; 1F41; Case map*/ '\u1F4A', /*1F4A; 1F42; Case map*/ '\u1F4B', /*1F4B; 1F43; Case map*/ '\u1F4C', /*1F4C; 1F44; Case map*/ '\u1F4D', /*1F4D; 1F45; Case map*/ '\u1F50', /*1F50; 03C5 0313; Case map*/ '\u1F52', /*1F52; 03C5 0313 0300; Case map*/ '\u1F54', /*1F54; 03C5 0313 0301; Case map*/ '\u1F56', /*1F56; 03C5 0313 0342; Case map*/ '\u1F59', /*1F59; 1F51; Case map*/ '\u1F5B', /*1F5B; 1F53; Case map*/ '\u1F5D', /*1F5D; 1F55; Case map*/ '\u1F5F', /*1F5F; 1F57; Case map*/ '\u1F68', /*1F68; 1F60; Case map*/ '\u1F69', /*1F69; 1F61; Case map*/ '\u1F6A', /*1F6A; 1F62; Case map*/ '\u1F6B', /*1F6B; 1F63; Case map*/ '\u1F6C', /*1F6C; 1F64; Case map*/ '\u1F6D', /*1F6D; 1F65; Case map*/ '\u1F6E', /*1F6E; 1F66; Case map*/ '\u1F6F', /*1F6F; 1F67; Case map*/ '\u1F80', /*1F80; 1F00 03B9; Case map*/ '\u1F81', /*1F81; 1F01 03B9; Case map*/ '\u1F82', /*1F82; 1F02 03B9; Case map*/ '\u1F83', /*1F83; 1F03 03B9; Case map*/ '\u1F84', /*1F84; 1F04 03B9; Case map*/ '\u1F85', /*1F85; 1F05 03B9; Case map*/ '\u1F86', /*1F86; 1F06 03B9; Case map*/ '\u1F87', /*1F87; 1F07 03B9; Case map*/ '\u1F88', /*1F88; 1F00 03B9; Case map*/ '\u1F89', /*1F89; 1F01 03B9; Case map*/ '\u1F8A', /*1F8A; 1F02 03B9; Case map*/ '\u1F8B', /*1F8B; 1F03 03B9; Case map*/ '\u1F8C', /*1F8C; 1F04 03B9; Case map*/ '\u1F8D', /*1F8D; 1F05 03B9; Case map*/ '\u1F8E', /*1F8E; 1F06 03B9; Case map*/ '\u1F8F', /*1F8F; 1F07 03B9; Case map*/ '\u1F90', /*1F90; 1F20 03B9; Case map*/ '\u1F91', /*1F91; 1F21 03B9; Case map*/ '\u1F92', /*1F92; 1F22 03B9; Case map*/ '\u1F93', /*1F93; 1F23 03B9; Case map*/ '\u1F94', /*1F94; 1F24 03B9; Case map*/ '\u1F95', /*1F95; 1F25 03B9; Case map*/ '\u1F96', /*1F96; 1F26 03B9; Case map*/ '\u1F97', /*1F97; 1F27 03B9; Case map*/ '\u1F98', /*1F98; 1F20 03B9; Case map*/ '\u1F99', /*1F99; 1F21 03B9; Case map*/ '\u1F9A', /*1F9A; 1F22 03B9; Case map*/ '\u1F9B', /*1F9B; 1F23 03B9; Case map*/ '\u1F9C', /*1F9C; 1F24 03B9; Case map*/ '\u1F9D', /*1F9D; 1F25 03B9; Case map*/ '\u1F9E', /*1F9E; 1F26 03B9; Case map*/ '\u1F9F', /*1F9F; 1F27 03B9; Case map*/ '\u1FA0', /*1FA0; 1F60 03B9; Case map*/ '\u1FA1', /*1FA1; 1F61 03B9; Case map*/ '\u1FA2', /*1FA2; 1F62 03B9; Case map*/ '\u1FA3', /*1FA3; 1F63 03B9; Case map*/ '\u1FA4', /*1FA4; 1F64 03B9; Case map*/ '\u1FA5', /*1FA5; 1F65 03B9; Case map*/ '\u1FA6', /*1FA6; 1F66 03B9; Case map*/ '\u1FA7', /*1FA7; 1F67 03B9; Case map*/ '\u1FA8', /*1FA8; 1F60 03B9; Case map*/ '\u1FA9', /*1FA9; 1F61 03B9; Case map*/ '\u1FAA', /*1FAA; 1F62 03B9; Case map*/ '\u1FAB', /*1FAB; 1F63 03B9; Case map*/ '\u1FAC', /*1FAC; 1F64 03B9; Case map*/ '\u1FAD', /*1FAD; 1F65 03B9; Case map*/ '\u1FAE', /*1FAE; 1F66 03B9; Case map*/ '\u1FAF', /*1FAF; 1F67 03B9; Case map*/ '\u1FB2', /*1FB2; 1F70 03B9; Case map*/ '\u1FB3', /*1FB3; 03B1 03B9; Case map*/ '\u1FB4', /*1FB4; 03AC 03B9; Case map*/ '\u1FB6', /*1FB6; 03B1 0342; Case map*/ '\u1FB7', /*1FB7; 03B1 0342 03B9; Case map*/ '\u1FB8', /*1FB8; 1FB0; Case map*/ '\u1FB9', /*1FB9; 1FB1; Case map*/ '\u1FBA', /*1FBA; 1F70; Case map*/ '\u1FBB', /*1FBB; 1F71; Case map*/ '\u1FBC', /*1FBC; 03B1 03B9; Case map*/ '\u1FBE', /*1FBE; 03B9; Case map*/ '\u1FC2', /*1FC2; 1F74 03B9; Case map*/ '\u1FC3', /*1FC3; 03B7 03B9; Case map*/ '\u1FC4', /*1FC4; 03AE 03B9; Case map*/ '\u1FC6', /*1FC6; 03B7 0342; Case map*/ '\u1FC7', /*1FC7; 03B7 0342 03B9; Case map*/ '\u1FC8', /*1FC8; 1F72; Case map*/ '\u1FC9', /*1FC9; 1F73; Case map*/ '\u1FCA', /*1FCA; 1F74; Case map*/ '\u1FCB', /*1FCB; 1F75; Case map*/ '\u1FCC', /*1FCC; 03B7 03B9; Case map*/ '\u1FD2', /*1FD2; 03B9 0308 0300; Case map*/ '\u1FD3', /*1FD3; 03B9 0308 0301; Case map*/ '\u1FD6', /*1FD6; 03B9 0342; Case map*/ '\u1FD7', /*1FD7; 03B9 0308 0342; Case map*/ '\u1FD8', /*1FD8; 1FD0; Case map*/ '\u1FD9', /*1FD9; 1FD1; Case map*/ '\u1FDA', /*1FDA; 1F76; Case map*/ '\u1FDB', /*1FDB; 1F77; Case map*/ '\u1FE2', /*1FE2; 03C5 0308 0300; Case map*/ '\u1FE3', /*1FE3; 03C5 0308 0301; Case map*/ '\u1FE4', /*1FE4; 03C1 0313; Case map*/ '\u1FE6', /*1FE6; 03C5 0342; Case map*/ '\u1FE7', /*1FE7; 03C5 0308 0342; Case map*/ '\u1FE8', /*1FE8; 1FE0; Case map*/ '\u1FE9', /*1FE9; 1FE1; Case map*/ '\u1FEA', /*1FEA; 1F7A; Case map*/ '\u1FEB', /*1FEB; 1F7B; Case map*/ '\u1FEC', /*1FEC; 1FE5; Case map*/ '\u1FF2', /*1FF2; 1F7C 03B9; Case map*/ '\u1FF3', /*1FF3; 03C9 03B9; Case map*/ '\u1FF4', /*1FF4; 03CE 03B9; Case map*/ '\u1FF6', /*1FF6; 03C9 0342; Case map*/ '\u1FF7', /*1FF7; 03C9 0342 03B9; Case map*/ '\u1FF8', /*1FF8; 1F78; Case map*/ '\u1FF9', /*1FF9; 1F79; Case map*/ '\u1FFA', /*1FFA; 1F7C; Case map*/ '\u1FFB', /*1FFB; 1F7D; Case map*/ '\u1FFC', /*1FFC; 03C9 03B9; Case map*/ '\u2126', /*2126; 03C9; Case map*/ '\u212A', /*212A; 006B; Case map*/ '\u212B', /*212B; 00E5; Case map*/ '\u2160', /*2160; 2170; Case map*/ '\u2161', /*2161; 2171; Case map*/ '\u2162', /*2162; 2172; Case map*/ '\u2163', /*2163; 2173; Case map*/ '\u2164', /*2164; 2174; Case map*/ '\u2165', /*2165; 2175; Case map*/ '\u2166', /*2166; 2176; Case map*/ '\u2167', /*2167; 2177; Case map*/ '\u2168', /*2168; 2178; Case map*/ '\u2169', /*2169; 2179; Case map*/ '\u216A', /*216A; 217A; Case map*/ '\u216B', /*216B; 217B; Case map*/ '\u216C', /*216C; 217C; Case map*/ '\u216D', /*216D; 217D; Case map*/ '\u216E', /*216E; 217E; Case map*/ '\u216F', /*216F; 217F; Case map*/ '\u24B6', /*24B6; 24D0; Case map*/ '\u24B7', /*24B7; 24D1; Case map*/ '\u24B8', /*24B8; 24D2; Case map*/ '\u24B9', /*24B9; 24D3; Case map*/ '\u24BA', /*24BA; 24D4; Case map*/ '\u24BB', /*24BB; 24D5; Case map*/ '\u24BC', /*24BC; 24D6; Case map*/ '\u24BD', /*24BD; 24D7; Case map*/ '\u24BE', /*24BE; 24D8; Case map*/ '\u24BF', /*24BF; 24D9; Case map*/ '\u24C0', /*24C0; 24DA; Case map*/ '\u24C1', /*24C1; 24DB; Case map*/ '\u24C2', /*24C2; 24DC; Case map*/ '\u24C3', /*24C3; 24DD; Case map*/ '\u24C4', /*24C4; 24DE; Case map*/ '\u24C5', /*24C5; 24DF; Case map*/ '\u24C6', /*24C6; 24E0; Case map*/ '\u24C7', /*24C7; 24E1; Case map*/ '\u24C8', /*24C8; 24E2; Case map*/ '\u24C9', /*24C9; 24E3; Case map*/ '\u24CA', /*24CA; 24E4; Case map*/ '\u24CB', /*24CB; 24E5; Case map*/ '\u24CC', /*24CC; 24E6; Case map*/ '\u24CD', /*24CD; 24E7; Case map*/ '\u24CE', /*24CE; 24E8; Case map*/ '\u24CF', /*24CF; 24E9; Case map*/ '\uFB00', /*FB00; 0066 0066; Case map*/ '\uFB01', /*FB01; 0066 0069; Case map*/ '\uFB02', /*FB02; 0066 006C; Case map*/ '\uFB03', /*FB03; 0066 0066 0069; Case map*/ '\uFB04', /*FB04; 0066 0066 006C; Case map*/ '\uFB05', /*FB05; 0073 0074; Case map*/ '\uFB06', /*FB06; 0073 0074; Case map*/ '\uFB13', /*FB13; 0574 0576; Case map*/ '\uFB14', /*FB14; 0574 0565; Case map*/ '\uFB15', /*FB15; 0574 056B; Case map*/ '\uFB16', /*FB16; 057E 0576; Case map*/ '\uFB17', /*FB17; 0574 056D; Case map*/ '\uFF21', /*FF21; FF41; Case map*/ '\uFF22', /*FF22; FF42; Case map*/ '\uFF23', /*FF23; FF43; Case map*/ '\uFF24', /*FF24; FF44; Case map*/ '\uFF25', /*FF25; FF45; Case map*/ '\uFF26', /*FF26; FF46; Case map*/ '\uFF27', /*FF27; FF47; Case map*/ '\uFF28', /*FF28; FF48; Case map*/ '\uFF29', /*FF29; FF49; Case map*/ '\uFF2A', /*FF2A; FF4A; Case map*/ '\uFF2B', /*FF2B; FF4B; Case map*/ '\uFF2C', /*FF2C; FF4C; Case map*/ '\uFF2D', /*FF2D; FF4D; Case map*/ '\uFF2E', /*FF2E; FF4E; Case map*/ '\uFF2F', /*FF2F; FF4F; Case map*/ '\uFF30', /*FF30; FF50; Case map*/ '\uFF31', /*FF31; FF51; Case map*/ '\uFF32', /*FF32; FF52; Case map*/ '\uFF33', /*FF33; FF53; Case map*/ '\uFF34', /*FF34; FF54; Case map*/ '\uFF35', /*FF35; FF55; Case map*/ '\uFF36', /*FF36; FF56; Case map*/ '\uFF37', /*FF37; FF57; Case map*/ '\uFF38', /*FF38; FF58; Case map*/ '\uFF39', /*FF39; FF59; Case map*/ '\uFF3A', /*FF3A; FF5A; Case map*/ }; public static string[] B3replace = new string[] { "\u0061", /*0041; 0061; Case map*/ "\u0062", /*0042; 0062; Case map*/ "\u0063", /*0043; 0063; Case map*/ "\u0064", /*0044; 0064; Case map*/ "\u0065", /*0045; 0065; Case map*/ "\u0066", /*0046; 0066; Case map*/ "\u0067", /*0047; 0067; Case map*/ "\u0068", /*0048; 0068; Case map*/ "\u0069", /*0049; 0069; Case map*/ "\u006A", /*004A; 006A; Case map*/ "\u006B", /*004B; 006B; Case map*/ "\u006C", /*004C; 006C; Case map*/ "\u006D", /*004D; 006D; Case map*/ "\u006E", /*004E; 006E; Case map*/ "\u006F", /*004F; 006F; Case map*/ "\u0070", /*0050; 0070; Case map*/ "\u0071", /*0051; 0071; Case map*/ "\u0072", /*0052; 0072; Case map*/ "\u0073", /*0053; 0073; Case map*/ "\u0074", /*0054; 0074; Case map*/ "\u0075", /*0055; 0075; Case map*/ "\u0076", /*0056; 0076; Case map*/ "\u0077", /*0057; 0077; Case map*/ "\u0078", /*0058; 0078; Case map*/ "\u0079", /*0059; 0079; Case map*/ "\u007A", /*005A; 007A; Case map*/ "\u03BC", /*00B5; 03BC; Case map*/ "\u00E0", /*00C0; 00E0; Case map*/ "\u00E1", /*00C1; 00E1; Case map*/ "\u00E2", /*00C2; 00E2; Case map*/ "\u00E3", /*00C3; 00E3; Case map*/ "\u00E4", /*00C4; 00E4; Case map*/ "\u00E5", /*00C5; 00E5; Case map*/ "\u00E6", /*00C6; 00E6; Case map*/ "\u00E7", /*00C7; 00E7; Case map*/ "\u00E8", /*00C8; 00E8; Case map*/ "\u00E9", /*00C9; 00E9; Case map*/ "\u00EA", /*00CA; 00EA; Case map*/ "\u00EB", /*00CB; 00EB; Case map*/ "\u00EC", /*00CC; 00EC; Case map*/ "\u00ED", /*00CD; 00ED; Case map*/ "\u00EE", /*00CE; 00EE; Case map*/ "\u00EF", /*00CF; 00EF; Case map*/ "\u00F0", /*00D0; 00F0; Case map*/ "\u00F1", /*00D1; 00F1; Case map*/ "\u00F2", /*00D2; 00F2; Case map*/ "\u00F3", /*00D3; 00F3; Case map*/ "\u00F4", /*00D4; 00F4; Case map*/ "\u00F5", /*00D5; 00F5; Case map*/ "\u00F6", /*00D6; 00F6; Case map*/ "\u00F8", /*00D8; 00F8; Case map*/ "\u00F9", /*00D9; 00F9; Case map*/ "\u00FA", /*00DA; 00FA; Case map*/ "\u00FB", /*00DB; 00FB; Case map*/ "\u00FC", /*00DC; 00FC; Case map*/ "\u00FD", /*00DD; 00FD; Case map*/ "\u00FE", /*00DE; 00FE; Case map*/ "\u0073\u0073", /*00DF; 0073 0073; Case map*/ "\u0101", /*0100; 0101; Case map*/ "\u0103", /*0102; 0103; Case map*/ "\u0105", /*0104; 0105; Case map*/ "\u0107", /*0106; 0107; Case map*/ "\u0109", /*0108; 0109; Case map*/ "\u010B", /*010A; 010B; Case map*/ "\u010D", /*010C; 010D; Case map*/ "\u010F", /*010E; 010F; Case map*/ "\u0111", /*0110; 0111; Case map*/ "\u0113", /*0112; 0113; Case map*/ "\u0115", /*0114; 0115; Case map*/ "\u0117", /*0116; 0117; Case map*/ "\u0119", /*0118; 0119; Case map*/ "\u011B", /*011A; 011B; Case map*/ "\u011D", /*011C; 011D; Case map*/ "\u011F", /*011E; 011F; Case map*/ "\u0121", /*0120; 0121; Case map*/ "\u0123", /*0122; 0123; Case map*/ "\u0125", /*0124; 0125; Case map*/ "\u0127", /*0126; 0127; Case map*/ "\u0129", /*0128; 0129; Case map*/ "\u012B", /*012A; 012B; Case map*/ "\u012D", /*012C; 012D; Case map*/ "\u012F", /*012E; 012F; Case map*/ "\u0069\u0307", /*0130; 0069 0307; Case map*/ "\u0133", /*0132; 0133; Case map*/ "\u0135", /*0134; 0135; Case map*/ "\u0137", /*0136; 0137; Case map*/ "\u013A", /*0139; 013A; Case map*/ "\u013C", /*013B; 013C; Case map*/ "\u013E", /*013D; 013E; Case map*/ "\u0140", /*013F; 0140; Case map*/ "\u0142", /*0141; 0142; Case map*/ "\u0144", /*0143; 0144; Case map*/ "\u0146", /*0145; 0146; Case map*/ "\u0148", /*0147; 0148; Case map*/ "\u02BC\u006E", /*0149; 02BC 006E; Case map*/ "\u014B", /*014A; 014B; Case map*/ "\u014D", /*014C; 014D; Case map*/ "\u014F", /*014E; 014F; Case map*/ "\u0151", /*0150; 0151; Case map*/ "\u0153", /*0152; 0153; Case map*/ "\u0155", /*0154; 0155; Case map*/ "\u0157", /*0156; 0157; Case map*/ "\u0159", /*0158; 0159; Case map*/ "\u015B", /*015A; 015B; Case map*/ "\u015D", /*015C; 015D; Case map*/ "\u015F", /*015E; 015F; Case map*/ "\u0161", /*0160; 0161; Case map*/ "\u0163", /*0162; 0163; Case map*/ "\u0165", /*0164; 0165; Case map*/ "\u0167", /*0166; 0167; Case map*/ "\u0169", /*0168; 0169; Case map*/ "\u016B", /*016A; 016B; Case map*/ "\u016D", /*016C; 016D; Case map*/ "\u016F", /*016E; 016F; Case map*/ "\u0171", /*0170; 0171; Case map*/ "\u0173", /*0172; 0173; Case map*/ "\u0175", /*0174; 0175; Case map*/ "\u0177", /*0176; 0177; Case map*/ "\u00FF", /*0178; 00FF; Case map*/ "\u017A", /*0179; 017A; Case map*/ "\u017C", /*017B; 017C; Case map*/ "\u017E", /*017D; 017E; Case map*/ "\u0073", /*017F; 0073; Case map*/ "\u0253", /*0181; 0253; Case map*/ "\u0183", /*0182; 0183; Case map*/ "\u0185", /*0184; 0185; Case map*/ "\u0254", /*0186; 0254; Case map*/ "\u0188", /*0187; 0188; Case map*/ "\u0256", /*0189; 0256; Case map*/ "\u0257", /*018A; 0257; Case map*/ "\u018C", /*018B; 018C; Case map*/ "\u01DD", /*018E; 01DD; Case map*/ "\u0259", /*018F; 0259; Case map*/ "\u025B", /*0190; 025B; Case map*/ "\u0192", /*0191; 0192; Case map*/ "\u0260", /*0193; 0260; Case map*/ "\u0263", /*0194; 0263; Case map*/ "\u0269", /*0196; 0269; Case map*/ "\u0268", /*0197; 0268; Case map*/ "\u0199", /*0198; 0199; Case map*/ "\u026F", /*019C; 026F; Case map*/ "\u0272", /*019D; 0272; Case map*/ "\u0275", /*019F; 0275; Case map*/ "\u01A1", /*01A0; 01A1; Case map*/ "\u01A3", /*01A2; 01A3; Case map*/ "\u01A5", /*01A4; 01A5; Case map*/ "\u0280", /*01A6; 0280; Case map*/ "\u01A8", /*01A7; 01A8; Case map*/ "\u0283", /*01A9; 0283; Case map*/ "\u01AD", /*01AC; 01AD; Case map*/ "\u0288", /*01AE; 0288; Case map*/ "\u01B0", /*01AF; 01B0; Case map*/ "\u028A", /*01B1; 028A; Case map*/ "\u028B", /*01B2; 028B; Case map*/ "\u01B4", /*01B3; 01B4; Case map*/ "\u01B6", /*01B5; 01B6; Case map*/ "\u0292", /*01B7; 0292; Case map*/ "\u01B9", /*01B8; 01B9; Case map*/ "\u01BD", /*01BC; 01BD; Case map*/ "\u01C6", /*01C4; 01C6; Case map*/ "\u01C6", /*01C5; 01C6; Case map*/ "\u01C9", /*01C7; 01C9; Case map*/ "\u01C9", /*01C8; 01C9; Case map*/ "\u01CC", /*01CA; 01CC; Case map*/ "\u01CC", /*01CB; 01CC; Case map*/ "\u01CE", /*01CD; 01CE; Case map*/ "\u01D0", /*01CF; 01D0; Case map*/ "\u01D2", /*01D1; 01D2; Case map*/ "\u01D4", /*01D3; 01D4; Case map*/ "\u01D6", /*01D5; 01D6; Case map*/ "\u01D8", /*01D7; 01D8; Case map*/ "\u01DA", /*01D9; 01DA; Case map*/ "\u01DC", /*01DB; 01DC; Case map*/ "\u01DF", /*01DE; 01DF; Case map*/ "\u01E1", /*01E0; 01E1; Case map*/ "\u01E3", /*01E2; 01E3; Case map*/ "\u01E5", /*01E4; 01E5; Case map*/ "\u01E7", /*01E6; 01E7; Case map*/ "\u01E9", /*01E8; 01E9; Case map*/ "\u01EB", /*01EA; 01EB; Case map*/ "\u01ED", /*01EC; 01ED; Case map*/ "\u01EF", /*01EE; 01EF; Case map*/ "\u006A\u030C", /*01F0; 006A 030C; Case map*/ "\u01F3", /*01F1; 01F3; Case map*/ "\u01F3", /*01F2; 01F3; Case map*/ "\u01F5", /*01F4; 01F5; Case map*/ "\u0195", /*01F6; 0195; Case map*/ "\u01BF", /*01F7; 01BF; Case map*/ "\u01F9", /*01F8; 01F9; Case map*/ "\u01FB", /*01FA; 01FB; Case map*/ "\u01FD", /*01FC; 01FD; Case map*/ "\u01FF", /*01FE; 01FF; Case map*/ "\u0201", /*0200; 0201; Case map*/ "\u0203", /*0202; 0203; Case map*/ "\u0205", /*0204; 0205; Case map*/ "\u0207", /*0206; 0207; Case map*/ "\u0209", /*0208; 0209; Case map*/ "\u020B", /*020A; 020B; Case map*/ "\u020D", /*020C; 020D; Case map*/ "\u020F", /*020E; 020F; Case map*/ "\u0211", /*0210; 0211; Case map*/ "\u0213", /*0212; 0213; Case map*/ "\u0215", /*0214; 0215; Case map*/ "\u0217", /*0216; 0217; Case map*/ "\u0219", /*0218; 0219; Case map*/ "\u021B", /*021A; 021B; Case map*/ "\u021D", /*021C; 021D; Case map*/ "\u021F", /*021E; 021F; Case map*/ "\u019E", /*0220; 019E; Case map*/ "\u0223", /*0222; 0223; Case map*/ "\u0225", /*0224; 0225; Case map*/ "\u0227", /*0226; 0227; Case map*/ "\u0229", /*0228; 0229; Case map*/ "\u022B", /*022A; 022B; Case map*/ "\u022D", /*022C; 022D; Case map*/ "\u022F", /*022E; 022F; Case map*/ "\u0231", /*0230; 0231; Case map*/ "\u0233", /*0232; 0233; Case map*/ "\u03B9", /*0345; 03B9; Case map*/ "\u03AC", /*0386; 03AC; Case map*/ "\u03AD", /*0388; 03AD; Case map*/ "\u03AE", /*0389; 03AE; Case map*/ "\u03AF", /*038A; 03AF; Case map*/ "\u03CC", /*038C; 03CC; Case map*/ "\u03CD", /*038E; 03CD; Case map*/ "\u03CE", /*038F; 03CE; Case map*/ "\u03B9\u0308\u0301", /*0390; 03B9 0308 0301; Case map*/ "\u03B1", /*0391; 03B1; Case map*/ "\u03B2", /*0392; 03B2; Case map*/ "\u03B3", /*0393; 03B3; Case map*/ "\u03B4", /*0394; 03B4; Case map*/ "\u03B5", /*0395; 03B5; Case map*/ "\u03B6", /*0396; 03B6; Case map*/ "\u03B7", /*0397; 03B7; Case map*/ "\u03B8", /*0398; 03B8; Case map*/ "\u03B9", /*0399; 03B9; Case map*/ "\u03BA", /*039A; 03BA; Case map*/ "\u03BB", /*039B; 03BB; Case map*/ "\u03BC", /*039C; 03BC; Case map*/ "\u03BD", /*039D; 03BD; Case map*/ "\u03BE", /*039E; 03BE; Case map*/ "\u03BF", /*039F; 03BF; Case map*/ "\u03C0", /*03A0; 03C0; Case map*/ "\u03C1", /*03A1; 03C1; Case map*/ "\u03C3", /*03A3; 03C3; Case map*/ "\u03C4", /*03A4; 03C4; Case map*/ "\u03C5", /*03A5; 03C5; Case map*/ "\u03C6", /*03A6; 03C6; Case map*/ "\u03C7", /*03A7; 03C7; Case map*/ "\u03C8", /*03A8; 03C8; Case map*/ "\u03C9", /*03A9; 03C9; Case map*/ "\u03CA", /*03AA; 03CA; Case map*/ "\u03CB", /*03AB; 03CB; Case map*/ "\u03C5\u0308\u0301", /*03B0; 03C5 0308 0301; Case map*/ "\u03C3", /*03C2; 03C3; Case map*/ "\u03B2", /*03D0; 03B2; Case map*/ "\u03B8", /*03D1; 03B8; Case map*/ "\u03C6", /*03D5; 03C6; Case map*/ "\u03C0", /*03D6; 03C0; Case map*/ "\u03D9", /*03D8; 03D9; Case map*/ "\u03DB", /*03DA; 03DB; Case map*/ "\u03DD", /*03DC; 03DD; Case map*/ "\u03DF", /*03DE; 03DF; Case map*/ "\u03E1", /*03E0; 03E1; Case map*/ "\u03E3", /*03E2; 03E3; Case map*/ "\u03E5", /*03E4; 03E5; Case map*/ "\u03E7", /*03E6; 03E7; Case map*/ "\u03E9", /*03E8; 03E9; Case map*/ "\u03EB", /*03EA; 03EB; Case map*/ "\u03ED", /*03EC; 03ED; Case map*/ "\u03EF", /*03EE; 03EF; Case map*/ "\u03BA", /*03F0; 03BA; Case map*/ "\u03C1", /*03F1; 03C1; Case map*/ "\u03C3", /*03F2; 03C3; Case map*/ "\u03B8", /*03F4; 03B8; Case map*/ "\u03B5", /*03F5; 03B5; Case map*/ "\u0450", /*0400; 0450; Case map*/ "\u0451", /*0401; 0451; Case map*/ "\u0452", /*0402; 0452; Case map*/ "\u0453", /*0403; 0453; Case map*/ "\u0454", /*0404; 0454; Case map*/ "\u0455", /*0405; 0455; Case map*/ "\u0456", /*0406; 0456; Case map*/ "\u0457", /*0407; 0457; Case map*/ "\u0458", /*0408; 0458; Case map*/ "\u0459", /*0409; 0459; Case map*/ "\u045A", /*040A; 045A; Case map*/ "\u045B", /*040B; 045B; Case map*/ "\u045C", /*040C; 045C; Case map*/ "\u045D", /*040D; 045D; Case map*/ "\u045E", /*040E; 045E; Case map*/ "\u045F", /*040F; 045F; Case map*/ "\u0430", /*0410; 0430; Case map*/ "\u0431", /*0411; 0431; Case map*/ "\u0432", /*0412; 0432; Case map*/ "\u0433", /*0413; 0433; Case map*/ "\u0434", /*0414; 0434; Case map*/ "\u0435", /*0415; 0435; Case map*/ "\u0436", /*0416; 0436; Case map*/ "\u0437", /*0417; 0437; Case map*/ "\u0438", /*0418; 0438; Case map*/ "\u0439", /*0419; 0439; Case map*/ "\u043A", /*041A; 043A; Case map*/ "\u043B", /*041B; 043B; Case map*/ "\u043C", /*041C; 043C; Case map*/ "\u043D", /*041D; 043D; Case map*/ "\u043E", /*041E; 043E; Case map*/ "\u043F", /*041F; 043F; Case map*/ "\u0440", /*0420; 0440; Case map*/ "\u0441", /*0421; 0441; Case map*/ "\u0442", /*0422; 0442; Case map*/ "\u0443", /*0423; 0443; Case map*/ "\u0444", /*0424; 0444; Case map*/ "\u0445", /*0425; 0445; Case map*/ "\u0446", /*0426; 0446; Case map*/ "\u0447", /*0427; 0447; Case map*/ "\u0448", /*0428; 0448; Case map*/ "\u0449", /*0429; 0449; Case map*/ "\u044A", /*042A; 044A; Case map*/ "\u044B", /*042B; 044B; Case map*/ "\u044C", /*042C; 044C; Case map*/ "\u044D", /*042D; 044D; Case map*/ "\u044E", /*042E; 044E; Case map*/ "\u044F", /*042F; 044F; Case map*/ "\u0461", /*0460; 0461; Case map*/ "\u0463", /*0462; 0463; Case map*/ "\u0465", /*0464; 0465; Case map*/ "\u0467", /*0466; 0467; Case map*/ "\u0469", /*0468; 0469; Case map*/ "\u046B", /*046A; 046B; Case map*/ "\u046D", /*046C; 046D; Case map*/ "\u046F", /*046E; 046F; Case map*/ "\u0471", /*0470; 0471; Case map*/ "\u0473", /*0472; 0473; Case map*/ "\u0475", /*0474; 0475; Case map*/ "\u0477", /*0476; 0477; Case map*/ "\u0479", /*0478; 0479; Case map*/ "\u047B", /*047A; 047B; Case map*/ "\u047D", /*047C; 047D; Case map*/ "\u047F", /*047E; 047F; Case map*/ "\u0481", /*0480; 0481; Case map*/ "\u048B", /*048A; 048B; Case map*/ "\u048D", /*048C; 048D; Case map*/ "\u048F", /*048E; 048F; Case map*/ "\u0491", /*0490; 0491; Case map*/ "\u0493", /*0492; 0493; Case map*/ "\u0495", /*0494; 0495; Case map*/ "\u0497", /*0496; 0497; Case map*/ "\u0499", /*0498; 0499; Case map*/ "\u049B", /*049A; 049B; Case map*/ "\u049D", /*049C; 049D; Case map*/ "\u049F", /*049E; 049F; Case map*/ "\u04A1", /*04A0; 04A1; Case map*/ "\u04A3", /*04A2; 04A3; Case map*/ "\u04A5", /*04A4; 04A5; Case map*/ "\u04A7", /*04A6; 04A7; Case map*/ "\u04A9", /*04A8; 04A9; Case map*/ "\u04AB", /*04AA; 04AB; Case map*/ "\u04AD", /*04AC; 04AD; Case map*/ "\u04AF", /*04AE; 04AF; Case map*/ "\u04B1", /*04B0; 04B1; Case map*/ "\u04B3", /*04B2; 04B3; Case map*/ "\u04B5", /*04B4; 04B5; Case map*/ "\u04B7", /*04B6; 04B7; Case map*/ "\u04B9", /*04B8; 04B9; Case map*/ "\u04BB", /*04BA; 04BB; Case map*/ "\u04BD", /*04BC; 04BD; Case map*/ "\u04BF", /*04BE; 04BF; Case map*/ "\u04C2", /*04C1; 04C2; Case map*/ "\u04C4", /*04C3; 04C4; Case map*/ "\u04C6", /*04C5; 04C6; Case map*/ "\u04C8", /*04C7; 04C8; Case map*/ "\u04CA", /*04C9; 04CA; Case map*/ "\u04CC", /*04CB; 04CC; Case map*/ "\u04CE", /*04CD; 04CE; Case map*/ "\u04D1", /*04D0; 04D1; Case map*/ "\u04D3", /*04D2; 04D3; Case map*/ "\u04D5", /*04D4; 04D5; Case map*/ "\u04D7", /*04D6; 04D7; Case map*/ "\u04D9", /*04D8; 04D9; Case map*/ "\u04DB", /*04DA; 04DB; Case map*/ "\u04DD", /*04DC; 04DD; Case map*/ "\u04DF", /*04DE; 04DF; Case map*/ "\u04E1", /*04E0; 04E1; Case map*/ "\u04E3", /*04E2; 04E3; Case map*/ "\u04E5", /*04E4; 04E5; Case map*/ "\u04E7", /*04E6; 04E7; Case map*/ "\u04E9", /*04E8; 04E9; Case map*/ "\u04EB", /*04EA; 04EB; Case map*/ "\u04ED", /*04EC; 04ED; Case map*/ "\u04EF", /*04EE; 04EF; Case map*/ "\u04F1", /*04F0; 04F1; Case map*/ "\u04F3", /*04F2; 04F3; Case map*/ "\u04F5", /*04F4; 04F5; Case map*/ "\u04F9", /*04F8; 04F9; Case map*/ "\u0501", /*0500; 0501; Case map*/ "\u0503", /*0502; 0503; Case map*/ "\u0505", /*0504; 0505; Case map*/ "\u0507", /*0506; 0507; Case map*/ "\u0509", /*0508; 0509; Case map*/ "\u050B", /*050A; 050B; Case map*/ "\u050D", /*050C; 050D; Case map*/ "\u050F", /*050E; 050F; Case map*/ "\u0561", /*0531; 0561; Case map*/ "\u0562", /*0532; 0562; Case map*/ "\u0563", /*0533; 0563; Case map*/ "\u0564", /*0534; 0564; Case map*/ "\u0565", /*0535; 0565; Case map*/ "\u0566", /*0536; 0566; Case map*/ "\u0567", /*0537; 0567; Case map*/ "\u0568", /*0538; 0568; Case map*/ "\u0569", /*0539; 0569; Case map*/ "\u056A", /*053A; 056A; Case map*/ "\u056B", /*053B; 056B; Case map*/ "\u056C", /*053C; 056C; Case map*/ "\u056D", /*053D; 056D; Case map*/ "\u056E", /*053E; 056E; Case map*/ "\u056F", /*053F; 056F; Case map*/ "\u0570", /*0540; 0570; Case map*/ "\u0571", /*0541; 0571; Case map*/ "\u0572", /*0542; 0572; Case map*/ "\u0573", /*0543; 0573; Case map*/ "\u0574", /*0544; 0574; Case map*/ "\u0575", /*0545; 0575; Case map*/ "\u0576", /*0546; 0576; Case map*/ "\u0577", /*0547; 0577; Case map*/ "\u0578", /*0548; 0578; Case map*/ "\u0579", /*0549; 0579; Case map*/ "\u057A", /*054A; 057A; Case map*/ "\u057B", /*054B; 057B; Case map*/ "\u057C", /*054C; 057C; Case map*/ "\u057D", /*054D; 057D; Case map*/ "\u057E", /*054E; 057E; Case map*/ "\u057F", /*054F; 057F; Case map*/ "\u0580", /*0550; 0580; Case map*/ "\u0581", /*0551; 0581; Case map*/ "\u0582", /*0552; 0582; Case map*/ "\u0583", /*0553; 0583; Case map*/ "\u0584", /*0554; 0584; Case map*/ "\u0585", /*0555; 0585; Case map*/ "\u0586", /*0556; 0586; Case map*/ "\u0565\u0582", /*0587; 0565 0582; Case map*/ "\u1E01", /*1E00; 1E01; Case map*/ "\u1E03", /*1E02; 1E03; Case map*/ "\u1E05", /*1E04; 1E05; Case map*/ "\u1E07", /*1E06; 1E07; Case map*/ "\u1E09", /*1E08; 1E09; Case map*/ "\u1E0B", /*1E0A; 1E0B; Case map*/ "\u1E0D", /*1E0C; 1E0D; Case map*/ "\u1E0F", /*1E0E; 1E0F; Case map*/ "\u1E11", /*1E10; 1E11; Case map*/ "\u1E13", /*1E12; 1E13; Case map*/ "\u1E15", /*1E14; 1E15; Case map*/ "\u1E17", /*1E16; 1E17; Case map*/ "\u1E19", /*1E18; 1E19; Case map*/ "\u1E1B", /*1E1A; 1E1B; Case map*/ "\u1E1D", /*1E1C; 1E1D; Case map*/ "\u1E1F", /*1E1E; 1E1F; Case map*/ "\u1E21", /*1E20; 1E21; Case map*/ "\u1E23", /*1E22; 1E23; Case map*/ "\u1E25", /*1E24; 1E25; Case map*/ "\u1E27", /*1E26; 1E27; Case map*/ "\u1E29", /*1E28; 1E29; Case map*/ "\u1E2B", /*1E2A; 1E2B; Case map*/ "\u1E2D", /*1E2C; 1E2D; Case map*/ "\u1E2F", /*1E2E; 1E2F; Case map*/ "\u1E31", /*1E30; 1E31; Case map*/ "\u1E33", /*1E32; 1E33; Case map*/ "\u1E35", /*1E34; 1E35; Case map*/ "\u1E37", /*1E36; 1E37; Case map*/ "\u1E39", /*1E38; 1E39; Case map*/ "\u1E3B", /*1E3A; 1E3B; Case map*/ "\u1E3D", /*1E3C; 1E3D; Case map*/ "\u1E3F", /*1E3E; 1E3F; Case map*/ "\u1E41", /*1E40; 1E41; Case map*/ "\u1E43", /*1E42; 1E43; Case map*/ "\u1E45", /*1E44; 1E45; Case map*/ "\u1E47", /*1E46; 1E47; Case map*/ "\u1E49", /*1E48; 1E49; Case map*/ "\u1E4B", /*1E4A; 1E4B; Case map*/ "\u1E4D", /*1E4C; 1E4D; Case map*/ "\u1E4F", /*1E4E; 1E4F; Case map*/ "\u1E51", /*1E50; 1E51; Case map*/ "\u1E53", /*1E52; 1E53; Case map*/ "\u1E55", /*1E54; 1E55; Case map*/ "\u1E57", /*1E56; 1E57; Case map*/ "\u1E59", /*1E58; 1E59; Case map*/ "\u1E5B", /*1E5A; 1E5B; Case map*/ "\u1E5D", /*1E5C; 1E5D; Case map*/ "\u1E5F", /*1E5E; 1E5F; Case map*/ "\u1E61", /*1E60; 1E61; Case map*/ "\u1E63", /*1E62; 1E63; Case map*/ "\u1E65", /*1E64; 1E65; Case map*/ "\u1E67", /*1E66; 1E67; Case map*/ "\u1E69", /*1E68; 1E69; Case map*/ "\u1E6B", /*1E6A; 1E6B; Case map*/ "\u1E6D", /*1E6C; 1E6D; Case map*/ "\u1E6F", /*1E6E; 1E6F; Case map*/ "\u1E71", /*1E70; 1E71; Case map*/ "\u1E73", /*1E72; 1E73; Case map*/ "\u1E75", /*1E74; 1E75; Case map*/ "\u1E77", /*1E76; 1E77; Case map*/ "\u1E79", /*1E78; 1E79; Case map*/ "\u1E7B", /*1E7A; 1E7B; Case map*/ "\u1E7D", /*1E7C; 1E7D; Case map*/ "\u1E7F", /*1E7E; 1E7F; Case map*/ "\u1E81", /*1E80; 1E81; Case map*/ "\u1E83", /*1E82; 1E83; Case map*/ "\u1E85", /*1E84; 1E85; Case map*/ "\u1E87", /*1E86; 1E87; Case map*/ "\u1E89", /*1E88; 1E89; Case map*/ "\u1E8B", /*1E8A; 1E8B; Case map*/ "\u1E8D", /*1E8C; 1E8D; Case map*/ "\u1E8F", /*1E8E; 1E8F; Case map*/ "\u1E91", /*1E90; 1E91; Case map*/ "\u1E93", /*1E92; 1E93; Case map*/ "\u1E95", /*1E94; 1E95; Case map*/ "\u0068\u0331", /*1E96; 0068 0331; Case map*/ "\u0074\u0308", /*1E97; 0074 0308; Case map*/ "\u0077\u030A", /*1E98; 0077 030A; Case map*/ "\u0079\u030A", /*1E99; 0079 030A; Case map*/ "\u0061\u02BE", /*1E9A; 0061 02BE; Case map*/ "\u1E61", /*1E9B; 1E61; Case map*/ "\u1EA1", /*1EA0; 1EA1; Case map*/ "\u1EA3", /*1EA2; 1EA3; Case map*/ "\u1EA5", /*1EA4; 1EA5; Case map*/ "\u1EA7", /*1EA6; 1EA7; Case map*/ "\u1EA9", /*1EA8; 1EA9; Case map*/ "\u1EAB", /*1EAA; 1EAB; Case map*/ "\u1EAD", /*1EAC; 1EAD; Case map*/ "\u1EAF", /*1EAE; 1EAF; Case map*/ "\u1EB1", /*1EB0; 1EB1; Case map*/ "\u1EB3", /*1EB2; 1EB3; Case map*/ "\u1EB5", /*1EB4; 1EB5; Case map*/ "\u1EB7", /*1EB6; 1EB7; Case map*/ "\u1EB9", /*1EB8; 1EB9; Case map*/ "\u1EBB", /*1EBA; 1EBB; Case map*/ "\u1EBD", /*1EBC; 1EBD; Case map*/ "\u1EBF", /*1EBE; 1EBF; Case map*/ "\u1EC1", /*1EC0; 1EC1; Case map*/ "\u1EC3", /*1EC2; 1EC3; Case map*/ "\u1EC5", /*1EC4; 1EC5; Case map*/ "\u1EC7", /*1EC6; 1EC7; Case map*/ "\u1EC9", /*1EC8; 1EC9; Case map*/ "\u1ECB", /*1ECA; 1ECB; Case map*/ "\u1ECD", /*1ECC; 1ECD; Case map*/ "\u1ECF", /*1ECE; 1ECF; Case map*/ "\u1ED1", /*1ED0; 1ED1; Case map*/ "\u1ED3", /*1ED2; 1ED3; Case map*/ "\u1ED5", /*1ED4; 1ED5; Case map*/ "\u1ED7", /*1ED6; 1ED7; Case map*/ "\u1ED9", /*1ED8; 1ED9; Case map*/ "\u1EDB", /*1EDA; 1EDB; Case map*/ "\u1EDD", /*1EDC; 1EDD; Case map*/ "\u1EDF", /*1EDE; 1EDF; Case map*/ "\u1EE1", /*1EE0; 1EE1; Case map*/ "\u1EE3", /*1EE2; 1EE3; Case map*/ "\u1EE5", /*1EE4; 1EE5; Case map*/ "\u1EE7", /*1EE6; 1EE7; Case map*/ "\u1EE9", /*1EE8; 1EE9; Case map*/ "\u1EEB", /*1EEA; 1EEB; Case map*/ "\u1EED", /*1EEC; 1EED; Case map*/ "\u1EEF", /*1EEE; 1EEF; Case map*/ "\u1EF1", /*1EF0; 1EF1; Case map*/ "\u1EF3", /*1EF2; 1EF3; Case map*/ "\u1EF5", /*1EF4; 1EF5; Case map*/ "\u1EF7", /*1EF6; 1EF7; Case map*/ "\u1EF9", /*1EF8; 1EF9; Case map*/ "\u1F00", /*1F08; 1F00; Case map*/ "\u1F01", /*1F09; 1F01; Case map*/ "\u1F02", /*1F0A; 1F02; Case map*/ "\u1F03", /*1F0B; 1F03; Case map*/ "\u1F04", /*1F0C; 1F04; Case map*/ "\u1F05", /*1F0D; 1F05; Case map*/ "\u1F06", /*1F0E; 1F06; Case map*/ "\u1F07", /*1F0F; 1F07; Case map*/ "\u1F10", /*1F18; 1F10; Case map*/ "\u1F11", /*1F19; 1F11; Case map*/ "\u1F12", /*1F1A; 1F12; Case map*/ "\u1F13", /*1F1B; 1F13; Case map*/ "\u1F14", /*1F1C; 1F14; Case map*/ "\u1F15", /*1F1D; 1F15; Case map*/ "\u1F20", /*1F28; 1F20; Case map*/ "\u1F21", /*1F29; 1F21; Case map*/ "\u1F22", /*1F2A; 1F22; Case map*/ "\u1F23", /*1F2B; 1F23; Case map*/ "\u1F24", /*1F2C; 1F24; Case map*/ "\u1F25", /*1F2D; 1F25; Case map*/ "\u1F26", /*1F2E; 1F26; Case map*/ "\u1F27", /*1F2F; 1F27; Case map*/ "\u1F30", /*1F38; 1F30; Case map*/ "\u1F31", /*1F39; 1F31; Case map*/ "\u1F32", /*1F3A; 1F32; Case map*/ "\u1F33", /*1F3B; 1F33; Case map*/ "\u1F34", /*1F3C; 1F34; Case map*/ "\u1F35", /*1F3D; 1F35; Case map*/ "\u1F36", /*1F3E; 1F36; Case map*/ "\u1F37", /*1F3F; 1F37; Case map*/ "\u1F40", /*1F48; 1F40; Case map*/ "\u1F41", /*1F49; 1F41; Case map*/ "\u1F42", /*1F4A; 1F42; Case map*/ "\u1F43", /*1F4B; 1F43; Case map*/ "\u1F44", /*1F4C; 1F44; Case map*/ "\u1F45", /*1F4D; 1F45; Case map*/ "\u03C5\u0313", /*1F50; 03C5 0313; Case map*/ "\u03C5\u0313\u0300", /*1F52; 03C5 0313 0300; Case map*/ "\u03C5\u0313\u0301", /*1F54; 03C5 0313 0301; Case map*/ "\u03C5\u0313\u0342", /*1F56; 03C5 0313 0342; Case map*/ "\u1F51", /*1F59; 1F51; Case map*/ "\u1F53", /*1F5B; 1F53; Case map*/ "\u1F55", /*1F5D; 1F55; Case map*/ "\u1F57", /*1F5F; 1F57; Case map*/ "\u1F60", /*1F68; 1F60; Case map*/ "\u1F61", /*1F69; 1F61; Case map*/ "\u1F62", /*1F6A; 1F62; Case map*/ "\u1F63", /*1F6B; 1F63; Case map*/ "\u1F64", /*1F6C; 1F64; Case map*/ "\u1F65", /*1F6D; 1F65; Case map*/ "\u1F66", /*1F6E; 1F66; Case map*/ "\u1F67", /*1F6F; 1F67; Case map*/ "\u1F00\u03B9", /*1F80; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F81; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F82; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F83; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F84; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F85; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F86; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F87; 1F07 03B9; Case map*/ "\u1F00\u03B9", /*1F88; 1F00 03B9; Case map*/ "\u1F01\u03B9", /*1F89; 1F01 03B9; Case map*/ "\u1F02\u03B9", /*1F8A; 1F02 03B9; Case map*/ "\u1F03\u03B9", /*1F8B; 1F03 03B9; Case map*/ "\u1F04\u03B9", /*1F8C; 1F04 03B9; Case map*/ "\u1F05\u03B9", /*1F8D; 1F05 03B9; Case map*/ "\u1F06\u03B9", /*1F8E; 1F06 03B9; Case map*/ "\u1F07\u03B9", /*1F8F; 1F07 03B9; Case map*/ "\u1F20\u03B9", /*1F90; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F91; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F92; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F93; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F94; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F95; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F96; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F97; 1F27 03B9; Case map*/ "\u1F20\u03B9", /*1F98; 1F20 03B9; Case map*/ "\u1F21\u03B9", /*1F99; 1F21 03B9; Case map*/ "\u1F22\u03B9", /*1F9A; 1F22 03B9; Case map*/ "\u1F23\u03B9", /*1F9B; 1F23 03B9; Case map*/ "\u1F24\u03B9", /*1F9C; 1F24 03B9; Case map*/ "\u1F25\u03B9", /*1F9D; 1F25 03B9; Case map*/ "\u1F26\u03B9", /*1F9E; 1F26 03B9; Case map*/ "\u1F27\u03B9", /*1F9F; 1F27 03B9; Case map*/ "\u1F60\u03B9", /*1FA0; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA1; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FA2; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FA3; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FA4; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FA5; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FA6; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FA7; 1F67 03B9; Case map*/ "\u1F60\u03B9", /*1FA8; 1F60 03B9; Case map*/ "\u1F61\u03B9", /*1FA9; 1F61 03B9; Case map*/ "\u1F62\u03B9", /*1FAA; 1F62 03B9; Case map*/ "\u1F63\u03B9", /*1FAB; 1F63 03B9; Case map*/ "\u1F64\u03B9", /*1FAC; 1F64 03B9; Case map*/ "\u1F65\u03B9", /*1FAD; 1F65 03B9; Case map*/ "\u1F66\u03B9", /*1FAE; 1F66 03B9; Case map*/ "\u1F67\u03B9", /*1FAF; 1F67 03B9; Case map*/ "\u1F70\u03B9", /*1FB2; 1F70 03B9; Case map*/ "\u03B1\u03B9", /*1FB3; 03B1 03B9; Case map*/ "\u03AC\u03B9", /*1FB4; 03AC 03B9; Case map*/ "\u03B1\u0342", /*1FB6; 03B1 0342; Case map*/ "\u03B1\u0342\u03B9", /*1FB7; 03B1 0342 03B9; Case map*/ "\u1FB0", /*1FB8; 1FB0; Case map*/ "\u1FB1", /*1FB9; 1FB1; Case map*/ "\u1F70", /*1FBA; 1F70; Case map*/ "\u1F71", /*1FBB; 1F71; Case map*/ "\u03B1\u03B9", /*1FBC; 03B1 03B9; Case map*/ "\u03B9", /*1FBE; 03B9; Case map*/ "\u1F74\u03B9", /*1FC2; 1F74 03B9; Case map*/ "\u03B7\u03B9", /*1FC3; 03B7 03B9; Case map*/ "\u03AE\u03B9", /*1FC4; 03AE 03B9; Case map*/ "\u03B7\u0342", /*1FC6; 03B7 0342; Case map*/ "\u03B7\u0342\u03B9", /*1FC7; 03B7 0342 03B9; Case map*/ "\u1F72", /*1FC8; 1F72; Case map*/ "\u1F73", /*1FC9; 1F73; Case map*/ "\u1F74", /*1FCA; 1F74; Case map*/ "\u1F75", /*1FCB; 1F75; Case map*/ "\u03B7\u03B9", /*1FCC; 03B7 03B9; Case map*/ "\u03B9\u0308\u0300", /*1FD2; 03B9 0308 0300; Case map*/ "\u03B9\u0308\u0301", /*1FD3; 03B9 0308 0301; Case map*/ "\u03B9\u0342", /*1FD6; 03B9 0342; Case map*/ "\u03B9\u0308\u0342", /*1FD7; 03B9 0308 0342; Case map*/ "\u1FD0", /*1FD8; 1FD0; Case map*/ "\u1FD1", /*1FD9; 1FD1; Case map*/ "\u1F76", /*1FDA; 1F76; Case map*/ "\u1F77", /*1FDB; 1F77; Case map*/ "\u03C5\u0308\u0300", /*1FE2; 03C5 0308 0300; Case map*/ "\u03C5\u0308\u0301", /*1FE3; 03C5 0308 0301; Case map*/ "\u03C1\u0313", /*1FE4; 03C1 0313; Case map*/ "\u03C5\u0342", /*1FE6; 03C5 0342; Case map*/ "\u03C5\u0308\u0342", /*1FE7; 03C5 0308 0342; Case map*/ "\u1FE0", /*1FE8; 1FE0; Case map*/ "\u1FE1", /*1FE9; 1FE1; Case map*/ "\u1F7A", /*1FEA; 1F7A; Case map*/ "\u1F7B", /*1FEB; 1F7B; Case map*/ "\u1FE5", /*1FEC; 1FE5; Case map*/ "\u1F7C\u03B9", /*1FF2; 1F7C 03B9; Case map*/ "\u03C9\u03B9", /*1FF3; 03C9 03B9; Case map*/ "\u03CE\u03B9", /*1FF4; 03CE 03B9; Case map*/ "\u03C9\u0342", /*1FF6; 03C9 0342; Case map*/ "\u03C9\u0342\u03B9", /*1FF7; 03C9 0342 03B9; Case map*/ "\u1F78", /*1FF8; 1F78; Case map*/ "\u1F79", /*1FF9; 1F79; Case map*/ "\u1F7C", /*1FFA; 1F7C; Case map*/ "\u1F7D", /*1FFB; 1F7D; Case map*/ "\u03C9\u03B9", /*1FFC; 03C9 03B9; Case map*/ "\u03C9", /*2126; 03C9; Case map*/ "\u006B", /*212A; 006B; Case map*/ "\u00E5", /*212B; 00E5; Case map*/ "\u2170", /*2160; 2170; Case map*/ "\u2171", /*2161; 2171; Case map*/ "\u2172", /*2162; 2172; Case map*/ "\u2173", /*2163; 2173; Case map*/ "\u2174", /*2164; 2174; Case map*/ "\u2175", /*2165; 2175; Case map*/ "\u2176", /*2166; 2176; Case map*/ "\u2177", /*2167; 2177; Case map*/ "\u2178", /*2168; 2178; Case map*/ "\u2179", /*2169; 2179; Case map*/ "\u217A", /*216A; 217A; Case map*/ "\u217B", /*216B; 217B; Case map*/ "\u217C", /*216C; 217C; Case map*/ "\u217D", /*216D; 217D; Case map*/ "\u217E", /*216E; 217E; Case map*/ "\u217F", /*216F; 217F; Case map*/ "\u24D0", /*24B6; 24D0; Case map*/ "\u24D1", /*24B7; 24D1; Case map*/ "\u24D2", /*24B8; 24D2; Case map*/ "\u24D3", /*24B9; 24D3; Case map*/ "\u24D4", /*24BA; 24D4; Case map*/ "\u24D5", /*24BB; 24D5; Case map*/ "\u24D6", /*24BC; 24D6; Case map*/ "\u24D7", /*24BD; 24D7; Case map*/ "\u24D8", /*24BE; 24D8; Case map*/ "\u24D9", /*24BF; 24D9; Case map*/ "\u24DA", /*24C0; 24DA; Case map*/ "\u24DB", /*24C1; 24DB; Case map*/ "\u24DC", /*24C2; 24DC; Case map*/ "\u24DD", /*24C3; 24DD; Case map*/ "\u24DE", /*24C4; 24DE; Case map*/ "\u24DF", /*24C5; 24DF; Case map*/ "\u24E0", /*24C6; 24E0; Case map*/ "\u24E1", /*24C7; 24E1; Case map*/ "\u24E2", /*24C8; 24E2; Case map*/ "\u24E3", /*24C9; 24E3; Case map*/ "\u24E4", /*24CA; 24E4; Case map*/ "\u24E5", /*24CB; 24E5; Case map*/ "\u24E6", /*24CC; 24E6; Case map*/ "\u24E7", /*24CD; 24E7; Case map*/ "\u24E8", /*24CE; 24E8; Case map*/ "\u24E9", /*24CF; 24E9; Case map*/ "\u0066\u0066", /*FB00; 0066 0066; Case map*/ "\u0066\u0069", /*FB01; 0066 0069; Case map*/ "\u0066\u006C", /*FB02; 0066 006C; Case map*/ "\u0066\u0066\u0069", /*FB03; 0066 0066 0069; Case map*/ "\u0066\u0066\u006C", /*FB04; 0066 0066 006C; Case map*/ "\u0073\u0074", /*FB05; 0073 0074; Case map*/ "\u0073\u0074", /*FB06; 0073 0074; Case map*/ "\u0574\u0576", /*FB13; 0574 0576; Case map*/ "\u0574\u0565", /*FB14; 0574 0565; Case map*/ "\u0574\u056B", /*FB15; 0574 056B; Case map*/ "\u057E\u0576", /*FB16; 057E 0576; Case map*/ "\u0574\u056D", /*FB17; 0574 056D; Case map*/ "\uFF41", /*FF21; FF41; Case map*/ "\uFF42", /*FF22; FF42; Case map*/ "\uFF43", /*FF23; FF43; Case map*/ "\uFF44", /*FF24; FF44; Case map*/ "\uFF45", /*FF25; FF45; Case map*/ "\uFF46", /*FF26; FF46; Case map*/ "\uFF47", /*FF27; FF47; Case map*/ "\uFF48", /*FF28; FF48; Case map*/ "\uFF49", /*FF29; FF49; Case map*/ "\uFF4A", /*FF2A; FF4A; Case map*/ "\uFF4B", /*FF2B; FF4B; Case map*/ "\uFF4C", /*FF2C; FF4C; Case map*/ "\uFF4D", /*FF2D; FF4D; Case map*/ "\uFF4E", /*FF2E; FF4E; Case map*/ "\uFF4F", /*FF2F; FF4F; Case map*/ "\uFF50", /*FF30; FF50; Case map*/ "\uFF51", /*FF31; FF51; Case map*/ "\uFF52", /*FF32; FF52; Case map*/ "\uFF53", /*FF33; FF53; Case map*/ "\uFF54", /*FF34; FF54; Case map*/ "\uFF55", /*FF35; FF55; Case map*/ "\uFF56", /*FF36; FF56; Case map*/ "\uFF57", /*FF37; FF57; Case map*/ "\uFF58", /*FF38; FF58; Case map*/ "\uFF59", /*FF39; FF59; Case map*/ "\uFF5A", /*FF3A; FF5A; Case map*/ }; public static char[] C11 = new char[] { '\u0020', /* 0020; SPACE */ }; public static char[] C12 = new char[] { '\u00A0', /* 00A0; NO-BREAK SPACE */ '\u1680', /* 1680; OGHAM SPACE MARK */ '\u2000', /* 2000; EN QUAD */ '\u2001', /* 2001; EM QUAD */ '\u2002', /* 2002; EN SPACE */ '\u2003', /* 2003; EM SPACE */ '\u2004', /* 2004; THREE-PER-EM SPACE */ '\u2005', /* 2005; FOUR-PER-EM SPACE */ '\u2006', /* 2006; SIX-PER-EM SPACE */ '\u2007', /* 2007; FIGURE SPACE */ '\u2008', /* 2008; PUNCTUATION SPACE */ '\u2009', /* 2009; THIN SPACE */ '\u200A', /* 200A; HAIR SPACE */ '\u200B', /* 200B; ZERO WIDTH SPACE */ '\u202F', /* 202F; NARROW NO-BREAK SPACE */ '\u205F', /* 205F; MEDIUM MATHEMATICAL SPACE */ '\u3000', /* 3000; IDEOGRAPHIC SPACE */ }; public static char[][] C21 = new char[][] { new char[] { '\u0000', '\u001F' }, /* 0000-001F; [CONTROL CHARACTERS] */ new char[] { '\u007F' }, /* 007F; DELETE */ }; public static char[][] C22 = new char[][] { new char[] { '\u0080', '\u009F' }, /* 0080-009F; [CONTROL CHARACTERS] */ new char[] { '\u06DD' }, /* 06DD; ARABIC END OF AYAH */ new char[] { '\u070F' }, /* 070F; SYRIAC ABBREVIATION MARK */ new char[] { '\u180E' }, /* 180E; MONGOLIAN VOWEL SEPARATOR */ new char[] { '\u200C' }, /* 200C; ZERO WIDTH NON-JOINER */ new char[] { '\u200D' }, /* 200D; ZERO WIDTH JOINER */ new char[] { '\u2028' }, /* 2028; LINE SEPARATOR */ new char[] { '\u2029' }, /* 2029; PARAGRAPH SEPARATOR */ new char[] { '\u2060' }, /* 2060; WORD JOINER */ new char[] { '\u2061' }, /* 2061; FUNCTION APPLICATION */ new char[] { '\u2062' }, /* 2062; INVISIBLE TIMES */ new char[] { '\u2063' }, /* 2063; INVISIBLE SEPARATOR */ new char[] { '\u206A', '\u206F' }, /* 206A-206F; [CONTROL CHARACTERS] */ new char[] { '\uFEFF' }, /* FEFF; ZERO WIDTH NO-BREAK SPACE */ new char[] { '\uFFF9', '\uFFFC' }, /* FFF9-FFFC; [CONTROL CHARACTERS] */ }; public static char[][] C3 = new char[][] { new char[] { '\uE000', '\uF8FF' }, /* E000-F8FF; [PRIVATE USE, PLANE 0] */ }; public static char[][] C4 = new char[][] { new char[] { '\uFDD0', '\uFDEF' }, /* FDD0-FDEF; [NONCHARACTER CODE POINTS] */ new char[] { '\uFFFE', '\uFFFF' }, /* FFFE-FFFF; [NONCHARACTER CODE POINTS] */ }; public static char[][] C5 = new char[][] { new char[] { '\uD800', '\uDFFF' }, /* D800-DFFF; [SURROGATE CODES] */ }; public static char[][] C6 = new char[][] { new char[] { '\uFFF9' }, /* FFF9; INTERLINEAR ANNOTATION ANCHOR */ new char[] { '\uFFFA' }, /* FFFA; INTERLINEAR ANNOTATION SEPARATOR */ new char[] { '\uFFFB' }, /* FFFB; INTERLINEAR ANNOTATION TERMINATOR */ new char[] { '\uFFFC' }, /* FFFC; OBJECT REPLACEMENT CHARACTER */ new char[] { '\uFFFD' }, /* FFFD; REPLACEMENT CHARACTER */ }; public static char[][] C7 = new char[][] { new char[] { '\u2FF0', '\u2FFB' }, /* 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] */ }; public static char[][] C8 = new char[][] { new char[] { '\u0340' }, /* 0340; COMBINING GRAVE TONE MARK */ new char[] { '\u0341' }, /* 0341; COMBINING ACUTE TONE MARK */ new char[] { '\u200E' }, /* 200E; LEFT-TO-RIGHT MARK */ new char[] { '\u200F' }, /* 200F; RIGHT-TO-LEFT MARK */ new char[] { '\u202A' }, /* 202A; LEFT-TO-RIGHT EMBEDDING */ new char[] { '\u202B' }, /* 202B; RIGHT-TO-LEFT EMBEDDING */ new char[] { '\u202C' }, /* 202C; POP DIRECTIONAL FORMATTING */ new char[] { '\u202D' }, /* 202D; LEFT-TO-RIGHT OVERRIDE */ new char[] { '\u202E' }, /* 202E; RIGHT-TO-LEFT OVERRIDE */ new char[] { '\u206A' }, /* 206A; INHIBIT SYMMETRIC SWAPPING */ new char[] { '\u206B' }, /* 206B; ACTIVATE SYMMETRIC SWAPPING */ new char[] { '\u206C' }, /* 206C; INHIBIT ARABIC FORM SHAPING */ new char[] { '\u206D' }, /* 206D; ACTIVATE ARABIC FORM SHAPING */ new char[] { '\u206E' }, /* 206E; NATIONAL DIGIT SHAPES */ new char[] { '\u206F' }, /* 206F; NOMINAL DIGIT SHAPES */ }; public static char[][] D1 = new char[][] { new char[] { '\u05BE' }, /* 05BE */ new char[] { '\u05C0' }, /* 05C0 */ new char[] { '\u05C3' }, /* 05C3 */ new char[] { '\u05D0', '\u05EA' }, /* 05D0-05EA */ new char[] { '\u05F0', '\u05F4' }, /* 05F0-05F4 */ new char[] { '\u061B' }, /* 061B */ new char[] { '\u061F' }, /* 061F */ new char[] { '\u0621', '\u063A' }, /* 0621-063A */ new char[] { '\u0640', '\u064A' }, /* 0640-064A */ new char[] { '\u066D', '\u066F' }, /* 066D-066F */ new char[] { '\u0671', '\u06D5' }, /* 0671-06D5 */ new char[] { '\u06DD' }, /* 06DD */ new char[] { '\u06E5', '\u06E6' }, /* 06E5-06E6 */ new char[] { '\u06FA', '\u06FE' }, /* 06FA-06FE */ new char[] { '\u0700', '\u070D' }, /* 0700-070D */ new char[] { '\u0710' }, /* 0710 */ new char[] { '\u0712', '\u072C' }, /* 0712-072C */ new char[] { '\u0780', '\u07A5' }, /* 0780-07A5 */ new char[] { '\u07B1' }, /* 07B1 */ new char[] { '\u200F' }, /* 200F */ new char[] { '\uFB1D' }, /* FB1D */ new char[] { '\uFB1F', '\uFB28' }, /* FB1F-FB28 */ new char[] { '\uFB2A', '\uFB36' }, /* FB2A-FB36 */ new char[] { '\uFB38', '\uFB3C' }, /* FB38-FB3C */ new char[] { '\uFB3E' }, /* FB3E */ new char[] { '\uFB40', '\uFB41' }, /* FB40-FB41 */ new char[] { '\uFB43', '\uFB44' }, /* FB43-FB44 */ new char[] { '\uFB46', '\uFBB1' }, /* FB46-FBB1 */ new char[] { '\uFBD3', '\uFD3D' }, /* FBD3-FD3D */ new char[] { '\uFD50', '\uFD8F' }, /* FD50-FD8F */ new char[] { '\uFD92', '\uFDC7' }, /* FD92-FDC7 */ new char[] { '\uFDF0', '\uFDFC' }, /* FDF0-FDFC */ new char[] { '\uFE70', '\uFE74' }, /* FE70-FE74 */ new char[] { '\uFE76', '\uFEFC' }, /* FE76-FEFC */ }; public static char[][] D2 = new char[][] { new char[] { '\u0041', '\u005A' }, /* 0041-005A */ new char[] { '\u0061', '\u007A' }, /* 0061-007A */ new char[] { '\u00AA' }, /* 00AA */ new char[] { '\u00B5' }, /* 00B5 */ new char[] { '\u00BA' }, /* 00BA */ new char[] { '\u00C0', '\u00D6' }, /* 00C0-00D6 */ new char[] { '\u00D8', '\u00F6' }, /* 00D8-00F6 */ new char[] { '\u00F8', '\u0220' }, /* 00F8-0220 */ new char[] { '\u0222', '\u0233' }, /* 0222-0233 */ new char[] { '\u0250', '\u02AD' }, /* 0250-02AD */ new char[] { '\u02B0', '\u02B8' }, /* 02B0-02B8 */ new char[] { '\u02BB', '\u02C1' }, /* 02BB-02C1 */ new char[] { '\u02D0', '\u02D1' }, /* 02D0-02D1 */ new char[] { '\u02E0', '\u02E4' }, /* 02E0-02E4 */ new char[] { '\u02EE' }, /* 02EE */ new char[] { '\u037A' }, /* 037A */ new char[] { '\u0386' }, /* 0386 */ new char[] { '\u0388', '\u038A' }, /* 0388-038A */ new char[] { '\u038C' }, /* 038C */ new char[] { '\u038E', '\u03A1' }, /* 038E-03A1 */ new char[] { '\u03A3', '\u03CE' }, /* 03A3-03CE */ new char[] { '\u03D0', '\u03F5' }, /* 03D0-03F5 */ new char[] { '\u0400', '\u0482' }, /* 0400-0482 */ new char[] { '\u048A', '\u04CE' }, /* 048A-04CE */ new char[] { '\u04D0', '\u04F5' }, /* 04D0-04F5 */ new char[] { '\u04F8', '\u04F9' }, /* 04F8-04F9 */ new char[] { '\u0500', '\u050F' }, /* 0500-050F */ new char[] { '\u0531', '\u0556' }, /* 0531-0556 */ new char[] { '\u0559', '\u055F' }, /* 0559-055F */ new char[] { '\u0561', '\u0587' }, /* 0561-0587 */ new char[] { '\u0589' }, /* 0589 */ new char[] { '\u0903' }, /* 0903 */ new char[] { '\u0905', '\u0939' }, /* 0905-0939 */ new char[] { '\u093D', '\u0940' }, /* 093D-0940 */ new char[] { '\u0949', '\u094C' }, /* 0949-094C */ new char[] { '\u0950' }, /* 0950 */ new char[] { '\u0958', '\u0961' }, /* 0958-0961 */ new char[] { '\u0964', '\u0970' }, /* 0964-0970 */ new char[] { '\u0982', '\u0983' }, /* 0982-0983 */ new char[] { '\u0985', '\u098C' }, /* 0985-098C */ new char[] { '\u098F', '\u0990' }, /* 098F-0990 */ new char[] { '\u0993', '\u09A8' }, /* 0993-09A8 */ new char[] { '\u09AA', '\u09B0' }, /* 09AA-09B0 */ new char[] { '\u09B2' }, /* 09B2 */ new char[] { '\u09B6', '\u09B9' }, /* 09B6-09B9 */ new char[] { '\u09BE', '\u09C0' }, /* 09BE-09C0 */ new char[] { '\u09C7', '\u09C8' }, /* 09C7-09C8 */ new char[] { '\u09CB', '\u09CC' }, /* 09CB-09CC */ new char[] { '\u09D7' }, /* 09D7 */ new char[] { '\u09DC', '\u09DD' }, /* 09DC-09DD */ new char[] { '\u09DF', '\u09E1' }, /* 09DF-09E1 */ new char[] { '\u09E6', '\u09F1' }, /* 09E6-09F1 */ new char[] { '\u09F4', '\u09FA' }, /* 09F4-09FA */ new char[] { '\u0A05', '\u0A0A' }, /* 0A05-0A0A */ new char[] { '\u0A0F', '\u0A10' }, /* 0A0F-0A10 */ new char[] { '\u0A13', '\u0A28' }, /* 0A13-0A28 */ new char[] { '\u0A2A', '\u0A30' }, /* 0A2A-0A30 */ new char[] { '\u0A32', '\u0A33' }, /* 0A32-0A33 */ new char[] { '\u0A35', '\u0A36' }, /* 0A35-0A36 */ new char[] { '\u0A38', '\u0A39' }, /* 0A38-0A39 */ new char[] { '\u0A3E', '\u0A40' }, /* 0A3E-0A40 */ new char[] { '\u0A59', '\u0A5C' }, /* 0A59-0A5C */ new char[] { '\u0A5E' }, /* 0A5E */ new char[] { '\u0A66', '\u0A6F' }, /* 0A66-0A6F */ new char[] { '\u0A72', '\u0A74' }, /* 0A72-0A74 */ new char[] { '\u0A83' }, /* 0A83 */ new char[] { '\u0A85', '\u0A8B' }, /* 0A85-0A8B */ new char[] { '\u0A8D' }, /* 0A8D */ new char[] { '\u0A8F', '\u0A91' }, /* 0A8F-0A91 */ new char[] { '\u0A93', '\u0AA8' }, /* 0A93-0AA8 */ new char[] { '\u0AAA', '\u0AB0' }, /* 0AAA-0AB0 */ new char[] { '\u0AB2', '\u0AB3' }, /* 0AB2-0AB3 */ new char[] { '\u0AB5', '\u0AB9' }, /* 0AB5-0AB9 */ new char[] { '\u0ABD', '\u0AC0' }, /* 0ABD-0AC0 */ new char[] { '\u0AC9' }, /* 0AC9 */ new char[] { '\u0ACB', '\u0ACC' }, /* 0ACB-0ACC */ new char[] { '\u0AD0' }, /* 0AD0 */ new char[] { '\u0AE0' }, /* 0AE0 */ new char[] { '\u0AE6', '\u0AEF' }, /* 0AE6-0AEF */ new char[] { '\u0B02', '\u0B03' }, /* 0B02-0B03 */ new char[] { '\u0B05', '\u0B0C' }, /* 0B05-0B0C */ new char[] { '\u0B0F', '\u0B10' }, /* 0B0F-0B10 */ new char[] { '\u0B13', '\u0B28' }, /* 0B13-0B28 */ new char[] { '\u0B2A', '\u0B30' }, /* 0B2A-0B30 */ new char[] { '\u0B32', '\u0B33' }, /* 0B32-0B33 */ new char[] { '\u0B36', '\u0B39' }, /* 0B36-0B39 */ new char[] { '\u0B3D', '\u0B3E' }, /* 0B3D-0B3E */ new char[] { '\u0B40' }, /* 0B40 */ new char[] { '\u0B47', '\u0B48' }, /* 0B47-0B48 */ new char[] { '\u0B4B', '\u0B4C' }, /* 0B4B-0B4C */ new char[] { '\u0B57' }, /* 0B57 */ new char[] { '\u0B5C', '\u0B5D' }, /* 0B5C-0B5D */ new char[] { '\u0B5F', '\u0B61' }, /* 0B5F-0B61 */ new char[] { '\u0B66', '\u0B70' }, /* 0B66-0B70 */ new char[] { '\u0B83' }, /* 0B83 */ new char[] { '\u0B85', '\u0B8A' }, /* 0B85-0B8A */ new char[] { '\u0B8E', '\u0B90' }, /* 0B8E-0B90 */ new char[] { '\u0B92', '\u0B95' }, /* 0B92-0B95 */ new char[] { '\u0B99', '\u0B9A' }, /* 0B99-0B9A */ new char[] { '\u0B9C' }, /* 0B9C */ new char[] { '\u0B9E', '\u0B9F' }, /* 0B9E-0B9F */ new char[] { '\u0BA3', '\u0BA4' }, /* 0BA3-0BA4 */ new char[] { '\u0BA8', '\u0BAA' }, /* 0BA8-0BAA */ new char[] { '\u0BAE', '\u0BB5' }, /* 0BAE-0BB5 */ new char[] { '\u0BB7', '\u0BB9' }, /* 0BB7-0BB9 */ new char[] { '\u0BBE', '\u0BBF' }, /* 0BBE-0BBF */ new char[] { '\u0BC1', '\u0BC2' }, /* 0BC1-0BC2 */ new char[] { '\u0BC6', '\u0BC8' }, /* 0BC6-0BC8 */ new char[] { '\u0BCA', '\u0BCC' }, /* 0BCA-0BCC */ new char[] { '\u0BD7' }, /* 0BD7 */ new char[] { '\u0BE7', '\u0BF2' }, /* 0BE7-0BF2 */ new char[] { '\u0C01', '\u0C03' }, /* 0C01-0C03 */ new char[] { '\u0C05', '\u0C0C' }, /* 0C05-0C0C */ new char[] { '\u0C0E', '\u0C10' }, /* 0C0E-0C10 */ new char[] { '\u0C12', '\u0C28' }, /* 0C12-0C28 */ new char[] { '\u0C2A', '\u0C33' }, /* 0C2A-0C33 */ new char[] { '\u0C35', '\u0C39' }, /* 0C35-0C39 */ new char[] { '\u0C41', '\u0C44' }, /* 0C41-0C44 */ new char[] { '\u0C60', '\u0C61' }, /* 0C60-0C61 */ new char[] { '\u0C66', '\u0C6F' }, /* 0C66-0C6F */ new char[] { '\u0C82', '\u0C83' }, /* 0C82-0C83 */ new char[] { '\u0C85', '\u0C8C' }, /* 0C85-0C8C */ new char[] { '\u0C8E', '\u0C90' }, /* 0C8E-0C90 */ new char[] { '\u0C92', '\u0CA8' }, /* 0C92-0CA8 */ new char[] { '\u0CAA', '\u0CB3' }, /* 0CAA-0CB3 */ new char[] { '\u0CB5', '\u0CB9' }, /* 0CB5-0CB9 */ new char[] { '\u0CBE' }, /* 0CBE */ new char[] { '\u0CC0', '\u0CC4' }, /* 0CC0-0CC4 */ new char[] { '\u0CC7', '\u0CC8' }, /* 0CC7-0CC8 */ new char[] { '\u0CCA', '\u0CCB' }, /* 0CCA-0CCB */ new char[] { '\u0CD5', '\u0CD6' }, /* 0CD5-0CD6 */ new char[] { '\u0CDE' }, /* 0CDE */ new char[] { '\u0CE0', '\u0CE1' }, /* 0CE0-0CE1 */ new char[] { '\u0CE6', '\u0CEF' }, /* 0CE6-0CEF */ new char[] { '\u0D02', '\u0D03' }, /* 0D02-0D03 */ new char[] { '\u0D05', '\u0D0C' }, /* 0D05-0D0C */ new char[] { '\u0D0E', '\u0D10' }, /* 0D0E-0D10 */ new char[] { '\u0D12', '\u0D28' }, /* 0D12-0D28 */ new char[] { '\u0D2A', '\u0D39' }, /* 0D2A-0D39 */ new char[] { '\u0D3E', '\u0D40' }, /* 0D3E-0D40 */ new char[] { '\u0D46', '\u0D48' }, /* 0D46-0D48 */ new char[] { '\u0D4A', '\u0D4C' }, /* 0D4A-0D4C */ new char[] { '\u0D57' }, /* 0D57 */ new char[] { '\u0D60', '\u0D61' }, /* 0D60-0D61 */ new char[] { '\u0D66', '\u0D6F' }, /* 0D66-0D6F */ new char[] { '\u0D82', '\u0D83' }, /* 0D82-0D83 */ new char[] { '\u0D85', '\u0D96' }, /* 0D85-0D96 */ new char[] { '\u0D9A', '\u0DB1' }, /* 0D9A-0DB1 */ new char[] { '\u0DB3', '\u0DBB' }, /* 0DB3-0DBB */ new char[] { '\u0DBD' }, /* 0DBD */ new char[] { '\u0DC0', '\u0DC6' }, /* 0DC0-0DC6 */ new char[] { '\u0DCF', '\u0DD1' }, /* 0DCF-0DD1 */ new char[] { '\u0DD8', '\u0DDF' }, /* 0DD8-0DDF */ new char[] { '\u0DF2', '\u0DF4' }, /* 0DF2-0DF4 */ new char[] { '\u0E01', '\u0E30' }, /* 0E01-0E30 */ new char[] { '\u0E32', '\u0E33' }, /* 0E32-0E33 */ new char[] { '\u0E40', '\u0E46' }, /* 0E40-0E46 */ new char[] { '\u0E4F', '\u0E5B' }, /* 0E4F-0E5B */ new char[] { '\u0E81', '\u0E82' }, /* 0E81-0E82 */ new char[] { '\u0E84' }, /* 0E84 */ new char[] { '\u0E87', '\u0E88' }, /* 0E87-0E88 */ new char[] { '\u0E8A' }, /* 0E8A */ new char[] { '\u0E8D' }, /* 0E8D */ new char[] { '\u0E94', '\u0E97' }, /* 0E94-0E97 */ new char[] { '\u0E99', '\u0E9F' }, /* 0E99-0E9F */ new char[] { '\u0EA1', '\u0EA3' }, /* 0EA1-0EA3 */ new char[] { '\u0EA5' }, /* 0EA5 */ new char[] { '\u0EA7' }, /* 0EA7 */ new char[] { '\u0EAA', '\u0EAB' }, /* 0EAA-0EAB */ new char[] { '\u0EAD', '\u0EB0' }, /* 0EAD-0EB0 */ new char[] { '\u0EB2', '\u0EB3' }, /* 0EB2-0EB3 */ new char[] { '\u0EBD' }, /* 0EBD */ new char[] { '\u0EC0', '\u0EC4' }, /* 0EC0-0EC4 */ new char[] { '\u0EC6' }, /* 0EC6 */ new char[] { '\u0ED0', '\u0ED9' }, /* 0ED0-0ED9 */ new char[] { '\u0EDC', '\u0EDD' }, /* 0EDC-0EDD */ new char[] { '\u0F00', '\u0F17' }, /* 0F00-0F17 */ new char[] { '\u0F1A', '\u0F34' }, /* 0F1A-0F34 */ new char[] { '\u0F36' }, /* 0F36 */ new char[] { '\u0F38' }, /* 0F38 */ new char[] { '\u0F3E', '\u0F47' }, /* 0F3E-0F47 */ new char[] { '\u0F49', '\u0F6A' }, /* 0F49-0F6A */ new char[] { '\u0F7F' }, /* 0F7F */ new char[] { '\u0F85' }, /* 0F85 */ new char[] { '\u0F88', '\u0F8B' }, /* 0F88-0F8B */ new char[] { '\u0FBE', '\u0FC5' }, /* 0FBE-0FC5 */ new char[] { '\u0FC7', '\u0FCC' }, /* 0FC7-0FCC */ new char[] { '\u0FCF' }, /* 0FCF */ new char[] { '\u1000', '\u1021' }, /* 1000-1021 */ new char[] { '\u1023', '\u1027' }, /* 1023-1027 */ new char[] { '\u1029', '\u102A' }, /* 1029-102A */ new char[] { '\u102C' }, /* 102C */ new char[] { '\u1031' }, /* 1031 */ new char[] { '\u1038' }, /* 1038 */ new char[] { '\u1040', '\u1057' }, /* 1040-1057 */ new char[] { '\u10A0', '\u10C5' }, /* 10A0-10C5 */ new char[] { '\u10D0', '\u10F8' }, /* 10D0-10F8 */ new char[] { '\u10FB' }, /* 10FB */ new char[] { '\u1100', '\u1159' }, /* 1100-1159 */ new char[] { '\u115F', '\u11A2' }, /* 115F-11A2 */ new char[] { '\u11A8', '\u11F9' }, /* 11A8-11F9 */ new char[] { '\u1200', '\u1206' }, /* 1200-1206 */ new char[] { '\u1208', '\u1246' }, /* 1208-1246 */ new char[] { '\u1248' }, /* 1248 */ new char[] { '\u124A', '\u124D' }, /* 124A-124D */ new char[] { '\u1250', '\u1256' }, /* 1250-1256 */ new char[] { '\u1258' }, /* 1258 */ new char[] { '\u125A', '\u125D' }, /* 125A-125D */ new char[] { '\u1260', '\u1286' }, /* 1260-1286 */ new char[] { '\u1288' }, /* 1288 */ new char[] { '\u128A', '\u128D' }, /* 128A-128D */ new char[] { '\u1290', '\u12AE' }, /* 1290-12AE */ new char[] { '\u12B0' }, /* 12B0 */ new char[] { '\u12B2', '\u12B5' }, /* 12B2-12B5 */ new char[] { '\u12B8', '\u12BE' }, /* 12B8-12BE */ new char[] { '\u12C0' }, /* 12C0 */ new char[] { '\u12C2', '\u12C5' }, /* 12C2-12C5 */ new char[] { '\u12C8', '\u12CE' }, /* 12C8-12CE */ new char[] { '\u12D0', '\u12D6' }, /* 12D0-12D6 */ new char[] { '\u12D8', '\u12EE' }, /* 12D8-12EE */ new char[] { '\u12F0', '\u130E' }, /* 12F0-130E */ new char[] { '\u1310' }, /* 1310 */ new char[] { '\u1312', '\u1315' }, /* 1312-1315 */ new char[] { '\u1318', '\u131E' }, /* 1318-131E */ new char[] { '\u1320', '\u1346' }, /* 1320-1346 */ new char[] { '\u1348', '\u135A' }, /* 1348-135A */ new char[] { '\u1361', '\u137C' }, /* 1361-137C */ new char[] { '\u13A0', '\u13F4' }, /* 13A0-13F4 */ new char[] { '\u1401', '\u1676' }, /* 1401-1676 */ new char[] { '\u1681', '\u169A' }, /* 1681-169A */ new char[] { '\u16A0', '\u16F0' }, /* 16A0-16F0 */ new char[] { '\u1700', '\u170C' }, /* 1700-170C */ new char[] { '\u170E', '\u1711' }, /* 170E-1711 */ new char[] { '\u1720', '\u1731' }, /* 1720-1731 */ new char[] { '\u1735', '\u1736' }, /* 1735-1736 */ new char[] { '\u1740', '\u1751' }, /* 1740-1751 */ new char[] { '\u1760', '\u176C' }, /* 1760-176C */ new char[] { '\u176E', '\u1770' }, /* 176E-1770 */ new char[] { '\u1780', '\u17B6' }, /* 1780-17B6 */ new char[] { '\u17BE', '\u17C5' }, /* 17BE-17C5 */ new char[] { '\u17C7', '\u17C8' }, /* 17C7-17C8 */ new char[] { '\u17D4', '\u17DA' }, /* 17D4-17DA */ new char[] { '\u17DC' }, /* 17DC */ new char[] { '\u17E0', '\u17E9' }, /* 17E0-17E9 */ new char[] { '\u1810', '\u1819' }, /* 1810-1819 */ new char[] { '\u1820', '\u1877' }, /* 1820-1877 */ new char[] { '\u1880', '\u18A8' }, /* 1880-18A8 */ new char[] { '\u1E00', '\u1E9B' }, /* 1E00-1E9B */ new char[] { '\u1EA0', '\u1EF9' }, /* 1EA0-1EF9 */ new char[] { '\u1F00', '\u1F15' }, /* 1F00-1F15 */ new char[] { '\u1F18', '\u1F1D' }, /* 1F18-1F1D */ new char[] { '\u1F20', '\u1F45' }, /* 1F20-1F45 */ new char[] { '\u1F48', '\u1F4D' }, /* 1F48-1F4D */ new char[] { '\u1F50', '\u1F57' }, /* 1F50-1F57 */ new char[] { '\u1F59' }, /* 1F59 */ new char[] { '\u1F5B' }, /* 1F5B */ new char[] { '\u1F5D' }, /* 1F5D */ new char[] { '\u1F5F', '\u1F7D' }, /* 1F5F-1F7D */ new char[] { '\u1F80', '\u1FB4' }, /* 1F80-1FB4 */ new char[] { '\u1FB6', '\u1FBC' }, /* 1FB6-1FBC */ new char[] { '\u1FBE' }, /* 1FBE */ new char[] { '\u1FC2', '\u1FC4' }, /* 1FC2-1FC4 */ new char[] { '\u1FC6', '\u1FCC' }, /* 1FC6-1FCC */ new char[] { '\u1FD0', '\u1FD3' }, /* 1FD0-1FD3 */ new char[] { '\u1FD6', '\u1FDB' }, /* 1FD6-1FDB */ new char[] { '\u1FE0', '\u1FEC' }, /* 1FE0-1FEC */ new char[] { '\u1FF2', '\u1FF4' }, /* 1FF2-1FF4 */ new char[] { '\u1FF6', '\u1FFC' }, /* 1FF6-1FFC */ new char[] { '\u200E' }, /* 200E */ new char[] { '\u2071' }, /* 2071 */ new char[] { '\u207F' }, /* 207F */ new char[] { '\u2102' }, /* 2102 */ new char[] { '\u2107' }, /* 2107 */ new char[] { '\u210A', '\u2113' }, /* 210A-2113 */ new char[] { '\u2115' }, /* 2115 */ new char[] { '\u2119', '\u211D' }, /* 2119-211D */ new char[] { '\u2124' }, /* 2124 */ new char[] { '\u2126' }, /* 2126 */ new char[] { '\u2128' }, /* 2128 */ new char[] { '\u212A', '\u212D' }, /* 212A-212D */ new char[] { '\u212F', '\u2131' }, /* 212F-2131 */ new char[] { '\u2133', '\u2139' }, /* 2133-2139 */ new char[] { '\u213D', '\u213F' }, /* 213D-213F */ new char[] { '\u2145', '\u2149' }, /* 2145-2149 */ new char[] { '\u2160', '\u2183' }, /* 2160-2183 */ new char[] { '\u2336', '\u237A' }, /* 2336-237A */ new char[] { '\u2395' }, /* 2395 */ new char[] { '\u249C', '\u24E9' }, /* 249C-24E9 */ new char[] { '\u3005', '\u3007' }, /* 3005-3007 */ new char[] { '\u3021', '\u3029' }, /* 3021-3029 */ new char[] { '\u3031', '\u3035' }, /* 3031-3035 */ new char[] { '\u3038', '\u303C' }, /* 3038-303C */ new char[] { '\u3041', '\u3096' }, /* 3041-3096 */ new char[] { '\u309D', '\u309F' }, /* 309D-309F */ new char[] { '\u30A1', '\u30FA' }, /* 30A1-30FA */ new char[] { '\u30FC', '\u30FF' }, /* 30FC-30FF */ new char[] { '\u3105', '\u312C' }, /* 3105-312C */ new char[] { '\u3131', '\u318E' }, /* 3131-318E */ new char[] { '\u3190', '\u31B7' }, /* 3190-31B7 */ new char[] { '\u31F0', '\u321C' }, /* 31F0-321C */ new char[] { '\u3220', '\u3243' }, /* 3220-3243 */ new char[] { '\u3260', '\u327B' }, /* 3260-327B */ new char[] { '\u327F', '\u32B0' }, /* 327F-32B0 */ new char[] { '\u32C0', '\u32CB' }, /* 32C0-32CB */ new char[] { '\u32D0', '\u32FE' }, /* 32D0-32FE */ new char[] { '\u3300', '\u3376' }, /* 3300-3376 */ new char[] { '\u337B', '\u33DD' }, /* 337B-33DD */ new char[] { '\u33E0', '\u33FE' }, /* 33E0-33FE */ new char[] { '\u3400', '\u4DB5' }, /* 3400-4DB5 */ new char[] { '\u4E00', '\u9FA5' }, /* 4E00-9FA5 */ new char[] { '\uA000', '\uA48C' }, /* A000-A48C */ new char[] { '\uAC00', '\uD7A3' }, /* AC00-D7A3 */ new char[] { '\uD800', '\uFA2D' }, /* D800-FA2D */ new char[] { '\uFA30', '\uFA6A' }, /* FA30-FA6A */ new char[] { '\uFB00', '\uFB06' }, /* FB00-FB06 */ new char[] { '\uFB13', '\uFB17' }, /* FB13-FB17 */ new char[] { '\uFF21', '\uFF3A' }, /* FF21-FF3A */ new char[] { '\uFF41', '\uFF5A' }, /* FF41-FF5A */ new char[] { '\uFF66', '\uFFBE' }, /* FF66-FFBE */ new char[] { '\uFFC2', '\uFFC7' }, /* FFC2-FFC7 */ new char[] { '\uFFCA', '\uFFCF' }, /* FFCA-FFCF */ new char[] { '\uFFD2', '\uFFD7' }, /* FFD2-FFD7 */ new char[] { '\uFFDA', '\uFFDC' }, /* FFDA-FFDC */ }; } } libidn-1.28/csharp/libidn_PPC.csdproj0000664000000000000000000001536311746453142014426 00000000000000 libidn-1.28/csharp/libidn.csproj.user0000664000000000000000000000067111746453142014531 00000000000000 libidn-1.28/csharp/libidn.sln0000664000000000000000000000147611746453142013054 00000000000000 Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 # SharpDevelop 2.1.0.2376 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libidn", "libidn.csproj", "{BED43666-B1A2-486D-871C-A65A2A925764}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.Build.0 = Debug|Any CPU {BED43666-B1A2-486D-871C-A65A2A925764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BED43666-B1A2-486D-871C-A65A2A925764}.Release|Any CPU.Build.0 = Release|Any CPU {BED43666-B1A2-486D-871C-A65A2A925764}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection EndGlobal libidn-1.28/csharp/DecompositionMappings.cs0000644000000000000000000015603612167245632015741 00000000000000// Do not edit !!! // this file is generated automatically public class DecompositionMappings { public static readonly string[] m = new string[] { "\u0020", "\u0020\u0308", "\u0061", "\u0020\u0304", "\u0032", "\u0033", "\u0020\u0301", "\u03BC", "\u0020\u0327", "\u0031", "\u006F", "\u0031\u2044\u0034", "\u0031\u2044\u0032", "\u0033\u2044\u0034", "\u0041\u0300", "\u0041\u0301", "\u0041\u0302", "\u0041\u0303", "\u0041\u0308", "\u0041\u030A", "\u0043\u0327", "\u0045\u0300", "\u0045\u0301", "\u0045\u0302", "\u0045\u0308", "\u0049\u0300", "\u0049\u0301", "\u0049\u0302", "\u0049\u0308", "\u004E\u0303", "\u004F\u0300", "\u004F\u0301", "\u004F\u0302", "\u004F\u0303", "\u004F\u0308", "\u0055\u0300", "\u0055\u0301", "\u0055\u0302", "\u0055\u0308", "\u0059\u0301", "\u0061\u0300", "\u0061\u0301", "\u0061\u0302", "\u0061\u0303", "\u0061\u0308", "\u0061\u030A", "\u0063\u0327", "\u0065\u0300", "\u0065\u0301", "\u0065\u0302", "\u0065\u0308", "\u0069\u0300", "\u0069\u0301", "\u0069\u0302", "\u0069\u0308", "\u006E\u0303", "\u006F\u0300", "\u006F\u0301", "\u006F\u0302", "\u006F\u0303", "\u006F\u0308", "\u0075\u0300", "\u0075\u0301", "\u0075\u0302", "\u0075\u0308", "\u0079\u0301", "\u0079\u0308", "\u0041\u0304", "\u0061\u0304", "\u0041\u0306", "\u0061\u0306", "\u0041\u0328", "\u0061\u0328", "\u0043\u0301", "\u0063\u0301", "\u0043\u0302", "\u0063\u0302", "\u0043\u0307", "\u0063\u0307", "\u0043\u030C", "\u0063\u030C", "\u0044\u030C", "\u0064\u030C", "\u0045\u0304", "\u0065\u0304", "\u0045\u0306", "\u0065\u0306", "\u0045\u0307", "\u0065\u0307", "\u0045\u0328", "\u0065\u0328", "\u0045\u030C", "\u0065\u030C", "\u0047\u0302", "\u0067\u0302", "\u0047\u0306", "\u0067\u0306", "\u0047\u0307", "\u0067\u0307", "\u0047\u0327", "\u0067\u0327", "\u0048\u0302", "\u0068\u0302", "\u0049\u0303", "\u0069\u0303", "\u0049\u0304", "\u0069\u0304", "\u0049\u0306", "\u0069\u0306", "\u0049\u0328", "\u0069\u0328", "\u0049\u0307", "\u0049\u004A", "\u0069\u006A", "\u004A\u0302", "\u006A\u0302", "\u004B\u0327", "\u006B\u0327", "\u004C\u0301", "\u006C\u0301", "\u004C\u0327", "\u006C\u0327", "\u004C\u030C", "\u006C\u030C", "\u004C\u00B7", "\u006C\u00B7", "\u004E\u0301", "\u006E\u0301", "\u004E\u0327", "\u006E\u0327", "\u004E\u030C", "\u006E\u030C", "\u02BC\u006E", "\u004F\u0304", "\u006F\u0304", "\u004F\u0306", "\u006F\u0306", "\u004F\u030B", "\u006F\u030B", "\u0052\u0301", "\u0072\u0301", "\u0052\u0327", "\u0072\u0327", "\u0052\u030C", "\u0072\u030C", "\u0053\u0301", "\u0073\u0301", "\u0053\u0302", "\u0073\u0302", "\u0053\u0327", "\u0073\u0327", "\u0053\u030C", "\u0073\u030C", "\u0054\u0327", "\u0074\u0327", "\u0054\u030C", "\u0074\u030C", "\u0055\u0303", "\u0075\u0303", "\u0055\u0304", "\u0075\u0304", "\u0055\u0306", "\u0075\u0306", "\u0055\u030A", "\u0075\u030A", "\u0055\u030B", "\u0075\u030B", "\u0055\u0328", "\u0075\u0328", "\u0057\u0302", "\u0077\u0302", "\u0059\u0302", "\u0079\u0302", "\u0059\u0308", "\u005A\u0301", "\u007A\u0301", "\u005A\u0307", "\u007A\u0307", "\u005A\u030C", "\u007A\u030C", "\u0073", "\u004F\u031B", "\u006F\u031B", "\u0055\u031B", "\u0075\u031B", "\u0044\u005A\u030C", "\u0044\u007A\u030C", "\u0064\u007A\u030C", "\u004C\u004A", "\u004C\u006A", "\u006C\u006A", "\u004E\u004A", "\u004E\u006A", "\u006E\u006A", "\u0041\u030C", "\u0061\u030C", "\u0049\u030C", "\u0069\u030C", "\u004F\u030C", "\u006F\u030C", "\u0055\u030C", "\u0075\u030C", "\u0055\u0308\u0304", "\u0075\u0308\u0304", "\u0055\u0308\u0301", "\u0075\u0308\u0301", "\u0055\u0308\u030C", "\u0075\u0308\u030C", "\u0055\u0308\u0300", "\u0075\u0308\u0300", "\u0041\u0308\u0304", "\u0061\u0308\u0304", "\u0041\u0307\u0304", "\u0061\u0307\u0304", "\u00C6\u0304", "\u00E6\u0304", "\u0047\u030C", "\u0067\u030C", "\u004B\u030C", "\u006B\u030C", "\u004F\u0328", "\u006F\u0328", "\u004F\u0328\u0304", "\u006F\u0328\u0304", "\u01B7\u030C", "\u0292\u030C", "\u006A\u030C", "\u0044\u005A", "\u0044\u007A", "\u0064\u007A", "\u0047\u0301", "\u0067\u0301", "\u004E\u0300", "\u006E\u0300", "\u0041\u030A\u0301", "\u0061\u030A\u0301", "\u00C6\u0301", "\u00E6\u0301", "\u00D8\u0301", "\u00F8\u0301", "\u0041\u030F", "\u0061\u030F", "\u0041\u0311", "\u0061\u0311", "\u0045\u030F", "\u0065\u030F", "\u0045\u0311", "\u0065\u0311", "\u0049\u030F", "\u0069\u030F", "\u0049\u0311", "\u0069\u0311", "\u004F\u030F", "\u006F\u030F", "\u004F\u0311", "\u006F\u0311", "\u0052\u030F", "\u0072\u030F", "\u0052\u0311", "\u0072\u0311", "\u0055\u030F", "\u0075\u030F", "\u0055\u0311", "\u0075\u0311", "\u0053\u0326", "\u0073\u0326", "\u0054\u0326", "\u0074\u0326", "\u0048\u030C", "\u0068\u030C", "\u0041\u0307", "\u0061\u0307", "\u0045\u0327", "\u0065\u0327", "\u004F\u0308\u0304", "\u006F\u0308\u0304", "\u004F\u0303\u0304", "\u006F\u0303\u0304", "\u004F\u0307", "\u006F\u0307", "\u004F\u0307\u0304", "\u006F\u0307\u0304", "\u0059\u0304", "\u0079\u0304", "\u0068", "\u0266", "\u006A", "\u0072", "\u0279", "\u027B", "\u0281", "\u0077", "\u0079", "\u0020\u0306", "\u0020\u0307", "\u0020\u030A", "\u0020\u0328", "\u0020\u0303", "\u0020\u030B", "\u0263", "\u006C", "\u0078", "\u0295", "\u0300", "\u0301", "\u0313", "\u0308\u0301", "\u02B9", "\u0020\u0345", "\u003B", "\u0020\u0308\u0301", "\u0391\u0301", "\u00B7", "\u0395\u0301", "\u0397\u0301", "\u0399\u0301", "\u039F\u0301", "\u03A5\u0301", "\u03A9\u0301", "\u03B9\u0308\u0301", "\u0399\u0308", "\u03A5\u0308", "\u03B1\u0301", "\u03B5\u0301", "\u03B7\u0301", "\u03B9\u0301", "\u03C5\u0308\u0301", "\u03B9\u0308", "\u03C5\u0308", "\u03BF\u0301", "\u03C5\u0301", "\u03C9\u0301", "\u03B2", "\u03B8", "\u03A5", "\u03C6", "\u03C0", "\u03BA", "\u03C1", "\u03C2", "\u0398", "\u03B5", "\u0415\u0300", "\u0415\u0308", "\u0413\u0301", "\u0406\u0308", "\u041A\u0301", "\u0418\u0300", "\u0423\u0306", "\u0418\u0306", "\u0438\u0306", "\u0435\u0300", "\u0435\u0308", "\u0433\u0301", "\u0456\u0308", "\u043A\u0301", "\u0438\u0300", "\u0443\u0306", "\u0474\u030F", "\u0475\u030F", "\u0416\u0306", "\u0436\u0306", "\u0410\u0306", "\u0430\u0306", "\u0410\u0308", "\u0430\u0308", "\u0415\u0306", "\u0435\u0306", "\u04D8\u0308", "\u04D9\u0308", "\u0416\u0308", "\u0436\u0308", "\u0417\u0308", "\u0437\u0308", "\u0418\u0304", "\u0438\u0304", "\u0418\u0308", "\u0438\u0308", "\u041E\u0308", "\u043E\u0308", "\u04E8\u0308", "\u04E9\u0308", "\u042D\u0308", "\u044D\u0308", "\u0423\u0304", "\u0443\u0304", "\u0423\u0308", "\u0443\u0308", "\u0423\u030B", "\u0443\u030B", "\u0427\u0308", "\u0447\u0308", "\u042B\u0308", "\u044B\u0308", "\u0565\u0582", "\u0627\u0653", "\u0627\u0654", "\u0648\u0654", "\u0627\u0655", "\u064A\u0654", "\u0627\u0674", "\u0648\u0674", "\u06C7\u0674", "\u064A\u0674", "\u06D5\u0654", "\u06C1\u0654", "\u06D2\u0654", "\u0928\u093C", "\u0930\u093C", "\u0933\u093C", "\u0915\u093C", "\u0916\u093C", "\u0917\u093C", "\u091C\u093C", "\u0921\u093C", "\u0922\u093C", "\u092B\u093C", "\u092F\u093C", "\u09C7\u09BE", "\u09C7\u09D7", "\u09A1\u09BC", "\u09A2\u09BC", "\u09AF\u09BC", "\u0A32\u0A3C", "\u0A38\u0A3C", "\u0A16\u0A3C", "\u0A17\u0A3C", "\u0A1C\u0A3C", "\u0A2B\u0A3C", "\u0B47\u0B56", "\u0B47\u0B3E", "\u0B47\u0B57", "\u0B21\u0B3C", "\u0B22\u0B3C", "\u0B92\u0BD7", "\u0BC6\u0BBE", "\u0BC7\u0BBE", "\u0BC6\u0BD7", "\u0C46\u0C56", "\u0CBF\u0CD5", "\u0CC6\u0CD5", "\u0CC6\u0CD6", "\u0CC6\u0CC2", "\u0CC6\u0CC2\u0CD5", "\u0D46\u0D3E", "\u0D47\u0D3E", "\u0D46\u0D57", "\u0DD9\u0DCA", "\u0DD9\u0DCF", "\u0DD9\u0DCF\u0DCA", "\u0DD9\u0DDF", "\u0E4D\u0E32", "\u0ECD\u0EB2", "\u0EAB\u0E99", "\u0EAB\u0EA1", "\u0F0B", "\u0F42\u0FB7", "\u0F4C\u0FB7", "\u0F51\u0FB7", "\u0F56\u0FB7", "\u0F5B\u0FB7", "\u0F40\u0FB5", "\u0F71\u0F72", "\u0F71\u0F74", "\u0FB2\u0F80", "\u0FB2\u0F71\u0F80", "\u0FB3\u0F80", "\u0FB3\u0F71\u0F80", "\u0F71\u0F80", "\u0F92\u0FB7", "\u0F9C\u0FB7", "\u0FA1\u0FB7", "\u0FA6\u0FB7", "\u0FAB\u0FB7", "\u0F90\u0FB5", "\u1025\u102E", "\u0041\u0325", "\u0061\u0325", "\u0042\u0307", "\u0062\u0307", "\u0042\u0323", "\u0062\u0323", "\u0042\u0331", "\u0062\u0331", "\u0043\u0327\u0301", "\u0063\u0327\u0301", "\u0044\u0307", "\u0064\u0307", "\u0044\u0323", "\u0064\u0323", "\u0044\u0331", "\u0064\u0331", "\u0044\u0327", "\u0064\u0327", "\u0044\u032D", "\u0064\u032D", "\u0045\u0304\u0300", "\u0065\u0304\u0300", "\u0045\u0304\u0301", "\u0065\u0304\u0301", "\u0045\u032D", "\u0065\u032D", "\u0045\u0330", "\u0065\u0330", "\u0045\u0327\u0306", "\u0065\u0327\u0306", "\u0046\u0307", "\u0066\u0307", "\u0047\u0304", "\u0067\u0304", "\u0048\u0307", "\u0068\u0307", "\u0048\u0323", "\u0068\u0323", "\u0048\u0308", "\u0068\u0308", "\u0048\u0327", "\u0068\u0327", "\u0048\u032E", "\u0068\u032E", "\u0049\u0330", "\u0069\u0330", "\u0049\u0308\u0301", "\u0069\u0308\u0301", "\u004B\u0301", "\u006B\u0301", "\u004B\u0323", "\u006B\u0323", "\u004B\u0331", "\u006B\u0331", "\u004C\u0323", "\u006C\u0323", "\u004C\u0323\u0304", "\u006C\u0323\u0304", "\u004C\u0331", "\u006C\u0331", "\u004C\u032D", "\u006C\u032D", "\u004D\u0301", "\u006D\u0301", "\u004D\u0307", "\u006D\u0307", "\u004D\u0323", "\u006D\u0323", "\u004E\u0307", "\u006E\u0307", "\u004E\u0323", "\u006E\u0323", "\u004E\u0331", "\u006E\u0331", "\u004E\u032D", "\u006E\u032D", "\u004F\u0303\u0301", "\u006F\u0303\u0301", "\u004F\u0303\u0308", "\u006F\u0303\u0308", "\u004F\u0304\u0300", "\u006F\u0304\u0300", "\u004F\u0304\u0301", "\u006F\u0304\u0301", "\u0050\u0301", "\u0070\u0301", "\u0050\u0307", "\u0070\u0307", "\u0052\u0307", "\u0072\u0307", "\u0052\u0323", "\u0072\u0323", "\u0052\u0323\u0304", "\u0072\u0323\u0304", "\u0052\u0331", "\u0072\u0331", "\u0053\u0307", "\u0073\u0307", "\u0053\u0323", "\u0073\u0323", "\u0053\u0301\u0307", "\u0073\u0301\u0307", "\u0053\u030C\u0307", "\u0073\u030C\u0307", "\u0053\u0323\u0307", "\u0073\u0323\u0307", "\u0054\u0307", "\u0074\u0307", "\u0054\u0323", "\u0074\u0323", "\u0054\u0331", "\u0074\u0331", "\u0054\u032D", "\u0074\u032D", "\u0055\u0324", "\u0075\u0324", "\u0055\u0330", "\u0075\u0330", "\u0055\u032D", "\u0075\u032D", "\u0055\u0303\u0301", "\u0075\u0303\u0301", "\u0055\u0304\u0308", "\u0075\u0304\u0308", "\u0056\u0303", "\u0076\u0303", "\u0056\u0323", "\u0076\u0323", "\u0057\u0300", "\u0077\u0300", "\u0057\u0301", "\u0077\u0301", "\u0057\u0308", "\u0077\u0308", "\u0057\u0307", "\u0077\u0307", "\u0057\u0323", "\u0077\u0323", "\u0058\u0307", "\u0078\u0307", "\u0058\u0308", "\u0078\u0308", "\u0059\u0307", "\u0079\u0307", "\u005A\u0302", "\u007A\u0302", "\u005A\u0323", "\u007A\u0323", "\u005A\u0331", "\u007A\u0331", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u0041\u0323", "\u0061\u0323", "\u0041\u0309", "\u0061\u0309", "\u0041\u0302\u0301", "\u0061\u0302\u0301", "\u0041\u0302\u0300", "\u0061\u0302\u0300", "\u0041\u0302\u0309", "\u0061\u0302\u0309", "\u0041\u0302\u0303", "\u0061\u0302\u0303", "\u0041\u0323\u0302", "\u0061\u0323\u0302", "\u0041\u0306\u0301", "\u0061\u0306\u0301", "\u0041\u0306\u0300", "\u0061\u0306\u0300", "\u0041\u0306\u0309", "\u0061\u0306\u0309", "\u0041\u0306\u0303", "\u0061\u0306\u0303", "\u0041\u0323\u0306", "\u0061\u0323\u0306", "\u0045\u0323", "\u0065\u0323", "\u0045\u0309", "\u0065\u0309", "\u0045\u0303", "\u0065\u0303", "\u0045\u0302\u0301", "\u0065\u0302\u0301", "\u0045\u0302\u0300", "\u0065\u0302\u0300", "\u0045\u0302\u0309", "\u0065\u0302\u0309", "\u0045\u0302\u0303", "\u0065\u0302\u0303", "\u0045\u0323\u0302", "\u0065\u0323\u0302", "\u0049\u0309", "\u0069\u0309", "\u0049\u0323", "\u0069\u0323", "\u004F\u0323", "\u006F\u0323", "\u004F\u0309", "\u006F\u0309", "\u004F\u0302\u0301", "\u006F\u0302\u0301", "\u004F\u0302\u0300", "\u006F\u0302\u0300", "\u004F\u0302\u0309", "\u006F\u0302\u0309", "\u004F\u0302\u0303", "\u006F\u0302\u0303", "\u004F\u0323\u0302", "\u006F\u0323\u0302", "\u004F\u031B\u0301", "\u006F\u031B\u0301", "\u004F\u031B\u0300", "\u006F\u031B\u0300", "\u004F\u031B\u0309", "\u006F\u031B\u0309", "\u004F\u031B\u0303", "\u006F\u031B\u0303", "\u004F\u031B\u0323", "\u006F\u031B\u0323", "\u0055\u0323", "\u0075\u0323", "\u0055\u0309", "\u0075\u0309", "\u0055\u031B\u0301", "\u0075\u031B\u0301", "\u0055\u031B\u0300", "\u0075\u031B\u0300", "\u0055\u031B\u0309", "\u0075\u031B\u0309", "\u0055\u031B\u0303", "\u0075\u031B\u0303", "\u0055\u031B\u0323", "\u0075\u031B\u0323", "\u0059\u0300", "\u0079\u0300", "\u0059\u0323", "\u0079\u0323", "\u0059\u0309", "\u0079\u0309", "\u0059\u0303", "\u0079\u0303", "\u03B1\u0313", "\u03B1\u0314", "\u03B1\u0313\u0300", "\u03B1\u0314\u0300", "\u03B1\u0313\u0301", "\u03B1\u0314\u0301", "\u03B1\u0313\u0342", "\u03B1\u0314\u0342", "\u0391\u0313", "\u0391\u0314", "\u0391\u0313\u0300", "\u0391\u0314\u0300", "\u0391\u0313\u0301", "\u0391\u0314\u0301", "\u0391\u0313\u0342", "\u0391\u0314\u0342", "\u03B5\u0313", "\u03B5\u0314", "\u03B5\u0313\u0300", "\u03B5\u0314\u0300", "\u03B5\u0313\u0301", "\u03B5\u0314\u0301", "\u0395\u0313", "\u0395\u0314", "\u0395\u0313\u0300", "\u0395\u0314\u0300", "\u0395\u0313\u0301", "\u0395\u0314\u0301", "\u03B7\u0313", "\u03B7\u0314", "\u03B7\u0313\u0300", "\u03B7\u0314\u0300", "\u03B7\u0313\u0301", "\u03B7\u0314\u0301", "\u03B7\u0313\u0342", "\u03B7\u0314\u0342", "\u0397\u0313", "\u0397\u0314", "\u0397\u0313\u0300", "\u0397\u0314\u0300", "\u0397\u0313\u0301", "\u0397\u0314\u0301", "\u0397\u0313\u0342", "\u0397\u0314\u0342", "\u03B9\u0313", "\u03B9\u0314", "\u03B9\u0313\u0300", "\u03B9\u0314\u0300", "\u03B9\u0313\u0301", "\u03B9\u0314\u0301", "\u03B9\u0313\u0342", "\u03B9\u0314\u0342", "\u0399\u0313", "\u0399\u0314", "\u0399\u0313\u0300", "\u0399\u0314\u0300", "\u0399\u0313\u0301", "\u0399\u0314\u0301", "\u0399\u0313\u0342", "\u0399\u0314\u0342", "\u03BF\u0313", "\u03BF\u0314", "\u03BF\u0313\u0300", "\u03BF\u0314\u0300", "\u03BF\u0313\u0301", "\u03BF\u0314\u0301", "\u039F\u0313", "\u039F\u0314", "\u039F\u0313\u0300", "\u039F\u0314\u0300", "\u039F\u0313\u0301", "\u039F\u0314\u0301", "\u03C5\u0313", "\u03C5\u0314", "\u03C5\u0313\u0300", "\u03C5\u0314\u0300", "\u03C5\u0313\u0301", "\u03C5\u0314\u0301", "\u03C5\u0313\u0342", "\u03C5\u0314\u0342", "\u03A5\u0314", "\u03A5\u0314\u0300", "\u03A5\u0314\u0301", "\u03A5\u0314\u0342", "\u03C9\u0313", "\u03C9\u0314", "\u03C9\u0313\u0300", "\u03C9\u0314\u0300", "\u03C9\u0313\u0301", "\u03C9\u0314\u0301", "\u03C9\u0313\u0342", "\u03C9\u0314\u0342", "\u03A9\u0313", "\u03A9\u0314", "\u03A9\u0313\u0300", "\u03A9\u0314\u0300", "\u03A9\u0313\u0301", "\u03A9\u0314\u0301", "\u03A9\u0313\u0342", "\u03A9\u0314\u0342", "\u03B1\u0300", "\u03B5\u0300", "\u03B7\u0300", "\u03B9\u0300", "\u03BF\u0300", "\u03C5\u0300", "\u03C9\u0300", "\u03B1\u0313\u0345", "\u03B1\u0314\u0345", "\u03B1\u0313\u0300\u0345", "\u03B1\u0314\u0300\u0345", "\u03B1\u0313\u0301\u0345", "\u03B1\u0314\u0301\u0345", "\u03B1\u0313\u0342\u0345", "\u03B1\u0314\u0342\u0345", "\u0391\u0313\u0345", "\u0391\u0314\u0345", "\u0391\u0313\u0300\u0345", "\u0391\u0314\u0300\u0345", "\u0391\u0313\u0301\u0345", "\u0391\u0314\u0301\u0345", "\u0391\u0313\u0342\u0345", "\u0391\u0314\u0342\u0345", "\u03B7\u0313\u0345", "\u03B7\u0314\u0345", "\u03B7\u0313\u0300\u0345", "\u03B7\u0314\u0300\u0345", "\u03B7\u0313\u0301\u0345", "\u03B7\u0314\u0301\u0345", "\u03B7\u0313\u0342\u0345", "\u03B7\u0314\u0342\u0345", "\u0397\u0313\u0345", "\u0397\u0314\u0345", "\u0397\u0313\u0300\u0345", "\u0397\u0314\u0300\u0345", "\u0397\u0313\u0301\u0345", "\u0397\u0314\u0301\u0345", "\u0397\u0313\u0342\u0345", "\u0397\u0314\u0342\u0345", "\u03C9\u0313\u0345", "\u03C9\u0314\u0345", "\u03C9\u0313\u0300\u0345", "\u03C9\u0314\u0300\u0345", "\u03C9\u0313\u0301\u0345", "\u03C9\u0314\u0301\u0345", "\u03C9\u0313\u0342\u0345", "\u03C9\u0314\u0342\u0345", "\u03A9\u0313\u0345", "\u03A9\u0314\u0345", "\u03A9\u0313\u0300\u0345", "\u03A9\u0314\u0300\u0345", "\u03A9\u0313\u0301\u0345", "\u03A9\u0314\u0301\u0345", "\u03A9\u0313\u0342\u0345", "\u03A9\u0314\u0342\u0345", "\u03B1\u0306", "\u03B1\u0304", "\u03B1\u0300\u0345", "\u03B1\u0345", "\u03B1\u0301\u0345", "\u03B1\u0342", "\u03B1\u0342\u0345", "\u0391\u0306", "\u0391\u0304", "\u0391\u0300", "\u0391\u0345", "\u0020\u0313", "\u03B9", "\u0020\u0342", "\u0020\u0308\u0342", "\u03B7\u0300\u0345", "\u03B7\u0345", "\u03B7\u0301\u0345", "\u03B7\u0342", "\u03B7\u0342\u0345", "\u0395\u0300", "\u0397\u0300", "\u0397\u0345", "\u0020\u0313\u0300", "\u0020\u0313\u0301", "\u0020\u0313\u0342", "\u03B9\u0306", "\u03B9\u0304", "\u03B9\u0308\u0300", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u0399\u0306", "\u0399\u0304", "\u0399\u0300", "\u0020\u0314\u0300", "\u0020\u0314\u0301", "\u0020\u0314\u0342", "\u03C5\u0306", "\u03C5\u0304", "\u03C5\u0308\u0300", "\u03C1\u0313", "\u03C1\u0314", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u03A5\u0306", "\u03A5\u0304", "\u03A5\u0300", "\u03A1\u0314", "\u0020\u0308\u0300", "\u0060", "\u03C9\u0300\u0345", "\u03C9\u0345", "\u03C9\u0301\u0345", "\u03C9\u0342", "\u03C9\u0342\u0345", "\u039F\u0300", "\u03A9\u0300", "\u03A9\u0345", "\u0020\u0314", "\u2010", "\u0020\u0333", "\u002E", "\u002E\u002E", "\u002E\u002E\u002E", "\u2032\u2032", "\u2032\u2032\u2032", "\u2035\u2035", "\u2035\u2035\u2035", "\u0021\u0021", "\u0020\u0305", "\u003F\u003F", "\u003F\u0021", "\u0021\u003F", "\u2032\u2032\u2032\u2032", "\u0030", "\u0069", "\u0034", "\u0035", "\u0036", "\u0037", "\u0038", "\u0039", "\u002B", "\u2212", "\u003D", "\u0028", "\u0029", "\u006E", "\u0052\u0073", "\u0061\u002F\u0063", "\u0061\u002F\u0073", "\u0043", "\u00B0\u0043", "\u0063\u002F\u006F", "\u0063\u002F\u0075", "\u0190", "\u00B0\u0046", "\u0067", "\u0048", "\u0127", "\u0049", "\u004C", "\u004E", "\u004E\u006F", "\u0050", "\u0051", "\u0052", "\u0053\u004D", "\u0054\u0045\u004C", "\u0054\u004D", "\u005A", "\u03A9", "\u004B", "\u0042", "\u0065", "\u0045", "\u0046", "\u004D", "\u05D0", "\u05D1", "\u05D2", "\u05D3", "\u03B3", "\u0393", "\u03A0", "\u2211", "\u0044", "\u0064", "\u0031\u2044\u0033", "\u0032\u2044\u0033", "\u0031\u2044\u0035", "\u0032\u2044\u0035", "\u0033\u2044\u0035", "\u0034\u2044\u0035", "\u0031\u2044\u0036", "\u0035\u2044\u0036", "\u0031\u2044\u0038", "\u0033\u2044\u0038", "\u0035\u2044\u0038", "\u0037\u2044\u0038", "\u0031\u2044", "\u0049\u0049", "\u0049\u0049\u0049", "\u0049\u0056", "\u0056", "\u0056\u0049", "\u0056\u0049\u0049", "\u0056\u0049\u0049\u0049", "\u0049\u0058", "\u0058", "\u0058\u0049", "\u0058\u0049\u0049", "\u0069\u0069", "\u0069\u0069\u0069", "\u0069\u0076", "\u0076", "\u0076\u0069", "\u0076\u0069\u0069", "\u0076\u0069\u0069\u0069", "\u0069\u0078", "\u0078\u0069", "\u0078\u0069\u0069", "\u0063", "\u006D", "\u2190\u0338", "\u2192\u0338", "\u2194\u0338", "\u21D0\u0338", "\u21D4\u0338", "\u21D2\u0338", "\u2203\u0338", "\u2208\u0338", "\u220B\u0338", "\u2223\u0338", "\u2225\u0338", "\u222B\u222B", "\u222B\u222B\u222B", "\u222E\u222E", "\u222E\u222E\u222E", "\u223C\u0338", "\u2243\u0338", "\u2245\u0338", "\u2248\u0338", "\u003D\u0338", "\u2261\u0338", "\u224D\u0338", "\u003C\u0338", "\u003E\u0338", "\u2264\u0338", "\u2265\u0338", "\u2272\u0338", "\u2273\u0338", "\u2276\u0338", "\u2277\u0338", "\u227A\u0338", "\u227B\u0338", "\u2282\u0338", "\u2283\u0338", "\u2286\u0338", "\u2287\u0338", "\u22A2\u0338", "\u22A8\u0338", "\u22A9\u0338", "\u22AB\u0338", "\u227C\u0338", "\u227D\u0338", "\u2291\u0338", "\u2292\u0338", "\u22B2\u0338", "\u22B3\u0338", "\u22B4\u0338", "\u22B5\u0338", "\u3008", "\u3009", "\u0031\u0030", "\u0031\u0031", "\u0031\u0032", "\u0031\u0033", "\u0031\u0034", "\u0031\u0035", "\u0031\u0036", "\u0031\u0037", "\u0031\u0038", "\u0031\u0039", "\u0032\u0030", "\u0028\u0031\u0029", "\u0028\u0032\u0029", "\u0028\u0033\u0029", "\u0028\u0034\u0029", "\u0028\u0035\u0029", "\u0028\u0036\u0029", "\u0028\u0037\u0029", "\u0028\u0038\u0029", "\u0028\u0039\u0029", "\u0028\u0031\u0030\u0029", "\u0028\u0031\u0031\u0029", "\u0028\u0031\u0032\u0029", "\u0028\u0031\u0033\u0029", "\u0028\u0031\u0034\u0029", "\u0028\u0031\u0035\u0029", "\u0028\u0031\u0036\u0029", "\u0028\u0031\u0037\u0029", "\u0028\u0031\u0038\u0029", "\u0028\u0031\u0039\u0029", "\u0028\u0032\u0030\u0029", "\u0031\u002E", "\u0032\u002E", "\u0033\u002E", "\u0034\u002E", "\u0035\u002E", "\u0036\u002E", "\u0037\u002E", "\u0038\u002E", "\u0039\u002E", "\u0031\u0030\u002E", "\u0031\u0031\u002E", "\u0031\u0032\u002E", "\u0031\u0033\u002E", "\u0031\u0034\u002E", "\u0031\u0035\u002E", "\u0031\u0036\u002E", "\u0031\u0037\u002E", "\u0031\u0038\u002E", "\u0031\u0039\u002E", "\u0032\u0030\u002E", "\u0028\u0061\u0029", "\u0028\u0062\u0029", "\u0028\u0063\u0029", "\u0028\u0064\u0029", "\u0028\u0065\u0029", "\u0028\u0066\u0029", "\u0028\u0067\u0029", "\u0028\u0068\u0029", "\u0028\u0069\u0029", "\u0028\u006A\u0029", "\u0028\u006B\u0029", "\u0028\u006C\u0029", "\u0028\u006D\u0029", "\u0028\u006E\u0029", "\u0028\u006F\u0029", "\u0028\u0070\u0029", "\u0028\u0071\u0029", "\u0028\u0072\u0029", "\u0028\u0073\u0029", "\u0028\u0074\u0029", "\u0028\u0075\u0029", "\u0028\u0076\u0029", "\u0028\u0077\u0029", "\u0028\u0078\u0029", "\u0028\u0079\u0029", "\u0028\u007A\u0029", "\u0041", "\u0047", "\u004A", "\u004F", "\u0053", "\u0054", "\u0055", "\u0057", "\u0059", "\u0062", "\u0066", "\u006B", "\u0070", "\u0071", "\u0074", "\u0075", "\u007A", "\u222B\u222B\u222B\u222B", "\u003A\u003A\u003D", "\u003D\u003D", "\u003D\u003D\u003D", "\u2ADD\u0338", "\u6BCD", "\u9F9F", "\u4E00", "\u4E28", "\u4E36", "\u4E3F", "\u4E59", "\u4E85", "\u4E8C", "\u4EA0", "\u4EBA", "\u513F", "\u5165", "\u516B", "\u5182", "\u5196", "\u51AB", "\u51E0", "\u51F5", "\u5200", "\u529B", "\u52F9", "\u5315", "\u531A", "\u5338", "\u5341", "\u535C", "\u5369", "\u5382", "\u53B6", "\u53C8", "\u53E3", "\u56D7", "\u571F", "\u58EB", "\u5902", "\u590A", "\u5915", "\u5927", "\u5973", "\u5B50", "\u5B80", "\u5BF8", "\u5C0F", "\u5C22", "\u5C38", "\u5C6E", "\u5C71", "\u5DDB", "\u5DE5", "\u5DF1", "\u5DFE", "\u5E72", "\u5E7A", "\u5E7F", "\u5EF4", "\u5EFE", "\u5F0B", "\u5F13", "\u5F50", "\u5F61", "\u5F73", "\u5FC3", "\u6208", "\u6236", "\u624B", "\u652F", "\u6534", "\u6587", "\u6597", "\u65A4", "\u65B9", "\u65E0", "\u65E5", "\u66F0", "\u6708", "\u6728", "\u6B20", "\u6B62", "\u6B79", "\u6BB3", "\u6BCB", "\u6BD4", "\u6BDB", "\u6C0F", "\u6C14", "\u6C34", "\u706B", "\u722A", "\u7236", "\u723B", "\u723F", "\u7247", "\u7259", "\u725B", "\u72AC", "\u7384", "\u7389", "\u74DC", "\u74E6", "\u7518", "\u751F", "\u7528", "\u7530", "\u758B", "\u7592", "\u7676", "\u767D", "\u76AE", "\u76BF", "\u76EE", "\u77DB", "\u77E2", "\u77F3", "\u793A", "\u79B8", "\u79BE", "\u7A74", "\u7ACB", "\u7AF9", "\u7C73", "\u7CF8", "\u7F36", "\u7F51", "\u7F8A", "\u7FBD", "\u8001", "\u800C", "\u8012", "\u8033", "\u807F", "\u8089", "\u81E3", "\u81EA", "\u81F3", "\u81FC", "\u820C", "\u821B", "\u821F", "\u826E", "\u8272", "\u8278", "\u864D", "\u866B", "\u8840", "\u884C", "\u8863", "\u897E", "\u898B", "\u89D2", "\u8A00", "\u8C37", "\u8C46", "\u8C55", "\u8C78", "\u8C9D", "\u8D64", "\u8D70", "\u8DB3", "\u8EAB", "\u8ECA", "\u8F9B", "\u8FB0", "\u8FB5", "\u9091", "\u9149", "\u91C6", "\u91CC", "\u91D1", "\u9577", "\u9580", "\u961C", "\u96B6", "\u96B9", "\u96E8", "\u9751", "\u975E", "\u9762", "\u9769", "\u97CB", "\u97ED", "\u97F3", "\u9801", "\u98A8", "\u98DB", "\u98DF", "\u9996", "\u9999", "\u99AC", "\u9AA8", "\u9AD8", "\u9ADF", "\u9B25", "\u9B2F", "\u9B32", "\u9B3C", "\u9B5A", "\u9CE5", "\u9E75", "\u9E7F", "\u9EA5", "\u9EBB", "\u9EC3", "\u9ECD", "\u9ED1", "\u9EF9", "\u9EFD", "\u9F0E", "\u9F13", "\u9F20", "\u9F3B", "\u9F4A", "\u9F52", "\u9F8D", "\u9F9C", "\u9FA0", "\u3012", "\u5344", "\u5345", "\u304B\u3099", "\u304D\u3099", "\u304F\u3099", "\u3051\u3099", "\u3053\u3099", "\u3055\u3099", "\u3057\u3099", "\u3059\u3099", "\u305B\u3099", "\u305D\u3099", "\u305F\u3099", "\u3061\u3099", "\u3064\u3099", "\u3066\u3099", "\u3068\u3099", "\u306F\u3099", "\u306F\u309A", "\u3072\u3099", "\u3072\u309A", "\u3075\u3099", "\u3075\u309A", "\u3078\u3099", "\u3078\u309A", "\u307B\u3099", "\u307B\u309A", "\u3046\u3099", "\u0020\u3099", "\u0020\u309A", "\u309D\u3099", "\u3088\u308A", "\u30AB\u3099", "\u30AD\u3099", "\u30AF\u3099", "\u30B1\u3099", "\u30B3\u3099", "\u30B5\u3099", "\u30B7\u3099", "\u30B9\u3099", "\u30BB\u3099", "\u30BD\u3099", "\u30BF\u3099", "\u30C1\u3099", "\u30C4\u3099", "\u30C6\u3099", "\u30C8\u3099", "\u30CF\u3099", "\u30CF\u309A", "\u30D2\u3099", "\u30D2\u309A", "\u30D5\u3099", "\u30D5\u309A", "\u30D8\u3099", "\u30D8\u309A", "\u30DB\u3099", "\u30DB\u309A", "\u30A6\u3099", "\u30EF\u3099", "\u30F0\u3099", "\u30F1\u3099", "\u30F2\u3099", "\u30FD\u3099", "\u30B3\u30C8", "\u1100", "\u1101", "\u11AA", "\u1102", "\u11AC", "\u11AD", "\u1103", "\u1104", "\u1105", "\u11B0", "\u11B1", "\u11B2", "\u11B3", "\u11B4", "\u11B5", "\u111A", "\u1106", "\u1107", "\u1108", "\u1121", "\u1109", "\u110A", "\u110B", "\u110C", "\u110D", "\u110E", "\u110F", "\u1110", "\u1111", "\u1112", "\u1161", "\u1162", "\u1163", "\u1164", "\u1165", "\u1166", "\u1167", "\u1168", "\u1169", "\u116A", "\u116B", "\u116C", "\u116D", "\u116E", "\u116F", "\u1170", "\u1171", "\u1172", "\u1173", "\u1174", "\u1175", "\u1160", "\u1114", "\u1115", "\u11C7", "\u11C8", "\u11CC", "\u11CE", "\u11D3", "\u11D7", "\u11D9", "\u111C", "\u11DD", "\u11DF", "\u111D", "\u111E", "\u1120", "\u1122", "\u1123", "\u1127", "\u1129", "\u112B", "\u112C", "\u112D", "\u112E", "\u112F", "\u1132", "\u1136", "\u1140", "\u1147", "\u114C", "\u11F1", "\u11F2", "\u1157", "\u1158", "\u1159", "\u1184", "\u1185", "\u1188", "\u1191", "\u1192", "\u1194", "\u119E", "\u11A1", "\u4E09", "\u56DB", "\u4E0A", "\u4E2D", "\u4E0B", "\u7532", "\u4E19", "\u4E01", "\u5929", "\u5730", "\u0028\u1100\u0029", "\u0028\u1102\u0029", "\u0028\u1103\u0029", "\u0028\u1105\u0029", "\u0028\u1106\u0029", "\u0028\u1107\u0029", "\u0028\u1109\u0029", "\u0028\u110B\u0029", "\u0028\u110C\u0029", "\u0028\u110E\u0029", "\u0028\u110F\u0029", "\u0028\u1110\u0029", "\u0028\u1111\u0029", "\u0028\u1112\u0029", "\u0028\u1100\u1161\u0029", "\u0028\u1102\u1161\u0029", "\u0028\u1103\u1161\u0029", "\u0028\u1105\u1161\u0029", "\u0028\u1106\u1161\u0029", "\u0028\u1107\u1161\u0029", "\u0028\u1109\u1161\u0029", "\u0028\u110B\u1161\u0029", "\u0028\u110C\u1161\u0029", "\u0028\u110E\u1161\u0029", "\u0028\u110F\u1161\u0029", "\u0028\u1110\u1161\u0029", "\u0028\u1111\u1161\u0029", "\u0028\u1112\u1161\u0029", "\u0028\u110C\u116E\u0029", "\u0028\u4E00\u0029", "\u0028\u4E8C\u0029", "\u0028\u4E09\u0029", "\u0028\u56DB\u0029", "\u0028\u4E94\u0029", "\u0028\u516D\u0029", "\u0028\u4E03\u0029", "\u0028\u516B\u0029", "\u0028\u4E5D\u0029", "\u0028\u5341\u0029", "\u0028\u6708\u0029", "\u0028\u706B\u0029", "\u0028\u6C34\u0029", "\u0028\u6728\u0029", "\u0028\u91D1\u0029", "\u0028\u571F\u0029", "\u0028\u65E5\u0029", "\u0028\u682A\u0029", "\u0028\u6709\u0029", "\u0028\u793E\u0029", "\u0028\u540D\u0029", "\u0028\u7279\u0029", "\u0028\u8CA1\u0029", "\u0028\u795D\u0029", "\u0028\u52B4\u0029", "\u0028\u4EE3\u0029", "\u0028\u547C\u0029", "\u0028\u5B66\u0029", "\u0028\u76E3\u0029", "\u0028\u4F01\u0029", "\u0028\u8CC7\u0029", "\u0028\u5354\u0029", "\u0028\u796D\u0029", "\u0028\u4F11\u0029", "\u0028\u81EA\u0029", "\u0028\u81F3\u0029", "\u0032\u0031", "\u0032\u0032", "\u0032\u0033", "\u0032\u0034", "\u0032\u0035", "\u0032\u0036", "\u0032\u0037", "\u0032\u0038", "\u0032\u0039", "\u0033\u0030", "\u0033\u0031", "\u0033\u0032", "\u0033\u0033", "\u0033\u0034", "\u0033\u0035", "\u1100\u1161", "\u1102\u1161", "\u1103\u1161", "\u1105\u1161", "\u1106\u1161", "\u1107\u1161", "\u1109\u1161", "\u110B\u1161", "\u110C\u1161", "\u110E\u1161", "\u110F\u1161", "\u1110\u1161", "\u1111\u1161", "\u1112\u1161", "\u4E94", "\u516D", "\u4E03", "\u4E5D", "\u682A", "\u6709", "\u793E", "\u540D", "\u7279", "\u8CA1", "\u795D", "\u52B4", "\u79D8", "\u7537", "\u9069", "\u512A", "\u5370", "\u6CE8", "\u9805", "\u4F11", "\u5199", "\u6B63", "\u5DE6", "\u53F3", "\u533B", "\u5B97", "\u5B66", "\u76E3", "\u4F01", "\u8CC7", "\u5354", "\u591C", "\u0033\u0036", "\u0033\u0037", "\u0033\u0038", "\u0033\u0039", "\u0034\u0030", "\u0034\u0031", "\u0034\u0032", "\u0034\u0033", "\u0034\u0034", "\u0034\u0035", "\u0034\u0036", "\u0034\u0037", "\u0034\u0038", "\u0034\u0039", "\u0035\u0030", "\u0031\u6708", "\u0032\u6708", "\u0033\u6708", "\u0034\u6708", "\u0035\u6708", "\u0036\u6708", "\u0037\u6708", "\u0038\u6708", "\u0039\u6708", "\u0031\u0030\u6708", "\u0031\u0031\u6708", "\u0031\u0032\u6708", "\u30A2", "\u30A4", "\u30A6", "\u30A8", "\u30AA", "\u30AB", "\u30AD", "\u30AF", "\u30B1", "\u30B3", "\u30B5", "\u30B7", "\u30B9", "\u30BB", "\u30BD", "\u30BF", "\u30C1", "\u30C4", "\u30C6", "\u30C8", "\u30CA", "\u30CB", "\u30CC", "\u30CD", "\u30CE", "\u30CF", "\u30D2", "\u30D5", "\u30D8", "\u30DB", "\u30DE", "\u30DF", "\u30E0", "\u30E1", "\u30E2", "\u30E4", "\u30E6", "\u30E8", "\u30E9", "\u30EA", "\u30EB", "\u30EC", "\u30ED", "\u30EF", "\u30F0", "\u30F1", "\u30F2", "\u30A2\u30CF\u309A\u30FC\u30C8", "\u30A2\u30EB\u30D5\u30A1", "\u30A2\u30F3\u30D8\u309A\u30A2", "\u30A2\u30FC\u30EB", "\u30A4\u30CB\u30F3\u30AF\u3099", "\u30A4\u30F3\u30C1", "\u30A6\u30A9\u30F3", "\u30A8\u30B9\u30AF\u30FC\u30C8\u3099", "\u30A8\u30FC\u30AB\u30FC", "\u30AA\u30F3\u30B9", "\u30AA\u30FC\u30E0", "\u30AB\u30A4\u30EA", "\u30AB\u30E9\u30C3\u30C8", "\u30AB\u30ED\u30EA\u30FC", "\u30AB\u3099\u30ED\u30F3", "\u30AB\u3099\u30F3\u30DE", "\u30AD\u3099\u30AB\u3099", "\u30AD\u3099\u30CB\u30FC", "\u30AD\u30E5\u30EA\u30FC", "\u30AD\u3099\u30EB\u30BF\u3099\u30FC", "\u30AD\u30ED", "\u30AD\u30ED\u30AF\u3099\u30E9\u30E0", "\u30AD\u30ED\u30E1\u30FC\u30C8\u30EB", "\u30AD\u30ED\u30EF\u30C3\u30C8", "\u30AF\u3099\u30E9\u30E0", "\u30AF\u3099\u30E9\u30E0\u30C8\u30F3", "\u30AF\u30EB\u30BB\u3099\u30A4\u30ED", "\u30AF\u30ED\u30FC\u30CD", "\u30B1\u30FC\u30B9", "\u30B3\u30EB\u30CA", "\u30B3\u30FC\u30DB\u309A", "\u30B5\u30A4\u30AF\u30EB", "\u30B5\u30F3\u30C1\u30FC\u30E0", "\u30B7\u30EA\u30F3\u30AF\u3099", "\u30BB\u30F3\u30C1", "\u30BB\u30F3\u30C8", "\u30BF\u3099\u30FC\u30B9", "\u30C6\u3099\u30B7", "\u30C8\u3099\u30EB", "\u30C8\u30F3", "\u30CA\u30CE", "\u30CE\u30C3\u30C8", "\u30CF\u30A4\u30C4", "\u30CF\u309A\u30FC\u30BB\u30F3\u30C8", "\u30CF\u309A\u30FC\u30C4", "\u30CF\u3099\u30FC\u30EC\u30EB", "\u30D2\u309A\u30A2\u30B9\u30C8\u30EB", "\u30D2\u309A\u30AF\u30EB", "\u30D2\u309A\u30B3", "\u30D2\u3099\u30EB", "\u30D5\u30A1\u30E9\u30C3\u30C8\u3099", "\u30D5\u30A3\u30FC\u30C8", "\u30D5\u3099\u30C3\u30B7\u30A7\u30EB", "\u30D5\u30E9\u30F3", "\u30D8\u30AF\u30BF\u30FC\u30EB", "\u30D8\u309A\u30BD", "\u30D8\u309A\u30CB\u30D2", "\u30D8\u30EB\u30C4", "\u30D8\u309A\u30F3\u30B9", "\u30D8\u309A\u30FC\u30B7\u3099", "\u30D8\u3099\u30FC\u30BF", "\u30DB\u309A\u30A4\u30F3\u30C8", "\u30DB\u3099\u30EB\u30C8", "\u30DB\u30F3", "\u30DB\u309A\u30F3\u30C8\u3099", "\u30DB\u30FC\u30EB", "\u30DB\u30FC\u30F3", "\u30DE\u30A4\u30AF\u30ED", "\u30DE\u30A4\u30EB", "\u30DE\u30C3\u30CF", "\u30DE\u30EB\u30AF", "\u30DE\u30F3\u30B7\u30E7\u30F3", "\u30DF\u30AF\u30ED\u30F3", "\u30DF\u30EA", "\u30DF\u30EA\u30CF\u3099\u30FC\u30EB", "\u30E1\u30AB\u3099", "\u30E1\u30AB\u3099\u30C8\u30F3", "\u30E1\u30FC\u30C8\u30EB", "\u30E4\u30FC\u30C8\u3099", "\u30E4\u30FC\u30EB", "\u30E6\u30A2\u30F3", "\u30EA\u30C3\u30C8\u30EB", "\u30EA\u30E9", "\u30EB\u30D2\u309A\u30FC", "\u30EB\u30FC\u30D5\u3099\u30EB", "\u30EC\u30E0", "\u30EC\u30F3\u30C8\u30B1\u3099\u30F3", "\u30EF\u30C3\u30C8", "\u0030\u70B9", "\u0031\u70B9", "\u0032\u70B9", "\u0033\u70B9", "\u0034\u70B9", "\u0035\u70B9", "\u0036\u70B9", "\u0037\u70B9", "\u0038\u70B9", "\u0039\u70B9", "\u0031\u0030\u70B9", "\u0031\u0031\u70B9", "\u0031\u0032\u70B9", "\u0031\u0033\u70B9", "\u0031\u0034\u70B9", "\u0031\u0035\u70B9", "\u0031\u0036\u70B9", "\u0031\u0037\u70B9", "\u0031\u0038\u70B9", "\u0031\u0039\u70B9", "\u0032\u0030\u70B9", "\u0032\u0031\u70B9", "\u0032\u0032\u70B9", "\u0032\u0033\u70B9", "\u0032\u0034\u70B9", "\u0068\u0050\u0061", "\u0064\u0061", "\u0041\u0055", "\u0062\u0061\u0072", "\u006F\u0056", "\u0070\u0063", "\u5E73\u6210", "\u662D\u548C", "\u5927\u6B63", "\u660E\u6CBB", "\u682A\u5F0F\u4F1A\u793E", "\u0070\u0041", "\u006E\u0041", "\u03BC\u0041", "\u006D\u0041", "\u006B\u0041", "\u004B\u0042", "\u004D\u0042", "\u0047\u0042", "\u0063\u0061\u006C", "\u006B\u0063\u0061\u006C", "\u0070\u0046", "\u006E\u0046", "\u03BC\u0046", "\u03BC\u0067", "\u006D\u0067", "\u006B\u0067", "\u0048\u007A", "\u006B\u0048\u007A", "\u004D\u0048\u007A", "\u0047\u0048\u007A", "\u0054\u0048\u007A", "\u03BC\u006C", "\u006D\u006C", "\u0064\u006C", "\u006B\u006C", "\u0066\u006D", "\u006E\u006D", "\u03BC\u006D", "\u006D\u006D", "\u0063\u006D", "\u006B\u006D", "\u006D\u006D\u0032", "\u0063\u006D\u0032", "\u006D\u0032", "\u006B\u006D\u0032", "\u006D\u006D\u0033", "\u0063\u006D\u0033", "\u006D\u0033", "\u006B\u006D\u0033", "\u006D\u2215\u0073", "\u006D\u2215\u0073\u0032", "\u0050\u0061", "\u006B\u0050\u0061", "\u004D\u0050\u0061", "\u0047\u0050\u0061", "\u0072\u0061\u0064", "\u0072\u0061\u0064\u2215\u0073", "\u0072\u0061\u0064\u2215\u0073\u0032", "\u0070\u0073", "\u006E\u0073", "\u03BC\u0073", "\u006D\u0073", "\u0070\u0056", "\u006E\u0056", "\u03BC\u0056", "\u006D\u0056", "\u006B\u0056", "\u004D\u0056", "\u0070\u0057", "\u006E\u0057", "\u03BC\u0057", "\u006D\u0057", "\u006B\u0057", "\u004D\u0057", "\u006B\u03A9", "\u004D\u03A9", "\u0061\u002E\u006D\u002E", "\u0042\u0071", "\u0063\u0063", "\u0063\u0064", "\u0043\u2215\u006B\u0067", "\u0043\u006F\u002E", "\u0064\u0042", "\u0047\u0079", "\u0068\u0061", "\u0048\u0050", "\u0069\u006E", "\u004B\u004B", "\u004B\u004D", "\u006B\u0074", "\u006C\u006D", "\u006C\u006E", "\u006C\u006F\u0067", "\u006C\u0078", "\u006D\u0062", "\u006D\u0069\u006C", "\u006D\u006F\u006C", "\u0050\u0048", "\u0070\u002E\u006D\u002E", "\u0050\u0050\u004D", "\u0050\u0052", "\u0073\u0072", "\u0053\u0076", "\u0057\u0062", "\u0031\u65E5", "\u0032\u65E5", "\u0033\u65E5", "\u0034\u65E5", "\u0035\u65E5", "\u0036\u65E5", "\u0037\u65E5", "\u0038\u65E5", "\u0039\u65E5", "\u0031\u0030\u65E5", "\u0031\u0031\u65E5", "\u0031\u0032\u65E5", "\u0031\u0033\u65E5", "\u0031\u0034\u65E5", "\u0031\u0035\u65E5", "\u0031\u0036\u65E5", "\u0031\u0037\u65E5", "\u0031\u0038\u65E5", "\u0031\u0039\u65E5", "\u0032\u0030\u65E5", "\u0032\u0031\u65E5", "\u0032\u0032\u65E5", "\u0032\u0033\u65E5", "\u0032\u0034\u65E5", "\u0032\u0035\u65E5", "\u0032\u0036\u65E5", "\u0032\u0037\u65E5", "\u0032\u0038\u65E5", "\u0032\u0039\u65E5", "\u0033\u0030\u65E5", "\u0033\u0031\u65E5", "\u8C48", "\u66F4", "\u8CC8", "\u6ED1", "\u4E32", "\u53E5", "\u5951", "\u5587", "\u5948", "\u61F6", "\u7669", "\u7F85", "\u863F", "\u87BA", "\u88F8", "\u908F", "\u6A02", "\u6D1B", "\u70D9", "\u73DE", "\u843D", "\u916A", "\u99F1", "\u4E82", "\u5375", "\u6B04", "\u721B", "\u862D", "\u9E1E", "\u5D50", "\u6FEB", "\u85CD", "\u8964", "\u62C9", "\u81D8", "\u881F", "\u5ECA", "\u6717", "\u6D6A", "\u72FC", "\u90CE", "\u4F86", "\u51B7", "\u52DE", "\u64C4", "\u6AD3", "\u7210", "\u76E7", "\u8606", "\u865C", "\u8DEF", "\u9732", "\u9B6F", "\u9DFA", "\u788C", "\u797F", "\u7DA0", "\u83C9", "\u9304", "\u8AD6", "\u58DF", "\u5F04", "\u7C60", "\u807E", "\u7262", "\u78CA", "\u8CC2", "\u96F7", "\u58D8", "\u5C62", "\u6A13", "\u6DDA", "\u6F0F", "\u7D2F", "\u7E37", "\u964B", "\u52D2", "\u808B", "\u51DC", "\u51CC", "\u7A1C", "\u7DBE", "\u83F1", "\u9675", "\u8B80", "\u62CF", "\u8AFE", "\u4E39", "\u5BE7", "\u6012", "\u7387", "\u7570", "\u5317", "\u78FB", "\u4FBF", "\u5FA9", "\u4E0D", "\u6CCC", "\u6578", "\u7D22", "\u53C3", "\u585E", "\u7701", "\u8449", "\u8AAA", "\u6BBA", "\u6C88", "\u62FE", "\u82E5", "\u63A0", "\u7565", "\u4EAE", "\u5169", "\u51C9", "\u6881", "\u7CE7", "\u826F", "\u8AD2", "\u91CF", "\u52F5", "\u5442", "\u5EEC", "\u65C5", "\u6FFE", "\u792A", "\u95AD", "\u9A6A", "\u9E97", "\u9ECE", "\u66C6", "\u6B77", "\u8F62", "\u5E74", "\u6190", "\u6200", "\u649A", "\u6F23", "\u7149", "\u7489", "\u79CA", "\u7DF4", "\u806F", "\u8F26", "\u84EE", "\u9023", "\u934A", "\u5217", "\u52A3", "\u54BD", "\u70C8", "\u88C2", "\u5EC9", "\u5FF5", "\u637B", "\u6BAE", "\u7C3E", "\u7375", "\u4EE4", "\u56F9", "\u5DBA", "\u601C", "\u73B2", "\u7469", "\u7F9A", "\u8046", "\u9234", "\u96F6", "\u9748", "\u9818", "\u4F8B", "\u79AE", "\u91B4", "\u96B8", "\u60E1", "\u4E86", "\u50DA", "\u5BEE", "\u5C3F", "\u6599", "\u71CE", "\u7642", "\u84FC", "\u907C", "\u6688", "\u962E", "\u5289", "\u677B", "\u67F3", "\u6D41", "\u6E9C", "\u7409", "\u7559", "\u786B", "\u7D10", "\u985E", "\u622E", "\u9678", "\u502B", "\u5D19", "\u6DEA", "\u8F2A", "\u5F8B", "\u6144", "\u6817", "\u9686", "\u5229", "\u540F", "\u5C65", "\u6613", "\u674E", "\u68A8", "\u6CE5", "\u7406", "\u75E2", "\u7F79", "\u88CF", "\u88E1", "\u96E2", "\u533F", "\u6EBA", "\u541D", "\u71D0", "\u7498", "\u85FA", "\u96A3", "\u9C57", "\u9E9F", "\u6797", "\u6DCB", "\u81E8", "\u7B20", "\u7C92", "\u72C0", "\u7099", "\u8B58", "\u4EC0", "\u8336", "\u523A", "\u5207", "\u5EA6", "\u62D3", "\u7CD6", "\u5B85", "\u6D1E", "\u66B4", "\u8F3B", "\u964D", "\u5ED3", "\u5140", "\u55C0", "\u585A", "\u6674", "\u51DE", "\u732A", "\u76CA", "\u793C", "\u795E", "\u7965", "\u798F", "\u9756", "\u7CBE", "\u8612", "\u8AF8", "\u9038", "\u90FD", "\u98EF", "\u98FC", "\u9928", "\u9DB4", "\u4FAE", "\u50E7", "\u514D", "\u52C9", "\u52E4", "\u5351", "\u559D", "\u5606", "\u5668", "\u5840", "\u58A8", "\u5C64", "\u6094", "\u6168", "\u618E", "\u61F2", "\u654F", "\u65E2", "\u6691", "\u6885", "\u6D77", "\u6E1A", "\u6F22", "\u716E", "\u722B", "\u7422", "\u7891", "\u7949", "\u7948", "\u7950", "\u7956", "\u798D", "\u798E", "\u7A40", "\u7A81", "\u7BC0", "\u7E09", "\u7E41", "\u7F72", "\u8005", "\u81ED", "\u8279", "\u8457", "\u8910", "\u8996", "\u8B01", "\u8B39", "\u8CD3", "\u8D08", "\u8FB6", "\u96E3", "\u97FF", "\u983B", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\u05D9\u05B4", "\u05F2\u05B7", "\u05E2", "\u05D4", "\u05DB", "\u05DC", "\u05DD", "\u05E8", "\u05EA", "\u05E9\u05C1", "\u05E9\u05C2", "\u05E9\u05BC\u05C1", "\u05E9\u05BC\u05C2", "\u05D0\u05B7", "\u05D0\u05B8", "\u05D0\u05BC", "\u05D1\u05BC", "\u05D2\u05BC", "\u05D3\u05BC", "\u05D4\u05BC", "\u05D5\u05BC", "\u05D6\u05BC", "\u05D8\u05BC", "\u05D9\u05BC", "\u05DA\u05BC", "\u05DB\u05BC", "\u05DC\u05BC", "\u05DE\u05BC", "\u05E0\u05BC", "\u05E1\u05BC", "\u05E3\u05BC", "\u05E4\u05BC", "\u05E6\u05BC", "\u05E7\u05BC", "\u05E8\u05BC", "\u05E9\u05BC", "\u05EA\u05BC", "\u05D5\u05B9", "\u05D1\u05BF", "\u05DB\u05BF", "\u05E4\u05BF", "\u05D0\u05DC", "\u0671", "\u067B", "\u067E", "\u0680", "\u067A", "\u067F", "\u0679", "\u06A4", "\u06A6", "\u0684", "\u0683", "\u0686", "\u0687", "\u068D", "\u068C", "\u068E", "\u0688", "\u0698", "\u0691", "\u06A9", "\u06AF", "\u06B3", "\u06B1", "\u06BA", "\u06BB", "\u06C1", "\u06BE", "\u06D2", "\u06AD", "\u06C7", "\u06C6", "\u06C8", "\u06CB", "\u06C5", "\u06C9", "\u06D0", "\u0649", "\u064A\u0654\u0627", "\u064A\u0654\u06D5", "\u064A\u0654\u0648", "\u064A\u0654\u06C7", "\u064A\u0654\u06C6", "\u064A\u0654\u06C8", "\u064A\u0654\u06D0", "\u064A\u0654\u0649", "\u06CC", "\u064A\u0654\u062C", "\u064A\u0654\u062D", "\u064A\u0654\u0645", "\u064A\u0654\u064A", "\u0628\u062C", "\u0628\u062D", "\u0628\u062E", "\u0628\u0645", "\u0628\u0649", "\u0628\u064A", "\u062A\u062C", "\u062A\u062D", "\u062A\u062E", "\u062A\u0645", "\u062A\u0649", "\u062A\u064A", "\u062B\u062C", "\u062B\u0645", "\u062B\u0649", "\u062B\u064A", "\u062C\u062D", "\u062C\u0645", "\u062D\u062C", "\u062D\u0645", "\u062E\u062C", "\u062E\u062D", "\u062E\u0645", "\u0633\u062C", "\u0633\u062D", "\u0633\u062E", "\u0633\u0645", "\u0635\u062D", "\u0635\u0645", "\u0636\u062C", "\u0636\u062D", "\u0636\u062E", "\u0636\u0645", "\u0637\u062D", "\u0637\u0645", "\u0638\u0645", "\u0639\u062C", "\u0639\u0645", "\u063A\u062C", "\u063A\u0645", "\u0641\u062C", "\u0641\u062D", "\u0641\u062E", "\u0641\u0645", "\u0641\u0649", "\u0641\u064A", "\u0642\u062D", "\u0642\u0645", "\u0642\u0649", "\u0642\u064A", "\u0643\u0627", "\u0643\u062C", "\u0643\u062D", "\u0643\u062E", "\u0643\u0644", "\u0643\u0645", "\u0643\u0649", "\u0643\u064A", "\u0644\u062C", "\u0644\u062D", "\u0644\u062E", "\u0644\u0645", "\u0644\u0649", "\u0644\u064A", "\u0645\u062C", "\u0645\u062D", "\u0645\u062E", "\u0645\u0645", "\u0645\u0649", "\u0645\u064A", "\u0646\u062C", "\u0646\u062D", "\u0646\u062E", "\u0646\u0645", "\u0646\u0649", "\u0646\u064A", "\u0647\u062C", "\u0647\u0645", "\u0647\u0649", "\u0647\u064A", "\u064A\u062C", "\u064A\u062D", "\u064A\u062E", "\u064A\u0645", "\u064A\u0649", "\u064A\u064A", "\u0630\u0670", "\u0631\u0670", "\u0649\u0670", "\u0020\u064C\u0651", "\u0020\u064D\u0651", "\u0020\u064E\u0651", "\u0020\u064F\u0651", "\u0020\u0650\u0651", "\u0020\u0651\u0670", "\u064A\u0654\u0631", "\u064A\u0654\u0632", "\u064A\u0654\u0646", "\u0628\u0631", "\u0628\u0632", "\u0628\u0646", "\u062A\u0631", "\u062A\u0632", "\u062A\u0646", "\u062B\u0631", "\u062B\u0632", "\u062B\u0646", "\u0645\u0627", "\u0646\u0631", "\u0646\u0632", "\u0646\u0646", "\u064A\u0631", "\u064A\u0632", "\u064A\u0646", "\u064A\u0654\u062E", "\u064A\u0654\u0647", "\u0628\u0647", "\u062A\u0647", "\u0635\u062E", "\u0644\u0647", "\u0646\u0647", "\u0647\u0670", "\u064A\u0647", "\u062B\u0647", "\u0633\u0647", "\u0634\u0645", "\u0634\u0647", "\u0640\u064E\u0651", "\u0640\u064F\u0651", "\u0640\u0650\u0651", "\u0637\u0649", "\u0637\u064A", "\u0639\u0649", "\u0639\u064A", "\u063A\u0649", "\u063A\u064A", "\u0633\u0649", "\u0633\u064A", "\u0634\u0649", "\u0634\u064A", "\u062D\u0649", "\u062D\u064A", "\u062C\u0649", "\u062C\u064A", "\u062E\u0649", "\u062E\u064A", "\u0635\u0649", "\u0635\u064A", "\u0636\u0649", "\u0636\u064A", "\u0634\u062C", "\u0634\u062D", "\u0634\u062E", "\u0634\u0631", "\u0633\u0631", "\u0635\u0631", "\u0636\u0631", "\u0627\u064B", "\u062A\u062C\u0645", "\u062A\u062D\u062C", "\u062A\u062D\u0645", "\u062A\u062E\u0645", "\u062A\u0645\u062C", "\u062A\u0645\u062D", "\u062A\u0645\u062E", "\u062C\u0645\u062D", "\u062D\u0645\u064A", "\u062D\u0645\u0649", "\u0633\u062D\u062C", "\u0633\u062C\u062D", "\u0633\u062C\u0649", "\u0633\u0645\u062D", "\u0633\u0645\u062C", "\u0633\u0645\u0645", "\u0635\u062D\u062D", "\u0635\u0645\u0645", "\u0634\u062D\u0645", "\u0634\u062C\u064A", "\u0634\u0645\u062E", "\u0634\u0645\u0645", "\u0636\u062D\u0649", "\u0636\u062E\u0645", "\u0637\u0645\u062D", "\u0637\u0645\u0645", "\u0637\u0645\u064A", "\u0639\u062C\u0645", "\u0639\u0645\u0645", "\u0639\u0645\u0649", "\u063A\u0645\u0645", "\u063A\u0645\u064A", "\u063A\u0645\u0649", "\u0641\u062E\u0645", "\u0642\u0645\u062D", "\u0642\u0645\u0645", "\u0644\u062D\u0645", "\u0644\u062D\u064A", "\u0644\u062D\u0649", "\u0644\u062C\u062C", "\u0644\u062E\u0645", "\u0644\u0645\u062D", "\u0645\u062D\u062C", "\u0645\u062D\u0645", "\u0645\u062D\u064A", "\u0645\u062C\u062D", "\u0645\u062C\u0645", "\u0645\u062E\u062C", "\u0645\u062E\u0645", "\u0645\u062C\u062E", "\u0647\u0645\u062C", "\u0647\u0645\u0645", "\u0646\u062D\u0645", "\u0646\u062D\u0649", "\u0646\u062C\u0645", "\u0646\u062C\u0649", "\u0646\u0645\u064A", "\u0646\u0645\u0649", "\u064A\u0645\u0645", "\u0628\u062E\u064A", "\u062A\u062C\u064A", "\u062A\u062C\u0649", "\u062A\u062E\u064A", "\u062A\u062E\u0649", "\u062A\u0645\u064A", "\u062A\u0645\u0649", "\u062C\u0645\u064A", "\u062C\u062D\u0649", "\u062C\u0645\u0649", "\u0633\u062E\u0649", "\u0635\u062D\u064A", "\u0634\u062D\u064A", "\u0636\u062D\u064A", "\u0644\u062C\u064A", "\u0644\u0645\u064A", "\u064A\u062D\u064A", "\u064A\u062C\u064A", "\u064A\u0645\u064A", "\u0645\u0645\u064A", "\u0642\u0645\u064A", "\u0646\u062D\u064A", "\u0639\u0645\u064A", "\u0643\u0645\u064A", "\u0646\u062C\u062D", "\u0645\u062E\u064A", "\u0644\u062C\u0645", "\u0643\u0645\u0645", "\u062C\u062D\u064A", "\u062D\u062C\u064A", "\u0645\u062C\u064A", "\u0641\u0645\u064A", "\u0628\u062D\u064A", "\u0633\u062E\u064A", "\u0646\u062C\u064A", "\u0635\u0644\u06D2", "\u0642\u0644\u06D2", "\u0627\u0644\u0644\u0647", "\u0627\u0643\u0628\u0631", "\u0645\u062D\u0645\u062F", "\u0635\u0644\u0639\u0645", "\u0631\u0633\u0648\u0644", "\u0639\u0644\u064A\u0647", "\u0648\u0633\u0644\u0645", "\u0635\u0644\u0649", "\u0635\u0644\u0649\u0020\u0627\u0644\u0644\u0647\u0020\u0639\u0644\u064A\u0647\u0020\u0648\u0633\u0644\u0645", "\u062C\u0644\u0020\u062C\u0644\u0627\u0644\u0647", "\u0631\u06CC\u0627\u0644", "\u2014", "\u2013", "\u005F", "\u007B", "\u007D", "\u3014", "\u3015", "\u3010", "\u3011", "\u300A", "\u300B", "\u300C", "\u300D", "\u300E", "\u300F", "\u002C", "\u3001", "\u003A", "\u003F", "\u0021", "\u0023", "\u0026", "\u002A", "\u002D", "\u003C", "\u003E", "\\", "\u0024", "\u0025", "\u0040", "\u0020\u064B", "\u0640\u064B", "\u0020\u064C", "\u0020\u064D", "\u0020\u064E", "\u0640\u064E", "\u0020\u064F", "\u0640\u064F", "\u0020\u0650", "\u0640\u0650", "\u0020\u0651", "\u0640\u0651", "\u0020\u0652", "\u0640\u0652", "\u0621", "\u0627", "\u0628", "\u0629", "\u062A", "\u062B", "\u062C", "\u062D", "\u062E", "\u062F", "\u0630", "\u0631", "\u0632", "\u0633", "\u0634", "\u0635", "\u0636", "\u0637", "\u0638", "\u0639", "\u063A", "\u0641", "\u0642", "\u0643", "\u0644", "\u0645", "\u0646", "\u0647", "\u0648", "\u064A", "\u0644\u0627\u0653", "\u0644\u0627\u0654", "\u0644\u0627\u0655", "\u0644\u0627", "\"", "\u0027", "\u002F", "\u005B", "\u005D", "\u005E", "\u007C", "\u007E", "\u2985", "\u2986", "\u3002", "\u30FB", "\u30A1", "\u30A3", "\u30A5", "\u30A7", "\u30A9", "\u30E3", "\u30E5", "\u30E7", "\u30C3", "\u30FC", "\u30F3", "\u3099", "\u309A", "\u00A2", "\u00A3", "\u00AC", "\u00A6", "\u00A5", "\u20A9", "\u2502", "\u2190", "\u2191", "\u2192", "\u2193", "\u25A0", "\u25CB", }; } libidn-1.28/csharp/Punycode.cs0000644000000000000000000001433112153706572013203 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { public class Punycode { /* Punycode parameters */ internal const int TMIN = 1; internal const int TMAX = 26; internal const int BASE = 36; internal const int INITIAL_N = 128; internal const int INITIAL_BIAS = 72; internal const int DAMP = 700; internal const int SKEW = 38; internal const char DELIMITER = '-'; /// /// Punycodes a unicode string. /// /// Unicode string. /// Punycoded string. public static string Encode(string input) { int n = INITIAL_N; int delta = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); // Copy all basic code points to the output int b = 0; for (int i = 0; i < input.Length; i++) { char c = input[i]; if (IsBasic(c)) { output.Append(c); b++; } } // Append delimiter if (b > 0) { output.Append(DELIMITER); } int h = b; while (h < input.Length) { int m = System.Int32.MaxValue; // Find the minimum code point >= n for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c >= n && c < m) { m = c; } } if (m - n > (System.Int32.MaxValue - delta) / (h + 1)) { throw new PunycodeException(PunycodeException.OVERFLOW); } delta = delta + (m - n) * (h + 1); n = m; for (int j = 0; j < input.Length; j++) { int c = input[j]; if (c < n) { delta++; if (0 == delta) { throw new PunycodeException(PunycodeException.OVERFLOW); } } if (c == n) { int q = delta; for (int k = BASE; ; k += BASE) { int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (q < t) { break; } output.Append((char) Digit2Codepoint(t + (q - t) % (BASE - t))); q = (q - t) / (BASE - t); } output.Append((char) Digit2Codepoint(q)); bias = Adapt(delta, h + 1, h == b); delta = 0; h++; } } delta++; n++; } return output.ToString(); } /// /// Decode a punycoded string. /// /// Punycode string /// Unicode string. public static string Decode(string input) { int n = INITIAL_N; int i = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); int d = input.LastIndexOf((System.Char) DELIMITER); if (d > 0) { for (int j = 0; j < d; j++) { char c = input[j]; if (!IsBasic(c)) { throw new PunycodeException(PunycodeException.BAD_INPUT); } output.Append(c); } d++; } else { d = 0; } while (d < input.Length) { int oldi = i; int w = 1; for (int k = BASE; ; k += BASE) { if (d == input.Length) { throw new PunycodeException(PunycodeException.BAD_INPUT); } int c = input[d++]; int digit = Codepoint2Digit(c); if (digit > (System.Int32.MaxValue - i) / w) { throw new PunycodeException(PunycodeException.OVERFLOW); } i = i + digit * w; int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (digit < t) { break; } w = w * (BASE - t); } bias = Adapt(i - oldi, output.Length + 1, oldi == 0); if (i / (output.Length + 1) > Int32.MaxValue - n) { throw new PunycodeException(PunycodeException.OVERFLOW); } n = n + i / (output.Length + 1); i = i % (output.Length + 1); // following overload is not supported on CF //output.Insert(i,(char) n); output.Insert(i, new char[1] { (char) n }); i++; } return output.ToString(); } public static int Adapt(int delta, int numpoints, bool first) { if (first) { delta = delta / DAMP; } else { delta = delta / 2; } delta = delta + (delta / numpoints); int k = 0; while (delta > ((BASE - TMIN) * TMAX) / 2) { delta = delta / (BASE - TMIN); k = k + BASE; } return k + ((BASE - TMIN + 1) * delta) / (delta + SKEW); } public static bool IsBasic(char c) { return c < 0x80; } public static int Digit2Codepoint(int d) { if (d < 26) { // 0..25 : 'a'..'z' return d + 'a'; } else if (d < 36) { // 26..35 : '0'..'9'; return d - 26 + '0'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } public static int Codepoint2Digit(int c) { if (c - '0' < 10) { // '0'..'9' : 26..35 return c - '0' + 26; } else if (c - 'a' < 26) { // 'a'..'z' : 0..25 return c - 'a'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } } } libidn-1.28/csharp/IDNA.cs0000644000000000000000000001711712153706572012135 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; using System.Text; namespace Gnu.Inet.Encoding { public class IDNA { public const string ACE_PREFIX = "xn--"; /// /// Converts a Unicode string to ASCII using the procedure in RFC3490 /// section 4.1. Unassigned characters are not allowed and STD3 ASCII /// rules are enforced. The input string may be a domain name /// containing dots. /// /// Unicode string. /// Encoded string. public static string ToASCII(string input) { StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.Length; i++) { char c = input[i]; if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.Append(ToASCII(h.ToString(), false, true)); o.Append('.'); h = new StringBuilder(); } else { h.Append(c); } } o.Append(ToASCII(h.ToString(), false, true)); return o.ToString(); } /// /// Converts a Unicode string to ASCII using the procedure in RFC3490 /// section 4.1. Unassigned characters are not allowed and STD3 ASCII /// rules are enforced. /// /// Unicode string. /// Unassigned characters, allowed or not? /// STD3 ASCII rules, enforced or not? /// Encoded string. public static string ToASCII(string input, bool allowUnassigned, bool useSTD3ASCIIRules) { // Step 1: Check if the string contains code points outside // the ASCII range 0..0x7c. bool nonASCII = false; for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the nameprep operation. if (nonASCII) { try { input = Stringprep.NamePrep(input, allowUnassigned); } catch (StringprepException e) { // TODO throw new IDNAException(e); } } // Step 3: - Verify the absence of non-LDH ASCII code points // (char) 0..0x2c, 0x2e..0x2f, 0x3a..0x40, 0x5b..0x60, // (char) 0x7b..0x7f // - Verify the absence of leading and trailing // hyphen-minus if (useSTD3ASCIIRules) { for (int i = 0; i < input.Length; i++) { int c = input[i]; if ((c <= 0x2c) || (c >= 0x2e && c <= 0x2f) || (c >= 0x3a && c <= 0x40) || (c >= 0x5b && c <= 0x60) || (c >= 0x7b && c <= 0x7f)) { throw new IDNAException(IDNAException.CONTAINS_NON_LDH); } } if (input.StartsWith("-") || input.EndsWith("-")) { throw new IDNAException(IDNAException.CONTAINS_HYPHEN); } } // Step 4: If all code points are inside 0..0x7f, skip to step 8 nonASCII = false; for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c > 0x7f) { nonASCII = true; break; } } string output = input; if (nonASCII) { // Step 5: Verify that the sequence does not begin with the ACE prefix. if (input.StartsWith(ACE_PREFIX)) { throw new IDNAException(IDNAException.CONTAINS_ACE_PREFIX); } // Step 6: Punycode try { output = Punycode.Encode(input); } catch (PunycodeException e) { // TODO throw new IDNAException(e); } // Step 7: Prepend the ACE prefix. output = ACE_PREFIX + output; } // Step 8: Check that the length is inside 1..63. if (output.Length < 1 || output.Length > 63) { throw new IDNAException(IDNAException.TOO_LONG); } return output; } /// /// Converts an ASCII-encoded string to Unicode. Unassigned /// characters are not allowed and STD3 hostnames are enforced. Input /// may be domain name containing dots. /// /// ASCII input string. /// Unicode string. public static string ToUnicode(string input) { input = input.ToLower(); StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.Length; i++) { char c = input[i]; if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.Append(ToUnicode(h.ToString(), false, true)); o.Append(c); h = new StringBuilder(); } else { h.Append(c); } } o.Append(ToUnicode(h.ToString(), false, true)); return o.ToString(); } /// /// Converts an ASCII-encoded string to Unicode. /// /// ASCII input string. /// Allow unassigned Unicode characters. /// Check that the output conforms to STD3. /// Unicode string. public static string ToUnicode(string input, bool allowUnassigned, bool useSTD3ASCIIRules) { string original = input; bool nonASCII = false; // Step 1: If all code points are inside 0..0x7f, skip to step 3. for (int i = 0; i < input.Length; i++) { int c = input[i]; if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the Nameprep operation. if (nonASCII) { try { input = Stringprep.NamePrep(input, allowUnassigned); } catch (StringprepException e) { // ToUnicode never fails! return original; } } // Step 3: Verify the sequence starts with the ACE prefix. if (!input.StartsWith(ACE_PREFIX)) { // ToUnicode never fails! return original; } string stored = input; // Step 4: Remove the ACE prefix. input = input.Substring(ACE_PREFIX.Length); // Step 5: Decode using punycode string output; try { output = Punycode.Decode(input); } catch (PunycodeException e) { // ToUnicode never fails! return original; } // Step 6: Apply toASCII string ascii; try { ascii = ToASCII(output, allowUnassigned, useSTD3ASCIIRules); } catch (IDNAException e) { // ToUnicode never fails! return original; } // Step 7: Compare case-insensitively. if (!ascii.ToUpper().Equals(stored.ToUpper())) { // ToUnicode never fails! return original; } // Step 8: Return the result. return output; } } } libidn-1.28/csharp/libidn_PPC.sln0000664000000000000000000000207011746453142013545 00000000000000Microsoft Visual Studio Solution File, Format Version 8.00 Project("{20D4826A-C6FA-45DB-90F4-C717570B9F32}") = "libidn_PPC", "libidn_PPC.csdproj", "{D890E339-5F13-482B-BD29-C0ED806F41BD}" ProjectSection(ProjectDependencies) = postProject EndProjectSection EndProject Global GlobalSection(SolutionConfiguration) = preSolution Debug = Debug Release = Release EndGlobalSection GlobalSection(ProjectConfiguration) = postSolution {D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug.ActiveCfg = Debug|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug.Build.0 = Debug|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug.Deploy.0 = Debug|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Release.ActiveCfg = Release|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Release.Build.0 = Release|Pocket PC {D890E339-5F13-482B-BD29-C0ED806F41BD}.Release.Deploy.0 = Release|Pocket PC EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution EndGlobalSection GlobalSection(ExtensibilityAddIns) = postSolution EndGlobalSection EndGlobal libidn-1.28/csharp/PunycodeException.cs0000644000000000000000000000303612153706572015062 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace Gnu.Inet.Encoding { public class PunycodeException : Exception { public static string OVERFLOW = "Overflow."; public static string BAD_INPUT = "Bad input."; /// /// Creates a new PunycodeException. /// /// message public PunycodeException(string message) : base(message) { } } } libidn-1.28/csharp/Makefile.am0000644000000000000000000000605212153706572013123 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2005-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . CSHARPEXEC = $(SHELL) $(top_builddir)/csharpexec.sh CSHARPCOMP = $(SHELL) $(top_builddir)/csharpcomp.sh CSHARPCOMPFLAGS = SOURCES = AssemblyInfo.cs IDNA.cs RFC3454.cs CombiningClass.cs \ IDNAException.cs Stringprep.cs Composition.cs NFKC.cs \ StringprepException.cs DecompositionKeys.cs Punycode.cs \ DecompositionMappings.cs PunycodeException.cs SOURCES_GENERATE = generate/AssemblyInfo.cs \ generate/GenerateNFKC.cs generate/GenerateRFC3454.cs \ generate/HashSet.cs generate/Program.cs generate/Tokenizer.cs MSVSC = libidn.csproj libidn.csproj.user libidn_PPC.csdproj \ libidn_PPC.csdproj.user libidn_PPC.sln libidn_PPC.suo \ libidn.sln libidn.suo EXTRA_DIST = $(SOURCES) $(SOURCES_GENERATE) $(MSVSC) CLEANFILES = Libidn.dll ALL_LOCAL_TARGETS = INSTALLDIRS_LOCAL_TARGETS = INSTALL_DATA_LOCAL_TARGETS = UNINSTALL_LOCAL_TARGETS = if CSHARP ALL_LOCAL_TARGETS += Libidn.dll INSTALLDIRS_LOCAL_TARGETS += install-dll-dir INSTALL_DATA_LOCAL_TARGETS += install-dll UNINSTALL_LOCAL_TARGETS += uninstall-dll Libidn.dll: $(SOURCES) $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ `for src in $(SOURCES); do echo $(srcdir)/$$src; done` SPEC = $(top_srcdir)/doc/specifications GenerateTables.exe: $(SOURCES_GENERATE) $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ `for src in $(SOURCES_GENERATE); do echo $(srcdir)/$$src; done` if ! test -f rfc3454.txt; then \ ln -s $(SPEC)/rfc3454.txt . \ || cp $(SPEC)/rfc3454.txt .; \ fi if ! test -f UnicodeData.txt; then \ ln -s $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt \ || cp $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt; \ fi if ! test -f CompositionExclusions.txt; then \ ln -s $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt \ || cp $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt; \ fi RFC3454.cs CombiningClass.cs DecompositionKeys.cs DecompositionMappings.cs Composition.cs: $(GEN_SOURCES) make GenerateTables.exe $(CSHARPEXEC) ./GenerateTables.exe install-dll-dir: $(mkinstalldirs) $(DESTDIR)$(libdir) install-dll: install-dll-dir $(INSTALL_DATA) Libidn.dll $(DESTDIR)$(libdir)/Libidn.dll uninstall-dll: rm -f $(DESTDIR)$(libdir)/Libidn.dll endif all-local: $(ALL_LOCAL_TARGETS) install-data-local: $(INSTALL_DATA_LOCAL_TARGETS) installdirs-local: $(INSTALLDIRS_LOCAL_TARGETS) uninstall-local: $(UNINSTALL_LOCAL_TARGETS) libidn-1.28/csharp/DecompositionKeys.cs0000644000000000000000000021210412167245632015063 00000000000000// Do not edit !!! // this file is generated automatically public class DecompositionKeys { public static readonly int[] k = new int[] { '\u00A0', 0, '\u00A8', 1, '\u00AA', 2, '\u00AF', 3, '\u00B2', 4, '\u00B3', 5, '\u00B4', 6, '\u00B5', 7, '\u00B8', 8, '\u00B9', 9, '\u00BA', 10, '\u00BC', 11, '\u00BD', 12, '\u00BE', 13, '\u00C0', 14, '\u00C1', 15, '\u00C2', 16, '\u00C3', 17, '\u00C4', 18, '\u00C5', 19, '\u00C7', 20, '\u00C8', 21, '\u00C9', 22, '\u00CA', 23, '\u00CB', 24, '\u00CC', 25, '\u00CD', 26, '\u00CE', 27, '\u00CF', 28, '\u00D1', 29, '\u00D2', 30, '\u00D3', 31, '\u00D4', 32, '\u00D5', 33, '\u00D6', 34, '\u00D9', 35, '\u00DA', 36, '\u00DB', 37, '\u00DC', 38, '\u00DD', 39, '\u00E0', 40, '\u00E1', 41, '\u00E2', 42, '\u00E3', 43, '\u00E4', 44, '\u00E5', 45, '\u00E7', 46, '\u00E8', 47, '\u00E9', 48, '\u00EA', 49, '\u00EB', 50, '\u00EC', 51, '\u00ED', 52, '\u00EE', 53, '\u00EF', 54, '\u00F1', 55, '\u00F2', 56, '\u00F3', 57, '\u00F4', 58, '\u00F5', 59, '\u00F6', 60, '\u00F9', 61, '\u00FA', 62, '\u00FB', 63, '\u00FC', 64, '\u00FD', 65, '\u00FF', 66, '\u0100', 67, '\u0101', 68, '\u0102', 69, '\u0103', 70, '\u0104', 71, '\u0105', 72, '\u0106', 73, '\u0107', 74, '\u0108', 75, '\u0109', 76, '\u010A', 77, '\u010B', 78, '\u010C', 79, '\u010D', 80, '\u010E', 81, '\u010F', 82, '\u0112', 83, '\u0113', 84, '\u0114', 85, '\u0115', 86, '\u0116', 87, '\u0117', 88, '\u0118', 89, '\u0119', 90, '\u011A', 91, '\u011B', 92, '\u011C', 93, '\u011D', 94, '\u011E', 95, '\u011F', 96, '\u0120', 97, '\u0121', 98, '\u0122', 99, '\u0123', 100, '\u0124', 101, '\u0125', 102, '\u0128', 103, '\u0129', 104, '\u012A', 105, '\u012B', 106, '\u012C', 107, '\u012D', 108, '\u012E', 109, '\u012F', 110, '\u0130', 111, '\u0132', 112, '\u0133', 113, '\u0134', 114, '\u0135', 115, '\u0136', 116, '\u0137', 117, '\u0139', 118, '\u013A', 119, '\u013B', 120, '\u013C', 121, '\u013D', 122, '\u013E', 123, '\u013F', 124, '\u0140', 125, '\u0143', 126, '\u0144', 127, '\u0145', 128, '\u0146', 129, '\u0147', 130, '\u0148', 131, '\u0149', 132, '\u014C', 133, '\u014D', 134, '\u014E', 135, '\u014F', 136, '\u0150', 137, '\u0151', 138, '\u0154', 139, '\u0155', 140, '\u0156', 141, '\u0157', 142, '\u0158', 143, '\u0159', 144, '\u015A', 145, '\u015B', 146, '\u015C', 147, '\u015D', 148, '\u015E', 149, '\u015F', 150, '\u0160', 151, '\u0161', 152, '\u0162', 153, '\u0163', 154, '\u0164', 155, '\u0165', 156, '\u0168', 157, '\u0169', 158, '\u016A', 159, '\u016B', 160, '\u016C', 161, '\u016D', 162, '\u016E', 163, '\u016F', 164, '\u0170', 165, '\u0171', 166, '\u0172', 167, '\u0173', 168, '\u0174', 169, '\u0175', 170, '\u0176', 171, '\u0177', 172, '\u0178', 173, '\u0179', 174, '\u017A', 175, '\u017B', 176, '\u017C', 177, '\u017D', 178, '\u017E', 179, '\u017F', 180, '\u01A0', 181, '\u01A1', 182, '\u01AF', 183, '\u01B0', 184, '\u01C4', 185, '\u01C5', 186, '\u01C6', 187, '\u01C7', 188, '\u01C8', 189, '\u01C9', 190, '\u01CA', 191, '\u01CB', 192, '\u01CC', 193, '\u01CD', 194, '\u01CE', 195, '\u01CF', 196, '\u01D0', 197, '\u01D1', 198, '\u01D2', 199, '\u01D3', 200, '\u01D4', 201, '\u01D5', 202, '\u01D6', 203, '\u01D7', 204, '\u01D8', 205, '\u01D9', 206, '\u01DA', 207, '\u01DB', 208, '\u01DC', 209, '\u01DE', 210, '\u01DF', 211, '\u01E0', 212, '\u01E1', 213, '\u01E2', 214, '\u01E3', 215, '\u01E6', 216, '\u01E7', 217, '\u01E8', 218, '\u01E9', 219, '\u01EA', 220, '\u01EB', 221, '\u01EC', 222, '\u01ED', 223, '\u01EE', 224, '\u01EF', 225, '\u01F0', 226, '\u01F1', 227, '\u01F2', 228, '\u01F3', 229, '\u01F4', 230, '\u01F5', 231, '\u01F8', 232, '\u01F9', 233, '\u01FA', 234, '\u01FB', 235, '\u01FC', 236, '\u01FD', 237, '\u01FE', 238, '\u01FF', 239, '\u0200', 240, '\u0201', 241, '\u0202', 242, '\u0203', 243, '\u0204', 244, '\u0205', 245, '\u0206', 246, '\u0207', 247, '\u0208', 248, '\u0209', 249, '\u020A', 250, '\u020B', 251, '\u020C', 252, '\u020D', 253, '\u020E', 254, '\u020F', 255, '\u0210', 256, '\u0211', 257, '\u0212', 258, '\u0213', 259, '\u0214', 260, '\u0215', 261, '\u0216', 262, '\u0217', 263, '\u0218', 264, '\u0219', 265, '\u021A', 266, '\u021B', 267, '\u021E', 268, '\u021F', 269, '\u0226', 270, '\u0227', 271, '\u0228', 272, '\u0229', 273, '\u022A', 274, '\u022B', 275, '\u022C', 276, '\u022D', 277, '\u022E', 278, '\u022F', 279, '\u0230', 280, '\u0231', 281, '\u0232', 282, '\u0233', 283, '\u02B0', 284, '\u02B1', 285, '\u02B2', 286, '\u02B3', 287, '\u02B4', 288, '\u02B5', 289, '\u02B6', 290, '\u02B7', 291, '\u02B8', 292, '\u02D8', 293, '\u02D9', 294, '\u02DA', 295, '\u02DB', 296, '\u02DC', 297, '\u02DD', 298, '\u02E0', 299, '\u02E1', 300, '\u02E2', 180, '\u02E3', 301, '\u02E4', 302, '\u0340', 303, '\u0341', 304, '\u0343', 305, '\u0344', 306, '\u0374', 307, '\u037A', 308, '\u037E', 309, '\u0384', 6, '\u0385', 310, '\u0386', 311, '\u0387', 312, '\u0388', 313, '\u0389', 314, '\u038A', 315, '\u038C', 316, '\u038E', 317, '\u038F', 318, '\u0390', 319, '\u03AA', 320, '\u03AB', 321, '\u03AC', 322, '\u03AD', 323, '\u03AE', 324, '\u03AF', 325, '\u03B0', 326, '\u03CA', 327, '\u03CB', 328, '\u03CC', 329, '\u03CD', 330, '\u03CE', 331, '\u03D0', 332, '\u03D1', 333, '\u03D2', 334, '\u03D3', 317, '\u03D4', 321, '\u03D5', 335, '\u03D6', 336, '\u03F0', 337, '\u03F1', 338, '\u03F2', 339, '\u03F4', 340, '\u03F5', 341, '\u0400', 342, '\u0401', 343, '\u0403', 344, '\u0407', 345, '\u040C', 346, '\u040D', 347, '\u040E', 348, '\u0419', 349, '\u0439', 350, '\u0450', 351, '\u0451', 352, '\u0453', 353, '\u0457', 354, '\u045C', 355, '\u045D', 356, '\u045E', 357, '\u0476', 358, '\u0477', 359, '\u04C1', 360, '\u04C2', 361, '\u04D0', 362, '\u04D1', 363, '\u04D2', 364, '\u04D3', 365, '\u04D6', 366, '\u04D7', 367, '\u04DA', 368, '\u04DB', 369, '\u04DC', 370, '\u04DD', 371, '\u04DE', 372, '\u04DF', 373, '\u04E2', 374, '\u04E3', 375, '\u04E4', 376, '\u04E5', 377, '\u04E6', 378, '\u04E7', 379, '\u04EA', 380, '\u04EB', 381, '\u04EC', 382, '\u04ED', 383, '\u04EE', 384, '\u04EF', 385, '\u04F0', 386, '\u04F1', 387, '\u04F2', 388, '\u04F3', 389, '\u04F4', 390, '\u04F5', 391, '\u04F8', 392, '\u04F9', 393, '\u0587', 394, '\u0622', 395, '\u0623', 396, '\u0624', 397, '\u0625', 398, '\u0626', 399, '\u0675', 400, '\u0676', 401, '\u0677', 402, '\u0678', 403, '\u06C0', 404, '\u06C2', 405, '\u06D3', 406, '\u0929', 407, '\u0931', 408, '\u0934', 409, '\u0958', 410, '\u0959', 411, '\u095A', 412, '\u095B', 413, '\u095C', 414, '\u095D', 415, '\u095E', 416, '\u095F', 417, '\u09CB', 418, '\u09CC', 419, '\u09DC', 420, '\u09DD', 421, '\u09DF', 422, '\u0A33', 423, '\u0A36', 424, '\u0A59', 425, '\u0A5A', 426, '\u0A5B', 427, '\u0A5E', 428, '\u0B48', 429, '\u0B4B', 430, '\u0B4C', 431, '\u0B5C', 432, '\u0B5D', 433, '\u0B94', 434, '\u0BCA', 435, '\u0BCB', 436, '\u0BCC', 437, '\u0C48', 438, '\u0CC0', 439, '\u0CC7', 440, '\u0CC8', 441, '\u0CCA', 442, '\u0CCB', 443, '\u0D4A', 444, '\u0D4B', 445, '\u0D4C', 446, '\u0DDA', 447, '\u0DDC', 448, '\u0DDD', 449, '\u0DDE', 450, '\u0E33', 451, '\u0EB3', 452, '\u0EDC', 453, '\u0EDD', 454, '\u0F0C', 455, '\u0F43', 456, '\u0F4D', 457, '\u0F52', 458, '\u0F57', 459, '\u0F5C', 460, '\u0F69', 461, '\u0F73', 462, '\u0F75', 463, '\u0F76', 464, '\u0F77', 465, '\u0F78', 466, '\u0F79', 467, '\u0F81', 468, '\u0F93', 469, '\u0F9D', 470, '\u0FA2', 471, '\u0FA7', 472, '\u0FAC', 473, '\u0FB9', 474, '\u1026', 475, '\u1E00', 476, '\u1E01', 477, '\u1E02', 478, '\u1E03', 479, '\u1E04', 480, '\u1E05', 481, '\u1E06', 482, '\u1E07', 483, '\u1E08', 484, '\u1E09', 485, '\u1E0A', 486, '\u1E0B', 487, '\u1E0C', 488, '\u1E0D', 489, '\u1E0E', 490, '\u1E0F', 491, '\u1E10', 492, '\u1E11', 493, '\u1E12', 494, '\u1E13', 495, '\u1E14', 496, '\u1E15', 497, '\u1E16', 498, '\u1E17', 499, '\u1E18', 500, '\u1E19', 501, '\u1E1A', 502, '\u1E1B', 503, '\u1E1C', 504, '\u1E1D', 505, '\u1E1E', 506, '\u1E1F', 507, '\u1E20', 508, '\u1E21', 509, '\u1E22', 510, '\u1E23', 511, '\u1E24', 512, '\u1E25', 513, '\u1E26', 514, '\u1E27', 515, '\u1E28', 516, '\u1E29', 517, '\u1E2A', 518, '\u1E2B', 519, '\u1E2C', 520, '\u1E2D', 521, '\u1E2E', 522, '\u1E2F', 523, '\u1E30', 524, '\u1E31', 525, '\u1E32', 526, '\u1E33', 527, '\u1E34', 528, '\u1E35', 529, '\u1E36', 530, '\u1E37', 531, '\u1E38', 532, '\u1E39', 533, '\u1E3A', 534, '\u1E3B', 535, '\u1E3C', 536, '\u1E3D', 537, '\u1E3E', 538, '\u1E3F', 539, '\u1E40', 540, '\u1E41', 541, '\u1E42', 542, '\u1E43', 543, '\u1E44', 544, '\u1E45', 545, '\u1E46', 546, '\u1E47', 547, '\u1E48', 548, '\u1E49', 549, '\u1E4A', 550, '\u1E4B', 551, '\u1E4C', 552, '\u1E4D', 553, '\u1E4E', 554, '\u1E4F', 555, '\u1E50', 556, '\u1E51', 557, '\u1E52', 558, '\u1E53', 559, '\u1E54', 560, '\u1E55', 561, '\u1E56', 562, '\u1E57', 563, '\u1E58', 564, '\u1E59', 565, '\u1E5A', 566, '\u1E5B', 567, '\u1E5C', 568, '\u1E5D', 569, '\u1E5E', 570, '\u1E5F', 571, '\u1E60', 572, '\u1E61', 573, '\u1E62', 574, '\u1E63', 575, '\u1E64', 576, '\u1E65', 577, '\u1E66', 578, '\u1E67', 579, '\u1E68', 580, '\u1E69', 581, '\u1E6A', 582, '\u1E6B', 583, '\u1E6C', 584, '\u1E6D', 585, '\u1E6E', 586, '\u1E6F', 587, '\u1E70', 588, '\u1E71', 589, '\u1E72', 590, '\u1E73', 591, '\u1E74', 592, '\u1E75', 593, '\u1E76', 594, '\u1E77', 595, '\u1E78', 596, '\u1E79', 597, '\u1E7A', 598, '\u1E7B', 599, '\u1E7C', 600, '\u1E7D', 601, '\u1E7E', 602, '\u1E7F', 603, '\u1E80', 604, '\u1E81', 605, '\u1E82', 606, '\u1E83', 607, '\u1E84', 608, '\u1E85', 609, '\u1E86', 610, '\u1E87', 611, '\u1E88', 612, '\u1E89', 613, '\u1E8A', 614, '\u1E8B', 615, '\u1E8C', 616, '\u1E8D', 617, '\u1E8E', 618, '\u1E8F', 619, '\u1E90', 620, '\u1E91', 621, '\u1E92', 622, '\u1E93', 623, '\u1E94', 624, '\u1E95', 625, '\u1E96', 626, '\u1E97', 627, '\u1E98', 628, '\u1E99', 629, '\u1E9A', 630, '\u1E9B', 573, '\u1EA0', 631, '\u1EA1', 632, '\u1EA2', 633, '\u1EA3', 634, '\u1EA4', 635, '\u1EA5', 636, '\u1EA6', 637, '\u1EA7', 638, '\u1EA8', 639, '\u1EA9', 640, '\u1EAA', 641, '\u1EAB', 642, '\u1EAC', 643, '\u1EAD', 644, '\u1EAE', 645, '\u1EAF', 646, '\u1EB0', 647, '\u1EB1', 648, '\u1EB2', 649, '\u1EB3', 650, '\u1EB4', 651, '\u1EB5', 652, '\u1EB6', 653, '\u1EB7', 654, '\u1EB8', 655, '\u1EB9', 656, '\u1EBA', 657, '\u1EBB', 658, '\u1EBC', 659, '\u1EBD', 660, '\u1EBE', 661, '\u1EBF', 662, '\u1EC0', 663, '\u1EC1', 664, '\u1EC2', 665, '\u1EC3', 666, '\u1EC4', 667, '\u1EC5', 668, '\u1EC6', 669, '\u1EC7', 670, '\u1EC8', 671, '\u1EC9', 672, '\u1ECA', 673, '\u1ECB', 674, '\u1ECC', 675, '\u1ECD', 676, '\u1ECE', 677, '\u1ECF', 678, '\u1ED0', 679, '\u1ED1', 680, '\u1ED2', 681, '\u1ED3', 682, '\u1ED4', 683, '\u1ED5', 684, '\u1ED6', 685, '\u1ED7', 686, '\u1ED8', 687, '\u1ED9', 688, '\u1EDA', 689, '\u1EDB', 690, '\u1EDC', 691, '\u1EDD', 692, '\u1EDE', 693, '\u1EDF', 694, '\u1EE0', 695, '\u1EE1', 696, '\u1EE2', 697, '\u1EE3', 698, '\u1EE4', 699, '\u1EE5', 700, '\u1EE6', 701, '\u1EE7', 702, '\u1EE8', 703, '\u1EE9', 704, '\u1EEA', 705, '\u1EEB', 706, '\u1EEC', 707, '\u1EED', 708, '\u1EEE', 709, '\u1EEF', 710, '\u1EF0', 711, '\u1EF1', 712, '\u1EF2', 713, '\u1EF3', 714, '\u1EF4', 715, '\u1EF5', 716, '\u1EF6', 717, '\u1EF7', 718, '\u1EF8', 719, '\u1EF9', 720, '\u1F00', 721, '\u1F01', 722, '\u1F02', 723, '\u1F03', 724, '\u1F04', 725, '\u1F05', 726, '\u1F06', 727, '\u1F07', 728, '\u1F08', 729, '\u1F09', 730, '\u1F0A', 731, '\u1F0B', 732, '\u1F0C', 733, '\u1F0D', 734, '\u1F0E', 735, '\u1F0F', 736, '\u1F10', 737, '\u1F11', 738, '\u1F12', 739, '\u1F13', 740, '\u1F14', 741, '\u1F15', 742, '\u1F18', 743, '\u1F19', 744, '\u1F1A', 745, '\u1F1B', 746, '\u1F1C', 747, '\u1F1D', 748, '\u1F20', 749, '\u1F21', 750, '\u1F22', 751, '\u1F23', 752, '\u1F24', 753, '\u1F25', 754, '\u1F26', 755, '\u1F27', 756, '\u1F28', 757, '\u1F29', 758, '\u1F2A', 759, '\u1F2B', 760, '\u1F2C', 761, '\u1F2D', 762, '\u1F2E', 763, '\u1F2F', 764, '\u1F30', 765, '\u1F31', 766, '\u1F32', 767, '\u1F33', 768, '\u1F34', 769, '\u1F35', 770, '\u1F36', 771, '\u1F37', 772, '\u1F38', 773, '\u1F39', 774, '\u1F3A', 775, '\u1F3B', 776, '\u1F3C', 777, '\u1F3D', 778, '\u1F3E', 779, '\u1F3F', 780, '\u1F40', 781, '\u1F41', 782, '\u1F42', 783, '\u1F43', 784, '\u1F44', 785, '\u1F45', 786, '\u1F48', 787, '\u1F49', 788, '\u1F4A', 789, '\u1F4B', 790, '\u1F4C', 791, '\u1F4D', 792, '\u1F50', 793, '\u1F51', 794, '\u1F52', 795, '\u1F53', 796, '\u1F54', 797, '\u1F55', 798, '\u1F56', 799, '\u1F57', 800, '\u1F59', 801, '\u1F5B', 802, '\u1F5D', 803, '\u1F5F', 804, '\u1F60', 805, '\u1F61', 806, '\u1F62', 807, '\u1F63', 808, '\u1F64', 809, '\u1F65', 810, '\u1F66', 811, '\u1F67', 812, '\u1F68', 813, '\u1F69', 814, '\u1F6A', 815, '\u1F6B', 816, '\u1F6C', 817, '\u1F6D', 818, '\u1F6E', 819, '\u1F6F', 820, '\u1F70', 821, '\u1F71', 322, '\u1F72', 822, '\u1F73', 323, '\u1F74', 823, '\u1F75', 324, '\u1F76', 824, '\u1F77', 325, '\u1F78', 825, '\u1F79', 329, '\u1F7A', 826, '\u1F7B', 330, '\u1F7C', 827, '\u1F7D', 331, '\u1F80', 828, '\u1F81', 829, '\u1F82', 830, '\u1F83', 831, '\u1F84', 832, '\u1F85', 833, '\u1F86', 834, '\u1F87', 835, '\u1F88', 836, '\u1F89', 837, '\u1F8A', 838, '\u1F8B', 839, '\u1F8C', 840, '\u1F8D', 841, '\u1F8E', 842, '\u1F8F', 843, '\u1F90', 844, '\u1F91', 845, '\u1F92', 846, '\u1F93', 847, '\u1F94', 848, '\u1F95', 849, '\u1F96', 850, '\u1F97', 851, '\u1F98', 852, '\u1F99', 853, '\u1F9A', 854, '\u1F9B', 855, '\u1F9C', 856, '\u1F9D', 857, '\u1F9E', 858, '\u1F9F', 859, '\u1FA0', 860, '\u1FA1', 861, '\u1FA2', 862, '\u1FA3', 863, '\u1FA4', 864, '\u1FA5', 865, '\u1FA6', 866, '\u1FA7', 867, '\u1FA8', 868, '\u1FA9', 869, '\u1FAA', 870, '\u1FAB', 871, '\u1FAC', 872, '\u1FAD', 873, '\u1FAE', 874, '\u1FAF', 875, '\u1FB0', 876, '\u1FB1', 877, '\u1FB2', 878, '\u1FB3', 879, '\u1FB4', 880, '\u1FB6', 881, '\u1FB7', 882, '\u1FB8', 883, '\u1FB9', 884, '\u1FBA', 885, '\u1FBB', 311, '\u1FBC', 886, '\u1FBD', 887, '\u1FBE', 888, '\u1FBF', 887, '\u1FC0', 889, '\u1FC1', 890, '\u1FC2', 891, '\u1FC3', 892, '\u1FC4', 893, '\u1FC6', 894, '\u1FC7', 895, '\u1FC8', 896, '\u1FC9', 313, '\u1FCA', 897, '\u1FCB', 314, '\u1FCC', 898, '\u1FCD', 899, '\u1FCE', 900, '\u1FCF', 901, '\u1FD0', 902, '\u1FD1', 903, '\u1FD2', 904, '\u1FD3', 319, '\u1FD6', 905, '\u1FD7', 906, '\u1FD8', 907, '\u1FD9', 908, '\u1FDA', 909, '\u1FDB', 315, '\u1FDD', 910, '\u1FDE', 911, '\u1FDF', 912, '\u1FE0', 913, '\u1FE1', 914, '\u1FE2', 915, '\u1FE3', 326, '\u1FE4', 916, '\u1FE5', 917, '\u1FE6', 918, '\u1FE7', 919, '\u1FE8', 920, '\u1FE9', 921, '\u1FEA', 922, '\u1FEB', 317, '\u1FEC', 923, '\u1FED', 924, '\u1FEE', 310, '\u1FEF', 925, '\u1FF2', 926, '\u1FF3', 927, '\u1FF4', 928, '\u1FF6', 929, '\u1FF7', 930, '\u1FF8', 931, '\u1FF9', 316, '\u1FFA', 932, '\u1FFB', 318, '\u1FFC', 933, '\u1FFD', 6, '\u1FFE', 934, '\u2000', 0, '\u2001', 0, '\u2002', 0, '\u2003', 0, '\u2004', 0, '\u2005', 0, '\u2006', 0, '\u2007', 0, '\u2008', 0, '\u2009', 0, '\u200A', 0, '\u2011', 935, '\u2017', 936, '\u2024', 937, '\u2025', 938, '\u2026', 939, '\u202F', 0, '\u2033', 940, '\u2034', 941, '\u2036', 942, '\u2037', 943, '\u203C', 944, '\u203E', 945, '\u2047', 946, '\u2048', 947, '\u2049', 948, '\u2057', 949, '\u205F', 0, '\u2070', 950, '\u2071', 951, '\u2074', 952, '\u2075', 953, '\u2076', 954, '\u2077', 955, '\u2078', 956, '\u2079', 957, '\u207A', 958, '\u207B', 959, '\u207C', 960, '\u207D', 961, '\u207E', 962, '\u207F', 963, '\u2080', 950, '\u2081', 9, '\u2082', 4, '\u2083', 5, '\u2084', 952, '\u2085', 953, '\u2086', 954, '\u2087', 955, '\u2088', 956, '\u2089', 957, '\u208A', 958, '\u208B', 959, '\u208C', 960, '\u208D', 961, '\u208E', 962, '\u20A8', 964, '\u2100', 965, '\u2101', 966, '\u2102', 967, '\u2103', 968, '\u2105', 969, '\u2106', 970, '\u2107', 971, '\u2109', 972, '\u210A', 973, '\u210B', 974, '\u210C', 974, '\u210D', 974, '\u210E', 284, '\u210F', 975, '\u2110', 976, '\u2111', 976, '\u2112', 977, '\u2113', 300, '\u2115', 978, '\u2116', 979, '\u2119', 980, '\u211A', 981, '\u211B', 982, '\u211C', 982, '\u211D', 982, '\u2120', 983, '\u2121', 984, '\u2122', 985, '\u2124', 986, '\u2126', 987, '\u2128', 986, '\u212A', 988, '\u212B', 19, '\u212C', 989, '\u212D', 967, '\u212F', 990, '\u2130', 991, '\u2131', 992, '\u2133', 993, '\u2134', 10, '\u2135', 994, '\u2136', 995, '\u2137', 996, '\u2138', 997, '\u2139', 951, '\u213D', 998, '\u213E', 999, '\u213F', 1000, '\u2140', 1001, '\u2145', 1002, '\u2146', 1003, '\u2147', 990, '\u2148', 951, '\u2149', 286, '\u2153', 1004, '\u2154', 1005, '\u2155', 1006, '\u2156', 1007, '\u2157', 1008, '\u2158', 1009, '\u2159', 1010, '\u215A', 1011, '\u215B', 1012, '\u215C', 1013, '\u215D', 1014, '\u215E', 1015, '\u215F', 1016, '\u2160', 976, '\u2161', 1017, '\u2162', 1018, '\u2163', 1019, '\u2164', 1020, '\u2165', 1021, '\u2166', 1022, '\u2167', 1023, '\u2168', 1024, '\u2169', 1025, '\u216A', 1026, '\u216B', 1027, '\u216C', 977, '\u216D', 967, '\u216E', 1002, '\u216F', 993, '\u2170', 951, '\u2171', 1028, '\u2172', 1029, '\u2173', 1030, '\u2174', 1031, '\u2175', 1032, '\u2176', 1033, '\u2177', 1034, '\u2178', 1035, '\u2179', 301, '\u217A', 1036, '\u217B', 1037, '\u217C', 300, '\u217D', 1038, '\u217E', 1003, '\u217F', 1039, '\u219A', 1040, '\u219B', 1041, '\u21AE', 1042, '\u21CD', 1043, '\u21CE', 1044, '\u21CF', 1045, '\u2204', 1046, '\u2209', 1047, '\u220C', 1048, '\u2224', 1049, '\u2226', 1050, '\u222C', 1051, '\u222D', 1052, '\u222F', 1053, '\u2230', 1054, '\u2241', 1055, '\u2244', 1056, '\u2247', 1057, '\u2249', 1058, '\u2260', 1059, '\u2262', 1060, '\u226D', 1061, '\u226E', 1062, '\u226F', 1063, '\u2270', 1064, '\u2271', 1065, '\u2274', 1066, '\u2275', 1067, '\u2278', 1068, '\u2279', 1069, '\u2280', 1070, '\u2281', 1071, '\u2284', 1072, '\u2285', 1073, '\u2288', 1074, '\u2289', 1075, '\u22AC', 1076, '\u22AD', 1077, '\u22AE', 1078, '\u22AF', 1079, '\u22E0', 1080, '\u22E1', 1081, '\u22E2', 1082, '\u22E3', 1083, '\u22EA', 1084, '\u22EB', 1085, '\u22EC', 1086, '\u22ED', 1087, '\u2329', 1088, '\u232A', 1089, '\u2460', 9, '\u2461', 4, '\u2462', 5, '\u2463', 952, '\u2464', 953, '\u2465', 954, '\u2466', 955, '\u2467', 956, '\u2468', 957, '\u2469', 1090, '\u246A', 1091, '\u246B', 1092, '\u246C', 1093, '\u246D', 1094, '\u246E', 1095, '\u246F', 1096, '\u2470', 1097, '\u2471', 1098, '\u2472', 1099, '\u2473', 1100, '\u2474', 1101, '\u2475', 1102, '\u2476', 1103, '\u2477', 1104, '\u2478', 1105, '\u2479', 1106, '\u247A', 1107, '\u247B', 1108, '\u247C', 1109, '\u247D', 1110, '\u247E', 1111, '\u247F', 1112, '\u2480', 1113, '\u2481', 1114, '\u2482', 1115, '\u2483', 1116, '\u2484', 1117, '\u2485', 1118, '\u2486', 1119, '\u2487', 1120, '\u2488', 1121, '\u2489', 1122, '\u248A', 1123, '\u248B', 1124, '\u248C', 1125, '\u248D', 1126, '\u248E', 1127, '\u248F', 1128, '\u2490', 1129, '\u2491', 1130, '\u2492', 1131, '\u2493', 1132, '\u2494', 1133, '\u2495', 1134, '\u2496', 1135, '\u2497', 1136, '\u2498', 1137, '\u2499', 1138, '\u249A', 1139, '\u249B', 1140, '\u249C', 1141, '\u249D', 1142, '\u249E', 1143, '\u249F', 1144, '\u24A0', 1145, '\u24A1', 1146, '\u24A2', 1147, '\u24A3', 1148, '\u24A4', 1149, '\u24A5', 1150, '\u24A6', 1151, '\u24A7', 1152, '\u24A8', 1153, '\u24A9', 1154, '\u24AA', 1155, '\u24AB', 1156, '\u24AC', 1157, '\u24AD', 1158, '\u24AE', 1159, '\u24AF', 1160, '\u24B0', 1161, '\u24B1', 1162, '\u24B2', 1163, '\u24B3', 1164, '\u24B4', 1165, '\u24B5', 1166, '\u24B6', 1167, '\u24B7', 989, '\u24B8', 967, '\u24B9', 1002, '\u24BA', 991, '\u24BB', 992, '\u24BC', 1168, '\u24BD', 974, '\u24BE', 976, '\u24BF', 1169, '\u24C0', 988, '\u24C1', 977, '\u24C2', 993, '\u24C3', 978, '\u24C4', 1170, '\u24C5', 980, '\u24C6', 981, '\u24C7', 982, '\u24C8', 1171, '\u24C9', 1172, '\u24CA', 1173, '\u24CB', 1020, '\u24CC', 1174, '\u24CD', 1025, '\u24CE', 1175, '\u24CF', 986, '\u24D0', 2, '\u24D1', 1176, '\u24D2', 1038, '\u24D3', 1003, '\u24D4', 990, '\u24D5', 1177, '\u24D6', 973, '\u24D7', 284, '\u24D8', 951, '\u24D9', 286, '\u24DA', 1178, '\u24DB', 300, '\u24DC', 1039, '\u24DD', 963, '\u24DE', 10, '\u24DF', 1179, '\u24E0', 1180, '\u24E1', 287, '\u24E2', 180, '\u24E3', 1181, '\u24E4', 1182, '\u24E5', 1031, '\u24E6', 291, '\u24E7', 301, '\u24E8', 292, '\u24E9', 1183, '\u24EA', 950, '\u2A0C', 1184, '\u2A74', 1185, '\u2A75', 1186, '\u2A76', 1187, '\u2ADC', 1188, '\u2E9F', 1189, '\u2EF3', 1190, '\u2F00', 1191, '\u2F01', 1192, '\u2F02', 1193, '\u2F03', 1194, '\u2F04', 1195, '\u2F05', 1196, '\u2F06', 1197, '\u2F07', 1198, '\u2F08', 1199, '\u2F09', 1200, '\u2F0A', 1201, '\u2F0B', 1202, '\u2F0C', 1203, '\u2F0D', 1204, '\u2F0E', 1205, '\u2F0F', 1206, '\u2F10', 1207, '\u2F11', 1208, '\u2F12', 1209, '\u2F13', 1210, '\u2F14', 1211, '\u2F15', 1212, '\u2F16', 1213, '\u2F17', 1214, '\u2F18', 1215, '\u2F19', 1216, '\u2F1A', 1217, '\u2F1B', 1218, '\u2F1C', 1219, '\u2F1D', 1220, '\u2F1E', 1221, '\u2F1F', 1222, '\u2F20', 1223, '\u2F21', 1224, '\u2F22', 1225, '\u2F23', 1226, '\u2F24', 1227, '\u2F25', 1228, '\u2F26', 1229, '\u2F27', 1230, '\u2F28', 1231, '\u2F29', 1232, '\u2F2A', 1233, '\u2F2B', 1234, '\u2F2C', 1235, '\u2F2D', 1236, '\u2F2E', 1237, '\u2F2F', 1238, '\u2F30', 1239, '\u2F31', 1240, '\u2F32', 1241, '\u2F33', 1242, '\u2F34', 1243, '\u2F35', 1244, '\u2F36', 1245, '\u2F37', 1246, '\u2F38', 1247, '\u2F39', 1248, '\u2F3A', 1249, '\u2F3B', 1250, '\u2F3C', 1251, '\u2F3D', 1252, '\u2F3E', 1253, '\u2F3F', 1254, '\u2F40', 1255, '\u2F41', 1256, '\u2F42', 1257, '\u2F43', 1258, '\u2F44', 1259, '\u2F45', 1260, '\u2F46', 1261, '\u2F47', 1262, '\u2F48', 1263, '\u2F49', 1264, '\u2F4A', 1265, '\u2F4B', 1266, '\u2F4C', 1267, '\u2F4D', 1268, '\u2F4E', 1269, '\u2F4F', 1270, '\u2F50', 1271, '\u2F51', 1272, '\u2F52', 1273, '\u2F53', 1274, '\u2F54', 1275, '\u2F55', 1276, '\u2F56', 1277, '\u2F57', 1278, '\u2F58', 1279, '\u2F59', 1280, '\u2F5A', 1281, '\u2F5B', 1282, '\u2F5C', 1283, '\u2F5D', 1284, '\u2F5E', 1285, '\u2F5F', 1286, '\u2F60', 1287, '\u2F61', 1288, '\u2F62', 1289, '\u2F63', 1290, '\u2F64', 1291, '\u2F65', 1292, '\u2F66', 1293, '\u2F67', 1294, '\u2F68', 1295, '\u2F69', 1296, '\u2F6A', 1297, '\u2F6B', 1298, '\u2F6C', 1299, '\u2F6D', 1300, '\u2F6E', 1301, '\u2F6F', 1302, '\u2F70', 1303, '\u2F71', 1304, '\u2F72', 1305, '\u2F73', 1306, '\u2F74', 1307, '\u2F75', 1308, '\u2F76', 1309, '\u2F77', 1310, '\u2F78', 1311, '\u2F79', 1312, '\u2F7A', 1313, '\u2F7B', 1314, '\u2F7C', 1315, '\u2F7D', 1316, '\u2F7E', 1317, '\u2F7F', 1318, '\u2F80', 1319, '\u2F81', 1320, '\u2F82', 1321, '\u2F83', 1322, '\u2F84', 1323, '\u2F85', 1324, '\u2F86', 1325, '\u2F87', 1326, '\u2F88', 1327, '\u2F89', 1328, '\u2F8A', 1329, '\u2F8B', 1330, '\u2F8C', 1331, '\u2F8D', 1332, '\u2F8E', 1333, '\u2F8F', 1334, '\u2F90', 1335, '\u2F91', 1336, '\u2F92', 1337, '\u2F93', 1338, '\u2F94', 1339, '\u2F95', 1340, '\u2F96', 1341, '\u2F97', 1342, '\u2F98', 1343, '\u2F99', 1344, '\u2F9A', 1345, '\u2F9B', 1346, '\u2F9C', 1347, '\u2F9D', 1348, '\u2F9E', 1349, '\u2F9F', 1350, '\u2FA0', 1351, '\u2FA1', 1352, '\u2FA2', 1353, '\u2FA3', 1354, '\u2FA4', 1355, '\u2FA5', 1356, '\u2FA6', 1357, '\u2FA7', 1358, '\u2FA8', 1359, '\u2FA9', 1360, '\u2FAA', 1361, '\u2FAB', 1362, '\u2FAC', 1363, '\u2FAD', 1364, '\u2FAE', 1365, '\u2FAF', 1366, '\u2FB0', 1367, '\u2FB1', 1368, '\u2FB2', 1369, '\u2FB3', 1370, '\u2FB4', 1371, '\u2FB5', 1372, '\u2FB6', 1373, '\u2FB7', 1374, '\u2FB8', 1375, '\u2FB9', 1376, '\u2FBA', 1377, '\u2FBB', 1378, '\u2FBC', 1379, '\u2FBD', 1380, '\u2FBE', 1381, '\u2FBF', 1382, '\u2FC0', 1383, '\u2FC1', 1384, '\u2FC2', 1385, '\u2FC3', 1386, '\u2FC4', 1387, '\u2FC5', 1388, '\u2FC6', 1389, '\u2FC7', 1390, '\u2FC8', 1391, '\u2FC9', 1392, '\u2FCA', 1393, '\u2FCB', 1394, '\u2FCC', 1395, '\u2FCD', 1396, '\u2FCE', 1397, '\u2FCF', 1398, '\u2FD0', 1399, '\u2FD1', 1400, '\u2FD2', 1401, '\u2FD3', 1402, '\u2FD4', 1403, '\u2FD5', 1404, '\u3000', 0, '\u3036', 1405, '\u3038', 1214, '\u3039', 1406, '\u303A', 1407, '\u304C', 1408, '\u304E', 1409, '\u3050', 1410, '\u3052', 1411, '\u3054', 1412, '\u3056', 1413, '\u3058', 1414, '\u305A', 1415, '\u305C', 1416, '\u305E', 1417, '\u3060', 1418, '\u3062', 1419, '\u3065', 1420, '\u3067', 1421, '\u3069', 1422, '\u3070', 1423, '\u3071', 1424, '\u3073', 1425, '\u3074', 1426, '\u3076', 1427, '\u3077', 1428, '\u3079', 1429, '\u307A', 1430, '\u307C', 1431, '\u307D', 1432, '\u3094', 1433, '\u309B', 1434, '\u309C', 1435, '\u309E', 1436, '\u309F', 1437, '\u30AC', 1438, '\u30AE', 1439, '\u30B0', 1440, '\u30B2', 1441, '\u30B4', 1442, '\u30B6', 1443, '\u30B8', 1444, '\u30BA', 1445, '\u30BC', 1446, '\u30BE', 1447, '\u30C0', 1448, '\u30C2', 1449, '\u30C5', 1450, '\u30C7', 1451, '\u30C9', 1452, '\u30D0', 1453, '\u30D1', 1454, '\u30D3', 1455, '\u30D4', 1456, '\u30D6', 1457, '\u30D7', 1458, '\u30D9', 1459, '\u30DA', 1460, '\u30DC', 1461, '\u30DD', 1462, '\u30F4', 1463, '\u30F7', 1464, '\u30F8', 1465, '\u30F9', 1466, '\u30FA', 1467, '\u30FE', 1468, '\u30FF', 1469, '\u3131', 1470, '\u3132', 1471, '\u3133', 1472, '\u3134', 1473, '\u3135', 1474, '\u3136', 1475, '\u3137', 1476, '\u3138', 1477, '\u3139', 1478, '\u313A', 1479, '\u313B', 1480, '\u313C', 1481, '\u313D', 1482, '\u313E', 1483, '\u313F', 1484, '\u3140', 1485, '\u3141', 1486, '\u3142', 1487, '\u3143', 1488, '\u3144', 1489, '\u3145', 1490, '\u3146', 1491, '\u3147', 1492, '\u3148', 1493, '\u3149', 1494, '\u314A', 1495, '\u314B', 1496, '\u314C', 1497, '\u314D', 1498, '\u314E', 1499, '\u314F', 1500, '\u3150', 1501, '\u3151', 1502, '\u3152', 1503, '\u3153', 1504, '\u3154', 1505, '\u3155', 1506, '\u3156', 1507, '\u3157', 1508, '\u3158', 1509, '\u3159', 1510, '\u315A', 1511, '\u315B', 1512, '\u315C', 1513, '\u315D', 1514, '\u315E', 1515, '\u315F', 1516, '\u3160', 1517, '\u3161', 1518, '\u3162', 1519, '\u3163', 1520, '\u3164', 1521, '\u3165', 1522, '\u3166', 1523, '\u3167', 1524, '\u3168', 1525, '\u3169', 1526, '\u316A', 1527, '\u316B', 1528, '\u316C', 1529, '\u316D', 1530, '\u316E', 1531, '\u316F', 1532, '\u3170', 1533, '\u3171', 1534, '\u3172', 1535, '\u3173', 1536, '\u3174', 1537, '\u3175', 1538, '\u3176', 1539, '\u3177', 1540, '\u3178', 1541, '\u3179', 1542, '\u317A', 1543, '\u317B', 1544, '\u317C', 1545, '\u317D', 1546, '\u317E', 1547, '\u317F', 1548, '\u3180', 1549, '\u3181', 1550, '\u3182', 1551, '\u3183', 1552, '\u3184', 1553, '\u3185', 1554, '\u3186', 1555, '\u3187', 1556, '\u3188', 1557, '\u3189', 1558, '\u318A', 1559, '\u318B', 1560, '\u318C', 1561, '\u318D', 1562, '\u318E', 1563, '\u3192', 1191, '\u3193', 1197, '\u3194', 1564, '\u3195', 1565, '\u3196', 1566, '\u3197', 1567, '\u3198', 1568, '\u3199', 1569, '\u319A', 1195, '\u319B', 1570, '\u319C', 1571, '\u319D', 1572, '\u319E', 1573, '\u319F', 1199, '\u3200', 1574, '\u3201', 1575, '\u3202', 1576, '\u3203', 1577, '\u3204', 1578, '\u3205', 1579, '\u3206', 1580, '\u3207', 1581, '\u3208', 1582, '\u3209', 1583, '\u320A', 1584, '\u320B', 1585, '\u320C', 1586, '\u320D', 1587, '\u320E', 1588, '\u320F', 1589, '\u3210', 1590, '\u3211', 1591, '\u3212', 1592, '\u3213', 1593, '\u3214', 1594, '\u3215', 1595, '\u3216', 1596, '\u3217', 1597, '\u3218', 1598, '\u3219', 1599, '\u321A', 1600, '\u321B', 1601, '\u321C', 1602, '\u3220', 1603, '\u3221', 1604, '\u3222', 1605, '\u3223', 1606, '\u3224', 1607, '\u3225', 1608, '\u3226', 1609, '\u3227', 1610, '\u3228', 1611, '\u3229', 1612, '\u322A', 1613, '\u322B', 1614, '\u322C', 1615, '\u322D', 1616, '\u322E', 1617, '\u322F', 1618, '\u3230', 1619, '\u3231', 1620, '\u3232', 1621, '\u3233', 1622, '\u3234', 1623, '\u3235', 1624, '\u3236', 1625, '\u3237', 1626, '\u3238', 1627, '\u3239', 1628, '\u323A', 1629, '\u323B', 1630, '\u323C', 1631, '\u323D', 1632, '\u323E', 1633, '\u323F', 1634, '\u3240', 1635, '\u3241', 1636, '\u3242', 1637, '\u3243', 1638, '\u3251', 1639, '\u3252', 1640, '\u3253', 1641, '\u3254', 1642, '\u3255', 1643, '\u3256', 1644, '\u3257', 1645, '\u3258', 1646, '\u3259', 1647, '\u325A', 1648, '\u325B', 1649, '\u325C', 1650, '\u325D', 1651, '\u325E', 1652, '\u325F', 1653, '\u3260', 1470, '\u3261', 1473, '\u3262', 1476, '\u3263', 1478, '\u3264', 1486, '\u3265', 1487, '\u3266', 1490, '\u3267', 1492, '\u3268', 1493, '\u3269', 1495, '\u326A', 1496, '\u326B', 1497, '\u326C', 1498, '\u326D', 1499, '\u326E', 1654, '\u326F', 1655, '\u3270', 1656, '\u3271', 1657, '\u3272', 1658, '\u3273', 1659, '\u3274', 1660, '\u3275', 1661, '\u3276', 1662, '\u3277', 1663, '\u3278', 1664, '\u3279', 1665, '\u327A', 1666, '\u327B', 1667, '\u3280', 1191, '\u3281', 1197, '\u3282', 1564, '\u3283', 1565, '\u3284', 1668, '\u3285', 1669, '\u3286', 1670, '\u3287', 1202, '\u3288', 1671, '\u3289', 1214, '\u328A', 1264, '\u328B', 1276, '\u328C', 1275, '\u328D', 1265, '\u328E', 1357, '\u328F', 1222, '\u3290', 1262, '\u3291', 1672, '\u3292', 1673, '\u3293', 1674, '\u3294', 1675, '\u3295', 1676, '\u3296', 1677, '\u3297', 1678, '\u3298', 1679, '\u3299', 1680, '\u329A', 1681, '\u329B', 1228, '\u329C', 1682, '\u329D', 1683, '\u329E', 1684, '\u329F', 1685, '\u32A0', 1686, '\u32A1', 1687, '\u32A2', 1688, '\u32A3', 1689, '\u32A4', 1566, '\u32A5', 1567, '\u32A6', 1568, '\u32A7', 1690, '\u32A8', 1691, '\u32A9', 1692, '\u32AA', 1693, '\u32AB', 1694, '\u32AC', 1695, '\u32AD', 1696, '\u32AE', 1697, '\u32AF', 1698, '\u32B0', 1699, '\u32B1', 1700, '\u32B2', 1701, '\u32B3', 1702, '\u32B4', 1703, '\u32B5', 1704, '\u32B6', 1705, '\u32B7', 1706, '\u32B8', 1707, '\u32B9', 1708, '\u32BA', 1709, '\u32BB', 1710, '\u32BC', 1711, '\u32BD', 1712, '\u32BE', 1713, '\u32BF', 1714, '\u32C0', 1715, '\u32C1', 1716, '\u32C2', 1717, '\u32C3', 1718, '\u32C4', 1719, '\u32C5', 1720, '\u32C6', 1721, '\u32C7', 1722, '\u32C8', 1723, '\u32C9', 1724, '\u32CA', 1725, '\u32CB', 1726, '\u32D0', 1727, '\u32D1', 1728, '\u32D2', 1729, '\u32D3', 1730, '\u32D4', 1731, '\u32D5', 1732, '\u32D6', 1733, '\u32D7', 1734, '\u32D8', 1735, '\u32D9', 1736, '\u32DA', 1737, '\u32DB', 1738, '\u32DC', 1739, '\u32DD', 1740, '\u32DE', 1741, '\u32DF', 1742, '\u32E0', 1743, '\u32E1', 1744, '\u32E2', 1745, '\u32E3', 1746, '\u32E4', 1747, '\u32E5', 1748, '\u32E6', 1749, '\u32E7', 1750, '\u32E8', 1751, '\u32E9', 1752, '\u32EA', 1753, '\u32EB', 1754, '\u32EC', 1755, '\u32ED', 1756, '\u32EE', 1757, '\u32EF', 1758, '\u32F0', 1759, '\u32F1', 1760, '\u32F2', 1761, '\u32F3', 1762, '\u32F4', 1763, '\u32F5', 1764, '\u32F6', 1765, '\u32F7', 1766, '\u32F8', 1767, '\u32F9', 1768, '\u32FA', 1769, '\u32FB', 1770, '\u32FC', 1771, '\u32FD', 1772, '\u32FE', 1773, '\u3300', 1774, '\u3301', 1775, '\u3302', 1776, '\u3303', 1777, '\u3304', 1778, '\u3305', 1779, '\u3306', 1780, '\u3307', 1781, '\u3308', 1782, '\u3309', 1783, '\u330A', 1784, '\u330B', 1785, '\u330C', 1786, '\u330D', 1787, '\u330E', 1788, '\u330F', 1789, '\u3310', 1790, '\u3311', 1791, '\u3312', 1792, '\u3313', 1793, '\u3314', 1794, '\u3315', 1795, '\u3316', 1796, '\u3317', 1797, '\u3318', 1798, '\u3319', 1799, '\u331A', 1800, '\u331B', 1801, '\u331C', 1802, '\u331D', 1803, '\u331E', 1804, '\u331F', 1805, '\u3320', 1806, '\u3321', 1807, '\u3322', 1808, '\u3323', 1809, '\u3324', 1810, '\u3325', 1811, '\u3326', 1812, '\u3327', 1813, '\u3328', 1814, '\u3329', 1815, '\u332A', 1816, '\u332B', 1817, '\u332C', 1818, '\u332D', 1819, '\u332E', 1820, '\u332F', 1821, '\u3330', 1822, '\u3331', 1823, '\u3332', 1824, '\u3333', 1825, '\u3334', 1826, '\u3335', 1827, '\u3336', 1828, '\u3337', 1829, '\u3338', 1830, '\u3339', 1831, '\u333A', 1832, '\u333B', 1833, '\u333C', 1834, '\u333D', 1835, '\u333E', 1836, '\u333F', 1837, '\u3340', 1838, '\u3341', 1839, '\u3342', 1840, '\u3343', 1841, '\u3344', 1842, '\u3345', 1843, '\u3346', 1844, '\u3347', 1845, '\u3348', 1846, '\u3349', 1847, '\u334A', 1848, '\u334B', 1849, '\u334C', 1850, '\u334D', 1851, '\u334E', 1852, '\u334F', 1853, '\u3350', 1854, '\u3351', 1855, '\u3352', 1856, '\u3353', 1857, '\u3354', 1858, '\u3355', 1859, '\u3356', 1860, '\u3357', 1861, '\u3358', 1862, '\u3359', 1863, '\u335A', 1864, '\u335B', 1865, '\u335C', 1866, '\u335D', 1867, '\u335E', 1868, '\u335F', 1869, '\u3360', 1870, '\u3361', 1871, '\u3362', 1872, '\u3363', 1873, '\u3364', 1874, '\u3365', 1875, '\u3366', 1876, '\u3367', 1877, '\u3368', 1878, '\u3369', 1879, '\u336A', 1880, '\u336B', 1881, '\u336C', 1882, '\u336D', 1883, '\u336E', 1884, '\u336F', 1885, '\u3370', 1886, '\u3371', 1887, '\u3372', 1888, '\u3373', 1889, '\u3374', 1890, '\u3375', 1891, '\u3376', 1892, '\u337B', 1893, '\u337C', 1894, '\u337D', 1895, '\u337E', 1896, '\u337F', 1897, '\u3380', 1898, '\u3381', 1899, '\u3382', 1900, '\u3383', 1901, '\u3384', 1902, '\u3385', 1903, '\u3386', 1904, '\u3387', 1905, '\u3388', 1906, '\u3389', 1907, '\u338A', 1908, '\u338B', 1909, '\u338C', 1910, '\u338D', 1911, '\u338E', 1912, '\u338F', 1913, '\u3390', 1914, '\u3391', 1915, '\u3392', 1916, '\u3393', 1917, '\u3394', 1918, '\u3395', 1919, '\u3396', 1920, '\u3397', 1921, '\u3398', 1922, '\u3399', 1923, '\u339A', 1924, '\u339B', 1925, '\u339C', 1926, '\u339D', 1927, '\u339E', 1928, '\u339F', 1929, '\u33A0', 1930, '\u33A1', 1931, '\u33A2', 1932, '\u33A3', 1933, '\u33A4', 1934, '\u33A5', 1935, '\u33A6', 1936, '\u33A7', 1937, '\u33A8', 1938, '\u33A9', 1939, '\u33AA', 1940, '\u33AB', 1941, '\u33AC', 1942, '\u33AD', 1943, '\u33AE', 1944, '\u33AF', 1945, '\u33B0', 1946, '\u33B1', 1947, '\u33B2', 1948, '\u33B3', 1949, '\u33B4', 1950, '\u33B5', 1951, '\u33B6', 1952, '\u33B7', 1953, '\u33B8', 1954, '\u33B9', 1955, '\u33BA', 1956, '\u33BB', 1957, '\u33BC', 1958, '\u33BD', 1959, '\u33BE', 1960, '\u33BF', 1961, '\u33C0', 1962, '\u33C1', 1963, '\u33C2', 1964, '\u33C3', 1965, '\u33C4', 1966, '\u33C5', 1967, '\u33C6', 1968, '\u33C7', 1969, '\u33C8', 1970, '\u33C9', 1971, '\u33CA', 1972, '\u33CB', 1973, '\u33CC', 1974, '\u33CD', 1975, '\u33CE', 1976, '\u33CF', 1977, '\u33D0', 1978, '\u33D1', 1979, '\u33D2', 1980, '\u33D3', 1981, '\u33D4', 1982, '\u33D5', 1983, '\u33D6', 1984, '\u33D7', 1985, '\u33D8', 1986, '\u33D9', 1987, '\u33DA', 1988, '\u33DB', 1989, '\u33DC', 1990, '\u33DD', 1991, '\u33E0', 1992, '\u33E1', 1993, '\u33E2', 1994, '\u33E3', 1995, '\u33E4', 1996, '\u33E5', 1997, '\u33E6', 1998, '\u33E7', 1999, '\u33E8', 2000, '\u33E9', 2001, '\u33EA', 2002, '\u33EB', 2003, '\u33EC', 2004, '\u33ED', 2005, '\u33EE', 2006, '\u33EF', 2007, '\u33F0', 2008, '\u33F1', 2009, '\u33F2', 2010, '\u33F3', 2011, '\u33F4', 2012, '\u33F5', 2013, '\u33F6', 2014, '\u33F7', 2015, '\u33F8', 2016, '\u33F9', 2017, '\u33FA', 2018, '\u33FB', 2019, '\u33FC', 2020, '\u33FD', 2021, '\u33FE', 2022, '\uF900', 2023, '\uF901', 2024, '\uF902', 1349, '\uF903', 2025, '\uF904', 2026, '\uF905', 2027, '\uF906', 2028, '\uF907', 1403, '\uF908', 1403, '\uF909', 2029, '\uF90A', 1357, '\uF90B', 2030, '\uF90C', 2031, '\uF90D', 2032, '\uF90E', 2033, '\uF90F', 2034, '\uF910', 2035, '\uF911', 2036, '\uF912', 2037, '\uF913', 2038, '\uF914', 2039, '\uF915', 2040, '\uF916', 2041, '\uF917', 2042, '\uF918', 2043, '\uF919', 2044, '\uF91A', 2045, '\uF91B', 2046, '\uF91C', 2047, '\uF91D', 2048, '\uF91E', 2049, '\uF91F', 2050, '\uF920', 2051, '\uF921', 2052, '\uF922', 2053, '\uF923', 2054, '\uF924', 2055, '\uF925', 2056, '\uF926', 2057, '\uF927', 2058, '\uF928', 2059, '\uF929', 2060, '\uF92A', 2061, '\uF92B', 2062, '\uF92C', 2063, '\uF92D', 2064, '\uF92E', 2065, '\uF92F', 2066, '\uF930', 2067, '\uF931', 2068, '\uF932', 2069, '\uF933', 2070, '\uF934', 1315, '\uF935', 2071, '\uF936', 2072, '\uF937', 2073, '\uF938', 2074, '\uF939', 2075, '\uF93A', 2076, '\uF93B', 2077, '\uF93C', 2078, '\uF93D', 2079, '\uF93E', 2080, '\uF93F', 2081, '\uF940', 1388, '\uF941', 2082, '\uF942', 2083, '\uF943', 2084, '\uF944', 2085, '\uF945', 2086, '\uF946', 2087, '\uF947', 2088, '\uF948', 2089, '\uF949', 2090, '\uF94A', 2091, '\uF94B', 2092, '\uF94C', 2093, '\uF94D', 2094, '\uF94E', 2095, '\uF94F', 2096, '\uF950', 2097, '\uF951', 2098, '\uF952', 2099, '\uF953', 2100, '\uF954', 2101, '\uF955', 2102, '\uF956', 2103, '\uF957', 2104, '\uF958', 2105, '\uF959', 2106, '\uF95A', 2107, '\uF95B', 2108, '\uF95C', 2039, '\uF95D', 2109, '\uF95E', 2110, '\uF95F', 2111, '\uF960', 2112, '\uF961', 2113, '\uF962', 2114, '\uF963', 2115, '\uF964', 2116, '\uF965', 2117, '\uF966', 2118, '\uF967', 2119, '\uF968', 2120, '\uF969', 2121, '\uF96A', 2122, '\uF96B', 2123, '\uF96C', 2124, '\uF96D', 2125, '\uF96E', 2126, '\uF96F', 2127, '\uF970', 2128, '\uF971', 1351, '\uF972', 2129, '\uF973', 2130, '\uF974', 2131, '\uF975', 2132, '\uF976', 2133, '\uF977', 2134, '\uF978', 2135, '\uF979', 2136, '\uF97A', 2137, '\uF97B', 2138, '\uF97C', 2139, '\uF97D', 2140, '\uF97E', 2141, '\uF97F', 2142, '\uF980', 2143, '\uF981', 1228, '\uF982', 2144, '\uF983', 2145, '\uF984', 2146, '\uF985', 2147, '\uF986', 2148, '\uF987', 2149, '\uF988', 2150, '\uF989', 2151, '\uF98A', 1209, '\uF98B', 2152, '\uF98C', 2153, '\uF98D', 2154, '\uF98E', 2155, '\uF98F', 2156, '\uF990', 2157, '\uF991', 2158, '\uF992', 2159, '\uF993', 2160, '\uF994', 2161, '\uF995', 2162, '\uF996', 2163, '\uF997', 2164, '\uF998', 2165, '\uF999', 2166, '\uF99A', 2167, '\uF99B', 2168, '\uF99C', 2169, '\uF99D', 2170, '\uF99E', 2171, '\uF99F', 2172, '\uF9A0', 2173, '\uF9A1', 2127, '\uF9A2', 2174, '\uF9A3', 2175, '\uF9A4', 2176, '\uF9A5', 2177, '\uF9A6', 2178, '\uF9A7', 2179, '\uF9A8', 2180, '\uF9A9', 2181, '\uF9AA', 2111, '\uF9AB', 2182, '\uF9AC', 2183, '\uF9AD', 2184, '\uF9AE', 2185, '\uF9AF', 2186, '\uF9B0', 2187, '\uF9B1', 2188, '\uF9B2', 2189, '\uF9B3', 2190, '\uF9B4', 2191, '\uF9B5', 2192, '\uF9B6', 2193, '\uF9B7', 2194, '\uF9B8', 2195, '\uF9B9', 2196, '\uF9BA', 2197, '\uF9BB', 2198, '\uF9BC', 2199, '\uF9BD', 2200, '\uF9BE', 2201, '\uF9BF', 2039, '\uF9C0', 2202, '\uF9C1', 2203, '\uF9C2', 2204, '\uF9C3', 2205, '\uF9C4', 1402, '\uF9C5', 2206, '\uF9C6', 2207, '\uF9C7', 2208, '\uF9C8', 2209, '\uF9C9', 2210, '\uF9CA', 2211, '\uF9CB', 2212, '\uF9CC', 2213, '\uF9CD', 2214, '\uF9CE', 2215, '\uF9CF', 2216, '\uF9D0', 2217, '\uF9D1', 1669, '\uF9D2', 2218, '\uF9D3', 2219, '\uF9D4', 2220, '\uF9D5', 2221, '\uF9D6', 2222, '\uF9D7', 2223, '\uF9D8', 2224, '\uF9D9', 2225, '\uF9DA', 2226, '\uF9DB', 2113, '\uF9DC', 2227, '\uF9DD', 2228, '\uF9DE', 2229, '\uF9DF', 2230, '\uF9E0', 2231, '\uF9E1', 2232, '\uF9E2', 2233, '\uF9E3', 2234, '\uF9E4', 2235, '\uF9E5', 2236, '\uF9E6', 2237, '\uF9E7', 2238, '\uF9E8', 2239, '\uF9E9', 1356, '\uF9EA', 2240, '\uF9EB', 2241, '\uF9EC', 2242, '\uF9ED', 2243, '\uF9EE', 2244, '\uF9EF', 2245, '\uF9F0', 2246, '\uF9F1', 2247, '\uF9F2', 2248, '\uF9F3', 2249, '\uF9F4', 2250, '\uF9F5', 2251, '\uF9F6', 2252, '\uF9F7', 1307, '\uF9F8', 2253, '\uF9F9', 2254, '\uF9FA', 2255, '\uF9FB', 2256, '\uF9FC', 2257, '\uF9FD', 2258, '\uF9FE', 2259, '\uF9FF', 2260, '\uFA00', 2261, '\uFA01', 2262, '\uFA02', 2263, '\uFA03', 2264, '\uFA04', 2265, '\uFA05', 2266, '\uFA06', 2267, '\uFA07', 2268, '\uFA08', 1334, '\uFA09', 2269, '\uFA0A', 1337, '\uFA0B', 2270, '\uFA0C', 2271, '\uFA0D', 2272, '\uFA10', 2273, '\uFA12', 2274, '\uFA15', 2275, '\uFA16', 2276, '\uFA17', 2277, '\uFA18', 2278, '\uFA19', 2279, '\uFA1A', 2280, '\uFA1B', 2281, '\uFA1C', 2282, '\uFA1D', 2283, '\uFA1E', 1314, '\uFA20', 2284, '\uFA22', 2285, '\uFA25', 2286, '\uFA26', 2287, '\uFA2A', 2288, '\uFA2B', 2289, '\uFA2C', 2290, '\uFA2D', 2291, '\uFA30', 2292, '\uFA31', 2293, '\uFA32', 2294, '\uFA33', 2295, '\uFA34', 2296, '\uFA35', 2297, '\uFA36', 2298, '\uFA37', 2299, '\uFA38', 2300, '\uFA39', 2301, '\uFA3A', 2302, '\uFA3B', 2303, '\uFA3C', 1235, '\uFA3D', 2304, '\uFA3E', 2305, '\uFA3F', 2306, '\uFA40', 2307, '\uFA41', 2308, '\uFA42', 2309, '\uFA43', 2310, '\uFA44', 2311, '\uFA45', 2312, '\uFA46', 2313, '\uFA47', 2314, '\uFA48', 2315, '\uFA49', 2316, '\uFA4A', 2317, '\uFA4B', 2318, '\uFA4C', 1674, '\uFA4D', 2319, '\uFA4E', 2320, '\uFA4F', 2321, '\uFA50', 2322, '\uFA51', 1678, '\uFA52', 2323, '\uFA53', 2324, '\uFA54', 2325, '\uFA55', 2326, '\uFA56', 2327, '\uFA57', 2163, '\uFA58', 2328, '\uFA59', 2329, '\uFA5A', 2330, '\uFA5B', 2331, '\uFA5C', 2332, '\uFA5D', 2333, '\uFA5E', 2333, '\uFA5F', 2334, '\uFA60', 2335, '\uFA61', 2336, '\uFA62', 2337, '\uFA63', 2338, '\uFA64', 2339, '\uFA65', 2340, '\uFA66', 2341, '\uFA67', 2286, '\uFA68', 2342, '\uFA69', 2343, '\uFA6A', 2344, '\uFB00', 2345, '\uFB01', 2346, '\uFB02', 2347, '\uFB03', 2348, '\uFB04', 2349, '\uFB05', 2350, '\uFB06', 2350, '\uFB13', 2351, '\uFB14', 2352, '\uFB15', 2353, '\uFB16', 2354, '\uFB17', 2355, '\uFB1D', 2356, '\uFB1F', 2357, '\uFB20', 2358, '\uFB21', 994, '\uFB22', 997, '\uFB23', 2359, '\uFB24', 2360, '\uFB25', 2361, '\uFB26', 2362, '\uFB27', 2363, '\uFB28', 2364, '\uFB29', 958, '\uFB2A', 2365, '\uFB2B', 2366, '\uFB2C', 2367, '\uFB2D', 2368, '\uFB2E', 2369, '\uFB2F', 2370, '\uFB30', 2371, '\uFB31', 2372, '\uFB32', 2373, '\uFB33', 2374, '\uFB34', 2375, '\uFB35', 2376, '\uFB36', 2377, '\uFB38', 2378, '\uFB39', 2379, '\uFB3A', 2380, '\uFB3B', 2381, '\uFB3C', 2382, '\uFB3E', 2383, '\uFB40', 2384, '\uFB41', 2385, '\uFB43', 2386, '\uFB44', 2387, '\uFB46', 2388, '\uFB47', 2389, '\uFB48', 2390, '\uFB49', 2391, '\uFB4A', 2392, '\uFB4B', 2393, '\uFB4C', 2394, '\uFB4D', 2395, '\uFB4E', 2396, '\uFB4F', 2397, '\uFB50', 2398, '\uFB51', 2398, '\uFB52', 2399, '\uFB53', 2399, '\uFB54', 2399, '\uFB55', 2399, '\uFB56', 2400, '\uFB57', 2400, '\uFB58', 2400, '\uFB59', 2400, '\uFB5A', 2401, '\uFB5B', 2401, '\uFB5C', 2401, '\uFB5D', 2401, '\uFB5E', 2402, '\uFB5F', 2402, '\uFB60', 2402, '\uFB61', 2402, '\uFB62', 2403, '\uFB63', 2403, '\uFB64', 2403, '\uFB65', 2403, '\uFB66', 2404, '\uFB67', 2404, '\uFB68', 2404, '\uFB69', 2404, '\uFB6A', 2405, '\uFB6B', 2405, '\uFB6C', 2405, '\uFB6D', 2405, '\uFB6E', 2406, '\uFB6F', 2406, '\uFB70', 2406, '\uFB71', 2406, '\uFB72', 2407, '\uFB73', 2407, '\uFB74', 2407, '\uFB75', 2407, '\uFB76', 2408, '\uFB77', 2408, '\uFB78', 2408, '\uFB79', 2408, '\uFB7A', 2409, '\uFB7B', 2409, '\uFB7C', 2409, '\uFB7D', 2409, '\uFB7E', 2410, '\uFB7F', 2410, '\uFB80', 2410, '\uFB81', 2410, '\uFB82', 2411, '\uFB83', 2411, '\uFB84', 2412, '\uFB85', 2412, '\uFB86', 2413, '\uFB87', 2413, '\uFB88', 2414, '\uFB89', 2414, '\uFB8A', 2415, '\uFB8B', 2415, '\uFB8C', 2416, '\uFB8D', 2416, '\uFB8E', 2417, '\uFB8F', 2417, '\uFB90', 2417, '\uFB91', 2417, '\uFB92', 2418, '\uFB93', 2418, '\uFB94', 2418, '\uFB95', 2418, '\uFB96', 2419, '\uFB97', 2419, '\uFB98', 2419, '\uFB99', 2419, '\uFB9A', 2420, '\uFB9B', 2420, '\uFB9C', 2420, '\uFB9D', 2420, '\uFB9E', 2421, '\uFB9F', 2421, '\uFBA0', 2422, '\uFBA1', 2422, '\uFBA2', 2422, '\uFBA3', 2422, '\uFBA4', 404, '\uFBA5', 404, '\uFBA6', 2423, '\uFBA7', 2423, '\uFBA8', 2423, '\uFBA9', 2423, '\uFBAA', 2424, '\uFBAB', 2424, '\uFBAC', 2424, '\uFBAD', 2424, '\uFBAE', 2425, '\uFBAF', 2425, '\uFBB0', 406, '\uFBB1', 406, '\uFBD3', 2426, '\uFBD4', 2426, '\uFBD5', 2426, '\uFBD6', 2426, '\uFBD7', 2427, '\uFBD8', 2427, '\uFBD9', 2428, '\uFBDA', 2428, '\uFBDB', 2429, '\uFBDC', 2429, '\uFBDD', 402, '\uFBDE', 2430, '\uFBDF', 2430, '\uFBE0', 2431, '\uFBE1', 2431, '\uFBE2', 2432, '\uFBE3', 2432, '\uFBE4', 2433, '\uFBE5', 2433, '\uFBE6', 2433, '\uFBE7', 2433, '\uFBE8', 2434, '\uFBE9', 2434, '\uFBEA', 2435, '\uFBEB', 2435, '\uFBEC', 2436, '\uFBED', 2436, '\uFBEE', 2437, '\uFBEF', 2437, '\uFBF0', 2438, '\uFBF1', 2438, '\uFBF2', 2439, '\uFBF3', 2439, '\uFBF4', 2440, '\uFBF5', 2440, '\uFBF6', 2441, '\uFBF7', 2441, '\uFBF8', 2441, '\uFBF9', 2442, '\uFBFA', 2442, '\uFBFB', 2442, '\uFBFC', 2443, '\uFBFD', 2443, '\uFBFE', 2443, '\uFBFF', 2443, '\uFC00', 2444, '\uFC01', 2445, '\uFC02', 2446, '\uFC03', 2442, '\uFC04', 2447, '\uFC05', 2448, '\uFC06', 2449, '\uFC07', 2450, '\uFC08', 2451, '\uFC09', 2452, '\uFC0A', 2453, '\uFC0B', 2454, '\uFC0C', 2455, '\uFC0D', 2456, '\uFC0E', 2457, '\uFC0F', 2458, '\uFC10', 2459, '\uFC11', 2460, '\uFC12', 2461, '\uFC13', 2462, '\uFC14', 2463, '\uFC15', 2464, '\uFC16', 2465, '\uFC17', 2466, '\uFC18', 2467, '\uFC19', 2468, '\uFC1A', 2469, '\uFC1B', 2470, '\uFC1C', 2471, '\uFC1D', 2472, '\uFC1E', 2473, '\uFC1F', 2474, '\uFC20', 2475, '\uFC21', 2476, '\uFC22', 2477, '\uFC23', 2478, '\uFC24', 2479, '\uFC25', 2480, '\uFC26', 2481, '\uFC27', 2482, '\uFC28', 2483, '\uFC29', 2484, '\uFC2A', 2485, '\uFC2B', 2486, '\uFC2C', 2487, '\uFC2D', 2488, '\uFC2E', 2489, '\uFC2F', 2490, '\uFC30', 2491, '\uFC31', 2492, '\uFC32', 2493, '\uFC33', 2494, '\uFC34', 2495, '\uFC35', 2496, '\uFC36', 2497, '\uFC37', 2498, '\uFC38', 2499, '\uFC39', 2500, '\uFC3A', 2501, '\uFC3B', 2502, '\uFC3C', 2503, '\uFC3D', 2504, '\uFC3E', 2505, '\uFC3F', 2506, '\uFC40', 2507, '\uFC41', 2508, '\uFC42', 2509, '\uFC43', 2510, '\uFC44', 2511, '\uFC45', 2512, '\uFC46', 2513, '\uFC47', 2514, '\uFC48', 2515, '\uFC49', 2516, '\uFC4A', 2517, '\uFC4B', 2518, '\uFC4C', 2519, '\uFC4D', 2520, '\uFC4E', 2521, '\uFC4F', 2522, '\uFC50', 2523, '\uFC51', 2524, '\uFC52', 2525, '\uFC53', 2526, '\uFC54', 2527, '\uFC55', 2528, '\uFC56', 2529, '\uFC57', 2530, '\uFC58', 2531, '\uFC59', 2532, '\uFC5A', 2533, '\uFC5B', 2534, '\uFC5C', 2535, '\uFC5D', 2536, '\uFC5E', 2537, '\uFC5F', 2538, '\uFC60', 2539, '\uFC61', 2540, '\uFC62', 2541, '\uFC63', 2542, '\uFC64', 2543, '\uFC65', 2544, '\uFC66', 2446, '\uFC67', 2545, '\uFC68', 2442, '\uFC69', 2447, '\uFC6A', 2546, '\uFC6B', 2547, '\uFC6C', 2451, '\uFC6D', 2548, '\uFC6E', 2452, '\uFC6F', 2453, '\uFC70', 2549, '\uFC71', 2550, '\uFC72', 2457, '\uFC73', 2551, '\uFC74', 2458, '\uFC75', 2459, '\uFC76', 2552, '\uFC77', 2553, '\uFC78', 2461, '\uFC79', 2554, '\uFC7A', 2462, '\uFC7B', 2463, '\uFC7C', 2492, '\uFC7D', 2493, '\uFC7E', 2496, '\uFC7F', 2497, '\uFC80', 2498, '\uFC81', 2502, '\uFC82', 2503, '\uFC83', 2504, '\uFC84', 2505, '\uFC85', 2509, '\uFC86', 2510, '\uFC87', 2511, '\uFC88', 2555, '\uFC89', 2515, '\uFC8A', 2556, '\uFC8B', 2557, '\uFC8C', 2521, '\uFC8D', 2558, '\uFC8E', 2522, '\uFC8F', 2523, '\uFC90', 2536, '\uFC91', 2559, '\uFC92', 2560, '\uFC93', 2531, '\uFC94', 2561, '\uFC95', 2532, '\uFC96', 2533, '\uFC97', 2444, '\uFC98', 2445, '\uFC99', 2562, '\uFC9A', 2446, '\uFC9B', 2563, '\uFC9C', 2448, '\uFC9D', 2449, '\uFC9E', 2450, '\uFC9F', 2451, '\uFCA0', 2564, '\uFCA1', 2454, '\uFCA2', 2455, '\uFCA3', 2456, '\uFCA4', 2457, '\uFCA5', 2565, '\uFCA6', 2461, '\uFCA7', 2464, '\uFCA8', 2465, '\uFCA9', 2466, '\uFCAA', 2467, '\uFCAB', 2468, '\uFCAC', 2470, '\uFCAD', 2471, '\uFCAE', 2472, '\uFCAF', 2473, '\uFCB0', 2474, '\uFCB1', 2475, '\uFCB2', 2566, '\uFCB3', 2476, '\uFCB4', 2477, '\uFCB5', 2478, '\uFCB6', 2479, '\uFCB7', 2480, '\uFCB8', 2481, '\uFCB9', 2483, '\uFCBA', 2484, '\uFCBB', 2485, '\uFCBC', 2486, '\uFCBD', 2487, '\uFCBE', 2488, '\uFCBF', 2489, '\uFCC0', 2490, '\uFCC1', 2491, '\uFCC2', 2494, '\uFCC3', 2495, '\uFCC4', 2499, '\uFCC5', 2500, '\uFCC6', 2501, '\uFCC7', 2502, '\uFCC8', 2503, '\uFCC9', 2506, '\uFCCA', 2507, '\uFCCB', 2508, '\uFCCC', 2509, '\uFCCD', 2567, '\uFCCE', 2512, '\uFCCF', 2513, '\uFCD0', 2514, '\uFCD1', 2515, '\uFCD2', 2518, '\uFCD3', 2519, '\uFCD4', 2520, '\uFCD5', 2521, '\uFCD6', 2568, '\uFCD7', 2524, '\uFCD8', 2525, '\uFCD9', 2569, '\uFCDA', 2528, '\uFCDB', 2529, '\uFCDC', 2530, '\uFCDD', 2531, '\uFCDE', 2570, '\uFCDF', 2446, '\uFCE0', 2563, '\uFCE1', 2451, '\uFCE2', 2564, '\uFCE3', 2457, '\uFCE4', 2565, '\uFCE5', 2461, '\uFCE6', 2571, '\uFCE7', 2474, '\uFCE8', 2572, '\uFCE9', 2573, '\uFCEA', 2574, '\uFCEB', 2502, '\uFCEC', 2503, '\uFCED', 2509, '\uFCEE', 2521, '\uFCEF', 2568, '\uFCF0', 2531, '\uFCF1', 2570, '\uFCF2', 2575, '\uFCF3', 2576, '\uFCF4', 2577, '\uFCF5', 2578, '\uFCF6', 2579, '\uFCF7', 2580, '\uFCF8', 2581, '\uFCF9', 2582, '\uFCFA', 2583, '\uFCFB', 2584, '\uFCFC', 2585, '\uFCFD', 2586, '\uFCFE', 2587, '\uFCFF', 2588, '\uFD00', 2589, '\uFD01', 2590, '\uFD02', 2591, '\uFD03', 2592, '\uFD04', 2593, '\uFD05', 2594, '\uFD06', 2595, '\uFD07', 2596, '\uFD08', 2597, '\uFD09', 2598, '\uFD0A', 2599, '\uFD0B', 2600, '\uFD0C', 2573, '\uFD0D', 2601, '\uFD0E', 2602, '\uFD0F', 2603, '\uFD10', 2604, '\uFD11', 2578, '\uFD12', 2579, '\uFD13', 2580, '\uFD14', 2581, '\uFD15', 2582, '\uFD16', 2583, '\uFD17', 2584, '\uFD18', 2585, '\uFD19', 2586, '\uFD1A', 2587, '\uFD1B', 2588, '\uFD1C', 2589, '\uFD1D', 2590, '\uFD1E', 2591, '\uFD1F', 2592, '\uFD20', 2593, '\uFD21', 2594, '\uFD22', 2595, '\uFD23', 2596, '\uFD24', 2597, '\uFD25', 2598, '\uFD26', 2599, '\uFD27', 2600, '\uFD28', 2573, '\uFD29', 2601, '\uFD2A', 2602, '\uFD2B', 2603, '\uFD2C', 2604, '\uFD2D', 2598, '\uFD2E', 2599, '\uFD2F', 2600, '\uFD30', 2573, '\uFD31', 2572, '\uFD32', 2574, '\uFD33', 2482, '\uFD34', 2471, '\uFD35', 2472, '\uFD36', 2473, '\uFD37', 2598, '\uFD38', 2599, '\uFD39', 2600, '\uFD3A', 2482, '\uFD3B', 2483, '\uFD3C', 2605, '\uFD3D', 2605, '\uFD50', 2606, '\uFD51', 2607, '\uFD52', 2607, '\uFD53', 2608, '\uFD54', 2609, '\uFD55', 2610, '\uFD56', 2611, '\uFD57', 2612, '\uFD58', 2613, '\uFD59', 2613, '\uFD5A', 2614, '\uFD5B', 2615, '\uFD5C', 2616, '\uFD5D', 2617, '\uFD5E', 2618, '\uFD5F', 2619, '\uFD60', 2619, '\uFD61', 2620, '\uFD62', 2621, '\uFD63', 2621, '\uFD64', 2622, '\uFD65', 2622, '\uFD66', 2623, '\uFD67', 2624, '\uFD68', 2624, '\uFD69', 2625, '\uFD6A', 2626, '\uFD6B', 2626, '\uFD6C', 2627, '\uFD6D', 2627, '\uFD6E', 2628, '\uFD6F', 2629, '\uFD70', 2629, '\uFD71', 2630, '\uFD72', 2630, '\uFD73', 2631, '\uFD74', 2632, '\uFD75', 2633, '\uFD76', 2634, '\uFD77', 2634, '\uFD78', 2635, '\uFD79', 2636, '\uFD7A', 2637, '\uFD7B', 2638, '\uFD7C', 2639, '\uFD7D', 2639, '\uFD7E', 2640, '\uFD7F', 2641, '\uFD80', 2642, '\uFD81', 2643, '\uFD82', 2644, '\uFD83', 2645, '\uFD84', 2645, '\uFD85', 2646, '\uFD86', 2646, '\uFD87', 2647, '\uFD88', 2647, '\uFD89', 2648, '\uFD8A', 2649, '\uFD8B', 2650, '\uFD8C', 2651, '\uFD8D', 2652, '\uFD8E', 2653, '\uFD8F', 2654, '\uFD92', 2655, '\uFD93', 2656, '\uFD94', 2657, '\uFD95', 2658, '\uFD96', 2659, '\uFD97', 2660, '\uFD98', 2660, '\uFD99', 2661, '\uFD9A', 2662, '\uFD9B', 2663, '\uFD9C', 2664, '\uFD9D', 2664, '\uFD9E', 2665, '\uFD9F', 2666, '\uFDA0', 2667, '\uFDA1', 2668, '\uFDA2', 2669, '\uFDA3', 2670, '\uFDA4', 2671, '\uFDA5', 2672, '\uFDA6', 2673, '\uFDA7', 2674, '\uFDA8', 2675, '\uFDA9', 2676, '\uFDAA', 2677, '\uFDAB', 2678, '\uFDAC', 2679, '\uFDAD', 2680, '\uFDAE', 2681, '\uFDAF', 2682, '\uFDB0', 2683, '\uFDB1', 2684, '\uFDB2', 2685, '\uFDB3', 2686, '\uFDB4', 2640, '\uFDB5', 2642, '\uFDB6', 2687, '\uFDB7', 2688, '\uFDB8', 2689, '\uFDB9', 2690, '\uFDBA', 2691, '\uFDBB', 2692, '\uFDBC', 2691, '\uFDBD', 2689, '\uFDBE', 2693, '\uFDBF', 2694, '\uFDC0', 2695, '\uFDC1', 2696, '\uFDC2', 2697, '\uFDC3', 2692, '\uFDC4', 2633, '\uFDC5', 2623, '\uFDC6', 2698, '\uFDC7', 2699, '\uFDF0', 2700, '\uFDF1', 2701, '\uFDF2', 2702, '\uFDF3', 2703, '\uFDF4', 2704, '\uFDF5', 2705, '\uFDF6', 2706, '\uFDF7', 2707, '\uFDF8', 2708, '\uFDF9', 2709, '\uFDFA', 2710, '\uFDFB', 2711, '\uFDFC', 2712, '\uFE30', 938, '\uFE31', 2713, '\uFE32', 2714, '\uFE33', 2715, '\uFE34', 2715, '\uFE35', 961, '\uFE36', 962, '\uFE37', 2716, '\uFE38', 2717, '\uFE39', 2718, '\uFE3A', 2719, '\uFE3B', 2720, '\uFE3C', 2721, '\uFE3D', 2722, '\uFE3E', 2723, '\uFE3F', 1088, '\uFE40', 1089, '\uFE41', 2724, '\uFE42', 2725, '\uFE43', 2726, '\uFE44', 2727, '\uFE49', 945, '\uFE4A', 945, '\uFE4B', 945, '\uFE4C', 945, '\uFE4D', 2715, '\uFE4E', 2715, '\uFE4F', 2715, '\uFE50', 2728, '\uFE51', 2729, '\uFE52', 937, '\uFE54', 309, '\uFE55', 2730, '\uFE56', 2731, '\uFE57', 2732, '\uFE58', 2713, '\uFE59', 961, '\uFE5A', 962, '\uFE5B', 2716, '\uFE5C', 2717, '\uFE5D', 2718, '\uFE5E', 2719, '\uFE5F', 2733, '\uFE60', 2734, '\uFE61', 2735, '\uFE62', 958, '\uFE63', 2736, '\uFE64', 2737, '\uFE65', 2738, '\uFE66', 960, '\uFE68', 2739, '\uFE69', 2740, '\uFE6A', 2741, '\uFE6B', 2742, '\uFE70', 2743, '\uFE71', 2744, '\uFE72', 2745, '\uFE74', 2746, '\uFE76', 2747, '\uFE77', 2748, '\uFE78', 2749, '\uFE79', 2750, '\uFE7A', 2751, '\uFE7B', 2752, '\uFE7C', 2753, '\uFE7D', 2754, '\uFE7E', 2755, '\uFE7F', 2756, '\uFE80', 2757, '\uFE81', 395, '\uFE82', 395, '\uFE83', 396, '\uFE84', 396, '\uFE85', 397, '\uFE86', 397, '\uFE87', 398, '\uFE88', 398, '\uFE89', 399, '\uFE8A', 399, '\uFE8B', 399, '\uFE8C', 399, '\uFE8D', 2758, '\uFE8E', 2758, '\uFE8F', 2759, '\uFE90', 2759, '\uFE91', 2759, '\uFE92', 2759, '\uFE93', 2760, '\uFE94', 2760, '\uFE95', 2761, '\uFE96', 2761, '\uFE97', 2761, '\uFE98', 2761, '\uFE99', 2762, '\uFE9A', 2762, '\uFE9B', 2762, '\uFE9C', 2762, '\uFE9D', 2763, '\uFE9E', 2763, '\uFE9F', 2763, '\uFEA0', 2763, '\uFEA1', 2764, '\uFEA2', 2764, '\uFEA3', 2764, '\uFEA4', 2764, '\uFEA5', 2765, '\uFEA6', 2765, '\uFEA7', 2765, '\uFEA8', 2765, '\uFEA9', 2766, '\uFEAA', 2766, '\uFEAB', 2767, '\uFEAC', 2767, '\uFEAD', 2768, '\uFEAE', 2768, '\uFEAF', 2769, '\uFEB0', 2769, '\uFEB1', 2770, '\uFEB2', 2770, '\uFEB3', 2770, '\uFEB4', 2770, '\uFEB5', 2771, '\uFEB6', 2771, '\uFEB7', 2771, '\uFEB8', 2771, '\uFEB9', 2772, '\uFEBA', 2772, '\uFEBB', 2772, '\uFEBC', 2772, '\uFEBD', 2773, '\uFEBE', 2773, '\uFEBF', 2773, '\uFEC0', 2773, '\uFEC1', 2774, '\uFEC2', 2774, '\uFEC3', 2774, '\uFEC4', 2774, '\uFEC5', 2775, '\uFEC6', 2775, '\uFEC7', 2775, '\uFEC8', 2775, '\uFEC9', 2776, '\uFECA', 2776, '\uFECB', 2776, '\uFECC', 2776, '\uFECD', 2777, '\uFECE', 2777, '\uFECF', 2777, '\uFED0', 2777, '\uFED1', 2778, '\uFED2', 2778, '\uFED3', 2778, '\uFED4', 2778, '\uFED5', 2779, '\uFED6', 2779, '\uFED7', 2779, '\uFED8', 2779, '\uFED9', 2780, '\uFEDA', 2780, '\uFEDB', 2780, '\uFEDC', 2780, '\uFEDD', 2781, '\uFEDE', 2781, '\uFEDF', 2781, '\uFEE0', 2781, '\uFEE1', 2782, '\uFEE2', 2782, '\uFEE3', 2782, '\uFEE4', 2782, '\uFEE5', 2783, '\uFEE6', 2783, '\uFEE7', 2783, '\uFEE8', 2783, '\uFEE9', 2784, '\uFEEA', 2784, '\uFEEB', 2784, '\uFEEC', 2784, '\uFEED', 2785, '\uFEEE', 2785, '\uFEEF', 2434, '\uFEF0', 2434, '\uFEF1', 2786, '\uFEF2', 2786, '\uFEF3', 2786, '\uFEF4', 2786, '\uFEF5', 2787, '\uFEF6', 2787, '\uFEF7', 2788, '\uFEF8', 2788, '\uFEF9', 2789, '\uFEFA', 2789, '\uFEFB', 2790, '\uFEFC', 2790, '\uFF01', 2732, '\uFF02', 2791, '\uFF03', 2733, '\uFF04', 2740, '\uFF05', 2741, '\uFF06', 2734, '\uFF07', 2792, '\uFF08', 961, '\uFF09', 962, '\uFF0A', 2735, '\uFF0B', 958, '\uFF0C', 2728, '\uFF0D', 2736, '\uFF0E', 937, '\uFF0F', 2793, '\uFF10', 950, '\uFF11', 9, '\uFF12', 4, '\uFF13', 5, '\uFF14', 952, '\uFF15', 953, '\uFF16', 954, '\uFF17', 955, '\uFF18', 956, '\uFF19', 957, '\uFF1A', 2730, '\uFF1B', 309, '\uFF1C', 2737, '\uFF1D', 960, '\uFF1E', 2738, '\uFF1F', 2731, '\uFF20', 2742, '\uFF21', 1167, '\uFF22', 989, '\uFF23', 967, '\uFF24', 1002, '\uFF25', 991, '\uFF26', 992, '\uFF27', 1168, '\uFF28', 974, '\uFF29', 976, '\uFF2A', 1169, '\uFF2B', 988, '\uFF2C', 977, '\uFF2D', 993, '\uFF2E', 978, '\uFF2F', 1170, '\uFF30', 980, '\uFF31', 981, '\uFF32', 982, '\uFF33', 1171, '\uFF34', 1172, '\uFF35', 1173, '\uFF36', 1020, '\uFF37', 1174, '\uFF38', 1025, '\uFF39', 1175, '\uFF3A', 986, '\uFF3B', 2794, '\uFF3C', 2739, '\uFF3D', 2795, '\uFF3E', 2796, '\uFF3F', 2715, '\uFF40', 925, '\uFF41', 2, '\uFF42', 1176, '\uFF43', 1038, '\uFF44', 1003, '\uFF45', 990, '\uFF46', 1177, '\uFF47', 973, '\uFF48', 284, '\uFF49', 951, '\uFF4A', 286, '\uFF4B', 1178, '\uFF4C', 300, '\uFF4D', 1039, '\uFF4E', 963, '\uFF4F', 10, '\uFF50', 1179, '\uFF51', 1180, '\uFF52', 287, '\uFF53', 180, '\uFF54', 1181, '\uFF55', 1182, '\uFF56', 1031, '\uFF57', 291, '\uFF58', 301, '\uFF59', 292, '\uFF5A', 1183, '\uFF5B', 2716, '\uFF5C', 2797, '\uFF5D', 2717, '\uFF5E', 2798, '\uFF5F', 2799, '\uFF60', 2800, '\uFF61', 2801, '\uFF62', 2724, '\uFF63', 2725, '\uFF64', 2729, '\uFF65', 2802, '\uFF66', 1773, '\uFF67', 2803, '\uFF68', 2804, '\uFF69', 2805, '\uFF6A', 2806, '\uFF6B', 2807, '\uFF6C', 2808, '\uFF6D', 2809, '\uFF6E', 2810, '\uFF6F', 2811, '\uFF70', 2812, '\uFF71', 1727, '\uFF72', 1728, '\uFF73', 1729, '\uFF74', 1730, '\uFF75', 1731, '\uFF76', 1732, '\uFF77', 1733, '\uFF78', 1734, '\uFF79', 1735, '\uFF7A', 1736, '\uFF7B', 1737, '\uFF7C', 1738, '\uFF7D', 1739, '\uFF7E', 1740, '\uFF7F', 1741, '\uFF80', 1742, '\uFF81', 1743, '\uFF82', 1744, '\uFF83', 1745, '\uFF84', 1746, '\uFF85', 1747, '\uFF86', 1748, '\uFF87', 1749, '\uFF88', 1750, '\uFF89', 1751, '\uFF8A', 1752, '\uFF8B', 1753, '\uFF8C', 1754, '\uFF8D', 1755, '\uFF8E', 1756, '\uFF8F', 1757, '\uFF90', 1758, '\uFF91', 1759, '\uFF92', 1760, '\uFF93', 1761, '\uFF94', 1762, '\uFF95', 1763, '\uFF96', 1764, '\uFF97', 1765, '\uFF98', 1766, '\uFF99', 1767, '\uFF9A', 1768, '\uFF9B', 1769, '\uFF9C', 1770, '\uFF9D', 2813, '\uFF9E', 2814, '\uFF9F', 2815, '\uFFA0', 1521, '\uFFA1', 1470, '\uFFA2', 1471, '\uFFA3', 1472, '\uFFA4', 1473, '\uFFA5', 1474, '\uFFA6', 1475, '\uFFA7', 1476, '\uFFA8', 1477, '\uFFA9', 1478, '\uFFAA', 1479, '\uFFAB', 1480, '\uFFAC', 1481, '\uFFAD', 1482, '\uFFAE', 1483, '\uFFAF', 1484, '\uFFB0', 1485, '\uFFB1', 1486, '\uFFB2', 1487, '\uFFB3', 1488, '\uFFB4', 1489, '\uFFB5', 1490, '\uFFB6', 1491, '\uFFB7', 1492, '\uFFB8', 1493, '\uFFB9', 1494, '\uFFBA', 1495, '\uFFBB', 1496, '\uFFBC', 1497, '\uFFBD', 1498, '\uFFBE', 1499, '\uFFC2', 1500, '\uFFC3', 1501, '\uFFC4', 1502, '\uFFC5', 1503, '\uFFC6', 1504, '\uFFC7', 1505, '\uFFCA', 1506, '\uFFCB', 1507, '\uFFCC', 1508, '\uFFCD', 1509, '\uFFCE', 1510, '\uFFCF', 1511, '\uFFD2', 1512, '\uFFD3', 1513, '\uFFD4', 1514, '\uFFD5', 1515, '\uFFD6', 1516, '\uFFD7', 1517, '\uFFDA', 1518, '\uFFDB', 1519, '\uFFDC', 1520, '\uFFE0', 2816, '\uFFE1', 2817, '\uFFE2', 2818, '\uFFE3', 3, '\uFFE4', 2819, '\uFFE5', 2820, '\uFFE6', 2821, '\uFFE8', 2822, '\uFFE9', 2823, '\uFFEA', 2824, '\uFFEB', 2825, '\uFFEC', 2826, '\uFFED', 2827, '\uFFEE', 2828, }; } libidn-1.28/csharp/Makefile.in0000644000000000000000000013263512167244657013151 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2005-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @CSHARP_TRUE@am__append_1 = Libidn.dll @CSHARP_TRUE@am__append_2 = install-dll-dir @CSHARP_TRUE@am__append_3 = install-dll @CSHARP_TRUE@am__append_4 = uninstall-dll subdir = csharp DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ CSHARPEXEC = $(SHELL) $(top_builddir)/csharpexec.sh CSHARPCOMP = $(SHELL) $(top_builddir)/csharpcomp.sh SOURCES = AssemblyInfo.cs IDNA.cs RFC3454.cs CombiningClass.cs \ IDNAException.cs Stringprep.cs Composition.cs NFKC.cs \ StringprepException.cs DecompositionKeys.cs Punycode.cs \ DecompositionMappings.cs PunycodeException.cs SOURCES_GENERATE = generate/AssemblyInfo.cs \ generate/GenerateNFKC.cs generate/GenerateRFC3454.cs \ generate/HashSet.cs generate/Program.cs generate/Tokenizer.cs MSVSC = libidn.csproj libidn.csproj.user libidn_PPC.csdproj \ libidn_PPC.csdproj.user libidn_PPC.sln libidn_PPC.suo \ libidn.sln libidn.suo EXTRA_DIST = $(SOURCES) $(SOURCES_GENERATE) $(MSVSC) CLEANFILES = Libidn.dll ALL_LOCAL_TARGETS = $(am__append_1) INSTALLDIRS_LOCAL_TARGETS = $(am__append_2) INSTALL_DATA_LOCAL_TARGETS = $(am__append_3) UNINSTALL_LOCAL_TARGETS = $(am__append_4) @CSHARP_TRUE@SPEC = $(top_srcdir)/doc/specifications all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu csharp/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu csharp/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile all-local installdirs: installdirs-local install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-data-local install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-local .MAKE: install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am all-local check check-am clean \ clean-generic clean-libtool cscopelist-am ctags ctags-am \ distclean distclean-generic distclean-libtool distclean-tags \ distdir dvi dvi-am html html-am info info-am install \ install-am install-data install-data-am install-data-local \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-local maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-local @CSHARP_TRUE@Libidn.dll: $(SOURCES) @CSHARP_TRUE@ $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ @CSHARP_TRUE@ `for src in $(SOURCES); do echo $(srcdir)/$$src; done` @CSHARP_TRUE@GenerateTables.exe: $(SOURCES_GENERATE) @CSHARP_TRUE@ $(CSHARPCOMP) $(CSHARPCOMPFLAGS) -o $@ \ @CSHARP_TRUE@ `for src in $(SOURCES_GENERATE); do echo $(srcdir)/$$src; done` @CSHARP_TRUE@ if ! test -f rfc3454.txt; then \ @CSHARP_TRUE@ ln -s $(SPEC)/rfc3454.txt . \ @CSHARP_TRUE@ || cp $(SPEC)/rfc3454.txt .; \ @CSHARP_TRUE@ fi @CSHARP_TRUE@ if ! test -f UnicodeData.txt; then \ @CSHARP_TRUE@ ln -s $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt \ @CSHARP_TRUE@ || cp $(SPEC)/UnicodeData-3.2.0.txt UnicodeData.txt; \ @CSHARP_TRUE@ fi @CSHARP_TRUE@ if ! test -f CompositionExclusions.txt; then \ @CSHARP_TRUE@ ln -s $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt \ @CSHARP_TRUE@ || cp $(SPEC)/CompositionExclusions-3.2.0.txt CompositionExclusions.txt; \ @CSHARP_TRUE@ fi @CSHARP_TRUE@RFC3454.cs CombiningClass.cs DecompositionKeys.cs DecompositionMappings.cs Composition.cs: $(GEN_SOURCES) @CSHARP_TRUE@ make GenerateTables.exe @CSHARP_TRUE@ $(CSHARPEXEC) ./GenerateTables.exe @CSHARP_TRUE@install-dll-dir: @CSHARP_TRUE@ $(mkinstalldirs) $(DESTDIR)$(libdir) @CSHARP_TRUE@install-dll: install-dll-dir @CSHARP_TRUE@ $(INSTALL_DATA) Libidn.dll $(DESTDIR)$(libdir)/Libidn.dll @CSHARP_TRUE@uninstall-dll: @CSHARP_TRUE@ rm -f $(DESTDIR)$(libdir)/Libidn.dll all-local: $(ALL_LOCAL_TARGETS) install-data-local: $(INSTALL_DATA_LOCAL_TARGETS) installdirs-local: $(INSTALLDIRS_LOCAL_TARGETS) uninstall-local: $(UNINSTALL_LOCAL_TARGETS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/csharp/libidn_PPC.suo0000664000000000000000000002000011746453142013550 00000000000000ࡱ>  Root Entry `j$\@ ProjInfoExTaskListUserTasks$IToolboxService   !"$%&()*Zu#C&ˈwgC Eigene BenutzersteuerelementeDeveloper Express: DXCoreDevice ControlsData XML Schema Dialog EditorMobile Web Forms Web Forms Components Windows FormsHTMLClipboard RingGeneralC:\Dokumente und EinstellungIVSMDPropertyBrowser* IVSMDDesignerService*DebuggerWatches DebuggerBreakpoints( en\gnauck\Eigene Dateien\Visual Studio 2005\Projects\agsxmpp_Net2.0\libidn.NET\libidn\xD:\Programme\Microsoft Visual Studio .NET 2003\Vc7\crt\src\D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\DebuggerExceptions& DebuggerFindSource& DebuggerFindSymbol&DebuggerMemoryWindows,Tsrc\mfc\D:\Programme\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\src\atl\dl &KL$NE{D89ExternalFilesProjectContents:DocumentWindowPositions0 DocumentWindowUserData.SolutionConfiguration, n339-5F13-482B-BD29-C0ED806F41BMultiStartupProj=;4{D890E339-5F13-482B-BD29-C0ED806F41BD}.dwStartupOpt=;StartupProject=&{D890E339-5F13-482B-BD29-C0ED806F41BD};C{D890E339-5F13-482B-BD29-C0ED806F41BD}.Release|Pocket PC.fBatchBld=;A{D890E339-5F13-482B-BD29-C0ED806F41BD}.Debug|Pocket PC.fBatchBld=; ActiveCfg=Debug;artupProjNSܾ M%[{0Aw9 кX"E:cx Testconsoletestlibidn_PPC TestslibidnrJA)jKנRcket PC.fBatchBld=;A{D890Q c:\dokumente und einstellungen\gnauck\eigene dateien\visual studio 2005\projects\agsxmpp_net2.0\libidn.net\libidn\estX oletestlibidn_PPC Test" EndOfStreamQ g:\dokumente und einstellungen\gnauck\eigene dateien\programmierung\dotnet 2003\agsxmpp\libidObjMgrContents#ClassViewContents$ProjExplorerState$'UnloadedProjects"n.net\libidn\X KL$NE{D890E339-5F13-482B-BD29-C0ED806F41BD}|libidn_PPC.csdproj|g:\dokumente und einstellungen\gnauck\eigene dateien\programmierung\dotnet 2003\agsxmpp\libidn.net\libidn\punycode.cs||{A6C7TaskListShortcuts$+SourceCodeControl$,,libidn-1.28/csharp/StringprepException.cs0000644000000000000000000000324712153706572015435 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System; namespace Gnu.Inet.Encoding { public class StringprepException : Exception { public static string CONTAINS_UNASSIGNED = "Contains unassigned code points."; public static string CONTAINS_PROHIBITED = "Contains prohibited code points."; public static string BIDI_BOTHRAL = "Contains both R and AL code points."; public static string BIDI_LTRAL = "Leading and trailing code points not both R or AL."; public StringprepException(string message) : base(message) { } } } libidn-1.28/csharp/AssemblyInfo.cs0000644000000000000000000000671012153706572014012 00000000000000/// /// Copyright (C) 2004-2013 Free Software Foundation, Inc. /// /// Author: Alexander Gnauck AG-Software, mailto:gnauck@ag-software.de /// /// This file is part of GNU Libidn. /// /// GNU Libidn is free software: you can redistribute it and/or /// modify it under the terms of either: /// /// * the GNU Lesser General Public License as published by the Free /// Software Foundation; either version 3 of the License, or (at /// your option) any later version. /// /// or /// /// * the GNU General Public License as published by the Free /// Software Foundation; either version 2 of the License, or (at /// your option) any later version. /// /// or both in parallel, as here. /// /// GNU Libidn 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. /// /// You should have received copies of the GNU General Public License and /// the GNU Lesser General Public License along with this program. If /// not, see . /// using System.Reflection; using System.Runtime.CompilerServices; // // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. // [assembly: AssemblyTitle("")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("")] [assembly: AssemblyCopyright("")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] // // Version information for an assembly consists of the following four values: // // Major Version // Minor Versionu // Build Number // Revision // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: [assembly: AssemblyVersion("1.0.*")] // // In order to sign your assembly you must specify a key to use. Refer to the // Microsoft .NET Framework documentation for more information on assembly signing. // // Use the attributes below to control which key is used for signing. // // Notes: // (*) If no key is specified, the assembly is not signed. // (*) KeyName refers to a key that has been installed in the Crypto Service // Provider (CSP) on your machine. KeyFile refers to a file which contains // a key. // (*) If the KeyFile and the KeyName values are both specified, the // following processing occurs: // (1) If the KeyName can be found in the CSP, that key is used. // (2) If the KeyName does not exist and the KeyFile does exist, the key // in the KeyFile is installed into the CSP and used. // (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. // When specifying the KeyFile, the location of the KeyFile should be // relative to the project output directory which is // %Project Directory%\obj\. For example, if your KeyFile is // located in the project directory, you would specify the AssemblyKeyFile // attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] // (*) Delay Signing is an advanced option - see the Microsoft .NET Framework // documentation for more information on this. // [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile("")] [assembly: AssemblyKeyName("")] libidn-1.28/HACKING0000644000000000000000000000631512153706572010600 00000000000000Libidn HACKING -- Information for contributors. -*- outline -*- Copyright (C) 2009-2013 Simon Josefsson See the end for copying conditions. This file contains instructions for developers and advanced users that wants to build from version controlled sources. We require several tools to build the software, including: - Make - Automake - Autoconf - Libtool - Gettext - Texinfo - Gperf - help2man - Gengetopt - Tar - Gzip - Texlive & epsf (for PDF manual) - CVS (for gettext autopoint) - GTK-DOC (for API manual) - Git - Perl - Valgrind (optional) - Gcj (for java port) - gjdoc (for java port) - Mono mcs (for C# port) - fig2dev The required software is typically distributed with your operating system, and the instructions for installing them differ. Here are some hints: gNewSense/Debian/Ubuntu: apt-get install make git-core autoconf automake libtool gettext cvs apt-get install texinfo texlive texlive-generic-recommended texlive-extra-utils apt-get install help2man gtk-doc-tools valgrind gengetopt apt-get install gcj-jdk gjdoc transfig mono-mcs gperf To download the version controlled sources: $ git clone git://git.savannah.gnu.org/libidn.git $ cd libidn The next step is to run autoreconf, ./configure, etc: $ make bootstrap Then build the project normally: $ make $ make check When building from version controlled sources, some developer specific flags are automatically enabled. For example, the self-checks are run under valgrind if available. For various reasons, you may run into valgrind false positives that will cause self-checks to fail. We ship a Valgrind suppression file to address common issues. You can use it by putting the following in your ~/.valgrindrc: --suppressions=/path/to/libidn/tests/libidn.supp To prepare releases (see rules in cfg.mk) you need some additional tools: - Mingw (to produce Windows binaries) - Wine (to self-check Windows binaries) - Lcov (to produce coverage HTML pages) - Zip (to pack Windows binaries) - Clang (to produce clang analysis) - Doxygen (to produce doxygen manual) - pmccabe (to produce cyclomatic code complexity report) - ncftpput (to upload source tarballs) gNewSense/Debian/Ubuntu: apt-get install mingw-w64 wine binfmt-support lcov zip apt-get install clang doxygen pmccabe ncftp Happy hacking! ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/aclocal.m40000644000000000000000000014133112167244654011452 00000000000000# generated automatically by aclocal 1.14 -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.14], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # Copyright (C) 2011-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_AR([ACT-IF-FAIL]) # ------------------------- # Try to determine the archiver interface, and trigger the ar-lib wrapper # if it is needed. If the detection of archiver interface fails, run # ACT-IF-FAIL (default is to abort configure with a proper error message). AC_DEFUN([AM_PROG_AR], [AC_BEFORE([$0], [LT_INIT])dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([ar-lib])dnl AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) : ${AR=ar} AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], [AC_LANG_PUSH([C]) am_cv_ar_interface=ar AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=ar else am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([am_ar_try]) if test "$ac_status" -eq 0; then am_cv_ar_interface=lib else am_cv_ar_interface=unknown fi fi rm -f conftest.lib libconftest.a ]) AC_LANG_POP([C])]) case $am_cv_ar_interface in ar) ;; lib) # Microsoft lib, so override with the ar-lib wrapper script. # FIXME: It is wrong to rewrite AR. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__AR in this case, # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something # similar. AR="$am_aux_dir/ar-lib $AR" ;; unknown) m4_default([$1], [AC_MSG_ERROR([could not determine $AR interface])]) ;; esac AC_SUBST([AR])dnl ]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "$am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Check for Java compiler. -*- Autoconf -*- # For now we only handle the GNU compiler. # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([AM_PROG_GCJ], [AC_CHECK_TOOLS([GCJ], [gcj], [gcj]) test -z "$GCJ" && AC_MSG_ERROR([no acceptable gcj found in \$PATH]) if test "x${GCJFLAGS-unset}" = xunset; then GCJFLAGS="-g -O2" fi AC_SUBST([GCJFLAGS]) _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES(GCJ)]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) AC_REQUIRE([AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl # POSIX will say in a future version that running "rm -f" with no argument # is OK; and we want to be able to make that assumption in our Makefile # recipes. So use an aggressive probe to check that the usage we want is # actually supported "in the wild" to an acceptable degree. # See automake bug#10828. # To make any issue more visible, cause the running configure to be aborted # by default if the 'rm' program in use doesn't match our expectations; the # user can still override this though. if rm -f && rm -fr && rm -rf; then : OK; else cat >&2 <<'END' Oops! Your 'rm' program seems unable to run without file operands specified on the command line, even when the '-f' option is present. This is contrary to the behaviour of most rm programs out there, and not conforming with the upcoming POSIX standard: Please tell bug-automake@gnu.org about your system, including the value of your $PATH and any error possibly output before this message. This can help us improve future automake versions. END if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then echo 'Configuration will proceed anyway, since you have set the' >&2 echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 echo >&2 else cat >&2 <<'END' Aborting the configuration process, to ensure you take notice of the issue. You can download and install GNU coreutils to get an 'rm' implementation that behaves properly: . If you want to complete the configuration process using your problematic 'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi fi]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PATH_LISPDIR # --------------- AC_DEFUN([AM_PATH_LISPDIR], [AC_PREREQ([2.60])dnl # If set to t, that means we are running in a shell under Emacs. # If you have an Emacs named "t", then use the full path. test x"$EMACS" = xt && EMACS= AC_CHECK_PROGS([EMACS], [emacs xemacs], [no]) AC_ARG_VAR([EMACS], [the Emacs editor command]) AC_ARG_VAR([EMACSLOADPATH], [the Emacs library search path]) AC_ARG_WITH([lispdir], [AS_HELP_STRING([--with-lispdir], [override the default lisp directory])], [ lispdir="$withval" AC_MSG_CHECKING([where .elc files should go]) AC_MSG_RESULT([$lispdir])], [ AC_CACHE_CHECK([where .elc files should go], [am_cv_lispdir], [ if test $EMACS != "no"; then if test x${lispdir+set} != xset; then # If $EMACS isn't GNU Emacs or XEmacs, this can blow up pretty badly # Some emacsen will start up in interactive mode, requiring C-x C-c to exit, # which is non-obvious for non-emacs users. # Redirecting /dev/null should help a bit; pity we can't detect "broken" # emacsen earlier and avoid running this altogether. AC_RUN_LOG([$EMACS -batch -q -eval '(while load-path (princ (concat (car load-path) "\n")) (setq load-path (cdr load-path)))' conftest.out]) am_cv_lispdir=`sed -n \ -e 's,/$,,' \ -e '/.*\/lib\/x*emacs\/site-lisp$/{s,.*/lib/\(x*emacs/site-lisp\)$,${libdir}/\1,;p;q;}' \ -e '/.*\/share\/x*emacs\/site-lisp$/{s,.*/share/\(x*emacs/site-lisp\),${datarootdir}/\1,;p;q;}' \ conftest.out` rm conftest.out fi fi test -z "$am_cv_lispdir" && am_cv_lispdir='${datadir}/emacs/site-lisp' ]) lispdir="$am_cv_lispdir" ]) AC_SUBST([lispdir]) ])# AM_PATH_LISPDIR # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Enable less verbose build rules; with the default set to DEFAULT # ("yes" being less verbose, "no" or empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; esac dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) # Copyright (C) 2001-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([lib/gl/m4/gnulib-comp.m4]) m4_include([lib/gl/m4/iconv_h.m4]) m4_include([lib/gl/m4/iconv_open.m4]) m4_include([lib/gl/m4/inline.m4]) m4_include([lib/gl/m4/ld-output-def.m4]) m4_include([lib/gl/m4/ld-version-script.m4]) m4_include([lib/gl/m4/libunistring-base.m4]) m4_include([lib/gl/m4/locale-fr.m4]) m4_include([lib/gl/m4/locale-ja.m4]) m4_include([lib/gl/m4/locale-tr.m4]) m4_include([lib/gl/m4/locale-zh.m4]) m4_include([lib/gl/m4/locale_h.m4]) m4_include([lib/gl/m4/localename.m4]) m4_include([lib/gl/m4/setlocale.m4]) m4_include([lib/gl/m4/strverscmp.m4]) m4_include([lib/gl/m4/thread.m4]) m4_include([lib/gl/m4/yield.m4]) m4_include([gl/m4/00gnulib.m4]) m4_include([gl/m4/alloca.m4]) m4_include([gl/m4/autobuild.m4]) m4_include([gl/m4/close.m4]) m4_include([gl/m4/csharp.m4]) m4_include([gl/m4/csharpcomp.m4]) m4_include([gl/m4/csharpexec.m4]) m4_include([gl/m4/dup2.m4]) m4_include([gl/m4/eealloc.m4]) m4_include([gl/m4/environ.m4]) m4_include([gl/m4/errno_h.m4]) m4_include([gl/m4/error.m4]) m4_include([gl/m4/extensions.m4]) m4_include([gl/m4/extern-inline.m4]) m4_include([gl/m4/fcntl_h.m4]) m4_include([gl/m4/fdopen.m4]) m4_include([gl/m4/fstat.m4]) m4_include([gl/m4/getcwd.m4]) m4_include([gl/m4/getdtablesize.m4]) m4_include([gl/m4/getopt.m4]) m4_include([gl/m4/gnulib-common.m4]) m4_include([gl/m4/gnulib-comp.m4]) m4_include([gl/m4/include_next.m4]) m4_include([gl/m4/inttypes.m4]) m4_include([gl/m4/largefile.m4]) m4_include([gl/m4/lstat.m4]) m4_include([gl/m4/malloc.m4]) m4_include([gl/m4/malloca.m4]) m4_include([gl/m4/manywarnings.m4]) m4_include([gl/m4/mode_t.m4]) m4_include([gl/m4/msvc-inval.m4]) m4_include([gl/m4/msvc-nothrow.m4]) m4_include([gl/m4/multiarch.m4]) m4_include([gl/m4/nocrash.m4]) m4_include([gl/m4/off_t.m4]) m4_include([gl/m4/open.m4]) m4_include([gl/m4/pathmax.m4]) m4_include([gl/m4/putenv.m4]) m4_include([gl/m4/setenv.m4]) m4_include([gl/m4/ssize_t.m4]) m4_include([gl/m4/stat.m4]) m4_include([gl/m4/stdarg.m4]) m4_include([gl/m4/stdbool.m4]) m4_include([gl/m4/stddef_h.m4]) m4_include([gl/m4/stdint.m4]) m4_include([gl/m4/stdio_h.m4]) m4_include([gl/m4/stdlib_h.m4]) m4_include([gl/m4/strerror.m4]) m4_include([gl/m4/string_h.m4]) m4_include([gl/m4/symlink.m4]) m4_include([gl/m4/sys_socket_h.m4]) m4_include([gl/m4/sys_stat_h.m4]) m4_include([gl/m4/sys_types_h.m4]) m4_include([gl/m4/time_h.m4]) m4_include([gl/m4/unistd_h.m4]) m4_include([gl/m4/valgrind-tests.m4]) m4_include([gl/m4/version-etc.m4]) m4_include([gl/m4/warn-on-use.m4]) m4_include([gl/m4/warnings.m4]) m4_include([gl/m4/wchar_h.m4]) m4_include([m4/ac_prog_jar.m4]) m4_include([m4/codeset.m4]) m4_include([m4/fcntl-o.m4]) m4_include([m4/gettext.m4]) m4_include([m4/gtk-doc.m4]) m4_include([m4/iconv.m4]) m4_include([m4/intlmacosx.m4]) m4_include([m4/inttypes-pri.m4]) m4_include([m4/lcmessage.m4]) m4_include([m4/lib-ld.m4]) m4_include([m4/lib-link.m4]) m4_include([m4/lib-prefix.m4]) m4_include([m4/libtool.m4]) m4_include([m4/lock.m4]) m4_include([m4/longlong.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) m4_include([m4/nls.m4]) m4_include([m4/pkg.m4]) m4_include([m4/po.m4]) m4_include([m4/progtest.m4]) m4_include([m4/threadlib.m4]) m4_include([m4/update-header-version.m4]) m4_include([m4/visibility.m4]) m4_include([m4/wchar_t.m4]) m4_include([m4/wint_t.m4]) libidn-1.28/COPYING.LESSERv20000664000000000000000000006364211746453142012117 00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! libidn-1.28/COPYING.LESSERv30000664000000000000000000001674311746453142012120 00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. libidn-1.28/maint.mk0000644000000000000000000017265212153706067011261 00000000000000# -*-Makefile-*- # This Makefile fragment tries to be general-purpose enough to be # used by many projects via the gnulib maintainer-makefile module. ## Copyright (C) 2001-2013 Free Software Foundation, Inc. ## ## 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 3 of the License, or ## (at your option) any later version. ## ## 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. ## ## You should have received a copy of the GNU General Public License ## along with this program. If not, see . # This is reported not to work with make-3.79.1 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) ME := maint.mk # Diagnostic for continued use of deprecated variable. # Remove in 2013 ifneq ($(build_aux),) $(error "$(ME): \ set $$(_build-aux) relative to $$(srcdir) instead of $$(build_aux)") endif # Helper variables. _empty = _sp = $(_empty) $(_empty) # _equal,S1,S2 # ------------ # If S1 == S2, return S1, otherwise the empty string. _equal = $(and $(findstring $(1),$(2)),$(findstring $(2),$(1))) # member-check,VARIABLE,VALID-VALUES # ---------------------------------- # Check that $(VARIABLE) is in the space-separated list of VALID-VALUES, and # return it. Die otherwise. member-check = \ $(strip \ $(if $($(1)), \ $(if $(findstring $(_sp),$($(1))), \ $(error invalid $(1): '$($(1))', expected $(2)), \ $(or $(findstring $(_sp)$($(1))$(_sp),$(_sp)$(2)$(_sp)), \ $(error invalid $(1): '$($(1))', expected $(2)))), \ $(error $(1) undefined))) # Do not save the original name or timestamp in the .tar.gz file. # Use --rsyncable if available. gzip_rsyncable := \ $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null \ && printf %s --rsyncable) GZIP_ENV = '--no-name --best $(gzip_rsyncable)' GIT = git VC = $(GIT) VC_LIST = $(srcdir)/$(_build-aux)/vc-list-files -C $(srcdir) # You can override this variable in cfg.mk to set your own regexp # matching files to ignore. VC_LIST_ALWAYS_EXCLUDE_REGEX ?= ^$$ # This is to preprocess robustly the output of $(VC_LIST), so that even # when $(srcdir) is a pathological name like "....", the leading sed command # removes only the intended prefix. _dot_escaped_srcdir = $(subst .,\.,$(srcdir)) # Post-process $(VC_LIST) output, prepending $(srcdir)/, but only # when $(srcdir) is not ".". ifeq ($(srcdir),.) _prepend_srcdir_prefix = else _prepend_srcdir_prefix = | sed 's|^|$(srcdir)/|' endif # In order to be able to consistently filter "."-relative names, # (i.e., with no $(srcdir) prefix), this definition is careful to # remove any $(srcdir) prefix, and to restore what it removes. _sc_excl = \ $(or $(exclude_file_name_regexp--$@),^$$) VC_LIST_EXCEPT = \ $(VC_LIST) | sed 's|^$(_dot_escaped_srcdir)/||' \ | if test -f $(srcdir)/.x-$@; then grep -vEf $(srcdir)/.x-$@; \ else grep -Ev -e "$${VC_LIST_EXCEPT_DEFAULT-ChangeLog}"; fi \ | grep -Ev -e '($(VC_LIST_ALWAYS_EXCLUDE_REGEX)|$(_sc_excl))' \ $(_prepend_srcdir_prefix) ifeq ($(origin prev_version_file), undefined) prev_version_file = $(srcdir)/.prev-version endif PREV_VERSION := $(shell cat $(prev_version_file) 2>/dev/null) VERSION_REGEXP = $(subst .,\.,$(VERSION)) PREV_VERSION_REGEXP = $(subst .,\.,$(PREV_VERSION)) ifeq ($(VC),$(GIT)) this-vc-tag = v$(VERSION) this-vc-tag-regexp = v$(VERSION_REGEXP) else tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]') tag-this-version = $(subst .,_,$(VERSION)) this-vc-tag = $(tag-package)-$(tag-this-version) this-vc-tag-regexp = $(this-vc-tag) endif my_distdir = $(PACKAGE)-$(VERSION) # Old releases are stored here. release_archive_dir ?= ../release # If RELEASE_TYPE is undefined, but RELEASE is, use its second word. # But overwrite VERSION. ifdef RELEASE VERSION := $(word 1, $(RELEASE)) RELEASE_TYPE ?= $(word 2, $(RELEASE)) endif # Validate and return $(RELEASE_TYPE), or die. RELEASE_TYPES = alpha beta stable release-type = $(call member-check,RELEASE_TYPE,$(RELEASE_TYPES)) # Override gnu_rel_host and url_dir_list in cfg.mk if these are not right. # Use alpha.gnu.org for alpha and beta releases. # Use ftp.gnu.org for stable releases. gnu_ftp_host-alpha = alpha.gnu.org gnu_ftp_host-beta = alpha.gnu.org gnu_ftp_host-stable = ftp.gnu.org gnu_rel_host ?= $(gnu_ftp_host-$(release-type)) url_dir_list ?= $(if $(call _equal,$(gnu_rel_host),ftp.gnu.org), \ http://ftpmirror.gnu.org/$(PACKAGE), \ ftp://$(gnu_rel_host)/gnu/$(PACKAGE)) # Override this in cfg.mk if you are using a different format in your # NEWS file. today = $(shell date +%Y-%m-%d) # Select which lines of NEWS are searched for $(news-check-regexp). # This is a sed line number spec. The default says that we search # lines 1..10 of NEWS for $(news-check-regexp). # If you want to search only line 3 or only lines 20-22, use "3" or "20,22". news-check-lines-spec ?= 1,10 news-check-regexp ?= '^\*.* $(VERSION_REGEXP) \($(today)\)' # Prevent programs like 'sort' from considering distinct strings to be equal. # Doing it here saves us from having to set LC_ALL elsewhere in this file. export LC_ALL = C ## --------------- ## ## Sanity checks. ## ## --------------- ## _cfg_mk := $(wildcard $(srcdir)/cfg.mk) # Collect the names of rules starting with 'sc_'. syntax-check-rules := $(sort $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \ $(srcdir)/$(ME) $(_cfg_mk))) .PHONY: $(syntax-check-rules) ifeq ($(shell $(VC_LIST) >/dev/null 2>&1; echo $$?),0) local-checks-available += $(syntax-check-rules) else local-checks-available += no-vc-detected no-vc-detected: @echo "No version control files detected; skipping syntax check" endif .PHONY: $(local-checks-available) # Arrange to print the name of each syntax-checking rule just before running it. $(syntax-check-rules): %: %.m sc_m_rules_ = $(patsubst %, %.m, $(syntax-check-rules)) .PHONY: $(sc_m_rules_) $(sc_m_rules_): @echo $(patsubst sc_%.m, %, $@) @date +%s.%N > .sc-start-$(basename $@) # Compute and print the elapsed time for each syntax-check rule. sc_z_rules_ = $(patsubst %, %.z, $(syntax-check-rules)) .PHONY: $(sc_z_rules_) $(sc_z_rules_): %.z: % @end=$$(date +%s.%N); \ start=$$(cat .sc-start-$*); \ rm -f .sc-start-$*; \ awk -v s=$$start -v e=$$end \ 'END {printf "%.2f $(patsubst sc_%,%,$*)\n", e - s}' < /dev/null # The patsubst here is to replace each sc_% rule with its sc_%.z wrapper # that computes and prints elapsed time. local-check := \ $(patsubst sc_%, sc_%.z, \ $(filter-out $(local-checks-to-skip), $(local-checks-available))) syntax-check: $(local-check) # _sc_search_regexp # # This macro searches for a given construct in the selected files and # then takes some action. # # Parameters (shell variables): # # prohibit | require # # Regular expression (ERE) denoting either a forbidden construct # or a required construct. Those arguments are exclusive. # # exclude # # Regular expression (ERE) denoting lines to ignore that matched # a prohibit construct. For example, this can be used to exclude # comments that mention why the nearby code uses an alternative # construct instead of the simpler prohibited construct. # # in_vc_files | in_files # # grep-E-style regexp selecting the files to check. For in_vc_files, # the regexp is used to select matching files from the list of all # version-controlled files; for in_files, it's from the names printed # by "find $(srcdir)". When neither is specified, use all files that # are under version control. # # containing | non_containing # # Select the files (non) containing strings matching this regexp. # If both arguments are specified then CONTAINING takes # precedence. # # with_grep_options # # Extra options for grep. # # ignore_case # # Ignore case. # # halt # # Message to display before to halting execution. # # Finally, you may exempt files based on an ERE matching file names. # For example, to exempt from the sc_space_tab check all files with the # .diff suffix, set this Make variable: # # exclude_file_name_regexp--sc_space_tab = \.diff$ # # Note that while this functionality is mostly inherited via VC_LIST_EXCEPT, # when filtering by name via in_files, we explicitly filter out matching # names here as well. # Initialize each, so that envvar settings cannot interfere. export require = export prohibit = export exclude = export in_vc_files = export in_files = export containing = export non_containing = export halt = export with_grep_options = # By default, _sc_search_regexp does not ignore case. export ignore_case = _ignore_case = $$(test -n "$$ignore_case" && printf %s -i || :) define _sc_say_and_exit dummy=; : so we do not need a semicolon before each use; \ { printf '%s\n' "$(ME): $$msg" 1>&2; exit 1; }; endef define _sc_search_regexp dummy=; : so we do not need a semicolon before each use; \ \ : Check arguments; \ test -n "$$prohibit" && test -n "$$require" \ && { msg='Cannot specify both prohibit and require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -z "$$require" \ && { msg='Should specify either prohibit or require' \ $(_sc_say_and_exit) } || :; \ test -z "$$prohibit" && test -n "$$exclude" \ && { msg='Use of exclude requires a prohibit pattern' \ $(_sc_say_and_exit) } || :; \ test -n "$$in_vc_files" && test -n "$$in_files" \ && { msg='Cannot specify both in_vc_files and in_files' \ $(_sc_say_and_exit) } || :; \ test "x$$halt" != x \ || { msg='halt not defined' $(_sc_say_and_exit) }; \ \ : Filter by file name; \ if test -n "$$in_files"; then \ files=$$(find $(srcdir) | grep -E "$$in_files" \ | grep -Ev '$(_sc_excl)'); \ else \ files=$$($(VC_LIST_EXCEPT)); \ if test -n "$$in_vc_files"; then \ files=$$(echo "$$files" | grep -E "$$in_vc_files"); \ fi; \ fi; \ \ : Filter by content; \ test -n "$$files" && test -n "$$containing" \ && { files=$$(grep -l "$$containing" $$files); } || :; \ test -n "$$files" && test -n "$$non_containing" \ && { files=$$(grep -vl "$$non_containing" $$files); } || :; \ \ : Check for the construct; \ if test -n "$$files"; then \ if test -n "$$prohibit"; then \ grep $$with_grep_options $(_ignore_case) -nE "$$prohibit" $$files \ | grep -vE "$${exclude:-^$$}" \ && { msg="$$halt" $(_sc_say_and_exit) } || :; \ else \ grep $$with_grep_options $(_ignore_case) -LE "$$require" $$files \ | grep . \ && { msg="$$halt" $(_sc_say_and_exit) } || :; \ fi \ else :; \ fi || :; endef sc_avoid_if_before_free: @$(srcdir)/$(_build-aux)/useless-if-before-free \ $(useless_free_options) \ $$($(VC_LIST_EXCEPT) | grep -v useless-if-before-free) && \ { echo '$(ME): found useless "if" before "free" above' 1>&2; \ exit 1; } || : sc_cast_of_argument_to_free: @prohibit='\&2; \ exit 1; } || : # Error messages should not start with a capital letter sc_error_message_uppercase: @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ | grep -E '"[A-Z]' \ | grep -vE '"FATAL|"WARNING|"Java|"C#|PRIuMAX' && \ { echo '$(ME): found capitalized error message' 1>&2; \ exit 1; } || : # Error messages should not end with a period sc_error_message_period: @grep -nEA2 '[^rp]error *\(' $$($(VC_LIST_EXCEPT)) \ | grep -E '[^."]\."' && \ { echo '$(ME): found error message ending in period' 1>&2; \ exit 1; } || : sc_file_system: @prohibit=file''system \ ignore_case=1 \ halt='found use of "file''system"; spell it "file system"' \ $(_sc_search_regexp) # Don't use cpp tests of this symbol. All code assumes config.h is included. sc_prohibit_have_config_h: @prohibit='^# *if.*HAVE''_CONFIG_H' \ halt='found use of HAVE''_CONFIG_H; remove' \ $(_sc_search_regexp) # Nearly all .c files must include . However, we also permit this # via inclusion of a package-specific header, if cfg.mk specified one. # config_h_header must be suitable for grep -E. config_h_header ?= sc_require_config_h: @require='^# *include $(config_h_header)' \ in_vc_files='\.c$$' \ halt='the above files do not include ' \ $(_sc_search_regexp) # You must include before including any other header file. # This can possibly be via a package-specific header, if given by cfg.mk. sc_require_config_h_first: @if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \ fail=0; \ for i in $$($(VC_LIST_EXCEPT) | grep '\.c$$'); do \ grep '^# *include\>' $$i | sed 1q \ | grep -E '^# *include $(config_h_header)' > /dev/null \ || { echo $$i; fail=1; }; \ done; \ test $$fail = 1 && \ { echo '$(ME): the above files include some other header' \ 'before ' 1>&2; exit 1; } || :; \ else :; \ fi sc_prohibit_HAVE_MBRTOWC: @prohibit='\bHAVE_MBRTOWC\b' \ halt="do not use $$prohibit; it is always defined" \ $(_sc_search_regexp) # To use this "command" macro, you must first define two shell variables: # h: the header name, with no enclosing <> or "" # re: a regular expression that matches IFF something provided by $h is used. define _sc_header_without_use dummy=; : so we do not need a semicolon before each use; \ h_esc=`echo '[<"]'"$$h"'[">]'|sed 's/\./\\\\./g'`; \ if $(VC_LIST_EXCEPT) | grep -l '\.c$$' > /dev/null; then \ files=$$(grep -l '^# *include '"$$h_esc" \ $$($(VC_LIST_EXCEPT) | grep '\.c$$')) && \ grep -LE "$$re" $$files | grep . && \ { echo "$(ME): the above files include $$h but don't use it" \ 1>&2; exit 1; } || :; \ else :; \ fi endef # Prohibit the inclusion of assert.h without an actual use of assert. sc_prohibit_assert_without_use: @h='assert.h' re='\new(file => "/dev/stdin")->as_string'|sed 's/\?://g' # Note this was produced by the above: # _xa1 = \ #x(((2n?)?re|c(har)?|n(re|m)|z)alloc|alloc_(oversized|die)|m(alloc|emdup)|strdup) # But we can do better, in at least two ways: # 1) take advantage of two "dup"-suffixed strings: # x(((2n?)?re|c(har)?|n(re|m)|[mz])alloc|alloc_(oversized|die)|(mem|str)dup) # 2) notice that "c(har)?|[mz]" is equivalent to the shorter and more readable # "char|[cmz]" # x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa1 = x(((2n?)?re|char|n(re|m)|[cmz])alloc|alloc_(oversized|die)|(mem|str)dup) _xa2 = X([CZ]|N?M)ALLOC sc_prohibit_xalloc_without_use: @h='xalloc.h' \ re='\<($(_xa1)|$(_xa2)) *\('\ $(_sc_header_without_use) # Extract function names: # perl -lne '/^(?:extern )?(?:void|char) \*?(\w+) *\(/ and print $1' lib/hash.h _hash_re = \ clear|delete|free|get_(first|next)|insert|lookup|print_statistics|reset_tuning _hash_fn = \<($(_hash_re)) *\( _hash_struct = (struct )?\<[Hh]ash_(table|tuning)\> sc_prohibit_hash_without_use: @h='hash.h' \ re='$(_hash_fn)|$(_hash_struct)'\ $(_sc_header_without_use) sc_prohibit_cloexec_without_use: @h='cloexec.h' re='\<(set_cloexec_flag|dup_cloexec) *\(' \ $(_sc_header_without_use) sc_prohibit_posixver_without_use: @h='posixver.h' re='\' \ halt='do not use HAVE''_FCNTL_H or O'_NDELAY \ $(_sc_search_regexp) # FIXME: warn about definitions of EXIT_FAILURE, EXIT_SUCCESS, STREQ # Each nonempty ChangeLog line must start with a year number, or a TAB. sc_changelog: @prohibit='^[^12 ]' \ in_vc_files='^ChangeLog$$' \ halt='found unexpected prefix in a ChangeLog' \ $(_sc_search_regexp) # Ensure that each .c file containing a "main" function also # calls set_program_name. sc_program_name: @require='set_program_name *\(m?argv\[0\]\);' \ in_vc_files='\.c$$' \ containing='\
    /dev/null \ && : || { die=1; echo $$i; } \ done; \ test $$die = 1 && \ { echo 1>&2 '$(ME): the final line in each of the above is not:'; \ echo 1>&2 'Exit something'; \ exit 1; } || :; \ fi sc_trailing_blank: @prohibit='[ ]$$' \ halt='found trailing blank(s)' \ exclude='^Binary file .* matches$$' \ $(_sc_search_regexp) # Match lines like the following, but where there is only one space # between the options and the description: # -D, --all-repeated[=delimit-method] print all duplicate lines\n longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)? sc_two_space_separator_in_usage: @prohibit='^ *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$' \ halt='help2man requires at least two spaces between an option and its description'\ $(_sc_search_regexp) # A regexp matching function names like "error" that may be used # to emit translatable messages. _gl_translatable_diag_func_re ?= error # Look for diagnostics that aren't marked for translation. # This won't find any for which error's format string is on a separate line. sc_unmarked_diagnostics: @prohibit='\<$(_gl_translatable_diag_func_re) *\([^"]*"[^"]*[a-z]{3}' \ exclude='(_|ngettext ?)\(' \ halt='found unmarked diagnostic(s)' \ $(_sc_search_regexp) # Avoid useless parentheses like those in this example: # #if defined (SYMBOL) || defined (SYM2) sc_useless_cpp_parens: @prohibit='^# *if .*defined *\(' \ halt='found useless parentheses in cpp directive' \ $(_sc_search_regexp) # List headers for which HAVE_HEADER_H is always true, assuming you are # using the appropriate gnulib module. CAUTION: for each "unnecessary" # #if HAVE_HEADER_H that you remove, be sure that your project explicitly # requires the gnulib module that guarantees the usability of that header. gl_assured_headers_ = \ cd $(gnulib_dir)/lib && echo *.in.h|sed 's/\.in\.h//g' # Convert the list of names to upper case, and replace each space with "|". az_ = abcdefghijklmnopqrstuvwxyz AZ_ = ABCDEFGHIJKLMNOPQRSTUVWXYZ gl_header_upper_case_or_ = \ $$($(gl_assured_headers_) \ | tr $(az_)/.- $(AZ_)___ \ | tr -s ' ' '|' \ ) sc_prohibit_always_true_header_tests: @or=$(gl_header_upper_case_or_); \ re="HAVE_($$or)_H"; \ prohibit='\<'"$$re"'\>' \ halt=$$(printf '%s\n' \ 'do not test the above HAVE_
    _H symbol(s);' \ ' with the corresponding gnulib module, they are always true') \ $(_sc_search_regexp) sc_prohibit_defined_have_decl_tests: @prohibit='(#[ ]*ifn?def|\[ (]+HAVE_DECL_' \ halt='HAVE_DECL macros are always defined' \ $(_sc_search_regexp) # ================================================================== gl_other_headers_ ?= \ intprops.h \ openat.h \ stat-macros.h # Perl -lne code to extract "significant" cpp-defined symbols from a # gnulib header file, eliminating a few common false-positives. # The exempted names below are defined only conditionally in gnulib, # and hence sometimes must/may be defined in application code. gl_extract_significant_defines_ = \ /^\# *define ([^_ (][^ (]*)(\s*\(|\s+\w+)/\ && $$2 !~ /(?:rpl_|_used_without_)/\ && $$1 !~ /^(?:NSIG|ENODATA)$$/\ && $$1 !~ /^(?:SA_RESETHAND|SA_RESTART)$$/\ and print $$1 # Create a list of regular expressions matching the names # of macros that are guaranteed to be defined by parts of gnulib. define def_sym_regex gen_h=$(gl_generated_headers_); \ (cd $(gnulib_dir)/lib; \ for f in *.in.h $(gl_other_headers_); do \ test -f $$f \ && perl -lne '$(gl_extract_significant_defines_)' $$f; \ done; \ ) | sort -u \ | sed 's/^/^ *# *(define|undef) */;s/$$/\\>/' endef # Don't define macros that we already get from gnulib header files. sc_prohibit_always-defined_macros: @if test -d $(gnulib_dir); then \ case $$(echo all: | grep -l -f - Makefile) in Makefile);; *) \ echo '$(ME): skipping $@: you lack GNU grep' 1>&2; exit 0;; \ esac; \ $(def_sym_regex) | grep -E -f - $$($(VC_LIST_EXCEPT)) \ && { echo '$(ME): define the above via some gnulib .h file' \ 1>&2; exit 1; } || :; \ fi # ================================================================== # Prohibit checked in backup files. sc_prohibit_backup_files: @$(VC_LIST) | grep '~$$' && \ { echo '$(ME): found version controlled backup file' 1>&2; \ exit 1; } || : # Require the latest GPL. sc_GPL_version: @prohibit='either ''version [^3]' \ halt='GPL vN, N!=3' \ $(_sc_search_regexp) # Require the latest GFDL. Two regexp, since some .texi files end up # line wrapping between 'Free Documentation License,' and 'Version'. _GFDL_regexp = (Free ''Documentation.*Version 1\.[^3]|Version 1\.[^3] or any) sc_GFDL_version: @prohibit='$(_GFDL_regexp)' \ halt='GFDL vN, N!=3' \ $(_sc_search_regexp) # Don't use Texinfo's @acronym{}. # http://lists.gnu.org/archive/html/bug-gnulib/2010-03/msg00321.html texinfo_suffix_re_ ?= \.(txi|texi(nfo)?)$$ sc_texinfo_acronym: @prohibit='@acronym\{' \ in_vc_files='$(texinfo_suffix_re_)' \ halt='found use of Texinfo @acronym{}' \ $(_sc_search_regexp) cvs_keywords = \ Author|Date|Header|Id|Name|Locker|Log|RCSfile|Revision|Source|State sc_prohibit_cvs_keyword: @prohibit='\$$($(cvs_keywords))\$$' \ halt='do not use CVS keyword expansion' \ $(_sc_search_regexp) # This Perl code is slightly obfuscated. Not only is each "$" doubled # because it's in a Makefile, but the $$c's are comments; we cannot # use "#" due to the way the script ends up concatenated onto one line. # It would be much more concise, and would produce better output (including # counts) if written as: # perl -ln -0777 -e '/\n(\n+)$/ and print "$ARGV: ".length $1' ... # but that would be far less efficient, reading the entire contents # of each file, rather than just the last two bytes of each. # In addition, while the code below detects both blank lines and a missing # newline at EOF, the above detects only the former. # # This is a perl script that is expected to be the single-quoted argument # to a command-line "-le". The remaining arguments are file names. # Print the name of each file that does not end in exactly one newline byte. # I.e., warn if there are blank lines (2 or more newlines), or if the # last byte is not a newline. However, currently we don't complain # about any file that contains exactly one byte. # Exit nonzero if at least one such file is found, otherwise, exit 0. # Warn about, but otherwise ignore open failure. Ignore seek/read failure. # # Use this if you want to remove trailing empty lines from selected files: # perl -pi -0777 -e 's/\n\n+$/\n/' files... # require_exactly_one_NL_at_EOF_ = \ foreach my $$f (@ARGV) \ { \ open F, "<", $$f or (warn "failed to open $$f: $$!\n"), next; \ my $$p = sysseek (F, -2, 2); \ my $$c = "seek failure probably means file has < 2 bytes; ignore"; \ my $$last_two_bytes; \ defined $$p and $$p = sysread F, $$last_two_bytes, 2; \ close F; \ $$c = "ignore read failure"; \ $$p && ($$last_two_bytes eq "\n\n" \ || substr ($$last_two_bytes,1) ne "\n") \ and (print $$f), $$fail=1; \ } \ END { exit defined $$fail } sc_prohibit_empty_lines_at_EOF: @perl -le '$(require_exactly_one_NL_at_EOF_)' $$($(VC_LIST_EXCEPT)) \ || { echo '$(ME): empty line(s) or no newline at EOF' \ 1>&2; exit 1; } || : # Make sure we don't use st_blocks. Use ST_NBLOCKS instead. # This is a bit of a kludge, since it prevents use of the string # even in comments, but for now it does the job with no false positives. sc_prohibit_stat_st_blocks: @prohibit='[.>]st_blocks' \ halt='do not use st_blocks; use ST_NBLOCKS' \ $(_sc_search_regexp) # Make sure we don't define any S_IS* macros in src/*.c files. # They're already defined via gnulib's sys/stat.h replacement. sc_prohibit_S_IS_definition: @prohibit='^ *# *define *S_IS' \ halt='do not define S_IS* macros; include ' \ $(_sc_search_regexp) # Perl block to convert a match to FILE_NAME:LINENO:TEST, # that is shared by two definitions below. perl_filename_lineno_text_ = \ -e ' {' \ -e ' $$n = ($$` =~ tr/\n/\n/ + 1);' \ -e ' ($$v = $$&) =~ s/\n/\\n/g;' \ -e ' print "$$ARGV:$$n:$$v\n";' \ -e ' }' prohibit_doubled_word_RE_ ?= \ /\b(then?|[iao]n|i[fst]|but|f?or|at|and|[dt]o)\s+\1\b/gims prohibit_doubled_word_ = \ -e 'while ($(prohibit_doubled_word_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_doubled_word_match_RE_ ?= ^$$ sc_prohibit_doubled_word: @perl -n -0777 $(prohibit_doubled_word_) $$($(VC_LIST_EXCEPT)) \ | grep -vE '$(ignore_doubled_word_match_RE_)' \ | grep . && { echo '$(ME): doubled words' 1>&2; exit 1; } || : # A regular expression matching undesirable combinations of words like # "can not"; this matches them even when the two words appear on different # lines, but not when there is an intervening delimiter like "#" or "*". # Similarly undesirable, "See @xref{...}", since an @xref should start # a sentence. Explicitly prohibit any prefix of "see" or "also". # Also prohibit a prefix matching "\w+ +". # @pxref gets the same see/also treatment and should be parenthesized; # presume it must *not* start a sentence. bad_xref_re_ ?= (?:[\w,:;] +|(?:see|also)\s+)\@xref\{ bad_pxref_re_ ?= (?:[.!?]|(?:see|also))\s+\@pxref\{ prohibit_undesirable_word_seq_RE_ ?= \ /(?:\bcan\s+not\b|$(bad_xref_re_)|$(bad_pxref_re_))/gims prohibit_undesirable_word_seq_ = \ -e 'while ($(prohibit_undesirable_word_seq_RE_))' \ $(perl_filename_lineno_text_) # Define this to a regular expression that matches # any filename:dd:match lines you want to ignore. # The default is to ignore no matches. ignore_undesirable_word_sequence_RE_ ?= ^$$ sc_prohibit_undesirable_word_seq: @perl -n -0777 $(prohibit_undesirable_word_seq_) \ $$($(VC_LIST_EXCEPT)) \ | grep -vE '$(ignore_undesirable_word_sequence_RE_)' | grep . \ && { echo '$(ME): undesirable word sequence' >&2; exit 1; } || : _ptm1 = use "test C1 && test C2", not "test C1 -''a C2" _ptm2 = use "test C1 || test C2", not "test C1 -''o C2" # Using test's -a and -o operators is not portable. # We prefer test over [, since the latter is spelled [[ in configure.ac. sc_prohibit_test_minus_ao: @prohibit='(\ /dev/null \ || { fail=1; echo 1>&2 "$(ME): $$p uses proper_name_utf8"; }; \ done; \ test $$fail = 1 && \ { echo 1>&2 '$(ME): the above do not link with any ICONV library'; \ exit 1; } || :; \ fi # Warn about "c0nst struct Foo const foo[]", # but not about "char const *const foo" or "#define const const". sc_redundant_const: @prohibit='\bconst\b[[:space:][:alnum:]]{2,}\bconst\b' \ halt='redundant "const" in declarations' \ $(_sc_search_regexp) sc_const_long_option: @prohibit='^ *static.*struct option ' \ exclude='const struct option|struct option const' \ halt='add "const" to the above declarations' \ $(_sc_search_regexp) NEWS_hash = \ $$(sed -n '/^\*.* $(PREV_VERSION_REGEXP) ([0-9-]*)/,$$p' \ $(srcdir)/NEWS \ | perl -0777 -pe \ 's/^Copyright.+?Free\sSoftware\sFoundation,\sInc\.\n//ms' \ | md5sum - \ | sed 's/ .*//') # Ensure that we don't accidentally insert an entry into an old NEWS block. sc_immutable_NEWS: @if test -f $(srcdir)/NEWS; then \ test "$(NEWS_hash)" = '$(old_NEWS_hash)' && : || \ { echo '$(ME): you have modified old NEWS' 1>&2; exit 1; }; \ fi # Update the hash stored above. Do this after each release and # for any corrections to old entries. update-NEWS-hash: NEWS perl -pi -e 's/^(old_NEWS_hash[ \t]+:?=[ \t]+).*/$${1}'"$(NEWS_hash)/" \ $(srcdir)/cfg.mk # Ensure that we use only the standard $(VAR) notation, # not @...@ in Makefile.am, now that we can rely on automake # to emit a definition for each substituted variable. # However, there is still one case in which @VAR@ use is not just # legitimate, but actually required: when augmenting an automake-defined # variable with a prefix. For example, gettext uses this: # MAKEINFO = env LANG= LC_MESSAGES= LC_ALL= LANGUAGE= @MAKEINFO@ # otherwise, makeinfo would put German or French (current locale) # navigation hints in the otherwise-English documentation. # # Allow the package to add exceptions via a hook in cfg.mk; # for example, @PRAGMA_SYSTEM_HEADER@ can be permitted by # setting this to ' && !/PRAGMA_SYSTEM_HEADER/'. _makefile_at_at_check_exceptions ?= sc_makefile_at_at_check: @perl -ne '/\@\w+\@/' \ -e ' && !/(\w+)\s+=.*\@\1\@$$/' \ -e ''$(_makefile_at_at_check_exceptions) \ -e 'and (print "$$ARGV:$$.: $$_"), $$m=1; END {exit !$$m}' \ $$($(VC_LIST_EXCEPT) | grep -E '(^|/)(Makefile\.am|[^/]+\.mk)$$') \ && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || : news-check: NEWS $(AM_V_GEN)if sed -n $(news-check-lines-spec)p $< \ | grep -E $(news-check-regexp) >/dev/null; then \ :; \ else \ echo 'NEWS: $$(news-check-regexp) failed to match' 1>&2; \ exit 1; \ fi sc_makefile_TAB_only_indentation: @prohibit='^ [ ]{8}' \ in_vc_files='akefile|\.mk$$' \ halt='found TAB-8-space indentation' \ $(_sc_search_regexp) sc_m4_quote_check: @prohibit='(AC_DEFINE(_UNQUOTED)?|AC_DEFUN)\([^[]' \ in_vc_files='(^configure\.ac|\.m4)$$' \ halt='quote the first arg to AC_DEF*' \ $(_sc_search_regexp) fix_po_file_diag = \ 'you have changed the set of files with translatable diagnostics;\n\ apply the above patch\n' # Verify that all source files using _() (more specifically, files that # match $(_gl_translatable_string_re)) are listed in po/POTFILES.in. po_file ?= $(srcdir)/po/POTFILES.in generated_files ?= $(srcdir)/lib/*.[ch] _gl_translatable_string_re ?= \b(N?_|gettext *)\([^)"]*("|$$) sc_po_check: @if test -f $(po_file); then \ grep -E -v '^(#|$$)' $(po_file) \ | grep -v '^src/false\.c$$' | sort > $@-1; \ files=; \ for file in $$($(VC_LIST_EXCEPT)) $(generated_files); do \ test -r $$file || continue; \ case $$file in \ *.m4|*.mk) continue ;; \ *.?|*.??) ;; \ *) continue;; \ esac; \ case $$file in \ *.[ch]) \ base=`expr " $$file" : ' \(.*\)\..'`; \ { test -f $$base.l || test -f $$base.y; } && continue;; \ esac; \ files="$$files $$file"; \ done; \ grep -E -l '$(_gl_translatable_string_re)' $$files \ | sed 's|^$(_dot_escaped_srcdir)/||' | sort -u > $@-2; \ diff -u -L $(po_file) -L $(po_file) $@-1 $@-2 \ || { printf '$(ME): '$(fix_po_file_diag) 1>&2; exit 1; }; \ rm -f $@-1 $@-2; \ fi # Sometimes it is useful to change the PATH environment variable # in Makefiles. When doing so, it's better not to use the Unix-centric # path separator of ':', but rather the automake-provided '$(PATH_SEPARATOR)'. msg = 'Do not use ":" above; use $$(PATH_SEPARATOR) instead' sc_makefile_path_separator_check: @prohibit='PATH[=].*:' \ in_vc_files='akefile|\.mk$$' \ halt=$(msg) \ $(_sc_search_regexp) # Check that 'make alpha' will not fail at the end of the process, # i.e., when pkg-M.N.tar.xz already exists (either in "." or in ../release) # and is read-only. writable-files: $(AM_V_GEN)if test -d $(release_archive_dir); then \ for file in $(DIST_ARCHIVES); do \ for p in ./ $(release_archive_dir)/; do \ test -e $$p$$file || continue; \ test -w $$p$$file \ || { echo ERROR: $$p$$file is not writable; fail=1; }; \ done; \ done; \ test "$$fail" && exit 1 || : ; \ else :; \ fi v_etc_file = $(gnulib_dir)/lib/version-etc.c sample-test = tests/sample-test texi = doc/$(PACKAGE).texi # Make sure that the copyright date in $(v_etc_file) is up to date. # Do the same for the $(sample-test) and the main doc/.texi file. sc_copyright_check: @require='enum { COPYRIGHT_YEAR = '$$(date +%Y)' };' \ in_files=$(v_etc_file) \ halt='out of date copyright in $(v_etc_file); update it' \ $(_sc_search_regexp) @require='# Copyright \(C\) '$$(date +%Y)' Free' \ in_vc_files=$(sample-test) \ halt='out of date copyright in $(sample-test); update it' \ $(_sc_search_regexp) @require='Copyright @copyright\{\} .*'$$(date +%Y)' Free' \ in_vc_files=$(texi) \ halt='out of date copyright in $(texi); update it' \ $(_sc_search_regexp) # If tests/help-version exists and seems to be new enough, assume that its # use of init.sh and path_prepend_ is correct, and ensure that every other # use of init.sh is identical. # This is useful because help-version cross-checks prog --version # with $(VERSION), which verifies that its path_prepend_ invocation # sets PATH correctly. This is an inexpensive way to ensure that # the other init.sh-using tests also get it right. _hv_file ?= $(srcdir)/tests/help-version _hv_regex_weak ?= ^ *\. .*/init\.sh" # Fix syntax-highlighters " _hv_regex_strong ?= ^ *\. "\$${srcdir=\.}/init\.sh" sc_cross_check_PATH_usage_in_tests: @if test -f $(_hv_file); then \ grep -l 'VERSION mismatch' $(_hv_file) >/dev/null \ || { echo "$@: skipped: no such file: $(_hv_file)" 1>&2; \ exit 0; }; \ grep -lE '$(_hv_regex_strong)' $(_hv_file) >/dev/null \ || { echo "$@: $(_hv_file) lacks conforming use of init.sh" 1>&2; \ exit 1; }; \ good=$$(grep -E '$(_hv_regex_strong)' $(_hv_file)); \ grep -LFx "$$good" \ $$(grep -lE '$(_hv_regex_weak)' $$($(VC_LIST_EXCEPT))) \ | grep . && \ { echo "$(ME): the above files use path_prepend_ inconsistently" \ 1>&2; exit 1; } || :; \ fi # BRE regex of file contents to identify a test script. _test_script_regex ?= \ # In tests, use "compare expected actual", not the reverse. sc_prohibit_reversed_compare_failure: @prohibit='\ vc-diffs || : $(AM_V_at)if test -s vc-diffs; then \ cat vc-diffs; \ echo "Some files are locally modified:" 1>&2; \ exit 1; \ else \ rm vc-diffs; \ fi rel-files = $(DIST_ARCHIVES) gnulib_dir ?= $(srcdir)/gnulib gnulib-version = $$(cd $(gnulib_dir) && git describe) bootstrap-tools ?= autoconf,automake,gnulib # If it's not already specified, derive the GPG key ID from # the signed tag we've just applied to mark this release. gpg_key_ID ?= \ $$(cd $(srcdir) \ && git cat-file tag v$(VERSION) \ | gpgv --status-fd 1 --keyring /dev/null - - 2>/dev/null \ | awk '/^\[GNUPG:\] ERRSIG / {print $$3; exit}') translation_project_ ?= coordinator@translationproject.org # Make info-gnu the default only for a stable release. announcement_Cc_stable = $(translation_project_), $(PACKAGE_BUGREPORT) announcement_mail_headers_stable = \ To: info-gnu@gnu.org \ Cc: $(announcement_Cc_) \ Mail-Followup-To: $(PACKAGE_BUGREPORT) announcement_Cc_alpha = $(translation_project_) announcement_mail_headers_alpha = \ To: $(PACKAGE_BUGREPORT) \ Cc: $(announcement_Cc_) announcement_mail_Cc_beta = $(announcement_mail_Cc_alpha) announcement_mail_headers_beta = $(announcement_mail_headers_alpha) announcement_mail_Cc_ ?= $(announcement_mail_Cc_$(release-type)) announcement_mail_headers_ ?= $(announcement_mail_headers_$(release-type)) announcement: NEWS ChangeLog $(rel-files) # Not $(AM_V_GEN) since the output of this command serves as # announcement message: it would start with " GEN announcement". $(AM_V_at)$(srcdir)/$(_build-aux)/announce-gen \ --mail-headers='$(announcement_mail_headers_)' \ --release-type=$(release-type) \ --package=$(PACKAGE) \ --prev=$(PREV_VERSION) \ --curr=$(VERSION) \ --gpg-key-id=$(gpg_key_ID) \ --srcdir=$(srcdir) \ --news=$(srcdir)/NEWS \ --bootstrap-tools=$(bootstrap-tools) \ $$(case ,$(bootstrap-tools), in (*,gnulib,*) \ echo --gnulib-version=$(gnulib-version);; esac) \ --no-print-checksums \ $(addprefix --url-dir=, $(url_dir_list)) .PHONY: release-commit release-commit: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/do-release-commit-and-tag \ -C $(abs_builddir) $(RELEASE) ## ---------------- ## ## Updating files. ## ## ---------------- ## ftp-gnu = ftp://ftp.gnu.org/gnu www-gnu = http://www.gnu.org upload_dest_dir_ ?= $(PACKAGE) upload_command = \ $(srcdir)/$(_build-aux)/gnupload $(GNUPLOADFLAGS) \ --to $(gnu_rel_host):$(upload_dest_dir_) \ $(rel-files) emit_upload_commands: @echo ===================================== @echo ===================================== @echo '$(upload_command)' @echo '# send the ~/announce-$(my_distdir) e-mail' @echo ===================================== @echo ===================================== .PHONY: upload upload: $(AM_V_GEN)$(upload_command) define emit-commit-log printf '%s\n' 'maint: post-release administrivia' '' \ '* NEWS: Add header line for next release.' \ '* .prev-version: Record previous version.' \ '* cfg.mk (old_NEWS_hash): Auto-update.' endef .PHONY: no-submodule-changes no-submodule-changes: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ diff=$$(cd $(srcdir) && git submodule -q foreach \ git diff-index --name-only HEAD) \ || exit 1; \ case $$diff in '') ;; \ *) echo '$(ME): submodule files are locally modified:'; \ echo "$$diff"; exit 1;; esac; \ else \ : ; \ fi submodule-checks ?= no-submodule-changes public-submodule-commit # Ensure that each sub-module commit we're using is public. # Without this, it is too easy to tag and release code that # cannot be built from a fresh clone. .PHONY: public-submodule-commit public-submodule-commit: $(AM_V_GEN)if test -d $(srcdir)/.git \ && git --version >/dev/null 2>&1; then \ cd $(srcdir) && \ git submodule --quiet foreach \ test '"$$(git rev-parse "$$sha1")"' \ = '"$$(git merge-base origin "$$sha1")"' \ || { echo '$(ME): found non-public submodule commit' >&2; \ exit 1; }; \ else \ : ; \ fi # This rule has a high enough utility/cost ratio that it should be a # dependent of "check" by default. However, some of us do occasionally # commit a temporary change that deliberately points to a non-public # submodule commit, and want to be able to use rules like "make check". # In that case, run e.g., "make check gl_public_submodule_commit=" # to disable this test. gl_public_submodule_commit ?= public-submodule-commit check: $(gl_public_submodule_commit) .PHONY: alpha beta stable release ALL_RECURSIVE_TARGETS += alpha beta stable alpha beta stable: $(local-check) writable-files $(submodule-checks) $(AM_V_GEN)test $@ = stable \ && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \ || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\ || : $(AM_V_at)$(MAKE) vc-diff-check $(AM_V_at)$(MAKE) news-check $(AM_V_at)$(MAKE) distcheck $(AM_V_at)$(MAKE) dist $(AM_V_at)$(MAKE) $(release-prep-hook) RELEASE_TYPE=$@ $(AM_V_at)$(MAKE) -s emit_upload_commands RELEASE_TYPE=$@ release: $(AM_V_GEN)$(MAKE) $(release-type) # Override this in cfg.mk if you follow different procedures. release-prep-hook ?= release-prep gl_noteworthy_news_ = * Noteworthy changes in release ?.? (????-??-??) [?] .PHONY: release-prep release-prep: $(AM_V_GEN)$(MAKE) --no-print-directory -s announcement \ > ~/announce-$(my_distdir) $(AM_V_at)if test -d $(release_archive_dir); then \ ln $(rel-files) $(release_archive_dir); \ chmod a-w $(rel-files); \ fi $(AM_V_at)echo $(VERSION) > $(prev_version_file) $(AM_V_at)$(MAKE) update-NEWS-hash $(AM_V_at)perl -pi \ -e '$$. == 3 and print "$(gl_noteworthy_news_)\n\n\n"' \ $(srcdir)/NEWS $(AM_V_at)msg=$$($(emit-commit-log)) || exit 1; \ cd $(srcdir) && $(VC) commit -m "$$msg" -a # Override this with e.g., -s $(srcdir)/some_other_name.texi # if the default $(PACKAGE)-derived name doesn't apply. gendocs_options_ ?= .PHONY: web-manual web-manual: $(AM_V_GEN)test -z "$(manual_title)" \ && { echo define manual_title in cfg.mk 1>&2; exit 1; } || : $(AM_V_at)cd '$(srcdir)/doc'; \ $(SHELL) ../$(_build-aux)/gendocs.sh $(gendocs_options_) \ -o '$(abs_builddir)/doc/manual' \ --email $(PACKAGE_BUGREPORT) $(PACKAGE) \ "$(PACKAGE_NAME) - $(manual_title)" $(AM_V_at)echo " *** Upload the doc/manual directory to web-cvs." .PHONY: web-manual-update web-manual-update: $(AM_V_GEN)cd $(srcdir) \ && $(_build-aux)/gnu-web-doc-update -C $(abs_builddir) # Code Coverage init-coverage: $(MAKE) $(AM_MAKEFLAGS) clean lcov --directory . --zerocounters COVERAGE_CCOPTS ?= "-g --coverage" COVERAGE_OUT ?= doc/coverage build-coverage: $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) $(MAKE) $(AM_MAKEFLAGS) CFLAGS=$(COVERAGE_CCOPTS) CXXFLAGS=$(COVERAGE_CCOPTS) check mkdir -p $(COVERAGE_OUT) lcov --directory . --output-file $(COVERAGE_OUT)/$(PACKAGE).info \ --capture gen-coverage: genhtml --output-directory $(COVERAGE_OUT) \ $(COVERAGE_OUT)/$(PACKAGE).info \ --highlight --frames --legend \ --title "$(PACKAGE_NAME)" coverage: init-coverage build-coverage gen-coverage # Some projects carry local adjustments for gnulib modules via patches in # a gnulib patch directory whose default name is gl/ (defined in bootstrap # via local_gl_dir=gl). Those patches become stale as the originals evolve # in gnulib. Use this rule to refresh any stale patches. It applies each # patch to the original in $(gnulib_dir) and uses the temporary result to # generate a fuzz-free .diff file. If you customize the name of your local # gnulib patch directory via bootstrap.conf, this rule detects that name. # Run this from a non-VPATH (i.e., srcdir) build directory. .PHONY: refresh-gnulib-patches refresh-gnulib-patches: gl=gl; \ if test -f bootstrap.conf; then \ t=$$(perl -lne '/^\s*local_gl_dir=(\S+)/ and $$d=$$1;' \ -e 'END{defined $$d and print $$d}' bootstrap.conf); \ test -n "$$t" && gl=$$t; \ fi; \ for diff in $$(cd $$gl; git ls-files | grep '\.diff$$'); do \ b=$$(printf %s "$$diff"|sed 's/\.diff$$//'); \ VERSION_CONTROL=none \ patch "$(gnulib_dir)/$$b" "$$gl/$$diff" || exit 1; \ ( cd $(gnulib_dir) || exit 1; \ git diff "$$b" > "../$$gl/$$diff"; \ git checkout $$b ) || exit 1; \ done # Update gettext files. PACKAGE ?= $(shell basename $(PWD)) PO_DOMAIN ?= $(PACKAGE) POURL = http://translationproject.org/latest/$(PO_DOMAIN)/ PODIR ?= po refresh-po: rm -f $(PODIR)/*.po && \ echo "$(ME): getting translations into po (please ignore the robots.txt ERROR 404)..." && \ wget --no-verbose --directory-prefix $(PODIR) --no-directories --recursive --level 1 --accept .po --accept .po.1 $(POURL) && \ echo 'en@boldquot' > $(PODIR)/LINGUAS && \ echo 'en@quot' >> $(PODIR)/LINGUAS && \ ls $(PODIR)/*.po | sed 's/\.po//;s,$(PODIR)/,,' | sort >> $(PODIR)/LINGUAS # Running indent once is not idempotent, but running it twice is. INDENT_SOURCES ?= $(C_SOURCES) .PHONY: indent indent: indent $(INDENT_SOURCES) indent $(INDENT_SOURCES) # If you want to set UPDATE_COPYRIGHT_* environment variables, # put the assignments in this variable. update-copyright-env ?= # Run this rule once per year (usually early in January) # to update all FSF copyright year lists in your project. # If you have an additional project-specific rule, # add it in cfg.mk along with a line 'update-copyright: prereq'. # By default, exclude all variants of COPYING; you can also # add exemptions (such as ChangeLog..* for rotated change logs) # in the file .x-update-copyright. .PHONY: update-copyright update-copyright: $(AM_V_GEN)grep -l -w Copyright \ $$(export VC_LIST_EXCEPT_DEFAULT=COPYING && $(VC_LIST_EXCEPT)) \ | $(update-copyright-env) xargs $(srcdir)/$(_build-aux)/$@ # This tight_scope test is skipped with a warning if $(_gl_TS_headers) is not # overridden and $(_gl_TS_dir)/Makefile.am does not mention noinst_HEADERS. # NOTE: to override any _gl_TS_* default value, you must # define the variable(s) using "export" in cfg.mk. _gl_TS_dir ?= src ALL_RECURSIVE_TARGETS += sc_tight_scope sc_tight_scope: tight-scope.mk @fail=0; \ if ! grep '^ *export _gl_TS_headers *=' $(srcdir)/cfg.mk \ > /dev/null \ && ! grep -w noinst_HEADERS $(srcdir)/$(_gl_TS_dir)/Makefile.am \ > /dev/null 2>&1; then \ echo '$(ME): skipping $@'; \ else \ $(MAKE) -s -C $(_gl_TS_dir) \ -f Makefile \ -f $(abs_top_srcdir)/cfg.mk \ -f $(abs_top_builddir)/$< \ _gl_tight_scope \ || fail=1; \ fi; \ rm -f $<; \ exit $$fail tight-scope.mk: $(ME) @rm -f $@ $@-t @perl -ne '/^# TS-start/.../^# TS-end/ and print' $(srcdir)/$(ME) > $@-t @chmod a=r $@-t && mv $@-t $@ ifeq (a,b) # TS-start # Most functions should have static scope. # Any that don't must be marked with 'extern', but 'main' # and 'usage' are exceptions: they're always extern, but # do not need to be marked. Symbols matching '__.*' are # reserved by the compiler, so are automatically excluded below. _gl_TS_unmarked_extern_functions ?= main usage _gl_TS_function_match ?= /^(?:$(_gl_TS_extern)) +.*?(\S+) *\(/ # If your project uses a macro like "XTERN", then put # the following in cfg.mk to override this default: # export _gl_TS_extern = extern|XTERN _gl_TS_extern ?= extern # The second nm|grep checks for file-scope variables with 'extern' scope. # Without gnulib's progname module, you might put program_name here. # Symbols matching '__.*' are reserved by the compiler, # so are automatically excluded below. _gl_TS_unmarked_extern_vars ?= # NOTE: the _match variables are perl expressions -- not mere regular # expressions -- so that you can extend them to match other patterns # and easily extract matched variable names. # For example, if your project declares some global variables via # a macro like this: GLOBAL(type, var_name, initializer), then you # can override this definition to automatically extract those names: # export _gl_TS_var_match = \ # /^(?:$(_gl_TS_extern)) .*?\**(\w+)(\[.*?\])?;/ || /\bGLOBAL\(.*?,\s*(.*?),/ _gl_TS_var_match ?= /^(?:$(_gl_TS_extern)) .*?(\w+)(\[.*?\])?;/ # The names of object files in (or relative to) $(_gl_TS_dir). _gl_TS_obj_files ?= *.$(OBJEXT) # Files in which to search for the one-line style extern declarations. # $(_gl_TS_dir)-relative. _gl_TS_headers ?= $(noinst_HEADERS) _gl_TS_other_headers ?= *.h .PHONY: _gl_tight_scope _gl_tight_scope: $(bin_PROGRAMS) t=exceptions-$$$$; \ trap 's=$$?; rm -f $$t; exit $$s' 0; \ for sig in 1 2 3 13 15; do \ eval "trap 'v=`expr $$sig + 128`; (exit $$v); exit $$v' $$sig"; \ done; \ src=`for f in $(SOURCES); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ hdr=`for f in $(_gl_TS_headers); do \ test -f $$f && d= || d=$(srcdir)/; echo $$d$$f; done`; \ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_functions); \ grep -h -A1 '^extern .*[^;]$$' $$src \ | grep -vE '^(extern |--)' | sed 's/ .*//'; \ perl -lne \ '$(_gl_TS_function_match) and print "^$$1\$$"' $$hdr; \ ) | sort -u > $$t; \ nm -e $(_gl_TS_obj_files) | sed -n 's/.* T //p'|grep -Ev -f $$t \ && { echo the above functions should have static scope >&2; \ exit 1; } || : ; \ ( printf '^%s$$\n' '__.*' $(_gl_TS_unmarked_extern_vars); \ perl -lne '$(_gl_TS_var_match) and print "^$$1\$$"' \ $$hdr $(_gl_TS_other_headers) \ ) | sort -u > $$t; \ nm -e $(_gl_TS_obj_files) | sed -n 's/.* [BCDGRS] //p' \ | sort -u | grep -Ev -f $$t \ && { echo the above variables should have static scope >&2; \ exit 1; } || : # TS-end endif libidn-1.28/libc/0000755000000000000000000000000012167253747010603 500000000000000libidn-1.28/libc/README0000644000000000000000000000236512153706572011403 00000000000000Libidn libc/README -- Instructions for building as a GNU Libc add-on. Copyright (C) 2003-2013 Simon Josefsson See the end for copying conditions. GNU Libidn is now part of GNU Libc, so the stand-alone patch and instructions that were distributed here before has been removed. See getaddrinfo-idn.txt for the write-up of the API that is used in Libc. Simply build Libc as you would normally, but specify "libidn" as an add-on, as in --enable-add-ons=libidn to configure. Once installed, you may build and run the sample still distributed in this directory, perhaps as follows: $ gcc -o example example.c -L/usr/local/glibc/lib -Wl,-rpath,/usr/local/glibc/lib -nostdinc -I/usr/local/glibc/include -I/usr/include -I/usr/lib/gcc-lib/i386-linux/2.95.4/include $ CHARSET=iso-8859-1 ./example locale charset `iso-8859-1' gettaddrinfo(rksmrgs.josefsson.org): address `217.13.230.178' canonical name `178.230.13.217.in-addr.dgcsystems.net' $ Internally the domain name xn--rksmrgs-5wao1o.josefsson.org is looked up in DNS. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/libc/getaddrinfo-idn.txt0000644000000000000000000001162212153706572014316 00000000000000Libidn getaddrinfo-idn.txt -- Proposal for IDN support in POSIX getaddrinfo. Copyright (C) 2003-2013 Simon Josefsson See the end for copying conditions. Background ---------- Libidn is a package for internationalized string handling based on the Stringprep, Punycode and Internationalized Domain Names in Applications (IDNA) specifications. It can be used by applications directly by linking to it, as is done by, e.g., Gnus, KDE, and Mutt. Having each and every application link with and perform its own IDN handling is not a good idea. It bloats the code and makes things unnecessarily complex. Only few applications, such as web browsers and mail clients, will need to do this in the future, to provide good user interfaces for internationalization. See http://josefsson.org/libidn/ for more information. Alternative Approaches ---------------------- There are implementation that modify gethostbyname() to accept UTF-8 strings and perform the IDNA ToASCII operation within gethostbyname(). There are even implementations that assume gethostbyname (on the client host) perform no validation of the string and will send UTF-8 strings out to the DNS server, and perform the IDN-conversion on the DNS server. Some doubts can be raised whether this is an approach that is likely to be standardized. It also lack in functionality: it only provide black-box ToASCII functionality. The application cannot extract the output from the ToASCII operation. More important, there is no way to perform a ToUnicode operation that applications may want to use for display purposes. Furthermore, while the first can support locale specific character sets (e.g., ISO-8859-1), the second approach is bound to either guess the character set, or always use UTF-8. See also the thread rooted in posted to libc-alpha@sources.redhat.com on 08 Jan 2003. What I propose -------------- The getaddrinfo() API should have two new flags, AI_IDN and AI_CANONIDN. Roughly they correspond to IDNA ToASCII and IDNA ToUnicode, but there are several details. Note that strings are still 'char*', i.e. it does not use the "wide" character type, and that the encoding of non-ASCII strings are the current locale's character set (i.e., nl_langinfo(CODESET)). An application that uses AI_IDN signal to the getaddrinfo() implementation that the input host name may be non-ASCII and that the appropriate IDNA ToASCII steps should be carried out on the input, and the output from the ToASCII operation (if any) should be used in the lookup using the current resolver processing. An application that uses AI_CANONIDN signal to the getaddrinfo() implementation that the input host name should be put through the IDNA ToUnicode steps, and the output of that placed in the 'ai_canonname' field of the resulting structure. Normal resolver processing applies to the input string, of course. Consequently, an application that uses AI_IDN|AI_CANONIDN signal to the getaddrinfo() implementation that the input host name may be non-ASCII and should be put through the IDNA ToASCII steps before run through the resolver, and that the input string should also be run through the IDNA ToUnicode steps and the output of that placed in the 'ai_canonname' field. The semantics of AI_CANONNAME|AI_CANONIDN is that instead of running the ToUnicode IDNA steps on the input string, the canonical host name as returned by the resolver for the input string should be used in the ToUnicode IDNA step. Details ------- Four new flags has been proposed; AI_IDN_ALLOW_UNASSIGNED, AI_IDN_USE_STD3_ASCII_RULES for getaddrinfo, and NI_IDN_ALLOW_UNASSIGNED, NI_IDN_USE_STD3_ASCII_RULES for getnameinfo. The implementation is simple, if specified those flag will set the appropriate flag in the call to the IDNA functions. See the RFC for the meaning of those flags. Status ------ The AI_IDN flag has been implemented and shipped as a proof-of-concept patch for GNU Libc with GNU Libidn since January 2003. Binary libc packages with the patch exists for (at least) two GNU/Linux distributions. The AI_CANONIDN flag is not yet implemented. As of March 2004, Libidn has been integrated as an add-on in the GNU Libc CVS repository. The AI_CANONIDN flag has been implemented. The AllowUnassigned and UseSTD3ASCIIRules flags were added. Future ------ Allow non-ASCII in gethostname (and similar functions), if administrator has supplied, e.g., 'option idn' in /etc/resolv.conf? Feedback -------- This document is a work-in-progress and the details may change. Contact me at simon@josefsson.org to discuss changes. ---------------------------------------------------------------------- Permission is granted to anyone to make or distribute verbatim copies of this document, in any medium, provided that the copyright notice and permission notice are preserved, and that the distributor grants the recipient permission for further redistribution as permitted by this notice. Modified versions may not be made. libidn-1.28/libc/example.c0000644000000000000000000000443012153706572012315 00000000000000/* example.c --- Example code showing how to use IDN enabled getaddrinfo(). * Copyright (C) 2003-2013 Simon Josefsson * * This file is part of GNU Libidn. * * 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 3 of the License, or * (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #define _GNU_SOURCE 1 #include #include #include #include #include #include #include /* setlocale() */ /* * Compiling against IDN enabled Libc: * * $ gcc -o example example.c -L/usr/local/glibc/lib -Wl,-rpath,/usr/local/glibc/lib -nostdinc -I/usr/local/glibc/include -I/usr/include -I/usr/lib/gcc-lib/i486-linux/3.3.3/include * $ CHARSET=iso-8859-1 ./example * locale charset `iso-8859-1' * gettaddrinfo(rksmrgs.josefsson.org): * address `217.13.230.178' * canonical name `178.230.13.217.in-addr.dgcsystems.net' * $ * * Internally the name iesg--rksmrgsa-0zap8p.josefsson.org is looked * up in DNS. */ int main(int argc, char *argv[]) { char *in = argc > 1 ? argv[1] : "rksmrgs.josefsson.org"; struct addrinfo hints; struct addrinfo *res = NULL; int rc; setlocale (LC_ALL, ""); //printf("locale charset `%s'\n", stringprep_locale_charset()); memset(&hints, 0, sizeof(hints)); hints.ai_flags = AI_CANONNAME|AI_IDN; printf("gettaddrinfo(%s):\n", in); rc = getaddrinfo(in, NULL, &hints, &res); if (rc) printf("gai err %d: %s\n", rc, gai_strerror(rc)); else if (res) printf("address `%s'\ncanonical name `%s'\n", res->ai_addr ? /* FIXME: Use inet_ntop, so it works for IPv6 too. */ inet_ntoa(((struct sockaddr_in*)res->ai_addr)->sin_addr) : "ERROR", res->ai_canonname ? res->ai_canonname : "ERROR"); else printf("Bad magic\n"); return 0; } libidn-1.28/.clcopying0000644000000000000000000000030512153706572011572 00000000000000 ----- Copyright (C) 2002-2013 Simon Josefsson Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. libidn-1.28/java/0000755000000000000000000000000012167253754010611 500000000000000libidn-1.28/java/src/0000755000000000000000000000000012167253755011401 500000000000000libidn-1.28/java/src/util/0000755000000000000000000000000012167253755012356 500000000000000libidn-1.28/java/src/util/java/0000755000000000000000000000000012167253755013277 500000000000000libidn-1.28/java/src/util/java/TestIDNA.java0000644000000000000000000001037712167220574015436 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import gnu.inet.encoding.IDNA; import gnu.inet.encoding.IDNAException; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.StringTokenizer; public class TestIDNA { final static int STATE_SCAN = 0; final static int STATE_INPUT = 1; public static void usage() { System.err.println("Usage: "+TestIDNA.class.toString()+" [-a|-u string] [-t]"); System.err.println(" -a string: apply toASCII(string)"); System.err.println(" -u string: apply toUnicode(string)"); System.err.println(" -t: automatic test using draft-josefsson-idn-test-vectors.html"); System.exit(1); } public static void main(String[] args) throws Exception { String[] tests = new String[] { "domain\u3002invalid", "domain\uFF0Einvalid", "domain\uFF61invalid", }; for ( int i = 0; i < tests.length ; i++ ) { if (!IDNA.toASCII( tests[i] ).equals( "domain.invalid" )) { System.err.println("Dot-test failed"); System.exit(1); } } if (args.length == 2) { if (args[0].equals("-u")) { System.out.println("Input: "+args[1]); System.out.println("Output: "+IDNA.toUnicode(args[1])); } else if (args[0].equals("-a")) { try { System.out.println("Input: "+args[1]); System.out.println("Output: "+IDNA.toASCII(args[1])); } catch (IDNAException e) { System.out.println(e); } } else { usage(); } } else if (args.length == 1 && args[0].equals("-t")) { File f = new File("draft-josefsson-idn-test-vectors.html"); if (!f.exists()) { System.err.println("Unable to find draft-josefsson-idn-test-vectors.html."); System.err.println("Please download the latest version of this file from:"); System.err.println("http://www.gnu.org/software/libidn/"); System.exit(1); } BufferedReader r = new BufferedReader(new FileReader(f)); int state = STATE_SCAN; StringBuilder input = new StringBuilder(); String out; while (true) { String l = r.readLine(); if (null == l) { break; } switch (state) { case STATE_SCAN: if (l.startsWith("input (length ")) { state = STATE_INPUT; input = new StringBuilder(); } break; case STATE_INPUT: if (l.equals("")) { // Empty line (before "out:") } else if (l.startsWith("out: ")) { out = l.substring(5).trim(); try { String ascii = IDNA.toASCII(input.toString()); if (ascii.equals(out)) { // Ok } else { System.err.println("Error detected:"); System.err.println(" Input: "+input); System.err.println(" toASCII returned: "+ascii); System.err.println(" expected result: "+out); System.exit(1); } } catch (IDNAException e) { System.out.println(" exception thrown ("+e+")"); } state = STATE_SCAN; } else { StringTokenizer tok = new StringTokenizer(l.trim(), " "); while (tok.hasMoreTokens()) { String t = tok.nextToken(); if (t.startsWith("U+")) { char u = (char) Integer.parseInt(t.substring(2, 6), 16); input.append(u); } else { System.err.println("Unknown token: "+t); } } } break; } } System.out.println("No errors detected!"); } else { usage(); } } } libidn-1.28/java/src/util/java/GenerateNFKC.java0000644000000000000000000004025112153707514016250 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.ArrayList; import java.util.TreeMap; import java.util.TreeSet; import java.util.Iterator; public class GenerateNFKC { static String stripComment(String in) { int c = in.indexOf('#'); if (c == -1) { return in; } else { return in.substring(0, c); } } static String[] split(String in, char sep) { StringBuilder sb = new StringBuilder(in); int c = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { c++; } } String out[] = new String[c+1]; c = 0; int l = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { if (l >= i) { out[c] = ""; } else { out[c] = sb.substring(l, i); } l = i+1; c++; } } if (l < sb.length()) { out[c] = sb.substring(l); } return out; } static boolean isCompatibilityMapping(String in) { return in.length() > 0 && in.charAt(0) == '<'; } static String stripCompatibilityTag(String in) { return in.substring(in.indexOf('>')+2); } static String toJavaString(String in) { StringBuilder out = new StringBuilder(); String[] chars = split(in, ' '); for (int i = 0; i < chars.length; i++) { if (chars[i].equals("005C")) { out.append("\\\\"); } else if (chars[i].equals("0022")) { out.append("\\\""); } else { out.append("\\u"); out.append(chars[i]); } } return out.toString(); } static String decompose(String in, TreeMap mappings) { StringBuilder out = new StringBuilder(""); String[] c = split(in, ' '); for (int i = 0; i < c.length; i++) { if (mappings.containsKey(c[i])) { if (out.length() > 0) { out.append(" "); } out.append(decompose((String) mappings.get(c[i]), mappings)); } else { if (out.length() > 0) { out.append(" "); } out.append(c[i]); } } return out.toString(); } public static void main(String[] arg) throws Exception { // Check if the unicode files exist { File f1 = new File("CompositionExclusions.txt"); File f2 = new File("UnicodeData.txt"); if (!f1.exists() || !f2.exists()) { System.err.println("Unable to find UnicodeData.txt or CompositionExclusions.txt."); System.err.println("Please download the latest version of these file from:"); System.err.println("http://www.unicode.org/Public/UNIDATA/"); System.exit(1); } } // Read CompositionExclusions TreeSet exclusions = new TreeSet(); { BufferedReader r = new BufferedReader(new FileReader("CompositionExclusions.txt")); String line; while (null != (line = r.readLine())) { line = stripComment(line); line = line.trim(); if (line.length() == 0) { // Empty line } else if (line.length() == 4) { exclusions.add(line); } else { // Skip code points > 0xffff } } r.close(); } // Read UnicodeData TreeMap canonical = new TreeMap(); TreeMap compatibility = new TreeMap(); TreeMap combiningClasses = new TreeMap(); { BufferedReader r = new BufferedReader(new FileReader("UnicodeData.txt")); String line; while (null != (line = r.readLine())) { line = stripComment(line); line = line.trim(); if (line.length() == 0) { // Empty line } else { String[] f = split(line, ';'); if (f[0].length() == 4) { if (!f[5].equals("")) { if (isCompatibilityMapping(f[5])) { compatibility.put(f[0], stripCompatibilityTag(f[5])); } else { compatibility.put(f[0], f[5]); if (!exclusions.contains(f[0])) { canonical.put(f[0], f[5]); } } } if (!f[3].equals("0")) { combiningClasses.put(new Integer(Integer.parseInt(f[0], 16)), f[3]); } } else { // Skip code points > 0xffff } } } r.close(); } // Recursively apply compatibility mappings while (true) { boolean replaced = false; Iterator i = compatibility.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) compatibility.get(k); String d = decompose(v, compatibility); if (!d.equals(v)) { replaced = true; compatibility.put(k, d); } } if (!replaced) { break; } } // Eliminate duplicate mappings TreeMap compatibilityKeys = new TreeMap(); ArrayList compatibilityMappings = new ArrayList(); { Iterator i = compatibility.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) compatibility.get(k); int index = compatibilityMappings.indexOf(v); if (index == -1) { index = compatibilityMappings.size(); compatibilityMappings.add(v); } compatibilityKeys.put(k, new Integer(index)); } } // Create composition tables TreeMap firstMap = new TreeMap(); TreeMap secondMap = new TreeMap(); { Iterator i = canonical.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) canonical.get(k); String[] s = split(v, ' '); if (s.length == 2) { // If both characters have the same combining class, they // won't be combined (in the sequence AB, B is blocked from // A if both have the same combining class) String cc1 = (String) combiningClasses.get(new Integer(Integer.parseInt(s[0], 16))); String cc2 = (String) combiningClasses.get(new Integer(Integer.parseInt(s[1], 16))); if (cc1 != null || (cc1 != null && cc1.equals(cc2))) { // Ignore this composition i.remove(); continue; } if (firstMap.containsKey(s[0])) { Integer c = (Integer) firstMap.get(s[0]); firstMap.put(s[0], new Integer(c.intValue()+1)); } else { firstMap.put(s[0], new Integer(1)); } if (secondMap.containsKey(s[1])) { Integer c = (Integer) secondMap.get(s[1]); secondMap.put(s[1], new Integer(c.intValue()+1)); } else { secondMap.put(s[1], new Integer(1)); } } else if (s.length > 2) { System.err.println("? wrong canonical mapping for "+k); System.exit(1); } } } TreeMap singleFirstComposition = new TreeMap(); TreeMap singleSecondComposition = new TreeMap(); TreeMap complexComposition = new TreeMap(); int composeLookupMax = 0; { Iterator i = canonical.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String v = (String) canonical.get(k); String[] s = split(v, ' '); if (s.length == 2) { Integer first = (Integer) firstMap.get(s[0]); Integer second = (Integer) secondMap.get(s[1]); if (first.intValue() == 1) { singleFirstComposition.put(s[0], new String[] { s[1], k }); composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[0], 16)); } else if (second.intValue() == 1) { singleSecondComposition.put(s[1], new String[] { s[0], k }); composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[1], 16)); } else { if (complexComposition.containsKey(s[0])) { TreeMap m = (TreeMap) complexComposition.get(s[0]); if (m.containsKey(s[1])) { System.err.println("? ambiguous canonical mapping for "+s[0]); System.exit(1); } m.put(s[1], k); } else { TreeMap m = new TreeMap(); m.put(s[1], k); complexComposition.put(s[0], m); } composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[0], 16)); composeLookupMax = Math.max(composeLookupMax, Integer.parseInt(s[1], 16)); } } } } System.out.print("Creating CombiningClass.java..."); // Dump combining classes { PrintWriter w = new PrintWriter(new FileWriter("CombiningClass.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class CombiningClass"); w.println("{"); w.println(" public final static int[][] c = new int[][] {"); StringBuilder index = new StringBuilder(); int count = 0; for (int i = 0; i < 256; i++) { boolean empty = true; StringBuilder page = new StringBuilder(); page.append(" { /* Page "+i+" */"); for (int j = 0; j < 256; j++) { Integer c = new Integer((i << 8) + j); String cc = (String) combiningClasses.get(c); if (0 == (j & 31)) { page.append("\n "); } if (cc == null) { page.append("0, "); } else { page.append(cc+", "); empty = false; } } page.append("\n },"); index.append(" "); if (!empty) { w.println(page.toString()); index.append(count++); index.append(",\n"); } else { index.append("-1,\n"); } } w.println(" };\n"); w.println(" public final static int[] i = new int[] {"); w.print(index.toString()); w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); System.out.print("Creating DecompositionKeys.java..."); // Dump compatibility decomposition { PrintWriter w = new PrintWriter(new FileWriter("DecompositionKeys.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class DecompositionKeys"); w.println("{"); w.println(" public final static int[] k = new int[] {"); Iterator i = compatibilityKeys.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); int index = ((Integer) compatibilityKeys.get(k)).intValue(); w.println(" '\\u"+k+"', "+index+","); } w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); System.out.print("Creating DecompositionMappings.java..."); { PrintWriter w = new PrintWriter(new FileWriter("DecompositionMappings.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class DecompositionMappings"); w.println("{"); w.println(" public final static String[] m = new String[] {"); Iterator i = compatibilityMappings.iterator(); while (i.hasNext()) { String m = (String) i.next(); w.println(" \""+toJavaString(m)+"\","); } w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); System.out.print("Creating Composition.java..."); // Dump canonical composition { PrintWriter w = new PrintWriter(new FileWriter("Composition.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateNFKC.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing Unicode NFKC tables."); w.println(" */"); w.println("public class Composition"); w.println("{"); Iterator i; int index = 0; TreeMap indices = new TreeMap(); i = complexComposition.keySet().iterator(); while (i.hasNext()) { String s0 = (String) i.next(); indices.put(new Integer(Integer.parseInt(s0, 16)), new Integer(index)); index++; } int multiSecondStart = index; w.println(" public final static char[][] multiFirst = new char[][] {"); i = complexComposition.keySet().iterator(); while (i.hasNext()) { String s0 = (String) i.next(); TreeMap m = (TreeMap) complexComposition.get(s0); TreeMap line = new TreeMap(); int maxIndex = 1; Iterator i2 = m.keySet().iterator(); while (i2.hasNext()) { String s1 = (String) i2.next(); String k = (String) m.get(s1); Integer s1i = new Integer(Integer.parseInt(s1, 16)); if (!indices.containsKey(s1i)) { indices.put(s1i, new Integer(index)); index++; } line.put(indices.get(s1i), k); maxIndex = Math.max(maxIndex, ((Integer) indices.get(s1i)).intValue()); } w.print(" { "); for (int j = multiSecondStart; j <= maxIndex; j++) { if (line.containsKey(new Integer(j))) { String s = (String) line.get(new Integer(j)); w.print("'"+toJavaString(s)+"', "); } else { w.print(" 0, "); } } w.println("},"); } w.println(" };"); int singleFirstStart = index; w.println(" public final static char[][] singleFirst = new char[][] {"); i = singleFirstComposition.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String[] v = ((String[]) singleFirstComposition.get(k)); w.println(" { '"+toJavaString(v[0])+"', '"+toJavaString(v[1])+"' },"); if (indices.containsKey(new Integer(Integer.parseInt(k, 16)))) { System.out.println(k+" already indexed!"); } indices.put(new Integer(Integer.parseInt(k, 16)), new Integer(index)); index++; } w.println(" };"); int singleSecondStart = index; w.println(" public final static char[][] singleSecond = new char[][] {"); i = singleSecondComposition.keySet().iterator(); while (i.hasNext()) { String k = (String) i.next(); String[] v = ((String[]) singleSecondComposition.get(k)); w.println(" { '"+toJavaString(v[0])+"', '"+toJavaString(v[1])+"' },"); indices.put(new Integer(Integer.parseInt(k, 16)), new Integer(index)); index++; } w.println(" };"); w.println(" public final static int multiSecondStart = "+multiSecondStart+";"); w.println(" public final static int singleFirstStart = "+singleFirstStart+";"); w.println(" public final static int singleSecondStart = "+singleSecondStart+";"); StringBuilder compositionPages = new StringBuilder(); w.println(" public final static int[] composePage = new int[] {"); int pageCount = 0; for (int j = 0; j*256 < composeLookupMax+255; j++) { boolean empty = true; StringBuilder page = new StringBuilder(); for (int k = 0; k < 256; k++) { if (k % 16 == 0) { page.append("\n "); } if (indices.containsKey(new Integer(j*256+k))) { page.append(indices.get(new Integer(j*256+k))); page.append(", "); empty = false; } else { page.append("-1, "); } } if (empty) { w.println(" -1,"); } else { w.println(" "+pageCount+","); compositionPages.append(" {"); compositionPages.append(page); compositionPages.append("\n },\n"); pageCount++; } } w.println(" };"); w.println(" public final static int[][] composeData = new int[][] {"); w.print(compositionPages); w.println(" };"); w.println("}"); w.close(); } System.out.println(" Ok."); } } libidn-1.28/java/src/util/java/Makefile.am0000644000000000000000000000176212153707034015246 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . JAVAROOT = $(top_builddir)/java/src/util/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/src/main/java if JAVA dist_noinst_JAVA = \ GenerateRFC3454.java \ GenerateNFKC.java \ TestIDNA.java \ TestNFKC.java endif libidn-1.28/java/src/util/java/GenerateRFC3454.java0000644000000000000000000001711012153707514016457 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.PrintWriter; import java.util.StringTokenizer; public class GenerateRFC3454 { static class Range { int t, f; public Range(String r) { if (r.length() == 9) { f = Integer.parseInt(r.substring(0, 4), 16); t = Integer.parseInt(r.substring(5, 9), 16); } else { f = Integer.parseInt(r.substring(0, 5), 16); t = Integer.parseInt(r.substring(6, 11), 16); } } public boolean hasNext() { return (f <= t); } public String next() { StringBuilder s = new StringBuilder(Integer.toHexString(f)); while (s.length() < 4) { s.insert(0, '0'); } f++; return s.toString(); } } public static void main(String[] arg) throws Exception { File f = new File("rfc3454.txt"); if (!f.exists()) { System.err.println("Unable to find rfc3454.txt."); System.err.println("Please download this file from:"); System.err.println("http://www.ietf.org/rfc/rfc3454.txt"); System.exit(1); } System.out.print("Creating RFC3454.java..."); BufferedReader r = new BufferedReader(new FileReader(f)); PrintWriter w = new PrintWriter(new FileWriter("RFC3454.java")); w.println("/* This file is automatically generated. DO NOT EDIT!"); w.println(" Instead, edit GenerateRFC3454.java and re-run. */"); w.println(); w.println("package gnu.inet.encoding;"); w.println(); w.println("/**"); w.println(" * Auto-generated class containing StringPrep mapping tables."); w.println(" */"); w.println("public class RFC3454"); w.println("{"); int n = 0; String t = null; StringBuilder o1 = null; StringBuilder o2 = null; while (true) { String l = r.readLine(); if (null == l) { break; } l = l.trim(); if (l.equals("")) { // Ignore empty line } else if (-1 != l.indexOf("\u000c")) { // Ignore FF } else if (0 == l.indexOf("RFC")) { // Ignore page header } else if (0 == l.indexOf("Hoffman & Blanchet")) { // Ignore page footer } else if (-1 != l.indexOf("----- Start Table ")) { // Start of a table t = l.substring(l.indexOf("Table")+6, l.lastIndexOf("-----")-1); o1 = new StringBuilder(); o2 = new StringBuilder(); } else if (-1 != l.indexOf("----- End Table ")) { // End of a table if ("A.1".equals(t)) { w.println(" final static char[][] A1 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("B.1".equals(t)) { w.println(" final static char[] B1 = new char[] {\n"+o1.toString()+" };\n"); } else if ("B.2".equals(t)) { w.println(" final static char[] B2search = new char[] {\n"+o1.toString()+" };\n"); w.println(" final static String[] B2replace = new String[] {\n"+o2.toString()+" };\n"); } else if ("B.3".equals(t)) { w.println(" final static char[] B3search = new char[] {\n"+o1.toString()+" };\n"); w.println(" final static String[] B3replace = new String[] {\n"+o2.toString()+" };\n"); } else if ("C.1.1".equals(t)) { w.println(" final static char[] C11 = new char[] {\n"+o1.toString()+" };\n"); } else if ("C.1.2".equals(t)) { w.println(" final static char[] C12 = new char[] {\n"+o1.toString()+" };\n"); } else if ("C.2.1".equals(t)) { w.println(" final static char[][] C21 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.2.2".equals(t)) { w.println(" final static char[][] C22 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.3".equals(t)) { w.println(" final static char[][] C3 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.4".equals(t)) { w.println(" final static char[][] C4 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.5".equals(t)) { w.println(" final static char[][] C5 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.6".equals(t)) { w.println(" final static char[][] C6 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.7".equals(t)) { w.println(" final static char[][] C7 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("C.8".equals(t)) { w.println(" final static char[][] C8 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("D.1".equals(t)) { w.println(" final static char[][] D1 = new char[][] {\n"+o1.toString()+" };\n"); } else if ("D.2".equals(t)) { w.println(" final static char[][] D2 = new char[][] {\n"+o1.toString()+" };\n"); } t = null; } else if (null != t) { // Filter comments if (-1 != l.lastIndexOf(";")) { String c = l.substring(l.lastIndexOf(";")).trim(); try { Integer.parseInt(c, 16); } catch (NumberFormatException e) { l = l.substring(0, l.lastIndexOf(";")); } } if ("A.1".equals(t)) { if (4 == l.length()) { o1.append(" new char[] { '\\u"); o1.append(l); o1.append("' },\n"); } else if (5 == l.length()) { // Skip characters outside the range of Java unicode } else if (9 == l.length()) { o1.append(" new char[] { '\\u"); o1.append(l.substring(0, 4)); o1.append("', '\\u"); o1.append(l.substring(5, 9)); o1.append("' },\n"); } else if (11 == l.length()) { // Skip characters outside the range of Java unicode } else { System.err.println("Unknown format of A.1 line: "+l); } } else if ("B.1".equals(t)) { StringTokenizer tok = new StringTokenizer(l, " ;"); o1.append(" '\\u"+tok.nextToken()+"',\n"); } else if ("B.2".equals(t) || "B.3".equals(t)) { StringTokenizer tok = new StringTokenizer(l, "; "); String c = tok.nextToken(); if (c.length() == 4) { o1.append(" '\\u"+c+"',\n"); if (tok.hasMoreElements()) { o2.append(" \""); while (tok.hasMoreElements()) { o2.append("\\u"+tok.nextToken()); } o2.append("\",\n"); } else { o2.append(" null,\n"); } } } else if ("C.1.1".equals(t)) { o1.append(" '\\u"+l+"',\n"); } else if ("C.1.2".equals(t)) { o1.append(" '\\u"+l+"',\n"); } else if ("C.2.1".equals(t) || "C.2.2".equals(t) || "C.3".equals(t) || "C.4".equals(t) || "C.5".equals(t) || "C.6".equals(t) || "C.7".equals(t) || "C.8".equals(t) || "D.1".equals(t) || "D.2".equals(t)) { if (4 == l.length()) { o1.append(" new char[] { '\\u"+l+"' },\n"); } else if (9 == l.length()) { o1.append(" new char[] { '\\u"); o1.append(l.substring(0, 4)); o1.append("', '\\u"); o1.append(l.substring(5, 9)); o1.append("' },\n"); } } } n++; } w.println("}"); w.close(); System.out.println(" Ok."); } } libidn-1.28/java/src/util/java/TestNFKC.java0000644000000000000000000001124012153707514015431 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ import gnu.inet.encoding.NFKC; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class TestNFKC { static String stripComment(String in) { int c = in.indexOf('#'); if (c == -1) { return in; } else { return in.substring(0, c); } } static String[] split(String in, char sep) { StringBuilder sb = new StringBuilder(in); int c = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { c++; } } String out[] = new String[c+1]; c = 0; int l = 0; for (int i = 0; i < sb.length(); i++) { if (sb.charAt(i) == sep) { if (l >= i) { out[c] = ""; } else { out[c] = sb.substring(l, i); } l = i+1; c++; } } if (l < sb.length()) { out[c] = sb.substring(l); } return out; } static boolean containsHighChar(String in) { String[] s = split(in, ' '); for (int i = 0; i < s.length; i++) { if (s[i].length() != 4) { return true; } } return false; } static String evalUnicode(String in) { StringBuilder out = new StringBuilder(); String[] s = split(in, ' '); for (int i = 0; i < s.length; i++) { out.append((char) Integer.parseInt(s[i], 16)); } return out.toString(); } static String toUnicode(String in) { StringBuilder out = new StringBuilder(); for (int i = 0; i < in.length(); i++) { int c = in.charAt(i); out.append(Integer.toHexString(c)); out.append(" "); } return out.toString(); } public static void main(String[] args) throws Exception { if (args.length > 0) { System.out.println("Input: "+args[0]); System.out.println("Output: "+NFKC.normalizeNFKC(args[0])); } else { // Check if the normalization test file exists File f = new File("NormalizationTest.txt"); if (!f.exists()) { System.err.println("Unable to find NormalizationTest.txt."); System.err.println("Please download the latest version of this file from:"); System.err.println("http://www.unicode.org/Public/UNIDATA/"); System.exit(1); } BufferedReader r = new BufferedReader(new FileReader(f)); String line; while (null != (line = r.readLine())) { line = stripComment(line); line = line.trim(); if (line.length() == 0) { // Empty line } else { String[] cols = split(line, ';'); if (!containsHighChar(cols[0]) && !containsHighChar(cols[1]) && !containsHighChar(cols[2]) && !containsHighChar(cols[3]) && !containsHighChar(cols[4])) { String c1 = evalUnicode(cols[0]); String c2 = evalUnicode(cols[1]); String c3 = evalUnicode(cols[2]); String c4 = evalUnicode(cols[3]); String c5 = evalUnicode(cols[4]); String nc1 = NFKC.normalizeNFKC(c1); String nc2 = NFKC.normalizeNFKC(c2); String nc3 = NFKC.normalizeNFKC(c3); String nc4 = NFKC.normalizeNFKC(c4); String nc5 = NFKC.normalizeNFKC(c5); if (!nc1.equals(c4) || !nc2.equals(c4) || !nc3.equals(c4) || !nc4.equals(c4) || !nc5.equals(c4)) { System.out.println("Error at `"+line+"'"); System.out.println("NFKC(c1) = "+toUnicode(nc1)+", should be "+toUnicode(c4)); System.out.println("NFKC(c2) = "+toUnicode(nc2)+", should be "+toUnicode(c4)); System.out.println("NFKC(c3) = "+toUnicode(nc3)+", should be "+toUnicode(c4)); System.out.println("NFKC(c4) = "+toUnicode(nc4)+", should be "+toUnicode(c4)); System.out.println("NFKC(c5) = "+toUnicode(nc5)+", should be "+toUnicode(c4)); return; } } } } System.out.println("No errors detected!"); } } } libidn-1.28/java/src/util/java/Makefile.in0000644000000000000000000012326712167244662015274 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/util/java DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(am__dist_noinst_JAVA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_noinst_JAVA_DIST = GenerateRFC3454.java GenerateNFKC.java \ TestIDNA.java TestNFKC.java JAVAC = javac CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"} am__java_sources = $(dist_noinst_JAVA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ JAVAROOT = $(top_builddir)/java/src/util/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/src/main/java @JAVA_TRUE@dist_noinst_JAVA = \ @JAVA_TRUE@ GenerateRFC3454.java \ @JAVA_TRUE@ GenerateNFKC.java \ @JAVA_TRUE@ TestIDNA.java \ @JAVA_TRUE@ TestNFKC.java all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/util/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/util/java/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs classnoinst.stamp: $(am__java_sources) @list1='$?'; list2=; if test -n "$$list1"; then \ for p in $$list1; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ list2="$$list2 $$d$$p"; \ done; \ echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) '"$$list2"; \ $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) $$list2; \ else :; fi echo timestamp > $@ clean-noinstJAVA: -rm -f *.class classnoinst.stamp tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile classnoinst.stamp installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstJAVA mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-noinstJAVA cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/util/Makefile.am0000644000000000000000000000142512153706572014327 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = java libidn-1.28/java/src/util/Makefile.in0000644000000000000000000013554512167244662014355 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/util DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = java all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/util/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/util/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/main/0000755000000000000000000000000012167253754012324 500000000000000libidn-1.28/java/src/main/java/0000755000000000000000000000000012167253754013245 500000000000000libidn-1.28/java/src/main/java/gnu/0000755000000000000000000000000012167253755014037 500000000000000libidn-1.28/java/src/main/java/gnu/inet/0000755000000000000000000000000012167253755014776 500000000000000libidn-1.28/java/src/main/java/gnu/inet/encoding/0000755000000000000000000000000012167253755016564 500000000000000libidn-1.28/java/src/main/java/gnu/inet/encoding/IDNA.java0000644000000000000000000001631312153707514020056 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * This class offers static methods for converting internationalized * domain names to ACE and back. *
      *
    • RFC3490 IDNA *
    * Note that this implementation only supports 16-bit Unicode code * points. */ public class IDNA { public final static String ACE_PREFIX = "xn--"; /** * Converts a Unicode string to ASCII using the procedure in RFC3490 * section 4.1. Unassigned characters are not allowed and STD3 ASCII * rules are enforced. The input string may be a domain name * containing dots. * * @param input Unicode string. * @return Encoded string. */ public static String toASCII(String input) throws IDNAException { StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.append(toASCII(h.toString(), false, true)); o.append('.'); h = new StringBuilder(); } else { h.append(c); } } o.append(toASCII(h.toString(), false, true)); return o.toString(); } /** * Converts a Unicode string to ASCII using the procedure in RFC3490 * section 4.1. Unassigned characters are not allowed and STD3 ASCII * rules are enforced. * * @param input Unicode string. * @param allowUnassigned Unassigned characters, allowed or not? * @param useSTD3ASCIIRules STD3 ASCII rules, enforced or not? * @return Encoded string. */ public static String toASCII(String input, boolean allowUnassigned, boolean useSTD3ASCIIRules) throws IDNAException { // Step 1: Check if the string contains code points outside // the ASCII range 0..0x7c. boolean nonASCII = false; for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the nameprep operation. if (nonASCII) { try { input = Stringprep.nameprep(input, allowUnassigned); } catch (StringprepException e) { throw new IDNAException(e); } } // Step 3: - Verify the absence of non-LDH ASCII code points // 0..0x2c, 0x2e..0x2f, 0x3a..0x40, 0x5b..0x60, // 0x7b..0x7f // - Verify the absence of leading and trailing // hyphen-minus if (useSTD3ASCIIRules) { for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if ((c <= 0x2c) || (c >= 0x2e && c <= 0x2f) || (c >= 0x3a && c <= 0x40) || (c >= 0x5b && c <= 0x60) || (c >= 0x7b && c <= 0x7f)) { throw new IDNAException(IDNAException.CONTAINS_NON_LDH); } } if (input.startsWith("-") || input.endsWith("-")) { throw new IDNAException(IDNAException.CONTAINS_HYPHEN); } } // Step 4: If all code points are inside 0..0x7f, skip to step 8 nonASCII = false; for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c > 0x7f) { nonASCII = true; break; } } String output = input; if (nonASCII) { // Step 5: Verify that the sequence does not begin with the ACE prefix. if (input.startsWith(ACE_PREFIX)) { throw new IDNAException(IDNAException.CONTAINS_ACE_PREFIX); } // Step 6: Punycode try { output = Punycode.encode(input); } catch (PunycodeException e) { throw new IDNAException(e); } // Step 7: Prepend the ACE prefix. output = ACE_PREFIX + output; } // Step 8: Check that the length is inside 1..63. if (output.length() < 1 || output.length() > 63) { throw new IDNAException(IDNAException.TOO_LONG); } return output; } /** * Converts an ASCII-encoded string to Unicode. Unassigned * characters are not allowed and STD3 hostnames are enforced. Input * may be domain name containing dots. * * @param input ASCII input string. * @return Unicode string. */ public static String toUnicode(String input) { StringBuilder o = new StringBuilder(); StringBuilder h = new StringBuilder(); for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (c == '.' || c == '\u3002' || c == '\uff0e' || c == '\uff61') { o.append(toUnicode(h.toString(), false, true)); o.append(c); h = new StringBuilder(); } else { h.append(c); } } o.append(toUnicode(h.toString(), false, true)); return o.toString(); } /** * Converts an ASCII-encoded string to Unicode. * * @param input ASCII input string. * @param allowUnassigned Allow unassigned Unicode characters. * @param useSTD3ASCIIRules Check that the output conforms to STD3. * @return Unicode string. */ public static String toUnicode(String input, boolean allowUnassigned, boolean useSTD3ASCIIRules) { String original = input; boolean nonASCII = false; // Step 1: If all code points are inside 0..0x7f, skip to step 3. for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c > 0x7f) { nonASCII = true; break; } } // Step 2: Perform the Nameprep operation. if (nonASCII) { try { input = Stringprep.nameprep(input, allowUnassigned); } catch (StringprepException e) { // ToUnicode never fails! return original; } } // Step 3: Verify the sequence starts with the ACE prefix. if (!input.startsWith(ACE_PREFIX)) { // ToUnicode never fails! return original; } String stored = input; // Step 4: Remove the ACE prefix. input = input.substring(ACE_PREFIX.length()); // Step 5: Decode using punycode String output; try { output = Punycode.decode(input); } catch (PunycodeException e) { // ToUnicode never fails! return original; } // Step 6: Apply toASCII String ascii; try { ascii = toASCII(output, allowUnassigned, useSTD3ASCIIRules); } catch (IDNAException e) { // ToUnicode never fails! return original; } // Step 7: Compare case-insensitively. if (!ascii.equalsIgnoreCase(stored)) { // ToUnicode never fails! return original; } // Step 8: Return the result. return output; } } libidn-1.28/java/src/main/java/gnu/inet/encoding/DecompositionKeys.java0000644000000000000000000021231512153707514023013 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class DecompositionKeys { public final static int[] k = new int[] { '\u00A0', 0, '\u00A8', 1, '\u00AA', 2, '\u00AF', 3, '\u00B2', 4, '\u00B3', 5, '\u00B4', 6, '\u00B5', 7, '\u00B8', 8, '\u00B9', 9, '\u00BA', 10, '\u00BC', 11, '\u00BD', 12, '\u00BE', 13, '\u00C0', 14, '\u00C1', 15, '\u00C2', 16, '\u00C3', 17, '\u00C4', 18, '\u00C5', 19, '\u00C7', 20, '\u00C8', 21, '\u00C9', 22, '\u00CA', 23, '\u00CB', 24, '\u00CC', 25, '\u00CD', 26, '\u00CE', 27, '\u00CF', 28, '\u00D1', 29, '\u00D2', 30, '\u00D3', 31, '\u00D4', 32, '\u00D5', 33, '\u00D6', 34, '\u00D9', 35, '\u00DA', 36, '\u00DB', 37, '\u00DC', 38, '\u00DD', 39, '\u00E0', 40, '\u00E1', 41, '\u00E2', 42, '\u00E3', 43, '\u00E4', 44, '\u00E5', 45, '\u00E7', 46, '\u00E8', 47, '\u00E9', 48, '\u00EA', 49, '\u00EB', 50, '\u00EC', 51, '\u00ED', 52, '\u00EE', 53, '\u00EF', 54, '\u00F1', 55, '\u00F2', 56, '\u00F3', 57, '\u00F4', 58, '\u00F5', 59, '\u00F6', 60, '\u00F9', 61, '\u00FA', 62, '\u00FB', 63, '\u00FC', 64, '\u00FD', 65, '\u00FF', 66, '\u0100', 67, '\u0101', 68, '\u0102', 69, '\u0103', 70, '\u0104', 71, '\u0105', 72, '\u0106', 73, '\u0107', 74, '\u0108', 75, '\u0109', 76, '\u010A', 77, '\u010B', 78, '\u010C', 79, '\u010D', 80, '\u010E', 81, '\u010F', 82, '\u0112', 83, '\u0113', 84, '\u0114', 85, '\u0115', 86, '\u0116', 87, '\u0117', 88, '\u0118', 89, '\u0119', 90, '\u011A', 91, '\u011B', 92, '\u011C', 93, '\u011D', 94, '\u011E', 95, '\u011F', 96, '\u0120', 97, '\u0121', 98, '\u0122', 99, '\u0123', 100, '\u0124', 101, '\u0125', 102, '\u0128', 103, '\u0129', 104, '\u012A', 105, '\u012B', 106, '\u012C', 107, '\u012D', 108, '\u012E', 109, '\u012F', 110, '\u0130', 111, '\u0132', 112, '\u0133', 113, '\u0134', 114, '\u0135', 115, '\u0136', 116, '\u0137', 117, '\u0139', 118, '\u013A', 119, '\u013B', 120, '\u013C', 121, '\u013D', 122, '\u013E', 123, '\u013F', 124, '\u0140', 125, '\u0143', 126, '\u0144', 127, '\u0145', 128, '\u0146', 129, '\u0147', 130, '\u0148', 131, '\u0149', 132, '\u014C', 133, '\u014D', 134, '\u014E', 135, '\u014F', 136, '\u0150', 137, '\u0151', 138, '\u0154', 139, '\u0155', 140, '\u0156', 141, '\u0157', 142, '\u0158', 143, '\u0159', 144, '\u015A', 145, '\u015B', 146, '\u015C', 147, '\u015D', 148, '\u015E', 149, '\u015F', 150, '\u0160', 151, '\u0161', 152, '\u0162', 153, '\u0163', 154, '\u0164', 155, '\u0165', 156, '\u0168', 157, '\u0169', 158, '\u016A', 159, '\u016B', 160, '\u016C', 161, '\u016D', 162, '\u016E', 163, '\u016F', 164, '\u0170', 165, '\u0171', 166, '\u0172', 167, '\u0173', 168, '\u0174', 169, '\u0175', 170, '\u0176', 171, '\u0177', 172, '\u0178', 173, '\u0179', 174, '\u017A', 175, '\u017B', 176, '\u017C', 177, '\u017D', 178, '\u017E', 179, '\u017F', 180, '\u01A0', 181, '\u01A1', 182, '\u01AF', 183, '\u01B0', 184, '\u01C4', 185, '\u01C5', 186, '\u01C6', 187, '\u01C7', 188, '\u01C8', 189, '\u01C9', 190, '\u01CA', 191, '\u01CB', 192, '\u01CC', 193, '\u01CD', 194, '\u01CE', 195, '\u01CF', 196, '\u01D0', 197, '\u01D1', 198, '\u01D2', 199, '\u01D3', 200, '\u01D4', 201, '\u01D5', 202, '\u01D6', 203, '\u01D7', 204, '\u01D8', 205, '\u01D9', 206, '\u01DA', 207, '\u01DB', 208, '\u01DC', 209, '\u01DE', 210, '\u01DF', 211, '\u01E0', 212, '\u01E1', 213, '\u01E2', 214, '\u01E3', 215, '\u01E6', 216, '\u01E7', 217, '\u01E8', 218, '\u01E9', 219, '\u01EA', 220, '\u01EB', 221, '\u01EC', 222, '\u01ED', 223, '\u01EE', 224, '\u01EF', 225, '\u01F0', 226, '\u01F1', 227, '\u01F2', 228, '\u01F3', 229, '\u01F4', 230, '\u01F5', 231, '\u01F8', 232, '\u01F9', 233, '\u01FA', 234, '\u01FB', 235, '\u01FC', 236, '\u01FD', 237, '\u01FE', 238, '\u01FF', 239, '\u0200', 240, '\u0201', 241, '\u0202', 242, '\u0203', 243, '\u0204', 244, '\u0205', 245, '\u0206', 246, '\u0207', 247, '\u0208', 248, '\u0209', 249, '\u020A', 250, '\u020B', 251, '\u020C', 252, '\u020D', 253, '\u020E', 254, '\u020F', 255, '\u0210', 256, '\u0211', 257, '\u0212', 258, '\u0213', 259, '\u0214', 260, '\u0215', 261, '\u0216', 262, '\u0217', 263, '\u0218', 264, '\u0219', 265, '\u021A', 266, '\u021B', 267, '\u021E', 268, '\u021F', 269, '\u0226', 270, '\u0227', 271, '\u0228', 272, '\u0229', 273, '\u022A', 274, '\u022B', 275, '\u022C', 276, '\u022D', 277, '\u022E', 278, '\u022F', 279, '\u0230', 280, '\u0231', 281, '\u0232', 282, '\u0233', 283, '\u02B0', 284, '\u02B1', 285, '\u02B2', 286, '\u02B3', 287, '\u02B4', 288, '\u02B5', 289, '\u02B6', 290, '\u02B7', 291, '\u02B8', 292, '\u02D8', 293, '\u02D9', 294, '\u02DA', 295, '\u02DB', 296, '\u02DC', 297, '\u02DD', 298, '\u02E0', 299, '\u02E1', 300, '\u02E2', 180, '\u02E3', 301, '\u02E4', 302, '\u0340', 303, '\u0341', 304, '\u0343', 305, '\u0344', 306, '\u0374', 307, '\u037A', 308, '\u037E', 309, '\u0384', 6, '\u0385', 310, '\u0386', 311, '\u0387', 312, '\u0388', 313, '\u0389', 314, '\u038A', 315, '\u038C', 316, '\u038E', 317, '\u038F', 318, '\u0390', 319, '\u03AA', 320, '\u03AB', 321, '\u03AC', 322, '\u03AD', 323, '\u03AE', 324, '\u03AF', 325, '\u03B0', 326, '\u03CA', 327, '\u03CB', 328, '\u03CC', 329, '\u03CD', 330, '\u03CE', 331, '\u03D0', 332, '\u03D1', 333, '\u03D2', 334, '\u03D3', 317, '\u03D4', 321, '\u03D5', 335, '\u03D6', 336, '\u03F0', 337, '\u03F1', 338, '\u03F2', 339, '\u03F4', 340, '\u03F5', 341, '\u0400', 342, '\u0401', 343, '\u0403', 344, '\u0407', 345, '\u040C', 346, '\u040D', 347, '\u040E', 348, '\u0419', 349, '\u0439', 350, '\u0450', 351, '\u0451', 352, '\u0453', 353, '\u0457', 354, '\u045C', 355, '\u045D', 356, '\u045E', 357, '\u0476', 358, '\u0477', 359, '\u04C1', 360, '\u04C2', 361, '\u04D0', 362, '\u04D1', 363, '\u04D2', 364, '\u04D3', 365, '\u04D6', 366, '\u04D7', 367, '\u04DA', 368, '\u04DB', 369, '\u04DC', 370, '\u04DD', 371, '\u04DE', 372, '\u04DF', 373, '\u04E2', 374, '\u04E3', 375, '\u04E4', 376, '\u04E5', 377, '\u04E6', 378, '\u04E7', 379, '\u04EA', 380, '\u04EB', 381, '\u04EC', 382, '\u04ED', 383, '\u04EE', 384, '\u04EF', 385, '\u04F0', 386, '\u04F1', 387, '\u04F2', 388, '\u04F3', 389, '\u04F4', 390, '\u04F5', 391, '\u04F8', 392, '\u04F9', 393, '\u0587', 394, '\u0622', 395, '\u0623', 396, '\u0624', 397, '\u0625', 398, '\u0626', 399, '\u0675', 400, '\u0676', 401, '\u0677', 402, '\u0678', 403, '\u06C0', 404, '\u06C2', 405, '\u06D3', 406, '\u0929', 407, '\u0931', 408, '\u0934', 409, '\u0958', 410, '\u0959', 411, '\u095A', 412, '\u095B', 413, '\u095C', 414, '\u095D', 415, '\u095E', 416, '\u095F', 417, '\u09CB', 418, '\u09CC', 419, '\u09DC', 420, '\u09DD', 421, '\u09DF', 422, '\u0A33', 423, '\u0A36', 424, '\u0A59', 425, '\u0A5A', 426, '\u0A5B', 427, '\u0A5E', 428, '\u0B48', 429, '\u0B4B', 430, '\u0B4C', 431, '\u0B5C', 432, '\u0B5D', 433, '\u0B94', 434, '\u0BCA', 435, '\u0BCB', 436, '\u0BCC', 437, '\u0C48', 438, '\u0CC0', 439, '\u0CC7', 440, '\u0CC8', 441, '\u0CCA', 442, '\u0CCB', 443, '\u0D4A', 444, '\u0D4B', 445, '\u0D4C', 446, '\u0DDA', 447, '\u0DDC', 448, '\u0DDD', 449, '\u0DDE', 450, '\u0E33', 451, '\u0EB3', 452, '\u0EDC', 453, '\u0EDD', 454, '\u0F0C', 455, '\u0F43', 456, '\u0F4D', 457, '\u0F52', 458, '\u0F57', 459, '\u0F5C', 460, '\u0F69', 461, '\u0F73', 462, '\u0F75', 463, '\u0F76', 464, '\u0F77', 465, '\u0F78', 466, '\u0F79', 467, '\u0F81', 468, '\u0F93', 469, '\u0F9D', 470, '\u0FA2', 471, '\u0FA7', 472, '\u0FAC', 473, '\u0FB9', 474, '\u1026', 475, '\u1E00', 476, '\u1E01', 477, '\u1E02', 478, '\u1E03', 479, '\u1E04', 480, '\u1E05', 481, '\u1E06', 482, '\u1E07', 483, '\u1E08', 484, '\u1E09', 485, '\u1E0A', 486, '\u1E0B', 487, '\u1E0C', 488, '\u1E0D', 489, '\u1E0E', 490, '\u1E0F', 491, '\u1E10', 492, '\u1E11', 493, '\u1E12', 494, '\u1E13', 495, '\u1E14', 496, '\u1E15', 497, '\u1E16', 498, '\u1E17', 499, '\u1E18', 500, '\u1E19', 501, '\u1E1A', 502, '\u1E1B', 503, '\u1E1C', 504, '\u1E1D', 505, '\u1E1E', 506, '\u1E1F', 507, '\u1E20', 508, '\u1E21', 509, '\u1E22', 510, '\u1E23', 511, '\u1E24', 512, '\u1E25', 513, '\u1E26', 514, '\u1E27', 515, '\u1E28', 516, '\u1E29', 517, '\u1E2A', 518, '\u1E2B', 519, '\u1E2C', 520, '\u1E2D', 521, '\u1E2E', 522, '\u1E2F', 523, '\u1E30', 524, '\u1E31', 525, '\u1E32', 526, '\u1E33', 527, '\u1E34', 528, '\u1E35', 529, '\u1E36', 530, '\u1E37', 531, '\u1E38', 532, '\u1E39', 533, '\u1E3A', 534, '\u1E3B', 535, '\u1E3C', 536, '\u1E3D', 537, '\u1E3E', 538, '\u1E3F', 539, '\u1E40', 540, '\u1E41', 541, '\u1E42', 542, '\u1E43', 543, '\u1E44', 544, '\u1E45', 545, '\u1E46', 546, '\u1E47', 547, '\u1E48', 548, '\u1E49', 549, '\u1E4A', 550, '\u1E4B', 551, '\u1E4C', 552, '\u1E4D', 553, '\u1E4E', 554, '\u1E4F', 555, '\u1E50', 556, '\u1E51', 557, '\u1E52', 558, '\u1E53', 559, '\u1E54', 560, '\u1E55', 561, '\u1E56', 562, '\u1E57', 563, '\u1E58', 564, '\u1E59', 565, '\u1E5A', 566, '\u1E5B', 567, '\u1E5C', 568, '\u1E5D', 569, '\u1E5E', 570, '\u1E5F', 571, '\u1E60', 572, '\u1E61', 573, '\u1E62', 574, '\u1E63', 575, '\u1E64', 576, '\u1E65', 577, '\u1E66', 578, '\u1E67', 579, '\u1E68', 580, '\u1E69', 581, '\u1E6A', 582, '\u1E6B', 583, '\u1E6C', 584, '\u1E6D', 585, '\u1E6E', 586, '\u1E6F', 587, '\u1E70', 588, '\u1E71', 589, '\u1E72', 590, '\u1E73', 591, '\u1E74', 592, '\u1E75', 593, '\u1E76', 594, '\u1E77', 595, '\u1E78', 596, '\u1E79', 597, '\u1E7A', 598, '\u1E7B', 599, '\u1E7C', 600, '\u1E7D', 601, '\u1E7E', 602, '\u1E7F', 603, '\u1E80', 604, '\u1E81', 605, '\u1E82', 606, '\u1E83', 607, '\u1E84', 608, '\u1E85', 609, '\u1E86', 610, '\u1E87', 611, '\u1E88', 612, '\u1E89', 613, '\u1E8A', 614, '\u1E8B', 615, '\u1E8C', 616, '\u1E8D', 617, '\u1E8E', 618, '\u1E8F', 619, '\u1E90', 620, '\u1E91', 621, '\u1E92', 622, '\u1E93', 623, '\u1E94', 624, '\u1E95', 625, '\u1E96', 626, '\u1E97', 627, '\u1E98', 628, '\u1E99', 629, '\u1E9A', 630, '\u1E9B', 573, '\u1EA0', 631, '\u1EA1', 632, '\u1EA2', 633, '\u1EA3', 634, '\u1EA4', 635, '\u1EA5', 636, '\u1EA6', 637, '\u1EA7', 638, '\u1EA8', 639, '\u1EA9', 640, '\u1EAA', 641, '\u1EAB', 642, '\u1EAC', 643, '\u1EAD', 644, '\u1EAE', 645, '\u1EAF', 646, '\u1EB0', 647, '\u1EB1', 648, '\u1EB2', 649, '\u1EB3', 650, '\u1EB4', 651, '\u1EB5', 652, '\u1EB6', 653, '\u1EB7', 654, '\u1EB8', 655, '\u1EB9', 656, '\u1EBA', 657, '\u1EBB', 658, '\u1EBC', 659, '\u1EBD', 660, '\u1EBE', 661, '\u1EBF', 662, '\u1EC0', 663, '\u1EC1', 664, '\u1EC2', 665, '\u1EC3', 666, '\u1EC4', 667, '\u1EC5', 668, '\u1EC6', 669, '\u1EC7', 670, '\u1EC8', 671, '\u1EC9', 672, '\u1ECA', 673, '\u1ECB', 674, '\u1ECC', 675, '\u1ECD', 676, '\u1ECE', 677, '\u1ECF', 678, '\u1ED0', 679, '\u1ED1', 680, '\u1ED2', 681, '\u1ED3', 682, '\u1ED4', 683, '\u1ED5', 684, '\u1ED6', 685, '\u1ED7', 686, '\u1ED8', 687, '\u1ED9', 688, '\u1EDA', 689, '\u1EDB', 690, '\u1EDC', 691, '\u1EDD', 692, '\u1EDE', 693, '\u1EDF', 694, '\u1EE0', 695, '\u1EE1', 696, '\u1EE2', 697, '\u1EE3', 698, '\u1EE4', 699, '\u1EE5', 700, '\u1EE6', 701, '\u1EE7', 702, '\u1EE8', 703, '\u1EE9', 704, '\u1EEA', 705, '\u1EEB', 706, '\u1EEC', 707, '\u1EED', 708, '\u1EEE', 709, '\u1EEF', 710, '\u1EF0', 711, '\u1EF1', 712, '\u1EF2', 713, '\u1EF3', 714, '\u1EF4', 715, '\u1EF5', 716, '\u1EF6', 717, '\u1EF7', 718, '\u1EF8', 719, '\u1EF9', 720, '\u1F00', 721, '\u1F01', 722, '\u1F02', 723, '\u1F03', 724, '\u1F04', 725, '\u1F05', 726, '\u1F06', 727, '\u1F07', 728, '\u1F08', 729, '\u1F09', 730, '\u1F0A', 731, '\u1F0B', 732, '\u1F0C', 733, '\u1F0D', 734, '\u1F0E', 735, '\u1F0F', 736, '\u1F10', 737, '\u1F11', 738, '\u1F12', 739, '\u1F13', 740, '\u1F14', 741, '\u1F15', 742, '\u1F18', 743, '\u1F19', 744, '\u1F1A', 745, '\u1F1B', 746, '\u1F1C', 747, '\u1F1D', 748, '\u1F20', 749, '\u1F21', 750, '\u1F22', 751, '\u1F23', 752, '\u1F24', 753, '\u1F25', 754, '\u1F26', 755, '\u1F27', 756, '\u1F28', 757, '\u1F29', 758, '\u1F2A', 759, '\u1F2B', 760, '\u1F2C', 761, '\u1F2D', 762, '\u1F2E', 763, '\u1F2F', 764, '\u1F30', 765, '\u1F31', 766, '\u1F32', 767, '\u1F33', 768, '\u1F34', 769, '\u1F35', 770, '\u1F36', 771, '\u1F37', 772, '\u1F38', 773, '\u1F39', 774, '\u1F3A', 775, '\u1F3B', 776, '\u1F3C', 777, '\u1F3D', 778, '\u1F3E', 779, '\u1F3F', 780, '\u1F40', 781, '\u1F41', 782, '\u1F42', 783, '\u1F43', 784, '\u1F44', 785, '\u1F45', 786, '\u1F48', 787, '\u1F49', 788, '\u1F4A', 789, '\u1F4B', 790, '\u1F4C', 791, '\u1F4D', 792, '\u1F50', 793, '\u1F51', 794, '\u1F52', 795, '\u1F53', 796, '\u1F54', 797, '\u1F55', 798, '\u1F56', 799, '\u1F57', 800, '\u1F59', 801, '\u1F5B', 802, '\u1F5D', 803, '\u1F5F', 804, '\u1F60', 805, '\u1F61', 806, '\u1F62', 807, '\u1F63', 808, '\u1F64', 809, '\u1F65', 810, '\u1F66', 811, '\u1F67', 812, '\u1F68', 813, '\u1F69', 814, '\u1F6A', 815, '\u1F6B', 816, '\u1F6C', 817, '\u1F6D', 818, '\u1F6E', 819, '\u1F6F', 820, '\u1F70', 821, '\u1F71', 322, '\u1F72', 822, '\u1F73', 323, '\u1F74', 823, '\u1F75', 324, '\u1F76', 824, '\u1F77', 325, '\u1F78', 825, '\u1F79', 329, '\u1F7A', 826, '\u1F7B', 330, '\u1F7C', 827, '\u1F7D', 331, '\u1F80', 828, '\u1F81', 829, '\u1F82', 830, '\u1F83', 831, '\u1F84', 832, '\u1F85', 833, '\u1F86', 834, '\u1F87', 835, '\u1F88', 836, '\u1F89', 837, '\u1F8A', 838, '\u1F8B', 839, '\u1F8C', 840, '\u1F8D', 841, '\u1F8E', 842, '\u1F8F', 843, '\u1F90', 844, '\u1F91', 845, '\u1F92', 846, '\u1F93', 847, '\u1F94', 848, '\u1F95', 849, '\u1F96', 850, '\u1F97', 851, '\u1F98', 852, '\u1F99', 853, '\u1F9A', 854, '\u1F9B', 855, '\u1F9C', 856, '\u1F9D', 857, '\u1F9E', 858, '\u1F9F', 859, '\u1FA0', 860, '\u1FA1', 861, '\u1FA2', 862, '\u1FA3', 863, '\u1FA4', 864, '\u1FA5', 865, '\u1FA6', 866, '\u1FA7', 867, '\u1FA8', 868, '\u1FA9', 869, '\u1FAA', 870, '\u1FAB', 871, '\u1FAC', 872, '\u1FAD', 873, '\u1FAE', 874, '\u1FAF', 875, '\u1FB0', 876, '\u1FB1', 877, '\u1FB2', 878, '\u1FB3', 879, '\u1FB4', 880, '\u1FB6', 881, '\u1FB7', 882, '\u1FB8', 883, '\u1FB9', 884, '\u1FBA', 885, '\u1FBB', 311, '\u1FBC', 886, '\u1FBD', 887, '\u1FBE', 888, '\u1FBF', 887, '\u1FC0', 889, '\u1FC1', 890, '\u1FC2', 891, '\u1FC3', 892, '\u1FC4', 893, '\u1FC6', 894, '\u1FC7', 895, '\u1FC8', 896, '\u1FC9', 313, '\u1FCA', 897, '\u1FCB', 314, '\u1FCC', 898, '\u1FCD', 899, '\u1FCE', 900, '\u1FCF', 901, '\u1FD0', 902, '\u1FD1', 903, '\u1FD2', 904, '\u1FD3', 319, '\u1FD6', 905, '\u1FD7', 906, '\u1FD8', 907, '\u1FD9', 908, '\u1FDA', 909, '\u1FDB', 315, '\u1FDD', 910, '\u1FDE', 911, '\u1FDF', 912, '\u1FE0', 913, '\u1FE1', 914, '\u1FE2', 915, '\u1FE3', 326, '\u1FE4', 916, '\u1FE5', 917, '\u1FE6', 918, '\u1FE7', 919, '\u1FE8', 920, '\u1FE9', 921, '\u1FEA', 922, '\u1FEB', 317, '\u1FEC', 923, '\u1FED', 924, '\u1FEE', 310, '\u1FEF', 925, '\u1FF2', 926, '\u1FF3', 927, '\u1FF4', 928, '\u1FF6', 929, '\u1FF7', 930, '\u1FF8', 931, '\u1FF9', 316, '\u1FFA', 932, '\u1FFB', 318, '\u1FFC', 933, '\u1FFD', 6, '\u1FFE', 934, '\u2000', 0, '\u2001', 0, '\u2002', 0, '\u2003', 0, '\u2004', 0, '\u2005', 0, '\u2006', 0, '\u2007', 0, '\u2008', 0, '\u2009', 0, '\u200A', 0, '\u2011', 935, '\u2017', 936, '\u2024', 937, '\u2025', 938, '\u2026', 939, '\u202F', 0, '\u2033', 940, '\u2034', 941, '\u2036', 942, '\u2037', 943, '\u203C', 944, '\u203E', 945, '\u2047', 946, '\u2048', 947, '\u2049', 948, '\u2057', 949, '\u205F', 0, '\u2070', 950, '\u2071', 951, '\u2074', 952, '\u2075', 953, '\u2076', 954, '\u2077', 955, '\u2078', 956, '\u2079', 957, '\u207A', 958, '\u207B', 959, '\u207C', 960, '\u207D', 961, '\u207E', 962, '\u207F', 963, '\u2080', 950, '\u2081', 9, '\u2082', 4, '\u2083', 5, '\u2084', 952, '\u2085', 953, '\u2086', 954, '\u2087', 955, '\u2088', 956, '\u2089', 957, '\u208A', 958, '\u208B', 959, '\u208C', 960, '\u208D', 961, '\u208E', 962, '\u20A8', 964, '\u2100', 965, '\u2101', 966, '\u2102', 967, '\u2103', 968, '\u2105', 969, '\u2106', 970, '\u2107', 971, '\u2109', 972, '\u210A', 973, '\u210B', 974, '\u210C', 974, '\u210D', 974, '\u210E', 284, '\u210F', 975, '\u2110', 976, '\u2111', 976, '\u2112', 977, '\u2113', 300, '\u2115', 978, '\u2116', 979, '\u2119', 980, '\u211A', 981, '\u211B', 982, '\u211C', 982, '\u211D', 982, '\u2120', 983, '\u2121', 984, '\u2122', 985, '\u2124', 986, '\u2126', 987, '\u2128', 986, '\u212A', 988, '\u212B', 19, '\u212C', 989, '\u212D', 967, '\u212F', 990, '\u2130', 991, '\u2131', 992, '\u2133', 993, '\u2134', 10, '\u2135', 994, '\u2136', 995, '\u2137', 996, '\u2138', 997, '\u2139', 951, '\u213D', 998, '\u213E', 999, '\u213F', 1000, '\u2140', 1001, '\u2145', 1002, '\u2146', 1003, '\u2147', 990, '\u2148', 951, '\u2149', 286, '\u2153', 1004, '\u2154', 1005, '\u2155', 1006, '\u2156', 1007, '\u2157', 1008, '\u2158', 1009, '\u2159', 1010, '\u215A', 1011, '\u215B', 1012, '\u215C', 1013, '\u215D', 1014, '\u215E', 1015, '\u215F', 1016, '\u2160', 976, '\u2161', 1017, '\u2162', 1018, '\u2163', 1019, '\u2164', 1020, '\u2165', 1021, '\u2166', 1022, '\u2167', 1023, '\u2168', 1024, '\u2169', 1025, '\u216A', 1026, '\u216B', 1027, '\u216C', 977, '\u216D', 967, '\u216E', 1002, '\u216F', 993, '\u2170', 951, '\u2171', 1028, '\u2172', 1029, '\u2173', 1030, '\u2174', 1031, '\u2175', 1032, '\u2176', 1033, '\u2177', 1034, '\u2178', 1035, '\u2179', 301, '\u217A', 1036, '\u217B', 1037, '\u217C', 300, '\u217D', 1038, '\u217E', 1003, '\u217F', 1039, '\u219A', 1040, '\u219B', 1041, '\u21AE', 1042, '\u21CD', 1043, '\u21CE', 1044, '\u21CF', 1045, '\u2204', 1046, '\u2209', 1047, '\u220C', 1048, '\u2224', 1049, '\u2226', 1050, '\u222C', 1051, '\u222D', 1052, '\u222F', 1053, '\u2230', 1054, '\u2241', 1055, '\u2244', 1056, '\u2247', 1057, '\u2249', 1058, '\u2260', 1059, '\u2262', 1060, '\u226D', 1061, '\u226E', 1062, '\u226F', 1063, '\u2270', 1064, '\u2271', 1065, '\u2274', 1066, '\u2275', 1067, '\u2278', 1068, '\u2279', 1069, '\u2280', 1070, '\u2281', 1071, '\u2284', 1072, '\u2285', 1073, '\u2288', 1074, '\u2289', 1075, '\u22AC', 1076, '\u22AD', 1077, '\u22AE', 1078, '\u22AF', 1079, '\u22E0', 1080, '\u22E1', 1081, '\u22E2', 1082, '\u22E3', 1083, '\u22EA', 1084, '\u22EB', 1085, '\u22EC', 1086, '\u22ED', 1087, '\u2329', 1088, '\u232A', 1089, '\u2460', 9, '\u2461', 4, '\u2462', 5, '\u2463', 952, '\u2464', 953, '\u2465', 954, '\u2466', 955, '\u2467', 956, '\u2468', 957, '\u2469', 1090, '\u246A', 1091, '\u246B', 1092, '\u246C', 1093, '\u246D', 1094, '\u246E', 1095, '\u246F', 1096, '\u2470', 1097, '\u2471', 1098, '\u2472', 1099, '\u2473', 1100, '\u2474', 1101, '\u2475', 1102, '\u2476', 1103, '\u2477', 1104, '\u2478', 1105, '\u2479', 1106, '\u247A', 1107, '\u247B', 1108, '\u247C', 1109, '\u247D', 1110, '\u247E', 1111, '\u247F', 1112, '\u2480', 1113, '\u2481', 1114, '\u2482', 1115, '\u2483', 1116, '\u2484', 1117, '\u2485', 1118, '\u2486', 1119, '\u2487', 1120, '\u2488', 1121, '\u2489', 1122, '\u248A', 1123, '\u248B', 1124, '\u248C', 1125, '\u248D', 1126, '\u248E', 1127, '\u248F', 1128, '\u2490', 1129, '\u2491', 1130, '\u2492', 1131, '\u2493', 1132, '\u2494', 1133, '\u2495', 1134, '\u2496', 1135, '\u2497', 1136, '\u2498', 1137, '\u2499', 1138, '\u249A', 1139, '\u249B', 1140, '\u249C', 1141, '\u249D', 1142, '\u249E', 1143, '\u249F', 1144, '\u24A0', 1145, '\u24A1', 1146, '\u24A2', 1147, '\u24A3', 1148, '\u24A4', 1149, '\u24A5', 1150, '\u24A6', 1151, '\u24A7', 1152, '\u24A8', 1153, '\u24A9', 1154, '\u24AA', 1155, '\u24AB', 1156, '\u24AC', 1157, '\u24AD', 1158, '\u24AE', 1159, '\u24AF', 1160, '\u24B0', 1161, '\u24B1', 1162, '\u24B2', 1163, '\u24B3', 1164, '\u24B4', 1165, '\u24B5', 1166, '\u24B6', 1167, '\u24B7', 989, '\u24B8', 967, '\u24B9', 1002, '\u24BA', 991, '\u24BB', 992, '\u24BC', 1168, '\u24BD', 974, '\u24BE', 976, '\u24BF', 1169, '\u24C0', 988, '\u24C1', 977, '\u24C2', 993, '\u24C3', 978, '\u24C4', 1170, '\u24C5', 980, '\u24C6', 981, '\u24C7', 982, '\u24C8', 1171, '\u24C9', 1172, '\u24CA', 1173, '\u24CB', 1020, '\u24CC', 1174, '\u24CD', 1025, '\u24CE', 1175, '\u24CF', 986, '\u24D0', 2, '\u24D1', 1176, '\u24D2', 1038, '\u24D3', 1003, '\u24D4', 990, '\u24D5', 1177, '\u24D6', 973, '\u24D7', 284, '\u24D8', 951, '\u24D9', 286, '\u24DA', 1178, '\u24DB', 300, '\u24DC', 1039, '\u24DD', 963, '\u24DE', 10, '\u24DF', 1179, '\u24E0', 1180, '\u24E1', 287, '\u24E2', 180, '\u24E3', 1181, '\u24E4', 1182, '\u24E5', 1031, '\u24E6', 291, '\u24E7', 301, '\u24E8', 292, '\u24E9', 1183, '\u24EA', 950, '\u2A0C', 1184, '\u2A74', 1185, '\u2A75', 1186, '\u2A76', 1187, '\u2ADC', 1188, '\u2E9F', 1189, '\u2EF3', 1190, '\u2F00', 1191, '\u2F01', 1192, '\u2F02', 1193, '\u2F03', 1194, '\u2F04', 1195, '\u2F05', 1196, '\u2F06', 1197, '\u2F07', 1198, '\u2F08', 1199, '\u2F09', 1200, '\u2F0A', 1201, '\u2F0B', 1202, '\u2F0C', 1203, '\u2F0D', 1204, '\u2F0E', 1205, '\u2F0F', 1206, '\u2F10', 1207, '\u2F11', 1208, '\u2F12', 1209, '\u2F13', 1210, '\u2F14', 1211, '\u2F15', 1212, '\u2F16', 1213, '\u2F17', 1214, '\u2F18', 1215, '\u2F19', 1216, '\u2F1A', 1217, '\u2F1B', 1218, '\u2F1C', 1219, '\u2F1D', 1220, '\u2F1E', 1221, '\u2F1F', 1222, '\u2F20', 1223, '\u2F21', 1224, '\u2F22', 1225, '\u2F23', 1226, '\u2F24', 1227, '\u2F25', 1228, '\u2F26', 1229, '\u2F27', 1230, '\u2F28', 1231, '\u2F29', 1232, '\u2F2A', 1233, '\u2F2B', 1234, '\u2F2C', 1235, '\u2F2D', 1236, '\u2F2E', 1237, '\u2F2F', 1238, '\u2F30', 1239, '\u2F31', 1240, '\u2F32', 1241, '\u2F33', 1242, '\u2F34', 1243, '\u2F35', 1244, '\u2F36', 1245, '\u2F37', 1246, '\u2F38', 1247, '\u2F39', 1248, '\u2F3A', 1249, '\u2F3B', 1250, '\u2F3C', 1251, '\u2F3D', 1252, '\u2F3E', 1253, '\u2F3F', 1254, '\u2F40', 1255, '\u2F41', 1256, '\u2F42', 1257, '\u2F43', 1258, '\u2F44', 1259, '\u2F45', 1260, '\u2F46', 1261, '\u2F47', 1262, '\u2F48', 1263, '\u2F49', 1264, '\u2F4A', 1265, '\u2F4B', 1266, '\u2F4C', 1267, '\u2F4D', 1268, '\u2F4E', 1269, '\u2F4F', 1270, '\u2F50', 1271, '\u2F51', 1272, '\u2F52', 1273, '\u2F53', 1274, '\u2F54', 1275, '\u2F55', 1276, '\u2F56', 1277, '\u2F57', 1278, '\u2F58', 1279, '\u2F59', 1280, '\u2F5A', 1281, '\u2F5B', 1282, '\u2F5C', 1283, '\u2F5D', 1284, '\u2F5E', 1285, '\u2F5F', 1286, '\u2F60', 1287, '\u2F61', 1288, '\u2F62', 1289, '\u2F63', 1290, '\u2F64', 1291, '\u2F65', 1292, '\u2F66', 1293, '\u2F67', 1294, '\u2F68', 1295, '\u2F69', 1296, '\u2F6A', 1297, '\u2F6B', 1298, '\u2F6C', 1299, '\u2F6D', 1300, '\u2F6E', 1301, '\u2F6F', 1302, '\u2F70', 1303, '\u2F71', 1304, '\u2F72', 1305, '\u2F73', 1306, '\u2F74', 1307, '\u2F75', 1308, '\u2F76', 1309, '\u2F77', 1310, '\u2F78', 1311, '\u2F79', 1312, '\u2F7A', 1313, '\u2F7B', 1314, '\u2F7C', 1315, '\u2F7D', 1316, '\u2F7E', 1317, '\u2F7F', 1318, '\u2F80', 1319, '\u2F81', 1320, '\u2F82', 1321, '\u2F83', 1322, '\u2F84', 1323, '\u2F85', 1324, '\u2F86', 1325, '\u2F87', 1326, '\u2F88', 1327, '\u2F89', 1328, '\u2F8A', 1329, '\u2F8B', 1330, '\u2F8C', 1331, '\u2F8D', 1332, '\u2F8E', 1333, '\u2F8F', 1334, '\u2F90', 1335, '\u2F91', 1336, '\u2F92', 1337, '\u2F93', 1338, '\u2F94', 1339, '\u2F95', 1340, '\u2F96', 1341, '\u2F97', 1342, '\u2F98', 1343, '\u2F99', 1344, '\u2F9A', 1345, '\u2F9B', 1346, '\u2F9C', 1347, '\u2F9D', 1348, '\u2F9E', 1349, '\u2F9F', 1350, '\u2FA0', 1351, '\u2FA1', 1352, '\u2FA2', 1353, '\u2FA3', 1354, '\u2FA4', 1355, '\u2FA5', 1356, '\u2FA6', 1357, '\u2FA7', 1358, '\u2FA8', 1359, '\u2FA9', 1360, '\u2FAA', 1361, '\u2FAB', 1362, '\u2FAC', 1363, '\u2FAD', 1364, '\u2FAE', 1365, '\u2FAF', 1366, '\u2FB0', 1367, '\u2FB1', 1368, '\u2FB2', 1369, '\u2FB3', 1370, '\u2FB4', 1371, '\u2FB5', 1372, '\u2FB6', 1373, '\u2FB7', 1374, '\u2FB8', 1375, '\u2FB9', 1376, '\u2FBA', 1377, '\u2FBB', 1378, '\u2FBC', 1379, '\u2FBD', 1380, '\u2FBE', 1381, '\u2FBF', 1382, '\u2FC0', 1383, '\u2FC1', 1384, '\u2FC2', 1385, '\u2FC3', 1386, '\u2FC4', 1387, '\u2FC5', 1388, '\u2FC6', 1389, '\u2FC7', 1390, '\u2FC8', 1391, '\u2FC9', 1392, '\u2FCA', 1393, '\u2FCB', 1394, '\u2FCC', 1395, '\u2FCD', 1396, '\u2FCE', 1397, '\u2FCF', 1398, '\u2FD0', 1399, '\u2FD1', 1400, '\u2FD2', 1401, '\u2FD3', 1402, '\u2FD4', 1403, '\u2FD5', 1404, '\u3000', 0, '\u3036', 1405, '\u3038', 1214, '\u3039', 1406, '\u303A', 1407, '\u304C', 1408, '\u304E', 1409, '\u3050', 1410, '\u3052', 1411, '\u3054', 1412, '\u3056', 1413, '\u3058', 1414, '\u305A', 1415, '\u305C', 1416, '\u305E', 1417, '\u3060', 1418, '\u3062', 1419, '\u3065', 1420, '\u3067', 1421, '\u3069', 1422, '\u3070', 1423, '\u3071', 1424, '\u3073', 1425, '\u3074', 1426, '\u3076', 1427, '\u3077', 1428, '\u3079', 1429, '\u307A', 1430, '\u307C', 1431, '\u307D', 1432, '\u3094', 1433, '\u309B', 1434, '\u309C', 1435, '\u309E', 1436, '\u309F', 1437, '\u30AC', 1438, '\u30AE', 1439, '\u30B0', 1440, '\u30B2', 1441, '\u30B4', 1442, '\u30B6', 1443, '\u30B8', 1444, '\u30BA', 1445, '\u30BC', 1446, '\u30BE', 1447, '\u30C0', 1448, '\u30C2', 1449, '\u30C5', 1450, '\u30C7', 1451, '\u30C9', 1452, '\u30D0', 1453, '\u30D1', 1454, '\u30D3', 1455, '\u30D4', 1456, '\u30D6', 1457, '\u30D7', 1458, '\u30D9', 1459, '\u30DA', 1460, '\u30DC', 1461, '\u30DD', 1462, '\u30F4', 1463, '\u30F7', 1464, '\u30F8', 1465, '\u30F9', 1466, '\u30FA', 1467, '\u30FE', 1468, '\u30FF', 1469, '\u3131', 1470, '\u3132', 1471, '\u3133', 1472, '\u3134', 1473, '\u3135', 1474, '\u3136', 1475, '\u3137', 1476, '\u3138', 1477, '\u3139', 1478, '\u313A', 1479, '\u313B', 1480, '\u313C', 1481, '\u313D', 1482, '\u313E', 1483, '\u313F', 1484, '\u3140', 1485, '\u3141', 1486, '\u3142', 1487, '\u3143', 1488, '\u3144', 1489, '\u3145', 1490, '\u3146', 1491, '\u3147', 1492, '\u3148', 1493, '\u3149', 1494, '\u314A', 1495, '\u314B', 1496, '\u314C', 1497, '\u314D', 1498, '\u314E', 1499, '\u314F', 1500, '\u3150', 1501, '\u3151', 1502, '\u3152', 1503, '\u3153', 1504, '\u3154', 1505, '\u3155', 1506, '\u3156', 1507, '\u3157', 1508, '\u3158', 1509, '\u3159', 1510, '\u315A', 1511, '\u315B', 1512, '\u315C', 1513, '\u315D', 1514, '\u315E', 1515, '\u315F', 1516, '\u3160', 1517, '\u3161', 1518, '\u3162', 1519, '\u3163', 1520, '\u3164', 1521, '\u3165', 1522, '\u3166', 1523, '\u3167', 1524, '\u3168', 1525, '\u3169', 1526, '\u316A', 1527, '\u316B', 1528, '\u316C', 1529, '\u316D', 1530, '\u316E', 1531, '\u316F', 1532, '\u3170', 1533, '\u3171', 1534, '\u3172', 1535, '\u3173', 1536, '\u3174', 1537, '\u3175', 1538, '\u3176', 1539, '\u3177', 1540, '\u3178', 1541, '\u3179', 1542, '\u317A', 1543, '\u317B', 1544, '\u317C', 1545, '\u317D', 1546, '\u317E', 1547, '\u317F', 1548, '\u3180', 1549, '\u3181', 1550, '\u3182', 1551, '\u3183', 1552, '\u3184', 1553, '\u3185', 1554, '\u3186', 1555, '\u3187', 1556, '\u3188', 1557, '\u3189', 1558, '\u318A', 1559, '\u318B', 1560, '\u318C', 1561, '\u318D', 1562, '\u318E', 1563, '\u3192', 1191, '\u3193', 1197, '\u3194', 1564, '\u3195', 1565, '\u3196', 1566, '\u3197', 1567, '\u3198', 1568, '\u3199', 1569, '\u319A', 1195, '\u319B', 1570, '\u319C', 1571, '\u319D', 1572, '\u319E', 1573, '\u319F', 1199, '\u3200', 1574, '\u3201', 1575, '\u3202', 1576, '\u3203', 1577, '\u3204', 1578, '\u3205', 1579, '\u3206', 1580, '\u3207', 1581, '\u3208', 1582, '\u3209', 1583, '\u320A', 1584, '\u320B', 1585, '\u320C', 1586, '\u320D', 1587, '\u320E', 1588, '\u320F', 1589, '\u3210', 1590, '\u3211', 1591, '\u3212', 1592, '\u3213', 1593, '\u3214', 1594, '\u3215', 1595, '\u3216', 1596, '\u3217', 1597, '\u3218', 1598, '\u3219', 1599, '\u321A', 1600, '\u321B', 1601, '\u321C', 1602, '\u3220', 1603, '\u3221', 1604, '\u3222', 1605, '\u3223', 1606, '\u3224', 1607, '\u3225', 1608, '\u3226', 1609, '\u3227', 1610, '\u3228', 1611, '\u3229', 1612, '\u322A', 1613, '\u322B', 1614, '\u322C', 1615, '\u322D', 1616, '\u322E', 1617, '\u322F', 1618, '\u3230', 1619, '\u3231', 1620, '\u3232', 1621, '\u3233', 1622, '\u3234', 1623, '\u3235', 1624, '\u3236', 1625, '\u3237', 1626, '\u3238', 1627, '\u3239', 1628, '\u323A', 1629, '\u323B', 1630, '\u323C', 1631, '\u323D', 1632, '\u323E', 1633, '\u323F', 1634, '\u3240', 1635, '\u3241', 1636, '\u3242', 1637, '\u3243', 1638, '\u3251', 1639, '\u3252', 1640, '\u3253', 1641, '\u3254', 1642, '\u3255', 1643, '\u3256', 1644, '\u3257', 1645, '\u3258', 1646, '\u3259', 1647, '\u325A', 1648, '\u325B', 1649, '\u325C', 1650, '\u325D', 1651, '\u325E', 1652, '\u325F', 1653, '\u3260', 1470, '\u3261', 1473, '\u3262', 1476, '\u3263', 1478, '\u3264', 1486, '\u3265', 1487, '\u3266', 1490, '\u3267', 1492, '\u3268', 1493, '\u3269', 1495, '\u326A', 1496, '\u326B', 1497, '\u326C', 1498, '\u326D', 1499, '\u326E', 1654, '\u326F', 1655, '\u3270', 1656, '\u3271', 1657, '\u3272', 1658, '\u3273', 1659, '\u3274', 1660, '\u3275', 1661, '\u3276', 1662, '\u3277', 1663, '\u3278', 1664, '\u3279', 1665, '\u327A', 1666, '\u327B', 1667, '\u3280', 1191, '\u3281', 1197, '\u3282', 1564, '\u3283', 1565, '\u3284', 1668, '\u3285', 1669, '\u3286', 1670, '\u3287', 1202, '\u3288', 1671, '\u3289', 1214, '\u328A', 1264, '\u328B', 1276, '\u328C', 1275, '\u328D', 1265, '\u328E', 1357, '\u328F', 1222, '\u3290', 1262, '\u3291', 1672, '\u3292', 1673, '\u3293', 1674, '\u3294', 1675, '\u3295', 1676, '\u3296', 1677, '\u3297', 1678, '\u3298', 1679, '\u3299', 1680, '\u329A', 1681, '\u329B', 1228, '\u329C', 1682, '\u329D', 1683, '\u329E', 1684, '\u329F', 1685, '\u32A0', 1686, '\u32A1', 1687, '\u32A2', 1688, '\u32A3', 1689, '\u32A4', 1566, '\u32A5', 1567, '\u32A6', 1568, '\u32A7', 1690, '\u32A8', 1691, '\u32A9', 1692, '\u32AA', 1693, '\u32AB', 1694, '\u32AC', 1695, '\u32AD', 1696, '\u32AE', 1697, '\u32AF', 1698, '\u32B0', 1699, '\u32B1', 1700, '\u32B2', 1701, '\u32B3', 1702, '\u32B4', 1703, '\u32B5', 1704, '\u32B6', 1705, '\u32B7', 1706, '\u32B8', 1707, '\u32B9', 1708, '\u32BA', 1709, '\u32BB', 1710, '\u32BC', 1711, '\u32BD', 1712, '\u32BE', 1713, '\u32BF', 1714, '\u32C0', 1715, '\u32C1', 1716, '\u32C2', 1717, '\u32C3', 1718, '\u32C4', 1719, '\u32C5', 1720, '\u32C6', 1721, '\u32C7', 1722, '\u32C8', 1723, '\u32C9', 1724, '\u32CA', 1725, '\u32CB', 1726, '\u32D0', 1727, '\u32D1', 1728, '\u32D2', 1729, '\u32D3', 1730, '\u32D4', 1731, '\u32D5', 1732, '\u32D6', 1733, '\u32D7', 1734, '\u32D8', 1735, '\u32D9', 1736, '\u32DA', 1737, '\u32DB', 1738, '\u32DC', 1739, '\u32DD', 1740, '\u32DE', 1741, '\u32DF', 1742, '\u32E0', 1743, '\u32E1', 1744, '\u32E2', 1745, '\u32E3', 1746, '\u32E4', 1747, '\u32E5', 1748, '\u32E6', 1749, '\u32E7', 1750, '\u32E8', 1751, '\u32E9', 1752, '\u32EA', 1753, '\u32EB', 1754, '\u32EC', 1755, '\u32ED', 1756, '\u32EE', 1757, '\u32EF', 1758, '\u32F0', 1759, '\u32F1', 1760, '\u32F2', 1761, '\u32F3', 1762, '\u32F4', 1763, '\u32F5', 1764, '\u32F6', 1765, '\u32F7', 1766, '\u32F8', 1767, '\u32F9', 1768, '\u32FA', 1769, '\u32FB', 1770, '\u32FC', 1771, '\u32FD', 1772, '\u32FE', 1773, '\u3300', 1774, '\u3301', 1775, '\u3302', 1776, '\u3303', 1777, '\u3304', 1778, '\u3305', 1779, '\u3306', 1780, '\u3307', 1781, '\u3308', 1782, '\u3309', 1783, '\u330A', 1784, '\u330B', 1785, '\u330C', 1786, '\u330D', 1787, '\u330E', 1788, '\u330F', 1789, '\u3310', 1790, '\u3311', 1791, '\u3312', 1792, '\u3313', 1793, '\u3314', 1794, '\u3315', 1795, '\u3316', 1796, '\u3317', 1797, '\u3318', 1798, '\u3319', 1799, '\u331A', 1800, '\u331B', 1801, '\u331C', 1802, '\u331D', 1803, '\u331E', 1804, '\u331F', 1805, '\u3320', 1806, '\u3321', 1807, '\u3322', 1808, '\u3323', 1809, '\u3324', 1810, '\u3325', 1811, '\u3326', 1812, '\u3327', 1813, '\u3328', 1814, '\u3329', 1815, '\u332A', 1816, '\u332B', 1817, '\u332C', 1818, '\u332D', 1819, '\u332E', 1820, '\u332F', 1821, '\u3330', 1822, '\u3331', 1823, '\u3332', 1824, '\u3333', 1825, '\u3334', 1826, '\u3335', 1827, '\u3336', 1828, '\u3337', 1829, '\u3338', 1830, '\u3339', 1831, '\u333A', 1832, '\u333B', 1833, '\u333C', 1834, '\u333D', 1835, '\u333E', 1836, '\u333F', 1837, '\u3340', 1838, '\u3341', 1839, '\u3342', 1840, '\u3343', 1841, '\u3344', 1842, '\u3345', 1843, '\u3346', 1844, '\u3347', 1845, '\u3348', 1846, '\u3349', 1847, '\u334A', 1848, '\u334B', 1849, '\u334C', 1850, '\u334D', 1851, '\u334E', 1852, '\u334F', 1853, '\u3350', 1854, '\u3351', 1855, '\u3352', 1856, '\u3353', 1857, '\u3354', 1858, '\u3355', 1859, '\u3356', 1860, '\u3357', 1861, '\u3358', 1862, '\u3359', 1863, '\u335A', 1864, '\u335B', 1865, '\u335C', 1866, '\u335D', 1867, '\u335E', 1868, '\u335F', 1869, '\u3360', 1870, '\u3361', 1871, '\u3362', 1872, '\u3363', 1873, '\u3364', 1874, '\u3365', 1875, '\u3366', 1876, '\u3367', 1877, '\u3368', 1878, '\u3369', 1879, '\u336A', 1880, '\u336B', 1881, '\u336C', 1882, '\u336D', 1883, '\u336E', 1884, '\u336F', 1885, '\u3370', 1886, '\u3371', 1887, '\u3372', 1888, '\u3373', 1889, '\u3374', 1890, '\u3375', 1891, '\u3376', 1892, '\u337B', 1893, '\u337C', 1894, '\u337D', 1895, '\u337E', 1896, '\u337F', 1897, '\u3380', 1898, '\u3381', 1899, '\u3382', 1900, '\u3383', 1901, '\u3384', 1902, '\u3385', 1903, '\u3386', 1904, '\u3387', 1905, '\u3388', 1906, '\u3389', 1907, '\u338A', 1908, '\u338B', 1909, '\u338C', 1910, '\u338D', 1911, '\u338E', 1912, '\u338F', 1913, '\u3390', 1914, '\u3391', 1915, '\u3392', 1916, '\u3393', 1917, '\u3394', 1918, '\u3395', 1919, '\u3396', 1920, '\u3397', 1921, '\u3398', 1922, '\u3399', 1923, '\u339A', 1924, '\u339B', 1925, '\u339C', 1926, '\u339D', 1927, '\u339E', 1928, '\u339F', 1929, '\u33A0', 1930, '\u33A1', 1931, '\u33A2', 1932, '\u33A3', 1933, '\u33A4', 1934, '\u33A5', 1935, '\u33A6', 1936, '\u33A7', 1937, '\u33A8', 1938, '\u33A9', 1939, '\u33AA', 1940, '\u33AB', 1941, '\u33AC', 1942, '\u33AD', 1943, '\u33AE', 1944, '\u33AF', 1945, '\u33B0', 1946, '\u33B1', 1947, '\u33B2', 1948, '\u33B3', 1949, '\u33B4', 1950, '\u33B5', 1951, '\u33B6', 1952, '\u33B7', 1953, '\u33B8', 1954, '\u33B9', 1955, '\u33BA', 1956, '\u33BB', 1957, '\u33BC', 1958, '\u33BD', 1959, '\u33BE', 1960, '\u33BF', 1961, '\u33C0', 1962, '\u33C1', 1963, '\u33C2', 1964, '\u33C3', 1965, '\u33C4', 1966, '\u33C5', 1967, '\u33C6', 1968, '\u33C7', 1969, '\u33C8', 1970, '\u33C9', 1971, '\u33CA', 1972, '\u33CB', 1973, '\u33CC', 1974, '\u33CD', 1975, '\u33CE', 1976, '\u33CF', 1977, '\u33D0', 1978, '\u33D1', 1979, '\u33D2', 1980, '\u33D3', 1981, '\u33D4', 1982, '\u33D5', 1983, '\u33D6', 1984, '\u33D7', 1985, '\u33D8', 1986, '\u33D9', 1987, '\u33DA', 1988, '\u33DB', 1989, '\u33DC', 1990, '\u33DD', 1991, '\u33E0', 1992, '\u33E1', 1993, '\u33E2', 1994, '\u33E3', 1995, '\u33E4', 1996, '\u33E5', 1997, '\u33E6', 1998, '\u33E7', 1999, '\u33E8', 2000, '\u33E9', 2001, '\u33EA', 2002, '\u33EB', 2003, '\u33EC', 2004, '\u33ED', 2005, '\u33EE', 2006, '\u33EF', 2007, '\u33F0', 2008, '\u33F1', 2009, '\u33F2', 2010, '\u33F3', 2011, '\u33F4', 2012, '\u33F5', 2013, '\u33F6', 2014, '\u33F7', 2015, '\u33F8', 2016, '\u33F9', 2017, '\u33FA', 2018, '\u33FB', 2019, '\u33FC', 2020, '\u33FD', 2021, '\u33FE', 2022, '\uF900', 2023, '\uF901', 2024, '\uF902', 1349, '\uF903', 2025, '\uF904', 2026, '\uF905', 2027, '\uF906', 2028, '\uF907', 1403, '\uF908', 1403, '\uF909', 2029, '\uF90A', 1357, '\uF90B', 2030, '\uF90C', 2031, '\uF90D', 2032, '\uF90E', 2033, '\uF90F', 2034, '\uF910', 2035, '\uF911', 2036, '\uF912', 2037, '\uF913', 2038, '\uF914', 2039, '\uF915', 2040, '\uF916', 2041, '\uF917', 2042, '\uF918', 2043, '\uF919', 2044, '\uF91A', 2045, '\uF91B', 2046, '\uF91C', 2047, '\uF91D', 2048, '\uF91E', 2049, '\uF91F', 2050, '\uF920', 2051, '\uF921', 2052, '\uF922', 2053, '\uF923', 2054, '\uF924', 2055, '\uF925', 2056, '\uF926', 2057, '\uF927', 2058, '\uF928', 2059, '\uF929', 2060, '\uF92A', 2061, '\uF92B', 2062, '\uF92C', 2063, '\uF92D', 2064, '\uF92E', 2065, '\uF92F', 2066, '\uF930', 2067, '\uF931', 2068, '\uF932', 2069, '\uF933', 2070, '\uF934', 1315, '\uF935', 2071, '\uF936', 2072, '\uF937', 2073, '\uF938', 2074, '\uF939', 2075, '\uF93A', 2076, '\uF93B', 2077, '\uF93C', 2078, '\uF93D', 2079, '\uF93E', 2080, '\uF93F', 2081, '\uF940', 1388, '\uF941', 2082, '\uF942', 2083, '\uF943', 2084, '\uF944', 2085, '\uF945', 2086, '\uF946', 2087, '\uF947', 2088, '\uF948', 2089, '\uF949', 2090, '\uF94A', 2091, '\uF94B', 2092, '\uF94C', 2093, '\uF94D', 2094, '\uF94E', 2095, '\uF94F', 2096, '\uF950', 2097, '\uF951', 2098, '\uF952', 2099, '\uF953', 2100, '\uF954', 2101, '\uF955', 2102, '\uF956', 2103, '\uF957', 2104, '\uF958', 2105, '\uF959', 2106, '\uF95A', 2107, '\uF95B', 2108, '\uF95C', 2039, '\uF95D', 2109, '\uF95E', 2110, '\uF95F', 2111, '\uF960', 2112, '\uF961', 2113, '\uF962', 2114, '\uF963', 2115, '\uF964', 2116, '\uF965', 2117, '\uF966', 2118, '\uF967', 2119, '\uF968', 2120, '\uF969', 2121, '\uF96A', 2122, '\uF96B', 2123, '\uF96C', 2124, '\uF96D', 2125, '\uF96E', 2126, '\uF96F', 2127, '\uF970', 2128, '\uF971', 1351, '\uF972', 2129, '\uF973', 2130, '\uF974', 2131, '\uF975', 2132, '\uF976', 2133, '\uF977', 2134, '\uF978', 2135, '\uF979', 2136, '\uF97A', 2137, '\uF97B', 2138, '\uF97C', 2139, '\uF97D', 2140, '\uF97E', 2141, '\uF97F', 2142, '\uF980', 2143, '\uF981', 1228, '\uF982', 2144, '\uF983', 2145, '\uF984', 2146, '\uF985', 2147, '\uF986', 2148, '\uF987', 2149, '\uF988', 2150, '\uF989', 2151, '\uF98A', 1209, '\uF98B', 2152, '\uF98C', 2153, '\uF98D', 2154, '\uF98E', 2155, '\uF98F', 2156, '\uF990', 2157, '\uF991', 2158, '\uF992', 2159, '\uF993', 2160, '\uF994', 2161, '\uF995', 2162, '\uF996', 2163, '\uF997', 2164, '\uF998', 2165, '\uF999', 2166, '\uF99A', 2167, '\uF99B', 2168, '\uF99C', 2169, '\uF99D', 2170, '\uF99E', 2171, '\uF99F', 2172, '\uF9A0', 2173, '\uF9A1', 2127, '\uF9A2', 2174, '\uF9A3', 2175, '\uF9A4', 2176, '\uF9A5', 2177, '\uF9A6', 2178, '\uF9A7', 2179, '\uF9A8', 2180, '\uF9A9', 2181, '\uF9AA', 2111, '\uF9AB', 2182, '\uF9AC', 2183, '\uF9AD', 2184, '\uF9AE', 2185, '\uF9AF', 2186, '\uF9B0', 2187, '\uF9B1', 2188, '\uF9B2', 2189, '\uF9B3', 2190, '\uF9B4', 2191, '\uF9B5', 2192, '\uF9B6', 2193, '\uF9B7', 2194, '\uF9B8', 2195, '\uF9B9', 2196, '\uF9BA', 2197, '\uF9BB', 2198, '\uF9BC', 2199, '\uF9BD', 2200, '\uF9BE', 2201, '\uF9BF', 2039, '\uF9C0', 2202, '\uF9C1', 2203, '\uF9C2', 2204, '\uF9C3', 2205, '\uF9C4', 1402, '\uF9C5', 2206, '\uF9C6', 2207, '\uF9C7', 2208, '\uF9C8', 2209, '\uF9C9', 2210, '\uF9CA', 2211, '\uF9CB', 2212, '\uF9CC', 2213, '\uF9CD', 2214, '\uF9CE', 2215, '\uF9CF', 2216, '\uF9D0', 2217, '\uF9D1', 1669, '\uF9D2', 2218, '\uF9D3', 2219, '\uF9D4', 2220, '\uF9D5', 2221, '\uF9D6', 2222, '\uF9D7', 2223, '\uF9D8', 2224, '\uF9D9', 2225, '\uF9DA', 2226, '\uF9DB', 2113, '\uF9DC', 2227, '\uF9DD', 2228, '\uF9DE', 2229, '\uF9DF', 2230, '\uF9E0', 2231, '\uF9E1', 2232, '\uF9E2', 2233, '\uF9E3', 2234, '\uF9E4', 2235, '\uF9E5', 2236, '\uF9E6', 2237, '\uF9E7', 2238, '\uF9E8', 2239, '\uF9E9', 1356, '\uF9EA', 2240, '\uF9EB', 2241, '\uF9EC', 2242, '\uF9ED', 2243, '\uF9EE', 2244, '\uF9EF', 2245, '\uF9F0', 2246, '\uF9F1', 2247, '\uF9F2', 2248, '\uF9F3', 2249, '\uF9F4', 2250, '\uF9F5', 2251, '\uF9F6', 2252, '\uF9F7', 1307, '\uF9F8', 2253, '\uF9F9', 2254, '\uF9FA', 2255, '\uF9FB', 2256, '\uF9FC', 2257, '\uF9FD', 2258, '\uF9FE', 2259, '\uF9FF', 2260, '\uFA00', 2261, '\uFA01', 2262, '\uFA02', 2263, '\uFA03', 2264, '\uFA04', 2265, '\uFA05', 2266, '\uFA06', 2267, '\uFA07', 2268, '\uFA08', 1334, '\uFA09', 2269, '\uFA0A', 1337, '\uFA0B', 2270, '\uFA0C', 2271, '\uFA0D', 2272, '\uFA10', 2273, '\uFA12', 2274, '\uFA15', 2275, '\uFA16', 2276, '\uFA17', 2277, '\uFA18', 2278, '\uFA19', 2279, '\uFA1A', 2280, '\uFA1B', 2281, '\uFA1C', 2282, '\uFA1D', 2283, '\uFA1E', 1314, '\uFA20', 2284, '\uFA22', 2285, '\uFA25', 2286, '\uFA26', 2287, '\uFA2A', 2288, '\uFA2B', 2289, '\uFA2C', 2290, '\uFA2D', 2291, '\uFA30', 2292, '\uFA31', 2293, '\uFA32', 2294, '\uFA33', 2295, '\uFA34', 2296, '\uFA35', 2297, '\uFA36', 2298, '\uFA37', 2299, '\uFA38', 2300, '\uFA39', 2301, '\uFA3A', 2302, '\uFA3B', 2303, '\uFA3C', 1235, '\uFA3D', 2304, '\uFA3E', 2305, '\uFA3F', 2306, '\uFA40', 2307, '\uFA41', 2308, '\uFA42', 2309, '\uFA43', 2310, '\uFA44', 2311, '\uFA45', 2312, '\uFA46', 2313, '\uFA47', 2314, '\uFA48', 2315, '\uFA49', 2316, '\uFA4A', 2317, '\uFA4B', 2318, '\uFA4C', 1674, '\uFA4D', 2319, '\uFA4E', 2320, '\uFA4F', 2321, '\uFA50', 2322, '\uFA51', 1678, '\uFA52', 2323, '\uFA53', 2324, '\uFA54', 2325, '\uFA55', 2326, '\uFA56', 2327, '\uFA57', 2163, '\uFA58', 2328, '\uFA59', 2329, '\uFA5A', 2330, '\uFA5B', 2331, '\uFA5C', 2332, '\uFA5D', 2333, '\uFA5E', 2333, '\uFA5F', 2334, '\uFA60', 2335, '\uFA61', 2336, '\uFA62', 2337, '\uFA63', 2338, '\uFA64', 2339, '\uFA65', 2340, '\uFA66', 2341, '\uFA67', 2286, '\uFA68', 2342, '\uFA69', 2343, '\uFA6A', 2344, '\uFB00', 2345, '\uFB01', 2346, '\uFB02', 2347, '\uFB03', 2348, '\uFB04', 2349, '\uFB05', 2350, '\uFB06', 2350, '\uFB13', 2351, '\uFB14', 2352, '\uFB15', 2353, '\uFB16', 2354, '\uFB17', 2355, '\uFB1D', 2356, '\uFB1F', 2357, '\uFB20', 2358, '\uFB21', 994, '\uFB22', 997, '\uFB23', 2359, '\uFB24', 2360, '\uFB25', 2361, '\uFB26', 2362, '\uFB27', 2363, '\uFB28', 2364, '\uFB29', 958, '\uFB2A', 2365, '\uFB2B', 2366, '\uFB2C', 2367, '\uFB2D', 2368, '\uFB2E', 2369, '\uFB2F', 2370, '\uFB30', 2371, '\uFB31', 2372, '\uFB32', 2373, '\uFB33', 2374, '\uFB34', 2375, '\uFB35', 2376, '\uFB36', 2377, '\uFB38', 2378, '\uFB39', 2379, '\uFB3A', 2380, '\uFB3B', 2381, '\uFB3C', 2382, '\uFB3E', 2383, '\uFB40', 2384, '\uFB41', 2385, '\uFB43', 2386, '\uFB44', 2387, '\uFB46', 2388, '\uFB47', 2389, '\uFB48', 2390, '\uFB49', 2391, '\uFB4A', 2392, '\uFB4B', 2393, '\uFB4C', 2394, '\uFB4D', 2395, '\uFB4E', 2396, '\uFB4F', 2397, '\uFB50', 2398, '\uFB51', 2398, '\uFB52', 2399, '\uFB53', 2399, '\uFB54', 2399, '\uFB55', 2399, '\uFB56', 2400, '\uFB57', 2400, '\uFB58', 2400, '\uFB59', 2400, '\uFB5A', 2401, '\uFB5B', 2401, '\uFB5C', 2401, '\uFB5D', 2401, '\uFB5E', 2402, '\uFB5F', 2402, '\uFB60', 2402, '\uFB61', 2402, '\uFB62', 2403, '\uFB63', 2403, '\uFB64', 2403, '\uFB65', 2403, '\uFB66', 2404, '\uFB67', 2404, '\uFB68', 2404, '\uFB69', 2404, '\uFB6A', 2405, '\uFB6B', 2405, '\uFB6C', 2405, '\uFB6D', 2405, '\uFB6E', 2406, '\uFB6F', 2406, '\uFB70', 2406, '\uFB71', 2406, '\uFB72', 2407, '\uFB73', 2407, '\uFB74', 2407, '\uFB75', 2407, '\uFB76', 2408, '\uFB77', 2408, '\uFB78', 2408, '\uFB79', 2408, '\uFB7A', 2409, '\uFB7B', 2409, '\uFB7C', 2409, '\uFB7D', 2409, '\uFB7E', 2410, '\uFB7F', 2410, '\uFB80', 2410, '\uFB81', 2410, '\uFB82', 2411, '\uFB83', 2411, '\uFB84', 2412, '\uFB85', 2412, '\uFB86', 2413, '\uFB87', 2413, '\uFB88', 2414, '\uFB89', 2414, '\uFB8A', 2415, '\uFB8B', 2415, '\uFB8C', 2416, '\uFB8D', 2416, '\uFB8E', 2417, '\uFB8F', 2417, '\uFB90', 2417, '\uFB91', 2417, '\uFB92', 2418, '\uFB93', 2418, '\uFB94', 2418, '\uFB95', 2418, '\uFB96', 2419, '\uFB97', 2419, '\uFB98', 2419, '\uFB99', 2419, '\uFB9A', 2420, '\uFB9B', 2420, '\uFB9C', 2420, '\uFB9D', 2420, '\uFB9E', 2421, '\uFB9F', 2421, '\uFBA0', 2422, '\uFBA1', 2422, '\uFBA2', 2422, '\uFBA3', 2422, '\uFBA4', 404, '\uFBA5', 404, '\uFBA6', 2423, '\uFBA7', 2423, '\uFBA8', 2423, '\uFBA9', 2423, '\uFBAA', 2424, '\uFBAB', 2424, '\uFBAC', 2424, '\uFBAD', 2424, '\uFBAE', 2425, '\uFBAF', 2425, '\uFBB0', 406, '\uFBB1', 406, '\uFBD3', 2426, '\uFBD4', 2426, '\uFBD5', 2426, '\uFBD6', 2426, '\uFBD7', 2427, '\uFBD8', 2427, '\uFBD9', 2428, '\uFBDA', 2428, '\uFBDB', 2429, '\uFBDC', 2429, '\uFBDD', 402, '\uFBDE', 2430, '\uFBDF', 2430, '\uFBE0', 2431, '\uFBE1', 2431, '\uFBE2', 2432, '\uFBE3', 2432, '\uFBE4', 2433, '\uFBE5', 2433, '\uFBE6', 2433, '\uFBE7', 2433, '\uFBE8', 2434, '\uFBE9', 2434, '\uFBEA', 2435, '\uFBEB', 2435, '\uFBEC', 2436, '\uFBED', 2436, '\uFBEE', 2437, '\uFBEF', 2437, '\uFBF0', 2438, '\uFBF1', 2438, '\uFBF2', 2439, '\uFBF3', 2439, '\uFBF4', 2440, '\uFBF5', 2440, '\uFBF6', 2441, '\uFBF7', 2441, '\uFBF8', 2441, '\uFBF9', 2442, '\uFBFA', 2442, '\uFBFB', 2442, '\uFBFC', 2443, '\uFBFD', 2443, '\uFBFE', 2443, '\uFBFF', 2443, '\uFC00', 2444, '\uFC01', 2445, '\uFC02', 2446, '\uFC03', 2442, '\uFC04', 2447, '\uFC05', 2448, '\uFC06', 2449, '\uFC07', 2450, '\uFC08', 2451, '\uFC09', 2452, '\uFC0A', 2453, '\uFC0B', 2454, '\uFC0C', 2455, '\uFC0D', 2456, '\uFC0E', 2457, '\uFC0F', 2458, '\uFC10', 2459, '\uFC11', 2460, '\uFC12', 2461, '\uFC13', 2462, '\uFC14', 2463, '\uFC15', 2464, '\uFC16', 2465, '\uFC17', 2466, '\uFC18', 2467, '\uFC19', 2468, '\uFC1A', 2469, '\uFC1B', 2470, '\uFC1C', 2471, '\uFC1D', 2472, '\uFC1E', 2473, '\uFC1F', 2474, '\uFC20', 2475, '\uFC21', 2476, '\uFC22', 2477, '\uFC23', 2478, '\uFC24', 2479, '\uFC25', 2480, '\uFC26', 2481, '\uFC27', 2482, '\uFC28', 2483, '\uFC29', 2484, '\uFC2A', 2485, '\uFC2B', 2486, '\uFC2C', 2487, '\uFC2D', 2488, '\uFC2E', 2489, '\uFC2F', 2490, '\uFC30', 2491, '\uFC31', 2492, '\uFC32', 2493, '\uFC33', 2494, '\uFC34', 2495, '\uFC35', 2496, '\uFC36', 2497, '\uFC37', 2498, '\uFC38', 2499, '\uFC39', 2500, '\uFC3A', 2501, '\uFC3B', 2502, '\uFC3C', 2503, '\uFC3D', 2504, '\uFC3E', 2505, '\uFC3F', 2506, '\uFC40', 2507, '\uFC41', 2508, '\uFC42', 2509, '\uFC43', 2510, '\uFC44', 2511, '\uFC45', 2512, '\uFC46', 2513, '\uFC47', 2514, '\uFC48', 2515, '\uFC49', 2516, '\uFC4A', 2517, '\uFC4B', 2518, '\uFC4C', 2519, '\uFC4D', 2520, '\uFC4E', 2521, '\uFC4F', 2522, '\uFC50', 2523, '\uFC51', 2524, '\uFC52', 2525, '\uFC53', 2526, '\uFC54', 2527, '\uFC55', 2528, '\uFC56', 2529, '\uFC57', 2530, '\uFC58', 2531, '\uFC59', 2532, '\uFC5A', 2533, '\uFC5B', 2534, '\uFC5C', 2535, '\uFC5D', 2536, '\uFC5E', 2537, '\uFC5F', 2538, '\uFC60', 2539, '\uFC61', 2540, '\uFC62', 2541, '\uFC63', 2542, '\uFC64', 2543, '\uFC65', 2544, '\uFC66', 2446, '\uFC67', 2545, '\uFC68', 2442, '\uFC69', 2447, '\uFC6A', 2546, '\uFC6B', 2547, '\uFC6C', 2451, '\uFC6D', 2548, '\uFC6E', 2452, '\uFC6F', 2453, '\uFC70', 2549, '\uFC71', 2550, '\uFC72', 2457, '\uFC73', 2551, '\uFC74', 2458, '\uFC75', 2459, '\uFC76', 2552, '\uFC77', 2553, '\uFC78', 2461, '\uFC79', 2554, '\uFC7A', 2462, '\uFC7B', 2463, '\uFC7C', 2492, '\uFC7D', 2493, '\uFC7E', 2496, '\uFC7F', 2497, '\uFC80', 2498, '\uFC81', 2502, '\uFC82', 2503, '\uFC83', 2504, '\uFC84', 2505, '\uFC85', 2509, '\uFC86', 2510, '\uFC87', 2511, '\uFC88', 2555, '\uFC89', 2515, '\uFC8A', 2556, '\uFC8B', 2557, '\uFC8C', 2521, '\uFC8D', 2558, '\uFC8E', 2522, '\uFC8F', 2523, '\uFC90', 2536, '\uFC91', 2559, '\uFC92', 2560, '\uFC93', 2531, '\uFC94', 2561, '\uFC95', 2532, '\uFC96', 2533, '\uFC97', 2444, '\uFC98', 2445, '\uFC99', 2562, '\uFC9A', 2446, '\uFC9B', 2563, '\uFC9C', 2448, '\uFC9D', 2449, '\uFC9E', 2450, '\uFC9F', 2451, '\uFCA0', 2564, '\uFCA1', 2454, '\uFCA2', 2455, '\uFCA3', 2456, '\uFCA4', 2457, '\uFCA5', 2565, '\uFCA6', 2461, '\uFCA7', 2464, '\uFCA8', 2465, '\uFCA9', 2466, '\uFCAA', 2467, '\uFCAB', 2468, '\uFCAC', 2470, '\uFCAD', 2471, '\uFCAE', 2472, '\uFCAF', 2473, '\uFCB0', 2474, '\uFCB1', 2475, '\uFCB2', 2566, '\uFCB3', 2476, '\uFCB4', 2477, '\uFCB5', 2478, '\uFCB6', 2479, '\uFCB7', 2480, '\uFCB8', 2481, '\uFCB9', 2483, '\uFCBA', 2484, '\uFCBB', 2485, '\uFCBC', 2486, '\uFCBD', 2487, '\uFCBE', 2488, '\uFCBF', 2489, '\uFCC0', 2490, '\uFCC1', 2491, '\uFCC2', 2494, '\uFCC3', 2495, '\uFCC4', 2499, '\uFCC5', 2500, '\uFCC6', 2501, '\uFCC7', 2502, '\uFCC8', 2503, '\uFCC9', 2506, '\uFCCA', 2507, '\uFCCB', 2508, '\uFCCC', 2509, '\uFCCD', 2567, '\uFCCE', 2512, '\uFCCF', 2513, '\uFCD0', 2514, '\uFCD1', 2515, '\uFCD2', 2518, '\uFCD3', 2519, '\uFCD4', 2520, '\uFCD5', 2521, '\uFCD6', 2568, '\uFCD7', 2524, '\uFCD8', 2525, '\uFCD9', 2569, '\uFCDA', 2528, '\uFCDB', 2529, '\uFCDC', 2530, '\uFCDD', 2531, '\uFCDE', 2570, '\uFCDF', 2446, '\uFCE0', 2563, '\uFCE1', 2451, '\uFCE2', 2564, '\uFCE3', 2457, '\uFCE4', 2565, '\uFCE5', 2461, '\uFCE6', 2571, '\uFCE7', 2474, '\uFCE8', 2572, '\uFCE9', 2573, '\uFCEA', 2574, '\uFCEB', 2502, '\uFCEC', 2503, '\uFCED', 2509, '\uFCEE', 2521, '\uFCEF', 2568, '\uFCF0', 2531, '\uFCF1', 2570, '\uFCF2', 2575, '\uFCF3', 2576, '\uFCF4', 2577, '\uFCF5', 2578, '\uFCF6', 2579, '\uFCF7', 2580, '\uFCF8', 2581, '\uFCF9', 2582, '\uFCFA', 2583, '\uFCFB', 2584, '\uFCFC', 2585, '\uFCFD', 2586, '\uFCFE', 2587, '\uFCFF', 2588, '\uFD00', 2589, '\uFD01', 2590, '\uFD02', 2591, '\uFD03', 2592, '\uFD04', 2593, '\uFD05', 2594, '\uFD06', 2595, '\uFD07', 2596, '\uFD08', 2597, '\uFD09', 2598, '\uFD0A', 2599, '\uFD0B', 2600, '\uFD0C', 2573, '\uFD0D', 2601, '\uFD0E', 2602, '\uFD0F', 2603, '\uFD10', 2604, '\uFD11', 2578, '\uFD12', 2579, '\uFD13', 2580, '\uFD14', 2581, '\uFD15', 2582, '\uFD16', 2583, '\uFD17', 2584, '\uFD18', 2585, '\uFD19', 2586, '\uFD1A', 2587, '\uFD1B', 2588, '\uFD1C', 2589, '\uFD1D', 2590, '\uFD1E', 2591, '\uFD1F', 2592, '\uFD20', 2593, '\uFD21', 2594, '\uFD22', 2595, '\uFD23', 2596, '\uFD24', 2597, '\uFD25', 2598, '\uFD26', 2599, '\uFD27', 2600, '\uFD28', 2573, '\uFD29', 2601, '\uFD2A', 2602, '\uFD2B', 2603, '\uFD2C', 2604, '\uFD2D', 2598, '\uFD2E', 2599, '\uFD2F', 2600, '\uFD30', 2573, '\uFD31', 2572, '\uFD32', 2574, '\uFD33', 2482, '\uFD34', 2471, '\uFD35', 2472, '\uFD36', 2473, '\uFD37', 2598, '\uFD38', 2599, '\uFD39', 2600, '\uFD3A', 2482, '\uFD3B', 2483, '\uFD3C', 2605, '\uFD3D', 2605, '\uFD50', 2606, '\uFD51', 2607, '\uFD52', 2607, '\uFD53', 2608, '\uFD54', 2609, '\uFD55', 2610, '\uFD56', 2611, '\uFD57', 2612, '\uFD58', 2613, '\uFD59', 2613, '\uFD5A', 2614, '\uFD5B', 2615, '\uFD5C', 2616, '\uFD5D', 2617, '\uFD5E', 2618, '\uFD5F', 2619, '\uFD60', 2619, '\uFD61', 2620, '\uFD62', 2621, '\uFD63', 2621, '\uFD64', 2622, '\uFD65', 2622, '\uFD66', 2623, '\uFD67', 2624, '\uFD68', 2624, '\uFD69', 2625, '\uFD6A', 2626, '\uFD6B', 2626, '\uFD6C', 2627, '\uFD6D', 2627, '\uFD6E', 2628, '\uFD6F', 2629, '\uFD70', 2629, '\uFD71', 2630, '\uFD72', 2630, '\uFD73', 2631, '\uFD74', 2632, '\uFD75', 2633, '\uFD76', 2634, '\uFD77', 2634, '\uFD78', 2635, '\uFD79', 2636, '\uFD7A', 2637, '\uFD7B', 2638, '\uFD7C', 2639, '\uFD7D', 2639, '\uFD7E', 2640, '\uFD7F', 2641, '\uFD80', 2642, '\uFD81', 2643, '\uFD82', 2644, '\uFD83', 2645, '\uFD84', 2645, '\uFD85', 2646, '\uFD86', 2646, '\uFD87', 2647, '\uFD88', 2647, '\uFD89', 2648, '\uFD8A', 2649, '\uFD8B', 2650, '\uFD8C', 2651, '\uFD8D', 2652, '\uFD8E', 2653, '\uFD8F', 2654, '\uFD92', 2655, '\uFD93', 2656, '\uFD94', 2657, '\uFD95', 2658, '\uFD96', 2659, '\uFD97', 2660, '\uFD98', 2660, '\uFD99', 2661, '\uFD9A', 2662, '\uFD9B', 2663, '\uFD9C', 2664, '\uFD9D', 2664, '\uFD9E', 2665, '\uFD9F', 2666, '\uFDA0', 2667, '\uFDA1', 2668, '\uFDA2', 2669, '\uFDA3', 2670, '\uFDA4', 2671, '\uFDA5', 2672, '\uFDA6', 2673, '\uFDA7', 2674, '\uFDA8', 2675, '\uFDA9', 2676, '\uFDAA', 2677, '\uFDAB', 2678, '\uFDAC', 2679, '\uFDAD', 2680, '\uFDAE', 2681, '\uFDAF', 2682, '\uFDB0', 2683, '\uFDB1', 2684, '\uFDB2', 2685, '\uFDB3', 2686, '\uFDB4', 2640, '\uFDB5', 2642, '\uFDB6', 2687, '\uFDB7', 2688, '\uFDB8', 2689, '\uFDB9', 2690, '\uFDBA', 2691, '\uFDBB', 2692, '\uFDBC', 2691, '\uFDBD', 2689, '\uFDBE', 2693, '\uFDBF', 2694, '\uFDC0', 2695, '\uFDC1', 2696, '\uFDC2', 2697, '\uFDC3', 2692, '\uFDC4', 2633, '\uFDC5', 2623, '\uFDC6', 2698, '\uFDC7', 2699, '\uFDF0', 2700, '\uFDF1', 2701, '\uFDF2', 2702, '\uFDF3', 2703, '\uFDF4', 2704, '\uFDF5', 2705, '\uFDF6', 2706, '\uFDF7', 2707, '\uFDF8', 2708, '\uFDF9', 2709, '\uFDFA', 2710, '\uFDFB', 2711, '\uFDFC', 2712, '\uFE30', 938, '\uFE31', 2713, '\uFE32', 2714, '\uFE33', 2715, '\uFE34', 2715, '\uFE35', 961, '\uFE36', 962, '\uFE37', 2716, '\uFE38', 2717, '\uFE39', 2718, '\uFE3A', 2719, '\uFE3B', 2720, '\uFE3C', 2721, '\uFE3D', 2722, '\uFE3E', 2723, '\uFE3F', 1088, '\uFE40', 1089, '\uFE41', 2724, '\uFE42', 2725, '\uFE43', 2726, '\uFE44', 2727, '\uFE49', 945, '\uFE4A', 945, '\uFE4B', 945, '\uFE4C', 945, '\uFE4D', 2715, '\uFE4E', 2715, '\uFE4F', 2715, '\uFE50', 2728, '\uFE51', 2729, '\uFE52', 937, '\uFE54', 309, '\uFE55', 2730, '\uFE56', 2731, '\uFE57', 2732, '\uFE58', 2713, '\uFE59', 961, '\uFE5A', 962, '\uFE5B', 2716, '\uFE5C', 2717, '\uFE5D', 2718, '\uFE5E', 2719, '\uFE5F', 2733, '\uFE60', 2734, '\uFE61', 2735, '\uFE62', 958, '\uFE63', 2736, '\uFE64', 2737, '\uFE65', 2738, '\uFE66', 960, '\uFE68', 2739, '\uFE69', 2740, '\uFE6A', 2741, '\uFE6B', 2742, '\uFE70', 2743, '\uFE71', 2744, '\uFE72', 2745, '\uFE74', 2746, '\uFE76', 2747, '\uFE77', 2748, '\uFE78', 2749, '\uFE79', 2750, '\uFE7A', 2751, '\uFE7B', 2752, '\uFE7C', 2753, '\uFE7D', 2754, '\uFE7E', 2755, '\uFE7F', 2756, '\uFE80', 2757, '\uFE81', 395, '\uFE82', 395, '\uFE83', 396, '\uFE84', 396, '\uFE85', 397, '\uFE86', 397, '\uFE87', 398, '\uFE88', 398, '\uFE89', 399, '\uFE8A', 399, '\uFE8B', 399, '\uFE8C', 399, '\uFE8D', 2758, '\uFE8E', 2758, '\uFE8F', 2759, '\uFE90', 2759, '\uFE91', 2759, '\uFE92', 2759, '\uFE93', 2760, '\uFE94', 2760, '\uFE95', 2761, '\uFE96', 2761, '\uFE97', 2761, '\uFE98', 2761, '\uFE99', 2762, '\uFE9A', 2762, '\uFE9B', 2762, '\uFE9C', 2762, '\uFE9D', 2763, '\uFE9E', 2763, '\uFE9F', 2763, '\uFEA0', 2763, '\uFEA1', 2764, '\uFEA2', 2764, '\uFEA3', 2764, '\uFEA4', 2764, '\uFEA5', 2765, '\uFEA6', 2765, '\uFEA7', 2765, '\uFEA8', 2765, '\uFEA9', 2766, '\uFEAA', 2766, '\uFEAB', 2767, '\uFEAC', 2767, '\uFEAD', 2768, '\uFEAE', 2768, '\uFEAF', 2769, '\uFEB0', 2769, '\uFEB1', 2770, '\uFEB2', 2770, '\uFEB3', 2770, '\uFEB4', 2770, '\uFEB5', 2771, '\uFEB6', 2771, '\uFEB7', 2771, '\uFEB8', 2771, '\uFEB9', 2772, '\uFEBA', 2772, '\uFEBB', 2772, '\uFEBC', 2772, '\uFEBD', 2773, '\uFEBE', 2773, '\uFEBF', 2773, '\uFEC0', 2773, '\uFEC1', 2774, '\uFEC2', 2774, '\uFEC3', 2774, '\uFEC4', 2774, '\uFEC5', 2775, '\uFEC6', 2775, '\uFEC7', 2775, '\uFEC8', 2775, '\uFEC9', 2776, '\uFECA', 2776, '\uFECB', 2776, '\uFECC', 2776, '\uFECD', 2777, '\uFECE', 2777, '\uFECF', 2777, '\uFED0', 2777, '\uFED1', 2778, '\uFED2', 2778, '\uFED3', 2778, '\uFED4', 2778, '\uFED5', 2779, '\uFED6', 2779, '\uFED7', 2779, '\uFED8', 2779, '\uFED9', 2780, '\uFEDA', 2780, '\uFEDB', 2780, '\uFEDC', 2780, '\uFEDD', 2781, '\uFEDE', 2781, '\uFEDF', 2781, '\uFEE0', 2781, '\uFEE1', 2782, '\uFEE2', 2782, '\uFEE3', 2782, '\uFEE4', 2782, '\uFEE5', 2783, '\uFEE6', 2783, '\uFEE7', 2783, '\uFEE8', 2783, '\uFEE9', 2784, '\uFEEA', 2784, '\uFEEB', 2784, '\uFEEC', 2784, '\uFEED', 2785, '\uFEEE', 2785, '\uFEEF', 2434, '\uFEF0', 2434, '\uFEF1', 2786, '\uFEF2', 2786, '\uFEF3', 2786, '\uFEF4', 2786, '\uFEF5', 2787, '\uFEF6', 2787, '\uFEF7', 2788, '\uFEF8', 2788, '\uFEF9', 2789, '\uFEFA', 2789, '\uFEFB', 2790, '\uFEFC', 2790, '\uFF01', 2732, '\uFF02', 2791, '\uFF03', 2733, '\uFF04', 2740, '\uFF05', 2741, '\uFF06', 2734, '\uFF07', 2792, '\uFF08', 961, '\uFF09', 962, '\uFF0A', 2735, '\uFF0B', 958, '\uFF0C', 2728, '\uFF0D', 2736, '\uFF0E', 937, '\uFF0F', 2793, '\uFF10', 950, '\uFF11', 9, '\uFF12', 4, '\uFF13', 5, '\uFF14', 952, '\uFF15', 953, '\uFF16', 954, '\uFF17', 955, '\uFF18', 956, '\uFF19', 957, '\uFF1A', 2730, '\uFF1B', 309, '\uFF1C', 2737, '\uFF1D', 960, '\uFF1E', 2738, '\uFF1F', 2731, '\uFF20', 2742, '\uFF21', 1167, '\uFF22', 989, '\uFF23', 967, '\uFF24', 1002, '\uFF25', 991, '\uFF26', 992, '\uFF27', 1168, '\uFF28', 974, '\uFF29', 976, '\uFF2A', 1169, '\uFF2B', 988, '\uFF2C', 977, '\uFF2D', 993, '\uFF2E', 978, '\uFF2F', 1170, '\uFF30', 980, '\uFF31', 981, '\uFF32', 982, '\uFF33', 1171, '\uFF34', 1172, '\uFF35', 1173, '\uFF36', 1020, '\uFF37', 1174, '\uFF38', 1025, '\uFF39', 1175, '\uFF3A', 986, '\uFF3B', 2794, '\uFF3C', 2739, '\uFF3D', 2795, '\uFF3E', 2796, '\uFF3F', 2715, '\uFF40', 925, '\uFF41', 2, '\uFF42', 1176, '\uFF43', 1038, '\uFF44', 1003, '\uFF45', 990, '\uFF46', 1177, '\uFF47', 973, '\uFF48', 284, '\uFF49', 951, '\uFF4A', 286, '\uFF4B', 1178, '\uFF4C', 300, '\uFF4D', 1039, '\uFF4E', 963, '\uFF4F', 10, '\uFF50', 1179, '\uFF51', 1180, '\uFF52', 287, '\uFF53', 180, '\uFF54', 1181, '\uFF55', 1182, '\uFF56', 1031, '\uFF57', 291, '\uFF58', 301, '\uFF59', 292, '\uFF5A', 1183, '\uFF5B', 2716, '\uFF5C', 2797, '\uFF5D', 2717, '\uFF5E', 2798, '\uFF5F', 2799, '\uFF60', 2800, '\uFF61', 2801, '\uFF62', 2724, '\uFF63', 2725, '\uFF64', 2729, '\uFF65', 2802, '\uFF66', 1773, '\uFF67', 2803, '\uFF68', 2804, '\uFF69', 2805, '\uFF6A', 2806, '\uFF6B', 2807, '\uFF6C', 2808, '\uFF6D', 2809, '\uFF6E', 2810, '\uFF6F', 2811, '\uFF70', 2812, '\uFF71', 1727, '\uFF72', 1728, '\uFF73', 1729, '\uFF74', 1730, '\uFF75', 1731, '\uFF76', 1732, '\uFF77', 1733, '\uFF78', 1734, '\uFF79', 1735, '\uFF7A', 1736, '\uFF7B', 1737, '\uFF7C', 1738, '\uFF7D', 1739, '\uFF7E', 1740, '\uFF7F', 1741, '\uFF80', 1742, '\uFF81', 1743, '\uFF82', 1744, '\uFF83', 1745, '\uFF84', 1746, '\uFF85', 1747, '\uFF86', 1748, '\uFF87', 1749, '\uFF88', 1750, '\uFF89', 1751, '\uFF8A', 1752, '\uFF8B', 1753, '\uFF8C', 1754, '\uFF8D', 1755, '\uFF8E', 1756, '\uFF8F', 1757, '\uFF90', 1758, '\uFF91', 1759, '\uFF92', 1760, '\uFF93', 1761, '\uFF94', 1762, '\uFF95', 1763, '\uFF96', 1764, '\uFF97', 1765, '\uFF98', 1766, '\uFF99', 1767, '\uFF9A', 1768, '\uFF9B', 1769, '\uFF9C', 1770, '\uFF9D', 2813, '\uFF9E', 2814, '\uFF9F', 2815, '\uFFA0', 1521, '\uFFA1', 1470, '\uFFA2', 1471, '\uFFA3', 1472, '\uFFA4', 1473, '\uFFA5', 1474, '\uFFA6', 1475, '\uFFA7', 1476, '\uFFA8', 1477, '\uFFA9', 1478, '\uFFAA', 1479, '\uFFAB', 1480, '\uFFAC', 1481, '\uFFAD', 1482, '\uFFAE', 1483, '\uFFAF', 1484, '\uFFB0', 1485, '\uFFB1', 1486, '\uFFB2', 1487, '\uFFB3', 1488, '\uFFB4', 1489, '\uFFB5', 1490, '\uFFB6', 1491, '\uFFB7', 1492, '\uFFB8', 1493, '\uFFB9', 1494, '\uFFBA', 1495, '\uFFBB', 1496, '\uFFBC', 1497, '\uFFBD', 1498, '\uFFBE', 1499, '\uFFC2', 1500, '\uFFC3', 1501, '\uFFC4', 1502, '\uFFC5', 1503, '\uFFC6', 1504, '\uFFC7', 1505, '\uFFCA', 1506, '\uFFCB', 1507, '\uFFCC', 1508, '\uFFCD', 1509, '\uFFCE', 1510, '\uFFCF', 1511, '\uFFD2', 1512, '\uFFD3', 1513, '\uFFD4', 1514, '\uFFD5', 1515, '\uFFD6', 1516, '\uFFD7', 1517, '\uFFDA', 1518, '\uFFDB', 1519, '\uFFDC', 1520, '\uFFE0', 2816, '\uFFE1', 2817, '\uFFE2', 2818, '\uFFE3', 3, '\uFFE4', 2819, '\uFFE5', 2820, '\uFFE6', 2821, '\uFFE8', 2822, '\uFFE9', 2823, '\uFFEA', 2824, '\uFFEB', 2825, '\uFFEC', 2826, '\uFFED', 2827, '\uFFEE', 2828, }; } libidn-1.28/java/src/main/java/gnu/inet/encoding/RFC3454.java0000644000000000000000000022727212153707514020305 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateRFC3454.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing StringPrep mapping tables. */ public class RFC3454 { final static char[][] A1 = new char[][] { new char[] { '\u0221' }, new char[] { '\u0234', '\u024F' }, new char[] { '\u02AE', '\u02AF' }, new char[] { '\u02EF', '\u02FF' }, new char[] { '\u0350', '\u035F' }, new char[] { '\u0370', '\u0373' }, new char[] { '\u0376', '\u0379' }, new char[] { '\u037B', '\u037D' }, new char[] { '\u037F', '\u0383' }, new char[] { '\u038B' }, new char[] { '\u038D' }, new char[] { '\u03A2' }, new char[] { '\u03CF' }, new char[] { '\u03F7', '\u03FF' }, new char[] { '\u0487' }, new char[] { '\u04CF' }, new char[] { '\u04F6', '\u04F7' }, new char[] { '\u04FA', '\u04FF' }, new char[] { '\u0510', '\u0530' }, new char[] { '\u0557', '\u0558' }, new char[] { '\u0560' }, new char[] { '\u0588' }, new char[] { '\u058B', '\u0590' }, new char[] { '\u05A2' }, new char[] { '\u05BA' }, new char[] { '\u05C5', '\u05CF' }, new char[] { '\u05EB', '\u05EF' }, new char[] { '\u05F5', '\u060B' }, new char[] { '\u060D', '\u061A' }, new char[] { '\u061C', '\u061E' }, new char[] { '\u0620' }, new char[] { '\u063B', '\u063F' }, new char[] { '\u0656', '\u065F' }, new char[] { '\u06EE', '\u06EF' }, new char[] { '\u06FF' }, new char[] { '\u070E' }, new char[] { '\u072D', '\u072F' }, new char[] { '\u074B', '\u077F' }, new char[] { '\u07B2', '\u0900' }, new char[] { '\u0904' }, new char[] { '\u093A', '\u093B' }, new char[] { '\u094E', '\u094F' }, new char[] { '\u0955', '\u0957' }, new char[] { '\u0971', '\u0980' }, new char[] { '\u0984' }, new char[] { '\u098D', '\u098E' }, new char[] { '\u0991', '\u0992' }, new char[] { '\u09A9' }, new char[] { '\u09B1' }, new char[] { '\u09B3', '\u09B5' }, new char[] { '\u09BA', '\u09BB' }, new char[] { '\u09BD' }, new char[] { '\u09C5', '\u09C6' }, new char[] { '\u09C9', '\u09CA' }, new char[] { '\u09CE', '\u09D6' }, new char[] { '\u09D8', '\u09DB' }, new char[] { '\u09DE' }, new char[] { '\u09E4', '\u09E5' }, new char[] { '\u09FB', '\u0A01' }, new char[] { '\u0A03', '\u0A04' }, new char[] { '\u0A0B', '\u0A0E' }, new char[] { '\u0A11', '\u0A12' }, new char[] { '\u0A29' }, new char[] { '\u0A31' }, new char[] { '\u0A34' }, new char[] { '\u0A37' }, new char[] { '\u0A3A', '\u0A3B' }, new char[] { '\u0A3D' }, new char[] { '\u0A43', '\u0A46' }, new char[] { '\u0A49', '\u0A4A' }, new char[] { '\u0A4E', '\u0A58' }, new char[] { '\u0A5D' }, new char[] { '\u0A5F', '\u0A65' }, new char[] { '\u0A75', '\u0A80' }, new char[] { '\u0A84' }, new char[] { '\u0A8C' }, new char[] { '\u0A8E' }, new char[] { '\u0A92' }, new char[] { '\u0AA9' }, new char[] { '\u0AB1' }, new char[] { '\u0AB4' }, new char[] { '\u0ABA', '\u0ABB' }, new char[] { '\u0AC6' }, new char[] { '\u0ACA' }, new char[] { '\u0ACE', '\u0ACF' }, new char[] { '\u0AD1', '\u0ADF' }, new char[] { '\u0AE1', '\u0AE5' }, new char[] { '\u0AF0', '\u0B00' }, new char[] { '\u0B04' }, new char[] { '\u0B0D', '\u0B0E' }, new char[] { '\u0B11', '\u0B12' }, new char[] { '\u0B29' }, new char[] { '\u0B31' }, new char[] { '\u0B34', '\u0B35' }, new char[] { '\u0B3A', '\u0B3B' }, new char[] { '\u0B44', '\u0B46' }, new char[] { '\u0B49', '\u0B4A' }, new char[] { '\u0B4E', '\u0B55' }, new char[] { '\u0B58', '\u0B5B' }, new char[] { '\u0B5E' }, new char[] { '\u0B62', '\u0B65' }, new char[] { '\u0B71', '\u0B81' }, new char[] { '\u0B84' }, new char[] { '\u0B8B', '\u0B8D' }, new char[] { '\u0B91' }, new char[] { '\u0B96', '\u0B98' }, new char[] { '\u0B9B' }, new char[] { '\u0B9D' }, new char[] { '\u0BA0', '\u0BA2' }, new char[] { '\u0BA5', '\u0BA7' }, new char[] { '\u0BAB', '\u0BAD' }, new char[] { '\u0BB6' }, new char[] { '\u0BBA', '\u0BBD' }, new char[] { '\u0BC3', '\u0BC5' }, new char[] { '\u0BC9' }, new char[] { '\u0BCE', '\u0BD6' }, new char[] { '\u0BD8', '\u0BE6' }, new char[] { '\u0BF3', '\u0C00' }, new char[] { '\u0C04' }, new char[] { '\u0C0D' }, new char[] { '\u0C11' }, new char[] { '\u0C29' }, new char[] { '\u0C34' }, new char[] { '\u0C3A', '\u0C3D' }, new char[] { '\u0C45' }, new char[] { '\u0C49' }, new char[] { '\u0C4E', '\u0C54' }, new char[] { '\u0C57', '\u0C5F' }, new char[] { '\u0C62', '\u0C65' }, new char[] { '\u0C70', '\u0C81' }, new char[] { '\u0C84' }, new char[] { '\u0C8D' }, new char[] { '\u0C91' }, new char[] { '\u0CA9' }, new char[] { '\u0CB4' }, new char[] { '\u0CBA', '\u0CBD' }, new char[] { '\u0CC5' }, new char[] { '\u0CC9' }, new char[] { '\u0CCE', '\u0CD4' }, new char[] { '\u0CD7', '\u0CDD' }, new char[] { '\u0CDF' }, new char[] { '\u0CE2', '\u0CE5' }, new char[] { '\u0CF0', '\u0D01' }, new char[] { '\u0D04' }, new char[] { '\u0D0D' }, new char[] { '\u0D11' }, new char[] { '\u0D29' }, new char[] { '\u0D3A', '\u0D3D' }, new char[] { '\u0D44', '\u0D45' }, new char[] { '\u0D49' }, new char[] { '\u0D4E', '\u0D56' }, new char[] { '\u0D58', '\u0D5F' }, new char[] { '\u0D62', '\u0D65' }, new char[] { '\u0D70', '\u0D81' }, new char[] { '\u0D84' }, new char[] { '\u0D97', '\u0D99' }, new char[] { '\u0DB2' }, new char[] { '\u0DBC' }, new char[] { '\u0DBE', '\u0DBF' }, new char[] { '\u0DC7', '\u0DC9' }, new char[] { '\u0DCB', '\u0DCE' }, new char[] { '\u0DD5' }, new char[] { '\u0DD7' }, new char[] { '\u0DE0', '\u0DF1' }, new char[] { '\u0DF5', '\u0E00' }, new char[] { '\u0E3B', '\u0E3E' }, new char[] { '\u0E5C', '\u0E80' }, new char[] { '\u0E83' }, new char[] { '\u0E85', '\u0E86' }, new char[] { '\u0E89' }, new char[] { '\u0E8B', '\u0E8C' }, new char[] { '\u0E8E', '\u0E93' }, new char[] { '\u0E98' }, new char[] { '\u0EA0' }, new char[] { '\u0EA4' }, new char[] { '\u0EA6' }, new char[] { '\u0EA8', '\u0EA9' }, new char[] { '\u0EAC' }, new char[] { '\u0EBA' }, new char[] { '\u0EBE', '\u0EBF' }, new char[] { '\u0EC5' }, new char[] { '\u0EC7' }, new char[] { '\u0ECE', '\u0ECF' }, new char[] { '\u0EDA', '\u0EDB' }, new char[] { '\u0EDE', '\u0EFF' }, new char[] { '\u0F48' }, new char[] { '\u0F6B', '\u0F70' }, new char[] { '\u0F8C', '\u0F8F' }, new char[] { '\u0F98' }, new char[] { '\u0FBD' }, new char[] { '\u0FCD', '\u0FCE' }, new char[] { '\u0FD0', '\u0FFF' }, new char[] { '\u1022' }, new char[] { '\u1028' }, new char[] { '\u102B' }, new char[] { '\u1033', '\u1035' }, new char[] { '\u103A', '\u103F' }, new char[] { '\u105A', '\u109F' }, new char[] { '\u10C6', '\u10CF' }, new char[] { '\u10F9', '\u10FA' }, new char[] { '\u10FC', '\u10FF' }, new char[] { '\u115A', '\u115E' }, new char[] { '\u11A3', '\u11A7' }, new char[] { '\u11FA', '\u11FF' }, new char[] { '\u1207' }, new char[] { '\u1247' }, new char[] { '\u1249' }, new char[] { '\u124E', '\u124F' }, new char[] { '\u1257' }, new char[] { '\u1259' }, new char[] { '\u125E', '\u125F' }, new char[] { '\u1287' }, new char[] { '\u1289' }, new char[] { '\u128E', '\u128F' }, new char[] { '\u12AF' }, new char[] { '\u12B1' }, new char[] { '\u12B6', '\u12B7' }, new char[] { '\u12BF' }, new char[] { '\u12C1' }, new char[] { '\u12C6', '\u12C7' }, new char[] { '\u12CF' }, new char[] { '\u12D7' }, new char[] { '\u12EF' }, new char[] { '\u130F' }, new char[] { '\u1311' }, new char[] { '\u1316', '\u1317' }, new char[] { '\u131F' }, new char[] { '\u1347' }, new char[] { '\u135B', '\u1360' }, new char[] { '\u137D', '\u139F' }, new char[] { '\u13F5', '\u1400' }, new char[] { '\u1677', '\u167F' }, new char[] { '\u169D', '\u169F' }, new char[] { '\u16F1', '\u16FF' }, new char[] { '\u170D' }, new char[] { '\u1715', '\u171F' }, new char[] { '\u1737', '\u173F' }, new char[] { '\u1754', '\u175F' }, new char[] { '\u176D' }, new char[] { '\u1771' }, new char[] { '\u1774', '\u177F' }, new char[] { '\u17DD', '\u17DF' }, new char[] { '\u17EA', '\u17FF' }, new char[] { '\u180F' }, new char[] { '\u181A', '\u181F' }, new char[] { '\u1878', '\u187F' }, new char[] { '\u18AA', '\u1DFF' }, new char[] { '\u1E9C', '\u1E9F' }, new char[] { '\u1EFA', '\u1EFF' }, new char[] { '\u1F16', '\u1F17' }, new char[] { '\u1F1E', '\u1F1F' }, new char[] { '\u1F46', '\u1F47' }, new char[] { '\u1F4E', '\u1F4F' }, new char[] { '\u1F58' }, new char[] { '\u1F5A' }, new char[] { '\u1F5C' }, new char[] { '\u1F5E' }, new char[] { '\u1F7E', '\u1F7F' }, new char[] { '\u1FB5' }, new char[] { '\u1FC5' }, new char[] { '\u1FD4', '\u1FD5' }, new char[] { '\u1FDC' }, new char[] { '\u1FF0', '\u1FF1' }, new char[] { '\u1FF5' }, new char[] { '\u1FFF' }, new char[] { '\u2053', '\u2056' }, new char[] { '\u2058', '\u205E' }, new char[] { '\u2064', '\u2069' }, new char[] { '\u2072', '\u2073' }, new char[] { '\u208F', '\u209F' }, new char[] { '\u20B2', '\u20CF' }, new char[] { '\u20EB', '\u20FF' }, new char[] { '\u213B', '\u213C' }, new char[] { '\u214C', '\u2152' }, new char[] { '\u2184', '\u218F' }, new char[] { '\u23CF', '\u23FF' }, new char[] { '\u2427', '\u243F' }, new char[] { '\u244B', '\u245F' }, new char[] { '\u24FF' }, new char[] { '\u2614', '\u2615' }, new char[] { '\u2618' }, new char[] { '\u267E', '\u267F' }, new char[] { '\u268A', '\u2700' }, new char[] { '\u2705' }, new char[] { '\u270A', '\u270B' }, new char[] { '\u2728' }, new char[] { '\u274C' }, new char[] { '\u274E' }, new char[] { '\u2753', '\u2755' }, new char[] { '\u2757' }, new char[] { '\u275F', '\u2760' }, new char[] { '\u2795', '\u2797' }, new char[] { '\u27B0' }, new char[] { '\u27BF', '\u27CF' }, new char[] { '\u27EC', '\u27EF' }, new char[] { '\u2B00', '\u2E7F' }, new char[] { '\u2E9A' }, new char[] { '\u2EF4', '\u2EFF' }, new char[] { '\u2FD6', '\u2FEF' }, new char[] { '\u2FFC', '\u2FFF' }, new char[] { '\u3040' }, new char[] { '\u3097', '\u3098' }, new char[] { '\u3100', '\u3104' }, new char[] { '\u312D', '\u3130' }, new char[] { '\u318F' }, new char[] { '\u31B8', '\u31EF' }, new char[] { '\u321D', '\u321F' }, new char[] { '\u3244', '\u3250' }, new char[] { '\u327C', '\u327E' }, new char[] { '\u32CC', '\u32CF' }, new char[] { '\u32FF' }, new char[] { '\u3377', '\u337A' }, new char[] { '\u33DE', '\u33DF' }, new char[] { '\u33FF' }, new char[] { '\u4DB6', '\u4DFF' }, new char[] { '\u9FA6', '\u9FFF' }, new char[] { '\uA48D', '\uA48F' }, new char[] { '\uA4C7', '\uABFF' }, new char[] { '\uD7A4', '\uD7FF' }, new char[] { '\uFA2E', '\uFA2F' }, new char[] { '\uFA6B', '\uFAFF' }, new char[] { '\uFB07', '\uFB12' }, new char[] { '\uFB18', '\uFB1C' }, new char[] { '\uFB37' }, new char[] { '\uFB3D' }, new char[] { '\uFB3F' }, new char[] { '\uFB42' }, new char[] { '\uFB45' }, new char[] { '\uFBB2', '\uFBD2' }, new char[] { '\uFD40', '\uFD4F' }, new char[] { '\uFD90', '\uFD91' }, new char[] { '\uFDC8', '\uFDCF' }, new char[] { '\uFDFD', '\uFDFF' }, new char[] { '\uFE10', '\uFE1F' }, new char[] { '\uFE24', '\uFE2F' }, new char[] { '\uFE47', '\uFE48' }, new char[] { '\uFE53' }, new char[] { '\uFE67' }, new char[] { '\uFE6C', '\uFE6F' }, new char[] { '\uFE75' }, new char[] { '\uFEFD', '\uFEFE' }, new char[] { '\uFF00' }, new char[] { '\uFFBF', '\uFFC1' }, new char[] { '\uFFC8', '\uFFC9' }, new char[] { '\uFFD0', '\uFFD1' }, new char[] { '\uFFD8', '\uFFD9' }, new char[] { '\uFFDD', '\uFFDF' }, new char[] { '\uFFE7' }, new char[] { '\uFFEF', '\uFFF8' }, }; final static char[] B1 = new char[] { '\u00AD', '\u034F', '\u1806', '\u180B', '\u180C', '\u180D', '\u200B', '\u200C', '\u200D', '\u2060', '\uFE00', '\uFE01', '\uFE02', '\uFE03', '\uFE04', '\uFE05', '\uFE06', '\uFE07', '\uFE08', '\uFE09', '\uFE0A', '\uFE0B', '\uFE0C', '\uFE0D', '\uFE0E', '\uFE0F', '\uFEFF', }; final static char[] B2search = new char[] { '\u0041', '\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047', '\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D', '\u004E', '\u004F', '\u0050', '\u0051', '\u0052', '\u0053', '\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059', '\u005A', '\u00B5', '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u00C4', '\u00C5', '\u00C6', '\u00C7', '\u00C8', '\u00C9', '\u00CA', '\u00CB', '\u00CC', '\u00CD', '\u00CE', '\u00CF', '\u00D0', '\u00D1', '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u00D6', '\u00D8', '\u00D9', '\u00DA', '\u00DB', '\u00DC', '\u00DD', '\u00DE', '\u00DF', '\u0100', '\u0102', '\u0104', '\u0106', '\u0108', '\u010A', '\u010C', '\u010E', '\u0110', '\u0112', '\u0114', '\u0116', '\u0118', '\u011A', '\u011C', '\u011E', '\u0120', '\u0122', '\u0124', '\u0126', '\u0128', '\u012A', '\u012C', '\u012E', '\u0130', '\u0132', '\u0134', '\u0136', '\u0139', '\u013B', '\u013D', '\u013F', '\u0141', '\u0143', '\u0145', '\u0147', '\u0149', '\u014A', '\u014C', '\u014E', '\u0150', '\u0152', '\u0154', '\u0156', '\u0158', '\u015A', '\u015C', '\u015E', '\u0160', '\u0162', '\u0164', '\u0166', '\u0168', '\u016A', '\u016C', '\u016E', '\u0170', '\u0172', '\u0174', '\u0176', '\u0178', '\u0179', '\u017B', '\u017D', '\u017F', '\u0181', '\u0182', '\u0184', '\u0186', '\u0187', '\u0189', '\u018A', '\u018B', '\u018E', '\u018F', '\u0190', '\u0191', '\u0193', '\u0194', '\u0196', '\u0197', '\u0198', '\u019C', '\u019D', '\u019F', '\u01A0', '\u01A2', '\u01A4', '\u01A6', '\u01A7', '\u01A9', '\u01AC', '\u01AE', '\u01AF', '\u01B1', '\u01B2', '\u01B3', '\u01B5', '\u01B7', '\u01B8', '\u01BC', '\u01C4', '\u01C5', '\u01C7', '\u01C8', '\u01CA', '\u01CB', '\u01CD', '\u01CF', '\u01D1', '\u01D3', '\u01D5', '\u01D7', '\u01D9', '\u01DB', '\u01DE', '\u01E0', '\u01E2', '\u01E4', '\u01E6', '\u01E8', '\u01EA', '\u01EC', '\u01EE', '\u01F0', '\u01F1', '\u01F2', '\u01F4', '\u01F6', '\u01F7', '\u01F8', '\u01FA', '\u01FC', '\u01FE', '\u0200', '\u0202', '\u0204', '\u0206', '\u0208', '\u020A', '\u020C', '\u020E', '\u0210', '\u0212', '\u0214', '\u0216', '\u0218', '\u021A', '\u021C', '\u021E', '\u0220', '\u0222', '\u0224', '\u0226', '\u0228', '\u022A', '\u022C', '\u022E', '\u0230', '\u0232', '\u0345', '\u037A', '\u0386', '\u0388', '\u0389', '\u038A', '\u038C', '\u038E', '\u038F', '\u0390', '\u0391', '\u0392', '\u0393', '\u0394', '\u0395', '\u0396', '\u0397', '\u0398', '\u0399', '\u039A', '\u039B', '\u039C', '\u039D', '\u039E', '\u039F', '\u03A0', '\u03A1', '\u03A3', '\u03A4', '\u03A5', '\u03A6', '\u03A7', '\u03A8', '\u03A9', '\u03AA', '\u03AB', '\u03B0', '\u03C2', '\u03D0', '\u03D1', '\u03D2', '\u03D3', '\u03D4', '\u03D5', '\u03D6', '\u03D8', '\u03DA', '\u03DC', '\u03DE', '\u03E0', '\u03E2', '\u03E4', '\u03E6', '\u03E8', '\u03EA', '\u03EC', '\u03EE', '\u03F0', '\u03F1', '\u03F2', '\u03F4', '\u03F5', '\u0400', '\u0401', '\u0402', '\u0403', '\u0404', '\u0405', '\u0406', '\u0407', '\u0408', '\u0409', '\u040A', '\u040B', '\u040C', '\u040D', '\u040E', '\u040F', '\u0410', '\u0411', '\u0412', '\u0413', '\u0414', '\u0415', '\u0416', '\u0417', '\u0418', '\u0419', '\u041A', '\u041B', '\u041C', '\u041D', '\u041E', '\u041F', '\u0420', '\u0421', '\u0422', '\u0423', '\u0424', '\u0425', '\u0426', '\u0427', '\u0428', '\u0429', '\u042A', '\u042B', '\u042C', '\u042D', '\u042E', '\u042F', '\u0460', '\u0462', '\u0464', '\u0466', '\u0468', '\u046A', '\u046C', '\u046E', '\u0470', '\u0472', '\u0474', '\u0476', '\u0478', '\u047A', '\u047C', '\u047E', '\u0480', '\u048A', '\u048C', '\u048E', '\u0490', '\u0492', '\u0494', '\u0496', '\u0498', '\u049A', '\u049C', '\u049E', '\u04A0', '\u04A2', '\u04A4', '\u04A6', '\u04A8', '\u04AA', '\u04AC', '\u04AE', '\u04B0', '\u04B2', '\u04B4', '\u04B6', '\u04B8', '\u04BA', '\u04BC', '\u04BE', '\u04C1', '\u04C3', '\u04C5', '\u04C7', '\u04C9', '\u04CB', '\u04CD', '\u04D0', '\u04D2', '\u04D4', '\u04D6', '\u04D8', '\u04DA', '\u04DC', '\u04DE', '\u04E0', '\u04E2', '\u04E4', '\u04E6', '\u04E8', '\u04EA', '\u04EC', '\u04EE', '\u04F0', '\u04F2', '\u04F4', '\u04F8', '\u0500', '\u0502', '\u0504', '\u0506', '\u0508', '\u050A', '\u050C', '\u050E', '\u0531', '\u0532', '\u0533', '\u0534', '\u0535', '\u0536', '\u0537', '\u0538', '\u0539', '\u053A', '\u053B', '\u053C', '\u053D', '\u053E', '\u053F', '\u0540', '\u0541', '\u0542', '\u0543', '\u0544', '\u0545', '\u0546', '\u0547', '\u0548', '\u0549', '\u054A', '\u054B', '\u054C', '\u054D', '\u054E', '\u054F', '\u0550', '\u0551', '\u0552', '\u0553', '\u0554', '\u0555', '\u0556', '\u0587', '\u1E00', '\u1E02', '\u1E04', '\u1E06', '\u1E08', '\u1E0A', '\u1E0C', '\u1E0E', '\u1E10', '\u1E12', '\u1E14', '\u1E16', '\u1E18', '\u1E1A', '\u1E1C', '\u1E1E', '\u1E20', '\u1E22', '\u1E24', '\u1E26', '\u1E28', '\u1E2A', '\u1E2C', '\u1E2E', '\u1E30', '\u1E32', '\u1E34', '\u1E36', '\u1E38', '\u1E3A', '\u1E3C', '\u1E3E', '\u1E40', '\u1E42', '\u1E44', '\u1E46', '\u1E48', '\u1E4A', '\u1E4C', '\u1E4E', '\u1E50', '\u1E52', '\u1E54', '\u1E56', '\u1E58', '\u1E5A', '\u1E5C', '\u1E5E', '\u1E60', '\u1E62', '\u1E64', '\u1E66', '\u1E68', '\u1E6A', '\u1E6C', '\u1E6E', '\u1E70', '\u1E72', '\u1E74', '\u1E76', '\u1E78', '\u1E7A', '\u1E7C', '\u1E7E', '\u1E80', '\u1E82', '\u1E84', '\u1E86', '\u1E88', '\u1E8A', '\u1E8C', '\u1E8E', '\u1E90', '\u1E92', '\u1E94', '\u1E96', '\u1E97', '\u1E98', '\u1E99', '\u1E9A', '\u1E9B', '\u1EA0', '\u1EA2', '\u1EA4', '\u1EA6', '\u1EA8', '\u1EAA', '\u1EAC', '\u1EAE', '\u1EB0', '\u1EB2', '\u1EB4', '\u1EB6', '\u1EB8', '\u1EBA', '\u1EBC', '\u1EBE', '\u1EC0', '\u1EC2', '\u1EC4', '\u1EC6', '\u1EC8', '\u1ECA', '\u1ECC', '\u1ECE', '\u1ED0', '\u1ED2', '\u1ED4', '\u1ED6', '\u1ED8', '\u1EDA', '\u1EDC', '\u1EDE', '\u1EE0', '\u1EE2', '\u1EE4', '\u1EE6', '\u1EE8', '\u1EEA', '\u1EEC', '\u1EEE', '\u1EF0', '\u1EF2', '\u1EF4', '\u1EF6', '\u1EF8', '\u1F08', '\u1F09', '\u1F0A', '\u1F0B', '\u1F0C', '\u1F0D', '\u1F0E', '\u1F0F', '\u1F18', '\u1F19', '\u1F1A', '\u1F1B', '\u1F1C', '\u1F1D', '\u1F28', '\u1F29', '\u1F2A', '\u1F2B', '\u1F2C', '\u1F2D', '\u1F2E', '\u1F2F', '\u1F38', '\u1F39', '\u1F3A', '\u1F3B', '\u1F3C', '\u1F3D', '\u1F3E', '\u1F3F', '\u1F48', '\u1F49', '\u1F4A', '\u1F4B', '\u1F4C', '\u1F4D', '\u1F50', '\u1F52', '\u1F54', '\u1F56', '\u1F59', '\u1F5B', '\u1F5D', '\u1F5F', '\u1F68', '\u1F69', '\u1F6A', '\u1F6B', '\u1F6C', '\u1F6D', '\u1F6E', '\u1F6F', '\u1F80', '\u1F81', '\u1F82', '\u1F83', '\u1F84', '\u1F85', '\u1F86', '\u1F87', '\u1F88', '\u1F89', '\u1F8A', '\u1F8B', '\u1F8C', '\u1F8D', '\u1F8E', '\u1F8F', '\u1F90', '\u1F91', '\u1F92', '\u1F93', '\u1F94', '\u1F95', '\u1F96', '\u1F97', '\u1F98', '\u1F99', '\u1F9A', '\u1F9B', '\u1F9C', '\u1F9D', '\u1F9E', '\u1F9F', '\u1FA0', '\u1FA1', '\u1FA2', '\u1FA3', '\u1FA4', '\u1FA5', '\u1FA6', '\u1FA7', '\u1FA8', '\u1FA9', '\u1FAA', '\u1FAB', '\u1FAC', '\u1FAD', '\u1FAE', '\u1FAF', '\u1FB2', '\u1FB3', '\u1FB4', '\u1FB6', '\u1FB7', '\u1FB8', '\u1FB9', '\u1FBA', '\u1FBB', '\u1FBC', '\u1FBE', '\u1FC2', '\u1FC3', '\u1FC4', '\u1FC6', '\u1FC7', '\u1FC8', '\u1FC9', '\u1FCA', '\u1FCB', '\u1FCC', '\u1FD2', '\u1FD3', '\u1FD6', '\u1FD7', '\u1FD8', '\u1FD9', '\u1FDA', '\u1FDB', '\u1FE2', '\u1FE3', '\u1FE4', '\u1FE6', '\u1FE7', '\u1FE8', '\u1FE9', '\u1FEA', '\u1FEB', '\u1FEC', '\u1FF2', '\u1FF3', '\u1FF4', '\u1FF6', '\u1FF7', '\u1FF8', '\u1FF9', '\u1FFA', '\u1FFB', '\u1FFC', '\u20A8', '\u2102', '\u2103', '\u2107', '\u2109', '\u210B', '\u210C', '\u210D', '\u2110', '\u2111', '\u2112', '\u2115', '\u2116', '\u2119', '\u211A', '\u211B', '\u211C', '\u211D', '\u2120', '\u2121', '\u2122', '\u2124', '\u2126', '\u2128', '\u212A', '\u212B', '\u212C', '\u212D', '\u2130', '\u2131', '\u2133', '\u213E', '\u213F', '\u2145', '\u2160', '\u2161', '\u2162', '\u2163', '\u2164', '\u2165', '\u2166', '\u2167', '\u2168', '\u2169', '\u216A', '\u216B', '\u216C', '\u216D', '\u216E', '\u216F', '\u24B6', '\u24B7', '\u24B8', '\u24B9', '\u24BA', '\u24BB', '\u24BC', '\u24BD', '\u24BE', '\u24BF', '\u24C0', '\u24C1', '\u24C2', '\u24C3', '\u24C4', '\u24C5', '\u24C6', '\u24C7', '\u24C8', '\u24C9', '\u24CA', '\u24CB', '\u24CC', '\u24CD', '\u24CE', '\u24CF', '\u3371', '\u3373', '\u3375', '\u3380', '\u3381', '\u3382', '\u3383', '\u3384', '\u3385', '\u3386', '\u3387', '\u338A', '\u338B', '\u338C', '\u3390', '\u3391', '\u3392', '\u3393', '\u3394', '\u33A9', '\u33AA', '\u33AB', '\u33AC', '\u33B4', '\u33B5', '\u33B6', '\u33B7', '\u33B8', '\u33B9', '\u33BA', '\u33BB', '\u33BC', '\u33BD', '\u33BE', '\u33BF', '\u33C0', '\u33C1', '\u33C3', '\u33C6', '\u33C7', '\u33C8', '\u33C9', '\u33CB', '\u33CD', '\u33CE', '\u33D7', '\u33D9', '\u33DA', '\u33DC', '\u33DD', '\uFB00', '\uFB01', '\uFB02', '\uFB03', '\uFB04', '\uFB05', '\uFB06', '\uFB13', '\uFB14', '\uFB15', '\uFB16', '\uFB17', '\uFF21', '\uFF22', '\uFF23', '\uFF24', '\uFF25', '\uFF26', '\uFF27', '\uFF28', '\uFF29', '\uFF2A', '\uFF2B', '\uFF2C', '\uFF2D', '\uFF2E', '\uFF2F', '\uFF30', '\uFF31', '\uFF32', '\uFF33', '\uFF34', '\uFF35', '\uFF36', '\uFF37', '\uFF38', '\uFF39', '\uFF3A', }; final static String[] B2replace = new String[] { "\u0061", "\u0062", "\u0063", "\u0064", "\u0065", "\u0066", "\u0067", "\u0068", "\u0069", "\u006A", "\u006B", "\u006C", "\u006D", "\u006E", "\u006F", "\u0070", "\u0071", "\u0072", "\u0073", "\u0074", "\u0075", "\u0076", "\u0077", "\u0078", "\u0079", "\u007A", "\u03BC", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6", "\u00E7", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u00F0", "\u00F1", "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u00FD", "\u00FE", "\u0073\u0073", "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0069\u0307", "\u0133", "\u0135", "\u0137", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", "\u0148", "\u02BC\u006E", "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u00FF", "\u017A", "\u017C", "\u017E", "\u0073", "\u0253", "\u0183", "\u0185", "\u0254", "\u0188", "\u0256", "\u0257", "\u018C", "\u01DD", "\u0259", "\u025B", "\u0192", "\u0260", "\u0263", "\u0269", "\u0268", "\u0199", "\u026F", "\u0272", "\u0275", "\u01A1", "\u01A3", "\u01A5", "\u0280", "\u01A8", "\u0283", "\u01AD", "\u0288", "\u01B0", "\u028A", "\u028B", "\u01B4", "\u01B6", "\u0292", "\u01B9", "\u01BD", "\u01C6", "\u01C6", "\u01C9", "\u01C9", "\u01CC", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", "\u01DC", "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", "\u01EF", "\u006A\u030C", "\u01F3", "\u01F3", "\u01F5", "\u0195", "\u01BF", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u019E", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", "\u0233", "\u03B9", "\u0020\u03B9", "\u03AC", "\u03AD", "\u03AE", "\u03AF", "\u03CC", "\u03CD", "\u03CE", "\u03B9\u0308\u0301", "\u03B1", "\u03B2", "\u03B3", "\u03B4", "\u03B5", "\u03B6", "\u03B7", "\u03B8", "\u03B9", "\u03BA", "\u03BB", "\u03BC", "\u03BD", "\u03BE", "\u03BF", "\u03C0", "\u03C1", "\u03C3", "\u03C4", "\u03C5", "\u03C6", "\u03C7", "\u03C8", "\u03C9", "\u03CA", "\u03CB", "\u03C5\u0308\u0301", "\u03C3", "\u03B2", "\u03B8", "\u03C5", "\u03CD", "\u03CB", "\u03C6", "\u03C0", "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", "\u03EF", "\u03BA", "\u03C1", "\u03C3", "\u03B8", "\u03B5", "\u0450", "\u0451", "\u0452", "\u0453", "\u0454", "\u0455", "\u0456", "\u0457", "\u0458", "\u0459", "\u045A", "\u045B", "\u045C", "\u045D", "\u045E", "\u045F", "\u0430", "\u0431", "\u0432", "\u0433", "\u0434", "\u0435", "\u0436", "\u0437", "\u0438", "\u0439", "\u043A", "\u043B", "\u043C", "\u043D", "\u043E", "\u043F", "\u0440", "\u0441", "\u0442", "\u0443", "\u0444", "\u0445", "\u0446", "\u0447", "\u0448", "\u0449", "\u044A", "\u044B", "\u044C", "\u044D", "\u044E", "\u044F", "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", "\u04CE", "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F9", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0561", "\u0562", "\u0563", "\u0564", "\u0565", "\u0566", "\u0567", "\u0568", "\u0569", "\u056A", "\u056B", "\u056C", "\u056D", "\u056E", "\u056F", "\u0570", "\u0571", "\u0572", "\u0573", "\u0574", "\u0575", "\u0576", "\u0577", "\u0578", "\u0579", "\u057A", "\u057B", "\u057C", "\u057D", "\u057E", "\u057F", "\u0580", "\u0581", "\u0582", "\u0583", "\u0584", "\u0585", "\u0586", "\u0565\u0582", "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", "\u1E95", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u1E61", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1F00", "\u1F01", "\u1F02", "\u1F03", "\u1F04", "\u1F05", "\u1F06", "\u1F07", "\u1F10", "\u1F11", "\u1F12", "\u1F13", "\u1F14", "\u1F15", "\u1F20", "\u1F21", "\u1F22", "\u1F23", "\u1F24", "\u1F25", "\u1F26", "\u1F27", "\u1F30", "\u1F31", "\u1F32", "\u1F33", "\u1F34", "\u1F35", "\u1F36", "\u1F37", "\u1F40", "\u1F41", "\u1F42", "\u1F43", "\u1F44", "\u1F45", "\u03C5\u0313", "\u03C5\u0313\u0300", "\u03C5\u0313\u0301", "\u03C5\u0313\u0342", "\u1F51", "\u1F53", "\u1F55", "\u1F57", "\u1F60", "\u1F61", "\u1F62", "\u1F63", "\u1F64", "\u1F65", "\u1F66", "\u1F67", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F70\u03B9", "\u03B1\u03B9", "\u03AC\u03B9", "\u03B1\u0342", "\u03B1\u0342\u03B9", "\u1FB0", "\u1FB1", "\u1F70", "\u1F71", "\u03B1\u03B9", "\u03B9", "\u1F74\u03B9", "\u03B7\u03B9", "\u03AE\u03B9", "\u03B7\u0342", "\u03B7\u0342\u03B9", "\u1F72", "\u1F73", "\u1F74", "\u1F75", "\u03B7\u03B9", "\u03B9\u0308\u0300", "\u03B9\u0308\u0301", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u1FD0", "\u1FD1", "\u1F76", "\u1F77", "\u03C5\u0308\u0300", "\u03C5\u0308\u0301", "\u03C1\u0313", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u1FE0", "\u1FE1", "\u1F7A", "\u1F7B", "\u1FE5", "\u1F7C\u03B9", "\u03C9\u03B9", "\u03CE\u03B9", "\u03C9\u0342", "\u03C9\u0342\u03B9", "\u1F78", "\u1F79", "\u1F7C", "\u1F7D", "\u03C9\u03B9", "\u0072\u0073", "\u0063", "\u00B0\u0063", "\u025B", "\u00B0\u0066", "\u0068", "\u0068", "\u0068", "\u0069", "\u0069", "\u006C", "\u006E", "\u006E\u006F", "\u0070", "\u0071", "\u0072", "\u0072", "\u0072", "\u0073\u006D", "\u0074\u0065\u006C", "\u0074\u006D", "\u007A", "\u03C9", "\u007A", "\u006B", "\u00E5", "\u0062", "\u0063", "\u0065", "\u0066", "\u006D", "\u03B3", "\u03C0", "\u0064", "\u2170", "\u2171", "\u2172", "\u2173", "\u2174", "\u2175", "\u2176", "\u2177", "\u2178", "\u2179", "\u217A", "\u217B", "\u217C", "\u217D", "\u217E", "\u217F", "\u24D0", "\u24D1", "\u24D2", "\u24D3", "\u24D4", "\u24D5", "\u24D6", "\u24D7", "\u24D8", "\u24D9", "\u24DA", "\u24DB", "\u24DC", "\u24DD", "\u24DE", "\u24DF", "\u24E0", "\u24E1", "\u24E2", "\u24E3", "\u24E4", "\u24E5", "\u24E6", "\u24E7", "\u24E8", "\u24E9", "\u0068\u0070\u0061", "\u0061\u0075", "\u006F\u0076", "\u0070\u0061", "\u006E\u0061", "\u03BC\u0061", "\u006D\u0061", "\u006B\u0061", "\u006B\u0062", "\u006D\u0062", "\u0067\u0062", "\u0070\u0066", "\u006E\u0066", "\u03BC\u0066", "\u0068\u007A", "\u006B\u0068\u007A", "\u006D\u0068\u007A", "\u0067\u0068\u007A", "\u0074\u0068\u007A", "\u0070\u0061", "\u006B\u0070\u0061", "\u006D\u0070\u0061", "\u0067\u0070\u0061", "\u0070\u0076", "\u006E\u0076", "\u03BC\u0076", "\u006D\u0076", "\u006B\u0076", "\u006D\u0076", "\u0070\u0077", "\u006E\u0077", "\u03BC\u0077", "\u006D\u0077", "\u006B\u0077", "\u006D\u0077", "\u006B\u03C9", "\u006D\u03C9", "\u0062\u0071", "\u0063\u2215\u006B\u0067", "\u0063\u006F\u002E", "\u0064\u0062", "\u0067\u0079", "\u0068\u0070", "\u006B\u006B", "\u006B\u006D", "\u0070\u0068", "\u0070\u0070\u006D", "\u0070\u0072", "\u0073\u0076", "\u0077\u0062", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\uFF41", "\uFF42", "\uFF43", "\uFF44", "\uFF45", "\uFF46", "\uFF47", "\uFF48", "\uFF49", "\uFF4A", "\uFF4B", "\uFF4C", "\uFF4D", "\uFF4E", "\uFF4F", "\uFF50", "\uFF51", "\uFF52", "\uFF53", "\uFF54", "\uFF55", "\uFF56", "\uFF57", "\uFF58", "\uFF59", "\uFF5A", }; final static char[] B3search = new char[] { '\u0041', '\u0042', '\u0043', '\u0044', '\u0045', '\u0046', '\u0047', '\u0048', '\u0049', '\u004A', '\u004B', '\u004C', '\u004D', '\u004E', '\u004F', '\u0050', '\u0051', '\u0052', '\u0053', '\u0054', '\u0055', '\u0056', '\u0057', '\u0058', '\u0059', '\u005A', '\u00B5', '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u00C4', '\u00C5', '\u00C6', '\u00C7', '\u00C8', '\u00C9', '\u00CA', '\u00CB', '\u00CC', '\u00CD', '\u00CE', '\u00CF', '\u00D0', '\u00D1', '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u00D6', '\u00D8', '\u00D9', '\u00DA', '\u00DB', '\u00DC', '\u00DD', '\u00DE', '\u00DF', '\u0100', '\u0102', '\u0104', '\u0106', '\u0108', '\u010A', '\u010C', '\u010E', '\u0110', '\u0112', '\u0114', '\u0116', '\u0118', '\u011A', '\u011C', '\u011E', '\u0120', '\u0122', '\u0124', '\u0126', '\u0128', '\u012A', '\u012C', '\u012E', '\u0130', '\u0132', '\u0134', '\u0136', '\u0139', '\u013B', '\u013D', '\u013F', '\u0141', '\u0143', '\u0145', '\u0147', '\u0149', '\u014A', '\u014C', '\u014E', '\u0150', '\u0152', '\u0154', '\u0156', '\u0158', '\u015A', '\u015C', '\u015E', '\u0160', '\u0162', '\u0164', '\u0166', '\u0168', '\u016A', '\u016C', '\u016E', '\u0170', '\u0172', '\u0174', '\u0176', '\u0178', '\u0179', '\u017B', '\u017D', '\u017F', '\u0181', '\u0182', '\u0184', '\u0186', '\u0187', '\u0189', '\u018A', '\u018B', '\u018E', '\u018F', '\u0190', '\u0191', '\u0193', '\u0194', '\u0196', '\u0197', '\u0198', '\u019C', '\u019D', '\u019F', '\u01A0', '\u01A2', '\u01A4', '\u01A6', '\u01A7', '\u01A9', '\u01AC', '\u01AE', '\u01AF', '\u01B1', '\u01B2', '\u01B3', '\u01B5', '\u01B7', '\u01B8', '\u01BC', '\u01C4', '\u01C5', '\u01C7', '\u01C8', '\u01CA', '\u01CB', '\u01CD', '\u01CF', '\u01D1', '\u01D3', '\u01D5', '\u01D7', '\u01D9', '\u01DB', '\u01DE', '\u01E0', '\u01E2', '\u01E4', '\u01E6', '\u01E8', '\u01EA', '\u01EC', '\u01EE', '\u01F0', '\u01F1', '\u01F2', '\u01F4', '\u01F6', '\u01F7', '\u01F8', '\u01FA', '\u01FC', '\u01FE', '\u0200', '\u0202', '\u0204', '\u0206', '\u0208', '\u020A', '\u020C', '\u020E', '\u0210', '\u0212', '\u0214', '\u0216', '\u0218', '\u021A', '\u021C', '\u021E', '\u0220', '\u0222', '\u0224', '\u0226', '\u0228', '\u022A', '\u022C', '\u022E', '\u0230', '\u0232', '\u0345', '\u0386', '\u0388', '\u0389', '\u038A', '\u038C', '\u038E', '\u038F', '\u0390', '\u0391', '\u0392', '\u0393', '\u0394', '\u0395', '\u0396', '\u0397', '\u0398', '\u0399', '\u039A', '\u039B', '\u039C', '\u039D', '\u039E', '\u039F', '\u03A0', '\u03A1', '\u03A3', '\u03A4', '\u03A5', '\u03A6', '\u03A7', '\u03A8', '\u03A9', '\u03AA', '\u03AB', '\u03B0', '\u03C2', '\u03D0', '\u03D1', '\u03D5', '\u03D6', '\u03D8', '\u03DA', '\u03DC', '\u03DE', '\u03E0', '\u03E2', '\u03E4', '\u03E6', '\u03E8', '\u03EA', '\u03EC', '\u03EE', '\u03F0', '\u03F1', '\u03F2', '\u03F4', '\u03F5', '\u0400', '\u0401', '\u0402', '\u0403', '\u0404', '\u0405', '\u0406', '\u0407', '\u0408', '\u0409', '\u040A', '\u040B', '\u040C', '\u040D', '\u040E', '\u040F', '\u0410', '\u0411', '\u0412', '\u0413', '\u0414', '\u0415', '\u0416', '\u0417', '\u0418', '\u0419', '\u041A', '\u041B', '\u041C', '\u041D', '\u041E', '\u041F', '\u0420', '\u0421', '\u0422', '\u0423', '\u0424', '\u0425', '\u0426', '\u0427', '\u0428', '\u0429', '\u042A', '\u042B', '\u042C', '\u042D', '\u042E', '\u042F', '\u0460', '\u0462', '\u0464', '\u0466', '\u0468', '\u046A', '\u046C', '\u046E', '\u0470', '\u0472', '\u0474', '\u0476', '\u0478', '\u047A', '\u047C', '\u047E', '\u0480', '\u048A', '\u048C', '\u048E', '\u0490', '\u0492', '\u0494', '\u0496', '\u0498', '\u049A', '\u049C', '\u049E', '\u04A0', '\u04A2', '\u04A4', '\u04A6', '\u04A8', '\u04AA', '\u04AC', '\u04AE', '\u04B0', '\u04B2', '\u04B4', '\u04B6', '\u04B8', '\u04BA', '\u04BC', '\u04BE', '\u04C1', '\u04C3', '\u04C5', '\u04C7', '\u04C9', '\u04CB', '\u04CD', '\u04D0', '\u04D2', '\u04D4', '\u04D6', '\u04D8', '\u04DA', '\u04DC', '\u04DE', '\u04E0', '\u04E2', '\u04E4', '\u04E6', '\u04E8', '\u04EA', '\u04EC', '\u04EE', '\u04F0', '\u04F2', '\u04F4', '\u04F8', '\u0500', '\u0502', '\u0504', '\u0506', '\u0508', '\u050A', '\u050C', '\u050E', '\u0531', '\u0532', '\u0533', '\u0534', '\u0535', '\u0536', '\u0537', '\u0538', '\u0539', '\u053A', '\u053B', '\u053C', '\u053D', '\u053E', '\u053F', '\u0540', '\u0541', '\u0542', '\u0543', '\u0544', '\u0545', '\u0546', '\u0547', '\u0548', '\u0549', '\u054A', '\u054B', '\u054C', '\u054D', '\u054E', '\u054F', '\u0550', '\u0551', '\u0552', '\u0553', '\u0554', '\u0555', '\u0556', '\u0587', '\u1E00', '\u1E02', '\u1E04', '\u1E06', '\u1E08', '\u1E0A', '\u1E0C', '\u1E0E', '\u1E10', '\u1E12', '\u1E14', '\u1E16', '\u1E18', '\u1E1A', '\u1E1C', '\u1E1E', '\u1E20', '\u1E22', '\u1E24', '\u1E26', '\u1E28', '\u1E2A', '\u1E2C', '\u1E2E', '\u1E30', '\u1E32', '\u1E34', '\u1E36', '\u1E38', '\u1E3A', '\u1E3C', '\u1E3E', '\u1E40', '\u1E42', '\u1E44', '\u1E46', '\u1E48', '\u1E4A', '\u1E4C', '\u1E4E', '\u1E50', '\u1E52', '\u1E54', '\u1E56', '\u1E58', '\u1E5A', '\u1E5C', '\u1E5E', '\u1E60', '\u1E62', '\u1E64', '\u1E66', '\u1E68', '\u1E6A', '\u1E6C', '\u1E6E', '\u1E70', '\u1E72', '\u1E74', '\u1E76', '\u1E78', '\u1E7A', '\u1E7C', '\u1E7E', '\u1E80', '\u1E82', '\u1E84', '\u1E86', '\u1E88', '\u1E8A', '\u1E8C', '\u1E8E', '\u1E90', '\u1E92', '\u1E94', '\u1E96', '\u1E97', '\u1E98', '\u1E99', '\u1E9A', '\u1E9B', '\u1EA0', '\u1EA2', '\u1EA4', '\u1EA6', '\u1EA8', '\u1EAA', '\u1EAC', '\u1EAE', '\u1EB0', '\u1EB2', '\u1EB4', '\u1EB6', '\u1EB8', '\u1EBA', '\u1EBC', '\u1EBE', '\u1EC0', '\u1EC2', '\u1EC4', '\u1EC6', '\u1EC8', '\u1ECA', '\u1ECC', '\u1ECE', '\u1ED0', '\u1ED2', '\u1ED4', '\u1ED6', '\u1ED8', '\u1EDA', '\u1EDC', '\u1EDE', '\u1EE0', '\u1EE2', '\u1EE4', '\u1EE6', '\u1EE8', '\u1EEA', '\u1EEC', '\u1EEE', '\u1EF0', '\u1EF2', '\u1EF4', '\u1EF6', '\u1EF8', '\u1F08', '\u1F09', '\u1F0A', '\u1F0B', '\u1F0C', '\u1F0D', '\u1F0E', '\u1F0F', '\u1F18', '\u1F19', '\u1F1A', '\u1F1B', '\u1F1C', '\u1F1D', '\u1F28', '\u1F29', '\u1F2A', '\u1F2B', '\u1F2C', '\u1F2D', '\u1F2E', '\u1F2F', '\u1F38', '\u1F39', '\u1F3A', '\u1F3B', '\u1F3C', '\u1F3D', '\u1F3E', '\u1F3F', '\u1F48', '\u1F49', '\u1F4A', '\u1F4B', '\u1F4C', '\u1F4D', '\u1F50', '\u1F52', '\u1F54', '\u1F56', '\u1F59', '\u1F5B', '\u1F5D', '\u1F5F', '\u1F68', '\u1F69', '\u1F6A', '\u1F6B', '\u1F6C', '\u1F6D', '\u1F6E', '\u1F6F', '\u1F80', '\u1F81', '\u1F82', '\u1F83', '\u1F84', '\u1F85', '\u1F86', '\u1F87', '\u1F88', '\u1F89', '\u1F8A', '\u1F8B', '\u1F8C', '\u1F8D', '\u1F8E', '\u1F8F', '\u1F90', '\u1F91', '\u1F92', '\u1F93', '\u1F94', '\u1F95', '\u1F96', '\u1F97', '\u1F98', '\u1F99', '\u1F9A', '\u1F9B', '\u1F9C', '\u1F9D', '\u1F9E', '\u1F9F', '\u1FA0', '\u1FA1', '\u1FA2', '\u1FA3', '\u1FA4', '\u1FA5', '\u1FA6', '\u1FA7', '\u1FA8', '\u1FA9', '\u1FAA', '\u1FAB', '\u1FAC', '\u1FAD', '\u1FAE', '\u1FAF', '\u1FB2', '\u1FB3', '\u1FB4', '\u1FB6', '\u1FB7', '\u1FB8', '\u1FB9', '\u1FBA', '\u1FBB', '\u1FBC', '\u1FBE', '\u1FC2', '\u1FC3', '\u1FC4', '\u1FC6', '\u1FC7', '\u1FC8', '\u1FC9', '\u1FCA', '\u1FCB', '\u1FCC', '\u1FD2', '\u1FD3', '\u1FD6', '\u1FD7', '\u1FD8', '\u1FD9', '\u1FDA', '\u1FDB', '\u1FE2', '\u1FE3', '\u1FE4', '\u1FE6', '\u1FE7', '\u1FE8', '\u1FE9', '\u1FEA', '\u1FEB', '\u1FEC', '\u1FF2', '\u1FF3', '\u1FF4', '\u1FF6', '\u1FF7', '\u1FF8', '\u1FF9', '\u1FFA', '\u1FFB', '\u1FFC', '\u2126', '\u212A', '\u212B', '\u2160', '\u2161', '\u2162', '\u2163', '\u2164', '\u2165', '\u2166', '\u2167', '\u2168', '\u2169', '\u216A', '\u216B', '\u216C', '\u216D', '\u216E', '\u216F', '\u24B6', '\u24B7', '\u24B8', '\u24B9', '\u24BA', '\u24BB', '\u24BC', '\u24BD', '\u24BE', '\u24BF', '\u24C0', '\u24C1', '\u24C2', '\u24C3', '\u24C4', '\u24C5', '\u24C6', '\u24C7', '\u24C8', '\u24C9', '\u24CA', '\u24CB', '\u24CC', '\u24CD', '\u24CE', '\u24CF', '\uFB00', '\uFB01', '\uFB02', '\uFB03', '\uFB04', '\uFB05', '\uFB06', '\uFB13', '\uFB14', '\uFB15', '\uFB16', '\uFB17', '\uFF21', '\uFF22', '\uFF23', '\uFF24', '\uFF25', '\uFF26', '\uFF27', '\uFF28', '\uFF29', '\uFF2A', '\uFF2B', '\uFF2C', '\uFF2D', '\uFF2E', '\uFF2F', '\uFF30', '\uFF31', '\uFF32', '\uFF33', '\uFF34', '\uFF35', '\uFF36', '\uFF37', '\uFF38', '\uFF39', '\uFF3A', }; final static String[] B3replace = new String[] { "\u0061", "\u0062", "\u0063", "\u0064", "\u0065", "\u0066", "\u0067", "\u0068", "\u0069", "\u006A", "\u006B", "\u006C", "\u006D", "\u006E", "\u006F", "\u0070", "\u0071", "\u0072", "\u0073", "\u0074", "\u0075", "\u0076", "\u0077", "\u0078", "\u0079", "\u007A", "\u03BC", "\u00E0", "\u00E1", "\u00E2", "\u00E3", "\u00E4", "\u00E5", "\u00E6", "\u00E7", "\u00E8", "\u00E9", "\u00EA", "\u00EB", "\u00EC", "\u00ED", "\u00EE", "\u00EF", "\u00F0", "\u00F1", "\u00F2", "\u00F3", "\u00F4", "\u00F5", "\u00F6", "\u00F8", "\u00F9", "\u00FA", "\u00FB", "\u00FC", "\u00FD", "\u00FE", "\u0073\u0073", "\u0101", "\u0103", "\u0105", "\u0107", "\u0109", "\u010B", "\u010D", "\u010F", "\u0111", "\u0113", "\u0115", "\u0117", "\u0119", "\u011B", "\u011D", "\u011F", "\u0121", "\u0123", "\u0125", "\u0127", "\u0129", "\u012B", "\u012D", "\u012F", "\u0069\u0307", "\u0133", "\u0135", "\u0137", "\u013A", "\u013C", "\u013E", "\u0140", "\u0142", "\u0144", "\u0146", "\u0148", "\u02BC\u006E", "\u014B", "\u014D", "\u014F", "\u0151", "\u0153", "\u0155", "\u0157", "\u0159", "\u015B", "\u015D", "\u015F", "\u0161", "\u0163", "\u0165", "\u0167", "\u0169", "\u016B", "\u016D", "\u016F", "\u0171", "\u0173", "\u0175", "\u0177", "\u00FF", "\u017A", "\u017C", "\u017E", "\u0073", "\u0253", "\u0183", "\u0185", "\u0254", "\u0188", "\u0256", "\u0257", "\u018C", "\u01DD", "\u0259", "\u025B", "\u0192", "\u0260", "\u0263", "\u0269", "\u0268", "\u0199", "\u026F", "\u0272", "\u0275", "\u01A1", "\u01A3", "\u01A5", "\u0280", "\u01A8", "\u0283", "\u01AD", "\u0288", "\u01B0", "\u028A", "\u028B", "\u01B4", "\u01B6", "\u0292", "\u01B9", "\u01BD", "\u01C6", "\u01C6", "\u01C9", "\u01C9", "\u01CC", "\u01CC", "\u01CE", "\u01D0", "\u01D2", "\u01D4", "\u01D6", "\u01D8", "\u01DA", "\u01DC", "\u01DF", "\u01E1", "\u01E3", "\u01E5", "\u01E7", "\u01E9", "\u01EB", "\u01ED", "\u01EF", "\u006A\u030C", "\u01F3", "\u01F3", "\u01F5", "\u0195", "\u01BF", "\u01F9", "\u01FB", "\u01FD", "\u01FF", "\u0201", "\u0203", "\u0205", "\u0207", "\u0209", "\u020B", "\u020D", "\u020F", "\u0211", "\u0213", "\u0215", "\u0217", "\u0219", "\u021B", "\u021D", "\u021F", "\u019E", "\u0223", "\u0225", "\u0227", "\u0229", "\u022B", "\u022D", "\u022F", "\u0231", "\u0233", "\u03B9", "\u03AC", "\u03AD", "\u03AE", "\u03AF", "\u03CC", "\u03CD", "\u03CE", "\u03B9\u0308\u0301", "\u03B1", "\u03B2", "\u03B3", "\u03B4", "\u03B5", "\u03B6", "\u03B7", "\u03B8", "\u03B9", "\u03BA", "\u03BB", "\u03BC", "\u03BD", "\u03BE", "\u03BF", "\u03C0", "\u03C1", "\u03C3", "\u03C4", "\u03C5", "\u03C6", "\u03C7", "\u03C8", "\u03C9", "\u03CA", "\u03CB", "\u03C5\u0308\u0301", "\u03C3", "\u03B2", "\u03B8", "\u03C6", "\u03C0", "\u03D9", "\u03DB", "\u03DD", "\u03DF", "\u03E1", "\u03E3", "\u03E5", "\u03E7", "\u03E9", "\u03EB", "\u03ED", "\u03EF", "\u03BA", "\u03C1", "\u03C3", "\u03B8", "\u03B5", "\u0450", "\u0451", "\u0452", "\u0453", "\u0454", "\u0455", "\u0456", "\u0457", "\u0458", "\u0459", "\u045A", "\u045B", "\u045C", "\u045D", "\u045E", "\u045F", "\u0430", "\u0431", "\u0432", "\u0433", "\u0434", "\u0435", "\u0436", "\u0437", "\u0438", "\u0439", "\u043A", "\u043B", "\u043C", "\u043D", "\u043E", "\u043F", "\u0440", "\u0441", "\u0442", "\u0443", "\u0444", "\u0445", "\u0446", "\u0447", "\u0448", "\u0449", "\u044A", "\u044B", "\u044C", "\u044D", "\u044E", "\u044F", "\u0461", "\u0463", "\u0465", "\u0467", "\u0469", "\u046B", "\u046D", "\u046F", "\u0471", "\u0473", "\u0475", "\u0477", "\u0479", "\u047B", "\u047D", "\u047F", "\u0481", "\u048B", "\u048D", "\u048F", "\u0491", "\u0493", "\u0495", "\u0497", "\u0499", "\u049B", "\u049D", "\u049F", "\u04A1", "\u04A3", "\u04A5", "\u04A7", "\u04A9", "\u04AB", "\u04AD", "\u04AF", "\u04B1", "\u04B3", "\u04B5", "\u04B7", "\u04B9", "\u04BB", "\u04BD", "\u04BF", "\u04C2", "\u04C4", "\u04C6", "\u04C8", "\u04CA", "\u04CC", "\u04CE", "\u04D1", "\u04D3", "\u04D5", "\u04D7", "\u04D9", "\u04DB", "\u04DD", "\u04DF", "\u04E1", "\u04E3", "\u04E5", "\u04E7", "\u04E9", "\u04EB", "\u04ED", "\u04EF", "\u04F1", "\u04F3", "\u04F5", "\u04F9", "\u0501", "\u0503", "\u0505", "\u0507", "\u0509", "\u050B", "\u050D", "\u050F", "\u0561", "\u0562", "\u0563", "\u0564", "\u0565", "\u0566", "\u0567", "\u0568", "\u0569", "\u056A", "\u056B", "\u056C", "\u056D", "\u056E", "\u056F", "\u0570", "\u0571", "\u0572", "\u0573", "\u0574", "\u0575", "\u0576", "\u0577", "\u0578", "\u0579", "\u057A", "\u057B", "\u057C", "\u057D", "\u057E", "\u057F", "\u0580", "\u0581", "\u0582", "\u0583", "\u0584", "\u0585", "\u0586", "\u0565\u0582", "\u1E01", "\u1E03", "\u1E05", "\u1E07", "\u1E09", "\u1E0B", "\u1E0D", "\u1E0F", "\u1E11", "\u1E13", "\u1E15", "\u1E17", "\u1E19", "\u1E1B", "\u1E1D", "\u1E1F", "\u1E21", "\u1E23", "\u1E25", "\u1E27", "\u1E29", "\u1E2B", "\u1E2D", "\u1E2F", "\u1E31", "\u1E33", "\u1E35", "\u1E37", "\u1E39", "\u1E3B", "\u1E3D", "\u1E3F", "\u1E41", "\u1E43", "\u1E45", "\u1E47", "\u1E49", "\u1E4B", "\u1E4D", "\u1E4F", "\u1E51", "\u1E53", "\u1E55", "\u1E57", "\u1E59", "\u1E5B", "\u1E5D", "\u1E5F", "\u1E61", "\u1E63", "\u1E65", "\u1E67", "\u1E69", "\u1E6B", "\u1E6D", "\u1E6F", "\u1E71", "\u1E73", "\u1E75", "\u1E77", "\u1E79", "\u1E7B", "\u1E7D", "\u1E7F", "\u1E81", "\u1E83", "\u1E85", "\u1E87", "\u1E89", "\u1E8B", "\u1E8D", "\u1E8F", "\u1E91", "\u1E93", "\u1E95", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u1E61", "\u1EA1", "\u1EA3", "\u1EA5", "\u1EA7", "\u1EA9", "\u1EAB", "\u1EAD", "\u1EAF", "\u1EB1", "\u1EB3", "\u1EB5", "\u1EB7", "\u1EB9", "\u1EBB", "\u1EBD", "\u1EBF", "\u1EC1", "\u1EC3", "\u1EC5", "\u1EC7", "\u1EC9", "\u1ECB", "\u1ECD", "\u1ECF", "\u1ED1", "\u1ED3", "\u1ED5", "\u1ED7", "\u1ED9", "\u1EDB", "\u1EDD", "\u1EDF", "\u1EE1", "\u1EE3", "\u1EE5", "\u1EE7", "\u1EE9", "\u1EEB", "\u1EED", "\u1EEF", "\u1EF1", "\u1EF3", "\u1EF5", "\u1EF7", "\u1EF9", "\u1F00", "\u1F01", "\u1F02", "\u1F03", "\u1F04", "\u1F05", "\u1F06", "\u1F07", "\u1F10", "\u1F11", "\u1F12", "\u1F13", "\u1F14", "\u1F15", "\u1F20", "\u1F21", "\u1F22", "\u1F23", "\u1F24", "\u1F25", "\u1F26", "\u1F27", "\u1F30", "\u1F31", "\u1F32", "\u1F33", "\u1F34", "\u1F35", "\u1F36", "\u1F37", "\u1F40", "\u1F41", "\u1F42", "\u1F43", "\u1F44", "\u1F45", "\u03C5\u0313", "\u03C5\u0313\u0300", "\u03C5\u0313\u0301", "\u03C5\u0313\u0342", "\u1F51", "\u1F53", "\u1F55", "\u1F57", "\u1F60", "\u1F61", "\u1F62", "\u1F63", "\u1F64", "\u1F65", "\u1F66", "\u1F67", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F00\u03B9", "\u1F01\u03B9", "\u1F02\u03B9", "\u1F03\u03B9", "\u1F04\u03B9", "\u1F05\u03B9", "\u1F06\u03B9", "\u1F07\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F20\u03B9", "\u1F21\u03B9", "\u1F22\u03B9", "\u1F23\u03B9", "\u1F24\u03B9", "\u1F25\u03B9", "\u1F26\u03B9", "\u1F27\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F60\u03B9", "\u1F61\u03B9", "\u1F62\u03B9", "\u1F63\u03B9", "\u1F64\u03B9", "\u1F65\u03B9", "\u1F66\u03B9", "\u1F67\u03B9", "\u1F70\u03B9", "\u03B1\u03B9", "\u03AC\u03B9", "\u03B1\u0342", "\u03B1\u0342\u03B9", "\u1FB0", "\u1FB1", "\u1F70", "\u1F71", "\u03B1\u03B9", "\u03B9", "\u1F74\u03B9", "\u03B7\u03B9", "\u03AE\u03B9", "\u03B7\u0342", "\u03B7\u0342\u03B9", "\u1F72", "\u1F73", "\u1F74", "\u1F75", "\u03B7\u03B9", "\u03B9\u0308\u0300", "\u03B9\u0308\u0301", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u1FD0", "\u1FD1", "\u1F76", "\u1F77", "\u03C5\u0308\u0300", "\u03C5\u0308\u0301", "\u03C1\u0313", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u1FE0", "\u1FE1", "\u1F7A", "\u1F7B", "\u1FE5", "\u1F7C\u03B9", "\u03C9\u03B9", "\u03CE\u03B9", "\u03C9\u0342", "\u03C9\u0342\u03B9", "\u1F78", "\u1F79", "\u1F7C", "\u1F7D", "\u03C9\u03B9", "\u03C9", "\u006B", "\u00E5", "\u2170", "\u2171", "\u2172", "\u2173", "\u2174", "\u2175", "\u2176", "\u2177", "\u2178", "\u2179", "\u217A", "\u217B", "\u217C", "\u217D", "\u217E", "\u217F", "\u24D0", "\u24D1", "\u24D2", "\u24D3", "\u24D4", "\u24D5", "\u24D6", "\u24D7", "\u24D8", "\u24D9", "\u24DA", "\u24DB", "\u24DC", "\u24DD", "\u24DE", "\u24DF", "\u24E0", "\u24E1", "\u24E2", "\u24E3", "\u24E4", "\u24E5", "\u24E6", "\u24E7", "\u24E8", "\u24E9", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\uFF41", "\uFF42", "\uFF43", "\uFF44", "\uFF45", "\uFF46", "\uFF47", "\uFF48", "\uFF49", "\uFF4A", "\uFF4B", "\uFF4C", "\uFF4D", "\uFF4E", "\uFF4F", "\uFF50", "\uFF51", "\uFF52", "\uFF53", "\uFF54", "\uFF55", "\uFF56", "\uFF57", "\uFF58", "\uFF59", "\uFF5A", }; final static char[] C11 = new char[] { '\u0020', }; final static char[] C12 = new char[] { '\u00A0', '\u1680', '\u2000', '\u2001', '\u2002', '\u2003', '\u2004', '\u2005', '\u2006', '\u2007', '\u2008', '\u2009', '\u200A', '\u200B', '\u202F', '\u205F', '\u3000', }; final static char[][] C21 = new char[][] { new char[] { '\u0000', '\u001F' }, new char[] { '\u007F' }, }; final static char[][] C22 = new char[][] { new char[] { '\u0080', '\u009F' }, new char[] { '\u06DD' }, new char[] { '\u070F' }, new char[] { '\u180E' }, new char[] { '\u200C' }, new char[] { '\u200D' }, new char[] { '\u2028' }, new char[] { '\u2029' }, new char[] { '\u2060' }, new char[] { '\u2061' }, new char[] { '\u2062' }, new char[] { '\u2063' }, new char[] { '\u206A', '\u206F' }, new char[] { '\uFEFF' }, new char[] { '\uFFF9', '\uFFFC' }, }; final static char[][] C3 = new char[][] { new char[] { '\uE000', '\uF8FF' }, }; final static char[][] C4 = new char[][] { new char[] { '\uFDD0', '\uFDEF' }, new char[] { '\uFFFE', '\uFFFF' }, }; final static char[][] C5 = new char[][] { new char[] { '\uD800', '\uDFFF' }, }; final static char[][] C6 = new char[][] { new char[] { '\uFFF9' }, new char[] { '\uFFFA' }, new char[] { '\uFFFB' }, new char[] { '\uFFFC' }, new char[] { '\uFFFD' }, }; final static char[][] C7 = new char[][] { new char[] { '\u2FF0', '\u2FFB' }, }; final static char[][] C8 = new char[][] { new char[] { '\u0340' }, new char[] { '\u0341' }, new char[] { '\u200E' }, new char[] { '\u200F' }, new char[] { '\u202A' }, new char[] { '\u202B' }, new char[] { '\u202C' }, new char[] { '\u202D' }, new char[] { '\u202E' }, new char[] { '\u206A' }, new char[] { '\u206B' }, new char[] { '\u206C' }, new char[] { '\u206D' }, new char[] { '\u206E' }, new char[] { '\u206F' }, }; final static char[][] D1 = new char[][] { new char[] { '\u05BE' }, new char[] { '\u05C0' }, new char[] { '\u05C3' }, new char[] { '\u05D0', '\u05EA' }, new char[] { '\u05F0', '\u05F4' }, new char[] { '\u061B' }, new char[] { '\u061F' }, new char[] { '\u0621', '\u063A' }, new char[] { '\u0640', '\u064A' }, new char[] { '\u066D', '\u066F' }, new char[] { '\u0671', '\u06D5' }, new char[] { '\u06DD' }, new char[] { '\u06E5', '\u06E6' }, new char[] { '\u06FA', '\u06FE' }, new char[] { '\u0700', '\u070D' }, new char[] { '\u0710' }, new char[] { '\u0712', '\u072C' }, new char[] { '\u0780', '\u07A5' }, new char[] { '\u07B1' }, new char[] { '\u200F' }, new char[] { '\uFB1D' }, new char[] { '\uFB1F', '\uFB28' }, new char[] { '\uFB2A', '\uFB36' }, new char[] { '\uFB38', '\uFB3C' }, new char[] { '\uFB3E' }, new char[] { '\uFB40', '\uFB41' }, new char[] { '\uFB43', '\uFB44' }, new char[] { '\uFB46', '\uFBB1' }, new char[] { '\uFBD3', '\uFD3D' }, new char[] { '\uFD50', '\uFD8F' }, new char[] { '\uFD92', '\uFDC7' }, new char[] { '\uFDF0', '\uFDFC' }, new char[] { '\uFE70', '\uFE74' }, new char[] { '\uFE76', '\uFEFC' }, }; final static char[][] D2 = new char[][] { new char[] { '\u0041', '\u005A' }, new char[] { '\u0061', '\u007A' }, new char[] { '\u00AA' }, new char[] { '\u00B5' }, new char[] { '\u00BA' }, new char[] { '\u00C0', '\u00D6' }, new char[] { '\u00D8', '\u00F6' }, new char[] { '\u00F8', '\u0220' }, new char[] { '\u0222', '\u0233' }, new char[] { '\u0250', '\u02AD' }, new char[] { '\u02B0', '\u02B8' }, new char[] { '\u02BB', '\u02C1' }, new char[] { '\u02D0', '\u02D1' }, new char[] { '\u02E0', '\u02E4' }, new char[] { '\u02EE' }, new char[] { '\u037A' }, new char[] { '\u0386' }, new char[] { '\u0388', '\u038A' }, new char[] { '\u038C' }, new char[] { '\u038E', '\u03A1' }, new char[] { '\u03A3', '\u03CE' }, new char[] { '\u03D0', '\u03F5' }, new char[] { '\u0400', '\u0482' }, new char[] { '\u048A', '\u04CE' }, new char[] { '\u04D0', '\u04F5' }, new char[] { '\u04F8', '\u04F9' }, new char[] { '\u0500', '\u050F' }, new char[] { '\u0531', '\u0556' }, new char[] { '\u0559', '\u055F' }, new char[] { '\u0561', '\u0587' }, new char[] { '\u0589' }, new char[] { '\u0903' }, new char[] { '\u0905', '\u0939' }, new char[] { '\u093D', '\u0940' }, new char[] { '\u0949', '\u094C' }, new char[] { '\u0950' }, new char[] { '\u0958', '\u0961' }, new char[] { '\u0964', '\u0970' }, new char[] { '\u0982', '\u0983' }, new char[] { '\u0985', '\u098C' }, new char[] { '\u098F', '\u0990' }, new char[] { '\u0993', '\u09A8' }, new char[] { '\u09AA', '\u09B0' }, new char[] { '\u09B2' }, new char[] { '\u09B6', '\u09B9' }, new char[] { '\u09BE', '\u09C0' }, new char[] { '\u09C7', '\u09C8' }, new char[] { '\u09CB', '\u09CC' }, new char[] { '\u09D7' }, new char[] { '\u09DC', '\u09DD' }, new char[] { '\u09DF', '\u09E1' }, new char[] { '\u09E6', '\u09F1' }, new char[] { '\u09F4', '\u09FA' }, new char[] { '\u0A05', '\u0A0A' }, new char[] { '\u0A0F', '\u0A10' }, new char[] { '\u0A13', '\u0A28' }, new char[] { '\u0A2A', '\u0A30' }, new char[] { '\u0A32', '\u0A33' }, new char[] { '\u0A35', '\u0A36' }, new char[] { '\u0A38', '\u0A39' }, new char[] { '\u0A3E', '\u0A40' }, new char[] { '\u0A59', '\u0A5C' }, new char[] { '\u0A5E' }, new char[] { '\u0A66', '\u0A6F' }, new char[] { '\u0A72', '\u0A74' }, new char[] { '\u0A83' }, new char[] { '\u0A85', '\u0A8B' }, new char[] { '\u0A8D' }, new char[] { '\u0A8F', '\u0A91' }, new char[] { '\u0A93', '\u0AA8' }, new char[] { '\u0AAA', '\u0AB0' }, new char[] { '\u0AB2', '\u0AB3' }, new char[] { '\u0AB5', '\u0AB9' }, new char[] { '\u0ABD', '\u0AC0' }, new char[] { '\u0AC9' }, new char[] { '\u0ACB', '\u0ACC' }, new char[] { '\u0AD0' }, new char[] { '\u0AE0' }, new char[] { '\u0AE6', '\u0AEF' }, new char[] { '\u0B02', '\u0B03' }, new char[] { '\u0B05', '\u0B0C' }, new char[] { '\u0B0F', '\u0B10' }, new char[] { '\u0B13', '\u0B28' }, new char[] { '\u0B2A', '\u0B30' }, new char[] { '\u0B32', '\u0B33' }, new char[] { '\u0B36', '\u0B39' }, new char[] { '\u0B3D', '\u0B3E' }, new char[] { '\u0B40' }, new char[] { '\u0B47', '\u0B48' }, new char[] { '\u0B4B', '\u0B4C' }, new char[] { '\u0B57' }, new char[] { '\u0B5C', '\u0B5D' }, new char[] { '\u0B5F', '\u0B61' }, new char[] { '\u0B66', '\u0B70' }, new char[] { '\u0B83' }, new char[] { '\u0B85', '\u0B8A' }, new char[] { '\u0B8E', '\u0B90' }, new char[] { '\u0B92', '\u0B95' }, new char[] { '\u0B99', '\u0B9A' }, new char[] { '\u0B9C' }, new char[] { '\u0B9E', '\u0B9F' }, new char[] { '\u0BA3', '\u0BA4' }, new char[] { '\u0BA8', '\u0BAA' }, new char[] { '\u0BAE', '\u0BB5' }, new char[] { '\u0BB7', '\u0BB9' }, new char[] { '\u0BBE', '\u0BBF' }, new char[] { '\u0BC1', '\u0BC2' }, new char[] { '\u0BC6', '\u0BC8' }, new char[] { '\u0BCA', '\u0BCC' }, new char[] { '\u0BD7' }, new char[] { '\u0BE7', '\u0BF2' }, new char[] { '\u0C01', '\u0C03' }, new char[] { '\u0C05', '\u0C0C' }, new char[] { '\u0C0E', '\u0C10' }, new char[] { '\u0C12', '\u0C28' }, new char[] { '\u0C2A', '\u0C33' }, new char[] { '\u0C35', '\u0C39' }, new char[] { '\u0C41', '\u0C44' }, new char[] { '\u0C60', '\u0C61' }, new char[] { '\u0C66', '\u0C6F' }, new char[] { '\u0C82', '\u0C83' }, new char[] { '\u0C85', '\u0C8C' }, new char[] { '\u0C8E', '\u0C90' }, new char[] { '\u0C92', '\u0CA8' }, new char[] { '\u0CAA', '\u0CB3' }, new char[] { '\u0CB5', '\u0CB9' }, new char[] { '\u0CBE' }, new char[] { '\u0CC0', '\u0CC4' }, new char[] { '\u0CC7', '\u0CC8' }, new char[] { '\u0CCA', '\u0CCB' }, new char[] { '\u0CD5', '\u0CD6' }, new char[] { '\u0CDE' }, new char[] { '\u0CE0', '\u0CE1' }, new char[] { '\u0CE6', '\u0CEF' }, new char[] { '\u0D02', '\u0D03' }, new char[] { '\u0D05', '\u0D0C' }, new char[] { '\u0D0E', '\u0D10' }, new char[] { '\u0D12', '\u0D28' }, new char[] { '\u0D2A', '\u0D39' }, new char[] { '\u0D3E', '\u0D40' }, new char[] { '\u0D46', '\u0D48' }, new char[] { '\u0D4A', '\u0D4C' }, new char[] { '\u0D57' }, new char[] { '\u0D60', '\u0D61' }, new char[] { '\u0D66', '\u0D6F' }, new char[] { '\u0D82', '\u0D83' }, new char[] { '\u0D85', '\u0D96' }, new char[] { '\u0D9A', '\u0DB1' }, new char[] { '\u0DB3', '\u0DBB' }, new char[] { '\u0DBD' }, new char[] { '\u0DC0', '\u0DC6' }, new char[] { '\u0DCF', '\u0DD1' }, new char[] { '\u0DD8', '\u0DDF' }, new char[] { '\u0DF2', '\u0DF4' }, new char[] { '\u0E01', '\u0E30' }, new char[] { '\u0E32', '\u0E33' }, new char[] { '\u0E40', '\u0E46' }, new char[] { '\u0E4F', '\u0E5B' }, new char[] { '\u0E81', '\u0E82' }, new char[] { '\u0E84' }, new char[] { '\u0E87', '\u0E88' }, new char[] { '\u0E8A' }, new char[] { '\u0E8D' }, new char[] { '\u0E94', '\u0E97' }, new char[] { '\u0E99', '\u0E9F' }, new char[] { '\u0EA1', '\u0EA3' }, new char[] { '\u0EA5' }, new char[] { '\u0EA7' }, new char[] { '\u0EAA', '\u0EAB' }, new char[] { '\u0EAD', '\u0EB0' }, new char[] { '\u0EB2', '\u0EB3' }, new char[] { '\u0EBD' }, new char[] { '\u0EC0', '\u0EC4' }, new char[] { '\u0EC6' }, new char[] { '\u0ED0', '\u0ED9' }, new char[] { '\u0EDC', '\u0EDD' }, new char[] { '\u0F00', '\u0F17' }, new char[] { '\u0F1A', '\u0F34' }, new char[] { '\u0F36' }, new char[] { '\u0F38' }, new char[] { '\u0F3E', '\u0F47' }, new char[] { '\u0F49', '\u0F6A' }, new char[] { '\u0F7F' }, new char[] { '\u0F85' }, new char[] { '\u0F88', '\u0F8B' }, new char[] { '\u0FBE', '\u0FC5' }, new char[] { '\u0FC7', '\u0FCC' }, new char[] { '\u0FCF' }, new char[] { '\u1000', '\u1021' }, new char[] { '\u1023', '\u1027' }, new char[] { '\u1029', '\u102A' }, new char[] { '\u102C' }, new char[] { '\u1031' }, new char[] { '\u1038' }, new char[] { '\u1040', '\u1057' }, new char[] { '\u10A0', '\u10C5' }, new char[] { '\u10D0', '\u10F8' }, new char[] { '\u10FB' }, new char[] { '\u1100', '\u1159' }, new char[] { '\u115F', '\u11A2' }, new char[] { '\u11A8', '\u11F9' }, new char[] { '\u1200', '\u1206' }, new char[] { '\u1208', '\u1246' }, new char[] { '\u1248' }, new char[] { '\u124A', '\u124D' }, new char[] { '\u1250', '\u1256' }, new char[] { '\u1258' }, new char[] { '\u125A', '\u125D' }, new char[] { '\u1260', '\u1286' }, new char[] { '\u1288' }, new char[] { '\u128A', '\u128D' }, new char[] { '\u1290', '\u12AE' }, new char[] { '\u12B0' }, new char[] { '\u12B2', '\u12B5' }, new char[] { '\u12B8', '\u12BE' }, new char[] { '\u12C0' }, new char[] { '\u12C2', '\u12C5' }, new char[] { '\u12C8', '\u12CE' }, new char[] { '\u12D0', '\u12D6' }, new char[] { '\u12D8', '\u12EE' }, new char[] { '\u12F0', '\u130E' }, new char[] { '\u1310' }, new char[] { '\u1312', '\u1315' }, new char[] { '\u1318', '\u131E' }, new char[] { '\u1320', '\u1346' }, new char[] { '\u1348', '\u135A' }, new char[] { '\u1361', '\u137C' }, new char[] { '\u13A0', '\u13F4' }, new char[] { '\u1401', '\u1676' }, new char[] { '\u1681', '\u169A' }, new char[] { '\u16A0', '\u16F0' }, new char[] { '\u1700', '\u170C' }, new char[] { '\u170E', '\u1711' }, new char[] { '\u1720', '\u1731' }, new char[] { '\u1735', '\u1736' }, new char[] { '\u1740', '\u1751' }, new char[] { '\u1760', '\u176C' }, new char[] { '\u176E', '\u1770' }, new char[] { '\u1780', '\u17B6' }, new char[] { '\u17BE', '\u17C5' }, new char[] { '\u17C7', '\u17C8' }, new char[] { '\u17D4', '\u17DA' }, new char[] { '\u17DC' }, new char[] { '\u17E0', '\u17E9' }, new char[] { '\u1810', '\u1819' }, new char[] { '\u1820', '\u1877' }, new char[] { '\u1880', '\u18A8' }, new char[] { '\u1E00', '\u1E9B' }, new char[] { '\u1EA0', '\u1EF9' }, new char[] { '\u1F00', '\u1F15' }, new char[] { '\u1F18', '\u1F1D' }, new char[] { '\u1F20', '\u1F45' }, new char[] { '\u1F48', '\u1F4D' }, new char[] { '\u1F50', '\u1F57' }, new char[] { '\u1F59' }, new char[] { '\u1F5B' }, new char[] { '\u1F5D' }, new char[] { '\u1F5F', '\u1F7D' }, new char[] { '\u1F80', '\u1FB4' }, new char[] { '\u1FB6', '\u1FBC' }, new char[] { '\u1FBE' }, new char[] { '\u1FC2', '\u1FC4' }, new char[] { '\u1FC6', '\u1FCC' }, new char[] { '\u1FD0', '\u1FD3' }, new char[] { '\u1FD6', '\u1FDB' }, new char[] { '\u1FE0', '\u1FEC' }, new char[] { '\u1FF2', '\u1FF4' }, new char[] { '\u1FF6', '\u1FFC' }, new char[] { '\u200E' }, new char[] { '\u2071' }, new char[] { '\u207F' }, new char[] { '\u2102' }, new char[] { '\u2107' }, new char[] { '\u210A', '\u2113' }, new char[] { '\u2115' }, new char[] { '\u2119', '\u211D' }, new char[] { '\u2124' }, new char[] { '\u2126' }, new char[] { '\u2128' }, new char[] { '\u212A', '\u212D' }, new char[] { '\u212F', '\u2131' }, new char[] { '\u2133', '\u2139' }, new char[] { '\u213D', '\u213F' }, new char[] { '\u2145', '\u2149' }, new char[] { '\u2160', '\u2183' }, new char[] { '\u2336', '\u237A' }, new char[] { '\u2395' }, new char[] { '\u249C', '\u24E9' }, new char[] { '\u3005', '\u3007' }, new char[] { '\u3021', '\u3029' }, new char[] { '\u3031', '\u3035' }, new char[] { '\u3038', '\u303C' }, new char[] { '\u3041', '\u3096' }, new char[] { '\u309D', '\u309F' }, new char[] { '\u30A1', '\u30FA' }, new char[] { '\u30FC', '\u30FF' }, new char[] { '\u3105', '\u312C' }, new char[] { '\u3131', '\u318E' }, new char[] { '\u3190', '\u31B7' }, new char[] { '\u31F0', '\u321C' }, new char[] { '\u3220', '\u3243' }, new char[] { '\u3260', '\u327B' }, new char[] { '\u327F', '\u32B0' }, new char[] { '\u32C0', '\u32CB' }, new char[] { '\u32D0', '\u32FE' }, new char[] { '\u3300', '\u3376' }, new char[] { '\u337B', '\u33DD' }, new char[] { '\u33E0', '\u33FE' }, new char[] { '\u3400', '\u4DB5' }, new char[] { '\u4E00', '\u9FA5' }, new char[] { '\uA000', '\uA48C' }, new char[] { '\uAC00', '\uD7A3' }, new char[] { '\uD800', '\uFA2D' }, new char[] { '\uFA30', '\uFA6A' }, new char[] { '\uFB00', '\uFB06' }, new char[] { '\uFB13', '\uFB17' }, new char[] { '\uFF21', '\uFF3A' }, new char[] { '\uFF41', '\uFF5A' }, new char[] { '\uFF66', '\uFFBE' }, new char[] { '\uFFC2', '\uFFC7' }, new char[] { '\uFFCA', '\uFFCF' }, new char[] { '\uFFD2', '\uFFD7' }, new char[] { '\uFFDA', '\uFFDC' }, }; } libidn-1.28/java/src/main/java/gnu/inet/encoding/CombiningClass.java0000644000000000000000000004512412153707514022240 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class CombiningClass { public final static int[][] c = new int[][] { { /* Page 3 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 0, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, 0, 24, 25, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 14 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 23 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 24 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 32 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 48 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 251 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, { /* Page 254 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, }; public final static int[] i = new int[] { -1, -1, -1, 0, 1, 2, 3, 4, -1, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 16, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, -1, -1, 18, -1, }; } libidn-1.28/java/src/main/java/gnu/inet/encoding/IDNAException.java0000644000000000000000000000317112153707514021733 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * Exception handling for IDNA class. */ public class IDNAException extends Exception { public static String CONTAINS_NON_LDH = "Contains non-LDH characters."; public static String CONTAINS_HYPHEN = "Leading or trailing hyphen not allowed."; public static String CONTAINS_ACE_PREFIX = "ACE prefix (xn--) not allowed."; public static String TOO_LONG = "String too long."; public IDNAException(String m) { super(m); } public IDNAException(StringprepException e) { super(e); } public IDNAException(PunycodeException e) { super(e); } } libidn-1.28/java/src/main/java/gnu/inet/encoding/PunycodeException.java0000644000000000000000000000261012153707514023003 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * Exception handling for Punycode class. */ public class PunycodeException extends Exception { public static String OVERFLOW = "Overflow."; public static String BAD_INPUT = "Bad input."; /** * Creates a new PunycodeException. * * @param m message. */ public PunycodeException(String m) { super(m); } } libidn-1.28/java/src/main/java/gnu/inet/encoding/Stringprep.java0000644000000000000000000003102512153710057021471 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; import java.util.Arrays; /** * This class offers static methods for preparing internationalized * strings. It supports the following stringprep profiles: *
      *
    • RFC3491 nameprep *
    • RFC3920 XMPP nodeprep and resourceprep *
    * Note that this implementation only supports 16-bit Unicode code * points. */ public class Stringprep { private static final RangeSet.Range[] NODEPREP_PASSTHROUGH_RANGES = new RangeSet.Range[] { new RangeSet.Range(0x5B, 0x7E), new RangeSet.Range(0x30, 0x39), new RangeSet.Range(0x28, 0x2E)}; private static final RangeSet.Range[] NAMEPREP_PASSTHROUGH_RANGES = new RangeSet.Range[] { new RangeSet.Range(0x5B, 0x7F), new RangeSet.Range(0x00, 0x40)}; private static final RangeSet.Range[] RESOURCEPREP_PASSTHROUGH_RANGES = new RangeSet.Range[] { new RangeSet.Range(0x20, 0x7E)}; private static final RangeSet RANGE_A1 = RangeSet.builder().addRanges(RFC3454.A1) .build(); private static final RangeSet RANGE_B1 = RangeSet.builder().addRanges(RFC3454.B1) .build(); private static final RangeSet RANGE_D1 = RangeSet.builder().addRanges(RFC3454.D1) .build(); private static final RangeSet RANGE_D2 = RangeSet.builder().addRanges(RFC3454.D2) .build(); private static final RangeSet RANGE_C3_to_C8_C12_C22 = RangeSet.builder().addRanges(RFC3454.C12) .addRanges(RFC3454.C22) .addRanges(RFC3454.C3) .addRanges(RFC3454.C4) .addRanges(RFC3454.C5) .addRanges(RFC3454.C6) .addRanges(RFC3454.C7) .addRanges(RFC3454.C8) // TODO Add C9 table now, proper unicode support now // Temporary rejection of all "unsupported" in java 1.4 .addRange(new RangeSet.Range(0xffff, 0x10ffff)) .build(); /** * Characters prohibited by RFC3920 nodeprep that aren't defined as * part of the RFC3454 tables. */ private static final char [] RFC3920_NODEPREP_PROHIBIT = new char [] { '\u0022', '\u0026', '\'', '\u002F', '\u003A', '\u003C', '\u003E', '\u0040' }; private static final RangeSet RANGE_C3_TO_C8_C11_12_21_22_NP_PROHIB = RangeSet.builder().addRanges(RFC3454.C3) .addRanges(RFC3454.C4) .addRanges(RFC3454.C5) .addRanges(RFC3454.C6) .addRanges(RFC3454.C7) .addRanges(RFC3454.C8) .addRanges(RFC3454.C11) .addRanges(RFC3454.C12) .addRanges(RFC3454.C21) .addRanges(RFC3454.C22) .addRanges(RFC3920_NODEPREP_PROHIBIT) // TODO Add C9 table now, proper unicode support now // Temporary rejection of all "unsupported" in java 1.4 .addRange(new RangeSet.Range(0xffff, 0x10ffff)) .build(); private static final RangeSet RANGE_C3_to_C8_C12_C21_C22 = RangeSet.builder().addRanges(RFC3454.C12) .addRanges(RFC3454.C21) .addRanges(RFC3454.C22) .addRanges(RFC3454.C3) .addRanges(RFC3454.C4) .addRanges(RFC3454.C5) .addRanges(RFC3454.C6) .addRanges(RFC3454.C7) .addRanges(RFC3454.C8) // TODO Add C9 table now, proper unicode support now // Temporary rejection of all "unsupported" in java 1.4 .addRange(new RangeSet.Range(0xffff, 0x10ffff)) .build(); /** * Preps a name according to the Stringprep profile defined in * RFC3491. Unassigned code points are not allowed. * * @param input the name to prep. * @return the prepped name. * @throws StringprepException If the name cannot be prepped with * this profile. * @throws NullPointerException If the name is null. */ public static String nameprep(String input) throws StringprepException, NullPointerException { return nameprep(input, false); } /** * Preps a name according to the Stringprep profile defined in * RFC3491. * * @param input the name to prep. * @param allowUnassigned true if the name may contain unassigned * code points. * @return the prepped name. * @throws StringprepException If the name cannot be prepped with * this profile. * @throws NullPointerException If the name is null. */ public static String nameprep(String input, boolean allowUnassigned) throws StringprepException, NullPointerException { if (input == null) { throw new NullPointerException(); } final RangeSet.Range inputRange = RangeSet.createTextRange(input); if (onlyPassThrough(NAMEPREP_PASSTHROUGH_RANGES, inputRange)) { return input; } if (!allowUnassigned && RANGE_A1.containsAnyCodePoint(input, inputRange)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } StringBuilder s = new StringBuilder(input); filter(s, RANGE_B1); map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.normalizeNFKC(s.toString())); final RangeSet.Range normalizedRange = RangeSet.createTextRange(s); // B.3 is only needed if NFKC is not used, right? // map(s, RFC3454.B3search, RFC3454.B3replace); if (RANGE_C3_to_C8_C12_C22.containsAnyCodePoint(s, normalizedRange)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling boolean r = RANGE_D1.containsAnyCodePoint(s, normalizedRange); boolean l = RANGE_D2.containsAnyCodePoint(s, normalizedRange); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!RANGE_D1.contains(s.charAt(0)) || !RANGE_D1.contains(s.charAt(s.length()-1))) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.toString(); } /** * Preps a node name according to the Stringprep profile defined in * RFC3920. Unassigned code points are not allowed. * * @param input the node name to prep. * @return the prepped node name. * @throws StringprepException If the node name cannot be prepped * with this profile. * @throws NullPointerException If the node name is null. */ public static String nodeprep(String input) throws StringprepException, NullPointerException { return nodeprep(input, false); } /** * Preps a node name according to the Stringprep profile defined in * RFC3920. * * @param input the node name to prep. * @param allowUnassigned true if the node name may contain * unassigned code points. * @return the prepped node name. * @throws StringprepException If the node name cannot be prepped * with this profile. * @throws NullPointerException If the node name is null. */ public static String nodeprep(String input, boolean allowUnassigned) throws StringprepException, NullPointerException { if (input == null) { throw new NullPointerException(); } final RangeSet.Range inputRange = RangeSet.createTextRange(input); if (onlyPassThrough(NODEPREP_PASSTHROUGH_RANGES, inputRange)) { return input; } if (!allowUnassigned && RANGE_A1.containsAnyCodePoint(input, inputRange)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } StringBuilder s = new StringBuilder(input); filter(s, RANGE_B1); map(s, RFC3454.B2search, RFC3454.B2replace); s = new StringBuilder(NFKC.normalizeNFKC(s.toString())); final RangeSet.Range normalizedRange = RangeSet.createTextRange(s); if (RANGE_C3_TO_C8_C11_12_21_22_NP_PROHIB.containsAnyCodePoint(s, normalizedRange)) { throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling boolean r = RANGE_D1.containsAnyCodePoint(s, normalizedRange); boolean l = RANGE_D2.containsAnyCodePoint(s, normalizedRange); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!RANGE_D1.contains(s.charAt(0)) || !RANGE_D1.contains(s.charAt(s.length() - 1))) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.toString(); } /** * Preps a resource name according to the Stringprep profile defined * in RFC3920. Unassigned code points are not allowed. * * @param input the resource name to prep. * @return the prepped node name. * @throws StringprepException If the resource name cannot be prepped * with this profile. * @throws NullPointerException If the resource name is null. */ public static String resourceprep(String input) throws StringprepException, NullPointerException { return resourceprep(input, false); } /** * Preps a resource name according to the Stringprep profile defined * in RFC3920. * * @param input the resource name to prep. * @param allowUnassigned true if the resource name may contain * unassigned code points. * @return the prepped node name. * @throws StringprepException If the resource name cannot be prepped * with this profile. * @throws NullPointerException If the resource name is null. */ public static String resourceprep(String input, boolean allowUnassigned) throws StringprepException, NullPointerException { if (input == null) { throw new NullPointerException(); } final RangeSet.Range inputRange = RangeSet.createTextRange(input); if (onlyPassThrough(RESOURCEPREP_PASSTHROUGH_RANGES, inputRange)) { return input; } if (!allowUnassigned && RANGE_A1.containsAnyCodePoint(input)) { throw new StringprepException(StringprepException.CONTAINS_UNASSIGNED); } StringBuilder s = new StringBuilder(input); filter(s, RANGE_B1); s = new StringBuilder(NFKC.normalizeNFKC(s.toString())); final RangeSet.Range normalizedRange = RangeSet.createTextRange(s); if (RANGE_C3_to_C8_C12_C21_C22.containsAnyCodePoint(s, normalizedRange)) { // Table C.9 only contains code points > 0xFFFF which Java // doesn't handle throw new StringprepException(StringprepException.CONTAINS_PROHIBITED); } // Bidi handling boolean r = RANGE_D1.containsAnyCodePoint(s, normalizedRange); boolean l = RANGE_D2.containsAnyCodePoint(s, normalizedRange); // RFC 3454, section 6, requirement 1: already handled above (table C.8) // RFC 3454, section 6, requirement 2 if (r && l) { throw new StringprepException(StringprepException.BIDI_BOTHRAL); } // RFC 3454, section 6, requirement 3 if (r) { if (!RANGE_D1.contains(s.charAt(0)) || !RANGE_D1.contains(s.charAt(s.length() - 1))) { throw new StringprepException(StringprepException.BIDI_LTRAL); } } return s.toString(); } private static boolean onlyPassThrough(final RangeSet.Range[] passThroughs, final RangeSet.Range inputRange) { for (final RangeSet.Range passThrough : passThroughs) { if (passThrough.contains(inputRange)) { return true; } } return false; } static void filter(StringBuilder s, RangeSet f) { for (int j = 0; j < s.length(); ) { if (f.contains(s.charAt(j))) { s.deleteCharAt(j); } else { j++; } } } static void map(StringBuilder s, char[] search, String[] replace) { for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); int mapIndex = Arrays.binarySearch(search, c); if (mapIndex >= 0) { String replacement = replace[mapIndex]; s.replace(i, i + 1, replacement); i += replacement.length() - 1; } } } } libidn-1.28/java/src/main/java/gnu/inet/encoding/DecompositionMappings.java0000644000000000000000000015624712153707514023671 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class DecompositionMappings { public final static String[] m = new String[] { "\u0020", "\u0020\u0308", "\u0061", "\u0020\u0304", "\u0032", "\u0033", "\u0020\u0301", "\u03BC", "\u0020\u0327", "\u0031", "\u006F", "\u0031\u2044\u0034", "\u0031\u2044\u0032", "\u0033\u2044\u0034", "\u0041\u0300", "\u0041\u0301", "\u0041\u0302", "\u0041\u0303", "\u0041\u0308", "\u0041\u030A", "\u0043\u0327", "\u0045\u0300", "\u0045\u0301", "\u0045\u0302", "\u0045\u0308", "\u0049\u0300", "\u0049\u0301", "\u0049\u0302", "\u0049\u0308", "\u004E\u0303", "\u004F\u0300", "\u004F\u0301", "\u004F\u0302", "\u004F\u0303", "\u004F\u0308", "\u0055\u0300", "\u0055\u0301", "\u0055\u0302", "\u0055\u0308", "\u0059\u0301", "\u0061\u0300", "\u0061\u0301", "\u0061\u0302", "\u0061\u0303", "\u0061\u0308", "\u0061\u030A", "\u0063\u0327", "\u0065\u0300", "\u0065\u0301", "\u0065\u0302", "\u0065\u0308", "\u0069\u0300", "\u0069\u0301", "\u0069\u0302", "\u0069\u0308", "\u006E\u0303", "\u006F\u0300", "\u006F\u0301", "\u006F\u0302", "\u006F\u0303", "\u006F\u0308", "\u0075\u0300", "\u0075\u0301", "\u0075\u0302", "\u0075\u0308", "\u0079\u0301", "\u0079\u0308", "\u0041\u0304", "\u0061\u0304", "\u0041\u0306", "\u0061\u0306", "\u0041\u0328", "\u0061\u0328", "\u0043\u0301", "\u0063\u0301", "\u0043\u0302", "\u0063\u0302", "\u0043\u0307", "\u0063\u0307", "\u0043\u030C", "\u0063\u030C", "\u0044\u030C", "\u0064\u030C", "\u0045\u0304", "\u0065\u0304", "\u0045\u0306", "\u0065\u0306", "\u0045\u0307", "\u0065\u0307", "\u0045\u0328", "\u0065\u0328", "\u0045\u030C", "\u0065\u030C", "\u0047\u0302", "\u0067\u0302", "\u0047\u0306", "\u0067\u0306", "\u0047\u0307", "\u0067\u0307", "\u0047\u0327", "\u0067\u0327", "\u0048\u0302", "\u0068\u0302", "\u0049\u0303", "\u0069\u0303", "\u0049\u0304", "\u0069\u0304", "\u0049\u0306", "\u0069\u0306", "\u0049\u0328", "\u0069\u0328", "\u0049\u0307", "\u0049\u004A", "\u0069\u006A", "\u004A\u0302", "\u006A\u0302", "\u004B\u0327", "\u006B\u0327", "\u004C\u0301", "\u006C\u0301", "\u004C\u0327", "\u006C\u0327", "\u004C\u030C", "\u006C\u030C", "\u004C\u00B7", "\u006C\u00B7", "\u004E\u0301", "\u006E\u0301", "\u004E\u0327", "\u006E\u0327", "\u004E\u030C", "\u006E\u030C", "\u02BC\u006E", "\u004F\u0304", "\u006F\u0304", "\u004F\u0306", "\u006F\u0306", "\u004F\u030B", "\u006F\u030B", "\u0052\u0301", "\u0072\u0301", "\u0052\u0327", "\u0072\u0327", "\u0052\u030C", "\u0072\u030C", "\u0053\u0301", "\u0073\u0301", "\u0053\u0302", "\u0073\u0302", "\u0053\u0327", "\u0073\u0327", "\u0053\u030C", "\u0073\u030C", "\u0054\u0327", "\u0074\u0327", "\u0054\u030C", "\u0074\u030C", "\u0055\u0303", "\u0075\u0303", "\u0055\u0304", "\u0075\u0304", "\u0055\u0306", "\u0075\u0306", "\u0055\u030A", "\u0075\u030A", "\u0055\u030B", "\u0075\u030B", "\u0055\u0328", "\u0075\u0328", "\u0057\u0302", "\u0077\u0302", "\u0059\u0302", "\u0079\u0302", "\u0059\u0308", "\u005A\u0301", "\u007A\u0301", "\u005A\u0307", "\u007A\u0307", "\u005A\u030C", "\u007A\u030C", "\u0073", "\u004F\u031B", "\u006F\u031B", "\u0055\u031B", "\u0075\u031B", "\u0044\u005A\u030C", "\u0044\u007A\u030C", "\u0064\u007A\u030C", "\u004C\u004A", "\u004C\u006A", "\u006C\u006A", "\u004E\u004A", "\u004E\u006A", "\u006E\u006A", "\u0041\u030C", "\u0061\u030C", "\u0049\u030C", "\u0069\u030C", "\u004F\u030C", "\u006F\u030C", "\u0055\u030C", "\u0075\u030C", "\u0055\u0308\u0304", "\u0075\u0308\u0304", "\u0055\u0308\u0301", "\u0075\u0308\u0301", "\u0055\u0308\u030C", "\u0075\u0308\u030C", "\u0055\u0308\u0300", "\u0075\u0308\u0300", "\u0041\u0308\u0304", "\u0061\u0308\u0304", "\u0041\u0307\u0304", "\u0061\u0307\u0304", "\u00C6\u0304", "\u00E6\u0304", "\u0047\u030C", "\u0067\u030C", "\u004B\u030C", "\u006B\u030C", "\u004F\u0328", "\u006F\u0328", "\u004F\u0328\u0304", "\u006F\u0328\u0304", "\u01B7\u030C", "\u0292\u030C", "\u006A\u030C", "\u0044\u005A", "\u0044\u007A", "\u0064\u007A", "\u0047\u0301", "\u0067\u0301", "\u004E\u0300", "\u006E\u0300", "\u0041\u030A\u0301", "\u0061\u030A\u0301", "\u00C6\u0301", "\u00E6\u0301", "\u00D8\u0301", "\u00F8\u0301", "\u0041\u030F", "\u0061\u030F", "\u0041\u0311", "\u0061\u0311", "\u0045\u030F", "\u0065\u030F", "\u0045\u0311", "\u0065\u0311", "\u0049\u030F", "\u0069\u030F", "\u0049\u0311", "\u0069\u0311", "\u004F\u030F", "\u006F\u030F", "\u004F\u0311", "\u006F\u0311", "\u0052\u030F", "\u0072\u030F", "\u0052\u0311", "\u0072\u0311", "\u0055\u030F", "\u0075\u030F", "\u0055\u0311", "\u0075\u0311", "\u0053\u0326", "\u0073\u0326", "\u0054\u0326", "\u0074\u0326", "\u0048\u030C", "\u0068\u030C", "\u0041\u0307", "\u0061\u0307", "\u0045\u0327", "\u0065\u0327", "\u004F\u0308\u0304", "\u006F\u0308\u0304", "\u004F\u0303\u0304", "\u006F\u0303\u0304", "\u004F\u0307", "\u006F\u0307", "\u004F\u0307\u0304", "\u006F\u0307\u0304", "\u0059\u0304", "\u0079\u0304", "\u0068", "\u0266", "\u006A", "\u0072", "\u0279", "\u027B", "\u0281", "\u0077", "\u0079", "\u0020\u0306", "\u0020\u0307", "\u0020\u030A", "\u0020\u0328", "\u0020\u0303", "\u0020\u030B", "\u0263", "\u006C", "\u0078", "\u0295", "\u0300", "\u0301", "\u0313", "\u0308\u0301", "\u02B9", "\u0020\u0345", "\u003B", "\u0020\u0308\u0301", "\u0391\u0301", "\u00B7", "\u0395\u0301", "\u0397\u0301", "\u0399\u0301", "\u039F\u0301", "\u03A5\u0301", "\u03A9\u0301", "\u03B9\u0308\u0301", "\u0399\u0308", "\u03A5\u0308", "\u03B1\u0301", "\u03B5\u0301", "\u03B7\u0301", "\u03B9\u0301", "\u03C5\u0308\u0301", "\u03B9\u0308", "\u03C5\u0308", "\u03BF\u0301", "\u03C5\u0301", "\u03C9\u0301", "\u03B2", "\u03B8", "\u03A5", "\u03C6", "\u03C0", "\u03BA", "\u03C1", "\u03C2", "\u0398", "\u03B5", "\u0415\u0300", "\u0415\u0308", "\u0413\u0301", "\u0406\u0308", "\u041A\u0301", "\u0418\u0300", "\u0423\u0306", "\u0418\u0306", "\u0438\u0306", "\u0435\u0300", "\u0435\u0308", "\u0433\u0301", "\u0456\u0308", "\u043A\u0301", "\u0438\u0300", "\u0443\u0306", "\u0474\u030F", "\u0475\u030F", "\u0416\u0306", "\u0436\u0306", "\u0410\u0306", "\u0430\u0306", "\u0410\u0308", "\u0430\u0308", "\u0415\u0306", "\u0435\u0306", "\u04D8\u0308", "\u04D9\u0308", "\u0416\u0308", "\u0436\u0308", "\u0417\u0308", "\u0437\u0308", "\u0418\u0304", "\u0438\u0304", "\u0418\u0308", "\u0438\u0308", "\u041E\u0308", "\u043E\u0308", "\u04E8\u0308", "\u04E9\u0308", "\u042D\u0308", "\u044D\u0308", "\u0423\u0304", "\u0443\u0304", "\u0423\u0308", "\u0443\u0308", "\u0423\u030B", "\u0443\u030B", "\u0427\u0308", "\u0447\u0308", "\u042B\u0308", "\u044B\u0308", "\u0565\u0582", "\u0627\u0653", "\u0627\u0654", "\u0648\u0654", "\u0627\u0655", "\u064A\u0654", "\u0627\u0674", "\u0648\u0674", "\u06C7\u0674", "\u064A\u0674", "\u06D5\u0654", "\u06C1\u0654", "\u06D2\u0654", "\u0928\u093C", "\u0930\u093C", "\u0933\u093C", "\u0915\u093C", "\u0916\u093C", "\u0917\u093C", "\u091C\u093C", "\u0921\u093C", "\u0922\u093C", "\u092B\u093C", "\u092F\u093C", "\u09C7\u09BE", "\u09C7\u09D7", "\u09A1\u09BC", "\u09A2\u09BC", "\u09AF\u09BC", "\u0A32\u0A3C", "\u0A38\u0A3C", "\u0A16\u0A3C", "\u0A17\u0A3C", "\u0A1C\u0A3C", "\u0A2B\u0A3C", "\u0B47\u0B56", "\u0B47\u0B3E", "\u0B47\u0B57", "\u0B21\u0B3C", "\u0B22\u0B3C", "\u0B92\u0BD7", "\u0BC6\u0BBE", "\u0BC7\u0BBE", "\u0BC6\u0BD7", "\u0C46\u0C56", "\u0CBF\u0CD5", "\u0CC6\u0CD5", "\u0CC6\u0CD6", "\u0CC6\u0CC2", "\u0CC6\u0CC2\u0CD5", "\u0D46\u0D3E", "\u0D47\u0D3E", "\u0D46\u0D57", "\u0DD9\u0DCA", "\u0DD9\u0DCF", "\u0DD9\u0DCF\u0DCA", "\u0DD9\u0DDF", "\u0E4D\u0E32", "\u0ECD\u0EB2", "\u0EAB\u0E99", "\u0EAB\u0EA1", "\u0F0B", "\u0F42\u0FB7", "\u0F4C\u0FB7", "\u0F51\u0FB7", "\u0F56\u0FB7", "\u0F5B\u0FB7", "\u0F40\u0FB5", "\u0F71\u0F72", "\u0F71\u0F74", "\u0FB2\u0F80", "\u0FB2\u0F71\u0F80", "\u0FB3\u0F80", "\u0FB3\u0F71\u0F80", "\u0F71\u0F80", "\u0F92\u0FB7", "\u0F9C\u0FB7", "\u0FA1\u0FB7", "\u0FA6\u0FB7", "\u0FAB\u0FB7", "\u0F90\u0FB5", "\u1025\u102E", "\u0041\u0325", "\u0061\u0325", "\u0042\u0307", "\u0062\u0307", "\u0042\u0323", "\u0062\u0323", "\u0042\u0331", "\u0062\u0331", "\u0043\u0327\u0301", "\u0063\u0327\u0301", "\u0044\u0307", "\u0064\u0307", "\u0044\u0323", "\u0064\u0323", "\u0044\u0331", "\u0064\u0331", "\u0044\u0327", "\u0064\u0327", "\u0044\u032D", "\u0064\u032D", "\u0045\u0304\u0300", "\u0065\u0304\u0300", "\u0045\u0304\u0301", "\u0065\u0304\u0301", "\u0045\u032D", "\u0065\u032D", "\u0045\u0330", "\u0065\u0330", "\u0045\u0327\u0306", "\u0065\u0327\u0306", "\u0046\u0307", "\u0066\u0307", "\u0047\u0304", "\u0067\u0304", "\u0048\u0307", "\u0068\u0307", "\u0048\u0323", "\u0068\u0323", "\u0048\u0308", "\u0068\u0308", "\u0048\u0327", "\u0068\u0327", "\u0048\u032E", "\u0068\u032E", "\u0049\u0330", "\u0069\u0330", "\u0049\u0308\u0301", "\u0069\u0308\u0301", "\u004B\u0301", "\u006B\u0301", "\u004B\u0323", "\u006B\u0323", "\u004B\u0331", "\u006B\u0331", "\u004C\u0323", "\u006C\u0323", "\u004C\u0323\u0304", "\u006C\u0323\u0304", "\u004C\u0331", "\u006C\u0331", "\u004C\u032D", "\u006C\u032D", "\u004D\u0301", "\u006D\u0301", "\u004D\u0307", "\u006D\u0307", "\u004D\u0323", "\u006D\u0323", "\u004E\u0307", "\u006E\u0307", "\u004E\u0323", "\u006E\u0323", "\u004E\u0331", "\u006E\u0331", "\u004E\u032D", "\u006E\u032D", "\u004F\u0303\u0301", "\u006F\u0303\u0301", "\u004F\u0303\u0308", "\u006F\u0303\u0308", "\u004F\u0304\u0300", "\u006F\u0304\u0300", "\u004F\u0304\u0301", "\u006F\u0304\u0301", "\u0050\u0301", "\u0070\u0301", "\u0050\u0307", "\u0070\u0307", "\u0052\u0307", "\u0072\u0307", "\u0052\u0323", "\u0072\u0323", "\u0052\u0323\u0304", "\u0072\u0323\u0304", "\u0052\u0331", "\u0072\u0331", "\u0053\u0307", "\u0073\u0307", "\u0053\u0323", "\u0073\u0323", "\u0053\u0301\u0307", "\u0073\u0301\u0307", "\u0053\u030C\u0307", "\u0073\u030C\u0307", "\u0053\u0323\u0307", "\u0073\u0323\u0307", "\u0054\u0307", "\u0074\u0307", "\u0054\u0323", "\u0074\u0323", "\u0054\u0331", "\u0074\u0331", "\u0054\u032D", "\u0074\u032D", "\u0055\u0324", "\u0075\u0324", "\u0055\u0330", "\u0075\u0330", "\u0055\u032D", "\u0075\u032D", "\u0055\u0303\u0301", "\u0075\u0303\u0301", "\u0055\u0304\u0308", "\u0075\u0304\u0308", "\u0056\u0303", "\u0076\u0303", "\u0056\u0323", "\u0076\u0323", "\u0057\u0300", "\u0077\u0300", "\u0057\u0301", "\u0077\u0301", "\u0057\u0308", "\u0077\u0308", "\u0057\u0307", "\u0077\u0307", "\u0057\u0323", "\u0077\u0323", "\u0058\u0307", "\u0078\u0307", "\u0058\u0308", "\u0078\u0308", "\u0059\u0307", "\u0079\u0307", "\u005A\u0302", "\u007A\u0302", "\u005A\u0323", "\u007A\u0323", "\u005A\u0331", "\u007A\u0331", "\u0068\u0331", "\u0074\u0308", "\u0077\u030A", "\u0079\u030A", "\u0061\u02BE", "\u0041\u0323", "\u0061\u0323", "\u0041\u0309", "\u0061\u0309", "\u0041\u0302\u0301", "\u0061\u0302\u0301", "\u0041\u0302\u0300", "\u0061\u0302\u0300", "\u0041\u0302\u0309", "\u0061\u0302\u0309", "\u0041\u0302\u0303", "\u0061\u0302\u0303", "\u0041\u0323\u0302", "\u0061\u0323\u0302", "\u0041\u0306\u0301", "\u0061\u0306\u0301", "\u0041\u0306\u0300", "\u0061\u0306\u0300", "\u0041\u0306\u0309", "\u0061\u0306\u0309", "\u0041\u0306\u0303", "\u0061\u0306\u0303", "\u0041\u0323\u0306", "\u0061\u0323\u0306", "\u0045\u0323", "\u0065\u0323", "\u0045\u0309", "\u0065\u0309", "\u0045\u0303", "\u0065\u0303", "\u0045\u0302\u0301", "\u0065\u0302\u0301", "\u0045\u0302\u0300", "\u0065\u0302\u0300", "\u0045\u0302\u0309", "\u0065\u0302\u0309", "\u0045\u0302\u0303", "\u0065\u0302\u0303", "\u0045\u0323\u0302", "\u0065\u0323\u0302", "\u0049\u0309", "\u0069\u0309", "\u0049\u0323", "\u0069\u0323", "\u004F\u0323", "\u006F\u0323", "\u004F\u0309", "\u006F\u0309", "\u004F\u0302\u0301", "\u006F\u0302\u0301", "\u004F\u0302\u0300", "\u006F\u0302\u0300", "\u004F\u0302\u0309", "\u006F\u0302\u0309", "\u004F\u0302\u0303", "\u006F\u0302\u0303", "\u004F\u0323\u0302", "\u006F\u0323\u0302", "\u004F\u031B\u0301", "\u006F\u031B\u0301", "\u004F\u031B\u0300", "\u006F\u031B\u0300", "\u004F\u031B\u0309", "\u006F\u031B\u0309", "\u004F\u031B\u0303", "\u006F\u031B\u0303", "\u004F\u031B\u0323", "\u006F\u031B\u0323", "\u0055\u0323", "\u0075\u0323", "\u0055\u0309", "\u0075\u0309", "\u0055\u031B\u0301", "\u0075\u031B\u0301", "\u0055\u031B\u0300", "\u0075\u031B\u0300", "\u0055\u031B\u0309", "\u0075\u031B\u0309", "\u0055\u031B\u0303", "\u0075\u031B\u0303", "\u0055\u031B\u0323", "\u0075\u031B\u0323", "\u0059\u0300", "\u0079\u0300", "\u0059\u0323", "\u0079\u0323", "\u0059\u0309", "\u0079\u0309", "\u0059\u0303", "\u0079\u0303", "\u03B1\u0313", "\u03B1\u0314", "\u03B1\u0313\u0300", "\u03B1\u0314\u0300", "\u03B1\u0313\u0301", "\u03B1\u0314\u0301", "\u03B1\u0313\u0342", "\u03B1\u0314\u0342", "\u0391\u0313", "\u0391\u0314", "\u0391\u0313\u0300", "\u0391\u0314\u0300", "\u0391\u0313\u0301", "\u0391\u0314\u0301", "\u0391\u0313\u0342", "\u0391\u0314\u0342", "\u03B5\u0313", "\u03B5\u0314", "\u03B5\u0313\u0300", "\u03B5\u0314\u0300", "\u03B5\u0313\u0301", "\u03B5\u0314\u0301", "\u0395\u0313", "\u0395\u0314", "\u0395\u0313\u0300", "\u0395\u0314\u0300", "\u0395\u0313\u0301", "\u0395\u0314\u0301", "\u03B7\u0313", "\u03B7\u0314", "\u03B7\u0313\u0300", "\u03B7\u0314\u0300", "\u03B7\u0313\u0301", "\u03B7\u0314\u0301", "\u03B7\u0313\u0342", "\u03B7\u0314\u0342", "\u0397\u0313", "\u0397\u0314", "\u0397\u0313\u0300", "\u0397\u0314\u0300", "\u0397\u0313\u0301", "\u0397\u0314\u0301", "\u0397\u0313\u0342", "\u0397\u0314\u0342", "\u03B9\u0313", "\u03B9\u0314", "\u03B9\u0313\u0300", "\u03B9\u0314\u0300", "\u03B9\u0313\u0301", "\u03B9\u0314\u0301", "\u03B9\u0313\u0342", "\u03B9\u0314\u0342", "\u0399\u0313", "\u0399\u0314", "\u0399\u0313\u0300", "\u0399\u0314\u0300", "\u0399\u0313\u0301", "\u0399\u0314\u0301", "\u0399\u0313\u0342", "\u0399\u0314\u0342", "\u03BF\u0313", "\u03BF\u0314", "\u03BF\u0313\u0300", "\u03BF\u0314\u0300", "\u03BF\u0313\u0301", "\u03BF\u0314\u0301", "\u039F\u0313", "\u039F\u0314", "\u039F\u0313\u0300", "\u039F\u0314\u0300", "\u039F\u0313\u0301", "\u039F\u0314\u0301", "\u03C5\u0313", "\u03C5\u0314", "\u03C5\u0313\u0300", "\u03C5\u0314\u0300", "\u03C5\u0313\u0301", "\u03C5\u0314\u0301", "\u03C5\u0313\u0342", "\u03C5\u0314\u0342", "\u03A5\u0314", "\u03A5\u0314\u0300", "\u03A5\u0314\u0301", "\u03A5\u0314\u0342", "\u03C9\u0313", "\u03C9\u0314", "\u03C9\u0313\u0300", "\u03C9\u0314\u0300", "\u03C9\u0313\u0301", "\u03C9\u0314\u0301", "\u03C9\u0313\u0342", "\u03C9\u0314\u0342", "\u03A9\u0313", "\u03A9\u0314", "\u03A9\u0313\u0300", "\u03A9\u0314\u0300", "\u03A9\u0313\u0301", "\u03A9\u0314\u0301", "\u03A9\u0313\u0342", "\u03A9\u0314\u0342", "\u03B1\u0300", "\u03B5\u0300", "\u03B7\u0300", "\u03B9\u0300", "\u03BF\u0300", "\u03C5\u0300", "\u03C9\u0300", "\u03B1\u0313\u0345", "\u03B1\u0314\u0345", "\u03B1\u0313\u0300\u0345", "\u03B1\u0314\u0300\u0345", "\u03B1\u0313\u0301\u0345", "\u03B1\u0314\u0301\u0345", "\u03B1\u0313\u0342\u0345", "\u03B1\u0314\u0342\u0345", "\u0391\u0313\u0345", "\u0391\u0314\u0345", "\u0391\u0313\u0300\u0345", "\u0391\u0314\u0300\u0345", "\u0391\u0313\u0301\u0345", "\u0391\u0314\u0301\u0345", "\u0391\u0313\u0342\u0345", "\u0391\u0314\u0342\u0345", "\u03B7\u0313\u0345", "\u03B7\u0314\u0345", "\u03B7\u0313\u0300\u0345", "\u03B7\u0314\u0300\u0345", "\u03B7\u0313\u0301\u0345", "\u03B7\u0314\u0301\u0345", "\u03B7\u0313\u0342\u0345", "\u03B7\u0314\u0342\u0345", "\u0397\u0313\u0345", "\u0397\u0314\u0345", "\u0397\u0313\u0300\u0345", "\u0397\u0314\u0300\u0345", "\u0397\u0313\u0301\u0345", "\u0397\u0314\u0301\u0345", "\u0397\u0313\u0342\u0345", "\u0397\u0314\u0342\u0345", "\u03C9\u0313\u0345", "\u03C9\u0314\u0345", "\u03C9\u0313\u0300\u0345", "\u03C9\u0314\u0300\u0345", "\u03C9\u0313\u0301\u0345", "\u03C9\u0314\u0301\u0345", "\u03C9\u0313\u0342\u0345", "\u03C9\u0314\u0342\u0345", "\u03A9\u0313\u0345", "\u03A9\u0314\u0345", "\u03A9\u0313\u0300\u0345", "\u03A9\u0314\u0300\u0345", "\u03A9\u0313\u0301\u0345", "\u03A9\u0314\u0301\u0345", "\u03A9\u0313\u0342\u0345", "\u03A9\u0314\u0342\u0345", "\u03B1\u0306", "\u03B1\u0304", "\u03B1\u0300\u0345", "\u03B1\u0345", "\u03B1\u0301\u0345", "\u03B1\u0342", "\u03B1\u0342\u0345", "\u0391\u0306", "\u0391\u0304", "\u0391\u0300", "\u0391\u0345", "\u0020\u0313", "\u03B9", "\u0020\u0342", "\u0020\u0308\u0342", "\u03B7\u0300\u0345", "\u03B7\u0345", "\u03B7\u0301\u0345", "\u03B7\u0342", "\u03B7\u0342\u0345", "\u0395\u0300", "\u0397\u0300", "\u0397\u0345", "\u0020\u0313\u0300", "\u0020\u0313\u0301", "\u0020\u0313\u0342", "\u03B9\u0306", "\u03B9\u0304", "\u03B9\u0308\u0300", "\u03B9\u0342", "\u03B9\u0308\u0342", "\u0399\u0306", "\u0399\u0304", "\u0399\u0300", "\u0020\u0314\u0300", "\u0020\u0314\u0301", "\u0020\u0314\u0342", "\u03C5\u0306", "\u03C5\u0304", "\u03C5\u0308\u0300", "\u03C1\u0313", "\u03C1\u0314", "\u03C5\u0342", "\u03C5\u0308\u0342", "\u03A5\u0306", "\u03A5\u0304", "\u03A5\u0300", "\u03A1\u0314", "\u0020\u0308\u0300", "\u0060", "\u03C9\u0300\u0345", "\u03C9\u0345", "\u03C9\u0301\u0345", "\u03C9\u0342", "\u03C9\u0342\u0345", "\u039F\u0300", "\u03A9\u0300", "\u03A9\u0345", "\u0020\u0314", "\u2010", "\u0020\u0333", "\u002E", "\u002E\u002E", "\u002E\u002E\u002E", "\u2032\u2032", "\u2032\u2032\u2032", "\u2035\u2035", "\u2035\u2035\u2035", "\u0021\u0021", "\u0020\u0305", "\u003F\u003F", "\u003F\u0021", "\u0021\u003F", "\u2032\u2032\u2032\u2032", "\u0030", "\u0069", "\u0034", "\u0035", "\u0036", "\u0037", "\u0038", "\u0039", "\u002B", "\u2212", "\u003D", "\u0028", "\u0029", "\u006E", "\u0052\u0073", "\u0061\u002F\u0063", "\u0061\u002F\u0073", "\u0043", "\u00B0\u0043", "\u0063\u002F\u006F", "\u0063\u002F\u0075", "\u0190", "\u00B0\u0046", "\u0067", "\u0048", "\u0127", "\u0049", "\u004C", "\u004E", "\u004E\u006F", "\u0050", "\u0051", "\u0052", "\u0053\u004D", "\u0054\u0045\u004C", "\u0054\u004D", "\u005A", "\u03A9", "\u004B", "\u0042", "\u0065", "\u0045", "\u0046", "\u004D", "\u05D0", "\u05D1", "\u05D2", "\u05D3", "\u03B3", "\u0393", "\u03A0", "\u2211", "\u0044", "\u0064", "\u0031\u2044\u0033", "\u0032\u2044\u0033", "\u0031\u2044\u0035", "\u0032\u2044\u0035", "\u0033\u2044\u0035", "\u0034\u2044\u0035", "\u0031\u2044\u0036", "\u0035\u2044\u0036", "\u0031\u2044\u0038", "\u0033\u2044\u0038", "\u0035\u2044\u0038", "\u0037\u2044\u0038", "\u0031\u2044", "\u0049\u0049", "\u0049\u0049\u0049", "\u0049\u0056", "\u0056", "\u0056\u0049", "\u0056\u0049\u0049", "\u0056\u0049\u0049\u0049", "\u0049\u0058", "\u0058", "\u0058\u0049", "\u0058\u0049\u0049", "\u0069\u0069", "\u0069\u0069\u0069", "\u0069\u0076", "\u0076", "\u0076\u0069", "\u0076\u0069\u0069", "\u0076\u0069\u0069\u0069", "\u0069\u0078", "\u0078\u0069", "\u0078\u0069\u0069", "\u0063", "\u006D", "\u2190\u0338", "\u2192\u0338", "\u2194\u0338", "\u21D0\u0338", "\u21D4\u0338", "\u21D2\u0338", "\u2203\u0338", "\u2208\u0338", "\u220B\u0338", "\u2223\u0338", "\u2225\u0338", "\u222B\u222B", "\u222B\u222B\u222B", "\u222E\u222E", "\u222E\u222E\u222E", "\u223C\u0338", "\u2243\u0338", "\u2245\u0338", "\u2248\u0338", "\u003D\u0338", "\u2261\u0338", "\u224D\u0338", "\u003C\u0338", "\u003E\u0338", "\u2264\u0338", "\u2265\u0338", "\u2272\u0338", "\u2273\u0338", "\u2276\u0338", "\u2277\u0338", "\u227A\u0338", "\u227B\u0338", "\u2282\u0338", "\u2283\u0338", "\u2286\u0338", "\u2287\u0338", "\u22A2\u0338", "\u22A8\u0338", "\u22A9\u0338", "\u22AB\u0338", "\u227C\u0338", "\u227D\u0338", "\u2291\u0338", "\u2292\u0338", "\u22B2\u0338", "\u22B3\u0338", "\u22B4\u0338", "\u22B5\u0338", "\u3008", "\u3009", "\u0031\u0030", "\u0031\u0031", "\u0031\u0032", "\u0031\u0033", "\u0031\u0034", "\u0031\u0035", "\u0031\u0036", "\u0031\u0037", "\u0031\u0038", "\u0031\u0039", "\u0032\u0030", "\u0028\u0031\u0029", "\u0028\u0032\u0029", "\u0028\u0033\u0029", "\u0028\u0034\u0029", "\u0028\u0035\u0029", "\u0028\u0036\u0029", "\u0028\u0037\u0029", "\u0028\u0038\u0029", "\u0028\u0039\u0029", "\u0028\u0031\u0030\u0029", "\u0028\u0031\u0031\u0029", "\u0028\u0031\u0032\u0029", "\u0028\u0031\u0033\u0029", "\u0028\u0031\u0034\u0029", "\u0028\u0031\u0035\u0029", "\u0028\u0031\u0036\u0029", "\u0028\u0031\u0037\u0029", "\u0028\u0031\u0038\u0029", "\u0028\u0031\u0039\u0029", "\u0028\u0032\u0030\u0029", "\u0031\u002E", "\u0032\u002E", "\u0033\u002E", "\u0034\u002E", "\u0035\u002E", "\u0036\u002E", "\u0037\u002E", "\u0038\u002E", "\u0039\u002E", "\u0031\u0030\u002E", "\u0031\u0031\u002E", "\u0031\u0032\u002E", "\u0031\u0033\u002E", "\u0031\u0034\u002E", "\u0031\u0035\u002E", "\u0031\u0036\u002E", "\u0031\u0037\u002E", "\u0031\u0038\u002E", "\u0031\u0039\u002E", "\u0032\u0030\u002E", "\u0028\u0061\u0029", "\u0028\u0062\u0029", "\u0028\u0063\u0029", "\u0028\u0064\u0029", "\u0028\u0065\u0029", "\u0028\u0066\u0029", "\u0028\u0067\u0029", "\u0028\u0068\u0029", "\u0028\u0069\u0029", "\u0028\u006A\u0029", "\u0028\u006B\u0029", "\u0028\u006C\u0029", "\u0028\u006D\u0029", "\u0028\u006E\u0029", "\u0028\u006F\u0029", "\u0028\u0070\u0029", "\u0028\u0071\u0029", "\u0028\u0072\u0029", "\u0028\u0073\u0029", "\u0028\u0074\u0029", "\u0028\u0075\u0029", "\u0028\u0076\u0029", "\u0028\u0077\u0029", "\u0028\u0078\u0029", "\u0028\u0079\u0029", "\u0028\u007A\u0029", "\u0041", "\u0047", "\u004A", "\u004F", "\u0053", "\u0054", "\u0055", "\u0057", "\u0059", "\u0062", "\u0066", "\u006B", "\u0070", "\u0071", "\u0074", "\u0075", "\u007A", "\u222B\u222B\u222B\u222B", "\u003A\u003A\u003D", "\u003D\u003D", "\u003D\u003D\u003D", "\u2ADD\u0338", "\u6BCD", "\u9F9F", "\u4E00", "\u4E28", "\u4E36", "\u4E3F", "\u4E59", "\u4E85", "\u4E8C", "\u4EA0", "\u4EBA", "\u513F", "\u5165", "\u516B", "\u5182", "\u5196", "\u51AB", "\u51E0", "\u51F5", "\u5200", "\u529B", "\u52F9", "\u5315", "\u531A", "\u5338", "\u5341", "\u535C", "\u5369", "\u5382", "\u53B6", "\u53C8", "\u53E3", "\u56D7", "\u571F", "\u58EB", "\u5902", "\u590A", "\u5915", "\u5927", "\u5973", "\u5B50", "\u5B80", "\u5BF8", "\u5C0F", "\u5C22", "\u5C38", "\u5C6E", "\u5C71", "\u5DDB", "\u5DE5", "\u5DF1", "\u5DFE", "\u5E72", "\u5E7A", "\u5E7F", "\u5EF4", "\u5EFE", "\u5F0B", "\u5F13", "\u5F50", "\u5F61", "\u5F73", "\u5FC3", "\u6208", "\u6236", "\u624B", "\u652F", "\u6534", "\u6587", "\u6597", "\u65A4", "\u65B9", "\u65E0", "\u65E5", "\u66F0", "\u6708", "\u6728", "\u6B20", "\u6B62", "\u6B79", "\u6BB3", "\u6BCB", "\u6BD4", "\u6BDB", "\u6C0F", "\u6C14", "\u6C34", "\u706B", "\u722A", "\u7236", "\u723B", "\u723F", "\u7247", "\u7259", "\u725B", "\u72AC", "\u7384", "\u7389", "\u74DC", "\u74E6", "\u7518", "\u751F", "\u7528", "\u7530", "\u758B", "\u7592", "\u7676", "\u767D", "\u76AE", "\u76BF", "\u76EE", "\u77DB", "\u77E2", "\u77F3", "\u793A", "\u79B8", "\u79BE", "\u7A74", "\u7ACB", "\u7AF9", "\u7C73", "\u7CF8", "\u7F36", "\u7F51", "\u7F8A", "\u7FBD", "\u8001", "\u800C", "\u8012", "\u8033", "\u807F", "\u8089", "\u81E3", "\u81EA", "\u81F3", "\u81FC", "\u820C", "\u821B", "\u821F", "\u826E", "\u8272", "\u8278", "\u864D", "\u866B", "\u8840", "\u884C", "\u8863", "\u897E", "\u898B", "\u89D2", "\u8A00", "\u8C37", "\u8C46", "\u8C55", "\u8C78", "\u8C9D", "\u8D64", "\u8D70", "\u8DB3", "\u8EAB", "\u8ECA", "\u8F9B", "\u8FB0", "\u8FB5", "\u9091", "\u9149", "\u91C6", "\u91CC", "\u91D1", "\u9577", "\u9580", "\u961C", "\u96B6", "\u96B9", "\u96E8", "\u9751", "\u975E", "\u9762", "\u9769", "\u97CB", "\u97ED", "\u97F3", "\u9801", "\u98A8", "\u98DB", "\u98DF", "\u9996", "\u9999", "\u99AC", "\u9AA8", "\u9AD8", "\u9ADF", "\u9B25", "\u9B2F", "\u9B32", "\u9B3C", "\u9B5A", "\u9CE5", "\u9E75", "\u9E7F", "\u9EA5", "\u9EBB", "\u9EC3", "\u9ECD", "\u9ED1", "\u9EF9", "\u9EFD", "\u9F0E", "\u9F13", "\u9F20", "\u9F3B", "\u9F4A", "\u9F52", "\u9F8D", "\u9F9C", "\u9FA0", "\u3012", "\u5344", "\u5345", "\u304B\u3099", "\u304D\u3099", "\u304F\u3099", "\u3051\u3099", "\u3053\u3099", "\u3055\u3099", "\u3057\u3099", "\u3059\u3099", "\u305B\u3099", "\u305D\u3099", "\u305F\u3099", "\u3061\u3099", "\u3064\u3099", "\u3066\u3099", "\u3068\u3099", "\u306F\u3099", "\u306F\u309A", "\u3072\u3099", "\u3072\u309A", "\u3075\u3099", "\u3075\u309A", "\u3078\u3099", "\u3078\u309A", "\u307B\u3099", "\u307B\u309A", "\u3046\u3099", "\u0020\u3099", "\u0020\u309A", "\u309D\u3099", "\u3088\u308A", "\u30AB\u3099", "\u30AD\u3099", "\u30AF\u3099", "\u30B1\u3099", "\u30B3\u3099", "\u30B5\u3099", "\u30B7\u3099", "\u30B9\u3099", "\u30BB\u3099", "\u30BD\u3099", "\u30BF\u3099", "\u30C1\u3099", "\u30C4\u3099", "\u30C6\u3099", "\u30C8\u3099", "\u30CF\u3099", "\u30CF\u309A", "\u30D2\u3099", "\u30D2\u309A", "\u30D5\u3099", "\u30D5\u309A", "\u30D8\u3099", "\u30D8\u309A", "\u30DB\u3099", "\u30DB\u309A", "\u30A6\u3099", "\u30EF\u3099", "\u30F0\u3099", "\u30F1\u3099", "\u30F2\u3099", "\u30FD\u3099", "\u30B3\u30C8", "\u1100", "\u1101", "\u11AA", "\u1102", "\u11AC", "\u11AD", "\u1103", "\u1104", "\u1105", "\u11B0", "\u11B1", "\u11B2", "\u11B3", "\u11B4", "\u11B5", "\u111A", "\u1106", "\u1107", "\u1108", "\u1121", "\u1109", "\u110A", "\u110B", "\u110C", "\u110D", "\u110E", "\u110F", "\u1110", "\u1111", "\u1112", "\u1161", "\u1162", "\u1163", "\u1164", "\u1165", "\u1166", "\u1167", "\u1168", "\u1169", "\u116A", "\u116B", "\u116C", "\u116D", "\u116E", "\u116F", "\u1170", "\u1171", "\u1172", "\u1173", "\u1174", "\u1175", "\u1160", "\u1114", "\u1115", "\u11C7", "\u11C8", "\u11CC", "\u11CE", "\u11D3", "\u11D7", "\u11D9", "\u111C", "\u11DD", "\u11DF", "\u111D", "\u111E", "\u1120", "\u1122", "\u1123", "\u1127", "\u1129", "\u112B", "\u112C", "\u112D", "\u112E", "\u112F", "\u1132", "\u1136", "\u1140", "\u1147", "\u114C", "\u11F1", "\u11F2", "\u1157", "\u1158", "\u1159", "\u1184", "\u1185", "\u1188", "\u1191", "\u1192", "\u1194", "\u119E", "\u11A1", "\u4E09", "\u56DB", "\u4E0A", "\u4E2D", "\u4E0B", "\u7532", "\u4E19", "\u4E01", "\u5929", "\u5730", "\u0028\u1100\u0029", "\u0028\u1102\u0029", "\u0028\u1103\u0029", "\u0028\u1105\u0029", "\u0028\u1106\u0029", "\u0028\u1107\u0029", "\u0028\u1109\u0029", "\u0028\u110B\u0029", "\u0028\u110C\u0029", "\u0028\u110E\u0029", "\u0028\u110F\u0029", "\u0028\u1110\u0029", "\u0028\u1111\u0029", "\u0028\u1112\u0029", "\u0028\u1100\u1161\u0029", "\u0028\u1102\u1161\u0029", "\u0028\u1103\u1161\u0029", "\u0028\u1105\u1161\u0029", "\u0028\u1106\u1161\u0029", "\u0028\u1107\u1161\u0029", "\u0028\u1109\u1161\u0029", "\u0028\u110B\u1161\u0029", "\u0028\u110C\u1161\u0029", "\u0028\u110E\u1161\u0029", "\u0028\u110F\u1161\u0029", "\u0028\u1110\u1161\u0029", "\u0028\u1111\u1161\u0029", "\u0028\u1112\u1161\u0029", "\u0028\u110C\u116E\u0029", "\u0028\u4E00\u0029", "\u0028\u4E8C\u0029", "\u0028\u4E09\u0029", "\u0028\u56DB\u0029", "\u0028\u4E94\u0029", "\u0028\u516D\u0029", "\u0028\u4E03\u0029", "\u0028\u516B\u0029", "\u0028\u4E5D\u0029", "\u0028\u5341\u0029", "\u0028\u6708\u0029", "\u0028\u706B\u0029", "\u0028\u6C34\u0029", "\u0028\u6728\u0029", "\u0028\u91D1\u0029", "\u0028\u571F\u0029", "\u0028\u65E5\u0029", "\u0028\u682A\u0029", "\u0028\u6709\u0029", "\u0028\u793E\u0029", "\u0028\u540D\u0029", "\u0028\u7279\u0029", "\u0028\u8CA1\u0029", "\u0028\u795D\u0029", "\u0028\u52B4\u0029", "\u0028\u4EE3\u0029", "\u0028\u547C\u0029", "\u0028\u5B66\u0029", "\u0028\u76E3\u0029", "\u0028\u4F01\u0029", "\u0028\u8CC7\u0029", "\u0028\u5354\u0029", "\u0028\u796D\u0029", "\u0028\u4F11\u0029", "\u0028\u81EA\u0029", "\u0028\u81F3\u0029", "\u0032\u0031", "\u0032\u0032", "\u0032\u0033", "\u0032\u0034", "\u0032\u0035", "\u0032\u0036", "\u0032\u0037", "\u0032\u0038", "\u0032\u0039", "\u0033\u0030", "\u0033\u0031", "\u0033\u0032", "\u0033\u0033", "\u0033\u0034", "\u0033\u0035", "\u1100\u1161", "\u1102\u1161", "\u1103\u1161", "\u1105\u1161", "\u1106\u1161", "\u1107\u1161", "\u1109\u1161", "\u110B\u1161", "\u110C\u1161", "\u110E\u1161", "\u110F\u1161", "\u1110\u1161", "\u1111\u1161", "\u1112\u1161", "\u4E94", "\u516D", "\u4E03", "\u4E5D", "\u682A", "\u6709", "\u793E", "\u540D", "\u7279", "\u8CA1", "\u795D", "\u52B4", "\u79D8", "\u7537", "\u9069", "\u512A", "\u5370", "\u6CE8", "\u9805", "\u4F11", "\u5199", "\u6B63", "\u5DE6", "\u53F3", "\u533B", "\u5B97", "\u5B66", "\u76E3", "\u4F01", "\u8CC7", "\u5354", "\u591C", "\u0033\u0036", "\u0033\u0037", "\u0033\u0038", "\u0033\u0039", "\u0034\u0030", "\u0034\u0031", "\u0034\u0032", "\u0034\u0033", "\u0034\u0034", "\u0034\u0035", "\u0034\u0036", "\u0034\u0037", "\u0034\u0038", "\u0034\u0039", "\u0035\u0030", "\u0031\u6708", "\u0032\u6708", "\u0033\u6708", "\u0034\u6708", "\u0035\u6708", "\u0036\u6708", "\u0037\u6708", "\u0038\u6708", "\u0039\u6708", "\u0031\u0030\u6708", "\u0031\u0031\u6708", "\u0031\u0032\u6708", "\u30A2", "\u30A4", "\u30A6", "\u30A8", "\u30AA", "\u30AB", "\u30AD", "\u30AF", "\u30B1", "\u30B3", "\u30B5", "\u30B7", "\u30B9", "\u30BB", "\u30BD", "\u30BF", "\u30C1", "\u30C4", "\u30C6", "\u30C8", "\u30CA", "\u30CB", "\u30CC", "\u30CD", "\u30CE", "\u30CF", "\u30D2", "\u30D5", "\u30D8", "\u30DB", "\u30DE", "\u30DF", "\u30E0", "\u30E1", "\u30E2", "\u30E4", "\u30E6", "\u30E8", "\u30E9", "\u30EA", "\u30EB", "\u30EC", "\u30ED", "\u30EF", "\u30F0", "\u30F1", "\u30F2", "\u30A2\u30CF\u309A\u30FC\u30C8", "\u30A2\u30EB\u30D5\u30A1", "\u30A2\u30F3\u30D8\u309A\u30A2", "\u30A2\u30FC\u30EB", "\u30A4\u30CB\u30F3\u30AF\u3099", "\u30A4\u30F3\u30C1", "\u30A6\u30A9\u30F3", "\u30A8\u30B9\u30AF\u30FC\u30C8\u3099", "\u30A8\u30FC\u30AB\u30FC", "\u30AA\u30F3\u30B9", "\u30AA\u30FC\u30E0", "\u30AB\u30A4\u30EA", "\u30AB\u30E9\u30C3\u30C8", "\u30AB\u30ED\u30EA\u30FC", "\u30AB\u3099\u30ED\u30F3", "\u30AB\u3099\u30F3\u30DE", "\u30AD\u3099\u30AB\u3099", "\u30AD\u3099\u30CB\u30FC", "\u30AD\u30E5\u30EA\u30FC", "\u30AD\u3099\u30EB\u30BF\u3099\u30FC", "\u30AD\u30ED", "\u30AD\u30ED\u30AF\u3099\u30E9\u30E0", "\u30AD\u30ED\u30E1\u30FC\u30C8\u30EB", "\u30AD\u30ED\u30EF\u30C3\u30C8", "\u30AF\u3099\u30E9\u30E0", "\u30AF\u3099\u30E9\u30E0\u30C8\u30F3", "\u30AF\u30EB\u30BB\u3099\u30A4\u30ED", "\u30AF\u30ED\u30FC\u30CD", "\u30B1\u30FC\u30B9", "\u30B3\u30EB\u30CA", "\u30B3\u30FC\u30DB\u309A", "\u30B5\u30A4\u30AF\u30EB", "\u30B5\u30F3\u30C1\u30FC\u30E0", "\u30B7\u30EA\u30F3\u30AF\u3099", "\u30BB\u30F3\u30C1", "\u30BB\u30F3\u30C8", "\u30BF\u3099\u30FC\u30B9", "\u30C6\u3099\u30B7", "\u30C8\u3099\u30EB", "\u30C8\u30F3", "\u30CA\u30CE", "\u30CE\u30C3\u30C8", "\u30CF\u30A4\u30C4", "\u30CF\u309A\u30FC\u30BB\u30F3\u30C8", "\u30CF\u309A\u30FC\u30C4", "\u30CF\u3099\u30FC\u30EC\u30EB", "\u30D2\u309A\u30A2\u30B9\u30C8\u30EB", "\u30D2\u309A\u30AF\u30EB", "\u30D2\u309A\u30B3", "\u30D2\u3099\u30EB", "\u30D5\u30A1\u30E9\u30C3\u30C8\u3099", "\u30D5\u30A3\u30FC\u30C8", "\u30D5\u3099\u30C3\u30B7\u30A7\u30EB", "\u30D5\u30E9\u30F3", "\u30D8\u30AF\u30BF\u30FC\u30EB", "\u30D8\u309A\u30BD", "\u30D8\u309A\u30CB\u30D2", "\u30D8\u30EB\u30C4", "\u30D8\u309A\u30F3\u30B9", "\u30D8\u309A\u30FC\u30B7\u3099", "\u30D8\u3099\u30FC\u30BF", "\u30DB\u309A\u30A4\u30F3\u30C8", "\u30DB\u3099\u30EB\u30C8", "\u30DB\u30F3", "\u30DB\u309A\u30F3\u30C8\u3099", "\u30DB\u30FC\u30EB", "\u30DB\u30FC\u30F3", "\u30DE\u30A4\u30AF\u30ED", "\u30DE\u30A4\u30EB", "\u30DE\u30C3\u30CF", "\u30DE\u30EB\u30AF", "\u30DE\u30F3\u30B7\u30E7\u30F3", "\u30DF\u30AF\u30ED\u30F3", "\u30DF\u30EA", "\u30DF\u30EA\u30CF\u3099\u30FC\u30EB", "\u30E1\u30AB\u3099", "\u30E1\u30AB\u3099\u30C8\u30F3", "\u30E1\u30FC\u30C8\u30EB", "\u30E4\u30FC\u30C8\u3099", "\u30E4\u30FC\u30EB", "\u30E6\u30A2\u30F3", "\u30EA\u30C3\u30C8\u30EB", "\u30EA\u30E9", "\u30EB\u30D2\u309A\u30FC", "\u30EB\u30FC\u30D5\u3099\u30EB", "\u30EC\u30E0", "\u30EC\u30F3\u30C8\u30B1\u3099\u30F3", "\u30EF\u30C3\u30C8", "\u0030\u70B9", "\u0031\u70B9", "\u0032\u70B9", "\u0033\u70B9", "\u0034\u70B9", "\u0035\u70B9", "\u0036\u70B9", "\u0037\u70B9", "\u0038\u70B9", "\u0039\u70B9", "\u0031\u0030\u70B9", "\u0031\u0031\u70B9", "\u0031\u0032\u70B9", "\u0031\u0033\u70B9", "\u0031\u0034\u70B9", "\u0031\u0035\u70B9", "\u0031\u0036\u70B9", "\u0031\u0037\u70B9", "\u0031\u0038\u70B9", "\u0031\u0039\u70B9", "\u0032\u0030\u70B9", "\u0032\u0031\u70B9", "\u0032\u0032\u70B9", "\u0032\u0033\u70B9", "\u0032\u0034\u70B9", "\u0068\u0050\u0061", "\u0064\u0061", "\u0041\u0055", "\u0062\u0061\u0072", "\u006F\u0056", "\u0070\u0063", "\u5E73\u6210", "\u662D\u548C", "\u5927\u6B63", "\u660E\u6CBB", "\u682A\u5F0F\u4F1A\u793E", "\u0070\u0041", "\u006E\u0041", "\u03BC\u0041", "\u006D\u0041", "\u006B\u0041", "\u004B\u0042", "\u004D\u0042", "\u0047\u0042", "\u0063\u0061\u006C", "\u006B\u0063\u0061\u006C", "\u0070\u0046", "\u006E\u0046", "\u03BC\u0046", "\u03BC\u0067", "\u006D\u0067", "\u006B\u0067", "\u0048\u007A", "\u006B\u0048\u007A", "\u004D\u0048\u007A", "\u0047\u0048\u007A", "\u0054\u0048\u007A", "\u03BC\u006C", "\u006D\u006C", "\u0064\u006C", "\u006B\u006C", "\u0066\u006D", "\u006E\u006D", "\u03BC\u006D", "\u006D\u006D", "\u0063\u006D", "\u006B\u006D", "\u006D\u006D\u0032", "\u0063\u006D\u0032", "\u006D\u0032", "\u006B\u006D\u0032", "\u006D\u006D\u0033", "\u0063\u006D\u0033", "\u006D\u0033", "\u006B\u006D\u0033", "\u006D\u2215\u0073", "\u006D\u2215\u0073\u0032", "\u0050\u0061", "\u006B\u0050\u0061", "\u004D\u0050\u0061", "\u0047\u0050\u0061", "\u0072\u0061\u0064", "\u0072\u0061\u0064\u2215\u0073", "\u0072\u0061\u0064\u2215\u0073\u0032", "\u0070\u0073", "\u006E\u0073", "\u03BC\u0073", "\u006D\u0073", "\u0070\u0056", "\u006E\u0056", "\u03BC\u0056", "\u006D\u0056", "\u006B\u0056", "\u004D\u0056", "\u0070\u0057", "\u006E\u0057", "\u03BC\u0057", "\u006D\u0057", "\u006B\u0057", "\u004D\u0057", "\u006B\u03A9", "\u004D\u03A9", "\u0061\u002E\u006D\u002E", "\u0042\u0071", "\u0063\u0063", "\u0063\u0064", "\u0043\u2215\u006B\u0067", "\u0043\u006F\u002E", "\u0064\u0042", "\u0047\u0079", "\u0068\u0061", "\u0048\u0050", "\u0069\u006E", "\u004B\u004B", "\u004B\u004D", "\u006B\u0074", "\u006C\u006D", "\u006C\u006E", "\u006C\u006F\u0067", "\u006C\u0078", "\u006D\u0062", "\u006D\u0069\u006C", "\u006D\u006F\u006C", "\u0050\u0048", "\u0070\u002E\u006D\u002E", "\u0050\u0050\u004D", "\u0050\u0052", "\u0073\u0072", "\u0053\u0076", "\u0057\u0062", "\u0031\u65E5", "\u0032\u65E5", "\u0033\u65E5", "\u0034\u65E5", "\u0035\u65E5", "\u0036\u65E5", "\u0037\u65E5", "\u0038\u65E5", "\u0039\u65E5", "\u0031\u0030\u65E5", "\u0031\u0031\u65E5", "\u0031\u0032\u65E5", "\u0031\u0033\u65E5", "\u0031\u0034\u65E5", "\u0031\u0035\u65E5", "\u0031\u0036\u65E5", "\u0031\u0037\u65E5", "\u0031\u0038\u65E5", "\u0031\u0039\u65E5", "\u0032\u0030\u65E5", "\u0032\u0031\u65E5", "\u0032\u0032\u65E5", "\u0032\u0033\u65E5", "\u0032\u0034\u65E5", "\u0032\u0035\u65E5", "\u0032\u0036\u65E5", "\u0032\u0037\u65E5", "\u0032\u0038\u65E5", "\u0032\u0039\u65E5", "\u0033\u0030\u65E5", "\u0033\u0031\u65E5", "\u8C48", "\u66F4", "\u8CC8", "\u6ED1", "\u4E32", "\u53E5", "\u5951", "\u5587", "\u5948", "\u61F6", "\u7669", "\u7F85", "\u863F", "\u87BA", "\u88F8", "\u908F", "\u6A02", "\u6D1B", "\u70D9", "\u73DE", "\u843D", "\u916A", "\u99F1", "\u4E82", "\u5375", "\u6B04", "\u721B", "\u862D", "\u9E1E", "\u5D50", "\u6FEB", "\u85CD", "\u8964", "\u62C9", "\u81D8", "\u881F", "\u5ECA", "\u6717", "\u6D6A", "\u72FC", "\u90CE", "\u4F86", "\u51B7", "\u52DE", "\u64C4", "\u6AD3", "\u7210", "\u76E7", "\u8606", "\u865C", "\u8DEF", "\u9732", "\u9B6F", "\u9DFA", "\u788C", "\u797F", "\u7DA0", "\u83C9", "\u9304", "\u8AD6", "\u58DF", "\u5F04", "\u7C60", "\u807E", "\u7262", "\u78CA", "\u8CC2", "\u96F7", "\u58D8", "\u5C62", "\u6A13", "\u6DDA", "\u6F0F", "\u7D2F", "\u7E37", "\u964B", "\u52D2", "\u808B", "\u51DC", "\u51CC", "\u7A1C", "\u7DBE", "\u83F1", "\u9675", "\u8B80", "\u62CF", "\u8AFE", "\u4E39", "\u5BE7", "\u6012", "\u7387", "\u7570", "\u5317", "\u78FB", "\u4FBF", "\u5FA9", "\u4E0D", "\u6CCC", "\u6578", "\u7D22", "\u53C3", "\u585E", "\u7701", "\u8449", "\u8AAA", "\u6BBA", "\u6C88", "\u62FE", "\u82E5", "\u63A0", "\u7565", "\u4EAE", "\u5169", "\u51C9", "\u6881", "\u7CE7", "\u826F", "\u8AD2", "\u91CF", "\u52F5", "\u5442", "\u5EEC", "\u65C5", "\u6FFE", "\u792A", "\u95AD", "\u9A6A", "\u9E97", "\u9ECE", "\u66C6", "\u6B77", "\u8F62", "\u5E74", "\u6190", "\u6200", "\u649A", "\u6F23", "\u7149", "\u7489", "\u79CA", "\u7DF4", "\u806F", "\u8F26", "\u84EE", "\u9023", "\u934A", "\u5217", "\u52A3", "\u54BD", "\u70C8", "\u88C2", "\u5EC9", "\u5FF5", "\u637B", "\u6BAE", "\u7C3E", "\u7375", "\u4EE4", "\u56F9", "\u5DBA", "\u601C", "\u73B2", "\u7469", "\u7F9A", "\u8046", "\u9234", "\u96F6", "\u9748", "\u9818", "\u4F8B", "\u79AE", "\u91B4", "\u96B8", "\u60E1", "\u4E86", "\u50DA", "\u5BEE", "\u5C3F", "\u6599", "\u71CE", "\u7642", "\u84FC", "\u907C", "\u6688", "\u962E", "\u5289", "\u677B", "\u67F3", "\u6D41", "\u6E9C", "\u7409", "\u7559", "\u786B", "\u7D10", "\u985E", "\u622E", "\u9678", "\u502B", "\u5D19", "\u6DEA", "\u8F2A", "\u5F8B", "\u6144", "\u6817", "\u9686", "\u5229", "\u540F", "\u5C65", "\u6613", "\u674E", "\u68A8", "\u6CE5", "\u7406", "\u75E2", "\u7F79", "\u88CF", "\u88E1", "\u96E2", "\u533F", "\u6EBA", "\u541D", "\u71D0", "\u7498", "\u85FA", "\u96A3", "\u9C57", "\u9E9F", "\u6797", "\u6DCB", "\u81E8", "\u7B20", "\u7C92", "\u72C0", "\u7099", "\u8B58", "\u4EC0", "\u8336", "\u523A", "\u5207", "\u5EA6", "\u62D3", "\u7CD6", "\u5B85", "\u6D1E", "\u66B4", "\u8F3B", "\u964D", "\u5ED3", "\u5140", "\u55C0", "\u585A", "\u6674", "\u51DE", "\u732A", "\u76CA", "\u793C", "\u795E", "\u7965", "\u798F", "\u9756", "\u7CBE", "\u8612", "\u8AF8", "\u9038", "\u90FD", "\u98EF", "\u98FC", "\u9928", "\u9DB4", "\u4FAE", "\u50E7", "\u514D", "\u52C9", "\u52E4", "\u5351", "\u559D", "\u5606", "\u5668", "\u5840", "\u58A8", "\u5C64", "\u6094", "\u6168", "\u618E", "\u61F2", "\u654F", "\u65E2", "\u6691", "\u6885", "\u6D77", "\u6E1A", "\u6F22", "\u716E", "\u722B", "\u7422", "\u7891", "\u7949", "\u7948", "\u7950", "\u7956", "\u798D", "\u798E", "\u7A40", "\u7A81", "\u7BC0", "\u7E09", "\u7E41", "\u7F72", "\u8005", "\u81ED", "\u8279", "\u8457", "\u8910", "\u8996", "\u8B01", "\u8B39", "\u8CD3", "\u8D08", "\u8FB6", "\u96E3", "\u97FF", "\u983B", "\u0066\u0066", "\u0066\u0069", "\u0066\u006C", "\u0066\u0066\u0069", "\u0066\u0066\u006C", "\u0073\u0074", "\u0574\u0576", "\u0574\u0565", "\u0574\u056B", "\u057E\u0576", "\u0574\u056D", "\u05D9\u05B4", "\u05F2\u05B7", "\u05E2", "\u05D4", "\u05DB", "\u05DC", "\u05DD", "\u05E8", "\u05EA", "\u05E9\u05C1", "\u05E9\u05C2", "\u05E9\u05BC\u05C1", "\u05E9\u05BC\u05C2", "\u05D0\u05B7", "\u05D0\u05B8", "\u05D0\u05BC", "\u05D1\u05BC", "\u05D2\u05BC", "\u05D3\u05BC", "\u05D4\u05BC", "\u05D5\u05BC", "\u05D6\u05BC", "\u05D8\u05BC", "\u05D9\u05BC", "\u05DA\u05BC", "\u05DB\u05BC", "\u05DC\u05BC", "\u05DE\u05BC", "\u05E0\u05BC", "\u05E1\u05BC", "\u05E3\u05BC", "\u05E4\u05BC", "\u05E6\u05BC", "\u05E7\u05BC", "\u05E8\u05BC", "\u05E9\u05BC", "\u05EA\u05BC", "\u05D5\u05B9", "\u05D1\u05BF", "\u05DB\u05BF", "\u05E4\u05BF", "\u05D0\u05DC", "\u0671", "\u067B", "\u067E", "\u0680", "\u067A", "\u067F", "\u0679", "\u06A4", "\u06A6", "\u0684", "\u0683", "\u0686", "\u0687", "\u068D", "\u068C", "\u068E", "\u0688", "\u0698", "\u0691", "\u06A9", "\u06AF", "\u06B3", "\u06B1", "\u06BA", "\u06BB", "\u06C1", "\u06BE", "\u06D2", "\u06AD", "\u06C7", "\u06C6", "\u06C8", "\u06CB", "\u06C5", "\u06C9", "\u06D0", "\u0649", "\u064A\u0654\u0627", "\u064A\u0654\u06D5", "\u064A\u0654\u0648", "\u064A\u0654\u06C7", "\u064A\u0654\u06C6", "\u064A\u0654\u06C8", "\u064A\u0654\u06D0", "\u064A\u0654\u0649", "\u06CC", "\u064A\u0654\u062C", "\u064A\u0654\u062D", "\u064A\u0654\u0645", "\u064A\u0654\u064A", "\u0628\u062C", "\u0628\u062D", "\u0628\u062E", "\u0628\u0645", "\u0628\u0649", "\u0628\u064A", "\u062A\u062C", "\u062A\u062D", "\u062A\u062E", "\u062A\u0645", "\u062A\u0649", "\u062A\u064A", "\u062B\u062C", "\u062B\u0645", "\u062B\u0649", "\u062B\u064A", "\u062C\u062D", "\u062C\u0645", "\u062D\u062C", "\u062D\u0645", "\u062E\u062C", "\u062E\u062D", "\u062E\u0645", "\u0633\u062C", "\u0633\u062D", "\u0633\u062E", "\u0633\u0645", "\u0635\u062D", "\u0635\u0645", "\u0636\u062C", "\u0636\u062D", "\u0636\u062E", "\u0636\u0645", "\u0637\u062D", "\u0637\u0645", "\u0638\u0645", "\u0639\u062C", "\u0639\u0645", "\u063A\u062C", "\u063A\u0645", "\u0641\u062C", "\u0641\u062D", "\u0641\u062E", "\u0641\u0645", "\u0641\u0649", "\u0641\u064A", "\u0642\u062D", "\u0642\u0645", "\u0642\u0649", "\u0642\u064A", "\u0643\u0627", "\u0643\u062C", "\u0643\u062D", "\u0643\u062E", "\u0643\u0644", "\u0643\u0645", "\u0643\u0649", "\u0643\u064A", "\u0644\u062C", "\u0644\u062D", "\u0644\u062E", "\u0644\u0645", "\u0644\u0649", "\u0644\u064A", "\u0645\u062C", "\u0645\u062D", "\u0645\u062E", "\u0645\u0645", "\u0645\u0649", "\u0645\u064A", "\u0646\u062C", "\u0646\u062D", "\u0646\u062E", "\u0646\u0645", "\u0646\u0649", "\u0646\u064A", "\u0647\u062C", "\u0647\u0645", "\u0647\u0649", "\u0647\u064A", "\u064A\u062C", "\u064A\u062D", "\u064A\u062E", "\u064A\u0645", "\u064A\u0649", "\u064A\u064A", "\u0630\u0670", "\u0631\u0670", "\u0649\u0670", "\u0020\u064C\u0651", "\u0020\u064D\u0651", "\u0020\u064E\u0651", "\u0020\u064F\u0651", "\u0020\u0650\u0651", "\u0020\u0651\u0670", "\u064A\u0654\u0631", "\u064A\u0654\u0632", "\u064A\u0654\u0646", "\u0628\u0631", "\u0628\u0632", "\u0628\u0646", "\u062A\u0631", "\u062A\u0632", "\u062A\u0646", "\u062B\u0631", "\u062B\u0632", "\u062B\u0646", "\u0645\u0627", "\u0646\u0631", "\u0646\u0632", "\u0646\u0646", "\u064A\u0631", "\u064A\u0632", "\u064A\u0646", "\u064A\u0654\u062E", "\u064A\u0654\u0647", "\u0628\u0647", "\u062A\u0647", "\u0635\u062E", "\u0644\u0647", "\u0646\u0647", "\u0647\u0670", "\u064A\u0647", "\u062B\u0647", "\u0633\u0647", "\u0634\u0645", "\u0634\u0647", "\u0640\u064E\u0651", "\u0640\u064F\u0651", "\u0640\u0650\u0651", "\u0637\u0649", "\u0637\u064A", "\u0639\u0649", "\u0639\u064A", "\u063A\u0649", "\u063A\u064A", "\u0633\u0649", "\u0633\u064A", "\u0634\u0649", "\u0634\u064A", "\u062D\u0649", "\u062D\u064A", "\u062C\u0649", "\u062C\u064A", "\u062E\u0649", "\u062E\u064A", "\u0635\u0649", "\u0635\u064A", "\u0636\u0649", "\u0636\u064A", "\u0634\u062C", "\u0634\u062D", "\u0634\u062E", "\u0634\u0631", "\u0633\u0631", "\u0635\u0631", "\u0636\u0631", "\u0627\u064B", "\u062A\u062C\u0645", "\u062A\u062D\u062C", "\u062A\u062D\u0645", "\u062A\u062E\u0645", "\u062A\u0645\u062C", "\u062A\u0645\u062D", "\u062A\u0645\u062E", "\u062C\u0645\u062D", "\u062D\u0645\u064A", "\u062D\u0645\u0649", "\u0633\u062D\u062C", "\u0633\u062C\u062D", "\u0633\u062C\u0649", "\u0633\u0645\u062D", "\u0633\u0645\u062C", "\u0633\u0645\u0645", "\u0635\u062D\u062D", "\u0635\u0645\u0645", "\u0634\u062D\u0645", "\u0634\u062C\u064A", "\u0634\u0645\u062E", "\u0634\u0645\u0645", "\u0636\u062D\u0649", "\u0636\u062E\u0645", "\u0637\u0645\u062D", "\u0637\u0645\u0645", "\u0637\u0645\u064A", "\u0639\u062C\u0645", "\u0639\u0645\u0645", "\u0639\u0645\u0649", "\u063A\u0645\u0645", "\u063A\u0645\u064A", "\u063A\u0645\u0649", "\u0641\u062E\u0645", "\u0642\u0645\u062D", "\u0642\u0645\u0645", "\u0644\u062D\u0645", "\u0644\u062D\u064A", "\u0644\u062D\u0649", "\u0644\u062C\u062C", "\u0644\u062E\u0645", "\u0644\u0645\u062D", "\u0645\u062D\u062C", "\u0645\u062D\u0645", "\u0645\u062D\u064A", "\u0645\u062C\u062D", "\u0645\u062C\u0645", "\u0645\u062E\u062C", "\u0645\u062E\u0645", "\u0645\u062C\u062E", "\u0647\u0645\u062C", "\u0647\u0645\u0645", "\u0646\u062D\u0645", "\u0646\u062D\u0649", "\u0646\u062C\u0645", "\u0646\u062C\u0649", "\u0646\u0645\u064A", "\u0646\u0645\u0649", "\u064A\u0645\u0645", "\u0628\u062E\u064A", "\u062A\u062C\u064A", "\u062A\u062C\u0649", "\u062A\u062E\u064A", "\u062A\u062E\u0649", "\u062A\u0645\u064A", "\u062A\u0645\u0649", "\u062C\u0645\u064A", "\u062C\u062D\u0649", "\u062C\u0645\u0649", "\u0633\u062E\u0649", "\u0635\u062D\u064A", "\u0634\u062D\u064A", "\u0636\u062D\u064A", "\u0644\u062C\u064A", "\u0644\u0645\u064A", "\u064A\u062D\u064A", "\u064A\u062C\u064A", "\u064A\u0645\u064A", "\u0645\u0645\u064A", "\u0642\u0645\u064A", "\u0646\u062D\u064A", "\u0639\u0645\u064A", "\u0643\u0645\u064A", "\u0646\u062C\u062D", "\u0645\u062E\u064A", "\u0644\u062C\u0645", "\u0643\u0645\u0645", "\u062C\u062D\u064A", "\u062D\u062C\u064A", "\u0645\u062C\u064A", "\u0641\u0645\u064A", "\u0628\u062D\u064A", "\u0633\u062E\u064A", "\u0646\u062C\u064A", "\u0635\u0644\u06D2", "\u0642\u0644\u06D2", "\u0627\u0644\u0644\u0647", "\u0627\u0643\u0628\u0631", "\u0645\u062D\u0645\u062F", "\u0635\u0644\u0639\u0645", "\u0631\u0633\u0648\u0644", "\u0639\u0644\u064A\u0647", "\u0648\u0633\u0644\u0645", "\u0635\u0644\u0649", "\u0635\u0644\u0649\u0020\u0627\u0644\u0644\u0647\u0020\u0639\u0644\u064A\u0647\u0020\u0648\u0633\u0644\u0645", "\u062C\u0644\u0020\u062C\u0644\u0627\u0644\u0647", "\u0631\u06CC\u0627\u0644", "\u2014", "\u2013", "\u005F", "\u007B", "\u007D", "\u3014", "\u3015", "\u3010", "\u3011", "\u300A", "\u300B", "\u300C", "\u300D", "\u300E", "\u300F", "\u002C", "\u3001", "\u003A", "\u003F", "\u0021", "\u0023", "\u0026", "\u002A", "\u002D", "\u003C", "\u003E", "\\", "\u0024", "\u0025", "\u0040", "\u0020\u064B", "\u0640\u064B", "\u0020\u064C", "\u0020\u064D", "\u0020\u064E", "\u0640\u064E", "\u0020\u064F", "\u0640\u064F", "\u0020\u0650", "\u0640\u0650", "\u0020\u0651", "\u0640\u0651", "\u0020\u0652", "\u0640\u0652", "\u0621", "\u0627", "\u0628", "\u0629", "\u062A", "\u062B", "\u062C", "\u062D", "\u062E", "\u062F", "\u0630", "\u0631", "\u0632", "\u0633", "\u0634", "\u0635", "\u0636", "\u0637", "\u0638", "\u0639", "\u063A", "\u0641", "\u0642", "\u0643", "\u0644", "\u0645", "\u0646", "\u0647", "\u0648", "\u064A", "\u0644\u0627\u0653", "\u0644\u0627\u0654", "\u0644\u0627\u0655", "\u0644\u0627", "\"", "\u0027", "\u002F", "\u005B", "\u005D", "\u005E", "\u007C", "\u007E", "\u2985", "\u2986", "\u3002", "\u30FB", "\u30A1", "\u30A3", "\u30A5", "\u30A7", "\u30A9", "\u30E3", "\u30E5", "\u30E7", "\u30C3", "\u30FC", "\u30F3", "\u3099", "\u309A", "\u00A2", "\u00A3", "\u00AC", "\u00A6", "\u00A5", "\u20A9", "\u2502", "\u2190", "\u2191", "\u2192", "\u2193", "\u25A0", "\u25CB", }; } libidn-1.28/java/src/main/java/gnu/inet/encoding/StringprepException.java0000644000000000000000000000305112153707514023352 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * Exception handling for StringPrep class. */ public class StringprepException extends Exception { public static String CONTAINS_UNASSIGNED = "Contains unassigned code points."; public static String CONTAINS_PROHIBITED = "Contains prohibited code points."; public static String BIDI_BOTHRAL = "Contains both R and AL code points."; public static String BIDI_LTRAL = "Leading and trailing code points not both R or AL."; public StringprepException(String m) { super(m); } } libidn-1.28/java/src/main/java/gnu/inet/encoding/Punycode.java0000644000000000000000000001357112153707514021134 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * This class offers static methods for encoding/decoding strings * using the Punycode algorithm. *
      *
    • RFC3492 Punycode *
    * Note that this implementation only supports 16-bit Unicode code * points. */ public class Punycode { /* Punycode parameters */ final static int TMIN = 1; final static int TMAX = 26; final static int BASE = 36; final static int INITIAL_N = 128; final static int INITIAL_BIAS = 72; final static int DAMP = 700; final static int SKEW = 38; final static char DELIMITER = '-'; /** * Punycodes a unicode string. * * @param input Unicode string. * @return Punycoded string. */ public static String encode(String input) throws PunycodeException { int n = INITIAL_N; int delta = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); // Copy all basic code points to the output int b = 0; for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); if (isBasic(c)) { output.append(c); b++; } } // Append delimiter if (b > 0) { output.append(DELIMITER); } int h = b; while (h < input.length()) { int m = Integer.MAX_VALUE; // Find the minimum code point >= n for (int i = 0; i < input.length(); i++) { int c = input.charAt(i); if (c >= n && c < m) { m = c; } } if (m - n > (Integer.MAX_VALUE - delta) / (h + 1)) { throw new PunycodeException(PunycodeException.OVERFLOW); } delta = delta + (m - n) * (h + 1); n = m; for (int j = 0; j < input.length(); j++) { int c = input.charAt(j); if (c < n) { delta++; if (0 == delta) { throw new PunycodeException(PunycodeException.OVERFLOW); } } if (c == n) { int q = delta; for (int k = BASE;; k += BASE) { int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (q < t) { break; } output.append((char) digit2codepoint(t + (q - t) % (BASE - t))); q = (q - t) / (BASE - t); } output.append((char) digit2codepoint(q)); bias = adapt(delta, h + 1, h == b); delta = 0; h++; } } delta++; n++; } return output.toString(); } /** * Decode a punycoded string. * * @param input Punycode string * @return Unicode string. */ public static String decode(String input) throws PunycodeException { int n = INITIAL_N; int i = 0; int bias = INITIAL_BIAS; StringBuilder output = new StringBuilder(); int d = input.lastIndexOf(DELIMITER); if (d > 0) { for (int j = 0; j < d; j++) { char c = input.charAt(j); if (!isBasic(c)) { throw new PunycodeException(PunycodeException.BAD_INPUT); } output.append(c); } d++; } else { d = 0; } while (d < input.length()) { int oldi = i; int w = 1; for (int k = BASE; ; k += BASE) { if (d == input.length()) { throw new PunycodeException(PunycodeException.BAD_INPUT); } int c = input.charAt(d++); int digit = codepoint2digit(c); if (digit > (Integer.MAX_VALUE - i) / w) { throw new PunycodeException(PunycodeException.OVERFLOW); } i = i + digit * w; int t; if (k <= bias) { t = TMIN; } else if (k >= bias + TMAX) { t = TMAX; } else { t = k - bias; } if (digit < t) { break; } w = w * (BASE - t); } bias = adapt(i - oldi, output.length()+1, oldi == 0); if (i / (output.length() + 1) > Integer.MAX_VALUE - n) { throw new PunycodeException(PunycodeException.OVERFLOW); } n = n + i / (output.length() + 1); i = i % (output.length() + 1); output.insert(i, (char) n); i++; } return output.toString(); } public final static int adapt(int delta, int numpoints, boolean first) { if (first) { delta = delta / DAMP; } else { delta = delta / 2; } delta = delta + (delta / numpoints); int k = 0; while (delta > ((BASE - TMIN) * TMAX) / 2) { delta = delta / (BASE - TMIN); k = k + BASE; } return k + ((BASE - TMIN + 1) * delta) / (delta + SKEW); } public final static boolean isBasic(char c) { return c < 0x80; } public final static int digit2codepoint(int d) throws PunycodeException { if (d < 26) { // 0..25 : 'a'..'z' return d + 'a'; } else if (d < 36) { // 26..35 : '0'..'9'; return d - 26 + '0'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } public final static int codepoint2digit(int c) throws PunycodeException { if (c - '0' < 10) { // '0'..'9' : 26..35 return c - '0' + 26; } else if (c - 'a' < 26) { // 'a'..'z' : 0..25 return c - 'a'; } else { throw new PunycodeException(PunycodeException.BAD_INPUT); } } } libidn-1.28/java/src/main/java/gnu/inet/encoding/NFKC.java0000644000000000000000000002026312153707514020063 00000000000000/* Copyright (C) 2004-2013 Free Software Foundation, Inc. Author: Oliver Hitz This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; /** * This class offers static methods for Unicode NFKC string normalization. */ public class NFKC { /** * Applies NFKC normalization to a string. * * @param in The string to normalize. * @return An NFKC normalized string. */ public static String normalizeNFKC(String in) { int len = in.length(); StringBuilder out = new StringBuilder(len); for (int i = 0; i < len; i++) { char code = in.charAt(i); // In Unicode 3.0, Hangul was defined as the block from U+AC00 // to U+D7A3, however, since Unicode 3.2 the block extends until // U+D7AF. The decomposeHangul function only decomposes until // U+D7A3. Should this be changed? if (code >= 0xAC00 && code <= 0xD7AF) { out.append(decomposeHangul(code)); } else { int index = decomposeIndex(code); if (index == -1) { out.append(code); } else { out.append(DecompositionMappings.m[index]); } } } // Bring the StringBuilder into canonical order. canonicalOrdering(out); // Do the canonical composition. int last_cc = 0; int last_start = 0; for (int i = 0; i < out.length(); i++) { int cc = combiningClass(out.charAt(i)); if (i > 0 && (last_cc == 0 || last_cc != cc)) { // Try to combine characters char a = out.charAt(last_start); char b = out.charAt(i); int c = compose(a, b); if (c != -1) { out.setCharAt(last_start, (char) c); out.deleteCharAt(i); i--; if (i == last_start) { last_cc = 0; } else { last_cc = combiningClass(out.charAt(i-1)); } continue; } } if (cc == 0) { last_start = i; } last_cc = cc; } return out.toString(); } /** * Returns the index inside the decomposition table, implemented * using a binary search. * * @param c Character to look up. * @return Index if found, -1 otherwise. */ static int decomposeIndex(char c) { int start = 0; int end = DecompositionKeys.k.length/2; while (true) { int half = (start + end) / 2; int code = DecompositionKeys.k[half*2]; if (c == code) { return DecompositionKeys.k[half*2 + 1]; } if (half == start) { // Character not found return -1; } else if (c > code) { start = half; } else { end = half; } } } /** * Returns the combining class of a given character. * * @param c The character. * @return The combining class. */ static int combiningClass(char c) { int h = c >> 8; int l = c & 0xff; int i = CombiningClass.i[h]; if (i > -1) { return CombiningClass.c[i][l]; } else { return 0; } } /** * Rearranges characters in a StringBuilder in order to respect the * canonical ordering properties. * * @param in The StringBuilder to rearrange. */ static void canonicalOrdering(StringBuilder in) { if (in.length() == 0) { return; } boolean isOrdered = false; while (!isOrdered) { isOrdered = true; int lastCC = combiningClass(in.charAt(0)); for (int i = 0; i < in.length()-1; i++) { int nextCC = combiningClass(in.charAt(i+1)); if (nextCC != 0 && lastCC > nextCC) { for (int j = i+1; j > 0; j--) { if (combiningClass(in.charAt(j-1)) <= nextCC) { break; } char t = in.charAt(j); in.setCharAt(j, in.charAt(j-1)); in.setCharAt(j-1, t); isOrdered = false; } nextCC = lastCC; } lastCC = nextCC; } } } /** * Returns the index inside the composition table. * * @param a Character to look up. * @return Index if found, -1 otherwise. */ static int composeIndex(char a) { if (a>>8 >= Composition.composePage.length) { return -1; } int ap = Composition.composePage[a>>8]; if (ap == -1) { return -1; } return Composition.composeData[ap][a & 0xff]; } /** * Tries to compose two characters canonically. * * @param a First character. * @param b Second character. * @return The composed character or -1 if no composition could be * found. */ static int compose(char a, char b) { int h = composeHangul(a, b); if (h != -1) { return h; } int ai = composeIndex(a); if (ai >= Composition.singleFirstStart && ai < Composition.singleSecondStart) { if (b == Composition.singleFirst[ai - Composition.singleFirstStart][0]) { return Composition.singleFirst[ai - Composition.singleFirstStart][1]; } else { return -1; } } int bi = composeIndex(b); if (bi >= Composition.singleSecondStart) { if (a == Composition.singleSecond[bi - Composition.singleSecondStart][0]) { return Composition.singleSecond[bi - Composition.singleSecondStart][1]; } else { return -1; } } if (ai >= 0 && ai < Composition.multiSecondStart && bi >= Composition.multiSecondStart && bi < Composition.singleFirstStart) { char[] f = Composition.multiFirst[ai]; if (bi - Composition.multiSecondStart < f.length) { char r = f[bi - Composition.multiSecondStart]; if (r == 0) { return -1; } else { return r; } } } return -1; } /** * Entire hangul code copied from: * http://www.unicode.org/unicode/reports/tr15/ * * Several hangul specific constants */ static final int SBase = 0xAC00; static final int LBase = 0x1100; static final int VBase = 0x1161; static final int TBase = 0x11A7; static final int LCount = 19; static final int VCount = 21; static final int TCount = 28; static final int NCount = VCount * TCount; static final int SCount = LCount * NCount; /** * Decomposes a hangul character. * * @param s A character to decompose. * @return A string containing the hangul decomposition of the input * character. If no hangul decomposition can be found, a string * containing the character itself is returned. */ static String decomposeHangul(char s) { int SIndex = s - SBase; if (SIndex < 0 || SIndex >= SCount) { return String.valueOf(s); } StringBuilder result = new StringBuilder(); int L = LBase + SIndex / NCount; int V = VBase + (SIndex % NCount) / TCount; int T = TBase + SIndex % TCount; result.append((char)L); result.append((char)V); if (T != TBase) result.append((char)T); return result.toString(); } /** * Composes two hangul characters. * * @param a First character. * @param b Second character. * @return Returns the composed character or -1 if the two * characters cannot be composed. */ static int composeHangul(char a, char b) { // 1. check to see if two current characters are L and V int LIndex = a - LBase; if (0 <= LIndex && LIndex < LCount) { int VIndex = b - VBase; if (0 <= VIndex && VIndex < VCount) { // make syllable of form LV return SBase + (LIndex * VCount + VIndex) * TCount; } } // 2. check to see if two current characters are LV and T int SIndex = a - SBase; if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) == 0) { int TIndex = b - TBase; if (0 <= TIndex && TIndex <= TCount) { // make syllable of form LVT return a+TIndex; } } return -1; } } libidn-1.28/java/src/main/java/gnu/inet/encoding/RangeSet.java0000644000000000000000000002522612153710131021043 00000000000000/* Copyright (C) 2013 Free Software Foundation, Inc. Author: Stefan Larsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ package gnu.inet.encoding; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Locale; /** * Set of integer ranges supporting efficient contains-checks. * @author Stefan Larsson */ public final class RangeSet { private static final RangeContainsComparator CONTAINS_COMPARATOR = new RangeContainsComparator(); private final Range[] ranges; private final Range mostSignificantGap; // TODO Store ranges with improved cache-locality, probably int[] with even/odd elements being first/last public static final class Range implements Comparable { private final int first; private final int last; public Range(int first, int last) { if (first > last) { throw new IllegalArgumentException("Reversed " + first + "-" + last); } this.first = first; this.last = last; } public Range(int single) { this.first = single; this.last = single; } public Range(Range firstRange, Range lastRange) { // firstRange shouldn't start later than lastRange starts if (firstRange.first > lastRange.first) { throw new IllegalArgumentException(firstRange + " starts later than " + lastRange); } if (lastRange.first - firstRange.last > 1) { throw new IllegalArgumentException("Disjunct " + firstRange + " - " + lastRange); } this.first = firstRange.first; this.last = lastRange.last; } public boolean contains(final int i) { return first <= i && i <= last; } /** * Checks if this range completely can contain the other range. * @param other other range to verify * @return {@code true} if other completely contained by this, * otherwise {@code false} */ public boolean contains(final Range other) { return (this.first <= other.first) && (other.last <= this.last); } @Override public String toString() { return "[" + Integer.toHexString(first).toUpperCase(Locale.ENGLISH) + "," + Integer.toHexString(last).toUpperCase(Locale.ENGLISH) + ']'; } //@Override public int compareTo(final Range other) { if (this.first < other.first) { return -1; } if (this.first > other.first) { return 1; } if (this.last < other.last) { return -1; } if (this.last > other.last) { return 1; } return 0; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Range range = (Range) o; if (first != range.first) return false; if (last != range.last) return false; return true; } @Override public int hashCode() { return 31 * first + last; } } private static class RangeContainsComparator implements Comparator { public int compare(Range current, Range contained) { if (current.last < contained.first) { return -1; } if (contained.last < current.first) { return 1; } return 0; } } private RangeSet(final List ranges) { this.ranges = ranges.toArray(new Range[ranges.size()]); this.mostSignificantGap = findMostSignificantGap(this.ranges); } /** * Returns the most significant gap, or {@code null} if no important gap found. * @param ranges ranges to search * @return most significant gap, or {@code null} if no important gap found */ private static Range findMostSignificantGap(final Range[] ranges) { if (ranges.length == 0) { return new Range(0, Integer.MAX_VALUE); } final int aIdx = Arrays.binarySearch(ranges, new Range('a'), CONTAINS_COMPARATOR); if (aIdx >= 0) { // 'a' in ranges, don't even attempt to exclude smartly return null; } final int insertionPoint = -(aIdx + 1); if (insertionPoint == 0) { return new Range(0, ranges[0].first - 1); } if (insertionPoint == ranges.length) { return new Range(ranges[ranges.length - 1].last + 1, Integer.MAX_VALUE); } return new Range(ranges[insertionPoint - 1].last + 1, ranges[insertionPoint].first - 1); } public static final class Builder { private final List ranges = new ArrayList(); public Builder addRange(final Range range) { ranges.add(range); return this; } public Builder addRanges(final Collection ranges) { ranges.addAll(ranges); return this; } public Builder addRanges(final char[][] ranges) { for (final char[] range : ranges) { if (range.length == 1) { this.ranges.add(new Range(range[0])); } else if (range.length == 2) { this.ranges.add(new Range(range[0], range[1])); } else { throw new IllegalArgumentException("Unexpected range len:" + range.length); } } return this; } public Builder addRanges(final char[] items) { for (final char item : items) { this.ranges.add(new Range(item)); } return this; } public RangeSet build() { Collections.sort(ranges); final List mergedRanges = mergeRanges(ranges); return new RangeSet(mergedRanges); } static List mergeRanges(final List ranges) { if (ranges.isEmpty()) { return Collections.emptyList(); } final List result = new ArrayList(); final Iterator it = ranges.iterator(); Range leftRange = it.next(); List merged = Collections.singletonList(leftRange); while (it.hasNext()) { // merge ranges as long as they're adjacent/overlapping while (merged.size() == 1 && it.hasNext()) { leftRange = merged.get(0); Range rightRange = it.next(); merged = mergeRanges(leftRange, rightRange); } // when ranges weren't merge-able, add all but last, merge against last if (merged.size() > 1) { result.addAll(merged.subList(0, merged.size() - 1)); merged = Collections.singletonList(merged.get(merged.size() - 1)); } } result.addAll(merged); return result; } static List mergeRanges(Range leftRange, Range rightRange) { if (leftRange.last + 1 >= rightRange.first) { final int last = Math.max(rightRange.last, leftRange.last); return Collections.singletonList(new Range(leftRange.first, last)); } else { final List result = new ArrayList(2); result.add(leftRange); result.add(rightRange); return result; } } } public static Builder builder() { return new Builder(); } public boolean contains(final int i) { if (mostSignificantGap != null && mostSignificantGap.contains(i)) { return false; } final Range searchRange = new Range(i); int idx = Arrays.binarySearch(ranges, searchRange, CONTAINS_COMPARATOR); return idx >= 0; } public boolean containsAnyCodePoint(final CharSequence text) { final Range inputRange = createTextRange(text); return containsAnyCodePoint(text, inputRange); } public boolean containsAnyCodePoint(final CharSequence text, final Range inputRange) { final int len = text.length(); if (len == 0) { return false; } if (mostSignificantGap != null && mostSignificantGap.contains(inputRange.first) && mostSignificantGap.contains(inputRange.last)) { return false; } // if found, returns the index, otherwise "-insertionPoint - 1" final int idxEnd = Arrays.binarySearch(ranges, new Range(inputRange.last), CONTAINS_COMPARATOR); // search for start in "head" range only (likely small) final int startFromIdx = 0; final int startEndIdx = idxEnd >= 0 ? idxEnd + 1 : -(idxEnd + 1); final int idxStart = Arrays.binarySearch(ranges, startFromIdx, startEndIdx, new Range(inputRange.first), CONTAINS_COMPARATOR); // If whole range in text outside same non-contained range, won't be found // If whole range in text inside single contained range, must match if (idxStart == idxEnd) { return idxStart >= 0; } // if start or end inside contained range, match if (idxStart >= 0 || idxEnd >= 0) { return true; } // text spans across multiple ranges of set, need to search individual chars final int searchStart = -idxStart + 1; final int searchEnd = -idxEnd + 1; for (int i = 0; i < len; ) { final int cp = Character.codePointAt(text, i); i += Character.charCount(cp); final int idx = Arrays.binarySearch(ranges, searchStart, searchEnd, new Range(cp), CONTAINS_COMPARATOR); if (idx > 0) { return true; } } return false; } /** * Returns the range of the input or {@code all-inclusive range} if input is empty * @param text input text * @return range of input, or {@code all-inclusive} if empty input */ public static Range createTextRange(final CharSequence text) { final int len = text.length(); if (len == 0) { return new Range(Integer.MIN_VALUE, Integer.MAX_VALUE); } int minCodePoint = Integer.MAX_VALUE; int maxCodePoint = Integer.MIN_VALUE; for (int i = 0; i < len; ) { final int cp = Character.codePointAt(text, i); minCodePoint = Math.min(minCodePoint, cp); maxCodePoint = Math.max(maxCodePoint, cp); i += Character.charCount(cp); } return new Range(minCodePoint, maxCodePoint); } @Override public String toString() { return "RangeSet{" + "ranges=" + Arrays.asList(ranges) + ", mostSignificantGap=" + mostSignificantGap + '}'; } } libidn-1.28/java/src/main/java/gnu/inet/encoding/Composition.java0000644000000000000000000015333512153707514021654 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit GenerateNFKC.java and re-run. */ package gnu.inet.encoding; /** * Auto-generated class containing Unicode NFKC tables. */ public class Composition { public final static char[][] multiFirst = new char[][] { { '\u00C0', '\u00C1', '\u00C2', '\u00C3', '\u0100', '\u0102', '\u0226', '\u00C4', '\u1EA2', '\u00C5', '\u01CD', '\u0200', '\u0202', '\u1EA0', '\u1E00', '\u0104', }, { 0, 0, 0, 0, 0, 0, '\u1E02', 0, 0, 0, 0, 0, 0, '\u1E04', 0, 0, '\u1E06', }, { 0, '\u0106', '\u0108', 0, 0, 0, '\u010A', 0, 0, 0, '\u010C', 0, 0, 0, 0, 0, 0, '\u00C7', }, { 0, 0, 0, 0, 0, 0, '\u1E0A', 0, 0, 0, '\u010E', 0, 0, '\u1E0C', 0, 0, '\u1E0E', '\u1E10', '\u1E12', }, { '\u00C8', '\u00C9', '\u00CA', '\u1EBC', '\u0112', '\u0114', '\u0116', '\u00CB', '\u1EBA', 0, '\u011A', '\u0204', '\u0206', '\u1EB8', 0, '\u0118', 0, '\u0228', '\u1E18', '\u1E1A', }, { 0, '\u01F4', '\u011C', 0, '\u1E20', '\u011E', '\u0120', 0, 0, 0, '\u01E6', 0, 0, 0, 0, 0, 0, '\u0122', }, { 0, 0, '\u0124', 0, 0, 0, '\u1E22', '\u1E26', 0, 0, '\u021E', 0, 0, '\u1E24', 0, 0, 0, '\u1E28', 0, 0, '\u1E2A', }, { '\u00CC', '\u00CD', '\u00CE', '\u0128', '\u012A', '\u012C', '\u0130', '\u00CF', '\u1EC8', 0, '\u01CF', '\u0208', '\u020A', '\u1ECA', 0, '\u012E', 0, 0, 0, '\u1E2C', }, { 0, '\u1E30', 0, 0, 0, 0, 0, 0, 0, 0, '\u01E8', 0, 0, '\u1E32', 0, 0, '\u1E34', '\u0136', }, { 0, '\u0139', 0, 0, 0, 0, 0, 0, 0, 0, '\u013D', 0, 0, '\u1E36', 0, 0, '\u1E3A', '\u013B', '\u1E3C', }, { 0, '\u1E3E', 0, 0, 0, 0, '\u1E40', 0, 0, 0, 0, 0, 0, '\u1E42', }, { '\u01F8', '\u0143', 0, '\u00D1', 0, 0, '\u1E44', 0, 0, 0, '\u0147', 0, 0, '\u1E46', 0, 0, '\u1E48', '\u0145', '\u1E4A', }, { '\u00D2', '\u00D3', '\u00D4', '\u00D5', '\u014C', '\u014E', '\u022E', '\u00D6', '\u1ECE', 0, '\u01D1', '\u020C', '\u020E', '\u1ECC', 0, '\u01EA', 0, 0, 0, 0, 0, '\u0150', '\u01A0', }, { 0, '\u1E54', 0, 0, 0, 0, '\u1E56', }, { 0, '\u0154', 0, 0, 0, 0, '\u1E58', 0, 0, 0, '\u0158', '\u0210', '\u0212', '\u1E5A', 0, 0, '\u1E5E', '\u0156', }, { 0, '\u015A', '\u015C', 0, 0, 0, '\u1E60', 0, 0, 0, '\u0160', 0, 0, '\u1E62', 0, 0, 0, '\u015E', 0, 0, 0, 0, 0, '\u0218', }, { 0, 0, 0, 0, 0, 0, '\u1E6A', 0, 0, 0, '\u0164', 0, 0, '\u1E6C', 0, 0, '\u1E6E', '\u0162', '\u1E70', 0, 0, 0, 0, '\u021A', }, { '\u00D9', '\u00DA', '\u00DB', '\u0168', '\u016A', '\u016C', 0, '\u00DC', '\u1EE6', '\u016E', '\u01D3', '\u0214', '\u0216', '\u1EE4', 0, '\u0172', 0, 0, '\u1E76', '\u1E74', 0, '\u0170', '\u01AF', 0, '\u1E72', }, { 0, 0, 0, '\u1E7C', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1E7E', }, { '\u1E80', '\u1E82', '\u0174', 0, 0, 0, '\u1E86', '\u1E84', 0, 0, 0, 0, 0, '\u1E88', }, { 0, 0, 0, 0, 0, 0, '\u1E8A', '\u1E8C', }, { '\u1EF2', '\u00DD', '\u0176', '\u1EF8', '\u0232', 0, '\u1E8E', '\u0178', '\u1EF6', 0, 0, 0, 0, '\u1EF4', }, { 0, '\u0179', '\u1E90', 0, 0, 0, '\u017B', 0, 0, 0, '\u017D', 0, 0, '\u1E92', 0, 0, '\u1E94', }, { '\u00E0', '\u00E1', '\u00E2', '\u00E3', '\u0101', '\u0103', '\u0227', '\u00E4', '\u1EA3', '\u00E5', '\u01CE', '\u0201', '\u0203', '\u1EA1', '\u1E01', '\u0105', }, { 0, 0, 0, 0, 0, 0, '\u1E03', 0, 0, 0, 0, 0, 0, '\u1E05', 0, 0, '\u1E07', }, { 0, '\u0107', '\u0109', 0, 0, 0, '\u010B', 0, 0, 0, '\u010D', 0, 0, 0, 0, 0, 0, '\u00E7', }, { 0, 0, 0, 0, 0, 0, '\u1E0B', 0, 0, 0, '\u010F', 0, 0, '\u1E0D', 0, 0, '\u1E0F', '\u1E11', '\u1E13', }, { '\u00E8', '\u00E9', '\u00EA', '\u1EBD', '\u0113', '\u0115', '\u0117', '\u00EB', '\u1EBB', 0, '\u011B', '\u0205', '\u0207', '\u1EB9', 0, '\u0119', 0, '\u0229', '\u1E19', '\u1E1B', }, { 0, '\u01F5', '\u011D', 0, '\u1E21', '\u011F', '\u0121', 0, 0, 0, '\u01E7', 0, 0, 0, 0, 0, 0, '\u0123', }, { 0, 0, '\u0125', 0, 0, 0, '\u1E23', '\u1E27', 0, 0, '\u021F', 0, 0, '\u1E25', 0, 0, '\u1E96', '\u1E29', 0, 0, '\u1E2B', }, { '\u00EC', '\u00ED', '\u00EE', '\u0129', '\u012B', '\u012D', 0, '\u00EF', '\u1EC9', 0, '\u01D0', '\u0209', '\u020B', '\u1ECB', 0, '\u012F', 0, 0, 0, '\u1E2D', }, { 0, 0, '\u0135', 0, 0, 0, 0, 0, 0, 0, '\u01F0', }, { 0, '\u1E31', 0, 0, 0, 0, 0, 0, 0, 0, '\u01E9', 0, 0, '\u1E33', 0, 0, '\u1E35', '\u0137', }, { 0, '\u013A', 0, 0, 0, 0, 0, 0, 0, 0, '\u013E', 0, 0, '\u1E37', 0, 0, '\u1E3B', '\u013C', '\u1E3D', }, { 0, '\u1E3F', 0, 0, 0, 0, '\u1E41', 0, 0, 0, 0, 0, 0, '\u1E43', }, { '\u01F9', '\u0144', 0, '\u00F1', 0, 0, '\u1E45', 0, 0, 0, '\u0148', 0, 0, '\u1E47', 0, 0, '\u1E49', '\u0146', '\u1E4B', }, { '\u00F2', '\u00F3', '\u00F4', '\u00F5', '\u014D', '\u014F', '\u022F', '\u00F6', '\u1ECF', 0, '\u01D2', '\u020D', '\u020F', '\u1ECD', 0, '\u01EB', 0, 0, 0, 0, 0, '\u0151', '\u01A1', }, { 0, '\u1E55', 0, 0, 0, 0, '\u1E57', }, { 0, '\u0155', 0, 0, 0, 0, '\u1E59', 0, 0, 0, '\u0159', '\u0211', '\u0213', '\u1E5B', 0, 0, '\u1E5F', '\u0157', }, { 0, '\u015B', '\u015D', 0, 0, 0, '\u1E61', 0, 0, 0, '\u0161', 0, 0, '\u1E63', 0, 0, 0, '\u015F', 0, 0, 0, 0, 0, '\u0219', }, { 0, 0, 0, 0, 0, 0, '\u1E6B', '\u1E97', 0, 0, '\u0165', 0, 0, '\u1E6D', 0, 0, '\u1E6F', '\u0163', '\u1E71', 0, 0, 0, 0, '\u021B', }, { '\u00F9', '\u00FA', '\u00FB', '\u0169', '\u016B', '\u016D', 0, '\u00FC', '\u1EE7', '\u016F', '\u01D4', '\u0215', '\u0217', '\u1EE5', 0, '\u0173', 0, 0, '\u1E77', '\u1E75', 0, '\u0171', '\u01B0', 0, '\u1E73', }, { 0, 0, 0, '\u1E7D', 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1E7F', }, { '\u1E81', '\u1E83', '\u0175', 0, 0, 0, '\u1E87', '\u1E85', 0, '\u1E98', 0, 0, 0, '\u1E89', }, { 0, 0, 0, 0, 0, 0, '\u1E8B', '\u1E8D', }, { '\u1EF3', '\u00FD', '\u0177', '\u1EF9', '\u0233', 0, '\u1E8F', '\u00FF', '\u1EF7', '\u1E99', 0, 0, 0, '\u1EF5', }, { 0, '\u017A', '\u1E91', 0, 0, 0, '\u017C', 0, 0, 0, '\u017E', 0, 0, '\u1E93', 0, 0, '\u1E95', }, { '\u1FED', '\u0385', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FC1', }, { '\u1EA6', '\u1EA4', 0, '\u1EAA', 0, 0, 0, 0, '\u1EA8', }, { 0, '\u01FC', 0, 0, '\u01E2', }, { '\u1EC0', '\u1EBE', 0, '\u1EC4', 0, 0, 0, 0, '\u1EC2', }, { '\u1ED2', '\u1ED0', 0, '\u1ED6', 0, 0, 0, 0, '\u1ED4', }, { 0, '\u1E4C', 0, 0, '\u022C', 0, 0, '\u1E4E', }, { '\u01DB', '\u01D7', 0, 0, '\u01D5', 0, 0, 0, 0, 0, '\u01D9', }, { '\u1EA7', '\u1EA5', 0, '\u1EAB', 0, 0, 0, 0, '\u1EA9', }, { 0, '\u01FD', 0, 0, '\u01E3', }, { '\u1EC1', '\u1EBF', 0, '\u1EC5', 0, 0, 0, 0, '\u1EC3', }, { '\u1ED3', '\u1ED1', 0, '\u1ED7', 0, 0, 0, 0, '\u1ED5', }, { 0, '\u1E4D', 0, 0, '\u022D', 0, 0, '\u1E4F', }, { '\u01DC', '\u01D8', 0, 0, '\u01D6', 0, 0, 0, 0, 0, '\u01DA', }, { '\u1EB0', '\u1EAE', 0, '\u1EB4', 0, 0, 0, 0, '\u1EB2', }, { '\u1EB1', '\u1EAF', 0, '\u1EB5', 0, 0, 0, 0, '\u1EB3', }, { '\u1E14', '\u1E16', }, { '\u1E15', '\u1E17', }, { '\u1E50', '\u1E52', }, { '\u1E51', '\u1E53', }, { '\u1EDC', '\u1EDA', 0, '\u1EE0', 0, 0, 0, 0, '\u1EDE', 0, 0, 0, 0, '\u1EE2', }, { '\u1EDD', '\u1EDB', 0, '\u1EE1', 0, 0, 0, 0, '\u1EDF', 0, 0, 0, 0, '\u1EE3', }, { '\u1EEA', '\u1EE8', 0, '\u1EEE', 0, 0, 0, 0, '\u1EEC', 0, 0, 0, 0, '\u1EF0', }, { '\u1EEB', '\u1EE9', 0, '\u1EEF', 0, 0, 0, 0, '\u1EED', 0, 0, 0, 0, '\u1EF1', }, { '\u1FBA', '\u0386', 0, 0, '\u1FB9', '\u1FB8', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F08', '\u1F09', '\u1FBC', }, { '\u1FC8', '\u0388', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F18', '\u1F19', }, { '\u1FCA', '\u0389', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F28', '\u1F29', '\u1FCC', }, { '\u1FDA', '\u038A', 0, 0, '\u1FD9', '\u1FD8', 0, '\u03AA', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F38', '\u1F39', }, { '\u1FF8', '\u038C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F48', '\u1F49', }, { '\u1FEA', '\u038E', 0, 0, '\u1FE9', '\u1FE8', 0, '\u03AB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F59', }, { '\u1FFA', '\u038F', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F68', '\u1F69', '\u1FFC', }, { '\u1F70', '\u03AC', 0, 0, '\u1FB1', '\u1FB0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FB6', '\u1F00', '\u1F01', '\u1FB3', }, { '\u1F72', '\u03AD', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F10', '\u1F11', }, { '\u1F74', '\u03AE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FC6', '\u1F20', '\u1F21', '\u1FC3', }, { '\u1F76', '\u03AF', 0, 0, '\u1FD1', '\u1FD0', 0, '\u03CA', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FD6', '\u1F30', '\u1F31', }, { '\u1F78', '\u03CC', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F40', '\u1F41', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FE4', '\u1FE5', }, { '\u1F7A', '\u03CD', 0, 0, '\u1FE1', '\u1FE0', 0, '\u03CB', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FE6', '\u1F50', '\u1F51', }, { '\u1F7C', '\u03CE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FF6', '\u1F60', '\u1F61', '\u1FF3', }, { '\u1FD2', '\u0390', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FD7', }, { '\u1FE2', '\u03B0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FE7', }, { 0, '\u03D3', 0, 0, 0, 0, 0, '\u03D4', }, { 0, 0, 0, 0, 0, '\u04D0', 0, '\u04D2', }, { '\u0400', 0, 0, 0, 0, '\u04D6', 0, '\u0401', }, { 0, 0, 0, 0, 0, '\u04C1', 0, '\u04DC', }, { '\u040D', 0, 0, 0, '\u04E2', '\u0419', 0, '\u04E4', }, { 0, 0, 0, 0, '\u04EE', '\u040E', 0, '\u04F0', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u04F2', }, { 0, 0, 0, 0, 0, '\u04D1', 0, '\u04D3', }, { '\u0450', 0, 0, 0, 0, '\u04D7', 0, '\u0451', }, { 0, 0, 0, 0, 0, '\u04C2', 0, '\u04DD', }, { '\u045D', 0, 0, 0, '\u04E3', '\u0439', 0, '\u04E5', }, { 0, 0, 0, 0, '\u04EF', '\u045E', 0, '\u04F1', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u04F3', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0623', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0BCA', '\u0BCC', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0CC7', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0D4A', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u0DDA', }, { 0, 0, '\u1EAC', 0, 0, '\u1EB6', }, { 0, 0, '\u1EAD', 0, 0, '\u1EB7', }, { '\u1F02', '\u1F04', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F06', 0, 0, '\u1F80', }, { '\u1F03', '\u1F05', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F07', 0, 0, '\u1F81', }, { '\u1F0A', '\u1F0C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F0E', 0, 0, '\u1F88', }, { '\u1F0B', '\u1F0D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F0F', 0, 0, '\u1F89', }, { '\u1F12', '\u1F14', }, { '\u1F13', '\u1F15', }, { '\u1F1A', '\u1F1C', }, { '\u1F1B', '\u1F1D', }, { '\u1F22', '\u1F24', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F26', 0, 0, '\u1F90', }, { '\u1F23', '\u1F25', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F27', 0, 0, '\u1F91', }, { '\u1F2A', '\u1F2C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F2E', 0, 0, '\u1F98', }, { '\u1F2B', '\u1F2D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F2F', 0, 0, '\u1F99', }, { '\u1F32', '\u1F34', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F36', }, { '\u1F33', '\u1F35', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F37', }, { '\u1F3A', '\u1F3C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F3E', }, { '\u1F3B', '\u1F3D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F3F', }, { '\u1F42', '\u1F44', }, { '\u1F43', '\u1F45', }, { '\u1F4A', '\u1F4C', }, { '\u1F4B', '\u1F4D', }, { '\u1F52', '\u1F54', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F56', }, { '\u1F53', '\u1F55', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F57', }, { '\u1F5B', '\u1F5D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F5F', }, { '\u1F62', '\u1F64', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F66', 0, 0, '\u1FA0', }, { '\u1F63', '\u1F65', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F67', 0, 0, '\u1FA1', }, { '\u1F6A', '\u1F6C', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F6E', 0, 0, '\u1FA8', }, { '\u1F6B', '\u1F6D', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1F6F', 0, 0, '\u1FA9', }, { '\u1FCD', '\u1FCE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FCF', }, { '\u1FDD', '\u1FDE', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u1FDF', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3070', '\u3071', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3073', '\u3074', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3076', '\u3077', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u3079', '\u307A', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u307C', '\u307D', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D0', '\u30D1', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D3', '\u30D4', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D6', '\u30D7', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30D9', '\u30DA', }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, '\u30DC', '\u30DD', }, }; public final static char[][] singleFirst = new char[][] { { '\u0338', '\u226E' }, { '\u0338', '\u2260' }, { '\u0338', '\u226F' }, { '\u0307', '\u1E1E' }, { '\u0302', '\u0134' }, { '\u0307', '\u1E1F' }, { '\u0304', '\u01DE' }, { '\u0301', '\u01FA' }, { '\u0301', '\u1E08' }, { '\u0301', '\u1E2E' }, { '\u0304', '\u022A' }, { '\u0301', '\u01FE' }, { '\u0304', '\u01DF' }, { '\u0301', '\u01FB' }, { '\u0301', '\u1E09' }, { '\u0301', '\u1E2F' }, { '\u0304', '\u022B' }, { '\u0301', '\u01FF' }, { '\u0307', '\u1E64' }, { '\u0307', '\u1E65' }, { '\u0307', '\u1E66' }, { '\u0307', '\u1E67' }, { '\u0301', '\u1E78' }, { '\u0301', '\u1E79' }, { '\u0308', '\u1E7A' }, { '\u0308', '\u1E7B' }, { '\u0307', '\u1E9B' }, { '\u030C', '\u01EE' }, { '\u0304', '\u01EC' }, { '\u0304', '\u01ED' }, { '\u0304', '\u01E0' }, { '\u0304', '\u01E1' }, { '\u0306', '\u1E1C' }, { '\u0306', '\u1E1D' }, { '\u0304', '\u0230' }, { '\u0304', '\u0231' }, { '\u030C', '\u01EF' }, { '\u0314', '\u1FEC' }, { '\u0345', '\u1FB4' }, { '\u0345', '\u1FC4' }, { '\u0345', '\u1FF4' }, { '\u0308', '\u0407' }, { '\u0301', '\u0403' }, { '\u0308', '\u04DE' }, { '\u0301', '\u040C' }, { '\u0308', '\u04E6' }, { '\u0308', '\u04F4' }, { '\u0308', '\u04F8' }, { '\u0308', '\u04EC' }, { '\u0301', '\u0453' }, { '\u0308', '\u04DF' }, { '\u0301', '\u045C' }, { '\u0308', '\u04E7' }, { '\u0308', '\u04F5' }, { '\u0308', '\u04F9' }, { '\u0308', '\u04ED' }, { '\u0308', '\u0457' }, { '\u030F', '\u0476' }, { '\u030F', '\u0477' }, { '\u0308', '\u04DA' }, { '\u0308', '\u04DB' }, { '\u0308', '\u04EA' }, { '\u0308', '\u04EB' }, { '\u0654', '\u0624' }, { '\u0654', '\u0626' }, { '\u0654', '\u06C2' }, { '\u0654', '\u06D3' }, { '\u0654', '\u06C0' }, { '\u093C', '\u0929' }, { '\u093C', '\u0931' }, { '\u093C', '\u0934' }, { '\u0BD7', '\u0B94' }, { '\u0BBE', '\u0BCB' }, { '\u0C56', '\u0C48' }, { '\u0CD5', '\u0CC0' }, { '\u0CD5', '\u0CCB' }, { '\u0D3E', '\u0D4B' }, { '\u0DCA', '\u0DDD' }, { '\u102E', '\u1026' }, { '\u0304', '\u1E38' }, { '\u0304', '\u1E39' }, { '\u0304', '\u1E5C' }, { '\u0304', '\u1E5D' }, { '\u0307', '\u1E68' }, { '\u0307', '\u1E69' }, { '\u0302', '\u1EC6' }, { '\u0302', '\u1EC7' }, { '\u0302', '\u1ED8' }, { '\u0302', '\u1ED9' }, { '\u0345', '\u1F82' }, { '\u0345', '\u1F83' }, { '\u0345', '\u1F84' }, { '\u0345', '\u1F85' }, { '\u0345', '\u1F86' }, { '\u0345', '\u1F87' }, { '\u0345', '\u1F8A' }, { '\u0345', '\u1F8B' }, { '\u0345', '\u1F8C' }, { '\u0345', '\u1F8D' }, { '\u0345', '\u1F8E' }, { '\u0345', '\u1F8F' }, { '\u0345', '\u1F92' }, { '\u0345', '\u1F93' }, { '\u0345', '\u1F94' }, { '\u0345', '\u1F95' }, { '\u0345', '\u1F96' }, { '\u0345', '\u1F97' }, { '\u0345', '\u1F9A' }, { '\u0345', '\u1F9B' }, { '\u0345', '\u1F9C' }, { '\u0345', '\u1F9D' }, { '\u0345', '\u1F9E' }, { '\u0345', '\u1F9F' }, { '\u0345', '\u1FA2' }, { '\u0345', '\u1FA3' }, { '\u0345', '\u1FA4' }, { '\u0345', '\u1FA5' }, { '\u0345', '\u1FA6' }, { '\u0345', '\u1FA7' }, { '\u0345', '\u1FAA' }, { '\u0345', '\u1FAB' }, { '\u0345', '\u1FAC' }, { '\u0345', '\u1FAD' }, { '\u0345', '\u1FAE' }, { '\u0345', '\u1FAF' }, { '\u0345', '\u1FB2' }, { '\u0345', '\u1FC2' }, { '\u0345', '\u1FF2' }, { '\u0345', '\u1FB7' }, { '\u0345', '\u1FC7' }, { '\u0345', '\u1FF7' }, { '\u0338', '\u219A' }, { '\u0338', '\u219B' }, { '\u0338', '\u21AE' }, { '\u0338', '\u21CD' }, { '\u0338', '\u21CF' }, { '\u0338', '\u21CE' }, { '\u0338', '\u2204' }, { '\u0338', '\u2209' }, { '\u0338', '\u220C' }, { '\u0338', '\u2224' }, { '\u0338', '\u2226' }, { '\u0338', '\u2241' }, { '\u0338', '\u2244' }, { '\u0338', '\u2247' }, { '\u0338', '\u2249' }, { '\u0338', '\u226D' }, { '\u0338', '\u2262' }, { '\u0338', '\u2270' }, { '\u0338', '\u2271' }, { '\u0338', '\u2274' }, { '\u0338', '\u2275' }, { '\u0338', '\u2278' }, { '\u0338', '\u2279' }, { '\u0338', '\u2280' }, { '\u0338', '\u2281' }, { '\u0338', '\u22E0' }, { '\u0338', '\u22E1' }, { '\u0338', '\u2284' }, { '\u0338', '\u2285' }, { '\u0338', '\u2288' }, { '\u0338', '\u2289' }, { '\u0338', '\u22E2' }, { '\u0338', '\u22E3' }, { '\u0338', '\u22AC' }, { '\u0338', '\u22AD' }, { '\u0338', '\u22AE' }, { '\u0338', '\u22AF' }, { '\u0338', '\u22EA' }, { '\u0338', '\u22EB' }, { '\u0338', '\u22EC' }, { '\u0338', '\u22ED' }, { '\u3099', '\u3094' }, { '\u3099', '\u304C' }, { '\u3099', '\u304E' }, { '\u3099', '\u3050' }, { '\u3099', '\u3052' }, { '\u3099', '\u3054' }, { '\u3099', '\u3056' }, { '\u3099', '\u3058' }, { '\u3099', '\u305A' }, { '\u3099', '\u305C' }, { '\u3099', '\u305E' }, { '\u3099', '\u3060' }, { '\u3099', '\u3062' }, { '\u3099', '\u3065' }, { '\u3099', '\u3067' }, { '\u3099', '\u3069' }, { '\u3099', '\u309E' }, { '\u3099', '\u30F4' }, { '\u3099', '\u30AC' }, { '\u3099', '\u30AE' }, { '\u3099', '\u30B0' }, { '\u3099', '\u30B2' }, { '\u3099', '\u30B4' }, { '\u3099', '\u30B6' }, { '\u3099', '\u30B8' }, { '\u3099', '\u30BA' }, { '\u3099', '\u30BC' }, { '\u3099', '\u30BE' }, { '\u3099', '\u30C0' }, { '\u3099', '\u30C2' }, { '\u3099', '\u30C5' }, { '\u3099', '\u30C7' }, { '\u3099', '\u30C9' }, { '\u3099', '\u30F7' }, { '\u3099', '\u30F8' }, { '\u3099', '\u30F9' }, { '\u3099', '\u30FA' }, { '\u3099', '\u30FE' }, }; public final static char[][] singleSecond = new char[][] { { '\u0627', '\u0622' }, { '\u0627', '\u0625' }, { '\u09C7', '\u09CB' }, { '\u09C7', '\u09CC' }, { '\u0B47', '\u0B4B' }, { '\u0B47', '\u0B48' }, { '\u0B47', '\u0B4C' }, { '\u0CC6', '\u0CCA' }, { '\u0CC6', '\u0CC8' }, { '\u0D46', '\u0D4C' }, { '\u0DD9', '\u0DDC' }, { '\u0DD9', '\u0DDE' }, }; public final static int multiSecondStart = 144; public final static int singleFirstStart = 181; public final static int singleSecondStart = 391; public final static int[] composePage = new int[] { 0, 1, 2, 3, 4, -1, 5, -1, -1, 6, -1, 7, 8, 9, -1, -1, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 11, 12, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 15, -1, }; public final static int[][] composeData = new int[][] { { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 181, 182, 183, -1, -1, 0, 1, 2, 3, 4, 184, 5, 6, 7, 185, 8, 9, 10, 11, 12, 13, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, 23, 24, 25, 26, 27, 186, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 48, -1, 187, 188, 49, 189, -1, -1, 50, -1, -1, -1, -1, 190, -1, -1, -1, -1, 51, 52, 191, -1, 192, -1, -1, -1, 53, -1, -1, -1, -1, -1, 54, -1, 193, 194, 55, 195, -1, -1, 56, -1, -1, -1, -1, 196, -1, -1, -1, -1, 57, 58, 197, -1, 198, -1, -1, -1, 59, -1, -1, -1, }, { -1, -1, 60, 61, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, 63, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 64, 65, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 199, 200, -1, -1, -1, -1, 201, 202, -1, -1, -1, -1, -1, -1, 203, 204, 205, 206, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66, 67, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, -1, -1, -1, -1, -1, -1, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 209, 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 211, 212, 213, 214, -1, -1, -1, -1, 215, 216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 217, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 144, 145, 146, 147, 148, -1, 149, 150, 151, 152, 153, 165, 154, -1, -1, 155, -1, 156, -1, 170, 171, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, 157, 168, 158, 167, 161, 159, -1, -1, -1, -1, 162, 164, -1, 163, 160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 169, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, 71, -1, 72, -1, 73, -1, -1, -1, -1, -1, 74, -1, 218, -1, -1, -1, 75, -1, -1, -1, 76, -1, -1, 219, -1, 220, -1, -1, 77, -1, -1, -1, 78, -1, 79, -1, 80, -1, -1, -1, -1, -1, 81, -1, 82, -1, -1, -1, 83, -1, -1, -1, 84, 85, 86, -1, -1, 221, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, -1, -1, 223, -1, 89, 90, 224, 91, -1, 225, -1, -1, -1, 226, -1, -1, -1, -1, 92, -1, -1, -1, 227, -1, -1, -1, 228, -1, 229, -1, -1, 93, -1, -1, 230, -1, 94, 95, 231, 96, -1, 232, -1, -1, -1, 233, -1, -1, -1, -1, 97, -1, -1, -1, 234, -1, -1, -1, 235, -1, 236, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, 239, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 240, 241, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 242, 243, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 244, -1, 245, -1, -1, -1, -1, -1, -1, -1, -1, 391, 173, 392, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 246, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 247, -1, -1, 248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 249, -1, -1, -1, -1, -1, -1, -1, 250, -1, -1, 251, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 395, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 396, 397, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 252, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 174, -1, -1, -1, -1, -1, -1, -1, 99, 253, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, 398, -1, -1, -1, 100, -1, -1, -1, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 176, 399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, 101, 257, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 178, -1, -1, -1, -1, 401, -1, -1, -1, -1, -1, -1, -1, -1, -1, 102, -1, -1, 258, -1, -1, 402, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 259, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 260, 261, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, 263, -1, -1, -1, -1, -1, -1, 264, 265, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 103, 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 266, 267, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { 105, 106, 270, 271, 272, 273, 274, 275, 107, 108, 276, 277, 278, 279, 280, 281, 109, 110, -1, -1, -1, -1, -1, -1, 111, 112, -1, -1, -1, -1, -1, -1, 113, 114, 282, 283, 284, 285, 286, 287, 115, 116, 288, 289, 290, 291, 292, 293, 117, 118, -1, -1, -1, -1, -1, -1, 119, 120, -1, -1, -1, -1, -1, -1, 121, 122, -1, -1, -1, -1, -1, -1, 123, 124, -1, -1, -1, -1, -1, -1, 125, 126, -1, -1, -1, -1, -1, -1, -1, 127, -1, -1, -1, -1, -1, -1, 128, 129, 294, 295, 296, 297, 298, 299, 130, 131, 300, 301, 302, 303, 304, 305, 306, -1, -1, -1, 307, -1, -1, -1, -1, -1, -1, -1, 308, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 309, -1, -1, -1, -1, -1, -1, -1, -1, 132, -1, -1, -1, -1, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, 133, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 312, -1, 313, -1, 314, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 315, -1, 316, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, 318, -1, -1, -1, -1, 319, -1, -1, 320, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, 322, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 323, -1, -1, -1, -1, -1, -1, 324, -1, 325, -1, -1, 326, -1, -1, -1, -1, 327, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, -1, -1, 329, 330, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 331, 332, -1, -1, 333, 334, -1, -1, 335, 336, 337, 338, -1, -1, -1, -1, 339, 340, -1, -1, 341, 342, -1, -1, -1, -1, -1, -1, -1, -1, -1, 343, 344, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, -1, -1, -1, -1, -1, 346, 347, -1, 348, -1, -1, -1, -1, -1, -1, 349, 350, 351, 352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }, { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, -1, 354, -1, 355, -1, 356, -1, 357, -1, 358, -1, 359, -1, 360, -1, 361, -1, 362, -1, 363, -1, 364, -1, 365, -1, -1, 366, -1, 367, -1, 368, -1, -1, -1, -1, -1, -1, 134, -1, -1, 135, -1, -1, 136, -1, -1, 137, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 179, 180, -1, -1, 369, -1, -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, -1, -1, 371, -1, 372, -1, 373, -1, 374, -1, 375, -1, 376, -1, 377, -1, 378, -1, 379, -1, 380, -1, 381, -1, 382, -1, -1, 383, -1, 384, -1, 385, -1, -1, -1, -1, -1, -1, 139, -1, -1, 140, -1, -1, 141, -1, -1, 142, -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 386, 387, 388, 389, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 390, -1, -1, }, }; } libidn-1.28/java/src/main/java/gnu/inet/encoding/Makefile.am0000644000000000000000000000216512154037246020533 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . JAVAROOT = $(top_builddir)/java/src/main/java if JAVA dist_noinst_JAVA = \ CombiningClass.java \ Composition.java \ DecompositionKeys.java \ DecompositionMappings.java \ IDNA.java \ IDNAException.java \ NFKC.java \ Punycode.java \ PunycodeException.java \ RangeSet.java \ RFC3454.java \ Stringprep.java \ StringprepException.java endif libidn-1.28/java/src/main/java/gnu/inet/encoding/Makefile.in0000644000000000000000000012420012167244661020544 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java/gnu/inet/encoding DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(am__dist_noinst_JAVA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_noinst_JAVA_DIST = CombiningClass.java Composition.java \ DecompositionKeys.java DecompositionMappings.java IDNA.java \ IDNAException.java NFKC.java Punycode.java \ PunycodeException.java RangeSet.java RFC3454.java \ Stringprep.java StringprepException.java JAVAC = javac CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"} am__java_sources = $(dist_noinst_JAVA) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ JAVAROOT = $(top_builddir)/java/src/main/java @JAVA_TRUE@dist_noinst_JAVA = \ @JAVA_TRUE@ CombiningClass.java \ @JAVA_TRUE@ Composition.java \ @JAVA_TRUE@ DecompositionKeys.java \ @JAVA_TRUE@ DecompositionMappings.java \ @JAVA_TRUE@ IDNA.java \ @JAVA_TRUE@ IDNAException.java \ @JAVA_TRUE@ NFKC.java \ @JAVA_TRUE@ Punycode.java \ @JAVA_TRUE@ PunycodeException.java \ @JAVA_TRUE@ RangeSet.java \ @JAVA_TRUE@ RFC3454.java \ @JAVA_TRUE@ Stringprep.java \ @JAVA_TRUE@ StringprepException.java all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/encoding/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/encoding/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs classnoinst.stamp: $(am__java_sources) @list1='$?'; list2=; if test -n "$$list1"; then \ for p in $$list1; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ list2="$$list2 $$d$$p"; \ done; \ echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) '"$$list2"; \ $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) $$list2; \ else :; fi echo timestamp > $@ clean-noinstJAVA: -rm -f *.class classnoinst.stamp tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile classnoinst.stamp installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstJAVA mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-noinstJAVA cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/main/java/gnu/inet/Makefile.am0000644000000000000000000000143112153706572016744 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = encoding libidn-1.28/java/src/main/java/gnu/inet/Makefile.in0000644000000000000000000013562312167244661016771 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java/gnu/inet DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = encoding all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/gnu/inet/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/main/java/gnu/Makefile.am0000644000000000000000000000142512153706572016010 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = inet libidn-1.28/java/src/main/java/gnu/Makefile.in0000644000000000000000000013560012167244661016025 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java/gnu DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = inet all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/gnu/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/gnu/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/main/java/Makefile.am0000644000000000000000000000170712153707562015222 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = gnu . INSTALL_TARGETS = if JAVA # Invoked by ../doc/java/Makefile. .PHONY: javadoc javadoc: cd $(srcdir) && \ $(GJDOC) -d $(top_builddir)/doc/java gnu/inet/encoding/*.java endif libidn-1.28/java/src/main/java/Makefile.in0000644000000000000000000013610412167244661015234 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main/java DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = gnu . INSTALL_TARGETS = all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/java/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am # Invoked by ../doc/java/Makefile. @JAVA_TRUE@.PHONY: javadoc @JAVA_TRUE@javadoc: @JAVA_TRUE@ cd $(srcdir) && \ @JAVA_TRUE@ $(GJDOC) -d $(top_builddir)/doc/java gnu/inet/encoding/*.java # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/main/Makefile.am0000644000000000000000000000142512153706572014276 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = java libidn-1.28/java/src/main/Makefile.in0000644000000000000000000013554512167244661014323 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/main DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = java all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/main/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/main/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/Makefile.am0000644000000000000000000000143712153706572013355 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = main test util libidn-1.28/java/src/test/0000755000000000000000000000000012167253755012360 500000000000000libidn-1.28/java/src/test/java/0000755000000000000000000000000012167253755013301 500000000000000libidn-1.28/java/src/test/java/Makefile.am0000644000000000000000000000172612153707052015250 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . JAVAROOT = $(top_builddir)/java/src/test/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/libidn-$(VERSION).jar:$(top_srcdir)/java/libidn-$(VERSION).jar if JAVA dist_noinst_JAVA = endif libidn-1.28/java/src/test/java/Makefile.in0000644000000000000000000012271112167244662015267 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/test/java DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(dist_noinst_JAVA) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac JAVAC = javac CLASSPATH_ENV = CLASSPATH=$(JAVAROOT):$(srcdir)/$(JAVAROOT)$${CLASSPATH:+":$$CLASSPATH"} am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ JAVAROOT = $(top_builddir)/java/src/test/java AM_JAVACFLAGS = -classpath $(top_builddir)/java/libidn-$(VERSION).jar:$(top_srcdir)/java/libidn-$(VERSION).jar @JAVA_TRUE@dist_noinst_JAVA = all: all-am .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/test/java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/test/java/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs classnoinst.stamp: $(am__java_sources) @list1='$?'; list2=; if test -n "$$list1"; then \ for p in $$list1; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ list2="$$list2 $$d$$p"; \ done; \ echo '$(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) '"$$list2"; \ $(CLASSPATH_ENV) $(JAVAC) -d $(JAVAROOT) $(AM_JAVACFLAGS) $(JAVACFLAGS) $$list2; \ else :; fi echo timestamp > $@ clean-noinstJAVA: -rm -f *.class classnoinst.stamp tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool clean-noinstJAVA mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ clean-noinstJAVA cscopelist-am ctags-am distclean \ distclean-generic distclean-libtool distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \ uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/test/Makefile.am0000644000000000000000000000142512153706572014331 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = java libidn-1.28/java/src/test/Makefile.in0000644000000000000000000013554512167244661014356 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src/test DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = java all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/test/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/test/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/src/Makefile.in0000644000000000000000000013554012167244661013372 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = java/src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = main test util all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile installdirs: installdirs-recursive installdirs-am: install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-generic distclean-libtool \ distclean-tags distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ ps ps-am tags tags-am uninstall uninstall-am # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/java/libidn-1.28.jar0000644000000000000000000034112512167245630013056 00000000000000PKnB META-INF/PKPKnBMETA-INF/MANIFEST.MFMLK-. K-*ϳR03r.JM,IMu +h)f&W+x%irrPKRGGPKnB&gnu/inet/encoding/CombiningClass.classxTz{4(B4JGқE RUHU9<CoggfQ<ήc:qj8Ý`'w91 O7q}%R$IJIH !)1_f0 CP0 n` Fz'Mz/O҇(}>Nc8:N$:NOҩtNgЙt}>Mg9t.Gt!]D%t)}. >KU"]M_kZL_ &}MߡtHߣtL?[V1Ft'EwO3~z~N/!zG1z~I'-~O?ҟ+Nn|3//.Sa DHrh1  (  ( %A)PeA9PTA%PTUA&j:.!h&)h%hZ6-hڃ#:.n54H ɠ/H@*HA:2@{];hcL&M|5qmb~_^ ǚgr 渉fA6m[¶Y[8] rx+ͦW\ ^Ѷm  l`s2́am5yn|mitnmm[ӶǚVi [v}BV.],eS,{J(%aVkV_+UX_L*BʮTq(Xa2l*/Bȅ}U4V j+/Ā< /cmU;n( "((ؓ[jIP e@YP@EP TU@UawoUWk ꀺh hZh ڀh:  \ n;zk \z 7@"H}@2 R@? @  0 C0p `$nw.z7c>z?}>HG18}x:Nd:>Iit:AgY)4MйtOЅt]LХ.+J,}>OWt5}k:2}J_7-6}K t#}O?Mt3n[tNwНtM?9=Hazq%_o;=H?_Qq;C>VJ' ;ڈF=޿PK徝 qPKnB#gnu/inet/encoding/Composition.class\eGucp- 1$I`H6 ,,'!rы^C<wN꽚a}W_'{׽s(t yN  ı{#)KV ZV8Y'Nђ+#\y5rFMLH7&V,%( ^R[Q];b,c.e*C[Q`a͒+NVVPrVUW/$!53u1UՕ.^xb8c~dᄚgh)YU[US{nŲb )vbiYrZ }t}*g]G׊̯м7}nZtr@Wkyl9:NcIuSYusZyZ9WQcNqG8!$ 29ys*>)W %*t>4R!Jd'gKts/G&*ZƵm*ԞBFB]8؊!+Dvd7C]ZqCPO4ӌ3Hd7{n5~D@W37.4B DwTJVT `C}VV~~񙵍 h J~+[6M+L DcQKOәﻢ"#])~H>`84iF9<#MFŲɋ/1/^f0/0/Ʊaɋ5&/ 4ɋbyy`)1^+qDȼXT'&$l) 4X{ml&`lT7'>MKڴ"& 9r[BJI5̌0?Ft SgJ%[y3M:f\fS[&o`JT]/hjFa sۙBˌgɞTKZ c P$΃PWS ¼<)P#uy4l*cMmǣt3_w T}!w;&?jn[(V',OXxJ|b&Z+w)=t/brȿ|d|d0i0WbLZlYR,ωN*oQog;!1VǷ]|+L+M Bck϶]1!Fr5Kځu(ӁZ|<|ϔȔ˔ذ$O& 4ITF3"IR1x0?/.\8yTDY`y`mbNؾ&`l[p-7?%U͌o5T+^Znq3UTƫXcIEs{9+s7QsgsgA8fǴ\ff,ZmrgI8n5On@kȾFVPn=!٨0R}W8>4> ~cF=⻁Q|jFxnwOٌLiFWC^6ȯ=Y3"U(+yJnȈ^3$륔:TG(]nJl'i5^[JғKʫyF}ddYQKUwhwB՗Pz߯I˿(Ij0Pm>%! gr*RE(zgtʸک\&3CԔBefJ@*n.Y);nBT ̒Z@GU+Be3Z蚠GnC9e܎2UǻO|jPe@\_ZdDZ^U6ϗVHi(^vQZIFK TTujB՚T[P #TR@-ّ\tk|7WCb_Z'Ji⥝ iK|i=)WFv&Ҷ-3"O mGidDw.lM%3{$JvQ2JVJPɠ( JVFljW  j50PGѤƀ: BFj,^A.. +@=W2JJ`_d*%j%9w23#Rfj[kAm6;^ۅvm.ψxmWPayԶ #j]Im e*sr/)#ez IŖΪ"?_bRO29S4cy?OROFRvxKXt]˶iɱFۢbT_b~V)fV}@mc/-;_@mgQ-wPѢFfXz <6N9cX#VjQEwEj *jE1 [LN0Tѫxu/@2T$P#AP,'1T`P%ggl w]CRegrr9+- rWYܗ䮶]cg{k-n ,n-n<,nr7ZDr7Y$r7[^njq⦒⦑LiqaqUcq?Lgqfﷸ=`q7{n!Fa#wG-nrYܽ=aq{! o~&By _|ϖŁoN.-m1]o) 4b-h",I-\Ud8M?B=}/'F1%kZdQ9݅YY^yv;zyy^yiA_H,ĿERJdFKRjT1 )9%5 - $<<=Xc{dh3 +;'` @/ހ>TVw+=Np n7p`X%wPF讗&1`k6m00P> ƪNxgg.::F C8Ð2õ$H(hwcQcG`<3`w4`Gq6+{F6p7-8uTi ÖݖǶm4Ҟab[; yKm6uи@vX-;i5.]4.B+eWyvd [K|N|EKė8"aV|5 ķdw$K|CO?=c) }F\n|%+otxp_}K=?qIu(q~%F]?|_\Ohy]Z_.Nv    wKƻQ?LL{FO*+s f' L@%``6`rq=`z@5Ѝ8`  ʼ,[JC6p7mCirX=O{p#G պݵ77`n vpl7`ď?qZ Uki)]U$lManRΩo=ph=h=pi=|Z5ZՀuj@ nnTݍzog&Mۗu]lM݀),MnvMn݀sim7m)\AV"$7gkkkD|;_tӓmbEmY k%- cVhay]`Ȕl[֞`YJ“u4e/n2fk6aJ`Fc7݀+q_ь뼰3vӴb[c%ː+qJʍgҍ/.X~Itd ~XϏ4YVْX` I%Տ89 G&&x,g%رn!+q`Ʌؒʤ)iZ2aƛkbO8`n cv7+S"~ٰ|yu[| voM?s6CVDF7e%iJ4sqĘevf9FD!=lS4>h}ȗr6=O51%JIJ\זu۶o˅u\疋aJa$:+HU4$U .kaJ[(KR#\ Cġw%+M)qğ6y%mf'FqX4k1Ec{XܦmyPKlCPKnB)gnu/inet/encoding/DecompositionKeys.classdwUmBH """" X` *X+V,{]7P)"V߸_uk;}gsIwŃ`]Er^h0{@ (!%ĔRS JI(+M((#(R6lNق%e+֔m(RAَ=eLPV)SeʌrOʎ{QvLم+e7=(s:eAٓeoʽ)PGe})PG9rAPHÔP>JOP>IӔP>K/PH˔PJoPI-EoS.|](ߧCʏ(?S(P.r)\AJʯ)WQ~C[5Qrz(@rO?SBW-QnFr;)E'_SC/)KJMi(-Vo o o o o o o Po `n `n `n `n `n n ܖ m Җ0l Ö0l Ök k k k k k k k k k k k k k k k k k k k k k k k k k k k k <КZ@khy5RRӪyZ5OhhhF;5ϨhF;5کyd5<hB=rc4ڣFX}7Y{hWOm8 lݭ>A=q'iWkOͭ>E[7ZzvhaD nvhOO6k'4 nvhojpm4 n}?1e홣>KZ{>V_o99Z}V^0jHڋG?X ^AC ڹ@{̞_1:JFZA@k׍D;OADP7L{a(HB{!mioW1:vёw)(=%hSP?:+FM==1?>z$ 6rt S 6z(glAѴ)ؒch_PҾ`kGҾ`WG}MO{п9zBѿ5z""ӿ=zbcwFO}WShWJ8L?O5OF'~`F'.Q0_::s_6z* v_>:K;ӯ=+ЯB]WNFnGOVkF~`g~`Nnt:z?ΠQFgnT3iR7ϣgGϦU>[Fg`_i)shw(؟9;ܗsiw)8hRp?GϧG^@wTb=?Zv"Z~bk@-(ClRzϥ 8peL'. COp;Mp FH*ှVaNV񁾥OqNOOp};`{#}L$U`jH);Z3 8D5p :]p] >pݍB=pш, K=p Op{(0)41pW kHF?PG&~L(8X&x!~NM cPùu/}%Jc>~W><@! @x+Ã~V>GtE#wTĚ>GYXg59<6=s&0>Wkr<&+bM_DBE<Hkpb(—(b _Ex"e>R/WgXWH"֮59_+|yXAOF;7)rf;·(B>voU÷]cGx"46Oݶߣ$|"ǒzAK)B7?QÏn|SÏ~BZ?cK)Eh$-g? Eh#5>ք_QUk¯)vX57; ǚB&H} /Vk*vX5;ǚݜǚNJ5O3kKu5?e>քP~} >WXJ}&b*ۼQ̺^m8YSk| 55ǞǞzǞǞFcO'Ǟ/Y›} {¿)v8Ǟ6gޡ>w*f- cOxbֲ>Rpo{(v8=;cOT>b֮'v=@1kUYǞ(VZ%>Db֪hcO)fL\Db֪AT)֕"?ўJAR12s}-FAr>P"?сBd :H9\L\D+ Atrkd :L95zBtёwd :J9L\DSL\DPL\D(^z\D \D֊{~zV3< =??ћ{=h;_{Do&6]Y] ;G.mѻGm{G>mGGmp#6#6#6q}By> _{Dw?=i\>=/hG%mp\ ~_{D_w=oh;х[#H|_{Dk}Wc{#߽?Ԙ_D?֘}#~1/.ј]Ak̞]A_h~]A_jLx,ľǢ_kL싮$o4&EWky_DӘ&_Dט&_DkLI?jLn$э5I'}џ5I}$ľMMcb_t&nӘI;4&E$ѝk.ٿk_"?4&EiL(Rcb_Tkј%4&EF_ġľ8(q1xQLc|%.4ƗqQJc-^(& %iLQM5of%\cb_FԘoQ5&kx[y=5Jļx{5&jL̋%^;kx11/Fw~(Nxg11/_Ļi5JxQuu_{j̾Q5&(>}5J>%_crK|_1.FԘ\_iL9֘?P!s1.~f,a(tstnԘ\?T4&G+ts0[pn1.~B7GhGk1'~)>_ďǏ84&O84&O8S4&kx3 '>QcqjLO84&ŧkTm5N|'>]cq35f?ѳ4fYg+ts_s9z+~B7Gט#~B7G/Ԙ&?n^1Ybn^1-~B7GjLn_5&ůPW)tsjmk9zu 1-~B7GoИQ7iLn߬[4ƿ Ucr[6nޮ1-~B7GhLnߩѻ4&V=*ts>m9 }Hcr[an>1-B7GӘ} B7GИROi~Zh~Vi~^/h~Q/i~YhLn4&_Wo*tst[ ]1-B7GkLn͑O#?HnG mO92)tsd'ŗ*tsd'ŗ)tsd'ŗ+tsd'W(tsd'W*tsd'W)tsd'W+tsd'(tsd'*tsd')tsd'POnoPOnoROn͑,Y#?}|B7Gr[|B7Gr[|B7Gr[wn m?92+tsd'x>nn䮸VϾ \]qJ$P\%rW)d?+I2W}3*d?+13WܕOJUb'w%*1&*1?s]J\%rWbg?+13WܕOHUb'w%*1?s]J\%rWbg?vbg?+13WܕOJUb'w%*1?s]J\%rWbg?+13WܕOJUb'w%?+1C?+1s]OJeb'w%21?s]LOJn.OJ]ͥܕ\]ͥܕ\]ͥܕ\]ͥܕ\]e?+yLb'w%g$rWLcOJ,]2ܕ,]e?+yLb'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsi'w%7rWbwsME4!%7_Є\\~IrQbwsME4!%7Є\\^ (1\r&pŚ%Մ\|.&p5!%??K~ (1&MEɥt5!%%Є\\LRrQr1]+MEɕtɯ5!%7ф\\VrObws;M=5!$7kBIn. '1QrObws'M5_4!$7Մ\\MrMbwsy&M5坚k˻4!$7҄\\GrMbws?M5RrMbwshBIn.;M5t &5skR?i &5skR?i &5skRsVkE}&t">iBIO7Մ\nO7ׄ\nOԄ\nOք\nOՄ\Csn &^s5aoJ'tUrM:Uܧkk1LrMzOE}&^t'M5ΊtM5鮊t7M5tM5\skBnItOM-^toM-1>[}q %"5!UĹHЄ\O"=PrIzE M%q.҃5!TĹHф\>H"=TrI`EiB.IpM%87鑚C҇*ܤGiBHVĹI 9#}"MM#qnc4!WRĹI "}"MXM鱊874!WWĹI "}"M$MqnҧhBHSĹIׄ\s "=I&}&dE];7iBHȝ5!Wg(rLM3s,Mss&lE}&9;WrD2嚐#W(r#WքF;Մ<>=OrDzE\ArDFM7+r-sVM svM ;sz&c4!'Hߣ 9!}"~OrB~u҄~X{ф~T4!'WC M 's)M ONH?ȽrByE sl''_Vα~U~]~S;rB-E sn''Qι~O;rBE sn''?QιL^ȝ{?9!L^qONHPCj''W*r\0ҫq Պ'ErBz" ?9!NAޠqONHoR8a''V8a''7+r0[9N 魊'vErBwErBErBOErBoErB_ErBz" ? 9NiqO.H{Epbh' 1\0\0L瑆rpn an 䂡n ƿo' pdh' ?654 824 824 824Y 䀡04Ù0O 䀡 TC?9`hCC?9`hCC?9`XO?54u kh' s]C?9`Ϟ?Ϟ?khgϞ?Ϟ?4å=x~~@~ ~hSC?{N Çw C?54pkhg^?4í~ȏn 's C?864O64pmhgo>4õ=}hkC?{׆ g C?Ӈ C?Ӈ/p/YӇ08|VYˇ/fD,×_UVܯ^U_+:>|ի2>|k~׹_UݯޠUݯޤUݯޢUVWo* Do* Dhphwipn{B8|}Ze!?U֫*Ïh=+?U+?U8>?8Vohu`hiu`h/hu`h/i}M\ Ut6~M|hohM|xVM|xVMk$`]:̿Ug`lw0VM?ժI:Uc/`lw0VMҪ_߯{ȍoX{jՑ7HӪ_8{Ɨ~VgQ7l|7jq/OZu\Ɨ:޼Ul|Ӫ_mZu\}KCԪ_]h~>k/M4;GSwcԍyl;zwFSwZa{zl)if,bMɽY?7{_g{| MɽY?nU{3;6єܛmFr3m{p5%f[og[jJͶͶ֔m?m)96\nl{l)96f?t4%f;lLSrjf~ǫَS3;^vҔj`(3l7MNf~ǫ;ƿ)933s)93k^ޚmzG>3}ew)23M-gj 2h9;HS8=`"3;efw,)X:;LSRafvᚲ5eGxeGjU3KX;;JSݱv0Mb2;))-3cMIYkg֔-!3c챚؍/q'h V'/7dOҔTݱ|MI5gkJ,cDMI5gO,g'OqgOӔT?ŝ)&{wv)&;;;SSRMLYj2KlYj2;[AM@v"칚jm<=הT@[BBMI5-!{ŊhJ,ݳ%djJ^-!{=kBJMI5٫qZSRM)쵚jOgiJ^jeoДT*={O[4%dojJ޶]SRM{0{.ManŬ#{4%dU iJޯ*fQf>)>dQfU(1Meq|BSD}R4E٧Ih(OgQfϾ)̾n_Qf_Ͼ)̾q޿)̾QfTzlٷ;^)JmŎk/Q{M̾;Pk}bGkͽ?QTkuL1%ZsK .S( ybG_jͽOW(vήT(k9]؝h[j&f255ǃk;J^k_Qz&fԚ;7(v&,ٟϊݬZswbGi߭MnӚ;ߡ57_W(C{_Қ*v˿"[1"W{5n}Zjm';7ZcZ&ff^1Zch ƺG@kx Oƺ<Zsx /ƹKWMG IHk\YMƜ)ZFtboxm|[C1so;-X3嫚)G=_ 4;1i{1Q3И/N|g8h]hwcf1+1_ 4 \4{j3ޚފQ`ffbG1#W1 Ќ律#_1Ah 4TEc~fn \4jVEc~f1b.5 @1C4csј?L3И?!(f1bh% 4Qjci+F4OT'iɟ%Oь%kFO_@OԌ俀?U3V~R4)Qr~fȝG/b7skPL3{fيܝA"?[hFQ$)vs|͸_ 5B&?n^2{f\/U\͸_5&b7wԌ UܽZ3.`rSjLnwswf\~7woЌ M͊ܽE3ԕ[5%b7wo׌  _q+f\~7wь }q}@3.XrSiKnws͸PMn>('4$7fKV3rSiƽDnws͸ȿݗ4^"7f_Uk94}C3fS 5sh6H3n"rS5&"7fD~7w׌qX3n"rSjF6Mn.ь,'9^W9^W9^J+GI%f~7ǿqj4jFϯo;๩5#`_<_5?jFod~f=7`I3ynw/}<oymsS;WwhF M\ݩ<7suf~<7sX:f}0sԌ-}ҲfU9@3^eE5#>_4X3^e`U* ?4U&( ͈_ThF<.6 V4OY@fb3kS+nfLU!*qV30¼+"\L S?{I1_/L%La'T d ? ɟ<[^ɳŮ~/LbwO-L@0s*.хh{k XVvhi XVvqohhVq &U9y0`C4'&U9y00hkΘ&U90(fZ4g*L@x,hhhh֜|UVXӜ9y6w9K/hN^*]|IsRaw5KohN^*]\9ywqŚo{՜T|ۻC )qǚRo?՜RDsBJq6xs )e/4'oԜR\ ^JsBJq6xk )Uo4'Wo՜R\ ^NsBJq6x{ )uR ܫԜRX^QsBJqx' )şŋhNH),sVUsBJa{oR ȻMsBJaCsBJaSsBJaKsBJO%ҜR[4'U? )JRZr9!h8.wR^ \.R@ \.C )e.愔2QTsBJ9TLsBJ+e9!,ҜR(&R Jr9ҜRJ \.7՜Rn.kNH)P-5'[)֚Rmr[ )=r; )Jr9֜RNrUsBJ9U5 )Jr9ӜRS \.wԜRK \.w?;+.rW%pMs\.{hNH)Jr9!\(垚Rʽro )录r )Jr愔>Jr愔Jry愔~Jry愔Jri'PK?!|\ )僔OH).BJ%p4R#OH).BJy\ )ÕOH).BJ(%p4R(˥R.BJx%p4R'*˥R>Y \.8%p4_.d%p4ė(˥%|\Yg(˥%[ \.Jrig-QK?{m<%p4/PK?{kJrig,_.Jrig,_.Jrig,_.5Jrig,_.Jrig,ߨ.Jrig,WK?{f6%p4gPK?{fN%p4gVK?{f^%p4gWK?{fA%p4gVK?{fQ%p4gWK?{fI%p4gVK?{fY%p4gWK?{fE%p4g_Vlg,qϞY~]=e?{f-%Jw8.3)q\6g?Plg,qϞYD=e?{fye?{fye?{fye?{fye?{fye?{fye?{fye?{fye?{fye?{fye?{f%%&%JJ-JJo:/oZwG;(ʻ(cweѺ;UfGiݝ"RԘSbwNjWs *?ԮB3jW֙*m*:S]vi)P*Vf]UZgJ+?Ԯ6:SXv5:SWv֙͵Tf]mu2Cjk+?Ԯ:O2Cj;+?ԮZ)Wf]jZvujeL<sPIc.ZΕjWi:Wf:4kWf]uhV?֡Wew>ZVjWi:Uf]uhTvu֡OeՁZ6jWiTf]uhRvu֙C-*?Ԯ:tP:\#iP:J^ôPz9}߽ciPz9m߽:)kQiW*?ԮuR[ewSNJP:^뤴޷NPzI ߽O:)2CT*{_O:)2CtWf>ugiS~l9jWт-2\-r*?Ԯ[NewZiSv-Oew\-Oe˵?=WjSvj-r*{Ղ-2C<-r*?Ԯޠ[Ne՛`˩Pzl9jWoՂ-2CZTf77hSܼK hSO ZTf]}H #ZTf7Wӂ-2s;P}B x\ݜ}J 3Z@9-r*/h+/iST_ӂ-2s;P}C x^.Ԃ-2s;P]ٟہb-r*?wp7s;P}_ @C-T?ւ-2s;PT ?%ZTfnk`vl9ٟہZ8_~[NevfnhS~[Nev/fnkS`˩T7jcvl9ߝhSݹl9ߝiSݹM v%TwhSJ8/-r*pRZ8ݭہj[NU+vjpkTYl9+RnVB-JہX |(v`%Ղ-geہL +v`?JX`YYQ&ZǬlPH )v`eS-cV6SZǬlہ-`YJ)+[kRnVՂ=fJXN r;2ւ=feہU-cVJXYӂ=fe̴`YRnVvԂ=f^JXI r;1+*v`e7-cVvWZmʺ%+ ;+{)`eo-KVۃ}`/YW)+i^r{}r{r%+SʁZ֯{p`-KV[+h^ :\9T aZ<ޯ=˕#pH\9CL[%]rwtOΑ.;:W'I/c K.E%wG钻Kel}rt2>BJ[\%]rwtO.;V'I]/cKnM%wG7钻[el}rt2>CN[%]rwtO.;W'I/c%wGt2W[]']rwI=.c%wGOt2>#]rwI=/c %wG/t2"]rwI.c%wGol2][]|=PV׏|},c'>>3GϷ/elu2~[[]u?L#c5h4e̺-_YנkЕ1g}vm01L]L+c5+@Ƭk3WYgYgb\2 3WA)c?sE0U}2 3Wؾ/\ cs3z>3O=eln`V۟?`63}]#o_1H 9e<6;˘y$-c|(G#ߎʘy$mS0G_ 1H۳`!3 `\%`Q\%۹`1\%1Ks-!cҵ_ߞ g~ {.%_ߞ g~ {.%`E?Ks/o 3='sy?UߞJs࿽sy^?s\{Nfr4G9s28 ωYQ{Λ樍sdvGkО&s8J4Q!=NhsdGa&:6_;6] 8ڢ6[ 9ʢ6Y86W:<"MQ~'}⎢(>d GO?H&(M-Q"}%%QMҎ(M2(J&v9GCI&vyGAK&vG?o?o*ҷ]Qe5Į膲mbtTCYK6k;S68VP֗MZ(J&v#G+oʦҷ esnᨄ ek9O6;Z\ } O.MŎ'HߦRGˤo~ҷiQ*۴_{rmگu=N6;ڞ }eOnM͎'HߦVGՓ}vGӓ;o]p]ҷ.[yr w5ŧF'IߚsG/oMWҷQ| KIߚ{GϦp8kHMᚎ*ZgSɹ(r'}6;zHMᆎHMu87;Gs#.rt8GsT8g\"}Keg\!}+Ug~$}PDl7ϖq392nfGqsH-fu6g˸Ll7K-p6 eܜ>[ƍMϖqs;2nGas>[kn>e~-}[܂g˸e-,}[oϖq:2n1GSs/[-(je˸%=́lGGMs௵̟-w[Qk9:hGEsur_́A+8Vr3ZhgZQj~q;tT3ZChfZQk 9jG-s5FV_kḾP9:pT2r42ZCm(dYkP;8vr1ZC(ck 9j/Gs5>"_k=7swou9G sa_1h`v;Qkv9?_kˁn':>_kˁn:Nw4/Z(^v;ѻkvv9|Grq:J.vt.Z]\Ѹkwp9׺jGruߵ_mˁ}7:ʖnvt-wQmҷfѴkxh9ךnGr5㽎_k-ˁ֌:Jvt,Z3>Xf|Qkb9ךIGr5ӎN_kg=G=T|њk&9zUGMr뎚_75Ɂ֛o;j7u$7w$Zo~IQkZo~IQW׎_ko5Ɂ֪;j٪:&)Vզ&)Vն&)Vծ6I W lVj@0UUIGgj WAYRP N%ٱk0[VSmЗ fj lZ-Ac~NIbvXt&>N JlkA&:6M ufmЛ@fg묨lmM4':6N &umНPfwڠ<)ֱ6hO ,unmЗ\f<ڠ0)yAcR-kʤ@3{\;B/ },lz]D&)̶>'Hg. l|]B4'GmgR0K}l~]Z%6K Lu9mPfڠ1)@+hʤG~]It&temPU>VIk.]]sU6M \2X['m ?oEIח Aw e`b#mPtcغD'T.6I7->M_nЭe`bmРt[غNv^.vPAwn/Нe`bO]e`b7Oe`bO=e`b/toغGT'ģ RAne` u`:9D6=TNS=GRW@#AWѣd`hmPغ9Vv lG6=NnW=GOAVO|=IN=JOSAd`tm0[2ut6Rz l ʓ#[GjA} d`BmП"غX(D. J/˵A+d`JmС*غZ(F-JA|6Qz lݬ "[gj&ڠJ2uv6(Oz lݭ ړ#[gjڠ?2u6(P l= ? *OJǵAk'd`ImP)غ{Z&}FIAsd`EmP%غ{Yt'} ʓ?[_Iߐ7A}ҷd`mmПغ|WwڠA2u6P l]~ :~?U_?%J?ϵA/d`KmP+:Z l~ ~'[k&?Ȁ4FT!Ӹ Sܒi)Ȁ4OqO\1O2: To9?)^2xz S1O_ר?)^KܧbTxz ә1Oik1OM7?=)޴xz Ӕb` S1OW?e)޾ԥxz ӗ]1Oaw?>Txz S}1OK?5)/?=)>z ӔccUR|L=iK1O]1O_O?)Ɂ"ŧcB S31OKr"I9'?̉'?9z ӓb\zR|E=IU'cP ӓ1OOo?('bQzP|W=A='7c🜋zP@=AC'Wcb Ӄ1Or2ASc?WzO}/c9)~En {1Oߨ?'~'cWzOA==GğȀ\zOY==9{1Oc OI$?sC{N=jI_dPڤ$?sE269ɨڤ$'HgH69XgIRmsڤ$?sIRjTx69 ϜXdz<69O ڤ$3㙴IIdfmkYڤ$?sN265ڤ$?sO261/ڤ$?sP2&=&㹵IIdm[_yIoId~m[_IoId!m["ڤ$?sT6)obڤ$NjkYڤ$&=%S=6) ,MzJT=^ZxmKerڤ$?s[6% ܖMzIUוI/IQI/IdUmK9.Y]gK&=$?&=$uIIzڤ$?s\6! lMzH3%hqfڤ$?s\6! lMzF3%hqvڤg$?s\6 MzF3%hqnڤW$?s\6 MzE3%h^q~ڤW$?s\r6 MzE3%h^qaڤW$?s\r6 MzE3%Gk^qɱڤW$?s\m+9.9^gKN&"㒓IHTm+9.9]gK&"㒳IH\m+9.9_gK.&"㒋IHRm+9.\gK&"㒫IHZm+9.^gKn&"㒛IHVm#9.]gK&s~3%wk={qdNAm2''?s\6{9.yḎ o?V <+Cyڿ^?Ӂ2dOr#='7C}Jr#[)ozD^ףdHoHc|J|FzW)On''7ғdHHSN((ɍ,RH(ɍ>C>}J|Jc>࿭'|JS>qwR߸/)ox7nK 7^߸Zƍ7|>I[>qOR8^߀ Czm ۾#)o'>|z ӋrNӋrNӋrNӋrNӋu1O/C9}0?>>>>>>>>>>>>>>>>>>}gnۇzz} S?,me9oO} g;OOϪ}?=-mi9oOO>s1_V_Qg?=.9Oo~ m 2}7=^"C۾s=🞗ھdhOo۾s=}O_??m9o OB=K篈co}??m9o&O7۾ sMu=9o*OW۾ sj>VUѩ]m^=][ |=Ŕz<Ũڦ?"6NB"VgH~NHM/.k_R>_L6fn.]Lm'~Ԯ.f]̤vnS?ڦW.f6??lڦ?R̮mzY+ڦ?R̩mzY1ybmzY3ڦ{m )6Ol_.6ɝbm )6ɝbm )6ɝb1m )6ɝb m )mzY;şM/+rXR'wM/+{eM(rXN[^[AWwJڦ?SmzX;Ūڦ?SmzHωkjRU6ύhQ[6X_H M(6iQl,s&ڦwʹm}ϙ[hQlY6=غomzFm=N'7M(v;i^QhŮx7m#ڦ7{㽴M?[죶'M/(iP\6=8m'õ͜_Q6s~qT=>Z1XmO6s}q\=>^ Dm3'㓵\_ũf/Nǧk98mz| 98W%y|m3 _\T/6s{3wj9_mg)6syqU=Z\R\mz| 9QMfm3?sKqˋf./wj߭mg)6syq_=_Am3ㇵ^E#f/W6sxX=~\Im3w?sT񴶙gf.kxmUmzf.ިojӊ]S6sw^=~_Cm3w?s]񱶙Of.>ǟkmg,6swM=Vw{m3w?q9K?sc6sw٪mm3Wz 3Wz 3?sf 3WS1\1\[gn.gn.eR2?ss 3ǖ?spYcxz s.?[ܗ1}i=Y1\%\1\%I=_c9U=kJ?sx 3?sWyg)?sM 3?sMz 3ה?slz 3ǖ?s~ 3ǖ?sl 3?sjT=SKP̩gN-zA 37?sb{%\Xg.,WyC%o| J9\gN+g.+}~,rCJ9ﻩϿ%owsJ9g+g+;'(r1K!ܙ]ŎJ];B(~Fro#g+;B(~+bG%o%8Gg+ѽC}-~F_>@?#Ky%R} 3rZ/Q[1}zܧ߈v do} ܧW UK̷+p_u~j_~_kMP ~j_ME5v{th_,{iVi_*֎=iRp}NCk^sR;SUsjvՏ9Hc9C5vifۤ~5v8-if9լڡW>M; 4Vk_j+pXͩzsvy9<ڡW>籚W;j>E5vկMjQ-o۶ZtQ-zEvضoMbaU7]Tk_tQ-zEGoo_MՒڱ>YtQ-zWEvղj9.CoVZtQzEv*jUpU.յc}ZS;j-Ev?M:ڡW.C7]Th_mo6tQmzL;bB*-MVڡW[.mCﯶ7]T۩}~EA;jGEvj]MnڡW.=C7]T{i_otQz:@;@EuvCMajYm:\; }H(ۇ:tZzoXMڡW'>:DVa)TMڡWgʪ3C7Wgk_o.:\zu)P;"Spuv%RMڡWW+Cﯮ7WWk_]oJߔV]zu)Q;&Spuv-&VMڡWwժ;C7Uwk_o ߴVݯzizP;!ZvMk#ڡW7Uj_=o z\=z)zZ;Spvsyt^7W/j_o ^z\z)z]; Spv[mwMջڡWC>7Wj_}o >\}z)\; SpvWk7Wߪ}l)^;BOF; BOmj?%Sm=BOiS2T &N)TП?u$SσL!է"SH?R}*O럚R}*O럚R}*OZȔis%L3Ms8;M=#9PK3ǪڏnPKnB-gnu/inet/encoding/DecompositionMappings.classl|t5o(^>+]D&"UF BIB!T{4 -{yf;>;;ޱI& l̓` `q.`¸Føƥ0.q9+`F{ 0:0 JW50qaa;0n-0zm0z/~0ø0@` q!0q{a~xP` 1Haa<c 0c01 dS`Li01 OxS0 DI0aH#FLY0āc0rác.y0Xc!|`X Ka, +aQF 0X :alQc#M06(F0*alQc;j;`성 n{`,`</x 0^*` ox >oxƻ0ރ>`|#aq!a|  Gaq 50jas_W0 oa|{?O0~ _aw_0&0c0`6 fs-`0[<ӄia:0]LSa0aT<0τy̳a0υya^Blbe0/y̶0l3favf]a^ *Wü0y=`vy#̛`v0{¼f/¼ fo}`füws090y/` s0G !`> s4G`98aN90' s ̩09 0Ü O| 03 f20`̀ 3 f6̙0s`΂9f.90`΅9| `.sa\s)e0\s%U0`,ka\s= 0`n f0f%m0`nY s̝0w s̽0aE/|+0_aMom|{0߇a~s?0<0̏a~S<(c0<f-:0`~ _ 0-`~? 0+` 0V Vj`VKX'2`,X6, ˃%`IX>V `]"Xm`] Xº 尮V;Xa%#N:++a]jXuunnuzVOXVX vXwNXa 5]=ua=AXCa 5X#a=ka1k< &z$XaM5cztX3`=IXOz3a%J+VtX2aeʆ5VYfʅ5Vka-Uk1BXK`- rX+` VbX%VZk-RX`V6 Xª Va퀵.Xa큵ֳ<`%X/z֫^:7` -X` Xz>!`uAX`1O`} 3XG`u qX'`UVa}KX_7aGX?/~aOX?v3a}ln dlۆva{l ۇ} Satg>Yφ}V[>yχ} a_ a_Rؗn=`w vg]`w}%`_ ¾o ov7 ؽ` 6ؽav?a` { Aþ wþ}?`?{(a{$`0Ѱ=X`=D؏ž{2)~ 4؏Þ{'`? )O~v"$ɰS`N;v&,ٰg΁= lع΃=E `/]{ 쥰^{앰W.] jk`] {7.&؛aVؕv5w{7=~saeد~k_7a{a]~?>ð? Oa죰>ص`n9/` +_=`'?;?` /N818qpi9pN8- ǀc±p8.#p8pNs* 8g9 p΁ Nk89p.s!ഁs1K\ G\-vpING8tNW8W¹ ps-\8&8s3pn έpnN8}p3Νpg0 s7{ >8y΃pg8pFy(8 8c3x8L(Ip&Ùg*L8pfyΓp4g$I 'N*48p2dɂ g&8̆ g<8s̃38 Yb8pY gpVY g"8pJଆZ8pYg28lN9-p*lS g*8Tg']pvg/g<y8/yKp^ Wu8oy[py;pޅ|C8p9 c8gp9 pNS N=8Ηp5o| ;8Ώp~3_ 78Οp76)fpm$p &\ ׁ 7= pπ{&ܳ ආ{.½nýp/{9+අn{ p;p JW5p{;po-p{mp{/~pýp@{!p{{~}P;Ha>w ܱpw܉p; dSNip; O}Sp DIpM7nLYp΄wps΁w.yp]w!|] K. +ᮂ[n p] :n[w#Mp7-nܭp+n[w;j; n{,>/} p_* o} >o}p߃>~#{!~  G{ 5pks_Wp o~{?Op _w_p&b5 ^sx-Z;τg9\x<OTx;΄w΅w]Bxkbxe.wk/^xu^x]] *xWû޵w=uw#uz»^/x» ^ox}^xûxwo7w/x oF !x= o4G78xM7ޣ& o 7 Û xO{ 𞁗/ ^2xˀ / ^6r͂7^.9ͅ7|x -ox[o)e[o%U+xk[o= m fx^%mmW ov oEx/{+^Mxomx{{އ}o?;0}Sx;(c;^-:x} x_ -}x? ~+x hh 9D d„ l… !xS N8 t3 ΄8 ls ZA8}!AwB 1.!wCq/}C< Pa!F@xb!1bx !1b T A<1bOB<43I)iY3!r fĂȅ1b| !!A@,(Xbr+!VAAC@Xbz e!6Al(QbDvj;!vAY xE ^xU ^xM A ĻAćA8qa!>3#G!A8QQ QQ9_B|57B|=?B3/B;B7?M cqM!A6ly$ [B i@ @>dy 䩐Ay䙐gA yd+֐By>B^bK / r+ Bl#d'ΐ] B^ yՐ@^ y7@v&= o y d/[!o /d?C9Nȁ C9n{ ~  9 r8ȑA|r4#c B9r"䣐 'CN 4!C΀|Iȧ |22 2222 2222 2r&d,ِs B΃r!d>"ŐK B.\r%*"bՐk BB\ r#&͐[ + BVBnY r'.ݐ{ B> /@ː@ o@ >ȷ!߁|=!?# B< 1'B~y(1' k k! ! ?Kȯ [ Gȟ W Oȿ ~1qo9O- ߀o·.|/O* g? ρ ~k?/!ශ1K_ 2ÿ~[෇; _Z Mf=[7>?;?`wn}? p#Q?# 'QO?Tqπ'?iO?~ Tigτ?L9g ?yŸ>χ~ /2ᯀ*E_  Kᯃe73r[W 6UïN^_"  ߀&6w =??)1ៀ_~z ?/kwgo?o h AS4GI%LE!$A )NEpLg!89Z!h\!8.Dp6.Fp K\rW ht@A'tABp5k\:#A77" Aw=܌'[Bp+FA_Gp;; @p'!.C܍"@ !`B0 F#xcC0<` 1<`:@$<$#HA A: d# ," \GB!(@A!%"X`9V"XA1AA)u#؀ FlFP` [T"؆ vv ؉` ؋Y!x ^DU!xD}Fw} G#8 C#'>E#"88j"CP@%|"~@#" @'7A| qofo? @|Kğx&-ۈw"C@D?"4ğ3&Bو?"<ğ !/B|_/9)ғ/55~dcCێ:~TS&?X׌?zu&M\<(֤MF5qz?qFNs谱 Sd)2RMeȥ8GTƁ\©M2ܧ1ajws9g0=:n. dnBnB^6uF0n쭺1n,A_r%59c>mn F`IlVD{p\0I0L4mW\n\yxe:77u/g]κuYN _I;3tg[}0!C:к5º%8cOfi&smf;tͬ.uѺurX@Ŭ7̺uAS=jJGM v<8s{q0o 1V8SMc%8SMc}gc>~ gvIoi?nN5n Ƈz9- /^:uodÍfr'Н);ET*֬>C{顽^zh/=Kk/=?xxb:u ኡGX!>2aG#,Hjgb]ĚPgْΖpv%)9M: ! r0 !^ah0W+  C{BQ4^#\,Y< ^ LԐ<0gj?u)z11q.#O듩.E94>Se2R62na| f1R{֯LdT+f ~5~ 羖l?R/Og\ֶ,%,f6wRpyp(7mHZ7Q]2sհmXDְx#aC!WRt*F g21RIVP{6TE2 20hiXq/b8J71navn(ՠCF<v ;SyɥIܰk6<jw6#|q 8y#'};9*frl#HDJ.DE$$WE:QwGbo(R"HdF"?27D@B,|E>QUZ=%WHDLZ=ewcSh >Hh:ɬ70O c*cof,gXc.fLg`9dbfɘ8q6c.R&WPS]Q>Z.*C>kx3|fnQ8S@jvصq4ݷ81ݨAOM` Sě)͜J(JK0)>=dܷL#A0qdqG0` y@e c9qܸM[c;`43%vk:cOICGĚPG(T\&RKĞ$!}0s0qckڇ+}R-IN :oO\txmt7fLcAc'P돥qè}F%@-Dηi?0N!4.ުSM5uYSM]5]D5CNCCr琻5^Bh/!K%B{ ^Bh/!!AkZ_Ӆ[y̚Nl\>Y/5yהp }6LYvtvhC2a3ڭ|Zӹç|RѰn'v,ڙnsk}2SJ:!g|[§304Wm.J>5'K=5IkQqK]ΝO| 4A9h*>^E>F\>!\kvq9Ng z߲7m(RQ]j`-NjwQmWQfd|33ukjs|jzc%=η=ֵ|Z7o&'˹[oTr* ʫvo廚\YIm[Fj-g\#o>3x&JX#~V-/6Yd!g"^UzȘv~E|m++MR\3,^Wk r9;5弞''iצsn~p.>6[]PS>9쳊oKx[{뻚OV.>Zǫ&|\W>.1z볫4 ~yP)&sC!2`QVs1 yvȹ! 9[-Mc\=H,״Et=5m1]7嚶H*״E'mT[] g%Cư2 j uL[zgun ƠQ)[,Mzfi֖4ekY$ҤvmЮڵQ*Ri׶Ц%[|ڪ'V*5mӴ |V^yhED1z4kQ jsJ}pւLZt T =7Zҡ*#QyViAs٦[DX((NUTQPuTώ(0D'Ih԰,#ԧFSiaAiQHDA# zgmHBGӣbGv.FU0;Z=WdEC";YH}6l:eCSU5͎z0l JeGAQPZ$Nd:Ii U76IʬqWZ$zTDvңP>zqLNiEx(zȎ*Rj+(?CAAc <ȷۇy|7w1o7A2VjJ=׫zSυD=\{sz.P *e+Zu&;rg1ّ옣 ^#s6zV!=$XG`i6QL@Gz䁭shsk=X`! Z+=G]G;ƸhdH, QƹH=mszSyR=OSNc{D: 8o>7q e))t{>`/"zvScl|?9s,>-{4 i&?#9~ǏjOb7쑑ç4imxhҤIidL&1\gT5SDT-سeEQԤk2ϰv7T40h6`Hs|ŀ!' !n RId–TxVh G%\:B(tT _B)8Ua8M)t3&Tx8Klgs%Z)<[Vx8Wa+q| '.TxH /(l#.UxL%r+^&*\SxhHPNtP^tT :) :+(($*,TE\ZWk^-Sx^׉n 7*AܤFCMfEO=- o*EܦVGmޢ>¾v  ow*C T8@ RxpK 1D`q»= {-Sx_/*|@ SpppxH1JH‡h# cc>")#++&('&*/U8ALR8QLVppxL1MTt 'NO*!RxZODO$ψC&"(I%4N*2D&Q"Db&Q!fD9"hC4[効Ds<<1hX@4O,$/ED EQXLH%DRBhXNT Z&V-V"h(!*h(%Z#JuhHAl"*6rMb fQAT.mDbVQET)mDUbvZ"!v{vDųD{sD{Dϊ/=/^"zALx%*5WD7^o."zC#zSMxhxm;}wD} }(}$DD'DŧDψ>G>G>LjDG c踨%:!jD=Qh Ջ/ėD_})!J|K=ѷďDߋ~?(~!IJ;ѯğD)!Kƚ-c1d,Nq5%X38kNTZ7[XKddbȘARLe"6d&6e!d%e#vdL2&=󉅌R};8Se4SdtSe dLe,3dl3ed2֚;GZ'>W. >O.$>_."@_(c_$cK/ˈ/ˉ/+/ėX;+d=q[K n'cXGDA:w.ĝd+qg]EUƮ&RƮ!JƮ%ZƮ#FƮ'Vn Nƺ_/c7 c7w7Xdf2֓B|")c"cķXd/qoGG=|nu}l۶ٶmf۶]S ͬ)5{k>ޏsٙs0md4i>;v^|L  0-ldZ.Ĵ]i1vQ%bLKřK0-mdZ.Ŵ]i9 vYrL+V+0lWdZŮĴ]i5 vU5jLkՙֲk0mdZǮŴ]i=v] zL60ml7dnĴݘi3 vS-fL[͙$xڂI-DxڊIdxO0 -OgLZ]ʤeLB>]Τ_|I˧+|Iͧ|Iϧk}Iѧ$}IӧD}Iէd}Og&ene6&mng&u$?}OfRN&bn&aR^&c~&ä~zI~zI~zIGzIǙ$zI'DzIdzIgzI1I@A?|#%A >AIO?|3%A @E/?|+_%A AMo?|;%A ~@C?'?%A ~AK_?7%a9 "ay #a "XaE #Xa % "Xae #Xa V"XaU V#Xa 5 "Xau #Xa 6"ؘaM 6#؜a - "ؚw?lK{??lG=A;?D3A.?F;A{?E7A>?G?A?Dp0A!?Fp8AG?Ep4A1?GpBQ?}$O$IӧI>CYϑ?} $O_$IӗIBU?}$O$IӷIC]?}$O?$IӏI~BS?$O$IӯI~C[I i.I!i>I Zi!I!Zi1I Zi)I!Zi9IV Zi%IV!Zi5I Zi-I!Zi=I6 ڐi#I6!ڔi3I ڒi+I~G IӶ$O'Iv$Oۓ?@#IN$O;?B+In$O?A'I^$O{?C/I~$O?@t IA$O?Bt(Ia$O?At$IQ$OG?Ct,Iq$OǓ?@t"II$O'?Bt*Ii$O?At&IY$Og?Ct.Iy$O$I$O?]HtI$O& I%$O?]Ft9I_I *I!:In &IFw[Hn%v;HAO?NH&^H'II z!I!z1I z)I!z9?=OIӋ$O/?L YӫdO?BYd?_D|1YB| Ydϗ?_NW+$jk%zo$f翑?[o#?_d&.!>C_$~aG%~q'$~ig%~dϓ?@"YKd/?B*Ek/PL/%R$LR(_*EK/eu/yEˬ/QM/P-/oyE)_ANwQ=/yE)_>@AQ|#/E)_>AIOQ|3/E)_@E/Q|+/_E)_AMoQ|;/ߥE)_~@CQ'/?E)_~AK_Q7/e9)_ey)_e)_YeE)_Ye %)_Yee)_Ye)_VYeU)_VYe 5)_֢Yeu)_֣Ye )_6٘eM)_6ٜe -)_ٚw/PlK{?PlG=E/;RD3E./RF;E/{RE7E>/RG?E/RDr0E!/RFr8E/GREr4E1/RGrBQ}4oMۧi>CY} 4o_Mۗi߾BU}4oߤM۷i߾C]}4o?Mۏi~BS4oMۯi~C[im.im>i[m!i[m1iߖ[m)iߖ[m9iV[m%iV[m5i֠[m-i֡[m=i6ېm#i6۔m3i߶ےm+i~G M۶4oMv4o@#MN4o;B+Mn4oA'M^4o{C/M~4o@v MA4oBv(Ma4oAv$MQ4oGCv,Mq4o@v"MI4o'Bv*Mi4oAv&MY4ogCv.My4oM4o]HvM4o M%4o]Fv9M_i߮*i߮:in&iFw[hnv;hAONh^hMi{!i{1iߞ{)iߞ{9=OMۋ4o/L ]۫toB>H3]{t tFF7Cfmto];En}t]?Dact]'?Eist]߿Dekt_]7߿Em{tߧ]Dcgt?]/Ek}v9}ny}~_}aE_}q%ߗ_}ieߗ_}yW_}eUW_}u5פ_}muץ_}} 7߈}cM7ߌ}s-߷ߊ}koC-]@]t;H]tJ]t{I]tK]tH~]tJ~]tGI~]tK~]t'H~]tJ~]tgI~]tK~]D~>]t_D~1]B~ ]t_NW+߯jk߯zof[o_t.>C_aGq'ߟigߟt@"]Kt/*Ck 0L #2$Q?*CGc cu gxCǬ 1M 0- oexC?Nw1= exC?>A1|# eC?>IO1|3 eC?E/1|+ _eC?Mo1|; eC?~C1' ?eC?~K_17 ec9?bcy?cc?bXcE?cXc %?bXce?cXc?VbXcU?VcXc 5?bXcu?cXc ?6bؘcM?6c؜c -?bؚw 0l{?0l=C ;23C. 2;C {27C> 2?C 2q0C! 2q8C G2q4C1 2q0w PF:X[2%a,"D!U@NuHWO̎m责 ؁vʎ]a BtG`~_,UZ$H'ڡLJ;oGD{QUҺe*vGnT,m{LcHc feMo}Z=L<ɐK a-=D=]'`MƧ\EOAfX<6.ǫ0uYĚ( Udrf#9(';(5A5ʫȕFp#\0\N.G`z$р6 :)m<1<".%|-^xW+^xMQa ӌ褘Sb.p^l;b35,D1PQ= 5_\Fk6x>"T,vhqm)%&I ?%V|/QbRb)qJ#JcJJS3J"pV! F1! B>™s\K,ÃQMgOB>x}3;{(fú6O ldp[f/IntzN p++Nrai5uaeTk^cZ=|`Hҏ3Z7+?1$k/KጿZ@+$G!=牣PO"_ɸuS Uٞ,-d;jz׫:O(-`bEadK%K4) "s{ [z}Bxx: IYw@>Kߠq?DJkT^SH)(9 }Y7۾/k; Չ: [t3rt~(>?˱OѐO_H v_I:lr?O\MXã~Vͅ))3=af^C*eQEPKUPKnBgnu/inet/encoding/NFKC.classVmpTW~MzE>$Д-Ma44mnv/² mPUZ $qNJۑjӎ:8q` >&?~{~<\PS^Dmhwav` //xʅ9-gyЉ=~Vv)vIW}vI lDsQ$NfʪNG, ɴ>tm)Ng}kKL`MeQ2ҽuفdwc*nmFuk"P0CA90歕*&AHgɸ10/܀~ 8)*"c3$Ͱ\/g؈ze3bLŸ251b.KN rlr7㐀76QmMJl }{9vx[<Ʀ< T&py+)P;$ǖ8N%{mHDG:eS76K|x4`[P)Eg 7MVdԕ 9mvfEM-'S3m #R.|a>ɉ\Y[vKbr~);Jɸk.eKv5#,p/V2 5|&1!jLKlf)uiFǺ~4Lctp@[{pW}R#G!Я8~Hr&*lܜ}v̄{f.+gfrba!L*oA;q&œ_䆶RN,b+<~?7x(6)Ɩ,&-6a+ S= =Ff>X%7J;U-CU;ٷ] *$wif/ػg E[ٺm;ƥB  h[9ǁ3pQ36P i"4*zKEzFE.QUQ<ma#My oSbx 5F ]4& OĖsx3_9Ż sUFhXqgpu.'VX0Co JD+c݌?nJKيhp;%KY{,C).OepBU PgQfm+m$1w{ڍ^W0HEɌ!] ؍c8&YS؏?~4x]X!xe◘ok+%|BŢP~<(X7!фż#bW,4,ţb e|B|W(1L$rm%ie e:tIJErxuQ) z0V"*)AÆ*e E 3|vjgžK {Ha?m tk9YbqrӒ }24Y6U]ÅF%DO΅b5\}}Y<o/$ery cNO^| u7[8gi2pp? ;7_ ƒݗD ~*:3/~\D 1Wlf(5l%j\+#ZؖYD-<*t#()zeW(_=~~w438,@5]NlJ;=f@p;PPޜ3VөA4[{E{>(?yOʟ*NJs 4?3)Ԙ,|3W=^7l .8(Ui/SOwOUBhM2l' lܞ¦}L3aG`"s5ih[qb*dϓM3#KuKο(v)CSe(ۥ>A9sxF2Es#2SV/k%HZ)Ee)lPKV/PKnB"gnu/inet/encoding/RangeSet$1.classuA @ EZ.\;Dcj0ùJL&O~x"QZMƇ0azѶwMmfjWV!&Ea[UZmVrTՆB|α#$LɨR=|/ q E2dsPK6&PKnB(gnu/inet/encoding/RangeSet$Builder.classW[PTe}ppYuhoBhhڅqY\Y7XͮcML 3sSo5S`,L||yuhÂ|܁tKN;$N %tQvu/=Î~;8 n;pu/Gw}PϏ! sA(vBK!/h5P1V)=wDz3C~w4)z*2945SI4#QMZopvziBZZT`u{xdwcWj_MQc)ᰩXښju}%HLIÌ|r5˗x,h\UT9$Gnׁm9vJP2lDRB\0˕o*\1a(V֑{.B ss *&ʚ'G9ze!uGKa`%f&(.(2%d USEp0J6RGXk"R5}HHϰ@ )#fmb)@=LWn:Y4 フv@g3 K8B8k'17-/hr o =@!Zsfw0M@gVgٽēd܍MʯG?QoF!!4Dx^8UܚIHN4۴]chk4*g_;EH3$UN" CC9cOlla0.kGO/4/bfX l61<2Dófӳ^*Ϫɳbf8aͅY֔Y;eC{!,cQCZԹXx\J(q8)*e/ e^r~֓2Fs]3f%urC/ ''2 y՝By.u 4V[ ƀX'PƦp}8uNҊ4(BNajǦ{9xہ% :Y`q桎I16Y!"b b8p9[x9)T@p*a+mۆYmFqû35Bw51yi_]NJ~Zyg/S% VͪR!`+5lw&m6xi]IUN$eӊۿPK42*. PKnB gnu/inet/encoding/RangeSet.classWs}Z+ֱPeȲ/I/(82 ^KgyH+7!I @hi)BqKCB6ԇv:qYIv؎y.;wGou@;&pPA#0AޟK/O/y2Ĵ<_Y^1Β#$}H`# Fqu+8㼤e)!,3=Χdyb+h_8)ԘehZ匜hL5M+͌YK"1`'v \?~gg@`Wߨo1-n1d&eZ-@°Wpg,{`,e1eGiZMzK6-}fh|R@fR[eȏA}$M/k|{v]s_}ĴRlZߍq"aq}hq T",/B=?^e.f DAg$*ٓ@MJWšDI~yP+AmWonM❂!]'KtE;ir 9}9Ԉ^Bx;yS^qL%\s| 22EˣNM/)l)̐Spv Sؾfϋ ;4 qm)/}yN*h8,uT,h!N 95S")D3PKPKnB&gnu/inet/encoding/RangeSet$Range.classT[oUov77%vu:-IZ'M\ƽ>u6ufn  !xBH4KQQqy߄(3u.I+ٳ̙f;3!؎a'C)# FC㔊1fqFE!0*&ULH8k1!ud .+ 1- I4:.>UKa{sҺIӖi l㎋V7 dMSZ)ȊdFmD3Hױ?PKBo PKnB8gnu/inet/encoding/RangeSet$RangeContainsComparator.classSMo@}kqjljKHK pkJ((R(A7*rIו"@qG!fT4<3;͇@-68(haņ]e㾍*C~/g0͗ ^t(H/hB;OxL'9cn_J&OyFs Fkڦ Ӌt 17fe&2.븝(I6L(57PK̳;PKnBgnu/inet/encoding/RFC3454.classwtSfsh!J ;U,!(&!`!4@^]yb?9w9̬Z[W\QC!lœ ,Ƚ=ma8r;"p!#"B} V+j [KR2|֣A0ah 8֭YV5|ǶkAxCF؈w#8 X D1zc+!4Bh)B3-w3Gތ#oƑ7țSys@h 5BWm t@舰+n#쁰'^mm]"tC(Gao }C?!.|#7!ߔ|3ɷ _B'[oM #=H|{w"32@#]F~w{ߓ^;L 仑/'ߝ|{߇#?H ?#8 $Mǒ?O ""2SȟJ7!:3ȟI/ȟM?/ ߏ|_H~ AB~(a䇓A~$QGC"cɏ#?/#9+_I*WD_K:O!?4_O7 7g,򷓿"7{K>"?!(9 $?Mϒ_ ?_@%/_H+W_DbKȿJ5R5䗑_N~Wjo_CZuɯ#| &wɿG}G?& OFs_W& oG{?O7/%AO?7L_[o%" E"G(("E)jBQSQԜP%ZRԊ-EQ=E;P#E(*PRԞRvhg(څuhWvhwhOE)BQWQTNQwzP7EP/EQ?EPt EQt0EPt(EQt8E=):#):):c):):):^L)JQoNEStEgRԗ(:s(:(: (GQPt!E)D`P4a hE#)EhPtEc)Gx&Pt1EPt)EQt9EWPt%EWQt5EP4I]KuMh ES)Ftn&fPt3EPt+E3)YNI]M=K}O=HCͦaQP4(z'(z(zg(z(z(GыͧhE/Q2E )z *)hE-h ERESEK)hE)ZAJVQ&E)z5R:)ZGz(@CѻG}@ч}D}Bѧ}F}Aї}E}Cѷ}G@яDF~~7~/6Q)BVQ\DR(GSL71M(nJq3S܂@qK[Qܚ6x;xwSS\JNLqŻP܁JnNI^w3](Jq7)Nqxx? 0'GP|$GQ|4P|,Q|<'P|"'Q܋)>S)MitϠLR|gS|R|S|(O/x Ń(LR<x$ţ(M/x,(O//2/ *'RVn l1bw˷ a3z lfxͰ7n>`͇!D8(yP -!c(Ap16|Cs0Ϲ) ௷&MMP!,Fx_m;d!|/گxL=)rg3On;`)jtxnj7`) g0:7jp5l\o\6v=v -,Gao}l?8mN7E 8a訁'Me#tƽGO;`QCozQ=˻ %7u-M[]S)2f#A|B34?,?^*=P TU@+P T}Eɪr̹5f lX_S:jފT5`Qk{נYg5kp/`P8kZtD-ƶQͺ$bjkkkkkj0u: |_έ)PyP/PoQC_{[YYYYYYYY^nYnY}}}Sï2PCաAu:tP:TsV]R~Cԡ_/u:K ~BCu֡:YQZ=_TGw֣'щzt]=zVG-ԣzRZQK=jG-ԣzRZQK=jYZY~Y.YXX>X֡u(mJ[֡u(mJ[֡u(mJ[֡u(mJ[֡u(mZ.YZ1ZYYnZnZnjw4r؀/jրa+\|yf*hl@ 8PKκԀU5k@5k@ 8 8Љ 8Гpm؀>݀hCֻa.>r2IuH&z7J!3%ΒxĻ$#>H|H8Wg%>/q_Pb* VHR_!WHR_!WHR_!WHR_!WHR_!WHR_!WHR_!WHR_!WJR_)WJR_)WJR%8~5l%.obFꯔ+JRꯔ+JRꯔ+JRꯔ+JJꯒ*Jꯒ*Jꯒ*Jꯒ*Jꯒ*JꯒE%J͋_$/,Q_4UEJ&Q*_tDlRG$JH=&Q*_DsыE $J͋^(WKRs\-5WKY>ʯVO}7TKRw{T_-WKR}T_-WKYQփ0NRV:ɪSTNS#QVպ_Wպ__5ryF["&2Fey|<|ۻZFZFZF9ء"!k烳DN%W/C00~H~2xK(t\)vW{}.7k+?W$/ʽ}8q# 'xٔ$ΓH|IJ|EbJUIX"f*q$Βx;$).wKGx$>(!%>,J#q$>. X|nmَn4GeY?G" Mc;ɆsHvK)qyu#%/u?G" .''s$p{gwϦ1|p0SP Ō>FCmƌ?\AC ŸYĩ1n< \,_KFY6ʢQmĢũI.z7HQMgHY-o8SmgI]xĻ%#ަcSl_?_~œ~GOFaf)n 8QF_8t`Wa/*u_x DW͊IQUMw?TTKoT7nE5k+2ٿhEf^q۲KQmz諸,Wto"EQ_ǶO>ާg+DyN2gX3%-w22,C#qYDwsK2 xCQ^ژFmԱ )tq'hCDm ^ڐ?Y 8EM oomȞ6 GSu5d0H5Irf~&2}ϛȄo"xd00 sucY@4k4FƳecYGjjGjԳH֣\N&2/AjqMdהL&_!5AS!TF(Me/F34.q6d/׆+c6m*3JH4Ʊh\ː6= k4%W8pD06(ItcOuښ!ښ))zRZS@ZM%7]Z)t{%wޖ܇IXZ3td/%wd663%֭߫j&biݦݤ5+?V3fIv"wH~Ei=EzP_,/C[.|fkMɭzi=nlhNN"sŻ4?XriMћ_''t)T=[\/t Yc$5wfIni=zN[s z'X9>OxFZ/jRZu{y?/-3%m-˺k%PsI}ɽ$MrZ#|ñE1MErt'ź[}>K4Vr7U^֮z][{H|r]CrK5'h,=$e[&okm +•yx|ViQ=.75':IZ|{'2Ǔ^[[!:mVnlu4iV~v7r&'m-ښ'wte{W@Cm#mmy+'WO#8rh#tTZk+/te $殒\~N|9Y[Zky%ȵFrh~_$wymmZa6y?hng돚;Mr8G)ںHZ?e_4+ٯNryGjmm ܥˏB]~\~ y99 vT.n ˿w排\>jNfDψ-/HϔVm%m:-S-豮c2VxIZD$3tl/W+HKm RZbi'L|}{ƚkx&PrC%Tsc%7Nr-05'7e֙GZG\AK>(=ArJNNF\Z湲ȕymZiN6)joѡ%Jr@C[i2jQG"n@ZCWHZ8cc٢r]1( Ju1HG}$W[:lv-&/fg!$W{ -}ql> d%4Eu:+-}w"K} yr#r-oD*-}&E_}(U[YshkÑYOG"[߯GCsS9N>&v䮖>'Zryoc3rY/ܾgS./߫Nr;dNͷۊ3dOiPvI'?,IwL$Ld3xґe4ÓdodL$$?:I9X,l_tPr=7q16ӗm6%1R%>˕G YlŦɡYlYlbI͔NbdWǒǾ%-c*}KZ'eM%ml..91g^r~Q/vPmIvh_9*d-.K%8j\T6*QMJpԦ%8jPcI/Xr2j,95KzƒPcIXr:j,95KFLv21Ȥ]3)d?4sό}&d̾gs3)Lz&d<Ϥc35ݙLvόv&{d:=3S^ΤSf39Ld9KΤ[f3)ft7sټ}M-q6u'ج>ɦOy ϲOϳ /|}7l.`%6?A_f3t!_Zwh%?Ul.b7&b6B }m5:[}m ]ʖ5lCm ]ζ9tJ tۖ7ٶfke[eZv'h=2: m`;t=o}mlAcw$}vC?`7!Џ1;9?awSvrN;9߿dw+vrNo߱{vr>Fv2/~f'vBe'7v2?~g0vBd'/vs;/=NͿ잂na4t+eWlgj|6]=Աym2mbvށ}miiiii)a0;&av8MKv8M+v8Mkv8Mv@۲kco۳ylv`;lڱ8Mʾڞ=oSʾt'8@|7oȾtW8n;{ݓ=ً}+h'36.1?LWA<1wvgbzoݛ=ه} ݗ=ُ})tG;Cddb `W2 z8{3ӓ#c#==9}g1/˾?8Bg?z!~QГُ~,T㡽_ =>1쯄j'B|6g|6g|6<65Ǽ5|5<5c~1/Bf {\ f0{;3= c)3='3h/Cǰu\ľ:=Of_N`b^Kze.ez{\q2Wy}%{Wy|5{װ;Ie^^ueNf/w {S^t2g/2od/&2ogy{3{\-ɼ#39yzG2?gq$vd>;9wG]wsuQ9^C~>>9GAgs?a>сG9::s9:GB0}Ч8:4Gg8: ,GGC }8:"G'@st"tG'A_eN.+ 7ӠU.th5G{f1ߗpAU.H׹ ߗrA ˸ r.: 䂬k ٛ\ul5dz nႬW\uj-d}ガK\hdZY .zo悌;\~ 2qA}.ȸ~ d>悌'\ 2NqAs.ȸ|/ 7\ qL\8 ΁ȅ?qAˍ\g.z d ^Y/炬pA? _\o.zdY/7sA .z ^nBvS?.L.'Y$븀z.`=ژ XOm1ZSۈ XOmc.&\jr6Wۜ ?.`]6UuնUۊ XWmk.`]muնUuvG.`]uuզ\xڞ A ;qatg.>qv.vhG.`}rݍ X_\jW'ڽvWۙ X_m.`}]vW[;\jW}v.u)=S{0No졜b~8syn{r c)=Sk{4'N1Ÿ8s ?aO؞)=SgۋS {2N'쩜bޜb}qylpٞ)=SLN1m_N>۳8gs՞)=S^˩8}̩)>NT4NeOT }SY?lNexS<7p*ȣ:2Ssvĩ3/s2SYg^lTrSYwqSYgs9t ޼ʩ7q5uNeyoK98uh97JNeYũ?orv5?59t3t-xa븽c=—u\7KqfT֯ \*\*;\*ֻ\ _bR܇~r)KeKeKeKeKeKS\*%¯د~~ͥ+.[.u;.u{.u.uG.o?q)|ȥg..W.oq)|KAR'ť o.K&. ̥.˥.mRYrK۸+RKp)%gs\y.".b. #.qט˪M 5%f\keq- Õpc.p .w(w8w}) LJr50'D&$P&ɵK$$S$S$@$$׃ In$ G2Gr30ɭ;`9ۀo$@l$H # Fr7ɽ@,V$HA<h"yD2D0`ɣ 9@6$hHʐ< z!y B4H ɳ $σ:H^na  Yt y @20d!I@REx?;b֟,ɫx?y o'u , I Od9OV%d%޻OVMi[x>YWZ5IސOR|o'|Ҁ7ߓ x=y']Şדz^RO>{Gx!='So|͓y^*O{Wxu<'5[|W“x^N~ĻOx;وZw Wv^N;P !&@K6A&'!S!S-iVd`7c7c73ЛCo :3L#`Co `B `C`JI`0:[`@Q}49sX0Cf}2vЧ)@&>L{B f' }!2`vL`:B+`vЅ}E"= tQ0t.+tI0ݠS}-׃}#KZ̾e]]́U}39V0Bs6ák h}0GBst}0GC9!cos` 9~0'A?`N~)Џ9I0sy0C *Я9 M0gC w >?h=?s>`.nĚE?K03[0Bf `A f0`@f(`A739 (`FC3E2&/a|1q^)f (6 f;s t`&B3 ZZhuL3S0S;3 Zt.\ Ў53{07C +N`M`fAs;k0w@s'<݃#{{s/t`y0B!̆ЃyzH0B f`B1h`#yzT0OAi1<=6g` =)=9Sy zj0/C{zZ0@S==JTA fo0гY =;%syzn0A u ~@ : YJ`VA&tH0Cy :,5BG:2:`ꡣYzE4@:.y:!w`އ^˂zy0Ac|*OW`>N `^W:9oS:5ӂ:=Ghv ]7B 4 .A4Í;b?.0$&ÑKb?<.0%&Õ[b<,ly0XP%fv%`aK#–G-1s-1s-1 [b<,ly2XT%`aK3–g-1 [bļ,l,ly1X3?X XR`a?`a?+~`a?Le*X(XS,Y,Y,y5XZ`a?~~`a?̲`a?`a;̊`a;`a;̪`a;̛vv0k0vv`a;L}f]f}!X!Xv`a;̻v0 a>|,l(Xq`a;̧vς0 a|,l*Xu`a;̷2o |,l!Xc`a;`a;u`_0 a~V a \,l\7+0[0[0ۂϰEznMZ, a}6  aϰ,|m,|m,m,|m,|m,|m~"X[,`l, /ؖ/V//6/ض/킅 `w>,|m,|- ``l`liv`ز`.؎] `w>,|3XWSsKk[,|=(X{p` `{ `>,|=*X{t`ゅ `O>,|=)X+X{r`ӂ} `>,|,|=+X{v` `/> >>>^,|,|,|,|,|,|,|,|,|,|,|,|,|(X;6X;.X;>X;!X{q`쥺eUպ5`#`#G낅SSӂuututͺ-‡ؙ‡ۂ b>,|+X{]clv>f]clv>f]c쓺Sͮ56_c?|ͮ56_c?|ͮ5v]omͮ96؊slep9*8(8[|]%W߱c_~Ǿ] ~. ~.~Ǯ~Ǯ ~Ǯ ~Ǿ]}+8&8[]cYc'\ݐbv.n"+{zA"6ُY?Nd$5\>Y/_%`Po淉\>KdU>y?&r))+D.,? / 5o߃of |;86OpmvSpmvspm\Qpmlpm|pm. ZJos|Kos!86286*86:86&86686]pmnos킃os\|k|+ |98WW|%86!86186kp-n=os{y u uw u ͕z787>|;08VǹC}hpsϹϹ#sG;:89wLpX7ܱϹゃsN>Ν|;)88+88wrpqܩaʸaθӂ|p}TOȝf;38978LzwVp9aBswi 89/8pX ܀0݅ϹϹAϹϹ!ϹϹaϹa=p#s#ssscs?Í ~΍}ٙrrrrr?r%Z}GZ}'Z}gZ}Z}WZ}7Z}wZ}ZOZmTgE~QWE~SwEPOERoEQjVWQ-ZmQ+ Wd)jeT9E"U"U"UŊT"UjHUE*RLTPD*V*Q*(RRVTV"UmNAjHUATT*R"U;+RUH.TuP"U*R"U+R"U{*R"UHUE*RMrE+RCG}O:@:H:DC:LHTHQTH1THqTH THITRdENQTEz+Ru"U}:]3:STHيTHչTHT]HU?E+R5@ H E+R5DT Sj"U#H(EF+R5FH8E+R5ADKLB+JFTMRZESj"USH4E+Ru"U7(Ru"U7)R5CE[HmTRvEPNERnEQ^ES~EPAERj"U+R"U*R5GT=HT=HՓT=HӊT=HճT=HTHT#E>VE>U3E>W ET+EVEU;EWE~T'E6*R"U(R"U)R"U(R"U)R"U(RI9R r?JЌ"E"UV*HW*R*VX*R"UjHUSE)R\T(RŊT%TEZ*RJ֊TQ"U)R"U;(R"U*(R*R^REvRjgEETuTjWEvSjwEPjOER"UHUWE)RUHUwEz(R"U(R"U)R"U(Ru"U)Ru"U(Ru"U)Ru"U=:B#:J:Fc:N:A:I^TH)THUoENS"U+Ru"Ug*RW:[s:W:_ HUE(Ru"UH`E(R5TaT Wj"U#HhE(Ru"UcHxE&(Ru"U(Ru"U)Ru"UW(Ru"UW)Ru"U(R5QIT]HuTMVj"USHtEWEnT&Ef(Ru"U(Ru"U3MYTݮHTݩH]TݭH=TݫH}TݯHT=HCTVaEQQE(R5Wz\'zRzZgzVz^HՋTWj"U/)R"U zE E*Rj"UՊT-Vj"U*R"U+R"UKQj"UZHJEV)R"UzK5&*VѢ:E-ZhzE-ڠhۊhѻh}E@d~~E@d~~E-hG9Zd"Sٍ9Zd"K_sE-h3G_9Zd"OM͂e[e[er(GYLeq9s%Q8GYsrQ4Q&94GY(Kei,%99ʒ(KQ9*GYZ(Kei,(9ʲC옣,r,)Pw?,,,,,AYa@aHaDOaLaB/aJaFoaN﵎aQre",?+",*",+",*",+",a٬˿lQeo",EEU*NQJJJ*J#EU+DQ4ST*-U)QTUIJKEUZ)ZQ6UTe;EUWTeEUvTT*EUREU+RN쬨J*(AQ쪨n쮨쩨^tRT*]U骨J7EUU鮨JEUVTeEUUTe?EUWTEUTT EUVTEUUT0EUWT*G(r*G)r*(r*)r*'(r*')KQU9EQSU魨iQTtEUPTLEU*r*g+r**r*+r*U鯨EU.TTe*UEU*2LQኪPTe*UEU.RTe*UEU.VTEU.UT2EU.WT EUTT*EUVTEU&*2IQkUNQɊLQTe*Uܠʍܤ EUnVTEUnUTe*)2KQUCQ;UKQUGQ{UOQUy@QUyHQي<#<EU**+*O**O+***+*UyQQ,PT%EU^VTe*(RJ*U,RTZQŊ,QTUEU^STuEUPTe*5,STe*+UY*EUTTe*o)FQZEU*RJ*UYJ*Uy[QwUyWQUy_QUPQUXQOUTQU\Q/URQUZQoUVQU^QUQQU٨ϊʯʟߊ&EU6 PoQ,rݦJUy9Qaxf6ˤN dU,,b);,] b6DPAP,({C=ϒw9')sr㋪⣪*U*1TjTTZT6*!JU%DUIQU2*JU%GUiU=JUU*l1JGT"J UUeTN*QU)ʿQU6CUU *[l5JWTTn**QUAUUv*ۣ쀪#N*;삪UJoT>*}QUvEU U*{GUUe/TQUAU/~*r A* DU9UPTPUGUrʑ*G2UT!*Ǣr< *'r2)*CQU G5jr*HTPMNG59LTh6ϡ?~/&QM.B5iB5jr1XTKPM.eG񴿜WJOU&W\jr-DTPMG5FOdDi omr;TT;PUDU UetTQUfT*PMf܋r*sPU梪< 硪<2UeBTQUAUY(c*<UITPU,EUyUe3&Ϣ<v"G9Lk]i-1v5Nt"G9|D['r9#މ'r?8#щON:՘b\lWcjLp] .1v5&詺Ή&_'ࢧ?ā*ā@5@ @-@āq 8@H"҈āq 8C#Eh8q8P8q`ā 6Bq#@щ.g3* _55ʺԶc3%2fJe̔˘)U TƌĽUTƌ=̖jM&Ȗl)4 [߽\(M:[jFA4ؔlwV<"o,)({_M[Q\#덱ݱRbUJB,#VR-JRmk5 _bbKZXqVhK̳R.2"ߨ ivWcۏU[.̰ TW^ n!Ekܯ s6kUUUjC̹|~UrGT)wD)]R#TteeGlU[WvʎVF [:U}@aĂh~|K7Qn}Պn lXqC5Eݐ[Soukvmz )ҚB>$(feōju]1(*[V?L0\ڜ AG~Ɩ~܂԰_CK?mA~}23塥Vp塕"4^CU *W)Z_6ܡ<.BF<ʺ-*2īXnaԙ D"1TvghX!Hx D 0p!R*5Er-pPӛPҡ*CM9C%u_;6<>6Dc%FD; -b9"1?nɉQPFH+!v;ƻYeQHB= ^Hݽ3{U2d3[0kԋ' AeeM}O0+ׯn\Wǯ3^w=@y7PH}'h~/G{s]W׭0GVܸؗ|F.1 %4sˋsA܄: :7=Msz'i&, >:Խ0oR2mB{M,5:ʒOeH"_G4G*\W',^hcAYkt/< s};::aщ 'Q+=ɠG4jNiHXw4THOa }' (4ETk t(JjJjJ iF)t&H#(rHkARlP :FH}{.H}\?u<>NjR'I AIM Mߤ:"%j#IM|i!O.NH$6Rl%*]J *]ӄOq4S&xa갔roa걔rn+`겔`+a곔W 0-){W/v5l/1%9{׸J)ٻ0lju0umad`6_qI*Mz.M0ehV 22oYVҚ3ie1{T|M{Mzwa!6vX;/UNjWƕ*MtJө+ ۻE-g.v4Cf46fÔěVҶw/LO|x%'SC}vi5\ͥwi~_A2ڰf\<bۈ=^=CWi53{-i*0 =B2Q_GaZ3ʵiȼ,8m W#E}:){X+EJoPR4i Ƚg`wgyu*=jd~=:;Ml9Lb/8S[k#K/25w!b0^ 8JuV8r jTͯ7a抽E+7VRC3 PlL 'ަޡӪ>wa^[ S=Vff?w1 y=5>ՉuVs}1 O`PSFUޭ9Vkhs>w}sg?}XAcw_+dž= I4 }Ӹ( vibk`:*<,LzGf}~%ZlBJv~v.2Vpy\_azgu~s>'?+^э?aE{`~b4*nnYtkNnGIsi8Z, 8-w 11m~554z*.j=9U*j~XɴI38W*߉qTԎsdK̄c~*9sT~.‘R}J)b*ի|N,)(fy@RJ(mR{J#kXI]4|N,isT/8K\Ik&uN8N4I%wH DS;4ly~?-˵3Q+hlf&~jo_7T^-oMg5-T5Ԏ09c~kPKBPKnB"gnu/inet/encoding/Stringprep.classWyxTWYÒ5a@$m LBL&ddN&" lZ\ mBR'b7֪.u~ 缙I%>?wϹ{^PVt0@L{i1sa=a}z7`*r HƇūwQ|Ea{:qf'x#LOX 1{?S܃L=d@q>zĀ,z=yԀp~/2% _fx 'b843j`pP o,;q1+Yz{Sp;tڪ3])0L эrJh-]'䥻 B{Y 14EkNx#5eBW@0Q~8]aI HY-'^W%QcRR<ʎ/ʥl^ѯmRƯ'if'Ma${5Oaw/( <= xB=Xuf}%lMQ63bG}qC5u֭[ЏCԼR>B=85Sx gݞJ:6zz2Dnn"W,è$ѵ{gdjQ;E>TTTASV 5JB" -"!!0∘"i8'qUdқdѿY;O-U;Q4F/^X%⑵˵`ĥ`YۂmC Z$6c؂4Q aGGh&ф* N…vqCk蠂qZtRFkM_,?ct4.ͭ˿Q]IdƼe֤͋ Ү9{H#|W}v(Th)-zOt882 G\cwlt*"MRbrv2uHE߾0=0{*dbHb+bNTzcF֚ 2UK \M>e.7#CbE=\M[Cja/BG^O{& 2CX"@ZZ$Uq+_ԊOWt/!ϥH`l6Տ|Kp+kNpfr@;Ra4* K,nهObyCF`Q [_+IaWp/#|W+F SDl}憙zmRI/jENƘtiK.9]INQgH7:Pؽ^)E=,Wf~LOhVd9S QDtKpGS|2a]^э0=ʡրD!*?_PKћ= LPKnB+gnu/inet/encoding/StringprepException.classe]oAߡninY z 0cpv M ?xfEv.s9s?⩋~.8xhV8Vw-ca FgvÓc/,.Dk"LUCwwآՎuzi0ĹQ:RZ d$j2}, ydְ%l(){'Er(Sݴ wmS>b:Uc-G|Hx(m*ʥYr\nYno s\o5R1Pk\'o$,a#Es0-WILI.؁u}*\k ȵfD&YdHK/}n}u4᠎; 5]u0ǚWc+Q9*W5<A-ݼoPKPKnB META-INF/PKnBRGG=META-INF/MANIFEST.MFPKnB徝 q&gnu/inet/encoding/CombiningClass.classPKnBlC# gnu/inet/encoding/Composition.classPKnB3Ǫڏn)(gnu/inet/encoding/DecompositionKeys.classPKnB s7mk-gnu/inet/encoding/DecompositionMappings.classPKnB.?*: $gnu/inet/encoding/IDNA.classPKnBU%++gnu/inet/encoding/IDNAException.classPKnB K t-gnu/inet/encoding/NFKC.classPKnBsH~( 6gnu/inet/encoding/Punycode.classPKnBV/)r=gnu/inet/encoding/PunycodeException.classPKnB6&">gnu/inet/encoding/RangeSet$1.classPKnB42*. (?gnu/inet/encoding/RangeSet$Builder.classPKnB lFgnu/inet/encoding/RangeSet.classPKnBBo &Mgnu/inet/encoding/RangeSet$Range.classPKnB̳;8Sgnu/inet/encoding/RangeSet$RangeContainsComparator.classPKnBBXUgnu/inet/encoding/RFC3454.classPKnBћ= L"gnu/inet/encoding/Stringprep.classPKnB+2gnu/inet/encoding/StringprepException.classPK;libidn-1.28/java/LICENSE-2.0.txt0000644000000000000000000002613612153706572012655 00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. libidn-1.28/java/Makefile.am0000644000000000000000000000473412167244126012566 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = src EXTRA_DIST = LICENSE-2.0.txt INSTALL_TARGETS = if JAVA libidn_jardir = $(datadir)/java dist_libidn_jar_DATA = libidn-$(VERSION).jar libidn-$(VERSION).jar: $(JAR) cf $@ \ -C $(builddir)/src/main/java \ gnu/inet/encoding/CombiningClass.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/Composition.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/DecompositionKeys.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/DecompositionMappings.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/IDNA.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/IDNAException.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/NFKC.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/Punycode.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/PunycodeException.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet\$$1.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet\$$Builder.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet\$$Range.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RangeSet\$$RangeContainsComparator.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/RFC3454.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/Stringprep.class \ -C $(builddir)/src/main/java \ gnu/inet/encoding/StringprepException.class INSTALL_TARGETS += install-jar install-jar: install -d -m 755 $(DESTDIR)$(libidn_jardir) ln -sf libidn-$(VERSION).jar $(DESTDIR)$(libidn_jardir)/libidn.jar clean-local: rm -f $(libidn_jar_DATA) endif install-data-local: $(INSTALL_TARGETS) libidn-1.28/java/pom.xml.in0000644000000000000000000000574612153704376012463 00000000000000 4.0.0 org.gnu.inet libidn GNU IDN Library @VERSION@ GNU Libidn is a fully documented implementation of the Stringprep, Punycode and IDNA specifications. Libidn's purpose is to encode and decode internationalized domain names. UTF-8 1.5 1.5 true true http://www.gnu.org/software/libidn/ 2002 GNU Lesser General Public License version 3.0 or later http://www.gnu.org/licenses/licenses.html repo scm:git:git://git.savannah.gnu.org/libidn.git http://git.savannah.gnu.org/gitweb/?p=libidn.git GNU http://www.gnu.org/ com.google.code.findbugs annotations 2.0.1 provided junit junit 4.11 test com.google.guava guava 14.0.1 test com.google.caliper caliper 0.5-rc1 test org.apache.maven.plugins maven-compiler-plugin 3.1 org.apache.maven.plugins maven-surefire-plugin 2.14.1 caliper maven-surefire-plugin **/Caliper*.java libidn-1.28/java/Makefile.in0000644000000000000000000014714512167244661012607 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2004-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @JAVA_TRUE@am__append_1 = install-jar subdir = java DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(srcdir)/pom.xml.in $(am__dist_libidn_jar_DATA_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = pom.xml CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__dist_libidn_jar_DATA_DIST = libidn-$(VERSION).jar am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libidn_jardir)" DATA = $(dist_libidn_jar_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = src EXTRA_DIST = LICENSE-2.0.txt INSTALL_TARGETS = $(am__append_1) @JAVA_TRUE@libidn_jardir = $(datadir)/java @JAVA_TRUE@dist_libidn_jar_DATA = libidn-$(VERSION).jar all: all-recursive .SUFFIXES: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu java/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu java/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): pom.xml: $(top_builddir)/config.status $(srcdir)/pom.xml.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-dist_libidn_jarDATA: $(dist_libidn_jar_DATA) @$(NORMAL_INSTALL) @list='$(dist_libidn_jar_DATA)'; test -n "$(libidn_jardir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(libidn_jardir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libidn_jardir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(libidn_jardir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(libidn_jardir)" || exit $$?; \ done uninstall-dist_libidn_jarDATA: @$(NORMAL_UNINSTALL) @list='$(dist_libidn_jar_DATA)'; test -n "$(libidn_jardir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(libidn_jardir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: check-recursive all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libidn_jardir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." @JAVA_FALSE@clean-local: clean: clean-recursive clean-am: clean-generic clean-libtool clean-local mostlyclean-am distclean: distclean-recursive -rm -f Makefile distclean-am: clean-am distclean-generic distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-data-local install-dist_libidn_jarDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-dist_libidn_jarDATA .MAKE: $(am__recursive_targets) install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool clean-local \ cscopelist-am ctags ctags-am distclean distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-data-local install-dist_libidn_jarDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-dist_libidn_jarDATA @JAVA_TRUE@libidn-$(VERSION).jar: @JAVA_TRUE@ $(JAR) cf $@ \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/CombiningClass.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/Composition.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/DecompositionKeys.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/DecompositionMappings.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/IDNA.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/IDNAException.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/NFKC.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/Punycode.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/PunycodeException.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet\$$1.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet\$$Builder.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet\$$Range.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RangeSet\$$RangeContainsComparator.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/RFC3454.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/Stringprep.class \ @JAVA_TRUE@ -C $(builddir)/src/main/java \ @JAVA_TRUE@ gnu/inet/encoding/StringprepException.class @JAVA_TRUE@install-jar: @JAVA_TRUE@ install -d -m 755 $(DESTDIR)$(libidn_jardir) @JAVA_TRUE@ ln -sf libidn-$(VERSION).jar $(DESTDIR)$(libidn_jardir)/libidn.jar @JAVA_TRUE@clean-local: @JAVA_TRUE@ rm -f $(libidn_jar_DATA) install-data-local: $(INSTALL_TARGETS) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/Makefile.am0000644000000000000000000000355412153706572011647 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = gl lib/gl lib po src doc gltests lib/gltests tests examples \ java csharp EXTRA_DIST = cfg.mk maint.mk .clcopying EXTRA_DIST += COPYING.LESSERv2 COPYING.LESSERv3 COPYINGv2 COPYINGv3 ACLOCAL_AMFLAGS = -I m4 -I gl/m4 -I lib/gl/m4 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc EXTRA_DIST += FAQ libc/README libc/getaddrinfo-idn.txt libc/example.c \ contrib/README contrib/idn-python/README \ contrib/idn-python/Makefile contrib/idn-python/idn.c \ contrib/idn-python/test.py contrib/web/idn.php \ contrib/java/README contrib/java/autogen.sh \ contrib/java/configure.ac contrib/java/Makefile.am \ contrib/java/ExampleIDNA.java contrib/java/IDNA.java \ contrib/java/IDNA.c contrib/doxygen/Doxyfile.in \ contrib/doxygen/Doxyfile.orig contrib/doxygen/gdoc2doxygen # Visual Studio project files. EXTRA_DIST += windows/libidn.sln windows/libidn.vcproj \ windows/include/unistd.h windows/include/idn-int.h \ windows/include/stdbool.h windows/include/ac-stdint.h \ windows/include/config.h windows/libidn4win.mk EXTRA_DIST += HACKING pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libidn.pc libidn-1.28/config.h.in0000644000000000000000000011462512167244656011645 00000000000000/* config.h.in. Generated from configure.ac by autoheader. */ /* Define to the number of bits in type 'ptrdiff_t'. */ #undef BITSIZEOF_PTRDIFF_T /* Define to the number of bits in type 'sig_atomic_t'. */ #undef BITSIZEOF_SIG_ATOMIC_T /* Define to the number of bits in type 'size_t'. */ #undef BITSIZEOF_SIZE_T /* Define to the number of bits in type 'wchar_t'. */ #undef BITSIZEOF_WCHAR_T /* Define to the number of bits in type 'wint_t'. */ #undef BITSIZEOF_WINT_T /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ #undef CRAY_STACKSEG_END /* Define if mono is the preferred C# implementation. */ #undef CSHARP_CHOICE_MONO /* Define if pnet is the preferred C# implementation. */ #undef CSHARP_CHOICE_PNET /* Define to 1 if using `alloca.c'. */ #undef C_ALLOCA /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module fscanf shall be considered present. */ #undef GNULIB_FSCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module lock shall be considered present. */ #undef GNULIB_LOCK /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module scanf shall be considered present. */ #undef GNULIB_SCANF /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module strerror shall be considered present. */ #undef GNULIB_STRERROR /* Define to 1 when the gnulib module close should be tested. */ #undef GNULIB_TEST_CLOSE /* Define to 1 when the gnulib module dup2 should be tested. */ #undef GNULIB_TEST_DUP2 /* Define to 1 when the gnulib module environ should be tested. */ #undef GNULIB_TEST_ENVIRON /* Define to 1 when the gnulib module fdopen should be tested. */ #undef GNULIB_TEST_FDOPEN /* Define to 1 when the gnulib module fstat should be tested. */ #undef GNULIB_TEST_FSTAT /* Define to 1 when the gnulib module getcwd should be tested. */ #undef GNULIB_TEST_GETCWD /* Define to 1 when the gnulib module getdtablesize should be tested. */ #undef GNULIB_TEST_GETDTABLESIZE /* Define to 1 when the gnulib module getopt-gnu should be tested. */ #undef GNULIB_TEST_GETOPT_GNU /* Define to 1 when the gnulib module lstat should be tested. */ #undef GNULIB_TEST_LSTAT /* Define to 1 when the gnulib module malloc-posix should be tested. */ #undef GNULIB_TEST_MALLOC_POSIX /* Define to 1 when the gnulib module open should be tested. */ #undef GNULIB_TEST_OPEN /* Define to 1 when the gnulib module putenv should be tested. */ #undef GNULIB_TEST_PUTENV /* Define to 1 when the gnulib module setenv should be tested. */ #undef GNULIB_TEST_SETENV /* Define to 1 when the gnulib module setlocale should be tested. */ #undef GNULIB_TEST_SETLOCALE /* Define to 1 when the gnulib module stat should be tested. */ #undef GNULIB_TEST_STAT /* Define to 1 when the gnulib module strerror should be tested. */ #undef GNULIB_TEST_STRERROR /* Define to 1 when the gnulib module strverscmp should be tested. */ #undef GNULIB_TEST_STRVERSCMP /* Define to 1 when the gnulib module symlink should be tested. */ #undef GNULIB_TEST_SYMLINK /* Define to 1 when the gnulib module unsetenv should be tested. */ #undef GNULIB_TEST_UNSETENV /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-mbtoucr shall be considered present. */ #undef GNULIB_UNISTR_U8_MBTOUCR /* Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module unistr/u8-uctomb shall be considered present. */ #undef GNULIB_UNISTR_U8_UCTOMB /* Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution. */ #undef HAVE_ALLOCA /* Define to 1 if you have and it should be used (not on Ultrix). */ #undef HAVE_ALLOCA_H /* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE /* Define if the GNU dcgettext() function is already present or preinstalled. */ #undef HAVE_DCGETTEXT /* Define to 1 if you have the declaration of `getenv', and to 0 if you don't. */ #undef HAVE_DECL_GETENV /* Define to 1 if you have the declaration of `program_invocation_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_NAME /* Define to 1 if you have the declaration of `program_invocation_short_name', and to 0 if you don't. */ #undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME /* Define to 1 if you have the declaration of `setenv', and to 0 if you don't. */ #undef HAVE_DECL_SETENV /* Define to 1 if you have the declaration of `strerror_r', and to 0 if you don't. */ #undef HAVE_DECL_STRERROR_R /* Define to 1 if you have the declaration of `unsetenv', and to 0 if you don't. */ #undef HAVE_DECL_UNSETENV /* Define to 1 if you have the declaration of `_putenv', and to 0 if you don't. */ #undef HAVE_DECL__PUTENV /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you have the 'dup2' function. */ #undef HAVE_DUP2 /* Define if you have the declaration of environ. */ #undef HAVE_ENVIRON_DECL /* Define to 1 if you have the header file. */ #undef HAVE_FEATURES_H /* Define to 1 if you have the `getdtablesize' function. */ #undef HAVE_GETDTABLESIZE /* Define to 1 if you have the header file. */ #undef HAVE_GETOPT_H /* Define to 1 if you have the `getopt_long_only' function. */ #undef HAVE_GETOPT_LONG_ONLY /* Define if the GNU gettext() function is already present or preinstalled. */ #undef HAVE_GETTEXT /* Define if you have the iconv() function and it works. */ #undef HAVE_ICONV /* Define to 1 if you have the header file. */ #undef HAVE_ICONV_H /* Define to 1 if the compiler supports one of the keywords 'inline', '__inline__', '__inline' and effectively inlines functions marked as such. */ #undef HAVE_INLINE /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if you have and nl_langinfo(CODESET). */ #undef HAVE_LANGINFO_CODESET /* Define if your file defines LC_MESSAGES. */ #undef HAVE_LC_MESSAGES /* Define to 1 if the system has the type 'long long int'. */ #undef HAVE_LONG_LONG_INT /* Define to 1 if you have the `lstat' function. */ #undef HAVE_LSTAT /* Define if the 'malloc' function is POSIX compliant. */ #undef HAVE_MALLOC_POSIX /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define to 1 on MSVC platforms that have the "invalid parameter handler" concept. */ #undef HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Define to 1 if you have the `newlocale' function. */ #undef HAVE_NEWLOCALE /* Define to 1 if you have the `pthread_atfork' function. */ #undef HAVE_PTHREAD_ATFORK /* Define if the defines PTHREAD_MUTEX_RECURSIVE. */ #undef HAVE_PTHREAD_MUTEX_RECURSIVE /* Define if the POSIX multithreading library has read/write locks. */ #undef HAVE_PTHREAD_RWLOCK /* Define to 1 if atoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ATOLL /* Define to 1 if btowc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_BTOWC /* Define to 1 if canonicalize_file_name is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME /* Define to 1 if chdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CHDIR /* Define to 1 if chown is declared even after undefining macros. */ #undef HAVE_RAW_DECL_CHOWN /* Define to 1 if dprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DPRINTF /* Define to 1 if dup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP /* Define to 1 if dup2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP2 /* Define to 1 if dup3 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUP3 /* Define to 1 if duplocale is declared even after undefining macros. */ #undef HAVE_RAW_DECL_DUPLOCALE /* Define to 1 if endusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ENDUSERSHELL /* Define to 1 if environ is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ENVIRON /* Define to 1 if euidaccess is declared even after undefining macros. */ #undef HAVE_RAW_DECL_EUIDACCESS /* Define to 1 if faccessat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FACCESSAT /* Define to 1 if fchdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHDIR /* Define to 1 if fchmodat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHMODAT /* Define to 1 if fchownat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCHOWNAT /* Define to 1 if fcntl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FCNTL /* Define to 1 if fdatasync is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FDATASYNC /* Define to 1 if ffsl is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FFSL /* Define to 1 if ffsll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FFSLL /* Define to 1 if fpurge is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FPURGE /* Define to 1 if fseeko is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSEEKO /* Define to 1 if fstat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSTAT /* Define to 1 if fstatat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSTATAT /* Define to 1 if fsync is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FSYNC /* Define to 1 if ftello is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FTELLO /* Define to 1 if ftruncate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FTRUNCATE /* Define to 1 if futimens is declared even after undefining macros. */ #undef HAVE_RAW_DECL_FUTIMENS /* Define to 1 if getcwd is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETCWD /* Define to 1 if getdelim is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDELIM /* Define to 1 if getdomainname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDOMAINNAME /* Define to 1 if getdtablesize is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETDTABLESIZE /* Define to 1 if getgroups is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETGROUPS /* Define to 1 if gethostname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETHOSTNAME /* Define to 1 if getline is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLINE /* Define to 1 if getloadavg is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOADAVG /* Define to 1 if getlogin is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOGIN /* Define to 1 if getlogin_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETLOGIN_R /* Define to 1 if getpagesize is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETPAGESIZE /* Define to 1 if gets is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETS /* Define to 1 if getsubopt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETSUBOPT /* Define to 1 if getusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GETUSERSHELL /* Define to 1 if grantpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GRANTPT /* Define to 1 if group_member is declared even after undefining macros. */ #undef HAVE_RAW_DECL_GROUP_MEMBER /* Define to 1 if imaxabs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_IMAXABS /* Define to 1 if imaxdiv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_IMAXDIV /* Define to 1 if initstate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_INITSTATE /* Define to 1 if initstate_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_INITSTATE_R /* Define to 1 if isatty is declared even after undefining macros. */ #undef HAVE_RAW_DECL_ISATTY /* Define to 1 if lchmod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LCHMOD /* Define to 1 if lchown is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LCHOWN /* Define to 1 if link is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LINK /* Define to 1 if linkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LINKAT /* Define to 1 if lseek is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LSEEK /* Define to 1 if lstat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_LSTAT /* Define to 1 if mbrlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBRLEN /* Define to 1 if mbrtowc is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBRTOWC /* Define to 1 if mbsinit is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSINIT /* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSNRTOWCS /* Define to 1 if mbsrtowcs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MBSRTOWCS /* Define to 1 if memmem is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMMEM /* Define to 1 if mempcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMPCPY /* Define to 1 if memrchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MEMRCHR /* Define to 1 if mkdirat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKDIRAT /* Define to 1 if mkdtemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKDTEMP /* Define to 1 if mkfifo is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKFIFO /* Define to 1 if mkfifoat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKFIFOAT /* Define to 1 if mknod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKNOD /* Define to 1 if mknodat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKNODAT /* Define to 1 if mkostemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKOSTEMP /* Define to 1 if mkostemps is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKOSTEMPS /* Define to 1 if mkstemp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKSTEMP /* Define to 1 if mkstemps is declared even after undefining macros. */ #undef HAVE_RAW_DECL_MKSTEMPS /* Define to 1 if openat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_OPENAT /* Define to 1 if pclose is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PCLOSE /* Define to 1 if pipe is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PIPE /* Define to 1 if pipe2 is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PIPE2 /* Define to 1 if popen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POPEN /* Define to 1 if posix_openpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_POSIX_OPENPT /* Define to 1 if pread is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PREAD /* Define to 1 if ptsname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PTSNAME /* Define to 1 if ptsname_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PTSNAME_R /* Define to 1 if pwrite is declared even after undefining macros. */ #undef HAVE_RAW_DECL_PWRITE /* Define to 1 if random is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RANDOM /* Define to 1 if random_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RANDOM_R /* Define to 1 if rawmemchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RAWMEMCHR /* Define to 1 if readlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_READLINK /* Define to 1 if readlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_READLINKAT /* Define to 1 if realpath is declared even after undefining macros. */ #undef HAVE_RAW_DECL_REALPATH /* Define to 1 if renameat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RENAMEAT /* Define to 1 if rmdir is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RMDIR /* Define to 1 if rpmatch is declared even after undefining macros. */ #undef HAVE_RAW_DECL_RPMATCH /* Define to 1 if secure_getenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SECURE_GETENV /* Define to 1 if setenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETENV /* Define to 1 if sethostname is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETHOSTNAME /* Define to 1 if setlocale is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETLOCALE /* Define to 1 if setstate is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETSTATE /* Define to 1 if setstate_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETSTATE_R /* Define to 1 if setusershell is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SETUSERSHELL /* Define to 1 if sleep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SLEEP /* Define to 1 if snprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SNPRINTF /* Define to 1 if srandom is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SRANDOM /* Define to 1 if srandom_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SRANDOM_R /* Define to 1 if stat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STAT /* Define to 1 if stpcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STPCPY /* Define to 1 if stpncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STPNCPY /* Define to 1 if strcasestr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCASESTR /* Define to 1 if strchrnul is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRCHRNUL /* Define to 1 if strdup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRDUP /* Define to 1 if strerror_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRERROR_R /* Define to 1 if strncat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNCAT /* Define to 1 if strndup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNDUP /* Define to 1 if strnlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRNLEN /* Define to 1 if strpbrk is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRPBRK /* Define to 1 if strsep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRSEP /* Define to 1 if strsignal is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRSIGNAL /* Define to 1 if strtod is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOD /* Define to 1 if strtoimax is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOIMAX /* Define to 1 if strtok_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOK_R /* Define to 1 if strtoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOLL /* Define to 1 if strtoull is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOULL /* Define to 1 if strtoumax is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRTOUMAX /* Define to 1 if strverscmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_STRVERSCMP /* Define to 1 if symlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SYMLINK /* Define to 1 if symlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_SYMLINKAT /* Define to 1 if tmpfile is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TMPFILE /* Define to 1 if ttyname_r is declared even after undefining macros. */ #undef HAVE_RAW_DECL_TTYNAME_R /* Define to 1 if unlink is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLINK /* Define to 1 if unlinkat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLINKAT /* Define to 1 if unlockpt is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNLOCKPT /* Define to 1 if unsetenv is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UNSETENV /* Define to 1 if usleep is declared even after undefining macros. */ #undef HAVE_RAW_DECL_USLEEP /* Define to 1 if utimensat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_UTIMENSAT /* Define to 1 if vdprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_VDPRINTF /* Define to 1 if vsnprintf is declared even after undefining macros. */ #undef HAVE_RAW_DECL_VSNPRINTF /* Define to 1 if wcpcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCPCPY /* Define to 1 if wcpncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCPNCPY /* Define to 1 if wcrtomb is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCRTOMB /* Define to 1 if wcscasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCASECMP /* Define to 1 if wcscat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCAT /* Define to 1 if wcschr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCHR /* Define to 1 if wcscmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCMP /* Define to 1 if wcscoll is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCOLL /* Define to 1 if wcscpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCPY /* Define to 1 if wcscspn is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSCSPN /* Define to 1 if wcsdup is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSDUP /* Define to 1 if wcslen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSLEN /* Define to 1 if wcsncasecmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCASECMP /* Define to 1 if wcsncat is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCAT /* Define to 1 if wcsncmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCMP /* Define to 1 if wcsncpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNCPY /* Define to 1 if wcsnlen is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNLEN /* Define to 1 if wcsnrtombs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSNRTOMBS /* Define to 1 if wcspbrk is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSPBRK /* Define to 1 if wcsrchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSRCHR /* Define to 1 if wcsrtombs is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSRTOMBS /* Define to 1 if wcsspn is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSSPN /* Define to 1 if wcsstr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSSTR /* Define to 1 if wcstok is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSTOK /* Define to 1 if wcswidth is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSWIDTH /* Define to 1 if wcsxfrm is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCSXFRM /* Define to 1 if wctob is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCTOB /* Define to 1 if wcwidth is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WCWIDTH /* Define to 1 if wmemchr is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCHR /* Define to 1 if wmemcmp is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCMP /* Define to 1 if wmemcpy is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMCPY /* Define to 1 if wmemmove is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMMOVE /* Define to 1 if wmemset is declared even after undefining macros. */ #undef HAVE_RAW_DECL_WMEMSET /* Define to 1 if _Exit is declared even after undefining macros. */ #undef HAVE_RAW_DECL__EXIT /* Define to 1 if you have the header file. */ #undef HAVE_SEARCH_H /* Define to 1 if you have the `setenv' function. */ #undef HAVE_SETENV /* Define to 1 if you have the `setlocale' function. */ #undef HAVE_SETLOCALE /* Define to 1 if 'sig_atomic_t' is a signed integer type. */ #undef HAVE_SIGNED_SIG_ATOMIC_T /* Define to 1 if 'wchar_t' is a signed integer type. */ #undef HAVE_SIGNED_WCHAR_T /* Define to 1 if 'wint_t' is a signed integer type. */ #undef HAVE_SIGNED_WINT_T /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the `strerror_r' function. */ #undef HAVE_STRERROR_R /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the `strverscmp' function. */ #undef HAVE_STRVERSCMP /* Define to 1 if you have the `symlink' function. */ #undef HAVE_SYMLINK /* Define to 1 if you have the header file. */ #undef HAVE_SYS_BITYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_INTTYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_PARAM_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_SOCKET_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the `tsearch' function. */ #undef HAVE_TSEARCH /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the `unsetenv' function. */ #undef HAVE_UNSETENV /* Define to 1 if the system has the type 'unsigned long long int'. */ #undef HAVE_UNSIGNED_LONG_LONG_INT /* Define to 1 if you have the `uselocale' function. */ #undef HAVE_USELOCALE /* Define to 1 or 0, depending whether the compiler supports simple visibility declarations. */ #undef HAVE_VISIBILITY /* Define to 1 if you have the header file. */ #undef HAVE_WCHAR_H /* Define if you have the 'wchar_t' type. */ #undef HAVE_WCHAR_T /* Define to 1 if you have the header file. */ #undef HAVE_WINSOCK2_H /* Define if you have the 'wint_t' type. */ #undef HAVE_WINT_T /* Define to 1 if O_NOATIME works. */ #undef HAVE_WORKING_O_NOATIME /* Define to 1 if O_NOFOLLOW works. */ #undef HAVE_WORKING_O_NOFOLLOW /* Define to 1 if you have the header file. */ #undef HAVE_XLOCALE_H /* Define to 1 if the system has the type `_Bool'. */ #undef HAVE__BOOL /* Define to 1 if you have the `_set_invalid_parameter_handler' function. */ #undef HAVE__SET_INVALID_PARAMETER_HANDLER /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST /* Define to a symbolic name denoting the flavor of iconv_open() implementation. */ #undef ICONV_FLAVOR /* Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash. */ #undef LSTAT_FOLLOWS_SLASHED_SYMLINK /* Define to the sub-directory in which libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */ #undef MALLOC_0_IS_NONNULL /* Define to 1 if open() fails to recognize a trailing slash. */ #undef OPEN_TRAILING_SLASH_BUG /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* String identifying the packager of this software */ #undef PACKAGE_PACKAGER /* Packager info for bug reports (URL/e-mail/...) */ #undef PACKAGE_PACKAGER_BUG_REPORTS /* Packager-specific version information */ #undef PACKAGE_PACKAGER_VERSION /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define if exists and defines unusable PRI* macros. */ #undef PRI_MACROS_BROKEN /* Define to the type that is the result of default argument promotions of type mode_t. */ #undef PROMOTED_MODE_T /* Define if the pthread_in_use() detection is hard. */ #undef PTHREAD_IN_USE_DETECTION_HARD /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'ptrdiff_t'. */ #undef PTRDIFF_T_SUFFIX /* Define to 1 if stat needs help when passed a directory name with a trailing slash */ #undef REPLACE_FUNC_STAT_DIR /* Define to 1 if stat needs help when passed a file name with a trailing slash */ #undef REPLACE_FUNC_STAT_FILE /* Define to 1 if strerror(0) does not return a message implying success. */ #undef REPLACE_STRERROR_0 /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'sig_atomic_t'. */ #undef SIG_ATOMIC_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'size_t'. */ #undef SIZE_T_SUFFIX /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if the `S_IS*' macros in do not work properly. */ #undef STAT_MACROS_BROKEN /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Define to 1 if strerror_r returns char *. */ #undef STRERROR_R_CHAR_P /* Define if the POSIX multithreading library can be used. */ #undef USE_POSIX_THREADS /* Define if references to the POSIX multithreading library should be made weak. */ #undef USE_POSIX_THREADS_WEAK /* Define if the GNU Pth multithreading library can be used. */ #undef USE_PTH_THREADS /* Define if references to the GNU Pth multithreading library should be made weak. */ #undef USE_PTH_THREADS_WEAK /* Define if the old Solaris multithreading library can be used. */ #undef USE_SOLARIS_THREADS /* Define if references to the old Solaris multithreading library should be made weak. */ #undef USE_SOLARIS_THREADS_WEAK /* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on OS X. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif /* Define if the native Windows multithreading API can be used. */ #undef USE_WINDOWS_THREADS /* Version number of package */ #undef VERSION /* Define to 1 if unsetenv returns void instead of int. */ #undef VOID_UNSETENV /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wchar_t'. */ #undef WCHAR_T_SUFFIX /* Define to l, ll, u, ul, ull, etc., as suitable for constants of type 'wint_t'. */ #undef WINT_T_SUFFIX /* Define to 1 if you want TLD code. */ #undef WITH_TLD /* Enable large inode numbers on Mac OS X 10.5. */ #undef _DARWIN_USE_64_BIT_INODE /* Number of bits in a file offset, on hosts where this is settable. */ #undef _FILE_OFFSET_BITS /* Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct stat.st_size becomes 64-bit. */ #undef _GL_WINDOWS_64_BIT_ST_SIZE /* Define for large files, on AIX-style hosts. */ #undef _LARGE_FILES /* Define to 1 on Solaris. */ #undef _LCONV_C99 /* Define to 1 if on MINIX. */ #undef _MINIX /* Define to 1 to make NetBSD features available. MINIX 3 needs this. */ #undef _NETBSD_SOURCE /* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif /* Define to 2 if the system does not provide POSIX.1 features except with this defined. */ #undef _POSIX_1_SOURCE /* Define to 1 if you need to in order for 'stat' and other things to work. */ #undef _POSIX_SOURCE /* Define to rpl_ if the getopt replacement functions and variables should be used. */ #undef __GETOPT_PREFIX /* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress the use of extern inline on Apple's platforms, as Libc at least through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g., . Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined __APPLE__) # if __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif /* Suppress GCC's bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see . */ # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif /* A replacement for va_copy, if needed. */ #define gl_va_copy(a,b) ((a) = (b)) /* Define to `__inline__' or `__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif /* Define to `int' if does not define. */ #undef mode_t /* Define to the type of st_nlink in struct stat, or a supertype. */ #undef nlink_t /* Define to `int' if does not define. */ #undef pid_t /* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict or __restrict__, even though the corresponding Sun C compiler ends up with "#define restrict _Restrict" or "#define restrict __restrict__" in the previous line. Perhaps some future version of Sun C++ will work with restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict # define __restrict__ #endif /* Define to `unsigned int' if does not define. */ #undef size_t /* Define as a signed type of the same size as size_t. */ #undef ssize_t /* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif /* Define as a macro for copying va_list variables. */ #undef va_copy libidn-1.28/ChangeLog0000644000000000000000000150014412167253747011371 000000000000002013-07-10 Simon Josefsson * NEWS: Version 1.28. 2013-07-10 Simon Josefsson * doc/libidn.texi: Java doc fix. 2013-07-10 Simon Josefsson * java/src/util/java/TestIDNA.java: Fix last commit. 2013-07-10 Simon Josefsson * NEWS: Add. 2013-07-10 Simon Josefsson * java/src/util/java/TestIDNA.java: Fix -a and -u logic mixup. 2013-07-10 Simon Josefsson * .gitignore: Ignore more. 2013-07-10 Simon Josefsson * po/vi.po.in: Sync with TP. 2013-07-09 Simon Josefsson * gl/m4/gnulib-comp.m4: Update gnulib files. 2013-07-09 Simon Josefsson * java/Makefile.am: Add all classes. 2013-07-09 Simon Josefsson * .gitignore: Ignore more. 2013-07-08 Simon Josefsson * cfg.mk, configure.ac: Bump gettext to 0.18.3 to work better with modern automake. 2013-07-08 Simon Josefsson * configure.ac: Fix for recent automake. 2013-07-08 Simon Josefsson * NEWS: Add. 2013-07-08 Simon Josefsson * gl/m4/extern-inline.m4, gl/m4/gnulib-comp.m4, gl/msvc-inval.c, gl/verify.h, gltests/getcwd-lgpl.c, gltests/ignore-value.h, lib/gl/m4/extern-inline.m4, lib/gltests/verify.h: Update gnulib files. 2013-06-06 Simon Josefsson * lib/stringprep.h: Generated. 2013-06-06 Simon Josefsson * java/src/main/java/gnu/inet/encoding/Makefile.am: Dist RangeSet.java. 2013-06-06 Simon Josefsson * java/Makefile.am: Include RangeSet.class in jar file, otherwise compilation fails. 2013-06-05 Simon Josefsson * NEWS, THANKS, src/idn.c: Prevent tool from crashing when stringprep_utf8_to_locale doesn't work. Reported by Jeffrey Frey . 2013-06-05 Simon Josefsson * doc/announce.txt: Update for 1.26. 2013-06-05 Simon Josefsson * NEWS, configure.ac: Bump versions. 2013-06-05 Simon Josefsson * .gitignore: Ignore more. 2013-06-05 Simon Josefsson * NEWS: Version 1.27. 2013-06-05 Simon Josefsson * AUTHORS: Add. 2013-06-05 Simon Josefsson * NEWS: Add NEWS blurbs. 2013-06-05 Simon Josefsson * java/src/main/java/Makefile.am, java/src/main/java/gnu/inet/encoding/RangeSet.java, java/src/main/java/gnu/inet/encoding/Stringprep.java, java/src/test/java/gnu/inet/encoding/RangeSetTest.java, java/src/test/java/gnu/inet/encoding/caliper/CaliperStringprep.java: Fix syntax-check nits. 2013-06-05 Simon Josefsson * .clcopying, AUTHORS, COPYING, FAQ, HACKING, Makefile.am, NEWS, README, THANKS, TODO, cfg.mk, configure.ac, contrib/README, contrib/doxygen/gdoc2doxygen, contrib/java/Makefile.am, contrib/java/README, csharp/AssemblyInfo.cs, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/Makefile.am, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Program.cs, csharp/generate/Tokenizer.cs, doc/Makefile.am, doc/cyclo/Makefile.am, doc/gdoc, doc/gdoc.mk, doc/java/Makefile.am, doc/libidn.texi, doc/tld/Makefile.am, doc/tld/README, doc/tld/fr.tld, doc/tld/no.tld, examples/Makefile.am, examples/README, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c, java/Makefile.am, java/src/Makefile.am, java/src/main/Makefile.am, java/src/main/java/Makefile.am, java/src/main/java/gnu/Makefile.am, java/src/main/java/gnu/inet/Makefile.am, java/src/main/java/gnu/inet/encoding/IDNA.java, java/src/main/java/gnu/inet/encoding/IDNAException.java, java/src/main/java/gnu/inet/encoding/Makefile.am, java/src/main/java/gnu/inet/encoding/NFKC.java, java/src/main/java/gnu/inet/encoding/Punycode.java, java/src/main/java/gnu/inet/encoding/PunycodeException.java, java/src/main/java/gnu/inet/encoding/Stringprep.java, java/src/main/java/gnu/inet/encoding/StringprepException.java, java/src/test/Makefile.am, java/src/test/java/Makefile.am, java/src/util/Makefile.am, java/src/util/java/GenerateNFKC.java, java/src/util/java/GenerateRFC3454.java, java/src/util/java/Makefile.am, java/src/util/java/TestIDNA.java, java/src/util/java/TestNFKC.java, lib/Makefile.am, lib/gen-stringprep-tables.pl, lib/gen-tld-tables.pl, lib/gen-unicode-tables.pl, lib/idn-free.c, lib/idn-free.h, lib/idna.c, lib/idna.h, lib/libidn.map, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/stringprep.h, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libc/README, libc/example.c, libc/getaddrinfo-idn.txt, libidn.pc.in, m4/update-header-version.m4, src/Makefile.am, src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/Makefile.am, tests/libidn.supp, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_idna3.c, tests/tst_idna4.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_symbols.c, tests/tst_tld.c, tests/tst_toutf8.c, tests/utils.c, tests/utils.h, windows/include/ac-stdint.h, windows/include/config.h, windows/include/idn-int.h, windows/include/stdbool.h, windows/libidn4win.mk: Update copyright years. 2013-06-05 Simon Josefsson * po/eo.po.in: Sync with TP. 2013-06-05 Simon Josefsson * GNUmakefile, build-aux/config.rpath, build-aux/csharpcomp.sh.in, build-aux/csharpexec.sh.in, build-aux/gendocs.sh, build-aux/gnupload, build-aux/pmccabe2html, build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h, build-aux/snippet/unused-parameter.h, build-aux/snippet/warn-on-use.h, build-aux/update-copyright, build-aux/useless-if-before-free, build-aux/vc-list-files, doc/gendocs_template, gl/Makefile.am, gl/errno.in.h, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_int.h, gl/gettext.h, gl/intprops.h, gl/m4/00gnulib.m4, gl/m4/alloca.m4, gl/m4/autobuild.m4, gl/m4/close.m4, gl/m4/csharp.m4, gl/m4/csharpcomp.m4, gl/m4/csharpexec.m4, gl/m4/dup2.m4, gl/m4/eealloc.m4, gl/m4/environ.m4, gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extensions.m4, gl/m4/extern-inline.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/fdopen.m4, gl/m4/fstat.m4, gl/m4/getcwd.m4, gl/m4/getdtablesize.m4, gl/m4/getopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/include_next.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4, gl/m4/largefile.m4, gl/m4/longlong.m4, gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/malloca.m4, gl/m4/manywarnings.m4, gl/m4/mode_t.m4, gl/m4/msvc-inval.m4, gl/m4/msvc-nothrow.m4, gl/m4/multiarch.m4, gl/m4/nocrash.m4, gl/m4/off_t.m4, gl/m4/open.m4, gl/m4/pathmax.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/ssize_t.m4, gl/m4/stat.m4, gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4, gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4, gl/m4/symlink.m4, gl/m4/sys_socket_h.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_types_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/valgrind-tests.m4, gl/m4/version-etc.m4, gl/m4/warn-on-use.m4, gl/m4/warnings.m4, gl/m4/wchar_h.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c, gl/msvc-nothrow.h, gl/progname.c, gl/progname.h, gl/stdarg.in.h, gl/stddef.in.h, gl/strerror-override.c, gl/strerror-override.h, gl/strerror.c, gl/string.in.h, gl/sys_types.in.h, gl/unistd.in.h, gl/verify.h, gl/version-etc.c, gl/version-etc.h, gltests/Makefile.am, gltests/alloca.in.h, gltests/binary-io.h, gltests/close.c, gltests/dosname.h, gltests/dup2.c, gltests/fcntl.in.h, gltests/fd-hook.c, gltests/fd-hook.h, gltests/fdopen.c, gltests/fstat.c, gltests/getcwd-lgpl.c, gltests/getdtablesize.c, gltests/ignore-value.h, gltests/init.sh, gltests/inttypes.in.h, gltests/lstat.c, gltests/macros.h, gltests/malloc.c, gltests/malloca.c, gltests/malloca.h, gltests/open.c, gltests/pathmax.h, gltests/putenv.c, gltests/same-inode.h, gltests/setenv.c, gltests/signature.h, gltests/stat.c, gltests/stdbool.in.h, gltests/stdint.in.h, gltests/stdio.c, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/symlink.c, gltests/sys_stat.in.h, gltests/test-alloca-opt.c, gltests/test-binary-io.c, gltests/test-close.c, gltests/test-dup2.c, gltests/test-environ.c, gltests/test-errno.c, gltests/test-fdopen.c, gltests/test-fgetc.c, gltests/test-fputc.c, gltests/test-fread.c, gltests/test-fstat.c, gltests/test-fwrite.c, gltests/test-getcwd-lgpl.c, gltests/test-getdtablesize.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-ignore-value.c, gltests/test-init.sh, gltests/test-intprops.c, gltests/test-inttypes.c, gltests/test-lstat.c, gltests/test-lstat.h, gltests/test-malloca.c, gltests/test-open.c, gltests/test-open.h, gltests/test-pathmax.c, gltests/test-setenv.c, gltests/test-stat.c, gltests/test-stat.h, gltests/test-stdbool.c, gltests/test-stddef.c, gltests/test-stdint.c, gltests/test-stdio.c, gltests/test-strerror.c, gltests/test-symlink.c, gltests/test-symlink.h, gltests/test-sys_types.c, gltests/test-unsetenv.c, gltests/test-vc-list-files-cvs.sh, gltests/test-vc-list-files-git.sh, gltests/test-verify.c, gltests/test-version-etc.c, gltests/test-version-etc.sh, gltests/time.in.h, gltests/unsetenv.c, gltests/version-etc-fsf.c, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/c-ctype.c, lib/gl/c-ctype.h, lib/gl/c-strcase.h, lib/gl/c-strcasecmp.c, lib/gl/c-strncasecmp.c, lib/gl/gettext.h, lib/gl/iconv.c, lib/gl/iconv.in.h, lib/gl/iconv_close.c, lib/gl/iconv_open.c, lib/gl/m4/00gnulib.m4, lib/gl/m4/alloca.m4, lib/gl/m4/codeset.m4, lib/gl/m4/eealloc.m4, lib/gl/m4/environ.m4, lib/gl/m4/extensions.m4, lib/gl/m4/extern-inline.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/include_next.m4, lib/gl/m4/inline.m4, lib/gl/m4/intlmacosx.m4, lib/gl/m4/inttypes-pri.m4, lib/gl/m4/inttypes.m4, lib/gl/m4/lcmessage.m4, lib/gl/m4/ld-output-def.m4, lib/gl/m4/ld-version-script.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4, lib/gl/m4/libunistring-base.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-ja.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/locale-zh.m4, lib/gl/m4/locale_h.m4, lib/gl/m4/localename.m4, lib/gl/m4/lock.m4, lib/gl/m4/longlong.m4, lib/gl/m4/malloc.m4, lib/gl/m4/malloca.m4, lib/gl/m4/multiarch.m4, lib/gl/m4/off_t.m4, lib/gl/m4/putenv.m4, lib/gl/m4/setenv.m4, lib/gl/m4/setlocale.m4, lib/gl/m4/ssize_t.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/stdint.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/string_h.m4, lib/gl/m4/strverscmp.m4, lib/gl/m4/sys_types_h.m4, lib/gl/m4/thread.m4, lib/gl/m4/threadlib.m4, lib/gl/m4/unistd_h.m4, lib/gl/m4/visibility.m4, lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar_h.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/m4/yield.m4, lib/gl/stdbool.in.h, lib/gl/stddef.in.h, lib/gl/stdint.in.h, lib/gl/striconv.c, lib/gl/striconv.h, lib/gl/string.in.h, lib/gl/strverscmp.c, lib/gl/unistr.in.h, lib/gl/unistr/u8-mbtoucr.c, lib/gl/unistr/u8-uctomb-aux.c, lib/gl/unistr/u8-uctomb.c, lib/gl/unitypes.in.h, lib/gltests/Makefile.am, lib/gltests/alloca.in.h, lib/gltests/glthread/lock.c, lib/gltests/glthread/lock.h, lib/gltests/glthread/thread.c, lib/gltests/glthread/thread.h, lib/gltests/glthread/threadlib.c, lib/gltests/glthread/yield.h, lib/gltests/init.sh, lib/gltests/intprops.h, lib/gltests/inttypes.in.h, lib/gltests/locale.in.h, lib/gltests/localename.c, lib/gltests/localename.h, lib/gltests/macros.h, lib/gltests/malloc.c, lib/gltests/malloca.c, lib/gltests/malloca.h, lib/gltests/putenv.c, lib/gltests/setenv.c, lib/gltests/setlocale.c, lib/gltests/signature.h, lib/gltests/stdlib.in.h, lib/gltests/sys_types.in.h, lib/gltests/test-alloca-opt.c, lib/gltests/test-c-ctype.c, lib/gltests/test-c-strcasecmp.c, lib/gltests/test-c-strncasecmp.c, lib/gltests/test-environ.c, lib/gltests/test-iconv.c, lib/gltests/test-init.sh, lib/gltests/test-intprops.c, lib/gltests/test-inttypes.c, lib/gltests/test-locale.c, lib/gltests/test-localename.c, lib/gltests/test-lock.c, lib/gltests/test-malloca.c, lib/gltests/test-setenv.c, lib/gltests/test-setlocale1.c, lib/gltests/test-setlocale2.c, lib/gltests/test-stdbool.c, lib/gltests/test-stddef.c, lib/gltests/test-stdint.c, lib/gltests/test-stdlib.c, lib/gltests/test-striconv.c, lib/gltests/test-strverscmp.c, lib/gltests/test-sys_types.c, lib/gltests/test-sys_wait.h, lib/gltests/test-thread_create.c, lib/gltests/test-thread_self.c, lib/gltests/test-unistd.c, lib/gltests/test-unsetenv.c, lib/gltests/test-verify.c, lib/gltests/unistd.in.h, lib/gltests/unistr/test-u8-mbtoucr.c, lib/gltests/unistr/test-u8-uctomb.c, lib/gltests/unsetenv.c, lib/gltests/verify.h, lib/gltests/wchar.in.h, maint.mk: Update gnulib files. 2013-06-05 Simon Josefsson * .gitignore: Fix .gitignore for new java stuff. 2013-05-02 stela * java/src/main/java/gnu/inet/encoding/RangeSet.java, java/src/test/java/gnu/inet/encoding/RangeSetTest.java, java/src/test/java/gnu/inet/encoding/StringprepTest.java, java/src/test/java/gnu/inet/encoding/caliper/CaliperStringprep.java: Added missing copyright headers. Describe how to use caliper benchmarks with jenkins/hudson + caliper-ci. Signed-off-by: Simon Josefsson 2013-04-29 stela * java/pom.xml.in: Upgraded (test) dependencies and mvn plugins to latest versions Signed-off-by: Simon Josefsson 2013-04-29 stela * java/src/test/java/gnu/inet/encoding/RangeSetTest.java: Avoid using deprecared junit classes Signed-off-by: Simon Josefsson 2013-02-08 stela * java/src/main/java/gnu/inet/encoding/RangeSet.java, java/src/main/java/gnu/inet/encoding/Stringprep.java: First do simplistic check if input is all within common pass-through ranges. Speeds up common inputs up to about 25%. Signed-off-by: Simon Josefsson 2013-02-08 stela * java/src/main/java/gnu/inet/encoding/RangeSet.java, java/src/main/java/gnu/inet/encoding/Stringprep.java: Eliminate length-calculations, minor cleanups Signed-off-by: Simon Josefsson 2013-02-08 stela * java/src/main/java/gnu/inet/encoding/RangeSet.java, java/src/main/java/gnu/inet/encoding/Stringprep.java: Optimize search for head-range, don't binary-search past end-index of highest character Signed-off-by: Simon Josefsson 2013-02-07 stela * java/src/main/java/gnu/inet/encoding/RangeSet.java: Optimize search for head-range, don't binary-search past end-index of highest character Signed-off-by: Simon Josefsson 2013-02-03 stela * java/src/main/java/gnu/inet/encoding/RangeSet.java: First check most significant gap (exists if it contains the letter "a") in the ranges, often provides fast-fail Signed-off-by: Simon Josefsson 2013-01-29 stela * java/src/main/java/gnu/inet/encoding/Stringprep.java: Filter using RangeSet, reverse loops order Signed-off-by: Simon Josefsson 2013-01-29 stela * java/src/main/java/gnu/inet/encoding/NFKC.java: normalizeNFKC pre-allocates output, pre-calculate fixed input length Signed-off-by: Simon Josefsson 2013-01-23 stela * java/src/main/java/gnu/inet/encoding/Stringprep.java: Replaced all contains methods with RangeSet operations. Made resourceprep faster, others slightly slower. Less redundant code to maintain/optimize later though Signed-off-by: Simon Josefsson 2013-01-23 stela * java/src/main/java/gnu/inet/encoding/RangeSet.java, java/src/main/java/gnu/inet/encoding/Stringprep.java, java/src/test/java/gnu/inet/encoding/RangeSetTest.java, java/src/test/java/gnu/inet/encoding/caliper/CaliperStringprep.java: Added RangeSet implementation used for stringprep-table-contains lookups. Made nodeprep twice as fast, nameprep slightly faster, overall 20-40% faster. Signed-off-by: Simon Josefsson 2012-11-12 stela * java/src/main/java/gnu/inet/encoding/Stringprep.java: If tested text characters all below char to match (out of sorted set), abort as remaining higher chars won't be matched either Signed-off-by: Simon Josefsson 2012-11-12 stela * java/src/main/java/gnu/inet/encoding/Stringprep.java: Don't do redundant StringBuilder length() or charAt() calls when doing contains-checks Signed-off-by: Simon Josefsson 2012-11-12 stela * java/src/main/java/gnu/inet/encoding/Stringprep.java: Do character-replacement lookups through binary search instead of linear search Signed-off-by: Simon Josefsson 2012-11-12 stela * java/src/main/java/gnu/inet/encoding/IDNA.java, java/src/main/java/gnu/inet/encoding/NFKC.java, java/src/main/java/gnu/inet/encoding/Punycode.java, java/src/main/java/gnu/inet/encoding/Stringprep.java: Replace synchronized StringBuffer with faster unsynchronized StringBuilder Signed-off-by: Simon Josefsson 2012-11-12 stela * java/pom.xml.in, java/src/test/java/gnu/inet/encoding/caliper/CaliperStringprep.java: Added caliper tests for common types of stringprep operations. Allows use of jenkins + caliper-ci to produce nice graphs of improvements per release. Signed-off-by: Simon Josefsson 2012-11-12 stela * java/src/main/java/gnu/inet/encoding/IDNA.java, java/src/main/java/gnu/inet/encoding/NFKC.java, java/src/main/java/gnu/inet/encoding/Punycode.java, java/src/main/java/gnu/inet/encoding/Stringprep.java: Revert from fast StringBuilder to slow StringBuffer for now just to establish a performance baseline. Signed-off-by: Simon Josefsson 2012-11-03 stela * java/pom.xml.in, java/src/main/java/gnu/inet/encoding/NFKC.java, java/src/test/java/gnu/inet/encoding/StringprepTest.java: Added test cases converted from C version. Avoid reading first character of empty strings, happened when a zero width space is converted to nothing. Signed-off-by: Simon Josefsson 2012-11-03 stela * java/src/main/java/gnu/inet/encoding/NFKC.java: Change comments from stringbuffer to StringBuilder as well Signed-off-by: Simon Josefsson 2012-11-02 stela * examples/example3.c, examples/example4.c, examples/example5.c: Make example3/4/5.c compile on Ubuntu 12.04 LTS, cast %ld printf arguments Signed-off-by: Simon Josefsson 2012-11-02 stela * examples/example.c: Make example.c compile on Ubuntu 12.04 LTS, cast %ld printf arguments Signed-off-by: Simon Josefsson 2012-09-02 stela * java/src/main/java/gnu/inet/encoding/IDNA.java, java/src/main/java/gnu/inet/encoding/NFKC.java, java/src/main/java/gnu/inet/encoding/Punycode.java, java/src/main/java/gnu/inet/encoding/Stringprep.java, java/src/util/java/GenerateNFKC.java, java/src/util/java/GenerateRFC3454.java, java/src/util/java/TestIDNA.java, java/src/util/java/TestNFKC.java: Replace needlessly synchronized StringBuffer with StringBuilder everywhere, benchmarked to result in roughly 4x stringprep speedup Signed-off-by: Simon Josefsson 2012-09-01 stela * configure.ac, java/pom.xml.in, pom.xml.in: Make maven build with new directory structure. Added maven configuration to at least avoid warnings when building and make build reproducible Signed-off-by: Simon Josefsson 2012-09-01 stela * configure.ac: Use standard maven directory structure, but still allow building with make. Moved java sources into java/src/main/java instead of plain "java". Created empty src/test/java for future unit test cases. Moved code-generation and test classes into src/util/java instead of "misc" Adapted make files for changed paths Signed-off-by: Simon Josefsson 2012-09-01 stela * doc/java/Makefile.am, java/Makefile.am, java/gnu/Makefile.am, java/gnu/inet/Makefile.am, java/gnu/inet/encoding/CombiningClass.java, java/gnu/inet/encoding/Composition.java, java/gnu/inet/encoding/DecompositionKeys.java, java/gnu/inet/encoding/DecompositionMappings.java, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/RFC3454.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/Makefile.am, java/misc/TestIDNA.java, java/misc/TestNFKC.java, java/src/Makefile.am, java/src/main/Makefile.am, java/src/main/java/Makefile.am, java/src/main/java/gnu/Makefile.am, java/src/main/java/gnu/inet/Makefile.am, java/src/main/java/gnu/inet/encoding/CombiningClass.java, java/src/main/java/gnu/inet/encoding/Composition.java, java/src/main/java/gnu/inet/encoding/DecompositionKeys.java, java/src/main/java/gnu/inet/encoding/DecompositionMappings.java, java/src/main/java/gnu/inet/encoding/IDNA.java, java/src/main/java/gnu/inet/encoding/IDNAException.java, java/src/main/java/gnu/inet/encoding/Makefile.am, java/src/main/java/gnu/inet/encoding/NFKC.java, java/src/main/java/gnu/inet/encoding/Punycode.java, java/src/main/java/gnu/inet/encoding/PunycodeException.java, java/src/main/java/gnu/inet/encoding/RFC3454.java, java/src/main/java/gnu/inet/encoding/Stringprep.java, java/src/main/java/gnu/inet/encoding/StringprepException.java, java/src/test/Makefile.am, java/src/test/java/Makefile.am, java/src/util/Makefile.am, java/src/util/java/GenerateNFKC.java, java/src/util/java/GenerateRFC3454.java, java/src/util/java/Makefile.am, java/src/util/java/TestIDNA.java, java/src/util/java/TestNFKC.java: Use standard maven directory structure, but still allow building with make. Moved java sources into java/src/main/java instead of plain "java". Created empty src/test/java for future unit test cases. Moved code-generation and test classes into src/util/java instead of "misc" Adapted make files for changed paths 2012-12-12 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2012-12-12 Simon Josefsson * build-aux/gnupload, gl/m4/extern-inline.m4, lib/gl/m4/extern-inline.m4: Update gnulib files. 2012-12-11 Simon Josefsson * cfg.mk: Fix release rules. 2012-12-11 Simon Josefsson * HACKING: More release dependencies. 2012-12-11 Simon Josefsson * NEWS: Version 1.26. 2012-12-10 Simon Josefsson * COPYING, NEWS, java/LICENSE-2.0.txt, java/Makefile.am: java: Permit usage by Apache projects. 2012-12-10 Simon Josefsson * HACKING: Note additional dependencies. 2012-12-10 Simon Josefsson * cfg.mk: Improve gendocs.sh usage. 2012-12-09 Simon Josefsson * NEWS: Add. 2012-12-09 Simon Josefsson * tests/tst_tld.c: Fix mem leak. 2012-12-09 Simon Josefsson * .gitignore: Ignore more. 2012-12-09 Simon Josefsson * lib/tld.c: Check for out-of-bounds read (trigger with in={'f','o','o'} and inlen=3). 2012-12-09 Simon Josefsson * configure.ac: Silence warning. 2012-12-09 Simon Josefsson * build-aux/gendocs.sh, build-aux/snippet/warn-on-use.h, doc/fdl-1.3.texi, doc/gendocs_template, gl/Makefile.am, gl/errno.in.h, gl/error.c, gl/m4/eealloc.m4, gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extern-inline.m4, gl/m4/fstat.m4, gl/m4/gnulib-comp.m4, gl/m4/lstat.m4, gl/m4/manywarnings.m4, gl/m4/open.m4, gl/m4/stat.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4, gl/m4/sys_socket_h.m4, gl/m4/sys_stat_h.m4, gl/m4/unistd_h.m4, gl/strerror-override.c, gl/strerror-override.h, gl/unistd.c, gl/unistd.in.h, gltests/Makefile.am, gltests/binary-io.c, gltests/binary-io.h, gltests/fcntl.in.h, gltests/fstat.c, gltests/lstat.c, gltests/malloca.h, gltests/open.c, gltests/stat.c, gltests/stdio.c, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, lib/gl/m4/eealloc.m4, lib/gl/m4/extern-inline.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lock.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/thread.m4, lib/gl/m4/unistd_h.m4, lib/gltests/Makefile.am, lib/gltests/glthread/lock.c, lib/gltests/glthread/thread.c, lib/gltests/glthread/thread.h, lib/gltests/localename.c, lib/gltests/malloca.h, lib/gltests/stdlib.in.h, lib/gltests/unistd.c, lib/gltests/unistd.in.h, maint.mk: Update gnulib files. 2012-11-22 Simon Josefsson * po/hr.po.in: Sync with TP. 2012-09-18 Simon Josefsson * doc/Makefile.am, doc/Makefile.gdoci, doc/gdoc.mk: Use modern gdoc.mk. 2012-09-18 Simon Josefsson * lib/nfkc.c: Silence clang warning in library. 2012-09-18 Simon Josefsson * NEWS: Add. 2012-09-18 Simon Josefsson * tests/tst_tld.c: Improve tld self-test. 2012-09-18 Simon Josefsson * po/hr.po.in: Sync with TP. 2012-09-18 Simon Josefsson * build-aux/gendocs.sh, gl/m4/fcntl-o.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/manywarnings.m4, gltests/stdbool.in.h, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/stdbool.in.h, maint.mk: Update gnulib files. 2012-08-09 Simon Josefsson * .gitignore, Makefile.am, cfg.mk, doc/announce.txt, doc/libidn.texi, win32/include/ac-stdint.h, win32/include/config.h, win32/include/idn-int.h, win32/include/stdbool.h, win32/include/unistd.h, win32/libidn.sln, win32/libidn.vcproj, win32/libidn4win.mk, windows/include/ac-stdint.h, windows/include/config.h, windows/include/idn-int.h, windows/include/stdbool.h, windows/include/unistd.h, windows/libidn.sln, windows/libidn.vcproj, windows/libidn4win.mk: Rename win32/ to windows/. 2012-08-09 Simon Josefsson * gl/Makefile.am, maint.mk: Update gnulib files. 2012-08-02 Simon Josefsson * NEWS: Mention i18n update. 2012-08-02 Simon Josefsson * po/LINGUAS, po/hr.po.in, po/vi.po.in: Sync with TP. 2012-08-02 Simon Josefsson * cfg.mk: Silence syntax-check. 2012-08-02 Simon Josefsson * build-aux/gnupload, gl/errno.in.h, gl/m4/errno_h.m4, gl/m4/extensions.m4, gl/m4/fdopen.m4, gl/m4/getopt.m4, gl/m4/gnulib-common.m4, gl/m4/largefile.m4, gl/m4/manywarnings.m4, gl/m4/multiarch.m4, gl/m4/nocrash.m4, gl/m4/stdio_h.m4, gl/m4/time_h.m4, gl/override/lib/gettext.h.diff, gl/strerror-override.c, gl/strerror-override.h, gl/unistd.in.h, gl/verify.h, gltests/alloca.in.h, gltests/fstat.c, gltests/init.sh, gltests/stat.c, gltests/stdint.in.h, gltests/stdlib.in.h, gltests/test-alloca-opt.c, gltests/test-errno.c, gltests/test-malloca.c, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/intlmacosx.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-ja.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/locale-zh.m4, lib/gl/m4/locale_h.m4, lib/gl/m4/lock.m4, lib/gl/m4/multiarch.m4, lib/gl/m4/threadlib.m4, lib/gl/m4/visibility.m4, lib/gl/override/lib/gettext.h.diff, lib/gl/stdint.in.h, lib/gltests/alloca.in.h, lib/gltests/init.sh, lib/gltests/locale.in.h, lib/gltests/localename.c, lib/gltests/stdlib.in.h, lib/gltests/test-alloca-opt.c, lib/gltests/test-localename.c, lib/gltests/test-malloca.c, lib/gltests/unistd.in.h, lib/gltests/verify.h, maint.mk: Update gnulib files. 2012-08-02 Simon Josefsson * NEWS, THANKS, lib/idna.c: libidn, idna_to_ascii: Propagate error on malloc failure. Reported and tiny patch by Sarat Chandra Addepalli . 2012-05-31 Simon Josefsson * README: Use https URLs. 2012-05-28 Simon Josefsson * doc/announce.txt: Update for 1.25. 2012-05-25 Simon Josefsson * tests/tst_stringprep.c: Improve debug output from version comparisons. 2012-05-23 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2012-05-23 Simon Josefsson * cfg.mk: Fix release rules. 2012-05-23 Simon Josefsson * NEWS: Version 1.25. 2012-05-23 Simon Josefsson * NEWS: Fix. 2012-05-22 Simon Josefsson * cfg.mk, doc/gendocs_template, gl/override/doc/gendocs_template.diff: Use devhelp2 format. 2012-05-22 Simon Josefsson * cfg.mk: Push to git after doing gnupload. 2012-05-22 Simon Josefsson * po/id.po.in: Sync with TP. 2012-05-22 Simon Josefsson * build-aux/snippet/_Noreturn.h, gl/m4/dup2.m4, gl/m4/fstat.m4, gl/m4/getcwd.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/off_t.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/stat.m4, gl/m4/strerror.m4, gl/m4/symlink.m4, gl/m4/sys_types_h.m4, gl/m4/unistd_h.m4, gl/m4/warnings.m4, gltests/binary-io.h, gltests/ignore-value.h, gltests/init.sh, gltests/stdint.in.h, gltests/test-binary-io.c, gltests/test-binary-io.sh, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/malloc.m4, lib/gl/m4/off_t.m4, lib/gl/m4/putenv.m4, lib/gl/m4/setenv.m4, lib/gl/m4/sys_types_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/stdint.in.h, lib/gltests/init.sh: Update gnulib files. 2012-05-22 Simon Josefsson * configure.ac: Revert "Fix version controlled build of libidn with automake 1.12." This reverts commit cf725246a5585d56ccb14c46bfe2a163342ff21f. 2012-05-16 Simon Josefsson * HACKING: Fix valgrind wording. 2012-05-10 Nitin A Kamble * configure.ac: Fix version controlled build of libidn with automake 1.12. Signed-off-by: Simon Josefsson 2012-04-27 Simon Josefsson * NEWS: Add. 2012-04-27 Simon Josefsson * .gitignore, ChangeLog, cfg.mk: Remove ChangeLog, it is generated. 2012-04-27 Simon Josefsson * .gitignore: Ignore more. 2012-04-27 Simon Josefsson * HACKING: Mention release tools. 2012-04-27 Simon Josefsson * build-aux/csharpcomp.sh.in, build-aux/csharpexec.sh.in, build-aux/gnupload, gl/Makefile.am, gl/m4/fstat.m4, gl/m4/gnulib-comp.m4, gl/m4/largefile.m4, gl/m4/stat.m4, gl/m4/stdio_h.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_types_h.m4, gl/m4/unistd_h.m4, gl/m4/warn-on-use.m4, gl/m4/warnings.m4, gl/string.in.h, gl/sys_types.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/fcntl.in.h, gltests/fstat.c, gltests/stat.c, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/test-sys_types.c, gltests/wchar.in.h, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/locale_h.m4, lib/gl/m4/sys_types_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/m4/warn-on-use.m4, lib/gl/string.in.h, lib/gl/unistr.in.h, lib/gl/unitypes.in.h, lib/gltests/Makefile.am, lib/gltests/locale.in.h, lib/gltests/stdlib.in.h, lib/gltests/sys_types.in.h, lib/gltests/test-locale.c, lib/gltests/test-sys_types.c, lib/gltests/unistd.in.h, lib/gltests/wchar.in.h, maint.mk: Update gnulib files. 2012-04-27 Simon Josefsson * po/sr.po.in, po/zh_CN.po.in: Sync with TP. 2012-04-27 Simon Josefsson * NEWS, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c: Fix compiler warning about unused fgets return value. 2012-04-27 Simon Josefsson * .gitignore: Ignore more. 2012-04-27 Simon Josefsson * HACKING, NEWS, tests/Makefile.am, tests/libidn.supp: Add valgrind suppressions file. 2012-04-10 Simon Josefsson * NEWS, THANKS, win32/include/config.h: Dummy defines for _GL_ATTRIBUTE_CONST and _GL_ATTRIBUTE_PURE. Reported by Bartosz Brachaczek in . 2012-03-06 Simon Josefsson * GNUmakefile, build-aux/config.rpath, build-aux/gnupload, build-aux/pmccabe.css, build-aux/update-copyright, doc/fdl-1.3.texi, gl/errno.in.h, gl/gettext.h, gl/m4/stdlib_h.m4, gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c, gl/msvc-nothrow.h, gl/stdarg.in.h, gl/stddef.in.h, gl/string.in.h, gl/unistd.in.h, gl/version-etc.h, gltests/Makefile.am, gltests/alloca.in.h, gltests/fcntl.in.h, gltests/ignore-value.h, gltests/init.sh, gltests/macros.h, gltests/malloc.c, gltests/malloca.c, gltests/malloca.h, gltests/pathmax.h, gltests/stdbool.in.h, gltests/stdint.in.h, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/test-fgetc.c, gltests/test-fputc.c, gltests/test-fread.c, gltests/test-fwrite.c, gltests/test-init.sh, gltests/test-strerror.c, gltests/time.in.h, gltests/wchar.in.h, lib/gl/c-ctype.c, lib/gl/c-ctype.h, lib/gl/c-strcase.h, lib/gl/c-strcasecmp.c, lib/gl/c-strncasecmp.c, lib/gl/gettext.h, lib/gl/iconv.c, lib/gl/iconv.in.h, lib/gl/iconv_close.c, lib/gl/iconv_open.c, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-ja.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/locale-zh.m4, lib/gl/m4/stdlib_h.m4, lib/gl/stdbool.in.h, lib/gl/stddef.in.h, lib/gl/stdint.in.h, lib/gl/striconv.c, lib/gl/striconv.h, lib/gl/string.in.h, lib/gl/strverscmp.c, lib/gltests/Makefile.am, lib/gltests/alloca.in.h, lib/gltests/glthread/lock.c, lib/gltests/glthread/lock.h, lib/gltests/glthread/thread.c, lib/gltests/glthread/thread.h, lib/gltests/glthread/threadlib.c, lib/gltests/glthread/yield.h, lib/gltests/init.sh, lib/gltests/macros.h, lib/gltests/malloc.c, lib/gltests/malloca.c, lib/gltests/malloca.h, lib/gltests/stdlib.in.h, lib/gltests/test-init.sh, lib/gltests/test-lock.c, lib/gltests/test-strverscmp.c, lib/gltests/unistd.in.h, lib/gltests/wchar.in.h, maint.mk: Update gnulib files. 2012-02-08 Simon Josefsson * cfg.mk: Typos. 2012-01-10 Simon Josefsson * cfg.mk: Drop files. 2012-01-10 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2012-01-10 Simon Josefsson * doc/announce.txt: Update for 1.24. 2012-01-10 Simon Josefsson * doc/announce.txt: Update for 1.23. 2012-01-10 Simon Josefsson * ChangeLog: Generated. 2012-01-10 Simon Josefsson * NEWS: Version 1.24. 2012-01-09 Simon Josefsson * doc/reference/libidn-docs.sgml: Fix markup. 2012-01-09 Simon Josefsson * doc/reference/libidn-docs.sgml: Sync intro texts. 2012-01-09 Simon Josefsson * Makefile.am: Also dist COPYING* files. 2012-01-09 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, lib/gltests/test-setlocale2.sh: Update gnulib files. 2012-01-09 Simon Josefsson * tests/tst_pr29.c, tests/utils.c: tst_pr29: Print more debug info. 2012-01-09 Simon Josefsson * NEWS, lib/nfkc.c, lib/stringprep.h: libidn: Add 'const' keyword to 'stringprep_ucs4_nfkc_normalize' function. 2012-01-08 Simon Josefsson * tests/tst_pr29.c: Fix typo. 2012-01-08 Simon Josefsson * NEWS, THANKS, lib/pr29.c, tests/tst_pr29.c: libidn: Fix potential infloop in pr29 code. Reported by Jon Nelson in . 2012-01-08 Simon Josefsson * NEWS: Fix. 2012-01-08 Simon Josefsson * doc/Makefile.am, doc/gpl-3.0.texi, doc/lgpl-3.0.texi: Cleanup copyright info. 2012-01-08 Simon Josefsson * GNUmakefile, build-aux/gnupload, build-aux/useless-if-before-free, gl/Makefile.am, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_int.h, gl/m4/alloca.m4, gl/m4/extensions.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/inttypes.m4, gl/m4/longlong.m4, gl/m4/lstat.m4, gl/m4/time_h.m4, gl/msvc-inval.h, gl/verify.h, gl/version-etc.h, gltests/Makefile.am, gltests/fcntl.in.h, gltests/getcwd-lgpl.c, gltests/init.sh, gltests/inttypes.in.h, gltests/lstat.c, gltests/putenv.c, gltests/setenv.c, gltests/test-init.sh, gltests/unsetenv.c, lib/gl/m4/alloca.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/include_next.m4, lib/gl/m4/inttypes.m4, lib/gl/m4/ld-version-script.m4, lib/gl/m4/longlong.m4, lib/gl/strverscmp.c, lib/gltests/Makefile.am, lib/gltests/init.sh, lib/gltests/inttypes.in.h, lib/gltests/putenv.c, lib/gltests/setenv.c, lib/gltests/test-init.sh, lib/gltests/unsetenv.c, lib/gltests/verify.h, maint.mk: Update gnulib files. 2012-01-08 Simon Josefsson * COPYING, COPYING.LESSERv2, COPYING.LESSERv3, COPYING.LIB, COPYINGv2, COPYINGv3, NEWS, README, csharp/AssemblyInfo.cs, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/Makefile.am, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Program.cs, csharp/generate/Tokenizer.cs, doc/lgpl-2.1.texi, doc/lgpl-3.0.texi, doc/libidn.texi, doc/reference/libidn-docs.sgml, gl/m4/gnulib-cache.m4, java/Makefile.am, java/gnu/Makefile.am, java/gnu/inet/Makefile.am, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/Makefile.am, java/misc/TestIDNA.java, java/misc/TestNFKC.java, lib/Makefile.am, lib/idn-free.c, lib/idn-free.h, lib/idna.c, lib/idna.h, lib/libidn.map, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/stringprep.h, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libc/example.c, pom.xml.in, src/idn.c, win32/include/ac-stdint.h, win32/include/config.h, win32/include/idn-int.h, win32/include/stdbool.h: Relicense libraries from LGPLv2+ to dual-GPLv2+|LGPLv3+. 2012-01-05 Simon Josefsson * lib/idna.c: Put strlen calls in its own line, to simplify valgrind output analysis. 2012-01-05 Simon Josefsson * gl/error.c, gl/msvc-inval.c, gl/msvc-nothrow.c, gltests/dup2.c, gltests/stdio.in.h, gltests/test-dup2.c, gltests/test-vc-list-files-cvs.sh, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-ja.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/locale-zh.m4, lib/gl/m4/threadlib.m4, lib/gltests/glthread/lock.c, lib/gltests/glthread/lock.h, lib/gltests/glthread/thread.c, lib/gltests/glthread/thread.h, lib/gltests/glthread/yield.h, lib/gltests/localename.c, lib/gltests/setlocale.c, lib/gltests/test-lock.c, lib/gltests/test-thread_create.c: Update gnulib files. 2012-01-05 Simon Josefsson * HACKING, Makefile.am, README-alpha: Rename README-alpha to HACKING and include it in tarballs. 2012-01-05 Simon Josefsson * configure.ac: Print whether libiconv was found. 2012-01-03 Simon Josefsson * GNUmakefile, build-aux/config.rpath, build-aux/csharpcomp.sh.in, build-aux/csharpexec.sh.in, build-aux/pmccabe2html, build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h, build-aux/snippet/unused-parameter.h, build-aux/snippet/warn-on-use.h, build-aux/update-copyright, build-aux/useless-if-before-free, build-aux/vc-list-files, gl/Makefile.am, gl/errno.in.h, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_int.h, gl/gettext.h, gl/intprops.h, gl/m4/00gnulib.m4, gl/m4/alloca.m4, gl/m4/autobuild.m4, gl/m4/close.m4, gl/m4/csharp.m4, gl/m4/csharpcomp.m4, gl/m4/csharpexec.m4, gl/m4/dup2.m4, gl/m4/eealloc.m4, gl/m4/environ.m4, gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extensions.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/fdopen.m4, gl/m4/fstat.m4, gl/m4/getcwd.m4, gl/m4/getopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/include_next.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4, gl/m4/largefile.m4, gl/m4/longlong.m4, gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/malloca.m4, gl/m4/manywarnings.m4, gl/m4/mode_t.m4, gl/m4/msvc-inval.m4, gl/m4/msvc-nothrow.m4, gl/m4/multiarch.m4, gl/m4/nocrash.m4, gl/m4/open.m4, gl/m4/pathmax.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/ssize_t.m4, gl/m4/stat.m4, gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4, gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4, gl/m4/symlink.m4, gl/m4/sys_socket_h.m4, gl/m4/sys_stat_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/valgrind-tests.m4, gl/m4/version-etc.m4, gl/m4/warn-on-use.m4, gl/m4/warnings.m4, gl/m4/wchar_h.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c, gl/msvc-nothrow.h, gl/progname.c, gl/progname.h, gl/stdarg.in.h, gl/stddef.in.h, gl/strerror-override.c, gl/strerror-override.h, gl/strerror.c, gl/string.in.h, gl/unistd.in.h, gl/verify.h, gl/version-etc.c, gl/version-etc.h, gltests/Makefile.am, gltests/alloca.in.h, gltests/binary-io.h, gltests/close.c, gltests/dosname.h, gltests/dup2.c, gltests/fcntl.in.h, gltests/fd-hook.c, gltests/fd-hook.h, gltests/fdopen.c, gltests/fstat.c, gltests/getcwd-lgpl.c, gltests/ignore-value.h, gltests/init.sh, gltests/inttypes.in.h, gltests/lstat.c, gltests/macros.h, gltests/malloc.c, gltests/malloca.c, gltests/malloca.h, gltests/open.c, gltests/pathmax.h, gltests/putenv.c, gltests/same-inode.h, gltests/setenv.c, gltests/signature.h, gltests/stat.c, gltests/stdbool.in.h, gltests/stdint.in.h, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/symlink.c, gltests/sys_stat.in.h, gltests/test-alloca-opt.c, gltests/test-binary-io.c, gltests/test-close.c, gltests/test-dup2.c, gltests/test-environ.c, gltests/test-errno.c, gltests/test-fdopen.c, gltests/test-fgetc.c, gltests/test-fputc.c, gltests/test-fread.c, gltests/test-fstat.c, gltests/test-fwrite.c, gltests/test-getcwd-lgpl.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-ignore-value.c, gltests/test-init.sh, gltests/test-intprops.c, gltests/test-inttypes.c, gltests/test-lstat.c, gltests/test-lstat.h, gltests/test-malloca.c, gltests/test-open.c, gltests/test-open.h, gltests/test-pathmax.c, gltests/test-setenv.c, gltests/test-stat.c, gltests/test-stat.h, gltests/test-stdbool.c, gltests/test-stddef.c, gltests/test-stdint.c, gltests/test-stdio.c, gltests/test-strerror.c, gltests/test-symlink.c, gltests/test-symlink.h, gltests/test-unsetenv.c, gltests/test-vc-list-files-cvs.sh, gltests/test-vc-list-files-git.sh, gltests/test-verify.c, gltests/test-version-etc.c, gltests/test-version-etc.sh, gltests/time.in.h, gltests/unsetenv.c, gltests/version-etc-fsf.c, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/c-ctype.c, lib/gl/c-ctype.h, lib/gl/c-strcase.h, lib/gl/c-strcasecmp.c, lib/gl/c-strncasecmp.c, lib/gl/gettext.h, lib/gl/iconv.c, lib/gl/iconv.in.h, lib/gl/iconv_close.c, lib/gl/iconv_open.c, lib/gl/m4/00gnulib.m4, lib/gl/m4/alloca.m4, lib/gl/m4/codeset.m4, lib/gl/m4/eealloc.m4, lib/gl/m4/environ.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/include_next.m4, lib/gl/m4/inline.m4, lib/gl/m4/intlmacosx.m4, lib/gl/m4/inttypes-pri.m4, lib/gl/m4/inttypes.m4, lib/gl/m4/lcmessage.m4, lib/gl/m4/ld-output-def.m4, lib/gl/m4/ld-version-script.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4, lib/gl/m4/libunistring-base.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-ja.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/locale-zh.m4, lib/gl/m4/locale_h.m4, lib/gl/m4/localename.m4, lib/gl/m4/lock.m4, lib/gl/m4/longlong.m4, lib/gl/m4/malloc.m4, lib/gl/m4/malloca.m4, lib/gl/m4/multiarch.m4, lib/gl/m4/putenv.m4, lib/gl/m4/setenv.m4, lib/gl/m4/setlocale.m4, lib/gl/m4/ssize_t.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/stdint.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/string_h.m4, lib/gl/m4/strverscmp.m4, lib/gl/m4/thread.m4, lib/gl/m4/threadlib.m4, lib/gl/m4/unistd_h.m4, lib/gl/m4/visibility.m4, lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar_h.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/m4/yield.m4, lib/gl/stdbool.in.h, lib/gl/stddef.in.h, lib/gl/stdint.in.h, lib/gl/striconv.c, lib/gl/striconv.h, lib/gl/string.in.h, lib/gl/strverscmp.c, lib/gl/unistr.in.h, lib/gl/unistr/u8-mbtoucr.c, lib/gl/unistr/u8-uctomb-aux.c, lib/gl/unistr/u8-uctomb.c, lib/gl/unitypes.in.h, lib/gltests/Makefile.am, lib/gltests/alloca.in.h, lib/gltests/glthread/lock.c, lib/gltests/glthread/lock.h, lib/gltests/glthread/thread.c, lib/gltests/glthread/thread.h, lib/gltests/glthread/threadlib.c, lib/gltests/glthread/yield.h, lib/gltests/init.sh, lib/gltests/intprops.h, lib/gltests/inttypes.in.h, lib/gltests/locale.in.h, lib/gltests/localename.c, lib/gltests/localename.h, lib/gltests/macros.h, lib/gltests/malloc.c, lib/gltests/malloca.c, lib/gltests/malloca.h, lib/gltests/putenv.c, lib/gltests/setenv.c, lib/gltests/setlocale.c, lib/gltests/signature.h, lib/gltests/stdlib.in.h, lib/gltests/test-alloca-opt.c, lib/gltests/test-c-ctype.c, lib/gltests/test-c-strcasecmp.c, lib/gltests/test-c-strncasecmp.c, lib/gltests/test-environ.c, lib/gltests/test-iconv.c, lib/gltests/test-init.sh, lib/gltests/test-intprops.c, lib/gltests/test-inttypes.c, lib/gltests/test-locale.c, lib/gltests/test-localename.c, lib/gltests/test-lock.c, lib/gltests/test-malloca.c, lib/gltests/test-setenv.c, lib/gltests/test-setlocale1.c, lib/gltests/test-setlocale2.c, lib/gltests/test-stdbool.c, lib/gltests/test-stddef.c, lib/gltests/test-stdint.c, lib/gltests/test-stdlib.c, lib/gltests/test-striconv.c, lib/gltests/test-strverscmp.c, lib/gltests/test-sys_wait.h, lib/gltests/test-thread_create.c, lib/gltests/test-thread_self.c, lib/gltests/test-unistd.c, lib/gltests/test-unsetenv.c, lib/gltests/test-verify.c, lib/gltests/unistd.in.h, lib/gltests/unistr/test-u8-mbtoucr.c, lib/gltests/unistr/test-u8-uctomb.c, lib/gltests/unsetenv.c, lib/gltests/verify.h, lib/gltests/wchar.in.h, maint.mk: Update gnulib files. 2012-01-02 Simon Josefsson * po/rw.po.in: Remove stale translation. 2012-01-02 Simon Josefsson * cfg.mk, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Program.cs, csharp/generate/Tokenizer.cs, doc/gendocs_template, doc/tld/no.tld, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/TestIDNA.java, java/misc/TestNFKC.java, lib/Makefile.am, lib/gen-tld-tables.pl, lib/tld.c, lib/tld.h, win32/include/ac-stdint.h, win32/include/idn-int.h, win32/include/stdbool.h: Update FSF copyright years. 2012-01-02 Simon Josefsson * .clcopying, AUTHORS, ChangeLog, FAQ, Makefile.am, NEWS, README, README-alpha, THANKS, TODO, cfg.mk, configure.ac, contrib/README, contrib/doxygen/gdoc2doxygen, contrib/java/Makefile.am, contrib/java/README, csharp/Makefile.am, doc/Makefile.am, doc/Makefile.gdoci, doc/cyclo/Makefile.am, doc/gdoc, doc/java/Makefile.am, doc/libidn.texi, doc/tld/Makefile.am, doc/tld/README, doc/tld/fr.tld, examples/Makefile.am, examples/README, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c, java/Makefile.am, java/gnu/inet/encoding/Makefile.am, lib/Makefile.am, lib/gen-stringprep-tables.pl, lib/gen-tld-tables.pl, lib/gen-unicode-tables.pl, lib/idn-free.c, lib/idn-free.h, lib/idna.c, lib/idna.h, lib/libidn.map, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/stringprep.h, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libc/README, libc/example.c, libc/getaddrinfo-idn.txt, libidn.pc.in, src/Makefile.am, src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/Makefile.am, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_idna3.c, tests/tst_idna4.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_symbols.c, tests/tst_tld.c, tests/tst_toutf8.c, tests/utils.c, tests/utils.h, win32/libidn4win.mk: Update copyright years. 2011-12-27 Simon Josefsson * THANKS: Mention gnulib in THANKS. 2011-12-27 Simon Josefsson * AUTHORS: Update key. 2011-12-27 Simon Josefsson * NEWS, lib/nfkc.c: Sync glib NFKC code and improve copyright/license statements. 2011-12-27 Simon Josefsson * NEWS, po/it.po.in: Sync with TP. 2011-12-27 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/inttypes.m4, gl/m4/stdint.m4, gl/m4/unistd_h.m4, gl/unistd.in.h, gltests/Makefile.am, gltests/init.sh, gltests/inttypes.in.h, gltests/stdint.in.h, gltests/test-init.sh, gltests/test-inttypes.c, gltests/test-stdint.c, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/inttypes.m4, lib/gl/m4/stdint.m4, lib/gl/m4/unistd_h.m4, lib/gl/stdint.in.h, lib/gltests/Makefile.am, lib/gltests/init.sh, lib/gltests/inttypes.in.h, lib/gltests/test-init.sh, lib/gltests/test-inttypes.c, lib/gltests/test-stdint.c, lib/gltests/unistd.in.h: Update gnulib files. 2011-12-27 Simon Josefsson * NEWS, THANKS: Give credit. 2011-12-27 Simon Josefsson * lib/Makefile.am: Fix parallel MinGW-builds (no deps for libidn-X.def). Clean libidn-X.def. Reported by René Berber . 2011-11-30 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/manywarnings.m4, gltests/Makefile.am, gltests/test-binary-io.c, gltests/test-binary-io.sh, maint.mk: Update gnulib files. 2011-11-28 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2011-11-28 Simon Josefsson * gl/Makefile.am, gl/m4/dup2.m4, gl/m4/getcwd.m4, gl/m4/getopt.m4, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, lib/gl/Makefile.am, lib/gl/c-ctype.h, lib/gl/c-strcase.h, lib/gl/gnulib.mk, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/unistd_h.m4, lib/gltests/Makefile.am, lib/gltests/gnulib.mk: Update gnulib files. Drop unistd/getopt workaround. 2011-11-25 Simon Josefsson * ChangeLog: Generated. 2011-11-25 Simon Josefsson * cfg.mk: Fix release rule. 2011-11-25 Simon Josefsson * NEWS: Version 1.23. 2011-11-25 Simon Josefsson * doc/Makefile.am: Use copyright ranges in man pages. 2011-11-25 Simon Josefsson * lib/gl/Makefile.am, lib/gl/gnulib.mk, lib/gl/m4/gnulib-cache.m4, lib/gltests/Makefile.am, lib/gltests/gnulib.mk: Add necessary -I's when building lib/gltests/. Reported by Bruno Haible. 2011-11-25 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gltests/Makefile.am, gltests/test-binary-io.c, gltests/test-binary-io.sh: Disable non-working binary-io self-tests. Reported by Bruno Haible. 2011-11-25 Simon Josefsson * NEWS, lib/stringprep.h: Get ssize_t from sys/types.h instead of unistd.h. Reported by Bruno Haible. 2011-11-25 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gltests/Makefile.am, gltests/test-update-copyright.sh: Drop update-copyright-tests module due to bugs. 2011-11-25 Simon Josefsson * gl/m4/valgrind-tests.m4, gltests/init.sh, lib/gl/m4/gnulib-common.m4, lib/gltests/init.sh: Fix valgrind. 2011-11-22 Simon Josefsson * .gitignore, build-aux/csharpexec.sh.in, configure.ac, csharp/Makefile.am, gl/Makefile.am, gl/m4/csharpexec.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4: Use csharpexec from gnulib to run .NET binaries. 2011-11-21 Simon Josefsson * doc/gdoc: Don't hard code perl path in gdoc. 2011-11-21 Simon Josefsson * tests/Makefile.am: Use -no-install instead of -static. 2011-11-21 Simon Josefsson * configure.ac: Ignore some recent warnings. 2011-11-21 Simon Josefsson * configure.ac, examples/example.c, examples/example3.c, examples/example4.c, examples/example5.c, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_idna3.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/utils.c: Fix warnings. 2011-11-21 Simon Josefsson * NEWS: Add. 2011-11-21 Simon Josefsson * win32/libidn4win.mk: Ignore gnulib self-tests under Wine. 2011-11-21 Simon Josefsson * .gitignore, win32/libidn4win.mk: Use separate build trees for Windows 32 and 64 bit. 2011-11-21 Simon Josefsson * cfg.mk: Create Windows binaries during release. 2011-11-21 Simon Josefsson * doc/cyclo/Makefile.am: Fix links in generated cyclo output. 2011-11-21 Simon Josefsson * configure.ac: Use silent build rules. 2011-11-21 Simon Josefsson * .gitignore, configure.ac, doc/reference/Makefile.am, doc/reference/libidn-docs.sgml, doc/reference/version.xml.in, gtk-doc.make, lib/pr29.c, lib/strerror-pr29.c, m4/gtk-doc.m4: Update GTK-DOC infrastructure. 2011-11-21 Simon Josefsson * .gitignore, cfg.mk: Update release rules. 2011-11-21 Simon Josefsson * GNUmakefile, build-aux/arg-nonnull.h, build-aux/c++defs.h, build-aux/snippet/_Noreturn.h, build-aux/snippet/arg-nonnull.h, build-aux/snippet/c++defs.h, build-aux/snippet/unused-parameter.h, build-aux/snippet/warn-on-use.h, build-aux/vc-list-files, build-aux/warn-on-use.h, configure.ac, doc/fdl-1.3.texi, doc/lgpl-2.1.texi, gl/Makefile.am, gl/errno.in.h, gl/error.c, gl/getopt.c, gl/getopt.in.h, gl/intprops.h, gl/m4/alloca.m4, gl/m4/close.m4, gl/m4/dup2.m4, gl/m4/environ.m4, gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extensions.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/fdopen.m4, gl/m4/fstat.m4, gl/m4/getcwd.m4, gl/m4/getopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4, gl/m4/largefile.m4, gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/manywarnings.m4, gl/m4/msvc-inval.m4, gl/m4/msvc-nothrow.m4, gl/m4/multiarch.m4, gl/m4/nocrash.m4, gl/m4/open.m4, gl/m4/pathmax.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/ssize_t.m4, gl/m4/stat.m4, gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4, gl/m4/symlink.m4, gl/m4/sys_socket_h.m4, gl/m4/sys_stat_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/warn-on-use.m4, gl/m4/warnings.m4, gl/m4/wchar_h.m4, gl/m4/wint_t.m4, gl/msvc-inval.c, gl/msvc-inval.h, gl/msvc-nothrow.c, gl/msvc-nothrow.h, gl/override/lib/dup2.c.diff, gl/override/lib/gettext.h.diff, gl/override/m4/open.m4.diff, gl/stdarg.in.h, gl/stddef.in.h, gl/strerror-override.c, gl/strerror-override.h, gl/strerror.c, gl/string.in.h, gl/unistd.in.h, gl/verify.h, gltests/Makefile.am, gltests/close.c, gltests/dup2.c, gltests/fcntl.in.h, gltests/fd-hook.c, gltests/fd-hook.h, gltests/fdopen.c, gltests/fstat.c, gltests/getcwd-lgpl.c, gltests/init.sh, gltests/inttypes.in.h, gltests/lstat.c, gltests/macros.h, gltests/open.c, gltests/pathmax.h, gltests/putenv.c, gltests/setenv.c, gltests/stat.c, gltests/stdint.in.h, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/test-close.c, gltests/test-dup2.c, gltests/test-fdopen.c, gltests/test-fgetc.c, gltests/test-fputc.c, gltests/test-fread.c, gltests/test-fstat.c, gltests/test-fwrite.c, gltests/test-getcwd-lgpl.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-intprops.c, gltests/test-inttypes.c, gltests/test-pathmax.c, gltests/test-stat.c, gltests/test-stat.h, gltests/test-stdint.c, gltests/test-strerror.c, gltests/test-update-copyright.sh, gltests/test-verify.c, gltests/time.in.h, gltests/unsetenv.c, gltests/verify.h, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/iconv.c, lib/gl/iconv.in.h, lib/gl/iconv_close.c, lib/gl/m4/alloca.m4, lib/gl/m4/environ.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/include_next.m4, lib/gl/m4/inline.m4, lib/gl/m4/inttypes-pri.m4, lib/gl/m4/inttypes.m4, lib/gl/m4/libunistring-base.m4, lib/gl/m4/locale-zh.m4, lib/gl/m4/locale_h.m4, lib/gl/m4/malloc.m4, lib/gl/m4/putenv.m4, lib/gl/m4/setenv.m4, lib/gl/m4/setlocale.m4, lib/gl/m4/ssize_t.m4, lib/gl/m4/stdint.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/string_h.m4, lib/gl/m4/strverscmp.m4, lib/gl/m4/unistd_h.m4, lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar_h.m4, lib/gl/override/lib/gettext.h.diff, lib/gl/stddef.in.h, lib/gl/stdint.in.h, lib/gl/string.in.h, lib/gl/unistr.in.h, lib/gl/unistr/u8-mbtoucr.c, lib/gl/unistr/u8-uctomb-aux.c, lib/gl/unistr/u8-uctomb.c, lib/gl/unitypes.in.h, lib/gltests/Makefile.am, lib/gltests/glthread/lock.h, lib/gltests/glthread/thread.c, lib/gltests/glthread/thread.h, lib/gltests/glthread/yield.h, lib/gltests/init.sh, lib/gltests/intprops.h, lib/gltests/inttypes.in.h, lib/gltests/locale.in.h, lib/gltests/localename.c, lib/gltests/localename.h, lib/gltests/macros.h, lib/gltests/putenv.c, lib/gltests/setenv.c, lib/gltests/stdlib.in.h, lib/gltests/test-intprops.c, lib/gltests/test-inttypes.c, lib/gltests/test-lock.c, lib/gltests/test-thread_create.c, lib/gltests/test-thread_self.c, lib/gltests/test-verify.c, lib/gltests/unistd.in.h, lib/gltests/unistr/test-u8-mbtoucr.c, lib/gltests/unistr/test-u8-uctomb.c, lib/gltests/unsetenv.c, lib/gltests/verify.h, lib/gltests/wchar.in.h, maint.mk: Update gnulib files. 2011-11-16 Simon Josefsson * README-alpha: Doc fix. 2011-10-19 Simon Josefsson * lib/nfkc.c: Doc fix. 2011-10-19 Simon Josefsson * NEWS, THANKS, lib/idn-free.h: idn-free.h: Protect prototypes with 'extern "C"' marker. Reported by Bittner Ede . 2011-10-01 Simon Josefsson * NEWS: Mention TLD URL patch. 2011-09-30 Thomas Jacob * doc/libidn.texi, doc/tld/README: Moved extra TLD tables to github Signed-off-by: Thomas Jacob Signed-off-by: Simon Josefsson 2011-08-13 Simon Josefsson * po/fr.po.in: Sync with TP. 2011-05-05 Simon Josefsson * cfg.mk: Add some pre-release rules. 2011-05-05 Simon Josefsson * NEWS: Update translations. 2011-05-05 Simon Josefsson * po/LINGUAS, po/cs.po.in, po/de.po.in, po/fi.po.in, po/nl.po.in, po/pl.po.in, po/uk.po.in, po/zh_CN.po.in: Sync with TP. 2011-05-04 Simon Josefsson * doc/announce.txt: Update for 1.22. 2011-05-04 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2011-05-04 Simon Josefsson * ChangeLog: Generated. 2011-05-04 Simon Josefsson * NEWS: Version 1.22. 2011-05-04 Simon Josefsson * NEWS, cfg.mk, lib/idna.c, lib/nfkc.c: dev: Ran clang-analyze on the code. Fixed some dead assignments/initializations. 2011-05-04 Simon Josefsson * NEWS: Doc fix. 2011-05-03 Simon Josefsson * .gitignore, NEWS, THANKS, lib/idna.c, lib/stringprep.h, tests/Makefile.am, tests/tst_idna4.c: libidn: Fix memory leak when idna_to_ascii_4i fails. Reported by and tiny patch from Olga Limburg . 2011-05-03 Simon Josefsson * build-aux/vc-list-files, cfg.mk, gl/m4/dup2.m4, gl/m4/gnulib-comp.m4, gl/m4/manywarnings.m4, gl/m4/stdio_h.m4, gltests/stdlib.in.h, lib/gl/m4/gnulib-comp.m4, lib/gltests/stdlib.in.h, maint.mk: Update gnulib files. 2011-05-01 Simon Josefsson * cfg.mk: Improve coverage rule names. Drop mingw rules (see win32/libidn4win.mk). 2011-04-28 Simon Josefsson * NEWS, THANKS, libidn.pc.in: libidn: Add -liconv as static library requirement in libidn.pc, for MinGW. Reported by Volker Grabsch . 2011-04-25 Simon Josefsson * THANKS, doc/libidn.texi: Document --disable-valgrind-tests. Suggested by Guido Trentalancia . 2011-04-24 Simon Josefsson * doc/announce.txt: Update for 1.21. 2011-04-24 Simon Josefsson * win32/libidn4win.mk: Fix. 2011-04-24 Simon Josefsson * Makefile.am, NEWS: build: Really distribute win32/libidn4win.mk. 2011-04-24 Simon Josefsson * NEWS, configure.ac: Bump version. 2011-04-24 Simon Josefsson * ChangeLog: Generated. 2011-04-24 Simon Josefsson * NEWS: Version 1.21. 2011-04-24 Simon Josefsson * NEWS, configure.ac: Demand newer gettext in order to get newer M4 files. Reported by Dagobert Michelsen in . 2011-04-24 Simon Josefsson * NEWS, win32/libidn4win.mk: libidn4win.mk: Add license and generalize it. 2011-04-24 Simon Josefsson * .gitignore, .x-sc_avoid_if_before_free, .x-sc_bindtextdomain, .x-sc_cast_of_alloca_return_value, .x-sc_error_message_uppercase, .x-sc_file_system, .x-sc_makefile_at_at_check, .x-sc_makefile_check, .x-sc_prohibit_atoi_atof, .x-sc_prohibit_empty_lines_at_EOF, .x-sc_space_tab, .x-sc_texinfo_acronym, .x-sc_the_the, COPYING.LIB, README, README-alpha, build-aux/gendocs.sh, build-aux/useless-if-before-free, cfg.mk, doc/gendocs_template, gl/Makefile.am, gl/m4/alloca.m4, gl/m4/errno_h.m4, gl/m4/fcntl_h.m4, gl/m4/gnulib-common.m4, gl/m4/open.m4, gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4, gl/m4/stdio_h.m4, gl/m4/string_h.m4, gl/m4/unistd_h.m4, gl/m4/valgrind-tests.m4, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/fcntl.in.h, gltests/malloc.c, gltests/malloca.c, gltests/open.c, gltests/setenv.c, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/test-ignore-value.c, gltests/test-open.h, gltests/verify.h, lib/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/alloca.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/stdint.m4, lib/gl/m4/string_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/m4/wchar_h.m4, lib/gl/string.in.h, lib/gltests/Makefile.am, lib/gltests/malloc.c, lib/gltests/malloca.c, lib/gltests/setenv.c, lib/gltests/stdlib.in.h, lib/gltests/unistd.in.h, lib/gltests/verify.h, lib/gltests/wchar.in.h, lib/stringprep.h, libidn.pc.in, maint.mk, src/Makefile.am, tests/Makefile.am: Update gnulib files and fix syntax check warnings. 2011-03-21 Simon Josefsson * NEWS, THANKS, win32/libidn.vcproj: Define LIBIDN_BUILDING. Tiny patch from Waqas Hussain . 2011-03-05 Simon Josefsson * win32/libidn4win.mk: Add. 2011-03-01 Simon Josefsson * doc/announce.txt: Update for 1.20. 2011-03-01 Simon Josefsson * NEWS, configure.ac: Bump versions. 2011-03-01 Simon Josefsson * NEWS: Fix release type. 2011-03-01 Simon Josefsson * ChangeLog: Generated. 2011-03-01 Simon Josefsson * NEWS: Version 1.20. 2011-03-01 Simon Josefsson * doc/Makefile.am: Bump copyright years. 2011-03-01 Simon Josefsson * NEWS, THANKS, src/idn.c: idn: Only print license blurb on interactive use. Reported by "Andrew O. Shadoura" and Roman Mamedov in and respectively. 2011-03-01 Simon Josefsson * lib/Makefile.am: Disable build rules for no longer generated files. 2011-03-01 Simon Josefsson * po/cs.po.in, po/da.po.in, po/de.po.in, po/eo.po.in, po/id.po.in, po/it.po.in, po/ja.po.in, po/nl.po.in, po/pl.po.in, po/ro.po.in, po/sr.po.in, po/zh_CN.po.in: Sync with TP. 2011-03-01 Simon Josefsson * .clcopying, AUTHORS, ChangeLog, FAQ, Makefile.am, README, README-alpha, TODO, cfg.mk, configure.ac, contrib/README, contrib/doxygen/gdoc2doxygen, contrib/java/Makefile.am, contrib/java/README, csharp/Makefile.am, csharp/generate/Program.cs, doc/Makefile.am, doc/Makefile.gdoci, doc/cyclo/Makefile.am, doc/gdoc, doc/gendocs_template, doc/java/Makefile.am, doc/libidn.texi, doc/specifications/Makefile.am, doc/tld/Makefile.am, doc/tld/README, doc/tld/fr.tld, doc/tld/no.tld, examples/Makefile.am, examples/README, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c, java/Makefile.am, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/Stringprep.java, java/misc/TestIDNA.java, java/misc/TestNFKC.java, lib/Makefile.am, lib/gen-stringprep-tables.pl, lib/gen-tld-tables.pl, lib/gen-unicode-tables.pl, lib/idn-free.c, lib/idn-free.h, lib/idna.h, lib/libidn.map, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/stringprep.h, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libc/README, libc/example.c, libc/getaddrinfo-idn.txt, libidn.pc.in, m4/update-header-version.m4, po/cs.po.in, po/da.po.in, po/de.po.in, po/eo.po.in, po/id.po.in, po/it.po.in, po/ja.po.in, po/nl.po.in, po/pl.po.in, po/ro.po.in, po/rw.po.in, po/sr.po.in, po/zh_CN.po.in, src/Makefile.am, src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_symbols.c, tests/tst_tld.c, tests/tst_toutf8.c, tests/utils.c, tests/utils.h, win32/include/ac-stdint.h, win32/include/idn-int.h, win32/include/stdbool.h: Bump copyright years. 2011-03-01 Simon Josefsson * NEWS, THANKS, lib/idna.c, tests/Makefile.am, tests/tst_idna3.c: Fix ToUnicode case-insensitivity bug. Debian BTS #610617 reported by Stepan Golosunov . 2011-03-01 Simon Josefsson * NEWS: Add. 2011-03-01 Simon Josefsson * po/da.po.in: Sync with TP. 2011-03-01 Simon Josefsson * .x-sc_bindtextdomain, .x-sc_prohibit_empty_lines_at_EOF, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Tokenizer.cs, csharp/libidn.cmbx, csharp/libidn.csproj, csharp/libidn.csproj.user, csharp/libidn.prjx, csharp/libidn_PPC.csdproj, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/RFC3454.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, maint.mk: Fix syntax-check warnings. 2011-03-01 Simon Josefsson * build-aux/arg-nonnull.h, build-aux/c++defs.h, build-aux/config.rpath, build-aux/warn-on-use.h, gl/Makefile.am, gl/error.h, gl/getopt.in.h, gl/getopt_int.h, gl/gettext.h, gl/m4/dos.m4, gl/m4/dup2.m4, gl/m4/gnulib-comp.m4, gl/m4/longlong.m4, gl/m4/multiarch.m4, gl/m4/setenv.m4, gl/m4/stat.m4, gl/m4/stdbool.m4, gl/m4/stdint.m4, gl/m4/stdio_h.m4, gl/m4/stdlib_h.m4, gl/m4/wchar_h.m4, gl/m4/wint_t.m4, gl/string.in.h, gl/unistd.in.h, gl/version-etc.h, gltests/Makefile.am, gltests/dosname.h, gltests/dup2.c, gltests/ignore-value.h, gltests/stat.c, gltests/stdint.in.h, gltests/stdio.in.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/test-dup2.c, gltests/test-ignore-value.c, gltests/test-stdint.c, gltests/test-stdio.c, gltests/time.in.h, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/gettext.h, lib/gl/m4/alloca.m4, lib/gl/m4/eealloc.m4, lib/gl/m4/environ.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/intlmacosx.m4, lib/gl/m4/lcmessage.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-ja.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/locale-zh.m4, lib/gl/m4/locale_h.m4, lib/gl/m4/localename.m4, lib/gl/m4/lock.m4, lib/gl/m4/longlong.m4, lib/gl/m4/malloc.m4, lib/gl/m4/malloca.m4, lib/gl/m4/putenv.m4, lib/gl/m4/setenv.m4, lib/gl/m4/setlocale.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stdint.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/thread.m4, lib/gl/m4/threadlib.m4, lib/gl/m4/unistd_h.m4, lib/gl/m4/wchar_h.m4, lib/gl/m4/yield.m4, lib/gl/stdint.in.h, lib/gl/string.in.h, lib/gl/wchar.in.h, lib/gltests/Makefile.am, lib/gltests/alloca.in.h, lib/gltests/dummy.c, lib/gltests/glthread/lock.c, lib/gltests/glthread/lock.h, lib/gltests/glthread/thread.c, lib/gltests/glthread/thread.h, lib/gltests/glthread/threadlib.c, lib/gltests/glthread/yield.h, lib/gltests/locale.in.h, lib/gltests/localename.c, lib/gltests/localename.h, lib/gltests/malloc.c, lib/gltests/malloca.c, lib/gltests/malloca.h, lib/gltests/malloca.valgrind, lib/gltests/putenv.c, lib/gltests/setenv.c, lib/gltests/setlocale.c, lib/gltests/stdlib.in.h, lib/gltests/test-alloca-opt.c, lib/gltests/test-environ.c, lib/gltests/test-locale.c, lib/gltests/test-localename.c, lib/gltests/test-lock.c, lib/gltests/test-malloca.c, lib/gltests/test-setenv.c, lib/gltests/test-setlocale1.c, lib/gltests/test-setlocale1.sh, lib/gltests/test-setlocale2.c, lib/gltests/test-setlocale2.sh, lib/gltests/test-stdlib.c, lib/gltests/test-sys_wait.h, lib/gltests/test-unistd.c, lib/gltests/test-unsetenv.c, lib/gltests/unistd.in.h, lib/gltests/unsetenv.c, maint.mk: Update gnulib files. 2011-01-30 Simon Josefsson * GNUmakefile, build-aux/arg-nonnull.h, build-aux/c++defs.h, build-aux/config.rpath, build-aux/csharpcomp.sh.in, build-aux/gendocs.sh, build-aux/pmccabe.css, build-aux/pmccabe2html, build-aux/update-copyright, build-aux/useless-if-before-free, build-aux/vc-list-files, build-aux/warn-on-use.h, gl/Makefile.am, gl/errno.in.h, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_int.h, gl/gettext.h, gl/intprops.h, gl/m4/00gnulib.m4, gl/m4/alloca.m4, gl/m4/autobuild.m4, gl/m4/csharp.m4, gl/m4/csharpcomp.m4, gl/m4/dos.m4, gl/m4/dup2.m4, gl/m4/eealloc.m4, gl/m4/environ.m4, gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extensions.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/getopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/include_next.m4, gl/m4/longlong.m4, gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/malloca.m4, gl/m4/manywarnings.m4, gl/m4/mode_t.m4, gl/m4/multiarch.m4, gl/m4/open.m4, gl/m4/pathmax.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/stat.m4, gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4, gl/m4/stdint.m4, gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4, gl/m4/symlink.m4, gl/m4/sys_stat_h.m4, gl/m4/sys_wait_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/valgrind-tests.m4, gl/m4/version-etc.m4, gl/m4/warn-on-use.m4, gl/m4/warnings.m4, gl/m4/wchar_h.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/progname.c, gl/progname.h, gl/stdarg.in.h, gl/stddef.in.h, gl/strerror.c, gl/string.in.h, gl/unistd.in.h, gl/version-etc.c, gl/version-etc.h, gltests/Makefile.am, gltests/alloca.in.h, gltests/binary-io.h, gltests/dup2.c, gltests/fcntl.in.h, gltests/ignore-value.h, gltests/init.sh, gltests/lstat.c, gltests/macros.h, gltests/malloc.c, gltests/malloca.c, gltests/malloca.h, gltests/open.c, gltests/pathmax.h, gltests/putenv.c, gltests/same-inode.h, gltests/setenv.c, gltests/signature.h, gltests/stat.c, gltests/stdbool.in.h, gltests/stdint.in.h, gltests/stdlib.in.h, gltests/symlink.c, gltests/sys_stat.in.h, gltests/sys_wait.in.h, gltests/test-alloca-opt.c, gltests/test-binary-io.c, gltests/test-dup2.c, gltests/test-environ.c, gltests/test-errno.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-ignore-value.c, gltests/test-lstat.c, gltests/test-lstat.h, gltests/test-malloca.c, gltests/test-open.c, gltests/test-open.h, gltests/test-setenv.c, gltests/test-stat.c, gltests/test-stat.h, gltests/test-stdbool.c, gltests/test-stddef.c, gltests/test-stdint.c, gltests/test-strerror.c, gltests/test-symlink.c, gltests/test-symlink.h, gltests/test-sys_wait.c, gltests/test-sys_wait.h, gltests/test-unsetenv.c, gltests/test-update-copyright.sh, gltests/test-vc-list-files-cvs.sh, gltests/test-vc-list-files-git.sh, gltests/test-verify.c, gltests/test-version-etc.c, gltests/test-version-etc.sh, gltests/time.in.h, gltests/unsetenv.c, gltests/verify.h, gltests/version-etc-fsf.c, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/c-ctype.c, lib/gl/c-ctype.h, lib/gl/c-strcase.h, lib/gl/c-strcasecmp.c, lib/gl/c-strncasecmp.c, lib/gl/gettext.h, lib/gl/iconv.in.h, lib/gl/iconv_open.c, lib/gl/m4/00gnulib.m4, lib/gl/m4/codeset.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/include_next.m4, lib/gl/m4/ld-output-def.m4, lib/gl/m4/ld-version-script.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/longlong.m4, lib/gl/m4/multiarch.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/stdint.m4, lib/gl/m4/string_h.m4, lib/gl/m4/strverscmp.m4, lib/gl/m4/visibility.m4, lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar_h.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/stdbool.in.h, lib/gl/stddef.in.h, lib/gl/stdint.in.h, lib/gl/striconv.c, lib/gl/striconv.h, lib/gl/string.in.h, lib/gl/strverscmp.c, lib/gl/wchar.in.h, lib/gltests/Makefile.am, lib/gltests/dummy.c, lib/gltests/init.sh, lib/gltests/intprops.h, lib/gltests/macros.h, lib/gltests/signature.h, lib/gltests/test-c-ctype.c, lib/gltests/test-c-strcasecmp.c, lib/gltests/test-c-strncasecmp.c, lib/gltests/test-iconv.c, lib/gltests/test-stdbool.c, lib/gltests/test-stddef.c, lib/gltests/test-stdint.c, lib/gltests/test-striconv.c, lib/gltests/test-strverscmp.c, lib/gltests/test-verify.c, lib/gltests/verify.h, maint.mk: Update gnulib files. 2010-10-27 Simon Josefsson * .gitignore: Ignore more. 2010-10-27 Simon Josefsson * configure.ac: Avoid some warnings to make it build with modern gcc on amd64. 2010-09-30 Simon Josefsson * .x-sc_space_tab: Avoid syntax-check warning. 2010-09-30 Simon Josefsson * GNUmakefile, build-aux/gendocs.sh, build-aux/gnupload, build-aux/pmccabe2html, doc/fdl-1.3.texi, gl/m4/environ.m4, gl/m4/error.m4, gl/m4/fcntl-o.m4, gl/m4/getopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/open.m4, gl/m4/setenv.m4, gl/m4/stat.m4, gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stdint.m4, gl/m4/stdlib_h.m4, gl/m4/symlink.m4, gl/m4/sys_wait_h.m4, gl/m4/time_h.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/strerror.c, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/fcntl.in.h, gltests/init.sh, gltests/malloc.c, gltests/malloca.c, gltests/open.c, gltests/setenv.c, gltests/stdlib.in.h, gltests/sys_wait.in.h, gltests/test-malloca.c, gltests/test-stdbool.c, gltests/test-stddef.c, gltests/test-sys_wait.c, gltests/test-sys_wait.h, gltests/test-update-copyright.sh, gltests/test-vc-list-files-cvs.sh, gltests/test-vc-list-files-git.sh, gltests/test-verify.c, gltests/time.in.h, lib/gl/m4/codeset.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/include_next.m4, lib/gl/m4/ld-version-script.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stdint.m4, lib/gl/m4/visibility.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/string.in.h, lib/gltests/init.sh, lib/gltests/test-stdbool.c, lib/gltests/test-stddef.c, lib/gltests/test-verify.c, maint.mk: Update gnulib files. 2010-05-27 Simon Josefsson * doc/announce.txt: Doc fix. 2010-05-24 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2010-05-24 Simon Josefsson * doc/announce.txt: Update announce.txt for 1.19. 2010-05-22 Simon Josefsson * .gitignore: Improve. 2010-05-22 Simon Josefsson * cfg.mk: Dist API PDF manual. 2010-05-22 Simon Josefsson * ChangeLog: Generated. 2010-05-22 Simon Josefsson * NEWS: Version 1.19. 2010-05-20 Simon Josefsson * NEWS, cfg.mk, doc/gendocs_template, doc/reference/Makefile.am, gl/override/doc/gendocs_template.diff, gtk-doc.make, m4/gtk-doc.m4: Update GTK-DOC files to enable PDF manual. 2010-05-20 Simon Josefsson * NEWS: Add. 2010-05-20 Simon Josefsson * configure.ac, doc/gendocs_template, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/valgrind-tests.m4, m4/valgrind.m4: Update gnulib files, use new valgrind-tests module. 2010-05-17 Simon Josefsson * build-aux/c++defs.h, build-aux/gendocs.sh, build-aux/gnupload, gl/Makefile.am, gl/error.c, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/unistd.in.h, gltests/Makefile.am, gltests/init.sh, gltests/test-verify.c, gltests/test-verify.sh, gltests/verify.h, gltests/wchar.in.h, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4, lib/gl/wchar.in.h, lib/gltests/Makefile.am, lib/gltests/init.sh, lib/gltests/test-verify.c, lib/gltests/test-verify.sh, lib/gltests/verify.h, maint.mk: Update gnulib files. 2010-04-25 Simon Josefsson * NEWS: Add. 2010-04-25 Simon Josefsson * build-aux/vc-list-files, gl/m4/gnulib-comp.m4, gltests/Makefile.am, gltests/init.sh, gltests/test-vc-list-files-cvs.sh, gltests/test-vc-list-files-git.sh, maint.mk: Update gnulib files. 2010-04-21 Simon Josefsson * lib/gl/m4/visibility.m4: Update gnulib files. 2010-04-19 Simon Josefsson * gl/getopt.c, gl/getopt_int.h, gl/m4/getopt.m4, gltests/setenv.c, gltests/stdbool.in.h, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-stdbool.c, gltests/test-stdint.c, lib/gl/stdbool.in.h, lib/gltests/test-stdbool.c, lib/gltests/test-stdint.c, maint.mk: Update gnulib files. 2010-04-13 Simon Josefsson * maint.mk: Update gnulib files. 2010-04-12 Simon Josefsson * NEWS: Add. 2010-04-12 Simon Josefsson * .x-sc_prohibit_empty_lines_at_EOF: Fix syntax-check warnings. 2010-04-12 Simon Josefsson * doc/reference/Makefile.am, lib/gen-unicode-tables.pl: Fix syntax-check warnings. 2010-04-12 Simon Josefsson * GNUmakefile, build-aux/c++defs.h, build-aux/warn-on-use.h, gl/Makefile.am, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/stdlib_h.m4, gl/m4/string_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/time.in.h, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/string_h.m4, lib/gl/string.in.h, lib/gl/wchar.in.h, lib/gltests/Makefile.am, maint.mk: Update gnulib files. 2010-03-30 Simon Josefsson * m4/valgrind.m4: Sync valgrind.m4. 2010-03-30 Simon Josefsson * src/Makefile.am: Drop code (could never have worked anyway). 2010-03-30 Simon Josefsson * gl/errno.in.h, gl/getopt.in.h, gl/m4/fcntl-o.m4, gl/m4/fcntl_h.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/stddef_h.m4, gl/m4/stdlib_h.m4, gl/m4/string_h.m4, gl/m4/sys_stat_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/wchar_h.m4, gl/stdarg.in.h, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/stdint.in.h, gltests/sys_stat.in.h, gltests/test-dup2.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/time.in.h, lib/gl/iconv.in.h, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/string_h.m4, lib/gl/m4/visibility.m4, lib/gl/m4/wchar_h.m4, lib/gl/stdint.in.h, lib/gl/string.in.h, lib/gltests/Makefile.am, maint.mk: Update gnulib files. 2010-03-26 Simon Josefsson * gl/errno.in.h, gl/getopt.in.h, gl/gettext.h, gl/stdarg.in.h, gl/string.in.h, gl/unistd.in.h, gltests/stdint.in.h, lib/gl/gettext.h, lib/gl/iconv.in.h, lib/gl/stdint.in.h, lib/gl/string.in.h, maint.mk: Update gnulib files. 2010-03-24 Simon Josefsson * maint.mk: Update gnulib files. 2010-03-24 Simon Josefsson * doc/libidn.texi: Fix typos. Drop @acronym use. 2010-03-24 Simon Josefsson * .x-sc_texinfo_acronym: Add. 2010-03-24 Simon Josefsson * build-aux/warn-on-use.h, gl/Makefile.am, gl/getopt.c, gl/m4/setenv.m4, gl/m4/stdlib_h.m4, gl/m4/unistd_h.m4, gl/unistd.in.h, gltests/Makefile.am, gltests/stdlib.in.h, gltests/test-vc-list-files-git.sh, gltests/time.in.h, maint.mk: Update gnulib files. 2010-03-18 Simon Josefsson * cfg.mk, doc/ANNOUNCE, doc/announce.txt: Add review-diff. Move announce file to use consistent filenames. 2010-03-18 Simon Josefsson * gl/Makefile.am, gl/m4/ansi-c++.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/time_h.m4, gl/string.in.h, gltests/Makefile.am, gltests/test-fcntl-h-c++.cc, gltests/test-fcntl-h.c, gltests/test-stdlib-c++.cc, gltests/test-stdlib.c, gltests/test-string-c++.cc, gltests/test-string.c, gltests/test-sys_stat-c++.cc, gltests/test-sys_stat.c, gltests/test-time-c++.cc, gltests/test-time.c, gltests/test-unistd-c++.cc, gltests/test-unistd.c, gltests/test-wchar-c++.cc, gltests/test-wchar.c, gltests/time.in.h: Drop self-tests with C++ code in them. 2010-03-18 Simon Josefsson * build-aux/c++defs.h, build-aux/warn-on-use.h, lib/gl/Makefile.am, lib/gl/m4/ansi-c++.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/string.in.h, lib/gltests/Makefile.am, lib/gltests/test-iconv-h-c++.cc, lib/gltests/test-iconv-h.c, lib/gltests/test-string-c++.cc, lib/gltests/test-string.c, lib/gltests/test-wchar-c++.cc, lib/gltests/test-wchar.c: Drop self-tests with C++ code in them. 2010-03-18 Simon Josefsson * README-alpha: Mention gengetopt. 2010-03-12 Simon Josefsson * gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-comp.m4: Update gnulib files. 2010-03-12 Simon Josefsson * configure.ac: Reorder to avoid bootstrap warnings. 2010-03-12 Simon Josefsson * build-aux/c++defs.h, gl/string.in.h, lib/gl/string.in.h: Update gnulib files. 2010-03-09 Simon Josefsson * configure.ac: Explain deprecated libtool usage. 2010-03-09 Simon Josefsson * configure.ac: Revert "Don't use deprecated libtool functions." AC_PROG_LIBTOOL is required on older systems (e.g., latest Ubuntu LTS). This reverts commit bb239c491ba93a9d2cecf81b53855ecc46d86140. 2010-03-09 Simon Josefsson * configure.ac: Revert "Reorder." AC_PROG_LIBTOOL is required on older systems (e.g., latest Ubuntu LTS). This reverts commit e085f872f2de2e9c33fa4b8c1df559584f375641. 2010-03-09 Simon Josefsson * configure.ac: Reorder. 2010-03-09 Simon Josefsson * configure.ac: Don't use deprecated libtool functions. 2010-03-08 Simon Josefsson * build-aux/c++defs.h, gl/Makefile.am, gl/m4/ansi-c++.m4, gl/m4/fcntl_h.m4, gl/m4/gnulib-comp.m4, gl/m4/stdlib_h.m4, gl/m4/string_h.m4, gl/m4/sys_stat_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/wchar.m4, gl/m4/wchar_h.m4, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/fcntl.in.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/test-fcntl-h-c++.cc, gltests/test-stdlib-c++.cc, gltests/test-string-c++.cc, gltests/test-sys_stat-c++.cc, gltests/test-time-c++.cc, gltests/test-unistd-c++.cc, gltests/test-wchar-c++.cc, gltests/time.in.h, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/iconv.in.h, lib/gl/m4/ansi-c++.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/string_h.m4, lib/gl/m4/wchar.m4, lib/gl/m4/wchar_h.m4, lib/gl/string.in.h, lib/gl/wchar.in.h, lib/gltests/Makefile.am, lib/gltests/test-iconv-h-c++.cc, lib/gltests/test-iconv-h.c, lib/gltests/test-string-c++.cc, lib/gltests/test-wchar-c++.cc: Update gnulib files. 2010-02-24 Simon Josefsson * .gitignore: Add. 2010-02-24 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2010-02-24 Simon Josefsson * build-aux/gendocs.sh, build-aux/vc-list-files, gl/m4/gnulib-common.m4, gl/m4/warn-on-use.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/warn-on-use.m4: Update gnulib files. 2010-02-16 Simon Josefsson * doc/ANNOUNCE: Add. 2010-02-15 Simon Josefsson * ChangeLog: Generated. 2010-02-15 Simon Josefsson * cfg.mk: Release to ftp.gnu.org. 2010-02-15 Simon Josefsson * configure.ac, lib/stringprep.h: Bump versions. 2010-02-15 Simon Josefsson * NEWS: Version 1.18. 2010-02-15 Simon Josefsson * NEWS: Add. 2010-02-15 Simon Josefsson * lib/libidn.map: Put forgotten symbols under old namespace. Suggested by Marco d'Itri in . 2010-02-15 Simon Josefsson * build-aux/gnupload, maint.mk: Update gnulib files. 2010-02-05 Simon Josefsson * ChangeLog: Generated. 2010-02-05 Simon Josefsson * NEWS: Version 1.17. 2010-02-05 Simon Josefsson * cfg.mk: Make this an alpha release. 2010-02-05 Simon Josefsson * po/cs.po.in, po/da.po.in, po/de.po.in, po/eo.po.in, po/id.po.in, po/it.po.in, po/ja.po.in, po/nl.po.in, po/pl.po.in, po/ro.po.in, po/sr.po.in, po/zh_CN.po.in: Sync with TP. 2010-02-05 Simon Josefsson * NEWS: Add. 2010-02-05 Simon Josefsson * lib/idna.c, lib/nfkc.c, lib/pr29.c, lib/punycode.c, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/tld.c, lib/toutf8.c, lib/version.c: Fix GTK-DOC syntax. Unfortunately this looses some information. 2010-02-05 Simon Josefsson * NEWS: Clarify. 2010-02-05 Simon Josefsson * tests/Makefile.am: Another test for MinGW builds. 2010-02-05 Simon Josefsson * tests/Makefile.am: Don't use a libtool helper library, to hopefully make MinGW builds work. 2010-02-05 Simon Josefsson * tests/Makefile.am: Simplify. 2010-02-05 Simon Josefsson * tests/Makefile.am: Check if this makes MinGW builds work better. 2010-02-05 Simon Josefsson * tests/Makefile.am: Drop EXEEXT, to see if MinGW builds improve. 2010-02-03 Simon Josefsson * NEWS: Fix. 2010-02-03 Simon Josefsson * AUTHORS, Makefile.am, NEWS, README, THANKS, TODO, libidn.pc.in, m4/valgrind.m4: Bump copyright years. 2010-02-03 Simon Josefsson * .clcopying, AUTHORS, ChangeLog, FAQ, Makefile.am, README, README-alpha, THANKS, TODO, contrib/README, contrib/doxygen/gdoc2doxygen, contrib/java/Makefile.am, contrib/java/README, csharp/Makefile.am, doc/Makefile.gdoci, doc/cyclo/Makefile.am, doc/gdoc, doc/java/Makefile.am, doc/specifications/Makefile.am, doc/tld/Makefile.am, doc/tld/README, doc/tld/fr.tld, examples/Makefile.am, examples/README, examples/example.c, examples/example2.c, examples/example5.c, java/Makefile.am, java/gnu/inet/encoding/Makefile.am, lib/Makefile.am, lib/gen-tld-tables.pl, lib/idn-free.c, lib/idn-free.h, lib/idna.c, lib/idna.h, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libc/README, libc/example.c, libc/getaddrinfo-idn.txt, libidn.pc.in, src/Makefile.am, src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/tst_toutf8.c, tests/utils.h: Bump copyright years. 2010-02-03 Simon Josefsson * configure.ac: Bump copyright years. 2010-02-03 Simon Josefsson * NEWS: Add. 2010-02-03 Simon Josefsson * configure.ac: Bump libtool version to indicated "added" symbols. 2010-02-03 Simon Josefsson * doc/Makefile.am: Bump copyright years. 2010-02-03 Simon Josefsson * lib/libidn.map: Bump shared library version tag on "new" symbols. 2010-02-03 Simon Josefsson * lib/gen-stringprep-tables.pl, lib/stringprep.h, tests/Makefile.am, tests/tst_symbols.c: Make sure all symbols are exported. Add self test to catch regressions. See and for background. 2010-02-03 Simon Josefsson * build-aux/gnupload, build-aux/link-warning.h, gl/Makefile.am, gl/error.h, gl/m4/fcntl_h.m4, gl/m4/gnulib-comp.m4, gl/m4/stdlib_h.m4, gl/m4/string_h.m4, gl/m4/sys_stat_h.m4, gl/m4/unistd_h.m4, gl/m4/wchar.m4, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/fcntl.in.h, gltests/ignore-value.h, gltests/stdlib.in.h, gltests/sys_stat.in.h, gltests/test-lstat.c, gltests/test-symlink.c, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/string_h.m4, lib/gl/m4/warn-on-use.m4, lib/gl/m4/wchar.m4, lib/gl/string.in.h, lib/gl/wchar.in.h, lib/gltests/Makefile.am, maint.mk: Update gnulib files. 2010-01-12 Simon Josefsson * cfg.mk, maint.mk: Improve syntax-check exception stuff. 2010-01-12 Simon Josefsson * gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-common.m4: Update gnulib files. 2010-01-12 Simon Josefsson * gl/m4/gnulib-common.m4, gl/m4/warnings.m4: Check patch. 2010-01-12 Simon Josefsson * m4/valgrind.m4: Fix valgrind.m4. 2010-01-12 Simon Josefsson * doc/fdl-1.3.texi, doc/gendocs_template, doc/gpl-3.0.texi, doc/lgpl-2.1.texi, gl/override/lib/dup2.c.diff, gl/override/tests/dup2.c.diff: Update gnulib files. 2010-01-12 Simon Josefsson * lib/gunibreak.h, lib/gunicomp.h, lib/gunidecomp.h: Touch. 2010-01-12 Simon Josefsson * lib/gen-unicode-tables.pl: Touch. 2010-01-12 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2010-01-12 Simon Josefsson * csharp/IDNA.cs, csharp/IDNAException.cs, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Program.cs, csharp/generate/Tokenizer.cs, doc/fdl-1.3.texi, doc/gendocs_template, doc/gpl-3.0.texi, doc/lgpl-2.1.texi, doc/tld/no.tld, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateRFC3454.java, java/misc/TestIDNA.java, java/misc/TestNFKC.java, lib/Makefile.am, lib/gen-tld-tables.pl, lib/tld.c, lib/tld.h, m4/update-header-version.m4, m4/valgrind.m4, po/cs.po.in, po/da.po.in, po/de.po.in, po/eo.po.in, po/id.po.in, po/it.po.in, po/ja.po.in, po/nl.po.in, po/pl.po.in, po/ro.po.in, po/rw.po.in, po/sr.po.in, po/zh_CN.po.in, win32/include/ac-stdint.h, win32/include/idn-int.h, win32/include/stdbool.h: Update copyright. 2010-01-12 Simon Josefsson * po/de.po.in, po/fi.po.in, po/zh_CN.po.in: Sync with TP. 2010-01-12 Simon Josefsson * .x-sc_avoid_if_before_free, .x-sc_cast_of_alloca_return_value, .x-sc_error_message_uppercase, .x-sc_makefile_at_at_check, .x-sc_makefile_check, .x-sc_space_tab, cfg.mk, examples/example3.c, examples/example4.c, java/gnu/inet/encoding/NFKC.java, java/misc/GenerateNFKC.java, lib/gl/striconv.c, maint.mk, tests/utils.c: Fix syntax-check rules. 2010-01-12 Simon Josefsson * doc/libidn.texi: Don't use exit(1). 2010-01-12 Simon Josefsson * .x-sc_cast_of_alloca_return_value: Add. 2010-01-12 Simon Josefsson * .x-sc_makefile_at_at_check: Add. 2010-01-12 Simon Josefsson * cfg.mk: Commit cyclo/. 2010-01-12 Simon Josefsson * ChangeLog: Generated. 2010-01-12 Simon Josefsson * NEWS: Version 1.16. 2010-01-12 Simon Josefsson * gl/m4/open.m4, gl/override/m4/open.m4.diff: Add workaround for Wine open failure. 2010-01-12 Simon Josefsson * gl/override/tests/dup2.c.diff, gltests/dup2.c: Add workaround for Wine dup2 failure. 2010-01-12 Simon Josefsson * build-aux/warn-on-use.h, gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/m4/warn-on-use.m4, gl/unistd.in.h, gltests/Makefile.am, gltests/test-getopt.c, gltests/wchar.in.h, lib/gl/wchar.in.h, maint.mk: Update gnulib files. 2010-01-09 Simon Josefsson * gltests/dup2.c, maint.mk: Update gnulib files. 2010-01-08 Simon Josefsson * lib/gunibreak.h, lib/gunicomp.h, lib/gunidecomp.h: Touch. 2010-01-08 Simon Josefsson * lib/gen-unicode-tables.pl: Add comment. 2010-01-08 Simon Josefsson * gl/Makefile.am, gl/m4/string_h.m4, gl/string.in.h, lib/gl/Makefile.am, lib/gl/m4/string_h.m4, lib/gl/string.in.h: Update gnulib files. 2010-01-07 Simon Josefsson * GNUmakefile, build-aux/arg-nonnull.h, build-aux/config.rpath, build-aux/csharpcomp.sh.in, build-aux/gendocs.sh, build-aux/link-warning.h, build-aux/pmccabe2html, build-aux/update-copyright, build-aux/useless-if-before-free, build-aux/vc-list-files, gl/Makefile.am, gl/errno.in.h, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_int.h, gl/gettext.h, gl/intprops.h, gl/m4/00gnulib.m4, gl/m4/alloca.m4, gl/m4/autobuild.m4, gl/m4/cloexec.m4, gl/m4/csharp.m4, gl/m4/csharpcomp.m4, gl/m4/dos.m4, gl/m4/dup2.m4, gl/m4/eealloc.m4, gl/m4/environ.m4, gl/m4/errno_h.m4, gl/m4/error.m4, gl/m4/extensions.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl.m4, gl/m4/fcntl_h.m4, gl/m4/getdtablesize.m4, gl/m4/getopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/include_next.m4, gl/m4/longlong.m4, gl/m4/lstat.m4, gl/m4/malloc.m4, gl/m4/malloca.m4, gl/m4/manywarnings.m4, gl/m4/mode_t.m4, gl/m4/multiarch.m4, gl/m4/open.m4, gl/m4/pathmax.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/stat.m4, gl/m4/stdarg.m4, gl/m4/stdbool.m4, gl/m4/stddef_h.m4, gl/m4/stdint.m4, gl/m4/stdlib_h.m4, gl/m4/strerror.m4, gl/m4/string_h.m4, gl/m4/symlink.m4, gl/m4/sys_stat_h.m4, gl/m4/time_h.m4, gl/m4/unistd_h.m4, gl/m4/version-etc.m4, gl/m4/warnings.m4, gl/m4/wchar.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/progname.c, gl/progname.h, gl/stdarg.in.h, gl/stddef.in.h, gl/strerror.c, gl/string.in.h, gl/unistd.in.h, gl/version-etc.c, gl/version-etc.h, gltests/Makefile.am, gltests/alloca.in.h, gltests/binary-io.h, gltests/cloexec.c, gltests/cloexec.h, gltests/dup2.c, gltests/fcntl.c, gltests/fcntl.in.h, gltests/getdtablesize.c, gltests/lstat.c, gltests/macros.h, gltests/malloc.c, gltests/malloca.c, gltests/malloca.h, gltests/open.c, gltests/pathmax.h, gltests/putenv.c, gltests/same-inode.h, gltests/setenv.c, gltests/signature.h, gltests/stat.c, gltests/stdbool.in.h, gltests/stdint.in.h, gltests/stdlib.in.h, gltests/symlink.c, gltests/sys_stat.in.h, gltests/test-alloca-opt.c, gltests/test-binary-io.c, gltests/test-cloexec.c, gltests/test-dup2.c, gltests/test-environ.c, gltests/test-errno.c, gltests/test-fcntl-h.c, gltests/test-fcntl.c, gltests/test-getdtablesize.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-lstat.c, gltests/test-lstat.h, gltests/test-malloca.c, gltests/test-open.c, gltests/test-open.h, gltests/test-setenv.c, gltests/test-stat.c, gltests/test-stat.h, gltests/test-stdbool.c, gltests/test-stddef.c, gltests/test-stdint.c, gltests/test-stdlib.c, gltests/test-strerror.c, gltests/test-string.c, gltests/test-symlink.c, gltests/test-symlink.h, gltests/test-sys_stat.c, gltests/test-time.c, gltests/test-unistd.c, gltests/test-unsetenv.c, gltests/test-update-copyright.sh, gltests/test-vc-list-files-cvs.sh, gltests/test-vc-list-files-git.sh, gltests/test-version-etc.c, gltests/test-version-etc.sh, gltests/test-wchar.c, gltests/time.in.h, gltests/unsetenv.c, gltests/verify.h, gltests/version-etc-fsf.c, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/c-ctype.c, lib/gl/c-ctype.h, lib/gl/c-strcase.h, lib/gl/c-strcasecmp.c, lib/gl/c-strncasecmp.c, lib/gl/gettext.h, lib/gl/iconv.in.h, lib/gl/iconv_open.c, lib/gl/m4/00gnulib.m4, lib/gl/m4/codeset.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/include_next.m4, lib/gl/m4/ld-output-def.m4, lib/gl/m4/ld-version-script.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/longlong.m4, lib/gl/m4/multiarch.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/stdint.m4, lib/gl/m4/string_h.m4, lib/gl/m4/strverscmp.m4, lib/gl/m4/visibility.m4, lib/gl/m4/wchar.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/stdbool.in.h, lib/gl/stddef.in.h, lib/gl/stdint.in.h, lib/gl/striconv.c, lib/gl/striconv.h, lib/gl/string.in.h, lib/gl/strverscmp.c, lib/gl/wchar.in.h, lib/gltests/Makefile.am, lib/gltests/dummy.c, lib/gltests/intprops.h, lib/gltests/macros.h, lib/gltests/signature.h, lib/gltests/test-c-ctype.c, lib/gltests/test-c-strcasecmp.c, lib/gltests/test-c-strncasecmp.c, lib/gltests/test-iconv.c, lib/gltests/test-stdbool.c, lib/gltests/test-stddef.c, lib/gltests/test-stdint.c, lib/gltests/test-striconv.c, lib/gltests/test-string.c, lib/gltests/test-strverscmp.c, lib/gltests/test-wchar.c, lib/gltests/verify.h, maint.mk: Update gnulib files. 2009-12-26 Simon Josefsson * build-aux/gnupload, gl/getopt.c, gl/getopt1.c, gl/getopt_int.h, gl/m4/cloexec.m4, gl/m4/dos.m4, gl/m4/dup2.m4, gl/m4/extensions.m4, gl/m4/fcntl-o.m4, gl/m4/fcntl.m4, gl/m4/fcntl_h.m4, gl/m4/getdtablesize.m4, gl/m4/getopt.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/lstat.m4, gl/m4/mode_t.m4, gl/m4/open.m4, gl/m4/pathmax.m4, gl/m4/setenv.m4, gl/m4/stat.m4, gl/m4/symlink.m4, gl/m4/sys_stat_h.m4, gl/m4/time_h.m4, gl/m4/wchar.m4, gl/unistd.in.h, gltests/Makefile.am, gltests/binary-io.h, gltests/cloexec.c, gltests/cloexec.h, gltests/dup2.c, gltests/fcntl.c, gltests/fcntl.in.h, gltests/getdtablesize.c, gltests/lstat.c, gltests/macros.h, gltests/open.c, gltests/pathmax.h, gltests/same-inode.h, gltests/signature.h, gltests/stat.c, gltests/stdlib.in.h, gltests/symlink.c, gltests/sys_stat.in.h, gltests/test-binary-io.c, gltests/test-binary-io.sh, gltests/test-cloexec.c, gltests/test-dup2.c, gltests/test-fcntl-h.c, gltests/test-fcntl.c, gltests/test-getdtablesize.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-lstat.c, gltests/test-lstat.h, gltests/test-open.c, gltests/test-open.h, gltests/test-setenv.c, gltests/test-stat.c, gltests/test-stat.h, gltests/test-strerror.c, gltests/test-symlink.c, gltests/test-symlink.h, gltests/test-sys_stat.c, gltests/test-time.c, gltests/test-unsetenv.c, gltests/test-version-etc.c, gltests/time.in.h, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/wchar.m4, lib/gltests/Makefile.am, lib/gltests/macros.h, lib/gltests/signature.h, lib/gltests/test-c-ctype.c, lib/gltests/test-c-strcasecmp.c, lib/gltests/test-c-strncasecmp.c, lib/gltests/test-iconv.c, lib/gltests/test-striconv.c, lib/gltests/test-strverscmp.c: Update gnulib files. 2009-12-19 Simon Josefsson * gl/Makefile.am, gltests/Makefile.am, lib/gl/Makefile.am, lib/gltests/Makefile.am: Update gnulib files. 2009-12-16 Simon Josefsson * NEWS: Add. 2009-12-16 Simon Josefsson * build-aux/arg-nonnull.h, gl/m4/stdbool.m4, gltests/stdbool.in.h, gltests/test-stdbool.c: Update gnulib files. 2009-12-16 Simon Josefsson * build-aux/gnupload, build-aux/link-warning.h, gl/Makefile.am, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_int.h, gl/gettext.h, gl/intprops.h, gl/m4/error.m4, gl/m4/extensions.m4, gl/m4/getopt.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/longlong.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/stdint.m4, gl/m4/string_h.m4, gl/m4/unistd_h.m4, gl/m4/version-etc.m4, gl/m4/warnings.m4, gl/m4/wchar.m4, gl/override/lib/gettext.h.diff, gl/progname.c, gl/progname.h, gl/strerror.c, gl/string.in.h, gl/unistd.in.h, gl/version-etc.c, gl/version-etc.h, gltests/Makefile.am, gltests/malloca.c, gltests/malloca.h, gltests/putenv.c, gltests/setenv.c, gltests/stdint.in.h, gltests/stdlib.in.h, gltests/test-environ.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-setenv.c, gltests/test-strerror.c, gltests/test-unsetenv.c, gltests/test-update-copyright.sh, gltests/test-version-etc.sh, gltests/unsetenv.c, gltests/verify.h, gltests/wchar.in.h, lib/gl/Makefile.am, lib/gl/c-strcasecmp.c, lib/gl/c-strncasecmp.c, lib/gl/gettext.h, lib/gl/iconv.in.h, lib/gl/iconv_open.c, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/include_next.m4, lib/gl/m4/ld-version-script.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/longlong.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stdint.m4, lib/gl/m4/string_h.m4, lib/gl/m4/wchar.m4, lib/gl/override/lib/gettext.h.diff, lib/gl/stdint.in.h, lib/gl/striconv.c, lib/gl/striconv.h, lib/gl/string.in.h, lib/gl/strverscmp.c, lib/gl/wchar.in.h, lib/gltests/Makefile.am, lib/gltests/intprops.h, lib/gltests/test-c-ctype.c, lib/gltests/test-c-strcasecmp.c, lib/gltests/test-c-strncasecmp.c, lib/gltests/test-iconv.c, lib/gltests/test-striconv.c, lib/gltests/test-strverscmp.c, lib/gltests/verify.h, maint.mk: Update gnulib files. 2009-11-18 Simon Josefsson * build-aux/pmccabe2html, doc/cyclo/Makefile.am, gl/Makefile.am, gl/intprops.h, gl/m4/environ.m4, gl/m4/gnulib-comp.m4, gl/m4/malloc.m4, gl/m4/putenv.m4, gl/m4/setenv.m4, gl/m4/stdlib_h.m4, gl/m4/unistd_h.m4, gl/unistd.in.h, gl/version-etc.c, gltests/Makefile.am, gltests/malloc.c, gltests/putenv.c, gltests/setenv.c, gltests/stdlib.in.h, gltests/test-setenv.c, gltests/test-unsetenv.c, gltests/unsetenv.c, lib/gltests/Makefile.am, lib/gltests/intprops.h, maint.mk: Update gnulib files. 2009-11-06 Simon Josefsson * build-aux/pmccabe2html, build-aux/update-copyright, build-aux/useless-if-before-free, doc/cyclo/Makefile.am, gl/getopt.c, gl/m4/gnulib-comp.m4, gl/m4/pmccabe2html.m4, gl/m4/stdlib_h.m4, gltests/Makefile.am, gltests/stdlib.in.h, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-stddef.c, gltests/test-stdint.c, gltests/test-stdlib.c, gltests/test-strerror.c, gltests/test-string.c, gltests/test-unistd.c, gltests/test-update-copyright.sh, gltests/test-version-etc.c, gltests/test-wchar.c, lib/gltests/test-stddef.c, lib/gltests/test-stdint.c, lib/gltests/test-string.c, lib/gltests/test-strverscmp.c, lib/gltests/test-wchar.c, maint.mk: Update gnulib files. 2009-10-19 Simon Josefsson * gl/unistd.in.h: Update gnulib files. 2009-10-08 Simon Josefsson * src/Makefile.am: Fix link error on mingw. 2009-10-08 Simon Josefsson * gl/Makefile.am, gl/getopt.in.h, gl/getopt_int.h, gl/m4/alloca.m4, gl/m4/eealloc.m4, gl/m4/getopt.m4, gl/m4/gnulib-comp.m4, gl/m4/malloca.m4, gl/m4/unistd_h.m4, gl/progname.c, gl/unistd.in.h, gltests/Makefile.am, gltests/alloca.in.h, gltests/malloca.c, gltests/malloca.h, gltests/malloca.valgrind, gltests/setenv.c, gltests/test-alloca-opt.c, gltests/test-getopt.c, gltests/test-getopt_long.h, gltests/test-malloca.c, lib/gltests/Makefile.am, maint.mk: Update gnulib files. 2009-09-22 Simon Josefsson * NEWS: Add. 2009-09-22 Simon Josefsson * build-aux/gendocs.sh, build-aux/update-copyright, gl/Makefile.am, gl/m4/getopt.m4, gl/m4/gnulib-comp.m4, gl/m4/stdlib_h.m4, gl/m4/string_h.m4, gl/m4/unistd_h.m4, gl/progname.c, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/stdlib.in.h, lib/gl/Makefile.am, lib/gl/iconv_open-solaris.gperf, lib/gl/iconv_open.c, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/string_h.m4, lib/gl/string.in.h, maint.mk: Update gnulib files. 2009-09-22 Simon Josefsson * configure.ac, pom.xml.in: Add Maven pom.xml file. 2009-09-07 Simon Josefsson * doc/libidn.texi: Note about OS/2 port. 2009-08-20 Simon Josefsson * maint.mk: Update gnulib files. 2009-08-18 Simon Josefsson * build-aux/update-copyright, gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/stddef_h.m4, gl/m4/wchar.m4, gl/stddef.in.h, gl/string.in.h, gl/unistd.in.h, gltests/Makefile.am, gltests/stdlib.in.h, gltests/test-stddef.c, gltests/test-stdlib.c, gltests/test-string.c, gltests/test-unistd.c, gltests/test-update-copyright.sh, gltests/test-wchar.c, lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/stddef_h.m4, lib/gl/m4/wchar.m4, lib/gl/stddef.in.h, lib/gl/string.in.h, lib/gltests/Makefile.am, lib/gltests/test-stddef.c, lib/gltests/test-string.c, lib/gltests/test-wchar.c, maint.mk: Update gnulib files. 2009-08-14 Simon Josefsson * build-aux/update-copyright, gl/Makefile.am, gl/m4/environ.m4, gl/m4/getopt.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/longlong.m4, gl/m4/multiarch.m4, gl/m4/setenv.m4, gl/m4/stdint.m4, gl/m4/stdlib_h.m4, gl/m4/unistd_h.m4, gl/m4/wchar.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/unistd.in.h, gltests/Makefile.am, gltests/stdint.in.h, gltests/stdlib.in.h, gltests/test-environ.c, gltests/test-getopt.c, gltests/test-getopt.h, gltests/test-getopt_long.h, gltests/test-stdint.c, gltests/test-stdlib.c, gltests/test-string.c, gltests/test-unistd.c, gltests/test-update-copyright.sh, gltests/test-version-etc.sh, gltests/test-wchar.c, gltests/unsetenv.c, gltests/wchar.in.h, lib/gltests/test-string.c: Update gnulib files. 2009-08-07 Simon Josefsson * build-aux/update-copyright, gltests/test-update-copyright.sh, maint.mk: Update gnulib files. 2009-08-04 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gltests/Makefile.am: Update gnulib files. 2009-08-04 Simon Josefsson * lib/gl/m4/iconv.m4, maint.mk: Update gnulib files. 2009-07-29 Simon Josefsson * README-alpha: Typo. 2009-07-22 Simon Josefsson * build-aux/vc-list-files, gl/Makefile.am, gl/errno.in.h, gl/error.c, gl/m4/errno_h.m4, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/strerror.c, gl/unistd.in.h, gl/version-etc.c, gl/version-etc.h, gltests/Makefile.am, gltests/test-string.c, gltests/test-unistd.c, gltests/test-version-etc.c, gltests/test-version-etc.sh, gltests/verify.h, gltests/version-etc-fsf.c, lib/gl/m4/lib-link.m4, lib/gltests/test-string.c, maint.mk: Update gnulib files. 2009-06-17 Simon Josefsson * doc/libidn.texi: Typo. 2009-06-16 Simon Josefsson * gl/Makefile.am, gl/m4/string_h.m4, gl/string.in.h, lib/gl/Makefile.am, lib/gl/m4/string_h.m4, lib/gl/string.in.h: Update gnulib files. 2009-06-11 Simon Josefsson * doc/texinfo.css: Fix. 2009-06-08 Simon Josefsson * doc/libidn.texi: Add version number to manual title. 2009-06-08 Simon Josefsson * lib/stringprep.h: Generated. 2009-06-08 Simon Josefsson * NEWS, configure.ac: Bump versions. 2009-06-08 Simon Josefsson * build-aux/gendocs.sh: Chmod +x. 2009-06-08 Simon Josefsson * ChangeLog: Generated. 2009-06-08 Simon Josefsson * NEWS: Version 1.15. 2009-06-08 Simon Josefsson * NEWS: Fix. 2009-06-08 Simon Josefsson * NEWS: Fix. 2009-06-05 Simon Josefsson * NEWS: Add. 2009-06-05 Simon Josefsson * gl/m4/gnulib-comp.m4, gl/m4/version-etc.m4, gl/version-etc.c: Update gnulib files. 2009-06-02 Simon Josefsson * NEWS, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/TestIDNA.java, java/misc/TestNFKC.java: Fix some java warnings. 2009-06-01 Simon Josefsson * configure.ac, lib/Makefile.am: Check stack usage in library. 2009-06-01 Simon Josefsson * gl/m4/manywarnings.m4: Update gnulib files. 2009-05-29 Simon Josefsson * NEWS, THANKS, lib/idna.c: Use c_strcasecmp instead of strcasecmp. Reported by Guenter Knauf . 2009-05-28 Simon Josefsson * cfg.mk, configure.ac, examples/Makefile.am, lib/Makefile.am, src/Makefile.am, tests/Makefile.am: Improve warning handling. 2009-05-28 Simon Josefsson * build-aux/gnupload: Update gnulib files. 2009-05-27 Simon Josefsson * gl/m4/include_next.m4, lib/gl/m4/include_next.m4: Update gnulib files. 2009-05-20 Simon Josefsson * m4/pkg.m4: Add. 2009-05-20 Simon Josefsson * build-aux/gnupload, gltests/test-vc-list-files-git.sh, maint.mk: Update gnulib files. 2009-05-11 Simon Josefsson * gtk-doc.make: Fix syntax-check. 2009-05-11 Simon Josefsson * gtk-doc.make, m4/gtk-doc.m4: Upgrade gtk-doc files. 2009-05-08 Simon Josefsson * build-aux/gnupload, gl/m4/errno_h.m4, gl/m4/gnulib-comp.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/multiarch.m4, maint.mk: Update gnulib files. 2009-05-08 Simon Josefsson * cfg.mk: Make -Werror more optional. 2009-05-07 Simon Josefsson * README-alpha: Fix. 2009-05-05 Simon Josefsson * README-alpha: Fix. 2009-05-05 Simon Josefsson * README-alpha: Add. 2009-05-03 Simon Josefsson * gl/gettext.h, lib/gl/Makefile.am, lib/gl/gettext.h, lib/gl/m4/wchar.m4, lib/gl/wchar.in.h, maint.mk: Update gnulib files. 2009-04-27 Simon Josefsson * maint.mk: Update gnulib files. 2009-04-27 Simon Josefsson * build-aux/vc-list-files, lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4, maint.mk: Update gnulib files. 2009-04-24 Simon Josefsson * .prev-version: Add. 2009-04-24 Simon Josefsson * .x-sc_makefile-check~, .x-sc_makefile_check~, .x-sc_space_tab~: rm. 2009-04-24 Simon Josefsson * .x-sc_avoid_if_before_free, .x-sc_makefile-check~, .x-sc_makefile_check, .x-sc_makefile_check~, gltests/Makefile.am, java/Makefile.am, java/misc/Makefile.am, maint.mk: Fix syntax-checks. 2009-04-24 Simon Josefsson * cfg.mk: Fix for modern git. 2009-04-24 Simon Josefsson * build-aux/useless-if-before-free, build-aux/vc-list-files, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gltests/Makefile.am, gltests/test-vc-list-files-cvs.sh, gltests/test-vc-list-files-git.sh: Add modules, for syntax-check. 2009-04-24 Simon Josefsson * lib/nfkc.c: Fix warnings. 2009-04-24 Simon Josefsson * .x-sc_the_the, cfg.mk, configure.ac: Syntax check fixes. 2009-04-24 Simon Josefsson * .x-sc_error_message_uppercase, .x-sc_file_system, .x-sc_prohibit_atoi_atof, cfg.mk, contrib/idn-python/Makefile, contrib/idn-python/idn.c, contrib/idn-python/test.py, gl/getopt1.c, lib/nfkc.c, lib/version.c, m4/valgrind.m4, src/idn.c: Syntax check fixes. 2009-04-24 Simon Josefsson * .x-sc_space_tab, .x-sc_space_tab~, NEWS, gtk-doc.make, m4/valgrind.m4: Syntax check fixes. 2009-04-24 Simon Josefsson * .x-sc_avoid_if_before_free, .x-sc_cast_of_alloca_return_value, lib/stringprep.c, maint.mk: Update gnulib files. 2009-04-23 Simon Josefsson * NEWS: Fix. 2009-04-23 Simon Josefsson * doc/gendocs_template, maint.mk: Update gnulib files. 2009-04-23 Simon Josefsson * NEWS, doc/libidn.texi: Improve texinfo section names. 2009-04-17 Simon Josefsson * configure.ac: AM_PROG_GCJ needs to be called unconditionally. Sigh. Otherwise you get this error: conditional "am__fastdepGCJ" was never defined. 2009-04-14 Simon Josefsson * configure.ac, m4/ac_prog_javac.m4, m4/ac_prog_javac_works.m4, m4/ac_prog_javadoc.m4: Fix java detection. 2009-04-14 Simon Josefsson * lib/stringprep.h: Bump version. 2009-04-14 Simon Josefsson * java/misc/TestIDNA.java: Don't use assert keyword to avoid compilation error. 2009-04-14 Simon Josefsson * NEWS, configure.ac: Bump versions. 2009-04-14 Simon Josefsson * build-aux/gendocs.sh, doc/gendocs_template, doc/lgpl-2.1.texi, lib/gl/m4/ld-version-script.m4, maint.mk: Update gnulib files. 2009-04-03 Simon Josefsson * ChangeLog: Generated. 2009-04-03 Simon Josefsson * NEWS: Version 1.14. 2009-04-03 Simon Josefsson * NEWS, configure.ac, lib/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/ld-output-def.m4: Use --output-def. 2009-04-03 Simon Josefsson * lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4: Update gnulib files. 2009-04-01 Simon Josefsson * lib/toutf8.c: Assume locale.h. 2009-03-25 Simon Josefsson * cfg.mk: Copy cyclo chart to webdir. 2009-03-25 Simon Josefsson * gl/unistd.in.h: Update gnulib files. 2009-03-23 Simon Josefsson * NEWS: Add. 2009-03-23 Simon Josefsson * THANKS: Add. 2009-03-23 Simon Josefsson * tests/tst_toutf8.c: Don't crash in memcmp if stringprep_utf8_to_locale returns NULL. Reported by Dagobert Michelsen in . 2009-03-19 Simon Josefsson * GNUmakefile, build-aux/gnupload, maint.mk: Update gnulib files. 2009-03-06 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump version. 2009-03-06 Simon Josefsson * ChangeLog: Generated. 2009-03-06 Simon Josefsson * NEWS: Version 1.13. 2009-03-06 Simon Josefsson * NEWS, THANKS: Add credits. 2009-03-06 Simon Josefsson * configure.ac: Don't use warnings unless we are using GCC. 2009-03-06 Simon Josefsson * NEWS: Fix. 2009-03-06 Simon Josefsson * NEWS: Add. 2009-03-06 Simon Josefsson * build-aux/gnupload: Update gnulib files. 2009-03-04 Simon Josefsson * NEWS: Fix. 2009-03-04 Simon Josefsson * NEWS: Clarify. 2009-03-04 Simon Josefsson * doc/libidn.texi, lib/punycode.h, lib/tld.h: Namespace discussion. 2009-03-04 Simon Josefsson * gl/Makefile.am, lib/gl/Makefile.am: Update gnulib files. 2009-03-04 Simon Josefsson * lib/idn-free.h: Fix. 2009-03-04 Simon Josefsson * lib/idn-free.c, lib/idn-free.h, lib/pr29.c, lib/pr29.h: Finish API visibility markup. Now passes self tests. 2009-03-04 Simon Josefsson * NEWS: Fix. 2009-03-04 Simon Josefsson * NEWS: Add. 2009-03-04 Simon Josefsson * lib/idna.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/stringprep.h, lib/tld.c: Mark visibility of API functions. 2009-03-04 Simon Josefsson * doc/reference/Makefile.am: Ignore decorators. 2009-03-04 Simon Josefsson * lib/tld.h: Improve decorators. 2009-03-04 Simon Josefsson * lib/tld.h: Add symbol visibility markup. 2009-03-04 Simon Josefsson * lib/Makefile.am, lib/gl/m4/visibility.m4: Update gnulib files. 2009-03-03 Simon Josefsson * m4/linker-script.m4: Remove. 2009-03-03 Simon Josefsson * lib/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/visibility.m4: Use visibility module. 2009-03-03 Simon Josefsson * NEWS: Add. 2009-03-03 Simon Josefsson * lib/Makefile.am: Typo. 2009-03-03 Simon Josefsson * configure.ac: More debug info. 2009-03-03 Simon Josefsson * configure.ac: Debug output about version script. 2009-03-03 Simon Josefsson * configure.ac, lib/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/ld-version-script.m4: Use gnulib ld-version-script module. Re-add use of -export-symbols-regex for other platforms. 2009-03-02 Simon Josefsson * lib/libidn.map: Add license. Use v1.0 in name. 2009-03-02 Simon Josefsson * lib/libidn.map: Add. 2009-03-02 Simon Josefsson * NEWS, configure.ac, lib/Makefile.am, m4/linker-script.m4: Use a linker version script. 2009-03-02 Simon Josefsson * gl/m4/gnulib-common.m4, gl/m4/stdarg.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/stdint.m4, lib/gl/stdint.in.h: Update gnulib files. 2009-02-24 Simon Josefsson * gl/m4/include_next.m4, lib/gl/m4/include_next.m4: Update gnulib files. 2009-02-10 Simon Josefsson * src/Makefile.am: Don't remove idn_cmd.c and idn_cmd.h on distclean, use maintainer-clean instead. Reported by "Sisyphus" in . 2009-02-09 Simon Josefsson * NEWS, THANKS, doc/Makefile.am, doc/libidn.texi, doc/reference/Makefile.am, doc/reference/libidn-docs.sgml, lib/idn-free.c, lib/nfkc.c: Document the idn_free function. 2009-02-09 Simon Josefsson * lib/stringprep.h: Bump version. 2009-02-09 Simon Josefsson * src/idn.c: Drop emit_bug_reporting_address, it is now provided by gnulib version-etc. 2009-02-06 Simon Josefsson * build-aux/gnupload, gl/m4/00gnulib.m4, gl/m4/extensions.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/pmccabe2html.m4, gl/version-etc.c, gl/version-etc.h, lib/gl/m4/00gnulib.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/locale-fr.m4: Update gnulib files. 2009-01-23 Simon Josefsson * NEWS, configure.ac: Bump versions. 2009-01-23 Simon Josefsson * ChangeLog: Generated. 2009-01-23 Simon Josefsson * NEWS: Version 1.12. 2009-01-23 Simon Josefsson * NEWS: Add. 2009-01-23 Simon Josefsson * AUTHORS: Update PGP key. 2009-01-23 Simon Josefsson * po/LINGUAS: Sync with TP. 2009-01-23 Simon Josefsson * po/LINGUAS: Sync with TP. 2009-01-22 Simon Josefsson * NEWS, doc/libidn.texi, src/idn.c, src/idn.ggo: idn: Add new --no-tld to resolve broken --tld parameter. Reported by Christian Hammers in http://thread.gmane.org/gmane.comp.gnu.libidn.general/162 2009-01-22 Simon Josefsson * doc/gdoc: Fix. 2009-01-22 Simon Josefsson * doc/Makefile.am: Use gdoc's -pkg-name. 2009-01-22 Simon Josefsson * doc/gdoc: Add -pkg-name parameter. 2009-01-22 Simon Josefsson * gl/m4/errno_h.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/unistd.in.h, gltests/test-unistd.c, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/multiarch.m4: Update gnulib files. 2009-01-22 Simon Josefsson * src/idn.c: Cleanup. 2009-01-22 Simon Josefsson * src/idn.c: Bump copyright years. 2009-01-22 Simon Josefsson * src/idn.c: Update --help output per new GNU coding standards. 2009-01-19 Simon Josefsson * gl/Makefile.am, gl/m4/unistd_h.m4, gl/unistd.in.h: Update gnulib files. 2009-01-19 Simon Josefsson * doc/Makefile.am: Bump copyright years for man pages. 2009-01-17 Simon Josefsson * : Touch. 2009-01-17 Simon Josefsson * AUTHORS: Update PGP key. 2009-01-17 Simon Josefsson * contrib/README, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/Makefile.am, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Program.cs, csharp/generate/Tokenizer.cs, doc/Makefile.am, doc/Makefile.gdoci, doc/cyclo/Makefile.am, doc/gdoc, doc/java/Makefile.am, doc/libidn.texi, doc/tld/Makefile.am, doc/tld/README, examples/Makefile.am, examples/README, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c, java/Makefile.am, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/Makefile.am, java/misc/TestIDNA.java, java/misc/TestNFKC.java, lib/Makefile.am, lib/gen-stringprep-tables.pl, lib/gen-tld-tables.pl, lib/gen-unicode-tables.pl, lib/idn-free.c, lib/idn-free.h, lib/idna.c, lib/idna.h, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/stringprep.h, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libc/README, src/Makefile.am, src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/Makefile.am, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/tst_toutf8.c, tests/utils.c, tests/utils.h: Bump copyright years. 2009-01-17 Simon Josefsson * lib/gl/override/lib/stdint.in.h.diff, lib/gl/stdint.in.h: Update gnulib files. 2009-01-17 Simon Josefsson * gl/m4/csharp.m4, gl/m4/csharpcomp.m4, gl/m4/errno_h.m4, gl/m4/gnulib-common.m4, gl/progname.c, gl/strerror.c, lib/gl/m4/codeset.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/longlong.m4, lib/gl/m4/stdbool.m4, lib/gl/m4/stdint.m4, lib/gl/m4/strverscmp.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/override/lib/stdint.in.h.diff, lib/gl/stdint.in.h, lib/gl/wchar.in.h: Update gnulib files. 2009-01-05 Simon Josefsson * build-aux/gendocs.sh, doc/gendocs_template, gl/Makefile.am, gl/m4/errno_h.m4, gl/m4/extensions.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/unistd.in.h, gl/version-etc.c, gltests/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/codeset.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/multiarch.m4, lib/gl/m4/stdint.m4, lib/gl/m4/wchar.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gl/stdint.in.h, lib/gl/wchar.in.h, lib/gltests/Makefile.am: Update gnulib files. 2009-01-05 Simon Josefsson * lib/gl/override/lib/stdint.in.h.diff: Update. 2008-12-11 Simon Josefsson * configure.ac: Fix comment. 2008-12-11 Simon Josefsson * configure.ac: Fix warning initialization. 2008-12-11 Simon Josefsson * configure.ac: Add warning flag. 2008-12-11 Simon Josefsson * gl/m4/manywarnings.m4, lib/nfkc.c, maint.mk: Update gnulib files. Fix warning. 2008-12-02 Simon Josefsson * doc/libidn.texi: Fix java jar path. 2008-12-02 Simon Josefsson * NEWS, java/gnu/inet/encoding/CombiningClass.java, java/gnu/inet/encoding/Composition.java, java/gnu/inet/encoding/DecompositionKeys.java, java/gnu/inet/encoding/DecompositionMappings.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/RFC3454.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java: Improve JavaDoc output. 2008-12-02 Simon Josefsson * gl/m4/manywarnings.m4: Update gnulib files. 2008-12-02 Simon Josefsson * configure.ac, doc/gendocs_template, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/warnings.m4, lib/gl/m4/include_next.m4, lib/gl/stdint.in.h, maint.mk: Update gnulib files. 2008-11-29 Simon Josefsson * gl/override/doc/gendocs_template.diff: Fix 2008-11-29 Simon Josefsson * gl/override/doc/gendocs_template.diff: Fix javadoc pointer. 2008-11-17 Simon Josefsson * configure.ac: Rewrite warning initializations. 2008-11-17 Simon Josefsson * gl/m4/warnings.m4: Update gnulib files. 2008-11-17 Simon Josefsson * cfg.mk, configure.ac: Simplify warning handling. 2008-11-17 Simon Josefsson * configure.ac, gl/m4/warnings.m4: Make configure slightly faster. 2008-11-17 Simon Josefsson * cfg.mk, configure.ac: Disable -Wunreachable-code. 2008-11-17 Simon Josefsson * configure.ac, gl/override/lib/progname.h.diff, gl/progname.h, lib/toutf8.c: Fix warnings. 2008-11-17 Simon Josefsson * cfg.mk, examples/example3.c, examples/example4.c, examples/example5.c, src/Makefile.am: Fix warnings. 2008-11-17 Simon Josefsson * cfg.mk, tests/tst_nfkc.c, tests/tst_pr29.c, tests/utils.h: Fix warnings. 2008-11-17 Simon Josefsson * cfg.mk, gl/gettext.h, gl/override/lib/gettext.h.diff, lib/gl/gettext.h, lib/gl/override/lib/gettext.h.diff: Fix vla warnings. 2008-11-17 Simon Josefsson * cfg.mk, lib/idna.c, lib/nfkc.c: Fix warnings. 2008-11-17 Simon Josefsson * configure.ac, gl/m4/warnings.m4: Make it easier to read warning settings. 2008-11-17 Simon Josefsson * build-aux/gnupload: Update gnulib files. 2008-11-13 Simon Josefsson * NEWS: Add. 2008-11-13 Simon Josefsson * lib/nfkc.c: Fix warning. 2008-11-13 Simon Josefsson * cfg.mk, configure.ac, examples/example.c, tests/tst_strerror.c, tests/tst_tld.c: Enable warnings. Fix warnings. 2008-11-13 Simon Josefsson * lib/nfkc.c: Fix warnings. 2008-11-12 Simon Josefsson * libidn.pc.in: Add URL field. 2008-11-12 Simon Josefsson * configure.ac, m4/update-header-version.m4, m4/valgrind.m4: Use external macros for shared operations. 2008-11-12 Simon Josefsson * configure.ac: Remove linker script message. 2008-11-12 Simon Josefsson * gl/m4/gnulib-comp.m4: Update gnulib files. 2008-11-12 Simon Josefsson * Makefile.am, build-aux/pmccabe2html, cfg.mk, configure.ac, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/warnings.m4: Update gnulib files. Use warnings module. 2008-11-12 Simon Josefsson * configure.ac: Neatify. 2008-11-04 Simon Josefsson * doc/libidn.texi: Use GFDLv1.3+ as license. 2008-11-04 Simon Josefsson * NEWS, doc/Makefile.am, doc/fdl-1.3.texi, doc/fdl.texi, doc/libidn.texi, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/include_next.m4, lib/gl/m4/strdup.m4, lib/gl/strdup.c, maint.mk: Update gnulib files. Use GFDLv1.3+ for manual. 2008-11-03 Simon Josefsson * java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/Punycode.java: Fix Javadoc comments on important classes. 2008-10-30 Simon Josefsson * lib/Makefile.am: The -DLIBIDN_BUILDING Windows hack is no longer needed. 2008-10-29 Simon Josefsson * contrib/doxygen/Doxyfile.in: Disable man pages. 2008-10-29 Simon Josefsson * contrib/doxygen/Doxyfile.in: Fix typo. 2008-10-29 Simon Josefsson * NEWS, contrib/doxygen/Doxyfile.in, contrib/doxygen/Doxyfile.orig: Modernize doxygen configuration. 2008-10-28 Simon Josefsson * cfg.mk: Use coverage rules from gnulib. 2008-10-28 Simon Josefsson * maint.mk: Update gnulib files. 2008-10-28 Simon Josefsson * NEWS, configure.ac, lib/stringprep.h: Bump versions. 2008-10-28 Simon Josefsson * ChangeLog: Generated. 2008-10-28 Simon Josefsson * NEWS: Version 1.11. 2008-10-28 Simon Josefsson * doc/texinfo.css: Use white background. 2008-10-28 Simon Josefsson * NEWS: Fix. 2008-10-28 Simon Josefsson * gltests/Makefile.am, lib/gltests/Makefile.am: Update gnulib files. 2008-10-28 Simon Josefsson * cfg.mk: Sync with gnutls. 2008-10-28 Simon Josefsson * cfg.mk: Generalize coverage rules. 2008-10-28 Simon Josefsson * tests/tst_tld.c: Increase code coverage. 2008-10-28 Simon Josefsson * tests/tst_pr29.c: Increase code coverage. 2008-10-28 Simon Josefsson * NEWS, tests/Makefile.am, tests/tst_idna.c, tests/tst_strerror.c, tests/tst_toutf8.c: Increase code coverage in self-tests. 2008-10-28 Simon Josefsson * tests/tst_strerror.c: Increase code coverage. 2008-10-28 Simon Josefsson * tests/tst_stringprep.c: Increase code coverage. 2008-10-28 Simon Josefsson * cfg.mk: Fix web-coverage rule. 2008-10-28 Simon Josefsson * cfg.mk: Fix release target. Add web-coverage targets. 2008-10-27 Simon Josefsson * NEWS: Add. 2008-10-27 Simon Josefsson * NEWS, gltests/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/strdup.m4, lib/gl/strdup.c, lib/gltests/Makefile.am: Revert gnulib avoid of strdup. 2008-10-27 Simon Josefsson * cfg.mk: Add coverage rules. 2008-10-27 Simon Josefsson * NEWS, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/Makefile.am, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Program.cs, csharp/generate/Tokenizer.cs: Re-add lost copyright headers for C# port. 2008-10-27 Simon Josefsson * gl/unistd.in.h: Update gnulib files. 2008-10-22 Simon Josefsson * cfg.mk: Re-license under GPLv3. 2008-10-22 Simon Josefsson * doc/gdoc: Replace - with \- in man page output in more places. 2008-10-22 Simon Josefsson * doc/gdoc: Reduce code duplication. 2008-10-22 Simon Josefsson * NEWS: Add. 2008-10-22 Simon Josefsson * doc/gdoc: Use GPLv3. Clarify copyright and license. Use GAP for man page license. 2008-10-21 Simon Josefsson * NEWS: Add. 2008-10-21 Simon Josefsson * cfg.mk: Fix mingw32 rule. 2008-10-21 Simon Josefsson * NEWS: Add. 2008-10-21 Simon Josefsson * lib/version.c: Use STRINGPREP_VERSION instead of PACKAGE_VERSION for MSVS builds. 2008-10-21 Simon Josefsson * Makefile.am: Change win32 files. 2008-10-21 Simon Josefsson * win32/include/config.h: Extracted from gen-win32-headers.pl. 2008-10-21 Simon Josefsson * win32/include/Wild.pm: Rm. 2008-10-21 Simon Josefsson * doc/libidn.texi, lib/idna.h, lib/stringprep.h, win32/include/gen-win32-headers.pl, win32/libidn.vcproj: Avoid perl dependency on Windows. 2008-10-21 Simon Josefsson * lib/stringprep.h: Cleanups, preparing for Win32 fixes. 2008-10-21 Simon Josefsson * lib/idna.h: Cleanups, preparing for Win32 fixes. 2008-10-21 Simon Josefsson * configure.ac: Fix last commit. 2008-10-21 Simon Josefsson * FAQ, configure.ac, lib/Makefile.am, lib/stringprep.h, lib/stringprep.h.in: Don't use substition for stringprep.h header file. 2008-10-21 Simon Josefsson * gl/Makefile.am, gl/errno.in.h, gl/m4/gnulib-common.m4, gl/m4/unistd_h.m4, gl/stdarg.in.h, gl/string.in.h, gl/unistd.in.h, lib/gl/iconv.in.h, lib/gl/m4/gnulib-common.m4, lib/gl/stdint.in.h, lib/gl/string.in.h, lib/gl/wchar.in.h: Update gnulib files. 2008-10-13 Simon Josefsson * build-aux/pmccabe2html: Update gnulib files. 2008-10-13 Simon Josefsson * doc/cyclo/Makefile.am: Update gnulib files. 2008-10-13 Simon Josefsson * NEWS, configure.ac, doc/Makefile.am, doc/cyclo/Makefile.am, doc/prmgt/Makefile.am: Rename doc/prmgt/ to doc/cyclo/. 2008-10-13 Simon Josefsson * NEWS: Add. 2008-10-13 Simon Josefsson * GNUmakefile, gl/Makefile.am, gl/m4/unistd_h.m4, gl/unistd.in.h: Update gnulib files. 2008-10-07 Simon Josefsson * doc/prmgt/Makefile.am: Fix. 2008-10-07 Simon Josefsson * doc/Makefile.am: Add prmgt/. 2008-10-07 Simon Josefsson * doc/prmgt/Makefile, doc/prmgt/Makefile.am~, doc/prmgt/Makefile.in, doc/prmgt/libidn-cyclo.html, doc/prmgt/pmccabe.css: Remove accidentally added files. 2008-10-07 Simon Josefsson * build-aux/pmccabe.css, build-aux/pmccabe2html, gl/m4/pmccabe2html.m4: Update gnulib files. 2008-10-07 Simon Josefsson * configure.ac, doc/prmgt/Makefile, doc/prmgt/Makefile.am, doc/prmgt/Makefile.am~, doc/prmgt/Makefile.in, doc/prmgt/libidn-cyclo.html, doc/prmgt/pmccabe.css, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Use pmccabe2html. 2008-10-07 Simon Josefsson * gl/Makefile.am, gl/errno.in.h, gl/m4/unistd_h.m4, gl/strerror.c, gl/unistd.in.h, lib/gl/c-ctype.h: Update gnulib files. 2008-09-30 Simon Josefsson * gl/Makefile.am, gl/m4/unistd_h.m4, gl/unistd.in.h, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/wchar.m4: Update gnulib files. 2008-09-29 Simon Josefsson * configure.ac: Need AC_CONFIG_MACRO_DIR too, to avoid libtool warnings, sigh. 2008-09-26 Simon Josefsson * NEWS: Add. 2008-09-26 Simon Josefsson * po/eo.po.in, po/fr.po.in: Sync with TP. 2008-09-26 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4: Update gnulib files. 2008-09-23 Simon Josefsson * configure.ac, doc/reference/Makefile.am: Enable automake warnings. 2008-09-23 Simon Josefsson * NEWS: Add. 2008-09-23 Simon Josefsson * README: Say 'or later' wrt licenses. 2008-09-23 Simon Josefsson * doc/texinfo.css: Improve cosmetics. 2008-09-23 Simon Josefsson * doc/texinfo.css: Minor cosmetic fixes. 2008-09-23 Simon Josefsson * NEWS: Add. 2008-09-23 Simon Josefsson * configure.ac: Add AC_COPYRIGHT. 2008-09-23 Simon Josefsson * Makefile.am, cfg.mk, configure.ac, examples/Makefile.am, lib/Makefile.am, src/Makefile.am, tests/Makefile.am: Support a WARN_CFLAGS to trigger compiler warnings. 2008-09-22 Simon Josefsson * : Touch. 2008-09-18 Simon Josefsson * contrib/doxygen/gdoc2doxygen, lib/gen-stringprep-tables.pl, lib/gen-tld-tables.pl, lib/gen-unicode-tables.pl: Remove final references to GPLv2. 2008-09-18 Simon Josefsson * NEWS, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/malloc.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/strdup.m4, lib/gl/m4/unistd_h.m4, lib/gl/malloc.c, lib/gl/stdlib.in.h, lib/gl/strdup.c, lib/gl/unistd.in.h, lib/gltests/Makefile.am, lib/gltests/test-stdlib.c, lib/gltests/test-unistd.c: Assume strdup. 2008-09-18 Simon Josefsson * gl/errno.in.h, gl/m4/errno_h.m4, gltests/test-errno.c: Add. 2008-09-18 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/strerror.m4, gl/strerror.c, gltests/Makefile.am, gltests/test-strerror.c: Update gnulib files. 2008-09-12 Simon Josefsson * build-aux/config.rpath, gl/m4/include_next.m4, lib/gl/m4/include_next.m4: Update gnulib files. 2008-09-02 Simon Josefsson * gl/Makefile.am, gl/m4/include_next.m4, gl/stdarg.in.h, gl/string.in.h, gl/unistd.in.h, lib/gl/Makefile.am, lib/gl/iconv.in.h, lib/gl/m4/include_next.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4, lib/gl/stdint.in.h, lib/gl/stdlib.in.h, lib/gl/string.in.h, lib/gl/unistd.in.h, lib/gl/wchar.in.h: Update gnulib files. 2008-08-29 Simon Josefsson * maint.mk: Update gnulib files. 2008-08-29 Simon Josefsson * lib/stringprep.c: Don't store negativa values in a size_t. 2008-08-27 Simon Josefsson * doc/reference/libidn-docs.sgml: Sync. 2008-08-27 Simon Josefsson * doc/libidn.texi: Improve. 2008-08-27 Simon Josefsson * doc/reference/libidn-docs.sgml: Sync. 2008-08-27 Simon Josefsson * doc/libidn.texi: Mention krb5 profile. 2008-08-27 Simon Josefsson * doc/libidn.texi, doc/reference/libidn-docs.sgml: Add "or later" clauses when talking about license versions Suggested by karl@freefriends.org (Karl Berry). 2008-08-27 Simon Josefsson * Makefile.am, cfg.mk: Move maintainer targets from Makefile.am to cfg.mk. 2008-08-27 Simon Josefsson * Makefile.am: Use git2cl directly. 2008-08-27 Simon Josefsson * Makefile.am: Typo. 2008-08-27 Simon Josefsson * Makefile.am: Split release target. 2008-08-27 Simon Josefsson * Makefile.am: Generalize release target. 2008-08-27 Simon Josefsson * Makefile.am: Create a copy of released files. 2008-08-27 Simon Josefsson * Makefile.am: Copy all of javadoc. 2008-08-27 Simon Josefsson * Makefile.am: Fix typo. 2008-08-27 Simon Josefsson * Makefile.am: Dist more. 2008-08-27 Simon Josefsson * NEWS, configure.ac: Bump versions. 2008-08-27 Simon Josefsson * ChangeLog: Generated. 2008-08-27 Simon Josefsson * NEWS: Version 1.10. 2008-08-27 Simon Josefsson * NEWS: Add. 2008-08-27 Simon Josefsson * win32/include/gen-win32-headers.pl: Declare strverscmp. 2008-08-27 Simon Josefsson * lib/stringprep.c: Fix warnings. 2008-08-26 Simon Josefsson * libidn.fms: Remove freshmeat-submit template, no longer used. 2008-08-26 Simon Josefsson * .clcopying, .cvscopying, .cvsusers, Makefile.am: Rename .cvscopying to .clcopying. 2008-08-26 Simon Josefsson * GNUmakefile: Update gnulib files. 2008-08-26 Simon Josefsson * lib/gunibreak.h, lib/gunicomp.h, lib/gunidecomp.h: Add generated files because perl 5.10 breaks gen-unicode-tables.pl. 2008-08-26 Simon Josefsson * po/LINGUAS, po/id.po.in: Sync with TP. 2008-08-26 Simon Josefsson * NEWS, THANKS, src/idn.c, src/idn.ggo: idn: accept -n as short form for --nfkc. Before '-k' was used as the short form, but all documentation has said '-n'. We now accept both short forms, and -n remains the documented short form. Reported by John McGowan in . 2008-08-21 Simon Josefsson * gl/Makefile.am, gl/m4/autobuild.m4, gl/m4/string_h.m4, gl/string.in.h, lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/string_h.m4, lib/gl/m4/strverscmp.m4, lib/gl/string.in.h, lib/gl/strverscmp.h, lib/gltests/Makefile.am, lib/gltests/test-strverscmp.c, lib/version.c: Update gnulib files. 2008-08-20 Simon Josefsson * Makefile.am: Don't try to add tar in www dir. 2008-08-20 Simon Josefsson * NEWS: Add. 2008-08-20 Simon Josefsson * configure.ac, gl/Makefile.am, gl/m4/autobuild.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, m4/autobuild.m4: Update gnulib files. 2008-08-20 Simon Josefsson * README: Fix URLs. 2008-08-20 Simon Josefsson * doc/libidn.texi: Fix URLs. 2008-08-18 Simon Josefsson * Makefile.am: Don't put releases in www directory, after discussion with Savannah admins. 2008-08-06 Simon Josefsson * GNUmakefile, build-aux/gnupload, gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-comp.m4: Update gnulib files. 2008-07-07 Simon Josefsson * NEWS: Add. 2008-07-07 Simon Josefsson * po/LINGUAS, po/cs.po.in, po/it.po.in, po/nl.po.in, po/pl.po.in, po/vi.po.in, po/zh_CN.po.in: Sync with TP. 2008-07-07 Simon Josefsson * NEWS, configure.ac: Bump versions. 2008-07-01 Simon Josefsson * ChangeLog: Generated. 2008-07-01 Simon Josefsson * Makefile.am, configure.ac: Add gltests/ directories. 2008-07-01 Simon Josefsson * ChangeLog: Generated. 2008-07-01 Simon Josefsson * NEWS: Version 1.9. 2008-07-01 Simon Josefsson * NEWS: Add. 2008-07-01 Simon Josefsson * NEWS: Fix. 2008-07-01 Simon Josefsson * po/cs.po.in, po/nl.po.in, po/pl.po.in, po/vi.po.in: Sync with TP. 2008-07-01 Simon Josefsson * GNUmakefile, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gltests/Makefile.am, gltests/test-strerror.c, gltests/test-string.c, gltests/test-unistd.c, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4, lib/gl/m4/locale-fr.m4, lib/gl/m4/locale-tr.m4, lib/gl/m4/wchar_t.m4, lib/gl/m4/wint_t.m4, lib/gltests/Makefile.am, lib/gltests/dummy.c, lib/gltests/intprops.h, lib/gltests/test-c-ctype.c, lib/gltests/test-c-strcase.sh, lib/gltests/test-c-strcasecmp.c, lib/gltests/test-c-strncasecmp.c, lib/gltests/test-iconv.c, lib/gltests/test-stdbool.c, lib/gltests/test-stdint.c, lib/gltests/test-stdlib.c, lib/gltests/test-striconv.c, lib/gltests/test-string.c, lib/gltests/test-unistd.c, lib/gltests/test-wchar.c, lib/gltests/verify.h: Update gnulib files. 2008-06-18 Simon Josefsson * NEWS, csharp/generate/Tokenizer.cs: Work around C# compiler bug. 2008-06-17 Simon Josefsson * GNUmakefile, doc/gendocs_template: Update gnulib files. 2008-06-10 Simon Josefsson * doc/specifications/rfc3454.txt: Remove more text. 2008-06-02 Simon Josefsson * doc/libidn.texi: Drop invariant sections. 2008-05-30 Simon Josefsson * lib/gl/stdbool.in.h, maint.mk: Update gnulib files. 2008-05-19 Simon Josefsson * gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4: Update gnulib files. 2008-05-12 Simon Josefsson * NEWS: Add. 2008-05-12 Simon Josefsson * gl/Makefile.am, gl/m4/string_h.m4, gl/string.in.h, lib/gl/Makefile.am, lib/gl/m4/stdlib_h.m4, lib/gl/m4/string_h.m4, lib/gl/stdlib.in.h, lib/gl/string.in.h: Update gnulib files. 2008-04-28 Simon Josefsson * build-aux/gendocs.sh: Update gnulib files. 2008-04-28 Simon Josefsson * NEWS: Add. 2008-04-28 Simon Josefsson * src/Makefile.am: Use singularis STRING. Suggested by Benno Schulenberg . 2008-04-28 Simon Josefsson * src/idn.c: Don't gettext error code. 2008-04-28 Simon Josefsson * src/idn.c: Don't gettextize debug messages. 2008-04-24 Simon Josefsson * NEWS, THANKS, src/idn.c: idn: fix error message when NFKC fails. Reported by Benno Schulenberg . 2008-04-24 Simon Josefsson * NEWS, configure.ac: Bump versions. 2008-04-23 Simon Josefsson * ChangeLog: Generated. 2008-04-23 Simon Josefsson * NEWS: Version 1.8. 2008-04-23 Simon Josefsson * NEWS: Add. 2008-04-23 Simon Josefsson * NEWS: Add. 2008-04-23 Simon Josefsson * gl/m4/extensions.m4, gl/m4/getopt.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/strerror.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/stdint.m4, lib/gl/wchar.in.h: Update gnulib files. 2008-04-13 Simon Josefsson * configure.ac: Bump versions. 2008-04-13 Simon Josefsson * NEWS: Add. 2008-04-13 Simon Josefsson * po/nl.po.in: Sync with TP. 2008-04-13 Simon Josefsson * Makefile.am, cfg.mk, po/Makevars, po/cs.po, po/cs.po.in, po/da.po, po/da.po.in, po/de.po, po/de.po.in, po/eo.po, po/eo.po.in, po/fi.po, po/fi.po.in, po/fr.po, po/fr.po.in, po/it.po, po/it.po.in, po/ja.po, po/ja.po.in, po/nl.po, po/nl.po.in, po/pl.po, po/pl.po.in, po/ro.po, po/ro.po.in, po/rw.po, po/rw.po.in, po/sr.po, po/sr.po.in, po/vi.po, po/vi.po.in, po/zh_CN.po, po/zh_CN.po.in: Move translations to *.po.in to avoid merge conflicts. This allows us to avoid --no-location as well. 2008-04-10 Simon Josefsson * ChangeLog: Generated. 2008-04-10 Simon Josefsson * NEWS: Version 1.7. 2008-04-10 Simon Josefsson * gl/m4/include_next.m4, lib/gl/m4/include_next.m4, lib/gl/m4/stdint.m4: Update gnulib files. 2008-04-07 Simon Josefsson * GNUmakefile, build-aux/gnupload: Update gnulib files. 2008-04-02 Simon Josefsson * Makefile.am, NEWS, win32/include/unistd.h: Need dummy unistd.h for native Win32 builds. Reported by Adam Strzelecki . 2008-04-01 Simon Josefsson * lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c: Fix syntax-check warnings. 2008-04-01 Simon Josefsson * doc/libidn.texi: Mention idn --nfkc. 2008-04-01 Simon Josefsson * gl/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/stdlib_h.m4, lib/gl/stdlib.in.h, lib/gl/wchar.in.h: Update gnulib files. 2008-03-27 Simon Josefsson * NEWS, src/idn.c, src/idn.ggo: Add --nfkc parameter to idn tool. 2008-03-27 Simon Josefsson * doc/libidn.texi: Need @menu for Windows installation @node. 2008-03-25 Simon Josefsson * cfg.mk: Need config.rpath workaround here. 2008-03-25 Simon Josefsson * GNUmakefile, build-aux/GNUmakefile, build-aux/maint.mk, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, maint.mk: Update gnulib files, reverts local GNUmakefile hack. 2008-03-20 Simon Josefsson * build-aux/GNUmakefile: Update gnulib files. 2008-03-20 Simon Josefsson * doc/libidn.texi: Make windows installation instructions a separate node, for easy referencing. 2008-03-20 Simon Josefsson * NEWS: Fix. 2008-03-20 Simon Josefsson * build-aux/GNUmakefile, cfg.mk, maint-cfg.mk: Update gnulib files. 2008-03-19 Simon Josefsson * NEWS, configure.ac: Bump versions. 2008-03-19 Simon Josefsson * ChangeLog: Generated. 2008-03-19 Simon Josefsson * NEWS: Version 1.6. 2008-03-19 Simon Josefsson * README: Note that libidn is a GNU project. 2008-03-19 Simon Josefsson * doc/reference/Makefile.am, doc/reference/tmpl/libidn-unused.sgml, gtk-doc.make: Update GTK-DOC build system. 2008-03-19 Simon Josefsson * Makefile.am: Dist Visual Studio files. 2008-03-19 Simon Josefsson * po/LINGUAS: Sync with TP. 2008-03-19 Simon Josefsson * po/LINGUAS: Sync with TP. 2008-03-19 Simon Josefsson * win32/include/Wild.pm, win32/include/ac-stdint.h, win32/include/gen-win32-headers.pl, win32/include/idn-int.h, win32/include/stdbool.h: Add license statements on files. 2008-03-19 Simon Josefsson * AUTHORS, NEWS, THANKS, doc/libidn.texi, win32/include/Wild.pm, win32/include/ac-stdint.h, win32/include/gen-win32-headers.pl, win32/include/idn-int.h, win32/include/stdbool.h, win32/libidn.sln, win32/libidn.vcproj: Add native Visual Studio port, contributed by Adam Strzelecki. 2008-03-19 Simon Josefsson * NEWS: Add. 2008-03-19 Simon Josefsson * lib/idna.c: Doc fix. Clarify difference between domain label and domain name. 2008-03-18 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4: Update gnulib files. 2008-03-12 Simon Josefsson * NEWS, gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/include_next.m4, gl/m4/stdarg.m4, gl/stdarg.in.h, lib/gl/Makefile.am, lib/gl/m4/absolute-header.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/include_next.m4, lib/gl/m4/lib-link.m4: Update gnulib files. 2008-03-12 Simon Josefsson * NEWS: Add. 2008-03-12 Simon Josefsson * doc/specifications/rfc3454.txt: Remove non-free portions of RFC, leaving un-copyrightable material. Also add some quotes from earlier e-mails about licensing on this. 2008-03-10 Simon Josefsson * build-aux/gendocs.sh, gl/getopt.c: Bump versions. 2008-02-25 Simon Josefsson * gl/Makefile.am, gl/m4/unistd_h.m4, gl/unistd.in.h, lib/gl/Makefile.am, lib/gl/m4/unistd_h.m4, lib/gl/unistd.in.h: Update gnulib files. 2008-02-19 Simon Josefsson * NEWS: Bump. 2008-02-19 Simon Josefsson * configure.ac: Bump versions. 2008-02-19 Simon Josefsson * Makefile.am: Fix release target. 2008-02-19 Simon Josefsson * ChangeLog: Generated. 2008-02-19 Simon Josefsson * NEWS: Version 1.5. 2008-02-19 Simon Josefsson * po/LINGUAS: Sync with TP. 2008-02-19 Simon Josefsson * po/LINGUAS: Sync with TP. 2008-02-19 Simon Josefsson * NEWS: Fix charset info. 2008-02-19 Simon Josefsson * doc/libidn.texi, examples/example.c, examples/example3.c, examples/example4.c, examples/example5.c: Fix encoding. 2008-02-19 Simon Josefsson * lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/stdint.in.h: Update gnulib files. 2008-02-19 Simon Josefsson * NEWS: Add link. 2008-02-19 Simon Josefsson * NEWS, THANKS, lib/gl/override/lib/stdint.in.h.diff: Don't include wchar.h, we don't need it. Reported by Mike Frysinger , see . 2008-02-06 Simon Josefsson * NEWS: Add. 2008-02-06 Simon Josefsson * GNUmakefile, Makefile.am, maint-cfg.mk: Brace expansion is not POSIX portable. 2008-02-03 Simon Josefsson * build-aux/gnupload: Update gnulib files. 2008-01-24 Simon Josefsson * po/LINGUAS, po/fi.po: Sync with TP. 2008-01-24 Simon Josefsson * po/LINGUAS: Sync with TP. 2008-01-24 Simon Josefsson * doc/libidn.texi: Fix. 2008-01-15 Simon Josefsson * NEWS: Add. 2008-01-15 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update gnulib files. 2008-01-15 Simon Josefsson * build-aux/announce-gen: Update gnulib files. 2008-01-15 Simon Josefsson * NEWS: Add. 2008-01-15 Simon Josefsson * contrib/web/idn.php: Back-port from josefsson.org. 2008-01-15 Simon Josefsson * doc/libidn.texi: Fix markup. 2008-01-15 Simon Josefsson * doc/libidn.texi: Mention v1.0 as milestone. 2008-01-15 Simon Josefsson * NEWS: Add. 2008-01-15 Simon Josefsson * THANKS: Add. 2008-01-15 Simon Josefsson * po/it.po: Sync with TP. 2008-01-15 Simon Josefsson * doc/libidn.texi: Fix markup. 2008-01-15 Simon Josefsson * doc/libidn.texi: Add 'On Label Separators' section. Add @documentencoding. 2008-01-15 Simon Josefsson * GNUmakefile, maint-cfg.mk: Re-add config.rpath hack. 2008-01-15 Simon Josefsson * build-aux/announce-gen, build-aux/config.rpath, build-aux/gendocs.sh, gl/Makefile.am, gl/error.h, gl/m4/string_h.m4, gl/string.in.h, lib/gl/Makefile.am, lib/gl/m4/string_h.m4, lib/gl/string.in.h: Update gnulib files. 2008-01-10 Simon Josefsson * po/eo.po: Sync with TP. 2008-01-10 Simon Josefsson * NEWS, configure.ac: Bump versions. 2008-01-10 Simon Josefsson * po/cs.po, po/nl.po, po/pl.po, po/vi.po: Sync with TP. 2008-01-09 Simon Josefsson * ChangeLog: Generated. 2008-01-09 Simon Josefsson * NEWS: Version 1.4. 2008-01-09 Simon Josefsson * src/idn.c: Typos. 2008-01-09 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update gnulib files. 2008-01-09 Simon Josefsson * gl/progname.c, gl/progname.h: Add progname gnulib module. 2008-01-09 Simon Josefsson * NEWS: Fix --help and --version 2008-01-09 Simon Josefsson * src/Makefile.am, src/idn.c: Fix --help and --version 2008-01-09 Simon Josefsson * NEWS: Fix. 2008-01-09 Simon Josefsson * NEWS: Add. 2008-01-09 Simon Josefsson * src/Makefile.am, src/idn.c: Use gnulib version-etc for --version. 2008-01-09 Simon Josefsson * doc/libidn.texi: Bump copyright years. 2008-01-09 Simon Josefsson * doc/Makefile.am: Add 2008 to copyright years. 2008-01-02 Simon Josefsson * configure.ac: Nicify --version output by changing AC_INIT project name. 2008-01-02 Simon Josefsson * gl/Makefile.am, gl/dummy.c, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/stdarg.m4, gl/version-etc.c, gl/version-etc.h: Add version-etc gnulib module. 2008-01-02 Simon Josefsson * NEWS: Add. 2008-01-02 Simon Josefsson * THANKS: Add. 2008-01-02 Simon Josefsson * gl/Makefile.am, gl/m4/string_h.m4, gl/m4/unistd_h.m4, gl/string.in.h, gl/unistd.in.h, lib/gl/Makefile.am, lib/gl/m4/stdlib_h.m4, lib/gl/m4/string_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/stdlib.in.h, lib/gl/string.in.h, lib/gl/unistd.in.h: Update gnulib files. 2008-01-02 Simon Josefsson * NEWS: Add. 2008-01-02 Simon Josefsson * po/LINGUAS, po/fi.po, po/nl.po, po/vi.po: Sync with TP. 2007-12-20 Simon Josefsson * NEWS: Add. 2007-12-20 Simon Josefsson * csharp/Makefile.am: Use .exe suffix for C# tool, required by Mono. 2007-12-20 Simon Josefsson * build-aux/gnupload, gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/stdint.in.h: Update gnulib files. 2007-12-20 Simon Josefsson * doc/reference/Makefile.am: Generalize. 2007-12-11 Simon Josefsson * Makefile.am: Don't copy *.sig until it exists. 2007-12-11 Simon Josefsson * NEWS, configure.ac: Bump versions. 2007-12-11 Simon Josefsson * ChangeLog: Generated. 2007-12-11 Simon Josefsson * NEWS: Version 1.3. 2007-12-11 Simon Josefsson * Makefile.am: Reorder release target. 2007-12-11 Simon Josefsson * NEWS: Reorder. 2007-12-11 Simon Josefsson * GNUmakefile, maint-cfg.mk: Remove config.rpath hack. 2007-12-11 Simon Josefsson * build-aux/gendocs.sh, doc/fdl.texi, doc/gendocs_template, doc/gpl-3.0.texi, gl/Makefile.am, gl/m4/csharpcomp.m4, gl/m4/strerror.m4, gl/m4/string_h.m4, gl/m4/unistd_h.m4, gl/string.in.h, gl/unistd.in.h, lib/gl/Makefile.am, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/longlong.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/string_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/stdlib.in.h, lib/gl/string.in.h, lib/gl/unistd.in.h: Update gnulib files. 2007-12-11 Simon Josefsson * lib/gl/m4/ulonglong.m4: Update gnulib files. 2007-12-11 Simon Josefsson * NEWS: Add. 2007-12-11 Simon Josefsson * configure.ac: Use gettext 0.17. 2007-10-29 Simon Josefsson * gl/gettext.h, gl/string.in.h, gl/unistd.in.h: Update gnulib files. 2007-10-29 Simon Josefsson * gl/m4/gnulib-comp.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/stdint.in.h, lib/gl/stdlib.in.h: Update gnulib files. 2007-10-28 Simon Josefsson * build-aux/maint.mk, gl/m4/gnulib-common.m4, gl/strerror.c, lib/gl/m4/gnulib-common.m4, lib/gl/m4/ulonglong.m4, lib/gl/stdbool.in.h, lib/gl/stdint.in.h: Update gnulib files. 2007-10-19 Simon Josefsson * lib/gl/Makefile.am, lib/gl/iconv.in.h, lib/gl/iconv_open.c, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/longlong.m4, lib/gl/m4/ulonglong.m4: Update gnulib files. 2007-10-13 Simon Josefsson * THANKS: Fix. 2007-10-13 Simon Josefsson * THANKS: Add. 2007-10-13 Simon Josefsson * NEWS: Add. 2007-10-13 Simon Josefsson * po/LINGUAS, po/cs.po: Sync with TP. 2007-10-13 Simon Josefsson * gl/Makefile.am, gl/intprops.h, gl/m4/gnulib-comp.m4, gl/m4/strerror.m4, gl/strerror.c, gl/string.in.h, lib/gl/string.in.h: Update gnulib files. 2007-10-08 Simon Josefsson * NEWS: Add. 2007-10-08 Simon Josefsson * doc/libidn.texi: Typo. 2007-10-08 Simon Josefsson * doc/libidn.texi: Fix install section. 2007-10-08 Simon Josefsson * NEWS: Add. 2007-10-08 Simon Josefsson * NEWS, configure.ac: Bump versions. 2007-10-08 Simon Josefsson * gl/Makefile.am, gl/dummy.c, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_int.h, gl/gettext.h, gl/m4/gnulib-cache.m4, gl/strerror.c, gl/string.in.h, gl/unistd.in.h: Use GPLv3 in top-level gnulib files. 2007-10-08 Simon Josefsson * build-aux/csharpcomp.sh.in, gl/Makefile.am, gl/dummy.c, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt.in.h, gl/getopt1.c, gl/getopt_.h, gl/getopt_int.h, gl/m4/gnulib-comp.m4, gl/strerror.c, gl/string.in.h, gl/string_.h, gl/unistd.in.h, gl/unistd_.h, lib/gl/Makefile.am, lib/gl/iconv.in.h, lib/gl/iconv_.h, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/stdint.m4, lib/gl/stdbool.in.h, lib/gl/stdbool_.h, lib/gl/stdint.in.h, lib/gl/stdint_.h, lib/gl/stdlib.in.h, lib/gl/stdlib_.h, lib/gl/string.in.h, lib/gl/string_.h, lib/gl/unistd.in.h, lib/gl/unistd_.h, lib/gl/wchar.in.h, lib/gl/wchar_.h: Update gnulib files. 2007-10-01 Simon Josefsson * ChangeLog: Generated. 2007-10-01 Simon Josefsson * Makefile.am: Fix git-tag -l in release target. 2007-10-01 Simon Josefsson * NEWS: Version 1.2. 2007-10-01 Simon Josefsson * NEWS: Add. 2007-10-01 Simon Josefsson * README-alpha: Remove README-alpha. 2007-10-01 Simon Josefsson * Makefile.am: Also upload to ftp.gnu.org. 2007-10-01 Simon Josefsson * NEWS: Add. 2007-10-01 Simon Josefsson * NEWS: Add. 2007-10-01 Simon Josefsson * configure.ac: Re-order to avoid autoreconf warning. 2007-10-01 Simon Josefsson * Makefile.am: Remove sv. 2007-10-01 Simon Josefsson * po/LINGUAS: Sync with TP. 2007-10-01 Simon Josefsson * po/sv.po: Remove (not part of translation project). 2007-10-01 Simon Josefsson * NEWS, configure.ac: Bump versions. 2007-10-01 Simon Josefsson * gl/Makefile.am, gl/m4/csharpcomp.m4, gl/m4/gnulib-comp.m4, lib/gl/Makefile.am, lib/gl/m4/absolute-header.m4, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/string_h.m4, lib/gl/m4/strverscmp.m4, lib/gl/string_.h: Update gnulib files. 2007-10-01 Simon Josefsson * gl/m4/extensions.m4, gl/m4/strerror.m4, gl/m4/string_h.m4, gl/strerror.c, gl/string_.h, lib/gl/m4/malloc.m4, lib/gl/m4/stdlib_h.m4, lib/gl/m4/unistd_h.m4, lib/gl/malloc.c, lib/gl/stdlib_.h, lib/gl/unistd_.h: Update gnulib files. 2007-10-01 Simon Josefsson * .cvsignore, build-aux/.cvsignore, contrib/doxygen/.cvsignore, contrib/java/.cvsignore, csharp/.cvsignore, doc/.cvsignore, doc/java/.cvsignore, doc/java/gnu/inet/encoding/.cvsignore, doc/java/resources/.cvsignore, doc/man/.cvsignore, doc/reference/.cvsignore, doc/reference/tmpl/.cvsignore, doc/specifications/.cvsignore, doc/tld/.cvsignore, examples/.cvsignore, gl/.cvsignore, java/.cvsignore, java/gnu/.cvsignore, java/gnu/inet/.cvsignore, java/gnu/inet/encoding/.cvsignore, java/misc/.cvsignore, lib/.cvsignore, lib/gl/.cvsignore, libc/.cvsignore, m4/.cvsignore, po/.cvsignore, src/.cvsignore, tests/.cvsignore: Remove unused .cvsignore's. 2007-09-01 Simon Josefsson * ChangeLog: Generated. 2007-09-01 Simon Josefsson * NEWS: Version 1.1. 2007-09-01 Simon Josefsson * NEWS: Add. 2007-09-01 Simon Josefsson * po/nl.po: Sync with TP. 2007-09-01 Simon Josefsson * configure.ac: Wrap. 2007-09-01 Simon Josefsson * configure.ac: Bump versions. 2007-09-01 Simon Josefsson * NEWS: Add. 2007-09-01 Simon Josefsson * NEWS: Add. 2007-08-31 Simon Josefsson * configure.ac: Drop gnits mode. 2007-08-31 Simon Josefsson * lib/Makefile.am: Define LIBIDN_BUILDING, for Windows hack in stringprep.h.in. Inspired by report and patch by "Christian Ehrlicher" , see . 2007-08-31 Simon Josefsson * lib/stringprep.h.in: Mark variables with __declspec(import) on Windows. Inspired by report and patch by "Christian Ehrlicher" , see . 2007-08-31 Simon Josefsson * lib/Makefile.am: Avoid using #include_next in idn-int.h when looking for stdint.h. Reported by Remko van der Vossen in , this tiny patch was suggested by Bruno Haible in . 2007-08-31 Simon Josefsson * build-aux/GNUmakefile, build-aux/maint.mk, lib/gl/m4/stdint.m4: Update gnulib files. 2007-07-31 Simon Josefsson * ChangeLog: Generated. 2007-07-31 Simon Josefsson * NEWS: Add. 2007-07-31 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2007-07-31 Simon Josefsson * doc/reference/libidn-docs.sgml: Fix. 2007-07-31 Simon Josefsson * doc/reference/libidn-docs.sgml: Sync with libidn.texi. 2007-07-31 Simon Josefsson * doc/libidn.texi: Fix intro. 2007-07-31 Simon Josefsson * doc/Makefile.am: Fix gpl/lgpl filenames. 2007-07-31 Simon Josefsson * NEWS: Version 1.0. 2007-07-31 Simon Josefsson * NEWS: Add. 2007-07-31 Simon Josefsson * AUTHORS: Update PGP key. 2007-07-31 Simon Josefsson * NEWS, configure.ac: Bump versions. 2007-07-31 Simon Josefsson * NEWS: Fix. 2007-07-31 Simon Josefsson * doc/Makefile.gdoci: Update license to GPLv3. 2007-07-31 Simon Josefsson * doc/reference/libidn-docs.sgml: Update, sync with libidn.texi. 2007-07-31 Simon Josefsson * doc/libidn.texi: Clarify license versions. 2007-07-31 Simon Josefsson * examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c: Relicense examples/* to GPLv3. 2007-07-31 Simon Josefsson * src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/utils.c, tests/utils.h: Relicense src/ and tests/ stuff to GPLv3. 2007-07-31 Simon Josefsson * Makefile.am, configure.ac, contrib/java/Makefile.am, doc/Makefile.am, doc/java/Makefile.am, doc/specifications/Makefile.am, doc/tld/Makefile.am, examples/Makefile.am, src/Makefile.am, tests/Makefile.am: Relicense Makefile.am and configure.ac to GPLv3. 2007-07-31 Simon Josefsson * README: Clarify licenses. 2007-07-31 Simon Josefsson * COPYING: Use GPLv3. 2007-07-31 Simon Josefsson * gl/m4/include_next.m4: Update gnulib files. 2007-07-31 Simon Josefsson * NEWS, build-aux/announce-gen, build-aux/config.rpath, build-aux/gendocs.sh, build-aux/gnupload, build-aux/maint.mk, doc/fdl.texi, doc/gendocs_template, doc/gpl-3.0.texi, doc/gpl.texi, doc/lgpl-2.1.texi, doc/lgpl.texi, doc/libidn.texi, gl/Makefile.am, gl/error.c, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/override/doc/gpl.texi.diff, gl/override/doc/lgpl.texi.diff, gl/unistd_.h, lib/gl/Makefile.am, lib/gl/iconv_.h, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/include_next.m4, lib/gl/m4/stdint.m4, lib/gl/m4/string_h.m4, lib/gl/m4/wchar.m4, lib/gl/stdint_.h, lib/gl/string_.h, lib/gl/wchar_.h: Update gnulib files. 2007-06-04 Simon Josefsson * NEWS, configure.ac: Bump versions. 2007-05-31 Simon Josefsson * .cvscopying: Add year 2007. 2007-05-31 Simon Josefsson * ChangeLog: Generated. 2007-05-31 Simon Josefsson * NEWS: Version 0.6.14. 2007-05-31 Simon Josefsson * NEWS: Add. 2007-05-31 Simon Josefsson * NEWS: Add. 2007-05-31 Simon Josefsson * README-alpha: Cvs to git changes. 2007-05-31 Simon Josefsson * Makefile.am: Use git instead of cvs. 2007-05-31 Simon Josefsson * configure.ac: Bump versions. 2007-05-31 Simon Josefsson * NEWS: Add. 2007-05-31 Simon Josefsson * ChangeLog: [no log message] 2007-05-31 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2007-05-31 Simon Josefsson * NEWS: Version 0.6.13. 2007-05-31 Simon Josefsson * doc/Makefile.am: Install libidn-components.png in infodir, fixes broken image in the info manual. 2007-05-31 Simon Josefsson * NEWS: Add. 2007-05-31 Simon Josefsson * doc/reference/Makefile.am, doc/reference/libidn-docs.sgml: Fix image filename. 2007-05-31 Simon Josefsson * doc/.cvsignore: [no log message] 2007-05-31 Simon Josefsson * doc/Makefile.am, doc/libidn.texi: Rename @image files so that they are prefixed with $PROJECT, so they can be installed in $infodir without collisions. 2007-05-31 Simon Josefsson * NEWS: Add. 2007-05-31 Simon Josefsson * po/pl.po, po/vi.po: Sync with TP. 2007-05-31 Simon Josefsson * NEWS: Fix. 2007-05-31 Simon Josefsson * NEWS: Add. 2007-05-31 Simon Josefsson * doc/gendocs_template, gl/Makefile.am, gl/m4/unistd_h.m4, gl/override/doc/gendocs_template, gl/override/doc/gendocs_template.diff, gl/unistd_.h, lib/gl/Makefile.am, lib/gl/iconv_.h, lib/gl/m4/iconv.m4, lib/gl/m4/stdint.m4, lib/gl/stdint_.h, lib/gl/string_.h, lib/gl/wchar_.h: Update. 2007-05-30 Simon Josefsson * configure.ac: Bump versions. 2007-05-30 Simon Josefsson * NEWS: Add. 2007-05-30 Simon Josefsson * doc/libidn.texi: Typo. 2007-05-30 Simon Josefsson * README: Clarify license of C# port. 2007-05-30 Simon Josefsson * doc/libidn.texi: Clarify license of java/csharp implementation. 2007-04-25 Simon Josefsson * ChangeLog: [no log message] 2007-04-25 Simon Josefsson * NEWS: Version 0.6.12. 2007-04-25 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2007-04-24 Simon Josefsson * NEWS, THANKS: Add. 2007-04-24 Simon Josefsson * java/misc/Makefile.am: Use AM_JAVACFLAGS instead of JAVACFLAGS. See .Tiny patch from Petteri Räty . 2007-04-19 Simon Josefsson * lib/gl/.cvsignore: [no log message] 2007-04-19 Simon Josefsson * NEWS: Add. 2007-04-19 Simon Josefsson * build-aux/gendocs.sh, gl/dummy.c, gl/m4/gnulib-comp.m4, lib/gl/.cvsignore, lib/gl/Makefile.am, lib/gl/iconv_.h, lib/gl/iconv_open-aix.gperf, lib/gl/iconv_open-hpux.gperf, lib/gl/iconv_open-irix.gperf, lib/gl/iconv_open-osf.gperf, lib/gl/iconv_open.c, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconv_h.m4, lib/gl/m4/iconv_open.m4, lib/gl/m4/stdint.m4, lib/gl/stdbool_.h, lib/gl/string_.h, lib/gl/wchar_.h: Update. 2007-04-02 Simon Josefsson * csharp/Makefile.am: Fix typo. 2007-03-13 Simon Josefsson * libidn.fms: 0.6.11. 2007-03-13 Simon Josefsson * libidn.fms: 0.6.10. 2007-03-13 Simon Josefsson * libidn.fms: 0.6.9. 2007-03-13 Simon Josefsson * NEWS, configure.ac: Bump versions. 2007-03-13 Simon Josefsson * ChangeLog: [no log message] 2007-03-13 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2007-03-13 Simon Josefsson * NEWS: Version 0.6.11. 2007-03-13 Simon Josefsson * csharp/Makefile.am: Fix path to csharpcomp. 2007-03-13 Simon Josefsson * NEWS: Add. 2007-03-13 Simon Josefsson * csharp/Makefile.am: Dist more. 2007-03-13 Simon Josefsson * csharp/Makefile.am: Fix tests. 2007-03-13 Simon Josefsson * csharp/Makefile.am: fix 2007-03-13 Simon Josefsson * csharp/.cvsignore: [no log message] 2007-03-13 Simon Josefsson * csharp/generate/GenerateNFKC.cs: Fix typo. 2007-03-13 Simon Josefsson * csharp/generate/GenerateNFKC.cs: Don't wait for newline from user (breaks batch usage). Fix typo. 2007-03-13 Simon Josefsson * csharp/generate/GenerateRFC3454.cs: Don't wait for return from user (breaks batch usage). 2007-03-13 Simon Josefsson * csharp/generate/GenerateRFC3454.cs: Fix namespace. 2007-03-13 Simon Josefsson * csharp/IDNA.cs, csharp/IDNAException.cs, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, csharp/libidn.cmbx, csharp/libidn.csproj, csharp/libidn.csproj.user, csharp/libidn.prjx, csharp/libidn.sln: Update, from Alexander Gnauck . 2007-03-13 Simon Josefsson * csharp/CombiningClass.cs, csharp/Composition.cs, csharp/DecompositionKeys.cs, csharp/DecompositionMappings.cs, csharp/RFC3454.cs: Remove. 2007-03-13 Simon Josefsson * csharp/Makefile.am: Generate generated files. 2007-03-13 Simon Josefsson * csharp/generate/GenerateRFC3454.cs: AppendLine isn't supported by cscc, use Append+\n. 2007-03-13 Simon Josefsson * csharp/Makefile.am, csharp/generate/AssemblyInfo.cs, csharp/generate/GenerateNFKC.cs, csharp/generate/GenerateRFC3454.cs, csharp/generate/HashSet.cs, csharp/generate/Program.cs, csharp/generate/Tokenizer.cs: Add code to generate tables, from Alexander Gnauck . 2007-03-13 Simon Josefsson * gl/dummy.c, gl/getopt_.h, lib/gl/stdint_.h: Update. 2007-03-09 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2007-03-09 Simon Josefsson * configure.ac: Bump versions. 2007-03-09 Simon Josefsson * csharp/Makefile.am: Revert. 2007-03-09 Simon Josefsson * lib/gl/string.h: Update. 2007-03-09 Simon Josefsson * build-aux/.cvsignore, doc/.cvsignore, gl/.cvsignore, lib/gl/.cvsignore: [no log message] 2007-03-09 Simon Josefsson * Makefile.am, csharp/Makefile.am: Update gnulib. 2007-03-09 Simon Josefsson * GNUmakefile, announce-gen, build-aux/GNUmakefile, build-aux/announce-gen, build-aux/config.rpath, build-aux/csharpcomp.sh.in, build-aux/gendocs.sh, build-aux/gnupload, build-aux/link-warning.h, build-aux/maint.mk, csharpcomp.sh.in, gendocs.sh, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/unistd_.h, gnupload, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/string_h.m4, lib/gl/string_.h, maint-cfg.mk, maint.mk: Update. 2007-03-09 Simon Josefsson * configure.ac: Use build-aux. 2007-02-24 Simon Josefsson * doc/specifications/draft-klensin-idnabis-issues-01.txt: Add. 2007-02-06 Simon Josefsson * lib/gl/Makefile.am, lib/gl/m4/string_h.m4, lib/gl/string_.h: Update. 2007-02-05 Simon Josefsson * NEWS: Add. 2007-02-05 Simon Josefsson * lib/gl/Makefile.am, lib/gl/c-ctype.c, lib/gl/c-ctype.h, lib/gl/c-strcase.h, lib/gl/c-strcasecmp.c, lib/gl/c-strncasecmp.c, lib/gl/iconvme.c, lib/gl/iconvme.h, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/iconvme.m4, lib/gl/m4/stdbool.m4, lib/gl/stdbool_.h, lib/gl/striconv.c, lib/gl/striconv.h, lib/gl/string.h, lib/toutf8.c: Update. 2007-02-05 Simon Josefsson * NEWS: Add. 2007-02-05 Simon Josefsson * gl/m4/unistd_h.m4, lib/gl/Makefile.am, lib/gl/iconvme.c, lib/gl/m4/extensions.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/strdup.m4, lib/gl/m4/string_h.m4, lib/gl/strdup.c, lib/gl/strdup.h, lib/gl/string_.h: Update. 2007-01-25 Simon Josefsson * gl/Makefile.am, gl/m4/absolute-header.m4, gl/m4/gnulib-common.m4, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/unistd_.h, lib/gl/Makefile.am, lib/gl/m4/gnulib-common.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/stdint.m4, lib/gl/m4/wchar.m4, lib/gl/stdint_.h, lib/gl/wchar_.h: Update. 2007-01-04 Simon Josefsson * ChangeLog: [no log message] 2007-01-04 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2007-01-04 Simon Josefsson * NEWS: Version 0.6.10. 2007-01-04 Simon Josefsson * NEWS: Add. 2007-01-04 Simon Josefsson * FAQ, NEWS, README, README-alpha, THANKS, TODO, configure.ac, contrib/README, contrib/doxygen/gdoc2doxygen, contrib/java/Makefile.am, contrib/java/README, csharp/CombiningClass.cs, csharp/Composition.cs, csharp/DecompositionKeys.cs, csharp/DecompositionMappings.cs, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/Makefile.am, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/RFC3454.cs, csharp/Stringprep.cs, csharp/StringprepException.cs, doc/Makefile.am, doc/Makefile.gdoci, doc/gdoc, doc/libidn.texi, doc/specifications/Makefile.am, doc/tld/Makefile.am, doc/tld/README, examples/Makefile.am, examples/README, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c, java/Makefile.am, java/gnu/inet/encoding/CombiningClass.java, java/gnu/inet/encoding/Composition.java, java/gnu/inet/encoding/DecompositionKeys.java, java/gnu/inet/encoding/DecompositionMappings.java, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/RFC3454.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/Makefile.am, java/misc/TestIDNA.java, java/misc/TestNFKC.java, lib/Makefile.am, lib/gen-stringprep-tables.pl, lib/gen-tld-tables.pl, lib/gen-unicode-tables.pl, lib/idn-free.c, lib/idn-free.h, lib/idna.c, lib/idna.h, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/stringprep.h.in, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libidn.pc.in, maint-cfg.mk, po/POTFILES.in, src/Makefile.am, src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/Makefile.am, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/utils.c, tests/utils.h: Bump copyright years (also add older years which I forgot to add earlier). 2007-01-04 Simon Josefsson * AUTHORS: Update PGP key. 2007-01-03 Simon Josefsson * announce-gen, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/lib-link.m4: Update. 2006-12-28 Simon Josefsson * announce-gen, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Add. 2006-12-28 Simon Josefsson * lib/gl/iconvme.c, lib/gl/m4/lib-link.m4, lib/gl/m4/stdint.m4, lib/gl/strdup.h: Update. 2006-12-26 Simon Josefsson * doc/specifications/draft-suignard-stringprep-bis-00.txt: Add. 2006-12-10 Simon Josefsson * NEWS, configure.ac: Bump versions. 2006-11-30 Simon Josefsson * ChangeLog: [no log message] 2006-11-30 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-11-30 Simon Josefsson * NEWS: Version 0.6.9. 2006-11-30 Simon Josefsson * m4/.cvsignore: [no log message] 2006-11-30 Simon Josefsson * NEWS: Add. 2006-11-30 Simon Josefsson * m4/codeset.m4, m4/iconv.m4, m4/lib-link.m4: Remove. 2006-11-30 Simon Josefsson * NEWS, configure.ac: Bump tool versions. 2006-11-30 Simon Josefsson * gl/Makefile.am, gl/gettext.h, lib/gl/Makefile.am, lib/gl/gettext.h, lib/gl/m4/stdint.m4: Update. 2006-11-16 Simon Josefsson * java/misc/TestIDNA.java: Re-add test, with fixed code that doesn't use Java 1.5 syntax. Suggested by "Stephane Mikaty" . 2006-11-16 Simon Josefsson * java/misc/TestIDNA.java: Revert (didn't compile). 2006-11-15 Simon Josefsson * NEWS, THANKS: Add. 2006-11-15 Simon Josefsson * java/misc/TestIDNA.java: New self-test to test for ToIDNA regression regarding non-ascii dot-delimiters. Tiny patch from "Stephane Mikaty" . 2006-11-15 Simon Josefsson * java/gnu/inet/encoding/IDNA.java: Fix non-ascii dot in strings, tiny patch from "Stephane Mikaty" . 2006-11-15 Simon Josefsson * NEWS: Add. 2006-11-15 Simon Josefsson * gl/Makefile.am, gl/getopt_.h, gl/gettext.h, gl/m4/gnulib-comp.m4, gnupload, lib/gl/Makefile.am, lib/gl/gettext.h, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/longlong.m4, lib/gl/stdint_.h: Update. 2006-10-31 Simon Josefsson * NEWS, configure.ac: Bump versions. 2006-10-31 Simon Josefsson * gl/Makefile.am, gl/gettext.h, gl/m4/gnulib-comp.m4, lib/gl/Makefile.am, lib/gl/gettext.h, lib/gl/iconvme.c, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/lib-link.m4, lib/gl/stdint_.h: Update. 2006-10-26 Simon Josefsson * doc/specifications/draft-faltstrom-idnabis-tables-01.txt: Add. 2006-10-20 Simon Josefsson * doc/specifications/draft-faltstrom-idnabis-tables-00.txt, doc/specifications/draft-klensin-idnabis-issues-00.txt: Add. 2006-10-18 Simon Josefsson * ChangeLog: [no log message] 2006-10-18 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2006-10-18 Simon Josefsson * NEWS: Version 0.6.8. 2006-10-18 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-10-18 Simon Josefsson * NEWS: Add. 2006-10-18 Simon Josefsson * configure.ac, src/idn.c: Assume locale.h and setlocale. 2006-10-18 Simon Josefsson * Makefile.am, lib/Makefile.am: Build lib/gl/ earlier. 2006-10-18 Simon Josefsson * lib/gl/.cvsignore: [no log message] 2006-10-18 Simon Josefsson * lib/Makefile.am: Build gl/ first. 2006-10-18 Simon Josefsson * lib/Makefile.am, lib/gl/Makefile.am, lib/gl/m4/absolute-header.m4, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/longlong.m4, lib/gl/m4/stdint.m4, lib/gl/m4/ulonglong.m4, lib/gl/stdint_.h, po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Add stdint module to lib/. 2006-10-18 Simon Josefsson * gl/Makefile.am, gl/m4/absolute-header.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/longlong.m4, gl/m4/stdint.m4, gl/m4/strdup.m4, gl/m4/ulonglong.m4, gl/stdint_.h, gl/strdup.c, gl/strdup.h: Remove. 2006-10-18 Simon Josefsson * doc/reference/Makefile.am: Ignore all of lib/gl/. 2006-10-18 Simon Josefsson * configure.ac: Move libtool init, to avoid warnings. 2006-10-18 Simon Josefsson * lib/gl/Makefile.am, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/strverscmp.m4, lib/gl/strverscmp.c, lib/gl/strverscmp.h: Add strverscmp. 2006-10-18 Simon Josefsson * lib/version.c: Rewrite using strverscmp, to fix some corner-cases. 2006-10-18 Simon Josefsson * lib/Makefile.am, lib/gl/Makefile.am, lib/gl/gettext.h, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/iconvme.c, lib/iconvme.h: Use iconvme from gnulib. 2006-10-18 Simon Josefsson * doc/reference/Makefile.am: Ignore strdup.h. 2006-10-18 Simon Josefsson * NEWS: Add. 2006-10-18 Simon Josefsson * lib/gl/.cvsignore: [no log message] 2006-10-18 Simon Josefsson * Makefile.am, configure.ac, gl/Makefile.am, gl/gettext.h, gl/m4/gnulib-comp.m4, gl/m4/longlong.m4, gl/m4/stdint.m4, gl/m4/ulonglong.m4, gl/stdint_.h, gl/strdup.c, gnupload, lib/Makefile.am, lib/gl/Makefile.am, lib/gl/iconvme.c, lib/gl/iconvme.h, lib/gl/m4/gnulib-cache.m4, lib/gl/m4/gnulib-comp.m4, lib/gl/m4/gnulib-tool.m4, lib/gl/m4/iconv.m4, lib/gl/m4/iconvme.m4, lib/gl/m4/lib-ld.m4, lib/gl/m4/lib-link.m4, lib/gl/m4/lib-prefix.m4, lib/gl/m4/strdup.m4, lib/gl/strdup.c, lib/gl/strdup.h: Separate gnulib directories. Also update gnulib files. 2006-10-17 Simon Josefsson * doc/specifications/draft-alvestrand-idna-bidi-00.txt: Add. 2006-10-14 Simon Josefsson * doc/specifications/rfc4713.txt: Add. 2006-10-02 Simon Josefsson * doc/specifications/rfc4690.txt: Add. 2006-09-27 Simon Josefsson * configure.ac: Bump versions. 2006-09-27 Simon Josefsson * NEWS: Add. 2006-09-25 Simon Josefsson * gl/m4/gnulib-comp.m4, gl/override/doc/gpl.texi.diff, gl/override/doc/lgpl.texi.diff, gl/override/gpl.texi.diff, gl/override/lgpl.texi.diff: Update. 2006-09-21 Simon Josefsson * doc/gpl.texi, doc/lgpl.texi, gl/override/gpl.texi.diff, gl/override/lgpl.texi.diff: Update. 2006-09-14 Simon Josefsson * gl/Makefile.am, gl/error.c, gl/getopt.c, gl/getopt1.c, gl/strdup.c: Update. 2006-09-13 Simon Josefsson * ChangeLog: [no log message] 2006-09-13 Simon Josefsson * NEWS: Version 0.6.7. 2006-09-13 Simon Josefsson * NEWS: Add. 2006-09-13 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-09-13 Simon Josefsson * gl/m4/gnulib-comp.m4, gl/m4/onceonly_2_57.m4: Update. 2006-09-12 Simon Josefsson * NEWS: Add. 2006-09-12 Simon Josefsson * THANKS: Add. 2006-09-12 Simon Josefsson * lib/Makefile.am: For C99 stdint.h platforms, create a dummy idn-int.h that include stdint.h, reported by Paul Howarth . 2006-09-12 Simon Josefsson * NEWS, configure.ac: Bump versions. 2006-09-12 Simon Josefsson * doc/libidn.texi: Add. 2006-09-12 Simon Josefsson * doc/libidn.texi: Move the index to the end. 2006-09-12 Simon Josefsson * doc/libidn.texi: Fix refs. 2006-09-12 Simon Josefsson * doc/fdl.texi, doc/gpl.texi, doc/lgpl.texi, doc/libidn.texi, gl/Makefile.am, gl/m4/gnulib-comp.m4: Update. 2006-09-04 Simon Josefsson * doc/fdl.texi, doc/gpl.texi, doc/lgpl.texi: Update. 2006-09-04 Simon Josefsson * doc/libidn.texi: Fix. 2006-09-04 Simon Josefsson * doc/Makefile.am, doc/gpl.texi, doc/lgpl.texi, doc/libidn.texi, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Add lgpl and gpl from gnulib. 2006-08-30 Simon Josefsson * Makefile.am: Use gnupload from gnulib. 2006-08-30 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gnupload: Update. 2006-08-30 Simon Josefsson * gl/Makefile.am, gl/error.c, gl/m4/gnulib-cache.m4, gl/m4/stdint.m4, gl/stdint_.h: Update. 2006-08-28 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/stdint.m4, gl/stdint_.h: Update. 2006-08-23 Simon Josefsson * ChangeLog: [no log message] 2006-08-23 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2006-08-23 Simon Josefsson * NEWS: Version 0.6.6. 2006-08-23 Simon Josefsson * gl/m4/longlong.m4: Update. 2006-08-23 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/strdup.m4, gl/m4/strerror_r.m4: Update. 2006-08-23 Simon Josefsson * gl/override/doc/gendocs_template: Add. 2006-08-19 Simon Josefsson * gl/error.c, gl/m4/gnulib-comp.m4: Update. 2006-08-09 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-08-09 Simon Josefsson * NEWS: Add. 2006-08-09 Simon Josefsson * csharpcomp.sh.in, gendocs.sh, gl/Makefile.am, gl/error.c, gl/error.h, gl/gettext.h, gl/m4/csharpcomp.m4, gl/m4/gnulib-comp.m4, gl/m4/onceonly_2_57.m4, gl/m4/stdint.m4, gl/stdint_.h: Update. 2006-07-14 Simon Josefsson * Makefile.am: Fix. 2006-07-14 Simon Josefsson * doc/gendocs.sh, gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update. 2006-07-11 Simon Josefsson * doc/fdl.texi, gl/Makefile.am, gl/m4/absolute-header.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/stdint.m4: Update. 2006-07-11 Simon Josefsson * doc/Makefile.am: Fix texi2dvi -I's. 2006-07-10 Simon Josefsson * gl/m4/absolute-header.m4, gl/m4/getopt.m4, gl/m4/gnulib-comp.m4, gl/m4/onceonly_2_57.m4: Update. 2006-07-07 Simon Josefsson * gl/.cvsignore: [no log message] 2006-07-07 Simon Josefsson * NEWS, configure.ac, gl/Makefile.am, gl/m4/absolute-header.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/longlong.m4, gl/m4/stdint.m4, gl/stdint_.h, lib/Makefile.am, m4/ax_create_stdint_h.m4, po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Use gnulib stdint module instead of AX_CREATE_STDINT_H. 2006-07-07 Simon Josefsson * NEWS, configure.ac: Bump version. 2006-07-07 Simon Josefsson * Makefile.am: Fix gendocs.sh run. 2006-07-07 Simon Josefsson * ChangeLog: [no log message] 2006-07-07 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2006-07-07 Simon Josefsson * NEWS: Version 0.6.5. 2006-07-07 Simon Josefsson * doc/gendocs.sh: Update. 2006-07-07 Simon Josefsson * NEWS: Add. 2006-07-07 Simon Josefsson * NEWS: Add. 2006-07-07 Simon Josefsson * contrib/doxygen/Doxyfile.in, contrib/doxygen/Doxyfile.orig: Update to doxygen 1.4.7. 2006-07-07 Simon Josefsson * NEWS, THANKS: Add. 2006-07-07 Simon Josefsson * lib/Makefile.am: Need libintl too, for gettext, reported by Kirill Ponomarew . 2006-07-07 Simon Josefsson * gl/getopt.c: Update. 2006-07-07 Simon Josefsson * NEWS, configure.ac: Bump versions. 2006-07-06 Simon Josefsson * ChangeLog: [no log message] 2006-07-06 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/ja.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2006-07-06 Simon Josefsson * NEWS: Version 0.6.4. 2006-07-06 Simon Josefsson * configure.ac: Fix valgrind test. 2006-07-06 Simon Josefsson * configure.ac: Check if running valgrind works. 2006-07-06 Simon Josefsson * doc/Makefile.am: Need -I for texi2dvi too. 2006-07-06 Simon Josefsson * doc/libidn.texi: Fix paths. 2006-07-06 Simon Josefsson * doc/man/.cvsignore: Add. 2006-07-06 Simon Josefsson * gl/Makefile.am, gl/m4/onceonly_2_57.m4: Update. 2006-07-06 Simon Josefsson * NEWS: Fix. 2006-07-06 Simon Josefsson * tests/Makefile.am: Simplify valgrind usage. 2006-07-06 Simon Josefsson * configure.ac: Check for valgrind. 2006-06-27 Simon Josefsson * doc/gdoc: Use GNU-style warnings. 2006-06-27 Simon Josefsson * doc/gdoc: Fix man output, sync. 2006-06-22 Simon Josefsson * configure.ac: Use AC_LIBTOOL_WIN32_DLL. 2006-06-16 Simon Josefsson * doc/specifications/draft-iab-idn-nextsteps-06.txt: Add. 2006-06-10 Simon Josefsson * po/LINGUAS, po/ja.po: Sync with TP. 2006-06-09 Simon Josefsson * doc/specifications/rfc4518.txt: Add. 2006-06-07 Simon Josefsson * gl/m4/gnulib-comp.m4: Update. 2006-06-07 Simon Josefsson * gl/m4/gnulib-comp.m4: Update. 2006-06-07 Simon Josefsson * gl/m4/gnulib-comp.m4: Update. 2006-06-01 Simon Josefsson * NEWS: Add. 2006-06-01 Simon Josefsson * src/idn.c: When printing size_t, use %lu and cast the value to unsigned long, based on report from Joe Orton . 2006-06-01 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-06-01 Simon Josefsson * NEWS: Add. 2006-06-01 Simon Josefsson * lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c: Include config.h, to make NLS work, tiny patch from Joe Orton . 2006-05-16 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update. 2006-05-05 Simon Josefsson * doc/java/.cvsignore, doc/java/resources/.cvsignore: [no log message] 2006-05-04 Simon Josefsson * NEWS: Add. 2006-05-04 Simon Josefsson * tests/Makefile.am: Run tests under valgrind, if present. 2006-04-26 Simon Josefsson * doc/libidn.texi: Typo. 2006-04-26 Simon Josefsson * gl/Makefile.am, gl/m4/strerror_r.m4: Update. 2006-04-17 Simon Josefsson * doc/specifications/draft-iab-idn-nextsteps-05.txt: Add. 2006-03-14 Simon Josefsson * doc/libidn.texi: Fix title. 2006-03-11 Simon Josefsson * README-alpha: Fix. 2006-03-11 Simon Josefsson * maint-cfg.mk: fix 2006-03-11 Simon Josefsson * gtk-doc.make: Add. 2006-03-10 Simon Josefsson * doc/specifications/draft-farah-adntf-adns-guidelines-01.txt: Add. 2006-03-08 Simon Josefsson * NEWS, configure.ac: Bump versions. 2006-03-08 Simon Josefsson * ChangeLog: [no log message] 2006-03-08 Simon Josefsson * NEWS: Typo. 2006-03-08 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2006-03-08 Simon Josefsson * NEWS: Version 0.6.3. 2006-03-08 Simon Josefsson * NEWS: Add. 2006-03-08 Simon Josefsson * NEWS, configure.ac, po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Bump versions. 2006-03-08 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/unistd_.h, maint.mk: Update. 2006-03-08 Simon Josefsson * gl/Makefile.am, gl/getopt.c, gl/m4/gnulib-comp.m4, gl/m4/unistd_h.m4, gl/unistd_.h, maint.mk: Update. 2006-03-07 Simon Josefsson * doc/specifications/draft-iab-idn-nextsteps-04.txt: Add. 2006-03-03 Simon Josefsson * po/LINGUAS, po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-03-03 Simon Josefsson * Makefile.am: Fix update-po rule. 2006-03-03 Simon Josefsson * maint.mk: Update. 2006-03-03 Simon Josefsson * maint.mk: Update. 2006-03-03 Simon Josefsson * examples/example3.c, examples/example4.c, lib/nfkc.c: Doc fix. 2006-03-03 Simon Josefsson * lib/idna.c, lib/nfkc.c, lib/stringprep.c, lib/toutf8.c, lib/version.c, src/idn.c, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/utils.c: Stylistic fix. 2006-03-03 Simon Josefsson * gl/getopt.c, maint.mk: Update. 2006-03-03 Simon Josefsson * Makefile.am, examples/Makefile.am, lib/Makefile.am, src/Makefile.am, tests/Makefile.am: Remove indent. 2006-02-17 Simon Josefsson * doc/specifications/draft-iab-idn-nextsteps-03.txt: Add. 2006-02-16 Simon Josefsson * maint-cfg.mk: Fix. 2006-02-16 Simon Josefsson * maint-cfg.mk: Fix. 2006-02-16 Simon Josefsson * maint-cfg.mk: Fix. 2006-02-16 Simon Josefsson * maint-cfg.mk: Fix. Add mingw32 target. 2006-02-15 Simon Josefsson * maint.mk: Update. 2006-02-14 Simon Josefsson * GNUmakefile, Makefile.cfg, Makefile.maint, gl/m4/gnulib-comp.m4, maint-cfg.mk, maint.mk: Rename. 2006-02-14 Simon Josefsson * Makefile.cfg: Fix. 2006-02-14 Simon Josefsson * Makefile.cfg: Fix. 2006-02-14 Simon Josefsson * Makefile.cfg: Fix. 2006-02-14 Simon Josefsson * Makefile.cfg: Fix. 2006-02-14 Simon Josefsson * autogen.sh: Remove. 2006-02-14 Simon Josefsson * GNUmakefile, Makefile.cfg, Makefile.maint: Add. 2006-02-11 Simon Josefsson * GNUmakefile, Makefile.maint, csharpcomp.sh.in, gl/Makefile.am, gl/csharpcomp.sh.in, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update gnulib. 2006-02-07 Simon Josefsson * libidn.fms: 0.6.2. 2006-02-07 Simon Josefsson * ChangeLog: [no log message] 2006-02-07 Simon Josefsson * doc/libidn.texi: Fix includes, for make dist. 2006-02-07 Simon Josefsson * doc/Makefile.am: Fix -I's again, for make dist. 2006-02-07 Simon Josefsson * doc/libidn.texi: Fix @verbatiminclude's, for make dist. 2006-02-07 Simon Josefsson * doc/Makefile.am: Fix -I's, for make dist. 2006-02-07 Simon Josefsson * doc/Makefile.am: Add -I for examples. 2006-02-07 Simon Josefsson * .cvscopying: Fix years. 2006-02-07 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2006-02-07 Simon Josefsson * NEWS: Version 0.6.2. 2006-02-07 Simon Josefsson * NEWS: Add. 2006-02-07 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/vi.po: Update. 2006-02-07 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-02-07 Simon Josefsson * gl/csharpcomp.sh.in, gl/getopt.c, gl/m4/getopt.m4, gl/m4/gnulib-tool.m4: Update. 2006-02-05 Simon Josefsson * NEWS: Add. 2006-02-03 Simon Josefsson * java/misc/Makefile.am: Fix objdir != srcdir, tiny patch from Bernard Leak . 2006-02-03 Simon Josefsson * NEWS, THANKS: Add. 2006-02-03 Simon Josefsson * doc/java/Makefile.am, java/Makefile.am: Fix objdir != srcdir, tiny patch from Bernard Leak . 2006-01-27 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-01-27 Simon Josefsson * NEWS, configure.ac: Bump versions. 2006-01-27 Simon Josefsson * doc/Makefile.am: Fix 'make distcheck'. 2006-01-26 Simon Josefsson * doc/libidn.texi: Fix. 2006-01-24 Simon Josefsson * doc/specifications/draft-ietf-ldapbis-strprep-07.txt: Add. 2006-01-20 Simon Josefsson * libidn.fms: 0.6.1. 2006-01-20 Simon Josefsson * ChangeLog: [no log message] 2006-01-20 Simon Josefsson * NEWS: Version 0.6.1. 2006-01-20 Simon Josefsson * doc/libidn.texi: Add. 2006-01-20 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Sync with TP. 2006-01-20 Simon Josefsson * NEWS: Add. 2006-01-20 Simon Josefsson * doc/Makefile.am: Fix mingw32 builds. 2006-01-20 Simon Josefsson * tests/Makefile.am: Fix make check on mingw32. 2006-01-12 Simon Josefsson * doc/specifications/draft-xdlee-idn-cdnadmin-06.txt: Add. 2006-01-11 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4: Update. 2006-01-11 Simon Josefsson * doc/Makefile.am, doc/libidn.texi: Fix copyright years. 2006-01-11 Simon Josefsson * README, README-alpha: Add. 2006-01-11 Simon Josefsson * AUTHORS: Update PGP key. 2006-01-11 Simon Josefsson * csharp/Makefile.am: Fix path to csharpcomp.sh. 2006-01-11 Simon Josefsson * NEWS: Add. 2006-01-11 Simon Josefsson * .cvsignore, gl/.cvsignore: [no log message] 2006-01-11 Simon Josefsson * configure.ac: Fix. 2006-01-11 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update. 2006-01-09 Simon Josefsson * gl/m4/gnulib-cache.m4, gl/m4/gnulib-tool.m4: Update. 2006-01-09 Simon Josefsson * gl/Makefile.am, gl/csharpcomp.sh.in, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update. 2006-01-09 Simon Josefsson * tests/tst_idna2.c: Print USC4 code point numbers too. 2005-12-23 Simon Josefsson * doc/specifications/rfc4290.txt: Add. 2005-12-22 Simon Josefsson * doc/specifications/draft-iab-idn-nextsteps-01.txt: Add. 2005-12-12 Simon Josefsson * doc/libidn.texi: Add. 2005-12-03 Simon Josefsson * libidn.fms: 0.6.0. 2005-12-03 Simon Josefsson * NEWS, configure.ac: Bump version. 2005-12-03 Simon Josefsson * ChangeLog: [no log message] 2005-12-03 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2005-12-03 Simon Josefsson * NEWS: Version 0.6.0. 2005-12-03 Simon Josefsson * doc/libidn.texi: Add. 2005-12-03 Simon Josefsson * NEWS: Fix. 2005-12-03 Simon Josefsson * NEWS: Fix. 2005-12-03 Simon Josefsson * configure.ac: Csharp test is in gnulib now, remove it. 2005-12-03 Simon Josefsson * doc/specifications/draft-iab-idn-nextsteps-00.txt: Add. 2005-12-02 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/vi.po, po/zh_CN.po: Sync with TP. 2005-12-02 Simon Josefsson * doc/libidn.texi: Add C# notes. 2005-12-02 Simon Josefsson * configure.ac: Fix message. 2005-12-02 Simon Josefsson * gl/Makefile.am, gl/csharpcomp.sh.in, gl/m4/csharp.m4, gl/m4/csharpcomp.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, m4/csharp.m4, m4/csharpcomp.m4: Use csharpcomp-script from gnulib. 2005-12-02 Simon Josefsson * csharp/Makefile.am: Don't specify any C# compile flags (fixes distcheck). 2005-12-01 Simon Josefsson * po/da.po, po/rw.po, po/zh_CN.po: Sync with TP. 2005-12-01 Simon Josefsson * NEWS: Add. 2005-12-01 Simon Josefsson * csharp/Makefile.am: Dist MSVS stuff. 2005-12-01 Simon Josefsson * csharp/libidn.csproj, csharp/libidn.csproj.user, csharp/libidn.sln, csharp/libidn_PPC.csdproj, csharp/libidn_PPC.csdproj.user, csharp/libidn_PPC.sln: Add MSVSC project files. 2005-12-01 Simon Josefsson * NEWS: Add. 2005-12-01 Simon Josefsson * csharp/CombiningClass.cs, csharp/Composition.cs, csharp/DecompositionKeys.cs, csharp/DecompositionMappings.cs, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/RFC3454.cs, csharp/Stringprep.cs, csharp/StringprepException.cs: Use GPL for the port. 2005-12-01 Simon Josefsson * NEWS: Fix. 2005-12-01 Simon Josefsson * csharp/.cvsignore, gl/.cvsignore: [no log message] 2005-12-01 Simon Josefsson * configure.ac, csharp/Makefile.am: Fix csharpcomp location. 2005-12-01 Simon Josefsson * NEWS: Fix. 2005-12-01 Simon Josefsson * NEWS, gl/csharpcomp.sh.in: Add. 2005-12-01 Simon Josefsson * configure.ac, csharp/Makefile.am: Fix. 2005-12-01 Simon Josefsson * configure.ac: Fix message. 2005-12-01 Simon Josefsson * csharp/Makefile.am: Fix. 2005-12-01 Simon Josefsson * m4/csharp.m4, m4/csharpcomp.m4: Add. 2005-12-01 Simon Josefsson * configure.ac: Add C# tests. 2005-12-01 Simon Josefsson * csharp/Makefile.am: Remove. 2005-12-01 Simon Josefsson * csharp/Makefile.am: Fix. 2005-12-01 Simon Josefsson * .cvscopying: Add 2005. 2005-12-01 Simon Josefsson * csharp/Makefile.am: Add. 2005-12-01 Simon Josefsson * AUTHORS, THANKS: Add. 2005-12-01 Simon Josefsson * csharp/Makefile.am: Use gnulib, for csharpcomp. 2005-12-01 Simon Josefsson * csharp/Makefile.am: Add. 2005-12-01 Simon Josefsson * Makefile.am, configure.ac: C# fixes. 2005-12-01 Simon Josefsson * csharp/AssemblyInfo.cs, csharp/CombiningClass.cs, csharp/Composition.cs, csharp/DecompositionKeys.cs, csharp/DecompositionMappings.cs, csharp/IDNA.cs, csharp/IDNAException.cs, csharp/NFKC.cs, csharp/Punycode.cs, csharp/PunycodeException.cs, csharp/RFC3454.cs, csharp/Stringprep.cs, csharp/StringprepException.cs: Add C# port, from Alexander Gnauck . 2005-12-01 Simon Josefsson * NEWS, configure.ac: Bump version. 2005-11-04 Simon Josefsson * NEWS: Fix. 2005-11-04 Simon Josefsson * NEWS, THANKS: Add. 2005-11-04 Simon Josefsson * lib/Makefile.am: Use -no-undefined for libtool, for cygwin, tiny patch from "Yaakov S (Cygwin Ports)" . 2005-10-26 Simon Josefsson * po/da.po: Add. 2005-10-23 Simon Josefsson * NEWS, configure.ac: Bump versions. 2005-10-23 Simon Josefsson * lib/pr29.c: (pr29_8z): Fix memory leak. 2005-10-23 Simon Josefsson * libidn.fms: Add. 2005-10-23 Simon Josefsson * ChangeLog: [no log message] 2005-10-23 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2005-10-23 Simon Josefsson * doc/libidn.texi: Mention Suse on IBM OpenPower. 2005-10-23 Simon Josefsson * libidn.fms: Fix. 2005-10-23 Simon Josefsson * NEWS: Add. 2005-10-23 Simon Josefsson * NEWS: Version 0.5.20. 2005-10-23 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Sync with TP. 2005-10-23 Simon Josefsson * libidn.fms: Add. 2005-10-23 Simon Josefsson * NEWS: Add. 2005-10-23 Simon Josefsson * lib/Makefile.am: Install pr29.h. 2005-10-22 Simon Josefsson * gl/m4/gnulib-comp.m4: Update. 2005-10-07 Simon Josefsson * gl/getopt_.h: Update. 2005-10-01 Simon Josefsson * doc/specifications/draft-ietf-ldapbis-strprep-06.txt: Add. 2005-09-22 Simon Josefsson * gl/m4/gnulib-comp.m4: Update. 2005-09-20 Simon Josefsson * gl/getopt1.c: Update. 2005-09-19 Simon Josefsson * gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4: Update. 2005-09-19 Simon Josefsson * NEWS, configure.ac: Bump versions. 2005-09-19 Simon Josefsson * Makefile.am: Use gnupload. 2005-09-19 Simon Josefsson * libidn.fms: 0.5.19. 2005-09-19 Simon Josefsson * ChangeLog: [no log message] 2005-09-19 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Update. 2005-09-19 Simon Josefsson * NEWS: Version 0.5.19. 2005-09-19 Simon Josefsson * NEWS: Add. 2005-09-19 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Update. 2005-09-19 Simon Josefsson * po/Makevars: Use --no-location, to minimize CVS diff's. 2005-09-19 Simon Josefsson * doc/reference/tmpl/.cvsignore: [no log message] 2005-09-15 Simon Josefsson * doc/reference/tmpl/libidn-unused.sgml: Add (to fix gtk-doc makefile bug). 2005-09-15 Simon Josefsson * doc/java/Makefile.am: Fix dependency. 2005-09-13 Simon Josefsson * : Update. 2005-09-13 Simon Josefsson * Makefile.am: Fix wget usage. 2005-09-13 Simon Josefsson * po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/vi.po: Sync with TP. 2005-09-13 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Sync with TP. 2005-09-12 Simon Josefsson * m4/gtk-doc.m4: Update. 2005-09-12 Simon Josefsson * doc/java/Makefile.am: Fix dependencies. 2005-09-12 Simon Josefsson * doc/java/.cvsignore, doc/java/gnu/inet/encoding/.cvsignore, doc/java/resources/.cvsignore: [no log message] 2005-09-12 Simon Josefsson * NEWS: Fix. 2005-09-12 Simon Josefsson * doc/java/.cvsignore: [no log message] 2005-09-12 Simon Josefsson * java/Makefile.am: Call gjdoc directly. 2005-09-12 Simon Josefsson * README-alpha, configure.ac: Replace javadoc with gjdoc. 2005-09-12 Simon Josefsson * doc/java/Makefile.am: Dist files generated by gjdoc instead. 2005-09-12 Simon Josefsson * NEWS: Add. 2005-09-12 Simon Josefsson * NEWS: Add. 2005-09-10 Simon Josefsson * lib/toutf8.c: Use HAVE_LOCALE_H. 2005-09-10 Simon Josefsson * NEWS: Add. 2005-09-10 Simon Josefsson * m4/codeset.m4: Update. 2005-09-10 Simon Josefsson * THANKS: Add. 2005-09-10 Simon Josefsson * src/idn.c: Fix header/setlocale checks. 2005-09-10 Simon Josefsson * configure.ac: Check for locale.h. 2005-09-10 Simon Josefsson * src/idn.c: Fix setlocale test. 2005-09-10 Simon Josefsson * configure.ac: Check for setlocale. 2005-09-09 Simon Josefsson * m4/codeset.m4: Add. 2005-09-09 Simon Josefsson * lib/toutf8.c: Use modern nl_langinfo test. 2005-09-09 Simon Josefsson * configure.ac: Simplify nl_langinfo test. 2005-09-09 Simon Josefsson * src/idn.c: Fix #include's. 2005-09-09 Simon Josefsson * configure.ac: Let's assume unistd.h and errno.h (in fact, we already did in the source code and nobody complained). 2005-09-09 Simon Josefsson * AUTHORS: Update PGP key. 2005-09-09 Simon Josefsson * NEWS: Add. 2005-09-09 Simon Josefsson * configure.ac, gl/Makefile.am, gl/m4/codeset.m4, gl/m4/getopt.m4, gl/m4/gettext.m4, gl/m4/glibc2.m4, gl/m4/glibc21.m4, gl/m4/gnulib-cache.m4, gl/m4/gnulib-comp.m4, gl/m4/gnulib-tool.m4, gl/m4/gnulib.m4, gl/m4/iconv.m4, gl/m4/intdiv0.m4, gl/m4/intmax.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4, gl/m4/inttypes_h.m4, gl/m4/isc-posix.m4, gl/m4/lcmessage.m4, gl/m4/lib-ld.m4, gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/longdouble.m4, gl/m4/longlong.m4, gl/m4/nls.m4, gl/m4/onceonly_2_57.m4, gl/m4/po.m4, gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/signed.m4, gl/m4/size_max.m4, gl/m4/stdint_h.m4, gl/m4/strdup.m4, gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4: Update gnulib. 2005-07-16 Simon Josefsson * README: Fix typo. 2005-07-16 Simon Josefsson * NEWS, configure.ac: Bump versions. 2005-07-16 Simon Josefsson * libidn.fms: Add. 2005-07-16 Simon Josefsson * ChangeLog: [no log message] 2005-07-16 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2005-07-16 Simon Josefsson * NEWS: Version 0.5.18. 2005-07-16 Simon Josefsson * NEWS: Add. 2005-07-16 Simon Josefsson * doc/libidn.texi: Link to help-libidn. 2005-07-16 Simon Josefsson * README: Add. 2005-07-16 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib.m4: Update. 2005-07-16 Simon Josefsson * configure.ac: Simplify. 2005-07-15 Simon Josefsson * gl/.cvsignore: [no log message] 2005-06-24 Simon Josefsson * doc/specifications/draft-bakleh-reg-adm-acg-apu-01.txt: Add. 2005-06-24 Simon Josefsson * m4/ax_create_stdint_h.m4: Use 'sed 1q' instead of 'head -n 1', more portable. 2005-06-24 Simon Josefsson * doc/Makefile.am: Add 2005 to man page copyrights. 2005-06-24 Simon Josefsson * m4/ax_create_stdint_h.m4: Fix head usage (really!!). 2005-06-24 Simon Josefsson * configure.ac: Fix license. 2005-06-24 Simon Josefsson * configure.ac: Bump versions. 2005-06-24 Simon Josefsson * NEWS: Add. 2005-06-24 Simon Josefsson * m4/ax_create_stdint_h.m4: Fix use of head. 2005-06-24 Simon Josefsson * m4/ax_create_stdint_h.m4: New upstream release. 2005-06-14 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/pl.po, po/ro.po, po/sr.po, po/vi.po: Sync with TP. 2005-06-14 Simon Josefsson * contrib/doxygen/gdoc2doxygen: Fix address in license. 2005-06-12 Simon Josefsson * NEWS: Fix. 2005-06-12 Simon Josefsson * THANKS: fix 2005-06-12 Simon Josefsson * m4/ax_create_stdint_h.m4: Turn 'head -1' into 'head -n -1', tiny patch from Carsten Lohrke . 2005-06-05 Simon Josefsson * NEWS, po/nl.po: Add. 2005-05-26 Simon Josefsson * libidn.fms: 0.5.17. 2005-05-26 Simon Josefsson * ChangeLog: [no log message] 2005-05-26 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2005-05-26 Simon Josefsson * NEWS: Version 0.5.17. 2005-05-26 Simon Josefsson * doc/lgpl.texi: Fix sectioning. 2005-05-26 Simon Josefsson * NEWS: Fix. 2005-05-26 Simon Josefsson * gl/Makefile.am, gl/dummy.c, gl/gettext.h, gl/m4/getopt.m4, gl/m4/gettext.m4, gl/m4/glibc2.m4, gl/m4/gnulib.m4, gl/m4/intdiv0.m4, gl/m4/intmax.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4, gl/m4/isc-posix.m4, gl/m4/lcmessage.m4, gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/nls.m4, gl/m4/po.m4, gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/strdup.m4: Sync with gnulib. 2005-05-26 Simon Josefsson * AUTHORS, COPYING, COPYING.LIB, FAQ, Makefile.am, README, TODO, configure.ac, contrib/README, contrib/java/Makefile.am, doc/Makefile.am, doc/Makefile.gdoci, doc/fdl.texi, doc/gdoc, doc/gendocs.sh, doc/gendocs_template, doc/java/Makefile.am, doc/lgpl.texi, doc/specifications/Makefile.am, doc/tld/Makefile.am, examples/Makefile.am, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c, examples/example5.c, gl/dummy.c, gl/error.c, gl/error.h, gl/getopt.c, gl/getopt1.c, gl/getopt_.h, gl/getopt_int.h, gl/gettext.h, gl/strdup.c, gl/strdup.h, java/Makefile.am, java/gnu/inet/encoding/CombiningClass.java, java/gnu/inet/encoding/Composition.java, java/gnu/inet/encoding/DecompositionKeys.java, java/gnu/inet/encoding/DecompositionMappings.java, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/RFC3454.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/Makefile.am, java/misc/TestIDNA.java, java/misc/TestNFKC.java, lib/Makefile.am, lib/gen-stringprep-tables.pl, lib/gen-tld-tables.pl, lib/gen-unicode-tables.pl, lib/iconvme.c, lib/iconvme.h, lib/idn-free.c, lib/idn-free.h, lib/idna.c, lib/idna.h, lib/nfkc.c, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/stringprep.h.in, lib/tld.c, lib/tld.h, lib/toutf8.c, lib/version.c, libc/example.c, libidn.pc.in, src/Makefile.am, src/idn.c, src/idn.ggo, src/idna.el, src/punycode.el, tests/Makefile.am, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_pr29.c, tests/tst_punycode.c, tests/tst_strerror.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/utils.c, tests/utils.h: Update FSF address in license. Fix copyrights. 2005-05-26 Simon Josefsson * NEWS: Add. 2005-05-18 Simon Josefsson * doc/specifications/draft-klensin-reg-guidelines-08.txt: Add. 2005-05-12 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/zh_CN.po: Sync with TP. 2005-05-10 Simon Josefsson * doc/libidn.texi: Add. 2005-05-08 Simon Josefsson * NEWS, configure.ac: Bump versions. 2005-05-08 Simon Josefsson * libidn.fms: 0.5.16. 2005-05-06 Simon Josefsson * ChangeLog: [no log message] 2005-05-06 Simon Josefsson * NEWS: Version 0.5.16. 2005-05-06 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/rw.po, po/sr.po, po/sv.po, po/zh_CN.po: Sync with TP. 2005-05-05 Simon Josefsson * NEWS: Add. 2005-05-05 Simon Josefsson * lib/pr29.c: Use 'const' for static data, tiny patch from Joe Orton . 2005-04-16 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po: Sync with TP. 2005-04-15 Simon Josefsson * configure.ac: Bump versions. 2005-04-15 Simon Josefsson * NEWS: Add. 2005-04-15 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/vi.po: Sync with TP. 2005-04-06 Simon Josefsson * po/LINGUAS, po/rw.po, po/zh_CN.po: Sync with TP. 2005-03-19 Simon Josefsson * ChangeLog: [no log message] 2005-03-19 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2005-03-19 Simon Josefsson * NEWS: Version 0.5.15. 2005-03-19 Simon Josefsson * NEWS: Fix. 2005-03-19 Simon Josefsson * NEWS: Add. 2005-03-19 Simon Josefsson * lib/iconvme.c: Sync with libc; fix license and fix arithmetic overflow. 2005-03-19 Simon Josefsson * lib/iconvme.h: Fix license. 2005-03-19 Simon Josefsson * NEWS, configure.ac: Bump versions. 2005-03-19 Simon Josefsson * ChangeLog: [no log message] 2005-03-19 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po, po/vi.po, po/zh_CN.po: Generated. 2005-03-19 Simon Josefsson * NEWS: Version 0.5.14. 2005-03-19 Simon Josefsson * doc/libidn.texi: Ramblings. 2005-03-19 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po, po/vi.po: Sync with TP. 2005-03-12 Simon Josefsson * NEWS, THANKS, po/LINGUAS, po/zh_CN.po: Add. 2005-03-01 Simon Josefsson * doc/specifications/rfc4013.txt: Add. 2005-02-27 Simon Josefsson * lib/idn-free.c: Include the specification first, to verify it is standalone. Doc fix. 2005-02-24 Simon Josefsson * doc/specifications/draft-ietf-ldapbis-dn-16.txt: Add. 2005-02-16 Simon Josefsson * THANKS: Add. 2005-02-16 Simon Josefsson * THANKS: Reorder chronologically. 2005-02-13 Simon Josefsson * NEWS: Add. 2005-02-13 Simon Josefsson * NEWS: Add. 2005-02-11 Simon Josefsson * doc/specifications/draft-ietf-ldapbis-strprep-05.txt: Add. 2005-02-07 Simon Josefsson * THANKS: Sort (should be sorted chronologically..). 2005-02-07 Simon Josefsson * configure.ac: Bump versions. 2005-02-07 Simon Josefsson * NEWS, THANKS, po/LINGUAS, po/vi.po: Add. 2005-01-30 Simon Josefsson * lib/Makefile.am: Fix last commit, reported by Linus Nordberg . 2005-01-29 Simon Josefsson * lib/Makefile.am: Fix srcdir != objdir when bootstrapping from CVS, patch from Linus Nordberg (tiny change). 2005-01-29 Simon Josefsson * README-alpha: Fix. 2005-01-29 Simon Josefsson * doc/reference/Makefile.am: Remove hack, fixed in gtk-doc CVS. 2005-01-29 Simon Josefsson * libidn.fms: 0.5.13. 2005-01-29 Simon Josefsson * ChangeLog: [no log message] 2005-01-29 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/it.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2005-01-29 Simon Josefsson * NEWS: Version 0.5.13. 2005-01-29 Simon Josefsson * gl/Makefile.am, gl/dummy.c, gl/m4/gnulib.m4: Update. 2005-01-29 Simon Josefsson * configure.ac: Need dummy gnulib module again. 2005-01-28 Simon Josefsson * lib/iconvme.c, lib/iconvme.h: Add. 2005-01-28 Simon Josefsson * configure.ac, gl/Makefile.am, gl/iconvme.c, gl/iconvme.h, gl/m4/gnulib.m4, gl/m4/iconvme.m4, lib/Makefile.am: Move iconvme to lib, since linking gnulib in lib doesn't work due to program_name symbol. 2005-01-28 Simon Josefsson * gl/m4/codeset.m4, gl/m4/error.m4, gl/m4/getopt.m4, gl/m4/glibc21.m4, gl/m4/iconv.m4, gl/m4/inttypes_h.m4, gl/m4/lib-ld.m4, gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/longdouble.m4, gl/m4/longlong.m4, gl/m4/signed.m4, gl/m4/size_max.m4, gl/m4/stdint_h.m4, gl/m4/strdup.m4, gl/m4/strerror_r.m4, gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4: Update. 2005-01-28 Simon Josefsson * NEWS: Typo. 2005-01-27 Simon Josefsson * THANKS: Add. 2005-01-27 Simon Josefsson * doc/libidn.texi: Add, reported by Simon Walter . 2005-01-20 Simon Josefsson * NEWS: Add. 2005-01-17 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Sync with TP. 2005-01-17 Simon Josefsson * README-alpha: Remove. 2005-01-17 Simon Josefsson * java/gnu/inet/encoding/Makefile.am, java/misc/Makefile.am: Define JAVAROOT unconditionally, because automake barf otherwise. 2005-01-16 Simon Josefsson * README-alpha: Add. 2005-01-16 Simon Josefsson * README-alpha: Add. 2005-01-16 Simon Josefsson * THANKS: Add. 2005-01-16 Simon Josefsson * README-alpha: Mention gettext requirement, suggested by Linus Nordberg . 2005-01-05 Simon Josefsson * configure.ac: Warn strongly about missing iconv. 2005-01-05 Simon Josefsson * gl/Makefile.am, gl/dummy.c, gl/m4/gnulib.m4: Update. 2005-01-05 Simon Josefsson * configure.ac: No need to use dummy gnulib module, no system has iconvme. 2005-01-05 Simon Josefsson * NEWS: Add. 2005-01-05 Simon Josefsson * lib/Makefile.am: Link with gnulib (only LGPL files). 2005-01-05 Simon Josefsson * lib/toutf8.c: Use iconv_string from gnulib. 2005-01-05 Simon Josefsson * configure.ac, gl/Makefile.am, gl/iconvme.c, gl/iconvme.h, gl/m4/gnulib.m4, gl/m4/iconvme.m4: Add iconvme from gnulib. 2005-01-02 Simon Josefsson * src/idn.c: Add copyright for year 2005. 2005-01-02 Simon Josefsson * NEWS: Add. 2005-01-02 Simon Josefsson * po/sv.po: Update. 2005-01-01 Simon Josefsson * gl/error.c: Update. 2005-01-01 Simon Josefsson * NEWS, configure.ac: Bump versions. 2005-01-01 Simon Josefsson * NEWS, THANKS, po/LINGUAS, po/it.po: Add. 2004-12-04 Simon Josefsson * libidn.fms: Add. 2004-12-04 Simon Josefsson * ChangeLog: [no log message] 2004-12-04 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-12-04 Simon Josefsson * NEWS: Version 0.5.12. 2004-12-04 Simon Josefsson * NEWS: Add. 2004-12-04 Simon Josefsson * gl/getopt_.h, gl/m4/getopt.m4: Update. 2004-12-01 Simon Josefsson * java/gnu/inet/encoding/Stringprep.java: Doc fix, from Oliver Hitz . 2004-11-30 Simon Josefsson * doc/specifications/draft-bartosiewicz-idn-pltld-08.txt: Add. 2004-11-29 Simon Josefsson * doc/libidn.texi: More PR29. 2004-11-23 Simon Josefsson * configure.ac: Bump versions. 2004-11-23 Simon Josefsson * NEWS: Add. 2004-11-22 Simon Josefsson * THANKS: Add. 2004-11-22 Simon Josefsson * java/gnu/inet/encoding/Stringprep.java: Fixed two bugs: allowUnassigned not respected properly, buggy prohibited code points check. Argument checks added. RFC3920 nodeprep and resourceprep added, suggested by Matt Tucker. Convenience methods with allowUnassigned set to false added. From Oliver Hitz . 2004-11-22 Simon Josefsson * java/gnu/inet/encoding/RFC3454.java, java/misc/GenerateRFC3454.java: Add table C.1.1 and C.2.1, from Oliver Hitz . 2004-11-21 Simon Josefsson * doc/gdoc: Make sure all man pages follow 'foo -- purpose of foo' format, even if there is no purpose description available, from Shishi. 2004-11-21 Simon Josefsson * libidn.fms: Add. 2004-11-21 Simon Josefsson * ChangeLog: [no log message] 2004-11-21 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Sync with TP. 2004-11-21 Simon Josefsson * NEWS: Version 0.5.11. 2004-11-21 Simon Josefsson * NEWS: Add. 2004-11-21 Simon Josefsson * doc/gdoc: Add 'DO NOT MODIFY' warning to generated man pages. 2004-11-21 Simon Josefsson * THANKS: Add. 2004-11-21 Simon Josefsson * lib/idna.c: Doc fix. 2004-11-21 Simon Josefsson * NEWS: Add. 2004-11-21 Simon Josefsson * lib/nfkc.c, lib/strerror-punycode.c: Doc fix. 2004-11-21 Simon Josefsson * lib/idna.c, lib/pr29.c, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.c, lib/tld.c, lib/toutf8.c, lib/version.c: Doc fix. 2004-11-21 Simon Josefsson * doc/gdoc: For man pages, don't use line breaking formatting codes ("\n.I foo\n") but rather inline commands ("\fIfoo\fP"). 2004-11-21 Simon Josefsson * lib/punycode.c: Doc fix. 2004-11-21 Simon Josefsson * doc/gdoc: Skip leading whitespace in function purpose. Print function purpose in man pages, if available. 2004-11-21 Simon Josefsson * NEWS: Add. 2004-11-21 Simon Josefsson * gl/getopt.c, gl/getopt1.c, gl/getopt_.h, gl/getopt_int.h, gl/m4/getopt.m4: Update. 2004-11-18 Simon Josefsson * doc/specifications/draft-ekrema-smldn-00.txt: Add. 2004-11-17 Simon Josefsson * doc/specifications/draft-klensin-reg-guidelines-05.txt: Add. 2004-11-16 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-11-09 Simon Josefsson * doc/specifications/Description.txt, doc/specifications/IDNConnect.html, doc/specifications/testbed.html: Add. 2004-11-09 Simon Josefsson * doc/specifications/pr-29.html: Update. 2004-11-08 Simon Josefsson * libidn.fms: Fix. 2004-11-08 Simon Josefsson * ChangeLog: [no log message] 2004-11-08 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-11-08 Simon Josefsson * NEWS: Version 0.5.10. 2004-11-08 Simon Josefsson * tests/tst_pr29.c: No need for stringprep.h. 2004-11-08 Simon Josefsson * examples/example2.c, libc/example.c, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_punycode.c, tests/tst_stringprep.c: Cosmetic fix. 2004-11-08 Simon Josefsson * tests/utils.c: Typo. 2004-11-08 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Sync with TP. 2004-11-08 Simon Josefsson * Makefile.am: Simplify EXTRA_DIST. 2004-11-08 Simon Josefsson * NEWS: Add. 2004-11-08 Simon Josefsson * lib/Makefile.am: Use Libtool's -export-symbols-regex. 2004-11-08 Simon Josefsson * doc/specifications/draft-klensin-reg-guidelines-04.txt, doc/specifications/draft-xdlee-idn-cdnadmin-02.txt: Add. 2004-11-08 Simon Josefsson * lib/idna.c, lib/nfkc.c, lib/profiles.c, lib/punycode.c, lib/toutf8.c, lib/version.c: Cosmetic fix. 2004-11-08 Simon Josefsson * lib/tld.c: Add copyright header for me. 2004-11-07 Simon Josefsson * libidn.fms: Add. 2004-11-07 Simon Josefsson * README-alpha: Fix. 2004-11-07 Simon Josefsson * FAQ: Add. 2004-11-07 Simon Josefsson * AUTHORS: Update PGP key. 2004-11-07 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-11-07 Simon Josefsson * doc/specifications/draft-ietf-sasl-anon-04.txt: Add. 2004-11-07 Simon Josefsson * ChangeLog: [no log message] 2004-11-07 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po: Generated. 2004-11-07 Simon Josefsson * Makefile.am: Fix release target. 2004-11-07 Simon Josefsson * NEWS: Version 0.5.9. 2004-11-07 Simon Josefsson * po/sv.po: Sync with TP. 2004-11-07 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2004-11-07 Simon Josefsson * doc/reference/Makefile.am, doc/reference/libidn.types: Simplify. 2004-11-07 Simon Josefsson * doc/Makefile.am: Fix SUBDIRS order, because GTK-DOC need components.png. 2004-11-07 Simon Josefsson * autogen.sh: Fix. 2004-11-07 Simon Josefsson * autogen.sh: Fix. 2004-11-07 Simon Josefsson * NEWS: Add. 2004-11-07 Simon Josefsson * doc/gendocs.sh, doc/gendocs_template: Update. 2004-10-28 Simon Josefsson * doc/gdoc: Support -include, from GnuTLS. 2004-10-27 Simon Josefsson * lib/profiles.c: Doc fix. 2004-10-25 Simon Josefsson * doc/gdoc: Fix man output. 2004-10-25 Simon Josefsson * lib/strerror-stringprep.c, lib/stringprep.c, lib/tld.c: Doc fix. 2004-10-25 Simon Josefsson * lib/idna.c, lib/pr29.c, lib/punycode.c, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/tld.c: Doc fix. 2004-10-25 Simon Josefsson * doc/gdoc: Use @code, not @var, for constants in texinfo output. Fix newlines in man output. 2004-10-25 Simon Josefsson * doc/gdoc: Use # instead of & for types. 2004-10-25 Simon Josefsson * doc/reference/Makefile.am, doc/reference/libidn-docs.sgml: Add image. 2004-10-25 Simon Josefsson * autogen.sh: Run gtkdocize. 2004-10-25 Simon Josefsson * po/LINGUAS, po/sv.po: Sync with TP. 2004-10-25 Simon Josefsson * Makefile.am: (update-po): Fix. 2004-10-25 Simon Josefsson * : Add. 2004-10-24 Simon Josefsson * doc/reference/libidn.types: Fix. 2004-10-24 Simon Josefsson * NEWS: Fix. 2004-10-24 Simon Josefsson * Makefile.am: (DISTCHECK_CONFIGURE_FLAGS): Add --enable-gtk-doc. 2004-10-24 Simon Josefsson * NEWS, doc/reference/Makefile.am, doc/reference/libidn-docs.sgml, doc/reference/libidn-docs.tmpl: Align GTK-DOC build infrastructure with GTK-DOC official recommendations. 2004-10-24 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2004-10-24 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/ro.po, po/sr.po: Sync with TP. 2004-10-15 Simon Josefsson * gl/Makefile.am, gl/m4/getopt.m4: Update. 2004-10-15 Simon Josefsson * po/pl.po: Sync with TP. 2004-10-13 Simon Josefsson * libidn.fms: Update. 2004-10-13 Simon Josefsson * libidn.fms: Update. 2004-10-12 Simon Josefsson * README: Fix. 2004-10-12 Simon Josefsson * README: Fix. 2004-10-12 Simon Josefsson * README: Improve readability. 2004-10-12 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-10-12 Simon Josefsson * ChangeLog: [no log message] 2004-10-12 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-10-12 Simon Josefsson * NEWS: Version 0.5.8. 2004-10-12 Simon Josefsson * NEWS: Add. 2004-10-12 Simon Josefsson * lib/gen-unicode-tables.pl: Add coment to generated files to say that they are generated, reported by "Gisle Vanem" . 2004-10-12 Simon Josefsson * doc/specifications/Makefile.am: Distribute BidiMirroring-3.2.0.txt, reported by "Gisle Vanem" . 2004-10-12 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-10-12 Simon Josefsson * ChangeLog: [no log message] 2004-10-12 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-10-12 Simon Josefsson * NEWS: Version 0.5.7. 2004-10-12 Simon Josefsson * NEWS: Add. 2004-10-11 Simon Josefsson * po/fr.po: Generated. 2004-10-11 Simon Josefsson * po/fr.po: Sync with TP. 2004-10-05 Simon Josefsson * gl/error.c: Update Gnulib. 2004-10-04 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-10-04 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-10-02 Simon Josefsson * src/idn.c: Use EXIT_SUCCESS and EXIT_FAILURE. 2004-10-02 Simon Josefsson * AUTHORS: Update PGP key. 2004-10-02 Simon Josefsson * ChangeLog: [no log message] 2004-10-02 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-10-02 Simon Josefsson * NEWS: Version 0.5.6. 2004-10-02 Simon Josefsson * examples/example.c, examples/example3.c, examples/example4.c, examples/example5.c: Use *strerror. 2004-10-02 Simon Josefsson * Makefile.am, examples/Makefile.am: Fix indent. 2004-10-02 Simon Josefsson * NEWS, libidn.fms: Fix. 2004-10-02 Simon Josefsson * NEWS: Reorder. 2004-10-02 Simon Josefsson * NEWS: Fix. 2004-10-02 Simon Josefsson * lib/Makefile.am: Don't link with gnulib. 2004-10-02 Simon Josefsson * lib/toutf8.c: Revert, don't use strdup. 2004-10-02 Simon Josefsson * lib/strerror-idna.c: Simplify translation strings. 2004-10-02 Simon Josefsson * NEWS: Add. 2004-10-02 Simon Josefsson * NEWS: Fix. 2004-10-02 Simon Josefsson * src/idn.c: Typo. 2004-10-02 Simon Josefsson * lib/idna.h, lib/pr29.c, lib/pr29.h, lib/profiles.c, lib/toutf8.c, src/idn.c, tests/tst_pr29.c, tests/tst_stringprep.c: Indent. 2004-10-02 Simon Josefsson * src/idn.c: Use error. 2004-10-02 Simon Josefsson * configure.ac, gl/Makefile.am, gl/error.c, gl/error.h, gl/m4/error.m4, gl/m4/gnulib.m4, gl/m4/strerror_r.m4: Add error from gnulib (slightly modified to avoid unlocked-io.h). 2004-10-02 Simon Josefsson * tests/Makefile.am, tests/tst_strerror.c: Add. 2004-10-02 Simon Josefsson * tests/.cvsignore: [no log message] 2004-10-02 Simon Josefsson * lib/Makefile.am: (DEFS): Add LOCALEDIR. 2004-10-02 Simon Josefsson * lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c: Setup gettext properly. 2004-10-02 Simon Josefsson * po/POTFILES.in: Add. 2004-10-02 Simon Josefsson * src/Makefile.am: Fix. 2004-10-02 Simon Josefsson * NEWS, doc/Makefile.am, doc/libidn.texi, lib/Makefile.am, lib/idna.h, lib/pr29.h, lib/punycode.h, lib/strerror-idna.c, lib/strerror-pr29.c, lib/strerror-punycode.c, lib/strerror-stringprep.c, lib/strerror-tld.c, lib/stringprep.h.in, lib/tld.c, lib/tld.h, src/idn.c: Add idna_strerror, pr29_strerror, punycode_strerror, stringprep_strerror, and tld_strerror, suggested by Daniel Stenberg . Make idn.c use them. Rename TLD_NOTLD to TLD_NO_TLD. 2004-09-29 Simon Josefsson * gl/Makefile.am, gl/dummy.c, gl/m4/gnulib.m4: Update. 2004-09-28 Simon Josefsson * gl/Makefile.am, gl/m4/gnulib.m4: Update. 2004-09-28 Simon Josefsson * gl/Makefile.am, gl/dummy.c, gl/getopt.c, gl/getopt1.c, gl/getopt_.h, gl/getopt_int.h, gl/gettext.h, gl/m4/codeset.m4, gl/m4/gettext.m4, gl/m4/glibc21.m4, gl/m4/gnulib.m4, gl/m4/iconv.m4, gl/m4/intdiv0.m4, gl/m4/intmax.m4, gl/m4/inttypes-pri.m4, gl/m4/inttypes.m4, gl/m4/inttypes_h.m4, gl/m4/isc-posix.m4, gl/m4/lcmessage.m4, gl/m4/lib-ld.m4, gl/m4/lib-link.m4, gl/m4/lib-prefix.m4, gl/m4/longdouble.m4, gl/m4/longlong.m4, gl/m4/nls.m4, gl/m4/po.m4, gl/m4/printf-posix.m4, gl/m4/progtest.m4, gl/m4/signed.m4, gl/m4/size_max.m4, gl/m4/stdint_h.m4, gl/m4/strdup.m4, gl/m4/uintmax_t.m4, gl/m4/ulonglong.m4, gl/m4/wchar_t.m4, gl/m4/wint_t.m4, gl/m4/xsize.m4, gl/strdup.c, gl/strdup.h, src/gettext.h: Use new GNULib. 2004-09-28 Simon Josefsson * configure.ac: Specify gl_LGPL for new gnulib-tool. 2004-09-26 Simon Josefsson * configure.ac: Bump versions. 2004-09-26 Simon Josefsson * Makefile.am, NEWS, configure.ac, gl/.cvsignore, gl/Makefile.am, gl/dummy.c, gl/getopt.c, gl/getopt1.c, gl/getopt_.h, gl/getopt_int.h, gl/m4/getopt.m4, gl/m4/gnulib.m4, gl/m4/onceonly_2_57.m4, gl/m4/strdup.m4, gl/strdup.c, gl/strdup.h, lib/Makefile.am, lib/toutf8.c, src/Makefile.am, src/getopt.c, src/getopt1.c, src/getopt_.h, src/getopt_int.h, tests/Makefile.am: Use Lesser GNULib. 2004-09-21 Simon Josefsson * doc/specifications/draft-bakleh-reg-adm-acg-apu-00.txt: Add. 2004-09-13 Simon Josefsson * libidn.fms: Add. 2004-09-13 Simon Josefsson * ChangeLog: [no log message] 2004-09-13 Simon Josefsson * doc/reference/Makefile.am: Clean more. 2004-09-13 Simon Josefsson * NEWS: Version 0.5.5. 2004-09-13 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-09-13 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2004-09-13 Simon Josefsson * Makefile.am: (POURL): Fix. 2004-09-13 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Sync with TP. 2004-09-13 Simon Josefsson * NEWS: Add. 2004-09-05 Simon Josefsson * NEWS: Add. 2004-09-05 Simon Josefsson * lib/nfkc.c: (g_utf8_skip): Hide variable, using "static". 2004-09-02 Simon Josefsson * doc/libidn.texi: Move. Fix ack. 2004-08-25 Simon Josefsson * doc/specifications/draft-farah-adntf-adns-guidelines-00.txt: Add. 2004-08-23 Simon Josefsson * m4/autobuild.m4: Update. 2004-08-18 Simon Josefsson * README: Fix. 2004-08-18 Simon Josefsson * doc/libidn.texi: Fix. 2004-08-17 Simon Josefsson * README: Add. 2004-08-17 Simon Josefsson * NEWS, configure.ac: Bump version. 2004-08-10 Simon Josefsson * src/idn.c: Shut up 'uno' by fixing array boundary. 2004-08-08 Simon Josefsson * libidn.fms: Fix. 2004-08-08 Simon Josefsson * libidn.fms: Add. 2004-08-07 Simon Josefsson * ChangeLog: [no log message] 2004-08-07 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-08-07 Simon Josefsson * NEWS: Version 0.5.4. 2004-08-06 Simon Josefsson * po/LINGUAS: Sync with TP. 2004-08-06 Simon Josefsson * Makefile.am: Fix. 2004-08-06 Simon Josefsson * Makefile.am: Fix. 2004-08-06 Simon Josefsson * Makefile.am: Fix. 2004-08-06 Simon Josefsson * Makefile.am: (update-po): Add. 2004-08-06 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po: Sync with TP. 2004-08-05 Simon Josefsson * configure.ac: Bump version. 2004-08-05 Simon Josefsson * NEWS: Add. 2004-08-05 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po: Update. 2004-08-05 Simon Josefsson * ChangeLog: [no log message] 2004-08-05 Simon Josefsson * NEWS: Version 0.5.3. 2004-08-05 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-08-05 Simon Josefsson * NEWS: Add. 2004-08-05 Simon Josefsson * THANKS: Add. 2004-08-05 Simon Josefsson * src/idn.c: Fix crash, tiny patch by Andreas Schwab reported by Stephan Kulow . 2004-08-01 Simon Josefsson * lib/pr29.c: Use PR29_* error mnemonics, instead of hard coded integers. 2004-08-01 Simon Josefsson * lib/pr29.c: Cosmetic fix. 2004-07-29 Simon Josefsson * doc/specifications/COPYING.UCD: Add. 2004-07-29 Simon Josefsson * doc/specifications/COPYING.UCD: Update. 2004-07-14 Simon Josefsson * doc/gendocs.sh, doc/gendocs_template: Update. 2004-07-14 Simon Josefsson * NEWS: Bump version. 2004-07-14 Simon Josefsson * configure.ac: Bump versions. 2004-07-14 Simon Josefsson * NEWS: Add. 2004-07-14 Simon Josefsson * ChangeLog: [no log message] 2004-07-14 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-07-14 Simon Josefsson * NEWS: Version 0.5.2. 2004-07-14 Simon Josefsson * NEWS: Add. 2004-07-14 Simon Josefsson * NEWS: Fix. 2004-07-14 Simon Josefsson * configure.ac: Bump version. 2004-07-14 Simon Josefsson * NEWS, THANKS: Add. 2004-07-14 Simon Josefsson * THANKS: Add. 2004-07-14 Simon Josefsson * java/Makefile.am: (install-jar): Make DESTDIR compatible, patch from Oliver Hitz based on report by Benjamin Reed . 2004-07-13 Simon Josefsson * libc/example.c: Doc fix. 2004-07-13 Simon Josefsson * libc/example.c: Use setlocale, reported by Robert Scheck . 2004-07-13 Simon Josefsson * doc/specifications/draft-hoffman-pkix-stringmatch-00.txt: Add. 2004-07-09 Simon Josefsson * doc/libidn.texi: Add. 2004-07-09 Simon Josefsson * doc/libidn.texi: Mention pr29.h. 2004-07-09 Simon Josefsson * ChangeLog: [no log message] 2004-07-09 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-07-09 Simon Josefsson * NEWS: Version 0.5.1. 2004-07-09 Simon Josefsson * configure.ac: Use autobuild. 2004-07-09 Simon Josefsson * NEWS, THANKS, m4/autobuild.m4: Add. 2004-07-09 Simon Josefsson * examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c: Call setlocale to make iconv work, reported by Robert Scheck . 2004-07-02 Simon Josefsson * configure.ac, src/getopt.c, src/getopt1.c: Update getopt. 2004-07-02 Simon Josefsson * NEWS: Add. 2004-07-02 Simon Josefsson * .cvsignore, tests/.cvsignore: [no log message] 2004-07-02 Simon Josefsson * doc/libidn.texi: Fix. 2004-07-02 Simon Josefsson * examples/.cvsignore, src/.cvsignore: [no log message] 2004-07-02 Simon Josefsson * src/.cvsignore: [no log message] 2004-07-02 Simon Josefsson * src/getopt_int.h: Add. 2004-07-02 Simon Josefsson * configure.ac, src/Makefile.am, src/getopt.c, src/getopt.h, src/getopt1.c, src/getopt_.h: Update getopt module. Now work on, e.g., uClibc systems which uses GNU Libc header files, but do not implement getopt_long. 2004-06-29 Simon Josefsson * doc/libidn.texi: Add. 2004-06-29 Simon Josefsson * doc/libidn.texi: Add. 2004-06-26 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-06-26 Simon Josefsson * doc/libidn.texi: Add. 2004-06-26 Simon Josefsson * ChangeLog: [no log message] 2004-06-26 Simon Josefsson * po/da.po, po/de.po, po/eo.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-06-26 Simon Josefsson * NEWS: Version 0.5.0. 2004-06-26 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2004-06-26 Simon Josefsson * lib/pr29.c: Fix. 2004-06-26 Simon Josefsson * doc/reference/Makefile.am: Fix. 2004-06-26 Simon Josefsson * doc/reference/Makefile.am: (HTML_OBJECTS): Add libidn-pr29.html. 2004-06-26 Simon Josefsson * doc/reference/libidn-docs.tmpl: Add PR29. 2004-06-26 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2004-06-26 Simon Josefsson * lib/pr29.c: Add doc. 2004-06-26 Simon Josefsson * doc/Makefile.am: Don't use wildcards for GDOC_SRC. 2004-06-26 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-06-26 Simon Josefsson * lib/pr29.c: Use 'static'. 2004-06-26 Simon Josefsson * lib/pr29.h: Typo. 2004-06-26 Simon Josefsson * tests/.cvsignore: [no log message] 2004-06-26 Simon Josefsson * NEWS, doc/libidn.texi, lib/Makefile.am, lib/pr29.c, lib/pr29.h, tests/Makefile.am, tests/tst_pr29.c: Add PR29 functions. 2004-06-25 Simon Josefsson * doc/specifications/HangulSyllableType-4.0.1.txt: Add. 2004-06-25 Simon Josefsson * doc/specifications/DerivedCombiningClass-3.2.0.txt: Add. 2004-06-12 Simon Josefsson * NEWS: Add. 2004-06-12 Simon Josefsson * po/LINGUAS, po/eo.po: Add Esperanto translation, from Edmund GRIMLEY EVANS , via the translation project. 2004-06-11 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-06-11 Simon Josefsson * Makefile.am: Fix release target. 2004-06-11 Simon Josefsson * ChangeLog: [no log message] 2004-06-11 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-06-11 Simon Josefsson * NEWS: Version 0.4.9. 2004-06-11 Simon Josefsson * java/Makefile.am: Work around automake limitation (cannot have instal-data-local target in a conditional). 2004-06-09 Simon Josefsson * doc/specifications/draft-ietf-ldapbis-dn-14.txt, doc/specifications/draft-ietf-ldapbis-strprep-04.txt: Add. 2004-06-08 Simon Josefsson * lib/stringprep.c: Cosmetic fix, sync with libc. 2004-06-07 Simon Josefsson * NEWS: Fix. 2004-06-07 Simon Josefsson * java/Makefile.am: Create libidn.jar link. 2004-06-06 Simon Josefsson * doc/specifications/draft-bakke-iscsi-stringprep-00.txt, doc/specifications/draft-hoffman-stringprep-00.txt, doc/specifications/draft-hoffman-stringprep-01.txt, doc/specifications/draft-hoffman-stringprep-02.txt, doc/specifications/draft-hoffman-stringprep-03.txt, doc/specifications/draft-hoffman-stringprep-04.txt, doc/specifications/draft-hoffman-stringprep-05.txt, doc/specifications/draft-hoffman-stringprep-06.txt, doc/specifications/draft-hoffman-stringprep-07.txt, doc/specifications/draft-ietf-idn-nameprep-00.txt, doc/specifications/draft-ietf-idn-nameprep-01.txt, doc/specifications/draft-ietf-idn-nameprep-02.txt, doc/specifications/draft-ietf-idn-nameprep-03.txt, doc/specifications/draft-ietf-idn-nameprep-04.txt, doc/specifications/draft-ietf-idn-nameprep-05.txt, doc/specifications/draft-ietf-idn-nameprep-06.txt, doc/specifications/draft-ietf-idn-nameprep-07.txt, doc/specifications/draft-ietf-idn-nameprep-08.txt, doc/specifications/draft-ietf-idn-nameprep-09.txt, doc/specifications/draft-ietf-idn-nameprep-10.txt, doc/specifications/draft-ietf-idn-nameprep-11.txt, doc/specifications/draft-ietf-ips-iscsi-string-prep-00.txt, doc/specifications/draft-ietf-ips-iscsi-string-prep-01.txt, doc/specifications/draft-ietf-ips-iscsi-string-prep-02.txt, doc/specifications/draft-ietf-ips-iscsi-string-prep-03.txt, doc/specifications/draft-ietf-ldapbis-strprep-03.txt, doc/specifications/draft-ietf-xmpp-core-18.txt, doc/specifications/draft-ietf-xmpp-core-19.txt, doc/specifications/draft-ietf-xmpp-core-20.txt, doc/specifications/draft-ietf-xmpp-core-21.txt, doc/specifications/draft-ietf-xmpp-core-22.txt, doc/specifications/draft-ietf-xmpp-core-23.txt, doc/specifications/draft-ietf-xmpp-core-24.txt, doc/specifications/draft-zeilenga-ldapbis-strmatch-00.txt, doc/specifications/draft-zeilenga-ldapbis-strmatch-01.txt: Add. 2004-06-03 Simon Josefsson * java/.cvsignore: [no log message] 2004-06-03 Simon Josefsson * java/misc/Makefile.am: Use versioned *.jar. 2004-06-02 Simon Josefsson * java/Makefile.am: Versionize *.jar filename. 2004-06-01 Simon Josefsson * NEWS: Add. 2004-06-01 Simon Josefsson * doc/java/Makefile.am: Dist HTMLs. 2004-06-01 Simon Josefsson * doc/gendocs_template: Add JavaDoc links. 2004-06-01 Simon Josefsson * Makefile.am: Copy javadoc files. 2004-06-01 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-06-01 Simon Josefsson * doc/java/.cvsignore: [no log message] 2004-06-01 Simon Josefsson * doc/java/.cvsignore: [no log message] 2004-06-01 Simon Josefsson * doc/java/Makefile.am: Fix. 2004-06-01 Simon Josefsson * java/Makefile.am: Add javadoc. 2004-06-01 Simon Josefsson * java/Makefile.am: Distribute libidn.jar, suggested by Oliver Hitz. 2004-06-01 Simon Josefsson * m4/ac_prog_javadoc.m4: Add. 2004-06-01 Simon Josefsson * doc/Makefile.am, doc/java/Makefile.am: Add java/. 2004-06-01 Simon Josefsson * configure.ac: Build doc/java/Makefile. 2004-06-01 Simon Josefsson * configure.ac: Find javadoc. 2004-06-01 Simon Josefsson * ChangeLog: [no log message] 2004-06-01 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-06-01 Simon Josefsson * NEWS: Version 0.4.8. 2004-06-01 Simon Josefsson * NEWS: Add. 2004-06-01 Simon Josefsson * java/misc/Makefile.am: Don't use GNU make specific 'override', from Oliver Hitz. 2004-06-01 Simon Josefsson * java/gnu/inet/encoding/Makefile.am, java/misc/Makefile.am: Dist *.java, suggested by Oliver Hitz. 2004-05-31 Simon Josefsson * README: Fix. 2004-05-31 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-05-31 Simon Josefsson * ChangeLog: [no log message] 2004-05-31 Simon Josefsson * NEWS: Version 0.4.7. 2004-05-31 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-05-31 Simon Josefsson * NEWS: Fix. 2004-05-31 Simon Josefsson * doc/libidn.texi: Markup fix. 2004-05-31 Simon Josefsson * doc/libidn.texi: (Java API): Fix. 2004-05-31 Simon Josefsson * doc/libidn.texi: Markup fixes. 2004-05-31 Simon Josefsson * java/Makefile.am, java/README.UNICODE, java/README.html: Remove (moved to doc/libidn.texi). 2004-05-31 Simon Josefsson * doc/libidn.texi: (Introduction): Mention Java port. (Downloading and Installing): Mention --enable-java. (Java API): Add, taken from java/README.html and java/README.UNICODE by Oliver Hitz. 2004-05-31 Simon Josefsson * java/Makefile.am: Revert, I don't want to require gcj for CVS builds. 2004-05-31 Simon Josefsson * java/Makefile.am: Dist libidn.jar (this seem to be the norm among Java libraries?). 2004-05-31 Simon Josefsson * NEWS: Add. 2004-05-31 Simon Josefsson * java/gnu/inet/encoding/.cvsignore, java/misc/.cvsignore: [no log message] 2004-05-31 Simon Josefsson * java/Makefile.am: Build more. 2004-05-31 Simon Josefsson * configure.ac, java/Makefile.am, java/README.UNICODE, java/README.html, java/gnu/inet/encoding/CombiningClass.java, java/gnu/inet/encoding/Composition.java, java/gnu/inet/encoding/DecompositionKeys.java, java/gnu/inet/encoding/DecompositionMappings.java, java/gnu/inet/encoding/IDNA.java, java/gnu/inet/encoding/IDNAException.java, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/NFKC.java, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java, java/gnu/inet/encoding/RFC3454.java, java/gnu/inet/encoding/Stringprep.java, java/gnu/inet/encoding/StringprepException.java, java/misc/GenerateNFKC.java, java/misc/GenerateRFC3454.java, java/misc/Makefile.am, java/misc/TestIDNA.java, java/misc/TestNFKC.java: Improve JAVA port, from Oliver Hitz . 2004-05-26 Simon Josefsson * contrib/web/idn.php: Fixes. 2004-05-25 Simon Josefsson * README-alpha: Fix. 2004-05-24 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-05-24 Simon Josefsson * ChangeLog: [no log message] 2004-05-24 Simon Josefsson * NEWS: Version 0.4.6. 2004-05-24 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-05-24 Simon Josefsson * NEWS: Add. 2004-05-24 Simon Josefsson * lib/Makefile.am: (include_HEADERS): Install idn-free.h, reported by Daniel Stenberg . 2004-05-21 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-05-21 Simon Josefsson * doc/specifications/pr-29.html: Update. 2004-05-21 Simon Josefsson * ChangeLog: [no log message] 2004-05-21 Simon Josefsson * NEWS: Version 0.4.5. 2004-05-21 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-05-21 Simon Josefsson * doc/Makefile.am: Bump copyright years on man pages. 2004-05-21 Simon Josefsson * configure.ac: Bump so version. 2004-05-21 Simon Josefsson * doc/reference/Makefile.am: (HIGNORE): Add idn-free.h. 2004-05-21 Simon Josefsson * lib/stringprep.c: (stringprep): Move declaration of temporary variable to start of scope. 2004-05-21 Simon Josefsson * NEWS: Add. 2004-05-21 Simon Josefsson * lib/idna.c: (idna_to_unicode_4z4z): There was no double free, remove my modification. 2004-05-21 Simon Josefsson * NEWS: Add. 2004-05-21 Simon Josefsson * lib/idna.c: (idna_to_ascii_4i, idna_to_unicode_4z4z): Fix memory leak when memory allocation fails. From Ulrich Drepper , but modified to fix double free and incorrect 'if' condition. 2004-05-21 Simon Josefsson * NEWS: Add. 2004-05-21 Simon Josefsson * lib/stringprep.c: (stringprep): Fix memory leak when memory allocation fails. From Ulrich Drepper . 2004-05-21 Simon Josefsson * lib/idna.c: Doc fix. 2004-05-21 Simon Josefsson * lib/idna.c: Back port of (some) changes by Ulrich Drepper . (idna_to_unicode_internal): Fix memory leaks when memory allocation fails. Deallocate utf8in on failure. (idna_to_unicode_44i): Don't free, done in idna_to_unicode_internal. (idna_to_ascii_4z): Fix memory leak when memory allocation fails. 2004-05-21 Simon Josefsson * NEWS, THANKS: Add. 2004-05-21 Simon Josefsson * lib/Makefile.am, lib/idn-free.c, lib/idn-free.h: Add idn_free, suggested by "Gisle Vanem" . 2004-04-30 Simon Josefsson * NEWS: Fix. 2004-04-30 Simon Josefsson * lib/idna.c: (idna_to_ascii_lz): Doc fix, reported by Joe Orton . 2004-04-30 Simon Josefsson * tests/tst_nfkc.c: Add NFKC test vectors from pr-29.html. Fix debug output. 2004-04-30 Simon Josefsson * doc/specifications/pr-29.html: Add. 2004-04-30 Simon Josefsson * tests/utils.c: Fix ucs4print debugging output. 2004-04-29 Simon Josefsson * NEWS, doc/specifications/draft-ietf-sasl-saslprep-09.txt: Add. 2004-04-29 Simon Josefsson * tests/tst_stringprep.c: Update SASLPrep test vectors. 2004-04-29 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-04-29 Simon Josefsson * ChangeLog: [no log message] 2004-04-29 Simon Josefsson * NEWS: Version 0.4.4. 2004-04-29 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/ro.po, po/sr.po, po/sv.po: Generated. 2004-04-29 Simon Josefsson * NEWS: Add. 2004-04-29 Simon Josefsson * NEWS, THANKS: Add. 2004-04-29 Simon Josefsson * tests/Makefile.am: Use -no-install to avoid libtool wrapper script, tiny patch from Joe Orton . 2004-04-29 Simon Josefsson * NEWS: Add. 2004-04-29 Simon Josefsson * doc/specifications/stringprep-profiles: Update. 2004-04-29 Simon Josefsson * NEWS, doc/specifications/rfc3722.txt: Add. 2004-04-29 Simon Josefsson * tests/tst_stringprep.c: Add iSCSI test vectors to catch recent bugs. 2004-04-29 Simon Josefsson * lib/profiles.c: (stringprep_iscsi_prohibit): For start==0, use end!=1. 2004-04-29 Simon Josefsson * lib/profiles.c: (stringprep_iscsi): Add C_1_1, C_2_1, and C_7 (after reading newly published RFC 3722). 2004-04-24 Simon Josefsson * NEWS, THANKS: Add. 2004-04-24 Simon Josefsson * po/LINGUAS, po/ro.po: Add, by Laurentiu Buzdugan via translation project. 2004-04-22 Simon Josefsson * lib/toutf8.c: Rename variable to avoid silly shadowing warnings. 2004-04-22 Simon Josefsson * tests/.cvsignore: [no log message] 2004-04-22 Simon Josefsson * tests/Makefile.am: Move utils.c and utils.h into a separate library. 2004-04-22 Simon Josefsson * tests/.cvsignore: [no log message] 2004-04-22 Simon Josefsson * tests/Makefile.am, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_punycode.c, tests/tst_stringprep.c, tests/tst_tld.c, tests/utils.c, tests/utils.h: Split out common stuff into utils.c and utils.h. 2004-04-22 Simon Josefsson * tests/tst_nfkc.c: Fix warnings. 2004-04-22 Simon Josefsson * configure.ac: Require modern autoconf. 2004-04-22 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-04-22 Simon Josefsson * lib/toutf8.c: Indent. 2004-04-22 Simon Josefsson * ChangeLog: [no log message] 2004-04-22 Simon Josefsson * po/da.po, po/de.po, po/fr.po, po/nl.po, po/pl.po, po/sr.po, po/sv.po: Generated. 2004-04-22 Simon Josefsson * NEWS: Version 0.4.3. 2004-04-22 Simon Josefsson * NEWS: Add. 2004-04-22 Simon Josefsson * NEWS: Add. 2004-04-22 Simon Josefsson * lib/tld.h: (Tld_table): Mark "name" and "version" as const. 2004-04-22 Simon Josefsson * NEWS: Add. 2004-04-22 Simon Josefsson * tests/tst_stringprep.c: Add SASLprep test vectors (would catch the C.2.1 bug). 2004-04-22 Simon Josefsson * lib/stringprep.c: (stringprep_find_character_in_table): Fix end-of-table test, to handle valid uses of start=0 (as in table C.2.1). 2004-04-21 Simon Josefsson * AUTHORS: Update PGP key. 2004-04-18 Simon Josefsson * THANKS: Add. 2004-04-18 Simon Josefsson * libidn.pc.in: Drop -R lib flag, suggested by Martin Waitz . 2004-04-15 Simon Josefsson * doc/specifications/draft-costello-rfc3492bis-02.txt: Add. 2004-04-15 Simon Josefsson * doc/specifications/rfc3743.txt: Add. 2004-04-14 Simon Josefsson * doc/specifications/draft-hoffman-rfc3454bis-02.txt, doc/specifications/draft-hoffman-rfc3490bis-02.txt, doc/specifications/draft-hoffman-rfc3491bis-01.txt: Add. 2004-04-12 Simon Josefsson * doc/specifications/draft-ietf-sasl-saslprep-08.txt: Add. 2004-04-11 Simon Josefsson * README-alpha: Fix versions. 2004-04-09 Simon Josefsson * NEWS, THANKS: Add. 2004-04-09 Simon Josefsson * po/LINGUAS, po/nl.po: Add, from Elros Cyriatan via Translation Project. 2004-04-05 Simon Josefsson * contrib/idn-python/idn.c: Use new API, tiny patch from "Gisle Vanem" . 2004-03-28 Simon Josefsson * NEWS, THANKS: Add. 2004-03-28 Simon Josefsson * po/LINGUAS, po/de.po: Add German translation, from Roland Illig via translation project. 2004-03-23 Simon Josefsson * doc/specifications/draft-ietf-sasl-saslprep-07.txt: Add. 2004-03-20 Simon Josefsson * THANKS: Add. 2004-03-20 Simon Josefsson * doc/Makefile.gdoci: Use TAB instead of \t, suggested by Jørgen Thomsen . 2004-03-20 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-03-20 Simon Josefsson * ChangeLog: [no log message] 2004-03-20 Simon Josefsson * po/da.po, po/fr.po, po/pl.po, po/sr.po, po/sv.po: Generated. 2004-03-20 Simon Josefsson * NEWS: Version 0.4.2. 2004-03-20 Simon Josefsson * configure.ac: Inform about Java. 2004-03-20 Simon Josefsson * libc/getaddrinfo-idn.txt: Update. 2004-03-20 Simon Josefsson * Makefile.am, libc/Banner, libc/Makefile, libc/README, libc/Versions, libc/configure, libc/getaddrinfo.c, libc/idn-stub.c, libc/libc.patch, libc/libidn.texi, libc/netdb.h: Remove most of libc stuff (has been integrated in libc CVS). 2004-03-20 Simon Josefsson * README, java/Makefile.am: Fix. 2004-03-20 Simon Josefsson * COPYING: Add. 2004-03-20 Simon Josefsson * NEWS, doc/libidn.texi: Fix. 2004-03-20 Simon Josefsson * AUTHORS, THANKS: Add. 2004-03-20 Simon Josefsson * THANKS: Add. 2004-03-19 Simon Josefsson * NEWS: Add. 2004-03-19 Simon Josefsson * java/Makefile.am, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/Punycode.java, java/gnu/inet/encoding/PunycodeException.java: Fix. 2004-03-19 Simon Josefsson * m4/ac_prog_jar.m4, m4/ac_prog_javac.m4, m4/ac_prog_javac_works.m4: Add, from GNU Autoconf Macro Archive. 2004-03-19 Simon Josefsson * java/gnu/inet/encoding/.cvsignore: [no log message] 2004-03-19 Simon Josefsson * java/gnu/inet/encoding/PunycodeException.java: Add, from Oliver Hitz . 2004-03-19 Simon Josefsson * java/gnu/inet/encoding/Makefile.am: (noinst_JAVA): Only include Punycode*.java for now. 2004-03-19 Simon Josefsson * Makefile.am, configure.ac, java/Makefile.am, java/gnu/Makefile.am, java/gnu/inet/Makefile.am, java/gnu/inet/encoding/Makefile.am, java/gnu/inet/encoding/Punycode.java: Add infrastructure for Java code, and add Punycode, from Oliver Hitz . 2004-03-19 Simon Josefsson * java/.cvsignore, java/gnu/.cvsignore, java/gnu/inet/.cvsignore, java/gnu/inet/encoding/.cvsignore, m4/.cvsignore: [no log message] 2004-03-16 Simon Josefsson * NEWS: Add. 2004-03-16 Simon Josefsson * THANKS: Add. 2004-03-16 Simon Josefsson * po/LINGUAS, po/da.po: Add, from Morten Bo Johansen via Translation Project. 2004-03-14 Simon Josefsson * po/pl.po: Update. 2004-03-14 Simon Josefsson * po/.cvsignore: [no log message] 2004-03-14 Simon Josefsson * po/LINGUAS: Add. 2004-03-14 Simon Josefsson * THANKS: Fix. 2004-03-14 Simon Josefsson * THANKS, doc/libidn.texi: Ack Unicode, Inc. 2004-03-14 Simon Josefsson * doc/specifications/Makefile.am: Dist COPYING.UCD. 2004-03-14 Simon Josefsson * doc/specifications/COPYING.UCD: Add. 2004-03-14 Simon Josefsson * NEWS, THANKS: Add. 2004-03-14 Simon Josefsson * po/LINGUAS, po/fr.po: Add, from Michel Robitaille via Translation Project. 2004-03-14 Simon Josefsson * NEWS: Add. 2004-03-14 Simon Josefsson * NEWS, THANKS: Add. 2004-03-14 Simon Josefsson * po/LINGUAS, po/sr.po: Add, from Aleksandar Jelenak via Translation Project. 2004-03-13 Simon Josefsson * doc/tld/no.tld: Add URLs. 2004-03-13 Simon Josefsson * NEWS: Add. 2004-03-13 Simon Josefsson * doc/tld/Makefile.am: Add no.tld. 2004-03-13 Simon Josefsson * doc/tld/no.tld: Add, from Thomas Jacob . 2004-03-13 Simon Josefsson * po/sv.po: Fix. 2004-03-13 Simon Josefsson * doc/libidn.texi, src/idn.ggo: Add. 2004-03-10 Simon Josefsson * THANKS: Fix. 2004-03-10 Simon Josefsson * NEWS, THANKS: Add. 2004-03-10 Simon Josefsson * po/LINGUAS, po/pl.po: Add Polish translation, from Jakub Bogusz . 2004-03-10 Simon Josefsson * doc/specifications/draft-ietf-sasl-saslprep-06.txt: Add. 2004-03-09 Simon Josefsson * Makefile.am: Build lib/ before po/. 2004-03-08 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-03-08 Simon Josefsson * ChangeLog: [no log message] 2004-03-08 Simon Josefsson * po/sv.po: Generated. 2004-03-08 Simon Josefsson * NEWS: Version 0.4.1. 2004-03-08 Simon Josefsson * tests/tst_tld.c: Fix warning. 2004-03-08 Simon Josefsson * NEWS: Fix. 2004-03-08 Simon Josefsson * po/sv.po: Generated. 2004-03-08 Simon Josefsson * src/Makefile.am: (idn_LDADD): Add LTLIBINTL. 2004-03-08 Simon Josefsson * NEWS: Add. 2004-03-08 Simon Josefsson * po/sv.po: Generated. 2004-03-08 Simon Josefsson * po/sv.po: Fix. 2004-03-08 Simon Josefsson * src/idn.c: Cosmetic fix. 2004-03-08 Simon Josefsson * po/sv.po: Add. 2004-03-08 Simon Josefsson * src/idn.c: Translation markup. 2004-03-08 Simon Josefsson * po/.cvsignore: [no log message] 2004-03-08 Simon Josefsson * po/.cvsignore: [no log message] 2004-03-08 Simon Josefsson * po/sv.po: Fix. 2004-03-08 Simon Josefsson * src/idn.c: Gettextiscate. 2004-03-08 Simon Josefsson * po/sv.po: Add. 2004-03-08 Simon Josefsson * .cvsignore, m4/.cvsignore, po/.cvsignore: [no log message] 2004-03-08 Simon Josefsson * src/Makefile.am, src/gettext.h: Add gettext.h. Define LOCALEDIR (for gettext). 2004-03-08 Simon Josefsson * po/Makevars: Add. 2004-03-08 Simon Josefsson * .cvsignore, m4/.cvsignore, po/.cvsignore: [no log message] 2004-03-08 Simon Josefsson * config.rpath, m4/lib-ld.m4, m4/lib-prefix.m4: Remove, added by gettextize. 2004-03-08 Simon Josefsson * Makefile.am, configure.ac, po/LINGUAS, po/POTFILES.in: Gettextiscate. 2004-03-08 Simon Josefsson * NEWS: Add. 2004-03-08 Simon Josefsson * NEWS: Fix. 2004-03-08 Simon Josefsson * doc/libidn.texi: Fix IDNA_DLOPEN_ERROR. 2004-03-08 Simon Josefsson * lib/toutf8.c: (stringprep_convert): Don't copy input. Check for malloc failures. From Ulrich Drepper , via libidn integration in libc. 2004-03-08 Simon Josefsson * src/idn.c: Invoke setlocale (LC_ALL, ""). 2004-03-08 Simon Josefsson * NEWS: Add. 2004-03-08 Simon Josefsson * lib/toutf8.c: (stringprep_locale_charset_slow): Remove. (stringprep_locale_charset) [_LIBC]: Define to nl_langinfo(CODESET). (stringprep_locale_charset) [!_LIBC]: Don't cache charset. Remove broken setlocale hack. All based on discussion with Ulrich Drepper , during libidn integration in libc. 2004-03-08 Simon Josefsson * lib/idna.c: (Idna_rc): Doc fix IDNA_DLOPEN_ERROR. 2004-03-08 Simon Josefsson * NEWS: Fix. 2004-03-08 Simon Josefsson * NEWS, THANKS: Add. 2004-03-08 Simon Josefsson * lib/nfkc.c: Fix warning, tiny patch by Ulrich Drepper from libidn integration in libc. 2004-03-08 Simon Josefsson * lib/idna.h: (Idna_rc): Add IDNA_DLOPEN_ERROR error code, for libidn part of libc. 2004-03-08 Simon Josefsson * lib/stringprep.h.in: (Stringprep_profiles): Mark 'name' as 'const'. Tiny patch to libidn in libc by Ulrich Drepper . 2004-03-07 Simon Josefsson * NEWS: Add. 2004-03-07 Simon Josefsson * Makefile.am: Dist libc/idn-stub.c and libc/libidn.texi. 2004-03-07 Simon Josefsson * libc/libc.patch: Update, from libc-alpha post. 2004-03-07 Simon Josefsson * libc/idn-stub.c, libc/libidn.texi: Add, from libc-alpha post. 2004-03-07 Simon Josefsson * libc/Makefile: Sync libc-alpha post. 2004-03-07 Simon Josefsson * libc/README, libc/example.c: Update. 2004-03-07 Simon Josefsson * libc/getaddrinfo.c, libc/netdb.h: Sync. 2004-03-07 Simon Josefsson * lib/stringprep.c: Fix comment. 2004-03-07 Simon Josefsson * NEWS: Add. 2004-03-07 Simon Josefsson * README-alpha: Fix version requirements. 2004-03-07 Simon Josefsson * README-alpha: Fix texinfo requirement. 2004-03-05 Simon Josefsson * NEWS: Add. 2004-03-05 Simon Josefsson * lib/profiles.c: (stringprep_saslprep): Fix typo; make sure non-ASCII space characters are prohibited. 2004-03-01 Simon Josefsson * doc/libidn.texi, doc/tld/README: Mention tldchk.berlios.de, suggested by Thomas Jacob . 2004-02-28 Simon Josefsson * lib/Makefile.am: Don't install tld.h if --disable-tld. 2004-02-28 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-02-28 Simon Josefsson * doc/specifications/draft-ietf-sasl-anon-01.txt, doc/specifications/draft-ietf-sasl-anon-02.txt, doc/specifications/draft-ietf-sasl-anon-03.txt, doc/specifications/draft-ietf-sasl-saslprep-05.txt: Add. 2004-02-28 Simon Josefsson * ChangeLog: [no log message] 2004-02-28 Simon Josefsson * NEWS: Version 0.4.0. 2004-02-28 Simon Josefsson * lib/toutf8.c: Always include errno.h (C89). 2004-02-28 Simon Josefsson * lib/tld.c, src/idn.c: Indent. 2004-02-28 Simon Josefsson * README: Mention TLD. 2004-02-28 Simon Josefsson * lib/gen-tld-tables.pl: Handle draft-hoffman-idn-reg-*.txt tables better. 2004-02-28 Simon Josefsson * doc/tld/fr.tld: Add headers. Fix typos and comments. 2004-02-28 Simon Josefsson * doc/tld/fr.tld: Add copying conditions. 2004-02-28 Simon Josefsson * doc/tld/fr.tld: Add, from Stephane Bortzmeyer . 2004-02-28 Simon Josefsson * doc/libidn.texi: Don't document Tld_table* for now. 2004-02-28 Simon Josefsson * lib/tld.c: (_tld_checkchar): Use new Tld_table API. 2004-02-28 Simon Josefsson * lib/tld.h: (Tld_table): Change valid definition. 2004-02-28 Simon Josefsson * lib/gen-tld-tables.pl: Use new API. 2004-02-28 Simon Josefsson * doc/libidn.texi: Fix. 2004-02-28 Simon Josefsson * doc/libidn.texi: Improve Troubleshooting. 2004-02-27 Simon Josefsson * lib/tld.c: Cosmetic fix. 2004-02-27 Simon Josefsson * lib/tld.c: (tld_check_4): Don't write to NULL errpos, from Thomas Jacob . 2004-02-18 Simon Josefsson * lib/gen-tld-tables.pl: Typo. 2004-02-18 Simon Josefsson * lib/gen-tld-tables.pl: Use hex in output. 2004-02-18 Simon Josefsson * lib/gen-tld-tables.pl: Add comment. 2004-02-18 Simon Josefsson * lib/gen-tld-tables.pl: Parse tables conforming to draft-hoffman-idn-reg. 2004-02-18 Simon Josefsson * doc/specifications/draft-hoffman-idn-reg-00.txt, doc/specifications/draft-hoffman-idn-reg-01.txt, doc/specifications/draft-hoffman-idn-reg-02.txt: Add. 2004-02-18 Simon Josefsson * doc/libidn.texi: Fix typos. 2004-02-18 Simon Josefsson * doc/libidn.texi: Fix autoconf stuff, suggested by Stephane Bortzmeyer . 2004-02-15 Simon Josefsson * NEWS: Fix. 2004-02-13 Simon Josefsson * lib/tld.c: Doc fix. 2004-02-13 Simon Josefsson * NEWS: Fix. 2004-02-12 Simon Josefsson * lib/tld.c: Fix. Indent. 2004-02-12 Simon Josefsson * lib/tld.c: (tld_get_z): Allocate correct amount, from Thomas Jacob . 2004-02-10 Simon Josefsson * examples/README: Fix title. 2004-02-10 Simon Josefsson * examples/README: Add. 2004-02-10 Simon Josefsson * NEWS: Add. 2004-02-10 Simon Josefsson * examples/example5.c: Fix warning. 2004-02-10 Simon Josefsson * src/idn.c: Fix TLD debug. 2004-02-10 Simon Josefsson * src/idn.c: TLD check correct string. 2004-02-10 Simon Josefsson * lib/tld.c: Fix warning. 2004-02-10 Simon Josefsson * examples/Makefile.am: TLD fix. 2004-02-10 Simon Josefsson * lib/gen-tld-tables.pl: Fix include, from Thomas Jacob . 2004-02-08 Simon Josefsson * lib/stringprep.c: Mention example5. 2004-02-08 Simon Josefsson * lib/stringprep.c: Sync libidn text. 2004-02-08 Simon Josefsson * doc/reference/libidn-docs.tmpl: Sync text. 2004-02-08 Simon Josefsson * doc/libidn.texi: Fix introduction. 2004-02-08 Simon Josefsson * lib/tld.c, tests/tst_tld.c: Typo. 2004-02-08 Simon Josefsson * doc/libidn.texi: TLD fixes. 2004-02-08 Simon Josefsson * doc/libidn.texi: Add. 2004-02-08 Simon Josefsson * doc/libidn.texi: Add example 5. 2004-02-08 Simon Josefsson * lib/tld.c: (_tld_checkchar): Binary search, from jacob@internet24.de. 2004-02-08 Simon Josefsson * NEWS: Remove. 2004-02-08 Simon Josefsson * lib/tld.c, lib/tld.h: Indent. 2004-02-08 Simon Josefsson * lib/tld.c: Whitespace. 2004-02-08 Simon Josefsson * lib/tld.h: Doc fix. 2004-02-08 Simon Josefsson * lib/gen-tld-tables.pl, lib/tld.c, lib/tld.h: Hide tld_tables. 2004-02-08 Simon Josefsson * NEWS, doc/libidn.texi, lib/tld.c, lib/tld.h: (tld_get_z): Support any charset (renamed from tld_get_8z). 2004-02-08 Simon Josefsson * NEWS, lib/tld.c, lib/tld.h: Typo. 2004-02-08 Simon Josefsson * lib/tld.h: Typo. 2004-02-08 Simon Josefsson * NEWS, doc/libidn.texi: Add. 2004-02-08 Simon Josefsson * lib/tld.c, lib/tld.h: (tld_get_8z): Add. 2004-02-08 Simon Josefsson * examples/.cvsignore: [no log message] 2004-02-08 Simon Josefsson * examples/Makefile.am, examples/example5.c: Add. 2004-02-08 Simon Josefsson * lib/idna.c: Doc fix. 2004-02-08 Simon Josefsson * lib/gen-tld-tables.pl: Fix. 2004-02-06 Simon Josefsson * doc/libidn.texi: Fix. 2004-02-06 Simon Josefsson * doc/libidn.texi: Add. 2004-02-06 Simon Josefsson * doc/libidn.texi: Add. 2004-02-06 Simon Josefsson * lib/profiles.c, lib/tld.h, src/idn.c, tests/tst_tld.c: Indent. 2004-02-06 Simon Josefsson * src/Makefile.am: Fix indent. 2004-02-06 Simon Josefsson * doc/tld/README: Add. 2004-02-06 Simon Josefsson * doc/tld/README: Fix. 2004-02-06 Simon Josefsson * doc/tld/README: Rewrite. 2004-02-06 Simon Josefsson * lib/gen-tld-tables.pl: Fix "include". 2004-02-06 Simon Josefsson * NEWS: Add. 2004-02-06 Simon Josefsson * NEWS: Fix. 2004-02-06 Simon Josefsson * doc/libidn.texi, lib/tld.c, lib/tld.h, src/idn.c, tests/tst_tld.c: Rename TLD_ILLEGAL to TLD_INVALID. 2004-02-06 Simon Josefsson * doc/libidn.texi, lib/tld.c, lib/tld.h: Rename TLD_ILLEGAL to TLD_INVALID. 2004-02-06 Simon Josefsson * doc/libidn.texi: Fix. 2004-02-06 Simon Josefsson * doc/libidn.texi: Add. 2004-02-06 Simon Josefsson * doc/libidn.texi: Update idn command line. 2004-02-06 Simon Josefsson * src/idn.ggo: Move around. 2004-02-06 Simon Josefsson * src/idn.ggo: Fix stringprep profiles. 2004-02-06 Simon Josefsson * src/idn.c: TLD typo. 2004-02-06 Simon Josefsson * src/idn.ggo: Make --tld the default. 2004-02-06 Simon Josefsson * src/idn.c: Support --tld. Make sure output is hold in "p". Fix error messages. 2004-02-06 Simon Josefsson * src/idn.ggo: TLD fix. 2004-02-06 Simon Josefsson * NEWS: Fix. 2004-02-06 Simon Josefsson * NEWS: Fix. 2004-02-06 Simon Josefsson * THANKS: Add. 2004-02-06 Simon Josefsson * doc/libidn.texi: Typos. 2004-02-06 Simon Josefsson * doc/libidn.texi: Fix. 2004-02-06 Simon Josefsson * lib/tld.h: Doc fix. 2004-02-06 Simon Josefsson * doc/libidn.texi: Add. 2004-02-06 Simon Josefsson * lib/tld.c: Typo. 2004-02-06 Simon Josefsson * doc/libidn.texi: Add. 2004-02-06 Simon Josefsson * lib/tld.c, lib/tld.h: Doc fix. 2004-02-06 Simon Josefsson * tests/tst_tld.c: Use new API. 2004-02-06 Simon Josefsson * lib/tld.c, lib/tld.h: (tld_default_table): Add. (tld_get_table): Fix. 2004-02-06 Simon Josefsson * lib/tld.h: Typo. 2004-02-06 Simon Josefsson * lib/tld.c, lib/tld.h: Typo. 2004-02-06 Simon Josefsson * lib/tld.c, lib/tld.h: Revert. 2004-02-06 Simon Josefsson * lib/tld.c, lib/tld.h: Change semantics if tld_get_table. 2004-02-06 Simon Josefsson * lib/gen-tld-tables.pl, lib/tld.c, lib/tld.h: Typo. 2004-02-06 Simon Josefsson * lib/tld.c: Typos. 2004-02-06 Simon Josefsson * tests/tst_tld.c: Use new API. 2004-02-06 Simon Josefsson * lib/tld.c: Rename tld_check_*. 2004-02-06 Simon Josefsson * lib/tld.h: Rename tld_check_*. Doc fix. 2004-02-06 Simon Josefsson * lib/tld.c, lib/tld.h: Rename tld_gettld_* to tld_get_*. 2004-02-06 Simon Josefsson * lib/tld.c: Use new API. (tld_get_table): Rewrite. 2004-02-06 Simon Josefsson * lib/gen-tld-tables.pl: Use new API. 2004-02-06 Simon Josefsson * lib/tld.h: Fix Tld_table. 2004-02-06 Simon Josefsson * lib/tld.c: Reorder. 2004-02-06 Simon Josefsson * tests/tst_tld.c: Use new API. 2004-02-06 Simon Josefsson * lib/tld.c, lib/tld.h: Don't export tld_checkchar. Rename tld_finddomain to tld_get_table. Fixes. 2004-02-06 Simon Josefsson * tests/tst_tld.c: Fix. 2004-02-06 Simon Josefsson * lib/profiles.c, lib/punycode.c, lib/stringprep.c, lib/tld.c, lib/tld.h: Indent. 2004-02-06 Simon Josefsson * doc/libidn.texi: Fix acks. 2004-02-06 Simon Josefsson * doc/libidn.texi: Add. 2004-02-06 Simon Josefsson * AUTHORS: Add. 2004-02-06 Simon Josefsson * doc/reference/libidn-docs.tmpl: Update. 2004-02-06 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2004-02-06 Simon Josefsson * NEWS: Add. 2004-02-06 Simon Josefsson * doc/components.fig: Add TLD. 2004-02-06 Simon Josefsson * doc/libidn.texi: Fix. 2004-02-06 Simon Josefsson * doc/libidn.texi: Fix. 2004-02-06 Simon Josefsson * doc/libidn.texi: Update introduction. Add TLD. Fix autoconf example. Remove Kerberos 5 macro documentation. 2004-02-06 Simon Josefsson * lib/stringprep.c: Doc fix. 2004-02-06 Simon Josefsson * lib/tld.h: Fix. 2004-02-06 Simon Josefsson * doc/reference/Makefile.am, doc/reference/libidn-docs.tmpl: Add TLD. 2004-02-06 Simon Josefsson * configure.ac: Bump versions. 2004-02-06 Simon Josefsson * NEWS: Add. 2004-02-06 Simon Josefsson * lib/Makefile.am, tests/Makefile.am: Make it possible to exclude TLD. 2004-02-06 Simon Josefsson * configure.ac: Add --disable-tld. 2004-02-06 Simon Josefsson * configure.ac: Build doc/tld/Makefile. 2004-02-06 Simon Josefsson * doc/tld/.cvsignore, tests/.cvsignore: [no log message] 2004-02-06 Simon Josefsson * tests/Makefile.am: Add tst_tld. 2004-02-06 Simon Josefsson * src/idn.ggo: Add --tld. 2004-02-06 Simon Josefsson * tests/tst_tld.c: Add. 2004-02-06 Simon Josefsson * lib/gen-tld-tables.pl, lib/tld.h: Fix Tld_table. 2004-02-06 Simon Josefsson * lib/tld.c: TLD code fix. 2004-02-06 Simon Josefsson * lib/.cvsignore: [no log message] 2004-02-06 Simon Josefsson * lib/tld.c: TLD fixes. 2004-02-06 Simon Josefsson * lib/tld.h: TLD typos. 2004-02-06 Simon Josefsson * lib/Makefile.am: TLD fix. 2004-02-06 Simon Josefsson * lib/tld.c: Add, from Thomas Jacob . 2004-02-06 Simon Josefsson * lib/tld.h: Fixes. 2004-02-06 Simon Josefsson * lib/tld.h: Add, from Thomas Jacob . 2004-02-06 Simon Josefsson * lib/gen-tld-tables.pl: TLD fixes. 2004-02-06 Simon Josefsson * lib/gen-tld-tables.pl: Print to stdout. 2004-02-06 Simon Josefsson * lib/Makefile.am: TLD fixes. 2004-02-06 Simon Josefsson * doc/Makefile.am: Add tld/. 2004-02-06 Simon Josefsson * doc/tld/Makefile.am: Fix. 2004-02-06 Simon Josefsson * doc/tld/README: Add copying conditions. 2004-02-06 Simon Josefsson * doc/tld/Makefile.am, doc/tld/README, lib/Makefile.am, lib/gen-tld-tables.pl: Add, from Thomas Jacob . 2004-02-04 Simon Josefsson * doc/libidn.texi: Typo. 2004-02-01 Simon Josefsson * doc/components.fig: Fix. 2004-02-01 Simon Josefsson * doc/libidn.texi: Fix. 2004-02-01 Simon Josefsson * doc/components.fig: Add. 2004-02-01 Simon Josefsson * doc/.cvsignore: [no log message] 2004-02-01 Simon Josefsson * doc/Makefile.am: Build components.pdf too. 2004-02-01 Simon Josefsson * doc/Makefile.am, doc/libidn.texi: Add components.fig. 2004-01-31 Simon Josefsson * THANKS: Add. 2004-01-31 Simon Josefsson * doc/libidn.texi: Fix, reported by nisse@lysator.liu.se (Niels Möller). 2004-01-22 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-01-22 Simon Josefsson * Makefile.am: Fix release target. 2004-01-22 Simon Josefsson * doc/gendocs.sh: Upstream sync. 2004-01-22 Simon Josefsson * ChangeLog: [no log message] 2004-01-22 Simon Josefsson * NEWS: Version 0.3.7. 2004-01-22 Simon Josefsson * Makefile.am: Add release target. 2004-01-22 Simon Josefsson * .cvsignore: [no log message] 2004-01-22 Simon Josefsson * .cvscopying, autogen.sh: Fix. 2004-01-22 Simon Josefsson * .prev-version, GNUmakefile, Makefile.am, Makefile.cfg, Makefile.maint, announce-gen: Remove ugly maintainance hacks. 2004-01-22 Simon Josefsson * src/idn.c: Typo. 2004-01-22 Simon Josefsson * src/idn.c: Update copyright years. 2004-01-22 Simon Josefsson * NEWS: Add. 2004-01-22 Simon Josefsson * NEWS, THANKS: Add. 2004-01-22 Simon Josefsson * doc/libidn.texi, src/idn.ggo: Mention '--'. 2004-01-21 Simon Josefsson * doc/specifications/stringprep-profiles: Add. 2004-01-21 Simon Josefsson * contrib/web/idn.php, doc/libidn.texi, src/idn.ggo, tests/tst_stringprep.c: Fix iSCSI profile name. 2004-01-21 Simon Josefsson * lib/profiles.c: Add alias 'iSCSI'. 2004-01-18 Simon Josefsson * doc/fdl.texi, doc/libidn.texi: Use FDL 1.2. 2004-01-18 Simon Josefsson * src/idn.c: Fix warning. 2004-01-14 Simon Josefsson * configure.ac: Don't use AC_LIBTOOL_TAGS, too experimental. 2004-01-10 Simon Josefsson * doc/Makefile.am: Fix idn.1 depends. 2004-01-10 Simon Josefsson * doc/Makefile.am: Dist texinfo.css. 2004-01-10 Simon Josefsson * doc/gendocs_template: Sync with texinfo. 2004-01-10 Simon Josefsson * doc/gendocs_template: Remove DocBook. 2004-01-10 Simon Josefsson * NEWS: Add. 2004-01-10 Simon Josefsson * configure.ac, doc/Makefile.am: Remove DocBook stuff. 2004-01-10 Simon Josefsson * doc/Makefile.am, doc/libidn.css, doc/texinfo.css: Rename libidn.css to texinfo.css. 2004-01-10 Simon Josefsson * doc/libidn.css: Fix. 2004-01-10 Simon Josefsson * doc/libidn.css: Fix. 2004-01-10 Simon Josefsson * doc/Makefile.am: Use CSS for HTML. 2004-01-10 Simon Josefsson * doc/libidn.css: Add. 2004-01-06 Simon Josefsson * libc/getaddrinfo-idn.txt: Add. 2004-01-06 Simon Josefsson * NEWS, configure.ac: Bump versions. 2004-01-06 Simon Josefsson * .prev-version: . 2004-01-06 Simon Josefsson * ChangeLog: [no log message] 2004-01-06 Simon Josefsson * NEWS: Version 0.3.6. 2004-01-06 Simon Josefsson * NEWS: Add. 2004-01-06 Simon Josefsson * doc/libidn.texi: Fix license header. 2004-01-06 Simon Josefsson * NEWS: Add. 2004-01-01 Simon Josefsson * configure.ac, m4/ax_create_stdint_h.m4: Fix, to use ax_... verbatim from upstream. 2004-01-01 Simon Josefsson * m4/ac_compile_check_sizeof.m4: Remove (not used by ax_... any more). 2004-01-01 Simon Josefsson * m4/ax_create_stdint_h.m4: Apply local fixes. 2004-01-01 Simon Josefsson * m4/ax_create_stdint_h.m4: Sync with upstream version 1.4. 2003-12-30 Simon Josefsson * NEWS: Add. 2003-12-30 Simon Josefsson * configure.ac: Allow autoconf 2.57. 2003-12-18 Simon Josefsson * doc/libidn.texi: Encode file in ASCII. 2003-12-16 Simon Josefsson * doc/libidn.texi: Replace non-ASCII with Texinfo accents. 2003-12-16 Simon Josefsson * THANKS, doc/libidn.texi: Add Troubleshooting discussion for idn tool. Suggested by "Jan-Hendrik Heuing" and Kai Schaetzl . 2003-12-15 Simon Josefsson * contrib/web/idn.php: Pass data on command line. Update error enum's. Fix. 2003-12-15 Simon Josefsson * ANNOUNCE: Remove (see doc/libidn.texi instead). 2003-12-15 Simon Josefsson * README: Fix. 2003-12-15 Simon Josefsson * NEWS, configure.ac: Bump versions. 2003-12-15 Simon Josefsson * .prev-version: . 2003-12-15 Simon Josefsson * ChangeLog: [no log message] 2003-12-15 Simon Josefsson * NEWS: Version 0.3.5. 2003-12-15 Simon Josefsson * doc/.cvsignore: [no log message] 2003-12-15 Simon Josefsson * doc/libidn.texi: Use @finalout. 2003-12-15 Simon Josefsson * NEWS: Add. 2003-12-15 Simon Josefsson * doc/Makefile.am: Remove DocBook HTML targets (I'm tired of updating the random filenames in the Makefile). 2003-12-15 Simon Josefsson * doc/libidn.texi: Set charset cookie. Use @section instead of @majorheading for DocBook. Add real examples to idn section. 2003-12-15 Simon Josefsson * doc/gendocs.sh: Sync with Texinfo CVS. 2003-12-15 Simon Josefsson * NEWS: Add. 2003-12-15 Simon Josefsson * doc/Makefile.am: Update DocBook HTML target. 2003-12-11 Simon Josefsson * NEWS, THANKS, doc/libidn.texi, lib/idna.c, lib/idna.h: Rename IDNA_CONTAINS_LDH to IDNA_CONTAINS_NON_LDH. Reported by Graydon Hoare . 2003-12-10 Simon Josefsson * configure.ac: Check for autoconf 2.59 and automake 1.8. 2003-12-09 Simon Josefsson * README-alpha: Mention versions. 2003-12-04 Simon Josefsson * README: Fix. 2003-12-03 Simon Josefsson * doc/specifications/draft-faltstrom-unicode-synchronisation-00.txt: Add. 2003-11-27 Simon Josefsson * NEWS: Add. 2003-11-27 Simon Josefsson * configure.ac, src/Makefile.am, src/idn.ggo, src/idn.ggo.in: Simplify gengetopt building. Use AM_CPPFLAGS, not *_CPPFLAGS. 2003-11-27 Simon Josefsson * src/idn.c: Print instructions. Suggested by Kai Schaetzl . 2003-11-26 Simon Josefsson * libc/getaddrinfo-idn.txt: Typo. 2003-11-26 Simon Josefsson * NEWS: Add. 2003-11-26 Simon Josefsson * doc/libidn.texi: Update Invoking idn. 2003-11-26 Simon Josefsson * src/idn.c, src/idn.ggo.in: Make -a the default. 2003-11-26 Simon Josefsson * doc/libidn.texi: Update Invoking idn. 2003-11-26 Simon Josefsson * THANKS: Add. 2003-11-26 Simon Josefsson * src/Makefile.am, src/idn.c: Support strings passed on command line instead of on stdin. Suggested by Kai Schaetzl . 2003-11-26 Simon Josefsson * libc/getaddrinfo-idn.txt: Add todo. 2003-11-25 Simon Josefsson * configure.ac: Disable fortran etc libtool checks. 2003-11-23 Simon Josefsson * doc/gendocs.sh: Add --docbook. 2003-11-23 Simon Josefsson * doc/gendocs.sh: Sync with texinfo. 2003-11-20 Simon Josefsson * src/idn.c: Fix GREETING. 2003-11-11 Simon Josefsson * doc/gdoc: TeX improvements. From Nikos Mavroyanopoulos . 2003-11-11 Simon Josefsson * doc/Makefile.am: Use AM_MAKEINFOHTMLFLAGS (with CVS automake) instead of explicit libidn.html target. 2003-11-10 Simon Josefsson * doc/specifications/rfc2279.txt, doc/specifications/rfc3629.txt: Add. 2003-11-09 Simon Josefsson * .cvsignore, doc/.cvsignore: [no log message] 2003-11-09 Simon Josefsson * doc/Makefile.am: Update DocBook HTML destinations. 2003-11-09 Simon Josefsson * doc/html/.cvsignore: Remove. 2003-11-09 Simon Josefsson * doc/Makefile.am: Remove unused ps_TEXINFOS and pdf_TEXINFOS. 2003-11-09 Simon Josefsson * doc/Makefile.am: Remove example source code to texinfo conversion (@verbatiminclude is used directly on the source code instead). 2003-11-09 Simon Josefsson * doc/libidn.texi: Use @verbatiminclude for examples. 2003-11-09 Simon Josefsson * examples/Makefile.am, src/Makefile.am, tests/Makefile.am: Use *_CPPFLAGS instead of obsolete INCLUDES. 2003-11-09 Simon Josefsson * configure.ac: Replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS. 2003-11-09 Simon Josefsson * configure.ac: Autoupdate suggested changes: quote AC_INIT parameters, and replace AC_TRY_RUN with AC_RUN_IFELSE. 2003-11-09 Simon Josefsson * autogen.sh: Enable warnings. 2003-11-09 Simon Josefsson * m4/.cvsignore: [no log message] 2003-11-09 Simon Josefsson * src/Makefile.am: Use automake 1.7a idiom for elisp files. 2003-11-09 Simon Josefsson * Makefile.am, configure.ac, m4/Makefile.am: Remove m4/ as it is not needed with automake 1.7a. 2003-11-09 Simon Josefsson * NEWS, configure.ac: Bump versions. 2003-11-09 Simon Josefsson * Makefile.maint: Use proper -o directory for gendocs.sh. 2003-11-09 Simon Josefsson * .prev-version: . 2003-11-09 Simon Josefsson * ChangeLog: [no log message] 2003-11-09 Simon Josefsson * NEWS: Version 0.3.4. 2003-11-09 Simon Josefsson * lib/idna.c, lib/stringprep.c: Fix memory leak. 2003-11-07 Simon Josefsson * configure.ac: Remove libtool bug workaround. 2003-11-05 Simon Josefsson * doc/specifications/draft-josefsson-idn-test-vectors.xml: Fix. 2003-11-05 Simon Josefsson * doc/specifications/draft-josefsson-idn-test-vectors.xml: Fix date. 2003-11-05 Simon Josefsson * doc/specifications/draft-josefsson-idn-test-vectors.xml: Fix bad UTF-8. 2003-11-02 Simon Josefsson * doc/gendocs.sh: Mkdir HTML. 2003-11-02 Simon Josefsson * doc/reference/Makefile.am: Cleanup. 2003-11-01 Simon Josefsson * m4/Makefile.am: Dist gtk-doc.m4. 2003-11-01 Simon Josefsson * AUTHORS: Update expiry date on PGP key. 2003-11-01 Simon Josefsson * m4/.cvsignore: [no log message] 2003-11-01 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2003-11-01 Simon Josefsson * doc/reference/libidn-docs.sgml, doc/reference/libidn-docs.tmpl: Rename. 2003-11-01 Simon Josefsson * doc/reference/Makefile.am: Use my old cleaned up Makefile. 2003-11-01 Simon Josefsson * doc/reference/Makefile.am: Don't break on first 'make'. 2003-11-01 Simon Josefsson * doc/reference/Makefile.am: Make 'dist' work. 2003-11-01 Simon Josefsson * reference/.cvsignore, reference/Makefile.am, reference/libidn-docs.tmpl: Remove (replaced by doc/reference/). 2003-11-01 Simon Josefsson * doc/reference/libidn-docs.sgml: Add. 2003-11-01 Simon Josefsson * doc/reference/.cvsignore: [no log message] 2003-11-01 Simon Josefsson * doc/reference/Makefile.am: Add, based on GTK-DOC example Makefile.am. 2003-11-01 Simon Josefsson * doc/Makefile.am: Add reference/. 2003-11-01 Simon Josefsson * Makefile.am: Remove GTK-DOC subdir reference/ (moved to doc/). 2003-11-01 Simon Josefsson * configure.ac: Build GTK-DOC Makefile in doc/reference instead of reference/. 2003-11-01 Simon Josefsson * configure.ac: Use GTK_DOC_CHECK macro for gtk-doc checks. 2003-11-01 Simon Josefsson * m4/gtk-doc.m4: Add. 2003-11-01 Simon Josefsson * Makefile.am: Use GTK-DOC conditional. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: Rebuild Makefile after rebuilding Makefile.gdoc. 2003-11-01 Simon Josefsson * doc/Makefile.am: Set GDOC_MAN_EXTRA_ARGS. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: Add GDOC_TEXI_EXTRA_ARGS, GDOC_MAN_EXTRA_ARGS. 2003-11-01 Simon Josefsson * doc/Makefile.am: GDOC framework cleanup. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: Create texinfo for whole sources files too. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: Add -man parameters (move to Makefile.am?). 2003-11-01 Simon Josefsson * autogen.sh: Just touch doc/Makefile.gdoc. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: Mark Makefile.gdoc as BUILT_SOURCES. 2003-11-01 Simon Josefsson * autogen.sh: Bootstrap doc/Makefile.gdoc. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: (Makefile.gdoc): Depend on ../configure for bootstrapping. 2003-11-01 Simon Josefsson * doc/.cvsignore: [no log message] 2003-11-01 Simon Josefsson * doc/.cvsignore: [no log message] 2003-11-01 Simon Josefsson * doc/man/.cvsignore, doc/man/Makefile.am: Remove. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: Mkdir. 2003-11-01 Simon Josefsson * doc/Makefile.am: Update docbook HTMLs. 2003-11-01 Simon Josefsson * doc/libidn.texi: Use gdoc @include's. 2003-11-01 Simon Josefsson * doc/Makefile.am: Don't build in man/. Build idn.1 man page here. Move man page dist targets from man/. Use Makefile.gdoci to generate man pages and texinfo. 2003-11-01 Simon Josefsson * doc/Makefile.gdoci: Add, initial version. 2003-11-01 Simon Josefsson * configure.ac: Don't generate doc/man/Makefile. 2003-10-31 Simon Josefsson * doc/libidn.texi: Move unicode utility functions from stringprep to own chapter. Replace API documentation with @include'd GDOC generated version. 2003-10-31 Simon Josefsson * doc/Makefile.am: Generate more API manuals with gdoc. Replace phony libidn-db.html with real targets. Update libidn-db.html files. 2003-10-31 Simon Josefsson * doc/.cvsignore, doc/html/.cvsignore: [no log message] 2003-10-31 Simon Josefsson * doc/gdoc: Don't use @code for @deftypefun function name. 2003-10-31 Simon Josefsson * lib/punycode.c: (punycode_encode): Rename parameter to match punycode.h (and more importantly, to make gdoc function properly). 2003-10-31 Simon Josefsson * lib/nfkc.c: Doc fixes. 2003-10-31 Simon Josefsson * doc/gdoc: (dump_function): Handle parameters that look like 'char *foo[]'. 2003-10-31 Simon Josefsson * doc/Makefile.am: Fix rule expansions. 2003-10-31 Simon Josefsson * doc/Makefile.am: Dist gdoc and generated API texi's. Generate API doc. Fix dependencies. 2003-10-31 Simon Josefsson * doc/gdoc: Sync from GSSLib. 2003-10-31 Simon Josefsson * README-alpha: Mention more tools. 2003-10-31 Simon Josefsson * NEWS: Add. 2003-10-31 Simon Josefsson * Makefile.maint: Fix doc generating commands. 2003-10-31 Simon Josefsson * doc/gendocs.sh: Fix HTML dir move. 2003-10-31 Simon Josefsson * doc/gendocs.sh: Fix outdir rm. 2003-10-31 Simon Josefsson * doc/gendocs.sh: Fix outdir rm. 2003-10-31 Simon Josefsson * doc/gendocs.sh: Don't remove $outdir (might contain CVS/). 2003-10-31 Simon Josefsson * doc/gendocs.sh, doc/gendocs_template: TAR fixes. Add DocBook/Doxygen/GTK-DOC. 2003-10-31 Simon Josefsson * doc/gendocs.sh, doc/gendocs_template: Add (taken from Texinfo CVS). 2003-10-31 Simon Josefsson * doc/.cvsignore, doc/html/.cvsignore: [no log message] 2003-10-31 Simon Josefsson * doc/Makefile.am: Add docbook targets. 2003-10-31 Simon Josefsson * configure.ac: Look for docbook tools. 2003-10-29 Simon Josefsson * Makefile.am: Dist libc/getaddrinfo-idn.txt. 2003-10-29 Simon Josefsson * configure.ac: Add AC_CONFIG_AUX_DIR(.) for broken CVS libtoolize. 2003-10-29 Simon Josefsson * doc/specifications/draft-ietf-sasl-saslprep-04.txt: Add. 2003-10-28 Simon Josefsson * doc/specifications/draft-ietf-ldapbis-strprep-02.txt: Add. 2003-10-28 Simon Josefsson * doc/specifications/draft-costello-rfc3492bis-01.txt: Add. 2003-10-24 Simon Josefsson * doc/specifications/draft-ietf-ips-iscsi-string-prep-06.txt: Add. 2003-10-24 Simon Josefsson * doc/specifications/IDNstatement.txt, doc/specifications/draft-hoffman-rfc3490bis-01.txt: Add. 2003-10-24 Simon Josefsson * THANKS: Fix. 2003-10-19 Simon Josefsson * contrib/idn-python/README: Add. 2003-10-19 Simon Josefsson * contrib/README: Fix. 2003-10-19 Simon Josefsson * lib/gen-stringprep-tables.pl: Add warning in comment. 2003-10-19 Simon Josefsson * libc/getaddrinfo-idn.txt: Character set fixes. 2003-10-19 Simon Josefsson * libc/getaddrinfo-idn.txt: Fix. 2003-10-19 Simon Josefsson * NEWS, configure.ac: Bump versions. 2003-10-18 Simon Josefsson * lib/stringprep.c: Add comment. 2003-10-18 Simon Josefsson * doc/libidn.texi: Fix. 2003-10-18 Simon Josefsson * .prev-version: . 2003-10-18 Simon Josefsson * ChangeLog: [no log message] 2003-10-18 Simon Josefsson * NEWS: Version 0.3.3. 2003-10-18 Simon Josefsson * NEWS: Add. 2003-10-18 Simon Josefsson * NEWS: Add. 2003-10-18 Simon Josefsson * src/Makefile.am: Revert to old elisp automake idiom. 2003-10-17 Simon Josefsson * NEWS: Add. 2003-10-17 Simon Josefsson * lib/stringprep.h.in: (struct Stringprep_table, struct Stringprep_profiles): Use 'const'. (stringprep_4i, stringprep_4zi, stringprep, stringprep_profile): Likewise. 2003-10-17 Simon Josefsson * lib/stringprep.c: (stringprep_find_character_in_table): Mark parameter as 'const'. (stringprep_find_string_in_table): Likewise. (stringprep_apply_table_to_string): Likewise. (stringprep_4i, stringprep_4zi_1, stringprep_4zi, stringprep): Likewise. 2003-10-17 Simon Josefsson * lib/stringprep.c: (stringprep_profile): Fix warning. 2003-10-17 Simon Josefsson * tests/tst_idna.c, tests/tst_punycode.c: Fix warnings. 2003-10-17 Simon Josefsson * tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_punycode.c, tests/tst_stringprep.c: Indent. 2003-10-17 Simon Josefsson * lib/stringprep.c: Remove stringprep_generic documentation. 2003-10-17 Simon Josefsson * doc/libidn.texi: Remove stringprep_generic. 2003-10-17 Simon Josefsson * lib/gen-stringprep-tables.pl: Mark table elements as 'const'. 2003-10-17 Simon Josefsson * lib/stringprep.c: (stringprep_apply_table_to_string): Remove 'name' parameter. (stringprep_4i): Likewise. 2003-10-17 Simon Josefsson * lib/profiles.c: (stringprep_profiles): Remove "generic". Indent. 2003-10-17 Simon Josefsson * lib/stringprep.h.in: (struct Stringprep_table): Remove 'name'. (stringprep_profiles, stringprep_rfc3454_A_1,stringprep_rfc3454_B_1) (stringprep_rfc3454_B_2, stringprep_rfc3454_B_3) (stringprep_rfc3454_C_1_1, stringprep_rfc3454_C_1_2) (stringprep_rfc3454_C_2_1, stringprep_rfc3454_C_2_2) (stringprep_rfc3454_C_3, stringprep_rfc3454_C_4) (stringprep_rfc3454_C_5, stringprep_rfc3454_C_6) (stringprep_rfc3454_C_7, stringprep_rfc3454_C_8) (stringprep_rfc3454_C_9, stringprep_rfc3454_D_1) (stringprep_rfc3454_D_2) (stringprep_nameprep) (stringprep_saslprep, stringprep_plain,stringprep_trace) (stringprep_kerberos5) (stringprep_xmpp_nodeprep, stringprep_xmpp_resourceprep) (stringprep_xmpp_nodeprep_prohibit) (stringprep_iscsi): Mark as 'const'. (stringprep_generic, stringprep_generic): Remove. 2003-10-17 Simon Josefsson * lib/punycode.h, lib/stringprep.h.in, tests/tst_stringprep.c: Indent. 2003-10-17 Simon Josefsson * lib/stringprep.c: Fix memory leak. 2003-10-16 Simon Josefsson * doc/gdoc: Fix #include for man pages. 2003-10-16 Simon Josefsson * doc/libidn.texi: Fix. 2003-10-16 Simon Josefsson * doc/libidn.texi: Sync 'idn -h'. 2003-10-16 Simon Josefsson * doc/libidn.texi: Fix. 2003-10-16 Simon Josefsson * lib/gen-stringprep-tables.pl, lib/idna.c, lib/nfkc.c, lib/profiles.c, lib/punycode.c, lib/stringprep.c, lib/toutf8.c, lib/version.c, src/idn.c, tests/tst_idna.c, tests/tst_idna2.c, tests/tst_nfkc.c, tests/tst_stringprep.c: Include cleanup. We assume C89, use <...> for headers we use, and use "..." for headers we implement. 2003-10-16 Simon Josefsson * doc/libidn.texi: Add. 2003-10-16 Simon Josefsson * src/Makefile.am: Fix gengetopt building. 2003-10-16 Simon Josefsson * THANKS: Add. 2003-10-16 Simon Josefsson * src/idn.ggo.in: Use less negations for --quiet, reported by Oden Eriksson . 2003-10-16 Simon Josefsson * src/Makefile.am: Fix gengetopt built source files. Use new automake Emacs Lisp targets. 2003-10-16 Simon Josefsson * doc/libidn.texi: Use current version number in examples. 2003-10-16 Simon Josefsson * configure.ac: Update so version. 2003-10-16 Simon Josefsson * NEWS: Add. 2003-10-16 Simon Josefsson * lib/punycode.h: Include parameter names in prototypes, for GTK-DOC. 2003-10-16 Simon Josefsson * lib/stringprep.c: Doc fix. 2003-10-16 Simon Josefsson * doc/libidn.texi: Fix typo. 2003-10-16 Simon Josefsson * tests/tst_idna.c, tests/tst_punycode.c: Fix. 2003-10-16 Simon Josefsson * lib/internal.h: Removed. 2003-10-16 Simon Josefsson * src/idn.c, tests/tst_nfkc.c, tests/tst_stringprep.c: Make #include's explicit. 2003-10-16 Simon Josefsson * tests/tst_idna.c, tests/tst_idna2.c, tests/tst_punycode.c: Make #include's explicit. Fix warnings. 2003-10-16 Simon Josefsson * lib/Makefile.am: Remove internal.h. 2003-10-16 Simon Josefsson * lib/stringprep.c: Doc fix. 2003-10-16 Simon Josefsson * lib/profiles.c, lib/stringprep.c, lib/toutf8.c, lib/version.c: Make #include's explicit. 2003-10-16 Simon Josefsson * lib/nfkc.c: Make #include's explicit. 2003-10-16 Simon Josefsson * lib/idna.c: Fix. 2003-10-16 Simon Josefsson * lib/idna.c: Make #include's explicit. 2003-10-16 Simon Josefsson * lib/punycode.h: Fix typo. 2003-10-16 Simon Josefsson * lib/punycode.c: Sync with latest draft, but change return types to 'int' to be backwards compatible. 2003-10-16 Simon Josefsson * lib/punycode.h: Sync with latest draft, but change return types to 'int' to be backwards compatible. 2003-10-16 Simon Josefsson * configure.ac, lib/internal.h: Remove DMALLOC stuff. 2003-10-16 Simon Josefsson * lib/stringprep.c: Fix warnings. 2003-10-16 Simon Josefsson * doc/libidn.texi: Typo. 2003-10-16 Simon Josefsson * tests/tst_stringprep.c: Simplify debug prints. 2003-10-16 Simon Josefsson * NEWS: Add. 2003-10-16 Simon Josefsson * lib/idna.c: (idna_to_unicode_internal): Handle reallocating larger utf8in after stringprep error STRINGPREP_TOO_SMALL_BUFFER. (idna_to_unicode_44i): Let new logic in idna_to_unicode_internal() replace BUFSIZ alloc. 2003-10-16 Simon Josefsson * lib/stringprep.c: (stringprep_profile): Loop around stringprep return STRINGPREP_TOO_SMALL_BUFFER and increase buffer size. 2003-10-16 Simon Josefsson * lib/stringprep.c: (stringprep): Check return value from stringprep_ucs4_to_utf8. Don't use goto. 2003-10-16 Simon Josefsson * lib/stringprep.c: (stringprep): Loop around stringprep_4i error STRINGPREP_TOO_SMALL_BUFFER and increase buffer size. (stringprep_apply_table_to_string): Don't dereference possibly unallocated memory just to do pointer arithmetic. 2003-10-16 Simon Josefsson * lib/nfkc.c: Check malloc return value. 2003-10-15 Simon Josefsson * lib/nfkc.c: Check malloc return code. 2003-10-15 Simon Josefsson * NEWS: Add. 2003-10-15 Simon Josefsson * doc/libidn.texi: Doc fox. Add stringprep_4i and stringprep_4zi. 2003-10-15 Simon Josefsson * lib/stringprep.c: Doc fix. 2003-10-15 Simon Josefsson * doc/man/Makefile.am: Add stringprep_4i.3, stringprep_4zi.3. 2003-10-15 Simon Josefsson * lib/stringprep.c: Doc fix. 2003-10-15 Simon Josefsson * lib/stringprep.h.in: (stringprep_4i, stringprep_4zi): Add. 2003-10-15 Simon Josefsson * lib/stringprep.c: (stringprep1): Don't zero terminate. Rename to stringprep_4i and export it. (stringprep_4zi_1): Add. Calls stringprep_4i, then zero terminate. (stringprep_4zi): Add. New API. (stringprep): Use stringprep_4zi_1. 2003-10-15 Simon Josefsson * lib/stringprep.c: Fix typo. 2003-10-15 Simon Josefsson * lib/stringprep.c: (stringprep): Split core part into stringprep1. (stringprep1): New, simplified version of core part. 2003-10-15 Simon Josefsson * NEWS: Fix. 2003-10-15 Simon Josefsson * contrib/web/idn.php: Remove generic. Add trace. 2003-10-15 Simon Josefsson * src/idn.c: Print UCS-4 instead of UTF-8 in debug output for --stringprep. 2003-10-15 Simon Josefsson * NEWS: Add. 2003-10-15 Simon Josefsson * src/idn.c: Fix UCS-4 output in --stringprep. Print debug output even with --idna-to-ascii. Fix error message. 2003-10-12 Simon Josefsson * libc/getaddrinfo-idn.txt: Clarify alternative approaches. 2003-10-11 Simon Josefsson * libc/getaddrinfo-idn.txt: Fix. 2003-10-11 Simon Josefsson * libc/getaddrinfo-idn.txt: Add. 2003-10-10 Simon Josefsson * configure.ac: Revert typo. 2003-10-10 Simon Josefsson * configure.ac: Fix so version comment (matches libtool manual). 2003-10-09 Simon Josefsson * FAQ: Fix. 2003-10-09 Simon Josefsson * NEWS: Add. 2003-10-09 Simon Josefsson * src/idn.ggo.in: Remove 'generic' (should not be exposed). Add 'trace'. 2003-10-09 Simon Josefsson * doc/specifications/draft-hoffman-rfc3454bis-01.txt: Add. 2003-10-07 Simon Josefsson * NEWS, configure.ac: Bump versions. 2003-10-07 Simon Josefsson * Makefile.maint: Fix doxygen generation. 2003-10-07 Simon Josefsson * .prev-version: . 2003-10-07 Simon Josefsson * ChangeLog: [no log message] 2003-10-07 Simon Josefsson * NEWS: Version 0.3.2. 2003-10-07 Simon Josefsson * Makefile.maint: Remove --rsyncable for now, Debian (stable) gzip do not support it. 2003-10-07 Simon Josefsson * GNUmakefile: TAR_OPTION crashes tar in Debian, comment out for now. 2003-10-07 Simon Josefsson * NEWS: Add. 2003-10-07 Simon Josefsson * lib/nfkc.c: Doc fix. 2003-10-07 Simon Josefsson * m4/Makefile.am, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: Add. 2003-10-07 Simon Josefsson * doc/specifications/draft-hoffman-rfc3490bis-00.txt, doc/specifications/draft-hoffman-rfc3491bis-00.txt: Add. 2003-10-06 Simon Josefsson * doc/specifications/draft-costello-rfc3492bis-00.txt, doc/specifications/draft-hoffman-rfc3454bis-00.txt: Add. 2003-10-06 Simon Josefsson * lib/stringprep.c, lib/stringprep.h.in: (stringprep_profile): Mark 'in' as 'const'. 2003-10-02 Simon Josefsson * lib/profiles.c: Fix comment. 2003-10-02 Simon Josefsson * doc/libidn.texi: Fix. 2003-10-02 Simon Josefsson * NEWS: Add. 2003-10-02 Simon Josefsson * lib/profiles.c, lib/stringprep.h.in: Add trace profile (SASL ANONYMOS). 2003-10-02 Simon Josefsson * NEWS, configure.ac: Bump versions. 2003-10-02 Simon Josefsson * doc/libidn.texi: Cosmetic fixes. 2003-10-02 Simon Josefsson * Makefile.maint: Fix. 2003-10-02 Simon Josefsson * .prev-version: . 2003-10-02 Simon Josefsson * announce-gen: Perl 5.8.1 fix. 2003-10-02 Simon Josefsson * ChangeLog: [no log message] 2003-10-02 Simon Josefsson * NEWS: Version 0.3.1. 2003-10-02 Simon Josefsson * lib/gen-unicode-tables.pl, lib/nfkc.c: Fix NFKC, from Noah Levitt via bugzilla.gnome.org bug 123421. 2003-09-28 Simon Josefsson * doc/libidn.texi: Fix. 2003-09-28 Simon Josefsson * doc/libidn.texi: Add. 2003-09-28 Simon Josefsson * THANKS: Add. 2003-09-28 Simon Josefsson * tests/tst_idna2.c: Indent. 2003-09-28 Simon Josefsson * lib/Makefile.am: Fix. 2003-09-28 Simon Josefsson * Makefile.am: Fix indent target. 2003-09-28 Simon Josefsson * src/Makefile.am, tests/Makefile.am: Add indent rule. 2003-09-28 Simon Josefsson * lib/idna.c, lib/nfkc.c, lib/punycode.h: Indent. 2003-09-28 Simon Josefsson * lib/Makefile.am: Fix. Add indent target. 2003-09-26 Simon Josefsson * lib/nfkc.c: Fix Hangul patch. 2003-09-25 Simon Josefsson * tests/tst_idna2.c: Fix typo. 2003-09-25 Simon Josefsson * NEWS: Add. 2003-09-25 Simon Josefsson * doc/specifications/BidiMirroring-3.2.0.txt, lib/Makefile.am, lib/gen-unicode-tables.pl, lib/nfkc.c: Sync with GLIB for Unicode stuff. 2003-09-25 Simon Josefsson * lib/punycode.h: Fix typo. 2003-09-25 Simon Josefsson * tests/tst_idna2.c: Update test vectors. 2003-09-25 Simon Josefsson * src/idn.c: Fix debug messages. 2003-09-25 Simon Josefsson * NEWS: Add. 2003-09-25 Simon Josefsson * lib/idna.c: (DOTP): New. (idna_to_unicode_4z4z): Use it. (idna_to_ascii_4z): Use it. Make root label handling explicit. 2003-09-25 Simon Josefsson * THANKS: Add. 2003-09-25 Simon Josefsson * lib/nfkc.c: (decompose_hangul, combine_hangul): New. (combine, _g_utf8_normalize_wc): Use them. Adds support for algorithmic composition of Hangul Syllables, adapted from a patch written by Noah Levitt for GLIB, discussed in and available from . 2003-09-25 Simon Josefsson * tests/tst_idna2.c: Fix. 2003-09-25 Simon Josefsson * tests/Makefile.am, tests/tst_idna2.c: Add. 2003-09-25 Simon Josefsson * tests/.cvsignore: [no log message] 2003-09-25 Simon Josefsson * lib/idna.c: (idna_to_ascii_4z): Output "" instead of "." on input "". (Some religions claim "" should fail though.) 2003-09-23 Simon Josefsson * NEWS: Add. 2003-09-23 Simon Josefsson * doc/libidn.texi: Doc fix. 2003-09-23 Simon Josefsson * src/punycode.el: (punycode-shutdown): New. 2003-09-23 Simon Josefsson * src/idna.el: (idna-to-ascii-parameters, idna-to-unicode-parameters): Add --usestd3asciirules. (idna-shutdown): New. 2003-09-23 Simon Josefsson * NEWS, configure.ac: Bump versions. 2003-09-23 Simon Josefsson * Makefile.maint: Fix. 2003-09-23 Simon Josefsson * Makefile.maint: Fix. 2003-09-23 Simon Josefsson * .prev-version: . 2003-09-23 Simon Josefsson * ChangeLog: [no log message] 2003-09-23 Simon Josefsson * NEWS: Version 0.3.0. 2003-09-23 Simon Josefsson * libc/README: Fix. 2003-09-23 Simon Josefsson * doc/specifications/draft-ietf-sasl-saslprep-03.txt: Add. 2003-09-23 Simon Josefsson * libc/Makefile, libc/README: Fix. 2003-09-22 Simon Josefsson * NEWS: Add. 2003-09-22 Simon Josefsson * lib/profiles.c: (stringprep_saslprep): Prohibit inappropriate for canonical representation characters. 2003-09-14 Simon Josefsson * Makefile.am: Dist libc/Banner. 2003-09-14 Simon Josefsson * libc/README: Create idna.h without dependency on idn-int.h. 2003-09-14 Simon Josefsson * tests/tst_stringprep.c: Fix memory leak. 2003-09-14 Simon Josefsson * src/idn.c: Fix memory leaks. 2003-09-14 Simon Josefsson * src/idn.c: Fix greeting message. 2003-09-14 Simon Josefsson * libc/README: Copy Banner. 2003-09-14 Simon Josefsson * libc/Banner: Add. 2003-09-12 Simon Josefsson * libc/README: Fix. 2003-09-12 Simon Josefsson * lib/punycode.c: Cast. 2003-09-12 Simon Josefsson * lib/internal.h: Fix. 2003-09-12 Simon Josefsson * lib/internal.h: Simplify #include mess. 2003-09-12 Simon Josefsson * configure.ac: Remove cruft. 2003-09-12 Simon Josefsson * libc/README: Fix. 2003-09-12 Simon Josefsson * reference/Makefile.am: Remove dummy.c. 2003-09-12 Simon Josefsson * lib/stringprep.c: Doc fix. 2003-09-12 Simon Josefsson * doc/libidn.texi, lib/punycode.c, lib/stringprep.c: Doc fix. 2003-09-12 Simon Josefsson * lib/idna.c: Doc fix. 2003-09-12 Simon Josefsson * lib/idna.c: Doc fix. 2003-09-12 Simon Josefsson * lib/punycode.c, lib/stringprep.c: Doc fix. 2003-09-12 Simon Josefsson * lib/punycode.c: Doc fix. 2003-09-12 Simon Josefsson * lib/punycode.h: Fix RFC compatibility. 2003-09-12 Simon Josefsson * lib/punycode.h: Typedef Punycode_status. Use 'int' instead of 'enum' for return codes. 2003-09-12 Simon Josefsson * lib/punycode.c: Use 'int' instead of 'enum' for return code. 2003-09-12 Simon Josefsson * configure.ac: Bump versions. 2003-09-12 Simon Josefsson * lib/profiles.c, lib/stringprep.h.in: Rename stringprep_generic_* to stringprep_rfc3454_*. 2003-09-12 Simon Josefsson * lib/.cvsignore: [no log message] 2003-09-12 Simon Josefsson * lib/Makefile.am: Rename stringprep_generic.c to rfc3454.c. Add to BUILT_SOURCES. 2003-09-12 Simon Josefsson * lib/gen-stringprep-tables.pl: Write to rfc3454.c. Rename variables to stringprep_rfc3454_* from stringprep_generic_*. 2003-09-12 Simon Josefsson * reference/dummy.c: Remove, merged into ../lib/*.c. 2003-09-12 Simon Josefsson * lib/punycode.c: Doc fix. 2003-09-12 Simon Josefsson * lib/idna.c: Fix. 2003-09-12 Simon Josefsson * doc/man/Makefile.am: Fix update-api. 2003-09-12 Simon Josefsson * lib/idna.c, lib/stringprep.c: Doc fix. 2003-09-12 Simon Josefsson * lib/stringprep.h.in: Indent. 2003-09-12 Simon Josefsson * lib/stringprep.c: Use 'int' instead of 'enum's. 2003-09-12 Simon Josefsson * lib/stringprep.h.in: Typedef Stringprep_rc, Stringprep_profile_flags, and Stringprep_profile_steps. Use 'int' instead of 'enum's (i.e., revert 0.2.3 changes). 2003-09-12 Simon Josefsson * NEWS: Add. 2003-09-12 Simon Josefsson * lib/Makefile.am, lib/obsolete.c: Remove obsolete.c. 2003-09-12 Simon Josefsson * lib/Makefile.am, lib/idna.h, lib/stringprep_generic.h, lib/stringprep_iscsi.h, lib/stringprep_kerberos5.h, lib/stringprep_nameprep.h, lib/stringprep_plain.h, lib/stringprep_xmpp.h: Remove obsolete headers. 2003-09-12 Simon Josefsson * lib/idna.c, lib/obsolete.c: Use int instead of enum's. 2003-09-12 Simon Josefsson * lib/idna.h: Typedef Idna_rc and Idna_flags. Use int instead of enum's. 2003-09-12 Simon Josefsson * reference/Makefile.am: Fix path to sources. Fix HIGNORE. 2003-09-12 Simon Josefsson * libc/README: Workaround -I problem. 2003-09-12 Simon Josefsson * libc/libc.patch: Against glibc 2.3.2. 2003-09-12 Simon Josefsson * NEWS: Add. 2003-09-12 Simon Josefsson * m4/Makefile.am, m4/memset.m4, m4/onceonly_2_57.m4, m4/strdup.m4: Remove unused m4's. 2003-09-12 Simon Josefsson * src/getopt.c, src/getopt.h, src/getopt1.c: Add (from gl/). 2003-09-12 Simon Josefsson * lib/idna.c, lib/toutf8.c: Don't use strdup. 2003-09-12 Simon Josefsson * Makefile.am, gl/.cvsignore, gl/Makefile.am, gl/getopt.c, gl/getopt.h, gl/getopt1.c, gl/m4/.cvsignore, gl/m4/Makefile.am, gl/m4/memset.m4, gl/m4/onceonly_2_57.m4, gl/m4/strdup.m4, gl/memset.c, gl/strdup.c, src/Makefile.am: Remove gl/. 2003-09-12 Simon Josefsson * tests/Makefile.am: Fix. 2003-09-12 Simon Josefsson * configure.ac: Remove checks for memset and strdup; we assume C89, so memset exists, and we no longer use strdup. Remove gl/. 2003-09-12 Simon Josefsson * doc/libidn.texi: Ported to Mac OS X / Darwin. 2003-09-12 Simon Josefsson * gl/.cvsignore: [no log message] 2003-09-12 Simon Josefsson * gl/Makefile.am: Use libtool. 2003-09-12 Simon Josefsson * examples/Makefile.am, src/Makefile.am, tests/Makefile.am: Make LDADD libtool friendly. 2003-09-12 Simon Josefsson * NEWS: Add. 2003-09-12 Simon Josefsson * NEWS, configure.ac, doc/Makefile.am, doc/gdoc, doc/man/.cvsignore, doc/man/Makefile.am: Build man pages. 2003-09-12 Simon Josefsson * doc/specifications/idna-ace-prefix.txt, idna-ace-prefix.txt: Move. 2003-09-12 Simon Josefsson * libc/README: Fix. 2003-09-12 Simon Josefsson * THANKS: Add. 2003-09-12 Simon Josefsson * libc/Versions: Typo. 2003-09-12 Simon Josefsson * lib/internal.h: [_LIBC]: Define ICONV_CONST. 2003-09-12 Simon Josefsson * libc/getaddrinfo.c: Use modern API. 2003-09-12 Simon Josefsson * libc/Versions: Export modern API. 2003-09-12 Simon Josefsson * libc/README: Update. 2003-09-12 Simon Josefsson * libc/getaddrinfo.c: GLIBC 2.3.2 sync. 2003-09-02 Simon Josefsson * libc/getaddrinfo.c, libc/libc.patch: Revert. 2003-08-26 Simon Josefsson * AUTHORS: Update key. 2003-08-26 Simon Josefsson * examples/Makefile.am, examples/README: Add examples/README. 2003-08-26 Simon Josefsson * contrib/web/idn.php: Fixes. 2003-08-25 Simon Josefsson * Makefile.am: Fix cvs2cl parameters. 2003-08-25 Simon Josefsson * Makefile.am, gl/Makefile.am, lib/Makefile.am: Use $() instead of @@. 2003-08-25 Simon Josefsson * Makefile.maint: Do some tests that work. 2003-08-25 Simon Josefsson * Makefile.cfg: Fix URL. 2003-08-25 Simon Josefsson * NEWS, configure.ac: Bump versions. 2003-08-25 Simon Josefsson * Makefile.am: Fix cvs2cl parameters. 2003-08-25 Simon Josefsson * Makefile.maint: Ignore errors on www update. 2003-08-25 Simon Josefsson * contrib/doxygen/Doxyfile.in: Update paths. 2003-08-25 Simon Josefsson * .prev-version: . 2003-08-25 Simon Josefsson * announce-gen: Revert. 2003-08-25 Simon Josefsson * Makefile.maint: Fix. 2003-08-25 Simon Josefsson * ChangeLog: [no log message] 2003-08-25 Simon Josefsson * NEWS: Version 0.2.3. 2003-08-25 Simon Josefsson * .cvsignore: [no log message] 2003-08-25 Simon Josefsson * .cvscopying: Add tabs, for Makefile.maint check. 2003-08-25 Simon Josefsson * Makefile.am: Replace release target with Makefile.maint etc. 2003-08-25 Simon Josefsson * .prev-version, GNUmakefile, Makefile.cfg, Makefile.maint, announce-gen: Add. 2003-08-25 Simon Josefsson * examples/example3.c: Doc fix. 2003-08-25 Simon Josefsson * NEWS, THANKS: Add. 2003-08-25 Simon Josefsson * examples/example4.c: Really call ToUnicode instead of ToASCII. Reported by Trond Haugen . 2003-08-21 Simon Josefsson * doc/libidn.texi: Add port. 2003-08-20 Simon Josefsson * gl/Makefile.am: Dist getopt.h. 2003-08-20 Simon Josefsson * src/Makefile.am: Link with gl stuff. 2003-08-20 Simon Josefsson * lib/toutf8.c: Fix warning message. 2003-08-20 Simon Josefsson * configure.ac: Group portability stuff together. 2003-08-20 Simon Josefsson * src/Makefile.am, tests/Makefile.am: Fix -I paths. 2003-08-20 Simon Josefsson * lib/Makefile.am: Distcheck fixes. 2003-08-20 Simon Josefsson * examples/Makefile.am: Fix paths. 2003-08-20 Simon Josefsson * reference/Makefile.am: Fix paths (for distcheck). 2003-08-20 Simon Josefsson * Makefile.am: Fix directory build order, for gtk-doc. 2003-08-20 Simon Josefsson * reference/Makefile.am: Update paths to source code. 2003-08-20 Simon Josefsson * lib/Makefile.am, lib/idna.c, lib/obsolete.c: Move obsolete functions into separate file. 2003-08-20 Simon Josefsson * lib/Makefile.am: Fixes. 2003-08-20 Simon Josefsson * Makefile.am: Build doc after src, for help2man on idn. 2003-08-20 Simon Josefsson * .cvsignore: [no log message] 2003-08-20 Simon Josefsson * lib/Makefile.am: Add EXTRA_DISTs. 2003-08-20 Simon Josefsson * Makefile.am: Add gl, lib, src, tests and examples to SUBDIRS. Add gl/m4 to ACLOCAL_AMFLAGS. Remove rules that are moved into lib/, src/, tests/ and examples/. 2003-08-20 Simon Josefsson * configure.ac: Split up files into sub-directories. 2003-08-20 Simon Josefsson * gdoc: Move gdoc to doc/. 2003-08-20 Simon Josefsson * doc/specifications/.cvsignore, gl/.cvsignore, gl/m4/.cvsignore, lib/.cvsignore, src/.cvsignore, tests/.cvsignore: [no log message] 2003-08-20 Simon Josefsson * examples/.cvsignore, lib/.cvsignore: [no log message] 2003-08-20 Simon Josefsson * CaseFolding-3.2.0.txt, CompositionExclusions-3.2.0.txt, LineBreak-3.2.0.txt, SpecialCasing-3.2.0.txt, UnicodeData-3.2.0.txt, doc/Makefile.am, doc/gdoc, doc/specifications/CaseFolding-3.2.0.txt, doc/specifications/CompositionExclusions-3.2.0.txt, doc/specifications/LineBreak-3.2.0.txt, doc/specifications/Makefile.am, doc/specifications/SpecialCasing-3.2.0.txt, doc/specifications/UnicodeData-3.2.0.txt, doc/specifications/draft-ietf-ips-iscsi-string-prep-04.txt, doc/specifications/draft-ietf-ips-iscsi-string-prep-05.txt, doc/specifications/draft-ietf-krb-wg-utf8-profile-01.txt, doc/specifications/draft-ietf-ldapbis-dn-11.txt, doc/specifications/draft-ietf-ldapbis-strprep-00.txt, doc/specifications/draft-ietf-ldapbis-strprep-01.txt, doc/specifications/draft-ietf-sasl-anon-00.txt, doc/specifications/draft-ietf-sasl-saslprep-00.txt, doc/specifications/draft-ietf-sasl-saslprep-01.txt, doc/specifications/draft-ietf-sasl-saslprep-02.txt, doc/specifications/draft-ietf-xmpp-nodeprep-01.txt, doc/specifications/draft-ietf-xmpp-nodeprep-02.txt, doc/specifications/draft-ietf-xmpp-nodeprep-03.txt, doc/specifications/draft-ietf-xmpp-resourceprep-01.txt, doc/specifications/draft-ietf-xmpp-resourceprep-02.txt, doc/specifications/draft-ietf-xmpp-resourceprep-03.txt, doc/specifications/draft-josefsson-idn-test-vectors-00.txt, doc/specifications/draft-josefsson-idn-test-vectors.xml, doc/specifications/draft-zeilenga-ldapbis-strmatch-02.txt, doc/specifications/draft-zeilenga-ldapbis-strprep-00.txt, doc/specifications/rfc3454.txt, doc/specifications/rfc3490.txt, doc/specifications/rfc3491.txt, doc/specifications/rfc3492.txt, draft-ietf-ips-iscsi-string-prep-04.txt, draft-ietf-ips-iscsi-string-prep-05.txt, draft-ietf-krb-wg-utf8-profile-01.txt, draft-ietf-ldapbis-dn-11.txt, draft-ietf-ldapbis-strprep-00.txt, draft-ietf-ldapbis-strprep-01.txt, draft-ietf-sasl-anon-00.txt, draft-ietf-sasl-saslprep-00.txt, draft-ietf-sasl-saslprep-01.txt, draft-ietf-sasl-saslprep-02.txt, draft-ietf-xmpp-nodeprep-01.txt, draft-ietf-xmpp-nodeprep-02.txt, draft-ietf-xmpp-nodeprep-03.txt, draft-ietf-xmpp-resourceprep-01.txt, draft-ietf-xmpp-resourceprep-02.txt, draft-ietf-xmpp-resourceprep-03.txt, draft-josefsson-idn-test-vectors-00.txt, draft-josefsson-idn-test-vectors.xml, draft-zeilenga-ldapbis-strmatch-02.txt, draft-zeilenga-ldapbis-strprep-00.txt, rfc3454.txt, rfc3490.txt, rfc3491.txt, rfc3492.txt: Move documentation and specifications into doc/ and doc/specifications/. 2003-08-20 Simon Josefsson * getopt.c, getopt.h, getopt1.c, gl/Makefile.am, gl/getopt.c, gl/getopt.h, gl/getopt1.c, gl/m4/Makefile.am, gl/m4/memset.m4, gl/m4/onceonly_2_57.m4, gl/m4/strdup.m4, gl/memset.c, gl/strdup.c, memset.c, strdup.c: Move portability utilities into gl/. 2003-08-20 Simon Josefsson * gen-stringprep-tables.pl, gen-unicode-tables.pl, idna.c, idna.h, internal.h, lib/Makefile.am, lib/gen-stringprep-tables.pl, lib/gen-unicode-tables.pl, lib/idna.c, lib/idna.h, lib/internal.h, lib/nfkc.c, lib/profiles.c, lib/punycode.c, lib/punycode.h, lib/stringprep.c, lib/stringprep.h.in, lib/stringprep_generic.h, lib/stringprep_iscsi.h, lib/stringprep_kerberos5.h, lib/stringprep_nameprep.h, lib/stringprep_plain.h, lib/stringprep_xmpp.h, lib/toutf8.c, lib/version.c, nfkc.c, profiles.c, punycode.c, punycode.h, stringprep.c, stringprep.h.in, stringprep_generic.h, stringprep_iscsi.h, stringprep_kerberos5.h, stringprep_nameprep.h, stringprep_plain.h, stringprep_xmpp.h, toutf8.c, version.c: Move library into lib/. 2003-08-20 Simon Josefsson * tests/Makefile.am, tests/tst_idna.c, tests/tst_nfkc.c, tests/tst_punycode.c, tests/tst_stringprep.c, tst_idna.c, tst_nfkc.c, tst_punycode.c, tst_stringprep.c: Move tests into tests/. 2003-08-20 Simon Josefsson * idn.c, idn.ggo.in, idna.el, punycode.el, src/Makefile.am, src/idn.c, src/idn.ggo.in, src/idna.el, src/punycode.el: Move applications into src/. 2003-08-20 Simon Josefsson * example.c, example2.c, example3.c, example4.c, examples/Makefile.am, examples/example.c, examples/example2.c, examples/example3.c, examples/example4.c: Move examples into examples/. 2003-08-13 Simon Josefsson * TODO: Add. 2003-08-13 Simon Josefsson * nfkc.c: Fix doc. 2003-08-13 Simon Josefsson * tst_idna.c: Remove unused function. 2003-08-13 Simon Josefsson * idn.c: Fix warnings. 2003-08-13 Simon Josefsson * configure.ac: Bump versions. 2003-08-13 Simon Josefsson * NEWS, doc/libidn.texi, reference/dummy.c: Add. 2003-08-13 Simon Josefsson * idna.c, idna.h: Use enum types where appropriate. 2003-08-13 Simon Josefsson * doc/libidn.texi: Doc fixes. 2003-08-13 Simon Josefsson * stringprep.h.in: Fix. 2003-08-13 Simon Josefsson * stringprep.c: Use enum/size_t/ssize_t where appropriate. Doc fix. 2003-08-13 Simon Josefsson * stringprep.h.in: Replace int with proper enum, where appropriate. 2003-08-13 Simon Josefsson * doc/libidn.texi: Typo. 2003-08-13 Simon Josefsson * doc/libidn.texi: Add FreeBSD 4.8. 2003-08-13 Simon Josefsson * ChangeLog: [no log message] 2003-08-13 Simon Josefsson * NEWS: Version 0.2.2. 2003-08-13 Simon Josefsson * NEWS: Fix. 2003-08-13 Simon Josefsson * Makefile.am: Fix release target. 2003-08-13 Simon Josefsson * Makefile.am: Fix release target. 2003-08-13 Simon Josefsson * NEWS, TODO: Add. 2003-08-13 Simon Josefsson * punycode.c: Typo. 2003-08-13 Simon Josefsson * punycode.h: Indent. 2003-08-13 Simon Josefsson * punycode.h: Revert to RFC code: use punycode_status. 2003-08-13 Simon Josefsson * punycode.c: Revert to RFC code: use punycode_uint and enum punycode_status. However, we do continue to use size_t to promote use of sizeof() by application writers. We return punycode_bad_input if a size_t value exceeds the largest punycode_uint, since the code presumably cannot handle that. If size_t is smaller than punycode_uint, it seems unlikely that an application could be able to pass a string that is longer than SIZE_MAX anyway, but should it happen the worst that occur is that the punycode code will only see the beginning of the string, which isn't unreasonable on a platform with a small SIZE_MAX. 2003-08-13 Simon Josefsson * punycode.h: Define and use punycode_uint. 2003-08-08 Simon Josefsson * toutf8.c: (stringprep_locale_charset): Improve docstring. 2003-08-01 Simon Josefsson * draft-ietf-ips-iscsi-string-prep-05.txt: Add. 2003-07-31 Simon Josefsson * Makefile.am: Replace gnudist with gnuftp. 2003-07-31 Simon Josefsson * NEWS, THANKS: Add. 2003-07-31 Simon Josefsson * idn.c: Encode -u output in locale charset, suggested by Adam M. Costello. 2003-07-11 Simon Josefsson * memset.c: Rewrite to get LGPL code. 2003-07-11 Simon Josefsson * strdup.c: Revert, to get LGPL code. 2003-07-11 Simon Josefsson * Makefile.am: Install but don't distribute idn-int.h. 2003-07-11 Simon Josefsson * m4/.cvsignore: [no log message] 2003-07-11 Simon Josefsson * Makefile.am, configure.ac, m4/Makefile.am: Dist m4's. 2003-07-11 Simon Josefsson * Makefile.am, configure.ac, m4/memset.m4, m4/onceonly_2_57.m4, m4/strdup.m4, strdup.c: Replace AC_REPLACE_OBJ with gnulib. 2003-07-11 Simon Josefsson * configure.ac: Bump versions. 2003-07-11 Simon Josefsson * NEWS: Add. 2003-07-11 Simon Josefsson * Makefile.am: Use BUILT_SOURCES for idn_cmd.* and idn-int.h, and don't include idn-int.h in the distribution. 2003-07-08 Simon Josefsson * THANKS: Add. 2003-07-08 Simon Josefsson * m4/ax_create_stdint_h.m4: Look in sys/types.h too, for cygwin. 2003-07-05 Simon Josefsson * ANNOUNCE, doc/libidn.texi: Don't use () when talking about the name of a function. 2003-07-04 Simon Josefsson * ChangeLog: [no log message] 2003-07-04 Simon Josefsson * NEWS: Version 0.2.1. 2003-07-04 Simon Josefsson * Makefile.am: Create idn_cmd.* in srcdir. 2003-07-04 Simon Josefsson * NEWS: Add. 2003-07-04 Simon Josefsson * configure.ac: Bump versions. 2003-07-04 Simon Josefsson * NEWS: Add. 2003-07-04 Simon Josefsson * idna.c: Fix last commit. 2003-07-04 Simon Josefsson * THANKS: Add. 2003-07-04 Simon Josefsson * idna.c: Handle empty labels, tiny patch based on suggestion by Marcos Sanz/Denic . 2003-07-02 Simon Josefsson * THANKS: Add. 2003-07-02 Simon Josefsson * Makefile.am: Ignore .cvs*. 2003-07-02 Simon Josefsson * Makefile.am: Add legal information to ChangeLog. 2003-07-02 Simon Josefsson * .cvscopying: Add. 2003-07-02 Simon Josefsson * THANKS: Add. 2003-07-02 Simon Josefsson * toutf8.c, tst_punycode.c: Indent. 2003-07-02 Simon Josefsson * toutf8.c: (stringprep_convert): Use ICONV_CONST. Tiny patch suggested by Robert Norris . 2003-07-02 Simon Josefsson * draft-ietf-ldapbis-dn-11.txt, draft-ietf-ldapbis-strprep-01.txt: Add. 2003-06-24 Simon Josefsson * README-alpha: Gengetopt 2.10 or later is required. 2003-06-24 Simon Josefsson * Makefile.am: Don't distclean idn_cmd.*, just maintainer-clean them. 2003-06-19 Simon Josefsson * ChangeLog: [no log message] 2003-06-19 Simon Josefsson * NEWS: Version 0.2.0. 2003-06-19 Simon Josefsson * Makefile.am: Distclean idn-int.h (really!). 2003-06-19 Simon Josefsson * Makefile.am: Install and distclean idn-int.h properly. 2003-06-19 Simon Josefsson * Makefile.am: Distclean idn-int.h. 2003-06-19 Simon Josefsson * Makefile.am: Remove idn-int.h. 2003-06-19 Simon Josefsson * doc/libidn.texi: Add woody armv4l. 2003-06-19 Simon Josefsson * configure.ac: Bump so version. 2003-06-19 Simon Josefsson * doc/libidn.texi: Tested on debian-sparc64. 2003-06-19 Simon Josefsson * reference/Makefile.am: Ignore idn-int.h. 2003-06-19 Simon Josefsson * Makefile.am: Build e.g. idn before doc/idn.1 is built. 2003-06-19 Simon Josefsson * doc/libidn.texi, punycode.c, punycode.h: GTK-DOC doesn't like enum return types. 2003-06-18 Simon Josefsson * NEWS: Add. 2003-06-18 Simon Josefsson * Makefile.am: Copy manual from right place. 2003-06-18 Simon Josefsson * THANKS: Add. 2003-06-18 Simon Josefsson * doc/.cvsignore: [no log message] 2003-06-18 Simon Josefsson * Makefile.am, tst_oidna.c: Remove obsolete test (we break backwards compatibility). 2003-06-18 Simon Josefsson * doc/libidn.texi: Fix. 2003-06-18 Simon Josefsson * idn.c, idna.c, nfkc.c, profiles.c, stringprep.c, toutf8.c, tst_idna.c, tst_oidna.c, tst_stringprep.c: Indent. 2003-06-18 Simon Josefsson * idn.c, tst_punycode.c: Fix typo. 2003-06-18 Simon Josefsson * Makefile.am, tst_opunycode.c, tst_ostringprep.c: Not needed (new API backwards compatible). 2003-06-18 Simon Josefsson * tst_punycode.c, tst_stringprep.c: Use uint32_t instead of unsigned long. 2003-06-18 Simon Josefsson * NEWS: Fix. 2003-06-18 Simon Josefsson * example2.c: Revert to RFC, but use uint32_t and size_t. 2003-06-18 Simon Josefsson * idna.h: Revert last change. 2003-06-18 Simon Josefsson * idna.c: Fixes. 2003-06-18 Simon Josefsson * idna.h: Remove old interfaces. 2003-06-18 Simon Josefsson * example3.c, example4.c, idn.c: Use modern API. 2003-06-18 Simon Josefsson * toutf8.c: Fix warnings. 2003-06-18 Simon Josefsson * idna.c: Use uint32_t instead of unsigned long. New functions idna_to_ascii_4i, idna_to_unicode_44i, idna_to_ascii_4z, idna_to_ascii_8z, idna_to_ascii_lz, idna_to_unicode_4z4z, idna_to_unicode_8z4z, idna_to_unicode_8z8z, idna_to_unicode_8zlz, idna_to_unicode_lzlz. 2003-06-18 Simon Josefsson * tst_idna.c, tst_oidna.c: Fix. 2003-06-18 Simon Josefsson * idna.h: Fix. 2003-06-18 Simon Josefsson * idna.h: Include stddef.h and idn-int.h. Add IDNA flags. Add new IDNA entry points. 2003-06-18 Simon Josefsson * NEWS: Add. 2003-06-18 Simon Josefsson * configure.ac: Bump version. 2003-06-18 Simon Josefsson * stringprep.c: Change unsigned long to uint32_t. 2003-06-18 Simon Josefsson * stringprep.h.in: Change unsigned long to uint32_t. Fix enum definitions. 2003-06-18 Simon Josefsson * internal.h: Remove inttypes/stdint, idn-int.h is used now. 2003-06-18 Simon Josefsson * tst_oidna.c, tst_opunycode.c, tst_ostringprep.c: Add old API tests. 2003-06-18 Simon Josefsson * .cvsignore: [no log message] 2003-06-18 Simon Josefsson * doc/Makefile.am: Fix. 2003-06-18 Simon Josefsson * Makefile.am, configure.ac, doc/.cvsignore, doc/Makefile.am, doc/fdl.texi, doc/lgpl.texi, doc/libidn.texi, fdl.texi, lgpl.texi, libidn.texi: Move manual to doc/. 2003-06-18 Simon Josefsson * Makefile.am: Don't use gdoc. 2003-06-18 Simon Josefsson * nfkc.c: Use uint32_t instead of unsigned long. 2003-06-18 Simon Josefsson * Makefile.am: Get m4's from m4/. Add tst_o*'s. Regenerate ChangeLog only for releases. 2003-06-18 Simon Josefsson * gen-unicode-tables.pl: Include internal.h for uint32_t and use it. 2003-06-18 Simon Josefsson * punycode.c: Change unsigned long to uint32_t. Use enum punycode_status return type. Sync with RFC (after indent). 2003-06-18 Simon Josefsson * punycode.h: Include stddef and idn-int.h. Add RFC compatibility enum punycode_status elements. Change return type to enum punycode_status. Use uint32_t instead of unsigned long. 2003-06-18 Simon Josefsson * .cvsignore: [no log message] 2003-06-18 Simon Josefsson * Makefile.am, configure.ac, iconv.m4, m4/ac_compile_check_sizeof.m4, m4/ax_create_stdint_h.m4, m4/iconv.m4: New idn-int.h for portable fixed size integers. Create m4/ and move iconv.m4 to it. 2003-06-12 Simon Josefsson * Makefile.am: Remove GNU make specific idiom. 2003-06-07 Simon Josefsson * ChangeLog: [no log message] 2003-06-07 Simon Josefsson * NEWS: Version 0.1.15. 2003-06-07 Simon Josefsson * NEWS: Add. 2003-06-07 Simon Josefsson * configure.ac: Bump version. 2003-06-07 Simon Josefsson * stringprep.c, tst_idna.c, tst_stringprep.c: Remove DRAFT stuff (moved to separate branch). 2003-06-06 Simon Josefsson * THANKS: Add. Fix. 2003-06-06 Simon Josefsson * idna.c: Handle non-zero terminated inputs. Tiny patch suggested by Thiago Macieira. 2003-06-06 Simon Josefsson * draft-ietf-xmpp-nodeprep-03.txt, draft-ietf-xmpp-resourceprep-03.txt: Add. 2003-06-04 Simon Josefsson * THANKS: Add. 2003-06-04 Simon Josefsson * nfkc.c: Check array bounds, tiny patch from Joe Hildebrand. 2003-06-02 Simon Josefsson * ChangeLog: [no log message] 2003-05-28 Simon Josefsson * draft-ietf-ldapbis-strprep-00.txt: Add. 2003-05-28 Simon Josefsson * draft-ietf-sasl-saslprep-02.txt: Add. 2003-05-10 Simon Josefsson * ChangeLog: [no log message] 2003-05-10 Simon Josefsson * NEWS: Version 0.1.14. 2003-05-10 Simon Josefsson * ChangeLog: [no log message] 2003-05-10 Simon Josefsson * contrib/README: Add. 2003-05-10 Simon Josefsson * idna.el, punycode.el: Bind process-environment correctly. 2003-05-09 Simon Josefsson * Makefile.am: Copy doxygen docs. 2003-05-09 Simon Josefsson * draft-ietf-ldapbis-dn-10.txt: Unrealted, mistakenly added. 2003-05-09 Simon Josefsson * NEWS: Add. 2003-05-09 Simon Josefsson * draft-josefsson-idn-test-vectors.xml: Add UTF-8 tests. 2003-05-09 Simon Josefsson * punycode.el: Use process-environment instead of utility env. Default values of punycode-program, punycode-to-ascii-parameters, punycode-to-unicode-parameters changed, and punycode-environment added. Use separate error strings. Handle when idn is not installed. 2003-05-09 Simon Josefsson * idna.el: Use process-environment instead of utility env. Default values of idna-program, idna-to-ascii-parameters, idna-to-unicode-parameters changed, and idna-environment added. Use separate error strings. 2003-05-09 Simon Josefsson * libidn.texi: Update Emacs Lisp API. Fix toc. 2003-05-09 Simon Josefsson * THANKS: Add. 2003-05-07 Simon Josefsson * idna.el: Handle when idn is not installed. 2003-05-06 Simon Josefsson * draft-ietf-ldapbis-dn-10.txt, draft-ietf-sasl-saslprep-01.txt, draft-zeilenga-ldapbis-strprep-00.txt: Add. 2003-04-23 Simon Josefsson * NEWS: Add. 2003-04-23 Simon Josefsson * NEWS: Fix NEWS entry of last release (API/ABI compatibility). 2003-04-23 Simon Josefsson * draft-ietf-xmpp-nodeprep-02.txt, draft-ietf-xmpp-resourceprep-02.txt: Add. 2003-04-20 Simon Josefsson * draft-josefsson-idn-test-vectors-00.txt: Add. 2003-04-16 Simon Josefsson * ANNOUNCE: Mention devices it runs on. 2003-03-28 Simon Josefsson * tst_stringprep.c: Fix bad UTF-8. Self test for bad UTF-8. 2003-03-26 Simon Josefsson * draft-josefsson-idn-test-vectors.xml: Text fixes. 2003-03-26 Simon Josefsson * tst_idna.c, tst_stringprep.c: Fix -DDRAFT output. 2003-03-26 Simon Josefsson * Makefile.am: Dist contrib/doxygen/. 2003-03-26 Simon Josefsson * NEWS: Mention doxygen. 2003-03-26 Simon Josefsson * configure.ac: Build contrib/doxygen/Doxyfile. 2003-03-26 Simon Josefsson * contrib/doxygen/Doxyfile.orig: Add unmodified doxygen configuration file, for future "diff"s. 2003-03-26 Simon Josefsson * contrib/doxygen/Doxyfile.in: Use PDF hyperlinks. 2003-03-26 Simon Josefsson * gdoc: Add -doxygen. 2003-03-26 Simon Josefsson * internal.h: Add \mainpage for doxygen. 2003-03-26 Simon Josefsson * contrib/README: Mention doxygen. 2003-03-26 Simon Josefsson * contrib/doxygen/.cvsignore, contrib/doxygen/Doxyfile.in, contrib/doxygen/gdoc2doxygen: Add doxygen template. 2003-03-23 Simon Josefsson * FAQ: Fix. 2003-03-23 Simon Josefsson * configure.ac: Bump versions. 2003-03-23 Simon Josefsson * Makefile.am: Ignore draft.*xml in ChangeLog. 2003-03-23 Simon Josefsson * idn.c: Fix debug prints. 2003-03-22 Simon Josefsson * draft-josefsson-idn-test-vectors.xml: Fix sec cons. 2003-03-22 Simon Josefsson * draft-josefsson-idn-test-vectors.xml: Cosmetic fixes. 2003-03-22 Simon Josefsson * draft-josefsson-idn-test-vectors.xml: Add IDNA stuff. Ack punycode. 2003-03-22 Simon Josefsson * stringprep.c, tst_stringprep.c: Fixes for -DDRAFT. 2003-03-22 Simon Josefsson * tst_idna.c: Support -DDRAFT. 2003-03-22 Simon Josefsson * draft-josefsson-idn-test-vectors.xml: Editorial fixes. Sync stringprep table. Fix references. 2003-03-13 Simon Josefsson * ChangeLog: [no log message] 2003-03-13 Simon Josefsson * NEWS: Version 0.1.13. 2003-03-13 Simon Josefsson * libidn.texi: Sync ANNOUNCE. 2003-03-13 Simon Josefsson * configure.ac: Bump so version. 2003-03-13 Simon Josefsson * NEWS: Add. 2003-03-13 Simon Josefsson * ANNOUNCE: Add lingos. 2003-03-13 Simon Josefsson * contrib/java/README: Doc fix. 2003-03-13 Simon Josefsson * Makefile.am: Dist Java stuff. 2003-03-13 Simon Josefsson * contrib/java/README: Doc fix. 2003-03-13 Simon Josefsson * NEWS: Mention Java API. 2003-03-13 Simon Josefsson * contrib/README: Add java/. 2003-03-13 Simon Josefsson * contrib/java/.cvsignore, contrib/java/ExampleIDNA.java, contrib/java/IDNA.c, contrib/java/IDNA.java, contrib/java/Makefile.am, contrib/java/README, contrib/java/autogen.sh, contrib/java/configure.ac: Add JAVA API proof of concept. 2003-03-13 Simon Josefsson * libidn.texi: Tested on more platforms. 2003-03-12 Simon Josefsson * stringprep.c, tst_stringprep.c: Fix mem leak. 2003-03-12 Simon Josefsson * tst_idna.c: Fix mem leak. 2003-03-12 Simon Josefsson * Makefile.am: Ignore errors instead of using missing for gengetopt. 2003-03-12 Simon Josefsson * configure.ac: Ignore errors instead of using missing for gengetopt. Bump version. 2003-03-12 Simon Josefsson * libidn.texi: Add platform. 2003-03-12 Simon Josefsson * ANNOUNCE: Spec update. 2003-03-10 Simon Josefsson * Makefile.am: Cvs2cl ignore contrib. 2003-03-10 Simon Josefsson * Makefile.am: Use cvs2cl's new --FSF. 2003-03-10 Simon Josefsson * contrib/web/idn.php: Text fix. 2003-03-10 Simon Josefsson * contrib/web/idn.php: Text fixes. Remove ASCII incompatible encodings. 2003-03-09 Simon Josefsson * contrib/web/idn.php: Use UTF-8 by default. Text fixes. Change ascii and sjis charsets. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Don't reset data. Use iconv charsets. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Cleanup. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Fix text. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Fix charset. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Fix text. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Make charset selection clearer. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Fix HTML, based on Martin Duerst's suggestions. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Use valid HTML. 2003-03-08 Simon Josefsson * contrib/web/idn.php: Add. 2003-03-08 Simon Josefsson * example2.c, punycode.c, punycode.h: Sync with RFC. 2003-03-08 Simon Josefsson * draft-zeilenga-ldapbis-strmatch-02.txt: Add. 2003-03-08 Simon Josefsson * draft-ietf-idn-idna-14.txt, draft-ietf-idn-nameprep-11.txt, draft-ietf-idn-punycode-03.txt, rfc3490.txt, rfc3491.txt, rfc3492.txt: Replace drafts with RFCs. 2003-03-07 Simon Josefsson * README-alpha: Mention more prereqs. 2003-03-07 Simon Josefsson * idna.c: Remove gtk-doc trigger for obsolete functions. 2003-03-07 Simon Josefsson * libidn.texi: Move appendix last. Cleanup @copying. 2003-03-07 Simon Josefsson * Makefile.am: Dist FAQ and contrib/web/idn.php. 2003-03-07 Simon Josefsson * README: Add. Move todo list to TODO. 2003-03-07 Simon Josefsson * TODO: Add, taken from README. 2003-03-06 Simon Josefsson * libidn.texi: ANNOUNCE sync. 2003-03-06 Simon Josefsson * ANNOUNCE: Cleanup. 2003-03-06 Simon Josefsson * FAQ: Update questions and answers. 2003-03-06 Simon Josefsson * FAQ: Moved faq from file README. 2003-03-06 Simon Josefsson * README: Move faq to file FAQ. Add donation info. Update todo's. 2003-03-06 Simon Josefsson * contrib/web/idn.php: Security fix. 2003-03-06 Simon Josefsson * NEWS: Add forgotten 0.1.12 items. 2003-03-06 Simon Josefsson * contrib/web/idn.php: Typo. 2003-03-06 Simon Josefsson * contrib/web/idn.php: Add debug. 2003-03-06 Simon Josefsson * draft-ietf-ips-iscsi-string-prep-03.txt, draft-ietf-krb-wg-utf8-profile-00.txt: Remove. 2003-03-06 Simon Josefsson * ChangeLog: [no log message] 2003-03-06 Simon Josefsson * NEWS: Version 0.1.12. 2003-03-06 Simon Josefsson * libidn.texi: Remove stringprep_*.h. Document stringprep in idn. 2003-03-06 Simon Josefsson * THANKS: Add. 2003-03-06 Simon Josefsson * libc/README: Fix ace. 2003-03-06 Simon Josefsson * contrib/web/idn.php: Add errors. 2003-03-06 Simon Josefsson * contrib/web/idn.php: Support stringprep. 2003-03-06 Simon Josefsson * Makefile.am: Ignore gengetopt errors. 2003-03-06 Simon Josefsson * draft-ietf-xmpp-nodeprep-00.txt, draft-ietf-xmpp-resourceprep-00.txt: Remove. 2003-03-06 Simon Josefsson * idn.c, idn.ggo.in: Add -s and -p for stringprep. 2003-03-06 Simon Josefsson * NEWS: Mention stringprep API changes. 2003-03-06 Simon Josefsson * profiles.c, stringprep.c, stringprep.h.in, tst_stringprep.c: Add stringprep_profile(). 2003-03-06 Simon Josefsson * reference/Makefile.am: Cosmetic fix. 2003-03-06 Simon Josefsson * NEWS, example.c, internal.h, profiles.c, reference/Makefile.am, reference/libidn-docs.tmpl, stringprep.h.in, stringprep_generic.h, stringprep_iscsi.h, stringprep_kerberos5.h, stringprep_nameprep.h, stringprep_plain.h, stringprep_xmpp.h: Deprecate stringprep_*.h. 2003-03-06 Simon Josefsson * draft-ietf-ips-iscsi-string-prep-04.txt, draft-ietf-krb-wg-utf8-profile-01.txt: Add. 2003-03-04 Simon Josefsson * README-alpha: Fixup. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Fix typo. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Reorder. Add errors. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Fix. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Add examples. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Fix ct. Add example. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Add example. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Fix. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Fix. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Examples. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Fix typos. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Move examples to bottom. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Add examples. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Bug reporting. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Fixes. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Charset fixes. 2003-03-02 Simon Josefsson * NEWS: Mention idn.php. 2003-03-02 Simon Josefsson * contrib/README: Add. 2003-03-02 Simon Josefsson * contrib/web/idn.php: Add. 2003-03-01 Simon Josefsson * configure.ac: Check for gengetopt. 2003-03-01 Simon Josefsson * Makefile.am: Use GENGETOPT. 2003-03-01 Simon Josefsson * NEWS: Add glibc 2.3.2. 2003-03-01 Simon Josefsson * configure.ac: Bump version. 2003-03-01 Simon Josefsson * libc/README, libc/Versions, libc/getaddrinfo.c, libc/libc.patch: Update to libc 2.3.2. 2003-02-28 Simon Josefsson * NEWS: Add. 2003-02-27 Simon Josefsson * libidn.texi: Copying conditions. 2003-02-27 Simon Josefsson * profiles.c: Add SASLprep. 2003-02-27 Simon Josefsson * stringprep.h.in: Add SASL profile. 2003-02-27 Simon Josefsson * tst_stringprep.c: Test SASL profile. 2003-02-27 Simon Josefsson * Makefile.am: Don't byte compile elisp. Cleanup EXTRA_DIST. 2003-02-27 Simon Josefsson * idn.ggo.in: Add copyright. 2003-02-27 Simon Josefsson * draft-ietf-sasl-saslprep-00.txt: Add. 2003-02-27 Simon Josefsson * libidn.texi: Don't ack self. 2003-02-26 Simon Josefsson * Makefile.am: Cleanup extra dist. 2003-02-26 Simon Josefsson * Makefile.am: Make idn.c depend on idn_cmd.*. 2003-02-26 Simon Josefsson * reference/Makefile.am: Ignore getopt.h. 2003-02-26 Simon Josefsson * idna.el, punycode.el: Doc fix. 2003-02-26 Simon Josefsson * libidn.texi: Reorder acks. Add function and variable index. 2003-02-26 Simon Josefsson * fdl.texi, lgpl.texi: Fix TOC. 2003-02-26 Simon Josefsson * ChangeLog: [no log message] 2003-02-26 Simon Josefsson * NEWS: Version 0.1.11. 2003-02-26 Simon Josefsson * Makefile.am: Distcheck fixes. 2003-02-26 Simon Josefsson * libidn.texi: Document Emacs API. 2003-02-26 Simon Josefsson * .cvsignore: [no log message] 2003-02-26 Simon Josefsson * configure.ac: Bump versions. Look for help2man. 2003-02-26 Simon Josefsson * Makefile.am: Build idn.1 man page. 2003-02-26 Simon Josefsson * libidn.texi: Document idn. 2003-02-26 Simon Josefsson * idna.el: Mention todo. 2003-02-26 Simon Josefsson * Makefile.am: Build idna.el. 2003-02-26 Simon Josefsson * idna.el: Elisp interface for IDNA. 2003-02-26 Simon Josefsson * punycode.el: Add keywords. 2003-02-26 Simon Josefsson * punycode.el: Fix doc. 2003-02-26 Simon Josefsson * .cvsignore: [no log message] 2003-02-26 Simon Josefsson * configure.ac: Add automake elisp check. 2003-02-26 Simon Josefsson * Makefile.am: Add punycode.el. 2003-02-26 Simon Josefsson * punycode.el: Elisp interface for punycode. 2003-02-26 Simon Josefsson * Makefile.am: Fix gengetopt invocation. 2003-02-26 Simon Josefsson * idn.c: Print help on usage error. Minor cleanup. 2003-02-26 Simon Josefsson * idn.ggo.in: Fix package/version name. 2003-02-26 Simon Josefsson * idn.ggo.in: Shorten line <80ch. 2003-02-26 Simon Josefsson * .cvsignore: [no log message] 2003-02-26 Simon Josefsson * getopt.c, getopt.h, getopt1.c: Add. 2003-02-26 Simon Josefsson * configure.ac: Link with getopt if system doesn't have getopt_long(). Build idn.ggo. 2003-02-26 Simon Josefsson * Makefile.am: Build idn. 2003-02-26 Simon Josefsson * idn.ggo.in: Add command line option specification for idn.c. 2003-02-26 Simon Josefsson * idn.c: Add command line interface to library. 2003-02-25 Simon Josefsson * draft-ietf-xmpp-nodeprep-01.txt, draft-ietf-xmpp-resourceprep-01.txt: Add. 2003-02-21 Simon Josefsson * profiles.c: NFKC XMPP resourceprep. 2003-02-21 Simon Josefsson * profiles.c: NFKC XMPP nodeprep. 2003-02-21 Simon Josefsson * ChangeLog: [no log message] 2003-02-21 Simon Josefsson * NEWS: Version 0.1.10. 2003-02-21 Simon Josefsson * reference/Makefile.am: Distribute libidn-stringprep-iscsi.html. 2003-02-21 Simon Josefsson * idna.c: Doc fix. 2003-02-21 Simon Josefsson * NEWS, idna.c, idna.h: Deprecate idna_*_to_ace() and idna_*ace_to_*(). Add idna_to_ascii_from_*() and idna_to_unicode_*_from_*(). 2003-02-21 Simon Josefsson * Makefile.am: Make release project independent. 2003-02-21 Simon Josefsson * NEWS: Add. 2003-02-21 Simon Josefsson * ANNOUNCE, Makefile.am, README, internal.h, libidn.texi, profiles.c, reference/dummy.c, reference/libidn-docs.tmpl, stringprep_iscsi.h, tst_stringprep.c: Add iSCSI profile. 2003-02-21 Simon Josefsson * NEWS: Add. 2003-02-20 Simon Josefsson * configure.ac: Bump versions. 2003-02-20 Simon Josefsson * NEWS: Add. 2003-02-20 Simon Josefsson * Makefile.am: Distribute contrib/*. 2003-02-20 Simon Josefsson * contrib/README: Describe contents of contrib/. 2003-02-20 Simon Josefsson * contrib/idn-python/Makefile, contrib/idn-python/README, contrib/idn-python/idn.c, contrib/idn-python/test.py: Add Stephane Bortzmeyer's python interface. 2003-02-20 Simon Josefsson * Makefile.am: Install punycode.h. 2003-02-20 Simon Josefsson * Makefile.am: Install idna.h, tiny patch from Stephane Bortzmeyer. 2003-02-20 Simon Josefsson * ChangeLog: [no log message] 2003-02-20 Simon Josefsson * NEWS: Version 0.1.9. 2003-02-20 Simon Josefsson * reference/libidn-docs.tmpl: Include stringprep_plain.sgml. 2003-02-20 Simon Josefsson * reference/Makefile.am: Add libidn-stringprep-plain.html. 2003-02-20 Simon Josefsson * reference/.cvsignore: [no log message] 2003-02-20 Simon Josefsson * libidn.texi: Fix last commit. 2003-02-20 Simon Josefsson * libidn.texi: Mention stringprep_plain.h. 2003-02-20 Simon Josefsson * reference/dummy.c: Add stringprep_plain. 2003-02-20 Simon Josefsson * profiles.c: Don't case fold XMPP resources. 2003-02-20 Simon Josefsson * profiles.c: Really fix XMPP definition. 2003-02-20 Simon Josefsson * Makefile.am: Add stringprep_plain.h. 2003-02-20 Simon Josefsson * configure.ac: Bump versions. 2003-02-20 Simon Josefsson * libidn.texi: Sync ANNOUNCE. 2003-02-20 Simon Josefsson * ANNOUNCE: Mention SASL "plain". 2003-02-20 Simon Josefsson * NEWS: Add. 2003-02-20 Simon Josefsson * tst_stringprep.c: Remove broken XMPP tests. Add SASL test. 2003-02-20 Simon Josefsson * draft-ietf-sasl-anon-00.txt: Add. 2003-02-20 Simon Josefsson * internal.h: Include stringprep_plain.h. 2003-02-20 Simon Josefsson * profiles.c: Add stringprep_plain for SASL ANONYMOUS plain profile. 2003-02-20 Simon Josefsson * profiles.c: Fix XMPP definition. 2003-02-20 Simon Josefsson * stringprep_plain.h: New file. 2003-02-19 Simon Josefsson * NEWS: Add. 2003-02-19 Simon Josefsson * THANKS: Add. 2003-02-19 Simon Josefsson * profiles.c: Don't normalize or map ASCII space for XMPP nodeprep. Tiny patch from Travis Shirk . 2003-02-18 Simon Josefsson * README: Add. 2003-02-15 Simon Josefsson * idna.c: Make sure decoded punycode data is zero terminated. 2003-02-15 Simon Josefsson * tst_idna.c: Fix memory leak. 2003-02-15 Simon Josefsson * idna.c: Fix memory leaks. Waste less memory. 2003-02-15 Simon Josefsson * idna.c: Fix memory leak. 2003-02-14 Simon Josefsson * tst_stringprep.c: Fix. 2003-02-14 Simon Josefsson * nfkc.c: Fix typo. 2003-02-14 Simon Josefsson * stringprep.c: Fix maplen calculation. 2003-02-14 Simon Josefsson * stringprep.c: Fix gcc warnings. 2003-02-14 Simon Josefsson * stringprep.c, stringprep.h.in: Change STRINGPREP_MAX_MAP_CHARS to 4 to waste less space. 2003-02-14 Simon Josefsson * ChangeLog: [no log message] 2003-02-14 Simon Josefsson * NEWS: Version 0.1.8. 2003-02-14 Simon Josefsson * Makefile.am: GTK-DOC fix. 2003-02-13 Simon Josefsson * libidn.texi: Update port status. 2003-02-13 Simon Josefsson * configure.ac: Use = instead of == as test operator. 2003-02-13 Simon Josefsson * example2.c, stringprep.c: Use size_t for string lengths. 2003-02-13 Simon Josefsson * example2.c: Revert missing-noreturn fix. 2003-02-13 Simon Josefsson * idna.c: Use size_t for string lengths. 2003-02-13 Simon Josefsson * Makefile.am, configure.ac: Condition GTK-DOC and disable by default. 2003-02-13 Simon Josefsson * reference/.cvsignore: [no log message] 2003-02-13 Simon Josefsson * reference/tmpl/.cvsignore: Remove. 2003-02-13 Simon Josefsson * configure.ac, reference/Makefile.am, reference/libidn-docs.sgml, reference/libidn-docs.tmpl, reference/libidn.types, reference/tmpl/idna.sgml, reference/tmpl/punycode.sgml, reference/tmpl/stringprep.sgml, reference/tmpl/stringprep_generic.sgml, reference/tmpl/stringprep_kerberos5.sgml, reference/tmpl/stringprep_nameprep.sgml, reference/tmpl/stringprep_xmpp.sgml: Cleanup gtk-doc build. 2003-02-12 Simon Josefsson * profiles.c: Zero terminate XMPP array. 2003-02-12 Simon Josefsson * configure.ac: Bump version (both shared library and package). 2003-02-12 Simon Josefsson * NEWS: Add. 2003-02-12 Simon Josefsson * example.c, example2.c, gen-unicode-tables.pl, idna.c, internal.h, nfkc.c, punycode.c, stringprep.c, stringprep.h.in, toutf8.c, tst_idna.c, tst_nfkc.c, tst_punycode.c, tst_stringprep.c: Fix CFLAGS warnings. 2003-02-12 Simon Josefsson * example3.c, example4.c: Fix CFLAGS warnings. Use official IDNA ACE prefix. 2003-02-12 Simon Josefsson * tst_stringprep.c: Cleanups for including as appendix in draft. 2003-02-12 Simon Josefsson * draft-josefsson-idn-test-vectors.xml: Add preliminary version. 2003-02-12 Simon Josefsson * profiles.c: Don't optimize prohibited output tables (better trace logs). 2003-02-12 Simon Josefsson * tst_stringprep.c: More self tests. More debug info. 2003-02-12 Simon Josefsson * stringprep.c: More debug output. 2003-02-12 Simon Josefsson * : Official results. 2003-02-12 Simon Josefsson * ChangeLog: [no log message] 2003-02-12 Simon Josefsson * Makefile.am: Improve release target. 2003-02-12 Simon Josefsson * Makefile.am: Add release target. 2003-02-12 Simon Josefsson * ChangeLog: [no log message] 2003-02-12 Simon Josefsson * NEWS, configure.ac: Version 0.1.7. 2003-02-12 Simon Josefsson * tst_idna.c: Fix IDNA ACE prefix. 2003-02-12 Simon Josefsson * idna.h: Use official IDNA prefix. 2003-02-11 Simon Josefsson * ChangeLog: [no log message] 2003-02-11 Simon Josefsson * Makefile.am: Add upload target. 2003-02-11 Simon Josefsson * tst_idna.c: Use new IDNA ACE prefix. 2003-02-11 Simon Josefsson * ChangeLog: Update. 2003-02-11 Simon Josefsson * NEWS, configure.ac: Version 0.1.6. 2003-02-11 Simon Josefsson * : Add my computation. 2003-02-11 Simon Josefsson * idna.h: Chose IDNA prefix based on my computation. 2003-02-09 Simon Josefsson * internal.h: Fix header. 2003-02-09 Simon Josefsson * stringprep.h.in: Fix. 2003-02-09 Simon Josefsson * draft-ietf-ips-iscsi-string-prep-03.txt: Add. 2003-02-09 Simon Josefsson * profiles.c: Indent. 2003-02-09 Simon Josefsson * autogen.sh: Don't run configure. 2003-02-09 Simon Josefsson * Makefile.am: Fix cvs2cl. 2003-02-07 Simon Josefsson * README: Fix. 2003-02-07 Simon Josefsson * reference/libidn-docs.sgml: Reorder. 2003-02-07 Simon Josefsson * reference/libidn-docs.sgml: Reorder. 2003-02-07 Simon Josefsson * README-alpha: Add build instructions. 2003-02-07 Simon Josefsson * autogen.sh: Fix. 2003-02-07 Simon Josefsson * reference/tmpl/stringprep_xmpp.sgml: Generated. 2003-02-07 Simon Josefsson * libidn.texi, reference/dummy.c: Add XMPP. 2003-02-07 Simon Josefsson * reference/libidn-docs.sgml: Include xmpp. 2003-02-07 Simon Josefsson * NEWS, reference/tmpl/stringprep_xmpp.sgml: Add. 2003-02-07 Simon Josefsson * reference/libidn-docs.sgml: Update (from ANNOUNCE). 2003-02-07 Simon Josefsson * profiles.c: Use table C.8 for bidi prohibited instead of C.9. 2003-02-07 Simon Josefsson * Makefile.am, draft-ietf-xmpp-nodeprep-00.txt, draft-ietf-xmpp-resourceprep-00.txt, internal.h, profiles.c, stringprep_xmpp.h, tst_stringprep.c: Support XMPP. 2003-02-07 Simon Josefsson * draft-ietf-krb-wg-utf8-profile-00.txt: Add. 2003-02-07 Simon Josefsson * ANNOUNCE: Fix. 2003-02-07 Simon Josefsson * stringprep_generic.h, stringprep_kerberos5.h, stringprep_nameprep.h: Name fix. 2003-02-05 Simon Josefsson * libc/README: Fix. 2003-01-31 Simon Josefsson * tst_idna.c, tst_punycode.c: Indent. 2003-01-31 Simon Josefsson * tst_punycode.c: Indent. 2003-01-31 Simon Josefsson * example3.c, example4.c, idna.c, stringprep.c, toutf8.c, tst_idna.c, tst_punycode.c: Indent. 2003-01-30 Simon Josefsson * ANNOUNCE: Fix. 2003-01-30 Simon Josefsson * libidn.texi: Typo. 2003-01-29 Simon Josefsson * ANNOUNCE: Mention libc. 2003-01-28 Simon Josefsson * libc/README: Typo. 2003-01-28 Simon Josefsson * reference/Makefile.am: Really ignore netdb.h. 2003-01-28 Simon Josefsson * ChangeLog: [no log message] 2003-01-28 Simon Josefsson * configure.ac: Release 0.1.5. 2003-01-28 Simon Josefsson * Makefile.am: Dist libc/*. 2003-01-28 Simon Josefsson * reference/Makefile.am: Ignore netdb.h. 2003-01-28 Simon Josefsson * libc/README: Fix. 2003-01-28 Simon Josefsson * libc/README: Fix. 2003-01-28 Simon Josefsson * libc/README: Add. 2003-01-28 Simon Josefsson * NEWS, libc/.cvsignore, libc/Makefile, libc/README, libc/Versions, libc/configure, libc/example.c, libc/getaddrinfo.c, libc/libc.patch, libc/netdb.h: Libidn as libc add-on. 2003-01-28 Simon Josefsson * .cvsignore: [no log message] 2003-01-28 Simon Josefsson * idna.c, idna.h: Return new error code IDNA_ICONV_ERROR instead of crashing when character set conversion fails. 2003-01-28 Simon Josefsson * toutf8.c: Fix prototype. Move unused parameter unless LOCALE_WORKS. 2003-01-28 Simon Josefsson * internal.h: Work from within GNU Libc. 2003-01-27 Simon Josefsson * THANKS: Add ack. 2003-01-27 Simon Josefsson * libidn.texi: Point to THANKS for more acks. 2003-01-27 Simon Josefsson * idna.c: Fix possible memory corruption. Noncopyrightable patch from Waldo Bastian . 2003-01-27 Simon Josefsson * ChangeLog: [no log message] 2003-01-20 Simon Josefsson * configure.ac: Change bug email address. 2003-01-18 Simon Josefsson * Makefile.am: Generate ChangeLog with --no-times. 2003-01-15 Simon Josefsson * ChangeLog: [no log message] 2003-01-15 Simon Josefsson * ChangeLog, NEWS, configure.ac: Release 0.1.4. 2003-01-15 Simon Josefsson * toutf8.c: Fix functions on bad platforms. 2003-01-15 Simon Josefsson * stringprep.c: Add comment. 2003-01-15 Simon Josefsson * tst_idna.c: Test step 5 in ToASCII. 2003-01-15 Simon Josefsson * idna.c, idna.h: Fix ToASCII(). 2003-01-15 Simon Josefsson * libidn.texi: Fix copyright. 2003-01-15 Simon Josefsson * libidn.texi: Fix dir entry. 2003-01-15 Simon Josefsson * Makefile.am: Use automake's ps and pdf texinfo targets. Remove txt texinfo target. 2003-01-15 Simon Josefsson * Makefile.am: EXTRA_DIST lgplg.texi. Disable GTK-DOC for distcheck builds (doesn't work). 2003-01-15 Simon Josefsson * reference/Makefile.am: Add uninstall target. Fix distcheck builds. 2003-01-15 Simon Josefsson * lgpl.texi, libidn.texi: Add acknowledgements, lgpl. 2003-01-15 Simon Josefsson * .cvsignore: [no log message] 2003-01-15 Simon Josefsson * Makefile.am, configure.ac, example.c, example2.c, idna.c, idna.h, libidn.texi, nfkc.c, profiles.c, punycode.c, punycode.h, stringprep.c, stringprep.h.in, toutf8.c, tst_idna.c, tst_nfkc.c, tst_punycode.c, tst_stringprep.c, version.c: Comment cleanup. 2003-01-15 Simon Josefsson * .cvsignore: [no log message] 2003-01-15 Simon Josefsson * Makefile.am, reference/dummy.c: Improve texinfo manual. 2003-01-15 Simon Josefsson * stringprep.c: Add doc. 2003-01-15 Simon Josefsson * libidn.texi: Add. 2003-01-15 Simon Josefsson * README: Remove API documentation. 2003-01-15 Simon Josefsson * ChangeLog: [no log message] 2003-01-15 Simon Josefsson * NEWS, configure.ac: Release 0.1.3. 2003-01-15 Simon Josefsson * .cvsignore, Makefile.am, fdl.texi, gdoc, libidn.texi: Add texinfo manual. 2003-01-15 Simon Josefsson * example2.c: Fix for texinfiscation. 2003-01-15 Simon Josefsson * nfkc.c: Doc fixes. 2003-01-08 Simon Josefsson * README-alpha: Add. 2003-01-08 Simon Josefsson * ChangeLog: [no log message] 2003-01-08 Simon Josefsson * NEWS, configure.ac: Release 0.1.2. 2003-01-08 Simon Josefsson * example4.c, reference/tmpl/idna.sgml: Fix. 2003-01-08 Simon Josefsson * .cvsignore, Makefile.am, example3.c, example4.c, idna.c, idna.h, stringprep.h.in, toutf8.c: IDNA high-level API. 2003-01-08 Simon Josefsson * reference/tmpl/idna.sgml, reference/tmpl/stringprep.sgml: Add. 2003-01-08 Simon Josefsson * ChangeLog: [no log message] 2003-01-08 Simon Josefsson * NEWS, configure.ac: Release 0.1.1. 2003-01-08 Simon Josefsson * reference/Makefile.am: dist dummy.c. 2003-01-08 Simon Josefsson * autogen.sh: Run configure. 2003-01-08 Simon Josefsson * reference/tmpl/.cvsignore, reference/tmpl/idna.sgml, reference/tmpl/punycode.sgml, reference/tmpl/stringprep.sgml, reference/tmpl/stringprep_generic.sgml, reference/tmpl/stringprep_kerberos5.sgml, reference/tmpl/stringprep_nameprep.sgml: Fix. 2003-01-08 Simon Josefsson * reference/Makefile.am, reference/tmpl/idna.sgml, reference/tmpl/punycode.sgml, reference/tmpl/stringprep.sgml, reference/tmpl/stringprep_generic.sgml, reference/tmpl/stringprep_kerberos5.sgml, reference/tmpl/stringprep_nameprep.sgml: Add templates. Don't parse internal.h 2003-01-08 Simon Josefsson * reference/libidn-docs.sgml: Add ANNOUNCE text. 2003-01-08 Simon Josefsson * reference/dummy.c: Add. 2003-01-08 Simon Josefsson * toutf8.c, version.c: Doc fix. 2003-01-08 Simon Josefsson * idna.c, stringprep.c: Doc fix. 2003-01-08 Simon Josefsson * nfkc.c, stringprep.c, version.c: Add GTK-DOC documentation. 2003-01-08 Simon Josefsson * reference/Makefile.am, reference/dummy.c: Dummy GTK-DOC C file with documentation for #define macros. 2003-01-08 Simon Josefsson * stringprep.h.in: GTK-DOC fixes. 2003-01-08 Simon Josefsson * toutf8.c: Add GTK-DOC documentation. 2003-01-08 Simon Josefsson * reference/.cvsignore: [no log message] 2003-01-08 Simon Josefsson * punycode.c: Add GTK-DOC documentation. 2003-01-08 Simon Josefsson * Makefile.am, configure.ac, reference/Makefile.am, reference/libidn-docs.sgml, reference/libidn.types: Add API Reference Manual. 2003-01-05 Simon Josefsson * ChangeLog: [no log message] 2003-01-05 Simon Josefsson * configure.ac: Release 0.1.0. 2003-01-05 Simon Josefsson * Makefile.am: Fix ChangeLog in distcheck. 2003-01-05 Simon Josefsson * README, README-alpha: Fix. 2003-01-05 Simon Josefsson * Makefile.am, idna.h: Add. 2003-01-05 Simon Josefsson * tst_idna.c: Check idna_to_unicode(). 2003-01-05 Simon Josefsson * idna.c: Fix. 2003-01-05 Simon Josefsson * tst_punycode.c: Check decoding. 2003-01-05 Simon Josefsson * README-alpha: Add. 2003-01-04 Simon Josefsson * ANNOUNCE: Fix. 2003-01-03 Simon Josefsson * README-alpha: Rename. 2003-01-03 Simon Josefsson * NEWS: Fix. 2003-01-03 Simon Josefsson * Makefile.am: Build IDNA. 2003-01-03 Simon Josefsson * AUTHORS: Rename. 2003-01-03 Simon Josefsson * ANNOUNCE, NEWS: Fix. 2003-01-03 Simon Josefsson * .cvsignore, README, idna.c, idna.h, internal.h, tst_idna.c: Add unfinished old IDNA stuff. 2003-01-03 Simon Josefsson * libidn.pc.in: Rename and fix. 2003-01-03 Simon Josefsson * README: Rename. 2003-01-03 Simon Josefsson * THANKS, draft-ietf-idn-idna-14.txt, draft-ietf-idn-nameprep-11.txt: Add. 2003-01-03 Simon Josefsson * Makefile.am, THANKS, configure.ac: Rename. 2003-01-03 Simon Josefsson * libidn.pc.in, libstringprep.pc.in: Rename libstringprep.pc.in to libidn.pc.in. 2003-01-02 Simon Josefsson * Makefile.am, draft-hoffman-stringprep-07.txt, gen-stringprep-tables.pl, rfc3454.txt: Use rfc3454.txt instead of draft-hoffman-stringprep-07.txt. 2002-12-26 Simon Josefsson * ANNOUNCE: Fix. 2002-12-26 Simon Josefsson * ANNOUNCE: Cleanup. 2002-12-26 Simon Josefsson * ANNOUNCE: Initiate name change for savannah project registration. 2002-12-26 Simon Josefsson * tst_punycode.c: Fixes. 2002-12-26 Simon Josefsson * tst_stringprep.c: Fix. 2002-12-26 Simon Josefsson * README-alpha: Add. 2002-12-26 Simon Josefsson * ANNOUNCE: Fix. 2002-12-26 Simon Josefsson * ANNOUNCE: Fix. 2002-12-19 Simon Josefsson * .cvsignore, Makefile.am, NEWS, configure.ac, draft-ietf-idn-punycode-03.txt, example.c, example2.c, internal.h, nfkc.c, punycode.c, punycode.h, stringprep.c, stringprep.h.in, tst_punycode.c: Add punycode. Use "unsigned long" for Unicode code points. Copying condition fixes. Fixes. 2002-12-14 Simon Josefsson * Makefile.am: Make sure ChangeLog is regenerated. 2002-12-13 Simon Josefsson * ChangeLog: [no log message] 2002-12-13 Simon Josefsson * ChangeLog: [no log message] 2002-12-13 Simon Josefsson * NEWS, configure.ac: Release 0.0.8. 2002-12-13 Simon Josefsson * AUTHORS, Makefile.am, NEWS, README, THANKS, configure.ac, internal.h, libstringprep.pc.in, strdup.c, stringprep.c, stringprep_generic.h, stringprep_kerberos5.h, stringprep_nameprep.h, toutf8.c, tst_nfkc.c, tst_stringprep.c: Portability fixes. 2002-12-13 Simon Josefsson * Makefile.am: Link with libiconv. 2002-12-10 Simon Josefsson * stringprep.c: Don't use uint32_t in one odd place. 2002-12-10 Simon Josefsson * autogen.sh: [no log message] 2002-12-10 Simon Josefsson * stringprep.c: Flawfinder. 2002-12-10 Simon Josefsson * toutf8.c: Fix. 2002-12-10 Simon Josefsson * stringprep.h.in: Remove comma on last enum entry. 2002-12-09 Simon Josefsson * tst_nfkc.c: Fix memory leak. 2002-12-09 Simon Josefsson * autogen.sh: Suggest dmalloc. 2002-12-09 Simon Josefsson * configure.ac, internal.h, stringprep.c: Use dmalloc. Fix memory leak when bidi fails. 2002-12-09 Simon Josefsson * tst_stringprep.c: Check version. 2002-12-09 Simon Josefsson * ChangeLog: [no log message] 2002-12-09 Simon Josefsson * NEWS, configure.ac: Release 0.0.7 (version 0.0.6 was abandoned). 2002-12-09 Simon Josefsson * ChangeLog: [no log message] 2002-12-09 Simon Josefsson * configure.ac: Release 0.0.6. 2002-12-09 Simon Josefsson * tst_stringprep.c: Check all upper string case mapping. 2002-12-09 Simon Josefsson * stringprep.c: Apply table until it can't be applied any longer. 2002-12-07 Simon Josefsson * tst_stringprep.c: Add nameprep vector. 2002-12-07 Simon Josefsson * example.c: Cosmetic fix. 2002-12-07 Simon Josefsson * stringprep.c: Fix printf() format warnings. Fix bidi table for loop (affected only nameprep). 2002-12-07 Simon Josefsson * ChangeLog: [no log message] 2002-12-07 Simon Josefsson * NEWS: Release 0.0.5. 2002-12-07 Simon Josefsson * Makefile.am, configure.ac: Add memset.c, an AC_LIBOBJ. 2002-12-07 Simon Josefsson * memset.c: An AC_LIBOBJ, from gnulib. 2002-12-07 Simon Josefsson * profiles.c, stringprep.c, stringprep.h.in: Indent. 2002-12-07 Simon Josefsson * README: Use new types. 2002-12-07 Simon Josefsson * profiles.c, stringprep.c, stringprep.h.in, tst_stringprep.c: Fixes. 2002-12-07 Simon Josefsson * profiles.c, stringprep.c, tst_stringprep.c: Fix bidi code and add self tests. 2002-12-07 Simon Josefsson * gen-stringprep-tables.pl, profiles.c, stringprep.c, stringprep.h.in, stringprep_generic.h, stringprep_kerberos5.h, stringprep_nameprep.h, tst_stringprep.c: Clean up internal profiling definitions. 2002-12-06 Simon Josefsson * example.c: Fix typo. 2002-12-06 Simon Josefsson * ChangeLog: [no log message] 2002-12-06 Simon Josefsson * configure.ac: Release 0.0.4. 2002-12-06 Simon Josefsson * NEWS, README, profiles.c, stringprep.c, stringprep.h.in, stringprep_nameprep.h, tst_stringprep.c: Add unassigned code point handling, and self test. 2002-12-06 Simon Josefsson * tst_stringprep.c: Don't modify constant string during debug. 2002-12-05 Simon Josefsson * ChangeLog: [no log message] 2002-12-05 Simon Josefsson * stringprep.c: Don't use *_fast(). 2002-12-05 Simon Josefsson * Makefile.am: Don't use $< (GNU specific). 2002-12-03 Simon Josefsson * Makefile.am: Portability fixes. 2002-12-03 Simon Josefsson * internal.h, nfkc.c, stringprep.c, toutf8.c, tst_nfkc.c, tst_stringprep.c, version.c: Simplify the #include-mess. (NULL wasn't found on alpha-unknown-netbsd1.6) 2002-11-30 Simon Josefsson * autogen.sh: Add --enable-maintainer-mode. 2002-11-30 Simon Josefsson * .cvsignore: [no log message] 2002-11-30 Simon Josefsson * ChangeLog, config.rpath: [no log message] 2002-11-30 Simon Josefsson * NEWS, configure.ac: Release 0.0.3. 2002-11-30 Simon Josefsson * Makefile.am, configure.ac, strdup.c: Add replacement strdup.c for system's without it. Increment shared library version. Trim autoconf tests. 2002-11-30 Simon Josefsson * README: Added copying conditions. Added more API documentation. 2002-11-30 Simon Josefsson * THANKS: Add copying conditions. 2002-11-30 Simon Josefsson * AUTHORS: Add copying conditions and public key. 2002-11-30 Simon Josefsson * Makefile.am, example.c, nfkc.c, stringprep.h.in, tst_stringprep.c: Export stringprep_utf8_to_unichar. Rename stringprep_utf8_to_ucs4_fast to stringprep_utf8_to_ucs4 to clean up API (old entry maintained for binary backwards compatibility though). Indent. Add sign make target. 2002-11-29 Simon Josefsson * nfkc.c, profiles.c, toutf8.c: indent 2002-11-29 Simon Josefsson * stringprep.c: improve debugging output 2002-11-29 Simon Josefsson * autogen.sh: pass CFLAGS directly 2002-11-14 Simon Josefsson * .cvsignore: [no log message] 2002-11-14 Simon Josefsson * configure.ac: AC_PROG_RANLIB obsoleted by libtool. 2002-11-14 Simon Josefsson * autogen.sh: Use autoreconf. 2002-11-07 Simon Josefsson * example.c: improve comment 2002-11-07 Simon Josefsson * Makefile.am: add dependency 2002-11-07 Simon Josefsson * ChangeLog: [no log message] 2002-11-07 Simon Josefsson * NEWS, configure.ac: Release 0.0.2. 2002-11-07 Simon Josefsson * toutf8.c: Remove unused variable. 2002-11-07 Simon Josefsson * stringprep.c: Fix memory leak. 2002-11-07 Simon Josefsson * .cvsignore, Makefile.am, tst_nfkc.c, tst_stringprep.c: Add NFKC self test. 2002-11-06 Simon Josefsson * stringprep.h.in, toutf8.c: Cosmetic fixes. 2002-11-06 Simon Josefsson * ANNOUNCE: Add. 2002-11-06 Simon Josefsson * README: Explain why GLIB is not used. 2002-11-06 Simon Josefsson * ChangeLog: [no log message] 2002-11-06 Simon Josefsson * ChangeLog, Makefile.am, README: Build fixes. 2002-11-06 Simon Josefsson * .cvsignore, Makefile.am, NEWS, README, THANKS, autogen.sh, configure.ac, example.c, iconv.m4, libstringprep.pc.in, profiles.c, stringprep.h.in, stringprep_generic.h, stringprep_kerberos5.h, stringprep_nameprep.h, toutf8.c: Add example. Add toutf8.c. Check if OS has locale functions. Add -R to pkg-config info file. Moved profile variables to profile.c from header files. 2002-11-06 Simon Josefsson * ChangeLog: [no log message] 2002-11-05 Simon Josefsson * Initial version. ----- Copyright (C) 2002-2013 Simon Josefsson Copying and distribution of this file, with or without modification, are permitted provided the copyright notice and this notice are preserved. libidn-1.28/windows/0000755000000000000000000000000012167253747011364 500000000000000libidn-1.28/windows/libidn.vcproj0000664000000000000000000001417011746453142013770 00000000000000 libidn-1.28/windows/libidn.sln0000664000000000000000000000155411746453142013263 00000000000000 Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libidn", "libidn.vcproj", "{0B883079-812A-405E-AC8F-59F47CE9A3FF}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Debug|Win32.ActiveCfg = Debug|Win32 {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Debug|Win32.Build.0 = Debug|Win32 {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Release|Win32.ActiveCfg = Release|Win32 {0B883079-812A-405E-AC8F-59F47CE9A3FF}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal libidn-1.28/windows/include/0000755000000000000000000000000012167253747013007 500000000000000libidn-1.28/windows/include/ac-stdint.h0000644000000000000000000000267712153706572014774 00000000000000/* Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Adam Strzelecki This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _AC_STDINT_H #define _AC_STDINT_H 1 #ifndef _GENERATED_STDINT_H #define _GENERATED_STDINT_H #define uint8_t unsigned char #define uint16_t unsigned short #define uint32_t unsigned int #define int8_t signed char #define int16_t signed short #define int32_t signed int #define gint16 int16_t #ifdef _WIN64 typedef __int64 ssize_t; #else typedef _W64 int ssize_t; #endif #endif #endif libidn-1.28/windows/include/config.h0000644000000000000000000000263212153706572014342 00000000000000/* config.h --- System definitions for Windows Copyright (C) 2008-2013 Free Software Foundation, Inc. This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _CONFIG_H #define _CONFIG_H #define PACKAGE "libidn" #define strcasecmp stricmp #define strncasecmp strnicmp extern int strverscmp (const char *, const char *); #define LOCALEDIR "." #if _MSC_VER && !__cplusplus # define inline __inline #endif #define _GL_ATTRIBUTE_PURE /* empty */ #define _GL_ATTRIBUTE_CONST /* empty */ #endif /* _CONFIG_H */ libidn-1.28/windows/include/stdbool.h0000644000000000000000000000240012153706572014534 00000000000000/* Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Adam Strzelecki This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _STDBOOL_H #define _STDBOOL_H #define _Bool signed char enum { false = 0, true = 1 }; #define bool _Bool #define false 0 #define true 1 #define __bool_true_false_are_defined 1 #endif /* _STDBOOL_H */ libidn-1.28/windows/include/unistd.h0000664000000000000000000000011111746453142014372 00000000000000/* Dummy file to satisfy source file dependencies on Windows platform */ libidn-1.28/windows/include/idn-int.h0000644000000000000000000000210512153706572014432 00000000000000/* Copyright (C) 2008-2013 Free Software Foundation, Inc. Written by Adam Strzelecki This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include "ac-stdint.h" libidn-1.28/windows/libidn4win.mk0000644000000000000000000000411112153706572013667 00000000000000# Copyright (C) 2011-2013 Simon Josefsson # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . PACKAGE = libidn distdir = $(PACKAGE)-$(VERSION) TGZ = $(distdir).tar.gz URL = ftp://ftp.gnu.org/gnu/$(PACKAGE)/$(TGZ) all: @echo 'Usage examples:' @echo ' make -f libidn4win.mk libidn4win VERSION=1.21' @echo ' make -f libidn4win.mk libidn4win32 VERSION=1.21 CHECK=check' libidn4win: libidn4win32 libidn4win64 libidn4win32: $(MAKE) -f libidn4win.mk doit ARCH=32 HOST=i686-w64-mingw32 CHECK=check libidn4win64: $(MAKE) -f libidn4win.mk doit ARCH=64 HOST=x86_64-w64-mingw32 doit: rm -rf tmp$(ARCH) && mkdir tmp$(ARCH) && cd tmp$(ARCH) && \ cp ../../libiconv-1.13.1.tar.gz . || wget ftp://ftp.gnu.org/gnu/libiconv/libiconv-1.13.1.tar.gz && \ tar xfa libiconv-1.13.1.tar.gz && \ cd libiconv-1.13.1 && \ ./configure --host=$(HOST) --build=x86_64-unknown-linux-gnu --prefix=$(PWD)/tmp$(ARCH)/root && \ make install && \ cd .. && \ cp ../../$(TGZ) . || wget $(URL) && \ tar xfa $(TGZ) && \ cd $(distdir) && \ ./configure --host=$(HOST) --build=x86_64-unknown-linux-gnu --prefix=$(PWD)/tmp$(ARCH)/root CPPFLAGS=-I$(PWD)/tmp$(ARCH)/root/include && \ make install && \ make -C tests $(CHECK) && \ cd .. && \ cd root && \ zip -r ../../$(distdir)-win$(ARCH).zip * upload: ../build-aux/gnupload --to ftp.gnu.org:$(PACKAGE) $(distdir)-win32.zip $(distdir)-win64.zip cp $(distdir)-win32.zip $(distdir)-win32.zip.sig $(distdir)-win64.zip $(distdir)-win64.zip.sig ../../releases/$(PACKAGE)/ libidn-1.28/gl/0000755000000000000000000000000012167253747010274 500000000000000libidn-1.28/gl/error.h0000644000000000000000000000474612153706065011520 00000000000000/* Declaration for error-reporting function Copyright (C) 1995-1997, 2003, 2006, 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _ERROR_H #define _ERROR_H 1 /* The __attribute__ feature is available in gcc versions 2.5 and later. The __-protected variants of the attributes 'format' and 'printf' are accepted by gcc versions 2.6.4 (effectively 2.7) and later. We enable _GL_ATTRIBUTE_FORMAT only if these are supported too, because gnulib and libintl do '#define printf __printf__' when they override the 'printf' function. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec)) #else # define _GL_ATTRIBUTE_FORMAT(spec) /* empty */ #endif #ifdef __cplusplus extern "C" { #endif /* Print a message with 'fprintf (stderr, FORMAT, ...)'; if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM). If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */ extern void error (int __status, int __errnum, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4)); extern void error_at_line (int __status, int __errnum, const char *__fname, unsigned int __lineno, const char *__format, ...) _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6)); /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ extern void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ extern unsigned int error_message_count; /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ extern int error_one_per_line; #ifdef __cplusplus } #endif #endif /* error.h */ libidn-1.28/gl/progname.c0000644000000000000000000000615012153706066012162 00000000000000/* Program name management. Copyright (C) 2001-2003, 2005-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2001. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #undef ENABLE_RELOCATABLE /* avoid defining set_program_name as a macro */ #include "progname.h" #include /* get program_invocation_name declaration */ #include #include #include /* String containing name the program is called with. To be initialized by main(). */ const char *program_name = NULL; /* Set program_name, based on argv[0]. argv0 must be a string allocated with indefinite extent, and must not be modified after this call. */ void set_program_name (const char *argv0) { /* libtool creates a temporary executable whose name is sometimes prefixed with "lt-" (depends on the platform). It also makes argv[0] absolute. But the name of the temporary executable is a detail that should not be visible to the end user and to the test suite. Remove this "/.libs/" or "/.libs/lt-" prefix here. */ const char *slash; const char *base; /* Sanity check. POSIX requires the invoking process to pass a non-NULL argv[0]. */ if (argv0 == NULL) { /* It's a bug in the invoking program. Help diagnosing it. */ fputs ("A NULL argv[0] was passed through an exec system call.\n", stderr); abort (); } slash = strrchr (argv0, '/'); base = (slash != NULL ? slash + 1 : argv0); if (base - argv0 >= 7 && strncmp (base - 7, "/.libs/", 7) == 0) { argv0 = base; if (strncmp (base, "lt-", 3) == 0) { argv0 = base + 3; /* On glibc systems, remove the "lt-" prefix from the variable program_invocation_short_name. */ #if HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME program_invocation_short_name = (char *) argv0; #endif } } /* But don't strip off a leading / in general, because when the user runs /some/hidden/place/bin/cp foo foo he should get the error message /some/hidden/place/bin/cp: `foo' and `foo' are the same file not cp: `foo' and `foo' are the same file */ program_name = argv0; /* On glibc systems, the error() function comes from libc and uses the variable program_invocation_name, not program_name. So set this variable as well. */ #if HAVE_DECL_PROGRAM_INVOCATION_NAME program_invocation_name = (char *) argv0; #endif } libidn-1.28/gl/m4/0000755000000000000000000000000012167253747010614 500000000000000libidn-1.28/gl/m4/alloca.m40000644000000000000000000001037212153706065012223 00000000000000# alloca.m4 serial 14 dnl Copyright (C) 2002-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ALLOCA], [ AC_REQUIRE([AC_FUNC_ALLOCA]) if test $ac_cv_func_alloca_works = no; then gl_PREREQ_ALLOCA fi # Define an additional variable used in the Makefile substitution. if test $ac_cv_working_alloca_h = yes; then AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [ AC_EGREP_CPP([Need own alloca], [ #if defined __GNUC__ || defined _AIX || defined _MSC_VER Need own alloca #endif ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no]) ]) if test $gl_cv_rpl_alloca = yes; then dnl OK, alloca can be implemented through a compiler built-in. AC_DEFINE([HAVE_ALLOCA], [1], [Define to 1 if you have 'alloca' after including , a header that may be supplied by this distribution.]) ALLOCA_H=alloca.h else dnl alloca exists as a library function, i.e. it is slow and probably dnl a memory leak. Don't define HAVE_ALLOCA in this case. ALLOCA_H= fi else ALLOCA_H=alloca.h fi AC_SUBST([ALLOCA_H]) AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"]) ]) # Prerequisites of lib/alloca.c. # STACK_DIRECTION is already handled by AC_FUNC_ALLOCA. AC_DEFUN([gl_PREREQ_ALLOCA], [:]) # This works around a bug in autoconf <= 2.68. # See . m4_version_prereq([2.69], [] ,[ # This is taken from the following Autoconf patch: # http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497 # _AC_LIBOBJ_ALLOCA # ----------------- # Set up the LIBOBJ replacement of 'alloca'. Well, not exactly # AC_LIBOBJ since we actually set the output variable 'ALLOCA'. # Nevertheless, for Automake, AC_LIBSOURCES it. m4_define([_AC_LIBOBJ_ALLOCA], [# The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. AC_LIBSOURCES(alloca.c) AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.]) AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray, [AC_EGREP_CPP(webecray, [#if defined CRAY && ! defined CRAY2 webecray #else wenotbecray #endif ], ac_cv_os_cray=yes, ac_cv_os_cray=no)]) if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do AC_CHECK_FUNC($ac_func, [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func, [Define to one of '_getb67', 'GETB67', 'getb67' for Cray-2 and Cray-YMP systems. This function is required for 'alloca.c' support on those systems.]) break]) done fi AC_CACHE_CHECK([stack direction for C alloca], [ac_cv_c_stack_direction], [AC_RUN_IFELSE([AC_LANG_SOURCE( [AC_INCLUDES_DEFAULT int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; }])], [ac_cv_c_stack_direction=1], [ac_cv_c_stack_direction=-1], [ac_cv_c_stack_direction=0])]) AH_VERBATIM([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ @%:@undef STACK_DIRECTION])dnl AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction) ])# _AC_LIBOBJ_ALLOCA ]) libidn-1.28/gl/m4/setenv.m40000644000000000000000000001101212153706065012264 00000000000000# setenv.m4 serial 26 dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SETENV], [ AC_REQUIRE([gl_FUNC_SETENV_SEPARATE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles if test $ac_cv_func_setenv = no; then HAVE_SETENV=0 else AC_CACHE_CHECK([whether setenv validates arguments], [gl_cv_func_setenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #include #include ]], [[ int result = 0; { if (setenv ("", "", 0) != -1) result |= 1; else if (errno != EINVAL) result |= 2; } { if (setenv ("a", "=", 1) != 0) result |= 4; else if (strcmp (getenv ("a"), "=") != 0) result |= 8; } return result; ]])], [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_setenv_works="guessing no" ;; esac ])]) case "$gl_cv_func_setenv_works" in *yes) ;; *) REPLACE_SETENV=1 ;; esac fi ]) # Like gl_FUNC_SETENV, except prepare for separate compilation # (no REPLACE_SETENV, no AC_LIBOBJ). AC_DEFUN([gl_FUNC_SETENV_SEPARATE], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_CHECK_DECLS_ONCE([setenv]) if test $ac_cv_have_decl_setenv = no; then HAVE_DECL_SETENV=0 fi AC_CHECK_FUNCS_ONCE([setenv]) gl_PREREQ_SETENV ]) AC_DEFUN([gl_FUNC_UNSETENV], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_DECLS_ONCE([unsetenv]) if test $ac_cv_have_decl_unsetenv = no; then HAVE_DECL_UNSETENV=0 fi AC_CHECK_FUNCS([unsetenv]) if test $ac_cv_func_unsetenv = no; then HAVE_UNSETENV=0 else HAVE_UNSETENV=1 dnl Some BSDs return void, failing to do error checking. AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #undef _BSD #define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 */ #include extern #ifdef __cplusplus "C" #endif int unsetenv (const char *name); ]], [[]])], [gt_cv_func_unsetenv_ret='int'], [gt_cv_func_unsetenv_ret='void'])]) if test $gt_cv_func_unsetenv_ret = 'void'; then AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void instead of int.]) REPLACE_UNSETENV=1 fi dnl Solaris 10 unsetenv does not remove all copies of a name. dnl Haiku alpha 2 unsetenv gets confused by assignment to environ. dnl OpenBSD 4.7 unsetenv("") does not fail. AC_CACHE_CHECK([whether unsetenv obeys POSIX], [gl_cv_func_unsetenv_works], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include #include extern char **environ; ]], [[ char entry1[] = "a=1"; char entry2[] = "b=2"; char *env[] = { entry1, entry2, NULL }; if (putenv ((char *) "a=1")) return 1; if (putenv (entry2)) return 2; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 3; if (!unsetenv ("") || errno != EINVAL) return 4; entry2[0] = 'b'; environ = env; if (!getenv ("a")) return 5; entry2[0] = 'a'; unsetenv ("a"); if (getenv ("a")) return 6; ]])], [gl_cv_func_unsetenv_works=yes], [gl_cv_func_unsetenv_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_unsetenv_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_unsetenv_works="guessing no" ;; esac ])]) case "$gl_cv_func_unsetenv_works" in *yes) ;; *) REPLACE_UNSETENV=1 ;; esac fi ]) # Prerequisites of lib/setenv.c. AC_DEFUN([gl_PREREQ_SETENV], [ AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([gl_ENVIRON]) AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CHECK_HEADERS([search.h]) AC_CHECK_FUNCS([tsearch]) ]) # Prerequisites of lib/unsetenv.c. AC_DEFUN([gl_PREREQ_UNSETENV], [ AC_REQUIRE([gl_ENVIRON]) AC_CHECK_HEADERS_ONCE([unistd.h]) ]) libidn-1.28/gl/m4/unistd_h.m40000644000000000000000000002143412153706066012607 00000000000000# unistd_h.m4 serial 66 dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Simon Josefsson, Bruno Haible. AC_DEFUN([gl_UNISTD_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([unistd.h]) if test $ac_cv_header_unistd_h = yes; then HAVE_UNISTD_H=1 else HAVE_UNISTD_H=0 fi AC_SUBST([HAVE_UNISTD_H]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Determine WINDOWS_64_BIT_OFF_T. AC_REQUIRE([gl_TYPE_OFF_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ #if HAVE_UNISTD_H # include #endif /* Some systems declare various items in the wrong headers. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # include # endif #endif ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep]) ]) AC_DEFUN([gl_UNISTD_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], [ GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR]) GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN]) GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE]) GNULIB_DUP=0; AC_SUBST([GNULIB_DUP]) GNULIB_DUP2=0; AC_SUBST([GNULIB_DUP2]) GNULIB_DUP3=0; AC_SUBST([GNULIB_DUP3]) GNULIB_ENVIRON=0; AC_SUBST([GNULIB_ENVIRON]) GNULIB_EUIDACCESS=0; AC_SUBST([GNULIB_EUIDACCESS]) GNULIB_FACCESSAT=0; AC_SUBST([GNULIB_FACCESSAT]) GNULIB_FCHDIR=0; AC_SUBST([GNULIB_FCHDIR]) GNULIB_FCHOWNAT=0; AC_SUBST([GNULIB_FCHOWNAT]) GNULIB_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC]) GNULIB_FSYNC=0; AC_SUBST([GNULIB_FSYNC]) GNULIB_FTRUNCATE=0; AC_SUBST([GNULIB_FTRUNCATE]) GNULIB_GETCWD=0; AC_SUBST([GNULIB_GETCWD]) GNULIB_GETDOMAINNAME=0; AC_SUBST([GNULIB_GETDOMAINNAME]) GNULIB_GETDTABLESIZE=0; AC_SUBST([GNULIB_GETDTABLESIZE]) GNULIB_GETGROUPS=0; AC_SUBST([GNULIB_GETGROUPS]) GNULIB_GETHOSTNAME=0; AC_SUBST([GNULIB_GETHOSTNAME]) GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) GNULIB_LCHOWN=0; AC_SUBST([GNULIB_LCHOWN]) GNULIB_LINK=0; AC_SUBST([GNULIB_LINK]) GNULIB_LINKAT=0; AC_SUBST([GNULIB_LINKAT]) GNULIB_LSEEK=0; AC_SUBST([GNULIB_LSEEK]) GNULIB_PIPE=0; AC_SUBST([GNULIB_PIPE]) GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2]) GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD]) GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE]) GNULIB_READ=0; AC_SUBST([GNULIB_READ]) GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK]) GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT]) GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR]) GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME]) GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP]) GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK]) GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT]) GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R]) GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING]) GNULIB_UNISTD_H_SIGPIPE=0; AC_SUBST([GNULIB_UNISTD_H_SIGPIPE]) GNULIB_UNLINK=0; AC_SUBST([GNULIB_UNLINK]) GNULIB_UNLINKAT=0; AC_SUBST([GNULIB_UNLINKAT]) GNULIB_USLEEP=0; AC_SUBST([GNULIB_USLEEP]) GNULIB_WRITE=0; AC_SUBST([GNULIB_WRITE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_CHOWN=1; AC_SUBST([HAVE_CHOWN]) HAVE_DUP2=1; AC_SUBST([HAVE_DUP2]) HAVE_DUP3=1; AC_SUBST([HAVE_DUP3]) HAVE_EUIDACCESS=1; AC_SUBST([HAVE_EUIDACCESS]) HAVE_FACCESSAT=1; AC_SUBST([HAVE_FACCESSAT]) HAVE_FCHDIR=1; AC_SUBST([HAVE_FCHDIR]) HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT]) HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC]) HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC]) HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE]) HAVE_GETDTABLESIZE=1; AC_SUBST([HAVE_GETDTABLESIZE]) HAVE_GETGROUPS=1; AC_SUBST([HAVE_GETGROUPS]) HAVE_GETHOSTNAME=1; AC_SUBST([HAVE_GETHOSTNAME]) HAVE_GETLOGIN=1; AC_SUBST([HAVE_GETLOGIN]) HAVE_GETPAGESIZE=1; AC_SUBST([HAVE_GETPAGESIZE]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT]) HAVE_PIPE=1; AC_SUBST([HAVE_PIPE]) HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2]) HAVE_PREAD=1; AC_SUBST([HAVE_PREAD]) HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE]) HAVE_READLINK=1; AC_SUBST([HAVE_READLINK]) HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT]) HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME]) HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR]) HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC]) HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME]) HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R]) HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) REPLACE_CHOWN=0; AC_SUBST([REPLACE_CHOWN]) REPLACE_CLOSE=0; AC_SUBST([REPLACE_CLOSE]) REPLACE_DUP=0; AC_SUBST([REPLACE_DUP]) REPLACE_DUP2=0; AC_SUBST([REPLACE_DUP2]) REPLACE_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT]) REPLACE_FTRUNCATE=0; AC_SUBST([REPLACE_FTRUNCATE]) REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD]) REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME]) REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) REPLACE_LINKAT=0; AC_SUBST([REPLACE_LINKAT]) REPLACE_LSEEK=0; AC_SUBST([REPLACE_LSEEK]) REPLACE_PREAD=0; AC_SUBST([REPLACE_PREAD]) REPLACE_PWRITE=0; AC_SUBST([REPLACE_PWRITE]) REPLACE_READ=0; AC_SUBST([REPLACE_READ]) REPLACE_READLINK=0; AC_SUBST([REPLACE_READLINK]) REPLACE_RMDIR=0; AC_SUBST([REPLACE_RMDIR]) REPLACE_SLEEP=0; AC_SUBST([REPLACE_SLEEP]) REPLACE_SYMLINK=0; AC_SUBST([REPLACE_SYMLINK]) REPLACE_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R]) REPLACE_UNLINK=0; AC_SUBST([REPLACE_UNLINK]) REPLACE_UNLINKAT=0; AC_SUBST([REPLACE_UNLINKAT]) REPLACE_USLEEP=0; AC_SUBST([REPLACE_USLEEP]) REPLACE_WRITE=0; AC_SUBST([REPLACE_WRITE]) UNISTD_H_HAVE_WINSOCK2_H=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H]) UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS=0; AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS]) ]) libidn-1.28/gl/m4/warn-on-use.m40000644000000000000000000000415412153706066013145 00000000000000# warn-on-use.m4 serial 5 dnl Copyright (C) 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. # # See warn-on-use.h for some hints on how to poison function names, as # well as ideas on poisoning global variables and macros. NAMES may # include global variables, but remember that only functions work with # _GL_WARN_ON_USE. Typically, INCLUDES only needs to list a single # header, but if the replacement header pulls in other headers because # some systems declare functions in the wrong header, then INCLUDES # should do likewise. # # It is generally safe to assume declarations for functions declared # in the intersection of C89 and C11 (such as printf) without # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ m4_foreach_w([gl_decl], [$2], [AH_TEMPLATE([HAVE_RAW_DECL_]AS_TR_CPP(m4_defn([gl_decl])), [Define to 1 if ]m4_defn([gl_decl])[ is declared even after undefining macros.])])dnl dnl FIXME: gl_Symbol must be used unquoted until we can assume dnl autoconf 2.64 or newer. for gl_func in m4_flatten([$2]); do AS_VAR_PUSHDEF([gl_Symbol], [gl_cv_have_raw_decl_$gl_func])dnl AC_CACHE_CHECK([whether $gl_func is declared without a macro], gl_Symbol, [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [@%:@undef $gl_func (void) $gl_func;])], [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) AS_VAR_IF(gl_Symbol, [yes], [AC_DEFINE_UNQUOTED(AS_TR_CPP([HAVE_RAW_DECL_$gl_func]), [1]) dnl shortcut - if the raw declaration exists, then set a cache dnl variable to allow skipping any later AC_CHECK_DECL efforts eval ac_cv_have_decl_$gl_func=yes]) AS_VAR_POPDEF([gl_Symbol])dnl done ]) libidn-1.28/gl/m4/dup2.m40000644000000000000000000000546412153706065011650 00000000000000#serial 19 dnl Copyright (C) 2002, 2005, 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_DUP2], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [ AC_CHECK_FUNCS_ONCE([dup2]) if test $ac_cv_func_dup2 = no; then HAVE_DUP2=0 fi ], [ AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.]) ]) if test $HAVE_DUP2 = 1; then AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works], [AC_RUN_IFELSE([ AC_LANG_PROGRAM([[#include #include #include ]], [int result = 0; #ifdef FD_CLOEXEC if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1) result |= 1; #endif if (dup2 (1, 1) == 0) result |= 2; #ifdef FD_CLOEXEC if (fcntl (1, F_GETFD) != FD_CLOEXEC) result |= 4; #endif close (0); if (dup2 (0, 0) != -1) result |= 8; /* Many gnulib modules require POSIX conformance of EBADF. */ if (dup2 (2, 1000000) == -1 && errno != EBADF) result |= 16; /* Flush out a cygwin core dump. */ if (dup2 (2, -1) != -1 || errno != EBADF) result |= 32; return result; ]) ], [gl_cv_func_dup2_works=yes], [gl_cv_func_dup2_works=no], [case "$host_os" in mingw*) # on this platform, dup2 always returns 0 for success gl_cv_func_dup2_works="guessing no" ;; cygwin*) # on cygwin 1.5.x, dup2(1,1) returns 0 gl_cv_func_dup2_works="guessing no" ;; linux*) # On linux between 2008-07-27 and 2009-05-11, dup2 of a # closed fd may yield -EBADF instead of -1 / errno=EBADF. gl_cv_func_dup2_works="guessing no" ;; freebsd*) # on FreeBSD 6.1, dup2(1,1000000) gives EMFILE, not EBADF. gl_cv_func_dup2_works="guessing no" ;; haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC. gl_cv_func_dup2_works="guessing no" ;; *) gl_cv_func_dup2_works="guessing yes" ;; esac]) ]) case "$gl_cv_func_dup2_works" in *yes) ;; *) REPLACE_DUP2=1 ;; esac fi dnl Replace dup2() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then if test $HAVE_DUP2 = 1; then REPLACE_DUP2=1 fi fi ]) ]) # Prerequisites of lib/dup2.c. AC_DEFUN([gl_PREREQ_DUP2], []) libidn-1.28/gl/m4/off_t.m40000644000000000000000000000100612153706065012057 00000000000000# off_t.m4 serial 1 dnl Copyright (C) 2012-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Check whether to override the 'off_t' type. dnl Set WINDOWS_64_BIT_OFF_T. AC_DEFUN([gl_TYPE_OFF_T], [ m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_OFF_T=0 ]) AC_SUBST([WINDOWS_64_BIT_OFF_T]) ]) libidn-1.28/gl/m4/stat.m40000644000000000000000000000521412153706065011742 00000000000000# serial 11 # Copyright (C) 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STAT], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) dnl mingw is the only known platform where stat(".") and stat("./") differ AC_CACHE_CHECK([whether stat handles trailing slashes on directories], [gl_cv_func_stat_dir_slash], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[struct stat st; return stat (".", &st) != stat ("./", &st);]])], [gl_cv_func_stat_dir_slash=yes], [gl_cv_func_stat_dir_slash=no], [case $host_os in mingw*) gl_cv_func_stat_dir_slash="guessing no";; *) gl_cv_func_stat_dir_slash="guessing yes";; esac])]) dnl AIX 7.1, Solaris 9, mingw64 mistakenly succeed on stat("file/"). dnl (For mingw, this is due to a broken stat() override in libmingwex.a.) dnl FreeBSD 7.2 mistakenly succeeds on stat("link-to-file/"). AC_CACHE_CHECK([whether stat handles trailing slashes on files], [gl_cv_func_stat_file_slash], [touch conftest.tmp # Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int result = 0; struct stat st; if (!stat ("conftest.tmp/", &st)) result |= 1; #if HAVE_LSTAT if (!stat ("conftest.lnk/", &st)) result |= 2; #endif return result; ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_stat_file_slash="guessing no" ;; esac ]) rm -f conftest.tmp conftest.lnk]) case $gl_cv_func_stat_dir_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_DIR], [1], [Define to 1 if stat needs help when passed a directory name with a trailing slash]);; esac case $gl_cv_func_stat_file_slash in *no) REPLACE_STAT=1 AC_DEFINE([REPLACE_FUNC_STAT_FILE], [1], [Define to 1 if stat needs help when passed a file name with a trailing slash]);; esac ]) # Prerequisites of lib/stat.c. AC_DEFUN([gl_PREREQ_STAT], [:]) libidn-1.28/gl/m4/fdopen.m40000644000000000000000000000246112153706065012243 00000000000000# fdopen.m4 serial 3 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FDOPEN], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FDOPEN=1 else dnl Test whether fdopen() sets errno when it fails due to a bad fd argument. AC_CACHE_CHECK([whether fdopen sets errno], [gl_cv_func_fdopen_works], [ AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include int main (void) { FILE *fp; errno = 0; fp = fdopen (-1, "r"); if (fp == NULL && errno == 0) return 1; return 0; }]])], [gl_cv_func_fdopen_works=yes], [gl_cv_func_fdopen_works=no], [case "$host_os" in mingw*) gl_cv_func_fdopen_works="guessing no" ;; *) gl_cv_func_fdopen_works="guessing yes" ;; esac ]) ]) case "$gl_cv_func_fdopen_works" in *no) REPLACE_FDOPEN=1 ;; esac fi ]) dnl Prerequisites of lib/fdopen.c. AC_DEFUN([gl_PREREQ_FDOPEN], []) libidn-1.28/gl/m4/time_h.m40000644000000000000000000001020612153706066012232 00000000000000# Configure a more-standard replacement for . # Copyright (C) 2000-2001, 2003-2007, 2009-2013 Free Software Foundation, Inc. # serial 7 # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert and Jim Meyering. AC_DEFUN([gl_HEADER_TIME_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_TIME_H_BODY]) ]) AC_DEFUN([gl_HEADER_TIME_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_NEXT_HEADERS([time.h]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC]) ]) dnl Check whether 'struct timespec' is declared dnl in time.h, sys/time.h, or pthread.h. AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [ AC_CHECK_HEADERS_ONCE([sys/time.h]) AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_time_h=yes], [gl_cv_sys_struct_timespec_in_time_h=no])]) TIME_H_DEFINES_STRUCT_TIMESPEC=0 SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0 PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0 if test $gl_cv_sys_struct_timespec_in_time_h = yes; then TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_sys_time_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_sys_time_h=yes], [gl_cv_sys_struct_timespec_in_sys_time_h=no])]) if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1 else AC_CACHE_CHECK([for struct timespec in ], [gl_cv_sys_struct_timespec_in_pthread_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[static struct timespec x; x.tv_sec = x.tv_nsec;]])], [gl_cv_sys_struct_timespec_in_pthread_h=yes], [gl_cv_sys_struct_timespec_in_pthread_h=no])]) if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1 fi fi fi AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC]) AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC]) ]) AC_DEFUN([gl_TIME_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], [ GNULIB_MKTIME=0; AC_SUBST([GNULIB_MKTIME]) GNULIB_NANOSLEEP=0; AC_SUBST([GNULIB_NANOSLEEP]) GNULIB_STRPTIME=0; AC_SUBST([GNULIB_STRPTIME]) GNULIB_TIMEGM=0; AC_SUBST([GNULIB_TIMEGM]) GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R]) HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP]) HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME]) HAVE_TIMEGM=1; AC_SUBST([HAVE_TIMEGM]) dnl If another module says to replace or to not replace, do that. dnl Otherwise, replace only if someone compiles with -DGNULIB_PORTCHECK; dnl this lets maintainers check for portability. REPLACE_LOCALTIME_R=GNULIB_PORTCHECK; AC_SUBST([REPLACE_LOCALTIME_R]) REPLACE_MKTIME=GNULIB_PORTCHECK; AC_SUBST([REPLACE_MKTIME]) REPLACE_NANOSLEEP=GNULIB_PORTCHECK; AC_SUBST([REPLACE_NANOSLEEP]) REPLACE_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM]) ]) libidn-1.28/gl/m4/stdint.m40000644000000000000000000003701412153706065012277 00000000000000# stdint.m4 serial 43 dnl Copyright (C) 2001-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Bruno Haible. dnl Test whether is supported or must be substituted. AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl dnl Check for long long int and unsigned long long int. AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) if test $ac_cv_type_long_long_int = yes; then HAVE_LONG_LONG_INT=1 else HAVE_LONG_LONG_INT=0 fi AC_SUBST([HAVE_LONG_LONG_INT]) AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT]) if test $ac_cv_type_unsigned_long_long_int = yes; then HAVE_UNSIGNED_LONG_LONG_INT=1 else HAVE_UNSIGNED_LONG_LONG_INT=0 fi AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT]) dnl Check for , in the same way as gl_WCHAR_H does. AC_CHECK_HEADERS_ONCE([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) dnl Check for . dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h. if test $ac_cv_header_inttypes_h = yes; then HAVE_INTTYPES_H=1 else HAVE_INTTYPES_H=0 fi AC_SUBST([HAVE_INTTYPES_H]) dnl Check for . dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h. if test $ac_cv_header_sys_types_h = yes; then HAVE_SYS_TYPES_H=1 else HAVE_SYS_TYPES_H=0 fi AC_SUBST([HAVE_SYS_TYPES_H]) gl_CHECK_NEXT_HEADERS([stdint.h]) if test $ac_cv_header_stdint_h = yes; then HAVE_STDINT_H=1 else HAVE_STDINT_H=0 fi AC_SUBST([HAVE_STDINT_H]) dnl Now see whether we need a substitute . if test $ac_cv_header_stdint_h = yes; then AC_CACHE_CHECK([whether stdint.h conforms to C99], [gl_cv_header_working_stdint_h], [gl_cv_header_working_stdint_h=no AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include /* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in . */ #if !(defined WCHAR_MIN && defined WCHAR_MAX) #error "WCHAR_MIN, WCHAR_MAX not defined in " #endif ] gl_STDINT_INCLUDES [ #ifdef INT8_MAX int8_t a1 = INT8_MAX; int8_t a1min = INT8_MIN; #endif #ifdef INT16_MAX int16_t a2 = INT16_MAX; int16_t a2min = INT16_MIN; #endif #ifdef INT32_MAX int32_t a3 = INT32_MAX; int32_t a3min = INT32_MIN; #endif #ifdef INT64_MAX int64_t a4 = INT64_MAX; int64_t a4min = INT64_MIN; #endif #ifdef UINT8_MAX uint8_t b1 = UINT8_MAX; #else typedef int b1[(unsigned char) -1 != 255 ? 1 : -1]; #endif #ifdef UINT16_MAX uint16_t b2 = UINT16_MAX; #endif #ifdef UINT32_MAX uint32_t b3 = UINT32_MAX; #endif #ifdef UINT64_MAX uint64_t b4 = UINT64_MAX; #endif int_least8_t c1 = INT8_C (0x7f); int_least8_t c1max = INT_LEAST8_MAX; int_least8_t c1min = INT_LEAST8_MIN; int_least16_t c2 = INT16_C (0x7fff); int_least16_t c2max = INT_LEAST16_MAX; int_least16_t c2min = INT_LEAST16_MIN; int_least32_t c3 = INT32_C (0x7fffffff); int_least32_t c3max = INT_LEAST32_MAX; int_least32_t c3min = INT_LEAST32_MIN; int_least64_t c4 = INT64_C (0x7fffffffffffffff); int_least64_t c4max = INT_LEAST64_MAX; int_least64_t c4min = INT_LEAST64_MIN; uint_least8_t d1 = UINT8_C (0xff); uint_least8_t d1max = UINT_LEAST8_MAX; uint_least16_t d2 = UINT16_C (0xffff); uint_least16_t d2max = UINT_LEAST16_MAX; uint_least32_t d3 = UINT32_C (0xffffffff); uint_least32_t d3max = UINT_LEAST32_MAX; uint_least64_t d4 = UINT64_C (0xffffffffffffffff); uint_least64_t d4max = UINT_LEAST64_MAX; int_fast8_t e1 = INT_FAST8_MAX; int_fast8_t e1min = INT_FAST8_MIN; int_fast16_t e2 = INT_FAST16_MAX; int_fast16_t e2min = INT_FAST16_MIN; int_fast32_t e3 = INT_FAST32_MAX; int_fast32_t e3min = INT_FAST32_MIN; int_fast64_t e4 = INT_FAST64_MAX; int_fast64_t e4min = INT_FAST64_MIN; uint_fast8_t f1 = UINT_FAST8_MAX; uint_fast16_t f2 = UINT_FAST16_MAX; uint_fast32_t f3 = UINT_FAST32_MAX; uint_fast64_t f4 = UINT_FAST64_MAX; #ifdef INTPTR_MAX intptr_t g = INTPTR_MAX; intptr_t gmin = INTPTR_MIN; #endif #ifdef UINTPTR_MAX uintptr_t h = UINTPTR_MAX; #endif intmax_t i = INTMAX_MAX; uintmax_t j = UINTMAX_MAX; #include /* for CHAR_BIT */ #define TYPE_MINIMUM(t) \ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) ((t) 0 < (t) -1 \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) struct s { int check_PTRDIFF: PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t) && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t) ? 1 : -1; /* Detect bug in FreeBSD 6.0 / ia64. */ int check_SIG_ATOMIC: SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t) && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t) ? 1 : -1; int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1; int check_WCHAR: WCHAR_MIN == TYPE_MINIMUM (wchar_t) && WCHAR_MAX == TYPE_MAXIMUM (wchar_t) ? 1 : -1; /* Detect bug in mingw. */ int check_WINT: WINT_MIN == TYPE_MINIMUM (wint_t) && WINT_MAX == TYPE_MAXIMUM (wint_t) ? 1 : -1; /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */ int check_UINT8_C: (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1; int check_UINT16_C: (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1; /* Detect bugs in OpenBSD 3.9 stdint.h. */ #ifdef UINT8_MAX int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1; #endif #ifdef UINT16_MAX int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1; #endif #ifdef UINT32_MAX int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1; #endif #ifdef UINT64_MAX int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1; #endif int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1; int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1; int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1; int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1; int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1; int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1; int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1; int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1; int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1; int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1; int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1; }; ]])], [dnl Determine whether the various *_MIN, *_MAX macros are usable dnl in preprocessor expression. We could do it by compiling a test dnl program for each of these macros. It is faster to run a program dnl that inspects the macro expansion. dnl This detects a bug on HP-UX 11.23/ia64. AC_RUN_IFELSE([ AC_LANG_PROGRAM([[ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */ #include ] gl_STDINT_INCLUDES [ #include #include #define MVAL(macro) MVAL1(macro) #define MVAL1(expression) #expression static const char *macro_values[] = { #ifdef INT8_MAX MVAL (INT8_MAX), #endif #ifdef INT16_MAX MVAL (INT16_MAX), #endif #ifdef INT32_MAX MVAL (INT32_MAX), #endif #ifdef INT64_MAX MVAL (INT64_MAX), #endif #ifdef UINT8_MAX MVAL (UINT8_MAX), #endif #ifdef UINT16_MAX MVAL (UINT16_MAX), #endif #ifdef UINT32_MAX MVAL (UINT32_MAX), #endif #ifdef UINT64_MAX MVAL (UINT64_MAX), #endif NULL }; ]], [[ const char **mv; for (mv = macro_values; *mv != NULL; mv++) { const char *value = *mv; /* Test whether it looks like a cast expression. */ if (strncmp (value, "((unsigned int)"/*)*/, 15) == 0 || strncmp (value, "((unsigned short)"/*)*/, 17) == 0 || strncmp (value, "((unsigned char)"/*)*/, 16) == 0 || strncmp (value, "((int)"/*)*/, 6) == 0 || strncmp (value, "((signed short)"/*)*/, 15) == 0 || strncmp (value, "((signed char)"/*)*/, 14) == 0) return mv - macro_values + 1; } return 0; ]])], [gl_cv_header_working_stdint_h=yes], [], [dnl When cross-compiling, assume it works. gl_cv_header_working_stdint_h=yes ]) ]) ]) fi if test "$gl_cv_header_working_stdint_h" = yes; then STDINT_H= else dnl Check for , and for dnl (used in Linux libc4 >= 4.6.7 and libc5). AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h]) if test $ac_cv_header_sys_inttypes_h = yes; then HAVE_SYS_INTTYPES_H=1 else HAVE_SYS_INTTYPES_H=0 fi AC_SUBST([HAVE_SYS_INTTYPES_H]) if test $ac_cv_header_sys_bitypes_h = yes; then HAVE_SYS_BITYPES_H=1 else HAVE_SYS_BITYPES_H=0 fi AC_SUBST([HAVE_SYS_BITYPES_H]) gl_STDINT_TYPE_PROPERTIES STDINT_H=stdint.h fi AC_SUBST([STDINT_H]) AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"]) ]) dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES) dnl Determine the size of each of the given types in bits. AC_DEFUN([gl_STDINT_BITSIZEOF], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to the number of bits in type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}], [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [$2 #include ], [result=unknown]) eval gl_cv_bitsizeof_${gltype}=\$result ]) eval result=\$gl_cv_bitsizeof_${gltype} if test $result = unknown; then dnl Use a nonempty default, because some compilers, such as IRIX 5 cc, dnl do a syntax check even on unused #if conditions and give an error dnl on valid C code like this: dnl #if 0 dnl # if > 32 dnl # endif dnl #endif result=0 fi GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result]) eval BITSIZEOF_${GLTYPE}=\$result done m4_foreach_w([gltype], [$1], [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES) dnl Determine the signedness of each of the given types. dnl Define HAVE_SIGNED_TYPE if type is signed. AC_DEFUN([gl_CHECK_TYPES_SIGNED], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]), [Define to 1 if ']gltype[' is a signed integer type.])]) for gltype in $1 ; do AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])], result=yes, result=no) eval gl_cv_type_${gltype}_signed=\$result ]) eval result=\$gl_cv_type_${gltype}_signed GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if test "$result" = yes; then AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1]) eval HAVE_SIGNED_${GLTYPE}=1 else eval HAVE_SIGNED_${GLTYPE}=0 fi done m4_foreach_w([gltype], [$1], [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))]) ]) dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES) dnl Determine the suffix to use for integer constants of the given types. dnl Define t_SUFFIX for each such type. AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], [ dnl Use a shell loop, to avoid bloating configure, and dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into dnl config.h.in, dnl - extra AC_SUBST calls, so that the right substitutions are made. m4_foreach_w([gltype], [$1], [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX], [Define to l, ll, u, ul, ull, etc., as suitable for constants of type ']gltype['.])]) for gltype in $1 ; do AC_CACHE_CHECK([for $gltype integer literal suffix], [gl_cv_type_${gltype}_suffix], [eval gl_cv_type_${gltype}_suffix=no eval result=\$gl_cv_type_${gltype}_signed if test "$result" = yes; then glsufu= else glsufu=u fi for glsuf in "$glsufu" ${glsufu}l ${glsufu}ll ${glsufu}i64; do case $glsuf in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; i64) gltype1='__int64';; u) gltype1='unsigned int';; ul) gltype1='unsigned long int';; ull) gltype1='unsigned long long int';; ui64)gltype1='unsigned __int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([$2[ extern $gltype foo; extern $gltype1 foo;]])], [eval gl_cv_type_${gltype}_suffix=\$glsuf]) eval result=\$gl_cv_type_${gltype}_suffix test "$result" != no && break done]) GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` eval result=\$gl_cv_type_${gltype}_suffix test "$result" = no && result= eval ${GLTYPE}_SUFFIX=\$result AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result]) done m4_foreach_w([gltype], [$1], [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])]) ]) dnl gl_STDINT_INCLUDES AC_DEFUN([gl_STDINT_INCLUDES], [[ /* BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #if HAVE_WCHAR_H # include # include # include #endif ]]) dnl gl_STDINT_TYPE_PROPERTIES dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t dnl of interest to stdint.in.h. AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [ AC_REQUIRE([gl_MULTIARCH]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_STDINT_BITSIZEOF([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) gl_cv_type_ptrdiff_t_signed=yes gl_cv_type_size_t_signed=no if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], [gl_STDINT_INCLUDES]) fi gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES]) dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99 dnl requirement that wint_t is "unchanged by default argument promotions". dnl In this case gnulib's and override wint_t. dnl Set the variable BITSIZEOF_WINT_T accordingly. if test $BITSIZEOF_WINT_T -lt 32; then BITSIZEOF_WINT_T=32 fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) # Hey Emacs! # Local Variables: # indent-tabs-mode: nil # End: libidn-1.28/gl/m4/manywarnings.m40000644000000000000000000001412712153706065013507 00000000000000# manywarnings.m4 serial 5 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_MANYWARN_COMPLEMENT(OUTVAR, LISTVAR, REMOVEVAR) # -------------------------------------------------- # Copy LISTVAR to OUTVAR except for the entries in REMOVEVAR. # Elements separated by whitespace. In set logic terms, the function # does OUTVAR = LISTVAR \ REMOVEVAR. AC_DEFUN([gl_MANYWARN_COMPLEMENT], [ gl_warn_set= set x $2; shift for gl_warn_item do case " $3 " in *" $gl_warn_item "*) ;; *) gl_warn_set="$gl_warn_set $gl_warn_item" ;; esac done $1=$gl_warn_set ]) # gl_MANYWARN_ALL_GCC(VARIABLE) # ----------------------------- # Add all documented GCC warning parameters to variable VARIABLE. # Note that you need to test them using gl_WARN_ADD if you want to # make sure your gcc understands it. AC_DEFUN([gl_MANYWARN_ALL_GCC], [ dnl First, check for some issues that only occur when combining multiple dnl gcc warning categories. AC_REQUIRE([AC_PROG_CC]) if test -n "$GCC"; then dnl Check if -W -Werror -Wno-missing-field-initializers is supported dnl with the current $CC $CFLAGS $CPPFLAGS. AC_MSG_CHECKING([whether -Wno-missing-field-initializers is supported]) AC_CACHE_VAL([gl_cv_cc_nomfi_supported], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_nomfi_supported=yes], [gl_cv_cc_nomfi_supported=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_nomfi_supported]) if test "$gl_cv_cc_nomfi_supported" = yes; then dnl Now check whether -Wno-missing-field-initializers is needed dnl for the { 0, } construct. AC_MSG_CHECKING([whether -Wno-missing-field-initializers is needed]) AC_CACHE_VAL([gl_cv_cc_nomfi_needed], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -W -Werror" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[void f (void) { typedef struct { int a; int b; } s_t; s_t s1 = { 0, }; } ]], [[]])], [gl_cv_cc_nomfi_needed=no], [gl_cv_cc_nomfi_needed=yes]) CFLAGS="$gl_save_CFLAGS" ]) AC_MSG_RESULT([$gl_cv_cc_nomfi_needed]) fi dnl Next, check if -Werror -Wuninitialized is useful with the dnl user's choice of $CFLAGS; some versions of gcc warn that it dnl has no effect if -O is not also used AC_MSG_CHECKING([whether -Wuninitialized is supported]) AC_CACHE_VAL([gl_cv_cc_uninitialized_supported], [ gl_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror -Wuninitialized" AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[]])], [gl_cv_cc_uninitialized_supported=yes], [gl_cv_cc_uninitialized_supported=no]) CFLAGS="$gl_save_CFLAGS"]) AC_MSG_RESULT([$gl_cv_cc_uninitialized_supported]) fi # List all gcc warning categories. gl_manywarn_set= for gl_manywarn_item in \ -W \ -Wabi \ -Waddress \ -Waggressive-loop-optimizations \ -Wall \ -Warray-bounds \ -Wattributes \ -Wbad-function-cast \ -Wbuiltin-macro-redefined \ -Wcast-align \ -Wchar-subscripts \ -Wclobbered \ -Wcomment \ -Wcomments \ -Wcoverage-mismatch \ -Wcpp \ -Wdeprecated \ -Wdeprecated-declarations \ -Wdisabled-optimization \ -Wdiv-by-zero \ -Wdouble-promotion \ -Wempty-body \ -Wendif-labels \ -Wenum-compare \ -Wextra \ -Wformat-contains-nul \ -Wformat-extra-args \ -Wformat-nonliteral \ -Wformat-security \ -Wformat-y2k \ -Wformat-zero-length \ -Wfree-nonheap-object \ -Wignored-qualifiers \ -Wimplicit \ -Wimplicit-function-declaration \ -Wimplicit-int \ -Winit-self \ -Winline \ -Wint-to-pointer-cast \ -Winvalid-memory-model \ -Winvalid-pch \ -Wjump-misses-init \ -Wlogical-op \ -Wmain \ -Wmaybe-uninitialized \ -Wmissing-braces \ -Wmissing-declarations \ -Wmissing-field-initializers \ -Wmissing-include-dirs \ -Wmissing-parameter-type \ -Wmissing-prototypes \ -Wmudflap \ -Wmultichar \ -Wnarrowing \ -Wnested-externs \ -Wnonnull \ -Wnormalized=nfc \ -Wold-style-declaration \ -Wold-style-definition \ -Woverflow \ -Woverlength-strings \ -Woverride-init \ -Wpacked \ -Wpacked-bitfield-compat \ -Wparentheses \ -Wpointer-arith \ -Wpointer-sign \ -Wpointer-to-int-cast \ -Wpragmas \ -Wreturn-local-addr \ -Wreturn-type \ -Wsequence-point \ -Wshadow \ -Wsizeof-pointer-memaccess \ -Wstack-protector \ -Wstrict-aliasing \ -Wstrict-overflow \ -Wstrict-prototypes \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wswitch \ -Wswitch-default \ -Wsync-nand \ -Wsystem-headers \ -Wtrampolines \ -Wtrigraphs \ -Wtype-limits \ -Wuninitialized \ -Wunknown-pragmas \ -Wunsafe-loop-optimizations \ -Wunused \ -Wunused-but-set-parameter \ -Wunused-but-set-variable \ -Wunused-function \ -Wunused-label \ -Wunused-local-typedefs \ -Wunused-macros \ -Wunused-parameter \ -Wunused-result \ -Wunused-value \ -Wunused-variable \ -Wvarargs \ -Wvariadic-macros \ -Wvector-operation-performance \ -Wvla \ -Wvolatile-register-var \ -Wwrite-strings \ \ ; do gl_manywarn_set="$gl_manywarn_set $gl_manywarn_item" done # Disable specific options as needed. if test "$gl_cv_cc_nomfi_needed" = yes; then gl_manywarn_set="$gl_manywarn_set -Wno-missing-field-initializers" fi if test "$gl_cv_cc_uninitialized_supported" = no; then gl_manywarn_set="$gl_manywarn_set -Wno-uninitialized" fi $1=$gl_manywarn_set ]) libidn-1.28/gl/m4/environ.m40000644000000000000000000000261612153706065012452 00000000000000# environ.m4 serial 6 dnl Copyright (C) 2001-2004, 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_ENVIRON], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl Persuade glibc to declare environ. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS_ONCE([unistd.h]) gt_CHECK_VAR_DECL( [#if HAVE_UNISTD_H #include #endif /* mingw, BeOS, Haiku declare environ in , not in . */ #include ], [environ]) if test $gt_cv_var_environ_declaration != yes; then HAVE_DECL_ENVIRON=0 fi ]) # Check if a variable is properly declared. # gt_CHECK_VAR_DECL(includes,variable) AC_DEFUN([gt_CHECK_VAR_DECL], [ define([gt_cv_var], [gt_cv_var_]$2[_declaration]) AC_MSG_CHECKING([if $2 is properly declared]) AC_CACHE_VAL([gt_cv_var], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[$1 extern struct { int foo; } $2;]], [[$2.foo = 1;]])], [gt_cv_var=no], [gt_cv_var=yes])]) AC_MSG_RESULT([$gt_cv_var]) if test $gt_cv_var = yes; then AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, [Define if you have the declaration of $2.]) fi undefine([gt_cv_var]) ]) libidn-1.28/gl/m4/00gnulib.m40000644000000000000000000000252212153706065012406 00000000000000# 00gnulib.m4 serial 2 dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl This file must be named something that sorts before all other dnl gnulib-provided .m4 files. It is needed until such time as we can dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics. # AC_DEFUN_ONCE([NAME], VALUE) # ---------------------------- # Define NAME to expand to VALUE on the first use (whether by direct # expansion, or by AC_REQUIRE), and to nothing on all subsequent uses. # Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This # definition is slower than the version in Autoconf 2.64, because it # can only use interfaces that existed since 2.59; but it achieves the # same effect. Quoting is necessary to avoid confusing Automake. m4_version_prereq([2.63.263], [], [m4_define([AC][_DEFUN_ONCE], [AC][_DEFUN([$1], [AC_REQUIRE([_gl_DEFUN_ONCE([$1])], [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl [AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])]) # gl_00GNULIB # ----------- # Witness macro that this file has been included. Needed to force # Automake to include this file prior to all other gnulib .m4 files. AC_DEFUN([gl_00GNULIB]) libidn-1.28/gl/m4/error.m40000644000000000000000000000151012153706065012113 00000000000000#serial 14 # Copyright (C) 1996-1998, 2001-2004, 2009-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_ERROR], [ dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer dnl maintained in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line], [AC_LINK_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[error_at_line (0, 0, "", 0, "an error occurred");]])], [ac_cv_lib_error_at_line=yes], [ac_cv_lib_error_at_line=no])]) ]) # Prerequisites of lib/error.c. AC_DEFUN([gl_PREREQ_ERROR], [ AC_REQUIRE([AC_FUNC_STRERROR_R]) : ]) libidn-1.28/gl/m4/strerror.m40000644000000000000000000000623612153706066012657 00000000000000# strerror.m4 serial 17 dnl Copyright (C) 2002, 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRERROR], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS]) ]) if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then AC_CACHE_CHECK([for working strerror function], [gl_cv_func_working_strerror], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[if (!*strerror (-2)) return 1;]])], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_working_strerror="guessing no" ;; esac ]) ]) case "$gl_cv_func_working_strerror" in *yes) ;; *) dnl The system's strerror() fails to return a string for out-of-range dnl integers. Replace it. REPLACE_STRERROR=1 ;; esac m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's dnl buffer, we must replace strerror. case "$gl_cv_func_strerror_r_works" in *no) REPLACE_STRERROR=1 ;; esac ]) else dnl The system's strerror() cannot know about the new errno values we add dnl to , or any fix for strerror(0). Replace it. REPLACE_STRERROR=1 fi ]) dnl Detect if strerror(0) passes (that is, does not set errno, and does not dnl return a string that matches strerror(-1)). AC_DEFUN([gl_FUNC_STRERROR_0], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles REPLACE_STRERROR_0=0 AC_CACHE_CHECK([whether strerror(0) succeeds], [gl_cv_func_strerror_0_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include ]], [[int result = 0; char *str; errno = 0; str = strerror (0); if (!*str) result |= 1; if (errno) result |= 2; if (strstr (str, "nknown") || strstr (str, "ndefined")) result |= 4; return result;]])], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_strerror_0_works="guessing no" ;; esac ]) ]) case "$gl_cv_func_strerror_0_works" in *yes) ;; *) REPLACE_STRERROR_0=1 AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0) does not return a message implying success.]) ;; esac ]) libidn-1.28/gl/m4/gnulib-comp.m40000644000000000000000000005063512167064646013221 00000000000000# DO NOT EDIT! GENERATED AUTOMATICALLY! # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([gl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable AC_REQUIRE([gl_PROG_AR_RANLIB]) # Code from module alloca-opt: # Code from module alloca-opt-tests: # Code from module autobuild: AB_INIT # Code from module binary-io: # Code from module binary-io-tests: # Code from module close: # Code from module close-tests: # Code from module csharpcomp-script: # Code from module csharpexec-script: # Code from module dosname: # Code from module dup2: # Code from module dup2-tests: # Code from module environ: # Code from module environ-tests: # Code from module errno: # Code from module errno-tests: # Code from module error: # Code from module extensions: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Code from module extern-inline: # Code from module fcntl-h: # Code from module fd-hook: # Code from module fdl-1.3: # Code from module fdopen: # Code from module fdopen-tests: # Code from module fgetc-tests: # Code from module fputc-tests: # Code from module fread-tests: # Code from module fstat: # Code from module fstat-tests: # Code from module fwrite-tests: # Code from module gendocs: # Code from module getcwd-lgpl: # Code from module getcwd-lgpl-tests: # Code from module getdtablesize: # Code from module getdtablesize-tests: # Code from module getopt-gnu: # Code from module getopt-posix: # Code from module getopt-posix-tests: # Code from module gettext-h: # Code from module gnumakefile: # Code from module gnupload: # Code from module ignore-value: # Code from module ignore-value-tests: # Code from module include_next: # Code from module intprops: # Code from module intprops-tests: # Code from module inttypes: # Code from module inttypes-incomplete: # Code from module inttypes-tests: # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # Code from module lstat: # Code from module lstat-tests: # Code from module maintainer-makefile: # Code from module malloc-posix: # Code from module malloca: # Code from module malloca-tests: # Code from module manywarnings: # Code from module msvc-inval: # Code from module msvc-nothrow: # Code from module multiarch: # Code from module nocrash: # Code from module open: # Code from module open-tests: # Code from module pathmax: # Code from module pathmax-tests: # Code from module pmccabe2html: # Code from module progname: # Code from module putenv: # Code from module same-inode: # Code from module setenv: # Code from module setenv-tests: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stat: # Code from module stat-tests: # Code from module stdarg: dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode dnl for the builtin va_copy to work. With Autoconf 2.60 or later, dnl gl_PROG_CC_C99 arranges for this. With older Autoconf gl_PROG_CC_C99 dnl shouldn't hurt, though installers are on their own to set c99 mode. gl_PROG_CC_C99 # Code from module stdbool: # Code from module stdbool-tests: # Code from module stddef: # Code from module stddef-tests: # Code from module stdint: # Code from module stdint-tests: # Code from module stdio: # Code from module stdio-tests: # Code from module stdlib: # Code from module strerror: # Code from module strerror-override: # Code from module strerror-tests: # Code from module string: # Code from module symlink: # Code from module symlink-tests: # Code from module sys_stat: # Code from module sys_types: # Code from module sys_types-tests: # Code from module test-framework-sh: # Code from module test-framework-sh-tests: # Code from module time: # Code from module unistd: # Code from module unsetenv: # Code from module unsetenv-tests: # Code from module update-copyright: # Code from module useless-if-before-free: # Code from module valgrind-tests: # Code from module vc-list-files: # Code from module vc-list-files-tests: # Code from module verify: # Code from module verify-tests: # Code from module version-etc: # Code from module version-etc-fsf: # Code from module version-etc-tests: # Code from module warnings: # Code from module wchar: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([gl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [true]) gl_cond_libtool=true gl_m4_base='gl/m4' m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES])) m4_pushdef([gl_LIBSOURCES_LIST], []) m4_pushdef([gl_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='gl' AC_REQUIRE([gt_CSHARPCOMP]) AC_CONFIG_FILES([csharpcomp.sh:build-aux/csharpcomp.sh.in]) # You need to invoke gt_CSHARPEXEC yourself, possibly with arguments. AC_CONFIG_FILES([csharpexec.sh:build-aux/csharpexec.sh.in]) gl_HEADER_ERRNO_H gl_ERROR if test $ac_cv_lib_error_at_line = no; then AC_LIBOBJ([error]) gl_PREREQ_ERROR fi m4_ifdef([AM_XGETTEXT_OPTION], [AM_][XGETTEXT_OPTION([--flag=error:3:c-format]) AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])]) AC_REQUIRE([gl_EXTERN_INLINE]) gl_FUNC_GETOPT_GNU if test $REPLACE_GETOPT = 1; then AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT dnl Arrange for unistd.h to include getopt.h. GNULIB_GL_UNISTD_H_GETOPT=1 fi AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) gl_FUNC_GETOPT_POSIX if test $REPLACE_GETOPT = 1; then AC_LIBOBJ([getopt]) AC_LIBOBJ([getopt1]) gl_PREREQ_GETOPT dnl Arrange for unistd.h to include getopt.h. GNULIB_GL_UNISTD_H_GETOPT=1 fi AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT]) AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) # Autoconf 2.61a.99 and earlier don't support linking a file only # in VPATH builds. But since GNUmakefile is for maintainer use # only, it does not matter if we skip the link with older autoconf. # Automake 1.10.1 and earlier try to remove GNUmakefile in non-VPATH # builds, so use a shell variable to bypass this. GNUmakefile=GNUmakefile m4_if(m4_version_compare([2.61a.100], m4_defn([m4_PACKAGE_VERSION])), [1], [], [AC_CONFIG_LINKS([$GNUmakefile:$GNUmakefile], [], [GNUmakefile=$GNUmakefile])]) AC_CONFIG_COMMANDS_PRE([m4_ifdef([AH_HEADER], [AC_SUBST([CONFIG_INCLUDE], m4_defn([AH_HEADER]))])]) gl_MSVC_INVAL if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-inval]) fi gl_MSVC_NOTHROW if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then AC_LIBOBJ([msvc-nothrow]) fi AC_PATH_PROG([PMCCABE], [pmccabe], [false]) AC_CHECK_DECLS([program_invocation_name], [], [], [#include ]) AC_CHECK_DECLS([program_invocation_short_name], [], [], [#include ]) gt_TYPE_SSIZE_T gl_STDARG_H gl_STDDEF_H gl_FUNC_STRERROR if test $REPLACE_STRERROR = 1; then AC_LIBOBJ([strerror]) fi gl_MODULE_INDICATOR([strerror]) gl_STRING_MODULE_INDICATOR([strerror]) AC_REQUIRE([gl_HEADER_ERRNO_H]) AC_REQUIRE([gl_FUNC_STRERROR_0]) if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then AC_LIBOBJ([strerror-override]) gl_PREREQ_SYS_H_WINSOCK2 fi gl_HEADER_STRING_H gl_SYS_TYPES_H AC_PROG_MKDIR_P gl_UNISTD_H gl_VALGRIND_TESTS gl_VERSION_ETC # End of code from modules m4_ifval(gl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ || for gl_file in ]gl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gl_LIBSOURCES_DIR]) m4_popdef([gl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gl_libobjs= gl_ltlibobjs= if test -n "$gl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gl_libobjs="$gl_libobjs $i.$ac_objext" gl_ltlibobjs="$gl_ltlibobjs $i.lo" done fi AC_SUBST([gl_LIBOBJS], [$gl_libobjs]) AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES])) m4_pushdef([gltests_LIBSOURCES_LIST], []) m4_pushdef([gltests_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='gltests' changequote(,)dnl gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([gltests_WITNESS]) gl_module_indicator_condition=$gltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) gl_FUNC_ALLOCA gl_FUNC_CLOSE if test $REPLACE_CLOSE = 1; then AC_LIBOBJ([close]) fi gl_UNISTD_MODULE_INDICATOR([close]) gl_FUNC_DUP2 if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then AC_LIBOBJ([dup2]) gl_PREREQ_DUP2 fi gl_UNISTD_MODULE_INDICATOR([dup2]) gl_ENVIRON gl_UNISTD_MODULE_INDICATOR([environ]) gl_FCNTL_H gl_FUNC_FDOPEN if test $REPLACE_FDOPEN = 1; then AC_LIBOBJ([fdopen]) gl_PREREQ_FDOPEN fi gl_STDIO_MODULE_INDICATOR([fdopen]) gl_FUNC_FSTAT if test $REPLACE_FSTAT = 1; then AC_LIBOBJ([fstat]) gl_PREREQ_FSTAT fi gl_SYS_STAT_MODULE_INDICATOR([fstat]) gl_FUNC_GETCWD_LGPL if test $REPLACE_GETCWD = 1; then AC_LIBOBJ([getcwd-lgpl]) fi gl_UNISTD_MODULE_INDICATOR([getcwd]) gl_FUNC_GETDTABLESIZE if test $HAVE_GETDTABLESIZE = 0; then AC_LIBOBJ([getdtablesize]) gl_PREREQ_GETDTABLESIZE fi gl_UNISTD_MODULE_INDICATOR([getdtablesize]) gl_INTTYPES_H gl_INTTYPES_INCOMPLETE AC_REQUIRE([gl_LARGEFILE]) gl_FUNC_LSTAT if test $REPLACE_LSTAT = 1; then AC_LIBOBJ([lstat]) gl_PREREQ_LSTAT fi gl_SYS_STAT_MODULE_INDICATOR([lstat]) gl_FUNC_MALLOC_POSIX if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-posix]) gl_MALLOCA gl_MULTIARCH gl_FUNC_OPEN if test $REPLACE_OPEN = 1; then AC_LIBOBJ([open]) gl_PREREQ_OPEN fi gl_FCNTL_MODULE_INDICATOR([open]) gl_PATHMAX gl_FUNC_PUTENV if test $REPLACE_PUTENV = 1; then AC_LIBOBJ([putenv]) gl_PREREQ_PUTENV fi gl_STDLIB_MODULE_INDICATOR([putenv]) gl_FUNC_SETENV if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then AC_LIBOBJ([setenv]) fi gl_STDLIB_MODULE_INDICATOR([setenv]) gl_FUNC_STAT if test $REPLACE_STAT = 1; then AC_LIBOBJ([stat]) gl_PREREQ_STAT fi gl_SYS_STAT_MODULE_INDICATOR([stat]) AM_STDBOOL_H gl_STDINT_H AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) gl_STDIO_H gl_STDLIB_H gl_FUNC_SYMLINK if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then AC_LIBOBJ([symlink]) fi gl_UNISTD_MODULE_INDICATOR([symlink]) gl_HEADER_SYS_STAT_H AC_PROG_MKDIR_P gl_HEADER_TIME_H gl_FUNC_UNSETENV if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then AC_LIBOBJ([unsetenv]) gl_PREREQ_UNSETENV fi gl_STDLIB_MODULE_INDICATOR([unsetenv]) gl_VALGRIND_TESTS abs_aux_dir=`cd "$ac_aux_dir"; pwd` AC_SUBST([abs_aux_dir]) gl_WCHAR_H m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(gltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ || for gl_file in ]gltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([gltests_LIBSOURCES_DIR]) m4_popdef([gltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ gltests_libobjs= gltests_ltlibobjs= if test -n "$gltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $gltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do gltests_libobjs="$gltests_libobjs $i.$ac_objext" gltests_ltlibobjs="$gltests_ltlibobjs $i.lo" done fi AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs]) AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs]) ]) LIBTESTS_LIBDEPS="$gltests_libdeps" AC_SUBST([LIBTESTS_LIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_LIBOBJ], [ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gl_LIBSOURCES_DIR], [gl]) m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_LIBOBJ], [ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into gltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([gltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([gltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([gltests_LIBSOURCES_DIR], [gltests]) m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([gl_FILE_LIST], [ build-aux/csharpcomp.sh.in build-aux/csharpexec.sh.in build-aux/gendocs.sh build-aux/gnupload build-aux/pmccabe.css build-aux/pmccabe2html build-aux/snippet/_Noreturn.h build-aux/snippet/arg-nonnull.h build-aux/snippet/c++defs.h build-aux/snippet/warn-on-use.h build-aux/update-copyright build-aux/useless-if-before-free build-aux/vc-list-files doc/fdl-1.3.texi doc/gendocs_template lib/errno.in.h lib/error.c lib/error.h lib/getopt.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h lib/gettext.h lib/intprops.h lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c lib/msvc-nothrow.h lib/progname.c lib/progname.h lib/stdarg.in.h lib/stddef.in.h lib/strerror-override.c lib/strerror-override.h lib/strerror.c lib/string.in.h lib/sys_types.in.h lib/unistd.c lib/unistd.in.h lib/verify.h lib/version-etc.c lib/version-etc.h m4/00gnulib.m4 m4/alloca.m4 m4/autobuild.m4 m4/close.m4 m4/csharp.m4 m4/csharpcomp.m4 m4/csharpexec.m4 m4/dup2.m4 m4/eealloc.m4 m4/environ.m4 m4/errno_h.m4 m4/error.m4 m4/extensions.m4 m4/extern-inline.m4 m4/fcntl-o.m4 m4/fcntl_h.m4 m4/fdopen.m4 m4/fstat.m4 m4/getcwd.m4 m4/getdtablesize.m4 m4/getopt.m4 m4/gnulib-common.m4 m4/include_next.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/largefile.m4 m4/longlong.m4 m4/lstat.m4 m4/malloc.m4 m4/malloca.m4 m4/manywarnings.m4 m4/mode_t.m4 m4/msvc-inval.m4 m4/msvc-nothrow.m4 m4/multiarch.m4 m4/nocrash.m4 m4/off_t.m4 m4/open.m4 m4/pathmax.m4 m4/putenv.m4 m4/setenv.m4 m4/ssize_t.m4 m4/stat.m4 m4/stdarg.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdio_h.m4 m4/stdlib_h.m4 m4/strerror.m4 m4/string_h.m4 m4/symlink.m4 m4/sys_socket_h.m4 m4/sys_stat_h.m4 m4/sys_types_h.m4 m4/time_h.m4 m4/unistd_h.m4 m4/valgrind-tests.m4 m4/version-etc.m4 m4/warn-on-use.m4 m4/warnings.m4 m4/wchar_h.m4 m4/wchar_t.m4 m4/wint_t.m4 tests/init.sh tests/macros.h tests/signature.h tests/test-alloca-opt.c tests/test-binary-io.c tests/test-binary-io.sh tests/test-close.c tests/test-dup2.c tests/test-environ.c tests/test-errno.c tests/test-fdopen.c tests/test-fgetc.c tests/test-fputc.c tests/test-fread.c tests/test-fstat.c tests/test-fwrite.c tests/test-getcwd-lgpl.c tests/test-getdtablesize.c tests/test-getopt.c tests/test-getopt.h tests/test-getopt_long.h tests/test-ignore-value.c tests/test-init.sh tests/test-intprops.c tests/test-inttypes.c tests/test-lstat.c tests/test-lstat.h tests/test-malloca.c tests/test-open.c tests/test-open.h tests/test-pathmax.c tests/test-setenv.c tests/test-stat.c tests/test-stat.h tests/test-stdbool.c tests/test-stddef.c tests/test-stdint.c tests/test-stdio.c tests/test-strerror.c tests/test-symlink.c tests/test-symlink.h tests/test-sys_types.c tests/test-unsetenv.c tests/test-vc-list-files-cvs.sh tests/test-vc-list-files-git.sh tests/test-verify.c tests/test-verify.sh tests/test-version-etc.c tests/test-version-etc.sh tests=lib/alloca.in.h tests=lib/binary-io.c tests=lib/binary-io.h tests=lib/close.c tests=lib/dosname.h tests=lib/dup2.c tests=lib/fcntl.in.h tests=lib/fd-hook.c tests=lib/fd-hook.h tests=lib/fdopen.c tests=lib/fstat.c tests=lib/getcwd-lgpl.c tests=lib/getdtablesize.c tests=lib/ignore-value.h tests=lib/inttypes.in.h tests=lib/lstat.c tests=lib/malloc.c tests=lib/malloca.c tests=lib/malloca.h tests=lib/malloca.valgrind tests=lib/open.c tests=lib/pathmax.h tests=lib/putenv.c tests=lib/same-inode.h tests=lib/setenv.c tests=lib/stat.c tests=lib/stdbool.in.h tests=lib/stdint.in.h tests=lib/stdio.in.h tests=lib/stdlib.in.h tests=lib/symlink.c tests=lib/sys_stat.in.h tests=lib/time.in.h tests=lib/unsetenv.c tests=lib/version-etc-fsf.c tests=lib/wchar.in.h top/GNUmakefile top/maint.mk ]) libidn-1.28/gl/m4/nocrash.m40000644000000000000000000001055512153706065012430 00000000000000# nocrash.m4 serial 4 dnl Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Based on libsigsegv, from Bruno Haible and Paolo Bonzini. AC_PREREQ([2.13]) dnl Expands to some code for use in .c programs that will cause the configure dnl test to exit instead of crashing. This is useful to avoid triggering dnl action from a background debugger and to avoid core dumps. dnl Usage: ... dnl ]GL_NOCRASH[ dnl ... dnl int main() { nocrash_init(); ... } AC_DEFUN([GL_NOCRASH],[[ #include #if defined __MACH__ && defined __APPLE__ /* Avoid a crash on Mac OS X. */ #include #include #include #include #include #include /* The exception port on which our thread listens. */ static mach_port_t our_exception_port; /* The main function of the thread listening for exceptions of type EXC_BAD_ACCESS. */ static void * mach_exception_thread (void *arg) { /* Buffer for a message to be received. */ struct { mach_msg_header_t head; mach_msg_body_t msgh_body; char data[1024]; } msg; mach_msg_return_t retval; /* Wait for a message on the exception port. */ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg), our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL); if (retval != MACH_MSG_SUCCESS) abort (); exit (1); } static void nocrash_init (void) { mach_port_t self = mach_task_self (); /* Allocate a port on which the thread shall listen for exceptions. */ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port) == KERN_SUCCESS) { /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */ if (mach_port_insert_right (self, our_exception_port, our_exception_port, MACH_MSG_TYPE_MAKE_SEND) == KERN_SUCCESS) { /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting for us. */ exception_mask_t mask = EXC_MASK_BAD_ACCESS; /* Create the thread listening on the exception port. */ pthread_attr_t attr; pthread_t thread; if (pthread_attr_init (&attr) == 0 && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0 && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) { pthread_attr_destroy (&attr); /* Replace the exception port info for these exceptions with our own. Note that we replace the exception port for the entire task, not only for a particular thread. This has the effect that when our exception port gets the message, the thread specific exception port has already been asked, and we don't need to bother about it. See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */ task_set_exception_ports (self, mask, our_exception_port, EXCEPTION_DEFAULT, MACHINE_THREAD_STATE); } } } } #elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include #include static LONG WINAPI exception_filter (EXCEPTION_POINTERS *ExceptionInfo) { switch (ExceptionInfo->ExceptionRecord->ExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: case EXCEPTION_IN_PAGE_ERROR: case EXCEPTION_STACK_OVERFLOW: case EXCEPTION_GUARD_PAGE: case EXCEPTION_PRIV_INSTRUCTION: case EXCEPTION_ILLEGAL_INSTRUCTION: case EXCEPTION_DATATYPE_MISALIGNMENT: case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: case EXCEPTION_NONCONTINUABLE_EXCEPTION: exit (1); } return EXCEPTION_CONTINUE_SEARCH; } static void nocrash_init (void) { SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter); } #else /* Avoid a crash on POSIX systems. */ #include /* A POSIX signal handler. */ static void exception_handler (int sig) { exit (1); } static void nocrash_init (void) { #ifdef SIGSEGV signal (SIGSEGV, exception_handler); #endif #ifdef SIGBUS signal (SIGBUS, exception_handler); #endif } #endif ]]) libidn-1.28/gl/m4/stddef_h.m40000644000000000000000000000275512153706065012556 00000000000000dnl A placeholder for POSIX 2008 , for platforms that have issues. # stddef_h.m4 serial 4 dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDDEF_H], [ AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) STDDEF_H= if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include int test[2 * (sizeof NULL == sizeof (void *)) -1]; ]])], [gl_cv_decl_null_works=yes], [gl_cv_decl_null_works=no])]) if test $gl_cv_decl_null_works = no; then REPLACE_NULL=1 STDDEF_H=stddef.h fi AC_SUBST([STDDEF_H]) AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"]) if test -n "$STDDEF_H"; then gl_NEXT_HEADERS([stddef.h]) fi ]) AC_DEFUN([gl_STDDEF_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_STDDEF_H_DEFAULTS], [ dnl Assume proper GNU behavior unless another module says otherwise. REPLACE_NULL=0; AC_SUBST([REPLACE_NULL]) HAVE_WCHAR_T=1; AC_SUBST([HAVE_WCHAR_T]) ]) libidn-1.28/gl/m4/string_h.m40000644000000000000000000001271412153706066012610 00000000000000# Configure a GNU-like replacement for . # Copyright (C) 2007-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 21 # Written by Paul Eggert. AC_DEFUN([gl_HEADER_STRING_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_HEADER_STRING_H_BODY]) ]) AC_DEFUN([gl_HEADER_STRING_H_BODY], [ AC_REQUIRE([AC_C_RESTRICT]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_NEXT_HEADERS([string.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include ]], [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp]) ]) AC_DEFUN([gl_STRING_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [ GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL]) GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL]) GNULIB_MEMCHR=0; AC_SUBST([GNULIB_MEMCHR]) GNULIB_MEMMEM=0; AC_SUBST([GNULIB_MEMMEM]) GNULIB_MEMPCPY=0; AC_SUBST([GNULIB_MEMPCPY]) GNULIB_MEMRCHR=0; AC_SUBST([GNULIB_MEMRCHR]) GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR]) GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY]) GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY]) GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL]) GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP]) GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT]) GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP]) GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN]) GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK]) GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP]) GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR]) GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR]) GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R]) GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN]) GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN]) GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR]) GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR]) GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR]) GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP]) GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP]) GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP]) GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR]) GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN]) GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK]) GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN]) GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP]) GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R]) GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR]) GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R]) GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL]) GNULIB_STRVERSCMP=0; AC_SUBST([GNULIB_STRVERSCMP]) HAVE_MBSLEN=0; AC_SUBST([HAVE_MBSLEN]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FFSL=1; AC_SUBST([HAVE_FFSL]) HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL]) HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR]) HAVE_DECL_MEMMEM=1; AC_SUBST([HAVE_DECL_MEMMEM]) HAVE_MEMPCPY=1; AC_SUBST([HAVE_MEMPCPY]) HAVE_DECL_MEMRCHR=1; AC_SUBST([HAVE_DECL_MEMRCHR]) HAVE_RAWMEMCHR=1; AC_SUBST([HAVE_RAWMEMCHR]) HAVE_STPCPY=1; AC_SUBST([HAVE_STPCPY]) HAVE_STPNCPY=1; AC_SUBST([HAVE_STPNCPY]) HAVE_STRCHRNUL=1; AC_SUBST([HAVE_STRCHRNUL]) HAVE_DECL_STRDUP=1; AC_SUBST([HAVE_DECL_STRDUP]) HAVE_DECL_STRNDUP=1; AC_SUBST([HAVE_DECL_STRNDUP]) HAVE_DECL_STRNLEN=1; AC_SUBST([HAVE_DECL_STRNLEN]) HAVE_STRPBRK=1; AC_SUBST([HAVE_STRPBRK]) HAVE_STRSEP=1; AC_SUBST([HAVE_STRSEP]) HAVE_STRCASESTR=1; AC_SUBST([HAVE_STRCASESTR]) HAVE_DECL_STRTOK_R=1; AC_SUBST([HAVE_DECL_STRTOK_R]) HAVE_DECL_STRERROR_R=1; AC_SUBST([HAVE_DECL_STRERROR_R]) HAVE_DECL_STRSIGNAL=1; AC_SUBST([HAVE_DECL_STRSIGNAL]) HAVE_STRVERSCMP=1; AC_SUBST([HAVE_STRVERSCMP]) REPLACE_MEMCHR=0; AC_SUBST([REPLACE_MEMCHR]) REPLACE_MEMMEM=0; AC_SUBST([REPLACE_MEMMEM]) REPLACE_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY]) REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP]) REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR]) REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR]) REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL]) REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR]) REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R]) REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT]) REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP]) REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN]) REPLACE_STRSIGNAL=0; AC_SUBST([REPLACE_STRSIGNAL]) REPLACE_STRTOK_R=0; AC_SUBST([REPLACE_STRTOK_R]) UNDEFINE_STRTOK_R=0; AC_SUBST([UNDEFINE_STRTOK_R]) ]) libidn-1.28/gl/m4/malloc.m40000644000000000000000000000627612153706065012247 00000000000000# malloc.m4 serial 14 dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. m4_version_prereq([2.70], [] ,[ # This is taken from the following Autoconf patch: # http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=7fbb553727ed7e0e689a17594b58559ecf3ea6e9 AC_DEFUN([_AC_FUNC_MALLOC_IF], [ AC_REQUIRE([AC_HEADER_STDC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles AC_CHECK_HEADERS([stdlib.h]) AC_CACHE_CHECK([for GNU libc compatible malloc], [ac_cv_func_malloc_0_nonnull], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#if defined STDC_HEADERS || defined HAVE_STDLIB_H # include #else char *malloc (); #endif ]], [[return ! malloc (0);]]) ], [ac_cv_func_malloc_0_nonnull=yes], [ac_cv_func_malloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. *-gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. *) ac_cv_func_malloc_0_nonnull=no ;; esac ]) ]) AS_IF([test $ac_cv_func_malloc_0_nonnull = yes], [$1], [$2]) ])# _AC_FUNC_MALLOC_IF ]) # gl_FUNC_MALLOC_GNU # ------------------ # Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if # it is not. AC_DEFUN([gl_FUNC_MALLOC_GNU], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) dnl _AC_FUNC_MALLOC_IF is defined in Autoconf. _AC_FUNC_MALLOC_IF( [AC_DEFINE([HAVE_MALLOC_GNU], [1], [Define to 1 if your system has a GNU libc compatible 'malloc' function, and to 0 otherwise.])], [AC_DEFINE([HAVE_MALLOC_GNU], [0]) REPLACE_MALLOC=1 ]) ]) # gl_FUNC_MALLOC_POSIX # -------------------- # Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it # fails), and replace malloc if it is not. AC_DEFUN([gl_FUNC_MALLOC_POSIX], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) if test $gl_cv_func_malloc_posix = yes; then AC_DEFINE([HAVE_MALLOC_POSIX], [1], [Define if the 'malloc' function is POSIX compliant.]) else REPLACE_MALLOC=1 fi ]) # Test whether malloc, realloc, calloc are POSIX compliant, # Set gl_cv_func_malloc_posix to yes or no accordingly. AC_DEFUN([gl_CHECK_MALLOC_POSIX], [ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant], [gl_cv_func_malloc_posix], [ dnl It is too dangerous to try to allocate a large amount of memory: dnl some systems go to their knees when you do that. So assume that dnl all Unix implementations of the function are POSIX compliant. AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[]], [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ choke me #endif ]])], [gl_cv_func_malloc_posix=yes], [gl_cv_func_malloc_posix=no]) ]) ]) libidn-1.28/gl/m4/version-etc.m40000644000000000000000000000222612153706066013226 00000000000000# version-etc.m4 serial 1 # Copyright (C) 2009-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl $1 - configure flag and define name dnl $2 - human readable description m4_define([gl_VERSION_ETC_FLAG], [dnl AC_ARG_WITH([$1], [AS_HELP_STRING([--with-$1], [$2])], [dnl case $withval in yes|no) ;; *) AC_DEFINE_UNQUOTED(AS_TR_CPP([PACKAGE_$1]), ["$withval"], [$2]) ;; esac ]) ]) AC_DEFUN([gl_VERSION_ETC], [dnl gl_VERSION_ETC_FLAG([packager], [String identifying the packager of this software]) gl_VERSION_ETC_FLAG([packager-version], [Packager-specific version information]) gl_VERSION_ETC_FLAG([packager-bug-reports], [Packager info for bug reports (URL/e-mail/...)]) if test "X$with_packager" = "X" && \ test "X$with_packager_version$with_packager_bug_reports" != "X" then AC_MSG_ERROR([The --with-packager-{bug-reports,version} options require --with-packager]) fi ]) libidn-1.28/gl/m4/gnulib-cache.m40000644000000000000000000000522212153706071013304 00000000000000# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the specification of how gnulib-tool is used. # It acts as a cache: It is written and read by gnulib-tool. # In projects that use version control, this file is meant to be put under # version control, like the configure.ac and various Makefile.am files. # Specification in the form of a command-line invocation: # gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gltests --aux-dir=build-aux --with-tests --avoid=fcntl-h-tests --avoid=stdlib-tests --avoid=string-tests --avoid=sys_stat-tests --avoid=time-tests --avoid=unistd-tests --avoid=update-copyright-tests --avoid=wchar-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files autobuild csharpcomp-script csharpexec-script error fdl-1.3 gendocs getopt-gnu gnupload maintainer-makefile manywarnings pmccabe2html progname update-copyright useless-if-before-free valgrind-tests vc-list-files version-etc warnings # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([gl/override]) gl_MODULES([ autobuild csharpcomp-script csharpexec-script error fdl-1.3 gendocs getopt-gnu gnupload maintainer-makefile manywarnings pmccabe2html progname update-copyright useless-if-before-free valgrind-tests vc-list-files version-etc warnings ]) gl_AVOID([fcntl-h-tests stdlib-tests string-tests sys_stat-tests time-tests unistd-tests update-copyright-tests wchar-tests]) gl_SOURCE_BASE([gl]) gl_M4_BASE([gl/m4]) gl_PO_BASE([]) gl_DOC_BASE([doc]) gl_TESTS_BASE([gltests]) gl_WITH_TESTS gl_LIB([libgnu]) gl_MAKEFILE_NAME([]) gl_LIBTOOL gl_MACRO_PREFIX([gl]) gl_PO_DOMAIN([]) gl_WITNESS_C_MACRO([]) gl_VC_FILES([false]) libidn-1.28/gl/m4/sys_socket_h.m40000644000000000000000000001416312153706066013470 00000000000000# sys_socket_h.m4 serial 23 dnl Copyright (C) 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson. AC_DEFUN([gl_HEADER_SYS_SOCKET], [ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have dnl old-style declarations (with return type 'int' instead of 'ssize_t') dnl unless _POSIX_PII_SOCKET is defined. case "$host_os" in osf*) AC_DEFINE([_POSIX_PII_SOCKET], [1], [Define to 1 in order to get the POSIX compatible declarations of socket functions.]) ;; esac AC_CACHE_CHECK([whether is self-contained], [gl_cv_header_sys_socket_h_selfcontained], [ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[]])], [gl_cv_header_sys_socket_h_selfcontained=yes], [gl_cv_header_sys_socket_h_selfcontained=no]) ]) if test $gl_cv_header_sys_socket_h_selfcontained = yes; then dnl If the shutdown function exists, should define dnl SHUT_RD, SHUT_WR, SHUT_RDWR. AC_CHECK_FUNCS([shutdown]) if test $ac_cv_func_shutdown = yes; then AC_CACHE_CHECK([whether defines the SHUT_* macros], [gl_cv_header_sys_socket_h_shut], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include ]], [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])], [gl_cv_header_sys_socket_h_shut=yes], [gl_cv_header_sys_socket_h_shut=no]) ]) if test $gl_cv_header_sys_socket_h_shut = no; then SYS_SOCKET_H='sys/socket.h' fi fi fi # We need to check for ws2tcpip.h now. gl_PREREQ_SYS_H_SOCKET AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[ /* sys/types.h is not needed according to POSIX, but the sys/socket.h in i386-unknown-freebsd4.10 and powerpc-apple-darwin5.5 required it. */ #include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]) if test $ac_cv_type_struct_sockaddr_storage = no; then HAVE_STRUCT_SOCKADDR_STORAGE=0 fi if test $ac_cv_type_sa_family_t = no; then HAVE_SA_FAMILY_T=0 fi if test $ac_cv_type_struct_sockaddr_storage != no; then AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family], [], [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0], [#include #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_WS2TCPIP_H #include #endif ]) fi if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then SYS_SOCKET_H='sys/socket.h' fi gl_PREREQ_SYS_H_WINSOCK2 dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Some systems require prerequisite headers. */ #include #include ]], [socket connect accept bind getpeername getsockname getsockopt listen recv send recvfrom sendto setsockopt shutdown accept4]) ]) AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [ dnl Check prerequisites of the replacement. AC_REQUIRE([gl_CHECK_SOCKET_HEADERS]) gl_CHECK_NEXT_HEADERS([sys/socket.h]) if test $ac_cv_header_sys_socket_h = yes; then HAVE_SYS_SOCKET_H=1 HAVE_WS2TCPIP_H=0 else HAVE_SYS_SOCKET_H=0 if test $ac_cv_header_ws2tcpip_h = yes; then HAVE_WS2TCPIP_H=1 else HAVE_WS2TCPIP_H=0 fi fi AC_SUBST([HAVE_SYS_SOCKET_H]) AC_SUBST([HAVE_WS2TCPIP_H]) ]) # Common prerequisites of the replacement and of the # replacement. # Sets and substitutes HAVE_WINSOCK2_H. AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], [ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])]) m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])]) AC_CHECK_HEADERS_ONCE([sys/socket.h]) if test $ac_cv_header_sys_socket_h != yes; then dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make dnl the check for those headers unconditional; yet cygwin reports dnl that the headers are present but cannot be compiled (since on dnl cygwin, all socket information should come from sys/socket.h). AC_CHECK_HEADERS([winsock2.h]) fi if test "$ac_cv_header_winsock2_h" = yes; then HAVE_WINSOCK2_H=1 UNISTD_H_HAVE_WINSOCK2_H=1 SYS_IOCTL_H_HAVE_WINSOCK2_H=1 else HAVE_WINSOCK2_H=0 fi AC_SUBST([HAVE_WINSOCK2_H]) ]) AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [ GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET]) GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT]) GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT]) GNULIB_BIND=0; AC_SUBST([GNULIB_BIND]) GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME]) GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME]) GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT]) GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN]) GNULIB_RECV=0; AC_SUBST([GNULIB_RECV]) GNULIB_SEND=0; AC_SUBST([GNULIB_SEND]) GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM]) GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO]) GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT]) GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN]) GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4]) HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE]) HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY]) HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T]) HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4]) ]) libidn-1.28/gl/m4/stdbool.m40000644000000000000000000000637112153706065012442 00000000000000# Check for stdbool.h that conforms to C99. dnl Copyright (C) 2002-2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. #serial 5 # Prepare for substituting if it is not supported. AC_DEFUN([AM_STDBOOL_H], [ AC_REQUIRE([AC_CHECK_HEADER_STDBOOL]) # Define two additional variables used in the Makefile substitution. if test "$ac_cv_header_stdbool_h" = yes; then STDBOOL_H='' else STDBOOL_H='stdbool.h' fi AC_SUBST([STDBOOL_H]) AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"]) if test "$ac_cv_type__Bool" = yes; then HAVE__BOOL=1 else HAVE__BOOL=0 fi AC_SUBST([HAVE__BOOL]) ]) # AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future. AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H]) # This version of the macro is needed in autoconf <= 2.68. AC_DEFUN([AC_CHECK_HEADER_STDBOOL], [AC_CACHE_CHECK([for stdbool.h that conforms to C99], [ac_cv_header_stdbool_h], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; ]], [[ bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ]])], [ac_cv_header_stdbool_h=yes], [ac_cv_header_stdbool_h=no])]) AC_CHECK_TYPES([_Bool]) ]) libidn-1.28/gl/m4/symlink.m40000644000000000000000000000347112153706066012461 00000000000000# serial 6 # See if we need to provide symlink replacement. dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Written by Eric Blake. AC_DEFUN([gl_FUNC_SYMLINK], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_FUNCS_ONCE([symlink]) dnl The best we can do on mingw is provide a dummy that always fails, so dnl that compilation can proceed with fewer ifdefs. On FreeBSD 7.2, AIX 7.1, dnl and Solaris 9, we want to fix a bug with trailing slash handling. if test $ac_cv_func_symlink = no; then HAVE_SYMLINK=0 else AC_CACHE_CHECK([whether symlink handles trailing slash correctly], [gl_cv_func_symlink_works], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int result = 0; if (!symlink ("a", "conftest.link/")) result |= 1; if (symlink ("conftest.f", "conftest.lnk2")) result |= 2; else if (!symlink ("a", "conftest.lnk2/")) result |= 4; return result; ]])], [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_symlink_works="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_symlink_works="guessing no" ;; esac ]) rm -f conftest.f conftest.link conftest.lnk2]) case "$gl_cv_func_symlink_works" in *yes) ;; *) REPLACE_SYMLINK=1 ;; esac fi ]) libidn-1.28/gl/m4/close.m40000644000000000000000000000214612153706065012075 00000000000000# close.m4 serial 8 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_CLOSE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_CLOSE=1 fi m4_ifdef([gl_PREREQ_SYS_H_WINSOCK2], [ gl_PREREQ_SYS_H_WINSOCK2 if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then dnl Even if the 'socket' module is not used here, another part of the dnl application may use it and pass file descriptors that refer to dnl sockets to the close() function. So enable the support for sockets. REPLACE_CLOSE=1 fi ]) dnl Replace close() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_CLOSE = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_CLOSE=1 fi fi ]) ]) libidn-1.28/gl/m4/open.m40000644000000000000000000000504612153706065011733 00000000000000# open.m4 serial 14 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_OPEN], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw* | pw*) REPLACE_OPEN=1 ;; *) dnl open("foo/") should not create a file when the file name has a dnl trailing slash. FreeBSD only has the problem on symlinks. AC_CHECK_FUNCS_ONCE([lstat]) AC_CACHE_CHECK([whether open recognizes a trailing slash], [gl_cv_func_open_slash], [# Assume that if we have lstat, we can also check symlinks. if test $ac_cv_func_lstat = yes; then touch conftest.tmp ln -s conftest.tmp conftest.lnk fi AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #if HAVE_UNISTD_H # include #endif int main () { int result = 0; #if HAVE_LSTAT if (open ("conftest.lnk/", O_RDONLY) != -1) result |= 1; #endif if (open ("conftest.sl/", O_CREAT, 0600) >= 0) result |= 2; return result; }]])], [gl_cv_func_open_slash=yes], [gl_cv_func_open_slash=no], [ changequote(,)dnl case "$host_os" in freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*) gl_cv_func_open_slash="guessing no" ;; *) gl_cv_func_open_slash="guessing yes" ;; esac changequote([,])dnl ]) rm -f conftest.sl conftest.tmp conftest.lnk ]) case "$gl_cv_func_open_slash" in *no) AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1], [Define to 1 if open() fails to recognize a trailing slash.]) REPLACE_OPEN=1 ;; esac ;; esac dnl Replace open() for supporting the gnulib-defined fchdir() function, dnl to keep fchdir's bookkeeping up-to-date. m4_ifdef([gl_FUNC_FCHDIR], [ if test $REPLACE_OPEN = 0; then gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then REPLACE_OPEN=1 fi fi ]) dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag. m4_ifdef([gl_NONBLOCKING_IO], [ if test $REPLACE_OPEN = 0; then gl_NONBLOCKING_IO if test $gl_cv_have_open_O_NONBLOCK != yes; then REPLACE_OPEN=1 fi fi ]) ]) # Prerequisites of lib/open.c. AC_DEFUN([gl_PREREQ_OPEN], [ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) : ]) libidn-1.28/gl/m4/sys_types_h.m40000644000000000000000000000121712153706066013340 00000000000000# sys_types_h.m4 serial 5 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_SYS_TYPES_H], [ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS]) gl_NEXT_HEADERS([sys/types.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override the 'off_t' type. AC_REQUIRE([gl_TYPE_OFF_T]) ]) AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [ ]) libidn-1.28/gl/m4/extern-inline.m40000644000000000000000000000537212166505337013560 00000000000000dnl 'extern inline' a la ISO C99. dnl Copyright 2012-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EXTERN_INLINE], [ AH_VERBATIM([extern_inline], [/* Please see the Gnulib manual for how to use these macros. Suppress extern inline with HP-UX cc, as it appears to be broken; see . Suppress extern inline with Sun C in standards-conformance mode, as it mishandles inline functions that call each other. E.g., for 'inline void f (void) { } inline void g (void) { f (); }', c99 incorrectly complains 'reference to static identifier "f" in extern inline function'. This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16. Suppress the use of extern inline on Apple's platforms, as Libc at least through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g., . Perhaps Apple will fix this some day. */ #if ((__GNUC__ \ ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ : (199901L <= __STDC_VERSION__ \ && !defined __HP_cc \ && !(defined __SUNPRO_C && __STDC__))) \ && !defined __APPLE__) # define _GL_INLINE inline # define _GL_EXTERN_INLINE extern inline #elif (2 < __GNUC__ + (7 <= __GNUC_MINOR__) && !defined __STRICT_ANSI__ \ && !defined __APPLE__) # if __GNUC_GNU_INLINE__ /* __gnu_inline__ suppresses a GCC 4.2 diagnostic. */ # define _GL_INLINE extern inline __attribute__ ((__gnu_inline__)) # else # define _GL_INLINE extern inline # endif # define _GL_EXTERN_INLINE extern #else # define _GL_INLINE static _GL_UNUSED # define _GL_EXTERN_INLINE static _GL_UNUSED #endif #if 4 < __GNUC__ + (6 <= __GNUC_MINOR__) # if defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ # define _GL_INLINE_HEADER_CONST_PRAGMA # else # define _GL_INLINE_HEADER_CONST_PRAGMA \ _Pragma ("GCC diagnostic ignored \"-Wsuggest-attribute=const\"") # endif /* Suppress GCC's bogus "no previous prototype for 'FOO'" and "no previous declaration for 'FOO'" diagnostics, when FOO is an inline function in the header; see . */ # define _GL_INLINE_HEADER_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-prototypes\"") \ _Pragma ("GCC diagnostic ignored \"-Wmissing-declarations\"") \ _GL_INLINE_HEADER_CONST_PRAGMA # define _GL_INLINE_HEADER_END \ _Pragma ("GCC diagnostic pop") #else # define _GL_INLINE_HEADER_BEGIN # define _GL_INLINE_HEADER_END #endif]) ]) libidn-1.28/gl/m4/wchar_h.m40000644000000000000000000002224012153706066012401 00000000000000dnl A placeholder for ISO C99 , for platforms that have issues. dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Eric Blake. # wchar_h.m4 serial 39 AC_DEFUN([gl_WCHAR_H], [ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) AC_REQUIRE([gl_WCHAR_H_INLINE_OK]) dnl Prepare for creating substitute . dnl Check for (missing in Linux uClibc when built without wide dnl character support). dnl is always overridden, because of GNULIB_POSIXCHECK. gl_CHECK_NEXT_HEADERS([wchar.h]) if test $ac_cv_header_wchar_h = yes; then HAVE_WCHAR_H=1 else HAVE_WCHAR_H=0 fi AC_SUBST([HAVE_WCHAR_H]) AC_REQUIRE([gl_FEATURES_H]) AC_REQUIRE([gt_TYPE_WINT_T]) if test $gt_cv_c_wint_t = yes; then HAVE_WINT_T=1 else HAVE_WINT_T=0 fi AC_SUBST([HAVE_WINT_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[ /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include # include # include #endif #include ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ]) ]) dnl Check whether is usable at all. AC_DEFUN([gl_WCHAR_H_INLINE_OK], [ dnl Test whether suffers due to the transition from '__inline' to dnl 'gnu_inline'. See dnl and . In summary, dnl glibc version 2.5 or older, together with gcc version 4.3 or newer and dnl the option -std=c99 or -std=gnu99, leads to a broken . AC_CACHE_CHECK([whether uses 'inline' correctly], [gl_cv_header_wchar_h_correct_inline], [gl_cv_header_wchar_h_correct_inline=yes AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include extern int zero (void); int main () { return zero(); } ]])]) if AC_TRY_EVAL([ac_compile]); then mv conftest.$ac_objext conftest1.$ac_objext AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . */ #include #include #include #include int zero (void) { return 0; } ]])]) if AC_TRY_EVAL([ac_compile]); then mv conftest.$ac_objext conftest2.$ac_objext if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then : else gl_cv_header_wchar_h_correct_inline=no fi fi fi rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([ cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). This is a known interoperability problem of glibc <= 2.5 with gcc >= 4.3 in C99 mode. You have four options: - Add the flag -fgnu89-inline to CC and reconfigure, or - Fix your include files, using parts of , or - Use a gcc version older than 4.3, or - Don't use the flags -std=c99 or -std=gnu99. Configuration aborted.]) fi ]) AC_DEFUN([gl_WCHAR_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCHAR_H_DEFAULTS], [ GNULIB_BTOWC=0; AC_SUBST([GNULIB_BTOWC]) GNULIB_WCTOB=0; AC_SUBST([GNULIB_WCTOB]) GNULIB_MBSINIT=0; AC_SUBST([GNULIB_MBSINIT]) GNULIB_MBRTOWC=0; AC_SUBST([GNULIB_MBRTOWC]) GNULIB_MBRLEN=0; AC_SUBST([GNULIB_MBRLEN]) GNULIB_MBSRTOWCS=0; AC_SUBST([GNULIB_MBSRTOWCS]) GNULIB_MBSNRTOWCS=0; AC_SUBST([GNULIB_MBSNRTOWCS]) GNULIB_WCRTOMB=0; AC_SUBST([GNULIB_WCRTOMB]) GNULIB_WCSRTOMBS=0; AC_SUBST([GNULIB_WCSRTOMBS]) GNULIB_WCSNRTOMBS=0; AC_SUBST([GNULIB_WCSNRTOMBS]) GNULIB_WCWIDTH=0; AC_SUBST([GNULIB_WCWIDTH]) GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR]) GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP]) GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY]) GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE]) GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET]) GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN]) GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN]) GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY]) GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY]) GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY]) GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY]) GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT]) GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT]) GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP]) GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP]) GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP]) GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP]) GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL]) GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM]) GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP]) GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR]) GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR]) GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN]) GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN]) GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK]) GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR]) GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK]) GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_BTOWC=1; AC_SUBST([HAVE_BTOWC]) HAVE_MBSINIT=1; AC_SUBST([HAVE_MBSINIT]) HAVE_MBRTOWC=1; AC_SUBST([HAVE_MBRTOWC]) HAVE_MBRLEN=1; AC_SUBST([HAVE_MBRLEN]) HAVE_MBSRTOWCS=1; AC_SUBST([HAVE_MBSRTOWCS]) HAVE_MBSNRTOWCS=1; AC_SUBST([HAVE_MBSNRTOWCS]) HAVE_WCRTOMB=1; AC_SUBST([HAVE_WCRTOMB]) HAVE_WCSRTOMBS=1; AC_SUBST([HAVE_WCSRTOMBS]) HAVE_WCSNRTOMBS=1; AC_SUBST([HAVE_WCSNRTOMBS]) HAVE_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR]) HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP]) HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY]) HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE]) HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET]) HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN]) HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN]) HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY]) HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY]) HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY]) HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY]) HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT]) HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT]) HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP]) HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP]) HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP]) HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP]) HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL]) HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM]) HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP]) HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR]) HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR]) HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN]) HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN]) HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK]) HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR]) HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK]) HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH]) HAVE_DECL_WCTOB=1; AC_SUBST([HAVE_DECL_WCTOB]) HAVE_DECL_WCWIDTH=1; AC_SUBST([HAVE_DECL_WCWIDTH]) REPLACE_MBSTATE_T=0; AC_SUBST([REPLACE_MBSTATE_T]) REPLACE_BTOWC=0; AC_SUBST([REPLACE_BTOWC]) REPLACE_WCTOB=0; AC_SUBST([REPLACE_WCTOB]) REPLACE_MBSINIT=0; AC_SUBST([REPLACE_MBSINIT]) REPLACE_MBRTOWC=0; AC_SUBST([REPLACE_MBRTOWC]) REPLACE_MBRLEN=0; AC_SUBST([REPLACE_MBRLEN]) REPLACE_MBSRTOWCS=0; AC_SUBST([REPLACE_MBSRTOWCS]) REPLACE_MBSNRTOWCS=0; AC_SUBST([REPLACE_MBSNRTOWCS]) REPLACE_WCRTOMB=0; AC_SUBST([REPLACE_WCRTOMB]) REPLACE_WCSRTOMBS=0; AC_SUBST([REPLACE_WCSRTOMBS]) REPLACE_WCSNRTOMBS=0; AC_SUBST([REPLACE_WCSNRTOMBS]) REPLACE_WCWIDTH=0; AC_SUBST([REPLACE_WCWIDTH]) REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH]) ]) libidn-1.28/gl/m4/stdio_h.m40000644000000000000000000002243312153706066012423 00000000000000# stdio_h.m4 serial 43 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDIO_H], [ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_NEXT_HEADERS([stdio.h]) dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FSCANF=1 gl_MODULE_INDICATOR([fscanf]) GNULIB_SCANF=1 gl_MODULE_INDICATOR([scanf]) GNULIB_FGETC=1 GNULIB_GETC=1 GNULIB_GETCHAR=1 GNULIB_FGETS=1 GNULIB_FREAD=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_READ_FUNCS=1 AC_LIBOBJ([stdio-read]) fi ]) dnl No need to create extra modules for these functions. Everyone who uses dnl likely needs them. GNULIB_FPRINTF=1 GNULIB_PRINTF=1 GNULIB_VFPRINTF=1 GNULIB_VPRINTF=1 GNULIB_FPUTC=1 GNULIB_PUTC=1 GNULIB_PUTCHAR=1 GNULIB_FPUTS=1 GNULIB_PUTS=1 GNULIB_FWRITE=1 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or dnl GNULIB_SIGPIPE redundant. m4_ifdef([gl_SIGNAL_SIGPIPE], [ gl_SIGNAL_SIGPIPE if test $gl_cv_header_signal_h_SIGPIPE != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c" dnl "expected source file, required through AC_LIBSOURCES, not found". It is dnl also an optimization, to avoid performing a configure check whose result dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING dnl or GNULIB_NONBLOCKING redundant. m4_ifdef([gl_NONBLOCKING_IO], [ gl_NONBLOCKING_IO if test $gl_cv_have_nonblocking != yes; then REPLACE_STDIO_WRITE_FUNCS=1 AC_LIBOBJ([stdio-write]) fi ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by both C89 and C11. gl_WARN_ON_USE_PREPARE([[#include ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen renameat snprintf tmpfile vdprintf vsnprintf]) ]) AC_DEFUN([gl_STDIO_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], [ GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF]) GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE]) GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN]) GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH]) GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC]) GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS]) GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN]) GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF]) GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX]) GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE]) GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC]) GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS]) GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD]) GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN]) GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF]) GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK]) GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO]) GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL]) GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO]) GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE]) GNULIB_GETC=0; AC_SUBST([GNULIB_GETC]) GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR]) GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM]) GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE]) GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF]) GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX]) GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE]) GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR]) GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN]) GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF]) GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX]) GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC]) GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR]) GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS]) GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE]) GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME]) GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT]) GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF]) GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF]) GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX]) GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING]) GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE]) GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE]) GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF]) GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF]) GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF]) GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF]) GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF]) GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX]) GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF]) GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX]) GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF]) GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE]) HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO]) HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO]) HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM]) HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE]) HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF]) HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF]) HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF]) HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF]) HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO]) HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO]) HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE]) HAVE_POPEN=1; AC_SUBST([HAVE_POPEN]) HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT]) HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF]) HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF]) REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF]) REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE]) REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN]) REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH]) REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN]) REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF]) REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE]) REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN]) REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK]) REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO]) REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL]) REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO]) REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM]) REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE]) REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF]) REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR]) REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN]) REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF]) REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE]) REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME]) REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT]) REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF]) REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF]) REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS]) REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS]) REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE]) REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF]) REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF]) REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF]) REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF]) REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF]) REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF]) ]) libidn-1.28/gl/m4/msvc-nothrow.m40000644000000000000000000000053012153706065013431 00000000000000# msvc-nothrow.m4 serial 1 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_NOTHROW], [ AC_REQUIRE([gl_MSVC_INVAL]) ]) libidn-1.28/gl/m4/csharpcomp.m40000644000000000000000000000462412153706065013132 00000000000000# csharpcomp.m4 serial 8 dnl Copyright (C) 2003-2005, 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Prerequisites of csharpcomp.sh. # Checks for a C# compiler. # Sets at most one of HAVE_CSCC, HAVE_MCS, HAVE_CSC. # Sets HAVE_CSHARPCOMP to nonempty if csharpcomp.sh will work. # Also sets CSHARPCOMPFLAGS. AC_DEFUN([gt_CSHARPCOMP], [ AC_REQUIRE([gt_CSHARP_CHOICE]) AC_MSG_CHECKING([for C[#] compiler]) HAVE_CSHARPCOMP=1 pushdef([AC_MSG_CHECKING],[:])dnl pushdef([AC_CHECKING],[:])dnl pushdef([AC_MSG_RESULT],[:])dnl AC_CHECK_PROG([HAVE_CSCC_IN_PATH], [cscc], [yes]) AC_CHECK_PROG([HAVE_MCS_IN_PATH], [mcs], [yes]) AC_CHECK_PROG([HAVE_CSC_IN_PATH], [csc], [yes]) popdef([AC_MSG_RESULT])dnl popdef([AC_CHECKING])dnl popdef([AC_MSG_CHECKING])dnl for impl in "$CSHARP_CHOICE" pnet mono sscli no; do case "$impl" in pnet) if test -n "$HAVE_CSCC_IN_PATH" \ && cscc --version >/dev/null 2>/dev/null \ && ( # See if pnetlib is well installed. echo 'class ConfTest { static void Main() { } }' > conftest.cs cscc -o conftest.exe conftest.cs 2>/dev/null error=$? rm -f conftest.cs conftest.exe exit $error ); then HAVE_CSCC=1 ac_result="cscc" break fi ;; mono) if test -n "$HAVE_MCS_IN_PATH" \ && mcs --version >/dev/null 2>/dev/null \ && mcs --version 2>/dev/null | grep Mono >/dev/null; then HAVE_MCS=1 ac_result="mcs" break fi ;; sscli) if test -n "$HAVE_CSC_IN_PATH" \ && csc -help >/dev/null 2>/dev/null \ && { if csc -help 2>/dev/null | grep -i chicken > /dev/null; then false; else true; fi; }; then HAVE_CSC=1 ac_result="csc" break fi ;; no) HAVE_CSHARPCOMP= ac_result="no" break ;; esac done AC_MSG_RESULT([$ac_result]) AC_SUBST([HAVE_CSCC]) AC_SUBST([HAVE_MCS]) AC_SUBST([HAVE_CSC]) dnl Provide a default for CSHARPCOMPFLAGS. if test -z "${CSHARPCOMPFLAGS+set}"; then CSHARPCOMPFLAGS="-O -g" fi AC_SUBST([CSHARPCOMPFLAGS]) ]) libidn-1.28/gl/m4/fcntl_h.m40000644000000000000000000000327112153706065012405 00000000000000# serial 15 # Configure fcntl.h. dnl Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. AC_DEFUN([gl_FCNTL_H], [ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) AC_REQUIRE([gl_FCNTL_O_FLAGS]) gl_NEXT_HEADERS([fcntl.h]) dnl Ensure the type pid_t gets defined. AC_REQUIRE([AC_TYPE_PID_T]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, if it is not common dnl enough to be declared everywhere. gl_WARN_ON_USE_PREPARE([[#include ]], [fcntl openat]) ]) AC_DEFUN([gl_FCNTL_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_FCNTL_H_DEFAULTS], [ GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL]) GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING]) GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN]) GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCNTL=1; AC_SUBST([HAVE_FCNTL]) HAVE_OPENAT=1; AC_SUBST([HAVE_OPENAT]) REPLACE_FCNTL=0; AC_SUBST([REPLACE_FCNTL]) REPLACE_OPEN=0; AC_SUBST([REPLACE_OPEN]) REPLACE_OPENAT=0; AC_SUBST([REPLACE_OPENAT]) ]) libidn-1.28/gl/m4/getopt.m40000644000000000000000000003013412153706065012270 00000000000000# getopt.m4 serial 44 dnl Copyright (C) 2002-2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Request a POSIX compliant getopt function. AC_DEFUN([gl_FUNC_GETOPT_POSIX], [ m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX]) AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_GETOPT_CHECK_HEADERS]) dnl Other modules can request the gnulib implementation of the getopt dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS. dnl argp.m4 does this. m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [ REPLACE_GETOPT=1 ], [ REPLACE_GETOPT=0 if test -n "$gl_replace_getopt"; then REPLACE_GETOPT=1 fi ]) if test $REPLACE_GETOPT = 1; then dnl Arrange for getopt.h to be created. gl_GETOPT_SUBSTITUTE_HEADER fi ]) # Request a POSIX compliant getopt function with GNU extensions (such as # options with optional arguments) and the functions getopt_long, # getopt_long_only. AC_DEFUN([gl_FUNC_GETOPT_GNU], [ m4_divert_text([INIT_PREPARE], [gl_getopt_required=GNU]) AC_REQUIRE([gl_FUNC_GETOPT_POSIX]) ]) # Determine whether to replace the entire getopt facility. AC_DEFUN([gl_GETOPT_CHECK_HEADERS], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_REQUIRE([AC_PROG_AWK]) dnl for awk that supports ENVIRON dnl Persuade Solaris to declare optarg, optind, opterr, optopt. AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) gl_CHECK_NEXT_HEADERS([getopt.h]) if test $ac_cv_header_getopt_h = yes; then HAVE_GETOPT_H=1 else HAVE_GETOPT_H=0 fi AC_SUBST([HAVE_GETOPT_H]) gl_replace_getopt= dnl Test whether is available. if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CHECK_HEADERS([getopt.h], [], [gl_replace_getopt=yes]) fi dnl Test whether the function getopt_long is available. if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CHECK_FUNCS([getopt_long_only], [], [gl_replace_getopt=yes]) fi dnl POSIX 2008 does not specify leading '+' behavior, but see dnl http://austingroupbugs.net/view.php?id=191 for a recommendation on dnl the next version of POSIX. For now, we only guarantee leading '+' dnl behavior with getopt-gnu. if test -z "$gl_replace_getopt"; then AC_CACHE_CHECK([whether getopt is POSIX compatible], [gl_cv_func_getopt_posix], [ dnl Merging these three different test programs into a single one dnl would require a reset mechanism. On BSD systems, it can be done dnl through 'optreset'; on some others (glibc), it can be done by dnl setting 'optind' to 0; on others again (HP-UX, IRIX, OSF/1, dnl Solaris 9, musl libc), there is no such mechanism. if test $cross_compiling = no; then dnl Sanity check. Succeeds everywhere (except on MSVC, dnl which lacks and getopt() entirely). AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include int main () { static char program[] = "program"; static char a[] = "-a"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, a, foo, bar, NULL }; int c; c = getopt (4, argv, "ab"); if (!(c == 'a')) return 1; c = getopt (4, argv, "ab"); if (!(c == -1)) return 2; if (!(optind == 2)) return 3; return 0; } ]])], [gl_cv_func_getopt_posix=maybe], [gl_cv_func_getopt_posix=no]) if test $gl_cv_func_getopt_posix = maybe; then dnl Sanity check with '+'. Succeeds everywhere (except on MSVC, dnl which lacks and getopt() entirely). AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include int main () { static char program[] = "program"; static char donald[] = "donald"; static char p[] = "-p"; static char billy[] = "billy"; static char duck[] = "duck"; static char a[] = "-a"; static char bar[] = "bar"; char *argv[] = { program, donald, p, billy, duck, a, bar, NULL }; int c; c = getopt (7, argv, "+abp:q:"); if (!(c == -1)) return 4; if (!(strcmp (argv[0], "program") == 0)) return 5; if (!(strcmp (argv[1], "donald") == 0)) return 6; if (!(strcmp (argv[2], "-p") == 0)) return 7; if (!(strcmp (argv[3], "billy") == 0)) return 8; if (!(strcmp (argv[4], "duck") == 0)) return 9; if (!(strcmp (argv[5], "-a") == 0)) return 10; if (!(strcmp (argv[6], "bar") == 0)) return 11; if (!(optind == 1)) return 12; return 0; } ]])], [gl_cv_func_getopt_posix=maybe], [gl_cv_func_getopt_posix=no]) fi if test $gl_cv_func_getopt_posix = maybe; then dnl Detect Mac OS X 10.5, AIX 7.1, mingw bug. AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include #include #include int main () { static char program[] = "program"; static char ab[] = "-ab"; char *argv[3] = { program, ab, NULL }; if (getopt (2, argv, "ab:") != 'a') return 13; if (getopt (2, argv, "ab:") != '?') return 14; if (optopt != 'b') return 15; if (optind != 2) return 16; return 0; } ]])], [gl_cv_func_getopt_posix=yes], [gl_cv_func_getopt_posix=no]) fi else case "$host_os" in darwin* | aix* | mingw*) gl_cv_func_getopt_posix="guessing no";; *) gl_cv_func_getopt_posix="guessing yes";; esac fi ]) case "$gl_cv_func_getopt_posix" in *no) gl_replace_getopt=yes ;; esac fi if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then AC_CACHE_CHECK([for working GNU getopt function], [gl_cv_func_getopt_gnu], [# Even with POSIXLY_CORRECT, the GNU extension of leading '-' in the # optstring is necessary for programs like m4 that have POSIX-mandated # semantics for supporting options interspersed with files. # Also, since getopt_long is a GNU extension, we require optind=0. # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT; # so take care to revert to the correct (non-)export state. dnl GNU Coding Standards currently allow awk but not env; besides, env dnl is ambiguous with environment values that contain newlines. gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }' case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" #include #include ]GL_NOCRASH[ ]], [[ int result = 0; nocrash_init(); /* This code succeeds on glibc 2.8, OpenBSD 4.0, Cygwin, mingw, and fails on Mac OS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10. */ { static char conftest[] = "conftest"; static char plus[] = "-+"; char *argv[3] = { conftest, plus, NULL }; opterr = 0; if (getopt (2, argv, "+a") != '?') result |= 1; } /* This code succeeds on glibc 2.8, mingw, and fails on Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x. */ { static char program[] = "program"; static char p[] = "-p"; static char foo[] = "foo"; static char bar[] = "bar"; char *argv[] = { program, p, foo, bar, NULL }; optind = 1; if (getopt (4, argv, "p::") != 'p') result |= 2; else if (optarg != NULL) result |= 4; else if (getopt (4, argv, "p::") != -1) result |= 6; else if (optind != 2) result |= 8; } /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */ { static char program[] = "program"; static char foo[] = "foo"; static char p[] = "-p"; char *argv[] = { program, foo, p, NULL }; optind = 0; if (getopt (3, argv, "-p") != 1) result |= 16; else if (getopt (3, argv, "-p") != 'p') result |= 16; } /* This code fails on glibc 2.11. */ { static char program[] = "program"; static char b[] = "-b"; static char a[] = "-a"; char *argv[] = { program, b, a, NULL }; optind = opterr = 0; if (getopt (3, argv, "+:a:b") != 'b') result |= 32; else if (getopt (3, argv, "+:a:b") != ':') result |= 32; } /* This code dumps core on glibc 2.14. */ { static char program[] = "program"; static char w[] = "-W"; static char dummy[] = "dummy"; char *argv[] = { program, w, dummy, NULL }; optind = opterr = 1; if (getopt (3, argv, "W;") != 'W') result |= 64; } return result; ]])], [gl_cv_func_getopt_gnu=yes], [gl_cv_func_getopt_gnu=no], [dnl Cross compiling. Assume the worst, even on glibc platforms. gl_cv_func_getopt_gnu="guessing no" ]) case $gl_had_POSIXLY_CORRECT in exported) ;; yes) AS_UNSET([POSIXLY_CORRECT]); POSIXLY_CORRECT=1 ;; *) AS_UNSET([POSIXLY_CORRECT]) ;; esac ]) if test "$gl_cv_func_getopt_gnu" != yes; then gl_replace_getopt=yes else AC_CACHE_CHECK([for working GNU getopt_long function], [gl_cv_func_getopt_long_gnu], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [[#include #include #include ]], [[static const struct option long_options[] = { { "xtremely-",no_argument, NULL, 1003 }, { "xtra", no_argument, NULL, 1001 }, { "xtreme", no_argument, NULL, 1002 }, { "xtremely", no_argument, NULL, 1003 }, { NULL, 0, NULL, 0 } }; /* This code fails on OpenBSD 5.0. */ { static char program[] = "program"; static char xtremel[] = "--xtremel"; char *argv[] = { program, xtremel, NULL }; int option_index; optind = 1; opterr = 0; if (getopt_long (2, argv, "", long_options, &option_index) != 1003) return 1; } return 0; ]])], [gl_cv_func_getopt_long_gnu=yes], [gl_cv_func_getopt_long_gnu=no], [dnl Cross compiling. Guess no on OpenBSD, yes otherwise. case "$host_os" in openbsd*) gl_cv_func_getopt_long_gnu="guessing no";; *) gl_cv_func_getopt_long_gnu="guessing yes";; esac ]) ]) case "$gl_cv_func_getopt_long_gnu" in *yes) ;; *) gl_replace_getopt=yes ;; esac fi fi ]) AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], [ GETOPT_H=getopt.h AC_DEFINE([__GETOPT_PREFIX], [[rpl_]], [Define to rpl_ if the getopt replacement functions and variables should be used.]) AC_SUBST([GETOPT_H]) ]) # Prerequisites of lib/getopt*. AC_DEFUN([gl_PREREQ_GETOPT], [ AC_CHECK_DECLS_ONCE([getenv]) ]) libidn-1.28/gl/m4/valgrind-tests.m40000644000000000000000000000221612153706066013735 00000000000000# valgrind-tests.m4 serial 3 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_VALGRIND_TESTS() # ------------------- # Check if valgrind is available, and set VALGRIND to it if available. AC_DEFUN([gl_VALGRIND_TESTS], [ AC_ARG_ENABLE(valgrind-tests, AS_HELP_STRING([--enable-valgrind-tests], [run self tests under valgrind]), [opt_valgrind_tests=$enableval], [opt_valgrind_tests=yes]) # Run self-tests under valgrind? if test "$opt_valgrind_tests" = "yes" && test "$cross_compiling" = no; then AC_CHECK_PROGS(VALGRIND, valgrind) fi OPTS="-q --error-exitcode=1 --leak-check=full" if test -n "$VALGRIND" \ && $VALGRIND $OPTS $SHELL -c 'exit 0' > /dev/null 2>&1; then opt_valgrind_tests=yes VALGRIND="$VALGRIND $OPTS" else opt_valgrind_tests=no VALGRIND= fi AC_MSG_CHECKING([whether self tests are run under valgrind]) AC_MSG_RESULT($opt_valgrind_tests) ]) libidn-1.28/gl/m4/inttypes.m40000644000000000000000000001223112153706065012643 00000000000000# inttypes.m4 serial 26 dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Derek Price, Bruno Haible. dnl Test whether is supported or must be substituted. AC_DEFUN([gl_INTTYPES_H], [ AC_REQUIRE([gl_INTTYPES_INCOMPLETE]) gl_INTTYPES_PRI_SCN ]) AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE], [ AC_REQUIRE([gl_STDINT_H]) AC_CHECK_HEADERS_ONCE([inttypes.h]) dnl Override always, so that the portability warnings work. AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) gl_CHECK_NEXT_HEADERS([inttypes.h]) AC_REQUIRE([gl_MULTIARCH]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [imaxabs imaxdiv strtoimax strtoumax]) ]) # Ensure that the PRI* and SCN* macros are defined appropriately. AC_DEFUN([gl_INTTYPES_PRI_SCN], [ AC_REQUIRE([gt_INTTYPES_PRI]) PRIPTR_PREFIX= if test -n "$STDINT_H"; then dnl Using the gnulib . It always defines intptr_t to 'long'. PRIPTR_PREFIX='"l"' else dnl Using the system's . for glpfx in '' l ll I64; do case $glpfx in '') gltype1='int';; l) gltype1='long int';; ll) gltype1='long long int';; I64) gltype1='__int64';; esac AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[#include extern intptr_t foo; extern $gltype1 foo;]])], [PRIPTR_PREFIX='"'$glpfx'"']) test -n "$PRIPTR_PREFIX" && break done fi AC_SUBST([PRIPTR_PREFIX]) gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [INT32_MAX_LT_INTMAX_MAX], [defined INT32_MAX && defined INTMAX_MAX], [INT32_MAX < INTMAX_MAX], [sizeof (int) < sizeof (long long int)]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [INT64_MAX_EQ_LONG_MAX], [defined INT64_MAX], [INT64_MAX == LONG_MAX], [sizeof (long long int) == sizeof (long int)]) else INT64_MAX_EQ_LONG_MAX=-1 fi gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [UINT32_MAX_LT_UINTMAX_MAX], [defined UINT32_MAX && defined UINTMAX_MAX], [UINT32_MAX < UINTMAX_MAX], [sizeof (unsigned int) < sizeof (unsigned long long int)]) if test $APPLE_UNIVERSAL_BUILD = 0; then gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION( [UINT64_MAX_EQ_ULONG_MAX], [defined UINT64_MAX], [UINT64_MAX == ULONG_MAX], [sizeof (unsigned long long int) == sizeof (unsigned long int)]) else UINT64_MAX_EQ_ULONG_MAX=-1 fi ]) # Define the symbol $1 to be 1 if the condition is true, 0 otherwise. # If $2 is true, the condition is $3; otherwise if long long int is supported # approximate the condition with $4; otherwise, assume the condition is false. # The condition should work on all C99 platforms; the approximations should be # good enough to work on all practical pre-C99 platforms. # $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants. AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION], [ AC_CACHE_CHECK([whether $3], [gl_cv_test_$1], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[/* Work also in C++ mode. */ #define __STDC_LIMIT_MACROS 1 /* Work if build is not clean. */ #define _GL_JUST_INCLUDE_SYSTEM_STDINT_H #include #if HAVE_STDINT_H #include #endif #if $2 #define CONDITION ($3) #elif HAVE_LONG_LONG_INT #define CONDITION ($4) #else #define CONDITION 0 #endif int test[CONDITION ? 1 : -1];]])], [gl_cv_test_$1=yes], [gl_cv_test_$1=no])]) if test $gl_cv_test_$1 = yes; then $1=1; else $1=0; fi AC_SUBST([$1]) ]) AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_INTTYPES_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_INTTYPES_H_DEFAULTS], [ GNULIB_IMAXABS=0; AC_SUBST([GNULIB_IMAXABS]) GNULIB_IMAXDIV=0; AC_SUBST([GNULIB_IMAXDIV]) GNULIB_STRTOIMAX=0; AC_SUBST([GNULIB_STRTOIMAX]) GNULIB_STRTOUMAX=0; AC_SUBST([GNULIB_STRTOUMAX]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS]) HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV]) HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX]) HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX]) REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX]) PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN]) PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX]) UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX]) UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX]) ]) libidn-1.28/gl/m4/putenv.m40000644000000000000000000000317512153706065012314 00000000000000# putenv.m4 serial 20 dnl Copyright (C) 2002-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. dnl dnl Check whether putenv ("FOO") removes FOO from the environment. dnl The putenv in libc on at least SunOS 4.1.4 does *not* do that. AC_DEFUN([gl_FUNC_PUTENV], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CACHE_CHECK([for putenv compatible with GNU and SVID], [gl_cv_func_svid_putenv], [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],[[ /* Put it in env. */ if (putenv ("CONFTEST_putenv=val")) return 1; /* Try to remove it. */ if (putenv ("CONFTEST_putenv")) return 2; /* Make sure it was deleted. */ if (getenv ("CONFTEST_putenv") != 0) return 3; return 0; ]])], gl_cv_func_svid_putenv=yes, gl_cv_func_svid_putenv=no, dnl When crosscompiling, assume putenv is broken. [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_svid_putenv="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_svid_putenv="guessing no" ;; esac ]) ]) case "$gl_cv_func_svid_putenv" in *yes) ;; *) REPLACE_PUTENV=1 ;; esac ]) # Prerequisites of lib/putenv.c. AC_DEFUN([gl_PREREQ_PUTENV], [ AC_CHECK_DECLS([_putenv]) ]) libidn-1.28/gl/m4/getcwd.m40000644000000000000000000001122712153706065012245 00000000000000# getcwd.m4 - check for working getcwd that is compatible with glibc # Copyright (C) 2001, 2003-2007, 2009-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Written by Paul Eggert. # serial 12 AC_DEFUN([gl_FUNC_GETCWD_NULL], [ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result], [gl_cv_func_getcwd_null], [AC_RUN_IFELSE([AC_LANG_PROGRAM([[ # if HAVE_UNISTD_H # include # else /* on Windows with MSVC */ # include # endif # ifndef getcwd char *getcwd (); # endif ]], [[ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but getcwd does allocate. However, mingw fails to honor non-zero size. */ #else if (chdir ("/") != 0) return 1; else { char *f = getcwd (NULL, 0); if (! f) return 2; if (f[0] != '/') return 3; if (f[1] != '\0') return 4; return 0; } #endif ]])], [gl_cv_func_getcwd_null=yes], [gl_cv_func_getcwd_null=no], [[case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_getcwd_null="guessing yes";; # Guess yes on Cygwin. cygwin*) gl_cv_func_getcwd_null="guessing yes";; # If we don't know, assume the worst. *) gl_cv_func_getcwd_null="guessing no";; esac ]])]) ]) AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE], [ AC_CACHE_CHECK([for getcwd with POSIX signature], [gl_cv_func_getcwd_posix_signature], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[extern #ifdef __cplusplus "C" #endif char *getcwd (char *, size_t); ]]) ], [gl_cv_func_getcwd_posix_signature=yes], [gl_cv_func_getcwd_posix_signature=no]) ]) ]) dnl Guarantee that getcwd will malloc with a NULL first argument. Assumes dnl that either the system getcwd is robust, or that calling code is okay dnl with spurious failures when run from a directory with an absolute name dnl larger than 4k bytes. dnl dnl Assumes that getcwd exists; if you are worried about obsolete dnl platforms that lacked getcwd(), then you need to use the GPL module. AC_DEFUN([gl_FUNC_GETCWD_LGPL], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETCWD_NULL]) AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE]) case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in *yes,yes) ;; *) dnl Minimal replacement lib/getcwd-lgpl.c. REPLACE_GETCWD=1 ;; esac ]) dnl Check for all known getcwd bugs; useful for a program likely to be dnl executed from an arbitrary location. AC_DEFUN([gl_FUNC_GETCWD], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([gl_FUNC_GETCWD_NULL]) AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles gl_abort_bug=no case "$host_os" in mingw*) gl_cv_func_getcwd_path_max=yes ;; *) gl_FUNC_GETCWD_PATH_MAX case "$gl_cv_func_getcwd_null" in *yes) gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes]) ;; esac ;; esac dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD dnl if appropriate. case "$gl_cv_func_getcwd_path_max" in "no"|"no, it has the AIX bug") ;; *) AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1], [Define to 1 if getcwd minimally works, that is, its result can be trusted when it succeeds.]) ;; esac case "$gl_cv_func_getcwd_path_max" in "no, but it is partly working") AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1], [Define to 1 if getcwd works, except it sometimes fails when it shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.]) ;; esac if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \ || test $gl_cv_func_getcwd_posix_signature != yes \ || test "$gl_cv_func_getcwd_path_max" != yes \ || test $gl_abort_bug = yes; then REPLACE_GETCWD=1 fi ]) # Prerequisites of lib/getcwd.c, when full replacement is in effect. AC_DEFUN([gl_PREREQ_GETCWD], [ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO]) : ]) libidn-1.28/gl/m4/warnings.m40000644000000000000000000000513612153706066012623 00000000000000# warnings.m4 serial 8 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_AS_VAR_APPEND(VAR, VALUE) # ---------------------------- # Provide the functionality of AS_VAR_APPEND if Autoconf does not have it. m4_ifdef([AS_VAR_APPEND], [m4_copy([AS_VAR_APPEND], [gl_AS_VAR_APPEND])], [m4_define([gl_AS_VAR_APPEND], [AS_VAR_SET([$1], [AS_VAR_GET([$1])$2])])]) # gl_COMPILER_OPTION_IF(OPTION, [IF-SUPPORTED], [IF-NOT-SUPPORTED], # [PROGRAM = AC_LANG_PROGRAM()]) # ----------------------------------------------------------------- # Check if the compiler supports OPTION when compiling PROGRAM. # # FIXME: gl_Warn must be used unquoted until we can assume Autoconf # 2.64 or newer. AC_DEFUN([gl_COMPILER_OPTION_IF], [AS_VAR_PUSHDEF([gl_Warn], [gl_cv_warn_[]_AC_LANG_ABBREV[]_$1])dnl AS_VAR_PUSHDEF([gl_Flags], [_AC_LANG_PREFIX[]FLAGS])dnl AC_CACHE_CHECK([whether _AC_LANG compiler handles $1], m4_defn([gl_Warn]), [ gl_save_compiler_FLAGS="$gl_Flags" gl_AS_VAR_APPEND(m4_defn([gl_Flags]), [" $gl_unknown_warnings_are_errors $1"]) AC_COMPILE_IFELSE([m4_default([$4], [AC_LANG_PROGRAM([])])], [AS_VAR_SET(gl_Warn, [yes])], [AS_VAR_SET(gl_Warn, [no])]) gl_Flags="$gl_save_compiler_FLAGS" ]) AS_VAR_IF(gl_Warn, [yes], [$2], [$3]) AS_VAR_POPDEF([gl_Flags])dnl AS_VAR_POPDEF([gl_Warn])dnl ]) # gl_UNKNOWN_WARNINGS_ARE_ERRORS # ------------------------------ # Clang doesn't complain about unknown warning options unless one also # specifies -Wunknown-warning-option -Werror. Detect this. AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS], [gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option], [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'], [gl_unknown_warnings_are_errors=])]) # gl_WARN_ADD(OPTION, [VARIABLE = WARN_CFLAGS], # [PROGRAM = AC_LANG_PROGRAM()]) # --------------------------------------------- # Adds parameter to WARN_CFLAGS if the compiler supports it when # compiling PROGRAM. For example, gl_WARN_ADD([-Wparentheses]). # # If VARIABLE is a variable name, AC_SUBST it. AC_DEFUN([gl_WARN_ADD], [AC_REQUIRE([gl_UNKNOWN_WARNINGS_ARE_ERRORS]) gl_COMPILER_OPTION_IF([$1], [gl_AS_VAR_APPEND(m4_if([$2], [], [[WARN_CFLAGS]], [[$2]]), [" $1"])], [], [$3]) m4_ifval([$2], [AS_LITERAL_IF([$2], [AC_SUBST([$2])])], [AC_SUBST([WARN_CFLAGS])])dnl ]) # Local Variables: # mode: autoconf # End: libidn-1.28/gl/m4/stdlib_h.m40000644000000000000000000001310112153706066012552 00000000000000# stdlib_h.m4 serial 42 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_STDLIB_H], [ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_NEXT_HEADERS([stdlib.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use, and which is not dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include #if HAVE_SYS_LOADAVG_H # include #endif #if HAVE_RANDOM_H # include #endif ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch secure_getenv setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv]) ]) AC_DEFUN([gl_STDLIB_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], [ GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT]) GNULIB_ATOLL=0; AC_SUBST([GNULIB_ATOLL]) GNULIB_CALLOC_POSIX=0; AC_SUBST([GNULIB_CALLOC_POSIX]) GNULIB_CANONICALIZE_FILE_NAME=0; AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME]) GNULIB_GETLOADAVG=0; AC_SUBST([GNULIB_GETLOADAVG]) GNULIB_GETSUBOPT=0; AC_SUBST([GNULIB_GETSUBOPT]) GNULIB_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT]) GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX]) GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC]) GNULIB_MKDTEMP=0; AC_SUBST([GNULIB_MKDTEMP]) GNULIB_MKOSTEMP=0; AC_SUBST([GNULIB_MKOSTEMP]) GNULIB_MKOSTEMPS=0; AC_SUBST([GNULIB_MKOSTEMPS]) GNULIB_MKSTEMP=0; AC_SUBST([GNULIB_MKSTEMP]) GNULIB_MKSTEMPS=0; AC_SUBST([GNULIB_MKSTEMPS]) GNULIB_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT]) GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME]) GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R]) GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV]) GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM]) GNULIB_RANDOM_R=0; AC_SUBST([GNULIB_RANDOM_R]) GNULIB_REALLOC_POSIX=0; AC_SUBST([GNULIB_REALLOC_POSIX]) GNULIB_REALPATH=0; AC_SUBST([GNULIB_REALPATH]) GNULIB_RPMATCH=0; AC_SUBST([GNULIB_RPMATCH]) GNULIB_SECURE_GETENV=0; AC_SUBST([GNULIB_SECURE_GETENV]) GNULIB_SETENV=0; AC_SUBST([GNULIB_SETENV]) GNULIB_STRTOD=0; AC_SUBST([GNULIB_STRTOD]) GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL]) GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL]) GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX]) GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT]) GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV]) GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE__EXIT=1; AC_SUBST([HAVE__EXIT]) HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL]) HAVE_CANONICALIZE_FILE_NAME=1; AC_SUBST([HAVE_CANONICALIZE_FILE_NAME]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP]) HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP]) HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS]) HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP]) HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS]) HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT]) HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME]) HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R]) HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM]) HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H]) HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R]) HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH]) HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH]) HAVE_SECURE_GETENV=1; AC_SUBST([HAVE_SECURE_GETENV]) HAVE_SETENV=1; AC_SUBST([HAVE_SETENV]) HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV]) HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD]) HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL]) HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL]) HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA]) HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H]) HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT]) HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV]) REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC]) REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME]) REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC]) REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC]) REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP]) REPLACE_PTSNAME=0; AC_SUBST([REPLACE_PTSNAME]) REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R]) REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV]) REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R]) REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC]) REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH]) REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV]) REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD]) REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV]) REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB]) ]) libidn-1.28/gl/m4/stdarg.m40000644000000000000000000000540412153706065012254 00000000000000# stdarg.m4 serial 6 dnl Copyright (C) 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Provide a working va_copy in combination with . AC_DEFUN([gl_STDARG_H], [ STDARG_H='' NEXT_STDARG_H='' AC_MSG_CHECKING([for va_copy]) AC_CACHE_VAL([gl_cv_func_va_copy], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[ #ifndef va_copy void (*func) (va_list, va_list) = va_copy; #endif ]])], [gl_cv_func_va_copy=yes], [gl_cv_func_va_copy=no])]) AC_MSG_RESULT([$gl_cv_func_va_copy]) if test $gl_cv_func_va_copy = no; then dnl Provide a substitute. dnl Usually a simple definition in is enough. Not so on AIX 5 dnl with some versions of the /usr/vac/bin/cc compiler. It has an dnl which does '#undef va_copy', leading to a missing va_copy symbol. For dnl this platform, we use an substitute. But we cannot use this dnl approach on other platforms, because often defines only dnl preprocessor macros and gl_ABSOLUTE_HEADER, gl_CHECK_NEXT_HEADERS do dnl not work in this situation. AC_EGREP_CPP([vaccine], [#if defined _AIX && !defined __GNUC__ AIX vaccine #endif ], [gl_aixcc=yes], [gl_aixcc=no]) if test $gl_aixcc = yes; then dnl Provide a substitute file. STDARG_H=stdarg.h gl_NEXT_HEADERS([stdarg.h]) dnl Fallback for the case when contains only macro definitions. if test "$gl_cv_next_stdarg_h" = '""'; then gl_cv_next_stdarg_h='"///usr/include/stdarg.h"' NEXT_STDARG_H="$gl_cv_next_stdarg_h" fi else dnl Provide a substitute in , either __va_copy or as a simple dnl assignment. gl_CACHE_VAL_SILENT([gl_cv_func___va_copy], [ AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[ #ifndef __va_copy error, bail out #endif ]])], [gl_cv_func___va_copy=yes], [gl_cv_func___va_copy=no])]) if test $gl_cv_func___va_copy = yes; then AC_DEFINE([va_copy], [__va_copy], [Define as a macro for copying va_list variables.]) else AH_VERBATIM([gl_VA_COPY], [/* A replacement for va_copy, if needed. */ #define gl_va_copy(a,b) ((a) = (b))]) AC_DEFINE([va_copy], [gl_va_copy], [Define as a macro for copying va_list variables.]) fi fi fi AC_SUBST([STDARG_H]) AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"]) AC_SUBST([NEXT_STDARG_H]) ]) libidn-1.28/gl/m4/sys_stat_h.m40000644000000000000000000000723612153706066013156 00000000000000# sys_stat_h.m4 serial 28 -*- Autoconf -*- dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Eric Blake. dnl Provide a GNU-like . AC_DEFUN([gl_HEADER_SYS_STAT_H], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl Check for broken stat macros. AC_REQUIRE([AC_HEADER_STAT]) gl_CHECK_NEXT_HEADERS([sys/stat.h]) dnl Ensure the type mode_t gets defined. AC_REQUIRE([AC_TYPE_MODE_T]) dnl Whether to override 'struct stat'. m4_ifdef([gl_LARGEFILE], [ AC_REQUIRE([gl_LARGEFILE]) ], [ WINDOWS_64_BIT_ST_SIZE=0 ]) AC_SUBST([WINDOWS_64_BIT_ST_SIZE]) if test $WINDOWS_64_BIT_ST_SIZE = 1; then AC_DEFINE([_GL_WINDOWS_64_BIT_ST_SIZE], [1], [Define to 1 if Gnulib overrides 'struct stat' on Windows so that struct stat.st_size becomes 64-bit.]) fi dnl Define types that are supposed to be defined in or dnl . AC_CHECK_TYPE([nlink_t], [], [AC_DEFINE([nlink_t], [int], [Define to the type of st_nlink in struct stat, or a supertype.])], [#include #include ]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include ]], [fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat mknod mknodat stat utimensat]) ]) # gl_HEADER_SYS_STAT_H AC_DEFUN([gl_SYS_STAT_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT]) GNULIB_FSTAT=0; AC_SUBST([GNULIB_FSTAT]) GNULIB_FSTATAT=0; AC_SUBST([GNULIB_FSTATAT]) GNULIB_FUTIMENS=0; AC_SUBST([GNULIB_FUTIMENS]) GNULIB_LCHMOD=0; AC_SUBST([GNULIB_LCHMOD]) GNULIB_LSTAT=0; AC_SUBST([GNULIB_LSTAT]) GNULIB_MKDIRAT=0; AC_SUBST([GNULIB_MKDIRAT]) GNULIB_MKFIFO=0; AC_SUBST([GNULIB_MKFIFO]) GNULIB_MKFIFOAT=0; AC_SUBST([GNULIB_MKFIFOAT]) GNULIB_MKNOD=0; AC_SUBST([GNULIB_MKNOD]) GNULIB_MKNODAT=0; AC_SUBST([GNULIB_MKNODAT]) GNULIB_STAT=0; AC_SUBST([GNULIB_STAT]) GNULIB_UTIMENSAT=0; AC_SUBST([GNULIB_UTIMENSAT]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_FCHMODAT=1; AC_SUBST([HAVE_FCHMODAT]) HAVE_FSTATAT=1; AC_SUBST([HAVE_FSTATAT]) HAVE_FUTIMENS=1; AC_SUBST([HAVE_FUTIMENS]) HAVE_LCHMOD=1; AC_SUBST([HAVE_LCHMOD]) HAVE_LSTAT=1; AC_SUBST([HAVE_LSTAT]) HAVE_MKDIRAT=1; AC_SUBST([HAVE_MKDIRAT]) HAVE_MKFIFO=1; AC_SUBST([HAVE_MKFIFO]) HAVE_MKFIFOAT=1; AC_SUBST([HAVE_MKFIFOAT]) HAVE_MKNOD=1; AC_SUBST([HAVE_MKNOD]) HAVE_MKNODAT=1; AC_SUBST([HAVE_MKNODAT]) HAVE_UTIMENSAT=1; AC_SUBST([HAVE_UTIMENSAT]) REPLACE_FSTAT=0; AC_SUBST([REPLACE_FSTAT]) REPLACE_FSTATAT=0; AC_SUBST([REPLACE_FSTATAT]) REPLACE_FUTIMENS=0; AC_SUBST([REPLACE_FUTIMENS]) REPLACE_LSTAT=0; AC_SUBST([REPLACE_LSTAT]) REPLACE_MKDIR=0; AC_SUBST([REPLACE_MKDIR]) REPLACE_MKFIFO=0; AC_SUBST([REPLACE_MKFIFO]) REPLACE_MKNOD=0; AC_SUBST([REPLACE_MKNOD]) REPLACE_STAT=0; AC_SUBST([REPLACE_STAT]) REPLACE_UTIMENSAT=0; AC_SUBST([REPLACE_UTIMENSAT]) ]) libidn-1.28/gl/m4/lstat.m40000644000000000000000000000511212153706065012113 00000000000000# serial 26 # Copyright (C) 1997-2001, 2003-2013 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. dnl From Jim Meyering. AC_DEFUN([gl_FUNC_LSTAT], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl If lstat does not exist, the replacement does dnl "#define lstat stat", and lstat.c is a no-op. AC_CHECK_FUNCS_ONCE([lstat]) if test $ac_cv_func_lstat = yes; then AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *no) REPLACE_LSTAT=1 ;; esac else HAVE_LSTAT=0 fi ]) # Prerequisites of lib/lstat.c. AC_DEFUN([gl_PREREQ_LSTAT], [:]) AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], [ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ. AC_CACHE_CHECK([whether lstat correctly handles trailing slash], [gl_cv_func_lstat_dereferences_slashed_symlink], [rm -f conftest.sym conftest.file echo >conftest.file if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], [[struct stat sbuf; /* Linux will dereference the symlink and fail, as required by POSIX. That is better in the sense that it means we will not have to compile and use the lstat wrapper. */ return lstat ("conftest.sym/", &sbuf) == 0; ]])], [gl_cv_func_lstat_dereferences_slashed_symlink=yes], [gl_cv_func_lstat_dereferences_slashed_symlink=no], [case "$host_os" in # Guess yes on glibc systems. *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; # If we don't know, assume the worst. *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;; esac ]) else # If the 'ln -s' command failed, then we probably don't even # have an lstat function. gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" fi rm -f conftest.sym conftest.file ]) case "$gl_cv_func_lstat_dereferences_slashed_symlink" in *yes) AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1], [Define to 1 if 'lstat' dereferences a symlink specified with a trailing slash.]) ;; esac ]) libidn-1.28/gl/m4/extensions.m40000644000000000000000000001223712153706065013171 00000000000000# serial 13 -*- Autoconf -*- # Enable extensions on systems that normally disable them. # Copyright (C) 2003, 2006-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git # Autoconf. Perhaps we can remove this once we can assume Autoconf # 2.70 or later everywhere, but since Autoconf mutates rapidly # enough in this area it's likely we'll need to redefine # AC_USE_SYSTEM_EXTENSIONS for quite some time. # If autoconf reports a warning # warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # or warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS # the fix is # 1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked # but always AC_REQUIREd, # 2) to ensure that for each occurrence of # AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) # or # AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # the corresponding gnulib module description has 'extensions' among # its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS # invocation occurs in gl_EARLY, not in gl_INIT. # AC_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. # # Remember that #undef in AH_VERBATIM gets replaced with #define by # AC_DEFINE. The goal here is to define all known feature-enabling # macros, then, if reports of conflicts are made, disable macros that # cause problems on some platforms (such as __EXTENSIONS__). AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl AC_BEFORE([$0], [AC_RUN_IFELSE])dnl AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=]) if test "$MINIX" = yes; then AC_DEFINE([_POSIX_SOURCE], [1], [Define to 1 if you need to in order for 'stat' and other things to work.]) AC_DEFINE([_POSIX_1_SOURCE], [2], [Define to 2 if the system does not provide POSIX.1 features except with this defined.]) AC_DEFINE([_MINIX], [1], [Define to 1 if on MINIX.]) AC_DEFINE([_NETBSD_SOURCE], [1], [Define to 1 to make NetBSD features available. MINIX 3 needs this.]) fi dnl Use a different key than __EXTENSIONS__, as that name broke existing dnl configure.ac when using autoheader 2.62. AH_VERBATIM([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE #endif /* Enable general extensions on OS X. */ #ifndef _DARWIN_C_SOURCE # undef _DARWIN_C_SOURCE #endif /* Enable GNU extensions on systems that have them. */ #ifndef _GNU_SOURCE # undef _GNU_SOURCE #endif /* Enable threading extensions on Solaris. */ #ifndef _POSIX_PTHREAD_SEMANTICS # undef _POSIX_PTHREAD_SEMANTICS #endif /* Enable extensions on HP NonStop. */ #ifndef _TANDEM_SOURCE # undef _TANDEM_SOURCE #endif /* Enable X/Open extensions if necessary. HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of whether compiling with -Ae or -D_HPUX_SOURCE=1. */ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ #endif ]) AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__], [ac_cv_safe_to_define___extensions__], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ # define __EXTENSIONS__ 1 ]AC_INCLUDES_DEFAULT])], [ac_cv_safe_to_define___extensions__=yes], [ac_cv_safe_to_define___extensions__=no])]) test $ac_cv_safe_to_define___extensions__ = yes && AC_DEFINE([__EXTENSIONS__]) AC_DEFINE([_ALL_SOURCE]) AC_DEFINE([_DARWIN_C_SOURCE]) AC_DEFINE([_GNU_SOURCE]) AC_DEFINE([_POSIX_PTHREAD_SEMANTICS]) AC_DEFINE([_TANDEM_SOURCE]) AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined], [ac_cv_should_define__xopen_source], [ac_cv_should_define__xopen_source=no AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #include mbstate_t x;]])], [], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[ #define _XOPEN_SOURCE 500 #include mbstate_t x;]])], [ac_cv_should_define__xopen_source=yes])])]) test $ac_cv_should_define__xopen_source = yes && AC_DEFINE([_XOPEN_SOURCE], [500]) ])# AC_USE_SYSTEM_EXTENSIONS # gl_USE_SYSTEM_EXTENSIONS # ------------------------ # Enable extensions on systems that normally disable them, # typically due to standards-conformance issues. AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [ dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS. dnl gnulib does not need it. But if it gets required by third-party macros dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS". dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE, dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck. AC_REQUIRE([AC_GNU_SOURCE]) AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) ]) libidn-1.28/gl/m4/mode_t.m40000644000000000000000000000234212153706065012235 00000000000000# mode_t.m4 serial 2 dnl Copyright (C) 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # For using mode_t, it's sufficient to use AC_TYPE_MODE_T and # include . # Define PROMOTED_MODE_T to the type that is the result of "default argument # promotion" (ISO C 6.5.2.2.(6)) of the type mode_t. AC_DEFUN([gl_PROMOTED_TYPE_MODE_T], [ AC_REQUIRE([AC_TYPE_MODE_T]) AC_CACHE_CHECK([for promoted mode_t type], [gl_cv_promoted_mode_t], [ dnl Assume mode_t promotes to 'int' if and only if it is smaller than 'int', dnl and to itself otherwise. This assumption is not guaranteed by the ISO C dnl standard, but we don't know of any real-world counterexamples. AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];]])], [gl_cv_promoted_mode_t='int'], [gl_cv_promoted_mode_t='mode_t']) ]) AC_DEFINE_UNQUOTED([PROMOTED_MODE_T], [$gl_cv_promoted_mode_t], [Define to the type that is the result of default argument promotions of type mode_t.]) ]) libidn-1.28/gl/m4/ssize_t.m40000644000000000000000000000146312153706065012451 00000000000000# ssize_t.m4 serial 5 (gettext-0.18.2) dnl Copyright (C) 2001-2003, 2006, 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Test whether ssize_t is defined. AC_DEFUN([gt_TYPE_SSIZE_T], [ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include ]], [[int x = sizeof (ssize_t *) + sizeof (ssize_t); return !x;]])], [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])]) if test $gt_cv_ssize_t = no; then AC_DEFINE([ssize_t], [int], [Define as a signed type of the same size as size_t.]) fi ]) libidn-1.28/gl/m4/pathmax.m40000644000000000000000000000220412153706065012425 00000000000000# pathmax.m4 serial 10 dnl Copyright (C) 2002-2003, 2005-2006, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_PATHMAX], [ dnl Prerequisites of lib/pathmax.h. AC_CHECK_HEADERS_ONCE([sys/param.h]) ]) # Expands to a piece of C program that defines PATH_MAX in the same way as # "pathmax.h" will do. AC_DEFUN([gl_PATHMAX_SNIPPET], [[ /* Arrange to define PATH_MAX, like "pathmax.h" does. */ #if HAVE_UNISTD_H # include #endif #include #if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN # include #endif #if !defined PATH_MAX && defined MAXPATHLEN # define PATH_MAX MAXPATHLEN #endif #ifdef __hpux # undef PATH_MAX # define PATH_MAX 1024 #endif #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif ]]) # Prerequisites of gl_PATHMAX_SNIPPET. AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], [ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h]) ]) libidn-1.28/gl/m4/fstat.m40000644000000000000000000000164612153706065012115 00000000000000# fstat.m4 serial 4 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_FSTAT], [ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) AC_REQUIRE([gl_MSVC_INVAL]) if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then REPLACE_FSTAT=1 fi AC_REQUIRE([gl_HEADER_SYS_STAT_H]) if test $WINDOWS_64_BIT_ST_SIZE = 1; then REPLACE_FSTAT=1 fi dnl Replace fstat() for supporting the gnulib-defined open() on directories. m4_ifdef([gl_FUNC_FCHDIR], [ gl_TEST_FCHDIR if test $HAVE_FCHDIR = 0; then case "$gl_cv_func_open_directory_works" in *yes) ;; *) REPLACE_FSTAT=1 ;; esac fi ]) ]) # Prerequisites of lib/fstat.c. AC_DEFUN([gl_PREREQ_FSTAT], [:]) libidn-1.28/gl/m4/msvc-inval.m40000644000000000000000000000133412153706065013045 00000000000000# msvc-inval.m4 serial 1 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MSVC_INVAL], [ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler]) if test $ac_cv_func__set_invalid_parameter_handler = yes; then HAVE_MSVC_INVALID_PARAMETER_HANDLER=1 AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1], [Define to 1 on MSVC platforms that have the "invalid parameter handler" concept.]) else HAVE_MSVC_INVALID_PARAMETER_HANDLER=0 fi AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER]) ]) libidn-1.28/gl/m4/malloca.m40000644000000000000000000000110112153706065012366 00000000000000# malloca.m4 serial 1 dnl Copyright (C) 2003-2004, 2006-2007, 2009-2013 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_MALLOCA], [ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables dnl @ALLOCA@ and @LTALLOCA@. dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies. AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([AC_TYPE_LONG_LONG_INT]) ]) libidn-1.28/gl/m4/csharpexec.m40000644000000000000000000000517512153706065013122 00000000000000# csharpexec.m4 serial 4 dnl Copyright (C) 2003-2005, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Prerequisites of csharpexec.sh. # Checks for a C# execution engine. # gt_CSHARPEXEC or gt_CSHARPEXEC(testexecutable, its-directory) # Sets at most one of HAVE_ILRUN, HAVE_MONO, HAVE_CLIX. # Sets HAVE_CSHARPEXEC to nonempty if csharpexec.sh will work. AC_DEFUN([gt_CSHARPEXEC], [ AC_REQUIRE([gt_CSHARP_CHOICE]) AC_MSG_CHECKING([for C[#] program execution engine]) AC_EGREP_CPP([yes], [ #if defined _WIN32 || defined __WIN32__ || defined __EMX__ || defined __DJGPP__ yes #endif ], MONO_PATH_SEPARATOR=';', MONO_PATH_SEPARATOR=':') HAVE_CSHARPEXEC=1 pushdef([AC_MSG_CHECKING],[:])dnl pushdef([AC_CHECKING],[:])dnl pushdef([AC_MSG_RESULT],[:])dnl AC_CHECK_PROG([HAVE_ILRUN_IN_PATH], [ilrun], [yes]) AC_CHECK_PROG([HAVE_MONO_IN_PATH], [mono], [yes]) AC_CHECK_PROG([HAVE_CLIX_IN_PATH], [clix], [yes]) popdef([AC_MSG_RESULT])dnl popdef([AC_CHECKING])dnl popdef([AC_MSG_CHECKING])dnl for impl in "$CSHARP_CHOICE" pnet mono no; do case "$impl" in pnet) if test -n "$HAVE_ILRUN_IN_PATH" \ && ilrun --version >/dev/null 2>/dev/null \ ifelse([$1], , , [&& ilrun $2/$1 >/dev/null 2>/dev/null]); then HAVE_ILRUN=1 ac_result="ilrun" break fi ;; mono) if test -n "$HAVE_MONO_IN_PATH" \ && mono --version >/dev/null 2>/dev/null \ ifelse([$1], , , [&& mono $2/$1 >/dev/null 2>/dev/null]); then HAVE_MONO=1 ac_result="mono" break fi ;; sscli) if test -n "$HAVE_CLIX_IN_PATH" \ ifelse([$1], , , [&& clix $2/$1 >/dev/null 2>/dev/null]); then HAVE_CLIX=1 case $host_os in cygwin* | mingw* | pw32*) CLIX_PATH_VAR=PATH ;; darwin* | rhapsody*) CLIX_PATH_VAR=DYLD_LIBRARY_PATH ;; *) CLIX_PATH_VAR=LD_LIBRARY_PATH ;; esac eval CLIX_PATH=\"\$CLIX_PATH_VAR\" ac_result="clix" break fi ;; no) HAVE_CSHARPEXEC= ac_result="no" break ;; esac done AC_MSG_RESULT([$ac_result]) AC_SUBST([MONO_PATH]) AC_SUBST([MONO_PATH_SEPARATOR]) AC_SUBST([CLIX_PATH_VAR]) AC_SUBST([CLIX_PATH]) AC_SUBST([HAVE_ILRUN]) AC_SUBST([HAVE_MONO]) AC_SUBST([HAVE_CLIX]) ]) libidn-1.28/gl/m4/errno_h.m40000644000000000000000000000623412153706065012426 00000000000000# errno_h.m4 serial 12 dnl Copyright (C) 2004, 2006, 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [ AC_EGREP_CPP([booboo],[ #include #if !defined ETXTBSY booboo #endif #if !defined ENOMSG booboo #endif #if !defined EIDRM booboo #endif #if !defined ENOLINK booboo #endif #if !defined EPROTO booboo #endif #if !defined EMULTIHOP booboo #endif #if !defined EBADMSG booboo #endif #if !defined EOVERFLOW booboo #endif #if !defined ENOTSUP booboo #endif #if !defined ENETRESET booboo #endif #if !defined ECONNABORTED booboo #endif #if !defined ESTALE booboo #endif #if !defined EDQUOT booboo #endif #if !defined ECANCELED booboo #endif #if !defined EOWNERDEAD booboo #endif #if !defined ENOTRECOVERABLE booboo #endif #if !defined EILSEQ booboo #endif ], [gl_cv_header_errno_h_complete=no], [gl_cv_header_errno_h_complete=yes]) ]) if test $gl_cv_header_errno_h_complete = yes; then ERRNO_H='' else gl_NEXT_HEADERS([errno.h]) ERRNO_H='errno.h' fi AC_SUBST([ERRNO_H]) AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"]) gl_REPLACE_ERRNO_VALUE([EMULTIHOP]) gl_REPLACE_ERRNO_VALUE([ENOLINK]) gl_REPLACE_ERRNO_VALUE([EOVERFLOW]) ]) # Assuming $1 = EOVERFLOW. # The EOVERFLOW errno value ought to be defined in , according to # POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and # some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined. # Check for the value of EOVERFLOW. # Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE. AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [ if test -n "$ERRNO_H"; then AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [ AC_EGREP_CPP([yes],[ #include #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=yes], [gl_cv_header_errno_h_]$1[=no]) if test $gl_cv_header_errno_h_]$1[ = no; then AC_EGREP_CPP([yes],[ #define _XOPEN_SOURCE_EXTENDED 1 #include #ifdef ]$1[ yes #endif ], [gl_cv_header_errno_h_]$1[=hidden]) if test $gl_cv_header_errno_h_]$1[ = hidden; then dnl The macro exists but is hidden. dnl Define it to the same value. AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [ #define _XOPEN_SOURCE_EXTENDED 1 #include /* The following two lines are a workaround against an autoconf-2.52 bug. */ #include #include ]) fi fi ]) case $gl_cv_header_errno_h_]$1[ in yes | no) ]$1[_HIDDEN=0; ]$1[_VALUE= ;; *) ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1[" ;; esac AC_SUBST($1[_HIDDEN]) AC_SUBST($1[_VALUE]) fi ]) dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. dnl Remove this when we can assume autoconf >= 2.61. m4_ifdef([AC_COMPUTE_INT], [], [ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) ]) libidn-1.28/gl/m4/include_next.m40000644000000000000000000002542412153706065013455 00000000000000# include_next.m4 serial 23 dnl Copyright (C) 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert and Derek Price. dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER. dnl dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to dnl 'include' otherwise. dnl dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler dnl supports it in the special case that it is the first include directive in dnl the given file, or to 'include' otherwise. dnl dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next, dnl so as to avoid GCC warnings when the gcc option -pedantic is used. dnl '#pragma GCC system_header' has the same effect as if the file was found dnl through the include search path specified with '-isystem' options (as dnl opposed to the search path specified with '-I' options). Namely, gcc dnl does not warn about some things, and on some systems (Solaris and Interix) dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead dnl of plain '__STDC__'. dnl dnl PRAGMA_COLUMNS can be used in files that override system header files, so dnl as to avoid compilation errors on HP NonStop systems when the gnulib file dnl is included by a system header file that does a "#pragma COLUMNS 80" (which dnl has the effect of truncating the lines of that file and all files that it dnl includes to 80 columns) and the gnulib file has lines longer than 80 dnl columns. AC_DEFUN([gl_INCLUDE_NEXT], [ AC_LANG_PREPROC_REQUIRE() AC_CACHE_CHECK([whether the preprocessor supports include_next], [gl_cv_have_include_next], [rm -rf conftestd1a conftestd1b conftestd2 mkdir conftestd1a conftestd1b conftestd2 dnl IBM C 9.0, 10.1 (original versions, prior to the 2009-01 updates) on dnl AIX 6.1 support include_next when used as first preprocessor directive dnl in a file, but not when preceded by another include directive. Check dnl for this bug by including . dnl Additionally, with this same compiler, include_next is a no-op when dnl used in a header file that was included by specifying its absolute dnl file name. Despite these two bugs, include_next is used in the dnl compiler's . By virtue of the second bug, we need to use dnl include_next as well in this case. cat < conftestd1a/conftest.h #define DEFINED_IN_CONFTESTD1 #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd1b/conftest.h #define DEFINED_IN_CONFTESTD1 #include #include_next #ifdef DEFINED_IN_CONFTESTD2 int foo; #else #error "include_next doesn't work" #endif EOF cat < conftestd2/conftest.h #ifndef DEFINED_IN_CONFTESTD1 #error "include_next test doesn't work" #endif #define DEFINED_IN_CONFTESTD2 EOF gl_save_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2" dnl We intentionally avoid using AC_LANG_SOURCE here. AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], [gl_cv_have_include_next=yes], [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2" AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include ]], [gl_cv_have_include_next=buggy], [gl_cv_have_include_next=no]) ]) CPPFLAGS="$gl_save_CPPFLAGS" rm -rf conftestd1a conftestd1b conftestd2 ]) PRAGMA_SYSTEM_HEADER= if test $gl_cv_have_include_next = yes; then INCLUDE_NEXT=include_next INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next if test -n "$GCC"; then PRAGMA_SYSTEM_HEADER='#pragma GCC system_header' fi else if test $gl_cv_have_include_next = buggy; then INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next else INCLUDE_NEXT=include INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include fi fi AC_SUBST([INCLUDE_NEXT]) AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE]) AC_SUBST([PRAGMA_SYSTEM_HEADER]) AC_CACHE_CHECK([whether system header files limit the line length], [gl_cv_pragma_columns], [dnl HP NonStop systems, which define __TANDEM, have this misfeature. AC_EGREP_CPP([choke me], [ #ifdef __TANDEM choke me #endif ], [gl_cv_pragma_columns=yes], [gl_cv_pragma_columns=no]) ]) if test $gl_cv_pragma_columns = yes; then PRAGMA_COLUMNS="#pragma COLUMNS 10000" else PRAGMA_COLUMNS= fi AC_SUBST([PRAGMA_COLUMNS]) ]) # gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------------ # For each arg foo.h, if #include_next works, define NEXT_FOO_H to be # ''; otherwise define it to be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # Also, if #include_next works as first preprocessing directive in a file, # define NEXT_AS_FIRST_DIRECTIVE_FOO_H to be ''; otherwise define it to # be # '"///usr/include/foo.h"', or whatever other absolute file name is suitable. # That way, a header file with the following line: # #@INCLUDE_NEXT@ @NEXT_FOO_H@ # or # #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@ # behaves (after sed substitution) as if it contained # #include_next # even if the compiler does not support include_next. # The three "///" are to pacify Sun C 5.8, which otherwise would say # "warning: #include of /usr/include/... may be non-portable". # Use '""', not '<>', so that the /// cannot be confused with a C99 comment. # Note: This macro assumes that the header file is not empty after # preprocessing, i.e. it does not only define preprocessor macros but also # provides some type/enum definitions or function/variable declarations. # # This macro also checks whether each header exists, by invoking # AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument. AC_DEFUN([gl_CHECK_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [check]) ]) # gl_NEXT_HEADERS(HEADER1 HEADER2 ...) # ------------------------------------ # Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist. # This is suitable for headers like that are standardized by C89 # and therefore can be assumed to exist. AC_DEFUN([gl_NEXT_HEADERS], [ gl_NEXT_HEADERS_INTERNAL([$1], [assume]) ]) # The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS. AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [ AC_REQUIRE([gl_INCLUDE_NEXT]) AC_REQUIRE([AC_CANONICAL_HOST]) m4_if([$2], [check], [AC_CHECK_HEADERS_ONCE([$1]) ]) dnl FIXME: gl_next_header and gl_header_exists must be used unquoted dnl until we can assume autoconf 2.64 or newer. m4_foreach_w([gl_HEADER_NAME], [$1], [AS_VAR_PUSHDEF([gl_next_header], [gl_cv_next_]m4_defn([gl_HEADER_NAME])) if test $gl_cv_have_include_next = yes; then AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) else AC_CACHE_CHECK( [absolute name of <]m4_defn([gl_HEADER_NAME])[>], m4_defn([gl_next_header]), [m4_if([$2], [check], [AS_VAR_PUSHDEF([gl_header_exists], [ac_cv_header_]m4_defn([gl_HEADER_NAME])) if test AS_VAR_GET(gl_header_exists) = yes; then AS_VAR_POPDEF([gl_header_exists]) ]) AC_LANG_CONFTEST( [AC_LANG_SOURCE( [[#include <]]m4_dquote(m4_defn([gl_HEADER_NAME]))[[>]] )]) dnl AIX "xlc -E" and "cc -E" omit #line directives for header dnl files that contain only a #include of other header files and dnl no non-comment tokens of their own. This leads to a failure dnl to detect the absolute name of , , dnl and others. The workaround is to force preservation dnl of comments through option -C. This ensures all necessary dnl #line directives are present. GCC supports option -C as well. case "$host_os" in aix*) gl_absname_cpp="$ac_cpp -C" ;; *) gl_absname_cpp="$ac_cpp" ;; esac changequote(,) case "$host_os" in mingw*) dnl For the sake of native Windows compilers (excluding gcc), dnl treat backslash as a directory separator, like /. dnl Actually, these compilers use a double-backslash as dnl directory separator, inside the dnl # line "filename" dnl directives. gl_dirsep_regex='[/\\]' ;; *) gl_dirsep_regex='\/' ;; esac dnl A sed expression that turns a string into a basic regular dnl expression, for use within "/.../". gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g' changequote([,]) gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \ | sed -e "$gl_make_literal_regex_sed"` gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ changequote(,)dnl s|^/[^/]|//&| changequote([,])dnl p q }' dnl eval is necessary to expand gl_absname_cpp. dnl Ultrix and Pyramid sh refuse to redirect output of eval, dnl so use subshell. AS_VAR_SET(gl_next_header, ['"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&AS_MESSAGE_LOG_FD | sed -n "$gl_absolute_header_sed"`'"']) m4_if([$2], [check], [else AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>']) fi ]) ]) fi AC_SUBST( AS_TR_CPP([NEXT_]m4_defn([gl_HEADER_NAME])), [AS_VAR_GET(gl_next_header)]) if test $gl_cv_have_include_next = yes || test $gl_cv_have_include_next = buggy; then # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include_next' gl_next_as_first_directive='<'gl_HEADER_NAME'>' else # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' gl_next_as_first_directive=AS_VAR_GET(gl_next_header) fi AC_SUBST( AS_TR_CPP([NEXT_AS_FIRST_DIRECTIVE_]m4_defn([gl_HEADER_NAME])), [$gl_next_as_first_directive]) AS_VAR_POPDEF([gl_next_header])]) ]) # Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE; # this fallback is safe for all earlier autoconf versions. m4_define_default([AC_LANG_DEFINES_PROVIDED]) libidn-1.28/gl/m4/multiarch.m40000644000000000000000000000367412153706065012767 00000000000000# multiarch.m4 serial 7 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Determine whether the compiler is or may be producing universal binaries. # # On Mac OS X 10.5 and later systems, the user can create libraries and # executables that work on multiple system types--known as "fat" or # "universal" binaries--by specifying multiple '-arch' options to the # compiler but only a single '-arch' option to the preprocessor. Like # this: # # ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ # CPP="gcc -E" CXXCPP="g++ -E" # # Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly. AC_DEFUN_ONCE([gl_MULTIARCH], [ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN. gl_cv_c_multiarch=no AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[#ifndef __APPLE_CC__ not a universal capable compiler #endif typedef int dummy; ]])], [ dnl Check for potential -arch flags. It is not universal unless dnl there are at least two -arch flags with different values. arch= prev= for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do if test -n "$prev"; then case $word in i?86 | x86_64 | ppc | ppc64) if test -z "$arch" || test "$arch" = "$word"; then arch="$word" else gl_cv_c_multiarch=yes fi ;; esac prev= else if test "x$word" = "x-arch"; then prev=arch fi fi done ]) if test $gl_cv_c_multiarch = yes; then APPLE_UNIVERSAL_BUILD=1 else APPLE_UNIVERSAL_BUILD=0 fi AC_SUBST([APPLE_UNIVERSAL_BUILD]) ]) libidn-1.28/gl/m4/autobuild.m40000644000000000000000000000201012153706065012746 00000000000000# autobuild.m4 serial 7 dnl Copyright (C) 2004, 2006-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # Usage: AB_INIT([MODE]). AC_DEFUN([AB_INIT], [ AC_REQUIRE([AC_CANONICAL_BUILD]) AC_REQUIRE([AC_CANONICAL_HOST]) if test -z "$AB_PACKAGE"; then AB_PACKAGE=${PACKAGE_NAME:-$PACKAGE} fi AC_MSG_NOTICE([autobuild project... $AB_PACKAGE]) if test -z "$AB_VERSION"; then AB_VERSION=${PACKAGE_VERSION:-$VERSION} fi AC_MSG_NOTICE([autobuild revision... $AB_VERSION]) hostname=`hostname` if test "$hostname"; then AC_MSG_NOTICE([autobuild hostname... $hostname]) fi ifelse([$1],[],,[AC_MSG_NOTICE([autobuild mode... $1])]) date=`TZ=UTC0 date +%Y%m%dT%H%M%SZ` if test "$?" != 0; then date=`date` fi if test "$date"; then AC_MSG_NOTICE([autobuild timestamp... $date]) fi ]) libidn-1.28/gl/m4/largefile.m40000644000000000000000000001233212153706065012720 00000000000000# Enable large files on systems where this is not the default. # Copyright 1992-1996, 1998-2013 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # The following implementation works around a problem in autoconf <= 2.69; # AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5, # or configures them incorrectly in some cases. m4_version_prereq([2.70], [] ,[ # _AC_SYS_LARGEFILE_TEST_INCLUDES # ------------------------------- m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [@%:@include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply define LARGE_OFF_T to be 9223372036854775807, since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ @%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]];[]dnl ]) # _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, # CACHE-VAR, # DESCRIPTION, # PROLOGUE, [FUNCTION-BODY]) # -------------------------------------------------------- m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE], [AC_CACHE_CHECK([for $1 value needed for large files], [$3], [while :; do m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([$5], [$6])], [$3=no; break]) m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])( [AC_LANG_PROGRAM([@%:@define $1 $2 $5], [$6])], [$3=$2; break]) $3=unknown break done]) case $$3 in #( no | unknown) ;; *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);; esac rm -rf conftest*[]dnl ])# _AC_SYS_LARGEFILE_MACRO_VALUE # AC_SYS_LARGEFILE # ---------------- # By default, many hosts won't let programs access large files; # one must use special compiler options to get large-file access to work. # For more details about this brain damage please see: # http://www.unix-systems.org/version2/whatsnew/lfs20mar.html AC_DEFUN([AC_SYS_LARGEFILE], [AC_ARG_ENABLE(largefile, [ --disable-largefile omit support for large files]) if test "$enable_largefile" != no; then AC_CACHE_CHECK([for special C compiler options needed for large files], ac_cv_sys_largefile_CC, [ac_cv_sys_largefile_CC=no if test "$GCC" != yes; then ac_save_CC=$CC while :; do # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])]) AC_COMPILE_IFELSE([], [break]) CC="$CC -n32" AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break]) break done CC=$ac_save_CC rm -f conftest.$ac_ext fi]) if test "$ac_cv_sys_largefile_CC" != no; then CC=$CC$ac_cv_sys_largefile_CC fi _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits, [Number of bits in a file offset, on hosts where this is settable.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) if test $ac_cv_sys_file_offset_bits = unknown; then _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files, [Define for large files, on AIX-style hosts.], [_AC_SYS_LARGEFILE_TEST_INCLUDES]) fi AC_DEFINE([_DARWIN_USE_64_BIT_INODE], [1], [Enable large inode numbers on Mac OS X 10.5.]) fi ])# AC_SYS_LARGEFILE ])# m4_version_prereq 2.70 # Enable large files on systems where this is implemented by Gnulib, not by the # system headers. # Set the variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE if Gnulib # overrides ensure that off_t or 'struct size.st_size' are 64-bit, respectively. AC_DEFUN([gl_LARGEFILE], [ AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in mingw*) dnl Native Windows. dnl mingw64 defines off_t to a 64-bit type already, if dnl _FILE_OFFSET_BITS=64, which is ensured by AC_SYS_LARGEFILE. AC_CACHE_CHECK([for 64-bit off_t], [gl_cv_type_off_t_64], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int verify_off_t_size[sizeof (off_t) >= 8 ? 1 : -1]; ]], [[]])], [gl_cv_type_off_t_64=yes], [gl_cv_type_off_t_64=no]) ]) if test $gl_cv_type_off_t_64 = no; then WINDOWS_64_BIT_OFF_T=1 else WINDOWS_64_BIT_OFF_T=0 fi dnl But all native Windows platforms (including mingw64) have a 32-bit dnl st_size member in 'struct stat'. WINDOWS_64_BIT_ST_SIZE=1 ;; *) dnl Nothing to do on gnulib's side. dnl A 64-bit off_t is dnl - already the default on Mac OS X, FreeBSD, NetBSD, OpenBSD, IRIX, dnl OSF/1, Cygwin, dnl - enabled by _FILE_OFFSET_BITS=64 (ensured by AC_SYS_LARGEFILE) on dnl glibc, HP-UX, Solaris, dnl - enabled by _LARGE_FILES=1 (ensured by AC_SYS_LARGEFILE) on AIX, dnl - impossible to achieve on Minix 3.1.8. WINDOWS_64_BIT_OFF_T=0 WINDOWS_64_BIT_ST_SIZE=0 ;; esac ]) libidn-1.28/gl/m4/csharp.m40000644000000000000000000000172712153706065012254 00000000000000# csharp.m4 serial 3 dnl Copyright (C) 2004-2005, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # Sets CSHARP_CHOICE to the preferred C# implementation: # 'pnet' or 'mono' or 'any' or 'no'. AC_DEFUN([gt_CSHARP_CHOICE], [ AC_MSG_CHECKING([for preferred C[#] implementation]) AC_ARG_ENABLE([csharp], [ --enable-csharp[[=IMPL]] choose preferred C[#] implementation (pnet or mono)], [CSHARP_CHOICE="$enableval"], CSHARP_CHOICE=any) AC_SUBST([CSHARP_CHOICE]) AC_MSG_RESULT([$CSHARP_CHOICE]) case "$CSHARP_CHOICE" in pnet) AC_DEFINE([CSHARP_CHOICE_PNET], [1], [Define if pnet is the preferred C# implementation.]) ;; mono) AC_DEFINE([CSHARP_CHOICE_MONO], [1], [Define if mono is the preferred C# implementation.]) ;; esac ]) libidn-1.28/gl/m4/getdtablesize.m40000644000000000000000000000105612153706065013615 00000000000000# getdtablesize.m4 serial 4 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_GETDTABLESIZE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([getdtablesize]) if test $ac_cv_func_getdtablesize != yes; then HAVE_GETDTABLESIZE=0 fi ]) # Prerequisites of lib/getdtablesize.c. AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [:]) libidn-1.28/gl/m4/gnulib-common.m40000644000000000000000000003332112153706065013535 00000000000000# gnulib-common.m4 serial 33 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ dnl Use AC_REQUIRE here, so that the code is expanded once only. AC_REQUIRE([gl_00GNULIB]) AC_REQUIRE([gl_COMMON_BODY]) ]) AC_DEFUN([gl_COMMON_BODY], [ AH_VERBATIM([_Noreturn], [/* The _Noreturn keyword of C11. */ #if ! (defined _Noreturn \ || (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__)) # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ || 0x5110 <= __SUNPRO_C) # define _Noreturn __attribute__ ((__noreturn__)) # elif defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn # endif #endif ]) AH_VERBATIM([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. __APPLE__ && __MACH__ test for Mac OS X. __APPLE_CC__ tests for the Apple compiler and its version. __STDC_VERSION__ tests for the C99 mode. */ #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ # define __GNUC_STDC_INLINE__ 1 #endif]) AH_VERBATIM([unused_parameter], [/* Define as a marker that can be attached to declarations that might not be used. This helps to reduce warnings, such as from GCC -Wunused-parameter. */ #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) # define _GL_UNUSED __attribute__ ((__unused__)) #else # define _GL_UNUSED #endif /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name is a misnomer outside of parameter lists. */ #define _UNUSED_PARAMETER_ _GL_UNUSED /* The __pure__ attribute was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The __const__ attribute was added in gcc 2.95. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__)) #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif ]) dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not dnl to /dev/tty, so they can be redirected to log files. Such diagnostics dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. LIBC_FATAL_STDERR_=1 export LIBC_FATAL_STDERR_ ]) # gl_MODULE_INDICATOR_CONDITION # expands to a C preprocessor expression that evaluates to 1 or 0, depending # whether a gnulib module that has been requested shall be considered present # or not. m4_define([gl_MODULE_INDICATOR_CONDITION], [1]) # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) # sets the shell variable that indicates the presence of the given module to # a C preprocessor expression that will evaluate to 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [ gl_MODULE_INDICATOR_SET_VARIABLE_AUX( [GNULIB_[]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable]) # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION. # The shell variable's value is a C preprocessor expression that evaluates # to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], [ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1], [ dnl Simplify the expression VALUE || 1 to 1. $1=1 ], [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1], [gl_MODULE_INDICATOR_CONDITION])]) ]) # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition]) # modifies the shell variable to include the given condition. The shell # variable's value is a C preprocessor expression that evaluates to 0 or 1. AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], [ dnl Simplify the expression 1 || CONDITION to 1. if test "$[]$1" != 1; then dnl Simplify the expression 0 || CONDITION to CONDITION. if test "$[]$1" = 0; then $1=$2 else $1="($[]$1 || $2)" fi fi ]) # gl_MODULE_INDICATOR([modulename]) # defines a C macro indicating the presence of the given module # in a location where it can be used. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 0 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR], [ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [gl_MODULE_INDICATOR_CONDITION], [Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module $1 shall be considered present.]) ]) # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) # defines a C macro indicating the presence of the given module # in lib or tests. This is useful to determine whether the module # should be tested. # | Value | Value | # | in lib/ | in tests/ | # --------------------------------------------+---------+-----------+ # Module present among main modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module present among tests-related modules: | 1 | 1 | # --------------------------------------------+---------+-----------+ # Module not present at all: | 0 | 0 | # --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], [abcdefghijklmnopqrstuvwxyz./-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when the gnulib module $1 should be tested.]) ]) # gl_ASSERT_NO_GNULIB_POSIXCHECK # asserts that there will never be a need to #define GNULIB_POSIXCHECK. # and thereby enables an optimization of configure and config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [ dnl Override gl_WARN_ON_USE_PREPARE. dnl But hide this definition from 'aclocal'. AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], []) ]) # gl_ASSERT_NO_GNULIB_TESTS # asserts that there will be no gnulib tests in the scope of the configure.ac # and thereby enables an optimization of config.h. # Used by Emacs. AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], [ dnl Override gl_MODULE_INDICATOR_FOR_TESTS. AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], []) ]) # Test whether exists. # Set HAVE_FEATURES_H. AC_DEFUN([gl_FEATURES_H], [ AC_CHECK_HEADERS_ONCE([features.h]) if test $ac_cv_header_features_h = yes; then HAVE_FEATURES_H=1 else HAVE_FEATURES_H=0 fi AC_SUBST([HAVE_FEATURES_H]) ]) # m4_foreach_w # is a backport of autoconf-2.59c's m4_foreach_w. # Remove this macro when we can assume autoconf >= 2.60. m4_ifndef([m4_foreach_w], [m4_define([m4_foreach_w], [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) # ---------------------------------------------------- # Backport of autoconf-2.63b's macro. # Remove this macro when we can assume autoconf >= 2.64. m4_ifndef([AS_VAR_IF], [m4_define([AS_VAR_IF], [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])]) # gl_PROG_CC_C99 # Modifies the value of the shell variable CC in an attempt to make $CC # understand ISO C99 source code. # This is like AC_PROG_CC_C99, except that # - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60, # - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC # , # but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99 # . # Remaining problems: # - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options # to CC twice # . # - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard. AC_DEFUN([gl_PROG_CC_C99], [ dnl Change that version number to the minimum Autoconf version that supports dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls. m4_version_prereq([9.0], [AC_REQUIRE([AC_PROG_CC_C99])], [AC_REQUIRE([AC_PROG_CC_STDC])]) ]) # gl_PROG_AR_RANLIB # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler. # The user can set the variables AR, ARFLAGS, RANLIB if he wants to override # the values. AC_DEFUN([gl_PROG_AR_RANLIB], [ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler dnl as "cc", and GCC as "gcc". They have different object file formats and dnl library formats. In particular, the GNU binutils programs ar, ranlib dnl produce libraries that work only with gcc, not with cc. AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler], [ AC_EGREP_CPP([Amsterdam], [ #ifdef __ACK__ Amsterdam #endif ], [gl_cv_c_amsterdam_compiler=yes], [gl_cv_c_amsterdam_compiler=no]) ]) if test -z "$AR"; then if test $gl_cv_c_amsterdam_compiler = yes; then AR='cc -c.a' if test -z "$ARFLAGS"; then ARFLAGS='-o' fi else dnl Use the Automake-documented default values for AR and ARFLAGS, dnl but prefer ${host}-ar over ar (useful for cross-compiling). AC_CHECK_TOOL([AR], [ar], [ar]) if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi else if test -z "$ARFLAGS"; then ARFLAGS='cru' fi fi AC_SUBST([AR]) AC_SUBST([ARFLAGS]) if test -z "$RANLIB"; then if test $gl_cv_c_amsterdam_compiler = yes; then RANLIB=':' else dnl Use the ranlib program if it is available. AC_PROG_RANLIB fi fi AC_SUBST([RANLIB]) ]) # AC_PROG_MKDIR_P # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix # for interoperability with automake-1.9.6 from autoconf-2.62. # Remove this macro when we can assume autoconf >= 2.62 or # autoconf >= 2.60 && automake >= 1.10. # AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. m4_ifndef([AC_AUTOCONF_VERSION],[ m4_ifdef([AC_PROG_MKDIR_P], [ dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. m4_define([AC_PROG_MKDIR_P], m4_defn([AC_PROG_MKDIR_P])[ AC_SUBST([MKDIR_P])])], [ dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. AC_DEFUN_ONCE([AC_PROG_MKDIR_P], [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake MKDIR_P='$(mkdir_p)' AC_SUBST([MKDIR_P])])]) ]) # AC_C_RESTRICT # This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ # works. # This definition can be removed once autoconf >= 2.62 can be assumed. # AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. m4_ifndef([AC_AUTOCONF_VERSION],[ AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [[typedef int * int_ptr; int foo (int_ptr $ac_kw ip) { return ip[0]; }]], [[int s[1]; int * $ac_kw t = s; t[0] = 0; return foo(t)]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done ]) AH_VERBATIM([restrict], [/* Define to the equivalent of the C99 'restrict' keyword, or to nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict /* Work around a bug in Sun C++: it does not support _Restrict, even though the corresponding Sun C compiler does, which causes "#define restrict _Restrict" in the previous line. Perhaps some future version of Sun C++ will work with _Restrict; if so, it'll probably define __RESTRICT, just as Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac ]) ]) # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some # macros invoke AC_C_BIGENDIAN with arguments. AC_DEFUN([gl_BIGENDIAN], [ AC_C_BIGENDIAN ]) # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not # output a spurious "(cached)" mark in the midst of other configure output. # This macro should be used instead of AC_CACHE_VAL when it is not surrounded # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. AC_DEFUN([gl_CACHE_VAL_SILENT], [ saved_as_echo_n="$as_echo_n" as_echo_n=':' AC_CACHE_VAL([$1], [$2]) as_echo_n="$saved_as_echo_n" ]) libidn-1.28/gl/m4/eealloc.m40000644000000000000000000000166712153706065012403 00000000000000# eealloc.m4 serial 3 dnl Copyright (C) 2003, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_EEALLOC], [ AC_REQUIRE([gl_EEMALLOC]) AC_REQUIRE([gl_EEREALLOC]) ]) AC_DEFUN([gl_EEMALLOC], [ _AC_FUNC_MALLOC_IF( [gl_cv_func_malloc_0_nonnull=1], [gl_cv_func_malloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull], [If malloc(0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) AC_DEFUN([gl_EEREALLOC], [ _AC_FUNC_REALLOC_IF( [gl_cv_func_realloc_0_nonnull=1], [gl_cv_func_realloc_0_nonnull=0]) AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull], [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this to 0.]) ]) libidn-1.28/gl/string.in.h0000644000000000000000000011646112153706066012301 00000000000000/* A GNU-like . Copyright (C) 1995-1996, 2001-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_STRING_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* NetBSD 5.0 declares strsignal in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else # if ! @HAVE_MEMCHR@ _GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n)); # else _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if ! @HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); _GL_CXXALIASWARN (mempcpy); #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if ! @HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); _GL_CXXALIASWARN (stpcpy); #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif _GL_CXXALIASWARN (stpncpy); #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if !(@HAVE_DECL_STRDUP@ || defined strdup) _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #elif defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n)); # endif _GL_CXXALIASWARN (strncat); #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #elif defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept)); # else _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: http://www.opengroup.org/susv3xsh/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif _GL_CXXALIASWARN (mbslen); #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif _GL_CXXALIASWARN (strerror); #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ libidn-1.28/gl/stddef.in.h0000644000000000000000000000523212153706066012235 00000000000000/* A substitute for POSIX 2008 , for platforms that have issues. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * POSIX 2008 for platforms that have issues. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by . Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # undef _@GUARD_PREFIX@_STDDEF_H # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ #if @REPLACE_NULL@ # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif #endif /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ libidn-1.28/gl/unistd.c0000644000000000000000000000012412061006072011637 00000000000000#include #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" libidn-1.28/gl/verify.h0000644000000000000000000002354412166505337011673 00000000000000/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef _GL_VERIFY_H #define _GL_VERIFY_H /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. This is supported by GCC 4.6.0 and later, in C mode, and its use here generates easier-to-read diagnostics when verify (R) fails. Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. This will likely be supported by future GCC versions, in C++ mode. Use this only with GCC. If we were willing to slow 'configure' down we could also use it with other compilers, but since this affects only the quality of diagnostics, why bother? */ #if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \ && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \ && !defined __cplusplus) # define _GL_HAVE__STATIC_ASSERT 1 #endif /* The condition (99 < __GNUC__) is temporary, until we know about the first G++ release that supports static_assert. */ #if (99 < __GNUC__) && defined __cplusplus # define _GL_HAVE_STATIC_ASSERT 1 #endif /* FreeBSD 9.1 , included by and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ #ifndef _GL_HAVE_STATIC_ASSERT # include # undef _Static_assert #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. If _Static_assert works, verify (R) uses it directly. Similarly, _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct that is an operand of sizeof. The code below uses several ideas for C++ compilers, and for C compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an expression of integral type, whose value is later verified to be constant and nonnegative. * Next this expression W is wrapped in a type struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. One might think that an array size check would have the same effect, that is, that the type struct { unsigned int dummy[W]; } would work as well. However, inside a function, some compilers (such as C++ compilers and GNU C) allow local parameters and variables inside array size expressions. With these compilers, an array size check would not properly diagnose this misuse of the verify macro: void function (int n) { verify (n < 0); } * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, such as in struct dummy {...}; typedef struct {...} dummy; extern struct {...} *dummy; extern void dummy (struct {...} *); extern struct {...} *dummy (void); two uses of the verify macro would yield colliding declarations if the entity names are not disambiguated. A workaround is to attach the current line number to the entity name: #define _GL_CONCAT0(x, y) x##y #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) extern struct {...} * _GL_CONCAT (dummy, __LINE__); But this has the problem that two invocations of verify from within the same macro would collide, since the __LINE__ value would be the same for both invocations. (The GCC __COUNTER__ macro solves this problem, but is not portable.) A solution is to use the sizeof operator. It yields a number, getting rid of the identity of the type. Declarations like extern int dummy [sizeof (struct {...})]; extern void dummy (int [sizeof (struct {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; can be repeated. * Should the implementation use a named struct or an unnamed struct? Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns about the first, third, and fourth cases. So the only remaining possibility is the fifth case: extern int (*dummy (void)) [sizeof (struct {...})]; * GCC warns about duplicate declarations of the dummy function if -Wredundant-decls is used. GCC 4.3 and later have a builtin __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. * This implementation exploits the fact that older versions of GCC, which do not support _Static_assert, also do not warn about the last declaration mentioned above. * GCC warns if -Wnested-externs is enabled and verify() is used within a function body; but inside a function, you can always arrange to use verify_expr() instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Concatenate two preprocessor tokens. */ #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) #define _GL_CONCAT0(x, y) x##y /* _GL_COUNTER is an integer, preferably one that changes each time we use it. Use __COUNTER__ if it works, falling back on __LINE__ otherwise. __LINE__ isn't perfect, but it's better than a constant. */ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__ # define _GL_COUNTER __COUNTER__ #else # define _GL_COUNTER __LINE__ #endif /* Generate a symbol with the given prefix, making it unique if possible. */ #define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression that returns 1. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. */ #define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) #ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type template struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: w; }; # define GNULIB_defined_struct__gl_verify_type 1 # endif # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ _gl_verify_type<(R) ? 1 : -1> #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { \ _Static_assert (R, DIAGNOSTIC); \ int _gl_dummy; \ } #else # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } #endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ #ifdef _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY _Static_assert #else # define _GL_VERIFY(R, DIAGNOSTIC) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) # endif # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif /* @assert.h omit start@ */ /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all contexts in C. verify_true (R) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ /* Verify requirement R at compile-time, as an integer constant expression. Return 1. This is equivalent to verify_expr (R, 1). verify_true is obsolescent; please use verify_expr instead. */ #define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") /* Verify requirement R at compile-time. Return the value of the expression E. */ #define verify_expr(R, E) \ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ #define verify(R) _GL_VERIFY (R, "verify (" #R ")") /* @assert.h omit end@ */ #endif libidn-1.28/gl/msvc-nothrow.c0000644000000000000000000000243412153706066013021 00000000000000/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include "msvc-nothrow.h" /* Get declarations of the native Windows API functions. */ #define WIN32_LEAN_AND_MEAN #include #include "msvc-inval.h" #undef _get_osfhandle #if HAVE_MSVC_INVALID_PARAMETER_HANDLER intptr_t _gl_nothrow_get_osfhandle (int fd) { intptr_t result; TRY_MSVC_INVAL { result = _get_osfhandle (fd); } CATCH_MSVC_INVAL { result = (intptr_t) INVALID_HANDLE_VALUE; } DONE_MSVC_INVAL; return result; } #endif libidn-1.28/gl/errno.in.h0000644000000000000000000001646312153706065012120 00000000000000/* A POSIX-like . Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ERRNO_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ERRNO_H@ #ifndef _@GUARD_PREFIX@_ERRNO_H #define _@GUARD_PREFIX@_ERRNO_H /* On native Windows platforms, many macros are not defined. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ # ifndef ENOMSG # define ENOMSG 122 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 111 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 121 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 134 # define GNULIB_defined_EPROTO 1 # endif # ifndef EBADMSG # define EBADMSG 104 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 132 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 129 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 117 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 106 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ECANCELED # define ECANCELED 105 # define GNULIB_defined_ECANCELED 1 # endif # ifndef EOWNERDEAD # define EOWNERDEAD 133 # define GNULIB_defined_EOWNERDEAD 1 # endif # ifndef ENOTRECOVERABLE # define ENOTRECOVERABLE 127 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EINPROGRESS # define EINPROGRESS 112 # define EALREADY 103 # define ENOTSOCK 128 # define EDESTADDRREQ 109 # define EMSGSIZE 115 # define EPROTOTYPE 136 # define ENOPROTOOPT 123 # define EPROTONOSUPPORT 135 # define EOPNOTSUPP 130 # define EAFNOSUPPORT 102 # define EADDRINUSE 100 # define EADDRNOTAVAIL 101 # define ENETDOWN 116 # define ENETUNREACH 118 # define ECONNRESET 108 # define ENOBUFS 119 # define EISCONN 113 # define ENOTCONN 126 # define ETIMEDOUT 138 # define ECONNREFUSED 107 # define ELOOP 114 # define EHOSTUNREACH 110 # define EWOULDBLOCK 140 # define GNULIB_defined_ESOCK 1 # endif # ifndef ETXTBSY # define ETXTBSY 139 # define ENODATA 120 /* not required by POSIX */ # define ENOSR 124 /* not required by POSIX */ # define ENOSTR 125 /* not required by POSIX */ # define ETIME 137 /* not required by POSIX */ # define EOTHER 131 /* not required by POSIX */ # define GNULIB_defined_ESTREAMS 1 # endif /* These are intentionally the same values as the WSA* error numbers, defined in . */ # define ESOCKTNOSUPPORT 10044 /* not required by POSIX */ # define EPFNOSUPPORT 10046 /* not required by POSIX */ # define ESHUTDOWN 10058 /* not required by POSIX */ # define ETOOMANYREFS 10059 /* not required by POSIX */ # define EHOSTDOWN 10064 /* not required by POSIX */ # define EPROCLIM 10067 /* not required by POSIX */ # define EUSERS 10068 /* not required by POSIX */ # define EDQUOT 10069 # define ESTALE 10070 # define EREMOTE 10071 /* not required by POSIX */ # define GNULIB_defined_EWINSOCK 1 # endif /* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */ # if @EMULTIHOP_HIDDEN@ # define EMULTIHOP @EMULTIHOP_VALUE@ # define GNULIB_defined_EMULTIHOP 1 # endif # if @ENOLINK_HIDDEN@ # define ENOLINK @ENOLINK_VALUE@ # define GNULIB_defined_ENOLINK 1 # endif # if @EOVERFLOW_HIDDEN@ # define EOVERFLOW @EOVERFLOW_VALUE@ # define GNULIB_defined_EOVERFLOW 1 # endif /* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK, EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined. Likewise, on NonStop Kernel, EDQUOT is not defined. Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151, HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133. Note: When one of these systems defines some of these macros some day, binaries will have to be recompiled so that they recognizes the new errno values from the system. */ # ifndef ENOMSG # define ENOMSG 2000 # define GNULIB_defined_ENOMSG 1 # endif # ifndef EIDRM # define EIDRM 2001 # define GNULIB_defined_EIDRM 1 # endif # ifndef ENOLINK # define ENOLINK 2002 # define GNULIB_defined_ENOLINK 1 # endif # ifndef EPROTO # define EPROTO 2003 # define GNULIB_defined_EPROTO 1 # endif # ifndef EMULTIHOP # define EMULTIHOP 2004 # define GNULIB_defined_EMULTIHOP 1 # endif # ifndef EBADMSG # define EBADMSG 2005 # define GNULIB_defined_EBADMSG 1 # endif # ifndef EOVERFLOW # define EOVERFLOW 2006 # define GNULIB_defined_EOVERFLOW 1 # endif # ifndef ENOTSUP # define ENOTSUP 2007 # define GNULIB_defined_ENOTSUP 1 # endif # ifndef ENETRESET # define ENETRESET 2011 # define GNULIB_defined_ENETRESET 1 # endif # ifndef ECONNABORTED # define ECONNABORTED 2012 # define GNULIB_defined_ECONNABORTED 1 # endif # ifndef ESTALE # define ESTALE 2009 # define GNULIB_defined_ESTALE 1 # endif # ifndef EDQUOT # define EDQUOT 2010 # define GNULIB_defined_EDQUOT 1 # endif # ifndef ECANCELED # define ECANCELED 2008 # define GNULIB_defined_ECANCELED 1 # endif /* On many platforms, the macros EOWNERDEAD and ENOTRECOVERABLE are not defined. */ # ifndef EOWNERDEAD # if defined __sun /* Use the same values as defined for Solaris >= 8, for interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 # elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* We have a conflict here: pthreads-win32 defines these values differently than MSVC 10. It's hairy to decide which one to use. */ # if defined __MINGW32__ && !defined USE_WINDOWS_THREADS /* Use the same values as defined by pthreads-win32, for interoperability. */ # define EOWNERDEAD 43 # define ENOTRECOVERABLE 44 # else /* Use the same values as defined by MSVC 10, for interoperability. */ # define EOWNERDEAD 133 # define ENOTRECOVERABLE 127 # endif # else # define EOWNERDEAD 2013 # define ENOTRECOVERABLE 2014 # endif # define GNULIB_defined_EOWNERDEAD 1 # define GNULIB_defined_ENOTRECOVERABLE 1 # endif # ifndef EILSEQ # define EILSEQ 2015 # define GNULIB_defined_EILSEQ 1 # endif #endif /* _@GUARD_PREFIX@_ERRNO_H */ #endif /* _@GUARD_PREFIX@_ERRNO_H */ libidn-1.28/gl/version-etc.c0000644000000000000000000002176512153706066012621 00000000000000/* Print --version and bug-reporting information in a consistent format. Copyright (C) 1999-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Jim Meyering. */ #include /* Specification. */ #include "version-etc.h" #include #include #include #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #include "gettext.h" #define _(msgid) gettext (msgid) /* If you use AM_INIT_AUTOMAKE's no-define option, PACKAGE is not defined. Use PACKAGE_TARNAME instead. */ #if ! defined PACKAGE && defined PACKAGE_TARNAME # define PACKAGE PACKAGE_TARNAME #endif enum { COPYRIGHT_YEAR = 2013 }; /* The three functions below display the --version information the standard way. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The functions differ in the way they are passed author names. */ /* Display the --version information the standard way. Author names are given in the array AUTHORS. N_AUTHORS is the number of elements in the array. */ void version_etc_arn (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors, size_t n_authors) { if (command_name) fprintf (stream, "%s (%s) %s\n", command_name, package, version); else fprintf (stream, "%s %s\n", package, version); #ifdef PACKAGE_PACKAGER # ifdef PACKAGE_PACKAGER_VERSION fprintf (stream, _("Packaged by %s (%s)\n"), PACKAGE_PACKAGER, PACKAGE_PACKAGER_VERSION); # else fprintf (stream, _("Packaged by %s\n"), PACKAGE_PACKAGER); # endif #endif /* TRANSLATORS: Translate "(C)" to the copyright symbol (C-in-a-circle), if this symbol is available in the user's locale. Otherwise, do not translate "(C)"; leave it as-is. */ fprintf (stream, version_etc_copyright, _("(C)"), COPYRIGHT_YEAR); fputs (_("\ \n\ License GPLv3+: GNU GPL version 3 or later .\n\ This is free software: you are free to change and redistribute it.\n\ There is NO WARRANTY, to the extent permitted by law.\n\ \n\ "), stream); switch (n_authors) { case 0: /* The caller must provide at least one author name. */ abort (); case 1: /* TRANSLATORS: %s denotes an author name. */ fprintf (stream, _("Written by %s.\n"), authors[0]); break; case 2: /* TRANSLATORS: Each %s denotes an author name. */ fprintf (stream, _("Written by %s and %s.\n"), authors[0], authors[1]); break; case 3: /* TRANSLATORS: Each %s denotes an author name. */ fprintf (stream, _("Written by %s, %s, and %s.\n"), authors[0], authors[1], authors[2]); break; case 4: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\nand %s.\n"), authors[0], authors[1], authors[2], authors[3]); break; case 5: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4]); break; case 6: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5]); break; case 7: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("Written by %s, %s, %s,\n%s, %s, %s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6]); break; case 8: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\nand %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7]); break; case 9: /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, and %s.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7], authors[8]); break; default: /* 10 or more authors. Use an abbreviation, since the human reader will probably not want to read the entire list anyway. */ /* TRANSLATORS: Each %s denotes an author name. You can use line breaks, estimating that each author name occupies ca. 16 screen columns and that a screen line has ca. 80 columns. */ fprintf (stream, _("\ Written by %s, %s, %s,\n%s, %s, %s, %s,\n%s, %s, and others.\n"), authors[0], authors[1], authors[2], authors[3], authors[4], authors[5], authors[6], authors[7], authors[8]); break; } } /* Display the --version information the standard way. See the initial comment to this module, for more information. Author names are given in the NULL-terminated array AUTHORS. */ void version_etc_ar (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors) { size_t n_authors; for (n_authors = 0; authors[n_authors]; n_authors++) ; version_etc_arn (stream, command_name, package, version, authors, n_authors); } /* Display the --version information the standard way. See the initial comment to this module, for more information. Author names are given in the NULL-terminated va_list AUTHORS. */ void version_etc_va (FILE *stream, const char *command_name, const char *package, const char *version, va_list authors) { size_t n_authors; const char *authtab[10]; for (n_authors = 0; n_authors < 10 && (authtab[n_authors] = va_arg (authors, const char *)) != NULL; n_authors++) ; version_etc_arn (stream, command_name, package, version, authtab, n_authors); } /* Display the --version information the standard way. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The authors names are passed as separate arguments, with an additional NULL argument at the end. */ void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, /* const char *author1, ...*/ ...) { va_list authors; va_start (authors, version); version_etc_va (stream, command_name, package, version, authors); va_end (authors); } void emit_bug_reporting_address (void) { /* TRANSLATORS: The placeholder indicates the bug-reporting address for this package. Please add _another line_ saying "Report translation bugs to <...>\n" with the address for translation bugs (typically your translation team's web or email address). */ printf (_("\nReport bugs to: %s\n"), PACKAGE_BUGREPORT); #ifdef PACKAGE_PACKAGER_BUG_REPORTS printf (_("Report %s bugs to: %s\n"), PACKAGE_PACKAGER, PACKAGE_PACKAGER_BUG_REPORTS); #endif #ifdef PACKAGE_URL printf (_("%s home page: <%s>\n"), PACKAGE_NAME, PACKAGE_URL); #else printf (_("%s home page: \n"), PACKAGE_NAME, PACKAGE); #endif fputs (_("General help using GNU software: \n"), stdout); } libidn-1.28/gl/msvc-inval.c0000644000000000000000000000751112166505337012435 00000000000000/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #include /* Specification. */ #include "msvc-inval.h" #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* Get _invalid_parameter_handler type and _set_invalid_parameter_handler declaration. */ # include # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { } # else /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include # if defined _MSC_VER static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # else /* An index to thread-local storage. */ static DWORD tls_index; static int tls_initialized /* = 0 */; /* Used as a fallback only. */ static struct gl_msvc_inval_per_thread not_per_thread; struct gl_msvc_inval_per_thread * gl_msvc_inval_current (void) { if (!tls_initialized) { tls_index = TlsAlloc (); tls_initialized = 1; } if (tls_index == TLS_OUT_OF_INDEXES) /* TlsAlloc had failed. */ return ¬_per_thread; else { struct gl_msvc_inval_per_thread *pointer = (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index); if (pointer == NULL) { /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */ pointer = (struct gl_msvc_inval_per_thread *) malloc (sizeof (struct gl_msvc_inval_per_thread)); if (pointer == NULL) /* Could not allocate memory. Use the global storage. */ pointer = ¬_per_thread; TlsSetValue (tls_index, pointer); } return pointer; } } static void __cdecl gl_msvc_invalid_parameter_handler (const wchar_t *expression, const wchar_t *function, const wchar_t *file, unsigned int line, uintptr_t dummy) { struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current (); if (current->restart_valid) longjmp (current->restart, 1); else /* An invalid parameter notification from outside the gnulib code. Give the caller a chance to intervene. */ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL); } # endif # endif static int gl_msvc_inval_initialized /* = 0 */; void gl_msvc_inval_ensure_handler (void) { if (gl_msvc_inval_initialized == 0) { _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler); gl_msvc_inval_initialized = 1; } } #endif libidn-1.28/gl/gettext.h0000644000000000000000000001033312153706065012040 00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include , which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String #endif /* _LIBGETTEXT_H */ libidn-1.28/gl/progname.h0000644000000000000000000000377612153706066012202 00000000000000/* Program name management. Copyright (C) 2001-2004, 2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2001. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _PROGNAME_H #define _PROGNAME_H /* Programs using this file should do the following in main(): set_program_name (argv[0]); */ #ifdef __cplusplus extern "C" { #endif /* String containing name the program is called with. */ extern const char *program_name; /* Set program_name, based on argv[0]. argv0 must be a string allocated with indefinite extent, and must not be modified after this call. */ extern void set_program_name (const char *argv0); #if defined(ENABLE_RELOCATABLE) && ENABLE_RELOCATABLE /* Set program_name, based on argv[0], and original installation prefix and directory, for relocatability. */ extern void set_program_name_and_installdir (const char *argv0, const char *orig_installprefix, const char *orig_installdir); #undef set_program_name #define set_program_name(ARG0) \ set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR) /* Return the full pathname of the current executable, based on the earlier call to set_program_name_and_installdir. Return NULL if unknown. */ extern char *get_full_program_name (void); #endif #ifdef __cplusplus } #endif #endif /* _PROGNAME_H */ libidn-1.28/gl/msvc-nothrow.h0000644000000000000000000000301012153706066013015 00000000000000/* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _MSVC_NOTHROW_H #define _MSVC_NOTHROW_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines wrappers that turn such an invalid parameter notification into an error code. */ #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include # if HAVE_MSVC_INVALID_PARAMETER_HANDLER /* Override _get_osfhandle. */ extern intptr_t _gl_nothrow_get_osfhandle (int fd); # define _get_osfhandle _gl_nothrow_get_osfhandle # endif #endif #endif /* _MSVC_NOTHROW_H */ libidn-1.28/gl/strerror.c0000644000000000000000000000404312153706066012233 00000000000000/* strerror.c --- POSIX compatible system error routine Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include #include #include #include #include "intprops.h" #include "strerror-override.h" #include "verify.h" /* Use the system functions, not the gnulib overrides in this file. */ #undef sprintf char * strerror (int n) #undef strerror { static char buf[STACKBUF_LEN]; size_t len; /* Cast away const, due to the historical signature of strerror; callers should not be modifying the string. */ const char *msg = strerror_override (n); if (msg) return (char *) msg; msg = strerror (n); /* Our strerror_r implementation might use the system's strerror buffer, so all other clients of strerror have to see the error copied into a buffer that we manage. This is not thread-safe, even if the system strerror is, but portable programs shouldn't be using strerror if they care about thread-safety. */ if (!msg || !*msg) { static char const fmt[] = "Unknown error %d"; verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n)); sprintf (buf, fmt, n); errno = EINVAL; return buf; } /* Fix STACKBUF_LEN if this ever aborts. */ len = strlen (msg); if (sizeof buf <= len) abort (); return memcpy (buf, msg, len + 1); } libidn-1.28/gl/intprops.h0000644000000000000000000003504112153706065012235 00000000000000/* intprops.h -- properties of integer types Copyright (C) 2001-2005, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include /* Return an integer value, converted to the same type as the integer expression E after integer type promotion. V is the unconverted value. */ #define _GL_INT_CONVERT(e, v) (0 * (e) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see . */ #define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) #define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) #define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) /* True if the signed integer expression E uses two's complement. */ #define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1) /* True if the arithmetic type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the integer expression E, after integer promotion, has a signed type. */ #define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. These macros have undefined behavior if T is signed and has padding bits. If this is a problem for you, please let us know how to fix it for your host. */ /* The maximum and minimum values for the integer type T. */ #define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) 0 \ : TYPE_SIGNED_MAGNITUDE (t) \ ? ~ (t) 0 \ : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) /* The maximum and minimum values for the type of the expression E, after integer promotion. E should not have side effects. */ #define _GL_INT_MINIMUM(e) \ (_GL_INT_SIGNED (e) \ ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (_GL_INT_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1) /* Return 1 if the __typeof__ keyword works. This could be done by 'configure', but for now it's easier to do it by hand. */ #if 2 <= __GNUC__ || defined __IBM__TYPEOF__ || 0x5110 <= __SUNPRO_C # define _GL_HAVE___TYPEOF__ 1 #else # define _GL_HAVE___TYPEOF__ 0 #endif /* Return 1 if the integer type or expression T might be signed. Return 0 if it is definitely unsigned. This macro does not evaluate its argument, and expands to an integer constant expression. */ #if _GL_HAVE___TYPEOF__ # define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) #else # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 #endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is signed, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \ - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT__RANGE_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They do not rely on undefined or implementation-defined behavior. Their implementations are simple and straightforward, but they are a bit harder to use than the INT__OVERFLOW macros described below. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); Restrictions on *_RANGE_OVERFLOW macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The arithmetic arguments (including the MIN and MAX arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (a) < (min) - (b) \ : (max) - (b) < (a)) /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (max) + (b) < (a) \ : (a) < (min) + (b)) /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ((min) < 0 \ ? (a) < - (max) \ : 0 < (a)) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see . */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ ? (a) < (max) / (b) \ : (b) == -1 \ ? 0 \ : (min) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (a) < (min) / (b) \ : (max) / (b) < (a))) /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. */ #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ((min) < 0 && (b) == -1 && (a) < - (max)) /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. Mathematically, % should never overflow, but on x86-like hosts INT_MIN % -1 traps, and the C standard permits this, so treat this as an overflow too. */ #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Here, MIN and MAX are for A only, and B need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0 <= B < wordwidth, and that when A is negative then A << B has undefined behavior and A >> B has implementation-defined behavior, but do not check these other restrictions. */ #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ((a) < 0 \ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ #define _GL_ADD_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? (b) <= (a) + (b) \ : (b) < 0 ? (a) <= (a) + (b) \ : (a) + (b) < (b)) #define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? 1 \ : (b) < 0 ? (a) - (b) <= (a) \ : (a) < (b)) #define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ : (b) < 0 && (a) + (b) <= (a)) #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) /* Return a nonzero value if A is a mathematical multiple of B, where A is unsigned, B is negative, and MAX is the maximum value of A's type. A's type must be the same as (A % B)'s type. Normally (A % -B == 0) suffices, but things get tricky if -B would overflow. */ #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ? (a) \ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ : (a) % - (b)) \ == 0) /* Integer overflow checks. The INT__OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_OVERFLOW (i, j)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. These macros are tuned for their last argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ #define INT_ADD_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) #define INT_NEGATE_OVERFLOW(a) \ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) #define INT_REMAINDER_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) /* Return 1 if the expression A B would overflow, where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, assuming MIN and MAX are the minimum and maximum for the result type. Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ _GL_INT_MINIMUM (0 * (b) + (a)), \ _GL_INT_MAXIMUM (0 * (b) + (a))) #endif /* _GL_INTPROPS_H */ libidn-1.28/gl/msvc-inval.h0000644000000000000000000002113512153706066012436 00000000000000/* Invalid parameter handler for MSVC runtime libraries. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _MSVC_INVAL_H #define _MSVC_INVAL_H /* With MSVC runtime libraries with the "invalid parameter handler" concept, functions like fprintf(), dup2(), or close() crash when the caller passes an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF) instead. This file defines macros that turn such an invalid parameter notification into a non-local exit. An error code can then be produced at the target of this exit. You can thus write code like TRY_MSVC_INVAL { } CATCH_MSVC_INVAL { } DONE_MSVC_INVAL; This entire block expands to a single statement. The handling of invalid parameters can be done in three ways: * The default way, which is reasonable for programs (not libraries): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING]) * The way for libraries that make "hairy" calls (like close(-1), or fclose(fp) where fileno(fp) is closed, or simply getdtablesize()): AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING]) * The way for libraries that make no "hairy" calls: AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING]) */ #define DEFAULT_HANDLING 0 #define HAIRY_LIBRARY_HANDLING 1 #define SANE_LIBRARY_HANDLING 2 #if HAVE_MSVC_INVALID_PARAMETER_HANDLER \ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING) /* A native Windows platform with the "invalid parameter handler" concept, and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */ # if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING /* Default handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that just returns. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) # else /* Handling for hairy libraries. */ # include /* Gnulib can define its own status codes, as described in the page "Raising Software Exceptions" on microsoft.com . Our status codes are composed of - 0xE0000000, mandatory for all user-defined status codes, - 0x474E550, a API identifier ("GNU"), - 0, 1, 2, ..., used to distinguish different status codes from the same API. */ # define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0) # if defined _MSC_VER /* A compiler that supports __try/__except, as described in the page "try-except statement" on microsoft.com . With __try/__except, we can use the multithread-safe exception handling. */ # ifdef __cplusplus extern "C" { # endif /* Ensure that the invalid parameter handler in installed that raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ gl_msvc_inval_ensure_handler (); \ __try # define CATCH_MSVC_INVAL \ __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \ ? EXCEPTION_EXECUTE_HANDLER \ : EXCEPTION_CONTINUE_SEARCH) # define DONE_MSVC_INVAL \ } \ while (0) # else /* Any compiler. We can only use setjmp/longjmp. */ # include # ifdef __cplusplus extern "C" { # endif struct gl_msvc_inval_per_thread { /* The restart that will resume execution at the code between CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */ jmp_buf restart; /* Tells whether the contents of restart is valid. */ int restart_valid; }; /* Ensure that the invalid parameter handler in installed that passes control to the gl_msvc_inval_restart if it is valid, or raises a software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise. Because we assume no other part of the program installs a different invalid parameter handler, this solution is multithread-safe. */ extern void gl_msvc_inval_ensure_handler (void); /* Return a pointer to the per-thread data for the current thread. */ extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void); # ifdef __cplusplus } # endif # define TRY_MSVC_INVAL \ do \ { \ struct gl_msvc_inval_per_thread *msvc_inval_current; \ gl_msvc_inval_ensure_handler (); \ msvc_inval_current = gl_msvc_inval_current (); \ /* First, initialize gl_msvc_inval_restart. */ \ if (setjmp (msvc_inval_current->restart) == 0) \ { \ /* Then, mark it as valid. */ \ msvc_inval_current->restart_valid = 1; # define CATCH_MSVC_INVAL \ /* Execution completed. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; \ } \ else \ { \ /* Execution triggered an invalid parameter notification. \ Mark gl_msvc_inval_restart as invalid. */ \ msvc_inval_current->restart_valid = 0; # define DONE_MSVC_INVAL \ } \ } \ while (0) # endif # endif #else /* A platform that does not need to the invalid parameter handler, or when SANE_LIBRARY_HANDLING is desired. */ /* The braces here avoid GCC warnings like "warning: suggest explicit braces to avoid ambiguous 'else'". */ # define TRY_MSVC_INVAL \ do \ { \ if (1) # define CATCH_MSVC_INVAL \ else # define DONE_MSVC_INVAL \ } \ while (0) #endif #endif /* _MSVC_INVAL_H */ libidn-1.28/gl/unistd.in.h0000644000000000000000000014535012153706066012300 00000000000000/* Substitute for and wrapper around . Copyright (C) 2003-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ #include /* mingw doesn't define the SEEK_* or *_FILENO macros in . */ /* Cygwin 1.7.1 declares symlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include #endif /* Cygwin 1.7.1 declares unlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \ && ! defined __GLIBC__ # include #endif /* mingw fails to declare _exit in . */ /* mingw, MSVC, BeOS, Haiku declare environ in , not in . */ /* Solaris declares getcwd not only in but also in . */ /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is included here. */ /* But avoid namespace pollution on glibc systems. */ #if !defined __GLIBC__ && !defined __osf__ # define __need_system_stdlib_h # include # undef __need_system_stdlib_h #endif /* Native Windows platforms declare chdir, getcwd, rmdir in and/or , not in . They also declare access(), chmod(), close(), dup(), dup2(), isatty(), lseek(), read(), unlink(), write() in . */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif /* AIX and OSF/1 5.1 declare getdomainname in , not in . NonStop Kernel declares gethostname in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include #endif /* MSVC defines off_t in . May also define off_t to a 64-bit type on native Windows. */ #if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ /* Get off_t. */ # include #endif #if (@GNULIB_READ@ || @GNULIB_WRITE@ \ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) /* Get ssize_t. */ # include #endif /* Get getopt(), optarg, optind, opterr, optopt. But avoid namespace pollution on glibc systems. */ #if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT # define __need_getopt # include #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Hide some function declarations from . */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if defined GNULIB_POSIXCHECK /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "the access function is a security risk - " "use the gnulib module faccessat instead"); #endif #if @GNULIB_CHDIR@ _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in - " "use gnulib module chdir for portability"); # endif #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # else # if !@HAVE_DUP2@ _GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at . */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIASWARN (dup3); #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is unportable - " "use gnulib module environ for portability"); # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_FACCESSAT@ # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIASWARN (fdatasync); #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification . Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (getdomainname); #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIAS_SYS (getdtablesize, int, (void)); _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif _GL_CXXALIASWARN (getlogin_r); #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif _GL_CXXALIASWARN (linkat); #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at . */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif _GL_CXXALIASWARN (pipe2); #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification . */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pread); #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification . */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pwrite); #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification . */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIASWARN (sethostname); #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification . */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif _GL_CXXALIASWARN (ttyname_r); #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification . */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIAS_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification . */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ libidn-1.28/gl/getopt_int.h0000644000000000000000000001174212153706065012535 00000000000000/* Internal declarations for getopt. Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2004, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GETOPT_INT_H #define _GETOPT_INT_H 1 #include extern int _getopt_internal (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only, int __posixly_correct); /* Reentrant versions which can handle parsing multiple argument vectors at the same time. */ /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using '+' as the first character of the list of option characters, or by calling getopt. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using '-' as the first character of the list of option characters selects this mode of operation. The special argument '--' forces an end of option-scanning regardless of the value of 'ordering'. In the case of RETURN_IN_ORDER, only '--' can cause 'getopt' to return -1 with 'optind' != ARGC. */ enum __ord { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER }; /* Data type for reentrant functions. */ struct _getopt_data { /* These have exactly the same meaning as the corresponding global variables, except that they are used for the reentrant versions of getopt. */ int optind; int opterr; int optopt; char *optarg; /* Internal members. */ /* True if the internal members have been initialized. */ int __initialized; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ char *__nextchar; /* See __ord above. */ enum __ord __ordering; /* If the POSIXLY_CORRECT environment variable is set or getopt was called. */ int __posixly_correct; /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. 'first_nonopt' is the index in ARGV of the first of them; 'last_nonopt' is the index after the last of them. */ int __first_nonopt; int __last_nonopt; #if defined _LIBC && defined USE_NONOPTION_FLAGS int __nonoption_flags_max_len; int __nonoption_flags_len; #endif }; /* The initializer is necessary to set OPTIND and OPTERR to their default values and to clear the initialization flag. */ #define _GETOPT_DATA_INITIALIZER { 1, 1 } extern int _getopt_internal_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, int __long_only, struct _getopt_data *__data, int __posixly_correct); extern int _getopt_long_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, struct _getopt_data *__data); extern int _getopt_long_only_r (int ___argc, char **___argv, const char *__shortopts, const struct option *__longopts, int *__longind, struct _getopt_data *__data); #endif /* getopt_int.h */ libidn-1.28/gl/getopt.c0000644000000000000000000011750412153706065011661 00000000000000/* Getopt for GNU. NOTE: getopt is part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to drepper@gnu.org before changing it! Copyright (C) 1987-1996, 1998-2004, 2006, 2008-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _LIBC # include #endif #include "getopt.h" #include #include #include #include #ifdef _LIBC # include #else # include "gettext.h" # define _(msgid) gettext (msgid) #endif #if defined _LIBC && defined USE_IN_LIBIO # include #endif /* This version of 'getopt' appears to the caller like standard Unix 'getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As 'getopt_long' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Using 'getopt' or setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt_int.h" /* For communication from 'getopt' to the caller. When 'getopt' finds an option that takes an argument, the argument value is returned here. Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to 'getopt'. On entry to 'getopt', zero means this is the first call; initialize. When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* 1003.2 says this must be 1 before any call. */ int optind = 1; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Keep a global copy of all internal members of getopt_data. */ static struct _getopt_data getopt_data; #if defined HAVE_DECL_GETENV && !HAVE_DECL_GETENV extern char *getenv (); #endif #ifdef _LIBC /* Stored original parameters. XXX This is no good solution. We should rather copy the args so that we can compare them later. But we must not use malloc(3). */ extern int __libc_argc; extern char **__libc_argv; /* Bash 2.0 gives us an environment variable containing flags indicating ARGV elements that should not be considered arguments. */ # ifdef USE_NONOPTION_FLAGS /* Defined in getopt_init.c */ extern char *__getopt_nonoption_flags; # endif # ifdef USE_NONOPTION_FLAGS # define SWAP_FLAGS(ch1, ch2) \ if (d->__nonoption_flags_len > 0) \ { \ char __tmp = __getopt_nonoption_flags[ch1]; \ __getopt_nonoption_flags[ch1] = __getopt_nonoption_flags[ch2]; \ __getopt_nonoption_flags[ch2] = __tmp; \ } # else # define SWAP_FLAGS(ch1, ch2) # endif #else /* !_LIBC */ # define SWAP_FLAGS(ch1, ch2) #endif /* _LIBC */ /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. 'first_nonopt' and 'last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ static void exchange (char **argv, struct _getopt_data *d) { int bottom = d->__first_nonopt; int middle = d->__last_nonopt; int top = d->optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ #if defined _LIBC && defined USE_NONOPTION_FLAGS /* First make sure the handling of the '__getopt_nonoption_flags' string can work normally. Our top argument must be in the range of the string. */ if (d->__nonoption_flags_len > 0 && top >= d->__nonoption_flags_max_len) { /* We must extend the array. The user plays games with us and presents new arguments. */ char *new_str = malloc (top + 1); if (new_str == NULL) d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0; else { memset (__mempcpy (new_str, __getopt_nonoption_flags, d->__nonoption_flags_max_len), '\0', top + 1 - d->__nonoption_flags_max_len); d->__nonoption_flags_max_len = top + 1; __getopt_nonoption_flags = new_str; } } #endif while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; SWAP_FLAGS (bottom + i, top - (middle - bottom) + i); } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; SWAP_FLAGS (bottom + i, middle + i); } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ d->__first_nonopt += (d->optind - d->__last_nonopt); d->__last_nonopt = d->optind; } /* Initialize the internal data when the first call is made. */ static const char * _getopt_initialize (int argc _GL_UNUSED, char **argv _GL_UNUSED, const char *optstring, struct _getopt_data *d, int posixly_correct) { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ d->__first_nonopt = d->__last_nonopt = d->optind; d->__nextchar = NULL; d->__posixly_correct = posixly_correct || !!getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { d->__ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { d->__ordering = REQUIRE_ORDER; ++optstring; } else if (d->__posixly_correct) d->__ordering = REQUIRE_ORDER; else d->__ordering = PERMUTE; #if defined _LIBC && defined USE_NONOPTION_FLAGS if (!d->__posixly_correct && argc == __libc_argc && argv == __libc_argv) { if (d->__nonoption_flags_max_len == 0) { if (__getopt_nonoption_flags == NULL || __getopt_nonoption_flags[0] == '\0') d->__nonoption_flags_max_len = -1; else { const char *orig_str = __getopt_nonoption_flags; int len = d->__nonoption_flags_max_len = strlen (orig_str); if (d->__nonoption_flags_max_len < argc) d->__nonoption_flags_max_len = argc; __getopt_nonoption_flags = (char *) malloc (d->__nonoption_flags_max_len); if (__getopt_nonoption_flags == NULL) d->__nonoption_flags_max_len = -1; else memset (__mempcpy (__getopt_nonoption_flags, orig_str, len), '\0', d->__nonoption_flags_max_len - len); } } d->__nonoption_flags_len = d->__nonoption_flags_max_len; } else d->__nonoption_flags_len = 0; #endif return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If 'getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If 'getopt' finds another option character, it returns that character, updating 'optind' and 'nextchar' so that the next call to 'getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, 'getopt' returns -1. Then 'optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set 'opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in 'optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in 'optarg', otherwise 'optarg' is set to zero. If OPTSTRING starts with '-' or '+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with '--' instead of '-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a '=', or else the in next ARGV-element. When 'getopt' finds a long-named option, it returns 0 if that option's 'flag' field is nonzero, the value of the option's 'val' field if the 'flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of 'struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal_r (int argc, char **argv, const char *optstring, const struct option *longopts, int *longind, int long_only, struct _getopt_data *d, int posixly_correct) { int print_errors = d->opterr; if (argc < 1) return -1; d->optarg = NULL; if (d->optind == 0 || !d->__initialized) { if (d->optind == 0) d->optind = 1; /* Don't scan ARGV[0], the program name. */ optstring = _getopt_initialize (argc, argv, optstring, d, posixly_correct); d->__initialized = 1; } else if (optstring[0] == '-' || optstring[0] == '+') optstring++; if (optstring[0] == ':') print_errors = 0; /* Test whether ARGV[optind] points to a non-option argument. Either it does not have option syntax, or there is an environment flag from the shell indicating it is not an option. The later information is only used when the used in the GNU libc. */ #if defined _LIBC && defined USE_NONOPTION_FLAGS # define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0' \ || (d->optind < d->__nonoption_flags_len \ && __getopt_nonoption_flags[d->optind] == '1')) #else # define NONOPTION_P (argv[d->optind][0] != '-' || argv[d->optind][1] == '\0') #endif if (d->__nextchar == NULL || *d->__nextchar == '\0') { /* Advance to the next ARGV-element. */ /* Give FIRST_NONOPT & LAST_NONOPT rational values if OPTIND has been moved back by the user (who may also have changed the arguments). */ if (d->__last_nonopt > d->optind) d->__last_nonopt = d->optind; if (d->__first_nonopt > d->optind) d->__first_nonopt = d->optind; if (d->__ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) exchange ((char **) argv, d); else if (d->__last_nonopt != d->optind) d->__first_nonopt = d->optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (d->optind < argc && NONOPTION_P) d->optind++; d->__last_nonopt = d->optind; } /* The special ARGV-element '--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (d->optind != argc && !strcmp (argv[d->optind], "--")) { d->optind++; if (d->__first_nonopt != d->__last_nonopt && d->__last_nonopt != d->optind) exchange ((char **) argv, d); else if (d->__first_nonopt == d->__last_nonopt) d->__first_nonopt = d->optind; d->__last_nonopt = argc; d->optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (d->optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (d->__first_nonopt != d->__last_nonopt) d->optind = d->__first_nonopt; return -1; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if (NONOPTION_P) { if (d->__ordering == REQUIRE_ORDER) return -1; d->optarg = argv[d->optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ d->__nextchar = (argv[d->optind] + 1 + (longopts != NULL && argv[d->optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[d->optind][1] == '-' || (long_only && (argv[d->optind][2] || !strchr (optstring, argv[d->optind][1]))))) { char *nameend; unsigned int namelen; const struct option *p; const struct option *pfound = NULL; struct option_list { const struct option *p; struct option_list *next; } *ambig_list = NULL; int exact = 0; int indfound = -1; int option_index; for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; namelen = nameend - d->__nextchar; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, d->__nextchar, namelen)) { if (namelen == (unsigned int) strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else if (long_only || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) { /* Second or later nonexact match found. */ struct option_list *newp = malloc (sizeof (*newp)); newp->p = p; newp->next = ambig_list; ambig_list = newp; } } if (ambig_list != NULL && !exact) { if (print_errors) { struct option_list first; first.p = pfound; first.next = ambig_list; ambig_list = &first; #if defined _LIBC && defined USE_IN_LIBIO char *buf = NULL; size_t buflen = 0; FILE *fp = open_memstream (&buf, &buflen); if (fp != NULL) { fprintf (fp, _("%s: option '%s' is ambiguous; possibilities:"), argv[0], argv[d->optind]); do { fprintf (fp, " '--%s'", ambig_list->p->name); ambig_list = ambig_list->next; } while (ambig_list != NULL); fputc_unlocked ('\n', fp); if (__builtin_expect (fclose (fp) != EOF, 1)) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } } #else fprintf (stderr, _("%s: option '%s' is ambiguous; possibilities:"), argv[0], argv[d->optind]); do { fprintf (stderr, " '--%s'", ambig_list->p->name); ambig_list = ambig_list->next; } while (ambig_list != NULL); fputc ('\n', stderr); #endif } d->__nextchar += strlen (d->__nextchar); d->optind++; d->optopt = 0; return '?'; } while (ambig_list != NULL) { struct option_list *pn = ambig_list->next; free (ambig_list); ambig_list = pn; } if (pfound != NULL) { option_index = indfound; d->optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) d->optarg = nameend + 1; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; int n; #endif if (argv[d->optind - 1][1] == '-') { /* --option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("\ %s: option '--%s' doesn't allow an argument\n"), argv[0], pfound->name); #else fprintf (stderr, _("\ %s: option '--%s' doesn't allow an argument\n"), argv[0], pfound->name); #endif } else { /* +option or -option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("\ %s: option '%c%s' doesn't allow an argument\n"), argv[0], argv[d->optind - 1][0], pfound->name); #else fprintf (stderr, _("\ %s: option '%c%s' doesn't allow an argument\n"), argv[0], argv[d->optind - 1][0], pfound->name); #endif } #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #endif } d->__nextchar += strlen (d->__nextchar); d->optopt = pfound->val; return '?'; } } else if (pfound->has_arg == 1) { if (d->optind < argc) d->optarg = argv[d->optind++]; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option '--%s' requires an argument\n"), argv[0], pfound->name) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option '--%s' requires an argument\n"), argv[0], pfound->name); #endif } d->__nextchar += strlen (d->__nextchar); d->optopt = pfound->val; return optstring[0] == ':' ? ':' : '?'; } } d->__nextchar += strlen (d->__nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[d->optind][1] == '-' || strchr (optstring, *d->__nextchar) == NULL) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; int n; #endif if (argv[d->optind][1] == '-') { /* --option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: unrecognized option '--%s'\n"), argv[0], d->__nextchar); #else fprintf (stderr, _("%s: unrecognized option '--%s'\n"), argv[0], d->__nextchar); #endif } else { /* +option or -option */ #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: unrecognized option '%c%s'\n"), argv[0], argv[d->optind][0], d->__nextchar); #else fprintf (stderr, _("%s: unrecognized option '%c%s'\n"), argv[0], argv[d->optind][0], d->__nextchar); #endif } #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #endif } d->__nextchar = (char *) ""; d->optind++; d->optopt = 0; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *d->__nextchar++; const char *temp = strchr (optstring, c); /* Increment 'optind' when we start to process its last character. */ if (*d->__nextchar == '\0') ++d->optind; if (temp == NULL || c == ':' || c == ';') { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; int n; #endif #if defined _LIBC && defined USE_IN_LIBIO n = __asprintf (&buf, _("%s: invalid option -- '%c'\n"), argv[0], c); #else fprintf (stderr, _("%s: invalid option -- '%c'\n"), argv[0], c); #endif #if defined _LIBC && defined USE_IN_LIBIO if (n >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #endif } d->optopt = c; return '?'; } /* Convenience. Treat POSIX -W foo same as long option --foo */ if (temp[0] == 'W' && temp[1] == ';') { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound = 0; int option_index; if (longopts == NULL) goto no_longs; /* This is an option that requires an argument. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ d->optind++; } else if (d->optind == argc) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("%s: option requires an argument -- '%c'\n"), argv[0], c) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option requires an argument -- '%c'\n"), argv[0], c); #endif } d->optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; return c; } else /* We already incremented 'd->optind' once; increment it again when taking next ARGV-elt as argument. */ d->optarg = argv[d->optind++]; /* optarg is now the argument, see if it's in the table of longopts. */ for (d->__nextchar = nameend = d->optarg; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, d->__nextchar, nameend - d->__nextchar)) { if ((unsigned int) (nameend - d->__nextchar) == strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else if (long_only || pfound->has_arg != p->has_arg || pfound->flag != p->flag || pfound->val != p->val) /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("%s: option '-W %s' is ambiguous\n"), argv[0], d->optarg) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option '-W %s' is ambiguous\n"), argv[0], d->optarg); #endif } d->__nextchar += strlen (d->__nextchar); d->optind++; return '?'; } if (pfound != NULL) { option_index = indfound; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) d->optarg = nameend + 1; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option '-W %s' doesn't allow an argument\n"), argv[0], pfound->name) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("\ %s: option '-W %s' doesn't allow an argument\n"), argv[0], pfound->name); #endif } d->__nextchar += strlen (d->__nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (d->optind < argc) d->optarg = argv[d->optind++]; else { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option '-W %s' requires an argument\n"), argv[0], pfound->name) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("\ %s: option '-W %s' requires an argument\n"), argv[0], pfound->name); #endif } d->__nextchar += strlen (d->__nextchar); return optstring[0] == ':' ? ':' : '?'; } } else d->optarg = NULL; d->__nextchar += strlen (d->__nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } no_longs: d->__nextchar = NULL; return 'W'; /* Let the application handle it. */ } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; d->optind++; } else d->optarg = NULL; d->__nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*d->__nextchar != '\0') { d->optarg = d->__nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ d->optind++; } else if (d->optind == argc) { if (print_errors) { #if defined _LIBC && defined USE_IN_LIBIO char *buf; if (__asprintf (&buf, _("\ %s: option requires an argument -- '%c'\n"), argv[0], c) >= 0) { _IO_flockfile (stderr); int old_flags2 = ((_IO_FILE *) stderr)->_flags2; ((_IO_FILE *) stderr)->_flags2 |= _IO_FLAGS2_NOTCANCEL; __fxprintf (NULL, "%s", buf); ((_IO_FILE *) stderr)->_flags2 = old_flags2; _IO_funlockfile (stderr); free (buf); } #else fprintf (stderr, _("%s: option requires an argument -- '%c'\n"), argv[0], c); #endif } d->optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented 'optind' once; increment it again when taking next ARGV-elt as argument. */ d->optarg = argv[d->optind++]; d->__nextchar = NULL; } } return c; } } int _getopt_internal (int argc, char **argv, const char *optstring, const struct option *longopts, int *longind, int long_only, int posixly_correct) { int result; getopt_data.optind = optind; getopt_data.opterr = opterr; result = _getopt_internal_r (argc, argv, optstring, longopts, longind, long_only, &getopt_data, posixly_correct); optind = getopt_data.optind; optarg = getopt_data.optarg; optopt = getopt_data.optopt; return result; } /* glibc gets a LSB-compliant getopt. Standalone applications get a POSIX-compliant getopt. */ #if _LIBC enum { POSIXLY_CORRECT = 0 }; #else enum { POSIXLY_CORRECT = 1 }; #endif int getopt (int argc, char *const *argv, const char *optstring) { return _getopt_internal (argc, (char **) argv, optstring, (const struct option *) 0, (int *) 0, 0, POSIXLY_CORRECT); } #ifdef _LIBC int __posix_getopt (int argc, char *const *argv, const char *optstring) { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0, 1); } #endif #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of 'getopt'. */ int main (int argc, char **argv) { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == -1) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value '%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ libidn-1.28/gl/Makefile.am0000644000000000000000000006250612153706071012245 00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gltests --aux-dir=build-aux --with-tests --avoid=fcntl-h-tests --avoid=stdlib-tests --avoid=string-tests --avoid=sys_stat-tests --avoid=time-tests --avoid=unistd-tests --avoid=update-copyright-tests --avoid=wchar-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files autobuild csharpcomp-script csharpexec-script error fdl-1.3 gendocs getopt-gnu gnupload maintainer-makefile manywarnings pmccabe2html progname update-copyright useless-if-before-free valgrind-tests vc-list-files version-etc warnings AUTOMAKE_OPTIONS = 1.9.6 gnits SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = EXTRA_DIST += m4/gnulib-cache.m4 AM_CPPFLAGS = AM_CFLAGS = noinst_LTLIBRARIES += libgnu.la libgnu_la_SOURCES = libgnu_la_LIBADD = $(gl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = libgnu_la_LDFLAGS = $(AM_LDFLAGS) libgnu_la_LDFLAGS += -no-undefined libgnu_la_LDFLAGS += $(LTLIBINTL) ## begin gnulib module csharpcomp-script EXTRA_DIST += $(top_srcdir)/build-aux/csharpcomp.sh.in ## end gnulib module csharpcomp-script ## begin gnulib module csharpexec-script EXTRA_DIST += $(top_srcdir)/build-aux/csharpexec.sh.in ## end gnulib module csharpexec-script ## begin gnulib module errno BUILT_SOURCES += $(ERRNO_H) # We need the following in order to create when the system # doesn't have one that is POSIX compliant. if GL_GENERATE_ERRNO_H errno.h: errno.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ < $(srcdir)/errno.in.h; \ } > $@-t && \ mv $@-t $@ else errno.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += errno.h errno.h-t EXTRA_DIST += errno.in.h ## end gnulib module errno ## begin gnulib module error EXTRA_DIST += error.c error.h EXTRA_libgnu_la_SOURCES += error.c ## end gnulib module error ## begin gnulib module gendocs EXTRA_DIST += $(top_srcdir)/build-aux/gendocs.sh ## end gnulib module gendocs ## begin gnulib module getopt-posix BUILT_SOURCES += $(GETOPT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/getopt.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += getopt.h getopt.h-t EXTRA_DIST += getopt.c getopt.in.h getopt1.c getopt_int.h EXTRA_libgnu_la_SOURCES += getopt.c getopt1.c ## end gnulib module getopt-posix ## begin gnulib module gettext-h libgnu_la_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module gnumakefile distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile EXTRA_DIST += $(top_srcdir)/GNUmakefile ## end gnulib module gnumakefile ## begin gnulib module gnupload EXTRA_DIST += $(top_srcdir)/build-aux/gnupload ## end gnulib module gnupload ## begin gnulib module intprops EXTRA_DIST += intprops.h ## end gnulib module intprops ## begin gnulib module maintainer-makefile EXTRA_DIST += $(top_srcdir)/maint.mk ## end gnulib module maintainer-makefile ## begin gnulib module msvc-inval EXTRA_DIST += msvc-inval.c msvc-inval.h EXTRA_libgnu_la_SOURCES += msvc-inval.c ## end gnulib module msvc-inval ## begin gnulib module msvc-nothrow EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h EXTRA_libgnu_la_SOURCES += msvc-nothrow.c ## end gnulib module msvc-nothrow ## begin gnulib module pmccabe2html EXTRA_DIST += $(top_srcdir)/build-aux/pmccabe2html $(top_srcdir)/build-aux/pmccabe.css ## end gnulib module pmccabe2html ## begin gnulib module progname libgnu_la_SOURCES += progname.h progname.c ## end gnulib module progname ## begin gnulib module snippet/arg-nonnull # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += arg-nonnull.h # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t ARG_NONNULL_H=arg-nonnull.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += c++defs.h # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += c++defs.h c++defs.h-t CXXDEFS_H=c++defs.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/warn-on-use BUILT_SOURCES += warn-on-use.h # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t WARN_ON_USE_H=warn-on-use.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module stdarg BUILT_SOURCES += $(STDARG_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDARG_H stdarg.h: stdarg.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ < $(srcdir)/stdarg.in.h; \ } > $@-t && \ mv $@-t $@ else stdarg.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdarg.h stdarg.h-t EXTRA_DIST += stdarg.in.h ## end gnulib module stdarg ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module strerror EXTRA_DIST += strerror.c EXTRA_libgnu_la_SOURCES += strerror.c ## end gnulib module strerror ## begin gnulib module strerror-override EXTRA_DIST += strerror-override.c strerror-override.h EXTRA_libgnu_la_SOURCES += strerror-override.c ## end gnulib module strerror-override ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module unistd BUILT_SOURCES += unistd.h libgnu_la_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module update-copyright EXTRA_DIST += $(top_srcdir)/build-aux/update-copyright ## end gnulib module update-copyright ## begin gnulib module useless-if-before-free EXTRA_DIST += $(top_srcdir)/build-aux/useless-if-before-free ## end gnulib module useless-if-before-free ## begin gnulib module vc-list-files EXTRA_DIST += $(top_srcdir)/build-aux/vc-list-files ## end gnulib module vc-list-files ## begin gnulib module verify EXTRA_DIST += verify.h ## end gnulib module verify ## begin gnulib module version-etc libgnu_la_SOURCES += version-etc.h version-etc.c ## end gnulib module version-etc mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : libidn-1.28/gl/getopt1.c0000644000000000000000000001055212153706065011735 00000000000000/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987-1994, 1996-1998, 2004, 2006, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifdef _LIBC # include #else # include # include "getopt.h" #endif #include "getopt_int.h" #include /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include #endif #ifndef NULL #define NULL 0 #endif int getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, opt_index, 0, 0); } int _getopt_long_r (int argc, char **argv, const char *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, 0, d, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (int argc, char *__getopt_argv_const *argv, const char *options, const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, opt_index, 1, 0); } int _getopt_long_only_r (int argc, char **argv, const char *options, const struct option *long_options, int *opt_index, struct _getopt_data *d) { return _getopt_internal_r (argc, argv, options, long_options, opt_index, 1, d, 0); } #ifdef TEST #include int main (int argc, char **argv) { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static const struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == -1) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value '%s'\n", optarg); break; case 'd': printf ("option d with value '%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ libidn-1.28/gl/getopt.in.h0000644000000000000000000002162112153706065012265 00000000000000/* Declarations for getopt. Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _@GUARD_PREFIX@_GETOPT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. We must also inform the replacement unistd.h to not recursively use ; our definitions will be present soon enough. */ #if @HAVE_GETOPT_H@ # define _GL_SYSTEM_GETOPT # @INCLUDE_NEXT@ @NEXT_GETOPT_H@ # undef _GL_SYSTEM_GETOPT #endif #ifndef _@GUARD_PREFIX@_GETOPT_H #ifndef __need_getopt # define _@GUARD_PREFIX@_GETOPT_H 1 #endif /* Standalone applications should #define __GETOPT_PREFIX to an identifier that prefixes the external functions and variables defined in this header. When this happens, include the headers that might declare getopt so that they will not cause confusion if included after this file (if the system had , we have already included it). Then systematically rename identifiers so that they do not collide with the system functions and variables. Renaming avoids problems with some compilers and linkers. */ #if defined __GETOPT_PREFIX && !defined __need_getopt # if !@HAVE_GETOPT_H@ # define __need_system_stdlib_h # include # undef __need_system_stdlib_h # include # include # endif # undef __need_getopt # undef getopt # undef getopt_long # undef getopt_long_only # undef optarg # undef opterr # undef optind # undef optopt # undef option # define __GETOPT_CONCAT(x, y) x ## y # define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y) # define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y) # define getopt __GETOPT_ID (getopt) # define getopt_long __GETOPT_ID (getopt_long) # define getopt_long_only __GETOPT_ID (getopt_long_only) # define optarg __GETOPT_ID (optarg) # define opterr __GETOPT_ID (opterr) # define optind __GETOPT_ID (optind) # define optopt __GETOPT_ID (optopt) # define option __GETOPT_ID (option) # define _getopt_internal __GETOPT_ID (getopt_internal) #endif /* Standalone applications get correct prototypes for getopt_long and getopt_long_only; they declare "char **argv". libc uses prototypes with "char *const *argv" that are incorrect because getopt_long and getopt_long_only can permute argv; this is required for backward compatibility (e.g., for LSB 2.0.1). This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt', but it caused redefinition warnings if both unistd.h and getopt.h were included, since unistd.h includes getopt.h having previously defined __need_getopt. The only place where __getopt_argv_const is used is in definitions of getopt_long and getopt_long_only below, but these are visible only if __need_getopt is not defined, so it is quite safe to rewrite the conditional as follows: */ #if !defined __need_getopt # if defined __GETOPT_PREFIX # define __getopt_argv_const /* empty */ # else # define __getopt_argv_const const # endif #endif /* If __GNU_LIBRARY__ is not already defined, either we are being used standalone, or this is the first header included in the source file. If we are being used with glibc, we need to include , but that does not exist if we are standalone. So: if __GNU_LIBRARY__ is not defined, include , which will pull in for us if it's from glibc. (Why ctype.h? It's guaranteed to exist and it doesn't flood the namespace with stuff the way some other headers do.) */ #if !defined __GNU_LIBRARY__ # include #endif #ifndef __THROW # ifndef __GNUC_PREREQ # define __GNUC_PREREQ(maj, min) (0) # endif # if defined __cplusplus && __GNUC_PREREQ (2,8) # define __THROW throw () # else # define __THROW # endif #endif /* The definition of _GL_ARG_NONNULL is copied here. */ #ifdef __cplusplus extern "C" { #endif /* For communication from 'getopt' to the caller. When 'getopt' finds an option that takes an argument, the argument value is returned here. Also, when 'ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to 'getopt'. On entry to 'getopt', zero means this is the first call; initialize. When 'getopt' returns -1, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, 'optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message 'getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; #ifndef __need_getopt /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of 'struct option' terminated by an element containing a name which is zero. The field 'has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field 'flag' is not NULL, it points to a variable that is set to the value given in the field 'val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an 'int' to a compiled-in constant, such as set a value from 'optarg', set the option's 'flag' field to zero and its 'val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero 'flag' field, 'getopt' returns the contents of the 'val' field. */ # if !GNULIB_defined_struct_option struct option { const char *name; /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; # define GNULIB_defined_struct_option 1 # endif /* Names for the values of the 'has_arg' field of 'struct option'. */ # define no_argument 0 # define required_argument 1 # define optional_argument 2 #endif /* need getopt */ /* Get definitions and prototypes for functions to process the arguments in ARGV (ARGC of them, minus the program name) for options given in OPTS. Return the option character from OPTS just read. Return -1 when there are no more options. For unrecognized options, or options missing arguments, 'optopt' is set to the option letter, and '?' is returned. The OPTS string is a list of characters which are recognized option letters, optionally followed by colons, specifying that that letter takes an argument, to be placed in 'optarg'. If a letter in OPTS is followed by two colons, its argument is optional. This behavior is specific to the GNU 'getopt'. The argument '--' causes premature termination of argument scanning, explicitly telling 'getopt' that there are no more options. If OPTS begins with '-', then non-option arguments are treated as arguments to the option '\1'. This behavior is specific to the GNU 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in the environment, then do not permute arguments. */ extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) __THROW _GL_ARG_NONNULL ((2, 3)); #ifndef __need_getopt extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind) __THROW _GL_ARG_NONNULL ((2, 3)); extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv, const char *__shortopts, const struct option *__longopts, int *__longind) __THROW _GL_ARG_NONNULL ((2, 3)); #endif #ifdef __cplusplus } #endif /* Make sure we later can get all the definitions and declarations. */ #undef __need_getopt #endif /* _@GUARD_PREFIX@_GETOPT_H */ #endif /* _@GUARD_PREFIX@_GETOPT_H */ libidn-1.28/gl/strerror-override.h0000644000000000000000000000371712153706066014064 00000000000000/* strerror-override.h --- POSIX compatible system error routine Copyright (C) 2010-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GL_STRERROR_OVERRIDE_H # define _GL_STRERROR_OVERRIDE_H # include # include /* Reasonable buffer size that should never trigger ERANGE; if this proves too small, we intentionally abort(), to remind us to fix this value. */ # define STACKBUF_LEN 256 /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ # if REPLACE_STRERROR_0 \ || GNULIB_defined_ESOCK \ || GNULIB_defined_ESTREAMS \ || GNULIB_defined_EWINSOCK \ || GNULIB_defined_ENOMSG \ || GNULIB_defined_EIDRM \ || GNULIB_defined_ENOLINK \ || GNULIB_defined_EPROTO \ || GNULIB_defined_EMULTIHOP \ || GNULIB_defined_EBADMSG \ || GNULIB_defined_EOVERFLOW \ || GNULIB_defined_ENOTSUP \ || GNULIB_defined_ENETRESET \ || GNULIB_defined_ECONNABORTED \ || GNULIB_defined_ESTALE \ || GNULIB_defined_EDQUOT \ || GNULIB_defined_ECANCELED \ || GNULIB_defined_EOWNERDEAD \ || GNULIB_defined_ENOTRECOVERABLE \ || GNULIB_defined_EILSEQ extern const char *strerror_override (int errnum); # else # define strerror_override(ignored) NULL # endif #endif /* _GL_STRERROR_OVERRIDE_H */ libidn-1.28/gl/error.c0000644000000000000000000002407012153706065011503 00000000000000/* Error handler for noninteractive utilities Copyright (C) 1990-1998, 2000-2007, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by David MacKenzie . */ #if !_LIBC # include #endif #include "error.h" #include #include #include #include #if !_LIBC && ENABLE_NLS # include "gettext.h" # define _(msgid) gettext (msgid) #endif #ifdef _LIBC # include # include # include # include # define mbsrtowcs __mbsrtowcs #endif #if USE_UNLOCKED_IO # include "unlocked-io.h" #endif #ifndef _ # define _(String) String #endif /* If NULL, error will flush stdout, then print on stderr the program name, a colon and a space. Otherwise, error will call this function without parameters instead. */ void (*error_print_progname) (void); /* This variable is incremented each time 'error' is called. */ unsigned int error_message_count; #ifdef _LIBC /* In the GNU C library, there is a predefined variable for this. */ # define program_name program_invocation_name # include # include # include /* In GNU libc we want do not want to use the common name 'error' directly. Instead make it a weak alias. */ extern void __error (int status, int errnum, const char *message, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern void __error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) __attribute__ ((__format__ (__printf__, 5, 6)));; # define error __error # define error_at_line __error_at_line # include # define fflush(s) INTUSE(_IO_fflush) (s) # undef putc # define putc(c, fp) INTUSE(_IO_putc) (c, fp) # include #else /* not _LIBC */ # include # include # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include /* Get _get_osfhandle. */ # include "msvc-nothrow.h" # endif /* The gnulib override of fcntl is not needed in this file. */ # undef fcntl # if !HAVE_DECL_STRERROR_R # ifndef HAVE_DECL_STRERROR_R "this configure-time declaration test was not run" # endif # if STRERROR_R_CHAR_P char *strerror_r (); # else int strerror_r (); # endif # endif /* The calling program should define program_name and set it to the name of the executing program. */ extern char *program_name; # if HAVE_STRERROR_R || defined strerror_r # define __strerror_r strerror_r # endif /* HAVE_STRERROR_R || defined strerror_r */ #endif /* not _LIBC */ #if !_LIBC /* Return non-zero if FD is open. */ static int is_open (int fd) { # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows: The initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE. There is no fcntl, and the gnulib replacement fcntl does not support F_GETFL. */ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE; # else # ifndef F_GETFL # error Please port fcntl to your platform # endif return 0 <= fcntl (fd, F_GETFL); # endif } #endif static void flush_stdout (void) { #if !_LIBC int stdout_fd; # if GNULIB_FREOPEN_SAFER /* Use of gnulib's freopen-safer module normally ensures that fileno (stdout) == 1 whenever stdout is open. */ stdout_fd = STDOUT_FILENO; # else /* POSIX states that fileno (stdout) after fclose is unspecified. But in practice it is not a problem, because stdout is statically allocated and the fd of a FILE stream is stored as a field in its allocated memory. */ stdout_fd = fileno (stdout); # endif /* POSIX states that fflush (stdout) after fclose is unspecified; it is safe in glibc, but not on all other platforms. fflush (NULL) is always defined, but too draconian. */ if (0 <= stdout_fd && is_open (stdout_fd)) #endif fflush (stdout); } static void print_errno_message (int errnum) { char const *s; #if defined HAVE_STRERROR_R || _LIBC char errbuf[1024]; # if STRERROR_R_CHAR_P || _LIBC s = __strerror_r (errnum, errbuf, sizeof errbuf); # else if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0) s = errbuf; else s = 0; # endif #else s = strerror (errnum); #endif #if !_LIBC if (! s) s = _("Unknown system error"); #endif #if _LIBC __fxprintf (NULL, ": %s", s); #else fprintf (stderr, ": %s", s); #endif } static void error_tail (int status, int errnum, const char *message, va_list args) { #if _LIBC if (_IO_fwide (stderr, 0) > 0) { # define ALLOCA_LIMIT 2000 size_t len = strlen (message) + 1; wchar_t *wmessage = NULL; mbstate_t st; size_t res; const char *tmp; bool use_malloc = false; while (1) { if (__libc_use_alloca (len * sizeof (wchar_t))) wmessage = (wchar_t *) alloca (len * sizeof (wchar_t)); else { if (!use_malloc) wmessage = NULL; wchar_t *p = (wchar_t *) realloc (wmessage, len * sizeof (wchar_t)); if (p == NULL) { free (wmessage); fputws_unlocked (L"out of memory\n", stderr); return; } wmessage = p; use_malloc = true; } memset (&st, '\0', sizeof (st)); tmp = message; res = mbsrtowcs (wmessage, &tmp, len, &st); if (res != len) break; if (__builtin_expect (len >= SIZE_MAX / 2, 0)) { /* This really should not happen if everything is fine. */ res = (size_t) -1; break; } len *= 2; } if (res == (size_t) -1) { /* The string cannot be converted. */ if (use_malloc) { free (wmessage); use_malloc = false; } wmessage = (wchar_t *) L"???"; } __vfwprintf (stderr, wmessage, args); if (use_malloc) free (wmessage); } else #endif vfprintf (stderr, message, args); va_end (args); ++error_message_count; if (errnum) print_errno_message (errnum); #if _LIBC __fxprintf (NULL, "\n"); #else putc ('\n', stderr); #endif fflush (stderr); if (status) exit (status); } /* Print the program name and error message MESSAGE, which is a printf-style format string with optional args. If ERRNUM is nonzero, print its corresponding system error message. Exit with status STATUS if it is nonzero. */ void error (int status, int errnum, const char *message, ...) { va_list args; #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s: ", program_name); #else fprintf (stderr, "%s: ", program_name); #endif } va_start (args, message); error_tail (status, errnum, message, args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } /* Sometimes we want to have at most one error per line. This variable controls whether this mode is selected or not. */ int error_one_per_line; void error_at_line (int status, int errnum, const char *file_name, unsigned int line_number, const char *message, ...) { va_list args; if (error_one_per_line) { static const char *old_file_name; static unsigned int old_line_number; if (old_line_number == line_number && (file_name == old_file_name || strcmp (old_file_name, file_name) == 0)) /* Simply return and print nothing. */ return; old_file_name = file_name; old_line_number = line_number; } #if defined _LIBC && defined __libc_ptf_call /* We do not want this call to be cut short by a thread cancellation. Therefore disable cancellation for now. */ int state = PTHREAD_CANCEL_ENABLE; __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state), 0); #endif flush_stdout (); #ifdef _LIBC _IO_flockfile (stderr); #endif if (error_print_progname) (*error_print_progname) (); else { #if _LIBC __fxprintf (NULL, "%s:", program_name); #else fprintf (stderr, "%s:", program_name); #endif } #if _LIBC __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ", file_name, line_number); #else fprintf (stderr, file_name != NULL ? "%s:%d: " : " ", file_name, line_number); #endif va_start (args, message); error_tail (status, errnum, message, args); #ifdef _LIBC _IO_funlockfile (stderr); # ifdef __libc_ptf_call __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0); # endif #endif } #ifdef _LIBC /* Make the weak alias. */ # undef error # undef error_at_line weak_alias (__error, error) weak_alias (__error_at_line, error_at_line) #endif libidn-1.28/gl/version-etc.h0000644000000000000000000000555512153706066012625 00000000000000/* Print --version and bug-reporting information in a consistent format. Copyright (C) 1999, 2003, 2005, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Jim Meyering. */ #ifndef VERSION_ETC_H # define VERSION_ETC_H 1 # include # include /* The 'sentinel' attribute was added in gcc 4.0. */ #ifndef _GL_ATTRIBUTE_SENTINEL # if 4 <= __GNUC__ # define _GL_ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__)) # else # define _GL_ATTRIBUTE_SENTINEL /* empty */ # endif #endif extern const char version_etc_copyright[]; /* The three functions below display the --version information in the standard way: command and package names, package version, followed by a short GPLv3+ notice and a list of up to 10 author names. If COMMAND_NAME is NULL, the PACKAGE is assumed to be the name of the program. The formats are therefore: PACKAGE VERSION or COMMAND_NAME (PACKAGE) VERSION. The functions differ in the way they are passed author names: */ /* N_AUTHORS names are supplied in array AUTHORS. */ extern void version_etc_arn (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors, size_t n_authors); /* Names are passed in the NULL-terminated array AUTHORS. */ extern void version_etc_ar (FILE *stream, const char *command_name, const char *package, const char *version, const char * const * authors); /* Names are passed in the NULL-terminated va_list. */ extern void version_etc_va (FILE *stream, const char *command_name, const char *package, const char *version, va_list authors); /* Names are passed as separate arguments, with an additional NULL argument at the end. */ extern void version_etc (FILE *stream, const char *command_name, const char *package, const char *version, /* const char *author1, ..., NULL */ ...) _GL_ATTRIBUTE_SENTINEL; /* Display the usual "Report bugs to" stanza. */ extern void emit_bug_reporting_address (void); #endif /* VERSION_ETC_H */ libidn-1.28/gl/stdarg.in.h0000644000000000000000000000216212153706066012247 00000000000000/* Substitute for and wrapper around . Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_STDARG_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDARG_H@ #ifndef _@GUARD_PREFIX@_STDARG_H #define _@GUARD_PREFIX@_STDARG_H #ifndef va_copy # define va_copy(a,b) ((a) = (b)) #endif #endif /* _@GUARD_PREFIX@_STDARG_H */ #endif /* _@GUARD_PREFIX@_STDARG_H */ libidn-1.28/gl/sys_types.in.h0000644000000000000000000000317512153706066013032 00000000000000/* Provide a more complete sys/types.h. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in . */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* MSVC 9 defines size_t in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ libidn-1.28/gl/strerror-override.c0000644000000000000000000002146512153706066014057 00000000000000/* strerror-override.c --- POSIX compatible system error routine Copyright (C) 2010-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ #include #include "strerror-override.h" #include #if GNULIB_defined_EWINSOCK /* native Windows platforms */ # if HAVE_WINSOCK2_H # include # endif #endif /* If ERRNUM maps to an errno value defined by gnulib, return a string describing the error. Otherwise return NULL. */ const char * strerror_override (int errnum) { /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */ switch (errnum) { #if REPLACE_STRERROR_0 case 0: return "Success"; #endif #if GNULIB_defined_ESOCK /* native Windows platforms with older */ case EINPROGRESS: return "Operation now in progress"; case EALREADY: return "Operation already in progress"; case ENOTSOCK: return "Socket operation on non-socket"; case EDESTADDRREQ: return "Destination address required"; case EMSGSIZE: return "Message too long"; case EPROTOTYPE: return "Protocol wrong type for socket"; case ENOPROTOOPT: return "Protocol not available"; case EPROTONOSUPPORT: return "Protocol not supported"; case EOPNOTSUPP: return "Operation not supported"; case EAFNOSUPPORT: return "Address family not supported by protocol"; case EADDRINUSE: return "Address already in use"; case EADDRNOTAVAIL: return "Cannot assign requested address"; case ENETDOWN: return "Network is down"; case ENETUNREACH: return "Network is unreachable"; case ECONNRESET: return "Connection reset by peer"; case ENOBUFS: return "No buffer space available"; case EISCONN: return "Transport endpoint is already connected"; case ENOTCONN: return "Transport endpoint is not connected"; case ETIMEDOUT: return "Connection timed out"; case ECONNREFUSED: return "Connection refused"; case ELOOP: return "Too many levels of symbolic links"; case EHOSTUNREACH: return "No route to host"; case EWOULDBLOCK: return "Operation would block"; #endif #if GNULIB_defined_ESTREAMS /* native Windows platforms with older */ case ETXTBSY: return "Text file busy"; case ENODATA: return "No data available"; case ENOSR: return "Out of streams resources"; case ENOSTR: return "Device not a stream"; case ETIME: return "Timer expired"; case EOTHER: return "Other error"; #endif #if GNULIB_defined_EWINSOCK /* native Windows platforms */ case ESOCKTNOSUPPORT: return "Socket type not supported"; case EPFNOSUPPORT: return "Protocol family not supported"; case ESHUTDOWN: return "Cannot send after transport endpoint shutdown"; case ETOOMANYREFS: return "Too many references: cannot splice"; case EHOSTDOWN: return "Host is down"; case EPROCLIM: return "Too many processes"; case EUSERS: return "Too many users"; case EDQUOT: return "Disk quota exceeded"; case ESTALE: return "Stale NFS file handle"; case EREMOTE: return "Object is remote"; # if HAVE_WINSOCK2_H /* WSA_INVALID_HANDLE maps to EBADF */ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */ /* WSA_INVALID_PARAMETER maps to EINVAL */ case WSA_OPERATION_ABORTED: return "Overlapped operation aborted"; case WSA_IO_INCOMPLETE: return "Overlapped I/O event object not in signaled state"; case WSA_IO_PENDING: return "Overlapped operations will complete later"; /* WSAEINTR maps to EINTR */ /* WSAEBADF maps to EBADF */ /* WSAEACCES maps to EACCES */ /* WSAEFAULT maps to EFAULT */ /* WSAEINVAL maps to EINVAL */ /* WSAEMFILE maps to EMFILE */ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */ /* WSAEINPROGRESS maps to EINPROGRESS */ /* WSAEALREADY maps to EALREADY */ /* WSAENOTSOCK maps to ENOTSOCK */ /* WSAEDESTADDRREQ maps to EDESTADDRREQ */ /* WSAEMSGSIZE maps to EMSGSIZE */ /* WSAEPROTOTYPE maps to EPROTOTYPE */ /* WSAENOPROTOOPT maps to ENOPROTOOPT */ /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */ /* WSAEOPNOTSUPP maps to EOPNOTSUPP */ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */ /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */ /* WSAEADDRINUSE maps to EADDRINUSE */ /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */ /* WSAENETDOWN maps to ENETDOWN */ /* WSAENETUNREACH maps to ENETUNREACH */ /* WSAENETRESET maps to ENETRESET */ /* WSAECONNABORTED maps to ECONNABORTED */ /* WSAECONNRESET maps to ECONNRESET */ /* WSAENOBUFS maps to ENOBUFS */ /* WSAEISCONN maps to EISCONN */ /* WSAENOTCONN maps to ENOTCONN */ /* WSAESHUTDOWN is ESHUTDOWN */ /* WSAETOOMANYREFS is ETOOMANYREFS */ /* WSAETIMEDOUT maps to ETIMEDOUT */ /* WSAECONNREFUSED maps to ECONNREFUSED */ /* WSAELOOP maps to ELOOP */ /* WSAENAMETOOLONG maps to ENAMETOOLONG */ /* WSAEHOSTDOWN is EHOSTDOWN */ /* WSAEHOSTUNREACH maps to EHOSTUNREACH */ /* WSAENOTEMPTY maps to ENOTEMPTY */ /* WSAEPROCLIM is EPROCLIM */ /* WSAEUSERS is EUSERS */ /* WSAEDQUOT is EDQUOT */ /* WSAESTALE is ESTALE */ /* WSAEREMOTE is EREMOTE */ case WSASYSNOTREADY: return "Network subsystem is unavailable"; case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range"; case WSANOTINITIALISED: return "Successful WSAStartup not yet performed"; case WSAEDISCON: return "Graceful shutdown in progress"; case WSAENOMORE: case WSA_E_NO_MORE: return "No more results"; case WSAECANCELLED: case WSA_E_CANCELLED: return "Call was canceled"; case WSAEINVALIDPROCTABLE: return "Procedure call table is invalid"; case WSAEINVALIDPROVIDER: return "Service provider is invalid"; case WSAEPROVIDERFAILEDINIT: return "Service provider failed to initialize"; case WSASYSCALLFAILURE: return "System call failure"; case WSASERVICE_NOT_FOUND: return "Service not found"; case WSATYPE_NOT_FOUND: return "Class type not found"; case WSAEREFUSED: return "Database query was refused"; case WSAHOST_NOT_FOUND: return "Host not found"; case WSATRY_AGAIN: return "Nonauthoritative host not found"; case WSANO_RECOVERY: return "Nonrecoverable error"; case WSANO_DATA: return "Valid name, no data record of requested type"; /* WSA_QOS_* omitted */ # endif #endif #if GNULIB_defined_ENOMSG case ENOMSG: return "No message of desired type"; #endif #if GNULIB_defined_EIDRM case EIDRM: return "Identifier removed"; #endif #if GNULIB_defined_ENOLINK case ENOLINK: return "Link has been severed"; #endif #if GNULIB_defined_EPROTO case EPROTO: return "Protocol error"; #endif #if GNULIB_defined_EMULTIHOP case EMULTIHOP: return "Multihop attempted"; #endif #if GNULIB_defined_EBADMSG case EBADMSG: return "Bad message"; #endif #if GNULIB_defined_EOVERFLOW case EOVERFLOW: return "Value too large for defined data type"; #endif #if GNULIB_defined_ENOTSUP case ENOTSUP: return "Not supported"; #endif #if GNULIB_defined_ENETRESET case ENETRESET: return "Network dropped connection on reset"; #endif #if GNULIB_defined_ECONNABORTED case ECONNABORTED: return "Software caused connection abort"; #endif #if GNULIB_defined_ESTALE case ESTALE: return "Stale NFS file handle"; #endif #if GNULIB_defined_EDQUOT case EDQUOT: return "Disk quota exceeded"; #endif #if GNULIB_defined_ECANCELED case ECANCELED: return "Operation canceled"; #endif #if GNULIB_defined_EOWNERDEAD case EOWNERDEAD: return "Owner died"; #endif #if GNULIB_defined_ENOTRECOVERABLE case ENOTRECOVERABLE: return "State not recoverable"; #endif #if GNULIB_defined_EILSEQ case EILSEQ: return "Invalid or incomplete multibyte or wide character"; #endif default: return NULL; } } libidn-1.28/gl/Makefile.in0000644000000000000000000022434312167244660012263 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --dir=. --local-dir=gl/override --lib=libgnu --source-base=gl --m4-base=gl/m4 --doc-base=doc --tests-base=gltests --aux-dir=build-aux --with-tests --avoid=fcntl-h-tests --avoid=stdlib-tests --avoid=string-tests --avoid=sys_stat-tests --avoid=time-tests --avoid=unistd-tests --avoid=update-copyright-tests --avoid=wchar-tests --no-conditional-dependencies --libtool --macro-prefix=gl --no-vc-files autobuild csharpcomp-script csharpexec-script error fdl-1.3 gendocs getopt-gnu gnupload maintainer-makefile manywarnings pmccabe2html progname update-copyright useless-if-before-free valgrind-tests vc-list-files version-etc warnings VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = gl DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am_libgnu_la_OBJECTS = progname.lo unistd.lo version-etc.lo libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgnu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgnu_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES) DIST_SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.9.6 gnits SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = libgnu.la EXTRA_DIST = m4/gnulib-cache.m4 \ $(top_srcdir)/build-aux/csharpcomp.sh.in \ $(top_srcdir)/build-aux/csharpexec.sh.in errno.in.h error.c \ error.h $(top_srcdir)/build-aux/gendocs.sh getopt.c \ getopt.in.h getopt1.c getopt_int.h $(top_srcdir)/GNUmakefile \ $(top_srcdir)/build-aux/gnupload intprops.h \ $(top_srcdir)/maint.mk msvc-inval.c msvc-inval.h \ msvc-nothrow.c msvc-nothrow.h \ $(top_srcdir)/build-aux/pmccabe2html \ $(top_srcdir)/build-aux/pmccabe.css \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ $(top_srcdir)/build-aux/snippet/warn-on-use.h stdarg.in.h \ stddef.in.h strerror.c strerror-override.c strerror-override.h \ string.in.h sys_types.in.h unistd.in.h \ $(top_srcdir)/build-aux/update-copyright \ $(top_srcdir)/build-aux/useless-if-before-free \ $(top_srcdir)/build-aux/vc-list-files verify.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES = $(ERRNO_H) $(GETOPT_H) arg-nonnull.h c++defs.h \ warn-on-use.h $(STDARG_H) $(STDDEF_H) string.h sys/types.h \ unistd.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump errno.h errno.h-t getopt.h \ getopt.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h c++defs.h-t \ warn-on-use.h warn-on-use.h-t stdarg.h stdarg.h-t stddef.h \ stddef.h-t string.h string.h-t sys/types.h sys/types.h-t \ unistd.h unistd.h-t MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = AM_CFLAGS = libgnu_la_SOURCES = gettext.h progname.h progname.c unistd.c \ version-etc.h version-etc.c libgnu_la_LIBADD = $(gl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(gl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = error.c getopt.c getopt1.c msvc-inval.c \ msvc-nothrow.c strerror.c strerror-override.c libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(LTLIBINTL) ARG_NONNULL_H = arg-nonnull.h CXXDEFS_H = c++defs.h WARN_ON_USE_H = warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits gl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits gl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libgnu.la: $(libgnu_la_OBJECTS) $(libgnu_la_DEPENDENCIES) $(EXTRA_libgnu_la_DEPENDENCIES) $(AM_V_CCLD)$(libgnu_la_LINK) $(libgnu_la_OBJECTS) $(libgnu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-inval.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progname.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-override.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version-etc.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-local distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-local distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-info install-info-am install-man install-pdf \ install-pdf-am install-ps install-ps-am install-strip \ installcheck installcheck-am installdirs installdirs-am \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ mostlyclean-local pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am # We need the following in order to create when the system # doesn't have one that is POSIX compliant. @GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \ @GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \ @GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \ @GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@ @GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status @GL_GENERATE_ERRNO_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. getopt.h: getopt.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_GETOPT_H''@|$(HAVE_GETOPT_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_GETOPT_H''@|$(NEXT_GETOPT_H)|g' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ < $(srcdir)/getopt.in.h; \ } > $@-t && \ mv -f $@-t $@ distclean-local: clean-GNUmakefile clean-GNUmakefile: test '$(srcdir)' = . || rm -f $(top_builddir)/GNUmakefile # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDARG_H_TRUE@stdarg.h: stdarg.in.h $(top_builddir)/config.status @GL_GENERATE_STDARG_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDARG_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDARG_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDARG_H_TRUE@ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \ @GL_GENERATE_STDARG_H_TRUE@ < $(srcdir)/stdarg.in.h; \ @GL_GENERATE_STDARG_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDARG_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDARG_H_FALSE@stdarg.h: $(top_builddir)/config.status @GL_GENERATE_STDARG_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/libidn.pc.in0000644000000000000000000000147312153706572012003 00000000000000# Process this file with autoconf to produce a pkg-config metadata file. # Copyright 2002-2013 Simon Josefsson # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This file is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: Libidn Description: IETF stringprep, nameprep, punycode, IDNA text processing. URL: http://www.gnu.org/software/libidn/ Version: @VERSION@ Libs: -L${libdir} -lidn Libs.private: @LTLIBICONV@ Cflags: -I${includedir} libidn-1.28/lib/0000755000000000000000000000000012167253754010436 500000000000000libidn-1.28/lib/idna.c0000644000000000000000000005454212153706572011443 00000000000000/* idna.c --- Prototypes for Internationalized Domain Name library. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include #include #include "idna.h" /* Get c_strcasecmp. */ #include #define DOTP(c) ((c) == 0x002E || (c) == 0x3002 || \ (c) == 0xFF0E || (c) == 0xFF61) /* Core functions */ /** * idna_to_ascii_4i: * @in: input array with unicode code points. * @inlen: length of input array with unicode code points. * @out: output zero terminated string that must have room for at * least 63 characters plus the terminating zero. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * The ToASCII operation takes a sequence of Unicode code points that * make up one domain label and transforms it into a sequence of code * points in the ASCII range (0..7F). If ToASCII succeeds, the * original sequence and the resulting sequence are equivalent labels. * * It is important to note that the ToASCII operation can fail. ToASCII * fails if any step of it fails. If any step of the ToASCII operation * fails on any label in a domain name, that domain name MUST NOT be used * as an internationalized domain name. The method for deadling with this * failure is application-specific. * * The inputs to ToASCII are a sequence of code points, the AllowUnassigned * flag, and the UseSTD3ASCIIRules flag. The output of ToASCII is either a * sequence of ASCII code points or a failure condition. * * ToASCII never alters a sequence of code points that are all in the ASCII * range to begin with (although it could fail). Applying the ToASCII * operation multiple times has exactly the same effect as applying it just * once. * * Return value: Returns 0 on success, or an #Idna_rc error code. */ int idna_to_ascii_4i (const uint32_t * in, size_t inlen, char *out, int flags) { size_t len, outlen; uint32_t *src; /* XXX don't need to copy data? */ int rc; /* * ToASCII consists of the following steps: * * 1. If all code points in the sequence are in the ASCII range (0..7F) * then skip to step 3. */ { size_t i; int inasciirange; inasciirange = 1; for (i = 0; i < inlen; i++) if (in[i] > 0x7F) inasciirange = 0; if (inasciirange) { src = malloc (sizeof (in[0]) * (inlen + 1)); if (src == NULL) return IDNA_MALLOC_ERROR; memcpy (src, in, sizeof (in[0]) * inlen); src[inlen] = 0; goto step3; } } /* * 2. Perform the steps specified in [NAMEPREP] and fail if there is * an error. The AllowUnassigned flag is used in [NAMEPREP]. */ { char *p; p = stringprep_ucs4_to_utf8 (in, (ssize_t) inlen, NULL, NULL); if (p == NULL) return IDNA_MALLOC_ERROR; len = strlen (p); do { char *newp; len = 2 * len + 10; /* XXX better guess? */ newp = realloc (p, len); if (newp == NULL) { free (p); return IDNA_MALLOC_ERROR; } p = newp; if (flags & IDNA_ALLOW_UNASSIGNED) rc = stringprep_nameprep (p, len); else rc = stringprep_nameprep_no_unassigned (p, len); } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc != STRINGPREP_OK) { free (p); return IDNA_STRINGPREP_ERROR; } src = stringprep_utf8_to_ucs4 (p, -1, NULL); free (p); if (!src) return IDNA_MALLOC_ERROR; } step3: /* * 3. If the UseSTD3ASCIIRules flag is set, then perform these checks: * * (a) Verify the absence of non-LDH ASCII code points; that is, * the absence of 0..2C, 2E..2F, 3A..40, 5B..60, and 7B..7F. * * (b) Verify the absence of leading and trailing hyphen-minus; * that is, the absence of U+002D at the beginning and end of * the sequence. */ if (flags & IDNA_USE_STD3_ASCII_RULES) { size_t i; for (i = 0; src[i]; i++) if (src[i] <= 0x2C || src[i] == 0x2E || src[i] == 0x2F || (src[i] >= 0x3A && src[i] <= 0x40) || (src[i] >= 0x5B && src[i] <= 0x60) || (src[i] >= 0x7B && src[i] <= 0x7F)) { free (src); return IDNA_CONTAINS_NON_LDH; } if (src[0] == 0x002D || (i > 0 && src[i - 1] == 0x002D)) { free (src); return IDNA_CONTAINS_MINUS; } } /* * 4. If all code points in the sequence are in the ASCII range * (0..7F), then skip to step 8. */ { size_t i; int inasciirange; inasciirange = 1; for (i = 0; src[i]; i++) { if (src[i] > 0x7F) inasciirange = 0; /* copy string to output buffer if we are about to skip to step8 */ if (i < 64) out[i] = src[i]; } if (i < 64) out[i] = '\0'; if (inasciirange) goto step8; } /* * 5. Verify that the sequence does NOT begin with the ACE prefix. * */ { size_t i; int match; match = 1; for (i = 0; match && i < strlen (IDNA_ACE_PREFIX); i++) if (((uint32_t) IDNA_ACE_PREFIX[i] & 0xFF) != src[i]) match = 0; if (match) { free (src); return IDNA_CONTAINS_ACE_PREFIX; } } /* * 6. Encode the sequence using the encoding algorithm in [PUNYCODE] * and fail if there is an error. */ for (len = 0; src[len]; len++) ; src[len] = '\0'; outlen = 63 - strlen (IDNA_ACE_PREFIX); rc = punycode_encode (len, src, NULL, &outlen, &out[strlen (IDNA_ACE_PREFIX)]); if (rc != PUNYCODE_SUCCESS) { free (src); return IDNA_PUNYCODE_ERROR; } out[strlen (IDNA_ACE_PREFIX) + outlen] = '\0'; /* * 7. Prepend the ACE prefix. */ memcpy (out, IDNA_ACE_PREFIX, strlen (IDNA_ACE_PREFIX)); /* * 8. Verify that the number of code points is in the range 1 to 63 * inclusive (0 is excluded). */ step8: free (src); if (strlen (out) < 1 || strlen (out) > 63) return IDNA_INVALID_LENGTH; return IDNA_SUCCESS; } /* ToUnicode(). May realloc() utf8in. Will free utf8in unconditionally. */ static int idna_to_unicode_internal (char *utf8in, uint32_t * out, size_t * outlen, int flags) { int rc; char tmpout[64]; size_t utf8len = strlen (utf8in) + 1; size_t addlen = 0; /* * ToUnicode consists of the following steps: * * 1. If the sequence contains any code points outside the ASCII range * (0..7F) then proceed to step 2, otherwise skip to step 3. */ { size_t i; int inasciirange; inasciirange = 1; for (i = 0; utf8in[i]; i++) if (utf8in[i] & ~0x7F) inasciirange = 0; if (inasciirange) goto step3; } /* * 2. Perform the steps specified in [NAMEPREP] and fail if there is an * error. (If step 3 of ToASCII is also performed here, it will not * affect the overall behavior of ToUnicode, but it is not * necessary.) The AllowUnassigned flag is used in [NAMEPREP]. */ do { char *newp = realloc (utf8in, utf8len + addlen); if (newp == NULL) { free (utf8in); return IDNA_MALLOC_ERROR; } utf8in = newp; if (flags & IDNA_ALLOW_UNASSIGNED) rc = stringprep_nameprep (utf8in, utf8len + addlen); else rc = stringprep_nameprep_no_unassigned (utf8in, utf8len + addlen); addlen += 1; } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc != STRINGPREP_OK) { free (utf8in); return IDNA_STRINGPREP_ERROR; } /* 3. Verify that the sequence begins with the ACE prefix, and save a * copy of the sequence. * ... The ToASCII and ToUnicode operations MUST recognize the ACE prefix in a case-insensitive manner. */ step3: if (c_strncasecmp (utf8in, IDNA_ACE_PREFIX, strlen (IDNA_ACE_PREFIX)) != 0) { free (utf8in); return IDNA_NO_ACE_PREFIX; } /* 4. Remove the ACE prefix. */ memmove (utf8in, &utf8in[strlen (IDNA_ACE_PREFIX)], strlen (utf8in) - strlen (IDNA_ACE_PREFIX) + 1); /* 5. Decode the sequence using the decoding algorithm in [PUNYCODE] * and fail if there is an error. Save a copy of the result of * this step. */ (*outlen)--; /* reserve one for the zero */ rc = punycode_decode (strlen (utf8in), utf8in, outlen, out, NULL); if (rc != PUNYCODE_SUCCESS) { free (utf8in); return IDNA_PUNYCODE_ERROR; } out[*outlen] = 0; /* add zero */ /* 6. Apply ToASCII. */ rc = idna_to_ascii_4i (out, *outlen, tmpout, flags); if (rc != IDNA_SUCCESS) { free (utf8in); return rc; } /* 7. Verify that the result of step 6 matches the saved copy from * step 3, using a case-insensitive ASCII comparison. */ if (c_strcasecmp (utf8in, tmpout + strlen (IDNA_ACE_PREFIX)) != 0) { free (utf8in); return IDNA_ROUNDTRIP_VERIFY_ERROR; } /* 8. Return the saved copy from step 5. */ free (utf8in); return IDNA_SUCCESS; } /** * idna_to_unicode_44i: * @in: input array with unicode code points. * @inlen: length of input array with unicode code points. * @out: output array with unicode code points. * @outlen: on input, maximum size of output array with unicode code points, * on exit, actual size of output array with unicode code points. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * The ToUnicode operation takes a sequence of Unicode code points * that make up one domain label and returns a sequence of Unicode * code points. If the input sequence is a label in ACE form, then the * result is an equivalent internationalized label that is not in ACE * form, otherwise the original sequence is returned unaltered. * * ToUnicode never fails. If any step fails, then the original input * sequence is returned immediately in that step. * * The Punycode decoder can never output more code points than it * inputs, but Nameprep can, and therefore ToUnicode can. Note that * the number of octets needed to represent a sequence of code points * depends on the particular character encoding used. * * The inputs to ToUnicode are a sequence of code points, the * AllowUnassigned flag, and the UseSTD3ASCIIRules flag. The output of * ToUnicode is always a sequence of Unicode code points. * * Return value: Returns #Idna_rc error condition, but it must only be * used for debugging purposes. The output buffer is always * guaranteed to contain the correct data according to the * specification (sans malloc induced errors). NB! This means that * you normally ignore the return code from this function, as * checking it means breaking the standard. */ int idna_to_unicode_44i (const uint32_t * in, size_t inlen, uint32_t * out, size_t * outlen, int flags) { int rc; size_t outlensave = *outlen; char *p; p = stringprep_ucs4_to_utf8 (in, (ssize_t) inlen, NULL, NULL); if (p == NULL) return IDNA_MALLOC_ERROR; rc = idna_to_unicode_internal (p, out, outlen, flags); if (rc != IDNA_SUCCESS) { memcpy (out, in, sizeof (in[0]) * (inlen < outlensave ? inlen : outlensave)); *outlen = inlen; } /* p is freed in idna_to_unicode_internal. */ return rc; } /* Wrappers that handle several labels */ /** * idna_to_ascii_4z: * @input: zero terminated input Unicode string. * @output: pointer to newly allocated output string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert UCS-4 domain name to ASCII string. The domain name may * contain several labels, separated by dots. The output buffer must * be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_ascii_4z (const uint32_t * input, char **output, int flags) { const uint32_t *start = input; const uint32_t *end; char buf[64]; char *out = NULL; int rc; /* 1) Whenever dots are used as label separators, the following characters MUST be recognized as dots: U+002E (full stop), U+3002 (ideographic full stop), U+FF0E (fullwidth full stop), U+FF61 (halfwidth ideographic full stop). */ if (input[0] == 0) { /* Handle implicit zero-length root label. */ *output = malloc (1); if (!*output) return IDNA_MALLOC_ERROR; strcpy (*output, ""); return IDNA_SUCCESS; } if (DOTP (input[0]) && input[1] == 0) { /* Handle explicit zero-length root label. */ *output = malloc (2); if (!*output) return IDNA_MALLOC_ERROR; strcpy (*output, "."); return IDNA_SUCCESS; } *output = NULL; do { end = start; for (; *end && !DOTP (*end); end++) ; if (*end == '\0' && start == end) { /* Handle explicit zero-length root label. */ buf[0] = '\0'; } else { rc = idna_to_ascii_4i (start, (size_t) (end - start), buf, flags); if (rc != IDNA_SUCCESS) { free (out); return rc; } } if (out) { size_t l = strlen (out) + 1 + strlen (buf) + 1; char *newp = realloc (out, l); if (!newp) { free (out); return IDNA_MALLOC_ERROR; } out = newp; strcat (out, "."); strcat (out, buf); } else { size_t l = strlen (buf) + 1; out = (char *) malloc (l); if (!out) return IDNA_MALLOC_ERROR; strcpy (out, buf); } start = end + 1; } while (*end); *output = out; return IDNA_SUCCESS; } /** * idna_to_ascii_8z: * @input: zero terminated input UTF-8 string. * @output: pointer to newly allocated output string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert UTF-8 domain name to ASCII string. The domain name may * contain several labels, separated by dots. The output buffer must * be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_ascii_8z (const char *input, char **output, int flags) { uint32_t *ucs4; size_t ucs4len; int rc; ucs4 = stringprep_utf8_to_ucs4 (input, -1, &ucs4len); if (!ucs4) return IDNA_ICONV_ERROR; rc = idna_to_ascii_4z (ucs4, output, flags); free (ucs4); return rc; } /** * idna_to_ascii_lz: * @input: zero terminated input string encoded in the current locale's * character set. * @output: pointer to newly allocated output string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert domain name in the locale's encoding to ASCII string. The * domain name may contain several labels, separated by dots. The * output buffer must be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_ascii_lz (const char *input, char **output, int flags) { char *utf8; int rc; utf8 = stringprep_locale_to_utf8 (input); if (!utf8) return IDNA_ICONV_ERROR; rc = idna_to_ascii_8z (utf8, output, flags); free (utf8); return rc; } /** * idna_to_unicode_4z4z: * @input: zero-terminated Unicode string. * @output: pointer to newly allocated output Unicode string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UCS-4 format into a * UCS-4 string. The domain name may contain several labels, * separated by dots. The output buffer must be deallocated by the * caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags) { const uint32_t *start = input; const uint32_t *end; uint32_t *buf; size_t buflen; uint32_t *out = NULL; size_t outlen = 0; *output = NULL; do { end = start; for (; *end && !DOTP (*end); end++) ; buflen = (size_t) (end - start); buf = malloc (sizeof (buf[0]) * (buflen + 1)); if (!buf) return IDNA_MALLOC_ERROR; /* don't check return code as per specification! */ idna_to_unicode_44i (start, (size_t) (end - start), buf, &buflen, flags); if (out) { uint32_t *newp = realloc (out, sizeof (out[0]) * (outlen + 1 + buflen + 1)); if (!newp) { free (buf); free (out); return IDNA_MALLOC_ERROR; } out = newp; out[outlen++] = 0x002E; /* '.' (full stop) */ memcpy (out + outlen, buf, sizeof (buf[0]) * buflen); outlen += buflen; out[outlen] = 0x0; free (buf); } else { out = buf; outlen = buflen; out[outlen] = 0x0; } start = end + 1; } while (*end); *output = out; return IDNA_SUCCESS; } /** * idna_to_unicode_8z4z: * @input: zero-terminated UTF-8 string. * @output: pointer to newly allocated output Unicode string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UTF-8 format into a * UCS-4 string. The domain name may contain several labels, * separated by dots. The output buffer must be deallocated by the * caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_8z4z (const char *input, uint32_t ** output, int flags) { uint32_t *ucs4; size_t ucs4len; int rc; ucs4 = stringprep_utf8_to_ucs4 (input, -1, &ucs4len); if (!ucs4) return IDNA_ICONV_ERROR; rc = idna_to_unicode_4z4z (ucs4, output, flags); free (ucs4); return rc; } /** * idna_to_unicode_8z8z: * @input: zero-terminated UTF-8 string. * @output: pointer to newly allocated output UTF-8 string. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UTF-8 format into a * UTF-8 string. The domain name may contain several labels, * separated by dots. The output buffer must be deallocated by the * caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_8z8z (const char *input, char **output, int flags) { uint32_t *ucs4; int rc; rc = idna_to_unicode_8z4z (input, &ucs4, flags); *output = stringprep_ucs4_to_utf8 (ucs4, -1, NULL, NULL); free (ucs4); if (!*output) return IDNA_ICONV_ERROR; return rc; } /** * idna_to_unicode_8zlz: * @input: zero-terminated UTF-8 string. * @output: pointer to newly allocated output string encoded in the * current locale's character set. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in UTF-8 format into a * string encoded in the current locale's character set. The domain * name may contain several labels, separated by dots. The output * buffer must be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_8zlz (const char *input, char **output, int flags) { char *utf8; int rc; rc = idna_to_unicode_8z8z (input, &utf8, flags); *output = stringprep_utf8_to_locale (utf8); free (utf8); if (!*output) return IDNA_ICONV_ERROR; return rc; } /** * idna_to_unicode_lzlz: * @input: zero-terminated string encoded in the current locale's * character set. * @output: pointer to newly allocated output string encoded in the * current locale's character set. * @flags: an #Idna_flags value, e.g., %IDNA_ALLOW_UNASSIGNED or * %IDNA_USE_STD3_ASCII_RULES. * * Convert possibly ACE encoded domain name in the locale's character * set into a string encoded in the current locale's character set. * The domain name may contain several labels, separated by dots. The * output buffer must be deallocated by the caller. * * Return value: Returns %IDNA_SUCCESS on success, or error code. **/ int idna_to_unicode_lzlz (const char *input, char **output, int flags) { char *utf8; int rc; utf8 = stringprep_locale_to_utf8 (input); if (!utf8) return IDNA_ICONV_ERROR; rc = idna_to_unicode_8zlz (utf8, output, flags); free (utf8); return rc; } /** * IDNA_ACE_PREFIX * * The IANA allocated prefix to use for IDNA. "xn--" */ /** * Idna_rc: * @IDNA_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @IDNA_STRINGPREP_ERROR: Error during string preparation. * @IDNA_PUNYCODE_ERROR: Error during punycode operation. * @IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains non-LDH ASCII characters. * @IDNA_CONTAINS_LDH: Same as @IDNA_CONTAINS_NON_LDH, for compatibility * with typo in earlier versions. * @IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains a leading or trailing hyphen-minus (U+002D). * @IDNA_INVALID_LENGTH: The final output string is not within the * (inclusive) range 1 to 63 characters. * @IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix * (for ToUnicode). * @IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output * string does not equal the input. * @IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for * ToASCII). * @IDNA_ICONV_ERROR: Could not convert string in locale encoding. * @IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a * fatal error). * @IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used * internally in libc). * * Enumerated return codes of idna_to_ascii_4i(), * idna_to_unicode_44i() functions (and functions derived from those * functions). The value 0 is guaranteed to always correspond to * success. */ /** * Idna_flags: * @IDNA_ALLOW_UNASSIGNED: Don't reject strings containing unassigned * Unicode code points. * @IDNA_USE_STD3_ASCII_RULES: Validate strings according to STD3 * rules (i.e., normal host name rules). * * Flags to pass to idna_to_ascii_4i(), idna_to_unicode_44i() etc. */ libidn-1.28/lib/strerror-punycode.c0000644000000000000000000000462312153706572014231 00000000000000/* strerror-punycode.c --- Convert punycode errors into text. Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "punycode.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * punycode_strerror: * @rc: an #Punycode_status return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * PUNYCODE_SUCCESS: Successful operation. This value is guaranteed * to always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * PUNYCODE_BAD_INPUT: Input is invalid. * PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. * PUNYCODE_OVERFLOW: Input needs wider integers to process. * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * punycode_strerror (Punycode_status rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case PUNYCODE_SUCCESS: p = _("Success"); break; case PUNYCODE_BAD_INPUT: p = _("Invalid input"); break; case PUNYCODE_BIG_OUTPUT: p = _("Output would exceed the buffer space provided"); break; case PUNYCODE_OVERFLOW: p = _("String size limit exceeded"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.28/lib/strerror-pr29.c0000644000000000000000000000441512153706572013176 00000000000000/* strerror-pr29.c --- Convert PR29 errors into text. Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "pr29.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * pr29_strerror: * @rc: an #Pr29_rc return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * PR29_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * PR29_PROBLEM: A problem sequence was encountered. * PR29_STRINGPREP_ERROR: The character set conversion failed (only * for pr29_8z()). * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * pr29_strerror (Pr29_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case PR29_SUCCESS: p = _("Success"); break; case PR29_PROBLEM: p = _("String not idempotent under Unicode NFKC normalization"); break; case PR29_STRINGPREP_ERROR: p = _("String preparation failed"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.28/lib/tld.c0000644000000000000000000003554612153706572011316 00000000000000/* tld.c --- Declarations for TLD restriction checking. Copyright (C) 2004-2013 Simon Josefsson. Copyright (C) 2003-2013 Free Software Foundation, Inc. Author: Thomas Jacob, Internet24.de This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include /* Get stringprep_utf8_to_ucs4, stringprep_locale_to_utf8. */ #include /* Get strcmp(). */ #include /* Get specifications. */ #include /* Array of built-in domain restriction structures. See tlds.c. */ extern const Tld_table *_tld_tables[]; /** * tld_get_table: * @tld: TLD name (e.g. "com") as zero terminated ASCII byte string. * @tables: Zero terminated array of #Tld_table info-structures for * TLDs. * * Get the TLD table for a named TLD by searching through the given * TLD table array. * * Return value: Return structure corresponding to TLD @tld by going * thru @tables, or return %NULL if no such structure is found. */ const Tld_table * tld_get_table (const char *tld, const Tld_table ** tables) { const Tld_table **tldtable = NULL; if (!tld || !tables) return NULL; for (tldtable = tables; *tldtable; tldtable++) if (!strcmp ((*tldtable)->name, tld)) return *tldtable; return NULL; } /** * tld_default_table: * @tld: TLD name (e.g. "com") as zero terminated ASCII byte string. * @overrides: Additional zero terminated array of #Tld_table * info-structures for TLDs, or %NULL to only use library deault * tables. * * Get the TLD table for a named TLD, using the internal defaults, * possibly overrided by the (optional) supplied tables. * * Return value: Return structure corresponding to TLD @tld_str, first * looking through @overrides then thru built-in list, or %NULL if * no such structure found. */ const Tld_table * tld_default_table (const char *tld, const Tld_table ** overrides) { const Tld_table *tldtable = NULL; if (!tld) return NULL; if (overrides) tldtable = tld_get_table (tld, overrides); if (!tldtable) tldtable = tld_get_table (tld, _tld_tables); return tldtable; } #define DOTP(c) ((c) == 0x002E || (c) == 0x3002 || \ (c) == 0xFF0E || (c) == 0xFF61) /** * tld_get_4: * @in: Array of unicode code points to process. Does not need to be * zero terminated. * @inlen: Number of unicode code points. * @out: Zero terminated ascii result string pointer. * * Isolate the top-level domain of @in and return it as an ASCII * string in @out. * * Return value: Return %TLD_SUCCESS on success, or the corresponding * #Tld_rc error code otherwise. */ int tld_get_4 (const uint32_t * in, size_t inlen, char **out) { const uint32_t *ipos; size_t olen; *out = NULL; if (!in || inlen == 0) return TLD_NODATA; ipos = &in[inlen - 1]; olen = 0; /* Scan backwards for non(latin)letters. */ while (ipos >= in && ((*ipos >= 0x41 && *ipos <= 0x5A) || (*ipos >= 0x61 && *ipos <= 0x7A))) ipos--, olen++; if (olen > 0 && ipos >= in && DOTP (*ipos)) { /* Found something that appears a TLD. */ char *out_s = malloc (sizeof (char) * (olen + 1)); char *opos = out_s; if (!opos) return TLD_MALLOC_ERROR; ipos++; /* Transcribe to lowercase ascii string. */ for (; ipos < &in[inlen]; ipos++, opos++) *opos = *ipos > 0x5A ? *ipos : *ipos + 0x20; *opos = 0; *out = out_s; return TLD_SUCCESS; } return TLD_NO_TLD; } /** * tld_get_4z: * @in: Zero terminated array of unicode code points to process. * @out: Zero terminated ascii result string pointer. * * Isolate the top-level domain of @in and return it as an ASCII * string in @out. * * Return value: Return %TLD_SUCCESS on success, or the corresponding * #Tld_rc error code otherwise. */ int tld_get_4z (const uint32_t * in, char **out) { const uint32_t *ipos = in; if (!in) return TLD_NODATA; while (*ipos) ipos++; return tld_get_4 (in, ipos - in, out); } /** * tld_get_z: * @in: Zero terminated character array to process. * @out: Zero terminated ascii result string pointer. * * Isolate the top-level domain of @in and return it as an ASCII * string in @out. The input string @in may be UTF-8, ISO-8859-1 or * any ASCII compatible character encoding. * * Return value: Return %TLD_SUCCESS on success, or the corresponding * #Tld_rc error code otherwise. */ int tld_get_z (const char *in, char **out) { uint32_t *iucs; size_t i, ilen; int rc; ilen = strlen (in); iucs = calloc (ilen, sizeof (*iucs)); if (!iucs) return TLD_MALLOC_ERROR; for (i = 0; i < ilen; i++) iucs[i] = in[i]; rc = tld_get_4 (iucs, ilen, out); free (iucs); return rc; } /* * tld_checkchar - verify that character is permitted * @ch: 32 bit unicode character to check. * @tld: A #Tld_table data structure to check @ch against. * * Verify if @ch is either in [a-z0-9-.] or mentioned as a valid * character in @tld. * * Return value: Return the #Tld_rc value %TLD_SUCCESS if @ch is a * valid character for the TLD @tld or if @tld is %NULL, * %TLD_INVALID if @ch is invalid as defined by @tld. */ static int _tld_checkchar (uint32_t ch, const Tld_table * tld) { const Tld_table_element *s, *e, *m; if (!tld) return TLD_SUCCESS; /* Check for [-a-z0-9.]. */ if ((ch >= 0x61 && ch <= 0x7A) || (ch >= 0x30 && ch <= 0x39) || ch == 0x2D || DOTP (ch)) return TLD_SUCCESS; s = tld->valid; e = s + tld->nvalid; while (s < e) { m = s + ((e - s) >> 1); if (ch < m->start) e = m; else if (ch > m->end) s = m + 1; else return TLD_SUCCESS; } return TLD_INVALID; } /** * tld_check_4t: * @in: Array of unicode code points to process. Does not need to be * zero terminated. * @inlen: Number of unicode code points. * @errpos: Position of offending character is returned here. * @tld: A #Tld_table data structure representing the restrictions for * which the input should be tested. * * Test each of the code points in @in for whether or not * they are allowed by the data structure in @tld, return * the position of the first character for which this is not * the case in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4t (const uint32_t * in, size_t inlen, size_t * errpos, const Tld_table * tld) { const uint32_t *ipos; int rc; if (!tld) /* No data for TLD so everything is valid. */ return TLD_SUCCESS; ipos = in; while (ipos < &in[inlen]) { rc = _tld_checkchar (*ipos, tld); if (rc != TLD_SUCCESS) { if (errpos) *errpos = ipos - in; return rc; } ipos++; } return TLD_SUCCESS; } /** * tld_check_4tz: * @in: Zero terminated array of unicode code points to process. * @errpos: Position of offending character is returned here. * @tld: A #Tld_table data structure representing the restrictions for * which the input should be tested. * * Test each of the code points in @in for whether or not * they are allowed by the data structure in @tld, return * the position of the first character for which this is not * the case in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4tz (const uint32_t * in, size_t * errpos, const Tld_table * tld) { const uint32_t *ipos = in; if (!ipos) return TLD_NODATA; while (*ipos) ipos++; return tld_check_4t (in, ipos - in, errpos, tld); } /** * tld_check_4: * @in: Array of unicode code points to process. Does not need to be * zero terminated. * @inlen: Number of unicode code points. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the code points in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4 (const uint32_t * in, size_t inlen, size_t * errpos, const Tld_table ** overrides) { const Tld_table *tld; char *domain; int rc; if (errpos) *errpos = 0; /* Get TLD name. */ rc = tld_get_4 (in, inlen, &domain); if (rc != TLD_SUCCESS) { if (rc == TLD_NO_TLD) /* No TLD, say OK */ return TLD_SUCCESS; else return rc; } /* Retrieve appropriate data structure. */ tld = tld_default_table (domain, overrides); free (domain); return tld_check_4t (in, inlen, errpos, tld); } /** * tld_check_4z: * @in: Zero-terminated array of unicode code points to process. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the code points in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all code * points are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_4z (const uint32_t * in, size_t * errpos, const Tld_table ** overrides) { const uint32_t *ipos = in; if (!ipos) return TLD_NODATA; while (*ipos) ipos++; return tld_check_4 (in, ipos - in, errpos, overrides); } /** * tld_check_8z: * @in: Zero-terminated UTF8 string to process. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the characters in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. Note that the error position refers to the * decoded character offset rather than the byte position in the * string. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all * characters are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_8z (const char *in, size_t * errpos, const Tld_table ** overrides) { uint32_t *iucs; size_t ilen; int rc; if (!in) return TLD_NODATA; iucs = stringprep_utf8_to_ucs4 (in, -1, &ilen); if (!iucs) return TLD_MALLOC_ERROR; rc = tld_check_4 (iucs, ilen, errpos, overrides); free (iucs); return rc; } /** * tld_check_lz: * @in: Zero-terminated string in the current locales encoding to process. * @errpos: Position of offending character is returned here. * @overrides: A #Tld_table array of additional domain restriction * structures that complement and supersede the built-in information. * * Test each of the characters in @in for whether or not they are * allowed by the information in @overrides or by the built-in TLD * restriction data. When data for the same TLD is available both * internally and in @overrides, the information in @overrides takes * precedence. If several entries for a specific TLD are found, the * first one is used. If @overrides is %NULL, only the built-in * information is used. The position of the first offending character * is returned in @errpos. Note that the error position refers to the * decoded character offset rather than the byte position in the * string. * * Return value: Returns the #Tld_rc value %TLD_SUCCESS if all * characters are valid or when @tld is null, %TLD_INVALID if a * character is not allowed, or additional error codes on general * failure conditions. */ int tld_check_lz (const char *in, size_t * errpos, const Tld_table ** overrides) { char *utf8; int rc; if (!in) return TLD_NODATA; utf8 = stringprep_locale_to_utf8 (in); if (!utf8) return TLD_ICONV_ERROR; rc = tld_check_8z (utf8, errpos, overrides); free (utf8); return rc; } /** * Tld_rc: * @TLD_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @TLD_INVALID: Invalid character found. * @TLD_NODATA: No input data was provided. * @TLD_MALLOC_ERROR: Error during memory allocation. * @TLD_ICONV_ERROR: Error during iconv string conversion. * @TLD_NO_TLD: No top-level domain found in domain string. * @TLD_NOTLD: Same as @TLD_NO_TLD, for compatibility * with typo in earlier versions. * * Enumerated return codes of the TLD checking functions. * The value 0 is guaranteed to always correspond to success. */ libidn-1.28/lib/gen-stringprep-tables.pl0000755000000000000000000000722012153706572015127 00000000000000#! /usr/bin/perl -w # Copyright (C) 2002-2013 Simon Josefsson # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # I consider the output of this program to be unrestricted. Use it as # you will. use strict; my ($tab) = 59; my ($intable) = 0; my ($tablename); my ($varname); my ($starheader, $header); my ($profile) = "rfc3454"; my ($filename) = "$profile.c"; my ($line, $start, $end, @map); open(FH, ">$filename") or die "cannot open $filename for writing"; print FH "/* This file is automatically generated. DO NOT EDIT!\n"; print FH " Instead, edit gen-stringprep-tables.pl and re-run. */\n\n"; print FH "#include \n"; print FH "#include \"stringprep.h\"\n"; while(<>) { s/^ (.*)/$1/g; # for rfc $line = $_; die "already in table" if $intable && m,^----- Start Table (.*) -----,; die "not in table" if !$intable && m,^----- End Table (.*) -----,; if ($intable && m,^----- End Table (.*) -----,) { die "table error" unless $1 eq $tablename || ($1 eq "C.1.2" && $tablename eq "C.1.1"); # Typo in draft $intable = 0; print FH " { 0 },\n"; print FH "};\n\n"; } if (m,^[A-Z],) { $header = $line; } elsif (!m,^[ -],) { $header .= $line; } next unless ($intable || m,^----- Start Table (.*) -----,); if ($intable) { $_ = $line; chop $line; next if m,^$,; next if m,^Hoffman & Blanchet Standards Track \[Page [0-9]+\]$,; next if m,^ $,; next if m,RFC 3454 Preparation of Internationalized Strings December 2002,; die "regexp failed on line: $line" unless m,^([0-9A-F]+)(-([0-9A-F]+))?(; ([0-9A-F]+)( ([0-9A-F]+))?( ([0-9A-F]+))?( ([0-9A-F]+))?;)?,; die "too many mapping targets on line: $line" if $12; $start = $1; $end = $3; $map[0] = $5; $map[1] = $7; $map[2] = $9; $map[3] = $11; die "tables tried to map a range" if $end && $map[0]; if ($map[3]) { printf FH " { 0x%06s, 0, { 0x%06s,%*s/* %s */\n 0x%06s, 0x%06s, 0x%06s }},\n", $start, $map[0], $tab-length($line)-13, " ", $line, $map[1], $map[2], $map[3]; } elsif ($map[2]) { printf FH " { 0x%06s, 0, { 0x%06s,%*s/* %s */\n 0x%06s, 0x%06s }},\n", $start, $map[0], $tab-length($line)-14, " ", $line, $map[1], $map[2]; } elsif ($map[1]) { printf FH " { 0x%06s, 0, { 0x%06s,%*s/* %s */\n 0x%06s }},\n", $start, $map[0], $tab-length($line)-14, " ", $line, $map[1]; } elsif ($map[0]) { printf FH " { 0x%06s, 0, { 0x%06s }},%*s/* %s */\n", $start, $map[0], $tab-length($line)-17, " ", $line; } elsif ($end) { printf FH " { 0x%06s, 0x%06s },%*s/* %s */\n", $start, $end, $tab-length($line)-11, " ", $line; } else { printf FH " { 0x%06s },%*s/* %s */\n", $start, $tab-length($line)-11, " ", $line; } } else { $intable = 1 if !$intable; $tablename = $1; ($varname = $tablename) =~ tr/./_/; $header =~ s/\n/\n * /s; print FH "\n/*\n * $header */\n\n"; print FH "const Stringprep_table_element stringprep_${profile}_${varname}\[\] = {\n"; } } close FH or die "cannot close $filename"; libidn-1.28/lib/tlds.c0000644000000000000000000000175112167245577011500 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-tld-tables.pl and re-run. */ #include "tld.h" /* TLD fr */ static const Tld_table_element _tld_fr_valid[] = { { 0x2d, 0x2d }, { 0x30, 0x39 }, { 0x61, 0x7a }, { 0xe0, 0xe0 }, { 0xe2, 0xe2 }, { 0xe6, 0xeb }, { 0xee, 0xef }, { 0xf4, 0xf4 }, { 0xf9, 0xf9 }, { 0xfb, 0xfc }, { 0xff, 0xff }, { 0x153, 0x153 } }; static const Tld_table _tld_fr = { "fr", "1.0", 12, &_tld_fr_valid[0] }; /* TLD no */ static const Tld_table_element _tld_no_valid[] = { { 0xe0, 0xe1 }, { 0xe4, 0xea }, { 0xf1, 0xf4 }, { 0xf6, 0xf6 }, { 0xf8, 0xf8 }, { 0xfc, 0xfc }, { 0x10d, 0x10d }, { 0x111, 0x111 }, { 0x144, 0x144 }, { 0x14b, 0x14b }, { 0x161, 0x161 }, { 0x167, 0x167 }, { 0x17e, 0x17e } }; static const Tld_table _tld_no = { "no", "1.0", 13, &_tld_no_valid[0] }; /* Main array */ const Tld_table * _tld_tables[] = { &_tld_fr, &_tld_no, NULL }; libidn-1.28/lib/strerror-stringprep.c0000644000000000000000000001053312153706572014575 00000000000000/* strerror-stringprep.c --- Convert stringprep errors into text. Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "stringprep.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * stringprep_strerror: * @rc: a #Stringprep_rc return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * STRINGPREP_OK: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode * code points, which is forbidden by the profile. * STRINGPREP_CONTAINS_PROHIBITED: String contain code points * prohibited by the profile. * STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with * conflicting bidirection category. * STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character * in string not of proper bidirectional category. * STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code * points detected by bidirectional code. * STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too * small. This usually indicate a problem in the calling * application. * STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. * This usually indicate an internal error in the library. * STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. * This usually indicate a problem in the calling application. * STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not * known to the library. * STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This * usually indicate an internal error in the library. * STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is * usually a fatal error. * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * stringprep_strerror (Stringprep_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case STRINGPREP_OK: p = _("Success"); break; case STRINGPREP_CONTAINS_UNASSIGNED: p = _("Forbidden unassigned code points in input"); break; case STRINGPREP_CONTAINS_PROHIBITED: p = _("Prohibited code points in input"); break; case STRINGPREP_BIDI_BOTH_L_AND_RAL: p = _("Conflicting bidirectional properties in input"); break; case STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: p = _("Malformed bidirectional string"); break; case STRINGPREP_BIDI_CONTAINS_PROHIBITED: p = _("Prohibited bidirectional code points in input"); break; case STRINGPREP_TOO_SMALL_BUFFER: p = _("Output would exceed the buffer space provided"); break; case STRINGPREP_PROFILE_ERROR: p = _("Error in stringprep profile definition"); break; case STRINGPREP_FLAG_ERROR: p = _("Flag conflict with profile"); break; case STRINGPREP_UNKNOWN_PROFILE: p = _("Unknown profile"); break; case STRINGPREP_NFKC_FAILED: p = _("Unicode normalization failed (internal error)"); break; case STRINGPREP_MALLOC_ERROR: p = _("Cannot allocate memory"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.28/lib/gen-tld-tables.pl0000755000000000000000000001155712153706572013525 00000000000000#!/usr/bin/perl # Author: Thomas Jacob, Internet24.de # Copyright (C) 2004-2013 Simon Josefsson. # Copyright (C) 2004-2013 Free Software Foundation, Inc. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # I consider the output of this program to be unrestricted. Use it as # you will. # See doc/tld/README and draft-hoffman-idn-reg-*.txt inside Libidn for # more information on the input file syntax. # Use this to generate TLD tables: # $ ./gen-tld-tables *.tld > tlds.c use strict; use warnings; die "Usage: $0 " if ($#ARGV == -1); print "/* This file is automatically generated. DO NOT EDIT!\n"; print " Instead, edit gen-tld-tables.pl and re-run. */\n"; print "\n"; print "#include \"tld.h\"\n"; print "\n"; my @tlds; foreach my $tldfile (@ARGV) { my ($tld, $version); my $data = process_definition ($tldfile, \$tld, \$version); push @tlds, $tld; optimize($data); print_tld_domain($tld, \@$data, $version); } print "/* Main array */\n"; print "const Tld_table * _tld_tables[] =\n"; print "{\n"; foreach (@tlds) { print " &_tld_${_},\n"; } print " NULL\n"; print "};\n"; # Print tld domain structure. # void print_tld_domain($tldfile, \$tld, \@intervals, $version); sub print_tld_domain { my $tld = shift; my $intervals = shift; my $version = shift; my $num_intervals = @$intervals; print "/* TLD $tld */\n"; print "static const Tld_table_element _tld_${tld}_valid[] =\n"; print "{\n"; if (@$intervals) { my $last = pop @$intervals; foreach (@$intervals) { printf " { 0x%x, 0x%x },\n", $_->[0], $_->[1]; } printf " { 0x%x, 0x%x }\n", $last->[0], $last->[1]; } print "};\n"; print "\n"; print "static const Tld_table _tld_${tld} =\n"; print "{\n"; print " \"$tld\",\n"; print " \"$version\",\n"; print " $num_intervals,\n"; print " &_tld_${tld}_valid[0]\n"; print "};\n\n"; } # process a definition file # $filename, \$tld, \$version # return @data on success, die otherwise sub process_definition { my $filename = shift; my $tld = shift; my $version = shift; my $incversion; my $path; my @data; local * FILE; open(FILE, "<$filename") or die "Cannot open $filename"; $path = $filename; $path =~ s/\/[^\/]+$//; my ($is_int,$have_num,$num,$cnum); my $line = 1; while() { chomp; s/#.*$//; if (m/^include\s+(\S+)\s*$/i) { my $incfile = $1; my ($junk, $ver); my $incdata = process_definition("$path/$incfile", \$junk, \$ver); $incversion = $incversion . " $incfile ($ver)"; push @data, @$incdata; next; } if (m/^version\s+"(.*)"\s*$/i) { $$version = $1; next; } if (m/^tld\s+(\S+)\s*$/i) { $$tld = $1; next; } while ($_ ne "") { s/^\s*//; if ( (s/^(0x)([a-f0-9]+)//i) || (s/^(U\+)([a-f0-9]+)//i) || (s/^(0)(\d+)//) || (s/^(\d+)//) ) { $cnum = $1; if (((lc($1) eq "0x") || (lc($1) eq "u+")) && $2) { $cnum = hex($2); } elsif (($1 eq "0") && $2) { $cnum = oct($2); } if ($have_num) { if ($is_int) { push @data, [$num, $cnum]; $have_num = 0; $is_int = 0; } else { push @data, [$num,$num]; $num = $cnum; } } else { $have_num = 1; $num = $cnum; } } elsif (s/^\-//) { $is_int = 1; } elsif (s/^\|//) { $is_int = 0; } elsif (s/^\://) { $is_int = 0; } else { die "Parser error in file $filename at line $line near $_, " if $_ ne ""; } } $line++; } close(FILE); if ($have_num) { if ($is_int) { push @data, [$num, $cnum]; } else { push @data, [$num, $num]; } } $$version = $$version . $incversion if $incversion; return \@data; } # Build minimal set of intervals. # void optimize(\@intervals) sub optimize { my $intervals = shift; return undef unless (@$intervals); my @intervals = sort {$a->[0] <=> $b->[0]} @$intervals; @$intervals = (); my $cur_int = shift @intervals; foreach (@intervals) { if ($_->[0]>($cur_int->[1]+1)) { push @$intervals, $cur_int; $cur_int = $_; } else { if ($_->[1] > $cur_int->[1]) { $cur_int->[1] = $_->[1]; } } } push @$intervals, $cur_int; } libidn-1.28/lib/idna.h0000644000000000000000000000675412153706572011452 00000000000000/* idna.h --- Prototypes for Internationalized Domain Name library. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef IDNA_H # define IDNA_H # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # include /* size_t */ # include /* uint32_t */ # ifdef __cplusplus extern "C" { # endif /* Error codes. */ typedef enum { IDNA_SUCCESS = 0, IDNA_STRINGPREP_ERROR = 1, IDNA_PUNYCODE_ERROR = 2, IDNA_CONTAINS_NON_LDH = 3, /* Workaround typo in earlier versions. */ IDNA_CONTAINS_LDH = IDNA_CONTAINS_NON_LDH, IDNA_CONTAINS_MINUS = 4, IDNA_INVALID_LENGTH = 5, IDNA_NO_ACE_PREFIX = 6, IDNA_ROUNDTRIP_VERIFY_ERROR = 7, IDNA_CONTAINS_ACE_PREFIX = 8, IDNA_ICONV_ERROR = 9, /* Internal errors. */ IDNA_MALLOC_ERROR = 201, IDNA_DLOPEN_ERROR = 202 } Idna_rc; /* IDNA flags */ typedef enum { IDNA_ALLOW_UNASSIGNED = 0x0001, IDNA_USE_STD3_ASCII_RULES = 0x0002 } Idna_flags; # ifndef IDNA_ACE_PREFIX # define IDNA_ACE_PREFIX "xn--" # endif extern IDNAPI const char *idna_strerror (Idna_rc rc); /* Core functions */ extern IDNAPI int idna_to_ascii_4i (const uint32_t * in, size_t inlen, char *out, int flags); extern IDNAPI int idna_to_unicode_44i (const uint32_t * in, size_t inlen, uint32_t * out, size_t * outlen, int flags); /* Wrappers that handle several labels */ extern IDNAPI int idna_to_ascii_4z (const uint32_t * input, char **output, int flags); extern IDNAPI int idna_to_ascii_8z (const char *input, char **output, int flags); extern IDNAPI int idna_to_ascii_lz (const char *input, char **output, int flags); extern IDNAPI int idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags); extern IDNAPI int idna_to_unicode_8z4z (const char *input, uint32_t ** output, int flags); extern IDNAPI int idna_to_unicode_8z8z (const char *input, char **output, int flags); extern IDNAPI int idna_to_unicode_8zlz (const char *input, char **output, int flags); extern IDNAPI int idna_to_unicode_lzlz (const char *input, char **output, int flags); # ifdef __cplusplus } # endif #endif /* IDNA_H */ libidn-1.28/lib/gunicomp.h0000664000000000000000000016143011746453142012352 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-unicode-tables.pl and re-run. Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ #define COMPOSE_FIRST_START 1 #define COMPOSE_FIRST_SINGLE_START 147 #define COMPOSE_SECOND_START 357 #define COMPOSE_SECOND_SINGLE_START 388 #define COMPOSE_TABLE_LAST 48 static const guint16 compose_data[][256] = { { /* page 0, index 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 147, 148, 149, 0, 0, 1, 2, 3, 4, 5, 150, 6, 7, 8, 151, 9, 10, 11, 12, 13, 14, 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, 0, 0, 0, 0, 0, 24, 25, 26, 27, 28, 152, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 153, 154, 50, 155, 0, 0, 51, 0, 0, 0, 0, 156, 0, 0, 0, 0, 52, 53, 157, 0, 158, 0, 0, 0, 54, 0, 0, 0, 0, 0, 55, 0, 159, 160, 56, 161, 0, 0, 57, 0, 0, 0, 0, 162, 0, 0, 0, 0, 58, 59, 163, 0, 164, 0, 0, 0, 60, 0, 0, 0 }, { /* page 1, index 1 */ 0, 0, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 166, 0, 0, 0, 0, 167, 168, 0, 0, 0, 0, 0, 0, 169, 170, 171, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 173, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 70, 0, 0, 0, 0, 0, 0, 174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 175, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 2, index 2 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 178, 179, 180, 0, 0, 0, 0, 181, 182, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 3, index 3 */ 357, 358, 359, 360, 361, 0, 362, 363, 364, 365, 366, 367, 368, 0, 0, 369, 0, 370, 0, 371, 372, 0, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 374, 375, 376, 377, 378, 379, 0, 0, 0, 0, 380, 381, 0, 382, 383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, 385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, 0, 72, 0, 73, 0, 74, 0, 0, 0, 0, 0, 75, 0, 184, 0, 0, 0, 76, 0, 0, 0, 77, 0, 0, 185, 0, 186, 0, 0, 78, 0, 0, 0, 79, 0, 80, 0, 81, 0, 0, 0, 0, 0, 82, 0, 83, 0, 0, 0, 84, 0, 0, 0, 85, 86, 87, 0, 0, 187, 0, 0, 0, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 4, index 4 */ 0, 0, 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 189, 0, 90, 91, 190, 92, 0, 191, 0, 0, 0, 192, 0, 0, 0, 0, 93, 0, 0, 0, 193, 0, 0, 0, 194, 0, 195, 0, 0, 94, 0, 0, 196, 0, 95, 96, 197, 97, 0, 198, 0, 0, 0, 199, 0, 0, 0, 0, 98, 0, 0, 0, 200, 0, 0, 0, 201, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 204, 205, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, 207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 208, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 6, index 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 388, 389, 390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 0, 214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 9, index 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 215, 0, 0, 0, 0, 0, 0, 0, 216, 0, 0, 217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 391, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 11, index 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 394, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 396, 0, 0, 0, 0, 0, 0, 0, 102, 219, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 397, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 12, index 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 221, 0, 0, 398, 0, 0, 0, 103, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 399, 400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 13, index 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 401, 0, 0, 0, 0, 0, 0, 0, 104, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 403, 0, 0, 0, 0, 404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 224, 0, 0, 405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 16, index 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 30, index 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 226, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 229, 0, 0, 0, 0, 0, 0, 230, 231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 232, 233, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 31, index 12 */ 108, 109, 236, 237, 238, 239, 240, 241, 110, 111, 242, 243, 244, 245, 246, 247, 112, 113, 0, 0, 0, 0, 0, 0, 114, 115, 0, 0, 0, 0, 0, 0, 116, 117, 248, 249, 250, 251, 252, 253, 118, 119, 254, 255, 256, 257, 258, 259, 120, 121, 0, 0, 0, 0, 0, 0, 122, 123, 0, 0, 0, 0, 0, 0, 124, 125, 0, 0, 0, 0, 0, 0, 126, 127, 0, 0, 0, 0, 0, 0, 128, 129, 0, 0, 0, 0, 0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 131, 132, 260, 261, 262, 263, 264, 265, 133, 134, 266, 267, 268, 269, 270, 271, 272, 0, 0, 0, 273, 0, 0, 0, 0, 0, 0, 0, 274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, 0, 0, 0, 0, 0, 276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 0, 0, 0, 0, 0, 0, 0, 136, 0 }, { /* page 33, index 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 278, 0, 279, 0, 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 281, 0, 282, 0, 283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 34, index 14 */ 0, 0, 0, 284, 0, 0, 0, 0, 285, 0, 0, 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287, 0, 288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 289, 0, 0, 0, 0, 0, 0, 290, 0, 291, 0, 0, 292, 0, 0, 0, 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 294, 0, 0, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 0, 0, 299, 300, 0, 0, 301, 302, 303, 304, 0, 0, 0, 0, 305, 306, 0, 0, 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 309, 310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 311, 0, 0, 0, 0, 0, 312, 313, 0, 314, 0, 0, 0, 0, 0, 0, 315, 316, 317, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 48, index 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 320, 0, 321, 0, 322, 0, 323, 0, 324, 0, 325, 0, 326, 0, 327, 0, 328, 0, 329, 0, 330, 0, 331, 0, 0, 332, 0, 333, 0, 334, 0, 0, 0, 0, 0, 0, 137, 0, 0, 138, 0, 0, 139, 0, 0, 140, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 386, 387, 0, 0, 335, 0, 0, 0, 0, 0, 0, 0, 0, 336, 0, 0, 0, 0, 337, 0, 338, 0, 339, 0, 340, 0, 341, 0, 342, 0, 343, 0, 344, 0, 345, 0, 346, 0, 347, 0, 348, 0, 0, 349, 0, 350, 0, 351, 0, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 0, 144, 0, 0, 145, 0, 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 352, 353, 354, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, 0 } }; static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = { 0 /* page 0 */, 1 /* page 1 */, 2 /* page 2 */, 3 /* page 3 */, 4 /* page 4 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 5 /* page 6 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 6 /* page 9 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 7 /* page 11 */, 8 /* page 12 */, 9 /* page 13 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 10 /* page 16 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 11 /* page 30 */, 12 /* page 31 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 13 /* page 33 */, 14 /* page 34 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 15 /* page 48 */ }; static const guint16 compose_first_single[][2] = { { 0x0338, 0x226e }, { 0x0338, 0x2260 }, { 0x0338, 0x226f }, { 0x0307, 0x1e1e }, { 0x0302, 0x0134 }, { 0x0307, 0x1e1f }, { 0x0304, 0x01de }, { 0x0301, 0x01fa }, { 0x0301, 0x1e08 }, { 0x0301, 0x1e2e }, { 0x0304, 0x022a }, { 0x0301, 0x01fe }, { 0x0304, 0x01df }, { 0x0301, 0x01fb }, { 0x0301, 0x1e09 }, { 0x0301, 0x1e2f }, { 0x0304, 0x022b }, { 0x0301, 0x01ff }, { 0x0307, 0x1e64 }, { 0x0307, 0x1e65 }, { 0x0307, 0x1e66 }, { 0x0307, 0x1e67 }, { 0x0301, 0x1e78 }, { 0x0301, 0x1e79 }, { 0x0308, 0x1e7a }, { 0x0308, 0x1e7b }, { 0x0307, 0x1e9b }, { 0x030c, 0x01ee }, { 0x0304, 0x01ec }, { 0x0304, 0x01ed }, { 0x0304, 0x01e0 }, { 0x0304, 0x01e1 }, { 0x0306, 0x1e1c }, { 0x0306, 0x1e1d }, { 0x0304, 0x0230 }, { 0x0304, 0x0231 }, { 0x030c, 0x01ef }, { 0x0314, 0x1fec }, { 0x0345, 0x1fb4 }, { 0x0345, 0x1fc4 }, { 0x0345, 0x1ff4 }, { 0x0308, 0x0407 }, { 0x0301, 0x0403 }, { 0x0308, 0x04de }, { 0x0301, 0x040c }, { 0x0308, 0x04e6 }, { 0x0308, 0x04f4 }, { 0x0308, 0x04f8 }, { 0x0308, 0x04ec }, { 0x0301, 0x0453 }, { 0x0308, 0x04df }, { 0x0301, 0x045c }, { 0x0308, 0x04e7 }, { 0x0308, 0x04f5 }, { 0x0308, 0x04f9 }, { 0x0308, 0x04ed }, { 0x0308, 0x0457 }, { 0x030f, 0x0476 }, { 0x030f, 0x0477 }, { 0x0308, 0x04da }, { 0x0308, 0x04db }, { 0x0308, 0x04ea }, { 0x0308, 0x04eb }, { 0x0654, 0x0624 }, { 0x0654, 0x0626 }, { 0x0654, 0x06c2 }, { 0x0654, 0x06d3 }, { 0x0654, 0x06c0 }, { 0x093c, 0x0929 }, { 0x093c, 0x0931 }, { 0x093c, 0x0934 }, { 0x0bd7, 0x0b94 }, { 0x0bbe, 0x0bcb }, { 0x0c56, 0x0c48 }, { 0x0cd5, 0x0cc0 }, { 0x0cd5, 0x0ccb }, { 0x0d3e, 0x0d4b }, { 0x0dca, 0x0ddd }, { 0x102e, 0x1026 }, { 0x0304, 0x1e38 }, { 0x0304, 0x1e39 }, { 0x0304, 0x1e5c }, { 0x0304, 0x1e5d }, { 0x0307, 0x1e68 }, { 0x0307, 0x1e69 }, { 0x0302, 0x1ec6 }, { 0x0302, 0x1ec7 }, { 0x0302, 0x1ed8 }, { 0x0302, 0x1ed9 }, { 0x0345, 0x1f82 }, { 0x0345, 0x1f83 }, { 0x0345, 0x1f84 }, { 0x0345, 0x1f85 }, { 0x0345, 0x1f86 }, { 0x0345, 0x1f87 }, { 0x0345, 0x1f8a }, { 0x0345, 0x1f8b }, { 0x0345, 0x1f8c }, { 0x0345, 0x1f8d }, { 0x0345, 0x1f8e }, { 0x0345, 0x1f8f }, { 0x0345, 0x1f92 }, { 0x0345, 0x1f93 }, { 0x0345, 0x1f94 }, { 0x0345, 0x1f95 }, { 0x0345, 0x1f96 }, { 0x0345, 0x1f97 }, { 0x0345, 0x1f9a }, { 0x0345, 0x1f9b }, { 0x0345, 0x1f9c }, { 0x0345, 0x1f9d }, { 0x0345, 0x1f9e }, { 0x0345, 0x1f9f }, { 0x0345, 0x1fa2 }, { 0x0345, 0x1fa3 }, { 0x0345, 0x1fa4 }, { 0x0345, 0x1fa5 }, { 0x0345, 0x1fa6 }, { 0x0345, 0x1fa7 }, { 0x0345, 0x1faa }, { 0x0345, 0x1fab }, { 0x0345, 0x1fac }, { 0x0345, 0x1fad }, { 0x0345, 0x1fae }, { 0x0345, 0x1faf }, { 0x0345, 0x1fb2 }, { 0x0345, 0x1fc2 }, { 0x0345, 0x1ff2 }, { 0x0345, 0x1fb7 }, { 0x0345, 0x1fc7 }, { 0x0345, 0x1ff7 }, { 0x0338, 0x219a }, { 0x0338, 0x219b }, { 0x0338, 0x21ae }, { 0x0338, 0x21cd }, { 0x0338, 0x21cf }, { 0x0338, 0x21ce }, { 0x0338, 0x2204 }, { 0x0338, 0x2209 }, { 0x0338, 0x220c }, { 0x0338, 0x2224 }, { 0x0338, 0x2226 }, { 0x0338, 0x2241 }, { 0x0338, 0x2244 }, { 0x0338, 0x2247 }, { 0x0338, 0x2249 }, { 0x0338, 0x226d }, { 0x0338, 0x2262 }, { 0x0338, 0x2270 }, { 0x0338, 0x2271 }, { 0x0338, 0x2274 }, { 0x0338, 0x2275 }, { 0x0338, 0x2278 }, { 0x0338, 0x2279 }, { 0x0338, 0x2280 }, { 0x0338, 0x2281 }, { 0x0338, 0x22e0 }, { 0x0338, 0x22e1 }, { 0x0338, 0x2284 }, { 0x0338, 0x2285 }, { 0x0338, 0x2288 }, { 0x0338, 0x2289 }, { 0x0338, 0x22e2 }, { 0x0338, 0x22e3 }, { 0x0338, 0x22ac }, { 0x0338, 0x22ad }, { 0x0338, 0x22ae }, { 0x0338, 0x22af }, { 0x0338, 0x22ea }, { 0x0338, 0x22eb }, { 0x0338, 0x22ec }, { 0x0338, 0x22ed }, { 0x3099, 0x3094 }, { 0x3099, 0x304c }, { 0x3099, 0x304e }, { 0x3099, 0x3050 }, { 0x3099, 0x3052 }, { 0x3099, 0x3054 }, { 0x3099, 0x3056 }, { 0x3099, 0x3058 }, { 0x3099, 0x305a }, { 0x3099, 0x305c }, { 0x3099, 0x305e }, { 0x3099, 0x3060 }, { 0x3099, 0x3062 }, { 0x3099, 0x3065 }, { 0x3099, 0x3067 }, { 0x3099, 0x3069 }, { 0x3099, 0x309e }, { 0x3099, 0x30f4 }, { 0x3099, 0x30ac }, { 0x3099, 0x30ae }, { 0x3099, 0x30b0 }, { 0x3099, 0x30b2 }, { 0x3099, 0x30b4 }, { 0x3099, 0x30b6 }, { 0x3099, 0x30b8 }, { 0x3099, 0x30ba }, { 0x3099, 0x30bc }, { 0x3099, 0x30be }, { 0x3099, 0x30c0 }, { 0x3099, 0x30c2 }, { 0x3099, 0x30c5 }, { 0x3099, 0x30c7 }, { 0x3099, 0x30c9 }, { 0x3099, 0x30f7 }, { 0x3099, 0x30f8 }, { 0x3099, 0x30f9 }, { 0x3099, 0x30fa }, { 0x3099, 0x30fe } }; static const guint16 compose_second_single[][2] = { { 0x0627, 0x0622 }, { 0x0627, 0x0623 }, { 0x0627, 0x0625 }, { 0x09c7, 0x09cb }, { 0x09c7, 0x09cc }, { 0x0b47, 0x0b4b }, { 0x0b47, 0x0b48 }, { 0x0b47, 0x0b4c }, { 0x0bc6, 0x0bca }, { 0x0bc6, 0x0bcc }, { 0x0cc6, 0x0cca }, { 0x0cc6, 0x0cc7 }, { 0x0cc6, 0x0cc8 }, { 0x0d46, 0x0d4a }, { 0x0d46, 0x0d4c }, { 0x0dd9, 0x0dda }, { 0x0dd9, 0x0ddc }, { 0x0dd9, 0x0dde } }; static const guint16 compose_array[146][31] = { { 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x0100, 0x0102, 0x0226, 0x00c4, 0x1ea2, 0x00c5, 0, 0x01cd, 0x0200, 0x0202, 0, 0, 0, 0x1ea0, 0, 0x1e00, 0, 0, 0x0104, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e02, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e04, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e06, 0, 0, 0, 0 }, { 0, 0x0106, 0x0108, 0, 0, 0, 0x010a, 0, 0, 0, 0, 0x010c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00c7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e0a, 0, 0, 0, 0, 0x010e, 0, 0, 0, 0, 0, 0x1e0c, 0, 0, 0, 0x1e10, 0, 0x1e12, 0, 0, 0x1e0e, 0, 0, 0, 0 }, { 0x00c8, 0x00c9, 0x00ca, 0x1ebc, 0x0112, 0x0114, 0x0116, 0x00cb, 0x1eba, 0, 0, 0x011a, 0x0204, 0x0206, 0, 0, 0, 0x1eb8, 0, 0, 0, 0x0228, 0x0118, 0x1e18, 0, 0x1e1a, 0, 0, 0, 0, 0 }, { 0, 0x01f4, 0x011c, 0, 0x1e20, 0x011e, 0x0120, 0, 0, 0, 0, 0x01e6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0122, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x0124, 0, 0, 0, 0x1e22, 0x1e26, 0, 0, 0, 0x021e, 0, 0, 0, 0, 0, 0x1e24, 0, 0, 0, 0x1e28, 0, 0, 0x1e2a, 0, 0, 0, 0, 0, 0 }, { 0x00cc, 0x00cd, 0x00ce, 0x0128, 0x012a, 0x012c, 0x0130, 0x00cf, 0x1ec8, 0, 0, 0x01cf, 0x0208, 0x020a, 0, 0, 0, 0x1eca, 0, 0, 0, 0, 0x012e, 0, 0, 0x1e2c, 0, 0, 0, 0, 0 }, { 0, 0x1e30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e8, 0, 0, 0, 0, 0, 0x1e32, 0, 0, 0, 0x0136, 0, 0, 0, 0, 0x1e34, 0, 0, 0, 0 }, { 0, 0x0139, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013d, 0, 0, 0, 0, 0, 0x1e36, 0, 0, 0, 0x013b, 0, 0x1e3c, 0, 0, 0x1e3a, 0, 0, 0, 0 }, { 0, 0x1e3e, 0, 0, 0, 0, 0x1e40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01f8, 0x0143, 0, 0x00d1, 0, 0, 0x1e44, 0, 0, 0, 0, 0x0147, 0, 0, 0, 0, 0, 0x1e46, 0, 0, 0, 0x0145, 0, 0x1e4a, 0, 0, 0x1e48, 0, 0, 0, 0 }, { 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x014c, 0x014e, 0x022e, 0x00d6, 0x1ece, 0, 0x0150, 0x01d1, 0x020c, 0x020e, 0, 0, 0x01a0, 0x1ecc, 0, 0, 0, 0, 0x01ea, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e54, 0, 0, 0, 0, 0x1e56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x0154, 0, 0, 0, 0, 0x1e58, 0, 0, 0, 0, 0x0158, 0x0210, 0x0212, 0, 0, 0, 0x1e5a, 0, 0, 0, 0x0156, 0, 0, 0, 0, 0x1e5e, 0, 0, 0, 0 }, { 0, 0x015a, 0x015c, 0, 0, 0, 0x1e60, 0, 0, 0, 0, 0x0160, 0, 0, 0, 0, 0, 0x1e62, 0, 0, 0x0218, 0x015e, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e6a, 0, 0, 0, 0, 0x0164, 0, 0, 0, 0, 0, 0x1e6c, 0, 0, 0x021a, 0x0162, 0, 0x1e70, 0, 0, 0x1e6e, 0, 0, 0, 0 }, { 0x00d9, 0x00da, 0x00db, 0x0168, 0x016a, 0x016c, 0, 0x00dc, 0x1ee6, 0x016e, 0x0170, 0x01d3, 0x0214, 0x0216, 0, 0, 0x01af, 0x1ee4, 0x1e72, 0, 0, 0, 0x0172, 0x1e76, 0, 0x1e74, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0x1e7c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e80, 0x1e82, 0x0174, 0, 0, 0, 0x1e86, 0x1e84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e8a, 0x1e8c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ef2, 0x00dd, 0x0176, 0x1ef8, 0x0232, 0, 0x1e8e, 0x0178, 0x1ef6, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x0179, 0x1e90, 0, 0, 0, 0x017b, 0, 0, 0, 0, 0x017d, 0, 0, 0, 0, 0, 0x1e92, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e94, 0, 0, 0, 0 }, { 0x00e0, 0x00e1, 0x00e2, 0x00e3, 0x0101, 0x0103, 0x0227, 0x00e4, 0x1ea3, 0x00e5, 0, 0x01ce, 0x0201, 0x0203, 0, 0, 0, 0x1ea1, 0, 0x1e01, 0, 0, 0x0105, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e03, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e05, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e07, 0, 0, 0, 0 }, { 0, 0x0107, 0x0109, 0, 0, 0, 0x010b, 0, 0, 0, 0, 0x010d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x00e7, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e0b, 0, 0, 0, 0, 0x010f, 0, 0, 0, 0, 0, 0x1e0d, 0, 0, 0, 0x1e11, 0, 0x1e13, 0, 0, 0x1e0f, 0, 0, 0, 0 }, { 0x00e8, 0x00e9, 0x00ea, 0x1ebd, 0x0113, 0x0115, 0x0117, 0x00eb, 0x1ebb, 0, 0, 0x011b, 0x0205, 0x0207, 0, 0, 0, 0x1eb9, 0, 0, 0, 0x0229, 0x0119, 0x1e19, 0, 0x1e1b, 0, 0, 0, 0, 0 }, { 0, 0x01f5, 0x011d, 0, 0x1e21, 0x011f, 0x0121, 0, 0, 0, 0, 0x01e7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0123, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x0125, 0, 0, 0, 0x1e23, 0x1e27, 0, 0, 0, 0x021f, 0, 0, 0, 0, 0, 0x1e25, 0, 0, 0, 0x1e29, 0, 0, 0x1e2b, 0, 0x1e96, 0, 0, 0, 0 }, { 0x00ec, 0x00ed, 0x00ee, 0x0129, 0x012b, 0x012d, 0, 0x00ef, 0x1ec9, 0, 0, 0x01d0, 0x0209, 0x020b, 0, 0, 0, 0x1ecb, 0, 0, 0, 0, 0x012f, 0, 0, 0x1e2d, 0, 0, 0, 0, 0 }, { 0, 0, 0x0135, 0, 0, 0, 0, 0, 0, 0, 0, 0x01f0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x01e9, 0, 0, 0, 0, 0, 0x1e33, 0, 0, 0, 0x0137, 0, 0, 0, 0, 0x1e35, 0, 0, 0, 0 }, { 0, 0x013a, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x013e, 0, 0, 0, 0, 0, 0x1e37, 0, 0, 0, 0x013c, 0, 0x1e3d, 0, 0, 0x1e3b, 0, 0, 0, 0 }, { 0, 0x1e3f, 0, 0, 0, 0, 0x1e41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01f9, 0x0144, 0, 0x00f1, 0, 0, 0x1e45, 0, 0, 0, 0, 0x0148, 0, 0, 0, 0, 0, 0x1e47, 0, 0, 0, 0x0146, 0, 0x1e4b, 0, 0, 0x1e49, 0, 0, 0, 0 }, { 0x00f2, 0x00f3, 0x00f4, 0x00f5, 0x014d, 0x014f, 0x022f, 0x00f6, 0x1ecf, 0, 0x0151, 0x01d2, 0x020d, 0x020f, 0, 0, 0x01a1, 0x1ecd, 0, 0, 0, 0, 0x01eb, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e55, 0, 0, 0, 0, 0x1e57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x0155, 0, 0, 0, 0, 0x1e59, 0, 0, 0, 0, 0x0159, 0x0211, 0x0213, 0, 0, 0, 0x1e5b, 0, 0, 0, 0x0157, 0, 0, 0, 0, 0x1e5f, 0, 0, 0, 0 }, { 0, 0x015b, 0x015d, 0, 0, 0, 0x1e61, 0, 0, 0, 0, 0x0161, 0, 0, 0, 0, 0, 0x1e63, 0, 0, 0x0219, 0x015f, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e6b, 0x1e97, 0, 0, 0, 0x0165, 0, 0, 0, 0, 0, 0x1e6d, 0, 0, 0x021b, 0x0163, 0, 0x1e71, 0, 0, 0x1e6f, 0, 0, 0, 0 }, { 0x00f9, 0x00fa, 0x00fb, 0x0169, 0x016b, 0x016d, 0, 0x00fc, 0x1ee7, 0x016f, 0x0171, 0x01d4, 0x0215, 0x0217, 0, 0, 0x01b0, 0x1ee5, 0x1e73, 0, 0, 0, 0x0173, 0x1e77, 0, 0x1e75, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0x1e7d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e7f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e81, 0x1e83, 0x0175, 0, 0, 0, 0x1e87, 0x1e85, 0, 0x1e98, 0, 0, 0, 0, 0, 0, 0, 0x1e89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0x1e8b, 0x1e8d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ef3, 0x00fd, 0x0177, 0x1ef9, 0x0233, 0, 0x1e8f, 0x00ff, 0x1ef7, 0x1e99, 0, 0, 0, 0, 0, 0, 0, 0x1ef5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x017a, 0x1e91, 0, 0, 0, 0x017c, 0, 0, 0, 0, 0x017e, 0, 0, 0, 0, 0, 0x1e93, 0, 0, 0, 0, 0, 0, 0, 0, 0x1e95, 0, 0, 0, 0 }, { 0x1fed, 0x0385, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc1, 0, 0, 0 }, { 0x1ea6, 0x1ea4, 0, 0x1eaa, 0, 0, 0, 0, 0x1ea8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x01fc, 0, 0, 0x01e2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ec0, 0x1ebe, 0, 0x1ec4, 0, 0, 0, 0, 0x1ec2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ed2, 0x1ed0, 0, 0x1ed6, 0, 0, 0, 0, 0x1ed4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e4c, 0, 0, 0x022c, 0, 0, 0x1e4e, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01db, 0x01d7, 0, 0, 0x01d5, 0, 0, 0, 0, 0, 0, 0x01d9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ea7, 0x1ea5, 0, 0x1eab, 0, 0, 0, 0, 0x1ea9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x01fd, 0, 0, 0x01e3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ec1, 0x1ebf, 0, 0x1ec5, 0, 0, 0, 0, 0x1ec3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ed3, 0x1ed1, 0, 0x1ed7, 0, 0, 0, 0, 0x1ed5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0x1e4d, 0, 0, 0x022d, 0, 0, 0x1e4f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x01dc, 0x01d8, 0, 0, 0x01d6, 0, 0, 0, 0, 0, 0, 0x01da, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eb0, 0x1eae, 0, 0x1eb4, 0, 0, 0, 0, 0x1eb2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eb1, 0x1eaf, 0, 0x1eb5, 0, 0, 0, 0, 0x1eb3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e14, 0x1e16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e15, 0x1e17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e50, 0x1e52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1e51, 0x1e53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1edc, 0x1eda, 0, 0x1ee0, 0, 0, 0, 0, 0x1ede, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1edd, 0x1edb, 0, 0x1ee1, 0, 0, 0, 0, 0x1edf, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ee3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eea, 0x1ee8, 0, 0x1eee, 0, 0, 0, 0, 0x1eec, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1eeb, 0x1ee9, 0, 0x1eef, 0, 0, 0, 0, 0x1eed, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ef1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1fba, 0x0386, 0, 0, 0x1fb9, 0x1fb8, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f08, 0x1f09, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fbc, 0, 0 }, { 0x1fc8, 0x0388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f18, 0x1f19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1fca, 0x0389, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f28, 0x1f29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcc, 0, 0 }, { 0x1fda, 0x038a, 0, 0, 0x1fd9, 0x1fd8, 0, 0x03aa, 0, 0, 0, 0, 0, 0, 0x1f38, 0x1f39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ff8, 0x038c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f48, 0x1f49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1fea, 0x038e, 0, 0, 0x1fe9, 0x1fe8, 0, 0x03ab, 0, 0, 0, 0, 0, 0, 0, 0x1f59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1ffa, 0x038f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f68, 0x1f69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ffc, 0, 0 }, { 0x1f70, 0x03ac, 0, 0, 0x1fb1, 0x1fb0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f00, 0x1f01, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fb6, 0x1fb3, 0, 0 }, { 0x1f72, 0x03ad, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f10, 0x1f11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f74, 0x03ae, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f20, 0x1f21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fc6, 0x1fc3, 0, 0 }, { 0x1f76, 0x03af, 0, 0, 0x1fd1, 0x1fd0, 0, 0x03ca, 0, 0, 0, 0, 0, 0, 0x1f30, 0x1f31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd6, 0, 0, 0 }, { 0x1f78, 0x03cc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f40, 0x1f41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe4, 0x1fe5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f7a, 0x03cd, 0, 0, 0x1fe1, 0x1fe0, 0, 0x03cb, 0, 0, 0, 0, 0, 0, 0x1f50, 0x1f51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe6, 0, 0, 0 }, { 0x1f7c, 0x03ce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f60, 0x1f61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1ff6, 0x1ff3, 0, 0 }, { 0x1fd2, 0x0390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fd7, 0, 0, 0 }, { 0x1fe2, 0x03b0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fe7, 0, 0, 0 }, { 0, 0x03d3, 0, 0, 0, 0, 0, 0x03d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04d0, 0, 0x04d2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x0400, 0, 0, 0, 0, 0x04d6, 0, 0x0401, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04c1, 0, 0x04dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x040d, 0, 0, 0, 0x04e2, 0x0419, 0, 0x04e4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0x04ee, 0x040e, 0, 0x04f0, 0, 0, 0x04f2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04d1, 0, 0x04d3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x0450, 0, 0, 0, 0, 0x04d7, 0, 0x0451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0x04c2, 0, 0x04dd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x045d, 0, 0, 0, 0x04e3, 0x0439, 0, 0x04e5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0x04ef, 0x045e, 0, 0x04f1, 0, 0, 0x04f3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x1eac, 0, 0, 0x1eb6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0x1ead, 0, 0, 0x1eb7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f02, 0x1f04, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f06, 0x1f80, 0, 0 }, { 0x1f03, 0x1f05, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f07, 0x1f81, 0, 0 }, { 0x1f0a, 0x1f0c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0e, 0x1f88, 0, 0 }, { 0x1f0b, 0x1f0d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f0f, 0x1f89, 0, 0 }, { 0x1f12, 0x1f14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f13, 0x1f15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f1a, 0x1f1c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f1b, 0x1f1d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f22, 0x1f24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f26, 0x1f90, 0, 0 }, { 0x1f23, 0x1f25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f27, 0x1f91, 0, 0 }, { 0x1f2a, 0x1f2c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2e, 0x1f98, 0, 0 }, { 0x1f2b, 0x1f2d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f2f, 0x1f99, 0, 0 }, { 0x1f32, 0x1f34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f36, 0, 0, 0 }, { 0x1f33, 0x1f35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f37, 0, 0, 0 }, { 0x1f3a, 0x1f3c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3e, 0, 0, 0 }, { 0x1f3b, 0x1f3d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f3f, 0, 0, 0 }, { 0x1f42, 0x1f44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f43, 0x1f45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f4a, 0x1f4c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f4b, 0x1f4d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0x1f52, 0x1f54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f56, 0, 0, 0 }, { 0x1f53, 0x1f55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f57, 0, 0, 0 }, { 0x1f5b, 0x1f5d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f5f, 0, 0, 0 }, { 0x1f62, 0x1f64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f66, 0x1fa0, 0, 0 }, { 0x1f63, 0x1f65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f67, 0x1fa1, 0, 0 }, { 0x1f6a, 0x1f6c, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6e, 0x1fa8, 0, 0 }, { 0x1f6b, 0x1f6d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1f6f, 0x1fa9, 0, 0 }, { 0x1fcd, 0x1fce, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fcf, 0, 0, 0 }, { 0x1fdd, 0x1fde, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x1fdf, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3070, 0x3071 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3073, 0x3074 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3076, 0x3077 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x3079, 0x307a }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x307c, 0x307d }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d0, 0x30d1 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d3, 0x30d4 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d6, 0x30d7 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30d9, 0x30da }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x30dc, 0x30dd } }; libidn-1.28/lib/gunibreak.h0000664000000000000000000206300711746453142012503 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-unicode-tables.pl and re-run. Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ #ifndef BREAKTABLES_H #define BREAKTABLES_H #define G_UNICODE_DATA_VERSION "3.2" #define G_UNICODE_LAST_CHAR 0x10FFFF #define G_UNICODE_MAX_TABLE_INDEX 10000 /* the last code point that should be looked up in break_property_table_part1 */ #define G_UNICODE_LAST_CHAR_PART1 0x2FAFF static const gint8 break_property_data[][256] = { { /* page 0, index 0 */ G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_LINE_FEED, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_CARRIAGE_RETURN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_SPACE, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_HYPHEN, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_SYMBOL, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC }, { /* page 1, index 1 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 2, index 2 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 3, index 3 */ G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 4, index 4 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 5, index 5 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_INFIX_SEPARATOR, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 6, index 6 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 7, index 7 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 9, index 8 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 10, index 9 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 11, index 10 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 12, index 11 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 13, index 12 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 14, index 13 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 15, index 14 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 16, index 15 */ G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 17, index 16 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 18, index 17 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 19, index 18 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 20, index 19 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 22, index 20 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 23, index 21 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMPLEX_CONTEXT, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 24, index 22 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_BEFORE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 30, index 23 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 31, index 24 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 32, index 25 */ G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_ZERO_WIDTH_SPACE, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_BEFORE_AND_AFTER, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_INSEPARABLE, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_MANDATORY, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AFTER, G_UNICODE_BREAK_NON_BREAKING_GLUE, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 33, index 26 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 34, index 27 */ G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 35, index 28 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 36, index 29 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN }, { /* page 37, index 30 */ G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 38, index 31 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 39, index 32 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_QUOTATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 41, index 33 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 46, index 34 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 47, index 35 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 48, index 36 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC }, { /* page 49, index 37 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER }, { /* page 50, index 38 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 51, index 39 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN }, { /* page 77, index 40 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 159, index 41 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 164, index 42 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 215, index 43 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 250, index 44 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 251, index 45 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 253, index 46 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 254, index 47 */ G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NON_BREAKING_GLUE }, { /* page 255, index 48 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_EXCLAMATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_OPEN_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_CLOSE_PUNCTUATION, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_NON_STARTER, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_POSTFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_PREFIX, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_CONTINGENT, G_UNICODE_BREAK_AMBIGUOUS, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 259, index 49 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 260, index 50 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 464, index 51 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 465, index 52 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 468, index 53 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 469, index 54 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 470, index 55 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC }, { /* page 471, index 56 */ G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_ALPHABETIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC, G_UNICODE_BREAK_NUMERIC }, { /* page 678, index 57 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 762, index 58 */ G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_IDEOGRAPHIC, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN }, { /* page 3584, index 59 */ G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_COMBINING_MARK, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN, G_UNICODE_BREAK_UNKNOWN } }; /* U+0000 through U+2FAFF */ static const gint16 break_property_table_part1[763] = { 0 /* page 0 */, 1 /* page 1 */, 2 /* page 2 */, 3 /* page 3 */, 4 /* page 4 */, 5 /* page 5 */, 6 /* page 6 */, 7 /* page 7 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 8 /* page 9 */, 9 /* page 10 */, 10 /* page 11 */, 11 /* page 12 */, 12 /* page 13 */, 13 /* page 14 */, 14 /* page 15 */, 15 /* page 16 */, 16 /* page 17 */, 17 /* page 18 */, 18 /* page 19 */, 19 /* page 20 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, 20 /* page 22 */, 21 /* page 23 */, 22 /* page 24 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 23 /* page 30 */, 24 /* page 31 */, 25 /* page 32 */, 26 /* page 33 */, 27 /* page 34 */, 28 /* page 35 */, 29 /* page 36 */, 30 /* page 37 */, 31 /* page 38 */, 32 /* page 39 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, 33 /* page 41 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 34 /* page 46 */, 35 /* page 47 */, 36 /* page 48 */, 37 /* page 49 */, 38 /* page 50 */, 39 /* page 51 */, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 40 /* page 77 */, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 41 /* page 159 */, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 42 /* page 164 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 43 /* page 215 */, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_SURROGATE + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 44 /* page 250 */, 45 /* page 251 */, G_UNICODE_BREAK_ALPHABETIC + G_UNICODE_MAX_TABLE_INDEX, 46 /* page 253 */, 47 /* page 254 */, 48 /* page 255 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 49 /* page 259 */, 50 /* page 260 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 51 /* page 464 */, 52 /* page 465 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, 53 /* page 468 */, 54 /* page 469 */, 55 /* page 470 */, 56 /* page 471 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 57 /* page 678 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_IDEOGRAPHIC + G_UNICODE_MAX_TABLE_INDEX, 58 /* page 762 */ }; /* U+E0000 through U+10FFFF */ static const gint16 break_property_table_part2[768] = { 59 /* page 3584 */, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX, G_UNICODE_BREAK_UNKNOWN + G_UNICODE_MAX_TABLE_INDEX }; #endif /* BREAKTABLES_H */ libidn-1.28/lib/profiles.c0000644000000000000000000003007112153706572012342 00000000000000/* profiles.c --- Definitions of stringprep profiles. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include #include "stringprep.h" const Stringprep_profiles stringprep_profiles[] = { {"Nameprep", stringprep_nameprep}, {"KRBprep", stringprep_kerberos5}, /* Deprecate? */ {"Nodeprep", stringprep_xmpp_nodeprep}, {"Resourceprep", stringprep_xmpp_resourceprep}, {"plain", stringprep_plain}, /* sasl-anon-00. */ {"trace", stringprep_trace}, /* sasl-anon-01,02,03. */ {"SASLprep", stringprep_saslprep}, {"ISCSIprep", stringprep_iscsi}, /* Obsolete. */ {"iSCSI", stringprep_iscsi}, /* IANA. */ {NULL, NULL} }; const Stringprep_profile stringprep_nameprep[] = { {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_2}, {STRINGPREP_NFKC, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, 0, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, 0, stringprep_rfc3454_D_2}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, stringprep_rfc3454_A_1}, {0} }; const Stringprep_profile stringprep_kerberos5[] = { /* XXX this is likely to be wrong as the specification is a rough draft. */ {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_3}, {STRINGPREP_NFKC, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, 0, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, 0, stringprep_rfc3454_D_2}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, stringprep_rfc3454_A_1}, {0} }; const Stringprep_table_element stringprep_xmpp_nodeprep_prohibit[] = { {0x000022}, /* #x22 (") */ {0x000026}, /* #x26 (&) */ {0x000027}, /* #x27 (') */ {0x00002F}, /* #x2F (/) */ {0x00003A}, /* #x3A (:) */ {0x00003C}, /* #x3C (<) */ {0x00003E}, /* #x3E (>) */ {0x000040}, /* #x40 (@) */ {0} }; const Stringprep_profile stringprep_xmpp_nodeprep[] = { {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_2}, {STRINGPREP_NFKC, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_xmpp_nodeprep_prohibit}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, 0, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, 0, stringprep_rfc3454_D_2}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, stringprep_rfc3454_A_1}, {0} }; const Stringprep_profile stringprep_xmpp_resourceprep[] = { {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, {STRINGPREP_NFKC, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, stringprep_rfc3454_A_1}, {0} }; const Stringprep_profile stringprep_plain[] = { {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, {0} }; const Stringprep_profile stringprep_trace[] = { {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, {0} }; const Stringprep_table_element stringprep_iscsi_prohibit[] = { /* NB, since start == 0, we must have that end != 0 for the end-of-table logic to work. */ {0x0000, 1}, /* [ASCII CONTROL CHARACTERS and SPACE through ,] */ {0x0001}, {0x0002}, {0x0003}, {0x0004}, {0x0005}, {0x0006}, {0x0007}, {0x0008}, {0x0009}, {0x000A}, {0x000B}, {0x000C}, {0x000D}, {0x000E}, {0x000F}, {0x0010}, {0x0011}, {0x0012}, {0x0013}, {0x0014}, {0x0015}, {0x0016}, {0x0017}, {0x0018}, {0x0019}, {0x001A}, {0x001B}, {0x001C}, {0x001D}, {0x001E}, {0x001F}, {0x0020}, {0x0021}, {0x0022}, {0x0023}, {0x0024}, {0x0025}, {0x0026}, {0x0027}, {0x0028}, {0x0029}, {0x002A}, {0x002B}, {0x002C}, {0x002F}, /* [ASCII /] */ {0x003B}, /* [ASCII ; through @] */ {0x003C}, {0x003D}, {0x003E}, {0x003F}, {0x0040}, {0x005B}, /* [ASCII [ through `] */ {0x005C}, {0x005D}, {0x005E}, {0x005F}, {0x0060}, {0x007B}, /* [ASCII { through DEL] */ {0x007C}, {0x007D}, {0x007E}, {0x007F}, {0x3002}, /* ideographic full stop */ {0} }; const Stringprep_profile stringprep_iscsi[] = { {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_2}, {STRINGPREP_NFKC, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_iscsi_prohibit}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, stringprep_rfc3454_A_1}, {0} }; const Stringprep_table_element stringprep_saslprep_space_map[] = { {0x0000A0, 0, {0x0020}}, /* 00A0; NO-BREAK SPACE */ {0x001680, 0, {0x0020}}, /* 1680; OGHAM SPACE MARK */ {0x002000, 0, {0x0020}}, /* 2000; EN QUAD */ {0x002001, 0, {0x0020}}, /* 2001; EM QUAD */ {0x002002, 0, {0x0020}}, /* 2002; EN SPACE */ {0x002003, 0, {0x0020}}, /* 2003; EM SPACE */ {0x002004, 0, {0x0020}}, /* 2004; THREE-PER-EM SPACE */ {0x002005, 0, {0x0020}}, /* 2005; FOUR-PER-EM SPACE */ {0x002006, 0, {0x0020}}, /* 2006; SIX-PER-EM SPACE */ {0x002007, 0, {0x0020}}, /* 2007; FIGURE SPACE */ {0x002008, 0, {0x0020}}, /* 2008; PUNCTUATION SPACE */ {0x002009, 0, {0x0020}}, /* 2009; THIN SPACE */ {0x00200A, 0, {0x0020}}, /* 200A; HAIR SPACE */ {0x00200B, 0, {0x0020}}, /* 200B; ZERO WIDTH SPACE */ {0x00202F, 0, {0x0020}}, /* 202F; NARROW NO-BREAK SPACE */ {0x00205F, 0, {0x0020}}, /* 205F; MEDIUM MATHEMATICAL SPACE */ {0x003000, 0, {0x0020}}, /* 3000; IDEOGRAPHIC SPACE */ {0} }; const Stringprep_profile stringprep_saslprep[] = { {STRINGPREP_MAP_TABLE, 0, stringprep_saslprep_space_map}, {STRINGPREP_MAP_TABLE, 0, stringprep_rfc3454_B_1}, {STRINGPREP_NFKC, 0, 0}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_1_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_1}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_2_2}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_3}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_4}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_5}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_6}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_7}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_9}, {STRINGPREP_BIDI, 0, 0}, {STRINGPREP_BIDI_PROHIBIT_TABLE, 0, stringprep_rfc3454_C_8}, {STRINGPREP_BIDI_RAL_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_1}, {STRINGPREP_BIDI_L_TABLE, ~STRINGPREP_NO_BIDI, stringprep_rfc3454_D_2}, {STRINGPREP_UNASSIGNED_TABLE, ~STRINGPREP_NO_UNASSIGNED, stringprep_rfc3454_A_1}, {0} }; libidn-1.28/lib/version.c0000644000000000000000000000355612153706572012214 00000000000000/* version.c --- Version handling. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "stringprep.h" #include /* for strverscmp */ /** * stringprep_check_version: * @req_version: Required version number, or NULL. * * Check that the version of the library is at minimum the requested one * and return the version string; return NULL if the condition is not * satisfied. If a NULL is passed to this function, no check is done, * but the version string is simply returned. * * See %STRINGPREP_VERSION for a suitable @req_version string. * * Return value: Version string of run-time library, or NULL if the * run-time library does not meet the required version number. */ const char * stringprep_check_version (const char *req_version) { if (!req_version || strverscmp (req_version, STRINGPREP_VERSION) <= 0) return STRINGPREP_VERSION; return NULL; } libidn-1.28/lib/punycode.c0000644000000000000000000004003412153706572012345 00000000000000/* punycode.c --- Implementation of punycode used to ASCII encode IDN's. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ /* * This file is derived from RFC 3492bis written by Adam M. Costello. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. * * Copyright (C) The Internet Society (2003). All Rights Reserved. * * This document and translations of it may be copied and furnished to * others, and derivative works that comment on or otherwise explain it * or assist in its implementation may be prepared, copied, published * and distributed, in whole or in part, without restriction of any * kind, provided that the above copyright notice and this paragraph are * included on all such copies and derivative works. However, this * document itself may not be modified in any way, such as by removing * the copyright notice or references to the Internet Society or other * Internet organizations, except as needed for the purpose of * developing Internet standards in which case the procedures for * copyrights defined in the Internet Standards process must be * followed, or as required to translate it into languages other than * English. * * The limited permissions granted above are perpetual and will not be * revoked by the Internet Society or its successors or assigns. * * This document and the information contained herein is provided on an * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. */ #include #include #include "punycode.h" /*** Bootstring parameters for Punycode ***/ enum { base = 36, tmin = 1, tmax = 26, skew = 38, damp = 700, initial_bias = 72, initial_n = 0x80, delimiter = 0x2D }; /* basic(cp) tests whether cp is a basic code point: */ #define basic(cp) ((punycode_uint)(cp) < 0x80) /* delim(cp) tests whether cp is a delimiter: */ #define delim(cp) ((cp) == delimiter) /* decode_digit(cp) returns the numeric value of a basic code */ /* point (for use in representing integers) in the range 0 to */ /* base-1, or base if cp does not represent a value. */ static punycode_uint decode_digit (punycode_uint cp) { return cp - 48 < 10 ? cp - 22 : cp - 65 < 26 ? cp - 65 : cp - 97 < 26 ? cp - 97 : base; } /* encode_digit(d,flag) returns the basic code point whose value */ /* (when used for representing integers) is d, which needs to be in */ /* the range 0 to base-1. The lowercase form is used unless flag is */ /* nonzero, in which case the uppercase form is used. The behavior */ /* is undefined if flag is nonzero and digit d has no uppercase form. */ static char encode_digit (punycode_uint d, int flag) { return d + 22 + 75 * (d < 26) - ((flag != 0) << 5); /* 0..25 map to ASCII a..z or A..Z */ /* 26..35 map to ASCII 0..9 */ } /* flagged(bcp) tests whether a basic code point is flagged */ /* (uppercase). The behavior is undefined if bcp is not a */ /* basic code point. */ #define flagged(bcp) ((punycode_uint)(bcp) - 65 < 26) /* encode_basic(bcp,flag) forces a basic code point to lowercase */ /* if flag is zero, uppercase if flag is nonzero, and returns */ /* the resulting code point. The code point is unchanged if it */ /* is caseless. The behavior is undefined if bcp is not a basic */ /* code point. */ static char encode_basic (punycode_uint bcp, int flag) { bcp -= (bcp - 97 < 26) << 5; return bcp + ((!flag && (bcp - 65 < 26)) << 5); } /*** Platform-specific constants ***/ /* maxint is the maximum value of a punycode_uint variable: */ static const punycode_uint maxint = -1; /* Because maxint is unsigned, -1 becomes the maximum value. */ /*** Bias adaptation function ***/ static punycode_uint adapt (punycode_uint delta, punycode_uint numpoints, int firsttime) { punycode_uint k; delta = firsttime ? delta / damp : delta >> 1; /* delta >> 1 is a faster way of doing delta / 2 */ delta += delta / numpoints; for (k = 0; delta > ((base - tmin) * tmax) / 2; k += base) { delta /= base - tmin; } return k + (base - tmin + 1) * delta / (delta + skew); } /*** Main encode function ***/ /** * punycode_encode: * @input_length: The number of code points in the @input array and * the number of flags in the @case_flags array. * @input: An array of code points. They are presumed to be Unicode * code points, but that is not strictly REQUIRED. The array * contains code points, not code units. UTF-16 uses code units * D800 through DFFF to refer to code points 10000..10FFFF. The * code points D800..DFFF do not occur in any valid Unicode string. * The code points that can occur in Unicode strings (0..D7FF and * E000..10FFFF) are also called Unicode scalar values. * @case_flags: A %NULL pointer or an array of boolean values parallel * to the @input array. Nonzero (true, flagged) suggests that the * corresponding Unicode character be forced to uppercase after * being decoded (if possible), and zero (false, unflagged) suggests * that it be forced to lowercase (if possible). ASCII code points * (0..7F) are encoded literally, except that ASCII letters are * forced to uppercase or lowercase according to the corresponding * case flags. If @case_flags is a %NULL pointer then ASCII letters * are left as they are, and other code points are treated as * unflagged. * @output_length: The caller passes in the maximum number of ASCII * code points that it can receive. On successful return it will * contain the number of ASCII code points actually output. * @output: An array of ASCII code points. It is *not* * null-terminated; it will contain zeros if and only if the @input * contains zeros. (Of course the caller can leave room for a * terminator and add one if needed.) * * Converts a sequence of code points (presumed to be Unicode code * points) to Punycode. * * Return value: The return value can be any of the #Punycode_status * values defined above except %PUNYCODE_BAD_INPUT. If not * %PUNYCODE_SUCCESS, then @output_size and @output might contain * garbage. **/ int punycode_encode (size_t input_length, const punycode_uint input[], const unsigned char case_flags[], size_t * output_length, char output[]) { punycode_uint input_len, n, delta, h, b, bias, j, m, q, k, t; size_t out, max_out; /* The Punycode spec assumes that the input length is the same type */ /* of integer as a code point, so we need to convert the size_t to */ /* a punycode_uint, which could overflow. */ if (input_length > maxint) return punycode_overflow; input_len = (punycode_uint) input_length; /* Initialize the state: */ n = initial_n; delta = 0; out = 0; max_out = *output_length; bias = initial_bias; /* Handle the basic code points: */ for (j = 0; j < input_len; ++j) { if (basic (input[j])) { if (max_out - out < 2) return punycode_big_output; output[out++] = case_flags ? encode_basic (input[j], case_flags[j]) : (char) input[j]; } /* else if (input[j] < n) return punycode_bad_input; */ /* (not needed for Punycode with unsigned code points) */ } h = b = (punycode_uint) out; /* cannot overflow because out <= input_len <= maxint */ /* h is the number of code points that have been handled, b is the */ /* number of basic code points, and out is the number of ASCII code */ /* points that have been output. */ if (b > 0) output[out++] = delimiter; /* Main encoding loop: */ while (h < input_len) { /* All non-basic code points < n have been */ /* handled already. Find the next larger one: */ for (m = maxint, j = 0; j < input_len; ++j) { /* if (basic(input[j])) continue; */ /* (not needed for Punycode) */ if (input[j] >= n && input[j] < m) m = input[j]; } /* Increase delta enough to advance the decoder's */ /* state to , but guard against overflow: */ if (m - n > (maxint - delta) / (h + 1)) return punycode_overflow; delta += (m - n) * (h + 1); n = m; for (j = 0; j < input_len; ++j) { /* Punycode does not need to check whether input[j] is basic: */ if (input[j] < n /* || basic(input[j]) */ ) { if (++delta == 0) return punycode_overflow; } if (input[j] == n) { /* Represent delta as a generalized variable-length integer: */ for (q = delta, k = base;; k += base) { if (out >= max_out) return punycode_big_output; t = k <= bias /* + tmin */ ? tmin : /* +tmin not needed */ k >= bias + tmax ? tmax : k - bias; if (q < t) break; output[out++] = encode_digit (t + (q - t) % (base - t), 0); q = (q - t) / (base - t); } output[out++] = encode_digit (q, case_flags && case_flags[j]); bias = adapt (delta, h + 1, h == b); delta = 0; ++h; } } ++delta, ++n; } *output_length = out; return punycode_success; } /*** Main decode function ***/ /** * punycode_decode: * @input_length: The number of ASCII code points in the @input array. * @input: An array of ASCII code points (0..7F). * @output_length: The caller passes in the maximum number of code * points that it can receive into the @output array (which is also * the maximum number of flags that it can receive into the * @case_flags array, if @case_flags is not a %NULL pointer). On * successful return it will contain the number of code points * actually output (which is also the number of flags actually * output, if case_flags is not a null pointer). The decoder will * never need to output more code points than the number of ASCII * code points in the input, because of the way the encoding is * defined. The number of code points output cannot exceed the * maximum possible value of a punycode_uint, even if the supplied * @output_length is greater than that. * @output: An array of code points like the input argument of * punycode_encode() (see above). * @case_flags: A %NULL pointer (if the flags are not needed by the * caller) or an array of boolean values parallel to the @output * array. Nonzero (true, flagged) suggests that the corresponding * Unicode character be forced to uppercase by the caller (if * possible), and zero (false, unflagged) suggests that it be forced * to lowercase (if possible). ASCII code points (0..7F) are output * already in the proper case, but their flags will be set * appropriately so that applying the flags would be harmless. * * Converts Punycode to a sequence of code points (presumed to be * Unicode code points). * * Return value: The return value can be any of the #Punycode_status * values defined above. If not %PUNYCODE_SUCCESS, then * @output_length, @output, and @case_flags might contain garbage. * **/ int punycode_decode (size_t input_length, const char input[], size_t * output_length, punycode_uint output[], unsigned char case_flags[]) { punycode_uint n, out, i, max_out, bias, oldi, w, k, digit, t; size_t b, j, in; /* Initialize the state: */ n = initial_n; out = i = 0; max_out = *output_length > maxint ? maxint : (punycode_uint) * output_length; bias = initial_bias; /* Handle the basic code points: Let b be the number of input code */ /* points before the last delimiter, or 0 if there is none, then */ /* copy the first b code points to the output. */ for (b = j = 0; j < input_length; ++j) if (delim (input[j])) b = j; if (b > max_out) return punycode_big_output; for (j = 0; j < b; ++j) { if (case_flags) case_flags[out] = flagged (input[j]); if (!basic (input[j])) return punycode_bad_input; output[out++] = input[j]; } /* Main decoding loop: Start just after the last delimiter if any */ /* basic code points were copied; start at the beginning otherwise. */ for (in = b > 0 ? b + 1 : 0; in < input_length; ++out) { /* in is the index of the next ASCII code point to be consumed, */ /* and out is the number of code points in the output array. */ /* Decode a generalized variable-length integer into delta, */ /* which gets added to i. The overflow checking is easier */ /* if we increase i as we go, then subtract off its starting */ /* value at the end to obtain delta. */ for (oldi = i, w = 1, k = base;; k += base) { if (in >= input_length) return punycode_bad_input; digit = decode_digit (input[in++]); if (digit >= base) return punycode_bad_input; if (digit > (maxint - i) / w) return punycode_overflow; i += digit * w; t = k <= bias /* + tmin */ ? tmin : /* +tmin not needed */ k >= bias + tmax ? tmax : k - bias; if (digit < t) break; if (w > maxint / (base - t)) return punycode_overflow; w *= (base - t); } bias = adapt (i - oldi, out + 1, oldi == 0); /* i was supposed to wrap around from out+1 to 0, */ /* incrementing n each time, so we'll fix that now: */ if (i / (out + 1) > maxint - n) return punycode_overflow; n += i / (out + 1); i %= (out + 1); /* Insert n at position i of the output: */ /* not needed for Punycode: */ /* if (basic(n)) return punycode_invalid_input; */ if (out >= max_out) return punycode_big_output; if (case_flags) { memmove (case_flags + i + 1, case_flags + i, out - i); /* Case of last ASCII code point determines case flag: */ case_flags[i] = flagged (input[in - 1]); } memmove (output + i + 1, output + i, (out - i) * sizeof *output); output[i++] = n; } *output_length = (size_t) out; /* cannot overflow because out <= old value of *output_length */ return punycode_success; } /** * punycode_uint * * Unicode code point data type, this is always a 32 bit unsigned * integer. */ /** * Punycode_status * @PUNYCODE_SUCCESS: Successful operation. This value is guaranteed * to always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @PUNYCODE_BAD_INPUT: Input is invalid. * @PUNYCODE_BIG_OUTPUT: Output would exceed the space provided. * @PUNYCODE_OVERFLOW: Input needs wider integers to process. * * Enumerated return codes of punycode_encode() and punycode_decode(). * The value 0 is guaranteed to always correspond to success. */ libidn-1.28/lib/rfc3454.c0000644000000000000000000104246312167245577011632 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-stringprep-tables.pl and re-run. */ #include #include "stringprep.h" /* * So we can use this material. There may be other legal analysis that * also reach the same conclusion. */ const Stringprep_table_element stringprep_rfc3454_A_1[] = { { 0x000221 }, /* 0221 */ { 0x000234, 0x00024F }, /* 0234-024F */ { 0x0002AE, 0x0002AF }, /* 02AE-02AF */ { 0x0002EF, 0x0002FF }, /* 02EF-02FF */ { 0x000350, 0x00035F }, /* 0350-035F */ { 0x000370, 0x000373 }, /* 0370-0373 */ { 0x000376, 0x000379 }, /* 0376-0379 */ { 0x00037B, 0x00037D }, /* 037B-037D */ { 0x00037F, 0x000383 }, /* 037F-0383 */ { 0x00038B }, /* 038B */ { 0x00038D }, /* 038D */ { 0x0003A2 }, /* 03A2 */ { 0x0003CF }, /* 03CF */ { 0x0003F7, 0x0003FF }, /* 03F7-03FF */ { 0x000487 }, /* 0487 */ { 0x0004CF }, /* 04CF */ { 0x0004F6, 0x0004F7 }, /* 04F6-04F7 */ { 0x0004FA, 0x0004FF }, /* 04FA-04FF */ { 0x000510, 0x000530 }, /* 0510-0530 */ { 0x000557, 0x000558 }, /* 0557-0558 */ { 0x000560 }, /* 0560 */ { 0x000588 }, /* 0588 */ { 0x00058B, 0x000590 }, /* 058B-0590 */ { 0x0005A2 }, /* 05A2 */ { 0x0005BA }, /* 05BA */ { 0x0005C5, 0x0005CF }, /* 05C5-05CF */ { 0x0005EB, 0x0005EF }, /* 05EB-05EF */ { 0x0005F5, 0x00060B }, /* 05F5-060B */ { 0x00060D, 0x00061A }, /* 060D-061A */ { 0x00061C, 0x00061E }, /* 061C-061E */ { 0x000620 }, /* 0620 */ { 0x00063B, 0x00063F }, /* 063B-063F */ { 0x000656, 0x00065F }, /* 0656-065F */ { 0x0006EE, 0x0006EF }, /* 06EE-06EF */ { 0x0006FF }, /* 06FF */ { 0x00070E }, /* 070E */ { 0x00072D, 0x00072F }, /* 072D-072F */ { 0x00074B, 0x00077F }, /* 074B-077F */ { 0x0007B2, 0x000900 }, /* 07B2-0900 */ { 0x000904 }, /* 0904 */ { 0x00093A, 0x00093B }, /* 093A-093B */ { 0x00094E, 0x00094F }, /* 094E-094F */ { 0x000955, 0x000957 }, /* 0955-0957 */ { 0x000971, 0x000980 }, /* 0971-0980 */ { 0x000984 }, /* 0984 */ { 0x00098D, 0x00098E }, /* 098D-098E */ { 0x000991, 0x000992 }, /* 0991-0992 */ { 0x0009A9 }, /* 09A9 */ { 0x0009B1 }, /* 09B1 */ { 0x0009B3, 0x0009B5 }, /* 09B3-09B5 */ { 0x0009BA, 0x0009BB }, /* 09BA-09BB */ { 0x0009BD }, /* 09BD */ { 0x0009C5, 0x0009C6 }, /* 09C5-09C6 */ { 0x0009C9, 0x0009CA }, /* 09C9-09CA */ { 0x0009CE, 0x0009D6 }, /* 09CE-09D6 */ { 0x0009D8, 0x0009DB }, /* 09D8-09DB */ { 0x0009DE }, /* 09DE */ { 0x0009E4, 0x0009E5 }, /* 09E4-09E5 */ { 0x0009FB, 0x000A01 }, /* 09FB-0A01 */ { 0x000A03, 0x000A04 }, /* 0A03-0A04 */ { 0x000A0B, 0x000A0E }, /* 0A0B-0A0E */ { 0x000A11, 0x000A12 }, /* 0A11-0A12 */ { 0x000A29 }, /* 0A29 */ { 0x000A31 }, /* 0A31 */ { 0x000A34 }, /* 0A34 */ { 0x000A37 }, /* 0A37 */ { 0x000A3A, 0x000A3B }, /* 0A3A-0A3B */ { 0x000A3D }, /* 0A3D */ { 0x000A43, 0x000A46 }, /* 0A43-0A46 */ { 0x000A49, 0x000A4A }, /* 0A49-0A4A */ { 0x000A4E, 0x000A58 }, /* 0A4E-0A58 */ { 0x000A5D }, /* 0A5D */ { 0x000A5F, 0x000A65 }, /* 0A5F-0A65 */ { 0x000A75, 0x000A80 }, /* 0A75-0A80 */ { 0x000A84 }, /* 0A84 */ { 0x000A8C }, /* 0A8C */ { 0x000A8E }, /* 0A8E */ { 0x000A92 }, /* 0A92 */ { 0x000AA9 }, /* 0AA9 */ { 0x000AB1 }, /* 0AB1 */ { 0x000AB4 }, /* 0AB4 */ { 0x000ABA, 0x000ABB }, /* 0ABA-0ABB */ { 0x000AC6 }, /* 0AC6 */ { 0x000ACA }, /* 0ACA */ { 0x000ACE, 0x000ACF }, /* 0ACE-0ACF */ { 0x000AD1, 0x000ADF }, /* 0AD1-0ADF */ { 0x000AE1, 0x000AE5 }, /* 0AE1-0AE5 */ { 0x000AF0, 0x000B00 }, /* 0AF0-0B00 */ { 0x000B04 }, /* 0B04 */ { 0x000B0D, 0x000B0E }, /* 0B0D-0B0E */ { 0x000B11, 0x000B12 }, /* 0B11-0B12 */ { 0x000B29 }, /* 0B29 */ { 0x000B31 }, /* 0B31 */ { 0x000B34, 0x000B35 }, /* 0B34-0B35 */ { 0x000B3A, 0x000B3B }, /* 0B3A-0B3B */ { 0x000B44, 0x000B46 }, /* 0B44-0B46 */ { 0x000B49, 0x000B4A }, /* 0B49-0B4A */ { 0x000B4E, 0x000B55 }, /* 0B4E-0B55 */ { 0x000B58, 0x000B5B }, /* 0B58-0B5B */ { 0x000B5E }, /* 0B5E */ { 0x000B62, 0x000B65 }, /* 0B62-0B65 */ { 0x000B71, 0x000B81 }, /* 0B71-0B81 */ { 0x000B84 }, /* 0B84 */ { 0x000B8B, 0x000B8D }, /* 0B8B-0B8D */ { 0x000B91 }, /* 0B91 */ { 0x000B96, 0x000B98 }, /* 0B96-0B98 */ { 0x000B9B }, /* 0B9B */ { 0x000B9D }, /* 0B9D */ { 0x000BA0, 0x000BA2 }, /* 0BA0-0BA2 */ { 0x000BA5, 0x000BA7 }, /* 0BA5-0BA7 */ { 0x000BAB, 0x000BAD }, /* 0BAB-0BAD */ { 0x000BB6 }, /* 0BB6 */ { 0x000BBA, 0x000BBD }, /* 0BBA-0BBD */ { 0x000BC3, 0x000BC5 }, /* 0BC3-0BC5 */ { 0x000BC9 }, /* 0BC9 */ { 0x000BCE, 0x000BD6 }, /* 0BCE-0BD6 */ { 0x000BD8, 0x000BE6 }, /* 0BD8-0BE6 */ { 0x000BF3, 0x000C00 }, /* 0BF3-0C00 */ { 0x000C04 }, /* 0C04 */ { 0x000C0D }, /* 0C0D */ { 0x000C11 }, /* 0C11 */ { 0x000C29 }, /* 0C29 */ { 0x000C34 }, /* 0C34 */ { 0x000C3A, 0x000C3D }, /* 0C3A-0C3D */ { 0x000C45 }, /* 0C45 */ { 0x000C49 }, /* 0C49 */ { 0x000C4E, 0x000C54 }, /* 0C4E-0C54 */ { 0x000C57, 0x000C5F }, /* 0C57-0C5F */ { 0x000C62, 0x000C65 }, /* 0C62-0C65 */ { 0x000C70, 0x000C81 }, /* 0C70-0C81 */ { 0x000C84 }, /* 0C84 */ { 0x000C8D }, /* 0C8D */ { 0x000C91 }, /* 0C91 */ { 0x000CA9 }, /* 0CA9 */ { 0x000CB4 }, /* 0CB4 */ { 0x000CBA, 0x000CBD }, /* 0CBA-0CBD */ { 0x000CC5 }, /* 0CC5 */ { 0x000CC9 }, /* 0CC9 */ { 0x000CCE, 0x000CD4 }, /* 0CCE-0CD4 */ { 0x000CD7, 0x000CDD }, /* 0CD7-0CDD */ { 0x000CDF }, /* 0CDF */ { 0x000CE2, 0x000CE5 }, /* 0CE2-0CE5 */ { 0x000CF0, 0x000D01 }, /* 0CF0-0D01 */ { 0x000D04 }, /* 0D04 */ { 0x000D0D }, /* 0D0D */ { 0x000D11 }, /* 0D11 */ { 0x000D29 }, /* 0D29 */ { 0x000D3A, 0x000D3D }, /* 0D3A-0D3D */ { 0x000D44, 0x000D45 }, /* 0D44-0D45 */ { 0x000D49 }, /* 0D49 */ { 0x000D4E, 0x000D56 }, /* 0D4E-0D56 */ { 0x000D58, 0x000D5F }, /* 0D58-0D5F */ { 0x000D62, 0x000D65 }, /* 0D62-0D65 */ { 0x000D70, 0x000D81 }, /* 0D70-0D81 */ { 0x000D84 }, /* 0D84 */ { 0x000D97, 0x000D99 }, /* 0D97-0D99 */ { 0x000DB2 }, /* 0DB2 */ { 0x000DBC }, /* 0DBC */ { 0x000DBE, 0x000DBF }, /* 0DBE-0DBF */ { 0x000DC7, 0x000DC9 }, /* 0DC7-0DC9 */ { 0x000DCB, 0x000DCE }, /* 0DCB-0DCE */ { 0x000DD5 }, /* 0DD5 */ { 0x000DD7 }, /* 0DD7 */ { 0x000DE0, 0x000DF1 }, /* 0DE0-0DF1 */ { 0x000DF5, 0x000E00 }, /* 0DF5-0E00 */ { 0x000E3B, 0x000E3E }, /* 0E3B-0E3E */ { 0x000E5C, 0x000E80 }, /* 0E5C-0E80 */ { 0x000E83 }, /* 0E83 */ { 0x000E85, 0x000E86 }, /* 0E85-0E86 */ { 0x000E89 }, /* 0E89 */ { 0x000E8B, 0x000E8C }, /* 0E8B-0E8C */ { 0x000E8E, 0x000E93 }, /* 0E8E-0E93 */ { 0x000E98 }, /* 0E98 */ { 0x000EA0 }, /* 0EA0 */ { 0x000EA4 }, /* 0EA4 */ { 0x000EA6 }, /* 0EA6 */ { 0x000EA8, 0x000EA9 }, /* 0EA8-0EA9 */ { 0x000EAC }, /* 0EAC */ { 0x000EBA }, /* 0EBA */ { 0x000EBE, 0x000EBF }, /* 0EBE-0EBF */ { 0x000EC5 }, /* 0EC5 */ { 0x000EC7 }, /* 0EC7 */ { 0x000ECE, 0x000ECF }, /* 0ECE-0ECF */ { 0x000EDA, 0x000EDB }, /* 0EDA-0EDB */ { 0x000EDE, 0x000EFF }, /* 0EDE-0EFF */ { 0x000F48 }, /* 0F48 */ { 0x000F6B, 0x000F70 }, /* 0F6B-0F70 */ { 0x000F8C, 0x000F8F }, /* 0F8C-0F8F */ { 0x000F98 }, /* 0F98 */ { 0x000FBD }, /* 0FBD */ { 0x000FCD, 0x000FCE }, /* 0FCD-0FCE */ { 0x000FD0, 0x000FFF }, /* 0FD0-0FFF */ { 0x001022 }, /* 1022 */ { 0x001028 }, /* 1028 */ { 0x00102B }, /* 102B */ { 0x001033, 0x001035 }, /* 1033-1035 */ { 0x00103A, 0x00103F }, /* 103A-103F */ { 0x00105A, 0x00109F }, /* 105A-109F */ { 0x0010C6, 0x0010CF }, /* 10C6-10CF */ { 0x0010F9, 0x0010FA }, /* 10F9-10FA */ { 0x0010FC, 0x0010FF }, /* 10FC-10FF */ { 0x00115A, 0x00115E }, /* 115A-115E */ { 0x0011A3, 0x0011A7 }, /* 11A3-11A7 */ { 0x0011FA, 0x0011FF }, /* 11FA-11FF */ { 0x001207 }, /* 1207 */ { 0x001247 }, /* 1247 */ { 0x001249 }, /* 1249 */ { 0x00124E, 0x00124F }, /* 124E-124F */ { 0x001257 }, /* 1257 */ { 0x001259 }, /* 1259 */ { 0x00125E, 0x00125F }, /* 125E-125F */ { 0x001287 }, /* 1287 */ { 0x001289 }, /* 1289 */ { 0x00128E, 0x00128F }, /* 128E-128F */ { 0x0012AF }, /* 12AF */ { 0x0012B1 }, /* 12B1 */ { 0x0012B6, 0x0012B7 }, /* 12B6-12B7 */ { 0x0012BF }, /* 12BF */ { 0x0012C1 }, /* 12C1 */ { 0x0012C6, 0x0012C7 }, /* 12C6-12C7 */ { 0x0012CF }, /* 12CF */ { 0x0012D7 }, /* 12D7 */ { 0x0012EF }, /* 12EF */ { 0x00130F }, /* 130F */ { 0x001311 }, /* 1311 */ { 0x001316, 0x001317 }, /* 1316-1317 */ { 0x00131F }, /* 131F */ { 0x001347 }, /* 1347 */ { 0x00135B, 0x001360 }, /* 135B-1360 */ { 0x00137D, 0x00139F }, /* 137D-139F */ { 0x0013F5, 0x001400 }, /* 13F5-1400 */ { 0x001677, 0x00167F }, /* 1677-167F */ { 0x00169D, 0x00169F }, /* 169D-169F */ { 0x0016F1, 0x0016FF }, /* 16F1-16FF */ { 0x00170D }, /* 170D */ { 0x001715, 0x00171F }, /* 1715-171F */ { 0x001737, 0x00173F }, /* 1737-173F */ { 0x001754, 0x00175F }, /* 1754-175F */ { 0x00176D }, /* 176D */ { 0x001771 }, /* 1771 */ { 0x001774, 0x00177F }, /* 1774-177F */ { 0x0017DD, 0x0017DF }, /* 17DD-17DF */ { 0x0017EA, 0x0017FF }, /* 17EA-17FF */ { 0x00180F }, /* 180F */ { 0x00181A, 0x00181F }, /* 181A-181F */ { 0x001878, 0x00187F }, /* 1878-187F */ { 0x0018AA, 0x001DFF }, /* 18AA-1DFF */ { 0x001E9C, 0x001E9F }, /* 1E9C-1E9F */ { 0x001EFA, 0x001EFF }, /* 1EFA-1EFF */ { 0x001F16, 0x001F17 }, /* 1F16-1F17 */ { 0x001F1E, 0x001F1F }, /* 1F1E-1F1F */ { 0x001F46, 0x001F47 }, /* 1F46-1F47 */ { 0x001F4E, 0x001F4F }, /* 1F4E-1F4F */ { 0x001F58 }, /* 1F58 */ { 0x001F5A }, /* 1F5A */ { 0x001F5C }, /* 1F5C */ { 0x001F5E }, /* 1F5E */ { 0x001F7E, 0x001F7F }, /* 1F7E-1F7F */ { 0x001FB5 }, /* 1FB5 */ { 0x001FC5 }, /* 1FC5 */ { 0x001FD4, 0x001FD5 }, /* 1FD4-1FD5 */ { 0x001FDC }, /* 1FDC */ { 0x001FF0, 0x001FF1 }, /* 1FF0-1FF1 */ { 0x001FF5 }, /* 1FF5 */ { 0x001FFF }, /* 1FFF */ { 0x002053, 0x002056 }, /* 2053-2056 */ { 0x002058, 0x00205E }, /* 2058-205E */ { 0x002064, 0x002069 }, /* 2064-2069 */ { 0x002072, 0x002073 }, /* 2072-2073 */ { 0x00208F, 0x00209F }, /* 208F-209F */ { 0x0020B2, 0x0020CF }, /* 20B2-20CF */ { 0x0020EB, 0x0020FF }, /* 20EB-20FF */ { 0x00213B, 0x00213C }, /* 213B-213C */ { 0x00214C, 0x002152 }, /* 214C-2152 */ { 0x002184, 0x00218F }, /* 2184-218F */ { 0x0023CF, 0x0023FF }, /* 23CF-23FF */ { 0x002427, 0x00243F }, /* 2427-243F */ { 0x00244B, 0x00245F }, /* 244B-245F */ { 0x0024FF }, /* 24FF */ { 0x002614, 0x002615 }, /* 2614-2615 */ { 0x002618 }, /* 2618 */ { 0x00267E, 0x00267F }, /* 267E-267F */ { 0x00268A, 0x002700 }, /* 268A-2700 */ { 0x002705 }, /* 2705 */ { 0x00270A, 0x00270B }, /* 270A-270B */ { 0x002728 }, /* 2728 */ { 0x00274C }, /* 274C */ { 0x00274E }, /* 274E */ { 0x002753, 0x002755 }, /* 2753-2755 */ { 0x002757 }, /* 2757 */ { 0x00275F, 0x002760 }, /* 275F-2760 */ { 0x002795, 0x002797 }, /* 2795-2797 */ { 0x0027B0 }, /* 27B0 */ { 0x0027BF, 0x0027CF }, /* 27BF-27CF */ { 0x0027EC, 0x0027EF }, /* 27EC-27EF */ { 0x002B00, 0x002E7F }, /* 2B00-2E7F */ { 0x002E9A }, /* 2E9A */ { 0x002EF4, 0x002EFF }, /* 2EF4-2EFF */ { 0x002FD6, 0x002FEF }, /* 2FD6-2FEF */ { 0x002FFC, 0x002FFF }, /* 2FFC-2FFF */ { 0x003040 }, /* 3040 */ { 0x003097, 0x003098 }, /* 3097-3098 */ { 0x003100, 0x003104 }, /* 3100-3104 */ { 0x00312D, 0x003130 }, /* 312D-3130 */ { 0x00318F }, /* 318F */ { 0x0031B8, 0x0031EF }, /* 31B8-31EF */ { 0x00321D, 0x00321F }, /* 321D-321F */ { 0x003244, 0x003250 }, /* 3244-3250 */ { 0x00327C, 0x00327E }, /* 327C-327E */ { 0x0032CC, 0x0032CF }, /* 32CC-32CF */ { 0x0032FF }, /* 32FF */ { 0x003377, 0x00337A }, /* 3377-337A */ { 0x0033DE, 0x0033DF }, /* 33DE-33DF */ { 0x0033FF }, /* 33FF */ { 0x004DB6, 0x004DFF }, /* 4DB6-4DFF */ { 0x009FA6, 0x009FFF }, /* 9FA6-9FFF */ { 0x00A48D, 0x00A48F }, /* A48D-A48F */ { 0x00A4C7, 0x00ABFF }, /* A4C7-ABFF */ { 0x00D7A4, 0x00D7FF }, /* D7A4-D7FF */ { 0x00FA2E, 0x00FA2F }, /* FA2E-FA2F */ { 0x00FA6B, 0x00FAFF }, /* FA6B-FAFF */ { 0x00FB07, 0x00FB12 }, /* FB07-FB12 */ { 0x00FB18, 0x00FB1C }, /* FB18-FB1C */ { 0x00FB37 }, /* FB37 */ { 0x00FB3D }, /* FB3D */ { 0x00FB3F }, /* FB3F */ { 0x00FB42 }, /* FB42 */ { 0x00FB45 }, /* FB45 */ { 0x00FBB2, 0x00FBD2 }, /* FBB2-FBD2 */ { 0x00FD40, 0x00FD4F }, /* FD40-FD4F */ { 0x00FD90, 0x00FD91 }, /* FD90-FD91 */ { 0x00FDC8, 0x00FDCF }, /* FDC8-FDCF */ { 0x00FDFD, 0x00FDFF }, /* FDFD-FDFF */ { 0x00FE10, 0x00FE1F }, /* FE10-FE1F */ { 0x00FE24, 0x00FE2F }, /* FE24-FE2F */ { 0x00FE47, 0x00FE48 }, /* FE47-FE48 */ { 0x00FE53 }, /* FE53 */ { 0x00FE67 }, /* FE67 */ { 0x00FE6C, 0x00FE6F }, /* FE6C-FE6F */ { 0x00FE75 }, /* FE75 */ { 0x00FEFD, 0x00FEFE }, /* FEFD-FEFE */ { 0x00FF00 }, /* FF00 */ { 0x00FFBF, 0x00FFC1 }, /* FFBF-FFC1 */ { 0x00FFC8, 0x00FFC9 }, /* FFC8-FFC9 */ { 0x00FFD0, 0x00FFD1 }, /* FFD0-FFD1 */ { 0x00FFD8, 0x00FFD9 }, /* FFD8-FFD9 */ { 0x00FFDD, 0x00FFDF }, /* FFDD-FFDF */ { 0x00FFE7 }, /* FFE7 */ { 0x00FFEF, 0x00FFF8 }, /* FFEF-FFF8 */ { 0x010000, 0x0102FF }, /* 10000-102FF */ { 0x01031F }, /* 1031F */ { 0x010324, 0x01032F }, /* 10324-1032F */ { 0x01034B, 0x0103FF }, /* 1034B-103FF */ { 0x010426, 0x010427 }, /* 10426-10427 */ { 0x01044E, 0x01CFFF }, /* 1044E-1CFFF */ { 0x01D0F6, 0x01D0FF }, /* 1D0F6-1D0FF */ { 0x01D127, 0x01D129 }, /* 1D127-1D129 */ { 0x01D1DE, 0x01D3FF }, /* 1D1DE-1D3FF */ { 0x01D455 }, /* 1D455 */ { 0x01D49D }, /* 1D49D */ { 0x01D4A0, 0x01D4A1 }, /* 1D4A0-1D4A1 */ { 0x01D4A3, 0x01D4A4 }, /* 1D4A3-1D4A4 */ { 0x01D4A7, 0x01D4A8 }, /* 1D4A7-1D4A8 */ { 0x01D4AD }, /* 1D4AD */ { 0x01D4BA }, /* 1D4BA */ { 0x01D4BC }, /* 1D4BC */ { 0x01D4C1 }, /* 1D4C1 */ { 0x01D4C4 }, /* 1D4C4 */ { 0x01D506 }, /* 1D506 */ { 0x01D50B, 0x01D50C }, /* 1D50B-1D50C */ { 0x01D515 }, /* 1D515 */ { 0x01D51D }, /* 1D51D */ { 0x01D53A }, /* 1D53A */ { 0x01D53F }, /* 1D53F */ { 0x01D545 }, /* 1D545 */ { 0x01D547, 0x01D549 }, /* 1D547-1D549 */ { 0x01D551 }, /* 1D551 */ { 0x01D6A4, 0x01D6A7 }, /* 1D6A4-1D6A7 */ { 0x01D7CA, 0x01D7CD }, /* 1D7CA-1D7CD */ { 0x01D800, 0x01FFFD }, /* 1D800-1FFFD */ { 0x02A6D7, 0x02F7FF }, /* 2A6D7-2F7FF */ { 0x02FA1E, 0x02FFFD }, /* 2FA1E-2FFFD */ { 0x030000, 0x03FFFD }, /* 30000-3FFFD */ { 0x040000, 0x04FFFD }, /* 40000-4FFFD */ { 0x050000, 0x05FFFD }, /* 50000-5FFFD */ { 0x060000, 0x06FFFD }, /* 60000-6FFFD */ { 0x070000, 0x07FFFD }, /* 70000-7FFFD */ { 0x080000, 0x08FFFD }, /* 80000-8FFFD */ { 0x090000, 0x09FFFD }, /* 90000-9FFFD */ { 0x0A0000, 0x0AFFFD }, /* A0000-AFFFD */ { 0x0B0000, 0x0BFFFD }, /* B0000-BFFFD */ { 0x0C0000, 0x0CFFFD }, /* C0000-CFFFD */ { 0x0D0000, 0x0DFFFD }, /* D0000-DFFFD */ { 0x0E0000 }, /* E0000 */ { 0x0E0002, 0x0E001F }, /* E0002-E001F */ { 0x0E0080, 0x0EFFFD }, /* E0080-EFFFD */ { 0 }, }; /* * E0080-EFFFD * */ const Stringprep_table_element stringprep_rfc3454_B_1[] = { { 0x0000AD }, /* 00AD; ; Map to nothing */ { 0x00034F }, /* 034F; ; Map to nothing */ { 0x001806 }, /* 1806; ; Map to nothing */ { 0x00180B }, /* 180B; ; Map to nothing */ { 0x00180C }, /* 180C; ; Map to nothing */ { 0x00180D }, /* 180D; ; Map to nothing */ { 0x00200B }, /* 200B; ; Map to nothing */ { 0x00200C }, /* 200C; ; Map to nothing */ { 0x00200D }, /* 200D; ; Map to nothing */ { 0x002060 }, /* 2060; ; Map to nothing */ { 0x00FE00 }, /* FE00; ; Map to nothing */ { 0x00FE01 }, /* FE01; ; Map to nothing */ { 0x00FE02 }, /* FE02; ; Map to nothing */ { 0x00FE03 }, /* FE03; ; Map to nothing */ { 0x00FE04 }, /* FE04; ; Map to nothing */ { 0x00FE05 }, /* FE05; ; Map to nothing */ { 0x00FE06 }, /* FE06; ; Map to nothing */ { 0x00FE07 }, /* FE07; ; Map to nothing */ { 0x00FE08 }, /* FE08; ; Map to nothing */ { 0x00FE09 }, /* FE09; ; Map to nothing */ { 0x00FE0A }, /* FE0A; ; Map to nothing */ { 0x00FE0B }, /* FE0B; ; Map to nothing */ { 0x00FE0C }, /* FE0C; ; Map to nothing */ { 0x00FE0D }, /* FE0D; ; Map to nothing */ { 0x00FE0E }, /* FE0E; ; Map to nothing */ { 0x00FE0F }, /* FE0F; ; Map to nothing */ { 0x00FEFF }, /* FEFF; ; Map to nothing */ { 0 }, }; /* * FEFF; ; Map to nothing * */ const Stringprep_table_element stringprep_rfc3454_B_2[] = { { 0x000041, 0, { 0x000061 }}, /* 0041; 0061; Case map */ { 0x000042, 0, { 0x000062 }}, /* 0042; 0062; Case map */ { 0x000043, 0, { 0x000063 }}, /* 0043; 0063; Case map */ { 0x000044, 0, { 0x000064 }}, /* 0044; 0064; Case map */ { 0x000045, 0, { 0x000065 }}, /* 0045; 0065; Case map */ { 0x000046, 0, { 0x000066 }}, /* 0046; 0066; Case map */ { 0x000047, 0, { 0x000067 }}, /* 0047; 0067; Case map */ { 0x000048, 0, { 0x000068 }}, /* 0048; 0068; Case map */ { 0x000049, 0, { 0x000069 }}, /* 0049; 0069; Case map */ { 0x00004A, 0, { 0x00006A }}, /* 004A; 006A; Case map */ { 0x00004B, 0, { 0x00006B }}, /* 004B; 006B; Case map */ { 0x00004C, 0, { 0x00006C }}, /* 004C; 006C; Case map */ { 0x00004D, 0, { 0x00006D }}, /* 004D; 006D; Case map */ { 0x00004E, 0, { 0x00006E }}, /* 004E; 006E; Case map */ { 0x00004F, 0, { 0x00006F }}, /* 004F; 006F; Case map */ { 0x000050, 0, { 0x000070 }}, /* 0050; 0070; Case map */ { 0x000051, 0, { 0x000071 }}, /* 0051; 0071; Case map */ { 0x000052, 0, { 0x000072 }}, /* 0052; 0072; Case map */ { 0x000053, 0, { 0x000073 }}, /* 0053; 0073; Case map */ { 0x000054, 0, { 0x000074 }}, /* 0054; 0074; Case map */ { 0x000055, 0, { 0x000075 }}, /* 0055; 0075; Case map */ { 0x000056, 0, { 0x000076 }}, /* 0056; 0076; Case map */ { 0x000057, 0, { 0x000077 }}, /* 0057; 0077; Case map */ { 0x000058, 0, { 0x000078 }}, /* 0058; 0078; Case map */ { 0x000059, 0, { 0x000079 }}, /* 0059; 0079; Case map */ { 0x00005A, 0, { 0x00007A }}, /* 005A; 007A; Case map */ { 0x0000B5, 0, { 0x0003BC }}, /* 00B5; 03BC; Case map */ { 0x0000C0, 0, { 0x0000E0 }}, /* 00C0; 00E0; Case map */ { 0x0000C1, 0, { 0x0000E1 }}, /* 00C1; 00E1; Case map */ { 0x0000C2, 0, { 0x0000E2 }}, /* 00C2; 00E2; Case map */ { 0x0000C3, 0, { 0x0000E3 }}, /* 00C3; 00E3; Case map */ { 0x0000C4, 0, { 0x0000E4 }}, /* 00C4; 00E4; Case map */ { 0x0000C5, 0, { 0x0000E5 }}, /* 00C5; 00E5; Case map */ { 0x0000C6, 0, { 0x0000E6 }}, /* 00C6; 00E6; Case map */ { 0x0000C7, 0, { 0x0000E7 }}, /* 00C7; 00E7; Case map */ { 0x0000C8, 0, { 0x0000E8 }}, /* 00C8; 00E8; Case map */ { 0x0000C9, 0, { 0x0000E9 }}, /* 00C9; 00E9; Case map */ { 0x0000CA, 0, { 0x0000EA }}, /* 00CA; 00EA; Case map */ { 0x0000CB, 0, { 0x0000EB }}, /* 00CB; 00EB; Case map */ { 0x0000CC, 0, { 0x0000EC }}, /* 00CC; 00EC; Case map */ { 0x0000CD, 0, { 0x0000ED }}, /* 00CD; 00ED; Case map */ { 0x0000CE, 0, { 0x0000EE }}, /* 00CE; 00EE; Case map */ { 0x0000CF, 0, { 0x0000EF }}, /* 00CF; 00EF; Case map */ { 0x0000D0, 0, { 0x0000F0 }}, /* 00D0; 00F0; Case map */ { 0x0000D1, 0, { 0x0000F1 }}, /* 00D1; 00F1; Case map */ { 0x0000D2, 0, { 0x0000F2 }}, /* 00D2; 00F2; Case map */ { 0x0000D3, 0, { 0x0000F3 }}, /* 00D3; 00F3; Case map */ { 0x0000D4, 0, { 0x0000F4 }}, /* 00D4; 00F4; Case map */ { 0x0000D5, 0, { 0x0000F5 }}, /* 00D5; 00F5; Case map */ { 0x0000D6, 0, { 0x0000F6 }}, /* 00D6; 00F6; Case map */ { 0x0000D8, 0, { 0x0000F8 }}, /* 00D8; 00F8; Case map */ { 0x0000D9, 0, { 0x0000F9 }}, /* 00D9; 00F9; Case map */ { 0x0000DA, 0, { 0x0000FA }}, /* 00DA; 00FA; Case map */ { 0x0000DB, 0, { 0x0000FB }}, /* 00DB; 00FB; Case map */ { 0x0000DC, 0, { 0x0000FC }}, /* 00DC; 00FC; Case map */ { 0x0000DD, 0, { 0x0000FD }}, /* 00DD; 00FD; Case map */ { 0x0000DE, 0, { 0x0000FE }}, /* 00DE; 00FE; Case map */ { 0x0000DF, 0, { 0x000073, /* 00DF; 0073 0073; Case map */ 0x000073 }}, { 0x000100, 0, { 0x000101 }}, /* 0100; 0101; Case map */ { 0x000102, 0, { 0x000103 }}, /* 0102; 0103; Case map */ { 0x000104, 0, { 0x000105 }}, /* 0104; 0105; Case map */ { 0x000106, 0, { 0x000107 }}, /* 0106; 0107; Case map */ { 0x000108, 0, { 0x000109 }}, /* 0108; 0109; Case map */ { 0x00010A, 0, { 0x00010B }}, /* 010A; 010B; Case map */ { 0x00010C, 0, { 0x00010D }}, /* 010C; 010D; Case map */ { 0x00010E, 0, { 0x00010F }}, /* 010E; 010F; Case map */ { 0x000110, 0, { 0x000111 }}, /* 0110; 0111; Case map */ { 0x000112, 0, { 0x000113 }}, /* 0112; 0113; Case map */ { 0x000114, 0, { 0x000115 }}, /* 0114; 0115; Case map */ { 0x000116, 0, { 0x000117 }}, /* 0116; 0117; Case map */ { 0x000118, 0, { 0x000119 }}, /* 0118; 0119; Case map */ { 0x00011A, 0, { 0x00011B }}, /* 011A; 011B; Case map */ { 0x00011C, 0, { 0x00011D }}, /* 011C; 011D; Case map */ { 0x00011E, 0, { 0x00011F }}, /* 011E; 011F; Case map */ { 0x000120, 0, { 0x000121 }}, /* 0120; 0121; Case map */ { 0x000122, 0, { 0x000123 }}, /* 0122; 0123; Case map */ { 0x000124, 0, { 0x000125 }}, /* 0124; 0125; Case map */ { 0x000126, 0, { 0x000127 }}, /* 0126; 0127; Case map */ { 0x000128, 0, { 0x000129 }}, /* 0128; 0129; Case map */ { 0x00012A, 0, { 0x00012B }}, /* 012A; 012B; Case map */ { 0x00012C, 0, { 0x00012D }}, /* 012C; 012D; Case map */ { 0x00012E, 0, { 0x00012F }}, /* 012E; 012F; Case map */ { 0x000130, 0, { 0x000069, /* 0130; 0069 0307; Case map */ 0x000307 }}, { 0x000132, 0, { 0x000133 }}, /* 0132; 0133; Case map */ { 0x000134, 0, { 0x000135 }}, /* 0134; 0135; Case map */ { 0x000136, 0, { 0x000137 }}, /* 0136; 0137; Case map */ { 0x000139, 0, { 0x00013A }}, /* 0139; 013A; Case map */ { 0x00013B, 0, { 0x00013C }}, /* 013B; 013C; Case map */ { 0x00013D, 0, { 0x00013E }}, /* 013D; 013E; Case map */ { 0x00013F, 0, { 0x000140 }}, /* 013F; 0140; Case map */ { 0x000141, 0, { 0x000142 }}, /* 0141; 0142; Case map */ { 0x000143, 0, { 0x000144 }}, /* 0143; 0144; Case map */ { 0x000145, 0, { 0x000146 }}, /* 0145; 0146; Case map */ { 0x000147, 0, { 0x000148 }}, /* 0147; 0148; Case map */ { 0x000149, 0, { 0x0002BC, /* 0149; 02BC 006E; Case map */ 0x00006E }}, { 0x00014A, 0, { 0x00014B }}, /* 014A; 014B; Case map */ { 0x00014C, 0, { 0x00014D }}, /* 014C; 014D; Case map */ { 0x00014E, 0, { 0x00014F }}, /* 014E; 014F; Case map */ { 0x000150, 0, { 0x000151 }}, /* 0150; 0151; Case map */ { 0x000152, 0, { 0x000153 }}, /* 0152; 0153; Case map */ { 0x000154, 0, { 0x000155 }}, /* 0154; 0155; Case map */ { 0x000156, 0, { 0x000157 }}, /* 0156; 0157; Case map */ { 0x000158, 0, { 0x000159 }}, /* 0158; 0159; Case map */ { 0x00015A, 0, { 0x00015B }}, /* 015A; 015B; Case map */ { 0x00015C, 0, { 0x00015D }}, /* 015C; 015D; Case map */ { 0x00015E, 0, { 0x00015F }}, /* 015E; 015F; Case map */ { 0x000160, 0, { 0x000161 }}, /* 0160; 0161; Case map */ { 0x000162, 0, { 0x000163 }}, /* 0162; 0163; Case map */ { 0x000164, 0, { 0x000165 }}, /* 0164; 0165; Case map */ { 0x000166, 0, { 0x000167 }}, /* 0166; 0167; Case map */ { 0x000168, 0, { 0x000169 }}, /* 0168; 0169; Case map */ { 0x00016A, 0, { 0x00016B }}, /* 016A; 016B; Case map */ { 0x00016C, 0, { 0x00016D }}, /* 016C; 016D; Case map */ { 0x00016E, 0, { 0x00016F }}, /* 016E; 016F; Case map */ { 0x000170, 0, { 0x000171 }}, /* 0170; 0171; Case map */ { 0x000172, 0, { 0x000173 }}, /* 0172; 0173; Case map */ { 0x000174, 0, { 0x000175 }}, /* 0174; 0175; Case map */ { 0x000176, 0, { 0x000177 }}, /* 0176; 0177; Case map */ { 0x000178, 0, { 0x0000FF }}, /* 0178; 00FF; Case map */ { 0x000179, 0, { 0x00017A }}, /* 0179; 017A; Case map */ { 0x00017B, 0, { 0x00017C }}, /* 017B; 017C; Case map */ { 0x00017D, 0, { 0x00017E }}, /* 017D; 017E; Case map */ { 0x00017F, 0, { 0x000073 }}, /* 017F; 0073; Case map */ { 0x000181, 0, { 0x000253 }}, /* 0181; 0253; Case map */ { 0x000182, 0, { 0x000183 }}, /* 0182; 0183; Case map */ { 0x000184, 0, { 0x000185 }}, /* 0184; 0185; Case map */ { 0x000186, 0, { 0x000254 }}, /* 0186; 0254; Case map */ { 0x000187, 0, { 0x000188 }}, /* 0187; 0188; Case map */ { 0x000189, 0, { 0x000256 }}, /* 0189; 0256; Case map */ { 0x00018A, 0, { 0x000257 }}, /* 018A; 0257; Case map */ { 0x00018B, 0, { 0x00018C }}, /* 018B; 018C; Case map */ { 0x00018E, 0, { 0x0001DD }}, /* 018E; 01DD; Case map */ { 0x00018F, 0, { 0x000259 }}, /* 018F; 0259; Case map */ { 0x000190, 0, { 0x00025B }}, /* 0190; 025B; Case map */ { 0x000191, 0, { 0x000192 }}, /* 0191; 0192; Case map */ { 0x000193, 0, { 0x000260 }}, /* 0193; 0260; Case map */ { 0x000194, 0, { 0x000263 }}, /* 0194; 0263; Case map */ { 0x000196, 0, { 0x000269 }}, /* 0196; 0269; Case map */ { 0x000197, 0, { 0x000268 }}, /* 0197; 0268; Case map */ { 0x000198, 0, { 0x000199 }}, /* 0198; 0199; Case map */ { 0x00019C, 0, { 0x00026F }}, /* 019C; 026F; Case map */ { 0x00019D, 0, { 0x000272 }}, /* 019D; 0272; Case map */ { 0x00019F, 0, { 0x000275 }}, /* 019F; 0275; Case map */ { 0x0001A0, 0, { 0x0001A1 }}, /* 01A0; 01A1; Case map */ { 0x0001A2, 0, { 0x0001A3 }}, /* 01A2; 01A3; Case map */ { 0x0001A4, 0, { 0x0001A5 }}, /* 01A4; 01A5; Case map */ { 0x0001A6, 0, { 0x000280 }}, /* 01A6; 0280; Case map */ { 0x0001A7, 0, { 0x0001A8 }}, /* 01A7; 01A8; Case map */ { 0x0001A9, 0, { 0x000283 }}, /* 01A9; 0283; Case map */ { 0x0001AC, 0, { 0x0001AD }}, /* 01AC; 01AD; Case map */ { 0x0001AE, 0, { 0x000288 }}, /* 01AE; 0288; Case map */ { 0x0001AF, 0, { 0x0001B0 }}, /* 01AF; 01B0; Case map */ { 0x0001B1, 0, { 0x00028A }}, /* 01B1; 028A; Case map */ { 0x0001B2, 0, { 0x00028B }}, /* 01B2; 028B; Case map */ { 0x0001B3, 0, { 0x0001B4 }}, /* 01B3; 01B4; Case map */ { 0x0001B5, 0, { 0x0001B6 }}, /* 01B5; 01B6; Case map */ { 0x0001B7, 0, { 0x000292 }}, /* 01B7; 0292; Case map */ { 0x0001B8, 0, { 0x0001B9 }}, /* 01B8; 01B9; Case map */ { 0x0001BC, 0, { 0x0001BD }}, /* 01BC; 01BD; Case map */ { 0x0001C4, 0, { 0x0001C6 }}, /* 01C4; 01C6; Case map */ { 0x0001C5, 0, { 0x0001C6 }}, /* 01C5; 01C6; Case map */ { 0x0001C7, 0, { 0x0001C9 }}, /* 01C7; 01C9; Case map */ { 0x0001C8, 0, { 0x0001C9 }}, /* 01C8; 01C9; Case map */ { 0x0001CA, 0, { 0x0001CC }}, /* 01CA; 01CC; Case map */ { 0x0001CB, 0, { 0x0001CC }}, /* 01CB; 01CC; Case map */ { 0x0001CD, 0, { 0x0001CE }}, /* 01CD; 01CE; Case map */ { 0x0001CF, 0, { 0x0001D0 }}, /* 01CF; 01D0; Case map */ { 0x0001D1, 0, { 0x0001D2 }}, /* 01D1; 01D2; Case map */ { 0x0001D3, 0, { 0x0001D4 }}, /* 01D3; 01D4; Case map */ { 0x0001D5, 0, { 0x0001D6 }}, /* 01D5; 01D6; Case map */ { 0x0001D7, 0, { 0x0001D8 }}, /* 01D7; 01D8; Case map */ { 0x0001D9, 0, { 0x0001DA }}, /* 01D9; 01DA; Case map */ { 0x0001DB, 0, { 0x0001DC }}, /* 01DB; 01DC; Case map */ { 0x0001DE, 0, { 0x0001DF }}, /* 01DE; 01DF; Case map */ { 0x0001E0, 0, { 0x0001E1 }}, /* 01E0; 01E1; Case map */ { 0x0001E2, 0, { 0x0001E3 }}, /* 01E2; 01E3; Case map */ { 0x0001E4, 0, { 0x0001E5 }}, /* 01E4; 01E5; Case map */ { 0x0001E6, 0, { 0x0001E7 }}, /* 01E6; 01E7; Case map */ { 0x0001E8, 0, { 0x0001E9 }}, /* 01E8; 01E9; Case map */ { 0x0001EA, 0, { 0x0001EB }}, /* 01EA; 01EB; Case map */ { 0x0001EC, 0, { 0x0001ED }}, /* 01EC; 01ED; Case map */ { 0x0001EE, 0, { 0x0001EF }}, /* 01EE; 01EF; Case map */ { 0x0001F0, 0, { 0x00006A, /* 01F0; 006A 030C; Case map */ 0x00030C }}, { 0x0001F1, 0, { 0x0001F3 }}, /* 01F1; 01F3; Case map */ { 0x0001F2, 0, { 0x0001F3 }}, /* 01F2; 01F3; Case map */ { 0x0001F4, 0, { 0x0001F5 }}, /* 01F4; 01F5; Case map */ { 0x0001F6, 0, { 0x000195 }}, /* 01F6; 0195; Case map */ { 0x0001F7, 0, { 0x0001BF }}, /* 01F7; 01BF; Case map */ { 0x0001F8, 0, { 0x0001F9 }}, /* 01F8; 01F9; Case map */ { 0x0001FA, 0, { 0x0001FB }}, /* 01FA; 01FB; Case map */ { 0x0001FC, 0, { 0x0001FD }}, /* 01FC; 01FD; Case map */ { 0x0001FE, 0, { 0x0001FF }}, /* 01FE; 01FF; Case map */ { 0x000200, 0, { 0x000201 }}, /* 0200; 0201; Case map */ { 0x000202, 0, { 0x000203 }}, /* 0202; 0203; Case map */ { 0x000204, 0, { 0x000205 }}, /* 0204; 0205; Case map */ { 0x000206, 0, { 0x000207 }}, /* 0206; 0207; Case map */ { 0x000208, 0, { 0x000209 }}, /* 0208; 0209; Case map */ { 0x00020A, 0, { 0x00020B }}, /* 020A; 020B; Case map */ { 0x00020C, 0, { 0x00020D }}, /* 020C; 020D; Case map */ { 0x00020E, 0, { 0x00020F }}, /* 020E; 020F; Case map */ { 0x000210, 0, { 0x000211 }}, /* 0210; 0211; Case map */ { 0x000212, 0, { 0x000213 }}, /* 0212; 0213; Case map */ { 0x000214, 0, { 0x000215 }}, /* 0214; 0215; Case map */ { 0x000216, 0, { 0x000217 }}, /* 0216; 0217; Case map */ { 0x000218, 0, { 0x000219 }}, /* 0218; 0219; Case map */ { 0x00021A, 0, { 0x00021B }}, /* 021A; 021B; Case map */ { 0x00021C, 0, { 0x00021D }}, /* 021C; 021D; Case map */ { 0x00021E, 0, { 0x00021F }}, /* 021E; 021F; Case map */ { 0x000220, 0, { 0x00019E }}, /* 0220; 019E; Case map */ { 0x000222, 0, { 0x000223 }}, /* 0222; 0223; Case map */ { 0x000224, 0, { 0x000225 }}, /* 0224; 0225; Case map */ { 0x000226, 0, { 0x000227 }}, /* 0226; 0227; Case map */ { 0x000228, 0, { 0x000229 }}, /* 0228; 0229; Case map */ { 0x00022A, 0, { 0x00022B }}, /* 022A; 022B; Case map */ { 0x00022C, 0, { 0x00022D }}, /* 022C; 022D; Case map */ { 0x00022E, 0, { 0x00022F }}, /* 022E; 022F; Case map */ { 0x000230, 0, { 0x000231 }}, /* 0230; 0231; Case map */ { 0x000232, 0, { 0x000233 }}, /* 0232; 0233; Case map */ { 0x000345, 0, { 0x0003B9 }}, /* 0345; 03B9; Case map */ { 0x00037A, 0, { 0x000020, /* 037A; 0020 03B9; Additional folding */ 0x0003B9 }}, { 0x000386, 0, { 0x0003AC }}, /* 0386; 03AC; Case map */ { 0x000388, 0, { 0x0003AD }}, /* 0388; 03AD; Case map */ { 0x000389, 0, { 0x0003AE }}, /* 0389; 03AE; Case map */ { 0x00038A, 0, { 0x0003AF }}, /* 038A; 03AF; Case map */ { 0x00038C, 0, { 0x0003CC }}, /* 038C; 03CC; Case map */ { 0x00038E, 0, { 0x0003CD }}, /* 038E; 03CD; Case map */ { 0x00038F, 0, { 0x0003CE }}, /* 038F; 03CE; Case map */ { 0x000390, 0, { 0x0003B9, /* 0390; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x000391, 0, { 0x0003B1 }}, /* 0391; 03B1; Case map */ { 0x000392, 0, { 0x0003B2 }}, /* 0392; 03B2; Case map */ { 0x000393, 0, { 0x0003B3 }}, /* 0393; 03B3; Case map */ { 0x000394, 0, { 0x0003B4 }}, /* 0394; 03B4; Case map */ { 0x000395, 0, { 0x0003B5 }}, /* 0395; 03B5; Case map */ { 0x000396, 0, { 0x0003B6 }}, /* 0396; 03B6; Case map */ { 0x000397, 0, { 0x0003B7 }}, /* 0397; 03B7; Case map */ { 0x000398, 0, { 0x0003B8 }}, /* 0398; 03B8; Case map */ { 0x000399, 0, { 0x0003B9 }}, /* 0399; 03B9; Case map */ { 0x00039A, 0, { 0x0003BA }}, /* 039A; 03BA; Case map */ { 0x00039B, 0, { 0x0003BB }}, /* 039B; 03BB; Case map */ { 0x00039C, 0, { 0x0003BC }}, /* 039C; 03BC; Case map */ { 0x00039D, 0, { 0x0003BD }}, /* 039D; 03BD; Case map */ { 0x00039E, 0, { 0x0003BE }}, /* 039E; 03BE; Case map */ { 0x00039F, 0, { 0x0003BF }}, /* 039F; 03BF; Case map */ { 0x0003A0, 0, { 0x0003C0 }}, /* 03A0; 03C0; Case map */ { 0x0003A1, 0, { 0x0003C1 }}, /* 03A1; 03C1; Case map */ { 0x0003A3, 0, { 0x0003C3 }}, /* 03A3; 03C3; Case map */ { 0x0003A4, 0, { 0x0003C4 }}, /* 03A4; 03C4; Case map */ { 0x0003A5, 0, { 0x0003C5 }}, /* 03A5; 03C5; Case map */ { 0x0003A6, 0, { 0x0003C6 }}, /* 03A6; 03C6; Case map */ { 0x0003A7, 0, { 0x0003C7 }}, /* 03A7; 03C7; Case map */ { 0x0003A8, 0, { 0x0003C8 }}, /* 03A8; 03C8; Case map */ { 0x0003A9, 0, { 0x0003C9 }}, /* 03A9; 03C9; Case map */ { 0x0003AA, 0, { 0x0003CA }}, /* 03AA; 03CA; Case map */ { 0x0003AB, 0, { 0x0003CB }}, /* 03AB; 03CB; Case map */ { 0x0003B0, 0, { 0x0003C5, /* 03B0; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x0003C2, 0, { 0x0003C3 }}, /* 03C2; 03C3; Case map */ { 0x0003D0, 0, { 0x0003B2 }}, /* 03D0; 03B2; Case map */ { 0x0003D1, 0, { 0x0003B8 }}, /* 03D1; 03B8; Case map */ { 0x0003D2, 0, { 0x0003C5 }}, /* 03D2; 03C5; Additional folding */ { 0x0003D3, 0, { 0x0003CD }}, /* 03D3; 03CD; Additional folding */ { 0x0003D4, 0, { 0x0003CB }}, /* 03D4; 03CB; Additional folding */ { 0x0003D5, 0, { 0x0003C6 }}, /* 03D5; 03C6; Case map */ { 0x0003D6, 0, { 0x0003C0 }}, /* 03D6; 03C0; Case map */ { 0x0003D8, 0, { 0x0003D9 }}, /* 03D8; 03D9; Case map */ { 0x0003DA, 0, { 0x0003DB }}, /* 03DA; 03DB; Case map */ { 0x0003DC, 0, { 0x0003DD }}, /* 03DC; 03DD; Case map */ { 0x0003DE, 0, { 0x0003DF }}, /* 03DE; 03DF; Case map */ { 0x0003E0, 0, { 0x0003E1 }}, /* 03E0; 03E1; Case map */ { 0x0003E2, 0, { 0x0003E3 }}, /* 03E2; 03E3; Case map */ { 0x0003E4, 0, { 0x0003E5 }}, /* 03E4; 03E5; Case map */ { 0x0003E6, 0, { 0x0003E7 }}, /* 03E6; 03E7; Case map */ { 0x0003E8, 0, { 0x0003E9 }}, /* 03E8; 03E9; Case map */ { 0x0003EA, 0, { 0x0003EB }}, /* 03EA; 03EB; Case map */ { 0x0003EC, 0, { 0x0003ED }}, /* 03EC; 03ED; Case map */ { 0x0003EE, 0, { 0x0003EF }}, /* 03EE; 03EF; Case map */ { 0x0003F0, 0, { 0x0003BA }}, /* 03F0; 03BA; Case map */ { 0x0003F1, 0, { 0x0003C1 }}, /* 03F1; 03C1; Case map */ { 0x0003F2, 0, { 0x0003C3 }}, /* 03F2; 03C3; Case map */ { 0x0003F4, 0, { 0x0003B8 }}, /* 03F4; 03B8; Case map */ { 0x0003F5, 0, { 0x0003B5 }}, /* 03F5; 03B5; Case map */ { 0x000400, 0, { 0x000450 }}, /* 0400; 0450; Case map */ { 0x000401, 0, { 0x000451 }}, /* 0401; 0451; Case map */ { 0x000402, 0, { 0x000452 }}, /* 0402; 0452; Case map */ { 0x000403, 0, { 0x000453 }}, /* 0403; 0453; Case map */ { 0x000404, 0, { 0x000454 }}, /* 0404; 0454; Case map */ { 0x000405, 0, { 0x000455 }}, /* 0405; 0455; Case map */ { 0x000406, 0, { 0x000456 }}, /* 0406; 0456; Case map */ { 0x000407, 0, { 0x000457 }}, /* 0407; 0457; Case map */ { 0x000408, 0, { 0x000458 }}, /* 0408; 0458; Case map */ { 0x000409, 0, { 0x000459 }}, /* 0409; 0459; Case map */ { 0x00040A, 0, { 0x00045A }}, /* 040A; 045A; Case map */ { 0x00040B, 0, { 0x00045B }}, /* 040B; 045B; Case map */ { 0x00040C, 0, { 0x00045C }}, /* 040C; 045C; Case map */ { 0x00040D, 0, { 0x00045D }}, /* 040D; 045D; Case map */ { 0x00040E, 0, { 0x00045E }}, /* 040E; 045E; Case map */ { 0x00040F, 0, { 0x00045F }}, /* 040F; 045F; Case map */ { 0x000410, 0, { 0x000430 }}, /* 0410; 0430; Case map */ { 0x000411, 0, { 0x000431 }}, /* 0411; 0431; Case map */ { 0x000412, 0, { 0x000432 }}, /* 0412; 0432; Case map */ { 0x000413, 0, { 0x000433 }}, /* 0413; 0433; Case map */ { 0x000414, 0, { 0x000434 }}, /* 0414; 0434; Case map */ { 0x000415, 0, { 0x000435 }}, /* 0415; 0435; Case map */ { 0x000416, 0, { 0x000436 }}, /* 0416; 0436; Case map */ { 0x000417, 0, { 0x000437 }}, /* 0417; 0437; Case map */ { 0x000418, 0, { 0x000438 }}, /* 0418; 0438; Case map */ { 0x000419, 0, { 0x000439 }}, /* 0419; 0439; Case map */ { 0x00041A, 0, { 0x00043A }}, /* 041A; 043A; Case map */ { 0x00041B, 0, { 0x00043B }}, /* 041B; 043B; Case map */ { 0x00041C, 0, { 0x00043C }}, /* 041C; 043C; Case map */ { 0x00041D, 0, { 0x00043D }}, /* 041D; 043D; Case map */ { 0x00041E, 0, { 0x00043E }}, /* 041E; 043E; Case map */ { 0x00041F, 0, { 0x00043F }}, /* 041F; 043F; Case map */ { 0x000420, 0, { 0x000440 }}, /* 0420; 0440; Case map */ { 0x000421, 0, { 0x000441 }}, /* 0421; 0441; Case map */ { 0x000422, 0, { 0x000442 }}, /* 0422; 0442; Case map */ { 0x000423, 0, { 0x000443 }}, /* 0423; 0443; Case map */ { 0x000424, 0, { 0x000444 }}, /* 0424; 0444; Case map */ { 0x000425, 0, { 0x000445 }}, /* 0425; 0445; Case map */ { 0x000426, 0, { 0x000446 }}, /* 0426; 0446; Case map */ { 0x000427, 0, { 0x000447 }}, /* 0427; 0447; Case map */ { 0x000428, 0, { 0x000448 }}, /* 0428; 0448; Case map */ { 0x000429, 0, { 0x000449 }}, /* 0429; 0449; Case map */ { 0x00042A, 0, { 0x00044A }}, /* 042A; 044A; Case map */ { 0x00042B, 0, { 0x00044B }}, /* 042B; 044B; Case map */ { 0x00042C, 0, { 0x00044C }}, /* 042C; 044C; Case map */ { 0x00042D, 0, { 0x00044D }}, /* 042D; 044D; Case map */ { 0x00042E, 0, { 0x00044E }}, /* 042E; 044E; Case map */ { 0x00042F, 0, { 0x00044F }}, /* 042F; 044F; Case map */ { 0x000460, 0, { 0x000461 }}, /* 0460; 0461; Case map */ { 0x000462, 0, { 0x000463 }}, /* 0462; 0463; Case map */ { 0x000464, 0, { 0x000465 }}, /* 0464; 0465; Case map */ { 0x000466, 0, { 0x000467 }}, /* 0466; 0467; Case map */ { 0x000468, 0, { 0x000469 }}, /* 0468; 0469; Case map */ { 0x00046A, 0, { 0x00046B }}, /* 046A; 046B; Case map */ { 0x00046C, 0, { 0x00046D }}, /* 046C; 046D; Case map */ { 0x00046E, 0, { 0x00046F }}, /* 046E; 046F; Case map */ { 0x000470, 0, { 0x000471 }}, /* 0470; 0471; Case map */ { 0x000472, 0, { 0x000473 }}, /* 0472; 0473; Case map */ { 0x000474, 0, { 0x000475 }}, /* 0474; 0475; Case map */ { 0x000476, 0, { 0x000477 }}, /* 0476; 0477; Case map */ { 0x000478, 0, { 0x000479 }}, /* 0478; 0479; Case map */ { 0x00047A, 0, { 0x00047B }}, /* 047A; 047B; Case map */ { 0x00047C, 0, { 0x00047D }}, /* 047C; 047D; Case map */ { 0x00047E, 0, { 0x00047F }}, /* 047E; 047F; Case map */ { 0x000480, 0, { 0x000481 }}, /* 0480; 0481; Case map */ { 0x00048A, 0, { 0x00048B }}, /* 048A; 048B; Case map */ { 0x00048C, 0, { 0x00048D }}, /* 048C; 048D; Case map */ { 0x00048E, 0, { 0x00048F }}, /* 048E; 048F; Case map */ { 0x000490, 0, { 0x000491 }}, /* 0490; 0491; Case map */ { 0x000492, 0, { 0x000493 }}, /* 0492; 0493; Case map */ { 0x000494, 0, { 0x000495 }}, /* 0494; 0495; Case map */ { 0x000496, 0, { 0x000497 }}, /* 0496; 0497; Case map */ { 0x000498, 0, { 0x000499 }}, /* 0498; 0499; Case map */ { 0x00049A, 0, { 0x00049B }}, /* 049A; 049B; Case map */ { 0x00049C, 0, { 0x00049D }}, /* 049C; 049D; Case map */ { 0x00049E, 0, { 0x00049F }}, /* 049E; 049F; Case map */ { 0x0004A0, 0, { 0x0004A1 }}, /* 04A0; 04A1; Case map */ { 0x0004A2, 0, { 0x0004A3 }}, /* 04A2; 04A3; Case map */ { 0x0004A4, 0, { 0x0004A5 }}, /* 04A4; 04A5; Case map */ { 0x0004A6, 0, { 0x0004A7 }}, /* 04A6; 04A7; Case map */ { 0x0004A8, 0, { 0x0004A9 }}, /* 04A8; 04A9; Case map */ { 0x0004AA, 0, { 0x0004AB }}, /* 04AA; 04AB; Case map */ { 0x0004AC, 0, { 0x0004AD }}, /* 04AC; 04AD; Case map */ { 0x0004AE, 0, { 0x0004AF }}, /* 04AE; 04AF; Case map */ { 0x0004B0, 0, { 0x0004B1 }}, /* 04B0; 04B1; Case map */ { 0x0004B2, 0, { 0x0004B3 }}, /* 04B2; 04B3; Case map */ { 0x0004B4, 0, { 0x0004B5 }}, /* 04B4; 04B5; Case map */ { 0x0004B6, 0, { 0x0004B7 }}, /* 04B6; 04B7; Case map */ { 0x0004B8, 0, { 0x0004B9 }}, /* 04B8; 04B9; Case map */ { 0x0004BA, 0, { 0x0004BB }}, /* 04BA; 04BB; Case map */ { 0x0004BC, 0, { 0x0004BD }}, /* 04BC; 04BD; Case map */ { 0x0004BE, 0, { 0x0004BF }}, /* 04BE; 04BF; Case map */ { 0x0004C1, 0, { 0x0004C2 }}, /* 04C1; 04C2; Case map */ { 0x0004C3, 0, { 0x0004C4 }}, /* 04C3; 04C4; Case map */ { 0x0004C5, 0, { 0x0004C6 }}, /* 04C5; 04C6; Case map */ { 0x0004C7, 0, { 0x0004C8 }}, /* 04C7; 04C8; Case map */ { 0x0004C9, 0, { 0x0004CA }}, /* 04C9; 04CA; Case map */ { 0x0004CB, 0, { 0x0004CC }}, /* 04CB; 04CC; Case map */ { 0x0004CD, 0, { 0x0004CE }}, /* 04CD; 04CE; Case map */ { 0x0004D0, 0, { 0x0004D1 }}, /* 04D0; 04D1; Case map */ { 0x0004D2, 0, { 0x0004D3 }}, /* 04D2; 04D3; Case map */ { 0x0004D4, 0, { 0x0004D5 }}, /* 04D4; 04D5; Case map */ { 0x0004D6, 0, { 0x0004D7 }}, /* 04D6; 04D7; Case map */ { 0x0004D8, 0, { 0x0004D9 }}, /* 04D8; 04D9; Case map */ { 0x0004DA, 0, { 0x0004DB }}, /* 04DA; 04DB; Case map */ { 0x0004DC, 0, { 0x0004DD }}, /* 04DC; 04DD; Case map */ { 0x0004DE, 0, { 0x0004DF }}, /* 04DE; 04DF; Case map */ { 0x0004E0, 0, { 0x0004E1 }}, /* 04E0; 04E1; Case map */ { 0x0004E2, 0, { 0x0004E3 }}, /* 04E2; 04E3; Case map */ { 0x0004E4, 0, { 0x0004E5 }}, /* 04E4; 04E5; Case map */ { 0x0004E6, 0, { 0x0004E7 }}, /* 04E6; 04E7; Case map */ { 0x0004E8, 0, { 0x0004E9 }}, /* 04E8; 04E9; Case map */ { 0x0004EA, 0, { 0x0004EB }}, /* 04EA; 04EB; Case map */ { 0x0004EC, 0, { 0x0004ED }}, /* 04EC; 04ED; Case map */ { 0x0004EE, 0, { 0x0004EF }}, /* 04EE; 04EF; Case map */ { 0x0004F0, 0, { 0x0004F1 }}, /* 04F0; 04F1; Case map */ { 0x0004F2, 0, { 0x0004F3 }}, /* 04F2; 04F3; Case map */ { 0x0004F4, 0, { 0x0004F5 }}, /* 04F4; 04F5; Case map */ { 0x0004F8, 0, { 0x0004F9 }}, /* 04F8; 04F9; Case map */ { 0x000500, 0, { 0x000501 }}, /* 0500; 0501; Case map */ { 0x000502, 0, { 0x000503 }}, /* 0502; 0503; Case map */ { 0x000504, 0, { 0x000505 }}, /* 0504; 0505; Case map */ { 0x000506, 0, { 0x000507 }}, /* 0506; 0507; Case map */ { 0x000508, 0, { 0x000509 }}, /* 0508; 0509; Case map */ { 0x00050A, 0, { 0x00050B }}, /* 050A; 050B; Case map */ { 0x00050C, 0, { 0x00050D }}, /* 050C; 050D; Case map */ { 0x00050E, 0, { 0x00050F }}, /* 050E; 050F; Case map */ { 0x000531, 0, { 0x000561 }}, /* 0531; 0561; Case map */ { 0x000532, 0, { 0x000562 }}, /* 0532; 0562; Case map */ { 0x000533, 0, { 0x000563 }}, /* 0533; 0563; Case map */ { 0x000534, 0, { 0x000564 }}, /* 0534; 0564; Case map */ { 0x000535, 0, { 0x000565 }}, /* 0535; 0565; Case map */ { 0x000536, 0, { 0x000566 }}, /* 0536; 0566; Case map */ { 0x000537, 0, { 0x000567 }}, /* 0537; 0567; Case map */ { 0x000538, 0, { 0x000568 }}, /* 0538; 0568; Case map */ { 0x000539, 0, { 0x000569 }}, /* 0539; 0569; Case map */ { 0x00053A, 0, { 0x00056A }}, /* 053A; 056A; Case map */ { 0x00053B, 0, { 0x00056B }}, /* 053B; 056B; Case map */ { 0x00053C, 0, { 0x00056C }}, /* 053C; 056C; Case map */ { 0x00053D, 0, { 0x00056D }}, /* 053D; 056D; Case map */ { 0x00053E, 0, { 0x00056E }}, /* 053E; 056E; Case map */ { 0x00053F, 0, { 0x00056F }}, /* 053F; 056F; Case map */ { 0x000540, 0, { 0x000570 }}, /* 0540; 0570; Case map */ { 0x000541, 0, { 0x000571 }}, /* 0541; 0571; Case map */ { 0x000542, 0, { 0x000572 }}, /* 0542; 0572; Case map */ { 0x000543, 0, { 0x000573 }}, /* 0543; 0573; Case map */ { 0x000544, 0, { 0x000574 }}, /* 0544; 0574; Case map */ { 0x000545, 0, { 0x000575 }}, /* 0545; 0575; Case map */ { 0x000546, 0, { 0x000576 }}, /* 0546; 0576; Case map */ { 0x000547, 0, { 0x000577 }}, /* 0547; 0577; Case map */ { 0x000548, 0, { 0x000578 }}, /* 0548; 0578; Case map */ { 0x000549, 0, { 0x000579 }}, /* 0549; 0579; Case map */ { 0x00054A, 0, { 0x00057A }}, /* 054A; 057A; Case map */ { 0x00054B, 0, { 0x00057B }}, /* 054B; 057B; Case map */ { 0x00054C, 0, { 0x00057C }}, /* 054C; 057C; Case map */ { 0x00054D, 0, { 0x00057D }}, /* 054D; 057D; Case map */ { 0x00054E, 0, { 0x00057E }}, /* 054E; 057E; Case map */ { 0x00054F, 0, { 0x00057F }}, /* 054F; 057F; Case map */ { 0x000550, 0, { 0x000580 }}, /* 0550; 0580; Case map */ { 0x000551, 0, { 0x000581 }}, /* 0551; 0581; Case map */ { 0x000552, 0, { 0x000582 }}, /* 0552; 0582; Case map */ { 0x000553, 0, { 0x000583 }}, /* 0553; 0583; Case map */ { 0x000554, 0, { 0x000584 }}, /* 0554; 0584; Case map */ { 0x000555, 0, { 0x000585 }}, /* 0555; 0585; Case map */ { 0x000556, 0, { 0x000586 }}, /* 0556; 0586; Case map */ { 0x000587, 0, { 0x000565, /* 0587; 0565 0582; Case map */ 0x000582 }}, { 0x001E00, 0, { 0x001E01 }}, /* 1E00; 1E01; Case map */ { 0x001E02, 0, { 0x001E03 }}, /* 1E02; 1E03; Case map */ { 0x001E04, 0, { 0x001E05 }}, /* 1E04; 1E05; Case map */ { 0x001E06, 0, { 0x001E07 }}, /* 1E06; 1E07; Case map */ { 0x001E08, 0, { 0x001E09 }}, /* 1E08; 1E09; Case map */ { 0x001E0A, 0, { 0x001E0B }}, /* 1E0A; 1E0B; Case map */ { 0x001E0C, 0, { 0x001E0D }}, /* 1E0C; 1E0D; Case map */ { 0x001E0E, 0, { 0x001E0F }}, /* 1E0E; 1E0F; Case map */ { 0x001E10, 0, { 0x001E11 }}, /* 1E10; 1E11; Case map */ { 0x001E12, 0, { 0x001E13 }}, /* 1E12; 1E13; Case map */ { 0x001E14, 0, { 0x001E15 }}, /* 1E14; 1E15; Case map */ { 0x001E16, 0, { 0x001E17 }}, /* 1E16; 1E17; Case map */ { 0x001E18, 0, { 0x001E19 }}, /* 1E18; 1E19; Case map */ { 0x001E1A, 0, { 0x001E1B }}, /* 1E1A; 1E1B; Case map */ { 0x001E1C, 0, { 0x001E1D }}, /* 1E1C; 1E1D; Case map */ { 0x001E1E, 0, { 0x001E1F }}, /* 1E1E; 1E1F; Case map */ { 0x001E20, 0, { 0x001E21 }}, /* 1E20; 1E21; Case map */ { 0x001E22, 0, { 0x001E23 }}, /* 1E22; 1E23; Case map */ { 0x001E24, 0, { 0x001E25 }}, /* 1E24; 1E25; Case map */ { 0x001E26, 0, { 0x001E27 }}, /* 1E26; 1E27; Case map */ { 0x001E28, 0, { 0x001E29 }}, /* 1E28; 1E29; Case map */ { 0x001E2A, 0, { 0x001E2B }}, /* 1E2A; 1E2B; Case map */ { 0x001E2C, 0, { 0x001E2D }}, /* 1E2C; 1E2D; Case map */ { 0x001E2E, 0, { 0x001E2F }}, /* 1E2E; 1E2F; Case map */ { 0x001E30, 0, { 0x001E31 }}, /* 1E30; 1E31; Case map */ { 0x001E32, 0, { 0x001E33 }}, /* 1E32; 1E33; Case map */ { 0x001E34, 0, { 0x001E35 }}, /* 1E34; 1E35; Case map */ { 0x001E36, 0, { 0x001E37 }}, /* 1E36; 1E37; Case map */ { 0x001E38, 0, { 0x001E39 }}, /* 1E38; 1E39; Case map */ { 0x001E3A, 0, { 0x001E3B }}, /* 1E3A; 1E3B; Case map */ { 0x001E3C, 0, { 0x001E3D }}, /* 1E3C; 1E3D; Case map */ { 0x001E3E, 0, { 0x001E3F }}, /* 1E3E; 1E3F; Case map */ { 0x001E40, 0, { 0x001E41 }}, /* 1E40; 1E41; Case map */ { 0x001E42, 0, { 0x001E43 }}, /* 1E42; 1E43; Case map */ { 0x001E44, 0, { 0x001E45 }}, /* 1E44; 1E45; Case map */ { 0x001E46, 0, { 0x001E47 }}, /* 1E46; 1E47; Case map */ { 0x001E48, 0, { 0x001E49 }}, /* 1E48; 1E49; Case map */ { 0x001E4A, 0, { 0x001E4B }}, /* 1E4A; 1E4B; Case map */ { 0x001E4C, 0, { 0x001E4D }}, /* 1E4C; 1E4D; Case map */ { 0x001E4E, 0, { 0x001E4F }}, /* 1E4E; 1E4F; Case map */ { 0x001E50, 0, { 0x001E51 }}, /* 1E50; 1E51; Case map */ { 0x001E52, 0, { 0x001E53 }}, /* 1E52; 1E53; Case map */ { 0x001E54, 0, { 0x001E55 }}, /* 1E54; 1E55; Case map */ { 0x001E56, 0, { 0x001E57 }}, /* 1E56; 1E57; Case map */ { 0x001E58, 0, { 0x001E59 }}, /* 1E58; 1E59; Case map */ { 0x001E5A, 0, { 0x001E5B }}, /* 1E5A; 1E5B; Case map */ { 0x001E5C, 0, { 0x001E5D }}, /* 1E5C; 1E5D; Case map */ { 0x001E5E, 0, { 0x001E5F }}, /* 1E5E; 1E5F; Case map */ { 0x001E60, 0, { 0x001E61 }}, /* 1E60; 1E61; Case map */ { 0x001E62, 0, { 0x001E63 }}, /* 1E62; 1E63; Case map */ { 0x001E64, 0, { 0x001E65 }}, /* 1E64; 1E65; Case map */ { 0x001E66, 0, { 0x001E67 }}, /* 1E66; 1E67; Case map */ { 0x001E68, 0, { 0x001E69 }}, /* 1E68; 1E69; Case map */ { 0x001E6A, 0, { 0x001E6B }}, /* 1E6A; 1E6B; Case map */ { 0x001E6C, 0, { 0x001E6D }}, /* 1E6C; 1E6D; Case map */ { 0x001E6E, 0, { 0x001E6F }}, /* 1E6E; 1E6F; Case map */ { 0x001E70, 0, { 0x001E71 }}, /* 1E70; 1E71; Case map */ { 0x001E72, 0, { 0x001E73 }}, /* 1E72; 1E73; Case map */ { 0x001E74, 0, { 0x001E75 }}, /* 1E74; 1E75; Case map */ { 0x001E76, 0, { 0x001E77 }}, /* 1E76; 1E77; Case map */ { 0x001E78, 0, { 0x001E79 }}, /* 1E78; 1E79; Case map */ { 0x001E7A, 0, { 0x001E7B }}, /* 1E7A; 1E7B; Case map */ { 0x001E7C, 0, { 0x001E7D }}, /* 1E7C; 1E7D; Case map */ { 0x001E7E, 0, { 0x001E7F }}, /* 1E7E; 1E7F; Case map */ { 0x001E80, 0, { 0x001E81 }}, /* 1E80; 1E81; Case map */ { 0x001E82, 0, { 0x001E83 }}, /* 1E82; 1E83; Case map */ { 0x001E84, 0, { 0x001E85 }}, /* 1E84; 1E85; Case map */ { 0x001E86, 0, { 0x001E87 }}, /* 1E86; 1E87; Case map */ { 0x001E88, 0, { 0x001E89 }}, /* 1E88; 1E89; Case map */ { 0x001E8A, 0, { 0x001E8B }}, /* 1E8A; 1E8B; Case map */ { 0x001E8C, 0, { 0x001E8D }}, /* 1E8C; 1E8D; Case map */ { 0x001E8E, 0, { 0x001E8F }}, /* 1E8E; 1E8F; Case map */ { 0x001E90, 0, { 0x001E91 }}, /* 1E90; 1E91; Case map */ { 0x001E92, 0, { 0x001E93 }}, /* 1E92; 1E93; Case map */ { 0x001E94, 0, { 0x001E95 }}, /* 1E94; 1E95; Case map */ { 0x001E96, 0, { 0x000068, /* 1E96; 0068 0331; Case map */ 0x000331 }}, { 0x001E97, 0, { 0x000074, /* 1E97; 0074 0308; Case map */ 0x000308 }}, { 0x001E98, 0, { 0x000077, /* 1E98; 0077 030A; Case map */ 0x00030A }}, { 0x001E99, 0, { 0x000079, /* 1E99; 0079 030A; Case map */ 0x00030A }}, { 0x001E9A, 0, { 0x000061, /* 1E9A; 0061 02BE; Case map */ 0x0002BE }}, { 0x001E9B, 0, { 0x001E61 }}, /* 1E9B; 1E61; Case map */ { 0x001EA0, 0, { 0x001EA1 }}, /* 1EA0; 1EA1; Case map */ { 0x001EA2, 0, { 0x001EA3 }}, /* 1EA2; 1EA3; Case map */ { 0x001EA4, 0, { 0x001EA5 }}, /* 1EA4; 1EA5; Case map */ { 0x001EA6, 0, { 0x001EA7 }}, /* 1EA6; 1EA7; Case map */ { 0x001EA8, 0, { 0x001EA9 }}, /* 1EA8; 1EA9; Case map */ { 0x001EAA, 0, { 0x001EAB }}, /* 1EAA; 1EAB; Case map */ { 0x001EAC, 0, { 0x001EAD }}, /* 1EAC; 1EAD; Case map */ { 0x001EAE, 0, { 0x001EAF }}, /* 1EAE; 1EAF; Case map */ { 0x001EB0, 0, { 0x001EB1 }}, /* 1EB0; 1EB1; Case map */ { 0x001EB2, 0, { 0x001EB3 }}, /* 1EB2; 1EB3; Case map */ { 0x001EB4, 0, { 0x001EB5 }}, /* 1EB4; 1EB5; Case map */ { 0x001EB6, 0, { 0x001EB7 }}, /* 1EB6; 1EB7; Case map */ { 0x001EB8, 0, { 0x001EB9 }}, /* 1EB8; 1EB9; Case map */ { 0x001EBA, 0, { 0x001EBB }}, /* 1EBA; 1EBB; Case map */ { 0x001EBC, 0, { 0x001EBD }}, /* 1EBC; 1EBD; Case map */ { 0x001EBE, 0, { 0x001EBF }}, /* 1EBE; 1EBF; Case map */ { 0x001EC0, 0, { 0x001EC1 }}, /* 1EC0; 1EC1; Case map */ { 0x001EC2, 0, { 0x001EC3 }}, /* 1EC2; 1EC3; Case map */ { 0x001EC4, 0, { 0x001EC5 }}, /* 1EC4; 1EC5; Case map */ { 0x001EC6, 0, { 0x001EC7 }}, /* 1EC6; 1EC7; Case map */ { 0x001EC8, 0, { 0x001EC9 }}, /* 1EC8; 1EC9; Case map */ { 0x001ECA, 0, { 0x001ECB }}, /* 1ECA; 1ECB; Case map */ { 0x001ECC, 0, { 0x001ECD }}, /* 1ECC; 1ECD; Case map */ { 0x001ECE, 0, { 0x001ECF }}, /* 1ECE; 1ECF; Case map */ { 0x001ED0, 0, { 0x001ED1 }}, /* 1ED0; 1ED1; Case map */ { 0x001ED2, 0, { 0x001ED3 }}, /* 1ED2; 1ED3; Case map */ { 0x001ED4, 0, { 0x001ED5 }}, /* 1ED4; 1ED5; Case map */ { 0x001ED6, 0, { 0x001ED7 }}, /* 1ED6; 1ED7; Case map */ { 0x001ED8, 0, { 0x001ED9 }}, /* 1ED8; 1ED9; Case map */ { 0x001EDA, 0, { 0x001EDB }}, /* 1EDA; 1EDB; Case map */ { 0x001EDC, 0, { 0x001EDD }}, /* 1EDC; 1EDD; Case map */ { 0x001EDE, 0, { 0x001EDF }}, /* 1EDE; 1EDF; Case map */ { 0x001EE0, 0, { 0x001EE1 }}, /* 1EE0; 1EE1; Case map */ { 0x001EE2, 0, { 0x001EE3 }}, /* 1EE2; 1EE3; Case map */ { 0x001EE4, 0, { 0x001EE5 }}, /* 1EE4; 1EE5; Case map */ { 0x001EE6, 0, { 0x001EE7 }}, /* 1EE6; 1EE7; Case map */ { 0x001EE8, 0, { 0x001EE9 }}, /* 1EE8; 1EE9; Case map */ { 0x001EEA, 0, { 0x001EEB }}, /* 1EEA; 1EEB; Case map */ { 0x001EEC, 0, { 0x001EED }}, /* 1EEC; 1EED; Case map */ { 0x001EEE, 0, { 0x001EEF }}, /* 1EEE; 1EEF; Case map */ { 0x001EF0, 0, { 0x001EF1 }}, /* 1EF0; 1EF1; Case map */ { 0x001EF2, 0, { 0x001EF3 }}, /* 1EF2; 1EF3; Case map */ { 0x001EF4, 0, { 0x001EF5 }}, /* 1EF4; 1EF5; Case map */ { 0x001EF6, 0, { 0x001EF7 }}, /* 1EF6; 1EF7; Case map */ { 0x001EF8, 0, { 0x001EF9 }}, /* 1EF8; 1EF9; Case map */ { 0x001F08, 0, { 0x001F00 }}, /* 1F08; 1F00; Case map */ { 0x001F09, 0, { 0x001F01 }}, /* 1F09; 1F01; Case map */ { 0x001F0A, 0, { 0x001F02 }}, /* 1F0A; 1F02; Case map */ { 0x001F0B, 0, { 0x001F03 }}, /* 1F0B; 1F03; Case map */ { 0x001F0C, 0, { 0x001F04 }}, /* 1F0C; 1F04; Case map */ { 0x001F0D, 0, { 0x001F05 }}, /* 1F0D; 1F05; Case map */ { 0x001F0E, 0, { 0x001F06 }}, /* 1F0E; 1F06; Case map */ { 0x001F0F, 0, { 0x001F07 }}, /* 1F0F; 1F07; Case map */ { 0x001F18, 0, { 0x001F10 }}, /* 1F18; 1F10; Case map */ { 0x001F19, 0, { 0x001F11 }}, /* 1F19; 1F11; Case map */ { 0x001F1A, 0, { 0x001F12 }}, /* 1F1A; 1F12; Case map */ { 0x001F1B, 0, { 0x001F13 }}, /* 1F1B; 1F13; Case map */ { 0x001F1C, 0, { 0x001F14 }}, /* 1F1C; 1F14; Case map */ { 0x001F1D, 0, { 0x001F15 }}, /* 1F1D; 1F15; Case map */ { 0x001F28, 0, { 0x001F20 }}, /* 1F28; 1F20; Case map */ { 0x001F29, 0, { 0x001F21 }}, /* 1F29; 1F21; Case map */ { 0x001F2A, 0, { 0x001F22 }}, /* 1F2A; 1F22; Case map */ { 0x001F2B, 0, { 0x001F23 }}, /* 1F2B; 1F23; Case map */ { 0x001F2C, 0, { 0x001F24 }}, /* 1F2C; 1F24; Case map */ { 0x001F2D, 0, { 0x001F25 }}, /* 1F2D; 1F25; Case map */ { 0x001F2E, 0, { 0x001F26 }}, /* 1F2E; 1F26; Case map */ { 0x001F2F, 0, { 0x001F27 }}, /* 1F2F; 1F27; Case map */ { 0x001F38, 0, { 0x001F30 }}, /* 1F38; 1F30; Case map */ { 0x001F39, 0, { 0x001F31 }}, /* 1F39; 1F31; Case map */ { 0x001F3A, 0, { 0x001F32 }}, /* 1F3A; 1F32; Case map */ { 0x001F3B, 0, { 0x001F33 }}, /* 1F3B; 1F33; Case map */ { 0x001F3C, 0, { 0x001F34 }}, /* 1F3C; 1F34; Case map */ { 0x001F3D, 0, { 0x001F35 }}, /* 1F3D; 1F35; Case map */ { 0x001F3E, 0, { 0x001F36 }}, /* 1F3E; 1F36; Case map */ { 0x001F3F, 0, { 0x001F37 }}, /* 1F3F; 1F37; Case map */ { 0x001F48, 0, { 0x001F40 }}, /* 1F48; 1F40; Case map */ { 0x001F49, 0, { 0x001F41 }}, /* 1F49; 1F41; Case map */ { 0x001F4A, 0, { 0x001F42 }}, /* 1F4A; 1F42; Case map */ { 0x001F4B, 0, { 0x001F43 }}, /* 1F4B; 1F43; Case map */ { 0x001F4C, 0, { 0x001F44 }}, /* 1F4C; 1F44; Case map */ { 0x001F4D, 0, { 0x001F45 }}, /* 1F4D; 1F45; Case map */ { 0x001F50, 0, { 0x0003C5, /* 1F50; 03C5 0313; Case map */ 0x000313 }}, { 0x001F52, 0, { 0x0003C5, /* 1F52; 03C5 0313 0300; Case map */ 0x000313, 0x000300 }}, { 0x001F54, 0, { 0x0003C5, /* 1F54; 03C5 0313 0301; Case map */ 0x000313, 0x000301 }}, { 0x001F56, 0, { 0x0003C5, /* 1F56; 03C5 0313 0342; Case map */ 0x000313, 0x000342 }}, { 0x001F59, 0, { 0x001F51 }}, /* 1F59; 1F51; Case map */ { 0x001F5B, 0, { 0x001F53 }}, /* 1F5B; 1F53; Case map */ { 0x001F5D, 0, { 0x001F55 }}, /* 1F5D; 1F55; Case map */ { 0x001F5F, 0, { 0x001F57 }}, /* 1F5F; 1F57; Case map */ { 0x001F68, 0, { 0x001F60 }}, /* 1F68; 1F60; Case map */ { 0x001F69, 0, { 0x001F61 }}, /* 1F69; 1F61; Case map */ { 0x001F6A, 0, { 0x001F62 }}, /* 1F6A; 1F62; Case map */ { 0x001F6B, 0, { 0x001F63 }}, /* 1F6B; 1F63; Case map */ { 0x001F6C, 0, { 0x001F64 }}, /* 1F6C; 1F64; Case map */ { 0x001F6D, 0, { 0x001F65 }}, /* 1F6D; 1F65; Case map */ { 0x001F6E, 0, { 0x001F66 }}, /* 1F6E; 1F66; Case map */ { 0x001F6F, 0, { 0x001F67 }}, /* 1F6F; 1F67; Case map */ { 0x001F80, 0, { 0x001F00, /* 1F80; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F81, 0, { 0x001F01, /* 1F81; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F82, 0, { 0x001F02, /* 1F82; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F83, 0, { 0x001F03, /* 1F83; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F84, 0, { 0x001F04, /* 1F84; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F85, 0, { 0x001F05, /* 1F85; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F86, 0, { 0x001F06, /* 1F86; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F87, 0, { 0x001F07, /* 1F87; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F88, 0, { 0x001F00, /* 1F88; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F89, 0, { 0x001F01, /* 1F89; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F8A, 0, { 0x001F02, /* 1F8A; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F8B, 0, { 0x001F03, /* 1F8B; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F8C, 0, { 0x001F04, /* 1F8C; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F8D, 0, { 0x001F05, /* 1F8D; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F8E, 0, { 0x001F06, /* 1F8E; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F8F, 0, { 0x001F07, /* 1F8F; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F90, 0, { 0x001F20, /* 1F90; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F91, 0, { 0x001F21, /* 1F91; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F92, 0, { 0x001F22, /* 1F92; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F93, 0, { 0x001F23, /* 1F93; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F94, 0, { 0x001F24, /* 1F94; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F95, 0, { 0x001F25, /* 1F95; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F96, 0, { 0x001F26, /* 1F96; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F97, 0, { 0x001F27, /* 1F97; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001F98, 0, { 0x001F20, /* 1F98; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F99, 0, { 0x001F21, /* 1F99; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F9A, 0, { 0x001F22, /* 1F9A; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F9B, 0, { 0x001F23, /* 1F9B; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F9C, 0, { 0x001F24, /* 1F9C; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F9D, 0, { 0x001F25, /* 1F9D; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F9E, 0, { 0x001F26, /* 1F9E; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F9F, 0, { 0x001F27, /* 1F9F; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001FA0, 0, { 0x001F60, /* 1FA0; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA1, 0, { 0x001F61, /* 1FA1; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FA2, 0, { 0x001F62, /* 1FA2; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FA3, 0, { 0x001F63, /* 1FA3; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FA4, 0, { 0x001F64, /* 1FA4; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FA5, 0, { 0x001F65, /* 1FA5; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FA6, 0, { 0x001F66, /* 1FA6; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FA7, 0, { 0x001F67, /* 1FA7; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FA8, 0, { 0x001F60, /* 1FA8; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA9, 0, { 0x001F61, /* 1FA9; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FAA, 0, { 0x001F62, /* 1FAA; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FAB, 0, { 0x001F63, /* 1FAB; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FAC, 0, { 0x001F64, /* 1FAC; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FAD, 0, { 0x001F65, /* 1FAD; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FAE, 0, { 0x001F66, /* 1FAE; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FAF, 0, { 0x001F67, /* 1FAF; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FB2, 0, { 0x001F70, /* 1FB2; 1F70 03B9; Case map */ 0x0003B9 }}, { 0x001FB3, 0, { 0x0003B1, /* 1FB3; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FB4, 0, { 0x0003AC, /* 1FB4; 03AC 03B9; Case map */ 0x0003B9 }}, { 0x001FB6, 0, { 0x0003B1, /* 1FB6; 03B1 0342; Case map */ 0x000342 }}, { 0x001FB7, 0, { 0x0003B1, /* 1FB7; 03B1 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FB8, 0, { 0x001FB0 }}, /* 1FB8; 1FB0; Case map */ { 0x001FB9, 0, { 0x001FB1 }}, /* 1FB9; 1FB1; Case map */ { 0x001FBA, 0, { 0x001F70 }}, /* 1FBA; 1F70; Case map */ { 0x001FBB, 0, { 0x001F71 }}, /* 1FBB; 1F71; Case map */ { 0x001FBC, 0, { 0x0003B1, /* 1FBC; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FBE, 0, { 0x0003B9 }}, /* 1FBE; 03B9; Case map */ { 0x001FC2, 0, { 0x001F74, /* 1FC2; 1F74 03B9; Case map */ 0x0003B9 }}, { 0x001FC3, 0, { 0x0003B7, /* 1FC3; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FC4, 0, { 0x0003AE, /* 1FC4; 03AE 03B9; Case map */ 0x0003B9 }}, { 0x001FC6, 0, { 0x0003B7, /* 1FC6; 03B7 0342; Case map */ 0x000342 }}, { 0x001FC7, 0, { 0x0003B7, /* 1FC7; 03B7 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FC8, 0, { 0x001F72 }}, /* 1FC8; 1F72; Case map */ { 0x001FC9, 0, { 0x001F73 }}, /* 1FC9; 1F73; Case map */ { 0x001FCA, 0, { 0x001F74 }}, /* 1FCA; 1F74; Case map */ { 0x001FCB, 0, { 0x001F75 }}, /* 1FCB; 1F75; Case map */ { 0x001FCC, 0, { 0x0003B7, /* 1FCC; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FD2, 0, { 0x0003B9, /* 1FD2; 03B9 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FD3, 0, { 0x0003B9, /* 1FD3; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FD6, 0, { 0x0003B9, /* 1FD6; 03B9 0342; Case map */ 0x000342 }}, { 0x001FD7, 0, { 0x0003B9, /* 1FD7; 03B9 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FD8, 0, { 0x001FD0 }}, /* 1FD8; 1FD0; Case map */ { 0x001FD9, 0, { 0x001FD1 }}, /* 1FD9; 1FD1; Case map */ { 0x001FDA, 0, { 0x001F76 }}, /* 1FDA; 1F76; Case map */ { 0x001FDB, 0, { 0x001F77 }}, /* 1FDB; 1F77; Case map */ { 0x001FE2, 0, { 0x0003C5, /* 1FE2; 03C5 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FE3, 0, { 0x0003C5, /* 1FE3; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FE4, 0, { 0x0003C1, /* 1FE4; 03C1 0313; Case map */ 0x000313 }}, { 0x001FE6, 0, { 0x0003C5, /* 1FE6; 03C5 0342; Case map */ 0x000342 }}, { 0x001FE7, 0, { 0x0003C5, /* 1FE7; 03C5 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FE8, 0, { 0x001FE0 }}, /* 1FE8; 1FE0; Case map */ { 0x001FE9, 0, { 0x001FE1 }}, /* 1FE9; 1FE1; Case map */ { 0x001FEA, 0, { 0x001F7A }}, /* 1FEA; 1F7A; Case map */ { 0x001FEB, 0, { 0x001F7B }}, /* 1FEB; 1F7B; Case map */ { 0x001FEC, 0, { 0x001FE5 }}, /* 1FEC; 1FE5; Case map */ { 0x001FF2, 0, { 0x001F7C, /* 1FF2; 1F7C 03B9; Case map */ 0x0003B9 }}, { 0x001FF3, 0, { 0x0003C9, /* 1FF3; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x001FF4, 0, { 0x0003CE, /* 1FF4; 03CE 03B9; Case map */ 0x0003B9 }}, { 0x001FF6, 0, { 0x0003C9, /* 1FF6; 03C9 0342; Case map */ 0x000342 }}, { 0x001FF7, 0, { 0x0003C9, /* 1FF7; 03C9 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FF8, 0, { 0x001F78 }}, /* 1FF8; 1F78; Case map */ { 0x001FF9, 0, { 0x001F79 }}, /* 1FF9; 1F79; Case map */ { 0x001FFA, 0, { 0x001F7C }}, /* 1FFA; 1F7C; Case map */ { 0x001FFB, 0, { 0x001F7D }}, /* 1FFB; 1F7D; Case map */ { 0x001FFC, 0, { 0x0003C9, /* 1FFC; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x0020A8, 0, { 0x000072, /* 20A8; 0072 0073; Additional folding */ 0x000073 }}, { 0x002102, 0, { 0x000063 }}, /* 2102; 0063; Additional folding */ { 0x002103, 0, { 0x0000B0, /* 2103; 00B0 0063; Additional folding */ 0x000063 }}, { 0x002107, 0, { 0x00025B }}, /* 2107; 025B; Additional folding */ { 0x002109, 0, { 0x0000B0, /* 2109; 00B0 0066; Additional folding */ 0x000066 }}, { 0x00210B, 0, { 0x000068 }}, /* 210B; 0068; Additional folding */ { 0x00210C, 0, { 0x000068 }}, /* 210C; 0068; Additional folding */ { 0x00210D, 0, { 0x000068 }}, /* 210D; 0068; Additional folding */ { 0x002110, 0, { 0x000069 }}, /* 2110; 0069; Additional folding */ { 0x002111, 0, { 0x000069 }}, /* 2111; 0069; Additional folding */ { 0x002112, 0, { 0x00006C }}, /* 2112; 006C; Additional folding */ { 0x002115, 0, { 0x00006E }}, /* 2115; 006E; Additional folding */ { 0x002116, 0, { 0x00006E, /* 2116; 006E 006F; Additional folding */ 0x00006F }}, { 0x002119, 0, { 0x000070 }}, /* 2119; 0070; Additional folding */ { 0x00211A, 0, { 0x000071 }}, /* 211A; 0071; Additional folding */ { 0x00211B, 0, { 0x000072 }}, /* 211B; 0072; Additional folding */ { 0x00211C, 0, { 0x000072 }}, /* 211C; 0072; Additional folding */ { 0x00211D, 0, { 0x000072 }}, /* 211D; 0072; Additional folding */ { 0x002120, 0, { 0x000073, /* 2120; 0073 006D; Additional folding */ 0x00006D }}, { 0x002121, 0, { 0x000074, /* 2121; 0074 0065 006C; Additional folding */ 0x000065, 0x00006C }}, { 0x002122, 0, { 0x000074, /* 2122; 0074 006D; Additional folding */ 0x00006D }}, { 0x002124, 0, { 0x00007A }}, /* 2124; 007A; Additional folding */ { 0x002126, 0, { 0x0003C9 }}, /* 2126; 03C9; Case map */ { 0x002128, 0, { 0x00007A }}, /* 2128; 007A; Additional folding */ { 0x00212A, 0, { 0x00006B }}, /* 212A; 006B; Case map */ { 0x00212B, 0, { 0x0000E5 }}, /* 212B; 00E5; Case map */ { 0x00212C, 0, { 0x000062 }}, /* 212C; 0062; Additional folding */ { 0x00212D, 0, { 0x000063 }}, /* 212D; 0063; Additional folding */ { 0x002130, 0, { 0x000065 }}, /* 2130; 0065; Additional folding */ { 0x002131, 0, { 0x000066 }}, /* 2131; 0066; Additional folding */ { 0x002133, 0, { 0x00006D }}, /* 2133; 006D; Additional folding */ { 0x00213E, 0, { 0x0003B3 }}, /* 213E; 03B3; Additional folding */ { 0x00213F, 0, { 0x0003C0 }}, /* 213F; 03C0; Additional folding */ { 0x002145, 0, { 0x000064 }}, /* 2145; 0064; Additional folding */ { 0x002160, 0, { 0x002170 }}, /* 2160; 2170; Case map */ { 0x002161, 0, { 0x002171 }}, /* 2161; 2171; Case map */ { 0x002162, 0, { 0x002172 }}, /* 2162; 2172; Case map */ { 0x002163, 0, { 0x002173 }}, /* 2163; 2173; Case map */ { 0x002164, 0, { 0x002174 }}, /* 2164; 2174; Case map */ { 0x002165, 0, { 0x002175 }}, /* 2165; 2175; Case map */ { 0x002166, 0, { 0x002176 }}, /* 2166; 2176; Case map */ { 0x002167, 0, { 0x002177 }}, /* 2167; 2177; Case map */ { 0x002168, 0, { 0x002178 }}, /* 2168; 2178; Case map */ { 0x002169, 0, { 0x002179 }}, /* 2169; 2179; Case map */ { 0x00216A, 0, { 0x00217A }}, /* 216A; 217A; Case map */ { 0x00216B, 0, { 0x00217B }}, /* 216B; 217B; Case map */ { 0x00216C, 0, { 0x00217C }}, /* 216C; 217C; Case map */ { 0x00216D, 0, { 0x00217D }}, /* 216D; 217D; Case map */ { 0x00216E, 0, { 0x00217E }}, /* 216E; 217E; Case map */ { 0x00216F, 0, { 0x00217F }}, /* 216F; 217F; Case map */ { 0x0024B6, 0, { 0x0024D0 }}, /* 24B6; 24D0; Case map */ { 0x0024B7, 0, { 0x0024D1 }}, /* 24B7; 24D1; Case map */ { 0x0024B8, 0, { 0x0024D2 }}, /* 24B8; 24D2; Case map */ { 0x0024B9, 0, { 0x0024D3 }}, /* 24B9; 24D3; Case map */ { 0x0024BA, 0, { 0x0024D4 }}, /* 24BA; 24D4; Case map */ { 0x0024BB, 0, { 0x0024D5 }}, /* 24BB; 24D5; Case map */ { 0x0024BC, 0, { 0x0024D6 }}, /* 24BC; 24D6; Case map */ { 0x0024BD, 0, { 0x0024D7 }}, /* 24BD; 24D7; Case map */ { 0x0024BE, 0, { 0x0024D8 }}, /* 24BE; 24D8; Case map */ { 0x0024BF, 0, { 0x0024D9 }}, /* 24BF; 24D9; Case map */ { 0x0024C0, 0, { 0x0024DA }}, /* 24C0; 24DA; Case map */ { 0x0024C1, 0, { 0x0024DB }}, /* 24C1; 24DB; Case map */ { 0x0024C2, 0, { 0x0024DC }}, /* 24C2; 24DC; Case map */ { 0x0024C3, 0, { 0x0024DD }}, /* 24C3; 24DD; Case map */ { 0x0024C4, 0, { 0x0024DE }}, /* 24C4; 24DE; Case map */ { 0x0024C5, 0, { 0x0024DF }}, /* 24C5; 24DF; Case map */ { 0x0024C6, 0, { 0x0024E0 }}, /* 24C6; 24E0; Case map */ { 0x0024C7, 0, { 0x0024E1 }}, /* 24C7; 24E1; Case map */ { 0x0024C8, 0, { 0x0024E2 }}, /* 24C8; 24E2; Case map */ { 0x0024C9, 0, { 0x0024E3 }}, /* 24C9; 24E3; Case map */ { 0x0024CA, 0, { 0x0024E4 }}, /* 24CA; 24E4; Case map */ { 0x0024CB, 0, { 0x0024E5 }}, /* 24CB; 24E5; Case map */ { 0x0024CC, 0, { 0x0024E6 }}, /* 24CC; 24E6; Case map */ { 0x0024CD, 0, { 0x0024E7 }}, /* 24CD; 24E7; Case map */ { 0x0024CE, 0, { 0x0024E8 }}, /* 24CE; 24E8; Case map */ { 0x0024CF, 0, { 0x0024E9 }}, /* 24CF; 24E9; Case map */ { 0x003371, 0, { 0x000068, /* 3371; 0068 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x003373, 0, { 0x000061, /* 3373; 0061 0075; Additional folding */ 0x000075 }}, { 0x003375, 0, { 0x00006F, /* 3375; 006F 0076; Additional folding */ 0x000076 }}, { 0x003380, 0, { 0x000070, /* 3380; 0070 0061; Additional folding */ 0x000061 }}, { 0x003381, 0, { 0x00006E, /* 3381; 006E 0061; Additional folding */ 0x000061 }}, { 0x003382, 0, { 0x0003BC, /* 3382; 03BC 0061; Additional folding */ 0x000061 }}, { 0x003383, 0, { 0x00006D, /* 3383; 006D 0061; Additional folding */ 0x000061 }}, { 0x003384, 0, { 0x00006B, /* 3384; 006B 0061; Additional folding */ 0x000061 }}, { 0x003385, 0, { 0x00006B, /* 3385; 006B 0062; Additional folding */ 0x000062 }}, { 0x003386, 0, { 0x00006D, /* 3386; 006D 0062; Additional folding */ 0x000062 }}, { 0x003387, 0, { 0x000067, /* 3387; 0067 0062; Additional folding */ 0x000062 }}, { 0x00338A, 0, { 0x000070, /* 338A; 0070 0066; Additional folding */ 0x000066 }}, { 0x00338B, 0, { 0x00006E, /* 338B; 006E 0066; Additional folding */ 0x000066 }}, { 0x00338C, 0, { 0x0003BC, /* 338C; 03BC 0066; Additional folding */ 0x000066 }}, { 0x003390, 0, { 0x000068, /* 3390; 0068 007A; Additional folding */ 0x00007A }}, { 0x003391, 0, { 0x00006B, /* 3391; 006B 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x003392, 0, { 0x00006D, /* 3392; 006D 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x003393, 0, { 0x000067, /* 3393; 0067 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x003394, 0, { 0x000074, /* 3394; 0074 0068 007A; Additional folding */ 0x000068, 0x00007A }}, { 0x0033A9, 0, { 0x000070, /* 33A9; 0070 0061; Additional folding */ 0x000061 }}, { 0x0033AA, 0, { 0x00006B, /* 33AA; 006B 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x0033AB, 0, { 0x00006D, /* 33AB; 006D 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x0033AC, 0, { 0x000067, /* 33AC; 0067 0070 0061; Additional folding */ 0x000070, 0x000061 }}, { 0x0033B4, 0, { 0x000070, /* 33B4; 0070 0076; Additional folding */ 0x000076 }}, { 0x0033B5, 0, { 0x00006E, /* 33B5; 006E 0076; Additional folding */ 0x000076 }}, { 0x0033B6, 0, { 0x0003BC, /* 33B6; 03BC 0076; Additional folding */ 0x000076 }}, { 0x0033B7, 0, { 0x00006D, /* 33B7; 006D 0076; Additional folding */ 0x000076 }}, { 0x0033B8, 0, { 0x00006B, /* 33B8; 006B 0076; Additional folding */ 0x000076 }}, { 0x0033B9, 0, { 0x00006D, /* 33B9; 006D 0076; Additional folding */ 0x000076 }}, { 0x0033BA, 0, { 0x000070, /* 33BA; 0070 0077; Additional folding */ 0x000077 }}, { 0x0033BB, 0, { 0x00006E, /* 33BB; 006E 0077; Additional folding */ 0x000077 }}, { 0x0033BC, 0, { 0x0003BC, /* 33BC; 03BC 0077; Additional folding */ 0x000077 }}, { 0x0033BD, 0, { 0x00006D, /* 33BD; 006D 0077; Additional folding */ 0x000077 }}, { 0x0033BE, 0, { 0x00006B, /* 33BE; 006B 0077; Additional folding */ 0x000077 }}, { 0x0033BF, 0, { 0x00006D, /* 33BF; 006D 0077; Additional folding */ 0x000077 }}, { 0x0033C0, 0, { 0x00006B, /* 33C0; 006B 03C9; Additional folding */ 0x0003C9 }}, { 0x0033C1, 0, { 0x00006D, /* 33C1; 006D 03C9; Additional folding */ 0x0003C9 }}, { 0x0033C3, 0, { 0x000062, /* 33C3; 0062 0071; Additional folding */ 0x000071 }}, { 0x0033C6, 0, { 0x000063, /* 33C6; 0063 2215 006B 0067; Additional folding */ 0x002215, 0x00006B, 0x000067 }}, { 0x0033C7, 0, { 0x000063, /* 33C7; 0063 006F 002E; Additional folding */ 0x00006F, 0x00002E }}, { 0x0033C8, 0, { 0x000064, /* 33C8; 0064 0062; Additional folding */ 0x000062 }}, { 0x0033C9, 0, { 0x000067, /* 33C9; 0067 0079; Additional folding */ 0x000079 }}, { 0x0033CB, 0, { 0x000068, /* 33CB; 0068 0070; Additional folding */ 0x000070 }}, { 0x0033CD, 0, { 0x00006B, /* 33CD; 006B 006B; Additional folding */ 0x00006B }}, { 0x0033CE, 0, { 0x00006B, /* 33CE; 006B 006D; Additional folding */ 0x00006D }}, { 0x0033D7, 0, { 0x000070, /* 33D7; 0070 0068; Additional folding */ 0x000068 }}, { 0x0033D9, 0, { 0x000070, /* 33D9; 0070 0070 006D; Additional folding */ 0x000070, 0x00006D }}, { 0x0033DA, 0, { 0x000070, /* 33DA; 0070 0072; Additional folding */ 0x000072 }}, { 0x0033DC, 0, { 0x000073, /* 33DC; 0073 0076; Additional folding */ 0x000076 }}, { 0x0033DD, 0, { 0x000077, /* 33DD; 0077 0062; Additional folding */ 0x000062 }}, { 0x00FB00, 0, { 0x000066, /* FB00; 0066 0066; Case map */ 0x000066 }}, { 0x00FB01, 0, { 0x000066, /* FB01; 0066 0069; Case map */ 0x000069 }}, { 0x00FB02, 0, { 0x000066, /* FB02; 0066 006C; Case map */ 0x00006C }}, { 0x00FB03, 0, { 0x000066, /* FB03; 0066 0066 0069; Case map */ 0x000066, 0x000069 }}, { 0x00FB04, 0, { 0x000066, /* FB04; 0066 0066 006C; Case map */ 0x000066, 0x00006C }}, { 0x00FB05, 0, { 0x000073, /* FB05; 0073 0074; Case map */ 0x000074 }}, { 0x00FB06, 0, { 0x000073, /* FB06; 0073 0074; Case map */ 0x000074 }}, { 0x00FB13, 0, { 0x000574, /* FB13; 0574 0576; Case map */ 0x000576 }}, { 0x00FB14, 0, { 0x000574, /* FB14; 0574 0565; Case map */ 0x000565 }}, { 0x00FB15, 0, { 0x000574, /* FB15; 0574 056B; Case map */ 0x00056B }}, { 0x00FB16, 0, { 0x00057E, /* FB16; 057E 0576; Case map */ 0x000576 }}, { 0x00FB17, 0, { 0x000574, /* FB17; 0574 056D; Case map */ 0x00056D }}, { 0x00FF21, 0, { 0x00FF41 }}, /* FF21; FF41; Case map */ { 0x00FF22, 0, { 0x00FF42 }}, /* FF22; FF42; Case map */ { 0x00FF23, 0, { 0x00FF43 }}, /* FF23; FF43; Case map */ { 0x00FF24, 0, { 0x00FF44 }}, /* FF24; FF44; Case map */ { 0x00FF25, 0, { 0x00FF45 }}, /* FF25; FF45; Case map */ { 0x00FF26, 0, { 0x00FF46 }}, /* FF26; FF46; Case map */ { 0x00FF27, 0, { 0x00FF47 }}, /* FF27; FF47; Case map */ { 0x00FF28, 0, { 0x00FF48 }}, /* FF28; FF48; Case map */ { 0x00FF29, 0, { 0x00FF49 }}, /* FF29; FF49; Case map */ { 0x00FF2A, 0, { 0x00FF4A }}, /* FF2A; FF4A; Case map */ { 0x00FF2B, 0, { 0x00FF4B }}, /* FF2B; FF4B; Case map */ { 0x00FF2C, 0, { 0x00FF4C }}, /* FF2C; FF4C; Case map */ { 0x00FF2D, 0, { 0x00FF4D }}, /* FF2D; FF4D; Case map */ { 0x00FF2E, 0, { 0x00FF4E }}, /* FF2E; FF4E; Case map */ { 0x00FF2F, 0, { 0x00FF4F }}, /* FF2F; FF4F; Case map */ { 0x00FF30, 0, { 0x00FF50 }}, /* FF30; FF50; Case map */ { 0x00FF31, 0, { 0x00FF51 }}, /* FF31; FF51; Case map */ { 0x00FF32, 0, { 0x00FF52 }}, /* FF32; FF52; Case map */ { 0x00FF33, 0, { 0x00FF53 }}, /* FF33; FF53; Case map */ { 0x00FF34, 0, { 0x00FF54 }}, /* FF34; FF54; Case map */ { 0x00FF35, 0, { 0x00FF55 }}, /* FF35; FF55; Case map */ { 0x00FF36, 0, { 0x00FF56 }}, /* FF36; FF56; Case map */ { 0x00FF37, 0, { 0x00FF57 }}, /* FF37; FF57; Case map */ { 0x00FF38, 0, { 0x00FF58 }}, /* FF38; FF58; Case map */ { 0x00FF39, 0, { 0x00FF59 }}, /* FF39; FF59; Case map */ { 0x00FF3A, 0, { 0x00FF5A }}, /* FF3A; FF5A; Case map */ { 0x010400, 0, { 0x010428 }}, /* 10400; 10428; Case map */ { 0x010401, 0, { 0x010429 }}, /* 10401; 10429; Case map */ { 0x010402, 0, { 0x01042A }}, /* 10402; 1042A; Case map */ { 0x010403, 0, { 0x01042B }}, /* 10403; 1042B; Case map */ { 0x010404, 0, { 0x01042C }}, /* 10404; 1042C; Case map */ { 0x010405, 0, { 0x01042D }}, /* 10405; 1042D; Case map */ { 0x010406, 0, { 0x01042E }}, /* 10406; 1042E; Case map */ { 0x010407, 0, { 0x01042F }}, /* 10407; 1042F; Case map */ { 0x010408, 0, { 0x010430 }}, /* 10408; 10430; Case map */ { 0x010409, 0, { 0x010431 }}, /* 10409; 10431; Case map */ { 0x01040A, 0, { 0x010432 }}, /* 1040A; 10432; Case map */ { 0x01040B, 0, { 0x010433 }}, /* 1040B; 10433; Case map */ { 0x01040C, 0, { 0x010434 }}, /* 1040C; 10434; Case map */ { 0x01040D, 0, { 0x010435 }}, /* 1040D; 10435; Case map */ { 0x01040E, 0, { 0x010436 }}, /* 1040E; 10436; Case map */ { 0x01040F, 0, { 0x010437 }}, /* 1040F; 10437; Case map */ { 0x010410, 0, { 0x010438 }}, /* 10410; 10438; Case map */ { 0x010411, 0, { 0x010439 }}, /* 10411; 10439; Case map */ { 0x010412, 0, { 0x01043A }}, /* 10412; 1043A; Case map */ { 0x010413, 0, { 0x01043B }}, /* 10413; 1043B; Case map */ { 0x010414, 0, { 0x01043C }}, /* 10414; 1043C; Case map */ { 0x010415, 0, { 0x01043D }}, /* 10415; 1043D; Case map */ { 0x010416, 0, { 0x01043E }}, /* 10416; 1043E; Case map */ { 0x010417, 0, { 0x01043F }}, /* 10417; 1043F; Case map */ { 0x010418, 0, { 0x010440 }}, /* 10418; 10440; Case map */ { 0x010419, 0, { 0x010441 }}, /* 10419; 10441; Case map */ { 0x01041A, 0, { 0x010442 }}, /* 1041A; 10442; Case map */ { 0x01041B, 0, { 0x010443 }}, /* 1041B; 10443; Case map */ { 0x01041C, 0, { 0x010444 }}, /* 1041C; 10444; Case map */ { 0x01041D, 0, { 0x010445 }}, /* 1041D; 10445; Case map */ { 0x01041E, 0, { 0x010446 }}, /* 1041E; 10446; Case map */ { 0x01041F, 0, { 0x010447 }}, /* 1041F; 10447; Case map */ { 0x010420, 0, { 0x010448 }}, /* 10420; 10448; Case map */ { 0x010421, 0, { 0x010449 }}, /* 10421; 10449; Case map */ { 0x010422, 0, { 0x01044A }}, /* 10422; 1044A; Case map */ { 0x010423, 0, { 0x01044B }}, /* 10423; 1044B; Case map */ { 0x010424, 0, { 0x01044C }}, /* 10424; 1044C; Case map */ { 0x010425, 0, { 0x01044D }}, /* 10425; 1044D; Case map */ { 0x01D400, 0, { 0x000061 }}, /* 1D400; 0061; Additional folding */ { 0x01D401, 0, { 0x000062 }}, /* 1D401; 0062; Additional folding */ { 0x01D402, 0, { 0x000063 }}, /* 1D402; 0063; Additional folding */ { 0x01D403, 0, { 0x000064 }}, /* 1D403; 0064; Additional folding */ { 0x01D404, 0, { 0x000065 }}, /* 1D404; 0065; Additional folding */ { 0x01D405, 0, { 0x000066 }}, /* 1D405; 0066; Additional folding */ { 0x01D406, 0, { 0x000067 }}, /* 1D406; 0067; Additional folding */ { 0x01D407, 0, { 0x000068 }}, /* 1D407; 0068; Additional folding */ { 0x01D408, 0, { 0x000069 }}, /* 1D408; 0069; Additional folding */ { 0x01D409, 0, { 0x00006A }}, /* 1D409; 006A; Additional folding */ { 0x01D40A, 0, { 0x00006B }}, /* 1D40A; 006B; Additional folding */ { 0x01D40B, 0, { 0x00006C }}, /* 1D40B; 006C; Additional folding */ { 0x01D40C, 0, { 0x00006D }}, /* 1D40C; 006D; Additional folding */ { 0x01D40D, 0, { 0x00006E }}, /* 1D40D; 006E; Additional folding */ { 0x01D40E, 0, { 0x00006F }}, /* 1D40E; 006F; Additional folding */ { 0x01D40F, 0, { 0x000070 }}, /* 1D40F; 0070; Additional folding */ { 0x01D410, 0, { 0x000071 }}, /* 1D410; 0071; Additional folding */ { 0x01D411, 0, { 0x000072 }}, /* 1D411; 0072; Additional folding */ { 0x01D412, 0, { 0x000073 }}, /* 1D412; 0073; Additional folding */ { 0x01D413, 0, { 0x000074 }}, /* 1D413; 0074; Additional folding */ { 0x01D414, 0, { 0x000075 }}, /* 1D414; 0075; Additional folding */ { 0x01D415, 0, { 0x000076 }}, /* 1D415; 0076; Additional folding */ { 0x01D416, 0, { 0x000077 }}, /* 1D416; 0077; Additional folding */ { 0x01D417, 0, { 0x000078 }}, /* 1D417; 0078; Additional folding */ { 0x01D418, 0, { 0x000079 }}, /* 1D418; 0079; Additional folding */ { 0x01D419, 0, { 0x00007A }}, /* 1D419; 007A; Additional folding */ { 0x01D434, 0, { 0x000061 }}, /* 1D434; 0061; Additional folding */ { 0x01D435, 0, { 0x000062 }}, /* 1D435; 0062; Additional folding */ { 0x01D436, 0, { 0x000063 }}, /* 1D436; 0063; Additional folding */ { 0x01D437, 0, { 0x000064 }}, /* 1D437; 0064; Additional folding */ { 0x01D438, 0, { 0x000065 }}, /* 1D438; 0065; Additional folding */ { 0x01D439, 0, { 0x000066 }}, /* 1D439; 0066; Additional folding */ { 0x01D43A, 0, { 0x000067 }}, /* 1D43A; 0067; Additional folding */ { 0x01D43B, 0, { 0x000068 }}, /* 1D43B; 0068; Additional folding */ { 0x01D43C, 0, { 0x000069 }}, /* 1D43C; 0069; Additional folding */ { 0x01D43D, 0, { 0x00006A }}, /* 1D43D; 006A; Additional folding */ { 0x01D43E, 0, { 0x00006B }}, /* 1D43E; 006B; Additional folding */ { 0x01D43F, 0, { 0x00006C }}, /* 1D43F; 006C; Additional folding */ { 0x01D440, 0, { 0x00006D }}, /* 1D440; 006D; Additional folding */ { 0x01D441, 0, { 0x00006E }}, /* 1D441; 006E; Additional folding */ { 0x01D442, 0, { 0x00006F }}, /* 1D442; 006F; Additional folding */ { 0x01D443, 0, { 0x000070 }}, /* 1D443; 0070; Additional folding */ { 0x01D444, 0, { 0x000071 }}, /* 1D444; 0071; Additional folding */ { 0x01D445, 0, { 0x000072 }}, /* 1D445; 0072; Additional folding */ { 0x01D446, 0, { 0x000073 }}, /* 1D446; 0073; Additional folding */ { 0x01D447, 0, { 0x000074 }}, /* 1D447; 0074; Additional folding */ { 0x01D448, 0, { 0x000075 }}, /* 1D448; 0075; Additional folding */ { 0x01D449, 0, { 0x000076 }}, /* 1D449; 0076; Additional folding */ { 0x01D44A, 0, { 0x000077 }}, /* 1D44A; 0077; Additional folding */ { 0x01D44B, 0, { 0x000078 }}, /* 1D44B; 0078; Additional folding */ { 0x01D44C, 0, { 0x000079 }}, /* 1D44C; 0079; Additional folding */ { 0x01D44D, 0, { 0x00007A }}, /* 1D44D; 007A; Additional folding */ { 0x01D468, 0, { 0x000061 }}, /* 1D468; 0061; Additional folding */ { 0x01D469, 0, { 0x000062 }}, /* 1D469; 0062; Additional folding */ { 0x01D46A, 0, { 0x000063 }}, /* 1D46A; 0063; Additional folding */ { 0x01D46B, 0, { 0x000064 }}, /* 1D46B; 0064; Additional folding */ { 0x01D46C, 0, { 0x000065 }}, /* 1D46C; 0065; Additional folding */ { 0x01D46D, 0, { 0x000066 }}, /* 1D46D; 0066; Additional folding */ { 0x01D46E, 0, { 0x000067 }}, /* 1D46E; 0067; Additional folding */ { 0x01D46F, 0, { 0x000068 }}, /* 1D46F; 0068; Additional folding */ { 0x01D470, 0, { 0x000069 }}, /* 1D470; 0069; Additional folding */ { 0x01D471, 0, { 0x00006A }}, /* 1D471; 006A; Additional folding */ { 0x01D472, 0, { 0x00006B }}, /* 1D472; 006B; Additional folding */ { 0x01D473, 0, { 0x00006C }}, /* 1D473; 006C; Additional folding */ { 0x01D474, 0, { 0x00006D }}, /* 1D474; 006D; Additional folding */ { 0x01D475, 0, { 0x00006E }}, /* 1D475; 006E; Additional folding */ { 0x01D476, 0, { 0x00006F }}, /* 1D476; 006F; Additional folding */ { 0x01D477, 0, { 0x000070 }}, /* 1D477; 0070; Additional folding */ { 0x01D478, 0, { 0x000071 }}, /* 1D478; 0071; Additional folding */ { 0x01D479, 0, { 0x000072 }}, /* 1D479; 0072; Additional folding */ { 0x01D47A, 0, { 0x000073 }}, /* 1D47A; 0073; Additional folding */ { 0x01D47B, 0, { 0x000074 }}, /* 1D47B; 0074; Additional folding */ { 0x01D47C, 0, { 0x000075 }}, /* 1D47C; 0075; Additional folding */ { 0x01D47D, 0, { 0x000076 }}, /* 1D47D; 0076; Additional folding */ { 0x01D47E, 0, { 0x000077 }}, /* 1D47E; 0077; Additional folding */ { 0x01D47F, 0, { 0x000078 }}, /* 1D47F; 0078; Additional folding */ { 0x01D480, 0, { 0x000079 }}, /* 1D480; 0079; Additional folding */ { 0x01D481, 0, { 0x00007A }}, /* 1D481; 007A; Additional folding */ { 0x01D49C, 0, { 0x000061 }}, /* 1D49C; 0061; Additional folding */ { 0x01D49E, 0, { 0x000063 }}, /* 1D49E; 0063; Additional folding */ { 0x01D49F, 0, { 0x000064 }}, /* 1D49F; 0064; Additional folding */ { 0x01D4A2, 0, { 0x000067 }}, /* 1D4A2; 0067; Additional folding */ { 0x01D4A5, 0, { 0x00006A }}, /* 1D4A5; 006A; Additional folding */ { 0x01D4A6, 0, { 0x00006B }}, /* 1D4A6; 006B; Additional folding */ { 0x01D4A9, 0, { 0x00006E }}, /* 1D4A9; 006E; Additional folding */ { 0x01D4AA, 0, { 0x00006F }}, /* 1D4AA; 006F; Additional folding */ { 0x01D4AB, 0, { 0x000070 }}, /* 1D4AB; 0070; Additional folding */ { 0x01D4AC, 0, { 0x000071 }}, /* 1D4AC; 0071; Additional folding */ { 0x01D4AE, 0, { 0x000073 }}, /* 1D4AE; 0073; Additional folding */ { 0x01D4AF, 0, { 0x000074 }}, /* 1D4AF; 0074; Additional folding */ { 0x01D4B0, 0, { 0x000075 }}, /* 1D4B0; 0075; Additional folding */ { 0x01D4B1, 0, { 0x000076 }}, /* 1D4B1; 0076; Additional folding */ { 0x01D4B2, 0, { 0x000077 }}, /* 1D4B2; 0077; Additional folding */ { 0x01D4B3, 0, { 0x000078 }}, /* 1D4B3; 0078; Additional folding */ { 0x01D4B4, 0, { 0x000079 }}, /* 1D4B4; 0079; Additional folding */ { 0x01D4B5, 0, { 0x00007A }}, /* 1D4B5; 007A; Additional folding */ { 0x01D4D0, 0, { 0x000061 }}, /* 1D4D0; 0061; Additional folding */ { 0x01D4D1, 0, { 0x000062 }}, /* 1D4D1; 0062; Additional folding */ { 0x01D4D2, 0, { 0x000063 }}, /* 1D4D2; 0063; Additional folding */ { 0x01D4D3, 0, { 0x000064 }}, /* 1D4D3; 0064; Additional folding */ { 0x01D4D4, 0, { 0x000065 }}, /* 1D4D4; 0065; Additional folding */ { 0x01D4D5, 0, { 0x000066 }}, /* 1D4D5; 0066; Additional folding */ { 0x01D4D6, 0, { 0x000067 }}, /* 1D4D6; 0067; Additional folding */ { 0x01D4D7, 0, { 0x000068 }}, /* 1D4D7; 0068; Additional folding */ { 0x01D4D8, 0, { 0x000069 }}, /* 1D4D8; 0069; Additional folding */ { 0x01D4D9, 0, { 0x00006A }}, /* 1D4D9; 006A; Additional folding */ { 0x01D4DA, 0, { 0x00006B }}, /* 1D4DA; 006B; Additional folding */ { 0x01D4DB, 0, { 0x00006C }}, /* 1D4DB; 006C; Additional folding */ { 0x01D4DC, 0, { 0x00006D }}, /* 1D4DC; 006D; Additional folding */ { 0x01D4DD, 0, { 0x00006E }}, /* 1D4DD; 006E; Additional folding */ { 0x01D4DE, 0, { 0x00006F }}, /* 1D4DE; 006F; Additional folding */ { 0x01D4DF, 0, { 0x000070 }}, /* 1D4DF; 0070; Additional folding */ { 0x01D4E0, 0, { 0x000071 }}, /* 1D4E0; 0071; Additional folding */ { 0x01D4E1, 0, { 0x000072 }}, /* 1D4E1; 0072; Additional folding */ { 0x01D4E2, 0, { 0x000073 }}, /* 1D4E2; 0073; Additional folding */ { 0x01D4E3, 0, { 0x000074 }}, /* 1D4E3; 0074; Additional folding */ { 0x01D4E4, 0, { 0x000075 }}, /* 1D4E4; 0075; Additional folding */ { 0x01D4E5, 0, { 0x000076 }}, /* 1D4E5; 0076; Additional folding */ { 0x01D4E6, 0, { 0x000077 }}, /* 1D4E6; 0077; Additional folding */ { 0x01D4E7, 0, { 0x000078 }}, /* 1D4E7; 0078; Additional folding */ { 0x01D4E8, 0, { 0x000079 }}, /* 1D4E8; 0079; Additional folding */ { 0x01D4E9, 0, { 0x00007A }}, /* 1D4E9; 007A; Additional folding */ { 0x01D504, 0, { 0x000061 }}, /* 1D504; 0061; Additional folding */ { 0x01D505, 0, { 0x000062 }}, /* 1D505; 0062; Additional folding */ { 0x01D507, 0, { 0x000064 }}, /* 1D507; 0064; Additional folding */ { 0x01D508, 0, { 0x000065 }}, /* 1D508; 0065; Additional folding */ { 0x01D509, 0, { 0x000066 }}, /* 1D509; 0066; Additional folding */ { 0x01D50A, 0, { 0x000067 }}, /* 1D50A; 0067; Additional folding */ { 0x01D50D, 0, { 0x00006A }}, /* 1D50D; 006A; Additional folding */ { 0x01D50E, 0, { 0x00006B }}, /* 1D50E; 006B; Additional folding */ { 0x01D50F, 0, { 0x00006C }}, /* 1D50F; 006C; Additional folding */ { 0x01D510, 0, { 0x00006D }}, /* 1D510; 006D; Additional folding */ { 0x01D511, 0, { 0x00006E }}, /* 1D511; 006E; Additional folding */ { 0x01D512, 0, { 0x00006F }}, /* 1D512; 006F; Additional folding */ { 0x01D513, 0, { 0x000070 }}, /* 1D513; 0070; Additional folding */ { 0x01D514, 0, { 0x000071 }}, /* 1D514; 0071; Additional folding */ { 0x01D516, 0, { 0x000073 }}, /* 1D516; 0073; Additional folding */ { 0x01D517, 0, { 0x000074 }}, /* 1D517; 0074; Additional folding */ { 0x01D518, 0, { 0x000075 }}, /* 1D518; 0075; Additional folding */ { 0x01D519, 0, { 0x000076 }}, /* 1D519; 0076; Additional folding */ { 0x01D51A, 0, { 0x000077 }}, /* 1D51A; 0077; Additional folding */ { 0x01D51B, 0, { 0x000078 }}, /* 1D51B; 0078; Additional folding */ { 0x01D51C, 0, { 0x000079 }}, /* 1D51C; 0079; Additional folding */ { 0x01D538, 0, { 0x000061 }}, /* 1D538; 0061; Additional folding */ { 0x01D539, 0, { 0x000062 }}, /* 1D539; 0062; Additional folding */ { 0x01D53B, 0, { 0x000064 }}, /* 1D53B; 0064; Additional folding */ { 0x01D53C, 0, { 0x000065 }}, /* 1D53C; 0065; Additional folding */ { 0x01D53D, 0, { 0x000066 }}, /* 1D53D; 0066; Additional folding */ { 0x01D53E, 0, { 0x000067 }}, /* 1D53E; 0067; Additional folding */ { 0x01D540, 0, { 0x000069 }}, /* 1D540; 0069; Additional folding */ { 0x01D541, 0, { 0x00006A }}, /* 1D541; 006A; Additional folding */ { 0x01D542, 0, { 0x00006B }}, /* 1D542; 006B; Additional folding */ { 0x01D543, 0, { 0x00006C }}, /* 1D543; 006C; Additional folding */ { 0x01D544, 0, { 0x00006D }}, /* 1D544; 006D; Additional folding */ { 0x01D546, 0, { 0x00006F }}, /* 1D546; 006F; Additional folding */ { 0x01D54A, 0, { 0x000073 }}, /* 1D54A; 0073; Additional folding */ { 0x01D54B, 0, { 0x000074 }}, /* 1D54B; 0074; Additional folding */ { 0x01D54C, 0, { 0x000075 }}, /* 1D54C; 0075; Additional folding */ { 0x01D54D, 0, { 0x000076 }}, /* 1D54D; 0076; Additional folding */ { 0x01D54E, 0, { 0x000077 }}, /* 1D54E; 0077; Additional folding */ { 0x01D54F, 0, { 0x000078 }}, /* 1D54F; 0078; Additional folding */ { 0x01D550, 0, { 0x000079 }}, /* 1D550; 0079; Additional folding */ { 0x01D56C, 0, { 0x000061 }}, /* 1D56C; 0061; Additional folding */ { 0x01D56D, 0, { 0x000062 }}, /* 1D56D; 0062; Additional folding */ { 0x01D56E, 0, { 0x000063 }}, /* 1D56E; 0063; Additional folding */ { 0x01D56F, 0, { 0x000064 }}, /* 1D56F; 0064; Additional folding */ { 0x01D570, 0, { 0x000065 }}, /* 1D570; 0065; Additional folding */ { 0x01D571, 0, { 0x000066 }}, /* 1D571; 0066; Additional folding */ { 0x01D572, 0, { 0x000067 }}, /* 1D572; 0067; Additional folding */ { 0x01D573, 0, { 0x000068 }}, /* 1D573; 0068; Additional folding */ { 0x01D574, 0, { 0x000069 }}, /* 1D574; 0069; Additional folding */ { 0x01D575, 0, { 0x00006A }}, /* 1D575; 006A; Additional folding */ { 0x01D576, 0, { 0x00006B }}, /* 1D576; 006B; Additional folding */ { 0x01D577, 0, { 0x00006C }}, /* 1D577; 006C; Additional folding */ { 0x01D578, 0, { 0x00006D }}, /* 1D578; 006D; Additional folding */ { 0x01D579, 0, { 0x00006E }}, /* 1D579; 006E; Additional folding */ { 0x01D57A, 0, { 0x00006F }}, /* 1D57A; 006F; Additional folding */ { 0x01D57B, 0, { 0x000070 }}, /* 1D57B; 0070; Additional folding */ { 0x01D57C, 0, { 0x000071 }}, /* 1D57C; 0071; Additional folding */ { 0x01D57D, 0, { 0x000072 }}, /* 1D57D; 0072; Additional folding */ { 0x01D57E, 0, { 0x000073 }}, /* 1D57E; 0073; Additional folding */ { 0x01D57F, 0, { 0x000074 }}, /* 1D57F; 0074; Additional folding */ { 0x01D580, 0, { 0x000075 }}, /* 1D580; 0075; Additional folding */ { 0x01D581, 0, { 0x000076 }}, /* 1D581; 0076; Additional folding */ { 0x01D582, 0, { 0x000077 }}, /* 1D582; 0077; Additional folding */ { 0x01D583, 0, { 0x000078 }}, /* 1D583; 0078; Additional folding */ { 0x01D584, 0, { 0x000079 }}, /* 1D584; 0079; Additional folding */ { 0x01D585, 0, { 0x00007A }}, /* 1D585; 007A; Additional folding */ { 0x01D5A0, 0, { 0x000061 }}, /* 1D5A0; 0061; Additional folding */ { 0x01D5A1, 0, { 0x000062 }}, /* 1D5A1; 0062; Additional folding */ { 0x01D5A2, 0, { 0x000063 }}, /* 1D5A2; 0063; Additional folding */ { 0x01D5A3, 0, { 0x000064 }}, /* 1D5A3; 0064; Additional folding */ { 0x01D5A4, 0, { 0x000065 }}, /* 1D5A4; 0065; Additional folding */ { 0x01D5A5, 0, { 0x000066 }}, /* 1D5A5; 0066; Additional folding */ { 0x01D5A6, 0, { 0x000067 }}, /* 1D5A6; 0067; Additional folding */ { 0x01D5A7, 0, { 0x000068 }}, /* 1D5A7; 0068; Additional folding */ { 0x01D5A8, 0, { 0x000069 }}, /* 1D5A8; 0069; Additional folding */ { 0x01D5A9, 0, { 0x00006A }}, /* 1D5A9; 006A; Additional folding */ { 0x01D5AA, 0, { 0x00006B }}, /* 1D5AA; 006B; Additional folding */ { 0x01D5AB, 0, { 0x00006C }}, /* 1D5AB; 006C; Additional folding */ { 0x01D5AC, 0, { 0x00006D }}, /* 1D5AC; 006D; Additional folding */ { 0x01D5AD, 0, { 0x00006E }}, /* 1D5AD; 006E; Additional folding */ { 0x01D5AE, 0, { 0x00006F }}, /* 1D5AE; 006F; Additional folding */ { 0x01D5AF, 0, { 0x000070 }}, /* 1D5AF; 0070; Additional folding */ { 0x01D5B0, 0, { 0x000071 }}, /* 1D5B0; 0071; Additional folding */ { 0x01D5B1, 0, { 0x000072 }}, /* 1D5B1; 0072; Additional folding */ { 0x01D5B2, 0, { 0x000073 }}, /* 1D5B2; 0073; Additional folding */ { 0x01D5B3, 0, { 0x000074 }}, /* 1D5B3; 0074; Additional folding */ { 0x01D5B4, 0, { 0x000075 }}, /* 1D5B4; 0075; Additional folding */ { 0x01D5B5, 0, { 0x000076 }}, /* 1D5B5; 0076; Additional folding */ { 0x01D5B6, 0, { 0x000077 }}, /* 1D5B6; 0077; Additional folding */ { 0x01D5B7, 0, { 0x000078 }}, /* 1D5B7; 0078; Additional folding */ { 0x01D5B8, 0, { 0x000079 }}, /* 1D5B8; 0079; Additional folding */ { 0x01D5B9, 0, { 0x00007A }}, /* 1D5B9; 007A; Additional folding */ { 0x01D5D4, 0, { 0x000061 }}, /* 1D5D4; 0061; Additional folding */ { 0x01D5D5, 0, { 0x000062 }}, /* 1D5D5; 0062; Additional folding */ { 0x01D5D6, 0, { 0x000063 }}, /* 1D5D6; 0063; Additional folding */ { 0x01D5D7, 0, { 0x000064 }}, /* 1D5D7; 0064; Additional folding */ { 0x01D5D8, 0, { 0x000065 }}, /* 1D5D8; 0065; Additional folding */ { 0x01D5D9, 0, { 0x000066 }}, /* 1D5D9; 0066; Additional folding */ { 0x01D5DA, 0, { 0x000067 }}, /* 1D5DA; 0067; Additional folding */ { 0x01D5DB, 0, { 0x000068 }}, /* 1D5DB; 0068; Additional folding */ { 0x01D5DC, 0, { 0x000069 }}, /* 1D5DC; 0069; Additional folding */ { 0x01D5DD, 0, { 0x00006A }}, /* 1D5DD; 006A; Additional folding */ { 0x01D5DE, 0, { 0x00006B }}, /* 1D5DE; 006B; Additional folding */ { 0x01D5DF, 0, { 0x00006C }}, /* 1D5DF; 006C; Additional folding */ { 0x01D5E0, 0, { 0x00006D }}, /* 1D5E0; 006D; Additional folding */ { 0x01D5E1, 0, { 0x00006E }}, /* 1D5E1; 006E; Additional folding */ { 0x01D5E2, 0, { 0x00006F }}, /* 1D5E2; 006F; Additional folding */ { 0x01D5E3, 0, { 0x000070 }}, /* 1D5E3; 0070; Additional folding */ { 0x01D5E4, 0, { 0x000071 }}, /* 1D5E4; 0071; Additional folding */ { 0x01D5E5, 0, { 0x000072 }}, /* 1D5E5; 0072; Additional folding */ { 0x01D5E6, 0, { 0x000073 }}, /* 1D5E6; 0073; Additional folding */ { 0x01D5E7, 0, { 0x000074 }}, /* 1D5E7; 0074; Additional folding */ { 0x01D5E8, 0, { 0x000075 }}, /* 1D5E8; 0075; Additional folding */ { 0x01D5E9, 0, { 0x000076 }}, /* 1D5E9; 0076; Additional folding */ { 0x01D5EA, 0, { 0x000077 }}, /* 1D5EA; 0077; Additional folding */ { 0x01D5EB, 0, { 0x000078 }}, /* 1D5EB; 0078; Additional folding */ { 0x01D5EC, 0, { 0x000079 }}, /* 1D5EC; 0079; Additional folding */ { 0x01D5ED, 0, { 0x00007A }}, /* 1D5ED; 007A; Additional folding */ { 0x01D608, 0, { 0x000061 }}, /* 1D608; 0061; Additional folding */ { 0x01D609, 0, { 0x000062 }}, /* 1D609; 0062; Additional folding */ { 0x01D60A, 0, { 0x000063 }}, /* 1D60A; 0063; Additional folding */ { 0x01D60B, 0, { 0x000064 }}, /* 1D60B; 0064; Additional folding */ { 0x01D60C, 0, { 0x000065 }}, /* 1D60C; 0065; Additional folding */ { 0x01D60D, 0, { 0x000066 }}, /* 1D60D; 0066; Additional folding */ { 0x01D60E, 0, { 0x000067 }}, /* 1D60E; 0067; Additional folding */ { 0x01D60F, 0, { 0x000068 }}, /* 1D60F; 0068; Additional folding */ { 0x01D610, 0, { 0x000069 }}, /* 1D610; 0069; Additional folding */ { 0x01D611, 0, { 0x00006A }}, /* 1D611; 006A; Additional folding */ { 0x01D612, 0, { 0x00006B }}, /* 1D612; 006B; Additional folding */ { 0x01D613, 0, { 0x00006C }}, /* 1D613; 006C; Additional folding */ { 0x01D614, 0, { 0x00006D }}, /* 1D614; 006D; Additional folding */ { 0x01D615, 0, { 0x00006E }}, /* 1D615; 006E; Additional folding */ { 0x01D616, 0, { 0x00006F }}, /* 1D616; 006F; Additional folding */ { 0x01D617, 0, { 0x000070 }}, /* 1D617; 0070; Additional folding */ { 0x01D618, 0, { 0x000071 }}, /* 1D618; 0071; Additional folding */ { 0x01D619, 0, { 0x000072 }}, /* 1D619; 0072; Additional folding */ { 0x01D61A, 0, { 0x000073 }}, /* 1D61A; 0073; Additional folding */ { 0x01D61B, 0, { 0x000074 }}, /* 1D61B; 0074; Additional folding */ { 0x01D61C, 0, { 0x000075 }}, /* 1D61C; 0075; Additional folding */ { 0x01D61D, 0, { 0x000076 }}, /* 1D61D; 0076; Additional folding */ { 0x01D61E, 0, { 0x000077 }}, /* 1D61E; 0077; Additional folding */ { 0x01D61F, 0, { 0x000078 }}, /* 1D61F; 0078; Additional folding */ { 0x01D620, 0, { 0x000079 }}, /* 1D620; 0079; Additional folding */ { 0x01D621, 0, { 0x00007A }}, /* 1D621; 007A; Additional folding */ { 0x01D63C, 0, { 0x000061 }}, /* 1D63C; 0061; Additional folding */ { 0x01D63D, 0, { 0x000062 }}, /* 1D63D; 0062; Additional folding */ { 0x01D63E, 0, { 0x000063 }}, /* 1D63E; 0063; Additional folding */ { 0x01D63F, 0, { 0x000064 }}, /* 1D63F; 0064; Additional folding */ { 0x01D640, 0, { 0x000065 }}, /* 1D640; 0065; Additional folding */ { 0x01D641, 0, { 0x000066 }}, /* 1D641; 0066; Additional folding */ { 0x01D642, 0, { 0x000067 }}, /* 1D642; 0067; Additional folding */ { 0x01D643, 0, { 0x000068 }}, /* 1D643; 0068; Additional folding */ { 0x01D644, 0, { 0x000069 }}, /* 1D644; 0069; Additional folding */ { 0x01D645, 0, { 0x00006A }}, /* 1D645; 006A; Additional folding */ { 0x01D646, 0, { 0x00006B }}, /* 1D646; 006B; Additional folding */ { 0x01D647, 0, { 0x00006C }}, /* 1D647; 006C; Additional folding */ { 0x01D648, 0, { 0x00006D }}, /* 1D648; 006D; Additional folding */ { 0x01D649, 0, { 0x00006E }}, /* 1D649; 006E; Additional folding */ { 0x01D64A, 0, { 0x00006F }}, /* 1D64A; 006F; Additional folding */ { 0x01D64B, 0, { 0x000070 }}, /* 1D64B; 0070; Additional folding */ { 0x01D64C, 0, { 0x000071 }}, /* 1D64C; 0071; Additional folding */ { 0x01D64D, 0, { 0x000072 }}, /* 1D64D; 0072; Additional folding */ { 0x01D64E, 0, { 0x000073 }}, /* 1D64E; 0073; Additional folding */ { 0x01D64F, 0, { 0x000074 }}, /* 1D64F; 0074; Additional folding */ { 0x01D650, 0, { 0x000075 }}, /* 1D650; 0075; Additional folding */ { 0x01D651, 0, { 0x000076 }}, /* 1D651; 0076; Additional folding */ { 0x01D652, 0, { 0x000077 }}, /* 1D652; 0077; Additional folding */ { 0x01D653, 0, { 0x000078 }}, /* 1D653; 0078; Additional folding */ { 0x01D654, 0, { 0x000079 }}, /* 1D654; 0079; Additional folding */ { 0x01D655, 0, { 0x00007A }}, /* 1D655; 007A; Additional folding */ { 0x01D670, 0, { 0x000061 }}, /* 1D670; 0061; Additional folding */ { 0x01D671, 0, { 0x000062 }}, /* 1D671; 0062; Additional folding */ { 0x01D672, 0, { 0x000063 }}, /* 1D672; 0063; Additional folding */ { 0x01D673, 0, { 0x000064 }}, /* 1D673; 0064; Additional folding */ { 0x01D674, 0, { 0x000065 }}, /* 1D674; 0065; Additional folding */ { 0x01D675, 0, { 0x000066 }}, /* 1D675; 0066; Additional folding */ { 0x01D676, 0, { 0x000067 }}, /* 1D676; 0067; Additional folding */ { 0x01D677, 0, { 0x000068 }}, /* 1D677; 0068; Additional folding */ { 0x01D678, 0, { 0x000069 }}, /* 1D678; 0069; Additional folding */ { 0x01D679, 0, { 0x00006A }}, /* 1D679; 006A; Additional folding */ { 0x01D67A, 0, { 0x00006B }}, /* 1D67A; 006B; Additional folding */ { 0x01D67B, 0, { 0x00006C }}, /* 1D67B; 006C; Additional folding */ { 0x01D67C, 0, { 0x00006D }}, /* 1D67C; 006D; Additional folding */ { 0x01D67D, 0, { 0x00006E }}, /* 1D67D; 006E; Additional folding */ { 0x01D67E, 0, { 0x00006F }}, /* 1D67E; 006F; Additional folding */ { 0x01D67F, 0, { 0x000070 }}, /* 1D67F; 0070; Additional folding */ { 0x01D680, 0, { 0x000071 }}, /* 1D680; 0071; Additional folding */ { 0x01D681, 0, { 0x000072 }}, /* 1D681; 0072; Additional folding */ { 0x01D682, 0, { 0x000073 }}, /* 1D682; 0073; Additional folding */ { 0x01D683, 0, { 0x000074 }}, /* 1D683; 0074; Additional folding */ { 0x01D684, 0, { 0x000075 }}, /* 1D684; 0075; Additional folding */ { 0x01D685, 0, { 0x000076 }}, /* 1D685; 0076; Additional folding */ { 0x01D686, 0, { 0x000077 }}, /* 1D686; 0077; Additional folding */ { 0x01D687, 0, { 0x000078 }}, /* 1D687; 0078; Additional folding */ { 0x01D688, 0, { 0x000079 }}, /* 1D688; 0079; Additional folding */ { 0x01D689, 0, { 0x00007A }}, /* 1D689; 007A; Additional folding */ { 0x01D6A8, 0, { 0x0003B1 }}, /* 1D6A8; 03B1; Additional folding */ { 0x01D6A9, 0, { 0x0003B2 }}, /* 1D6A9; 03B2; Additional folding */ { 0x01D6AA, 0, { 0x0003B3 }}, /* 1D6AA; 03B3; Additional folding */ { 0x01D6AB, 0, { 0x0003B4 }}, /* 1D6AB; 03B4; Additional folding */ { 0x01D6AC, 0, { 0x0003B5 }}, /* 1D6AC; 03B5; Additional folding */ { 0x01D6AD, 0, { 0x0003B6 }}, /* 1D6AD; 03B6; Additional folding */ { 0x01D6AE, 0, { 0x0003B7 }}, /* 1D6AE; 03B7; Additional folding */ { 0x01D6AF, 0, { 0x0003B8 }}, /* 1D6AF; 03B8; Additional folding */ { 0x01D6B0, 0, { 0x0003B9 }}, /* 1D6B0; 03B9; Additional folding */ { 0x01D6B1, 0, { 0x0003BA }}, /* 1D6B1; 03BA; Additional folding */ { 0x01D6B2, 0, { 0x0003BB }}, /* 1D6B2; 03BB; Additional folding */ { 0x01D6B3, 0, { 0x0003BC }}, /* 1D6B3; 03BC; Additional folding */ { 0x01D6B4, 0, { 0x0003BD }}, /* 1D6B4; 03BD; Additional folding */ { 0x01D6B5, 0, { 0x0003BE }}, /* 1D6B5; 03BE; Additional folding */ { 0x01D6B6, 0, { 0x0003BF }}, /* 1D6B6; 03BF; Additional folding */ { 0x01D6B7, 0, { 0x0003C0 }}, /* 1D6B7; 03C0; Additional folding */ { 0x01D6B8, 0, { 0x0003C1 }}, /* 1D6B8; 03C1; Additional folding */ { 0x01D6B9, 0, { 0x0003B8 }}, /* 1D6B9; 03B8; Additional folding */ { 0x01D6BA, 0, { 0x0003C3 }}, /* 1D6BA; 03C3; Additional folding */ { 0x01D6BB, 0, { 0x0003C4 }}, /* 1D6BB; 03C4; Additional folding */ { 0x01D6BC, 0, { 0x0003C5 }}, /* 1D6BC; 03C5; Additional folding */ { 0x01D6BD, 0, { 0x0003C6 }}, /* 1D6BD; 03C6; Additional folding */ { 0x01D6BE, 0, { 0x0003C7 }}, /* 1D6BE; 03C7; Additional folding */ { 0x01D6BF, 0, { 0x0003C8 }}, /* 1D6BF; 03C8; Additional folding */ { 0x01D6C0, 0, { 0x0003C9 }}, /* 1D6C0; 03C9; Additional folding */ { 0x01D6D3, 0, { 0x0003C3 }}, /* 1D6D3; 03C3; Additional folding */ { 0x01D6E2, 0, { 0x0003B1 }}, /* 1D6E2; 03B1; Additional folding */ { 0x01D6E3, 0, { 0x0003B2 }}, /* 1D6E3; 03B2; Additional folding */ { 0x01D6E4, 0, { 0x0003B3 }}, /* 1D6E4; 03B3; Additional folding */ { 0x01D6E5, 0, { 0x0003B4 }}, /* 1D6E5; 03B4; Additional folding */ { 0x01D6E6, 0, { 0x0003B5 }}, /* 1D6E6; 03B5; Additional folding */ { 0x01D6E7, 0, { 0x0003B6 }}, /* 1D6E7; 03B6; Additional folding */ { 0x01D6E8, 0, { 0x0003B7 }}, /* 1D6E8; 03B7; Additional folding */ { 0x01D6E9, 0, { 0x0003B8 }}, /* 1D6E9; 03B8; Additional folding */ { 0x01D6EA, 0, { 0x0003B9 }}, /* 1D6EA; 03B9; Additional folding */ { 0x01D6EB, 0, { 0x0003BA }}, /* 1D6EB; 03BA; Additional folding */ { 0x01D6EC, 0, { 0x0003BB }}, /* 1D6EC; 03BB; Additional folding */ { 0x01D6ED, 0, { 0x0003BC }}, /* 1D6ED; 03BC; Additional folding */ { 0x01D6EE, 0, { 0x0003BD }}, /* 1D6EE; 03BD; Additional folding */ { 0x01D6EF, 0, { 0x0003BE }}, /* 1D6EF; 03BE; Additional folding */ { 0x01D6F0, 0, { 0x0003BF }}, /* 1D6F0; 03BF; Additional folding */ { 0x01D6F1, 0, { 0x0003C0 }}, /* 1D6F1; 03C0; Additional folding */ { 0x01D6F2, 0, { 0x0003C1 }}, /* 1D6F2; 03C1; Additional folding */ { 0x01D6F3, 0, { 0x0003B8 }}, /* 1D6F3; 03B8; Additional folding */ { 0x01D6F4, 0, { 0x0003C3 }}, /* 1D6F4; 03C3; Additional folding */ { 0x01D6F5, 0, { 0x0003C4 }}, /* 1D6F5; 03C4; Additional folding */ { 0x01D6F6, 0, { 0x0003C5 }}, /* 1D6F6; 03C5; Additional folding */ { 0x01D6F7, 0, { 0x0003C6 }}, /* 1D6F7; 03C6; Additional folding */ { 0x01D6F8, 0, { 0x0003C7 }}, /* 1D6F8; 03C7; Additional folding */ { 0x01D6F9, 0, { 0x0003C8 }}, /* 1D6F9; 03C8; Additional folding */ { 0x01D6FA, 0, { 0x0003C9 }}, /* 1D6FA; 03C9; Additional folding */ { 0x01D70D, 0, { 0x0003C3 }}, /* 1D70D; 03C3; Additional folding */ { 0x01D71C, 0, { 0x0003B1 }}, /* 1D71C; 03B1; Additional folding */ { 0x01D71D, 0, { 0x0003B2 }}, /* 1D71D; 03B2; Additional folding */ { 0x01D71E, 0, { 0x0003B3 }}, /* 1D71E; 03B3; Additional folding */ { 0x01D71F, 0, { 0x0003B4 }}, /* 1D71F; 03B4; Additional folding */ { 0x01D720, 0, { 0x0003B5 }}, /* 1D720; 03B5; Additional folding */ { 0x01D721, 0, { 0x0003B6 }}, /* 1D721; 03B6; Additional folding */ { 0x01D722, 0, { 0x0003B7 }}, /* 1D722; 03B7; Additional folding */ { 0x01D723, 0, { 0x0003B8 }}, /* 1D723; 03B8; Additional folding */ { 0x01D724, 0, { 0x0003B9 }}, /* 1D724; 03B9; Additional folding */ { 0x01D725, 0, { 0x0003BA }}, /* 1D725; 03BA; Additional folding */ { 0x01D726, 0, { 0x0003BB }}, /* 1D726; 03BB; Additional folding */ { 0x01D727, 0, { 0x0003BC }}, /* 1D727; 03BC; Additional folding */ { 0x01D728, 0, { 0x0003BD }}, /* 1D728; 03BD; Additional folding */ { 0x01D729, 0, { 0x0003BE }}, /* 1D729; 03BE; Additional folding */ { 0x01D72A, 0, { 0x0003BF }}, /* 1D72A; 03BF; Additional folding */ { 0x01D72B, 0, { 0x0003C0 }}, /* 1D72B; 03C0; Additional folding */ { 0x01D72C, 0, { 0x0003C1 }}, /* 1D72C; 03C1; Additional folding */ { 0x01D72D, 0, { 0x0003B8 }}, /* 1D72D; 03B8; Additional folding */ { 0x01D72E, 0, { 0x0003C3 }}, /* 1D72E; 03C3; Additional folding */ { 0x01D72F, 0, { 0x0003C4 }}, /* 1D72F; 03C4; Additional folding */ { 0x01D730, 0, { 0x0003C5 }}, /* 1D730; 03C5; Additional folding */ { 0x01D731, 0, { 0x0003C6 }}, /* 1D731; 03C6; Additional folding */ { 0x01D732, 0, { 0x0003C7 }}, /* 1D732; 03C7; Additional folding */ { 0x01D733, 0, { 0x0003C8 }}, /* 1D733; 03C8; Additional folding */ { 0x01D734, 0, { 0x0003C9 }}, /* 1D734; 03C9; Additional folding */ { 0x01D747, 0, { 0x0003C3 }}, /* 1D747; 03C3; Additional folding */ { 0x01D756, 0, { 0x0003B1 }}, /* 1D756; 03B1; Additional folding */ { 0x01D757, 0, { 0x0003B2 }}, /* 1D757; 03B2; Additional folding */ { 0x01D758, 0, { 0x0003B3 }}, /* 1D758; 03B3; Additional folding */ { 0x01D759, 0, { 0x0003B4 }}, /* 1D759; 03B4; Additional folding */ { 0x01D75A, 0, { 0x0003B5 }}, /* 1D75A; 03B5; Additional folding */ { 0x01D75B, 0, { 0x0003B6 }}, /* 1D75B; 03B6; Additional folding */ { 0x01D75C, 0, { 0x0003B7 }}, /* 1D75C; 03B7; Additional folding */ { 0x01D75D, 0, { 0x0003B8 }}, /* 1D75D; 03B8; Additional folding */ { 0x01D75E, 0, { 0x0003B9 }}, /* 1D75E; 03B9; Additional folding */ { 0x01D75F, 0, { 0x0003BA }}, /* 1D75F; 03BA; Additional folding */ { 0x01D760, 0, { 0x0003BB }}, /* 1D760; 03BB; Additional folding */ { 0x01D761, 0, { 0x0003BC }}, /* 1D761; 03BC; Additional folding */ { 0x01D762, 0, { 0x0003BD }}, /* 1D762; 03BD; Additional folding */ { 0x01D763, 0, { 0x0003BE }}, /* 1D763; 03BE; Additional folding */ { 0x01D764, 0, { 0x0003BF }}, /* 1D764; 03BF; Additional folding */ { 0x01D765, 0, { 0x0003C0 }}, /* 1D765; 03C0; Additional folding */ { 0x01D766, 0, { 0x0003C1 }}, /* 1D766; 03C1; Additional folding */ { 0x01D767, 0, { 0x0003B8 }}, /* 1D767; 03B8; Additional folding */ { 0x01D768, 0, { 0x0003C3 }}, /* 1D768; 03C3; Additional folding */ { 0x01D769, 0, { 0x0003C4 }}, /* 1D769; 03C4; Additional folding */ { 0x01D76A, 0, { 0x0003C5 }}, /* 1D76A; 03C5; Additional folding */ { 0x01D76B, 0, { 0x0003C6 }}, /* 1D76B; 03C6; Additional folding */ { 0x01D76C, 0, { 0x0003C7 }}, /* 1D76C; 03C7; Additional folding */ { 0x01D76D, 0, { 0x0003C8 }}, /* 1D76D; 03C8; Additional folding */ { 0x01D76E, 0, { 0x0003C9 }}, /* 1D76E; 03C9; Additional folding */ { 0x01D781, 0, { 0x0003C3 }}, /* 1D781; 03C3; Additional folding */ { 0x01D790, 0, { 0x0003B1 }}, /* 1D790; 03B1; Additional folding */ { 0x01D791, 0, { 0x0003B2 }}, /* 1D791; 03B2; Additional folding */ { 0x01D792, 0, { 0x0003B3 }}, /* 1D792; 03B3; Additional folding */ { 0x01D793, 0, { 0x0003B4 }}, /* 1D793; 03B4; Additional folding */ { 0x01D794, 0, { 0x0003B5 }}, /* 1D794; 03B5; Additional folding */ { 0x01D795, 0, { 0x0003B6 }}, /* 1D795; 03B6; Additional folding */ { 0x01D796, 0, { 0x0003B7 }}, /* 1D796; 03B7; Additional folding */ { 0x01D797, 0, { 0x0003B8 }}, /* 1D797; 03B8; Additional folding */ { 0x01D798, 0, { 0x0003B9 }}, /* 1D798; 03B9; Additional folding */ { 0x01D799, 0, { 0x0003BA }}, /* 1D799; 03BA; Additional folding */ { 0x01D79A, 0, { 0x0003BB }}, /* 1D79A; 03BB; Additional folding */ { 0x01D79B, 0, { 0x0003BC }}, /* 1D79B; 03BC; Additional folding */ { 0x01D79C, 0, { 0x0003BD }}, /* 1D79C; 03BD; Additional folding */ { 0x01D79D, 0, { 0x0003BE }}, /* 1D79D; 03BE; Additional folding */ { 0x01D79E, 0, { 0x0003BF }}, /* 1D79E; 03BF; Additional folding */ { 0x01D79F, 0, { 0x0003C0 }}, /* 1D79F; 03C0; Additional folding */ { 0x01D7A0, 0, { 0x0003C1 }}, /* 1D7A0; 03C1; Additional folding */ { 0x01D7A1, 0, { 0x0003B8 }}, /* 1D7A1; 03B8; Additional folding */ { 0x01D7A2, 0, { 0x0003C3 }}, /* 1D7A2; 03C3; Additional folding */ { 0x01D7A3, 0, { 0x0003C4 }}, /* 1D7A3; 03C4; Additional folding */ { 0x01D7A4, 0, { 0x0003C5 }}, /* 1D7A4; 03C5; Additional folding */ { 0x01D7A5, 0, { 0x0003C6 }}, /* 1D7A5; 03C6; Additional folding */ { 0x01D7A6, 0, { 0x0003C7 }}, /* 1D7A6; 03C7; Additional folding */ { 0x01D7A7, 0, { 0x0003C8 }}, /* 1D7A7; 03C8; Additional folding */ { 0x01D7A8, 0, { 0x0003C9 }}, /* 1D7A8; 03C9; Additional folding */ { 0x01D7BB, 0, { 0x0003C3 }}, /* 1D7BB; 03C3; Additional folding */ { 0 }, }; /* * FF3A; FF5A; Case map * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 1D400; 0061; Additional folding 1D401; 0062; Additional folding 1D402; 0063; Additional folding 1D403; 0064; Additional folding 1D404; 0065; Additional folding 1D405; 0066; Additional folding 1D406; 0067; Additional folding 1D407; 0068; Additional folding 1D408; 0069; Additional folding 1D409; 006A; Additional folding 1D40A; 006B; Additional folding 1D40B; 006C; Additional folding 1D40C; 006D; Additional folding 1D40D; 006E; Additional folding 1D40E; 006F; Additional folding 1D40F; 0070; Additional folding 1D410; 0071; Additional folding 1D411; 0072; Additional folding 1D412; 0073; Additional folding 1D413; 0074; Additional folding 1D414; 0075; Additional folding 1D415; 0076; Additional folding 1D416; 0077; Additional folding 1D417; 0078; Additional folding 1D418; 0079; Additional folding 1D419; 007A; Additional folding 1D434; 0061; Additional folding 1D435; 0062; Additional folding 1D436; 0063; Additional folding 1D437; 0064; Additional folding 1D438; 0065; Additional folding 1D439; 0066; Additional folding 1D43A; 0067; Additional folding 1D43B; 0068; Additional folding 1D43C; 0069; Additional folding 1D43D; 006A; Additional folding 1D43E; 006B; Additional folding 1D43F; 006C; Additional folding 1D440; 006D; Additional folding 1D441; 006E; Additional folding 1D442; 006F; Additional folding 1D443; 0070; Additional folding 1D444; 0071; Additional folding 1D445; 0072; Additional folding 1D446; 0073; Additional folding 1D447; 0074; Additional folding 1D448; 0075; Additional folding 1D449; 0076; Additional folding 1D44A; 0077; Additional folding 1D44B; 0078; Additional folding 1D44C; 0079; Additional folding 1D44D; 007A; Additional folding 1D468; 0061; Additional folding 1D469; 0062; Additional folding 1D46A; 0063; Additional folding 1D46B; 0064; Additional folding 1D46C; 0065; Additional folding 1D46D; 0066; Additional folding 1D46E; 0067; Additional folding 1D46F; 0068; Additional folding 1D470; 0069; Additional folding 1D471; 006A; Additional folding 1D472; 006B; Additional folding 1D473; 006C; Additional folding 1D474; 006D; Additional folding 1D475; 006E; Additional folding 1D476; 006F; Additional folding 1D477; 0070; Additional folding 1D478; 0071; Additional folding 1D479; 0072; Additional folding 1D47A; 0073; Additional folding 1D47B; 0074; Additional folding 1D47C; 0075; Additional folding 1D47D; 0076; Additional folding 1D47E; 0077; Additional folding 1D47F; 0078; Additional folding 1D480; 0079; Additional folding 1D481; 007A; Additional folding 1D49C; 0061; Additional folding 1D49E; 0063; Additional folding 1D49F; 0064; Additional folding 1D4A2; 0067; Additional folding 1D4A5; 006A; Additional folding 1D4A6; 006B; Additional folding 1D4A9; 006E; Additional folding 1D4AA; 006F; Additional folding 1D4AB; 0070; Additional folding 1D4AC; 0071; Additional folding 1D4AE; 0073; Additional folding 1D4AF; 0074; Additional folding 1D4B0; 0075; Additional folding 1D4B1; 0076; Additional folding 1D4B2; 0077; Additional folding 1D4B3; 0078; Additional folding 1D4B4; 0079; Additional folding 1D4B5; 007A; Additional folding 1D4D0; 0061; Additional folding 1D4D1; 0062; Additional folding 1D4D2; 0063; Additional folding 1D4D3; 0064; Additional folding 1D4D4; 0065; Additional folding 1D4D5; 0066; Additional folding 1D4D6; 0067; Additional folding 1D4D7; 0068; Additional folding 1D4D8; 0069; Additional folding 1D4D9; 006A; Additional folding 1D4DA; 006B; Additional folding 1D4DB; 006C; Additional folding 1D4DC; 006D; Additional folding 1D4DD; 006E; Additional folding 1D4DE; 006F; Additional folding 1D4DF; 0070; Additional folding 1D4E0; 0071; Additional folding 1D4E1; 0072; Additional folding 1D4E2; 0073; Additional folding 1D4E3; 0074; Additional folding 1D4E4; 0075; Additional folding 1D4E5; 0076; Additional folding 1D4E6; 0077; Additional folding 1D4E7; 0078; Additional folding 1D4E8; 0079; Additional folding 1D4E9; 007A; Additional folding 1D504; 0061; Additional folding 1D505; 0062; Additional folding 1D507; 0064; Additional folding 1D508; 0065; Additional folding 1D509; 0066; Additional folding 1D50A; 0067; Additional folding 1D50D; 006A; Additional folding 1D50E; 006B; Additional folding 1D50F; 006C; Additional folding 1D510; 006D; Additional folding 1D511; 006E; Additional folding 1D512; 006F; Additional folding 1D513; 0070; Additional folding 1D514; 0071; Additional folding 1D516; 0073; Additional folding 1D517; 0074; Additional folding 1D518; 0075; Additional folding 1D519; 0076; Additional folding 1D51A; 0077; Additional folding 1D51B; 0078; Additional folding 1D51C; 0079; Additional folding 1D538; 0061; Additional folding 1D539; 0062; Additional folding 1D53B; 0064; Additional folding 1D53C; 0065; Additional folding 1D53D; 0066; Additional folding 1D53E; 0067; Additional folding 1D540; 0069; Additional folding 1D541; 006A; Additional folding 1D542; 006B; Additional folding 1D543; 006C; Additional folding 1D544; 006D; Additional folding 1D546; 006F; Additional folding 1D54A; 0073; Additional folding 1D54B; 0074; Additional folding 1D54C; 0075; Additional folding 1D54D; 0076; Additional folding 1D54E; 0077; Additional folding 1D54F; 0078; Additional folding 1D550; 0079; Additional folding 1D56C; 0061; Additional folding 1D56D; 0062; Additional folding 1D56E; 0063; Additional folding 1D56F; 0064; Additional folding 1D570; 0065; Additional folding 1D571; 0066; Additional folding 1D572; 0067; Additional folding 1D573; 0068; Additional folding 1D574; 0069; Additional folding 1D575; 006A; Additional folding 1D576; 006B; Additional folding 1D577; 006C; Additional folding 1D578; 006D; Additional folding 1D579; 006E; Additional folding 1D57A; 006F; Additional folding 1D57B; 0070; Additional folding 1D57C; 0071; Additional folding 1D57D; 0072; Additional folding 1D57E; 0073; Additional folding 1D57F; 0074; Additional folding 1D580; 0075; Additional folding 1D581; 0076; Additional folding 1D582; 0077; Additional folding 1D583; 0078; Additional folding 1D584; 0079; Additional folding 1D585; 007A; Additional folding 1D5A0; 0061; Additional folding 1D5A1; 0062; Additional folding 1D5A2; 0063; Additional folding 1D5A3; 0064; Additional folding 1D5A4; 0065; Additional folding 1D5A5; 0066; Additional folding 1D5A6; 0067; Additional folding 1D5A7; 0068; Additional folding 1D5A8; 0069; Additional folding 1D5A9; 006A; Additional folding 1D5AA; 006B; Additional folding 1D5AB; 006C; Additional folding 1D5AC; 006D; Additional folding 1D5AD; 006E; Additional folding 1D5AE; 006F; Additional folding 1D5AF; 0070; Additional folding 1D5B0; 0071; Additional folding 1D5B1; 0072; Additional folding 1D5B2; 0073; Additional folding 1D5B3; 0074; Additional folding 1D5B4; 0075; Additional folding 1D5B5; 0076; Additional folding 1D5B6; 0077; Additional folding 1D5B7; 0078; Additional folding 1D5B8; 0079; Additional folding 1D5B9; 007A; Additional folding 1D5D4; 0061; Additional folding 1D5D5; 0062; Additional folding 1D5D6; 0063; Additional folding 1D5D7; 0064; Additional folding 1D5D8; 0065; Additional folding 1D5D9; 0066; Additional folding 1D5DA; 0067; Additional folding 1D5DB; 0068; Additional folding 1D5DC; 0069; Additional folding 1D5DD; 006A; Additional folding 1D5DE; 006B; Additional folding 1D5DF; 006C; Additional folding 1D5E0; 006D; Additional folding 1D5E1; 006E; Additional folding 1D5E2; 006F; Additional folding 1D5E3; 0070; Additional folding 1D5E4; 0071; Additional folding 1D5E5; 0072; Additional folding 1D5E6; 0073; Additional folding 1D5E7; 0074; Additional folding 1D5E8; 0075; Additional folding 1D5E9; 0076; Additional folding 1D5EA; 0077; Additional folding 1D5EB; 0078; Additional folding 1D5EC; 0079; Additional folding 1D5ED; 007A; Additional folding 1D608; 0061; Additional folding 1D609; 0062; Additional folding 1D60A; 0063; Additional folding 1D60B; 0064; Additional folding 1D60C; 0065; Additional folding 1D60D; 0066; Additional folding 1D60E; 0067; Additional folding 1D60F; 0068; Additional folding 1D610; 0069; Additional folding 1D611; 006A; Additional folding 1D612; 006B; Additional folding 1D613; 006C; Additional folding 1D614; 006D; Additional folding 1D615; 006E; Additional folding 1D616; 006F; Additional folding 1D617; 0070; Additional folding 1D618; 0071; Additional folding 1D619; 0072; Additional folding 1D61A; 0073; Additional folding 1D61B; 0074; Additional folding 1D61C; 0075; Additional folding 1D61D; 0076; Additional folding 1D61E; 0077; Additional folding 1D61F; 0078; Additional folding 1D620; 0079; Additional folding 1D621; 007A; Additional folding 1D63C; 0061; Additional folding 1D63D; 0062; Additional folding 1D63E; 0063; Additional folding 1D63F; 0064; Additional folding 1D640; 0065; Additional folding 1D641; 0066; Additional folding 1D642; 0067; Additional folding 1D643; 0068; Additional folding 1D644; 0069; Additional folding 1D645; 006A; Additional folding 1D646; 006B; Additional folding 1D647; 006C; Additional folding 1D648; 006D; Additional folding 1D649; 006E; Additional folding 1D64A; 006F; Additional folding 1D64B; 0070; Additional folding 1D64C; 0071; Additional folding 1D64D; 0072; Additional folding 1D64E; 0073; Additional folding 1D64F; 0074; Additional folding 1D650; 0075; Additional folding 1D651; 0076; Additional folding 1D652; 0077; Additional folding 1D653; 0078; Additional folding 1D654; 0079; Additional folding 1D655; 007A; Additional folding 1D670; 0061; Additional folding 1D671; 0062; Additional folding 1D672; 0063; Additional folding 1D673; 0064; Additional folding 1D674; 0065; Additional folding 1D675; 0066; Additional folding 1D676; 0067; Additional folding 1D677; 0068; Additional folding 1D678; 0069; Additional folding 1D679; 006A; Additional folding 1D67A; 006B; Additional folding 1D67B; 006C; Additional folding 1D67C; 006D; Additional folding 1D67D; 006E; Additional folding 1D67E; 006F; Additional folding 1D67F; 0070; Additional folding 1D680; 0071; Additional folding 1D681; 0072; Additional folding 1D682; 0073; Additional folding 1D683; 0074; Additional folding 1D684; 0075; Additional folding 1D685; 0076; Additional folding 1D686; 0077; Additional folding 1D687; 0078; Additional folding 1D688; 0079; Additional folding 1D689; 007A; Additional folding 1D6A8; 03B1; Additional folding 1D6A9; 03B2; Additional folding 1D6AA; 03B3; Additional folding 1D6AB; 03B4; Additional folding 1D6AC; 03B5; Additional folding 1D6AD; 03B6; Additional folding 1D6AE; 03B7; Additional folding 1D6AF; 03B8; Additional folding 1D6B0; 03B9; Additional folding 1D6B1; 03BA; Additional folding 1D6B2; 03BB; Additional folding 1D6B3; 03BC; Additional folding 1D6B4; 03BD; Additional folding 1D6B5; 03BE; Additional folding 1D6B6; 03BF; Additional folding 1D6B7; 03C0; Additional folding 1D6B8; 03C1; Additional folding 1D6B9; 03B8; Additional folding 1D6BA; 03C3; Additional folding 1D6BB; 03C4; Additional folding 1D6BC; 03C5; Additional folding 1D6BD; 03C6; Additional folding 1D6BE; 03C7; Additional folding 1D6BF; 03C8; Additional folding 1D6C0; 03C9; Additional folding 1D6D3; 03C3; Additional folding 1D6E2; 03B1; Additional folding 1D6E3; 03B2; Additional folding 1D6E4; 03B3; Additional folding 1D6E5; 03B4; Additional folding 1D6E6; 03B5; Additional folding 1D6E7; 03B6; Additional folding 1D6E8; 03B7; Additional folding 1D6E9; 03B8; Additional folding 1D6EA; 03B9; Additional folding 1D6EB; 03BA; Additional folding 1D6EC; 03BB; Additional folding 1D6ED; 03BC; Additional folding 1D6EE; 03BD; Additional folding 1D6EF; 03BE; Additional folding 1D6F0; 03BF; Additional folding 1D6F1; 03C0; Additional folding 1D6F2; 03C1; Additional folding 1D6F3; 03B8; Additional folding 1D6F4; 03C3; Additional folding 1D6F5; 03C4; Additional folding 1D6F6; 03C5; Additional folding 1D6F7; 03C6; Additional folding 1D6F8; 03C7; Additional folding 1D6F9; 03C8; Additional folding 1D6FA; 03C9; Additional folding 1D70D; 03C3; Additional folding 1D71C; 03B1; Additional folding 1D71D; 03B2; Additional folding 1D71E; 03B3; Additional folding 1D71F; 03B4; Additional folding 1D720; 03B5; Additional folding 1D721; 03B6; Additional folding 1D722; 03B7; Additional folding 1D723; 03B8; Additional folding 1D724; 03B9; Additional folding 1D725; 03BA; Additional folding 1D726; 03BB; Additional folding 1D727; 03BC; Additional folding 1D728; 03BD; Additional folding 1D729; 03BE; Additional folding 1D72A; 03BF; Additional folding 1D72B; 03C0; Additional folding 1D72C; 03C1; Additional folding 1D72D; 03B8; Additional folding 1D72E; 03C3; Additional folding 1D72F; 03C4; Additional folding 1D730; 03C5; Additional folding 1D731; 03C6; Additional folding 1D732; 03C7; Additional folding 1D733; 03C8; Additional folding 1D734; 03C9; Additional folding 1D747; 03C3; Additional folding 1D756; 03B1; Additional folding 1D757; 03B2; Additional folding 1D758; 03B3; Additional folding 1D759; 03B4; Additional folding 1D75A; 03B5; Additional folding 1D75B; 03B6; Additional folding 1D75C; 03B7; Additional folding 1D75D; 03B8; Additional folding 1D75E; 03B9; Additional folding 1D75F; 03BA; Additional folding 1D760; 03BB; Additional folding 1D761; 03BC; Additional folding 1D762; 03BD; Additional folding 1D763; 03BE; Additional folding 1D764; 03BF; Additional folding 1D765; 03C0; Additional folding 1D766; 03C1; Additional folding 1D767; 03B8; Additional folding 1D768; 03C3; Additional folding 1D769; 03C4; Additional folding 1D76A; 03C5; Additional folding 1D76B; 03C6; Additional folding 1D76C; 03C7; Additional folding 1D76D; 03C8; Additional folding 1D76E; 03C9; Additional folding 1D781; 03C3; Additional folding 1D790; 03B1; Additional folding 1D791; 03B2; Additional folding 1D792; 03B3; Additional folding 1D793; 03B4; Additional folding 1D794; 03B5; Additional folding 1D795; 03B6; Additional folding 1D796; 03B7; Additional folding 1D797; 03B8; Additional folding 1D798; 03B9; Additional folding 1D799; 03BA; Additional folding 1D79A; 03BB; Additional folding 1D79B; 03BC; Additional folding 1D79C; 03BD; Additional folding 1D79D; 03BE; Additional folding 1D79E; 03BF; Additional folding 1D79F; 03C0; Additional folding 1D7A0; 03C1; Additional folding 1D7A1; 03B8; Additional folding 1D7A2; 03C3; Additional folding 1D7A3; 03C4; Additional folding 1D7A4; 03C5; Additional folding 1D7A5; 03C6; Additional folding 1D7A6; 03C7; Additional folding 1D7A7; 03C8; Additional folding 1D7A8; 03C9; Additional folding 1D7BB; 03C3; Additional folding */ const Stringprep_table_element stringprep_rfc3454_B_3[] = { { 0x000041, 0, { 0x000061 }}, /* 0041; 0061; Case map */ { 0x000042, 0, { 0x000062 }}, /* 0042; 0062; Case map */ { 0x000043, 0, { 0x000063 }}, /* 0043; 0063; Case map */ { 0x000044, 0, { 0x000064 }}, /* 0044; 0064; Case map */ { 0x000045, 0, { 0x000065 }}, /* 0045; 0065; Case map */ { 0x000046, 0, { 0x000066 }}, /* 0046; 0066; Case map */ { 0x000047, 0, { 0x000067 }}, /* 0047; 0067; Case map */ { 0x000048, 0, { 0x000068 }}, /* 0048; 0068; Case map */ { 0x000049, 0, { 0x000069 }}, /* 0049; 0069; Case map */ { 0x00004A, 0, { 0x00006A }}, /* 004A; 006A; Case map */ { 0x00004B, 0, { 0x00006B }}, /* 004B; 006B; Case map */ { 0x00004C, 0, { 0x00006C }}, /* 004C; 006C; Case map */ { 0x00004D, 0, { 0x00006D }}, /* 004D; 006D; Case map */ { 0x00004E, 0, { 0x00006E }}, /* 004E; 006E; Case map */ { 0x00004F, 0, { 0x00006F }}, /* 004F; 006F; Case map */ { 0x000050, 0, { 0x000070 }}, /* 0050; 0070; Case map */ { 0x000051, 0, { 0x000071 }}, /* 0051; 0071; Case map */ { 0x000052, 0, { 0x000072 }}, /* 0052; 0072; Case map */ { 0x000053, 0, { 0x000073 }}, /* 0053; 0073; Case map */ { 0x000054, 0, { 0x000074 }}, /* 0054; 0074; Case map */ { 0x000055, 0, { 0x000075 }}, /* 0055; 0075; Case map */ { 0x000056, 0, { 0x000076 }}, /* 0056; 0076; Case map */ { 0x000057, 0, { 0x000077 }}, /* 0057; 0077; Case map */ { 0x000058, 0, { 0x000078 }}, /* 0058; 0078; Case map */ { 0x000059, 0, { 0x000079 }}, /* 0059; 0079; Case map */ { 0x00005A, 0, { 0x00007A }}, /* 005A; 007A; Case map */ { 0x0000B5, 0, { 0x0003BC }}, /* 00B5; 03BC; Case map */ { 0x0000C0, 0, { 0x0000E0 }}, /* 00C0; 00E0; Case map */ { 0x0000C1, 0, { 0x0000E1 }}, /* 00C1; 00E1; Case map */ { 0x0000C2, 0, { 0x0000E2 }}, /* 00C2; 00E2; Case map */ { 0x0000C3, 0, { 0x0000E3 }}, /* 00C3; 00E3; Case map */ { 0x0000C4, 0, { 0x0000E4 }}, /* 00C4; 00E4; Case map */ { 0x0000C5, 0, { 0x0000E5 }}, /* 00C5; 00E5; Case map */ { 0x0000C6, 0, { 0x0000E6 }}, /* 00C6; 00E6; Case map */ { 0x0000C7, 0, { 0x0000E7 }}, /* 00C7; 00E7; Case map */ { 0x0000C8, 0, { 0x0000E8 }}, /* 00C8; 00E8; Case map */ { 0x0000C9, 0, { 0x0000E9 }}, /* 00C9; 00E9; Case map */ { 0x0000CA, 0, { 0x0000EA }}, /* 00CA; 00EA; Case map */ { 0x0000CB, 0, { 0x0000EB }}, /* 00CB; 00EB; Case map */ { 0x0000CC, 0, { 0x0000EC }}, /* 00CC; 00EC; Case map */ { 0x0000CD, 0, { 0x0000ED }}, /* 00CD; 00ED; Case map */ { 0x0000CE, 0, { 0x0000EE }}, /* 00CE; 00EE; Case map */ { 0x0000CF, 0, { 0x0000EF }}, /* 00CF; 00EF; Case map */ { 0x0000D0, 0, { 0x0000F0 }}, /* 00D0; 00F0; Case map */ { 0x0000D1, 0, { 0x0000F1 }}, /* 00D1; 00F1; Case map */ { 0x0000D2, 0, { 0x0000F2 }}, /* 00D2; 00F2; Case map */ { 0x0000D3, 0, { 0x0000F3 }}, /* 00D3; 00F3; Case map */ { 0x0000D4, 0, { 0x0000F4 }}, /* 00D4; 00F4; Case map */ { 0x0000D5, 0, { 0x0000F5 }}, /* 00D5; 00F5; Case map */ { 0x0000D6, 0, { 0x0000F6 }}, /* 00D6; 00F6; Case map */ { 0x0000D8, 0, { 0x0000F8 }}, /* 00D8; 00F8; Case map */ { 0x0000D9, 0, { 0x0000F9 }}, /* 00D9; 00F9; Case map */ { 0x0000DA, 0, { 0x0000FA }}, /* 00DA; 00FA; Case map */ { 0x0000DB, 0, { 0x0000FB }}, /* 00DB; 00FB; Case map */ { 0x0000DC, 0, { 0x0000FC }}, /* 00DC; 00FC; Case map */ { 0x0000DD, 0, { 0x0000FD }}, /* 00DD; 00FD; Case map */ { 0x0000DE, 0, { 0x0000FE }}, /* 00DE; 00FE; Case map */ { 0x0000DF, 0, { 0x000073, /* 00DF; 0073 0073; Case map */ 0x000073 }}, { 0x000100, 0, { 0x000101 }}, /* 0100; 0101; Case map */ { 0x000102, 0, { 0x000103 }}, /* 0102; 0103; Case map */ { 0x000104, 0, { 0x000105 }}, /* 0104; 0105; Case map */ { 0x000106, 0, { 0x000107 }}, /* 0106; 0107; Case map */ { 0x000108, 0, { 0x000109 }}, /* 0108; 0109; Case map */ { 0x00010A, 0, { 0x00010B }}, /* 010A; 010B; Case map */ { 0x00010C, 0, { 0x00010D }}, /* 010C; 010D; Case map */ { 0x00010E, 0, { 0x00010F }}, /* 010E; 010F; Case map */ { 0x000110, 0, { 0x000111 }}, /* 0110; 0111; Case map */ { 0x000112, 0, { 0x000113 }}, /* 0112; 0113; Case map */ { 0x000114, 0, { 0x000115 }}, /* 0114; 0115; Case map */ { 0x000116, 0, { 0x000117 }}, /* 0116; 0117; Case map */ { 0x000118, 0, { 0x000119 }}, /* 0118; 0119; Case map */ { 0x00011A, 0, { 0x00011B }}, /* 011A; 011B; Case map */ { 0x00011C, 0, { 0x00011D }}, /* 011C; 011D; Case map */ { 0x00011E, 0, { 0x00011F }}, /* 011E; 011F; Case map */ { 0x000120, 0, { 0x000121 }}, /* 0120; 0121; Case map */ { 0x000122, 0, { 0x000123 }}, /* 0122; 0123; Case map */ { 0x000124, 0, { 0x000125 }}, /* 0124; 0125; Case map */ { 0x000126, 0, { 0x000127 }}, /* 0126; 0127; Case map */ { 0x000128, 0, { 0x000129 }}, /* 0128; 0129; Case map */ { 0x00012A, 0, { 0x00012B }}, /* 012A; 012B; Case map */ { 0x00012C, 0, { 0x00012D }}, /* 012C; 012D; Case map */ { 0x00012E, 0, { 0x00012F }}, /* 012E; 012F; Case map */ { 0x000130, 0, { 0x000069, /* 0130; 0069 0307; Case map */ 0x000307 }}, { 0x000132, 0, { 0x000133 }}, /* 0132; 0133; Case map */ { 0x000134, 0, { 0x000135 }}, /* 0134; 0135; Case map */ { 0x000136, 0, { 0x000137 }}, /* 0136; 0137; Case map */ { 0x000139, 0, { 0x00013A }}, /* 0139; 013A; Case map */ { 0x00013B, 0, { 0x00013C }}, /* 013B; 013C; Case map */ { 0x00013D, 0, { 0x00013E }}, /* 013D; 013E; Case map */ { 0x00013F, 0, { 0x000140 }}, /* 013F; 0140; Case map */ { 0x000141, 0, { 0x000142 }}, /* 0141; 0142; Case map */ { 0x000143, 0, { 0x000144 }}, /* 0143; 0144; Case map */ { 0x000145, 0, { 0x000146 }}, /* 0145; 0146; Case map */ { 0x000147, 0, { 0x000148 }}, /* 0147; 0148; Case map */ { 0x000149, 0, { 0x0002BC, /* 0149; 02BC 006E; Case map */ 0x00006E }}, { 0x00014A, 0, { 0x00014B }}, /* 014A; 014B; Case map */ { 0x00014C, 0, { 0x00014D }}, /* 014C; 014D; Case map */ { 0x00014E, 0, { 0x00014F }}, /* 014E; 014F; Case map */ { 0x000150, 0, { 0x000151 }}, /* 0150; 0151; Case map */ { 0x000152, 0, { 0x000153 }}, /* 0152; 0153; Case map */ { 0x000154, 0, { 0x000155 }}, /* 0154; 0155; Case map */ { 0x000156, 0, { 0x000157 }}, /* 0156; 0157; Case map */ { 0x000158, 0, { 0x000159 }}, /* 0158; 0159; Case map */ { 0x00015A, 0, { 0x00015B }}, /* 015A; 015B; Case map */ { 0x00015C, 0, { 0x00015D }}, /* 015C; 015D; Case map */ { 0x00015E, 0, { 0x00015F }}, /* 015E; 015F; Case map */ { 0x000160, 0, { 0x000161 }}, /* 0160; 0161; Case map */ { 0x000162, 0, { 0x000163 }}, /* 0162; 0163; Case map */ { 0x000164, 0, { 0x000165 }}, /* 0164; 0165; Case map */ { 0x000166, 0, { 0x000167 }}, /* 0166; 0167; Case map */ { 0x000168, 0, { 0x000169 }}, /* 0168; 0169; Case map */ { 0x00016A, 0, { 0x00016B }}, /* 016A; 016B; Case map */ { 0x00016C, 0, { 0x00016D }}, /* 016C; 016D; Case map */ { 0x00016E, 0, { 0x00016F }}, /* 016E; 016F; Case map */ { 0x000170, 0, { 0x000171 }}, /* 0170; 0171; Case map */ { 0x000172, 0, { 0x000173 }}, /* 0172; 0173; Case map */ { 0x000174, 0, { 0x000175 }}, /* 0174; 0175; Case map */ { 0x000176, 0, { 0x000177 }}, /* 0176; 0177; Case map */ { 0x000178, 0, { 0x0000FF }}, /* 0178; 00FF; Case map */ { 0x000179, 0, { 0x00017A }}, /* 0179; 017A; Case map */ { 0x00017B, 0, { 0x00017C }}, /* 017B; 017C; Case map */ { 0x00017D, 0, { 0x00017E }}, /* 017D; 017E; Case map */ { 0x00017F, 0, { 0x000073 }}, /* 017F; 0073; Case map */ { 0x000181, 0, { 0x000253 }}, /* 0181; 0253; Case map */ { 0x000182, 0, { 0x000183 }}, /* 0182; 0183; Case map */ { 0x000184, 0, { 0x000185 }}, /* 0184; 0185; Case map */ { 0x000186, 0, { 0x000254 }}, /* 0186; 0254; Case map */ { 0x000187, 0, { 0x000188 }}, /* 0187; 0188; Case map */ { 0x000189, 0, { 0x000256 }}, /* 0189; 0256; Case map */ { 0x00018A, 0, { 0x000257 }}, /* 018A; 0257; Case map */ { 0x00018B, 0, { 0x00018C }}, /* 018B; 018C; Case map */ { 0x00018E, 0, { 0x0001DD }}, /* 018E; 01DD; Case map */ { 0x00018F, 0, { 0x000259 }}, /* 018F; 0259; Case map */ { 0x000190, 0, { 0x00025B }}, /* 0190; 025B; Case map */ { 0x000191, 0, { 0x000192 }}, /* 0191; 0192; Case map */ { 0x000193, 0, { 0x000260 }}, /* 0193; 0260; Case map */ { 0x000194, 0, { 0x000263 }}, /* 0194; 0263; Case map */ { 0x000196, 0, { 0x000269 }}, /* 0196; 0269; Case map */ { 0x000197, 0, { 0x000268 }}, /* 0197; 0268; Case map */ { 0x000198, 0, { 0x000199 }}, /* 0198; 0199; Case map */ { 0x00019C, 0, { 0x00026F }}, /* 019C; 026F; Case map */ { 0x00019D, 0, { 0x000272 }}, /* 019D; 0272; Case map */ { 0x00019F, 0, { 0x000275 }}, /* 019F; 0275; Case map */ { 0x0001A0, 0, { 0x0001A1 }}, /* 01A0; 01A1; Case map */ { 0x0001A2, 0, { 0x0001A3 }}, /* 01A2; 01A3; Case map */ { 0x0001A4, 0, { 0x0001A5 }}, /* 01A4; 01A5; Case map */ { 0x0001A6, 0, { 0x000280 }}, /* 01A6; 0280; Case map */ { 0x0001A7, 0, { 0x0001A8 }}, /* 01A7; 01A8; Case map */ { 0x0001A9, 0, { 0x000283 }}, /* 01A9; 0283; Case map */ { 0x0001AC, 0, { 0x0001AD }}, /* 01AC; 01AD; Case map */ { 0x0001AE, 0, { 0x000288 }}, /* 01AE; 0288; Case map */ { 0x0001AF, 0, { 0x0001B0 }}, /* 01AF; 01B0; Case map */ { 0x0001B1, 0, { 0x00028A }}, /* 01B1; 028A; Case map */ { 0x0001B2, 0, { 0x00028B }}, /* 01B2; 028B; Case map */ { 0x0001B3, 0, { 0x0001B4 }}, /* 01B3; 01B4; Case map */ { 0x0001B5, 0, { 0x0001B6 }}, /* 01B5; 01B6; Case map */ { 0x0001B7, 0, { 0x000292 }}, /* 01B7; 0292; Case map */ { 0x0001B8, 0, { 0x0001B9 }}, /* 01B8; 01B9; Case map */ { 0x0001BC, 0, { 0x0001BD }}, /* 01BC; 01BD; Case map */ { 0x0001C4, 0, { 0x0001C6 }}, /* 01C4; 01C6; Case map */ { 0x0001C5, 0, { 0x0001C6 }}, /* 01C5; 01C6; Case map */ { 0x0001C7, 0, { 0x0001C9 }}, /* 01C7; 01C9; Case map */ { 0x0001C8, 0, { 0x0001C9 }}, /* 01C8; 01C9; Case map */ { 0x0001CA, 0, { 0x0001CC }}, /* 01CA; 01CC; Case map */ { 0x0001CB, 0, { 0x0001CC }}, /* 01CB; 01CC; Case map */ { 0x0001CD, 0, { 0x0001CE }}, /* 01CD; 01CE; Case map */ { 0x0001CF, 0, { 0x0001D0 }}, /* 01CF; 01D0; Case map */ { 0x0001D1, 0, { 0x0001D2 }}, /* 01D1; 01D2; Case map */ { 0x0001D3, 0, { 0x0001D4 }}, /* 01D3; 01D4; Case map */ { 0x0001D5, 0, { 0x0001D6 }}, /* 01D5; 01D6; Case map */ { 0x0001D7, 0, { 0x0001D8 }}, /* 01D7; 01D8; Case map */ { 0x0001D9, 0, { 0x0001DA }}, /* 01D9; 01DA; Case map */ { 0x0001DB, 0, { 0x0001DC }}, /* 01DB; 01DC; Case map */ { 0x0001DE, 0, { 0x0001DF }}, /* 01DE; 01DF; Case map */ { 0x0001E0, 0, { 0x0001E1 }}, /* 01E0; 01E1; Case map */ { 0x0001E2, 0, { 0x0001E3 }}, /* 01E2; 01E3; Case map */ { 0x0001E4, 0, { 0x0001E5 }}, /* 01E4; 01E5; Case map */ { 0x0001E6, 0, { 0x0001E7 }}, /* 01E6; 01E7; Case map */ { 0x0001E8, 0, { 0x0001E9 }}, /* 01E8; 01E9; Case map */ { 0x0001EA, 0, { 0x0001EB }}, /* 01EA; 01EB; Case map */ { 0x0001EC, 0, { 0x0001ED }}, /* 01EC; 01ED; Case map */ { 0x0001EE, 0, { 0x0001EF }}, /* 01EE; 01EF; Case map */ { 0x0001F0, 0, { 0x00006A, /* 01F0; 006A 030C; Case map */ 0x00030C }}, { 0x0001F1, 0, { 0x0001F3 }}, /* 01F1; 01F3; Case map */ { 0x0001F2, 0, { 0x0001F3 }}, /* 01F2; 01F3; Case map */ { 0x0001F4, 0, { 0x0001F5 }}, /* 01F4; 01F5; Case map */ { 0x0001F6, 0, { 0x000195 }}, /* 01F6; 0195; Case map */ { 0x0001F7, 0, { 0x0001BF }}, /* 01F7; 01BF; Case map */ { 0x0001F8, 0, { 0x0001F9 }}, /* 01F8; 01F9; Case map */ { 0x0001FA, 0, { 0x0001FB }}, /* 01FA; 01FB; Case map */ { 0x0001FC, 0, { 0x0001FD }}, /* 01FC; 01FD; Case map */ { 0x0001FE, 0, { 0x0001FF }}, /* 01FE; 01FF; Case map */ { 0x000200, 0, { 0x000201 }}, /* 0200; 0201; Case map */ { 0x000202, 0, { 0x000203 }}, /* 0202; 0203; Case map */ { 0x000204, 0, { 0x000205 }}, /* 0204; 0205; Case map */ { 0x000206, 0, { 0x000207 }}, /* 0206; 0207; Case map */ { 0x000208, 0, { 0x000209 }}, /* 0208; 0209; Case map */ { 0x00020A, 0, { 0x00020B }}, /* 020A; 020B; Case map */ { 0x00020C, 0, { 0x00020D }}, /* 020C; 020D; Case map */ { 0x00020E, 0, { 0x00020F }}, /* 020E; 020F; Case map */ { 0x000210, 0, { 0x000211 }}, /* 0210; 0211; Case map */ { 0x000212, 0, { 0x000213 }}, /* 0212; 0213; Case map */ { 0x000214, 0, { 0x000215 }}, /* 0214; 0215; Case map */ { 0x000216, 0, { 0x000217 }}, /* 0216; 0217; Case map */ { 0x000218, 0, { 0x000219 }}, /* 0218; 0219; Case map */ { 0x00021A, 0, { 0x00021B }}, /* 021A; 021B; Case map */ { 0x00021C, 0, { 0x00021D }}, /* 021C; 021D; Case map */ { 0x00021E, 0, { 0x00021F }}, /* 021E; 021F; Case map */ { 0x000220, 0, { 0x00019E }}, /* 0220; 019E; Case map */ { 0x000222, 0, { 0x000223 }}, /* 0222; 0223; Case map */ { 0x000224, 0, { 0x000225 }}, /* 0224; 0225; Case map */ { 0x000226, 0, { 0x000227 }}, /* 0226; 0227; Case map */ { 0x000228, 0, { 0x000229 }}, /* 0228; 0229; Case map */ { 0x00022A, 0, { 0x00022B }}, /* 022A; 022B; Case map */ { 0x00022C, 0, { 0x00022D }}, /* 022C; 022D; Case map */ { 0x00022E, 0, { 0x00022F }}, /* 022E; 022F; Case map */ { 0x000230, 0, { 0x000231 }}, /* 0230; 0231; Case map */ { 0x000232, 0, { 0x000233 }}, /* 0232; 0233; Case map */ { 0x000345, 0, { 0x0003B9 }}, /* 0345; 03B9; Case map */ { 0x000386, 0, { 0x0003AC }}, /* 0386; 03AC; Case map */ { 0x000388, 0, { 0x0003AD }}, /* 0388; 03AD; Case map */ { 0x000389, 0, { 0x0003AE }}, /* 0389; 03AE; Case map */ { 0x00038A, 0, { 0x0003AF }}, /* 038A; 03AF; Case map */ { 0x00038C, 0, { 0x0003CC }}, /* 038C; 03CC; Case map */ { 0x00038E, 0, { 0x0003CD }}, /* 038E; 03CD; Case map */ { 0x00038F, 0, { 0x0003CE }}, /* 038F; 03CE; Case map */ { 0x000390, 0, { 0x0003B9, /* 0390; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x000391, 0, { 0x0003B1 }}, /* 0391; 03B1; Case map */ { 0x000392, 0, { 0x0003B2 }}, /* 0392; 03B2; Case map */ { 0x000393, 0, { 0x0003B3 }}, /* 0393; 03B3; Case map */ { 0x000394, 0, { 0x0003B4 }}, /* 0394; 03B4; Case map */ { 0x000395, 0, { 0x0003B5 }}, /* 0395; 03B5; Case map */ { 0x000396, 0, { 0x0003B6 }}, /* 0396; 03B6; Case map */ { 0x000397, 0, { 0x0003B7 }}, /* 0397; 03B7; Case map */ { 0x000398, 0, { 0x0003B8 }}, /* 0398; 03B8; Case map */ { 0x000399, 0, { 0x0003B9 }}, /* 0399; 03B9; Case map */ { 0x00039A, 0, { 0x0003BA }}, /* 039A; 03BA; Case map */ { 0x00039B, 0, { 0x0003BB }}, /* 039B; 03BB; Case map */ { 0x00039C, 0, { 0x0003BC }}, /* 039C; 03BC; Case map */ { 0x00039D, 0, { 0x0003BD }}, /* 039D; 03BD; Case map */ { 0x00039E, 0, { 0x0003BE }}, /* 039E; 03BE; Case map */ { 0x00039F, 0, { 0x0003BF }}, /* 039F; 03BF; Case map */ { 0x0003A0, 0, { 0x0003C0 }}, /* 03A0; 03C0; Case map */ { 0x0003A1, 0, { 0x0003C1 }}, /* 03A1; 03C1; Case map */ { 0x0003A3, 0, { 0x0003C3 }}, /* 03A3; 03C3; Case map */ { 0x0003A4, 0, { 0x0003C4 }}, /* 03A4; 03C4; Case map */ { 0x0003A5, 0, { 0x0003C5 }}, /* 03A5; 03C5; Case map */ { 0x0003A6, 0, { 0x0003C6 }}, /* 03A6; 03C6; Case map */ { 0x0003A7, 0, { 0x0003C7 }}, /* 03A7; 03C7; Case map */ { 0x0003A8, 0, { 0x0003C8 }}, /* 03A8; 03C8; Case map */ { 0x0003A9, 0, { 0x0003C9 }}, /* 03A9; 03C9; Case map */ { 0x0003AA, 0, { 0x0003CA }}, /* 03AA; 03CA; Case map */ { 0x0003AB, 0, { 0x0003CB }}, /* 03AB; 03CB; Case map */ { 0x0003B0, 0, { 0x0003C5, /* 03B0; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x0003C2, 0, { 0x0003C3 }}, /* 03C2; 03C3; Case map */ { 0x0003D0, 0, { 0x0003B2 }}, /* 03D0; 03B2; Case map */ { 0x0003D1, 0, { 0x0003B8 }}, /* 03D1; 03B8; Case map */ { 0x0003D5, 0, { 0x0003C6 }}, /* 03D5; 03C6; Case map */ { 0x0003D6, 0, { 0x0003C0 }}, /* 03D6; 03C0; Case map */ { 0x0003D8, 0, { 0x0003D9 }}, /* 03D8; 03D9; Case map */ { 0x0003DA, 0, { 0x0003DB }}, /* 03DA; 03DB; Case map */ { 0x0003DC, 0, { 0x0003DD }}, /* 03DC; 03DD; Case map */ { 0x0003DE, 0, { 0x0003DF }}, /* 03DE; 03DF; Case map */ { 0x0003E0, 0, { 0x0003E1 }}, /* 03E0; 03E1; Case map */ { 0x0003E2, 0, { 0x0003E3 }}, /* 03E2; 03E3; Case map */ { 0x0003E4, 0, { 0x0003E5 }}, /* 03E4; 03E5; Case map */ { 0x0003E6, 0, { 0x0003E7 }}, /* 03E6; 03E7; Case map */ { 0x0003E8, 0, { 0x0003E9 }}, /* 03E8; 03E9; Case map */ { 0x0003EA, 0, { 0x0003EB }}, /* 03EA; 03EB; Case map */ { 0x0003EC, 0, { 0x0003ED }}, /* 03EC; 03ED; Case map */ { 0x0003EE, 0, { 0x0003EF }}, /* 03EE; 03EF; Case map */ { 0x0003F0, 0, { 0x0003BA }}, /* 03F0; 03BA; Case map */ { 0x0003F1, 0, { 0x0003C1 }}, /* 03F1; 03C1; Case map */ { 0x0003F2, 0, { 0x0003C3 }}, /* 03F2; 03C3; Case map */ { 0x0003F4, 0, { 0x0003B8 }}, /* 03F4; 03B8; Case map */ { 0x0003F5, 0, { 0x0003B5 }}, /* 03F5; 03B5; Case map */ { 0x000400, 0, { 0x000450 }}, /* 0400; 0450; Case map */ { 0x000401, 0, { 0x000451 }}, /* 0401; 0451; Case map */ { 0x000402, 0, { 0x000452 }}, /* 0402; 0452; Case map */ { 0x000403, 0, { 0x000453 }}, /* 0403; 0453; Case map */ { 0x000404, 0, { 0x000454 }}, /* 0404; 0454; Case map */ { 0x000405, 0, { 0x000455 }}, /* 0405; 0455; Case map */ { 0x000406, 0, { 0x000456 }}, /* 0406; 0456; Case map */ { 0x000407, 0, { 0x000457 }}, /* 0407; 0457; Case map */ { 0x000408, 0, { 0x000458 }}, /* 0408; 0458; Case map */ { 0x000409, 0, { 0x000459 }}, /* 0409; 0459; Case map */ { 0x00040A, 0, { 0x00045A }}, /* 040A; 045A; Case map */ { 0x00040B, 0, { 0x00045B }}, /* 040B; 045B; Case map */ { 0x00040C, 0, { 0x00045C }}, /* 040C; 045C; Case map */ { 0x00040D, 0, { 0x00045D }}, /* 040D; 045D; Case map */ { 0x00040E, 0, { 0x00045E }}, /* 040E; 045E; Case map */ { 0x00040F, 0, { 0x00045F }}, /* 040F; 045F; Case map */ { 0x000410, 0, { 0x000430 }}, /* 0410; 0430; Case map */ { 0x000411, 0, { 0x000431 }}, /* 0411; 0431; Case map */ { 0x000412, 0, { 0x000432 }}, /* 0412; 0432; Case map */ { 0x000413, 0, { 0x000433 }}, /* 0413; 0433; Case map */ { 0x000414, 0, { 0x000434 }}, /* 0414; 0434; Case map */ { 0x000415, 0, { 0x000435 }}, /* 0415; 0435; Case map */ { 0x000416, 0, { 0x000436 }}, /* 0416; 0436; Case map */ { 0x000417, 0, { 0x000437 }}, /* 0417; 0437; Case map */ { 0x000418, 0, { 0x000438 }}, /* 0418; 0438; Case map */ { 0x000419, 0, { 0x000439 }}, /* 0419; 0439; Case map */ { 0x00041A, 0, { 0x00043A }}, /* 041A; 043A; Case map */ { 0x00041B, 0, { 0x00043B }}, /* 041B; 043B; Case map */ { 0x00041C, 0, { 0x00043C }}, /* 041C; 043C; Case map */ { 0x00041D, 0, { 0x00043D }}, /* 041D; 043D; Case map */ { 0x00041E, 0, { 0x00043E }}, /* 041E; 043E; Case map */ { 0x00041F, 0, { 0x00043F }}, /* 041F; 043F; Case map */ { 0x000420, 0, { 0x000440 }}, /* 0420; 0440; Case map */ { 0x000421, 0, { 0x000441 }}, /* 0421; 0441; Case map */ { 0x000422, 0, { 0x000442 }}, /* 0422; 0442; Case map */ { 0x000423, 0, { 0x000443 }}, /* 0423; 0443; Case map */ { 0x000424, 0, { 0x000444 }}, /* 0424; 0444; Case map */ { 0x000425, 0, { 0x000445 }}, /* 0425; 0445; Case map */ { 0x000426, 0, { 0x000446 }}, /* 0426; 0446; Case map */ { 0x000427, 0, { 0x000447 }}, /* 0427; 0447; Case map */ { 0x000428, 0, { 0x000448 }}, /* 0428; 0448; Case map */ { 0x000429, 0, { 0x000449 }}, /* 0429; 0449; Case map */ { 0x00042A, 0, { 0x00044A }}, /* 042A; 044A; Case map */ { 0x00042B, 0, { 0x00044B }}, /* 042B; 044B; Case map */ { 0x00042C, 0, { 0x00044C }}, /* 042C; 044C; Case map */ { 0x00042D, 0, { 0x00044D }}, /* 042D; 044D; Case map */ { 0x00042E, 0, { 0x00044E }}, /* 042E; 044E; Case map */ { 0x00042F, 0, { 0x00044F }}, /* 042F; 044F; Case map */ { 0x000460, 0, { 0x000461 }}, /* 0460; 0461; Case map */ { 0x000462, 0, { 0x000463 }}, /* 0462; 0463; Case map */ { 0x000464, 0, { 0x000465 }}, /* 0464; 0465; Case map */ { 0x000466, 0, { 0x000467 }}, /* 0466; 0467; Case map */ { 0x000468, 0, { 0x000469 }}, /* 0468; 0469; Case map */ { 0x00046A, 0, { 0x00046B }}, /* 046A; 046B; Case map */ { 0x00046C, 0, { 0x00046D }}, /* 046C; 046D; Case map */ { 0x00046E, 0, { 0x00046F }}, /* 046E; 046F; Case map */ { 0x000470, 0, { 0x000471 }}, /* 0470; 0471; Case map */ { 0x000472, 0, { 0x000473 }}, /* 0472; 0473; Case map */ { 0x000474, 0, { 0x000475 }}, /* 0474; 0475; Case map */ { 0x000476, 0, { 0x000477 }}, /* 0476; 0477; Case map */ { 0x000478, 0, { 0x000479 }}, /* 0478; 0479; Case map */ { 0x00047A, 0, { 0x00047B }}, /* 047A; 047B; Case map */ { 0x00047C, 0, { 0x00047D }}, /* 047C; 047D; Case map */ { 0x00047E, 0, { 0x00047F }}, /* 047E; 047F; Case map */ { 0x000480, 0, { 0x000481 }}, /* 0480; 0481; Case map */ { 0x00048A, 0, { 0x00048B }}, /* 048A; 048B; Case map */ { 0x00048C, 0, { 0x00048D }}, /* 048C; 048D; Case map */ { 0x00048E, 0, { 0x00048F }}, /* 048E; 048F; Case map */ { 0x000490, 0, { 0x000491 }}, /* 0490; 0491; Case map */ { 0x000492, 0, { 0x000493 }}, /* 0492; 0493; Case map */ { 0x000494, 0, { 0x000495 }}, /* 0494; 0495; Case map */ { 0x000496, 0, { 0x000497 }}, /* 0496; 0497; Case map */ { 0x000498, 0, { 0x000499 }}, /* 0498; 0499; Case map */ { 0x00049A, 0, { 0x00049B }}, /* 049A; 049B; Case map */ { 0x00049C, 0, { 0x00049D }}, /* 049C; 049D; Case map */ { 0x00049E, 0, { 0x00049F }}, /* 049E; 049F; Case map */ { 0x0004A0, 0, { 0x0004A1 }}, /* 04A0; 04A1; Case map */ { 0x0004A2, 0, { 0x0004A3 }}, /* 04A2; 04A3; Case map */ { 0x0004A4, 0, { 0x0004A5 }}, /* 04A4; 04A5; Case map */ { 0x0004A6, 0, { 0x0004A7 }}, /* 04A6; 04A7; Case map */ { 0x0004A8, 0, { 0x0004A9 }}, /* 04A8; 04A9; Case map */ { 0x0004AA, 0, { 0x0004AB }}, /* 04AA; 04AB; Case map */ { 0x0004AC, 0, { 0x0004AD }}, /* 04AC; 04AD; Case map */ { 0x0004AE, 0, { 0x0004AF }}, /* 04AE; 04AF; Case map */ { 0x0004B0, 0, { 0x0004B1 }}, /* 04B0; 04B1; Case map */ { 0x0004B2, 0, { 0x0004B3 }}, /* 04B2; 04B3; Case map */ { 0x0004B4, 0, { 0x0004B5 }}, /* 04B4; 04B5; Case map */ { 0x0004B6, 0, { 0x0004B7 }}, /* 04B6; 04B7; Case map */ { 0x0004B8, 0, { 0x0004B9 }}, /* 04B8; 04B9; Case map */ { 0x0004BA, 0, { 0x0004BB }}, /* 04BA; 04BB; Case map */ { 0x0004BC, 0, { 0x0004BD }}, /* 04BC; 04BD; Case map */ { 0x0004BE, 0, { 0x0004BF }}, /* 04BE; 04BF; Case map */ { 0x0004C1, 0, { 0x0004C2 }}, /* 04C1; 04C2; Case map */ { 0x0004C3, 0, { 0x0004C4 }}, /* 04C3; 04C4; Case map */ { 0x0004C5, 0, { 0x0004C6 }}, /* 04C5; 04C6; Case map */ { 0x0004C7, 0, { 0x0004C8 }}, /* 04C7; 04C8; Case map */ { 0x0004C9, 0, { 0x0004CA }}, /* 04C9; 04CA; Case map */ { 0x0004CB, 0, { 0x0004CC }}, /* 04CB; 04CC; Case map */ { 0x0004CD, 0, { 0x0004CE }}, /* 04CD; 04CE; Case map */ { 0x0004D0, 0, { 0x0004D1 }}, /* 04D0; 04D1; Case map */ { 0x0004D2, 0, { 0x0004D3 }}, /* 04D2; 04D3; Case map */ { 0x0004D4, 0, { 0x0004D5 }}, /* 04D4; 04D5; Case map */ { 0x0004D6, 0, { 0x0004D7 }}, /* 04D6; 04D7; Case map */ { 0x0004D8, 0, { 0x0004D9 }}, /* 04D8; 04D9; Case map */ { 0x0004DA, 0, { 0x0004DB }}, /* 04DA; 04DB; Case map */ { 0x0004DC, 0, { 0x0004DD }}, /* 04DC; 04DD; Case map */ { 0x0004DE, 0, { 0x0004DF }}, /* 04DE; 04DF; Case map */ { 0x0004E0, 0, { 0x0004E1 }}, /* 04E0; 04E1; Case map */ { 0x0004E2, 0, { 0x0004E3 }}, /* 04E2; 04E3; Case map */ { 0x0004E4, 0, { 0x0004E5 }}, /* 04E4; 04E5; Case map */ { 0x0004E6, 0, { 0x0004E7 }}, /* 04E6; 04E7; Case map */ { 0x0004E8, 0, { 0x0004E9 }}, /* 04E8; 04E9; Case map */ { 0x0004EA, 0, { 0x0004EB }}, /* 04EA; 04EB; Case map */ { 0x0004EC, 0, { 0x0004ED }}, /* 04EC; 04ED; Case map */ { 0x0004EE, 0, { 0x0004EF }}, /* 04EE; 04EF; Case map */ { 0x0004F0, 0, { 0x0004F1 }}, /* 04F0; 04F1; Case map */ { 0x0004F2, 0, { 0x0004F3 }}, /* 04F2; 04F3; Case map */ { 0x0004F4, 0, { 0x0004F5 }}, /* 04F4; 04F5; Case map */ { 0x0004F8, 0, { 0x0004F9 }}, /* 04F8; 04F9; Case map */ { 0x000500, 0, { 0x000501 }}, /* 0500; 0501; Case map */ { 0x000502, 0, { 0x000503 }}, /* 0502; 0503; Case map */ { 0x000504, 0, { 0x000505 }}, /* 0504; 0505; Case map */ { 0x000506, 0, { 0x000507 }}, /* 0506; 0507; Case map */ { 0x000508, 0, { 0x000509 }}, /* 0508; 0509; Case map */ { 0x00050A, 0, { 0x00050B }}, /* 050A; 050B; Case map */ { 0x00050C, 0, { 0x00050D }}, /* 050C; 050D; Case map */ { 0x00050E, 0, { 0x00050F }}, /* 050E; 050F; Case map */ { 0x000531, 0, { 0x000561 }}, /* 0531; 0561; Case map */ { 0x000532, 0, { 0x000562 }}, /* 0532; 0562; Case map */ { 0x000533, 0, { 0x000563 }}, /* 0533; 0563; Case map */ { 0x000534, 0, { 0x000564 }}, /* 0534; 0564; Case map */ { 0x000535, 0, { 0x000565 }}, /* 0535; 0565; Case map */ { 0x000536, 0, { 0x000566 }}, /* 0536; 0566; Case map */ { 0x000537, 0, { 0x000567 }}, /* 0537; 0567; Case map */ { 0x000538, 0, { 0x000568 }}, /* 0538; 0568; Case map */ { 0x000539, 0, { 0x000569 }}, /* 0539; 0569; Case map */ { 0x00053A, 0, { 0x00056A }}, /* 053A; 056A; Case map */ { 0x00053B, 0, { 0x00056B }}, /* 053B; 056B; Case map */ { 0x00053C, 0, { 0x00056C }}, /* 053C; 056C; Case map */ { 0x00053D, 0, { 0x00056D }}, /* 053D; 056D; Case map */ { 0x00053E, 0, { 0x00056E }}, /* 053E; 056E; Case map */ { 0x00053F, 0, { 0x00056F }}, /* 053F; 056F; Case map */ { 0x000540, 0, { 0x000570 }}, /* 0540; 0570; Case map */ { 0x000541, 0, { 0x000571 }}, /* 0541; 0571; Case map */ { 0x000542, 0, { 0x000572 }}, /* 0542; 0572; Case map */ { 0x000543, 0, { 0x000573 }}, /* 0543; 0573; Case map */ { 0x000544, 0, { 0x000574 }}, /* 0544; 0574; Case map */ { 0x000545, 0, { 0x000575 }}, /* 0545; 0575; Case map */ { 0x000546, 0, { 0x000576 }}, /* 0546; 0576; Case map */ { 0x000547, 0, { 0x000577 }}, /* 0547; 0577; Case map */ { 0x000548, 0, { 0x000578 }}, /* 0548; 0578; Case map */ { 0x000549, 0, { 0x000579 }}, /* 0549; 0579; Case map */ { 0x00054A, 0, { 0x00057A }}, /* 054A; 057A; Case map */ { 0x00054B, 0, { 0x00057B }}, /* 054B; 057B; Case map */ { 0x00054C, 0, { 0x00057C }}, /* 054C; 057C; Case map */ { 0x00054D, 0, { 0x00057D }}, /* 054D; 057D; Case map */ { 0x00054E, 0, { 0x00057E }}, /* 054E; 057E; Case map */ { 0x00054F, 0, { 0x00057F }}, /* 054F; 057F; Case map */ { 0x000550, 0, { 0x000580 }}, /* 0550; 0580; Case map */ { 0x000551, 0, { 0x000581 }}, /* 0551; 0581; Case map */ { 0x000552, 0, { 0x000582 }}, /* 0552; 0582; Case map */ { 0x000553, 0, { 0x000583 }}, /* 0553; 0583; Case map */ { 0x000554, 0, { 0x000584 }}, /* 0554; 0584; Case map */ { 0x000555, 0, { 0x000585 }}, /* 0555; 0585; Case map */ { 0x000556, 0, { 0x000586 }}, /* 0556; 0586; Case map */ { 0x000587, 0, { 0x000565, /* 0587; 0565 0582; Case map */ 0x000582 }}, { 0x001E00, 0, { 0x001E01 }}, /* 1E00; 1E01; Case map */ { 0x001E02, 0, { 0x001E03 }}, /* 1E02; 1E03; Case map */ { 0x001E04, 0, { 0x001E05 }}, /* 1E04; 1E05; Case map */ { 0x001E06, 0, { 0x001E07 }}, /* 1E06; 1E07; Case map */ { 0x001E08, 0, { 0x001E09 }}, /* 1E08; 1E09; Case map */ { 0x001E0A, 0, { 0x001E0B }}, /* 1E0A; 1E0B; Case map */ { 0x001E0C, 0, { 0x001E0D }}, /* 1E0C; 1E0D; Case map */ { 0x001E0E, 0, { 0x001E0F }}, /* 1E0E; 1E0F; Case map */ { 0x001E10, 0, { 0x001E11 }}, /* 1E10; 1E11; Case map */ { 0x001E12, 0, { 0x001E13 }}, /* 1E12; 1E13; Case map */ { 0x001E14, 0, { 0x001E15 }}, /* 1E14; 1E15; Case map */ { 0x001E16, 0, { 0x001E17 }}, /* 1E16; 1E17; Case map */ { 0x001E18, 0, { 0x001E19 }}, /* 1E18; 1E19; Case map */ { 0x001E1A, 0, { 0x001E1B }}, /* 1E1A; 1E1B; Case map */ { 0x001E1C, 0, { 0x001E1D }}, /* 1E1C; 1E1D; Case map */ { 0x001E1E, 0, { 0x001E1F }}, /* 1E1E; 1E1F; Case map */ { 0x001E20, 0, { 0x001E21 }}, /* 1E20; 1E21; Case map */ { 0x001E22, 0, { 0x001E23 }}, /* 1E22; 1E23; Case map */ { 0x001E24, 0, { 0x001E25 }}, /* 1E24; 1E25; Case map */ { 0x001E26, 0, { 0x001E27 }}, /* 1E26; 1E27; Case map */ { 0x001E28, 0, { 0x001E29 }}, /* 1E28; 1E29; Case map */ { 0x001E2A, 0, { 0x001E2B }}, /* 1E2A; 1E2B; Case map */ { 0x001E2C, 0, { 0x001E2D }}, /* 1E2C; 1E2D; Case map */ { 0x001E2E, 0, { 0x001E2F }}, /* 1E2E; 1E2F; Case map */ { 0x001E30, 0, { 0x001E31 }}, /* 1E30; 1E31; Case map */ { 0x001E32, 0, { 0x001E33 }}, /* 1E32; 1E33; Case map */ { 0x001E34, 0, { 0x001E35 }}, /* 1E34; 1E35; Case map */ { 0x001E36, 0, { 0x001E37 }}, /* 1E36; 1E37; Case map */ { 0x001E38, 0, { 0x001E39 }}, /* 1E38; 1E39; Case map */ { 0x001E3A, 0, { 0x001E3B }}, /* 1E3A; 1E3B; Case map */ { 0x001E3C, 0, { 0x001E3D }}, /* 1E3C; 1E3D; Case map */ { 0x001E3E, 0, { 0x001E3F }}, /* 1E3E; 1E3F; Case map */ { 0x001E40, 0, { 0x001E41 }}, /* 1E40; 1E41; Case map */ { 0x001E42, 0, { 0x001E43 }}, /* 1E42; 1E43; Case map */ { 0x001E44, 0, { 0x001E45 }}, /* 1E44; 1E45; Case map */ { 0x001E46, 0, { 0x001E47 }}, /* 1E46; 1E47; Case map */ { 0x001E48, 0, { 0x001E49 }}, /* 1E48; 1E49; Case map */ { 0x001E4A, 0, { 0x001E4B }}, /* 1E4A; 1E4B; Case map */ { 0x001E4C, 0, { 0x001E4D }}, /* 1E4C; 1E4D; Case map */ { 0x001E4E, 0, { 0x001E4F }}, /* 1E4E; 1E4F; Case map */ { 0x001E50, 0, { 0x001E51 }}, /* 1E50; 1E51; Case map */ { 0x001E52, 0, { 0x001E53 }}, /* 1E52; 1E53; Case map */ { 0x001E54, 0, { 0x001E55 }}, /* 1E54; 1E55; Case map */ { 0x001E56, 0, { 0x001E57 }}, /* 1E56; 1E57; Case map */ { 0x001E58, 0, { 0x001E59 }}, /* 1E58; 1E59; Case map */ { 0x001E5A, 0, { 0x001E5B }}, /* 1E5A; 1E5B; Case map */ { 0x001E5C, 0, { 0x001E5D }}, /* 1E5C; 1E5D; Case map */ { 0x001E5E, 0, { 0x001E5F }}, /* 1E5E; 1E5F; Case map */ { 0x001E60, 0, { 0x001E61 }}, /* 1E60; 1E61; Case map */ { 0x001E62, 0, { 0x001E63 }}, /* 1E62; 1E63; Case map */ { 0x001E64, 0, { 0x001E65 }}, /* 1E64; 1E65; Case map */ { 0x001E66, 0, { 0x001E67 }}, /* 1E66; 1E67; Case map */ { 0x001E68, 0, { 0x001E69 }}, /* 1E68; 1E69; Case map */ { 0x001E6A, 0, { 0x001E6B }}, /* 1E6A; 1E6B; Case map */ { 0x001E6C, 0, { 0x001E6D }}, /* 1E6C; 1E6D; Case map */ { 0x001E6E, 0, { 0x001E6F }}, /* 1E6E; 1E6F; Case map */ { 0x001E70, 0, { 0x001E71 }}, /* 1E70; 1E71; Case map */ { 0x001E72, 0, { 0x001E73 }}, /* 1E72; 1E73; Case map */ { 0x001E74, 0, { 0x001E75 }}, /* 1E74; 1E75; Case map */ { 0x001E76, 0, { 0x001E77 }}, /* 1E76; 1E77; Case map */ { 0x001E78, 0, { 0x001E79 }}, /* 1E78; 1E79; Case map */ { 0x001E7A, 0, { 0x001E7B }}, /* 1E7A; 1E7B; Case map */ { 0x001E7C, 0, { 0x001E7D }}, /* 1E7C; 1E7D; Case map */ { 0x001E7E, 0, { 0x001E7F }}, /* 1E7E; 1E7F; Case map */ { 0x001E80, 0, { 0x001E81 }}, /* 1E80; 1E81; Case map */ { 0x001E82, 0, { 0x001E83 }}, /* 1E82; 1E83; Case map */ { 0x001E84, 0, { 0x001E85 }}, /* 1E84; 1E85; Case map */ { 0x001E86, 0, { 0x001E87 }}, /* 1E86; 1E87; Case map */ { 0x001E88, 0, { 0x001E89 }}, /* 1E88; 1E89; Case map */ { 0x001E8A, 0, { 0x001E8B }}, /* 1E8A; 1E8B; Case map */ { 0x001E8C, 0, { 0x001E8D }}, /* 1E8C; 1E8D; Case map */ { 0x001E8E, 0, { 0x001E8F }}, /* 1E8E; 1E8F; Case map */ { 0x001E90, 0, { 0x001E91 }}, /* 1E90; 1E91; Case map */ { 0x001E92, 0, { 0x001E93 }}, /* 1E92; 1E93; Case map */ { 0x001E94, 0, { 0x001E95 }}, /* 1E94; 1E95; Case map */ { 0x001E96, 0, { 0x000068, /* 1E96; 0068 0331; Case map */ 0x000331 }}, { 0x001E97, 0, { 0x000074, /* 1E97; 0074 0308; Case map */ 0x000308 }}, { 0x001E98, 0, { 0x000077, /* 1E98; 0077 030A; Case map */ 0x00030A }}, { 0x001E99, 0, { 0x000079, /* 1E99; 0079 030A; Case map */ 0x00030A }}, { 0x001E9A, 0, { 0x000061, /* 1E9A; 0061 02BE; Case map */ 0x0002BE }}, { 0x001E9B, 0, { 0x001E61 }}, /* 1E9B; 1E61; Case map */ { 0x001EA0, 0, { 0x001EA1 }}, /* 1EA0; 1EA1; Case map */ { 0x001EA2, 0, { 0x001EA3 }}, /* 1EA2; 1EA3; Case map */ { 0x001EA4, 0, { 0x001EA5 }}, /* 1EA4; 1EA5; Case map */ { 0x001EA6, 0, { 0x001EA7 }}, /* 1EA6; 1EA7; Case map */ { 0x001EA8, 0, { 0x001EA9 }}, /* 1EA8; 1EA9; Case map */ { 0x001EAA, 0, { 0x001EAB }}, /* 1EAA; 1EAB; Case map */ { 0x001EAC, 0, { 0x001EAD }}, /* 1EAC; 1EAD; Case map */ { 0x001EAE, 0, { 0x001EAF }}, /* 1EAE; 1EAF; Case map */ { 0x001EB0, 0, { 0x001EB1 }}, /* 1EB0; 1EB1; Case map */ { 0x001EB2, 0, { 0x001EB3 }}, /* 1EB2; 1EB3; Case map */ { 0x001EB4, 0, { 0x001EB5 }}, /* 1EB4; 1EB5; Case map */ { 0x001EB6, 0, { 0x001EB7 }}, /* 1EB6; 1EB7; Case map */ { 0x001EB8, 0, { 0x001EB9 }}, /* 1EB8; 1EB9; Case map */ { 0x001EBA, 0, { 0x001EBB }}, /* 1EBA; 1EBB; Case map */ { 0x001EBC, 0, { 0x001EBD }}, /* 1EBC; 1EBD; Case map */ { 0x001EBE, 0, { 0x001EBF }}, /* 1EBE; 1EBF; Case map */ { 0x001EC0, 0, { 0x001EC1 }}, /* 1EC0; 1EC1; Case map */ { 0x001EC2, 0, { 0x001EC3 }}, /* 1EC2; 1EC3; Case map */ { 0x001EC4, 0, { 0x001EC5 }}, /* 1EC4; 1EC5; Case map */ { 0x001EC6, 0, { 0x001EC7 }}, /* 1EC6; 1EC7; Case map */ { 0x001EC8, 0, { 0x001EC9 }}, /* 1EC8; 1EC9; Case map */ { 0x001ECA, 0, { 0x001ECB }}, /* 1ECA; 1ECB; Case map */ { 0x001ECC, 0, { 0x001ECD }}, /* 1ECC; 1ECD; Case map */ { 0x001ECE, 0, { 0x001ECF }}, /* 1ECE; 1ECF; Case map */ { 0x001ED0, 0, { 0x001ED1 }}, /* 1ED0; 1ED1; Case map */ { 0x001ED2, 0, { 0x001ED3 }}, /* 1ED2; 1ED3; Case map */ { 0x001ED4, 0, { 0x001ED5 }}, /* 1ED4; 1ED5; Case map */ { 0x001ED6, 0, { 0x001ED7 }}, /* 1ED6; 1ED7; Case map */ { 0x001ED8, 0, { 0x001ED9 }}, /* 1ED8; 1ED9; Case map */ { 0x001EDA, 0, { 0x001EDB }}, /* 1EDA; 1EDB; Case map */ { 0x001EDC, 0, { 0x001EDD }}, /* 1EDC; 1EDD; Case map */ { 0x001EDE, 0, { 0x001EDF }}, /* 1EDE; 1EDF; Case map */ { 0x001EE0, 0, { 0x001EE1 }}, /* 1EE0; 1EE1; Case map */ { 0x001EE2, 0, { 0x001EE3 }}, /* 1EE2; 1EE3; Case map */ { 0x001EE4, 0, { 0x001EE5 }}, /* 1EE4; 1EE5; Case map */ { 0x001EE6, 0, { 0x001EE7 }}, /* 1EE6; 1EE7; Case map */ { 0x001EE8, 0, { 0x001EE9 }}, /* 1EE8; 1EE9; Case map */ { 0x001EEA, 0, { 0x001EEB }}, /* 1EEA; 1EEB; Case map */ { 0x001EEC, 0, { 0x001EED }}, /* 1EEC; 1EED; Case map */ { 0x001EEE, 0, { 0x001EEF }}, /* 1EEE; 1EEF; Case map */ { 0x001EF0, 0, { 0x001EF1 }}, /* 1EF0; 1EF1; Case map */ { 0x001EF2, 0, { 0x001EF3 }}, /* 1EF2; 1EF3; Case map */ { 0x001EF4, 0, { 0x001EF5 }}, /* 1EF4; 1EF5; Case map */ { 0x001EF6, 0, { 0x001EF7 }}, /* 1EF6; 1EF7; Case map */ { 0x001EF8, 0, { 0x001EF9 }}, /* 1EF8; 1EF9; Case map */ { 0x001F08, 0, { 0x001F00 }}, /* 1F08; 1F00; Case map */ { 0x001F09, 0, { 0x001F01 }}, /* 1F09; 1F01; Case map */ { 0x001F0A, 0, { 0x001F02 }}, /* 1F0A; 1F02; Case map */ { 0x001F0B, 0, { 0x001F03 }}, /* 1F0B; 1F03; Case map */ { 0x001F0C, 0, { 0x001F04 }}, /* 1F0C; 1F04; Case map */ { 0x001F0D, 0, { 0x001F05 }}, /* 1F0D; 1F05; Case map */ { 0x001F0E, 0, { 0x001F06 }}, /* 1F0E; 1F06; Case map */ { 0x001F0F, 0, { 0x001F07 }}, /* 1F0F; 1F07; Case map */ { 0x001F18, 0, { 0x001F10 }}, /* 1F18; 1F10; Case map */ { 0x001F19, 0, { 0x001F11 }}, /* 1F19; 1F11; Case map */ { 0x001F1A, 0, { 0x001F12 }}, /* 1F1A; 1F12; Case map */ { 0x001F1B, 0, { 0x001F13 }}, /* 1F1B; 1F13; Case map */ { 0x001F1C, 0, { 0x001F14 }}, /* 1F1C; 1F14; Case map */ { 0x001F1D, 0, { 0x001F15 }}, /* 1F1D; 1F15; Case map */ { 0x001F28, 0, { 0x001F20 }}, /* 1F28; 1F20; Case map */ { 0x001F29, 0, { 0x001F21 }}, /* 1F29; 1F21; Case map */ { 0x001F2A, 0, { 0x001F22 }}, /* 1F2A; 1F22; Case map */ { 0x001F2B, 0, { 0x001F23 }}, /* 1F2B; 1F23; Case map */ { 0x001F2C, 0, { 0x001F24 }}, /* 1F2C; 1F24; Case map */ { 0x001F2D, 0, { 0x001F25 }}, /* 1F2D; 1F25; Case map */ { 0x001F2E, 0, { 0x001F26 }}, /* 1F2E; 1F26; Case map */ { 0x001F2F, 0, { 0x001F27 }}, /* 1F2F; 1F27; Case map */ { 0x001F38, 0, { 0x001F30 }}, /* 1F38; 1F30; Case map */ { 0x001F39, 0, { 0x001F31 }}, /* 1F39; 1F31; Case map */ { 0x001F3A, 0, { 0x001F32 }}, /* 1F3A; 1F32; Case map */ { 0x001F3B, 0, { 0x001F33 }}, /* 1F3B; 1F33; Case map */ { 0x001F3C, 0, { 0x001F34 }}, /* 1F3C; 1F34; Case map */ { 0x001F3D, 0, { 0x001F35 }}, /* 1F3D; 1F35; Case map */ { 0x001F3E, 0, { 0x001F36 }}, /* 1F3E; 1F36; Case map */ { 0x001F3F, 0, { 0x001F37 }}, /* 1F3F; 1F37; Case map */ { 0x001F48, 0, { 0x001F40 }}, /* 1F48; 1F40; Case map */ { 0x001F49, 0, { 0x001F41 }}, /* 1F49; 1F41; Case map */ { 0x001F4A, 0, { 0x001F42 }}, /* 1F4A; 1F42; Case map */ { 0x001F4B, 0, { 0x001F43 }}, /* 1F4B; 1F43; Case map */ { 0x001F4C, 0, { 0x001F44 }}, /* 1F4C; 1F44; Case map */ { 0x001F4D, 0, { 0x001F45 }}, /* 1F4D; 1F45; Case map */ { 0x001F50, 0, { 0x0003C5, /* 1F50; 03C5 0313; Case map */ 0x000313 }}, { 0x001F52, 0, { 0x0003C5, /* 1F52; 03C5 0313 0300; Case map */ 0x000313, 0x000300 }}, { 0x001F54, 0, { 0x0003C5, /* 1F54; 03C5 0313 0301; Case map */ 0x000313, 0x000301 }}, { 0x001F56, 0, { 0x0003C5, /* 1F56; 03C5 0313 0342; Case map */ 0x000313, 0x000342 }}, { 0x001F59, 0, { 0x001F51 }}, /* 1F59; 1F51; Case map */ { 0x001F5B, 0, { 0x001F53 }}, /* 1F5B; 1F53; Case map */ { 0x001F5D, 0, { 0x001F55 }}, /* 1F5D; 1F55; Case map */ { 0x001F5F, 0, { 0x001F57 }}, /* 1F5F; 1F57; Case map */ { 0x001F68, 0, { 0x001F60 }}, /* 1F68; 1F60; Case map */ { 0x001F69, 0, { 0x001F61 }}, /* 1F69; 1F61; Case map */ { 0x001F6A, 0, { 0x001F62 }}, /* 1F6A; 1F62; Case map */ { 0x001F6B, 0, { 0x001F63 }}, /* 1F6B; 1F63; Case map */ { 0x001F6C, 0, { 0x001F64 }}, /* 1F6C; 1F64; Case map */ { 0x001F6D, 0, { 0x001F65 }}, /* 1F6D; 1F65; Case map */ { 0x001F6E, 0, { 0x001F66 }}, /* 1F6E; 1F66; Case map */ { 0x001F6F, 0, { 0x001F67 }}, /* 1F6F; 1F67; Case map */ { 0x001F80, 0, { 0x001F00, /* 1F80; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F81, 0, { 0x001F01, /* 1F81; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F82, 0, { 0x001F02, /* 1F82; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F83, 0, { 0x001F03, /* 1F83; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F84, 0, { 0x001F04, /* 1F84; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F85, 0, { 0x001F05, /* 1F85; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F86, 0, { 0x001F06, /* 1F86; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F87, 0, { 0x001F07, /* 1F87; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F88, 0, { 0x001F00, /* 1F88; 1F00 03B9; Case map */ 0x0003B9 }}, { 0x001F89, 0, { 0x001F01, /* 1F89; 1F01 03B9; Case map */ 0x0003B9 }}, { 0x001F8A, 0, { 0x001F02, /* 1F8A; 1F02 03B9; Case map */ 0x0003B9 }}, { 0x001F8B, 0, { 0x001F03, /* 1F8B; 1F03 03B9; Case map */ 0x0003B9 }}, { 0x001F8C, 0, { 0x001F04, /* 1F8C; 1F04 03B9; Case map */ 0x0003B9 }}, { 0x001F8D, 0, { 0x001F05, /* 1F8D; 1F05 03B9; Case map */ 0x0003B9 }}, { 0x001F8E, 0, { 0x001F06, /* 1F8E; 1F06 03B9; Case map */ 0x0003B9 }}, { 0x001F8F, 0, { 0x001F07, /* 1F8F; 1F07 03B9; Case map */ 0x0003B9 }}, { 0x001F90, 0, { 0x001F20, /* 1F90; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F91, 0, { 0x001F21, /* 1F91; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F92, 0, { 0x001F22, /* 1F92; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F93, 0, { 0x001F23, /* 1F93; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F94, 0, { 0x001F24, /* 1F94; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F95, 0, { 0x001F25, /* 1F95; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F96, 0, { 0x001F26, /* 1F96; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F97, 0, { 0x001F27, /* 1F97; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001F98, 0, { 0x001F20, /* 1F98; 1F20 03B9; Case map */ 0x0003B9 }}, { 0x001F99, 0, { 0x001F21, /* 1F99; 1F21 03B9; Case map */ 0x0003B9 }}, { 0x001F9A, 0, { 0x001F22, /* 1F9A; 1F22 03B9; Case map */ 0x0003B9 }}, { 0x001F9B, 0, { 0x001F23, /* 1F9B; 1F23 03B9; Case map */ 0x0003B9 }}, { 0x001F9C, 0, { 0x001F24, /* 1F9C; 1F24 03B9; Case map */ 0x0003B9 }}, { 0x001F9D, 0, { 0x001F25, /* 1F9D; 1F25 03B9; Case map */ 0x0003B9 }}, { 0x001F9E, 0, { 0x001F26, /* 1F9E; 1F26 03B9; Case map */ 0x0003B9 }}, { 0x001F9F, 0, { 0x001F27, /* 1F9F; 1F27 03B9; Case map */ 0x0003B9 }}, { 0x001FA0, 0, { 0x001F60, /* 1FA0; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA1, 0, { 0x001F61, /* 1FA1; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FA2, 0, { 0x001F62, /* 1FA2; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FA3, 0, { 0x001F63, /* 1FA3; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FA4, 0, { 0x001F64, /* 1FA4; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FA5, 0, { 0x001F65, /* 1FA5; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FA6, 0, { 0x001F66, /* 1FA6; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FA7, 0, { 0x001F67, /* 1FA7; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FA8, 0, { 0x001F60, /* 1FA8; 1F60 03B9; Case map */ 0x0003B9 }}, { 0x001FA9, 0, { 0x001F61, /* 1FA9; 1F61 03B9; Case map */ 0x0003B9 }}, { 0x001FAA, 0, { 0x001F62, /* 1FAA; 1F62 03B9; Case map */ 0x0003B9 }}, { 0x001FAB, 0, { 0x001F63, /* 1FAB; 1F63 03B9; Case map */ 0x0003B9 }}, { 0x001FAC, 0, { 0x001F64, /* 1FAC; 1F64 03B9; Case map */ 0x0003B9 }}, { 0x001FAD, 0, { 0x001F65, /* 1FAD; 1F65 03B9; Case map */ 0x0003B9 }}, { 0x001FAE, 0, { 0x001F66, /* 1FAE; 1F66 03B9; Case map */ 0x0003B9 }}, { 0x001FAF, 0, { 0x001F67, /* 1FAF; 1F67 03B9; Case map */ 0x0003B9 }}, { 0x001FB2, 0, { 0x001F70, /* 1FB2; 1F70 03B9; Case map */ 0x0003B9 }}, { 0x001FB3, 0, { 0x0003B1, /* 1FB3; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FB4, 0, { 0x0003AC, /* 1FB4; 03AC 03B9; Case map */ 0x0003B9 }}, { 0x001FB6, 0, { 0x0003B1, /* 1FB6; 03B1 0342; Case map */ 0x000342 }}, { 0x001FB7, 0, { 0x0003B1, /* 1FB7; 03B1 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FB8, 0, { 0x001FB0 }}, /* 1FB8; 1FB0; Case map */ { 0x001FB9, 0, { 0x001FB1 }}, /* 1FB9; 1FB1; Case map */ { 0x001FBA, 0, { 0x001F70 }}, /* 1FBA; 1F70; Case map */ { 0x001FBB, 0, { 0x001F71 }}, /* 1FBB; 1F71; Case map */ { 0x001FBC, 0, { 0x0003B1, /* 1FBC; 03B1 03B9; Case map */ 0x0003B9 }}, { 0x001FBE, 0, { 0x0003B9 }}, /* 1FBE; 03B9; Case map */ { 0x001FC2, 0, { 0x001F74, /* 1FC2; 1F74 03B9; Case map */ 0x0003B9 }}, { 0x001FC3, 0, { 0x0003B7, /* 1FC3; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FC4, 0, { 0x0003AE, /* 1FC4; 03AE 03B9; Case map */ 0x0003B9 }}, { 0x001FC6, 0, { 0x0003B7, /* 1FC6; 03B7 0342; Case map */ 0x000342 }}, { 0x001FC7, 0, { 0x0003B7, /* 1FC7; 03B7 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FC8, 0, { 0x001F72 }}, /* 1FC8; 1F72; Case map */ { 0x001FC9, 0, { 0x001F73 }}, /* 1FC9; 1F73; Case map */ { 0x001FCA, 0, { 0x001F74 }}, /* 1FCA; 1F74; Case map */ { 0x001FCB, 0, { 0x001F75 }}, /* 1FCB; 1F75; Case map */ { 0x001FCC, 0, { 0x0003B7, /* 1FCC; 03B7 03B9; Case map */ 0x0003B9 }}, { 0x001FD2, 0, { 0x0003B9, /* 1FD2; 03B9 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FD3, 0, { 0x0003B9, /* 1FD3; 03B9 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FD6, 0, { 0x0003B9, /* 1FD6; 03B9 0342; Case map */ 0x000342 }}, { 0x001FD7, 0, { 0x0003B9, /* 1FD7; 03B9 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FD8, 0, { 0x001FD0 }}, /* 1FD8; 1FD0; Case map */ { 0x001FD9, 0, { 0x001FD1 }}, /* 1FD9; 1FD1; Case map */ { 0x001FDA, 0, { 0x001F76 }}, /* 1FDA; 1F76; Case map */ { 0x001FDB, 0, { 0x001F77 }}, /* 1FDB; 1F77; Case map */ { 0x001FE2, 0, { 0x0003C5, /* 1FE2; 03C5 0308 0300; Case map */ 0x000308, 0x000300 }}, { 0x001FE3, 0, { 0x0003C5, /* 1FE3; 03C5 0308 0301; Case map */ 0x000308, 0x000301 }}, { 0x001FE4, 0, { 0x0003C1, /* 1FE4; 03C1 0313; Case map */ 0x000313 }}, { 0x001FE6, 0, { 0x0003C5, /* 1FE6; 03C5 0342; Case map */ 0x000342 }}, { 0x001FE7, 0, { 0x0003C5, /* 1FE7; 03C5 0308 0342; Case map */ 0x000308, 0x000342 }}, { 0x001FE8, 0, { 0x001FE0 }}, /* 1FE8; 1FE0; Case map */ { 0x001FE9, 0, { 0x001FE1 }}, /* 1FE9; 1FE1; Case map */ { 0x001FEA, 0, { 0x001F7A }}, /* 1FEA; 1F7A; Case map */ { 0x001FEB, 0, { 0x001F7B }}, /* 1FEB; 1F7B; Case map */ { 0x001FEC, 0, { 0x001FE5 }}, /* 1FEC; 1FE5; Case map */ { 0x001FF2, 0, { 0x001F7C, /* 1FF2; 1F7C 03B9; Case map */ 0x0003B9 }}, { 0x001FF3, 0, { 0x0003C9, /* 1FF3; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x001FF4, 0, { 0x0003CE, /* 1FF4; 03CE 03B9; Case map */ 0x0003B9 }}, { 0x001FF6, 0, { 0x0003C9, /* 1FF6; 03C9 0342; Case map */ 0x000342 }}, { 0x001FF7, 0, { 0x0003C9, /* 1FF7; 03C9 0342 03B9; Case map */ 0x000342, 0x0003B9 }}, { 0x001FF8, 0, { 0x001F78 }}, /* 1FF8; 1F78; Case map */ { 0x001FF9, 0, { 0x001F79 }}, /* 1FF9; 1F79; Case map */ { 0x001FFA, 0, { 0x001F7C }}, /* 1FFA; 1F7C; Case map */ { 0x001FFB, 0, { 0x001F7D }}, /* 1FFB; 1F7D; Case map */ { 0x001FFC, 0, { 0x0003C9, /* 1FFC; 03C9 03B9; Case map */ 0x0003B9 }}, { 0x002126, 0, { 0x0003C9 }}, /* 2126; 03C9; Case map */ { 0x00212A, 0, { 0x00006B }}, /* 212A; 006B; Case map */ { 0x00212B, 0, { 0x0000E5 }}, /* 212B; 00E5; Case map */ { 0x002160, 0, { 0x002170 }}, /* 2160; 2170; Case map */ { 0x002161, 0, { 0x002171 }}, /* 2161; 2171; Case map */ { 0x002162, 0, { 0x002172 }}, /* 2162; 2172; Case map */ { 0x002163, 0, { 0x002173 }}, /* 2163; 2173; Case map */ { 0x002164, 0, { 0x002174 }}, /* 2164; 2174; Case map */ { 0x002165, 0, { 0x002175 }}, /* 2165; 2175; Case map */ { 0x002166, 0, { 0x002176 }}, /* 2166; 2176; Case map */ { 0x002167, 0, { 0x002177 }}, /* 2167; 2177; Case map */ { 0x002168, 0, { 0x002178 }}, /* 2168; 2178; Case map */ { 0x002169, 0, { 0x002179 }}, /* 2169; 2179; Case map */ { 0x00216A, 0, { 0x00217A }}, /* 216A; 217A; Case map */ { 0x00216B, 0, { 0x00217B }}, /* 216B; 217B; Case map */ { 0x00216C, 0, { 0x00217C }}, /* 216C; 217C; Case map */ { 0x00216D, 0, { 0x00217D }}, /* 216D; 217D; Case map */ { 0x00216E, 0, { 0x00217E }}, /* 216E; 217E; Case map */ { 0x00216F, 0, { 0x00217F }}, /* 216F; 217F; Case map */ { 0x0024B6, 0, { 0x0024D0 }}, /* 24B6; 24D0; Case map */ { 0x0024B7, 0, { 0x0024D1 }}, /* 24B7; 24D1; Case map */ { 0x0024B8, 0, { 0x0024D2 }}, /* 24B8; 24D2; Case map */ { 0x0024B9, 0, { 0x0024D3 }}, /* 24B9; 24D3; Case map */ { 0x0024BA, 0, { 0x0024D4 }}, /* 24BA; 24D4; Case map */ { 0x0024BB, 0, { 0x0024D5 }}, /* 24BB; 24D5; Case map */ { 0x0024BC, 0, { 0x0024D6 }}, /* 24BC; 24D6; Case map */ { 0x0024BD, 0, { 0x0024D7 }}, /* 24BD; 24D7; Case map */ { 0x0024BE, 0, { 0x0024D8 }}, /* 24BE; 24D8; Case map */ { 0x0024BF, 0, { 0x0024D9 }}, /* 24BF; 24D9; Case map */ { 0x0024C0, 0, { 0x0024DA }}, /* 24C0; 24DA; Case map */ { 0x0024C1, 0, { 0x0024DB }}, /* 24C1; 24DB; Case map */ { 0x0024C2, 0, { 0x0024DC }}, /* 24C2; 24DC; Case map */ { 0x0024C3, 0, { 0x0024DD }}, /* 24C3; 24DD; Case map */ { 0x0024C4, 0, { 0x0024DE }}, /* 24C4; 24DE; Case map */ { 0x0024C5, 0, { 0x0024DF }}, /* 24C5; 24DF; Case map */ { 0x0024C6, 0, { 0x0024E0 }}, /* 24C6; 24E0; Case map */ { 0x0024C7, 0, { 0x0024E1 }}, /* 24C7; 24E1; Case map */ { 0x0024C8, 0, { 0x0024E2 }}, /* 24C8; 24E2; Case map */ { 0x0024C9, 0, { 0x0024E3 }}, /* 24C9; 24E3; Case map */ { 0x0024CA, 0, { 0x0024E4 }}, /* 24CA; 24E4; Case map */ { 0x0024CB, 0, { 0x0024E5 }}, /* 24CB; 24E5; Case map */ { 0x0024CC, 0, { 0x0024E6 }}, /* 24CC; 24E6; Case map */ { 0x0024CD, 0, { 0x0024E7 }}, /* 24CD; 24E7; Case map */ { 0x0024CE, 0, { 0x0024E8 }}, /* 24CE; 24E8; Case map */ { 0x0024CF, 0, { 0x0024E9 }}, /* 24CF; 24E9; Case map */ { 0x00FB00, 0, { 0x000066, /* FB00; 0066 0066; Case map */ 0x000066 }}, { 0x00FB01, 0, { 0x000066, /* FB01; 0066 0069; Case map */ 0x000069 }}, { 0x00FB02, 0, { 0x000066, /* FB02; 0066 006C; Case map */ 0x00006C }}, { 0x00FB03, 0, { 0x000066, /* FB03; 0066 0066 0069; Case map */ 0x000066, 0x000069 }}, { 0x00FB04, 0, { 0x000066, /* FB04; 0066 0066 006C; Case map */ 0x000066, 0x00006C }}, { 0x00FB05, 0, { 0x000073, /* FB05; 0073 0074; Case map */ 0x000074 }}, { 0x00FB06, 0, { 0x000073, /* FB06; 0073 0074; Case map */ 0x000074 }}, { 0x00FB13, 0, { 0x000574, /* FB13; 0574 0576; Case map */ 0x000576 }}, { 0x00FB14, 0, { 0x000574, /* FB14; 0574 0565; Case map */ 0x000565 }}, { 0x00FB15, 0, { 0x000574, /* FB15; 0574 056B; Case map */ 0x00056B }}, { 0x00FB16, 0, { 0x00057E, /* FB16; 057E 0576; Case map */ 0x000576 }}, { 0x00FB17, 0, { 0x000574, /* FB17; 0574 056D; Case map */ 0x00056D }}, { 0x00FF21, 0, { 0x00FF41 }}, /* FF21; FF41; Case map */ { 0x00FF22, 0, { 0x00FF42 }}, /* FF22; FF42; Case map */ { 0x00FF23, 0, { 0x00FF43 }}, /* FF23; FF43; Case map */ { 0x00FF24, 0, { 0x00FF44 }}, /* FF24; FF44; Case map */ { 0x00FF25, 0, { 0x00FF45 }}, /* FF25; FF45; Case map */ { 0x00FF26, 0, { 0x00FF46 }}, /* FF26; FF46; Case map */ { 0x00FF27, 0, { 0x00FF47 }}, /* FF27; FF47; Case map */ { 0x00FF28, 0, { 0x00FF48 }}, /* FF28; FF48; Case map */ { 0x00FF29, 0, { 0x00FF49 }}, /* FF29; FF49; Case map */ { 0x00FF2A, 0, { 0x00FF4A }}, /* FF2A; FF4A; Case map */ { 0x00FF2B, 0, { 0x00FF4B }}, /* FF2B; FF4B; Case map */ { 0x00FF2C, 0, { 0x00FF4C }}, /* FF2C; FF4C; Case map */ { 0x00FF2D, 0, { 0x00FF4D }}, /* FF2D; FF4D; Case map */ { 0x00FF2E, 0, { 0x00FF4E }}, /* FF2E; FF4E; Case map */ { 0x00FF2F, 0, { 0x00FF4F }}, /* FF2F; FF4F; Case map */ { 0x00FF30, 0, { 0x00FF50 }}, /* FF30; FF50; Case map */ { 0x00FF31, 0, { 0x00FF51 }}, /* FF31; FF51; Case map */ { 0x00FF32, 0, { 0x00FF52 }}, /* FF32; FF52; Case map */ { 0x00FF33, 0, { 0x00FF53 }}, /* FF33; FF53; Case map */ { 0x00FF34, 0, { 0x00FF54 }}, /* FF34; FF54; Case map */ { 0x00FF35, 0, { 0x00FF55 }}, /* FF35; FF55; Case map */ { 0x00FF36, 0, { 0x00FF56 }}, /* FF36; FF56; Case map */ { 0x00FF37, 0, { 0x00FF57 }}, /* FF37; FF57; Case map */ { 0x00FF38, 0, { 0x00FF58 }}, /* FF38; FF58; Case map */ { 0x00FF39, 0, { 0x00FF59 }}, /* FF39; FF59; Case map */ { 0x00FF3A, 0, { 0x00FF5A }}, /* FF3A; FF5A; Case map */ { 0x010400, 0, { 0x010428 }}, /* 10400; 10428; Case map */ { 0x010401, 0, { 0x010429 }}, /* 10401; 10429; Case map */ { 0x010402, 0, { 0x01042A }}, /* 10402; 1042A; Case map */ { 0x010403, 0, { 0x01042B }}, /* 10403; 1042B; Case map */ { 0x010404, 0, { 0x01042C }}, /* 10404; 1042C; Case map */ { 0x010405, 0, { 0x01042D }}, /* 10405; 1042D; Case map */ { 0x010406, 0, { 0x01042E }}, /* 10406; 1042E; Case map */ { 0x010407, 0, { 0x01042F }}, /* 10407; 1042F; Case map */ { 0x010408, 0, { 0x010430 }}, /* 10408; 10430; Case map */ { 0x010409, 0, { 0x010431 }}, /* 10409; 10431; Case map */ { 0x01040A, 0, { 0x010432 }}, /* 1040A; 10432; Case map */ { 0x01040B, 0, { 0x010433 }}, /* 1040B; 10433; Case map */ { 0x01040C, 0, { 0x010434 }}, /* 1040C; 10434; Case map */ { 0x01040D, 0, { 0x010435 }}, /* 1040D; 10435; Case map */ { 0x01040E, 0, { 0x010436 }}, /* 1040E; 10436; Case map */ { 0x01040F, 0, { 0x010437 }}, /* 1040F; 10437; Case map */ { 0x010410, 0, { 0x010438 }}, /* 10410; 10438; Case map */ { 0x010411, 0, { 0x010439 }}, /* 10411; 10439; Case map */ { 0x010412, 0, { 0x01043A }}, /* 10412; 1043A; Case map */ { 0x010413, 0, { 0x01043B }}, /* 10413; 1043B; Case map */ { 0x010414, 0, { 0x01043C }}, /* 10414; 1043C; Case map */ { 0x010415, 0, { 0x01043D }}, /* 10415; 1043D; Case map */ { 0x010416, 0, { 0x01043E }}, /* 10416; 1043E; Case map */ { 0x010417, 0, { 0x01043F }}, /* 10417; 1043F; Case map */ { 0x010418, 0, { 0x010440 }}, /* 10418; 10440; Case map */ { 0x010419, 0, { 0x010441 }}, /* 10419; 10441; Case map */ { 0x01041A, 0, { 0x010442 }}, /* 1041A; 10442; Case map */ { 0x01041B, 0, { 0x010443 }}, /* 1041B; 10443; Case map */ { 0x01041C, 0, { 0x010444 }}, /* 1041C; 10444; Case map */ { 0x01041D, 0, { 0x010445 }}, /* 1041D; 10445; Case map */ { 0x01041E, 0, { 0x010446 }}, /* 1041E; 10446; Case map */ { 0x01041F, 0, { 0x010447 }}, /* 1041F; 10447; Case map */ { 0x010420, 0, { 0x010448 }}, /* 10420; 10448; Case map */ { 0x010421, 0, { 0x010449 }}, /* 10421; 10449; Case map */ { 0x010422, 0, { 0x01044A }}, /* 10422; 1044A; Case map */ { 0x010423, 0, { 0x01044B }}, /* 10423; 1044B; Case map */ { 0x010424, 0, { 0x01044C }}, /* 10424; 1044C; Case map */ { 0x010425, 0, { 0x01044D }}, /* 10425; 1044D; Case map */ { 0 }, }; /* * FF3A; FF5A; Case map * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map */ const Stringprep_table_element stringprep_rfc3454_C_1_1[] = { { 0x000020 }, /* 0020; SPACE */ { 0 }, }; /* * FF3A; FF5A; Case map * * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 0020; SPACE */ const Stringprep_table_element stringprep_rfc3454_C_1_2[] = { { 0x0000A0 }, /* 00A0; NO-BREAK SPACE */ { 0x001680 }, /* 1680; OGHAM SPACE MARK */ { 0x002000 }, /* 2000; EN QUAD */ { 0x002001 }, /* 2001; EM QUAD */ { 0x002002 }, /* 2002; EN SPACE */ { 0x002003 }, /* 2003; EM SPACE */ { 0x002004 }, /* 2004; THREE-PER-EM SPACE */ { 0x002005 }, /* 2005; FOUR-PER-EM SPACE */ { 0x002006 }, /* 2006; SIX-PER-EM SPACE */ { 0x002007 }, /* 2007; FIGURE SPACE */ { 0x002008 }, /* 2008; PUNCTUATION SPACE */ { 0x002009 }, /* 2009; THIN SPACE */ { 0x00200A }, /* 200A; HAIR SPACE */ { 0x00200B }, /* 200B; ZERO WIDTH SPACE */ { 0x00202F }, /* 202F; NARROW NO-BREAK SPACE */ { 0x00205F }, /* 205F; MEDIUM MATHEMATICAL SPACE */ { 0x003000 }, /* 3000; IDEOGRAPHIC SPACE */ { 0 }, }; /* * FF3A; FF5A; Case map * * * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 0020; SPACE 00A0; NO-BREAK SPACE 1680; OGHAM SPACE MARK 2000; EN QUAD 2001; EM QUAD 2002; EN SPACE 2003; EM SPACE 2004; THREE-PER-EM SPACE 2005; FOUR-PER-EM SPACE 2006; SIX-PER-EM SPACE 2007; FIGURE SPACE 2008; PUNCTUATION SPACE 2009; THIN SPACE 200A; HAIR SPACE 200B; ZERO WIDTH SPACE 202F; NARROW NO-BREAK SPACE 205F; MEDIUM MATHEMATICAL SPACE 3000; IDEOGRAPHIC SPACE */ const Stringprep_table_element stringprep_rfc3454_C_2_1[] = { { 0x000000, 0x00001F }, /* 0000-001F; [CONTROL CHARACTERS] */ { 0x00007F }, /* 007F; DELETE */ { 0 }, }; /* * FF3A; FF5A; Case map * * * * 10400; 10428; Case map 10401; 10429; Case map 10402; 1042A; Case map 10403; 1042B; Case map 10404; 1042C; Case map 10405; 1042D; Case map 10406; 1042E; Case map 10407; 1042F; Case map 10408; 10430; Case map 10409; 10431; Case map 1040A; 10432; Case map 1040B; 10433; Case map 1040C; 10434; Case map 1040D; 10435; Case map 1040E; 10436; Case map 1040F; 10437; Case map 10410; 10438; Case map 10411; 10439; Case map 10412; 1043A; Case map 10413; 1043B; Case map 10414; 1043C; Case map 10415; 1043D; Case map 10416; 1043E; Case map 10417; 1043F; Case map 10418; 10440; Case map 10419; 10441; Case map 1041A; 10442; Case map 1041B; 10443; Case map 1041C; 10444; Case map 1041D; 10445; Case map 1041E; 10446; Case map 1041F; 10447; Case map 10420; 10448; Case map 10421; 10449; Case map 10422; 1044A; Case map 10423; 1044B; Case map 10424; 1044C; Case map 10425; 1044D; Case map 0020; SPACE 00A0; NO-BREAK SPACE 1680; OGHAM SPACE MARK 2000; EN QUAD 2001; EM QUAD 2002; EN SPACE 2003; EM SPACE 2004; THREE-PER-EM SPACE 2005; FOUR-PER-EM SPACE 2006; SIX-PER-EM SPACE 2007; FIGURE SPACE 2008; PUNCTUATION SPACE 2009; THIN SPACE 200A; HAIR SPACE 200B; ZERO WIDTH SPACE 202F; NARROW NO-BREAK SPACE 205F; MEDIUM MATHEMATICAL SPACE 3000; IDEOGRAPHIC SPACE 0000-001F; [CONTROL CHARACTERS] 007F; DELETE */ const Stringprep_table_element stringprep_rfc3454_C_2_2[] = { { 0x000080, 0x00009F }, /* 0080-009F; [CONTROL CHARACTERS] */ { 0x0006DD }, /* 06DD; ARABIC END OF AYAH */ { 0x00070F }, /* 070F; SYRIAC ABBREVIATION MARK */ { 0x00180E }, /* 180E; MONGOLIAN VOWEL SEPARATOR */ { 0x00200C }, /* 200C; ZERO WIDTH NON-JOINER */ { 0x00200D }, /* 200D; ZERO WIDTH JOINER */ { 0x002028 }, /* 2028; LINE SEPARATOR */ { 0x002029 }, /* 2029; PARAGRAPH SEPARATOR */ { 0x002060 }, /* 2060; WORD JOINER */ { 0x002061 }, /* 2061; FUNCTION APPLICATION */ { 0x002062 }, /* 2062; INVISIBLE TIMES */ { 0x002063 }, /* 2063; INVISIBLE SEPARATOR */ { 0x00206A, 0x00206F }, /* 206A-206F; [CONTROL CHARACTERS] */ { 0x00FEFF }, /* FEFF; ZERO WIDTH NO-BREAK SPACE */ { 0x00FFF9, 0x00FFFC }, /* FFF9-FFFC; [CONTROL CHARACTERS] */ { 0x01D173, 0x01D17A }, /* 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] */ { 0 }, }; /* * FFF9-FFFC; [CONTROL CHARACTERS] * 1D173-1D17A; [MUSICAL CONTROL CHARACTERS] */ const Stringprep_table_element stringprep_rfc3454_C_3[] = { { 0x00E000, 0x00F8FF }, /* E000-F8FF; [PRIVATE USE, PLANE 0] */ { 0x0F0000, 0x0FFFFD }, /* F0000-FFFFD; [PRIVATE USE, PLANE 15] */ { 0x100000, 0x10FFFD }, /* 100000-10FFFD; [PRIVATE USE, PLANE 16] */ { 0 }, }; /* * F0000-FFFFD; [PRIVATE USE, PLANE 15] * 100000-10FFFD; [PRIVATE USE, PLANE 16] */ const Stringprep_table_element stringprep_rfc3454_C_4[] = { { 0x00FDD0, 0x00FDEF }, /* FDD0-FDEF; [NONCHARACTER CODE POINTS] */ { 0x00FFFE, 0x00FFFF }, /* FFFE-FFFF; [NONCHARACTER CODE POINTS] */ { 0x01FFFE, 0x01FFFF }, /* 1FFFE-1FFFF; [NONCHARACTER CODE POINTS] */ { 0x02FFFE, 0x02FFFF }, /* 2FFFE-2FFFF; [NONCHARACTER CODE POINTS] */ { 0x03FFFE, 0x03FFFF }, /* 3FFFE-3FFFF; [NONCHARACTER CODE POINTS] */ { 0x04FFFE, 0x04FFFF }, /* 4FFFE-4FFFF; [NONCHARACTER CODE POINTS] */ { 0x05FFFE, 0x05FFFF }, /* 5FFFE-5FFFF; [NONCHARACTER CODE POINTS] */ { 0x06FFFE, 0x06FFFF }, /* 6FFFE-6FFFF; [NONCHARACTER CODE POINTS] */ { 0x07FFFE, 0x07FFFF }, /* 7FFFE-7FFFF; [NONCHARACTER CODE POINTS] */ { 0x08FFFE, 0x08FFFF }, /* 8FFFE-8FFFF; [NONCHARACTER CODE POINTS] */ { 0x09FFFE, 0x09FFFF }, /* 9FFFE-9FFFF; [NONCHARACTER CODE POINTS] */ { 0x0AFFFE, 0x0AFFFF }, /* AFFFE-AFFFF; [NONCHARACTER CODE POINTS] */ { 0x0BFFFE, 0x0BFFFF }, /* BFFFE-BFFFF; [NONCHARACTER CODE POINTS] */ { 0x0CFFFE, 0x0CFFFF }, /* CFFFE-CFFFF; [NONCHARACTER CODE POINTS] */ { 0x0DFFFE, 0x0DFFFF }, /* DFFFE-DFFFF; [NONCHARACTER CODE POINTS] */ { 0x0EFFFE, 0x0EFFFF }, /* EFFFE-EFFFF; [NONCHARACTER CODE POINTS] */ { 0x0FFFFE, 0x0FFFFF }, /* FFFFE-FFFFF; [NONCHARACTER CODE POINTS] */ { 0x10FFFE, 0x10FFFF }, /* 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] */ { 0 }, }; /* * FFFFE-FFFFF; [NONCHARACTER CODE POINTS] * 10FFFE-10FFFF; [NONCHARACTER CODE POINTS] */ const Stringprep_table_element stringprep_rfc3454_C_5[] = { { 0x00D800, 0x00DFFF }, /* D800-DFFF; [SURROGATE CODES] */ { 0 }, }; /* * D800-DFFF; [SURROGATE CODES] * */ const Stringprep_table_element stringprep_rfc3454_C_6[] = { { 0x00FFF9 }, /* FFF9; INTERLINEAR ANNOTATION ANCHOR */ { 0x00FFFA }, /* FFFA; INTERLINEAR ANNOTATION SEPARATOR */ { 0x00FFFB }, /* FFFB; INTERLINEAR ANNOTATION TERMINATOR */ { 0x00FFFC }, /* FFFC; OBJECT REPLACEMENT CHARACTER */ { 0x00FFFD }, /* FFFD; REPLACEMENT CHARACTER */ { 0 }, }; /* * FFFD; REPLACEMENT CHARACTER * */ const Stringprep_table_element stringprep_rfc3454_C_7[] = { { 0x002FF0, 0x002FFB }, /* 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] */ { 0 }, }; /* * FFFD; REPLACEMENT CHARACTER * * 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] */ const Stringprep_table_element stringprep_rfc3454_C_8[] = { { 0x000340 }, /* 0340; COMBINING GRAVE TONE MARK */ { 0x000341 }, /* 0341; COMBINING ACUTE TONE MARK */ { 0x00200E }, /* 200E; LEFT-TO-RIGHT MARK */ { 0x00200F }, /* 200F; RIGHT-TO-LEFT MARK */ { 0x00202A }, /* 202A; LEFT-TO-RIGHT EMBEDDING */ { 0x00202B }, /* 202B; RIGHT-TO-LEFT EMBEDDING */ { 0x00202C }, /* 202C; POP DIRECTIONAL FORMATTING */ { 0x00202D }, /* 202D; LEFT-TO-RIGHT OVERRIDE */ { 0x00202E }, /* 202E; RIGHT-TO-LEFT OVERRIDE */ { 0x00206A }, /* 206A; INHIBIT SYMMETRIC SWAPPING */ { 0x00206B }, /* 206B; ACTIVATE SYMMETRIC SWAPPING */ { 0x00206C }, /* 206C; INHIBIT ARABIC FORM SHAPING */ { 0x00206D }, /* 206D; ACTIVATE ARABIC FORM SHAPING */ { 0x00206E }, /* 206E; NATIONAL DIGIT SHAPES */ { 0x00206F }, /* 206F; NOMINAL DIGIT SHAPES */ { 0 }, }; /* * FFFD; REPLACEMENT CHARACTER * * * 2FF0-2FFB; [IDEOGRAPHIC DESCRIPTION CHARACTERS] 0340; COMBINING GRAVE TONE MARK 0341; COMBINING ACUTE TONE MARK 200E; LEFT-TO-RIGHT MARK 200F; RIGHT-TO-LEFT MARK 202A; LEFT-TO-RIGHT EMBEDDING 202B; RIGHT-TO-LEFT EMBEDDING 202C; POP DIRECTIONAL FORMATTING 202D; LEFT-TO-RIGHT OVERRIDE 202E; RIGHT-TO-LEFT OVERRIDE 206A; INHIBIT SYMMETRIC SWAPPING 206B; ACTIVATE SYMMETRIC SWAPPING 206C; INHIBIT ARABIC FORM SHAPING 206D; ACTIVATE ARABIC FORM SHAPING 206E; NATIONAL DIGIT SHAPES 206F; NOMINAL DIGIT SHAPES */ const Stringprep_table_element stringprep_rfc3454_C_9[] = { { 0x0E0001 }, /* E0001; LANGUAGE TAG */ { 0x0E0020, 0x0E007F }, /* E0020-E007F; [TAGGING CHARACTERS] */ { 0 }, }; /* * E0020-E007F; [TAGGING CHARACTERS] * */ const Stringprep_table_element stringprep_rfc3454_D_1[] = { { 0x0005BE }, /* 05BE */ { 0x0005C0 }, /* 05C0 */ { 0x0005C3 }, /* 05C3 */ { 0x0005D0, 0x0005EA }, /* 05D0-05EA */ { 0x0005F0, 0x0005F4 }, /* 05F0-05F4 */ { 0x00061B }, /* 061B */ { 0x00061F }, /* 061F */ { 0x000621, 0x00063A }, /* 0621-063A */ { 0x000640, 0x00064A }, /* 0640-064A */ { 0x00066D, 0x00066F }, /* 066D-066F */ { 0x000671, 0x0006D5 }, /* 0671-06D5 */ { 0x0006DD }, /* 06DD */ { 0x0006E5, 0x0006E6 }, /* 06E5-06E6 */ { 0x0006FA, 0x0006FE }, /* 06FA-06FE */ { 0x000700, 0x00070D }, /* 0700-070D */ { 0x000710 }, /* 0710 */ { 0x000712, 0x00072C }, /* 0712-072C */ { 0x000780, 0x0007A5 }, /* 0780-07A5 */ { 0x0007B1 }, /* 07B1 */ { 0x00200F }, /* 200F */ { 0x00FB1D }, /* FB1D */ { 0x00FB1F, 0x00FB28 }, /* FB1F-FB28 */ { 0x00FB2A, 0x00FB36 }, /* FB2A-FB36 */ { 0x00FB38, 0x00FB3C }, /* FB38-FB3C */ { 0x00FB3E }, /* FB3E */ { 0x00FB40, 0x00FB41 }, /* FB40-FB41 */ { 0x00FB43, 0x00FB44 }, /* FB43-FB44 */ { 0x00FB46, 0x00FBB1 }, /* FB46-FBB1 */ { 0x00FBD3, 0x00FD3D }, /* FBD3-FD3D */ { 0x00FD50, 0x00FD8F }, /* FD50-FD8F */ { 0x00FD92, 0x00FDC7 }, /* FD92-FDC7 */ { 0x00FDF0, 0x00FDFC }, /* FDF0-FDFC */ { 0x00FE70, 0x00FE74 }, /* FE70-FE74 */ { 0x00FE76, 0x00FEFC }, /* FE76-FEFC */ { 0 }, }; /* * FE76-FEFC * */ const Stringprep_table_element stringprep_rfc3454_D_2[] = { { 0x000041, 0x00005A }, /* 0041-005A */ { 0x000061, 0x00007A }, /* 0061-007A */ { 0x0000AA }, /* 00AA */ { 0x0000B5 }, /* 00B5 */ { 0x0000BA }, /* 00BA */ { 0x0000C0, 0x0000D6 }, /* 00C0-00D6 */ { 0x0000D8, 0x0000F6 }, /* 00D8-00F6 */ { 0x0000F8, 0x000220 }, /* 00F8-0220 */ { 0x000222, 0x000233 }, /* 0222-0233 */ { 0x000250, 0x0002AD }, /* 0250-02AD */ { 0x0002B0, 0x0002B8 }, /* 02B0-02B8 */ { 0x0002BB, 0x0002C1 }, /* 02BB-02C1 */ { 0x0002D0, 0x0002D1 }, /* 02D0-02D1 */ { 0x0002E0, 0x0002E4 }, /* 02E0-02E4 */ { 0x0002EE }, /* 02EE */ { 0x00037A }, /* 037A */ { 0x000386 }, /* 0386 */ { 0x000388, 0x00038A }, /* 0388-038A */ { 0x00038C }, /* 038C */ { 0x00038E, 0x0003A1 }, /* 038E-03A1 */ { 0x0003A3, 0x0003CE }, /* 03A3-03CE */ { 0x0003D0, 0x0003F5 }, /* 03D0-03F5 */ { 0x000400, 0x000482 }, /* 0400-0482 */ { 0x00048A, 0x0004CE }, /* 048A-04CE */ { 0x0004D0, 0x0004F5 }, /* 04D0-04F5 */ { 0x0004F8, 0x0004F9 }, /* 04F8-04F9 */ { 0x000500, 0x00050F }, /* 0500-050F */ { 0x000531, 0x000556 }, /* 0531-0556 */ { 0x000559, 0x00055F }, /* 0559-055F */ { 0x000561, 0x000587 }, /* 0561-0587 */ { 0x000589 }, /* 0589 */ { 0x000903 }, /* 0903 */ { 0x000905, 0x000939 }, /* 0905-0939 */ { 0x00093D, 0x000940 }, /* 093D-0940 */ { 0x000949, 0x00094C }, /* 0949-094C */ { 0x000950 }, /* 0950 */ { 0x000958, 0x000961 }, /* 0958-0961 */ { 0x000964, 0x000970 }, /* 0964-0970 */ { 0x000982, 0x000983 }, /* 0982-0983 */ { 0x000985, 0x00098C }, /* 0985-098C */ { 0x00098F, 0x000990 }, /* 098F-0990 */ { 0x000993, 0x0009A8 }, /* 0993-09A8 */ { 0x0009AA, 0x0009B0 }, /* 09AA-09B0 */ { 0x0009B2 }, /* 09B2 */ { 0x0009B6, 0x0009B9 }, /* 09B6-09B9 */ { 0x0009BE, 0x0009C0 }, /* 09BE-09C0 */ { 0x0009C7, 0x0009C8 }, /* 09C7-09C8 */ { 0x0009CB, 0x0009CC }, /* 09CB-09CC */ { 0x0009D7 }, /* 09D7 */ { 0x0009DC, 0x0009DD }, /* 09DC-09DD */ { 0x0009DF, 0x0009E1 }, /* 09DF-09E1 */ { 0x0009E6, 0x0009F1 }, /* 09E6-09F1 */ { 0x0009F4, 0x0009FA }, /* 09F4-09FA */ { 0x000A05, 0x000A0A }, /* 0A05-0A0A */ { 0x000A0F, 0x000A10 }, /* 0A0F-0A10 */ { 0x000A13, 0x000A28 }, /* 0A13-0A28 */ { 0x000A2A, 0x000A30 }, /* 0A2A-0A30 */ { 0x000A32, 0x000A33 }, /* 0A32-0A33 */ { 0x000A35, 0x000A36 }, /* 0A35-0A36 */ { 0x000A38, 0x000A39 }, /* 0A38-0A39 */ { 0x000A3E, 0x000A40 }, /* 0A3E-0A40 */ { 0x000A59, 0x000A5C }, /* 0A59-0A5C */ { 0x000A5E }, /* 0A5E */ { 0x000A66, 0x000A6F }, /* 0A66-0A6F */ { 0x000A72, 0x000A74 }, /* 0A72-0A74 */ { 0x000A83 }, /* 0A83 */ { 0x000A85, 0x000A8B }, /* 0A85-0A8B */ { 0x000A8D }, /* 0A8D */ { 0x000A8F, 0x000A91 }, /* 0A8F-0A91 */ { 0x000A93, 0x000AA8 }, /* 0A93-0AA8 */ { 0x000AAA, 0x000AB0 }, /* 0AAA-0AB0 */ { 0x000AB2, 0x000AB3 }, /* 0AB2-0AB3 */ { 0x000AB5, 0x000AB9 }, /* 0AB5-0AB9 */ { 0x000ABD, 0x000AC0 }, /* 0ABD-0AC0 */ { 0x000AC9 }, /* 0AC9 */ { 0x000ACB, 0x000ACC }, /* 0ACB-0ACC */ { 0x000AD0 }, /* 0AD0 */ { 0x000AE0 }, /* 0AE0 */ { 0x000AE6, 0x000AEF }, /* 0AE6-0AEF */ { 0x000B02, 0x000B03 }, /* 0B02-0B03 */ { 0x000B05, 0x000B0C }, /* 0B05-0B0C */ { 0x000B0F, 0x000B10 }, /* 0B0F-0B10 */ { 0x000B13, 0x000B28 }, /* 0B13-0B28 */ { 0x000B2A, 0x000B30 }, /* 0B2A-0B30 */ { 0x000B32, 0x000B33 }, /* 0B32-0B33 */ { 0x000B36, 0x000B39 }, /* 0B36-0B39 */ { 0x000B3D, 0x000B3E }, /* 0B3D-0B3E */ { 0x000B40 }, /* 0B40 */ { 0x000B47, 0x000B48 }, /* 0B47-0B48 */ { 0x000B4B, 0x000B4C }, /* 0B4B-0B4C */ { 0x000B57 }, /* 0B57 */ { 0x000B5C, 0x000B5D }, /* 0B5C-0B5D */ { 0x000B5F, 0x000B61 }, /* 0B5F-0B61 */ { 0x000B66, 0x000B70 }, /* 0B66-0B70 */ { 0x000B83 }, /* 0B83 */ { 0x000B85, 0x000B8A }, /* 0B85-0B8A */ { 0x000B8E, 0x000B90 }, /* 0B8E-0B90 */ { 0x000B92, 0x000B95 }, /* 0B92-0B95 */ { 0x000B99, 0x000B9A }, /* 0B99-0B9A */ { 0x000B9C }, /* 0B9C */ { 0x000B9E, 0x000B9F }, /* 0B9E-0B9F */ { 0x000BA3, 0x000BA4 }, /* 0BA3-0BA4 */ { 0x000BA8, 0x000BAA }, /* 0BA8-0BAA */ { 0x000BAE, 0x000BB5 }, /* 0BAE-0BB5 */ { 0x000BB7, 0x000BB9 }, /* 0BB7-0BB9 */ { 0x000BBE, 0x000BBF }, /* 0BBE-0BBF */ { 0x000BC1, 0x000BC2 }, /* 0BC1-0BC2 */ { 0x000BC6, 0x000BC8 }, /* 0BC6-0BC8 */ { 0x000BCA, 0x000BCC }, /* 0BCA-0BCC */ { 0x000BD7 }, /* 0BD7 */ { 0x000BE7, 0x000BF2 }, /* 0BE7-0BF2 */ { 0x000C01, 0x000C03 }, /* 0C01-0C03 */ { 0x000C05, 0x000C0C }, /* 0C05-0C0C */ { 0x000C0E, 0x000C10 }, /* 0C0E-0C10 */ { 0x000C12, 0x000C28 }, /* 0C12-0C28 */ { 0x000C2A, 0x000C33 }, /* 0C2A-0C33 */ { 0x000C35, 0x000C39 }, /* 0C35-0C39 */ { 0x000C41, 0x000C44 }, /* 0C41-0C44 */ { 0x000C60, 0x000C61 }, /* 0C60-0C61 */ { 0x000C66, 0x000C6F }, /* 0C66-0C6F */ { 0x000C82, 0x000C83 }, /* 0C82-0C83 */ { 0x000C85, 0x000C8C }, /* 0C85-0C8C */ { 0x000C8E, 0x000C90 }, /* 0C8E-0C90 */ { 0x000C92, 0x000CA8 }, /* 0C92-0CA8 */ { 0x000CAA, 0x000CB3 }, /* 0CAA-0CB3 */ { 0x000CB5, 0x000CB9 }, /* 0CB5-0CB9 */ { 0x000CBE }, /* 0CBE */ { 0x000CC0, 0x000CC4 }, /* 0CC0-0CC4 */ { 0x000CC7, 0x000CC8 }, /* 0CC7-0CC8 */ { 0x000CCA, 0x000CCB }, /* 0CCA-0CCB */ { 0x000CD5, 0x000CD6 }, /* 0CD5-0CD6 */ { 0x000CDE }, /* 0CDE */ { 0x000CE0, 0x000CE1 }, /* 0CE0-0CE1 */ { 0x000CE6, 0x000CEF }, /* 0CE6-0CEF */ { 0x000D02, 0x000D03 }, /* 0D02-0D03 */ { 0x000D05, 0x000D0C }, /* 0D05-0D0C */ { 0x000D0E, 0x000D10 }, /* 0D0E-0D10 */ { 0x000D12, 0x000D28 }, /* 0D12-0D28 */ { 0x000D2A, 0x000D39 }, /* 0D2A-0D39 */ { 0x000D3E, 0x000D40 }, /* 0D3E-0D40 */ { 0x000D46, 0x000D48 }, /* 0D46-0D48 */ { 0x000D4A, 0x000D4C }, /* 0D4A-0D4C */ { 0x000D57 }, /* 0D57 */ { 0x000D60, 0x000D61 }, /* 0D60-0D61 */ { 0x000D66, 0x000D6F }, /* 0D66-0D6F */ { 0x000D82, 0x000D83 }, /* 0D82-0D83 */ { 0x000D85, 0x000D96 }, /* 0D85-0D96 */ { 0x000D9A, 0x000DB1 }, /* 0D9A-0DB1 */ { 0x000DB3, 0x000DBB }, /* 0DB3-0DBB */ { 0x000DBD }, /* 0DBD */ { 0x000DC0, 0x000DC6 }, /* 0DC0-0DC6 */ { 0x000DCF, 0x000DD1 }, /* 0DCF-0DD1 */ { 0x000DD8, 0x000DDF }, /* 0DD8-0DDF */ { 0x000DF2, 0x000DF4 }, /* 0DF2-0DF4 */ { 0x000E01, 0x000E30 }, /* 0E01-0E30 */ { 0x000E32, 0x000E33 }, /* 0E32-0E33 */ { 0x000E40, 0x000E46 }, /* 0E40-0E46 */ { 0x000E4F, 0x000E5B }, /* 0E4F-0E5B */ { 0x000E81, 0x000E82 }, /* 0E81-0E82 */ { 0x000E84 }, /* 0E84 */ { 0x000E87, 0x000E88 }, /* 0E87-0E88 */ { 0x000E8A }, /* 0E8A */ { 0x000E8D }, /* 0E8D */ { 0x000E94, 0x000E97 }, /* 0E94-0E97 */ { 0x000E99, 0x000E9F }, /* 0E99-0E9F */ { 0x000EA1, 0x000EA3 }, /* 0EA1-0EA3 */ { 0x000EA5 }, /* 0EA5 */ { 0x000EA7 }, /* 0EA7 */ { 0x000EAA, 0x000EAB }, /* 0EAA-0EAB */ { 0x000EAD, 0x000EB0 }, /* 0EAD-0EB0 */ { 0x000EB2, 0x000EB3 }, /* 0EB2-0EB3 */ { 0x000EBD }, /* 0EBD */ { 0x000EC0, 0x000EC4 }, /* 0EC0-0EC4 */ { 0x000EC6 }, /* 0EC6 */ { 0x000ED0, 0x000ED9 }, /* 0ED0-0ED9 */ { 0x000EDC, 0x000EDD }, /* 0EDC-0EDD */ { 0x000F00, 0x000F17 }, /* 0F00-0F17 */ { 0x000F1A, 0x000F34 }, /* 0F1A-0F34 */ { 0x000F36 }, /* 0F36 */ { 0x000F38 }, /* 0F38 */ { 0x000F3E, 0x000F47 }, /* 0F3E-0F47 */ { 0x000F49, 0x000F6A }, /* 0F49-0F6A */ { 0x000F7F }, /* 0F7F */ { 0x000F85 }, /* 0F85 */ { 0x000F88, 0x000F8B }, /* 0F88-0F8B */ { 0x000FBE, 0x000FC5 }, /* 0FBE-0FC5 */ { 0x000FC7, 0x000FCC }, /* 0FC7-0FCC */ { 0x000FCF }, /* 0FCF */ { 0x001000, 0x001021 }, /* 1000-1021 */ { 0x001023, 0x001027 }, /* 1023-1027 */ { 0x001029, 0x00102A }, /* 1029-102A */ { 0x00102C }, /* 102C */ { 0x001031 }, /* 1031 */ { 0x001038 }, /* 1038 */ { 0x001040, 0x001057 }, /* 1040-1057 */ { 0x0010A0, 0x0010C5 }, /* 10A0-10C5 */ { 0x0010D0, 0x0010F8 }, /* 10D0-10F8 */ { 0x0010FB }, /* 10FB */ { 0x001100, 0x001159 }, /* 1100-1159 */ { 0x00115F, 0x0011A2 }, /* 115F-11A2 */ { 0x0011A8, 0x0011F9 }, /* 11A8-11F9 */ { 0x001200, 0x001206 }, /* 1200-1206 */ { 0x001208, 0x001246 }, /* 1208-1246 */ { 0x001248 }, /* 1248 */ { 0x00124A, 0x00124D }, /* 124A-124D */ { 0x001250, 0x001256 }, /* 1250-1256 */ { 0x001258 }, /* 1258 */ { 0x00125A, 0x00125D }, /* 125A-125D */ { 0x001260, 0x001286 }, /* 1260-1286 */ { 0x001288 }, /* 1288 */ { 0x00128A, 0x00128D }, /* 128A-128D */ { 0x001290, 0x0012AE }, /* 1290-12AE */ { 0x0012B0 }, /* 12B0 */ { 0x0012B2, 0x0012B5 }, /* 12B2-12B5 */ { 0x0012B8, 0x0012BE }, /* 12B8-12BE */ { 0x0012C0 }, /* 12C0 */ { 0x0012C2, 0x0012C5 }, /* 12C2-12C5 */ { 0x0012C8, 0x0012CE }, /* 12C8-12CE */ { 0x0012D0, 0x0012D6 }, /* 12D0-12D6 */ { 0x0012D8, 0x0012EE }, /* 12D8-12EE */ { 0x0012F0, 0x00130E }, /* 12F0-130E */ { 0x001310 }, /* 1310 */ { 0x001312, 0x001315 }, /* 1312-1315 */ { 0x001318, 0x00131E }, /* 1318-131E */ { 0x001320, 0x001346 }, /* 1320-1346 */ { 0x001348, 0x00135A }, /* 1348-135A */ { 0x001361, 0x00137C }, /* 1361-137C */ { 0x0013A0, 0x0013F4 }, /* 13A0-13F4 */ { 0x001401, 0x001676 }, /* 1401-1676 */ { 0x001681, 0x00169A }, /* 1681-169A */ { 0x0016A0, 0x0016F0 }, /* 16A0-16F0 */ { 0x001700, 0x00170C }, /* 1700-170C */ { 0x00170E, 0x001711 }, /* 170E-1711 */ { 0x001720, 0x001731 }, /* 1720-1731 */ { 0x001735, 0x001736 }, /* 1735-1736 */ { 0x001740, 0x001751 }, /* 1740-1751 */ { 0x001760, 0x00176C }, /* 1760-176C */ { 0x00176E, 0x001770 }, /* 176E-1770 */ { 0x001780, 0x0017B6 }, /* 1780-17B6 */ { 0x0017BE, 0x0017C5 }, /* 17BE-17C5 */ { 0x0017C7, 0x0017C8 }, /* 17C7-17C8 */ { 0x0017D4, 0x0017DA }, /* 17D4-17DA */ { 0x0017DC }, /* 17DC */ { 0x0017E0, 0x0017E9 }, /* 17E0-17E9 */ { 0x001810, 0x001819 }, /* 1810-1819 */ { 0x001820, 0x001877 }, /* 1820-1877 */ { 0x001880, 0x0018A8 }, /* 1880-18A8 */ { 0x001E00, 0x001E9B }, /* 1E00-1E9B */ { 0x001EA0, 0x001EF9 }, /* 1EA0-1EF9 */ { 0x001F00, 0x001F15 }, /* 1F00-1F15 */ { 0x001F18, 0x001F1D }, /* 1F18-1F1D */ { 0x001F20, 0x001F45 }, /* 1F20-1F45 */ { 0x001F48, 0x001F4D }, /* 1F48-1F4D */ { 0x001F50, 0x001F57 }, /* 1F50-1F57 */ { 0x001F59 }, /* 1F59 */ { 0x001F5B }, /* 1F5B */ { 0x001F5D }, /* 1F5D */ { 0x001F5F, 0x001F7D }, /* 1F5F-1F7D */ { 0x001F80, 0x001FB4 }, /* 1F80-1FB4 */ { 0x001FB6, 0x001FBC }, /* 1FB6-1FBC */ { 0x001FBE }, /* 1FBE */ { 0x001FC2, 0x001FC4 }, /* 1FC2-1FC4 */ { 0x001FC6, 0x001FCC }, /* 1FC6-1FCC */ { 0x001FD0, 0x001FD3 }, /* 1FD0-1FD3 */ { 0x001FD6, 0x001FDB }, /* 1FD6-1FDB */ { 0x001FE0, 0x001FEC }, /* 1FE0-1FEC */ { 0x001FF2, 0x001FF4 }, /* 1FF2-1FF4 */ { 0x001FF6, 0x001FFC }, /* 1FF6-1FFC */ { 0x00200E }, /* 200E */ { 0x002071 }, /* 2071 */ { 0x00207F }, /* 207F */ { 0x002102 }, /* 2102 */ { 0x002107 }, /* 2107 */ { 0x00210A, 0x002113 }, /* 210A-2113 */ { 0x002115 }, /* 2115 */ { 0x002119, 0x00211D }, /* 2119-211D */ { 0x002124 }, /* 2124 */ { 0x002126 }, /* 2126 */ { 0x002128 }, /* 2128 */ { 0x00212A, 0x00212D }, /* 212A-212D */ { 0x00212F, 0x002131 }, /* 212F-2131 */ { 0x002133, 0x002139 }, /* 2133-2139 */ { 0x00213D, 0x00213F }, /* 213D-213F */ { 0x002145, 0x002149 }, /* 2145-2149 */ { 0x002160, 0x002183 }, /* 2160-2183 */ { 0x002336, 0x00237A }, /* 2336-237A */ { 0x002395 }, /* 2395 */ { 0x00249C, 0x0024E9 }, /* 249C-24E9 */ { 0x003005, 0x003007 }, /* 3005-3007 */ { 0x003021, 0x003029 }, /* 3021-3029 */ { 0x003031, 0x003035 }, /* 3031-3035 */ { 0x003038, 0x00303C }, /* 3038-303C */ { 0x003041, 0x003096 }, /* 3041-3096 */ { 0x00309D, 0x00309F }, /* 309D-309F */ { 0x0030A1, 0x0030FA }, /* 30A1-30FA */ { 0x0030FC, 0x0030FF }, /* 30FC-30FF */ { 0x003105, 0x00312C }, /* 3105-312C */ { 0x003131, 0x00318E }, /* 3131-318E */ { 0x003190, 0x0031B7 }, /* 3190-31B7 */ { 0x0031F0, 0x00321C }, /* 31F0-321C */ { 0x003220, 0x003243 }, /* 3220-3243 */ { 0x003260, 0x00327B }, /* 3260-327B */ { 0x00327F, 0x0032B0 }, /* 327F-32B0 */ { 0x0032C0, 0x0032CB }, /* 32C0-32CB */ { 0x0032D0, 0x0032FE }, /* 32D0-32FE */ { 0x003300, 0x003376 }, /* 3300-3376 */ { 0x00337B, 0x0033DD }, /* 337B-33DD */ { 0x0033E0, 0x0033FE }, /* 33E0-33FE */ { 0x003400, 0x004DB5 }, /* 3400-4DB5 */ { 0x004E00, 0x009FA5 }, /* 4E00-9FA5 */ { 0x00A000, 0x00A48C }, /* A000-A48C */ { 0x00AC00, 0x00D7A3 }, /* AC00-D7A3 */ { 0x00D800, 0x00FA2D }, /* D800-FA2D */ { 0x00FA30, 0x00FA6A }, /* FA30-FA6A */ { 0x00FB00, 0x00FB06 }, /* FB00-FB06 */ { 0x00FB13, 0x00FB17 }, /* FB13-FB17 */ { 0x00FF21, 0x00FF3A }, /* FF21-FF3A */ { 0x00FF41, 0x00FF5A }, /* FF41-FF5A */ { 0x00FF66, 0x00FFBE }, /* FF66-FFBE */ { 0x00FFC2, 0x00FFC7 }, /* FFC2-FFC7 */ { 0x00FFCA, 0x00FFCF }, /* FFCA-FFCF */ { 0x00FFD2, 0x00FFD7 }, /* FFD2-FFD7 */ { 0x00FFDA, 0x00FFDC }, /* FFDA-FFDC */ { 0x010300, 0x01031E }, /* 10300-1031E */ { 0x010320, 0x010323 }, /* 10320-10323 */ { 0x010330, 0x01034A }, /* 10330-1034A */ { 0x010400, 0x010425 }, /* 10400-10425 */ { 0x010428, 0x01044D }, /* 10428-1044D */ { 0x01D000, 0x01D0F5 }, /* 1D000-1D0F5 */ { 0x01D100, 0x01D126 }, /* 1D100-1D126 */ { 0x01D12A, 0x01D166 }, /* 1D12A-1D166 */ { 0x01D16A, 0x01D172 }, /* 1D16A-1D172 */ { 0x01D183, 0x01D184 }, /* 1D183-1D184 */ { 0x01D18C, 0x01D1A9 }, /* 1D18C-1D1A9 */ { 0x01D1AE, 0x01D1DD }, /* 1D1AE-1D1DD */ { 0x01D400, 0x01D454 }, /* 1D400-1D454 */ { 0x01D456, 0x01D49C }, /* 1D456-1D49C */ { 0x01D49E, 0x01D49F }, /* 1D49E-1D49F */ { 0x01D4A2 }, /* 1D4A2 */ { 0x01D4A5, 0x01D4A6 }, /* 1D4A5-1D4A6 */ { 0x01D4A9, 0x01D4AC }, /* 1D4A9-1D4AC */ { 0x01D4AE, 0x01D4B9 }, /* 1D4AE-1D4B9 */ { 0x01D4BB }, /* 1D4BB */ { 0x01D4BD, 0x01D4C0 }, /* 1D4BD-1D4C0 */ { 0x01D4C2, 0x01D4C3 }, /* 1D4C2-1D4C3 */ { 0x01D4C5, 0x01D505 }, /* 1D4C5-1D505 */ { 0x01D507, 0x01D50A }, /* 1D507-1D50A */ { 0x01D50D, 0x01D514 }, /* 1D50D-1D514 */ { 0x01D516, 0x01D51C }, /* 1D516-1D51C */ { 0x01D51E, 0x01D539 }, /* 1D51E-1D539 */ { 0x01D53B, 0x01D53E }, /* 1D53B-1D53E */ { 0x01D540, 0x01D544 }, /* 1D540-1D544 */ { 0x01D546 }, /* 1D546 */ { 0x01D54A, 0x01D550 }, /* 1D54A-1D550 */ { 0x01D552, 0x01D6A3 }, /* 1D552-1D6A3 */ { 0x01D6A8, 0x01D7C9 }, /* 1D6A8-1D7C9 */ { 0x020000, 0x02A6D6 }, /* 20000-2A6D6 */ { 0x02F800, 0x02FA1D }, /* 2F800-2FA1D */ { 0x0F0000, 0x0FFFFD }, /* F0000-FFFFD */ { 0x100000, 0x10FFFD }, /* 100000-10FFFD */ { 0 }, }; libidn-1.28/lib/gltests/0000755000000000000000000000000012167253754012123 500000000000000libidn-1.28/lib/gltests/test-sys_wait.h0000644000000000000000000000361512153706107015026 00000000000000/* Test of macros shared between and . Copyright (C) 2010-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2010. */ static int test_sys_wait_macros (void) { /* Check subset of macros that must be visible here. Note that some of these macros are only portable when operating on an lvalue. */ int i; for (i = 0; i < 0x8000; i = (i ? i << 1 : 1)) { /* POSIX requires that for all valid process statuses, that exactly one of these three macros is true. But not all possible 16-bit values map to valid process status. Traditionally, 8 of the bits are for WIFEXITED, 7 of the bits to tell between WIFSIGNALED and WIFSTOPPED, and either 0x80 or 0x8000 to flag that core was also dumped. Since we don't know which byte is WIFEXITED, we skip the both possible bits that can signal core dump. */ if (i == 0x80) continue; if (!!WIFSIGNALED (i) + !!WIFEXITED (i) + !!WIFSTOPPED (i) != 1) return 1; } i = WEXITSTATUS (i) + WSTOPSIG (i) + WTERMSIG (i); switch (i) { #if 0 /* Gnulib doesn't guarantee these, yet. */ case WNOHANG: case WUNTRACED: #endif break; } return 0; } libidn-1.28/lib/gltests/test-malloca.c0000644000000000000000000000306012153706107014561 00000000000000/* Test of safe automatic memory allocation. Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2005. */ #include #include "malloca.h" #include static void do_allocation (int n) { void *ptr = malloca (n); freea (ptr); safe_alloca (n); } void (*func) (int) = do_allocation; int main () { int i; /* This slows down malloc a lot. */ unsetenv ("MALLOC_PERTURB_"); /* Repeat a lot of times, to make sure there's no memory leak. */ for (i = 0; i < 50000; i++) { /* Try various values. n = 0 gave a crash on Alpha with gcc-2.5.8. Some versions of Mac OS X have a stack size limit of 512 KB. */ func (34); func (134); func (399); func (510823); func (129321); func (0); func (4070); func (4095); func (1); func (16582); } return 0; } libidn-1.28/lib/gltests/setlocale.c0000644000000000000000000007001412153706107014152 00000000000000/* Set the current locale. Copyright (C) 2009, 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2009. */ #include /* Override setlocale() so that when the default locale is requested (locale = ""), the environment variables LC_ALL, LC_*, and LANG are considered. Also include all the functionality from libintl's setlocale() override. */ /* Please keep this file in sync with gettext/gettext-runtime/intl/setlocale.c ! */ /* Specification. */ #include #include #include #include "localename.h" #if 1 # undef setlocale /* Return string representation of locale category CATEGORY. */ static const char * category_to_name (int category) { const char *retval; switch (category) { case LC_COLLATE: retval = "LC_COLLATE"; break; case LC_CTYPE: retval = "LC_CTYPE"; break; case LC_MONETARY: retval = "LC_MONETARY"; break; case LC_NUMERIC: retval = "LC_NUMERIC"; break; case LC_TIME: retval = "LC_TIME"; break; case LC_MESSAGES: retval = "LC_MESSAGES"; break; default: /* If you have a better idea for a default value let me know. */ retval = "LC_XXX"; } return retval; } # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* The native Windows setlocale() function expects locale names of the form "German" or "German_Germany" or "DEU", but not "de" or "de_DE". We need to convert the names from the form with ISO 639 language code and ISO 3166 country code to the form with English names or with three-letter identifier. The three-letter identifiers known by a Windows XP SP2 or SP3 are: AFK Afrikaans_South Africa.1252 ARA Arabic_Saudi Arabia.1256 ARB Arabic_Lebanon.1256 ARE Arabic_Egypt.1256 ARG Arabic_Algeria.1256 ARH Arabic_Bahrain.1256 ARI Arabic_Iraq.1256 ARJ Arabic_Jordan.1256 ARK Arabic_Kuwait.1256 ARL Arabic_Libya.1256 ARM Arabic_Morocco.1256 ARO Arabic_Oman.1256 ARQ Arabic_Qatar.1256 ARS Arabic_Syria.1256 ART Arabic_Tunisia.1256 ARU Arabic_U.A.E..1256 ARY Arabic_Yemen.1256 AZE Azeri (Latin)_Azerbaijan.1254 BEL Belarusian_Belarus.1251 BGR Bulgarian_Bulgaria.1251 BSB Bosnian_Bosnia and Herzegovina.1250 BSC Bosnian (Cyrillic)_Bosnia and Herzegovina.1250 (wrong encoding!) CAT Catalan_Spain.1252 CHH Chinese_Hong Kong S.A.R..950 CHI Chinese_Singapore.936 CHS Chinese_People's Republic of China.936 CHT Chinese_Taiwan.950 CSY Czech_Czech Republic.1250 CYM Welsh_United Kingdom.1252 DAN Danish_Denmark.1252 DEA German_Austria.1252 DEC German_Liechtenstein.1252 DEL German_Luxembourg.1252 DES German_Switzerland.1252 DEU German_Germany.1252 ELL Greek_Greece.1253 ENA English_Australia.1252 ENB English_Caribbean.1252 ENC English_Canada.1252 ENG English_United Kingdom.1252 ENI English_Ireland.1252 ENJ English_Jamaica.1252 ENL English_Belize.1252 ENP English_Republic of the Philippines.1252 ENS English_South Africa.1252 ENT English_Trinidad and Tobago.1252 ENU English_United States.1252 ENW English_Zimbabwe.1252 ENZ English_New Zealand.1252 ESA Spanish_Panama.1252 ESB Spanish_Bolivia.1252 ESC Spanish_Costa Rica.1252 ESD Spanish_Dominican Republic.1252 ESE Spanish_El Salvador.1252 ESF Spanish_Ecuador.1252 ESG Spanish_Guatemala.1252 ESH Spanish_Honduras.1252 ESI Spanish_Nicaragua.1252 ESL Spanish_Chile.1252 ESM Spanish_Mexico.1252 ESN Spanish_Spain.1252 ESO Spanish_Colombia.1252 ESP Spanish_Spain.1252 ESR Spanish_Peru.1252 ESS Spanish_Argentina.1252 ESU Spanish_Puerto Rico.1252 ESV Spanish_Venezuela.1252 ESY Spanish_Uruguay.1252 ESZ Spanish_Paraguay.1252 ETI Estonian_Estonia.1257 EUQ Basque_Spain.1252 FAR Farsi_Iran.1256 FIN Finnish_Finland.1252 FOS Faroese_Faroe Islands.1252 FPO Filipino_Philippines.1252 FRA French_France.1252 FRB French_Belgium.1252 FRC French_Canada.1252 FRL French_Luxembourg.1252 FRM French_Principality of Monaco.1252 FRS French_Switzerland.1252 FYN Frisian_Netherlands.1252 GLC Galician_Spain.1252 HEB Hebrew_Israel.1255 HRB Croatian_Bosnia and Herzegovina.1250 HRV Croatian_Croatia.1250 HUN Hungarian_Hungary.1250 IND Indonesian_Indonesia.1252 IRE Irish_Ireland.1252 ISL Icelandic_Iceland.1252 ITA Italian_Italy.1252 ITS Italian_Switzerland.1252 IUK Inuktitut (Latin)_Canada.1252 JPN Japanese_Japan.932 KKZ Kazakh_Kazakhstan.1251 KOR Korean_Korea.949 KYR Kyrgyz_Kyrgyzstan.1251 LBX Luxembourgish_Luxembourg.1252 LTH Lithuanian_Lithuania.1257 LVI Latvian_Latvia.1257 MKI FYRO Macedonian_Former Yugoslav Republic of Macedonia.1251 MON Mongolian_Mongolia.1251 MPD Mapudungun_Chile.1252 MSB Malay_Brunei Darussalam.1252 MSL Malay_Malaysia.1252 MWK Mohawk_Canada.1252 NLB Dutch_Belgium.1252 NLD Dutch_Netherlands.1252 NON Norwegian-Nynorsk_Norway.1252 NOR Norwegian (Bokmål)_Norway.1252 NSO Northern Sotho_South Africa.1252 PLK Polish_Poland.1250 PTB Portuguese_Brazil.1252 PTG Portuguese_Portugal.1252 QUB Quechua_Bolivia.1252 QUE Quechua_Ecuador.1252 QUP Quechua_Peru.1252 RMC Romansh_Switzerland.1252 ROM Romanian_Romania.1250 RUS Russian_Russia.1251 SKY Slovak_Slovakia.1250 SLV Slovenian_Slovenia.1250 SMA Sami (Southern)_Norway.1252 SMB Sami (Southern)_Sweden.1252 SME Sami (Northern)_Norway.1252 SMF Sami (Northern)_Sweden.1252 SMG Sami (Northern)_Finland.1252 SMJ Sami (Lule)_Norway.1252 SMK Sami (Lule)_Sweden.1252 SMN Sami (Inari)_Finland.1252 SMS Sami (Skolt)_Finland.1252 SQI Albanian_Albania.1250 SRB Serbian (Cyrillic)_Serbia and Montenegro.1251 SRL Serbian (Latin)_Serbia and Montenegro.1250 SRN Serbian (Cyrillic)_Bosnia and Herzegovina.1251 SRS Serbian (Latin)_Bosnia and Herzegovina.1250 SVE Swedish_Sweden.1252 SVF Swedish_Finland.1252 SWK Swahili_Kenya.1252 THA Thai_Thailand.874 TRK Turkish_Turkey.1254 TSN Tswana_South Africa.1252 TTT Tatar_Russia.1251 UKR Ukrainian_Ukraine.1251 URD Urdu_Islamic Republic of Pakistan.1256 USA English_United States.1252 UZB Uzbek (Latin)_Uzbekistan.1254 VIT Vietnamese_Viet Nam.1258 XHO Xhosa_South Africa.1252 ZHH Chinese_Hong Kong S.A.R..950 ZHI Chinese_Singapore.936 ZHM Chinese_Macau S.A.R..950 ZUL Zulu_South Africa.1252 */ /* Table from ISO 639 language code, optionally with country or script suffix, to English name. Keep in sync with the gl_locale_name_from_win32_LANGID function in localename.c! */ struct table_entry { const char *code; const char *english; }; static const struct table_entry language_table[] = { { "af", "Afrikaans" }, { "am", "Amharic" }, { "ar", "Arabic" }, { "arn", "Mapudungun" }, { "as", "Assamese" }, { "az@cyrillic", "Azeri (Cyrillic)" }, { "az@latin", "Azeri (Latin)" }, { "ba", "Bashkir" }, { "be", "Belarusian" }, { "ber", "Tamazight" }, { "ber@arabic", "Tamazight (Arabic)" }, { "ber@latin", "Tamazight (Latin)" }, { "bg", "Bulgarian" }, { "bin", "Edo" }, { "bn", "Bengali" }, { "bn_BD", "Bengali (Bangladesh)" }, { "bn_IN", "Bengali (India)" }, { "bnt", "Sutu" }, { "bo", "Tibetan" }, { "br", "Breton" }, { "bs", "BSB" }, /* "Bosnian (Latin)" */ { "bs@cyrillic", "BSC" }, /* Bosnian (Cyrillic) */ { "ca", "Catalan" }, { "chr", "Cherokee" }, { "co", "Corsican" }, { "cpe", "Hawaiian" }, { "cs", "Czech" }, { "cy", "Welsh" }, { "da", "Danish" }, { "de", "German" }, { "dsb", "Lower Sorbian" }, { "dv", "Divehi" }, { "el", "Greek" }, { "en", "English" }, { "es", "Spanish" }, { "et", "Estonian" }, { "eu", "Basque" }, { "fa", "Farsi" }, { "ff", "Fulfulde" }, { "fi", "Finnish" }, { "fo", "Faroese" }, /* "Faeroese" does not work */ { "fr", "French" }, { "fy", "Frisian" }, { "ga", "IRE" }, /* Gaelic (Ireland) */ { "gd", "Gaelic (Scotland)" }, { "gd", "Scottish Gaelic" }, { "gl", "Galician" }, { "gn", "Guarani" }, { "gsw", "Alsatian" }, { "gu", "Gujarati" }, { "ha", "Hausa" }, { "he", "Hebrew" }, { "hi", "Hindi" }, { "hr", "Croatian" }, { "hsb", "Upper Sorbian" }, { "hu", "Hungarian" }, { "hy", "Armenian" }, { "id", "Indonesian" }, { "ig", "Igbo" }, { "ii", "Yi" }, { "is", "Icelandic" }, { "it", "Italian" }, { "iu", "IUK" }, /* Inuktitut */ { "ja", "Japanese" }, { "ka", "Georgian" }, { "kk", "Kazakh" }, { "kl", "Greenlandic" }, { "km", "Cambodian" }, { "km", "Khmer" }, { "kn", "Kannada" }, { "ko", "Korean" }, { "kok", "Konkani" }, { "kr", "Kanuri" }, { "ks", "Kashmiri" }, { "ks_IN", "Kashmiri_India" }, { "ks_PK", "Kashmiri (Arabic)_Pakistan" }, { "ky", "Kyrgyz" }, { "la", "Latin" }, { "lb", "Luxembourgish" }, { "lo", "Lao" }, { "lt", "Lithuanian" }, { "lv", "Latvian" }, { "mi", "Maori" }, { "mk", "FYRO Macedonian" }, { "mk", "Macedonian" }, { "ml", "Malayalam" }, { "mn", "Mongolian" }, { "mni", "Manipuri" }, { "moh", "Mohawk" }, { "mr", "Marathi" }, { "ms", "Malay" }, { "mt", "Maltese" }, { "my", "Burmese" }, { "nb", "NOR" }, /* Norwegian Bokmål */ { "ne", "Nepali" }, { "nic", "Ibibio" }, { "nl", "Dutch" }, { "nn", "NON" }, /* Norwegian Nynorsk */ { "no", "Norwegian" }, { "nso", "Northern Sotho" }, { "nso", "Sepedi" }, { "oc", "Occitan" }, { "om", "Oromo" }, { "or", "Oriya" }, { "pa", "Punjabi" }, { "pap", "Papiamentu" }, { "pl", "Polish" }, { "prs", "Dari" }, { "ps", "Pashto" }, { "pt", "Portuguese" }, { "qu", "Quechua" }, { "qut", "K'iche'" }, { "rm", "Romansh" }, { "ro", "Romanian" }, { "ru", "Russian" }, { "rw", "Kinyarwanda" }, { "sa", "Sanskrit" }, { "sah", "Yakut" }, { "sd", "Sindhi" }, { "se", "Sami (Northern)" }, { "se", "Northern Sami" }, { "si", "Sinhalese" }, { "sk", "Slovak" }, { "sl", "Slovenian" }, { "sma", "Sami (Southern)" }, { "sma", "Southern Sami" }, { "smj", "Sami (Lule)" }, { "smj", "Lule Sami" }, { "smn", "Sami (Inari)" }, { "smn", "Inari Sami" }, { "sms", "Sami (Skolt)" }, { "sms", "Skolt Sami" }, { "so", "Somali" }, { "sq", "Albanian" }, { "sr", "Serbian (Latin)" }, { "sr@cyrillic", "SRB" }, /* Serbian (Cyrillic) */ { "sw", "Swahili" }, { "syr", "Syriac" }, { "ta", "Tamil" }, { "te", "Telugu" }, { "tg", "Tajik" }, { "th", "Thai" }, { "ti", "Tigrinya" }, { "tk", "Turkmen" }, { "tl", "Filipino" }, { "tn", "Tswana" }, { "tr", "Turkish" }, { "ts", "Tsonga" }, { "tt", "Tatar" }, { "ug", "Uighur" }, { "uk", "Ukrainian" }, { "ur", "Urdu" }, { "uz", "Uzbek" }, { "uz", "Uzbek (Latin)" }, { "uz@cyrillic", "Uzbek (Cyrillic)" }, { "ve", "Venda" }, { "vi", "Vietnamese" }, { "wen", "Sorbian" }, { "wo", "Wolof" }, { "xh", "Xhosa" }, { "yi", "Yiddish" }, { "yo", "Yoruba" }, { "zh", "Chinese" }, { "zu", "Zulu" } }; /* Table from ISO 3166 country code to English name. Keep in sync with the gl_locale_name_from_win32_LANGID function in localename.c! */ static const struct table_entry country_table[] = { { "AE", "U.A.E." }, { "AF", "Afghanistan" }, { "AL", "Albania" }, { "AM", "Armenia" }, { "AN", "Netherlands Antilles" }, { "AR", "Argentina" }, { "AT", "Austria" }, { "AU", "Australia" }, { "AZ", "Azerbaijan" }, { "BA", "Bosnia and Herzegovina" }, { "BD", "Bangladesh" }, { "BE", "Belgium" }, { "BG", "Bulgaria" }, { "BH", "Bahrain" }, { "BN", "Brunei Darussalam" }, { "BO", "Bolivia" }, { "BR", "Brazil" }, { "BT", "Bhutan" }, { "BY", "Belarus" }, { "BZ", "Belize" }, { "CA", "Canada" }, { "CG", "Congo" }, { "CH", "Switzerland" }, { "CI", "Cote d'Ivoire" }, { "CL", "Chile" }, { "CM", "Cameroon" }, { "CN", "People's Republic of China" }, { "CO", "Colombia" }, { "CR", "Costa Rica" }, { "CS", "Serbia and Montenegro" }, { "CZ", "Czech Republic" }, { "DE", "Germany" }, { "DK", "Denmark" }, { "DO", "Dominican Republic" }, { "DZ", "Algeria" }, { "EC", "Ecuador" }, { "EE", "Estonia" }, { "EG", "Egypt" }, { "ER", "Eritrea" }, { "ES", "Spain" }, { "ET", "Ethiopia" }, { "FI", "Finland" }, { "FO", "Faroe Islands" }, { "FR", "France" }, { "GB", "United Kingdom" }, { "GD", "Caribbean" }, { "GE", "Georgia" }, { "GL", "Greenland" }, { "GR", "Greece" }, { "GT", "Guatemala" }, { "HK", "Hong Kong" }, { "HK", "Hong Kong S.A.R." }, { "HN", "Honduras" }, { "HR", "Croatia" }, { "HT", "Haiti" }, { "HU", "Hungary" }, { "ID", "Indonesia" }, { "IE", "Ireland" }, { "IL", "Israel" }, { "IN", "India" }, { "IQ", "Iraq" }, { "IR", "Iran" }, { "IS", "Iceland" }, { "IT", "Italy" }, { "JM", "Jamaica" }, { "JO", "Jordan" }, { "JP", "Japan" }, { "KE", "Kenya" }, { "KG", "Kyrgyzstan" }, { "KH", "Cambodia" }, { "KR", "South Korea" }, { "KW", "Kuwait" }, { "KZ", "Kazakhstan" }, { "LA", "Laos" }, { "LB", "Lebanon" }, { "LI", "Liechtenstein" }, { "LK", "Sri Lanka" }, { "LT", "Lithuania" }, { "LU", "Luxembourg" }, { "LV", "Latvia" }, { "LY", "Libya" }, { "MA", "Morocco" }, { "MC", "Principality of Monaco" }, { "MD", "Moldava" }, { "MD", "Moldova" }, { "ME", "Montenegro" }, { "MK", "Former Yugoslav Republic of Macedonia" }, { "ML", "Mali" }, { "MM", "Myanmar" }, { "MN", "Mongolia" }, { "MO", "Macau S.A.R." }, { "MT", "Malta" }, { "MV", "Maldives" }, { "MX", "Mexico" }, { "MY", "Malaysia" }, { "NG", "Nigeria" }, { "NI", "Nicaragua" }, { "NL", "Netherlands" }, { "NO", "Norway" }, { "NP", "Nepal" }, { "NZ", "New Zealand" }, { "OM", "Oman" }, { "PA", "Panama" }, { "PE", "Peru" }, { "PH", "Philippines" }, { "PK", "Islamic Republic of Pakistan" }, { "PL", "Poland" }, { "PR", "Puerto Rico" }, { "PT", "Portugal" }, { "PY", "Paraguay" }, { "QA", "Qatar" }, { "RE", "Reunion" }, { "RO", "Romania" }, { "RS", "Serbia" }, { "RU", "Russia" }, { "RW", "Rwanda" }, { "SA", "Saudi Arabia" }, { "SE", "Sweden" }, { "SG", "Singapore" }, { "SI", "Slovenia" }, { "SK", "Slovak" }, { "SN", "Senegal" }, { "SO", "Somalia" }, { "SR", "Suriname" }, { "SV", "El Salvador" }, { "SY", "Syria" }, { "TH", "Thailand" }, { "TJ", "Tajikistan" }, { "TM", "Turkmenistan" }, { "TN", "Tunisia" }, { "TR", "Turkey" }, { "TT", "Trinidad and Tobago" }, { "TW", "Taiwan" }, { "TZ", "Tanzania" }, { "UA", "Ukraine" }, { "US", "United States" }, { "UY", "Uruguay" }, { "VA", "Vatican" }, { "VE", "Venezuela" }, { "VN", "Viet Nam" }, { "YE", "Yemen" }, { "ZA", "South Africa" }, { "ZW", "Zimbabwe" } }; /* Given a string STRING, find the set of indices i such that TABLE[i].code is the given STRING. It is a range [lo,hi-1]. */ typedef struct { size_t lo; size_t hi; } range_t; static void search (const struct table_entry *table, size_t table_size, const char *string, range_t *result) { /* The table is sorted. Perform a binary search. */ size_t hi = table_size; size_t lo = 0; while (lo < hi) { /* Invariant: for i < lo, strcmp (table[i].code, string) < 0, for i >= hi, strcmp (table[i].code, string) > 0. */ size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ int cmp = strcmp (table[mid].code, string); if (cmp < 0) lo = mid + 1; else if (cmp > 0) hi = mid; else { /* Found an i with strcmp (language_table[i].code, string) == 0. Find the entire interval of such i. */ { size_t i; for (i = mid; i > lo; ) { i--; if (strcmp (table[i].code, string) < 0) { lo = i + 1; break; } } } { size_t i; for (i = mid; i < hi; i++) { if (strcmp (table[i].code, string) > 0) { hi = i; break; } } } /* The set of i with strcmp (language_table[i].code, string) == 0 is the interval [lo, hi-1]. */ break; } } result->lo = lo; result->hi = hi; } /* Like setlocale, but accept also locale names in the form ll or ll_CC, where ll is an ISO 639 language code and CC is an ISO 3166 country code. */ static char * setlocale_unixlike (int category, const char *locale) { char *result; char llCC_buf[64]; char ll_buf[64]; char CC_buf[64]; /* First, try setlocale with the original argument unchanged. */ result = setlocale (category, locale); if (result != NULL) return result; /* Otherwise, assume the argument is in the form language[_territory][.codeset][@modifier] and try to map it using the tables. */ if (strlen (locale) < sizeof (llCC_buf)) { /* Second try: Remove the codeset part. */ { const char *p = locale; char *q = llCC_buf; /* Copy the part before the dot. */ for (; *p != '\0' && *p != '.'; p++, q++) *q = *p; if (*p == '.') /* Skip the part up to the '@', if any. */ for (; *p != '\0' && *p != '@'; p++) ; /* Copy the part starting with '@', if any. */ for (; *p != '\0'; p++, q++) *q = *p; *q = '\0'; } /* llCC_buf now contains language[_territory][@modifier] */ if (strcmp (llCC_buf, locale) != 0) { result = setlocale (category, llCC_buf); if (result != NULL) return result; } /* Look it up in language_table. */ { range_t range; size_t i; search (language_table, sizeof (language_table) / sizeof (language_table[0]), llCC_buf, &range); for (i = range.lo; i < range.hi; i++) { /* Try the replacement in language_table[i]. */ result = setlocale (category, language_table[i].english); if (result != NULL) return result; } } /* Split language[_territory][@modifier] into ll_buf = language[@modifier] and CC_buf = territory */ { const char *underscore = strchr (llCC_buf, '_'); if (underscore != NULL) { const char *territory_start = underscore + 1; const char *territory_end = strchr (territory_start, '@'); if (territory_end == NULL) territory_end = territory_start + strlen (territory_start); memcpy (ll_buf, llCC_buf, underscore - llCC_buf); strcpy (ll_buf + (underscore - llCC_buf), territory_end); memcpy (CC_buf, territory_start, territory_end - territory_start); CC_buf[territory_end - territory_start] = '\0'; { /* Look up ll_buf in language_table and CC_buf in country_table. */ range_t language_range; search (language_table, sizeof (language_table) / sizeof (language_table[0]), ll_buf, &language_range); if (language_range.lo < language_range.hi) { range_t country_range; search (country_table, sizeof (country_table) / sizeof (country_table[0]), CC_buf, &country_range); if (country_range.lo < country_range.hi) { size_t i; size_t j; for (i = language_range.lo; i < language_range.hi; i++) for (j = country_range.lo; j < country_range.hi; j++) { /* Concatenate the replacements. */ const char *part1 = language_table[i].english; size_t part1_len = strlen (part1); const char *part2 = country_table[j].english; size_t part2_len = strlen (part2) + 1; char buf[64+64]; if (!(part1_len + 1 + part2_len <= sizeof (buf))) abort (); memcpy (buf, part1, part1_len); buf[part1_len] = '_'; memcpy (buf + part1_len + 1, part2, part2_len); /* Try the concatenated replacements. */ result = setlocale (category, buf); if (result != NULL) return result; } } /* Try omitting the country entirely. This may set a locale corresponding to the wrong country, but is better than failing entirely. */ { size_t i; for (i = language_range.lo; i < language_range.hi; i++) { /* Try only the language replacement. */ result = setlocale (category, language_table[i].english); if (result != NULL) return result; } } } } } } } /* Failed. */ return NULL; } # else # define setlocale_unixlike setlocale # endif # if LC_MESSAGES == 1729 /* The system does not store an LC_MESSAGES locale category. Do it here. */ static char lc_messages_name[64] = "C"; /* Like setlocale, but support also LC_MESSAGES. */ static char * setlocale_single (int category, const char *locale) { if (category == LC_MESSAGES) { if (locale != NULL) { lc_messages_name[sizeof (lc_messages_name) - 1] = '\0'; strncpy (lc_messages_name, locale, sizeof (lc_messages_name) - 1); } return lc_messages_name; } else return setlocale_unixlike (category, locale); } # else # define setlocale_single setlocale_unixlike # endif char * rpl_setlocale (int category, const char *locale) { if (locale != NULL && locale[0] == '\0') { /* A request to the set the current locale to the default locale. */ if (category == LC_ALL) { /* Set LC_CTYPE first. Then the other categories. */ static int const categories[] = { LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES }; char *saved_locale; const char *base_name; unsigned int i; /* Back up the old locale, in case one of the steps fails. */ saved_locale = setlocale (LC_ALL, NULL); if (saved_locale == NULL) return NULL; saved_locale = strdup (saved_locale); if (saved_locale == NULL) return NULL; /* Set LC_CTYPE category. Set all other categories (except possibly LC_MESSAGES) to the same value in the same call; this is likely to save calls. */ base_name = gl_locale_name_environ (LC_CTYPE, category_to_name (LC_CTYPE)); if (base_name == NULL) base_name = gl_locale_name_default (); if (setlocale_unixlike (LC_ALL, base_name) == NULL) goto fail; # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* On native Windows, setlocale(LC_ALL,...) may succeed but set the LC_CTYPE category to an invalid value ("C") when it does not support the specified encoding. Report a failure instead. */ if (strchr (base_name, '.') != NULL && strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) goto fail; # endif for (i = 0; i < sizeof (categories) / sizeof (categories[0]); i++) { int cat = categories[i]; const char *name; name = gl_locale_name_environ (cat, category_to_name (cat)); if (name == NULL) name = gl_locale_name_default (); /* If name is the same as base_name, it has already been set through the setlocale call before the loop. */ if (strcmp (name, base_name) != 0 # if LC_MESSAGES == 1729 || cat == LC_MESSAGES # endif ) if (setlocale_single (cat, name) == NULL) goto fail; } /* All steps were successful. */ free (saved_locale); return setlocale (LC_ALL, NULL); fail: if (saved_locale[0] != '\0') /* don't risk an endless recursion */ setlocale (LC_ALL, saved_locale); free (saved_locale); return NULL; } else { const char *name = gl_locale_name_environ (category, category_to_name (category)); if (name == NULL) name = gl_locale_name_default (); return setlocale_single (category, name); } } else { # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (category == LC_ALL && locale != NULL && strchr (locale, '.') != NULL) { char *saved_locale; /* Back up the old locale. */ saved_locale = setlocale (LC_ALL, NULL); if (saved_locale == NULL) return NULL; saved_locale = strdup (saved_locale); if (saved_locale == NULL) return NULL; if (setlocale_unixlike (LC_ALL, locale) == NULL) { free (saved_locale); return NULL; } /* On native Windows, setlocale(LC_ALL,...) may succeed but set the LC_CTYPE category to an invalid value ("C") when it does not support the specified encoding. Report a failure instead. */ if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) { if (saved_locale[0] != '\0') /* don't risk an endless recursion */ setlocale (LC_ALL, saved_locale); free (saved_locale); return NULL; } /* It was really successful. */ free (saved_locale); return setlocale (LC_ALL, NULL); } else # endif return setlocale_single (category, locale); } } #endif libidn-1.28/lib/gltests/test-unistd.c0000644000000000000000000000304712153706107014464 00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); /* Check that the various SEEK_* macros are defined. */ int sk[] = { SEEK_CUR, SEEK_END, SEEK_SET }; /* Check that the various *_FILENO macros are defined. */ #if ! (defined STDIN_FILENO \ && (STDIN_FILENO + STDOUT_FILENO + STDERR_FILENO == 3)) missing or broken *_FILENO macros #endif /* Check that the types are all defined. */ size_t t1; ssize_t t2; #ifdef TODO /* Not implemented in gnulib yet */ uid_t t3; gid_t t4; #endif off_t t5; pid_t t6; #ifdef TODO useconds_t t7; intptr_t t8; #endif int main (void) { return 0; } libidn-1.28/lib/gltests/wchar.in.h0000644000000000000000000010167512153706107013725 00000000000000/* A substitute for ISO C99 , for platforms that have issues. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * ISO C 99 for platforms that have issues. * * * For now, this just ensures proper prerequisite inclusion order and * the declaration of wcwidth(). */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_mbstate_t || defined __need_wint_t || (defined __hpux && ((defined _INTTYPES_INCLUDED && !defined strtoimax) || defined _GL_JUST_INCLUDE_SYSTEM_WCHAR_H)) || defined _GL_ALREADY_INCLUDING_WCHAR_H /* Special invocation convention: - Inside glibc and uClibc header files. - On HP-UX 11.00 we have a sequence of nested includes -> -> , and the latter includes , once indirectly -> -> -> and once directly. In both situations 'wint_t' is not yet defined, therefore we cannot provide the function overrides; instead include only the system's . - On IRIX 6.5, similarly, we have an include -> , and the latter includes . But here, we have no way to detect whether is completely included or is still being included. */ #@INCLUDE_NEXT@ @NEXT_WCHAR_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_WCHAR_H #define _GL_ALREADY_INCLUDING_WCHAR_H #if @HAVE_FEATURES_H@ # include /* for __GLIBC__ */ #endif /* Tru64 with Desktop Toolkit C has a bug: must be included before . BSD/OS 4.0.1 has a bug: , and must be included before . In some builds of uClibc, is nonexistent and wchar_t is defined by . But avoid namespace pollution on glibc systems. */ #if !(defined __GLIBC__ && !defined __UCLIBC__) # include #endif #ifndef __GLIBC__ # include # include #endif /* Include the original if it exists. Some builds of uClibc lack it. */ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_WCHAR_H@ # @INCLUDE_NEXT@ @NEXT_WCHAR_H@ #endif #undef _GL_ALREADY_INCLUDING_WCHAR_H #ifndef _@GUARD_PREFIX@_WCHAR_H #define _@GUARD_PREFIX@_WCHAR_H /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Define wint_t and WEOF. (Also done in wctype.in.h.) */ #if !@HAVE_WINT_T@ && !defined wint_t # define wint_t int # ifndef WEOF # define WEOF -1 # endif #else /* MSVC defines wint_t as 'unsigned short' in . This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be "unchanged by default argument promotions". Override it. */ # if defined _MSC_VER # if !GNULIB_defined_wint_t # include typedef unsigned int rpl_wint_t; # undef wint_t # define wint_t rpl_wint_t # define GNULIB_defined_wint_t 1 # endif # endif # ifndef WEOF # define WEOF ((wint_t) -1) # endif #endif /* Override mbstate_t if it is too small. On IRIX 6.5, sizeof (mbstate_t) == 1, which is not sufficient for implementing mbrtowc for encodings like UTF-8. */ #if !(@HAVE_MBSINIT@ && @HAVE_MBRTOWC@) || @REPLACE_MBSTATE_T@ # if !GNULIB_defined_mbstate_t typedef int rpl_mbstate_t; # undef mbstate_t # define mbstate_t rpl_mbstate_t # define GNULIB_defined_mbstate_t 1 # endif #endif /* Convert a single-byte character to a wide character. */ #if @GNULIB_BTOWC@ # if @REPLACE_BTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef btowc # define btowc rpl_btowc # endif _GL_FUNCDECL_RPL (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (btowc, wint_t, (int c)); # else # if !@HAVE_BTOWC@ _GL_FUNCDECL_SYS (btowc, wint_t, (int c) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (btowc, wint_t, (int c)); # endif _GL_CXXALIASWARN (btowc); #elif defined GNULIB_POSIXCHECK # undef btowc # if HAVE_RAW_DECL_BTOWC _GL_WARN_ON_USE (btowc, "btowc is unportable - " "use gnulib module btowc for portability"); # endif #endif /* Convert a wide character to a single-byte character. */ #if @GNULIB_WCTOB@ # if @REPLACE_WCTOB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctob # define wctob rpl_wctob # endif _GL_FUNCDECL_RPL (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wctob, int, (wint_t wc)); # else # if !defined wctob && !@HAVE_DECL_WCTOB@ /* wctob is provided by gnulib, or wctob exists but is not declared. */ _GL_FUNCDECL_SYS (wctob, int, (wint_t wc) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wctob, int, (wint_t wc)); # endif _GL_CXXALIASWARN (wctob); #elif defined GNULIB_POSIXCHECK # undef wctob # if HAVE_RAW_DECL_WCTOB _GL_WARN_ON_USE (wctob, "wctob is unportable - " "use gnulib module wctob for portability"); # endif #endif /* Test whether *PS is in the initial state. */ #if @GNULIB_MBSINIT@ # if @REPLACE_MBSINIT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsinit # define mbsinit rpl_mbsinit # endif _GL_FUNCDECL_RPL (mbsinit, int, (const mbstate_t *ps)); _GL_CXXALIAS_RPL (mbsinit, int, (const mbstate_t *ps)); # else # if !@HAVE_MBSINIT@ _GL_FUNCDECL_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbsinit, int, (const mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsinit); #elif defined GNULIB_POSIXCHECK # undef mbsinit # if HAVE_RAW_DECL_MBSINIT _GL_WARN_ON_USE (mbsinit, "mbsinit is unportable - " "use gnulib module mbsinit for portability"); # endif #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBRTOWC@ # if @REPLACE_MBRTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrtowc # define mbrtowc rpl_mbrtowc # endif _GL_FUNCDECL_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRTOWC@ _GL_FUNCDECL_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrtowc, size_t, (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrtowc); #elif defined GNULIB_POSIXCHECK # undef mbrtowc # if HAVE_RAW_DECL_MBRTOWC _GL_WARN_ON_USE (mbrtowc, "mbrtowc is unportable - " "use gnulib module mbrtowc for portability"); # endif #endif /* Recognize a multibyte character. */ #if @GNULIB_MBRLEN@ # if @REPLACE_MBRLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbrlen # define mbrlen rpl_mbrlen # endif _GL_FUNCDECL_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); _GL_CXXALIAS_RPL (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # else # if !@HAVE_MBRLEN@ _GL_FUNCDECL_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (mbrlen, size_t, (const char *s, size_t n, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbrlen); #elif defined GNULIB_POSIXCHECK # undef mbrlen # if HAVE_RAW_DECL_MBRLEN _GL_WARN_ON_USE (mbrlen, "mbrlen is unportable - " "use gnulib module mbrlen for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSRTOWCS@ # if @REPLACE_MBSRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsrtowcs # define mbsrtowcs rpl_mbsrtowcs # endif _GL_FUNCDECL_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSRTOWCS@ _GL_FUNCDECL_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsrtowcs # if HAVE_RAW_DECL_MBSRTOWCS _GL_WARN_ON_USE (mbsrtowcs, "mbsrtowcs is unportable - " "use gnulib module mbsrtowcs for portability"); # endif #endif /* Convert a string to a wide string. */ #if @GNULIB_MBSNRTOWCS@ # if @REPLACE_MBSNRTOWCS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbsnrtowcs # define mbsnrtowcs rpl_mbsnrtowcs # endif _GL_FUNCDECL_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_MBSNRTOWCS@ _GL_FUNCDECL_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (mbsnrtowcs, size_t, (wchar_t *dest, const char **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (mbsnrtowcs); #elif defined GNULIB_POSIXCHECK # undef mbsnrtowcs # if HAVE_RAW_DECL_MBSNRTOWCS _GL_WARN_ON_USE (mbsnrtowcs, "mbsnrtowcs is unportable - " "use gnulib module mbsnrtowcs for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCRTOMB@ # if @REPLACE_WCRTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcrtomb # define wcrtomb rpl_wcrtomb # endif _GL_FUNCDECL_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); _GL_CXXALIAS_RPL (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # else # if !@HAVE_WCRTOMB@ _GL_FUNCDECL_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIAS_SYS (wcrtomb, size_t, (char *s, wchar_t wc, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcrtomb); #elif defined GNULIB_POSIXCHECK # undef wcrtomb # if HAVE_RAW_DECL_WCRTOMB _GL_WARN_ON_USE (wcrtomb, "wcrtomb is unportable - " "use gnulib module wcrtomb for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSRTOMBS@ # if @REPLACE_WCSRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsrtombs # define wcsrtombs rpl_wcsrtombs # endif _GL_FUNCDECL_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSRTOMBS@ _GL_FUNCDECL_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsrtombs, size_t, (char *dest, const wchar_t **srcp, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsrtombs # if HAVE_RAW_DECL_WCSRTOMBS _GL_WARN_ON_USE (wcsrtombs, "wcsrtombs is unportable - " "use gnulib module wcsrtombs for portability"); # endif #endif /* Convert a wide string to a string. */ #if @GNULIB_WCSNRTOMBS@ # if @REPLACE_WCSNRTOMBS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcsnrtombs # define wcsnrtombs rpl_wcsnrtombs # endif _GL_FUNCDECL_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # else # if !@HAVE_WCSNRTOMBS@ _GL_FUNCDECL_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (wcsnrtombs, size_t, (char *dest, const wchar_t **srcp, size_t srclen, size_t len, mbstate_t *ps)); # endif _GL_CXXALIASWARN (wcsnrtombs); #elif defined GNULIB_POSIXCHECK # undef wcsnrtombs # if HAVE_RAW_DECL_WCSNRTOMBS _GL_WARN_ON_USE (wcsnrtombs, "wcsnrtombs is unportable - " "use gnulib module wcsnrtombs for portability"); # endif #endif /* Return the number of screen columns needed for WC. */ #if @GNULIB_WCWIDTH@ # if @REPLACE_WCWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcwidth # define wcwidth rpl_wcwidth # endif _GL_FUNCDECL_RPL (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcwidth, int, (wchar_t)); # else # if !@HAVE_DECL_WCWIDTH@ /* wcwidth exists but is not declared. */ _GL_FUNCDECL_SYS (wcwidth, int, (wchar_t) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcwidth, int, (wchar_t)); # endif _GL_CXXALIASWARN (wcwidth); #elif defined GNULIB_POSIXCHECK # undef wcwidth # if HAVE_RAW_DECL_WCWIDTH _GL_WARN_ON_USE (wcwidth, "wcwidth is unportable - " "use gnulib module wcwidth for portability"); # endif #endif /* Search N wide characters of S for C. */ #if @GNULIB_WMEMCHR@ # if !@HAVE_WMEMCHR@ _GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t); wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (wmemchr, wchar_t *, (const wchar_t *, wchar_t, size_t), const wchar_t *, (const wchar_t *, wchar_t, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN1 (wmemchr, const wchar_t *, (const wchar_t *s, wchar_t c, size_t n)); # else _GL_CXXALIASWARN (wmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef wmemchr # if HAVE_RAW_DECL_WMEMCHR _GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - " "use gnulib module wmemchr for portability"); # endif #endif /* Compare N wide characters of S1 and S2. */ #if @GNULIB_WMEMCMP@ # if !@HAVE_WMEMCMP@ _GL_FUNCDECL_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wmemcmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wmemcmp); #elif defined GNULIB_POSIXCHECK # undef wmemcmp # if HAVE_RAW_DECL_WMEMCMP _GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - " "use gnulib module wmemcmp for portability"); # endif #endif /* Copy N wide characters of SRC to DEST. */ #if @GNULIB_WMEMCPY@ # if !@HAVE_WMEMCPY@ _GL_FUNCDECL_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemcpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemcpy); #elif defined GNULIB_POSIXCHECK # undef wmemcpy # if HAVE_RAW_DECL_WMEMCPY _GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - " "use gnulib module wmemcpy for portability"); # endif #endif /* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ #if @GNULIB_WMEMMOVE@ # if !@HAVE_WMEMMOVE@ _GL_FUNCDECL_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wmemmove, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wmemmove); #elif defined GNULIB_POSIXCHECK # undef wmemmove # if HAVE_RAW_DECL_WMEMMOVE _GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - " "use gnulib module wmemmove for portability"); # endif #endif /* Set N wide characters of S to C. */ #if @GNULIB_WMEMSET@ # if !@HAVE_WMEMSET@ _GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); # endif _GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n)); _GL_CXXALIASWARN (wmemset); #elif defined GNULIB_POSIXCHECK # undef wmemset # if HAVE_RAW_DECL_WMEMSET _GL_WARN_ON_USE (wmemset, "wmemset is unportable - " "use gnulib module wmemset for portability"); # endif #endif /* Return the number of wide characters in S. */ #if @GNULIB_WCSLEN@ # if !@HAVE_WCSLEN@ _GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s)); _GL_CXXALIASWARN (wcslen); #elif defined GNULIB_POSIXCHECK # undef wcslen # if HAVE_RAW_DECL_WCSLEN _GL_WARN_ON_USE (wcslen, "wcslen is unportable - " "use gnulib module wcslen for portability"); # endif #endif /* Return the number of wide characters in S, but at most MAXLEN. */ #if @GNULIB_WCSNLEN@ # if !@HAVE_WCSNLEN@ _GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen)); _GL_CXXALIASWARN (wcsnlen); #elif defined GNULIB_POSIXCHECK # undef wcsnlen # if HAVE_RAW_DECL_WCSNLEN _GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - " "use gnulib module wcsnlen for portability"); # endif #endif /* Copy SRC to DEST. */ #if @GNULIB_WCSCPY@ # if !@HAVE_WCSCPY@ _GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscpy); #elif defined GNULIB_POSIXCHECK # undef wcscpy # if HAVE_RAW_DECL_WCSCPY _GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - " "use gnulib module wcscpy for portability"); # endif #endif /* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */ #if @GNULIB_WCPCPY@ # if !@HAVE_WCPCPY@ _GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcpcpy); #elif defined GNULIB_POSIXCHECK # undef wcpcpy # if HAVE_RAW_DECL_WCPCPY _GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - " "use gnulib module wcpcpy for portability"); # endif #endif /* Copy no more than N wide characters of SRC to DEST. */ #if @GNULIB_WCSNCPY@ # if !@HAVE_WCSNCPY@ _GL_FUNCDECL_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncpy); #elif defined GNULIB_POSIXCHECK # undef wcsncpy # if HAVE_RAW_DECL_WCSNCPY _GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - " "use gnulib module wcsncpy for portability"); # endif #endif /* Copy no more than N characters of SRC to DEST, returning the address of the last character written into DEST. */ #if @GNULIB_WCPNCPY@ # if !@HAVE_WCPNCPY@ _GL_FUNCDECL_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcpncpy, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcpncpy); #elif defined GNULIB_POSIXCHECK # undef wcpncpy # if HAVE_RAW_DECL_WCPNCPY _GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - " "use gnulib module wcpncpy for portability"); # endif #endif /* Append SRC onto DEST. */ #if @GNULIB_WCSCAT@ # if !@HAVE_WCSCAT@ _GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); # endif _GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src)); _GL_CXXALIASWARN (wcscat); #elif defined GNULIB_POSIXCHECK # undef wcscat # if HAVE_RAW_DECL_WCSCAT _GL_WARN_ON_USE (wcscat, "wcscat is unportable - " "use gnulib module wcscat for portability"); # endif #endif /* Append no more than N wide characters of SRC onto DEST. */ #if @GNULIB_WCSNCAT@ # if !@HAVE_WCSNCAT@ _GL_FUNCDECL_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); # endif _GL_CXXALIAS_SYS (wcsncat, wchar_t *, (wchar_t *dest, const wchar_t *src, size_t n)); _GL_CXXALIASWARN (wcsncat); #elif defined GNULIB_POSIXCHECK # undef wcsncat # if HAVE_RAW_DECL_WCSNCAT _GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - " "use gnulib module wcsncat for portability"); # endif #endif /* Compare S1 and S2. */ #if @GNULIB_WCSCMP@ # if !@HAVE_WCSCMP@ _GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscmp); #elif defined GNULIB_POSIXCHECK # undef wcscmp # if HAVE_RAW_DECL_WCSCMP _GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - " "use gnulib module wcscmp for portability"); # endif #endif /* Compare no more than N wide characters of S1 and S2. */ #if @GNULIB_WCSNCMP@ # if !@HAVE_WCSNCMP@ _GL_FUNCDECL_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncmp); #elif defined GNULIB_POSIXCHECK # undef wcsncmp # if HAVE_RAW_DECL_WCSNCMP _GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - " "use gnulib module wcsncmp for portability"); # endif #endif /* Compare S1 and S2, ignoring case. */ #if @GNULIB_WCSCASECMP@ # if !@HAVE_WCSCASECMP@ _GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscasecmp); #elif defined GNULIB_POSIXCHECK # undef wcscasecmp # if HAVE_RAW_DECL_WCSCASECMP _GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - " "use gnulib module wcscasecmp for portability"); # endif #endif /* Compare no more than N chars of S1 and S2, ignoring case. */ #if @GNULIB_WCSNCASECMP@ # if !@HAVE_WCSNCASECMP@ _GL_FUNCDECL_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsncasecmp, int, (const wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsncasecmp); #elif defined GNULIB_POSIXCHECK # undef wcsncasecmp # if HAVE_RAW_DECL_WCSNCASECMP _GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - " "use gnulib module wcsncasecmp for portability"); # endif #endif /* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE category of the current locale. */ #if @GNULIB_WCSCOLL@ # if !@HAVE_WCSCOLL@ _GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); # endif _GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2)); _GL_CXXALIASWARN (wcscoll); #elif defined GNULIB_POSIXCHECK # undef wcscoll # if HAVE_RAW_DECL_WCSCOLL _GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - " "use gnulib module wcscoll for portability"); # endif #endif /* Transform S2 into array pointed to by S1 such that if wcscmp is applied to two transformed strings the result is the as applying 'wcscoll' to the original strings. */ #if @GNULIB_WCSXFRM@ # if !@HAVE_WCSXFRM@ _GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); # endif _GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n)); _GL_CXXALIASWARN (wcsxfrm); #elif defined GNULIB_POSIXCHECK # undef wcsxfrm # if HAVE_RAW_DECL_WCSXFRM _GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - " "use gnulib module wcsxfrm for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_WCSDUP@ # if !@HAVE_WCSDUP@ _GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s)); # endif _GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s)); _GL_CXXALIASWARN (wcsdup); #elif defined GNULIB_POSIXCHECK # undef wcsdup # if HAVE_RAW_DECL_WCSDUP _GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - " "use gnulib module wcsdup for portability"); # endif #endif /* Find the first occurrence of WC in WCS. */ #if @GNULIB_WCSCHR@ # if !@HAVE_WCSCHR@ _GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcschr (const wchar_t *, wchar_t); wchar_t * std::wcschr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcschr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcschr); # endif #elif defined GNULIB_POSIXCHECK # undef wcschr # if HAVE_RAW_DECL_WCSCHR _GL_WARN_ON_USE (wcschr, "wcschr is unportable - " "use gnulib module wcschr for portability"); # endif #endif /* Find the last occurrence of WC in WCS. */ #if @GNULIB_WCSRCHR@ # if !@HAVE_WCSRCHR@ _GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsrchr (const wchar_t *, wchar_t); wchar_t * std::wcsrchr (wchar_t *, wchar_t); } */ _GL_CXXALIAS_SYS_CAST2 (wcsrchr, wchar_t *, (const wchar_t *, wchar_t), const wchar_t *, (const wchar_t *, wchar_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc)); _GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc)); # else _GL_CXXALIASWARN (wcsrchr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsrchr # if HAVE_RAW_DECL_WCSRCHR _GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - " "use gnulib module wcsrchr for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters not in REJECT. */ #if @GNULIB_WCSCSPN@ # if !@HAVE_WCSCSPN@ _GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject)); _GL_CXXALIASWARN (wcscspn); #elif defined GNULIB_POSIXCHECK # undef wcscspn # if HAVE_RAW_DECL_WCSCSPN _GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - " "use gnulib module wcscspn for portability"); # endif #endif /* Return the length of the initial segmet of WCS which consists entirely of wide characters in ACCEPT. */ #if @GNULIB_WCSSPN@ # if !@HAVE_WCSSPN@ _GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN (wcsspn); #elif defined GNULIB_POSIXCHECK # undef wcsspn # if HAVE_RAW_DECL_WCSSPN _GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - " "use gnulib module wcsspn for portability"); # endif #endif /* Find the first occurrence in WCS of any character in ACCEPT. */ #if @GNULIB_WCSPBRK@ # if !@HAVE_WCSPBRK@ _GL_FUNCDECL_SYS (wcspbrk, wchar_t *, (const wchar_t *wcs, const wchar_t *accept) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *); wchar_t * std::wcspbrk (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcspbrk, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcspbrk, wchar_t *, (wchar_t *wcs, const wchar_t *accept)); _GL_CXXALIASWARN1 (wcspbrk, const wchar_t *, (const wchar_t *wcs, const wchar_t *accept)); # else _GL_CXXALIASWARN (wcspbrk); # endif #elif defined GNULIB_POSIXCHECK # undef wcspbrk # if HAVE_RAW_DECL_WCSPBRK _GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - " "use gnulib module wcspbrk for portability"); # endif #endif /* Find the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_WCSSTR@ # if !@HAVE_WCSSTR@ _GL_FUNCDECL_SYS (wcsstr, wchar_t *, (const wchar_t *haystack, const wchar_t *needle) _GL_ATTRIBUTE_PURE); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *); wchar_t * std::wcsstr (wchar_t *, const wchar_t *); } */ _GL_CXXALIAS_SYS_CAST2 (wcsstr, wchar_t *, (const wchar_t *, const wchar_t *), const wchar_t *, (const wchar_t *, const wchar_t *)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (wcsstr, wchar_t *, (wchar_t *haystack, const wchar_t *needle)); _GL_CXXALIASWARN1 (wcsstr, const wchar_t *, (const wchar_t *haystack, const wchar_t *needle)); # else _GL_CXXALIASWARN (wcsstr); # endif #elif defined GNULIB_POSIXCHECK # undef wcsstr # if HAVE_RAW_DECL_WCSSTR _GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - " "use gnulib module wcsstr for portability"); # endif #endif /* Divide WCS into tokens separated by characters in DELIM. */ #if @GNULIB_WCSTOK@ # if !@HAVE_WCSTOK@ _GL_FUNCDECL_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); # endif _GL_CXXALIAS_SYS (wcstok, wchar_t *, (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr)); _GL_CXXALIASWARN (wcstok); #elif defined GNULIB_POSIXCHECK # undef wcstok # if HAVE_RAW_DECL_WCSTOK _GL_WARN_ON_USE (wcstok, "wcstok is unportable - " "use gnulib module wcstok for portability"); # endif #endif /* Determine number of column positions required for first N wide characters (or fewer if S ends before this) in S. */ #if @GNULIB_WCSWIDTH@ # if @REPLACE_WCSWIDTH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wcswidth # define wcswidth rpl_wcswidth # endif _GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); _GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n)); # else # if !@HAVE_WCSWIDTH@ _GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n) _GL_ATTRIBUTE_PURE); # endif _GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n)); # endif _GL_CXXALIASWARN (wcswidth); #elif defined GNULIB_POSIXCHECK # undef wcswidth # if HAVE_RAW_DECL_WCSWIDTH _GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - " "use gnulib module wcswidth for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif /* _@GUARD_PREFIX@_WCHAR_H */ #endif libidn-1.28/lib/gltests/test-setlocale1.c0000644000000000000000000000330112153706107015203 00000000000000/* Test of setting the current locale. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include "signature.h" SIGNATURE_CHECK (setlocale, char *, (int, const char *)); #include #include #include "macros.h" int main (int argc, char *argv[]) { char *name1; char *name2; /* Try to set the locale by implicitly looking at the LC_ALL environment variable. configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; name1 = strdup (setlocale (LC_ALL, NULL)); /* Reset the locale. */ if (setlocale (LC_ALL, "C") == NULL) return 1; /* Try to set the locale by explicitly looking at the LC_ALL environment variable. configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL) return 1; name2 = strdup (setlocale (LC_ALL, NULL)); /* Test that the two results are the same. */ ASSERT (strcmp (name1, name2) == 0); return 0; } libidn-1.28/lib/gltests/test-unsetenv.c0000644000000000000000000000337512153706107015031 00000000000000/* Tests of unsetenv. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (unsetenv, int, (char const *)); #include #include #include #include "macros.h" int main (void) { char entry[] = "b=2"; /* Test removal when multiple entries present. */ ASSERT (putenv ((char *) "a=1") == 0); ASSERT (putenv (entry) == 0); entry[0] = 'a'; /* Unspecified what getenv("a") would be at this point. */ ASSERT (unsetenv ("a") == 0); /* Both entries will be removed. */ ASSERT (getenv ("a") == NULL); ASSERT (unsetenv ("a") == 0); /* Required to fail with EINVAL. */ errno = 0; ASSERT (unsetenv ("") == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (unsetenv ("a=b") == -1); ASSERT (errno == EINVAL); #if 0 /* glibc and gnulib's implementation guarantee this, but POSIX no longer requires it: http://austingroupbugs.net/view.php?id=185 */ errno = 0; ASSERT (unsetenv (NULL) == -1); ASSERT (errno == EINVAL); #endif return 0; } libidn-1.28/lib/gltests/test-inttypes.c0000644000000000000000000000606012153706107015033 00000000000000/* Test of substitute. Copyright (C) 2006-2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include /* Tests for macros supposed to be defined in inttypes.h. */ const char *k = /* implicit string concatenation */ #ifdef INT8_MAX PRId8 PRIi8 #endif #ifdef UINT8_MAX PRIo8 PRIu8 PRIx8 PRIX8 #endif #ifdef INT16_MAX PRId16 PRIi16 #endif #ifdef UINT16_MAX PRIo16 PRIu16 PRIx16 PRIX16 #endif #ifdef INT32_MAX PRId32 PRIi32 #endif #ifdef UINT32_MAX PRIo32 PRIu32 PRIx32 PRIX32 #endif #ifdef INT64_MAX PRId64 PRIi64 #endif #ifdef UINT64_MAX PRIo64 PRIu64 PRIx64 PRIX64 #endif PRIdLEAST8 PRIiLEAST8 PRIoLEAST8 PRIuLEAST8 PRIxLEAST8 PRIXLEAST8 PRIdLEAST16 PRIiLEAST16 PRIoLEAST16 PRIuLEAST16 PRIxLEAST16 PRIXLEAST16 PRIdLEAST32 PRIiLEAST32 PRIoLEAST32 PRIuLEAST32 PRIxLEAST32 PRIXLEAST32 PRIdLEAST64 PRIiLEAST64 PRIoLEAST64 PRIuLEAST64 PRIxLEAST64 PRIXLEAST64 PRIdFAST8 PRIiFAST8 PRIoFAST8 PRIuFAST8 PRIxFAST8 PRIXFAST8 PRIdFAST16 PRIiFAST16 PRIoFAST16 PRIuFAST16 PRIxFAST16 PRIXFAST16 PRIdFAST32 PRIiFAST32 PRIoFAST32 PRIuFAST32 PRIxFAST32 PRIXFAST32 PRIdFAST64 PRIiFAST64 PRIoFAST64 PRIuFAST64 PRIxFAST64 PRIXFAST64 PRIdMAX PRIiMAX PRIoMAX PRIuMAX PRIxMAX PRIXMAX #ifdef INTPTR_MAX PRIdPTR PRIiPTR #endif #ifdef UINTPTR_MAX PRIoPTR PRIuPTR PRIxPTR PRIXPTR #endif ; const char *l = /* implicit string concatenation */ #ifdef INT8_MAX SCNd8 SCNi8 #endif #ifdef UINT8_MAX SCNo8 SCNu8 SCNx8 #endif #ifdef INT16_MAX SCNd16 SCNi16 #endif #ifdef UINT16_MAX SCNo16 SCNu16 SCNx16 #endif #ifdef INT32_MAX SCNd32 SCNi32 #endif #ifdef UINT32_MAX SCNo32 SCNu32 SCNx32 #endif #ifdef INT64_MAX SCNd64 SCNi64 #endif #ifdef UINT64_MAX SCNo64 SCNu64 SCNx64 #endif SCNdLEAST8 SCNiLEAST8 SCNoLEAST8 SCNuLEAST8 SCNxLEAST8 SCNdLEAST16 SCNiLEAST16 SCNoLEAST16 SCNuLEAST16 SCNxLEAST16 SCNdLEAST32 SCNiLEAST32 SCNoLEAST32 SCNuLEAST32 SCNxLEAST32 SCNdLEAST64 SCNiLEAST64 SCNoLEAST64 SCNuLEAST64 SCNxLEAST64 SCNdFAST8 SCNiFAST8 SCNoFAST8 SCNuFAST8 SCNxFAST8 SCNdFAST16 SCNiFAST16 SCNoFAST16 SCNuFAST16 SCNxFAST16 SCNdFAST32 SCNiFAST32 SCNoFAST32 SCNuFAST32 SCNxFAST32 SCNdFAST64 SCNiFAST64 SCNoFAST64 SCNuFAST64 SCNxFAST64 SCNdMAX SCNiMAX SCNoMAX SCNuMAX SCNxMAX #ifdef INTPTR_MAX SCNdPTR SCNiPTR #endif #ifdef UINTPTR_MAX SCNoPTR SCNuPTR SCNxPTR #endif ; int main (void) { return 0; } libidn-1.28/lib/gltests/test-setlocale2.sh0000775000000000000000000000134511746453142015414 00000000000000#!/bin/sh # Test locale names with likely unsupported encoding in Unix syntax. for name in ar_SA.ISO-8859-1 fr_FR.CP1251 zh_TW.GB18030 zh_CN.BIG5; do env LC_ALL=$name ./test-setlocale2${EXEEXT} 1 || exit 1 done # Test locale names with likely unsupported encoding in native Windows syntax. for name in "Arabic_Saudi Arabia.1252" "Arabic_Saudi Arabia.65001" \ French_France.65001 Japanese_Japan.65001 Turkish_Turkey.65001 \ Chinese_Taiwan.65001 Chinese_China.54936 Chinese_China.65001; do # Here we use 'env' to set the LC_ALL environment variable, because on # Solaris 11 2011-11, the /bin/sh refuses to do it for Turkish_Turkey.65001. env LC_ALL="$name" ./test-setlocale2${EXEEXT} 1 || exit 1 done exit 0 libidn-1.28/lib/gltests/setenv.c0000644000000000000000000002502612153706107013506 00000000000000/* Copyright (C) 1992, 1995-2003, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if !_LIBC /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ # define _GL_ARG_NONNULL(params) # define _GL_USE_STDLIB_ALLOC 1 # include #endif #include /* Specification. */ #include #include #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include #if _LIBC || HAVE_UNISTD_H # include #endif #if !_LIBC # include "malloca.h" #endif #if _LIBC || !HAVE_SETENV #if !_LIBC # define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif /* In the GNU C library we must keep the namespace clean. */ #ifdef _LIBC # define setenv __setenv # define clearenv __clearenv # define tfind __tfind # define tsearch __tsearch #endif /* In the GNU C library implementation we try to be more clever and allow arbitrarily many changes of the environment given that the used values are from a small set. Outside glibc this will eat up all memory after a while. */ #if defined _LIBC || (defined HAVE_SEARCH_H && defined HAVE_TSEARCH \ && defined __GNUC__) # define USE_TSEARCH 1 # include typedef int (*compar_fn_t) (const void *, const void *); /* This is a pointer to the root of the search tree with the known values. */ static void *known_values; # define KNOWN_VALUE(Str) \ ({ \ void *value = tfind (Str, &known_values, (compar_fn_t) strcmp); \ value != NULL ? *(char **) value : NULL; \ }) # define STORE_VALUE(Str) \ tsearch (Str, &known_values, (compar_fn_t) strcmp) #else # undef USE_TSEARCH # define KNOWN_VALUE(Str) NULL # define STORE_VALUE(Str) do { } while (0) #endif /* If this variable is not a null pointer we allocated the current environment. */ static char **last_environ; /* This function is used by 'setenv' and 'putenv'. The difference between the two functions is that for the former must create a new string which is then placed in the environment, while the argument of 'putenv' must be used directly. This is all complicated by the fact that we try to reuse values once generated for a 'setenv' call since we can never free the strings. */ int __add_to_environ (const char *name, const char *value, const char *combined, int replace) { char **ep; size_t size; const size_t namelen = strlen (name); const size_t vallen = value != NULL ? strlen (value) + 1 : 0; LOCK; /* We have to get the pointer now that we have the lock and not earlier since another thread might have created a new environment. */ ep = __environ; size = 0; if (ep != NULL) { for (; *ep != NULL; ++ep) if (!strncmp (*ep, name, namelen) && (*ep)[namelen] == '=') break; else ++size; } if (ep == NULL || *ep == NULL) { char **new_environ; #ifdef USE_TSEARCH char *new_value; #endif /* We allocated this space; we can extend it. */ new_environ = (char **) (last_environ == NULL ? malloc ((size + 2) * sizeof (char *)) : realloc (last_environ, (size + 2) * sizeof (char *))); if (new_environ == NULL) { /* It's easier to set errno to ENOMEM than to rely on the 'malloc-posix' and 'realloc-posix' gnulib modules. */ __set_errno (ENOMEM); UNLOCK; return -1; } /* If the whole entry is given add it. */ if (combined != NULL) /* We must not add the string to the search tree since it belongs to the user. */ new_environ[size] = (char *) combined; else { /* See whether the value is already known. */ #ifdef USE_TSEARCH # ifdef _LIBC new_value = (char *) alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = (char *) malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif new_environ[size] = KNOWN_VALUE (new_value); if (new_environ[size] == NULL) #endif { new_environ[size] = (char *) malloc (namelen + 1 + vallen); if (new_environ[size] == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (new_environ[size], new_value, namelen + 1 + vallen); #else memcpy (new_environ[size], name, namelen); new_environ[size][namelen] = '='; memcpy (&new_environ[size][namelen + 1], value, vallen); #endif /* And save the value now. We cannot do this when we remove the string since then we cannot decide whether it is a user string or not. */ STORE_VALUE (new_environ[size]); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } if (__environ != last_environ) memcpy ((char *) new_environ, (char *) __environ, size * sizeof (char *)); new_environ[size + 1] = NULL; last_environ = __environ = new_environ; } else if (replace) { char *np; /* Use the user string if given. */ if (combined != NULL) np = (char *) combined; else { #ifdef USE_TSEARCH char *new_value; # ifdef _LIBC new_value = alloca (namelen + 1 + vallen); __mempcpy (__mempcpy (__mempcpy (new_value, name, namelen), "=", 1), value, vallen); # else new_value = malloca (namelen + 1 + vallen); if (new_value == NULL) { __set_errno (ENOMEM); UNLOCK; return -1; } memcpy (new_value, name, namelen); new_value[namelen] = '='; memcpy (&new_value[namelen + 1], value, vallen); # endif np = KNOWN_VALUE (new_value); if (np == NULL) #endif { np = (char *) malloc (namelen + 1 + vallen); if (np == NULL) { #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif __set_errno (ENOMEM); UNLOCK; return -1; } #ifdef USE_TSEARCH memcpy (np, new_value, namelen + 1 + vallen); #else memcpy (np, name, namelen); np[namelen] = '='; memcpy (&np[namelen + 1], value, vallen); #endif /* And remember the value. */ STORE_VALUE (np); } #if defined USE_TSEARCH && !defined _LIBC freea (new_value); #endif } *ep = np; } UNLOCK; return 0; } int setenv (const char *name, const char *value, int replace) { if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } return __add_to_environ (name, value, NULL, replace); } /* The 'clearenv' was planned to be added to POSIX.1 but probably never made it. Nevertheless the POSIX.9 standard (POSIX bindings for Fortran 77) requires this function. */ int clearenv (void) { LOCK; if (__environ == last_environ && __environ != NULL) { /* We allocated this environment so we can free it. */ free (__environ); last_environ = NULL; } /* Clear the environment pointer removes the whole environment. */ __environ = NULL; UNLOCK; return 0; } #ifdef _LIBC static void free_mem (void) { /* Remove all traces. */ clearenv (); /* Now remove the search tree. */ __tdestroy (known_values, free); known_values = NULL; } text_set_element (__libc_subfreeres, free_mem); # undef setenv # undef clearenv weak_alias (__setenv, setenv) weak_alias (__clearenv, clearenv) #endif #endif /* _LIBC || !HAVE_SETENV */ /* The rest of this file is called into use when replacing an existing but buggy setenv. Known bugs include failure to diagnose invalid name, and consuming a leading '=' from value. */ #if HAVE_SETENV # undef setenv # if !HAVE_DECL_SETENV extern int setenv (const char *, const char *, int); # endif # define STREQ(a, b) (strcmp (a, b) == 0) int rpl_setenv (const char *name, const char *value, int replace) { int result; if (!name || !*name || strchr (name, '=')) { errno = EINVAL; return -1; } /* Call the real setenv even if replace is 0, in case implementation has underlying data to update, such as when environ changes. */ result = setenv (name, value, replace); if (result == 0 && replace && *value == '=') { char *tmp = getenv (name); if (!STREQ (tmp, value)) { int saved_errno; size_t len = strlen (value); tmp = malloca (len + 2); /* Since leading '=' is eaten, double it up. */ *tmp = '='; memcpy (tmp + 1, value, len + 1); result = setenv (name, tmp, replace); saved_errno = errno; freea (tmp); errno = saved_errno; } } return result; } #endif /* HAVE_SETENV */ libidn-1.28/lib/gltests/test-verify.sh0000775000000000000000000000130511746453142014657 00000000000000#!/bin/sh . "${srcdir=.}/init.sh" # We are not interested in triggering bugs in the compilers and tools # (such as gcc 4.3.1 on openSUSE 11.0). unset MALLOC_PERTURB_ # Rather than figure out how to invoke the compiler with the right # include path ourselves, we let make do it: (cd "$initial_cwd_" && rm -f test-verify.o \ && $MAKE test-verify.o >/dev/null 2>&1) \ || skip_ "cannot compile error-free" # Now, prove that we encounter all expected compilation failures: : >out : >err for i in 1 2 3 4 5; do (cd "$initial_cwd_" rm -f test-verify.o $MAKE CFLAGS=-DEXP_FAIL=$i test-verify.o) >>out 2>>err \ && { warn_ "compiler didn't detect verification failure $i"; fail=1; } done Exit $fail libidn-1.28/lib/gltests/test-locale.c0000644000000000000000000000437312153706107014420 00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" int a[] = { LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME }; #if HAVE_NEWLOCALE /* Check that the locale_t type and the LC_GLOBAL_LOCALE macro are defined. */ locale_t b = LC_GLOBAL_LOCALE; #endif /* Check that the 'struct lconv' type is defined. */ struct lconv l; int ls; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); int main () { /* Check that 'struct lconv' has the ISO C and POSIX specified members. */ ls += sizeof (*l.decimal_point); ls += sizeof (*l.thousands_sep); ls += sizeof (*l.grouping); ls += sizeof (*l.mon_decimal_point); ls += sizeof (*l.mon_thousands_sep); ls += sizeof (*l.mon_grouping); ls += sizeof (*l.positive_sign); ls += sizeof (*l.negative_sign); ls += sizeof (*l.currency_symbol); ls += sizeof (l.frac_digits); ls += sizeof (l.p_cs_precedes); ls += sizeof (l.p_sign_posn); ls += sizeof (l.p_sep_by_space); ls += sizeof (l.n_cs_precedes); ls += sizeof (l.n_sign_posn); ls += sizeof (l.n_sep_by_space); ls += sizeof (*l.int_curr_symbol); ls += sizeof (l.int_frac_digits); ls += sizeof (l.int_p_cs_precedes); ls += sizeof (l.int_p_sign_posn); ls += sizeof (l.int_p_sep_by_space); ls += sizeof (l.int_n_cs_precedes); ls += sizeof (l.int_n_sign_posn); ls += sizeof (l.int_n_sep_by_space); return 0; } libidn-1.28/lib/gltests/macros.h0000644000000000000000000000651412153706107013474 00000000000000/* Common macros used by gnulib tests. Copyright (C) 2006-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* This file contains macros that are used by many gnulib tests. Put here only frequently used macros, say, used by 10 tests or more. */ #include #include /* Define ASSERT_STREAM before including this file if ASSERT must target a stream other than stderr. */ #ifndef ASSERT_STREAM # define ASSERT_STREAM stderr #endif /* ASSERT (condition); verifies that the specified condition is fulfilled. If not, a message is printed to ASSERT_STREAM if defined (defaulting to stderr if undefined) and the program is terminated with an error code. This macro has the following properties: - The programmer specifies the expected condition, not the failure condition. This simplifies thinking. - The condition is tested always, regardless of compilation flags. (Unlike the macro from .) - On Unix platforms, the tester can debug the test program with a debugger (provided core dumps are enabled: "ulimit -c unlimited"). - For the sake of platforms where no debugger is available (such as some mingw systems), an error message is printed on the error stream that includes the source location of the ASSERT invocation. */ #define ASSERT(expr) \ do \ { \ if (!(expr)) \ { \ fprintf (ASSERT_STREAM, "%s:%d: assertion failed\n", \ __FILE__, __LINE__); \ fflush (ASSERT_STREAM); \ abort (); \ } \ } \ while (0) /* SIZEOF (array) returns the number of elements of an array. It works for arrays that are declared outside functions and for local variables of array type. It does *not* work for function parameters of array type, because they are actually parameters of pointer type. */ #define SIZEOF(array) (sizeof (array) / sizeof (array[0])) /* STREQ (str1, str2) Return true if two strings compare equal. */ #define STREQ(a, b) (strcmp (a, b) == 0) /* Some numbers in the interval [0,1). */ extern const float randomf[1000]; extern const double randomd[1000]; extern const long double randoml[1000]; libidn-1.28/lib/gltests/test-localename.c0000644000000000000000000005316512153706107015264 00000000000000/* Test of gl_locale_name function and its variants. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include "localename.h" #include #include #include #include "macros.h" #if HAVE_NEWLOCALE static struct { int cat; int mask; const char *string; } const categories[] = { { LC_CTYPE, LC_CTYPE_MASK, "LC_CTYPE" }, { LC_NUMERIC, LC_NUMERIC_MASK, "LC_NUMERIC" }, { LC_TIME, LC_TIME_MASK, "LC_TIME" }, { LC_COLLATE, LC_COLLATE_MASK, "LC_COLLATE" }, { LC_MONETARY, LC_MONETARY_MASK, "LC_MONETARY" }, { LC_MESSAGES, LC_MESSAGES_MASK, "LC_MESSAGES" } # ifdef LC_PAPER , { LC_PAPER, LC_PAPER_MASK, "LC_PAPER" } # endif # ifdef LC_NAME , { LC_NAME, LC_NAME_MASK, "LC_NAME" } # endif # ifdef LC_ADDRESS , { LC_ADDRESS, LC_ADDRESS_MASK, "LC_ADDRESS" } # endif # ifdef LC_TELEPHONE , { LC_TELEPHONE, LC_TELEPHONE_MASK, "LC_TELEPHONE" } # endif # ifdef LC_MEASUREMENT , { LC_MEASUREMENT, LC_MEASUREMENT_MASK, "LC_MEASUREMENT" } # endif # ifdef LC_IDENTIFICATION , { LC_IDENTIFICATION, LC_IDENTIFICATION_MASK, "LC_IDENTIFICATION" } # endif }; #endif /* Test the gl_locale_name() function. */ static void test_locale_name (void) { const char *name; /* Check that gl_locale_name returns non-NULL. */ ASSERT (gl_locale_name (LC_MESSAGES, "LC_MESSAGES") != NULL); /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE uselocale (LC_GLOBAL_LOCALE); #endif /* Check that when all environment variables are unset, gl_locale_name returns the default locale. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LC_NUMERIC"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); ASSERT (strcmp (gl_locale_name (LC_NUMERIC, "LC_NUMERIC"), gl_locale_name_default ()) == 0); /* Check that an empty environment variable is treated like an unset environment variable. */ setenv ("LC_ALL", "", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "", 1); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "", 1); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), gl_locale_name_default ()) == 0); /* Check that LC_ALL overrides the others, and LANG is overridden by the others. */ setenv ("LC_ALL", "C", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "C", 1); setenv ("LC_MESSAGES", "C", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); ASSERT (strcmp (gl_locale_name (LC_MESSAGES, "LC_MESSAGES"), "C") == 0); /* Check mixed situations. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); setenv ("LANG", "de_DE.UTF-8", 1); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "de_DE.UTF-8") == 0); name = gl_locale_name (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); unsetenv ("LANG"); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, gl_locale_name_default ()) == 0); name = gl_locale_name (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } #if HAVE_NEWLOCALE /* Check that gl_locale_name considers the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { uselocale (locale); name = gl_locale_name (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); name = gl_locale_name (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } } /* Check that gl_locale_name distinguishes different categories of the thread locale, and that the name is the right one for each. */ { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) { int category_mask = categories[i].mask; locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { locale = newlocale (category_mask, "de_DE.UTF-8", locale); if (locale != NULL) { unsigned int j; uselocale (locale); for (j = 0; j < SIZEOF (categories); j++) { const char *name_j = gl_locale_name (categories[j].cat, categories[j].string); if (j == i) ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0); else ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0); } } } } } #endif } /* Test the gl_locale_name_thread() function. */ static void test_locale_name_thread (void) { /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE /* Check that gl_locale_name_thread returns NULL when no thread locale is set. */ uselocale (LC_GLOBAL_LOCALE); ASSERT (gl_locale_name_thread (LC_CTYPE, "LC_CTYPE") == NULL); ASSERT (gl_locale_name_thread (LC_MESSAGES, "LC_MESSAGES") == NULL); /* Check that gl_locale_name_thread considers the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { const char *name; uselocale (locale); name = gl_locale_name_thread (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); name = gl_locale_name_thread (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } } /* Check that gl_locale_name_thread distinguishes different categories of the thread locale, and that the name is the right one for each. */ { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) { int category_mask = categories[i].mask; locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { locale = newlocale (category_mask, "de_DE.UTF-8", locale); if (locale != NULL) { unsigned int j; uselocale (locale); for (j = 0; j < SIZEOF (categories); j++) { const char *name_j = gl_locale_name_thread (categories[j].cat, categories[j].string); if (j == i) ASSERT (strcmp (name_j, "de_DE.UTF-8") == 0); else ASSERT (strcmp (name_j, "fr_FR.UTF-8") == 0); } } } } } /* Check that gl_locale_name_thread returns a string that is allocated with indefinite extent. */ { /* Try many locale names in turn, in order to defeat possible caches. */ static const char * const choices[] = { "C", "POSIX", "af_ZA", "af_ZA.UTF-8", "am_ET", "am_ET.UTF-8", "be_BY", "be_BY.UTF-8", "bg_BG", "bg_BG.UTF-8", "ca_ES", "ca_ES.UTF-8", "cs_CZ", "cs_CZ.UTF-8", "da_DK", "da_DK.UTF-8", "de_AT", "de_AT.UTF-8", "de_CH", "de_CH.UTF-8", "de_DE", "de_DE.UTF-8", "el_GR", "el_GR.UTF-8", "en_AU", "en_AU.UTF-8", "en_CA", "en_CA.UTF-8", "en_GB", "en_GB.UTF-8", "en_IE", "en_IE.UTF-8", "en_NZ", "en_NZ.UTF-8", "en_US", "en_US.UTF-8", "es_ES", "es_ES.UTF-8", "et_EE", "et_EE.UTF-8", "eu_ES", "eu_ES.UTF-8", "fi_FI", "fi_FI.UTF-8", "fr_BE", "fr_BE.UTF-8", "fr_CA", "fr_CA.UTF-8", "fr_CH", "fr_CH.UTF-8", "fr_FR", "fr_FR.UTF-8", "he_IL", "he_IL.UTF-8", "hr_HR", "hr_HR.UTF-8", "hu_HU", "hu_HU.UTF-8", "hy_AM", "is_IS", "is_IS.UTF-8", "it_CH", "it_CH.UTF-8", "it_IT", "it_IT.UTF-8", "ja_JP.UTF-8", "kk_KZ", "kk_KZ.UTF-8", "ko_KR.UTF-8", "lt_LT", "lt_LT.UTF-8", "nl_BE", "nl_BE.UTF-8", "nl_NL", "nl_NL.UTF-8", "no_NO", "no_NO.UTF-8", "pl_PL", "pl_PL.UTF-8", "pt_BR", "pt_BR.UTF-8", "pt_PT", "pt_PT.UTF-8", "ro_RO", "ro_RO.UTF-8", "ru_RU", "ru_RU.UTF-8", "sk_SK", "sk_SK.UTF-8", "sl_SI", "sl_SI.UTF-8", "sv_SE", "sv_SE.UTF-8", "tr_TR", "tr_TR.UTF-8", "uk_UA", "uk_UA.UTF-8", "zh_CN", "zh_CN.UTF-8", "zh_HK", "zh_HK.UTF-8", "zh_TW", "zh_TW.UTF-8" }; /* Remember which locales are available. */ unsigned char /* bool */ available[SIZEOF (choices)]; /* Array of remembered results of gl_locale_name_thread. */ const char *unsaved_names[SIZEOF (choices)][SIZEOF (categories)]; /* Array of remembered results of gl_locale_name_thread, stored in safe memory. */ char *saved_names[SIZEOF (choices)][SIZEOF (categories)]; unsigned int j; for (j = 0; j < SIZEOF (choices); j++) { locale_t locale = newlocale (LC_ALL_MASK, choices[j], NULL); available[j] = (locale != NULL); if (locale != NULL) { unsigned int i; uselocale (locale); for (i = 0; i < SIZEOF (categories); i++) { unsaved_names[j][i] = gl_locale_name_thread (categories[i].cat, categories[i].string); saved_names[j][i] = strdup (unsaved_names[j][i]); } uselocale (LC_GLOBAL_LOCALE); freelocale (locale); } } /* Verify the unsaved_names are still valid. */ for (j = 0; j < SIZEOF (choices); j++) if (available[j]) { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0); } /* Allocate many locales, without freeing them. This is an attempt at overwriting as much of the previously allocated memory as possible. */ for (j = SIZEOF (choices); j > 0; ) { j--; if (available[j]) { locale_t locale = newlocale (LC_ALL_MASK, choices[j], NULL); unsigned int i; ASSERT (locale != NULL); uselocale (locale); for (i = 0; i < SIZEOF (categories); i++) { const char *name = gl_locale_name_thread (categories[i].cat, categories[i].string); ASSERT (strcmp (unsaved_names[j][i], name) == 0); } uselocale (LC_GLOBAL_LOCALE); } } /* Verify the unsaved_names are still valid. */ for (j = 0; j < SIZEOF (choices); j++) if (available[j]) { unsigned int i; for (i = 0; i < SIZEOF (categories); i++) ASSERT (strcmp (unsaved_names[j][i], saved_names[j][i]) == 0); } } #else /* Check that gl_locale_name_thread always returns NULL. */ ASSERT (gl_locale_name_thread (LC_CTYPE, "LC_CTYPE") == NULL); ASSERT (gl_locale_name_thread (LC_MESSAGES, "LC_MESSAGES") == NULL); #endif } /* Test the gl_locale_name_posix() function. */ static void test_locale_name_posix (void) { const char *name; /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE uselocale (LC_GLOBAL_LOCALE); #endif /* Check that when all environment variables are unset, gl_locale_name_posix returns either NULL or the default locale. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LC_NUMERIC"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); name = gl_locale_name_posix (LC_NUMERIC, "LC_NUMERIC"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); /* Check that an empty environment variable is treated like an unset environment variable. */ setenv ("LC_ALL", "", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "", 1); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "", 1); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); /* Check that LC_ALL overrides the others, and LANG is overridden by the others. */ setenv ("LC_ALL", "C", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "C", 1); setenv ("LC_MESSAGES", "C", 1); unsetenv ("LANG"); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); /* Check mixed situations. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); setenv ("LANG", "de_DE.UTF-8", 1); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name_posix (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "de_DE.UTF-8") == 0); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); unsetenv ("LANG"); if (setlocale (LC_ALL, "") != NULL) { name = gl_locale_name_posix (LC_CTYPE, "LC_CTYPE"); ASSERT (name == NULL || strcmp (name, gl_locale_name_default ()) == 0); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); } #if HAVE_NEWLOCALE /* Check that gl_locale_name_posix ignores the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); uselocale (locale); name = gl_locale_name_posix (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); } } #endif } /* Test the gl_locale_name_environ() function. */ static void test_locale_name_environ (void) { const char *name; /* Get into a defined state, */ setlocale (LC_ALL, "en_US.UTF-8"); #if HAVE_NEWLOCALE uselocale (LC_GLOBAL_LOCALE); #endif /* Check that when all environment variables are unset, gl_locale_name_environ returns NULL. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LC_NUMERIC"); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); ASSERT (gl_locale_name_environ (LC_NUMERIC, "LC_NUMERIC") == NULL); /* Check that an empty environment variable is treated like an unset environment variable. */ setenv ("LC_ALL", "", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "", 1); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "", 1); unsetenv ("LANG"); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "", 1); ASSERT (gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES") == NULL); /* Check that LC_ALL overrides the others, and LANG is overridden by the others. */ setenv ("LC_ALL", "C", 1); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); unsetenv ("LANG"); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); setenv ("LC_CTYPE", "C", 1); setenv ("LC_MESSAGES", "C", 1); unsetenv ("LANG"); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); /* Check mixed situations. */ unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); setenv ("LANG", "de_DE.UTF-8", 1); name = gl_locale_name_environ (LC_CTYPE, "LC_CTYPE"); ASSERT (strcmp (name, "de_DE.UTF-8") == 0); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); setenv ("LC_MESSAGES", "fr_FR.UTF-8", 1); unsetenv ("LANG"); name = gl_locale_name_environ (LC_CTYPE, "LC_CTYPE"); ASSERT (name == NULL); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "fr_FR.UTF-8") == 0); #if HAVE_NEWLOCALE /* Check that gl_locale_name_environ ignores the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { unsetenv ("LC_ALL"); unsetenv ("LC_CTYPE"); unsetenv ("LC_MESSAGES"); setenv ("LANG", "C", 1); setlocale (LC_ALL, ""); uselocale (locale); name = gl_locale_name_environ (LC_MESSAGES, "LC_MESSAGES"); ASSERT (strcmp (name, "C") == 0); } } #endif } /* Test the gl_locale_name_default() function. */ static void test_locale_name_default (void) { const char *name = gl_locale_name_default (); ASSERT (name != NULL); /* Only Mac OS X and Windows have a facility for the user to set the default locale. */ #if !((defined __APPLE__ && defined __MACH__) || (defined _WIN32 || defined __WIN32__ || defined __CYGWIN__)) ASSERT (strcmp (name, "C") == 0); #endif #if HAVE_NEWLOCALE /* Check that gl_locale_name_default ignores the thread locale. */ { locale_t locale = newlocale (LC_ALL_MASK, "fr_FR.UTF-8", NULL); if (locale != NULL) { uselocale (locale); ASSERT (strcmp (gl_locale_name_default (), name) == 0); } } #endif } int main () { test_locale_name (); test_locale_name_thread (); test_locale_name_posix (); test_locale_name_environ (); test_locale_name_default (); return 0; } libidn-1.28/lib/gltests/unistd.c0000644000000000000000000000012412061006107013467 00000000000000#include #define _GL_UNISTD_INLINE _GL_EXTERN_INLINE #include "unistd.h" libidn-1.28/lib/gltests/localename.h0000644000000000000000000001056112153706107014305 00000000000000/* Determine name of the currently selected locale. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _GL_LOCALENAME_H #define _GL_LOCALENAME_H #ifdef __cplusplus extern "C" { #endif /* Determine the current locale's name. It considers both the POSIX notion of locale name (see functions gl_locale_name_thread and gl_locale_name_posix) and the system notion of locale name (see function gl_locale_name_default). CATEGORY is a locale category abbreviation, as defined in , but not LC_ALL. E.g. LC_MESSAGES. CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". Return the locale category's name, canonicalized into XPG syntax language[_territory][.codeset][@modifier] The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name (int category, const char *categoryname); /* Determine the current per-thread locale's name, as specified by uselocale() calls. CATEGORY is a locale category abbreviation, as defined in , but not LC_ALL. E.g. LC_MESSAGES. CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". Return the locale category's name, canonicalized into XPG syntax language[_territory][.codeset][@modifier] or NULL if no locale has been specified for the current thread. The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_thread (int category, const char *categoryname); /* Determine the thread-independent current locale's name, as specified by setlocale() calls or by environment variables. CATEGORY is a locale category abbreviation, as defined in , but not LC_ALL. E.g. LC_MESSAGES. CATEGORYNAME is the name of CATEGORY as a string, e.g. "LC_MESSAGES". Return the locale category's name, canonicalized into XPG syntax language[_territory][.codeset][@modifier] or NULL if no locale has been specified to setlocale() or by environment variables. The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_posix (int category, const char *categoryname); /* Determine the default locale's name, as specified by environment variables. Return the locale category's name, or NULL if no locale has been specified by environment variables. The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_environ (int category, const char *categoryname); /* Determine the default locale's name. This is the current locale's name, if not specified by uselocale() calls, by setlocale() calls, or by environment variables. This locale name is usually determined by systems settings that the user can manipulate through a GUI. Quoting POSIX:2001: "All implementations shall define a locale as the default locale, to be invoked when no environment variables are set, or set to the empty string. This default locale can be the C locale or any other implementation-defined locale. Some implementations may provide facilities for local installation administrators to set the default locale, customizing it for each location. IEEE Std 1003.1-2001 does not require such a facility." The result must not be freed; it is statically allocated. */ extern const char * gl_locale_name_default (void); #ifdef __cplusplus } #endif #endif /* _GL_LOCALENAME_H */ libidn-1.28/lib/gltests/test-setlocale2.c0000644000000000000000000000334712153706107015216 00000000000000/* Test of setting the current locale. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include #include #include #include #include int main () { /* Try to set the locale by implicitly looking at the LC_ALL environment variable. */ if (setlocale (LC_ALL, "") != NULL) /* It was successful. Check whether LC_CTYPE is non-trivial. */ if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) { fprintf (stderr, "setlocale did not fail for implicit %s\n", getenv ("LC_ALL")); return 1; } /* Reset the locale. */ if (setlocale (LC_ALL, "C") == NULL) return 1; /* Try to set the locale by explicitly looking at the LC_ALL environment variable. */ if (setlocale (LC_ALL, getenv ("LC_ALL")) != NULL) /* It was successful. Check whether LC_CTYPE is non-trivial. */ if (strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) { fprintf (stderr, "setlocale did not fail for explicit %s\n", getenv ("LC_ALL")); return 1; } return 0; } libidn-1.28/lib/gltests/inttypes.in.h0000644000000000000000000006375212153706107014503 00000000000000/* Copyright (C) 2006-2013 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* * ISO C 99 for platforms that lack it. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* Include the original if it exists, and if this file has not been included yet or if this file includes gnulib stdint.h which in turn includes this file. The include_next requires a split double-inclusion guard. */ #if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H # if @HAVE_INTTYPES_H@ /* Some pre-C++11 implementations need this. */ # if defined __cplusplus && ! defined __STDC_FORMAT_MACROS # define __STDC_FORMAT_MACROS 1 # endif # @INCLUDE_NEXT@ @NEXT_INTTYPES_H@ # endif #endif #if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H #define INTTYPES_H /* Include or the gnulib replacement. But avoid namespace pollution on glibc systems. */ #ifndef __GLIBC__ # include #endif /* Get CHAR_BIT. */ #include #if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX) # error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to ." #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* 7.8.1 Macros for format specifiers */ #if defined _TNS_R_TARGET /* Tandem NonStop R series and compatible platforms released before July 2005 support %Ld but not %lld. */ # define _LONG_LONG_FORMAT_PREFIX "L" #else # define _LONG_LONG_FORMAT_PREFIX "ll" #endif #if !defined PRId8 || @PRI_MACROS_BROKEN@ # undef PRId8 # ifdef INT8_MAX # define PRId8 "d" # endif #endif #if !defined PRIi8 || @PRI_MACROS_BROKEN@ # undef PRIi8 # ifdef INT8_MAX # define PRIi8 "i" # endif #endif #if !defined PRIo8 || @PRI_MACROS_BROKEN@ # undef PRIo8 # ifdef UINT8_MAX # define PRIo8 "o" # endif #endif #if !defined PRIu8 || @PRI_MACROS_BROKEN@ # undef PRIu8 # ifdef UINT8_MAX # define PRIu8 "u" # endif #endif #if !defined PRIx8 || @PRI_MACROS_BROKEN@ # undef PRIx8 # ifdef UINT8_MAX # define PRIx8 "x" # endif #endif #if !defined PRIX8 || @PRI_MACROS_BROKEN@ # undef PRIX8 # ifdef UINT8_MAX # define PRIX8 "X" # endif #endif #if !defined PRId16 || @PRI_MACROS_BROKEN@ # undef PRId16 # ifdef INT16_MAX # define PRId16 "d" # endif #endif #if !defined PRIi16 || @PRI_MACROS_BROKEN@ # undef PRIi16 # ifdef INT16_MAX # define PRIi16 "i" # endif #endif #if !defined PRIo16 || @PRI_MACROS_BROKEN@ # undef PRIo16 # ifdef UINT16_MAX # define PRIo16 "o" # endif #endif #if !defined PRIu16 || @PRI_MACROS_BROKEN@ # undef PRIu16 # ifdef UINT16_MAX # define PRIu16 "u" # endif #endif #if !defined PRIx16 || @PRI_MACROS_BROKEN@ # undef PRIx16 # ifdef UINT16_MAX # define PRIx16 "x" # endif #endif #if !defined PRIX16 || @PRI_MACROS_BROKEN@ # undef PRIX16 # ifdef UINT16_MAX # define PRIX16 "X" # endif #endif #if !defined PRId32 || @PRI_MACROS_BROKEN@ # undef PRId32 # ifdef INT32_MAX # define PRId32 "d" # endif #endif #if !defined PRIi32 || @PRI_MACROS_BROKEN@ # undef PRIi32 # ifdef INT32_MAX # define PRIi32 "i" # endif #endif #if !defined PRIo32 || @PRI_MACROS_BROKEN@ # undef PRIo32 # ifdef UINT32_MAX # define PRIo32 "o" # endif #endif #if !defined PRIu32 || @PRI_MACROS_BROKEN@ # undef PRIu32 # ifdef UINT32_MAX # define PRIu32 "u" # endif #endif #if !defined PRIx32 || @PRI_MACROS_BROKEN@ # undef PRIx32 # ifdef UINT32_MAX # define PRIx32 "x" # endif #endif #if !defined PRIX32 || @PRI_MACROS_BROKEN@ # undef PRIX32 # ifdef UINT32_MAX # define PRIX32 "X" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _PRI64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRI64_PREFIX "I64" # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRId64 || @PRI_MACROS_BROKEN@ # undef PRId64 # define PRId64 _PRI64_PREFIX "d" # endif # if !defined PRIi64 || @PRI_MACROS_BROKEN@ # undef PRIi64 # define PRIi64 _PRI64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _PRIu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _PRIu64_PREFIX "I64" # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined PRIo64 || @PRI_MACROS_BROKEN@ # undef PRIo64 # define PRIo64 _PRIu64_PREFIX "o" # endif # if !defined PRIu64 || @PRI_MACROS_BROKEN@ # undef PRIu64 # define PRIu64 _PRIu64_PREFIX "u" # endif # if !defined PRIx64 || @PRI_MACROS_BROKEN@ # undef PRIx64 # define PRIx64 _PRIu64_PREFIX "x" # endif # if !defined PRIX64 || @PRI_MACROS_BROKEN@ # undef PRIX64 # define PRIX64 _PRIu64_PREFIX "X" # endif #endif #if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST8 # define PRIdLEAST8 "d" #endif #if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST8 # define PRIiLEAST8 "i" #endif #if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST8 # define PRIoLEAST8 "o" #endif #if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST8 # define PRIuLEAST8 "u" #endif #if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST8 # define PRIxLEAST8 "x" #endif #if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST8 # define PRIXLEAST8 "X" #endif #if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST16 # define PRIdLEAST16 "d" #endif #if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST16 # define PRIiLEAST16 "i" #endif #if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST16 # define PRIoLEAST16 "o" #endif #if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST16 # define PRIuLEAST16 "u" #endif #if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST16 # define PRIxLEAST16 "x" #endif #if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST16 # define PRIXLEAST16 "X" #endif #if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST32 # define PRIdLEAST32 "d" #endif #if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST32 # define PRIiLEAST32 "i" #endif #if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST32 # define PRIoLEAST32 "o" #endif #if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST32 # define PRIuLEAST32 "u" #endif #if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST32 # define PRIxLEAST32 "x" #endif #if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST32 # define PRIXLEAST32 "X" #endif #ifdef INT64_MAX # if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIdLEAST64 # define PRIdLEAST64 PRId64 # endif # if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIiLEAST64 # define PRIiLEAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIoLEAST64 # define PRIoLEAST64 PRIo64 # endif # if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIuLEAST64 # define PRIuLEAST64 PRIu64 # endif # if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIxLEAST64 # define PRIxLEAST64 PRIx64 # endif # if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@ # undef PRIXLEAST64 # define PRIXLEAST64 PRIX64 # endif #endif #if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@ # undef PRIdFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIdFAST8 PRId64 # else # define PRIdFAST8 "d" # endif #endif #if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@ # undef PRIiFAST8 # if INT_FAST8_MAX > INT32_MAX # define PRIiFAST8 PRIi64 # else # define PRIiFAST8 "i" # endif #endif #if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@ # undef PRIoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIoFAST8 PRIo64 # else # define PRIoFAST8 "o" # endif #endif #if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@ # undef PRIuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIuFAST8 PRIu64 # else # define PRIuFAST8 "u" # endif #endif #if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@ # undef PRIxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIxFAST8 PRIx64 # else # define PRIxFAST8 "x" # endif #endif #if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@ # undef PRIXFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define PRIXFAST8 PRIX64 # else # define PRIXFAST8 "X" # endif #endif #if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@ # undef PRIdFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIdFAST16 PRId64 # else # define PRIdFAST16 "d" # endif #endif #if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@ # undef PRIiFAST16 # if INT_FAST16_MAX > INT32_MAX # define PRIiFAST16 PRIi64 # else # define PRIiFAST16 "i" # endif #endif #if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@ # undef PRIoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIoFAST16 PRIo64 # else # define PRIoFAST16 "o" # endif #endif #if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@ # undef PRIuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIuFAST16 PRIu64 # else # define PRIuFAST16 "u" # endif #endif #if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@ # undef PRIxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIxFAST16 PRIx64 # else # define PRIxFAST16 "x" # endif #endif #if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@ # undef PRIXFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define PRIXFAST16 PRIX64 # else # define PRIXFAST16 "X" # endif #endif #if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@ # undef PRIdFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIdFAST32 PRId64 # else # define PRIdFAST32 "d" # endif #endif #if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@ # undef PRIiFAST32 # if INT_FAST32_MAX > INT32_MAX # define PRIiFAST32 PRIi64 # else # define PRIiFAST32 "i" # endif #endif #if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@ # undef PRIoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIoFAST32 PRIo64 # else # define PRIoFAST32 "o" # endif #endif #if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@ # undef PRIuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIuFAST32 PRIu64 # else # define PRIuFAST32 "u" # endif #endif #if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@ # undef PRIxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIxFAST32 PRIx64 # else # define PRIxFAST32 "x" # endif #endif #if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@ # undef PRIXFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define PRIXFAST32 PRIX64 # else # define PRIXFAST32 "X" # endif #endif #ifdef INT64_MAX # if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@ # undef PRIdFAST64 # define PRIdFAST64 PRId64 # endif # if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@ # undef PRIiFAST64 # define PRIiFAST64 PRIi64 # endif #endif #ifdef UINT64_MAX # if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@ # undef PRIoFAST64 # define PRIoFAST64 PRIo64 # endif # if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@ # undef PRIuFAST64 # define PRIuFAST64 PRIu64 # endif # if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@ # undef PRIxFAST64 # define PRIxFAST64 PRIx64 # endif # if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@ # undef PRIXFAST64 # define PRIXFAST64 PRIX64 # endif #endif #if !defined PRIdMAX || @PRI_MACROS_BROKEN@ # undef PRIdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIdMAX PRId64 # else # define PRIdMAX "ld" # endif #endif #if !defined PRIiMAX || @PRI_MACROS_BROKEN@ # undef PRIiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define PRIiMAX PRIi64 # else # define PRIiMAX "li" # endif #endif #if !defined PRIoMAX || @PRI_MACROS_BROKEN@ # undef PRIoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIoMAX PRIo64 # else # define PRIoMAX "lo" # endif #endif #if !defined PRIuMAX || @PRI_MACROS_BROKEN@ # undef PRIuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIuMAX PRIu64 # else # define PRIuMAX "lu" # endif #endif #if !defined PRIxMAX || @PRI_MACROS_BROKEN@ # undef PRIxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIxMAX PRIx64 # else # define PRIxMAX "lx" # endif #endif #if !defined PRIXMAX || @PRI_MACROS_BROKEN@ # undef PRIXMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define PRIXMAX PRIX64 # else # define PRIXMAX "lX" # endif #endif #if !defined PRIdPTR || @PRI_MACROS_BROKEN@ # undef PRIdPTR # ifdef INTPTR_MAX # define PRIdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined PRIiPTR || @PRI_MACROS_BROKEN@ # undef PRIiPTR # ifdef INTPTR_MAX # define PRIiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined PRIoPTR || @PRI_MACROS_BROKEN@ # undef PRIoPTR # ifdef UINTPTR_MAX # define PRIoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined PRIuPTR || @PRI_MACROS_BROKEN@ # undef PRIuPTR # ifdef UINTPTR_MAX # define PRIuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined PRIxPTR || @PRI_MACROS_BROKEN@ # undef PRIxPTR # ifdef UINTPTR_MAX # define PRIxPTR @PRIPTR_PREFIX@ "x" # endif #endif #if !defined PRIXPTR || @PRI_MACROS_BROKEN@ # undef PRIXPTR # ifdef UINTPTR_MAX # define PRIXPTR @PRIPTR_PREFIX@ "X" # endif #endif #if !defined SCNd8 || @PRI_MACROS_BROKEN@ # undef SCNd8 # ifdef INT8_MAX # define SCNd8 "hhd" # endif #endif #if !defined SCNi8 || @PRI_MACROS_BROKEN@ # undef SCNi8 # ifdef INT8_MAX # define SCNi8 "hhi" # endif #endif #if !defined SCNo8 || @PRI_MACROS_BROKEN@ # undef SCNo8 # ifdef UINT8_MAX # define SCNo8 "hho" # endif #endif #if !defined SCNu8 || @PRI_MACROS_BROKEN@ # undef SCNu8 # ifdef UINT8_MAX # define SCNu8 "hhu" # endif #endif #if !defined SCNx8 || @PRI_MACROS_BROKEN@ # undef SCNx8 # ifdef UINT8_MAX # define SCNx8 "hhx" # endif #endif #if !defined SCNd16 || @PRI_MACROS_BROKEN@ # undef SCNd16 # ifdef INT16_MAX # define SCNd16 "hd" # endif #endif #if !defined SCNi16 || @PRI_MACROS_BROKEN@ # undef SCNi16 # ifdef INT16_MAX # define SCNi16 "hi" # endif #endif #if !defined SCNo16 || @PRI_MACROS_BROKEN@ # undef SCNo16 # ifdef UINT16_MAX # define SCNo16 "ho" # endif #endif #if !defined SCNu16 || @PRI_MACROS_BROKEN@ # undef SCNu16 # ifdef UINT16_MAX # define SCNu16 "hu" # endif #endif #if !defined SCNx16 || @PRI_MACROS_BROKEN@ # undef SCNx16 # ifdef UINT16_MAX # define SCNx16 "hx" # endif #endif #if !defined SCNd32 || @PRI_MACROS_BROKEN@ # undef SCNd32 # ifdef INT32_MAX # define SCNd32 "d" # endif #endif #if !defined SCNi32 || @PRI_MACROS_BROKEN@ # undef SCNi32 # ifdef INT32_MAX # define SCNi32 "i" # endif #endif #if !defined SCNo32 || @PRI_MACROS_BROKEN@ # undef SCNo32 # ifdef UINT32_MAX # define SCNo32 "o" # endif #endif #if !defined SCNu32 || @PRI_MACROS_BROKEN@ # undef SCNu32 # ifdef UINT32_MAX # define SCNu32 "u" # endif #endif #if !defined SCNx32 || @PRI_MACROS_BROKEN@ # undef SCNx32 # ifdef UINT32_MAX # define SCNx32 "x" # endif #endif #ifdef INT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @INT64_MAX_EQ_LONG_MAX@) # define _SCN64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCN64_PREFIX "I64" # elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNd64 || @PRI_MACROS_BROKEN@ # undef SCNd64 # define SCNd64 _SCN64_PREFIX "d" # endif # if !defined SCNi64 || @PRI_MACROS_BROKEN@ # undef SCNi64 # define SCNi64 _SCN64_PREFIX "i" # endif #endif #ifdef UINT64_MAX # if (@APPLE_UNIVERSAL_BUILD@ ? defined _LP64 : @UINT64_MAX_EQ_ULONG_MAX@) # define _SCNu64_PREFIX "l" # elif defined _MSC_VER || defined __MINGW32__ # define _SCNu64_PREFIX "I64" # elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX # endif # if !defined SCNo64 || @PRI_MACROS_BROKEN@ # undef SCNo64 # define SCNo64 _SCNu64_PREFIX "o" # endif # if !defined SCNu64 || @PRI_MACROS_BROKEN@ # undef SCNu64 # define SCNu64 _SCNu64_PREFIX "u" # endif # if !defined SCNx64 || @PRI_MACROS_BROKEN@ # undef SCNx64 # define SCNx64 _SCNu64_PREFIX "x" # endif #endif #if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST8 # define SCNdLEAST8 "hhd" #endif #if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST8 # define SCNiLEAST8 "hhi" #endif #if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST8 # define SCNoLEAST8 "hho" #endif #if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST8 # define SCNuLEAST8 "hhu" #endif #if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST8 # define SCNxLEAST8 "hhx" #endif #if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST16 # define SCNdLEAST16 "hd" #endif #if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST16 # define SCNiLEAST16 "hi" #endif #if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST16 # define SCNoLEAST16 "ho" #endif #if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST16 # define SCNuLEAST16 "hu" #endif #if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST16 # define SCNxLEAST16 "hx" #endif #if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST32 # define SCNdLEAST32 "d" #endif #if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST32 # define SCNiLEAST32 "i" #endif #if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST32 # define SCNoLEAST32 "o" #endif #if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST32 # define SCNuLEAST32 "u" #endif #if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST32 # define SCNxLEAST32 "x" #endif #ifdef INT64_MAX # if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNdLEAST64 # define SCNdLEAST64 SCNd64 # endif # if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNiLEAST64 # define SCNiLEAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNoLEAST64 # define SCNoLEAST64 SCNo64 # endif # if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNuLEAST64 # define SCNuLEAST64 SCNu64 # endif # if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@ # undef SCNxLEAST64 # define SCNxLEAST64 SCNx64 # endif #endif #if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@ # undef SCNdFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNdFAST8 SCNd64 # elif INT_FAST8_MAX == 0x7fff # define SCNdFAST8 "hd" # elif INT_FAST8_MAX == 0x7f # define SCNdFAST8 "hhd" # else # define SCNdFAST8 "d" # endif #endif #if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@ # undef SCNiFAST8 # if INT_FAST8_MAX > INT32_MAX # define SCNiFAST8 SCNi64 # elif INT_FAST8_MAX == 0x7fff # define SCNiFAST8 "hi" # elif INT_FAST8_MAX == 0x7f # define SCNiFAST8 "hhi" # else # define SCNiFAST8 "i" # endif #endif #if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@ # undef SCNoFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNoFAST8 SCNo64 # elif UINT_FAST8_MAX == 0xffff # define SCNoFAST8 "ho" # elif UINT_FAST8_MAX == 0xff # define SCNoFAST8 "hho" # else # define SCNoFAST8 "o" # endif #endif #if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@ # undef SCNuFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNuFAST8 SCNu64 # elif UINT_FAST8_MAX == 0xffff # define SCNuFAST8 "hu" # elif UINT_FAST8_MAX == 0xff # define SCNuFAST8 "hhu" # else # define SCNuFAST8 "u" # endif #endif #if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@ # undef SCNxFAST8 # if UINT_FAST8_MAX > UINT32_MAX # define SCNxFAST8 SCNx64 # elif UINT_FAST8_MAX == 0xffff # define SCNxFAST8 "hx" # elif UINT_FAST8_MAX == 0xff # define SCNxFAST8 "hhx" # else # define SCNxFAST8 "x" # endif #endif #if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@ # undef SCNdFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNdFAST16 SCNd64 # elif INT_FAST16_MAX == 0x7fff # define SCNdFAST16 "hd" # else # define SCNdFAST16 "d" # endif #endif #if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@ # undef SCNiFAST16 # if INT_FAST16_MAX > INT32_MAX # define SCNiFAST16 SCNi64 # elif INT_FAST16_MAX == 0x7fff # define SCNiFAST16 "hi" # else # define SCNiFAST16 "i" # endif #endif #if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@ # undef SCNoFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNoFAST16 SCNo64 # elif UINT_FAST16_MAX == 0xffff # define SCNoFAST16 "ho" # else # define SCNoFAST16 "o" # endif #endif #if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@ # undef SCNuFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNuFAST16 SCNu64 # elif UINT_FAST16_MAX == 0xffff # define SCNuFAST16 "hu" # else # define SCNuFAST16 "u" # endif #endif #if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@ # undef SCNxFAST16 # if UINT_FAST16_MAX > UINT32_MAX # define SCNxFAST16 SCNx64 # elif UINT_FAST16_MAX == 0xffff # define SCNxFAST16 "hx" # else # define SCNxFAST16 "x" # endif #endif #if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@ # undef SCNdFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNdFAST32 SCNd64 # else # define SCNdFAST32 "d" # endif #endif #if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@ # undef SCNiFAST32 # if INT_FAST32_MAX > INT32_MAX # define SCNiFAST32 SCNi64 # else # define SCNiFAST32 "i" # endif #endif #if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@ # undef SCNoFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNoFAST32 SCNo64 # else # define SCNoFAST32 "o" # endif #endif #if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@ # undef SCNuFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNuFAST32 SCNu64 # else # define SCNuFAST32 "u" # endif #endif #if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@ # undef SCNxFAST32 # if UINT_FAST32_MAX > UINT32_MAX # define SCNxFAST32 SCNx64 # else # define SCNxFAST32 "x" # endif #endif #ifdef INT64_MAX # if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@ # undef SCNdFAST64 # define SCNdFAST64 SCNd64 # endif # if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@ # undef SCNiFAST64 # define SCNiFAST64 SCNi64 # endif #endif #ifdef UINT64_MAX # if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@ # undef SCNoFAST64 # define SCNoFAST64 SCNo64 # endif # if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@ # undef SCNuFAST64 # define SCNuFAST64 SCNu64 # endif # if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@ # undef SCNxFAST64 # define SCNxFAST64 SCNx64 # endif #endif #if !defined SCNdMAX || @PRI_MACROS_BROKEN@ # undef SCNdMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNdMAX SCNd64 # else # define SCNdMAX "ld" # endif #endif #if !defined SCNiMAX || @PRI_MACROS_BROKEN@ # undef SCNiMAX # if @INT32_MAX_LT_INTMAX_MAX@ # define SCNiMAX SCNi64 # else # define SCNiMAX "li" # endif #endif #if !defined SCNoMAX || @PRI_MACROS_BROKEN@ # undef SCNoMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNoMAX SCNo64 # else # define SCNoMAX "lo" # endif #endif #if !defined SCNuMAX || @PRI_MACROS_BROKEN@ # undef SCNuMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNuMAX SCNu64 # else # define SCNuMAX "lu" # endif #endif #if !defined SCNxMAX || @PRI_MACROS_BROKEN@ # undef SCNxMAX # if @UINT32_MAX_LT_UINTMAX_MAX@ # define SCNxMAX SCNx64 # else # define SCNxMAX "lx" # endif #endif #if !defined SCNdPTR || @PRI_MACROS_BROKEN@ # undef SCNdPTR # ifdef INTPTR_MAX # define SCNdPTR @PRIPTR_PREFIX@ "d" # endif #endif #if !defined SCNiPTR || @PRI_MACROS_BROKEN@ # undef SCNiPTR # ifdef INTPTR_MAX # define SCNiPTR @PRIPTR_PREFIX@ "i" # endif #endif #if !defined SCNoPTR || @PRI_MACROS_BROKEN@ # undef SCNoPTR # ifdef UINTPTR_MAX # define SCNoPTR @PRIPTR_PREFIX@ "o" # endif #endif #if !defined SCNuPTR || @PRI_MACROS_BROKEN@ # undef SCNuPTR # ifdef UINTPTR_MAX # define SCNuPTR @PRIPTR_PREFIX@ "u" # endif #endif #if !defined SCNxPTR || @PRI_MACROS_BROKEN@ # undef SCNxPTR # ifdef UINTPTR_MAX # define SCNxPTR @PRIPTR_PREFIX@ "x" # endif #endif /* 7.8.2 Functions for greatest-width integer types */ #ifdef __cplusplus extern "C" { #endif #if @GNULIB_IMAXABS@ # if !@HAVE_DECL_IMAXABS@ extern intmax_t imaxabs (intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxabs # if HAVE_RAW_DECL_IMAXABS _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " "use gnulib module imaxabs for portability"); # endif #endif #if @GNULIB_IMAXDIV@ # if !@HAVE_DECL_IMAXDIV@ # if !GNULIB_defined_imaxdiv_t typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; # define GNULIB_defined_imaxdiv_t 1 # endif extern imaxdiv_t imaxdiv (intmax_t, intmax_t); # endif #elif defined GNULIB_POSIXCHECK # undef imaxdiv # if HAVE_RAW_DECL_IMAXDIV _GL_WARN_ON_USE (imaxdiv, "imaxdiv is unportable - " "use gnulib module imaxdiv for portability"); # endif #endif #if @GNULIB_STRTOIMAX@ # if @REPLACE_STRTOIMAX@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtoimax # define strtoimax rpl_strtoimax # endif _GL_FUNCDECL_RPL (strtoimax, intmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int)); # else # if !@HAVE_DECL_STRTOIMAX@ # undef strtoimax _GL_FUNCDECL_SYS (strtoimax, intmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int)); # endif _GL_CXXALIASWARN (strtoimax); #elif defined GNULIB_POSIXCHECK # undef strtoimax # if HAVE_RAW_DECL_STRTOIMAX _GL_WARN_ON_USE (strtoimax, "strtoimax is unportable - " "use gnulib module strtoimax for portability"); # endif #endif #if @GNULIB_STRTOUMAX@ # if !@HAVE_DECL_STRTOUMAX@ # undef strtoumax _GL_FUNCDECL_SYS (strtoumax, uintmax_t, (const char *, char **, int) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int)); _GL_CXXALIASWARN (strtoumax); #elif defined GNULIB_POSIXCHECK # undef strtoumax # if HAVE_RAW_DECL_STRTOUMAX _GL_WARN_ON_USE (strtoumax, "strtoumax is unportable - " "use gnulib module strtoumax for portability"); # endif #endif /* Don't bother defining or declaring wcstoimax and wcstoumax, since wide-character functions like this are hardly ever useful. */ #ifdef __cplusplus } #endif #endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */ libidn-1.28/lib/gltests/test-strverscmp.c0000644000000000000000000000270012153706107015361 00000000000000/* Test of strverscmp() function. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Eric Blake , 2008. */ #include #include #include "signature.h" SIGNATURE_CHECK (strverscmp, int, (const char *, const char *)); #include "macros.h" int main (void) { ASSERT (strverscmp ("", "") == 0); ASSERT (strverscmp ("a", "a") == 0); ASSERT (strverscmp ("a", "b") < 0); ASSERT (strverscmp ("b", "a") > 0); ASSERT (strverscmp ("000", "00") < 0); ASSERT (strverscmp ("00", "000") > 0); ASSERT (strverscmp ("a0", "a") > 0); ASSERT (strverscmp ("00", "01") < 0); ASSERT (strverscmp ("01", "010") < 0); ASSERT (strverscmp ("010", "09") < 0); ASSERT (strverscmp ("09", "0") < 0); ASSERT (strverscmp ("9", "10") < 0); ASSERT (strverscmp ("0a", "0") > 0); return 0; } libidn-1.28/lib/gltests/verify.h0000644000000000000000000002354412166505351013520 00000000000000/* Compile-time assert-like macros. Copyright (C) 2005-2006, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert, Bruno Haible, and Jim Meyering. */ #ifndef _GL_VERIFY_H #define _GL_VERIFY_H /* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11. This is supported by GCC 4.6.0 and later, in C mode, and its use here generates easier-to-read diagnostics when verify (R) fails. Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11. This will likely be supported by future GCC versions, in C++ mode. Use this only with GCC. If we were willing to slow 'configure' down we could also use it with other compilers, but since this affects only the quality of diagnostics, why bother? */ #if (4 < __GNUC__ + (6 <= __GNUC_MINOR__) \ && (201112L <= __STDC_VERSION__ || !defined __STRICT_ANSI__) \ && !defined __cplusplus) # define _GL_HAVE__STATIC_ASSERT 1 #endif /* The condition (99 < __GNUC__) is temporary, until we know about the first G++ release that supports static_assert. */ #if (99 < __GNUC__) && defined __cplusplus # define _GL_HAVE_STATIC_ASSERT 1 #endif /* FreeBSD 9.1 , included by and lots of other system headers, defines a conflicting _Static_assert that is no better than ours; override it. */ #ifndef _GL_HAVE_STATIC_ASSERT # include # undef _Static_assert #endif /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. If _Static_assert works, verify (R) uses it directly. Similarly, _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct that is an operand of sizeof. The code below uses several ideas for C++ compilers, and for C compilers that do not support _Static_assert: * The first step is ((R) ? 1 : -1). Given an expression R, of integral or boolean or floating-point type, this yields an expression of integral type, whose value is later verified to be constant and nonnegative. * Next this expression W is wrapped in a type struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: W; }. If W is negative, this yields a compile-time error. No compiler can deal with a bit-field of negative size. One might think that an array size check would have the same effect, that is, that the type struct { unsigned int dummy[W]; } would work as well. However, inside a function, some compilers (such as C++ compilers and GNU C) allow local parameters and variables inside array size expressions. With these compilers, an array size check would not properly diagnose this misuse of the verify macro: void function (int n) { verify (n < 0); } * For the verify macro, the struct _gl_verify_type will need to somehow be embedded into a declaration. To be portable, this declaration must declare an object, a constant, a function, or a typedef name. If the declared entity uses the type directly, such as in struct dummy {...}; typedef struct {...} dummy; extern struct {...} *dummy; extern void dummy (struct {...} *); extern struct {...} *dummy (void); two uses of the verify macro would yield colliding declarations if the entity names are not disambiguated. A workaround is to attach the current line number to the entity name: #define _GL_CONCAT0(x, y) x##y #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) extern struct {...} * _GL_CONCAT (dummy, __LINE__); But this has the problem that two invocations of verify from within the same macro would collide, since the __LINE__ value would be the same for both invocations. (The GCC __COUNTER__ macro solves this problem, but is not portable.) A solution is to use the sizeof operator. It yields a number, getting rid of the identity of the type. Declarations like extern int dummy [sizeof (struct {...})]; extern void dummy (int [sizeof (struct {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; can be repeated. * Should the implementation use a named struct or an unnamed struct? Which of the following alternatives can be used? extern int dummy [sizeof (struct {...})]; extern int dummy [sizeof (struct _gl_verify_type {...})]; extern void dummy (int [sizeof (struct {...})]); extern void dummy (int [sizeof (struct _gl_verify_type {...})]); extern int (*dummy (void)) [sizeof (struct {...})]; extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})]; In the second and sixth case, the struct type is exported to the outer scope; two such declarations therefore collide. GCC warns about the first, third, and fourth cases. So the only remaining possibility is the fifth case: extern int (*dummy (void)) [sizeof (struct {...})]; * GCC warns about duplicate declarations of the dummy function if -Wredundant-decls is used. GCC 4.3 and later have a builtin __COUNTER__ macro that can let us generate unique identifiers for each dummy function, to suppress this warning. * This implementation exploits the fact that older versions of GCC, which do not support _Static_assert, also do not warn about the last declaration mentioned above. * GCC warns if -Wnested-externs is enabled and verify() is used within a function body; but inside a function, you can always arrange to use verify_expr() instead. * In C++, any struct definition inside sizeof is invalid. Use a template type to work around the problem. */ /* Concatenate two preprocessor tokens. */ #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y) #define _GL_CONCAT0(x, y) x##y /* _GL_COUNTER is an integer, preferably one that changes each time we use it. Use __COUNTER__ if it works, falling back on __LINE__ otherwise. __LINE__ isn't perfect, but it's better than a constant. */ #if defined __COUNTER__ && __COUNTER__ != __COUNTER__ # define _GL_COUNTER __COUNTER__ #else # define _GL_COUNTER __LINE__ #endif /* Generate a symbol with the given prefix, making it unique if possible. */ #define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER) /* Verify requirement R at compile-time, as an integer constant expression that returns 1. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. */ #define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC))) #ifdef __cplusplus # if !GNULIB_defined_struct__gl_verify_type template struct _gl_verify_type { unsigned int _gl_verify_error_if_negative: w; }; # define GNULIB_defined_struct__gl_verify_type 1 # endif # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ _gl_verify_type<(R) ? 1 : -1> #elif defined _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { \ _Static_assert (R, DIAGNOSTIC); \ int _gl_dummy; \ } #else # define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; } #endif /* Verify requirement R at compile-time, as a declaration without a trailing ';'. If R is false, fail at compile-time, preferably with a diagnostic that includes the string-literal DIAGNOSTIC. Unfortunately, unlike C11, this implementation must appear as an ordinary declaration, and cannot appear inside struct { ... }. */ #ifdef _GL_HAVE__STATIC_ASSERT # define _GL_VERIFY _Static_assert #else # define _GL_VERIFY(R, DIAGNOSTIC) \ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)] #endif /* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */ #ifdef _GL_STATIC_ASSERT_H # if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert # define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC) # endif # if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert # define static_assert _Static_assert /* C11 requires this #define. */ # endif #endif /* @assert.h omit start@ */ /* Each of these macros verifies that its argument R is nonzero. To be portable, R should be an integer constant expression. Unlike assert (R), there is no run-time overhead. There are two macros, since no single macro can be used in all contexts in C. verify_true (R) is for scalar contexts, including integer constant expression contexts. verify (R) is for declaration contexts, e.g., the top level. */ /* Verify requirement R at compile-time, as an integer constant expression. Return 1. This is equivalent to verify_expr (R, 1). verify_true is obsolescent; please use verify_expr instead. */ #define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")") /* Verify requirement R at compile-time. Return the value of the expression E. */ #define verify_expr(R, E) \ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E)) /* Verify requirement R at compile-time, as a declaration without a trailing ';'. */ #define verify(R) _GL_VERIFY (R, "verify (" #R ")") /* @assert.h omit end@ */ #endif libidn-1.28/lib/gltests/test-environ.c0000644000000000000000000000272712153706107014642 00000000000000/* Test of environ variable. Copyright (C) 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2008. */ #include #include #include int main () { /* The environment variables that are set even in the weirdest situations are HOME and PATH. POSIX says that HOME is initialized by the system, and that PATH may be unset. But in practice it's more frequent to see HOME unset and PATH set. So we test the presence of PATH. */ char **remaining_variables = environ; char *string; for (; (string = *remaining_variables) != NULL; remaining_variables++) { if (strncmp (string, "PATH=", 5) == 0) /* Found the PATH environment variable. */ return 0; } /* Failed to find the PATH environment variable. */ return 1; } libidn-1.28/lib/gltests/test-stdlib.c0000644000000000000000000000262412153706107014437 00000000000000/* Test of substitute. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #include "verify.h" /* Check that EXIT_SUCCESS is 0, per POSIX. */ static int exitcode = EXIT_SUCCESS; #if EXIT_SUCCESS "oops" #endif /* Check for GNU value (not guaranteed by POSIX, but is guaranteed by gnulib). */ #if EXIT_FAILURE != 1 "oops" #endif /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); #if GNULIB_TEST_SYSTEM_POSIX # include "test-sys_wait.h" #else # define test_sys_wait_macros() 0 #endif int main (void) { if (test_sys_wait_macros ()) return 1; return exitcode; } libidn-1.28/lib/gltests/test-alloca-opt.c0000644000000000000000000000276212153706107015214 00000000000000/* Test of optional automatic memory allocation. Copyright (C) 2005, 2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include #if HAVE_ALLOCA static void do_allocation (int n) { void *ptr = alloca (n); (void) ptr; } void (*func) (int) = do_allocation; #endif int main () { #if HAVE_ALLOCA int i; /* Repeat a lot of times, to make sure there's no memory leak. */ for (i = 0; i < 100000; i++) { /* Try various values. n = 0 gave a crash on Alpha with gcc-2.5.8. Some versions of Mac OS X have a stack size limit of 512 KB. */ func (34); func (134); func (399); func (510823); func (129321); func (0); func (4070); func (4095); func (1); func (16582); } #endif return 0; } libidn-1.28/lib/gltests/test-c-strcasecmp.c0000644000000000000000000000414412153706107015541 00000000000000/* Test of case-insensitive string comparison function. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include "c-strcase.h" #include #include #include "macros.h" int main (int argc, char *argv[]) { if (argc > 1) { /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; } ASSERT (c_strcasecmp ("paragraph", "Paragraph") == 0); ASSERT (c_strcasecmp ("paragrapH", "parAgRaph") == 0); ASSERT (c_strcasecmp ("paragraph", "paraLyzed") < 0); ASSERT (c_strcasecmp ("paraLyzed", "paragraph") > 0); ASSERT (c_strcasecmp ("para", "paragraph") < 0); ASSERT (c_strcasecmp ("paragraph", "para") > 0); /* The following tests shows how c_strcasecmp() is different from strcasecmp(). */ ASSERT (c_strcasecmp ("\311mile", "\351mile") < 0); ASSERT (c_strcasecmp ("\351mile", "\311mile") > 0); /* The following tests shows how c_strcasecmp() is different from mbscasecmp(). */ ASSERT (c_strcasecmp ("\303\266zg\303\274r", "\303\226ZG\303\234R") > 0); /* özgür */ ASSERT (c_strcasecmp ("\303\226ZG\303\234R", "\303\266zg\303\274r") < 0); /* özgür */ /* This test shows how strings of different size cannot compare equal. */ ASSERT (c_strcasecmp ("turkish", "TURK\304\260SH") < 0); ASSERT (c_strcasecmp ("TURK\304\260SH", "turkish") > 0); return 0; } libidn-1.28/lib/gltests/test-c-strncasecmp.c0000644000000000000000000000573212153706107015723 00000000000000/* Test of case-insensitive string comparison function. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include "c-strcase.h" #include #include #include "macros.h" int main (int argc, char *argv[]) { if (argc > 1) { /* configure should already have checked that the locale is supported. */ if (setlocale (LC_ALL, "") == NULL) return 1; } ASSERT (c_strncasecmp ("paragraph", "Paragraph", 1000000) == 0); ASSERT (c_strncasecmp ("paragraph", "Paragraph", 9) == 0); ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 1000000) == 0); ASSERT (c_strncasecmp ("paragrapH", "parAgRaph", 9) == 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 10) < 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 9) < 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 5) < 0); ASSERT (c_strncasecmp ("paragraph", "paraLyzed", 4) == 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 10) > 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 9) > 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 5) > 0); ASSERT (c_strncasecmp ("paraLyzed", "paragraph", 4) == 0); ASSERT (c_strncasecmp ("para", "paragraph", 10) < 0); ASSERT (c_strncasecmp ("para", "paragraph", 9) < 0); ASSERT (c_strncasecmp ("para", "paragraph", 5) < 0); ASSERT (c_strncasecmp ("para", "paragraph", 4) == 0); ASSERT (c_strncasecmp ("paragraph", "para", 10) > 0); ASSERT (c_strncasecmp ("paragraph", "para", 9) > 0); ASSERT (c_strncasecmp ("paragraph", "para", 5) > 0); ASSERT (c_strncasecmp ("paragraph", "para", 4) == 0); /* The following tests shows how c_strncasecmp() is different from strncasecmp(). */ ASSERT (c_strncasecmp ("\311mily", "\351mile", 4) < 0); ASSERT (c_strncasecmp ("\351mile", "\311mily", 4) > 0); /* The following tests shows how c_strncasecmp() is different from mbsncasecmp(). */ ASSERT (c_strncasecmp ("\303\266zg\303\274r", "\303\226ZG\303\234R", 99) > 0); /* özgür */ ASSERT (c_strncasecmp ("\303\226ZG\303\234R", "\303\266zg\303\274r", 99) < 0); /* özgür */ /* This test shows how strings of different size cannot compare equal. */ ASSERT (c_strncasecmp ("turkish", "TURK\304\260SH", 7) < 0); ASSERT (c_strncasecmp ("TURK\304\260SH", "turkish", 7) > 0); return 0; } libidn-1.28/lib/gltests/glthread/0000755000000000000000000000000012167253754013715 500000000000000libidn-1.28/lib/gltests/glthread/thread.c0000644000000000000000000001424312153706107015242 00000000000000/* Creating and controlling threads. Copyright (C) 2005-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ #include /* Specification. */ # define _GLTHREAD_THREAD_INLINE _GL_EXTERN_INLINE #include "glthread/thread.h" #include #include "glthread/lock.h" /* ========================================================================= */ #if USE_POSIX_THREADS #include #ifdef PTW32_VERSION const gl_thread_t gl_null_thread /* = { .p = NULL } */; #endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS #include /* -------------------------- gl_thread_t datatype -------------------------- */ /* The Thread-Local Storage (TLS) key that allows to access each thread's 'struct gl_thread_struct *' pointer. */ static DWORD self_key = (DWORD)-1; /* Initializes self_key. This function must only be called once. */ static void do_init_self_key (void) { self_key = TlsAlloc (); /* If this fails, we're hosed. */ if (self_key == (DWORD)-1) abort (); } /* Initializes self_key. */ static void init_self_key (void) { gl_once_define(static, once) gl_once (once, do_init_self_key); } /* This structure contains information about a thread. It is stored in TLS under key self_key. */ struct gl_thread_struct { /* Fields for managing the handle. */ HANDLE volatile handle; CRITICAL_SECTION handle_lock; /* Fields for managing the exit value. */ void * volatile result; /* Fields for managing the thread start. */ void * (*func) (void *); void *arg; }; /* Return a real HANDLE object for the current thread. */ static HANDLE get_current_thread_handle (void) { HANDLE this_handle; /* GetCurrentThread() returns a pseudo-handle, i.e. only a symbolic identifier, not a real handle. */ if (!DuplicateHandle (GetCurrentProcess (), GetCurrentThread (), GetCurrentProcess (), &this_handle, 0, FALSE, DUPLICATE_SAME_ACCESS)) abort (); return this_handle; } gl_thread_t gl_thread_self_func (void) { gl_thread_t thread; if (self_key == (DWORD)-1) init_self_key (); thread = TlsGetValue (self_key); if (thread == NULL) { /* This happens only in threads that have not been created through glthread_create(), such as the main thread. */ for (;;) { thread = (struct gl_thread_struct *) malloc (sizeof (struct gl_thread_struct)); if (thread != NULL) break; /* Memory allocation failed. There is not much we can do. Have to busy-loop, waiting for the availability of memory. */ Sleep (1); } thread->handle = get_current_thread_handle (); InitializeCriticalSection (&thread->handle_lock); thread->result = NULL; /* just to be deterministic */ TlsSetValue (self_key, thread); } return thread; } /* The main function of a freshly creating thread. It's a wrapper around the FUNC and ARG arguments passed to glthread_create_func. */ static unsigned int WINAPI wrapper_func (void *varg) { struct gl_thread_struct *thread = (struct gl_thread_struct *)varg; EnterCriticalSection (&thread->handle_lock); /* Create a new handle for the thread only if the parent thread did not yet fill in the handle. */ if (thread->handle == NULL) thread->handle = get_current_thread_handle (); LeaveCriticalSection (&thread->handle_lock); if (self_key == (DWORD)-1) init_self_key (); TlsSetValue (self_key, thread); /* Run the thread. Store the exit value if the thread was not terminated otherwise. */ thread->result = thread->func (thread->arg); return 0; } int glthread_create_func (gl_thread_t *threadp, void * (*func) (void *), void *arg) { struct gl_thread_struct *thread = (struct gl_thread_struct *) malloc (sizeof (struct gl_thread_struct)); if (thread == NULL) return ENOMEM; thread->handle = NULL; InitializeCriticalSection (&thread->handle_lock); thread->result = NULL; /* just to be deterministic */ thread->func = func; thread->arg = arg; { unsigned int thread_id; HANDLE thread_handle; thread_handle = (HANDLE) _beginthreadex (NULL, 100000, wrapper_func, thread, 0, &thread_id); /* calls CreateThread with the same arguments */ if (thread_handle == NULL) { DeleteCriticalSection (&thread->handle_lock); free (thread); return EAGAIN; } EnterCriticalSection (&thread->handle_lock); if (thread->handle == NULL) thread->handle = thread_handle; else /* thread->handle was already set by the thread itself. */ CloseHandle (thread_handle); LeaveCriticalSection (&thread->handle_lock); *threadp = thread; return 0; } } int glthread_join_func (gl_thread_t thread, void **retvalp) { if (thread == NULL) return EINVAL; if (thread == gl_thread_self ()) return EDEADLK; if (WaitForSingleObject (thread->handle, INFINITE) == WAIT_FAILED) return EINVAL; if (retvalp != NULL) *retvalp = thread->result; DeleteCriticalSection (&thread->handle_lock); CloseHandle (thread->handle); free (thread); return 0; } int gl_thread_exit_func (void *retval) { gl_thread_t thread = gl_thread_self (); thread->result = retval; _endthreadex (0); /* calls ExitThread (0) */ abort (); } #endif /* ========================================================================= */ libidn-1.28/lib/gltests/glthread/thread.h0000644000000000000000000003130712153706107015247 00000000000000/* Creating and controlling threads. Copyright (C) 2005-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ /* This file contains primitives for creating and controlling threads. Thread data type: gl_thread_t. Creating a thread: thread = gl_thread_create (func, arg); Or with control of error handling: err = glthread_create (&thread, func, arg); extern int glthread_create (gl_thread_t *result, void *(*func) (void *), void *arg); Querying and changing the signal mask of a thread (not supported on all platforms): gl_thread_sigmask (how, newmask, oldmask); Or with control of error handling: err = glthread_sigmask (how, newmask, oldmask); extern int glthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask); Waiting for termination of another thread: gl_thread_join (thread, &return_value); Or with control of error handling: err = glthread_join (thread, &return_value); extern int glthread_join (gl_thread_t thread, void **return_value_ptr); Getting a reference to the current thread: current = gl_thread_self (); extern gl_thread_t gl_thread_self (void); Getting a reference to the current thread as a pointer, for debugging: ptr = gl_thread_self_pointer (); extern void * gl_thread_self_pointer (void); Terminating the current thread: gl_thread_exit (return_value); extern _Noreturn void gl_thread_exit (void *return_value); Requesting custom code to be executed at fork() time(not supported on all platforms): gl_thread_atfork (prepare_func, parent_func, child_func); Or with control of error handling: err = glthread_atfork (prepare_func, parent_func, child_func); extern int glthread_atfork (void (*prepare_func) (void), void (*parent_func) (void), void (*child_func) (void)); Note that even on platforms where this is supported, use of fork() and threads together is problematic, see */ #ifndef _GLTHREAD_THREAD_H #define _GLTHREAD_THREAD_H #include #include _GL_INLINE_HEADER_BEGIN #ifndef _GLTHREAD_THREAD_INLINE # define _GLTHREAD_THREAD_INLINE _GL_INLINE #endif /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_create # ifdef __clang__ /* Without this, clang complains that pthread_sigmask is never declared. */ # include # endif # pragma weak pthread_sigmask # pragma weak pthread_join # ifndef pthread_self # pragma weak pthread_self # endif # pragma weak pthread_exit # if HAVE_PTHREAD_ATFORK # pragma weak pthread_atfork # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_cancel # define pthread_in_use() (pthread_cancel != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_thread_t datatype -------------------------- */ /* This choice of gl_thread_t assumes that pthread_equal (a, b) is equivalent to ((a) == (b)). This is the case on all platforms in use in 2008. */ typedef pthread_t gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ (pthread_in_use () ? pthread_create (THREADP, NULL, FUNC, ARG) : ENOSYS) # define glthread_sigmask(HOW, SET, OSET) \ (pthread_in_use () ? pthread_sigmask (HOW, SET, OSET) : 0) # define glthread_join(THREAD, RETVALP) \ (pthread_in_use () ? pthread_join (THREAD, RETVALP) : 0) # ifdef PTW32_VERSION /* In pthreads-win32, pthread_t is a struct with a pointer field 'p' and other fields. */ # define gl_thread_self() \ (pthread_in_use () ? pthread_self () : gl_null_thread) # define gl_thread_self_pointer() \ (pthread_in_use () ? pthread_self ().p : NULL) extern const gl_thread_t gl_null_thread; # else # define gl_thread_self() \ (pthread_in_use () ? pthread_self () : (pthread_t) NULL) # define gl_thread_self_pointer() \ (pthread_in_use () ? (void *) pthread_self () : NULL) # endif # define gl_thread_exit(RETVAL) \ (pthread_in_use () ? pthread_exit (RETVAL) : 0) # if HAVE_PTHREAD_ATFORK # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) \ (pthread_in_use () ? pthread_atfork (PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) : 0) # else # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 # endif # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_spawn # pragma weak pth_sigmask # pragma weak pth_join # pragma weak pth_self # pragma weak pth_exit # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_thread_t datatype -------------------------- */ typedef pth_t gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ (pth_in_use () ? ((*(THREADP) = pth_spawn (NULL, FUNC, ARG)) ? 0 : errno) : 0) # define glthread_sigmask(HOW, SET, OSET) \ (pth_in_use () && !pth_sigmask (HOW, SET, OSET) ? errno : 0) # define glthread_join(THREAD, RETVALP) \ (pth_in_use () && !pth_join (THREAD, RETVALP) ? errno : 0) # define gl_thread_self() \ (pth_in_use () ? (void *) pth_self () : NULL) # define gl_thread_self_pointer() \ gl_thread_self () # define gl_thread_exit(RETVAL) \ (pth_in_use () ? pth_exit (RETVAL) : 0) # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak thr_create # pragma weak thr_join # pragma weak thr_self # pragma weak thr_exit # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_thread_t datatype -------------------------- */ typedef thread_t gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ (thread_in_use () ? thr_create (NULL, 0, FUNC, ARG, 0, THREADP) : 0) # define glthread_sigmask(HOW, SET, OSET) \ (thread_in_use () ? sigprocmask (HOW, SET, OSET) : 0) # define glthread_join(THREAD, RETVALP) \ (thread_in_use () ? thr_join (THREAD, NULL, RETVALP) : 0) # define gl_thread_self() \ (thread_in_use () ? (void *) thr_self () : NULL) # define gl_thread_self_pointer() \ gl_thread_self () # define gl_thread_exit(RETVAL) \ (thread_in_use () ? thr_exit (RETVAL) : 0) # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif /* -------------------------- gl_thread_t datatype -------------------------- */ /* The gl_thread_t is a pointer to a structure in memory. Why not the thread handle? If it were the thread handle, it would be hard to implement gl_thread_self() (since GetCurrentThread () returns a pseudo- handle, DuplicateHandle (GetCurrentThread ()) returns a handle that must be closed afterwards, and there is no function for quickly retrieving a thread handle from its id). Why not the thread id? I tried it. It did not work: Sometimes ids appeared that did not belong to running threads, and glthread_join failed with ESRCH. */ typedef struct gl_thread_struct *gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) \ glthread_create_func (THREADP, FUNC, ARG) # define glthread_sigmask(HOW, SET, OSET) \ /* unsupported */ 0 # define glthread_join(THREAD, RETVALP) \ glthread_join_func (THREAD, RETVALP) # define gl_thread_self() \ gl_thread_self_func () # define gl_thread_self_pointer() \ gl_thread_self () # define gl_thread_exit(RETVAL) \ gl_thread_exit_func (RETVAL) # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 extern int glthread_create_func (gl_thread_t *threadp, void * (*func) (void *), void *arg); extern int glthread_join_func (gl_thread_t thread, void **retvalp); extern gl_thread_t gl_thread_self_func (void); extern int gl_thread_exit_func (void *retval); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ typedef int gl_thread_t; # define glthread_create(THREADP, FUNC, ARG) ENOSYS # define glthread_sigmask(HOW, SET, OSET) 0 # define glthread_join(THREAD, RETVALP) 0 # define gl_thread_self() 0 # define gl_thread_self_pointer() \ ((void *) gl_thread_self ()) # define gl_thread_exit(RETVAL) 0 # define glthread_atfork(PREPARE_FUNC, PARENT_FUNC, CHILD_FUNC) 0 #endif /* ========================================================================= */ /* Macros with built-in error handling. */ #ifdef __cplusplus extern "C" { #endif _GLTHREAD_THREAD_INLINE gl_thread_t gl_thread_create (void *(*func) (void *arg), void *arg) { gl_thread_t thread; int ret; ret = glthread_create (&thread, func, arg); if (ret != 0) abort (); return thread; } #define gl_thread_sigmask(HOW, SET, OSET) \ do \ { \ if (glthread_sigmask (HOW, SET, OSET)) \ abort (); \ } \ while (0) #define gl_thread_join(THREAD, RETVAL) \ do \ { \ if (glthread_join (THREAD, RETVAL)) \ abort (); \ } \ while (0) #define gl_thread_atfork(PREPARE, PARENT, CHILD) \ do \ { \ if (glthread_atfork (PREPARE, PARENT, CHILD)) \ abort (); \ } \ while (0) #ifdef __cplusplus } #endif _GL_INLINE_HEADER_END #endif /* _GLTHREAD_THREAD_H */ libidn-1.28/lib/gltests/glthread/threadlib.c0000644000000000000000000000353612153706107015734 00000000000000/* Multithreading primitives. Copyright (C) 2005-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. */ #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # include # if PTHREAD_IN_USE_DETECTION_HARD /* The function to be executed by a dummy thread. */ static void * dummy_thread_func (void *arg) { return arg; } int glthread_in_use (void) { static int tested; static int result; /* 1: linked with -lpthread, 0: only with libc */ if (!tested) { pthread_t thread; if (pthread_create (&thread, NULL, dummy_thread_func, NULL) != 0) /* Thread creation failed. */ result = 0; else { /* Thread creation works. */ void *retval; if (pthread_join (thread, &retval) != 0) abort (); result = 1; } tested = 1; } return result; } # endif #endif /* ========================================================================= */ /* This declaration is solely to ensure that after preprocessing this file is never empty. */ typedef int dummy; libidn-1.28/lib/gltests/glthread/lock.c0000644000000000000000000006417012153706107014727 00000000000000/* Locking in multithreaded situations. Copyright (C) 2005-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ #include #include "glthread/lock.h" /* ========================================================================= */ #if USE_POSIX_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK # if !defined PTHREAD_RWLOCK_INITIALIZER int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_rwlock_init (&lock->rwlock, NULL); if (err != 0) return err; lock->initialized = 1; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_rwlock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_rwlock_rdlock (&lock->rwlock); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_rwlock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_rwlock_wrlock (&lock->rwlock); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { if (!lock->initialized) return EINVAL; return pthread_rwlock_unlock (&lock->rwlock); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { int err; if (!lock->initialized) return EINVAL; err = pthread_rwlock_destroy (&lock->rwlock); if (err != 0) return err; lock->initialized = 0; return 0; } # endif # else int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_init (&lock->lock, NULL); if (err != 0) return err; err = pthread_cond_init (&lock->waiting_readers, NULL); if (err != 0) return err; err = pthread_cond_init (&lock->waiting_writers, NULL); if (err != 0) return err; lock->waiting_writers_count = 0; lock->runcount = 0; return 0; } int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; /* Test whether only readers are currently running, and whether the runcount field will not overflow. */ /* POSIX says: "It is implementation-defined whether the calling thread acquires the lock when a writer does not hold the lock and there are writers blocked on the lock." Let's say, no: give the writers a higher priority. */ while (!(lock->runcount + 1 > 0 && lock->waiting_writers_count == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ err = pthread_cond_wait (&lock->waiting_readers, &lock->lock); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } lock->runcount++; return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; /* Test whether no readers or writers are currently running. */ while (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ lock->waiting_writers_count++; err = pthread_cond_wait (&lock->waiting_writers, &lock->lock); if (err != 0) { lock->waiting_writers_count--; pthread_mutex_unlock (&lock->lock); return err; } lock->waiting_writers_count--; } lock->runcount--; /* runcount becomes -1 */ return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_lock (&lock->lock); if (err != 0) return err; if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) { pthread_mutex_unlock (&lock->lock); return EINVAL; } lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { pthread_mutex_unlock (&lock->lock); return EINVAL; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers_count > 0) { /* Wake up one of the waiting writers. */ err = pthread_cond_signal (&lock->waiting_writers); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } else { /* Wake up all waiting readers. */ err = pthread_cond_broadcast (&lock->waiting_readers); if (err != 0) { pthread_mutex_unlock (&lock->lock); return err; } } } return pthread_mutex_unlock (&lock->lock); } int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock) { int err; err = pthread_mutex_destroy (&lock->lock); if (err != 0) return err; err = pthread_cond_destroy (&lock->waiting_readers); if (err != 0) return err; err = pthread_cond_destroy (&lock->waiting_writers); if (err != 0) return err; return 0; } # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { pthread_mutexattr_t attributes; int err; err = pthread_mutexattr_init (&attributes); if (err != 0) return err; err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutex_init (lock, &attributes); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutexattr_destroy (&attributes); if (err != 0) return err; return 0; } # else int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { pthread_mutexattr_t attributes; int err; err = pthread_mutexattr_init (&attributes); if (err != 0) return err; err = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutex_init (&lock->recmutex, &attributes); if (err != 0) { pthread_mutexattr_destroy (&attributes); return err; } err = pthread_mutexattr_destroy (&attributes); if (err != 0) return err; lock->initialized = 1; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { if (!lock->initialized) { int err; err = pthread_mutex_lock (&lock->guard); if (err != 0) return err; if (!lock->initialized) { err = glthread_recursive_lock_init_multithreaded (lock); if (err != 0) { pthread_mutex_unlock (&lock->guard); return err; } } err = pthread_mutex_unlock (&lock->guard); if (err != 0) return err; } return pthread_mutex_lock (&lock->recmutex); } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (!lock->initialized) return EINVAL; return pthread_mutex_unlock (&lock->recmutex); } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { int err; if (!lock->initialized) return EINVAL; err = pthread_mutex_destroy (&lock->recmutex); if (err != 0) return err; lock->initialized = 0; return 0; } # endif # else int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { int err; err = pthread_mutex_init (&lock->mutex, NULL); if (err != 0) return err; lock->owner = (pthread_t) 0; lock->depth = 0; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { pthread_t self = pthread_self (); if (lock->owner != self) { int err; err = pthread_mutex_lock (&lock->mutex); if (err != 0) return err; lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } return 0; } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != pthread_self ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = (pthread_t) 0; return pthread_mutex_unlock (&lock->mutex); } else return 0; } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != (pthread_t) 0) return EBUSY; return pthread_mutex_destroy (&lock->mutex); } # endif /* -------------------------- gl_once_t datatype -------------------------- */ static const pthread_once_t fresh_once = PTHREAD_ONCE_INIT; int glthread_once_singlethreaded (pthread_once_t *once_control) { /* We don't know whether pthread_once_t is an integer type, a floating-point type, a pointer type, or a structure type. */ char *firstbyte = (char *)once_control; if (*firstbyte == *(const char *)&fresh_once) { /* First time use of once_control. Invert the first byte. */ *firstbyte = ~ *(const char *)&fresh_once; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* -------------------------- gl_once_t datatype -------------------------- */ static void glthread_once_call (void *arg) { void (**gl_once_temp_addr) (void) = (void (**) (void)) arg; void (*initfunction) (void) = *gl_once_temp_addr; initfunction (); } int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)) { void (*temp) (void) = initfunction; return (!pth_once (once_control, glthread_once_call, &temp) ? errno : 0); } int glthread_once_singlethreaded (pth_once_t *once_control) { /* We know that pth_once_t is an integer type. */ if (*once_control == PTH_ONCE_INIT) { /* First time use of once_control. Invert the marker. */ *once_control = ~ PTH_ONCE_INIT; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ /* -------------------------- gl_lock_t datatype -------------------------- */ /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* --------------------- gl_recursive_lock_t datatype --------------------- */ int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock) { int err; err = mutex_init (&lock->mutex, USYNC_THREAD, NULL); if (err != 0) return err; lock->owner = (thread_t) 0; lock->depth = 0; return 0; } int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock) { thread_t self = thr_self (); if (lock->owner != self) { int err; err = mutex_lock (&lock->mutex); if (err != 0) return err; lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } return 0; } int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != thr_self ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = (thread_t) 0; return mutex_unlock (&lock->mutex); } else return 0; } int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock) { if (lock->owner != (thread_t) 0) return EBUSY; return mutex_destroy (&lock->mutex); } /* -------------------------- gl_once_t datatype -------------------------- */ int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)) { if (!once_control->inited) { int err; /* Use the mutex to guarantee that if another thread is already calling the initfunction, this thread waits until it's finished. */ err = mutex_lock (&once_control->mutex); if (err != 0) return err; if (!once_control->inited) { once_control->inited = 1; initfunction (); } return mutex_unlock (&once_control->mutex); } else return 0; } int glthread_once_singlethreaded (gl_once_t *once_control) { /* We know that gl_once_t contains an integer type. */ if (!once_control->inited) { /* First time use of once_control. Invert the marker. */ once_control->inited = ~ 0; return 1; } else return 0; } #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS /* -------------------------- gl_lock_t datatype -------------------------- */ void glthread_lock_init_func (gl_lock_t *lock) { InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } int glthread_lock_lock_func (gl_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); return 0; } int glthread_lock_unlock_func (gl_lock_t *lock) { if (!lock->guard.done) return EINVAL; LeaveCriticalSection (&lock->lock); return 0; } int glthread_lock_destroy_func (gl_lock_t *lock) { if (!lock->guard.done) return EINVAL; DeleteCriticalSection (&lock->lock); lock->guard.done = 0; return 0; } /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* In this file, the waitqueues are implemented as circular arrays. */ #define gl_waitqueue_t gl_carray_waitqueue_t static void gl_waitqueue_init (gl_waitqueue_t *wq) { wq->array = NULL; wq->count = 0; wq->alloc = 0; wq->offset = 0; } /* Enqueues the current thread, represented by an event, in a wait queue. Returns INVALID_HANDLE_VALUE if an allocation failure occurs. */ static HANDLE gl_waitqueue_add (gl_waitqueue_t *wq) { HANDLE event; unsigned int index; if (wq->count == wq->alloc) { unsigned int new_alloc = 2 * wq->alloc + 1; HANDLE *new_array = (HANDLE *) realloc (wq->array, new_alloc * sizeof (HANDLE)); if (new_array == NULL) /* No more memory. */ return INVALID_HANDLE_VALUE; /* Now is a good opportunity to rotate the array so that its contents starts at offset 0. */ if (wq->offset > 0) { unsigned int old_count = wq->count; unsigned int old_alloc = wq->alloc; unsigned int old_offset = wq->offset; unsigned int i; if (old_offset + old_count > old_alloc) { unsigned int limit = old_offset + old_count - old_alloc; for (i = 0; i < limit; i++) new_array[old_alloc + i] = new_array[i]; } for (i = 0; i < old_count; i++) new_array[i] = new_array[old_offset + i]; wq->offset = 0; } wq->array = new_array; wq->alloc = new_alloc; } /* Whether the created event is a manual-reset one or an auto-reset one, does not matter, since we will wait on it only once. */ event = CreateEvent (NULL, TRUE, FALSE, NULL); if (event == INVALID_HANDLE_VALUE) /* No way to allocate an event. */ return INVALID_HANDLE_VALUE; index = wq->offset + wq->count; if (index >= wq->alloc) index -= wq->alloc; wq->array[index] = event; wq->count++; return event; } /* Notifies the first thread from a wait queue and dequeues it. */ static void gl_waitqueue_notify_first (gl_waitqueue_t *wq) { SetEvent (wq->array[wq->offset + 0]); wq->offset++; wq->count--; if (wq->count == 0 || wq->offset == wq->alloc) wq->offset = 0; } /* Notifies all threads from a wait queue and dequeues them all. */ static void gl_waitqueue_notify_all (gl_waitqueue_t *wq) { unsigned int i; for (i = 0; i < wq->count; i++) { unsigned int index = wq->offset + i; if (index >= wq->alloc) index -= wq->alloc; SetEvent (wq->array[index]); } wq->count = 0; wq->offset = 0; } void glthread_rwlock_init_func (gl_rwlock_t *lock) { InitializeCriticalSection (&lock->lock); gl_waitqueue_init (&lock->waiting_readers); gl_waitqueue_init (&lock->waiting_writers); lock->runcount = 0; lock->guard.done = 1; } int glthread_rwlock_rdlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether only readers are currently running, and whether the runcount field will not overflow. */ if (!(lock->runcount + 1 > 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_readers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_readers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_readers, incremented lock->runcount. */ if (!(lock->runcount > 0)) abort (); return 0; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount + 1 > 0)); } } lock->runcount++; LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_wrlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_rwlock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } EnterCriticalSection (&lock->lock); /* Test whether no readers or writers are currently running. */ if (!(lock->runcount == 0)) { /* This thread has to wait for a while. Enqueue it among the waiting_writers. */ HANDLE event = gl_waitqueue_add (&lock->waiting_writers); if (event != INVALID_HANDLE_VALUE) { DWORD result; LeaveCriticalSection (&lock->lock); /* Wait until another thread signals this event. */ result = WaitForSingleObject (event, INFINITE); if (result == WAIT_FAILED || result == WAIT_TIMEOUT) abort (); CloseHandle (event); /* The thread which signalled the event already did the bookkeeping: removed us from the waiting_writers, set lock->runcount = -1. */ if (!(lock->runcount == -1)) abort (); return 0; } else { /* Allocation failure. Weird. */ do { LeaveCriticalSection (&lock->lock); Sleep (1); EnterCriticalSection (&lock->lock); } while (!(lock->runcount == 0)); } } lock->runcount--; /* runcount becomes -1 */ LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_unlock_func (gl_rwlock_t *lock) { if (!lock->guard.done) return EINVAL; EnterCriticalSection (&lock->lock); if (lock->runcount < 0) { /* Drop a writer lock. */ if (!(lock->runcount == -1)) abort (); lock->runcount = 0; } else { /* Drop a reader lock. */ if (!(lock->runcount > 0)) { LeaveCriticalSection (&lock->lock); return EPERM; } lock->runcount--; } if (lock->runcount == 0) { /* POSIX recommends that "write locks shall take precedence over read locks", to avoid "writer starvation". */ if (lock->waiting_writers.count > 0) { /* Wake up one of the waiting writers. */ lock->runcount--; gl_waitqueue_notify_first (&lock->waiting_writers); } else { /* Wake up all waiting readers. */ lock->runcount += lock->waiting_readers.count; gl_waitqueue_notify_all (&lock->waiting_readers); } } LeaveCriticalSection (&lock->lock); return 0; } int glthread_rwlock_destroy_func (gl_rwlock_t *lock) { if (!lock->guard.done) return EINVAL; if (lock->runcount != 0) return EBUSY; DeleteCriticalSection (&lock->lock); if (lock->waiting_readers.array != NULL) free (lock->waiting_readers.array); if (lock->waiting_writers.array != NULL) free (lock->waiting_writers.array); lock->guard.done = 0; return 0; } /* --------------------- gl_recursive_lock_t datatype --------------------- */ void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock) { lock->owner = 0; lock->depth = 0; InitializeCriticalSection (&lock->lock); lock->guard.done = 1; } int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock) { if (!lock->guard.done) { if (InterlockedIncrement (&lock->guard.started) == 0) /* This thread is the first one to need this lock. Initialize it. */ glthread_recursive_lock_init (lock); else /* Yield the CPU while waiting for another thread to finish initializing this lock. */ while (!lock->guard.done) Sleep (0); } { DWORD self = GetCurrentThreadId (); if (lock->owner != self) { EnterCriticalSection (&lock->lock); lock->owner = self; } if (++(lock->depth) == 0) /* wraparound? */ { lock->depth--; return EAGAIN; } } return 0; } int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock) { if (lock->owner != GetCurrentThreadId ()) return EPERM; if (lock->depth == 0) return EINVAL; if (--(lock->depth) == 0) { lock->owner = 0; LeaveCriticalSection (&lock->lock); } return 0; } int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock) { if (lock->owner != 0) return EBUSY; DeleteCriticalSection (&lock->lock); lock->guard.done = 0; return 0; } /* -------------------------- gl_once_t datatype -------------------------- */ void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)) { if (once_control->inited <= 0) { if (InterlockedIncrement (&once_control->started) == 0) { /* This thread is the first one to come to this once_control. */ InitializeCriticalSection (&once_control->lock); EnterCriticalSection (&once_control->lock); once_control->inited = 0; initfunction (); once_control->inited = 1; LeaveCriticalSection (&once_control->lock); } else { /* Undo last operation. */ InterlockedDecrement (&once_control->started); /* Some other thread has already started the initialization. Yield the CPU while waiting for the other thread to finish initializing and taking the lock. */ while (once_control->inited < 0) Sleep (0); if (once_control->inited <= 0) { /* Take the lock. This blocks until the other thread has finished calling the initfunction. */ EnterCriticalSection (&once_control->lock); LeaveCriticalSection (&once_control->lock); if (!(once_control->inited > 0)) abort (); } } } } #endif /* ========================================================================= */ libidn-1.28/lib/gltests/glthread/lock.h0000644000000000000000000010665212153706107014736 00000000000000/* Locking in multithreaded situations. Copyright (C) 2005-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Written by Bruno Haible , 2005. Based on GCC's gthr-posix.h, gthr-posix95.h, gthr-solaris.h, gthr-win32.h. */ /* This file contains locking primitives for use with a given thread library. It does not contain primitives for creating threads or for other synchronization primitives. Normal (non-recursive) locks: Type: gl_lock_t Declaration: gl_lock_define(extern, name) Initializer: gl_lock_define_initialized(, name) Initialization: gl_lock_init (name); Taking the lock: gl_lock_lock (name); Releasing the lock: gl_lock_unlock (name); De-initialization: gl_lock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_lock_init (&name); Taking the lock: err = glthread_lock_lock (&name); Releasing the lock: err = glthread_lock_unlock (&name); De-initialization: err = glthread_lock_destroy (&name); Read-Write (non-recursive) locks: Type: gl_rwlock_t Declaration: gl_rwlock_define(extern, name) Initializer: gl_rwlock_define_initialized(, name) Initialization: gl_rwlock_init (name); Taking the lock: gl_rwlock_rdlock (name); gl_rwlock_wrlock (name); Releasing the lock: gl_rwlock_unlock (name); De-initialization: gl_rwlock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_rwlock_init (&name); Taking the lock: err = glthread_rwlock_rdlock (&name); err = glthread_rwlock_wrlock (&name); Releasing the lock: err = glthread_rwlock_unlock (&name); De-initialization: err = glthread_rwlock_destroy (&name); Recursive locks: Type: gl_recursive_lock_t Declaration: gl_recursive_lock_define(extern, name) Initializer: gl_recursive_lock_define_initialized(, name) Initialization: gl_recursive_lock_init (name); Taking the lock: gl_recursive_lock_lock (name); Releasing the lock: gl_recursive_lock_unlock (name); De-initialization: gl_recursive_lock_destroy (name); Equivalent functions with control of error handling: Initialization: err = glthread_recursive_lock_init (&name); Taking the lock: err = glthread_recursive_lock_lock (&name); Releasing the lock: err = glthread_recursive_lock_unlock (&name); De-initialization: err = glthread_recursive_lock_destroy (&name); Once-only execution: Type: gl_once_t Initializer: gl_once_define(extern, name) Execution: gl_once (name, initfunction); Equivalent functions with control of error handling: Execution: err = glthread_once (&name, initfunction); */ #ifndef _LOCK_H #define _LOCK_H #include #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if PTHREAD_IN_USE_DETECTION_HARD /* The pthread_in_use() detection needs to be done at runtime. */ # define pthread_in_use() \ glthread_in_use () extern int glthread_in_use (void); # endif # if USE_POSIX_THREADS_WEAK /* Use weak references to the POSIX threads library. */ /* Weak references avoid dragging in external libraries if the other parts of the program don't use them. Here we use them, because we don't want every program that uses libintl to depend on libpthread. This assumes that libpthread would not be loaded after libintl; i.e. if libintl is loaded first, by an executable that does not depend on libpthread, and then a module is dynamically loaded that depends on libpthread, libintl will not be multithread-safe. */ /* The way to test at runtime whether libpthread is present is to test whether a function pointer's value, such as &pthread_mutex_init, is non-NULL. However, some versions of GCC have a bug through which, in PIC mode, &foo != NULL always evaluates to true if there is a direct call to foo(...) in the same function. To avoid this, we test the address of a function in libpthread that we don't use. */ # pragma weak pthread_mutex_init # pragma weak pthread_mutex_lock # pragma weak pthread_mutex_unlock # pragma weak pthread_mutex_destroy # pragma weak pthread_rwlock_init # pragma weak pthread_rwlock_rdlock # pragma weak pthread_rwlock_wrlock # pragma weak pthread_rwlock_unlock # pragma weak pthread_rwlock_destroy # pragma weak pthread_once # pragma weak pthread_cond_init # pragma weak pthread_cond_wait # pragma weak pthread_cond_signal # pragma weak pthread_cond_broadcast # pragma weak pthread_cond_destroy # pragma weak pthread_mutexattr_init # pragma weak pthread_mutexattr_settype # pragma weak pthread_mutexattr_destroy # ifndef pthread_self # pragma weak pthread_self # endif # if !PTHREAD_IN_USE_DETECTION_HARD # pragma weak pthread_cancel # define pthread_in_use() (pthread_cancel != NULL) # endif # else # if !PTHREAD_IN_USE_DETECTION_HARD # define pthread_in_use() 1 # endif # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pthread_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTHREAD_MUTEX_INITIALIZER # define glthread_lock_init(LOCK) \ (pthread_in_use () ? pthread_mutex_init (LOCK, NULL) : 0) # define glthread_lock_lock(LOCK) \ (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) # define glthread_lock_unlock(LOCK) \ (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) # define glthread_lock_destroy(LOCK) \ (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ # if HAVE_PTHREAD_RWLOCK # ifdef PTHREAD_RWLOCK_INITIALIZER typedef pthread_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ PTHREAD_RWLOCK_INITIALIZER # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? pthread_rwlock_init (LOCK, NULL) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_rdlock (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_wrlock (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? pthread_rwlock_unlock (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? pthread_rwlock_destroy (LOCK) : 0) # else typedef struct { int initialized; pthread_mutex_t guard; /* protects the initialization */ pthread_rwlock_t rwlock; /* read-write lock */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { 0, PTHREAD_MUTEX_INITIALIZER } # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif # else typedef struct { pthread_mutex_t lock; /* protects the remaining fields */ pthread_cond_t waiting_readers; /* waiting readers */ pthread_cond_t waiting_writers; /* waiting writers */ unsigned int waiting_writers_count; /* number of waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER, 0, 0 } # define glthread_rwlock_init(LOCK) \ (pthread_in_use () ? glthread_rwlock_init_multithreaded (LOCK) : 0) # define glthread_rwlock_rdlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_rdlock_multithreaded (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_wrlock_multithreaded (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (pthread_in_use () ? glthread_rwlock_unlock_multithreaded (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (pthread_in_use () ? glthread_rwlock_destroy_multithreaded (LOCK) : 0) extern int glthread_rwlock_init_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_multithreaded (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_multithreaded (gl_rwlock_t *lock); # endif /* --------------------- gl_recursive_lock_t datatype --------------------- */ # if HAVE_PTHREAD_MUTEX_RECURSIVE # if defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER || defined PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP typedef pthread_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pthread_mutex_t NAME = gl_recursive_lock_initializer; # ifdef PTHREAD_RECURSIVE_MUTEX_INITIALIZER # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER # else # define gl_recursive_lock_initializer \ PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP # endif # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? pthread_mutex_lock (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? pthread_mutex_unlock (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? pthread_mutex_destroy (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); # else typedef struct { pthread_mutex_t recmutex; /* recursive mutex */ pthread_mutex_t guard; /* protects the initialization */ int initialized; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, PTHREAD_MUTEX_INITIALIZER, 0 } # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); # endif # else /* Old versions of POSIX threads on Solaris did not have recursive locks. We have to implement them ourselves. */ typedef struct { pthread_mutex_t mutex; pthread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { PTHREAD_MUTEX_INITIALIZER, (pthread_t) 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (pthread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); # endif /* -------------------------- gl_once_t datatype -------------------------- */ typedef pthread_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pthread_once_t NAME = PTHREAD_ONCE_INIT; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (pthread_in_use () \ ? pthread_once (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_singlethreaded (pthread_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # if USE_PTH_THREADS_WEAK /* Use weak references to the GNU Pth threads library. */ # pragma weak pth_mutex_init # pragma weak pth_mutex_acquire # pragma weak pth_mutex_release # pragma weak pth_rwlock_init # pragma weak pth_rwlock_acquire # pragma weak pth_rwlock_release # pragma weak pth_once # pragma weak pth_cancel # define pth_in_use() (pth_cancel != NULL) # else # define pth_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef pth_mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ PTH_MUTEX_INIT # define glthread_lock_init(LOCK) \ (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) # define glthread_lock_lock(LOCK) \ (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) # define glthread_lock_unlock(LOCK) \ (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) # define glthread_lock_destroy(LOCK) \ ((void)(LOCK), 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef pth_rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ PTH_RWLOCK_INIT # define glthread_rwlock_init(LOCK) \ (pth_in_use () && !pth_rwlock_init (LOCK) ? errno : 0) # define glthread_rwlock_rdlock(LOCK) \ (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RD, 0, NULL) ? errno : 0) # define glthread_rwlock_wrlock(LOCK) \ (pth_in_use () && !pth_rwlock_acquire (LOCK, PTH_RWLOCK_RW, 0, NULL) ? errno : 0) # define glthread_rwlock_unlock(LOCK) \ (pth_in_use () && !pth_rwlock_release (LOCK) ? errno : 0) # define glthread_rwlock_destroy(LOCK) \ ((void)(LOCK), 0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* In Pth, mutexes are recursive by default. */ typedef pth_mutex_t gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS pth_mutex_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ PTH_MUTEX_INIT # define glthread_recursive_lock_init(LOCK) \ (pth_in_use () && !pth_mutex_init (LOCK) ? errno : 0) # define glthread_recursive_lock_lock(LOCK) \ (pth_in_use () && !pth_mutex_acquire (LOCK, 0, NULL) ? errno : 0) # define glthread_recursive_lock_unlock(LOCK) \ (pth_in_use () && !pth_mutex_release (LOCK) ? errno : 0) # define glthread_recursive_lock_destroy(LOCK) \ ((void)(LOCK), 0) /* -------------------------- gl_once_t datatype -------------------------- */ typedef pth_once_t gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS pth_once_t NAME = PTH_ONCE_INIT; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (pth_in_use () \ ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_multithreaded (pth_once_t *once_control, void (*initfunction) (void)); extern int glthread_once_singlethreaded (pth_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # include # ifdef __cplusplus extern "C" { # endif # if USE_SOLARIS_THREADS_WEAK /* Use weak references to the old Solaris threads library. */ # pragma weak mutex_init # pragma weak mutex_lock # pragma weak mutex_unlock # pragma weak mutex_destroy # pragma weak rwlock_init # pragma weak rw_rdlock # pragma weak rw_wrlock # pragma weak rw_unlock # pragma weak rwlock_destroy # pragma weak thr_self # pragma weak thr_suspend # define thread_in_use() (thr_suspend != NULL) # else # define thread_in_use() 1 # endif /* -------------------------- gl_lock_t datatype -------------------------- */ typedef mutex_t gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS mutex_t NAME = gl_lock_initializer; # define gl_lock_initializer \ DEFAULTMUTEX # define glthread_lock_init(LOCK) \ (thread_in_use () ? mutex_init (LOCK, USYNC_THREAD, NULL) : 0) # define glthread_lock_lock(LOCK) \ (thread_in_use () ? mutex_lock (LOCK) : 0) # define glthread_lock_unlock(LOCK) \ (thread_in_use () ? mutex_unlock (LOCK) : 0) # define glthread_lock_destroy(LOCK) \ (thread_in_use () ? mutex_destroy (LOCK) : 0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef rwlock_t gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ DEFAULTRWLOCK # define glthread_rwlock_init(LOCK) \ (thread_in_use () ? rwlock_init (LOCK, USYNC_THREAD, NULL) : 0) # define glthread_rwlock_rdlock(LOCK) \ (thread_in_use () ? rw_rdlock (LOCK) : 0) # define glthread_rwlock_wrlock(LOCK) \ (thread_in_use () ? rw_wrlock (LOCK) : 0) # define glthread_rwlock_unlock(LOCK) \ (thread_in_use () ? rw_unlock (LOCK) : 0) # define glthread_rwlock_destroy(LOCK) \ (thread_in_use () ? rwlock_destroy (LOCK) : 0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* Old Solaris threads did not have recursive locks. We have to implement them ourselves. */ typedef struct { mutex_t mutex; thread_t owner; unsigned long depth; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { DEFAULTMUTEX, (thread_t) 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (thread_in_use () ? glthread_recursive_lock_init_multithreaded (LOCK) : 0) # define glthread_recursive_lock_lock(LOCK) \ (thread_in_use () ? glthread_recursive_lock_lock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_unlock(LOCK) \ (thread_in_use () ? glthread_recursive_lock_unlock_multithreaded (LOCK) : 0) # define glthread_recursive_lock_destroy(LOCK) \ (thread_in_use () ? glthread_recursive_lock_destroy_multithreaded (LOCK) : 0) extern int glthread_recursive_lock_init_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_multithreaded (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_multithreaded (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; mutex_t mutex; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { 0, DEFAULTMUTEX }; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (thread_in_use () \ ? glthread_once_multithreaded (ONCE_CONTROL, INITFUNCTION) \ : (glthread_once_singlethreaded (ONCE_CONTROL) ? (INITFUNCTION (), 0) : 0)) extern int glthread_once_multithreaded (gl_once_t *once_control, void (*initfunction) (void)); extern int glthread_once_singlethreaded (gl_once_t *once_control); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif /* We can use CRITICAL_SECTION directly, rather than the native Windows Event, Mutex, Semaphore types, because - we need only to synchronize inside a single process (address space), not inter-process locking, - we don't need to support trylock operations. (TryEnterCriticalSection does not work on Windows 95/98/ME. Packages that need trylock usually define their own mutex type.) */ /* There is no way to statically initialize a CRITICAL_SECTION. It needs to be done lazily, once only. For this we need spinlocks. */ typedef struct { volatile int done; volatile long started; } gl_spinlock_t; /* -------------------------- gl_lock_t datatype -------------------------- */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; } gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME; # define gl_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_lock_t NAME = gl_lock_initializer; # define gl_lock_initializer \ { { 0, -1 } } # define glthread_lock_init(LOCK) \ (glthread_lock_init_func (LOCK), 0) # define glthread_lock_lock(LOCK) \ glthread_lock_lock_func (LOCK) # define glthread_lock_unlock(LOCK) \ glthread_lock_unlock_func (LOCK) # define glthread_lock_destroy(LOCK) \ glthread_lock_destroy_func (LOCK) extern void glthread_lock_init_func (gl_lock_t *lock); extern int glthread_lock_lock_func (gl_lock_t *lock); extern int glthread_lock_unlock_func (gl_lock_t *lock); extern int glthread_lock_destroy_func (gl_lock_t *lock); /* ------------------------- gl_rwlock_t datatype ------------------------- */ /* It is impossible to implement read-write locks using plain locks, without introducing an extra thread dedicated to managing read-write locks. Therefore here we need to use the low-level Event type. */ typedef struct { HANDLE *array; /* array of waiting threads, each represented by an event */ unsigned int count; /* number of waiting threads */ unsigned int alloc; /* length of allocated array */ unsigned int offset; /* index of first waiting thread in array */ } gl_carray_waitqueue_t; typedef struct { gl_spinlock_t guard; /* protects the initialization */ CRITICAL_SECTION lock; /* protects the remaining fields */ gl_carray_waitqueue_t waiting_readers; /* waiting readers */ gl_carray_waitqueue_t waiting_writers; /* waiting writers */ int runcount; /* number of readers running, or -1 when a writer runs */ } gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME; # define gl_rwlock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_rwlock_t NAME = gl_rwlock_initializer; # define gl_rwlock_initializer \ { { 0, -1 } } # define glthread_rwlock_init(LOCK) \ (glthread_rwlock_init_func (LOCK), 0) # define glthread_rwlock_rdlock(LOCK) \ glthread_rwlock_rdlock_func (LOCK) # define glthread_rwlock_wrlock(LOCK) \ glthread_rwlock_wrlock_func (LOCK) # define glthread_rwlock_unlock(LOCK) \ glthread_rwlock_unlock_func (LOCK) # define glthread_rwlock_destroy(LOCK) \ glthread_rwlock_destroy_func (LOCK) extern void glthread_rwlock_init_func (gl_rwlock_t *lock); extern int glthread_rwlock_rdlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_wrlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_unlock_func (gl_rwlock_t *lock); extern int glthread_rwlock_destroy_func (gl_rwlock_t *lock); /* --------------------- gl_recursive_lock_t datatype --------------------- */ /* The native Windows documentation says that CRITICAL_SECTION already implements a recursive lock. But we need not rely on it: It's easy to implement a recursive lock without this assumption. */ typedef struct { gl_spinlock_t guard; /* protects the initialization */ DWORD owner; unsigned long depth; CRITICAL_SECTION lock; } gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME; # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) \ STORAGECLASS gl_recursive_lock_t NAME = gl_recursive_lock_initializer; # define gl_recursive_lock_initializer \ { { 0, -1 }, 0, 0 } # define glthread_recursive_lock_init(LOCK) \ (glthread_recursive_lock_init_func (LOCK), 0) # define glthread_recursive_lock_lock(LOCK) \ glthread_recursive_lock_lock_func (LOCK) # define glthread_recursive_lock_unlock(LOCK) \ glthread_recursive_lock_unlock_func (LOCK) # define glthread_recursive_lock_destroy(LOCK) \ glthread_recursive_lock_destroy_func (LOCK) extern void glthread_recursive_lock_init_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_lock_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_unlock_func (gl_recursive_lock_t *lock); extern int glthread_recursive_lock_destroy_func (gl_recursive_lock_t *lock); /* -------------------------- gl_once_t datatype -------------------------- */ typedef struct { volatile int inited; volatile long started; CRITICAL_SECTION lock; } gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = { -1, -1 }; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (glthread_once_func (ONCE_CONTROL, INITFUNCTION), 0) extern void glthread_once_func (gl_once_t *once_control, void (*initfunction) (void)); # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ /* -------------------------- gl_lock_t datatype -------------------------- */ typedef int gl_lock_t; # define gl_lock_define(STORAGECLASS, NAME) # define gl_lock_define_initialized(STORAGECLASS, NAME) # define glthread_lock_init(NAME) 0 # define glthread_lock_lock(NAME) 0 # define glthread_lock_unlock(NAME) 0 # define glthread_lock_destroy(NAME) 0 /* ------------------------- gl_rwlock_t datatype ------------------------- */ typedef int gl_rwlock_t; # define gl_rwlock_define(STORAGECLASS, NAME) # define gl_rwlock_define_initialized(STORAGECLASS, NAME) # define glthread_rwlock_init(NAME) 0 # define glthread_rwlock_rdlock(NAME) 0 # define glthread_rwlock_wrlock(NAME) 0 # define glthread_rwlock_unlock(NAME) 0 # define glthread_rwlock_destroy(NAME) 0 /* --------------------- gl_recursive_lock_t datatype --------------------- */ typedef int gl_recursive_lock_t; # define gl_recursive_lock_define(STORAGECLASS, NAME) # define gl_recursive_lock_define_initialized(STORAGECLASS, NAME) # define glthread_recursive_lock_init(NAME) 0 # define glthread_recursive_lock_lock(NAME) 0 # define glthread_recursive_lock_unlock(NAME) 0 # define glthread_recursive_lock_destroy(NAME) 0 /* -------------------------- gl_once_t datatype -------------------------- */ typedef int gl_once_t; # define gl_once_define(STORAGECLASS, NAME) \ STORAGECLASS gl_once_t NAME = 0; # define glthread_once(ONCE_CONTROL, INITFUNCTION) \ (*(ONCE_CONTROL) == 0 ? (*(ONCE_CONTROL) = ~ 0, INITFUNCTION (), 0) : 0) #endif /* ========================================================================= */ /* Macros with built-in error handling. */ /* -------------------------- gl_lock_t datatype -------------------------- */ #define gl_lock_init(NAME) \ do \ { \ if (glthread_lock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_lock(NAME) \ do \ { \ if (glthread_lock_lock (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_unlock(NAME) \ do \ { \ if (glthread_lock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_lock_destroy(NAME) \ do \ { \ if (glthread_lock_destroy (&NAME)) \ abort (); \ } \ while (0) /* ------------------------- gl_rwlock_t datatype ------------------------- */ #define gl_rwlock_init(NAME) \ do \ { \ if (glthread_rwlock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_rdlock(NAME) \ do \ { \ if (glthread_rwlock_rdlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_wrlock(NAME) \ do \ { \ if (glthread_rwlock_wrlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_unlock(NAME) \ do \ { \ if (glthread_rwlock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_rwlock_destroy(NAME) \ do \ { \ if (glthread_rwlock_destroy (&NAME)) \ abort (); \ } \ while (0) /* --------------------- gl_recursive_lock_t datatype --------------------- */ #define gl_recursive_lock_init(NAME) \ do \ { \ if (glthread_recursive_lock_init (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_lock(NAME) \ do \ { \ if (glthread_recursive_lock_lock (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_unlock(NAME) \ do \ { \ if (glthread_recursive_lock_unlock (&NAME)) \ abort (); \ } \ while (0) #define gl_recursive_lock_destroy(NAME) \ do \ { \ if (glthread_recursive_lock_destroy (&NAME)) \ abort (); \ } \ while (0) /* -------------------------- gl_once_t datatype -------------------------- */ #define gl_once(NAME, INITFUNCTION) \ do \ { \ if (glthread_once (&NAME, INITFUNCTION)) \ abort (); \ } \ while (0) /* ========================================================================= */ #endif /* _LOCK_H */ libidn-1.28/lib/gltests/glthread/yield.h0000644000000000000000000000474712153706107015116 00000000000000/* Yielding the processor to other threads and processes. Copyright (C) 2005-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* This file contains a primitive for yielding the processor to other threads. extern void gl_thread_yield (void); */ #ifndef _GLTHREAD_YIELD_H #define _GLTHREAD_YIELD_H #include /* ========================================================================= */ #if USE_POSIX_THREADS /* Use the POSIX threads library. */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ sched_yield () # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_PTH_THREADS /* Use the GNU Pth threads library. */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ pth_yield (NULL) # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_SOLARIS_THREADS /* Use the old Solaris threads library. */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ thr_yield () # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if USE_WINDOWS_THREADS # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include # ifdef __cplusplus extern "C" { # endif # define gl_thread_yield() \ Sleep (0) # ifdef __cplusplus } # endif #endif /* ========================================================================= */ #if !(USE_POSIX_THREADS || USE_PTH_THREADS || USE_SOLARIS_THREADS || USE_WINDOWS_THREADS) /* Provide dummy implementation if threads are not supported. */ # define gl_thread_yield() 0 #endif /* ========================================================================= */ #endif /* _GLTHREAD_YIELD_H */ libidn-1.28/lib/gltests/test-intprops.c0000644000000000000000000002704012153706107015033 00000000000000/* Test intprops.h. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ /* Tell gcc not to warn about the many (X < 0) expressions that the overflow macros expand to. */ #if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ # pragma GCC diagnostic ignored "-Wtype-limits" #endif #include #include "intprops.h" #include "verify.h" #include #include #include "macros.h" /* VERIFY (X) uses a static assertion for compilers that are known to work, and falls back on a dynamic assertion for other compilers. These tests should be checkable via 'verify' rather than 'ASSERT', but using 'verify' would run into a bug with HP-UX 11.23 cc; see . */ #if __GNUC__ || __SUNPRO_C # define VERIFY(x) do { verify (x); } while (0) #else # define VERIFY(x) ASSERT (x) #endif int main (void) { /* Use VERIFY for tests that must be integer constant expressions, ASSERT otherwise. */ /* TYPE_IS_INTEGER. */ ASSERT (TYPE_IS_INTEGER (bool)); ASSERT (TYPE_IS_INTEGER (char)); ASSERT (TYPE_IS_INTEGER (signed char)); ASSERT (TYPE_IS_INTEGER (unsigned char)); ASSERT (TYPE_IS_INTEGER (short int)); ASSERT (TYPE_IS_INTEGER (unsigned short int)); ASSERT (TYPE_IS_INTEGER (int)); ASSERT (TYPE_IS_INTEGER (unsigned int)); ASSERT (TYPE_IS_INTEGER (long int)); ASSERT (TYPE_IS_INTEGER (unsigned long int)); ASSERT (TYPE_IS_INTEGER (intmax_t)); ASSERT (TYPE_IS_INTEGER (uintmax_t)); ASSERT (! TYPE_IS_INTEGER (float)); ASSERT (! TYPE_IS_INTEGER (double)); ASSERT (! TYPE_IS_INTEGER (long double)); /* TYPE_SIGNED. */ /* VERIFY (! TYPE_SIGNED (bool)); // not guaranteed by gnulib substitute */ VERIFY (TYPE_SIGNED (signed char)); VERIFY (! TYPE_SIGNED (unsigned char)); VERIFY (TYPE_SIGNED (short int)); VERIFY (! TYPE_SIGNED (unsigned short int)); VERIFY (TYPE_SIGNED (int)); VERIFY (! TYPE_SIGNED (unsigned int)); VERIFY (TYPE_SIGNED (long int)); VERIFY (! TYPE_SIGNED (unsigned long int)); VERIFY (TYPE_SIGNED (intmax_t)); VERIFY (! TYPE_SIGNED (uintmax_t)); ASSERT (TYPE_SIGNED (float)); ASSERT (TYPE_SIGNED (double)); ASSERT (TYPE_SIGNED (long double)); /* Integer representation. */ VERIFY (INT_MIN + INT_MAX < 0 ? (TYPE_TWOS_COMPLEMENT (int) && ! TYPE_ONES_COMPLEMENT (int) && ! TYPE_SIGNED_MAGNITUDE (int)) : (! TYPE_TWOS_COMPLEMENT (int) && (TYPE_ONES_COMPLEMENT (int) || TYPE_SIGNED_MAGNITUDE (int)))); /* TYPE_MINIMUM, TYPE_MAXIMUM. */ VERIFY (TYPE_MINIMUM (char) == CHAR_MIN); VERIFY (TYPE_MAXIMUM (char) == CHAR_MAX); VERIFY (TYPE_MINIMUM (unsigned char) == 0); VERIFY (TYPE_MAXIMUM (unsigned char) == UCHAR_MAX); VERIFY (TYPE_MINIMUM (signed char) == SCHAR_MIN); VERIFY (TYPE_MAXIMUM (signed char) == SCHAR_MAX); VERIFY (TYPE_MINIMUM (short int) == SHRT_MIN); VERIFY (TYPE_MAXIMUM (short int) == SHRT_MAX); VERIFY (TYPE_MINIMUM (unsigned short int) == 0); VERIFY (TYPE_MAXIMUM (unsigned short int) == USHRT_MAX); VERIFY (TYPE_MINIMUM (int) == INT_MIN); VERIFY (TYPE_MAXIMUM (int) == INT_MAX); VERIFY (TYPE_MINIMUM (unsigned int) == 0); VERIFY (TYPE_MAXIMUM (unsigned int) == UINT_MAX); VERIFY (TYPE_MINIMUM (long int) == LONG_MIN); VERIFY (TYPE_MAXIMUM (long int) == LONG_MAX); VERIFY (TYPE_MINIMUM (unsigned long int) == 0); VERIFY (TYPE_MAXIMUM (unsigned long int) == ULONG_MAX); VERIFY (TYPE_MINIMUM (intmax_t) == INTMAX_MIN); VERIFY (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX); VERIFY (TYPE_MINIMUM (uintmax_t) == 0); VERIFY (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX); /* INT_BITS_STRLEN_BOUND. */ VERIFY (INT_BITS_STRLEN_BOUND (1) == 1); VERIFY (INT_BITS_STRLEN_BOUND (2620) == 789); /* INT_STRLEN_BOUND, INT_BUFSIZE_BOUND. */ #ifdef INT32_MAX /* POSIX guarantees int32_t; this ports to non-POSIX. */ VERIFY (INT_STRLEN_BOUND (int32_t) == sizeof ("-2147483648") - 1); VERIFY (INT_BUFSIZE_BOUND (int32_t) == sizeof ("-2147483648")); #endif #ifdef INT64_MAX VERIFY (INT_STRLEN_BOUND (int64_t) == sizeof ("-9223372036854775808") - 1); VERIFY (INT_BUFSIZE_BOUND (int64_t) == sizeof ("-9223372036854775808")); #endif /* All the INT__RANGE_OVERFLOW tests are equally valid as INT__OVERFLOW tests, so define a single macro to do both. */ #define CHECK_BINOP(op, a, b, min, max, overflow) \ (INT_##op##_RANGE_OVERFLOW (a, b, min, max) == (overflow) \ && INT_##op##_OVERFLOW (a, b) == (overflow)) #define CHECK_UNOP(op, a, min, max, overflow) \ (INT_##op##_RANGE_OVERFLOW (a, min, max) == (overflow) \ && INT_##op##_OVERFLOW (a) == (overflow)) /* INT__RANGE_OVERFLOW, INT__OVERFLOW. */ VERIFY (INT_ADD_RANGE_OVERFLOW (INT_MAX, 1, INT_MIN, INT_MAX)); VERIFY (INT_ADD_OVERFLOW (INT_MAX, 1)); VERIFY (CHECK_BINOP (ADD, INT_MAX, 1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (ADD, INT_MAX, -1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (ADD, INT_MIN, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (ADD, INT_MIN, -1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (ADD, UINT_MAX, 1u, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (ADD, 0u, 1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MAX, -1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, 1, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (SUBTRACT, INT_MIN, -1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, UINT_MAX, 1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (SUBTRACT, 0u, 1u, 0u, UINT_MAX, true)); VERIFY (CHECK_UNOP (NEGATE, INT_MIN, INT_MIN, INT_MAX, TYPE_TWOS_COMPLEMENT (int))); VERIFY (CHECK_UNOP (NEGATE, 0, INT_MIN, INT_MAX, false)); VERIFY (CHECK_UNOP (NEGATE, INT_MAX, INT_MIN, INT_MAX, false)); VERIFY (CHECK_UNOP (NEGATE, 0u, 0u, UINT_MAX, false)); VERIFY (CHECK_UNOP (NEGATE, 1u, 0u, UINT_MAX, true)); VERIFY (CHECK_UNOP (NEGATE, UINT_MAX, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MAX, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MAX, INT_MIN, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MAX, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, INT_MIN, INT_MIN, INT_MIN, INT_MAX, true)); VERIFY (CHECK_BINOP (MULTIPLY, -1, INT_MIN, INT_MIN, INT_MAX, INT_NEGATE_OVERFLOW (INT_MIN))); VERIFY (CHECK_BINOP (MULTIPLY, LONG_MIN / INT_MAX, (long int) INT_MAX, LONG_MIN, LONG_MIN, false)); VERIFY (CHECK_BINOP (DIVIDE, INT_MIN, -1, INT_MIN, INT_MAX, INT_NEGATE_OVERFLOW (INT_MIN))); VERIFY (CHECK_BINOP (DIVIDE, INT_MAX, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (DIVIDE, (unsigned int) INT_MIN, -1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (REMAINDER, INT_MIN, -1, INT_MIN, INT_MAX, INT_NEGATE_OVERFLOW (INT_MIN))); VERIFY (CHECK_BINOP (REMAINDER, INT_MAX, 1, INT_MIN, INT_MAX, false)); VERIFY (CHECK_BINOP (REMAINDER, (unsigned int) INT_MIN, -1u, 0u, UINT_MAX, false)); VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX, 1, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2 + 1, 1, 0u, UINT_MAX, true)); VERIFY (CHECK_BINOP (LEFT_SHIFT, UINT_MAX / 2, 1, 0u, UINT_MAX, false)); /* INT__OVERFLOW with mixed types. */ #define CHECK_SUM(a, b, overflow) \ VERIFY (INT_ADD_OVERFLOW (a, b) == (overflow)); \ VERIFY (INT_ADD_OVERFLOW (b, a) == (overflow)) CHECK_SUM (-1, LONG_MIN, true); CHECK_SUM (-1, UINT_MAX, false); CHECK_SUM (-1L, INT_MIN, INT_MIN == LONG_MIN); CHECK_SUM (0u, -1, true); CHECK_SUM (0u, 0, false); CHECK_SUM (0u, 1, false); CHECK_SUM (1, LONG_MAX, true); CHECK_SUM (1, UINT_MAX, true); CHECK_SUM (1L, INT_MAX, INT_MAX == LONG_MAX); CHECK_SUM (1u, INT_MAX, INT_MAX == UINT_MAX); CHECK_SUM (1u, INT_MIN, true); VERIFY (! INT_SUBTRACT_OVERFLOW (INT_MAX, 1u)); VERIFY (! INT_SUBTRACT_OVERFLOW (UINT_MAX, 1)); VERIFY (! INT_SUBTRACT_OVERFLOW (0u, -1)); VERIFY (INT_SUBTRACT_OVERFLOW (UINT_MAX, -1)); VERIFY (INT_SUBTRACT_OVERFLOW (INT_MIN, 1u)); VERIFY (INT_SUBTRACT_OVERFLOW (-1, 0u)); #define CHECK_PRODUCT(a, b, overflow) \ VERIFY (INT_MULTIPLY_OVERFLOW (a, b) == (overflow)); \ VERIFY (INT_MULTIPLY_OVERFLOW (b, a) == (overflow)) CHECK_PRODUCT (-1, 1u, true); CHECK_PRODUCT (-1, INT_MIN, INT_NEGATE_OVERFLOW (INT_MIN)); CHECK_PRODUCT (-1, UINT_MAX, true); CHECK_PRODUCT (-12345, LONG_MAX / -12345 - 1, true); CHECK_PRODUCT (-12345, LONG_MAX / -12345, false); CHECK_PRODUCT (0, -1, false); CHECK_PRODUCT (0, 0, false); CHECK_PRODUCT (0, 0u, false); CHECK_PRODUCT (0, 1, false); CHECK_PRODUCT (0, INT_MAX, false); CHECK_PRODUCT (0, INT_MIN, false); CHECK_PRODUCT (0, UINT_MAX, false); CHECK_PRODUCT (0u, -1, false); CHECK_PRODUCT (0u, 0, false); CHECK_PRODUCT (0u, 0u, false); CHECK_PRODUCT (0u, 1, false); CHECK_PRODUCT (0u, INT_MAX, false); CHECK_PRODUCT (0u, INT_MIN, false); CHECK_PRODUCT (0u, UINT_MAX, false); CHECK_PRODUCT (1, INT_MAX, false); CHECK_PRODUCT (1, INT_MIN, false); CHECK_PRODUCT (1, UINT_MAX, false); CHECK_PRODUCT (1u, INT_MIN, true); CHECK_PRODUCT (1u, INT_MAX, UINT_MAX < INT_MAX); CHECK_PRODUCT (INT_MAX, UINT_MAX, true); CHECK_PRODUCT (INT_MAX, ULONG_MAX, true); CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN - 1, true); CHECK_PRODUCT (INT_MIN, LONG_MAX / INT_MIN, false); CHECK_PRODUCT (INT_MIN, UINT_MAX, true); CHECK_PRODUCT (INT_MIN, ULONG_MAX, true); VERIFY (INT_DIVIDE_OVERFLOW (INT_MIN, -1L) == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN)); VERIFY (! INT_DIVIDE_OVERFLOW (INT_MIN, UINT_MAX)); VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINTMAX_MAX)); VERIFY (! INT_DIVIDE_OVERFLOW (INTMAX_MIN, UINT_MAX)); VERIFY (INT_DIVIDE_OVERFLOW (-11, 10u)); VERIFY (INT_DIVIDE_OVERFLOW (-10, 10u)); VERIFY (! INT_DIVIDE_OVERFLOW (-9, 10u)); VERIFY (INT_DIVIDE_OVERFLOW (11u, -10)); VERIFY (INT_DIVIDE_OVERFLOW (10u, -10)); VERIFY (! INT_DIVIDE_OVERFLOW (9u, -10)); VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, -1L) == (TYPE_TWOS_COMPLEMENT (long int) && INT_MIN == LONG_MIN)); VERIFY (INT_REMAINDER_OVERFLOW (-1, UINT_MAX)); VERIFY (INT_REMAINDER_OVERFLOW ((intmax_t) -1, UINTMAX_MAX)); VERIFY (INT_REMAINDER_OVERFLOW (INTMAX_MIN, UINT_MAX) == (INTMAX_MAX < UINT_MAX && - (unsigned int) INTMAX_MIN % UINT_MAX != 0)); VERIFY (INT_REMAINDER_OVERFLOW (INT_MIN, ULONG_MAX) == (INT_MIN % ULONG_MAX != 1)); VERIFY (! INT_REMAINDER_OVERFLOW (1u, -1)); VERIFY (! INT_REMAINDER_OVERFLOW (37*39u, -39)); VERIFY (INT_REMAINDER_OVERFLOW (37*39u + 1, -39)); VERIFY (INT_REMAINDER_OVERFLOW (37*39u - 1, -39)); VERIFY (! INT_REMAINDER_OVERFLOW (LONG_MAX, -INT_MAX)); return 0; } libidn-1.28/lib/gltests/test-verify.c0000644000000000000000000000350312153706107014457 00000000000000/* Test the "verify" module. Copyright (C) 2005, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible. */ #include #include "verify.h" #ifndef EXP_FAIL # define EXP_FAIL 0 #endif int x; enum { a, b, c }; #if EXP_FAIL == 1 verify (x >= 0); /* should give ERROR: non-constant expression */ #endif verify (c == 2); /* should be ok */ #if EXP_FAIL == 2 verify (1 + 1 == 3); /* should give ERROR */ #endif verify (1 == 1); verify (1 == 1); /* should be ok */ enum { item = verify_true (1 == 1) * 0 + 17 /* should be ok */ }; static int function (int n) { #if EXP_FAIL == 3 verify (n >= 0); /* should give ERROR: non-constant expression */ #endif verify (c == 2); /* should be ok */ #if EXP_FAIL == 4 verify (1 + 1 == 3); /* should give ERROR */ #endif verify (1 == 1); verify (1 == 1); /* should be ok */ if (n) return ((void) verify_expr (1 == 1, 1), verify_expr (1 == 1, 8)); /* should be ok */ #if EXP_FAIL == 5 return verify_expr (1 == 2, 5); /* should give ERROR */ #endif return 0; } int main (void) { return !(function (0) == 0 && function (1) == 8); } libidn-1.28/lib/gltests/localename.c0000644000000000000000000024126512153706107014307 00000000000000/* Determine name of the currently selected locale. Copyright (C) 1995-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Ulrich Drepper , 1995. */ /* Native Windows code written by Tor Lillqvist . */ /* Mac OS X code written by Bruno Haible . */ #include /* Specification. */ #ifdef IN_LIBINTL # include "gettextP.h" #else # include "localename.h" #endif #include #include #include #include #include #if HAVE_USELOCALE /* Mac OS X 10.5 defines the locale_t type in . */ # if defined __APPLE__ && defined __MACH__ # include # endif # include # if !defined IN_LIBINTL # include "glthread/lock.h" # endif #endif #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE # include # if HAVE_CFLOCALECOPYCURRENT # include # elif HAVE_CFPREFERENCESCOPYAPPVALUE # include # endif #endif #if defined _WIN32 || defined __WIN32__ # define WINDOWS_NATIVE #endif #if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */ # define WIN32_LEAN_AND_MEAN # include /* List of language codes, sorted by value: 0x01 LANG_ARABIC 0x02 LANG_BULGARIAN 0x03 LANG_CATALAN 0x04 LANG_CHINESE 0x05 LANG_CZECH 0x06 LANG_DANISH 0x07 LANG_GERMAN 0x08 LANG_GREEK 0x09 LANG_ENGLISH 0x0a LANG_SPANISH 0x0b LANG_FINNISH 0x0c LANG_FRENCH 0x0d LANG_HEBREW 0x0e LANG_HUNGARIAN 0x0f LANG_ICELANDIC 0x10 LANG_ITALIAN 0x11 LANG_JAPANESE 0x12 LANG_KOREAN 0x13 LANG_DUTCH 0x14 LANG_NORWEGIAN 0x15 LANG_POLISH 0x16 LANG_PORTUGUESE 0x17 LANG_ROMANSH 0x18 LANG_ROMANIAN 0x19 LANG_RUSSIAN 0x1a LANG_CROATIAN == LANG_SERBIAN 0x1b LANG_SLOVAK 0x1c LANG_ALBANIAN 0x1d LANG_SWEDISH 0x1e LANG_THAI 0x1f LANG_TURKISH 0x20 LANG_URDU 0x21 LANG_INDONESIAN 0x22 LANG_UKRAINIAN 0x23 LANG_BELARUSIAN 0x24 LANG_SLOVENIAN 0x25 LANG_ESTONIAN 0x26 LANG_LATVIAN 0x27 LANG_LITHUANIAN 0x28 LANG_TAJIK 0x29 LANG_FARSI 0x2a LANG_VIETNAMESE 0x2b LANG_ARMENIAN 0x2c LANG_AZERI 0x2d LANG_BASQUE 0x2e LANG_SORBIAN 0x2f LANG_MACEDONIAN 0x30 LANG_SUTU 0x31 LANG_TSONGA 0x32 LANG_TSWANA 0x33 LANG_VENDA 0x34 LANG_XHOSA 0x35 LANG_ZULU 0x36 LANG_AFRIKAANS 0x37 LANG_GEORGIAN 0x38 LANG_FAEROESE 0x39 LANG_HINDI 0x3a LANG_MALTESE 0x3b LANG_SAMI 0x3c LANG_GAELIC 0x3d LANG_YIDDISH 0x3e LANG_MALAY 0x3f LANG_KAZAK 0x40 LANG_KYRGYZ 0x41 LANG_SWAHILI 0x42 LANG_TURKMEN 0x43 LANG_UZBEK 0x44 LANG_TATAR 0x45 LANG_BENGALI 0x46 LANG_PUNJABI 0x47 LANG_GUJARATI 0x48 LANG_ORIYA 0x49 LANG_TAMIL 0x4a LANG_TELUGU 0x4b LANG_KANNADA 0x4c LANG_MALAYALAM 0x4d LANG_ASSAMESE 0x4e LANG_MARATHI 0x4f LANG_SANSKRIT 0x50 LANG_MONGOLIAN 0x51 LANG_TIBETAN 0x52 LANG_WELSH 0x53 LANG_CAMBODIAN 0x54 LANG_LAO 0x55 LANG_BURMESE 0x56 LANG_GALICIAN 0x57 LANG_KONKANI 0x58 LANG_MANIPURI 0x59 LANG_SINDHI 0x5a LANG_SYRIAC 0x5b LANG_SINHALESE 0x5c LANG_CHEROKEE 0x5d LANG_INUKTITUT 0x5e LANG_AMHARIC 0x5f LANG_TAMAZIGHT 0x60 LANG_KASHMIRI 0x61 LANG_NEPALI 0x62 LANG_FRISIAN 0x63 LANG_PASHTO 0x64 LANG_TAGALOG 0x65 LANG_DIVEHI 0x66 LANG_EDO 0x67 LANG_FULFULDE 0x68 LANG_HAUSA 0x69 LANG_IBIBIO 0x6a LANG_YORUBA 0x6d LANG_BASHKIR 0x6e LANG_LUXEMBOURGISH 0x6f LANG_GREENLANDIC 0x70 LANG_IGBO 0x71 LANG_KANURI 0x72 LANG_OROMO 0x73 LANG_TIGRINYA 0x74 LANG_GUARANI 0x75 LANG_HAWAIIAN 0x76 LANG_LATIN 0x77 LANG_SOMALI 0x78 LANG_YI 0x79 LANG_PAPIAMENTU 0x7a LANG_MAPUDUNGUN 0x7c LANG_MOHAWK 0x7e LANG_BRETON 0x82 LANG_OCCITAN 0x83 LANG_CORSICAN 0x84 LANG_ALSATIAN 0x85 LANG_YAKUT 0x86 LANG_KICHE 0x87 LANG_KINYARWANDA 0x88 LANG_WOLOF 0x8c LANG_DARI 0x91 LANG_SCOTTISH_GAELIC */ /* Mingw headers don't have latest language and sublanguage codes. */ # ifndef LANG_AFRIKAANS # define LANG_AFRIKAANS 0x36 # endif # ifndef LANG_ALBANIAN # define LANG_ALBANIAN 0x1c # endif # ifndef LANG_ALSATIAN # define LANG_ALSATIAN 0x84 # endif # ifndef LANG_AMHARIC # define LANG_AMHARIC 0x5e # endif # ifndef LANG_ARABIC # define LANG_ARABIC 0x01 # endif # ifndef LANG_ARMENIAN # define LANG_ARMENIAN 0x2b # endif # ifndef LANG_ASSAMESE # define LANG_ASSAMESE 0x4d # endif # ifndef LANG_AZERI # define LANG_AZERI 0x2c # endif # ifndef LANG_BASHKIR # define LANG_BASHKIR 0x6d # endif # ifndef LANG_BASQUE # define LANG_BASQUE 0x2d # endif # ifndef LANG_BELARUSIAN # define LANG_BELARUSIAN 0x23 # endif # ifndef LANG_BENGALI # define LANG_BENGALI 0x45 # endif # ifndef LANG_BRETON # define LANG_BRETON 0x7e # endif # ifndef LANG_BURMESE # define LANG_BURMESE 0x55 # endif # ifndef LANG_CAMBODIAN # define LANG_CAMBODIAN 0x53 # endif # ifndef LANG_CATALAN # define LANG_CATALAN 0x03 # endif # ifndef LANG_CHEROKEE # define LANG_CHEROKEE 0x5c # endif # ifndef LANG_CORSICAN # define LANG_CORSICAN 0x83 # endif # ifndef LANG_DARI # define LANG_DARI 0x8c # endif # ifndef LANG_DIVEHI # define LANG_DIVEHI 0x65 # endif # ifndef LANG_EDO # define LANG_EDO 0x66 # endif # ifndef LANG_ESTONIAN # define LANG_ESTONIAN 0x25 # endif # ifndef LANG_FAEROESE # define LANG_FAEROESE 0x38 # endif # ifndef LANG_FARSI # define LANG_FARSI 0x29 # endif # ifndef LANG_FRISIAN # define LANG_FRISIAN 0x62 # endif # ifndef LANG_FULFULDE # define LANG_FULFULDE 0x67 # endif # ifndef LANG_GAELIC # define LANG_GAELIC 0x3c # endif # ifndef LANG_GALICIAN # define LANG_GALICIAN 0x56 # endif # ifndef LANG_GEORGIAN # define LANG_GEORGIAN 0x37 # endif # ifndef LANG_GREENLANDIC # define LANG_GREENLANDIC 0x6f # endif # ifndef LANG_GUARANI # define LANG_GUARANI 0x74 # endif # ifndef LANG_GUJARATI # define LANG_GUJARATI 0x47 # endif # ifndef LANG_HAUSA # define LANG_HAUSA 0x68 # endif # ifndef LANG_HAWAIIAN # define LANG_HAWAIIAN 0x75 # endif # ifndef LANG_HEBREW # define LANG_HEBREW 0x0d # endif # ifndef LANG_HINDI # define LANG_HINDI 0x39 # endif # ifndef LANG_IBIBIO # define LANG_IBIBIO 0x69 # endif # ifndef LANG_IGBO # define LANG_IGBO 0x70 # endif # ifndef LANG_INDONESIAN # define LANG_INDONESIAN 0x21 # endif # ifndef LANG_INUKTITUT # define LANG_INUKTITUT 0x5d # endif # ifndef LANG_KANNADA # define LANG_KANNADA 0x4b # endif # ifndef LANG_KANURI # define LANG_KANURI 0x71 # endif # ifndef LANG_KASHMIRI # define LANG_KASHMIRI 0x60 # endif # ifndef LANG_KAZAK # define LANG_KAZAK 0x3f # endif # ifndef LANG_KICHE # define LANG_KICHE 0x86 # endif # ifndef LANG_KINYARWANDA # define LANG_KINYARWANDA 0x87 # endif # ifndef LANG_KONKANI # define LANG_KONKANI 0x57 # endif # ifndef LANG_KYRGYZ # define LANG_KYRGYZ 0x40 # endif # ifndef LANG_LAO # define LANG_LAO 0x54 # endif # ifndef LANG_LATIN # define LANG_LATIN 0x76 # endif # ifndef LANG_LATVIAN # define LANG_LATVIAN 0x26 # endif # ifndef LANG_LITHUANIAN # define LANG_LITHUANIAN 0x27 # endif # ifndef LANG_LUXEMBOURGISH # define LANG_LUXEMBOURGISH 0x6e # endif # ifndef LANG_MACEDONIAN # define LANG_MACEDONIAN 0x2f # endif # ifndef LANG_MALAY # define LANG_MALAY 0x3e # endif # ifndef LANG_MALAYALAM # define LANG_MALAYALAM 0x4c # endif # ifndef LANG_MALTESE # define LANG_MALTESE 0x3a # endif # ifndef LANG_MANIPURI # define LANG_MANIPURI 0x58 # endif # ifndef LANG_MAORI # define LANG_MAORI 0x81 # endif # ifndef LANG_MAPUDUNGUN # define LANG_MAPUDUNGUN 0x7a # endif # ifndef LANG_MARATHI # define LANG_MARATHI 0x4e # endif # ifndef LANG_MOHAWK # define LANG_MOHAWK 0x7c # endif # ifndef LANG_MONGOLIAN # define LANG_MONGOLIAN 0x50 # endif # ifndef LANG_NEPALI # define LANG_NEPALI 0x61 # endif # ifndef LANG_OCCITAN # define LANG_OCCITAN 0x82 # endif # ifndef LANG_ORIYA # define LANG_ORIYA 0x48 # endif # ifndef LANG_OROMO # define LANG_OROMO 0x72 # endif # ifndef LANG_PAPIAMENTU # define LANG_PAPIAMENTU 0x79 # endif # ifndef LANG_PASHTO # define LANG_PASHTO 0x63 # endif # ifndef LANG_PUNJABI # define LANG_PUNJABI 0x46 # endif # ifndef LANG_QUECHUA # define LANG_QUECHUA 0x6b # endif # ifndef LANG_ROMANSH # define LANG_ROMANSH 0x17 # endif # ifndef LANG_SAMI # define LANG_SAMI 0x3b # endif # ifndef LANG_SANSKRIT # define LANG_SANSKRIT 0x4f # endif # ifndef LANG_SCOTTISH_GAELIC # define LANG_SCOTTISH_GAELIC 0x91 # endif # ifndef LANG_SERBIAN # define LANG_SERBIAN 0x1a # endif # ifndef LANG_SINDHI # define LANG_SINDHI 0x59 # endif # ifndef LANG_SINHALESE # define LANG_SINHALESE 0x5b # endif # ifndef LANG_SLOVAK # define LANG_SLOVAK 0x1b # endif # ifndef LANG_SOMALI # define LANG_SOMALI 0x77 # endif # ifndef LANG_SORBIAN # define LANG_SORBIAN 0x2e # endif # ifndef LANG_SOTHO # define LANG_SOTHO 0x6c # endif # ifndef LANG_SUTU # define LANG_SUTU 0x30 # endif # ifndef LANG_SWAHILI # define LANG_SWAHILI 0x41 # endif # ifndef LANG_SYRIAC # define LANG_SYRIAC 0x5a # endif # ifndef LANG_TAGALOG # define LANG_TAGALOG 0x64 # endif # ifndef LANG_TAJIK # define LANG_TAJIK 0x28 # endif # ifndef LANG_TAMAZIGHT # define LANG_TAMAZIGHT 0x5f # endif # ifndef LANG_TAMIL # define LANG_TAMIL 0x49 # endif # ifndef LANG_TATAR # define LANG_TATAR 0x44 # endif # ifndef LANG_TELUGU # define LANG_TELUGU 0x4a # endif # ifndef LANG_THAI # define LANG_THAI 0x1e # endif # ifndef LANG_TIBETAN # define LANG_TIBETAN 0x51 # endif # ifndef LANG_TIGRINYA # define LANG_TIGRINYA 0x73 # endif # ifndef LANG_TSONGA # define LANG_TSONGA 0x31 # endif # ifndef LANG_TSWANA # define LANG_TSWANA 0x32 # endif # ifndef LANG_TURKMEN # define LANG_TURKMEN 0x42 # endif # ifndef LANG_UIGHUR # define LANG_UIGHUR 0x80 # endif # ifndef LANG_UKRAINIAN # define LANG_UKRAINIAN 0x22 # endif # ifndef LANG_URDU # define LANG_URDU 0x20 # endif # ifndef LANG_UZBEK # define LANG_UZBEK 0x43 # endif # ifndef LANG_VENDA # define LANG_VENDA 0x33 # endif # ifndef LANG_VIETNAMESE # define LANG_VIETNAMESE 0x2a # endif # ifndef LANG_WELSH # define LANG_WELSH 0x52 # endif # ifndef LANG_WOLOF # define LANG_WOLOF 0x88 # endif # ifndef LANG_XHOSA # define LANG_XHOSA 0x34 # endif # ifndef LANG_YAKUT # define LANG_YAKUT 0x85 # endif # ifndef LANG_YI # define LANG_YI 0x78 # endif # ifndef LANG_YIDDISH # define LANG_YIDDISH 0x3d # endif # ifndef LANG_YORUBA # define LANG_YORUBA 0x6a # endif # ifndef LANG_ZULU # define LANG_ZULU 0x35 # endif # ifndef SUBLANG_AFRIKAANS_SOUTH_AFRICA # define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_ALBANIAN_ALBANIA # define SUBLANG_ALBANIAN_ALBANIA 0x01 # endif # ifndef SUBLANG_ALSATIAN_FRANCE # define SUBLANG_ALSATIAN_FRANCE 0x01 # endif # ifndef SUBLANG_AMHARIC_ETHIOPIA # define SUBLANG_AMHARIC_ETHIOPIA 0x01 # endif # ifndef SUBLANG_ARABIC_SAUDI_ARABIA # define SUBLANG_ARABIC_SAUDI_ARABIA 0x01 # endif # ifndef SUBLANG_ARABIC_IRAQ # define SUBLANG_ARABIC_IRAQ 0x02 # endif # ifndef SUBLANG_ARABIC_EGYPT # define SUBLANG_ARABIC_EGYPT 0x03 # endif # ifndef SUBLANG_ARABIC_LIBYA # define SUBLANG_ARABIC_LIBYA 0x04 # endif # ifndef SUBLANG_ARABIC_ALGERIA # define SUBLANG_ARABIC_ALGERIA 0x05 # endif # ifndef SUBLANG_ARABIC_MOROCCO # define SUBLANG_ARABIC_MOROCCO 0x06 # endif # ifndef SUBLANG_ARABIC_TUNISIA # define SUBLANG_ARABIC_TUNISIA 0x07 # endif # ifndef SUBLANG_ARABIC_OMAN # define SUBLANG_ARABIC_OMAN 0x08 # endif # ifndef SUBLANG_ARABIC_YEMEN # define SUBLANG_ARABIC_YEMEN 0x09 # endif # ifndef SUBLANG_ARABIC_SYRIA # define SUBLANG_ARABIC_SYRIA 0x0a # endif # ifndef SUBLANG_ARABIC_JORDAN # define SUBLANG_ARABIC_JORDAN 0x0b # endif # ifndef SUBLANG_ARABIC_LEBANON # define SUBLANG_ARABIC_LEBANON 0x0c # endif # ifndef SUBLANG_ARABIC_KUWAIT # define SUBLANG_ARABIC_KUWAIT 0x0d # endif # ifndef SUBLANG_ARABIC_UAE # define SUBLANG_ARABIC_UAE 0x0e # endif # ifndef SUBLANG_ARABIC_BAHRAIN # define SUBLANG_ARABIC_BAHRAIN 0x0f # endif # ifndef SUBLANG_ARABIC_QATAR # define SUBLANG_ARABIC_QATAR 0x10 # endif # ifndef SUBLANG_ARMENIAN_ARMENIA # define SUBLANG_ARMENIAN_ARMENIA 0x01 # endif # ifndef SUBLANG_ASSAMESE_INDIA # define SUBLANG_ASSAMESE_INDIA 0x01 # endif # ifndef SUBLANG_AZERI_LATIN # define SUBLANG_AZERI_LATIN 0x01 # endif # ifndef SUBLANG_AZERI_CYRILLIC # define SUBLANG_AZERI_CYRILLIC 0x02 # endif # ifndef SUBLANG_BASHKIR_RUSSIA # define SUBLANG_BASHKIR_RUSSIA 0x01 # endif # ifndef SUBLANG_BASQUE_BASQUE # define SUBLANG_BASQUE_BASQUE 0x01 # endif # ifndef SUBLANG_BELARUSIAN_BELARUS # define SUBLANG_BELARUSIAN_BELARUS 0x01 # endif # ifndef SUBLANG_BENGALI_INDIA # define SUBLANG_BENGALI_INDIA 0x01 # endif # ifndef SUBLANG_BENGALI_BANGLADESH # define SUBLANG_BENGALI_BANGLADESH 0x02 # endif # ifndef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN # define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05 # endif # ifndef SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC # define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08 # endif # ifndef SUBLANG_BRETON_FRANCE # define SUBLANG_BRETON_FRANCE 0x01 # endif # ifndef SUBLANG_BULGARIAN_BULGARIA # define SUBLANG_BULGARIAN_BULGARIA 0x01 # endif # ifndef SUBLANG_CAMBODIAN_CAMBODIA # define SUBLANG_CAMBODIAN_CAMBODIA 0x01 # endif # ifndef SUBLANG_CATALAN_SPAIN # define SUBLANG_CATALAN_SPAIN 0x01 # endif # ifndef SUBLANG_CORSICAN_FRANCE # define SUBLANG_CORSICAN_FRANCE 0x01 # endif # ifndef SUBLANG_CROATIAN_CROATIA # define SUBLANG_CROATIAN_CROATIA 0x01 # endif # ifndef SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN # define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04 # endif # ifndef SUBLANG_CHINESE_MACAU # define SUBLANG_CHINESE_MACAU 0x05 # endif # ifndef SUBLANG_CZECH_CZECH_REPUBLIC # define SUBLANG_CZECH_CZECH_REPUBLIC 0x01 # endif # ifndef SUBLANG_DANISH_DENMARK # define SUBLANG_DANISH_DENMARK 0x01 # endif # ifndef SUBLANG_DARI_AFGHANISTAN # define SUBLANG_DARI_AFGHANISTAN 0x01 # endif # ifndef SUBLANG_DIVEHI_MALDIVES # define SUBLANG_DIVEHI_MALDIVES 0x01 # endif # ifndef SUBLANG_DUTCH_SURINAM # define SUBLANG_DUTCH_SURINAM 0x03 # endif # ifndef SUBLANG_ENGLISH_SOUTH_AFRICA # define SUBLANG_ENGLISH_SOUTH_AFRICA 0x07 # endif # ifndef SUBLANG_ENGLISH_JAMAICA # define SUBLANG_ENGLISH_JAMAICA 0x08 # endif # ifndef SUBLANG_ENGLISH_CARIBBEAN # define SUBLANG_ENGLISH_CARIBBEAN 0x09 # endif # ifndef SUBLANG_ENGLISH_BELIZE # define SUBLANG_ENGLISH_BELIZE 0x0a # endif # ifndef SUBLANG_ENGLISH_TRINIDAD # define SUBLANG_ENGLISH_TRINIDAD 0x0b # endif # ifndef SUBLANG_ENGLISH_ZIMBABWE # define SUBLANG_ENGLISH_ZIMBABWE 0x0c # endif # ifndef SUBLANG_ENGLISH_PHILIPPINES # define SUBLANG_ENGLISH_PHILIPPINES 0x0d # endif # ifndef SUBLANG_ENGLISH_INDONESIA # define SUBLANG_ENGLISH_INDONESIA 0x0e # endif # ifndef SUBLANG_ENGLISH_HONGKONG # define SUBLANG_ENGLISH_HONGKONG 0x0f # endif # ifndef SUBLANG_ENGLISH_INDIA # define SUBLANG_ENGLISH_INDIA 0x10 # endif # ifndef SUBLANG_ENGLISH_MALAYSIA # define SUBLANG_ENGLISH_MALAYSIA 0x11 # endif # ifndef SUBLANG_ENGLISH_SINGAPORE # define SUBLANG_ENGLISH_SINGAPORE 0x12 # endif # ifndef SUBLANG_ESTONIAN_ESTONIA # define SUBLANG_ESTONIAN_ESTONIA 0x01 # endif # ifndef SUBLANG_FAEROESE_FAROE_ISLANDS # define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01 # endif # ifndef SUBLANG_FARSI_IRAN # define SUBLANG_FARSI_IRAN 0x01 # endif # ifndef SUBLANG_FINNISH_FINLAND # define SUBLANG_FINNISH_FINLAND 0x01 # endif # ifndef SUBLANG_FRENCH_LUXEMBOURG # define SUBLANG_FRENCH_LUXEMBOURG 0x05 # endif # ifndef SUBLANG_FRENCH_MONACO # define SUBLANG_FRENCH_MONACO 0x06 # endif # ifndef SUBLANG_FRENCH_WESTINDIES # define SUBLANG_FRENCH_WESTINDIES 0x07 # endif # ifndef SUBLANG_FRENCH_REUNION # define SUBLANG_FRENCH_REUNION 0x08 # endif # ifndef SUBLANG_FRENCH_CONGO # define SUBLANG_FRENCH_CONGO 0x09 # endif # ifndef SUBLANG_FRENCH_SENEGAL # define SUBLANG_FRENCH_SENEGAL 0x0a # endif # ifndef SUBLANG_FRENCH_CAMEROON # define SUBLANG_FRENCH_CAMEROON 0x0b # endif # ifndef SUBLANG_FRENCH_COTEDIVOIRE # define SUBLANG_FRENCH_COTEDIVOIRE 0x0c # endif # ifndef SUBLANG_FRENCH_MALI # define SUBLANG_FRENCH_MALI 0x0d # endif # ifndef SUBLANG_FRENCH_MOROCCO # define SUBLANG_FRENCH_MOROCCO 0x0e # endif # ifndef SUBLANG_FRENCH_HAITI # define SUBLANG_FRENCH_HAITI 0x0f # endif # ifndef SUBLANG_FRISIAN_NETHERLANDS # define SUBLANG_FRISIAN_NETHERLANDS 0x01 # endif # ifndef SUBLANG_GALICIAN_SPAIN # define SUBLANG_GALICIAN_SPAIN 0x01 # endif # ifndef SUBLANG_GEORGIAN_GEORGIA # define SUBLANG_GEORGIAN_GEORGIA 0x01 # endif # ifndef SUBLANG_GERMAN_LUXEMBOURG # define SUBLANG_GERMAN_LUXEMBOURG 0x04 # endif # ifndef SUBLANG_GERMAN_LIECHTENSTEIN # define SUBLANG_GERMAN_LIECHTENSTEIN 0x05 # endif # ifndef SUBLANG_GREEK_GREECE # define SUBLANG_GREEK_GREECE 0x01 # endif # ifndef SUBLANG_GREENLANDIC_GREENLAND # define SUBLANG_GREENLANDIC_GREENLAND 0x01 # endif # ifndef SUBLANG_GUJARATI_INDIA # define SUBLANG_GUJARATI_INDIA 0x01 # endif # ifndef SUBLANG_HAUSA_NIGERIA_LATIN # define SUBLANG_HAUSA_NIGERIA_LATIN 0x01 # endif # ifndef SUBLANG_HEBREW_ISRAEL # define SUBLANG_HEBREW_ISRAEL 0x01 # endif # ifndef SUBLANG_HINDI_INDIA # define SUBLANG_HINDI_INDIA 0x01 # endif # ifndef SUBLANG_HUNGARIAN_HUNGARY # define SUBLANG_HUNGARIAN_HUNGARY 0x01 # endif # ifndef SUBLANG_ICELANDIC_ICELAND # define SUBLANG_ICELANDIC_ICELAND 0x01 # endif # ifndef SUBLANG_IGBO_NIGERIA # define SUBLANG_IGBO_NIGERIA 0x01 # endif # ifndef SUBLANG_INDONESIAN_INDONESIA # define SUBLANG_INDONESIAN_INDONESIA 0x01 # endif # ifndef SUBLANG_INUKTITUT_CANADA # define SUBLANG_INUKTITUT_CANADA 0x01 # endif # undef SUBLANG_INUKTITUT_CANADA_LATIN # define SUBLANG_INUKTITUT_CANADA_LATIN 0x02 # undef SUBLANG_IRISH_IRELAND # define SUBLANG_IRISH_IRELAND 0x02 # ifndef SUBLANG_JAPANESE_JAPAN # define SUBLANG_JAPANESE_JAPAN 0x01 # endif # ifndef SUBLANG_KANNADA_INDIA # define SUBLANG_KANNADA_INDIA 0x01 # endif # ifndef SUBLANG_KASHMIRI_INDIA # define SUBLANG_KASHMIRI_INDIA 0x02 # endif # ifndef SUBLANG_KAZAK_KAZAKHSTAN # define SUBLANG_KAZAK_KAZAKHSTAN 0x01 # endif # ifndef SUBLANG_KICHE_GUATEMALA # define SUBLANG_KICHE_GUATEMALA 0x01 # endif # ifndef SUBLANG_KINYARWANDA_RWANDA # define SUBLANG_KINYARWANDA_RWANDA 0x01 # endif # ifndef SUBLANG_KONKANI_INDIA # define SUBLANG_KONKANI_INDIA 0x01 # endif # ifndef SUBLANG_KYRGYZ_KYRGYZSTAN # define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01 # endif # ifndef SUBLANG_LAO_LAOS # define SUBLANG_LAO_LAOS 0x01 # endif # ifndef SUBLANG_LATVIAN_LATVIA # define SUBLANG_LATVIAN_LATVIA 0x01 # endif # ifndef SUBLANG_LITHUANIAN_LITHUANIA # define SUBLANG_LITHUANIAN_LITHUANIA 0x01 # endif # undef SUBLANG_LOWER_SORBIAN_GERMANY # define SUBLANG_LOWER_SORBIAN_GERMANY 0x02 # ifndef SUBLANG_LUXEMBOURGISH_LUXEMBOURG # define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01 # endif # ifndef SUBLANG_MACEDONIAN_MACEDONIA # define SUBLANG_MACEDONIAN_MACEDONIA 0x01 # endif # ifndef SUBLANG_MALAY_MALAYSIA # define SUBLANG_MALAY_MALAYSIA 0x01 # endif # ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM # define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02 # endif # ifndef SUBLANG_MALAYALAM_INDIA # define SUBLANG_MALAYALAM_INDIA 0x01 # endif # ifndef SUBLANG_MALTESE_MALTA # define SUBLANG_MALTESE_MALTA 0x01 # endif # ifndef SUBLANG_MAORI_NEW_ZEALAND # define SUBLANG_MAORI_NEW_ZEALAND 0x01 # endif # ifndef SUBLANG_MAPUDUNGUN_CHILE # define SUBLANG_MAPUDUNGUN_CHILE 0x01 # endif # ifndef SUBLANG_MARATHI_INDIA # define SUBLANG_MARATHI_INDIA 0x01 # endif # ifndef SUBLANG_MOHAWK_CANADA # define SUBLANG_MOHAWK_CANADA 0x01 # endif # ifndef SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA # define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01 # endif # ifndef SUBLANG_MONGOLIAN_PRC # define SUBLANG_MONGOLIAN_PRC 0x02 # endif # ifndef SUBLANG_NEPALI_NEPAL # define SUBLANG_NEPALI_NEPAL 0x01 # endif # ifndef SUBLANG_NEPALI_INDIA # define SUBLANG_NEPALI_INDIA 0x02 # endif # ifndef SUBLANG_OCCITAN_FRANCE # define SUBLANG_OCCITAN_FRANCE 0x01 # endif # ifndef SUBLANG_ORIYA_INDIA # define SUBLANG_ORIYA_INDIA 0x01 # endif # ifndef SUBLANG_PASHTO_AFGHANISTAN # define SUBLANG_PASHTO_AFGHANISTAN 0x01 # endif # ifndef SUBLANG_POLISH_POLAND # define SUBLANG_POLISH_POLAND 0x01 # endif # ifndef SUBLANG_PUNJABI_INDIA # define SUBLANG_PUNJABI_INDIA 0x01 # endif # ifndef SUBLANG_PUNJABI_PAKISTAN # define SUBLANG_PUNJABI_PAKISTAN 0x02 # endif # ifndef SUBLANG_QUECHUA_BOLIVIA # define SUBLANG_QUECHUA_BOLIVIA 0x01 # endif # ifndef SUBLANG_QUECHUA_ECUADOR # define SUBLANG_QUECHUA_ECUADOR 0x02 # endif # ifndef SUBLANG_QUECHUA_PERU # define SUBLANG_QUECHUA_PERU 0x03 # endif # ifndef SUBLANG_ROMANIAN_ROMANIA # define SUBLANG_ROMANIAN_ROMANIA 0x01 # endif # ifndef SUBLANG_ROMANIAN_MOLDOVA # define SUBLANG_ROMANIAN_MOLDOVA 0x02 # endif # ifndef SUBLANG_ROMANSH_SWITZERLAND # define SUBLANG_ROMANSH_SWITZERLAND 0x01 # endif # ifndef SUBLANG_RUSSIAN_RUSSIA # define SUBLANG_RUSSIAN_RUSSIA 0x01 # endif # ifndef SUBLANG_RUSSIAN_MOLDAVIA # define SUBLANG_RUSSIAN_MOLDAVIA 0x02 # endif # ifndef SUBLANG_SAMI_NORTHERN_NORWAY # define SUBLANG_SAMI_NORTHERN_NORWAY 0x01 # endif # ifndef SUBLANG_SAMI_NORTHERN_SWEDEN # define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02 # endif # ifndef SUBLANG_SAMI_NORTHERN_FINLAND # define SUBLANG_SAMI_NORTHERN_FINLAND 0x03 # endif # ifndef SUBLANG_SAMI_LULE_NORWAY # define SUBLANG_SAMI_LULE_NORWAY 0x04 # endif # ifndef SUBLANG_SAMI_LULE_SWEDEN # define SUBLANG_SAMI_LULE_SWEDEN 0x05 # endif # ifndef SUBLANG_SAMI_SOUTHERN_NORWAY # define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06 # endif # ifndef SUBLANG_SAMI_SOUTHERN_SWEDEN # define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07 # endif # undef SUBLANG_SAMI_SKOLT_FINLAND # define SUBLANG_SAMI_SKOLT_FINLAND 0x08 # undef SUBLANG_SAMI_INARI_FINLAND # define SUBLANG_SAMI_INARI_FINLAND 0x09 # ifndef SUBLANG_SANSKRIT_INDIA # define SUBLANG_SANSKRIT_INDIA 0x01 # endif # ifndef SUBLANG_SERBIAN_LATIN # define SUBLANG_SERBIAN_LATIN 0x02 # endif # ifndef SUBLANG_SERBIAN_CYRILLIC # define SUBLANG_SERBIAN_CYRILLIC 0x03 # endif # ifndef SUBLANG_SINDHI_INDIA # define SUBLANG_SINDHI_INDIA 0x01 # endif # undef SUBLANG_SINDHI_PAKISTAN # define SUBLANG_SINDHI_PAKISTAN 0x02 # ifndef SUBLANG_SINDHI_AFGHANISTAN # define SUBLANG_SINDHI_AFGHANISTAN 0x02 # endif # ifndef SUBLANG_SINHALESE_SRI_LANKA # define SUBLANG_SINHALESE_SRI_LANKA 0x01 # endif # ifndef SUBLANG_SLOVAK_SLOVAKIA # define SUBLANG_SLOVAK_SLOVAKIA 0x01 # endif # ifndef SUBLANG_SLOVENIAN_SLOVENIA # define SUBLANG_SLOVENIAN_SLOVENIA 0x01 # endif # ifndef SUBLANG_SOTHO_SOUTH_AFRICA # define SUBLANG_SOTHO_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_SPANISH_GUATEMALA # define SUBLANG_SPANISH_GUATEMALA 0x04 # endif # ifndef SUBLANG_SPANISH_COSTA_RICA # define SUBLANG_SPANISH_COSTA_RICA 0x05 # endif # ifndef SUBLANG_SPANISH_PANAMA # define SUBLANG_SPANISH_PANAMA 0x06 # endif # ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC # define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07 # endif # ifndef SUBLANG_SPANISH_VENEZUELA # define SUBLANG_SPANISH_VENEZUELA 0x08 # endif # ifndef SUBLANG_SPANISH_COLOMBIA # define SUBLANG_SPANISH_COLOMBIA 0x09 # endif # ifndef SUBLANG_SPANISH_PERU # define SUBLANG_SPANISH_PERU 0x0a # endif # ifndef SUBLANG_SPANISH_ARGENTINA # define SUBLANG_SPANISH_ARGENTINA 0x0b # endif # ifndef SUBLANG_SPANISH_ECUADOR # define SUBLANG_SPANISH_ECUADOR 0x0c # endif # ifndef SUBLANG_SPANISH_CHILE # define SUBLANG_SPANISH_CHILE 0x0d # endif # ifndef SUBLANG_SPANISH_URUGUAY # define SUBLANG_SPANISH_URUGUAY 0x0e # endif # ifndef SUBLANG_SPANISH_PARAGUAY # define SUBLANG_SPANISH_PARAGUAY 0x0f # endif # ifndef SUBLANG_SPANISH_BOLIVIA # define SUBLANG_SPANISH_BOLIVIA 0x10 # endif # ifndef SUBLANG_SPANISH_EL_SALVADOR # define SUBLANG_SPANISH_EL_SALVADOR 0x11 # endif # ifndef SUBLANG_SPANISH_HONDURAS # define SUBLANG_SPANISH_HONDURAS 0x12 # endif # ifndef SUBLANG_SPANISH_NICARAGUA # define SUBLANG_SPANISH_NICARAGUA 0x13 # endif # ifndef SUBLANG_SPANISH_PUERTO_RICO # define SUBLANG_SPANISH_PUERTO_RICO 0x14 # endif # ifndef SUBLANG_SPANISH_US # define SUBLANG_SPANISH_US 0x15 # endif # ifndef SUBLANG_SWAHILI_KENYA # define SUBLANG_SWAHILI_KENYA 0x01 # endif # ifndef SUBLANG_SWEDISH_SWEDEN # define SUBLANG_SWEDISH_SWEDEN 0x01 # endif # ifndef SUBLANG_SWEDISH_FINLAND # define SUBLANG_SWEDISH_FINLAND 0x02 # endif # ifndef SUBLANG_SYRIAC_SYRIA # define SUBLANG_SYRIAC_SYRIA 0x01 # endif # ifndef SUBLANG_TAGALOG_PHILIPPINES # define SUBLANG_TAGALOG_PHILIPPINES 0x01 # endif # ifndef SUBLANG_TAJIK_TAJIKISTAN # define SUBLANG_TAJIK_TAJIKISTAN 0x01 # endif # ifndef SUBLANG_TAMAZIGHT_ARABIC # define SUBLANG_TAMAZIGHT_ARABIC 0x01 # endif # ifndef SUBLANG_TAMAZIGHT_ALGERIA_LATIN # define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02 # endif # ifndef SUBLANG_TAMIL_INDIA # define SUBLANG_TAMIL_INDIA 0x01 # endif # ifndef SUBLANG_TATAR_RUSSIA # define SUBLANG_TATAR_RUSSIA 0x01 # endif # ifndef SUBLANG_TELUGU_INDIA # define SUBLANG_TELUGU_INDIA 0x01 # endif # ifndef SUBLANG_THAI_THAILAND # define SUBLANG_THAI_THAILAND 0x01 # endif # ifndef SUBLANG_TIBETAN_PRC # define SUBLANG_TIBETAN_PRC 0x01 # endif # undef SUBLANG_TIBETAN_BHUTAN # define SUBLANG_TIBETAN_BHUTAN 0x02 # ifndef SUBLANG_TIGRINYA_ETHIOPIA # define SUBLANG_TIGRINYA_ETHIOPIA 0x01 # endif # ifndef SUBLANG_TIGRINYA_ERITREA # define SUBLANG_TIGRINYA_ERITREA 0x02 # endif # ifndef SUBLANG_TSWANA_SOUTH_AFRICA # define SUBLANG_TSWANA_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_TURKISH_TURKEY # define SUBLANG_TURKISH_TURKEY 0x01 # endif # ifndef SUBLANG_TURKMEN_TURKMENISTAN # define SUBLANG_TURKMEN_TURKMENISTAN 0x01 # endif # ifndef SUBLANG_UIGHUR_PRC # define SUBLANG_UIGHUR_PRC 0x01 # endif # ifndef SUBLANG_UKRAINIAN_UKRAINE # define SUBLANG_UKRAINIAN_UKRAINE 0x01 # endif # ifndef SUBLANG_UPPER_SORBIAN_GERMANY # define SUBLANG_UPPER_SORBIAN_GERMANY 0x01 # endif # ifndef SUBLANG_URDU_PAKISTAN # define SUBLANG_URDU_PAKISTAN 0x01 # endif # ifndef SUBLANG_URDU_INDIA # define SUBLANG_URDU_INDIA 0x02 # endif # ifndef SUBLANG_UZBEK_LATIN # define SUBLANG_UZBEK_LATIN 0x01 # endif # ifndef SUBLANG_UZBEK_CYRILLIC # define SUBLANG_UZBEK_CYRILLIC 0x02 # endif # ifndef SUBLANG_VIETNAMESE_VIETNAM # define SUBLANG_VIETNAMESE_VIETNAM 0x01 # endif # ifndef SUBLANG_WELSH_UNITED_KINGDOM # define SUBLANG_WELSH_UNITED_KINGDOM 0x01 # endif # ifndef SUBLANG_WOLOF_SENEGAL # define SUBLANG_WOLOF_SENEGAL 0x01 # endif # ifndef SUBLANG_XHOSA_SOUTH_AFRICA # define SUBLANG_XHOSA_SOUTH_AFRICA 0x01 # endif # ifndef SUBLANG_YAKUT_RUSSIA # define SUBLANG_YAKUT_RUSSIA 0x01 # endif # ifndef SUBLANG_YI_PRC # define SUBLANG_YI_PRC 0x01 # endif # ifndef SUBLANG_YORUBA_NIGERIA # define SUBLANG_YORUBA_NIGERIA 0x01 # endif # ifndef SUBLANG_ZULU_SOUTH_AFRICA # define SUBLANG_ZULU_SOUTH_AFRICA 0x01 # endif /* GetLocaleInfoA operations. */ # ifndef LOCALE_SNAME # define LOCALE_SNAME 0x5c # endif #endif #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer */ /* Canonicalize a Mac OS X locale name to a Unix locale name. NAME is a sufficiently large buffer. On input, it contains the Mac OS X locale name. On output, it contains the Unix locale name. */ # if !defined IN_LIBINTL static # endif void gl_locale_name_canonicalize (char *name) { /* This conversion is based on a posting by Deborah GoldSmith on 2005-03-08, http://lists.apple.com/archives/carbon-dev/2005/Mar/msg00293.html */ /* Convert legacy (NeXTstep inherited) English names to Unix (ISO 639 and ISO 3166) names. Prior to Mac OS X 10.3, there is no API for doing this. Therefore we do it ourselves, using a table based on the results of the Mac OS X 10.3.8 function CFLocaleCreateCanonicalLocaleIdentifierFromString(). */ typedef struct { const char legacy[21+1]; const char unixy[5+1]; } legacy_entry; static const legacy_entry legacy_table[] = { { "Afrikaans", "af" }, { "Albanian", "sq" }, { "Amharic", "am" }, { "Arabic", "ar" }, { "Armenian", "hy" }, { "Assamese", "as" }, { "Aymara", "ay" }, { "Azerbaijani", "az" }, { "Basque", "eu" }, { "Belarusian", "be" }, { "Belorussian", "be" }, { "Bengali", "bn" }, { "Brazilian Portugese", "pt_BR" }, { "Brazilian Portuguese", "pt_BR" }, { "Breton", "br" }, { "Bulgarian", "bg" }, { "Burmese", "my" }, { "Byelorussian", "be" }, { "Catalan", "ca" }, { "Chewa", "ny" }, { "Chichewa", "ny" }, { "Chinese", "zh" }, { "Chinese, Simplified", "zh_CN" }, { "Chinese, Traditional", "zh_TW" }, { "Chinese, Tradtional", "zh_TW" }, { "Croatian", "hr" }, { "Czech", "cs" }, { "Danish", "da" }, { "Dutch", "nl" }, { "Dzongkha", "dz" }, { "English", "en" }, { "Esperanto", "eo" }, { "Estonian", "et" }, { "Faroese", "fo" }, { "Farsi", "fa" }, { "Finnish", "fi" }, { "Flemish", "nl_BE" }, { "French", "fr" }, { "Galician", "gl" }, { "Gallegan", "gl" }, { "Georgian", "ka" }, { "German", "de" }, { "Greek", "el" }, { "Greenlandic", "kl" }, { "Guarani", "gn" }, { "Gujarati", "gu" }, { "Hawaiian", "haw" }, /* Yes, "haw", not "cpe". */ { "Hebrew", "he" }, { "Hindi", "hi" }, { "Hungarian", "hu" }, { "Icelandic", "is" }, { "Indonesian", "id" }, { "Inuktitut", "iu" }, { "Irish", "ga" }, { "Italian", "it" }, { "Japanese", "ja" }, { "Javanese", "jv" }, { "Kalaallisut", "kl" }, { "Kannada", "kn" }, { "Kashmiri", "ks" }, { "Kazakh", "kk" }, { "Khmer", "km" }, { "Kinyarwanda", "rw" }, { "Kirghiz", "ky" }, { "Korean", "ko" }, { "Kurdish", "ku" }, { "Latin", "la" }, { "Latvian", "lv" }, { "Lithuanian", "lt" }, { "Macedonian", "mk" }, { "Malagasy", "mg" }, { "Malay", "ms" }, { "Malayalam", "ml" }, { "Maltese", "mt" }, { "Manx", "gv" }, { "Marathi", "mr" }, { "Moldavian", "mo" }, { "Mongolian", "mn" }, { "Nepali", "ne" }, { "Norwegian", "nb" }, /* Yes, "nb", not the obsolete "no". */ { "Nyanja", "ny" }, { "Nynorsk", "nn" }, { "Oriya", "or" }, { "Oromo", "om" }, { "Panjabi", "pa" }, { "Pashto", "ps" }, { "Persian", "fa" }, { "Polish", "pl" }, { "Portuguese", "pt" }, { "Portuguese, Brazilian", "pt_BR" }, { "Punjabi", "pa" }, { "Pushto", "ps" }, { "Quechua", "qu" }, { "Romanian", "ro" }, { "Ruanda", "rw" }, { "Rundi", "rn" }, { "Russian", "ru" }, { "Sami", "se_NO" }, /* Not just "se". */ { "Sanskrit", "sa" }, { "Scottish", "gd" }, { "Serbian", "sr" }, { "Simplified Chinese", "zh_CN" }, { "Sindhi", "sd" }, { "Sinhalese", "si" }, { "Slovak", "sk" }, { "Slovenian", "sl" }, { "Somali", "so" }, { "Spanish", "es" }, { "Sundanese", "su" }, { "Swahili", "sw" }, { "Swedish", "sv" }, { "Tagalog", "tl" }, { "Tajik", "tg" }, { "Tajiki", "tg" }, { "Tamil", "ta" }, { "Tatar", "tt" }, { "Telugu", "te" }, { "Thai", "th" }, { "Tibetan", "bo" }, { "Tigrinya", "ti" }, { "Tongan", "to" }, { "Traditional Chinese", "zh_TW" }, { "Turkish", "tr" }, { "Turkmen", "tk" }, { "Uighur", "ug" }, { "Ukrainian", "uk" }, { "Urdu", "ur" }, { "Uzbek", "uz" }, { "Vietnamese", "vi" }, { "Welsh", "cy" }, { "Yiddish", "yi" } }; /* Convert new-style locale names with language tags (ISO 639 and ISO 15924) to Unix (ISO 639 and ISO 3166) names. */ typedef struct { const char langtag[7+1]; const char unixy[12+1]; } langtag_entry; static const langtag_entry langtag_table[] = { /* Mac OS X has "az-Arab", "az-Cyrl", "az-Latn". The default script for az on Unix is Latin. */ { "az-Latn", "az" }, /* Mac OS X has "ga-dots". Does not yet exist on Unix. */ { "ga-dots", "ga" }, /* Mac OS X has "kk-Cyrl". Does not yet exist on Unix. */ /* Mac OS X has "mn-Cyrl", "mn-Mong". The default script for mn on Unix is Cyrillic. */ { "mn-Cyrl", "mn" }, /* Mac OS X has "ms-Arab", "ms-Latn". The default script for ms on Unix is Latin. */ { "ms-Latn", "ms" }, /* Mac OS X has "tg-Cyrl". The default script for tg on Unix is Cyrillic. */ { "tg-Cyrl", "tg" }, /* Mac OS X has "tk-Cyrl". Does not yet exist on Unix. */ /* Mac OS X has "tt-Cyrl". The default script for tt on Unix is Cyrillic. */ { "tt-Cyrl", "tt" }, /* Mac OS X has "zh-Hans", "zh-Hant". Country codes are used to distinguish these on Unix. */ { "zh-Hans", "zh_CN" }, { "zh-Hant", "zh_TW" } }; /* Convert script names (ISO 15924) to Unix conventions. See http://www.unicode.org/iso15924/iso15924-codes.html */ typedef struct { const char script[4+1]; const char unixy[9+1]; } script_entry; static const script_entry script_table[] = { { "Arab", "arabic" }, { "Cyrl", "cyrillic" }, { "Mong", "mongolian" } }; /* Step 1: Convert using legacy_table. */ if (name[0] >= 'A' && name[0] <= 'Z') { unsigned int i1, i2; i1 = 0; i2 = sizeof (legacy_table) / sizeof (legacy_entry); while (i2 - i1 > 1) { /* At this point we know that if name occurs in legacy_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const legacy_entry *p = &legacy_table[i]; if (strcmp (name, p->legacy) < 0) i2 = i; else i1 = i; } if (strcmp (name, legacy_table[i1].legacy) == 0) { strcpy (name, legacy_table[i1].unixy); return; } } /* Step 2: Convert using langtag_table and script_table. */ if (strlen (name) == 7 && name[2] == '-') { unsigned int i1, i2; i1 = 0; i2 = sizeof (langtag_table) / sizeof (langtag_entry); while (i2 - i1 > 1) { /* At this point we know that if name occurs in langtag_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const langtag_entry *p = &langtag_table[i]; if (strcmp (name, p->langtag) < 0) i2 = i; else i1 = i; } if (strcmp (name, langtag_table[i1].langtag) == 0) { strcpy (name, langtag_table[i1].unixy); return; } i1 = 0; i2 = sizeof (script_table) / sizeof (script_entry); while (i2 - i1 > 1) { /* At this point we know that if (name + 3) occurs in script_table, its index must be >= i1 and < i2. */ unsigned int i = (i1 + i2) >> 1; const script_entry *p = &script_table[i]; if (strcmp (name + 3, p->script) < 0) i2 = i; else i1 = i; } if (strcmp (name + 3, script_table[i1].script) == 0) { name[2] = '@'; strcpy (name + 3, script_table[i1].unixy); return; } } /* Step 3: Convert new-style dash to Unix underscore. */ { char *p; for (p = name; *p != '\0'; p++) if (*p == '-') *p = '_'; } } #endif #if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */ /* Canonicalize a Windows native locale name to a Unix locale name. NAME is a sufficiently large buffer. On input, it contains the Windows locale name. On output, it contains the Unix locale name. */ # if !defined IN_LIBINTL static # endif void gl_locale_name_canonicalize (char *name) { /* FIXME: This is probably incomplete: it does not handle "zh-Hans" and "zh-Hant". */ char *p; for (p = name; *p != '\0'; p++) if (*p == '-') { *p = '_'; p++; for (; *p != '\0'; p++) { if (*p >= 'a' && *p <= 'z') *p += 'A' - 'a'; if (*p == '-') { *p = '\0'; return; } } return; } } # if !defined IN_LIBINTL static # endif const char * gl_locale_name_from_win32_LANGID (LANGID langid) { /* Activate the new code only when the GETTEXT_MUI environment variable is set, for the time being, since the new code is not well tested. */ if (getenv ("GETTEXT_MUI") != NULL) { static char namebuf[256]; /* Query the system's notion of locale name. On Windows95/98/ME, GetLocaleInfoA returns some incorrect results. But we don't need to support systems that are so old. */ if (GetLocaleInfoA (MAKELCID (langid, SORT_DEFAULT), LOCALE_SNAME, namebuf, sizeof (namebuf) - 1)) { /* Convert it to a Unix locale name. */ gl_locale_name_canonicalize (namebuf); return namebuf; } } /* Internet Explorer has an LCID to RFC3066 name mapping stored in HKEY_CLASSES_ROOT\Mime\Database\Rfc1766. But we better don't use that since IE's i18n subsystem is known to be inconsistent with the native Windows base (e.g. they have different character conversion facilities that produce different results). */ /* Use our own table. */ { int primary, sub; /* Split into language and territory part. */ primary = PRIMARYLANGID (langid); sub = SUBLANGID (langid); /* Dispatch on language. See also http://www.unicode.org/unicode/onlinedat/languages.html . For details about languages, see http://www.ethnologue.com/ . */ switch (primary) { case LANG_AFRIKAANS: switch (sub) { case SUBLANG_AFRIKAANS_SOUTH_AFRICA: return "af_ZA"; } return "af"; case LANG_ALBANIAN: switch (sub) { case SUBLANG_ALBANIAN_ALBANIA: return "sq_AL"; } return "sq"; case LANG_ALSATIAN: switch (sub) { case SUBLANG_ALSATIAN_FRANCE: return "gsw_FR"; } return "gsw"; case LANG_AMHARIC: switch (sub) { case SUBLANG_AMHARIC_ETHIOPIA: return "am_ET"; } return "am"; case LANG_ARABIC: switch (sub) { case SUBLANG_ARABIC_SAUDI_ARABIA: return "ar_SA"; case SUBLANG_ARABIC_IRAQ: return "ar_IQ"; case SUBLANG_ARABIC_EGYPT: return "ar_EG"; case SUBLANG_ARABIC_LIBYA: return "ar_LY"; case SUBLANG_ARABIC_ALGERIA: return "ar_DZ"; case SUBLANG_ARABIC_MOROCCO: return "ar_MA"; case SUBLANG_ARABIC_TUNISIA: return "ar_TN"; case SUBLANG_ARABIC_OMAN: return "ar_OM"; case SUBLANG_ARABIC_YEMEN: return "ar_YE"; case SUBLANG_ARABIC_SYRIA: return "ar_SY"; case SUBLANG_ARABIC_JORDAN: return "ar_JO"; case SUBLANG_ARABIC_LEBANON: return "ar_LB"; case SUBLANG_ARABIC_KUWAIT: return "ar_KW"; case SUBLANG_ARABIC_UAE: return "ar_AE"; case SUBLANG_ARABIC_BAHRAIN: return "ar_BH"; case SUBLANG_ARABIC_QATAR: return "ar_QA"; } return "ar"; case LANG_ARMENIAN: switch (sub) { case SUBLANG_ARMENIAN_ARMENIA: return "hy_AM"; } return "hy"; case LANG_ASSAMESE: switch (sub) { case SUBLANG_ASSAMESE_INDIA: return "as_IN"; } return "as"; case LANG_AZERI: switch (sub) { /* FIXME: Adjust this when Azerbaijani locales appear on Unix. */ case 0x1e: return "az@latin"; case SUBLANG_AZERI_LATIN: return "az_AZ@latin"; case 0x1d: return "az@cyrillic"; case SUBLANG_AZERI_CYRILLIC: return "az_AZ@cyrillic"; } return "az"; case LANG_BASHKIR: switch (sub) { case SUBLANG_BASHKIR_RUSSIA: return "ba_RU"; } return "ba"; case LANG_BASQUE: switch (sub) { case SUBLANG_BASQUE_BASQUE: return "eu_ES"; } return "eu"; /* Ambiguous: could be "eu_ES" or "eu_FR". */ case LANG_BELARUSIAN: switch (sub) { case SUBLANG_BELARUSIAN_BELARUS: return "be_BY"; } return "be"; case LANG_BENGALI: switch (sub) { case SUBLANG_BENGALI_INDIA: return "bn_IN"; case SUBLANG_BENGALI_BANGLADESH: return "bn_BD"; } return "bn"; case LANG_BRETON: switch (sub) { case SUBLANG_BRETON_FRANCE: return "br_FR"; } return "br"; case LANG_BULGARIAN: switch (sub) { case SUBLANG_BULGARIAN_BULGARIA: return "bg_BG"; } return "bg"; case LANG_BURMESE: switch (sub) { case SUBLANG_DEFAULT: return "my_MM"; } return "my"; case LANG_CAMBODIAN: switch (sub) { case SUBLANG_CAMBODIAN_CAMBODIA: return "km_KH"; } return "km"; case LANG_CATALAN: switch (sub) { case SUBLANG_CATALAN_SPAIN: return "ca_ES"; } return "ca"; case LANG_CHEROKEE: switch (sub) { case SUBLANG_DEFAULT: return "chr_US"; } return "chr"; case LANG_CHINESE: switch (sub) { case SUBLANG_CHINESE_TRADITIONAL: case 0x1f: return "zh_TW"; case SUBLANG_CHINESE_SIMPLIFIED: case 0x00: return "zh_CN"; case SUBLANG_CHINESE_HONGKONG: return "zh_HK"; /* traditional */ case SUBLANG_CHINESE_SINGAPORE: return "zh_SG"; /* simplified */ case SUBLANG_CHINESE_MACAU: return "zh_MO"; /* traditional */ } return "zh"; case LANG_CORSICAN: switch (sub) { case SUBLANG_CORSICAN_FRANCE: return "co_FR"; } return "co"; case LANG_CROATIAN: /* LANG_CROATIAN == LANG_SERBIAN == LANG_BOSNIAN * What used to be called Serbo-Croatian * should really now be two separate * languages because of political reasons. * (Says tml, who knows nothing about Serbian * or Croatian.) * (I can feel those flames coming already.) */ switch (sub) { /* Croatian */ case 0x00: return "hr"; case SUBLANG_CROATIAN_CROATIA: return "hr_HR"; case SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN: return "hr_BA"; /* Serbian */ case 0x1f: return "sr"; case 0x1c: return "sr"; /* latin */ case SUBLANG_SERBIAN_LATIN: return "sr_CS"; /* latin */ case 0x09: return "sr_RS"; /* latin */ case 0x0b: return "sr_ME"; /* latin */ case 0x06: return "sr_BA"; /* latin */ case 0x1b: return "sr@cyrillic"; case SUBLANG_SERBIAN_CYRILLIC: return "sr_CS@cyrillic"; case 0x0a: return "sr_RS@cyrillic"; case 0x0c: return "sr_ME@cyrillic"; case 0x07: return "sr_BA@cyrillic"; /* Bosnian */ case 0x1e: return "bs"; case 0x1a: return "bs"; /* latin */ case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN: return "bs_BA"; /* latin */ case 0x19: return "bs@cyrillic"; case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC: return "bs_BA@cyrillic"; } return "hr"; case LANG_CZECH: switch (sub) { case SUBLANG_CZECH_CZECH_REPUBLIC: return "cs_CZ"; } return "cs"; case LANG_DANISH: switch (sub) { case SUBLANG_DANISH_DENMARK: return "da_DK"; } return "da"; case LANG_DARI: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_DARI_AFGHANISTAN: return "prs_AF"; } return "prs"; case LANG_DIVEHI: switch (sub) { case SUBLANG_DIVEHI_MALDIVES: return "dv_MV"; } return "dv"; case LANG_DUTCH: switch (sub) { case SUBLANG_DUTCH: return "nl_NL"; case SUBLANG_DUTCH_BELGIAN: /* FLEMISH, VLAAMS */ return "nl_BE"; case SUBLANG_DUTCH_SURINAM: return "nl_SR"; } return "nl"; case LANG_EDO: switch (sub) { case SUBLANG_DEFAULT: return "bin_NG"; } return "bin"; case LANG_ENGLISH: switch (sub) { /* SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. Heh. I thought * English was the language spoken in England. * Oh well. */ case SUBLANG_ENGLISH_US: return "en_US"; case SUBLANG_ENGLISH_UK: return "en_GB"; case SUBLANG_ENGLISH_AUS: return "en_AU"; case SUBLANG_ENGLISH_CAN: return "en_CA"; case SUBLANG_ENGLISH_NZ: return "en_NZ"; case SUBLANG_ENGLISH_EIRE: return "en_IE"; case SUBLANG_ENGLISH_SOUTH_AFRICA: return "en_ZA"; case SUBLANG_ENGLISH_JAMAICA: return "en_JM"; case SUBLANG_ENGLISH_CARIBBEAN: return "en_GD"; /* Grenada? */ case SUBLANG_ENGLISH_BELIZE: return "en_BZ"; case SUBLANG_ENGLISH_TRINIDAD: return "en_TT"; case SUBLANG_ENGLISH_ZIMBABWE: return "en_ZW"; case SUBLANG_ENGLISH_PHILIPPINES: return "en_PH"; case SUBLANG_ENGLISH_INDONESIA: return "en_ID"; case SUBLANG_ENGLISH_HONGKONG: return "en_HK"; case SUBLANG_ENGLISH_INDIA: return "en_IN"; case SUBLANG_ENGLISH_MALAYSIA: return "en_MY"; case SUBLANG_ENGLISH_SINGAPORE: return "en_SG"; } return "en"; case LANG_ESTONIAN: switch (sub) { case SUBLANG_ESTONIAN_ESTONIA: return "et_EE"; } return "et"; case LANG_FAEROESE: switch (sub) { case SUBLANG_FAEROESE_FAROE_ISLANDS: return "fo_FO"; } return "fo"; case LANG_FARSI: switch (sub) { case SUBLANG_FARSI_IRAN: return "fa_IR"; } return "fa"; case LANG_FINNISH: switch (sub) { case SUBLANG_FINNISH_FINLAND: return "fi_FI"; } return "fi"; case LANG_FRENCH: switch (sub) { case SUBLANG_FRENCH: return "fr_FR"; case SUBLANG_FRENCH_BELGIAN: /* WALLOON */ return "fr_BE"; case SUBLANG_FRENCH_CANADIAN: return "fr_CA"; case SUBLANG_FRENCH_SWISS: return "fr_CH"; case SUBLANG_FRENCH_LUXEMBOURG: return "fr_LU"; case SUBLANG_FRENCH_MONACO: return "fr_MC"; case SUBLANG_FRENCH_WESTINDIES: return "fr"; /* Caribbean? */ case SUBLANG_FRENCH_REUNION: return "fr_RE"; case SUBLANG_FRENCH_CONGO: return "fr_CG"; case SUBLANG_FRENCH_SENEGAL: return "fr_SN"; case SUBLANG_FRENCH_CAMEROON: return "fr_CM"; case SUBLANG_FRENCH_COTEDIVOIRE: return "fr_CI"; case SUBLANG_FRENCH_MALI: return "fr_ML"; case SUBLANG_FRENCH_MOROCCO: return "fr_MA"; case SUBLANG_FRENCH_HAITI: return "fr_HT"; } return "fr"; case LANG_FRISIAN: switch (sub) { case SUBLANG_FRISIAN_NETHERLANDS: return "fy_NL"; } return "fy"; case LANG_FULFULDE: /* Spoken in Nigeria, Guinea, Senegal, Mali, Niger, Cameroon, Benin. */ switch (sub) { case SUBLANG_DEFAULT: return "ff_NG"; } return "ff"; case LANG_GAELIC: switch (sub) { case 0x01: /* SCOTTISH */ /* old, superseded by LANG_SCOTTISH_GAELIC */ return "gd_GB"; case SUBLANG_IRISH_IRELAND: return "ga_IE"; } return "ga"; case LANG_GALICIAN: switch (sub) { case SUBLANG_GALICIAN_SPAIN: return "gl_ES"; } return "gl"; case LANG_GEORGIAN: switch (sub) { case SUBLANG_GEORGIAN_GEORGIA: return "ka_GE"; } return "ka"; case LANG_GERMAN: switch (sub) { case SUBLANG_GERMAN: return "de_DE"; case SUBLANG_GERMAN_SWISS: return "de_CH"; case SUBLANG_GERMAN_AUSTRIAN: return "de_AT"; case SUBLANG_GERMAN_LUXEMBOURG: return "de_LU"; case SUBLANG_GERMAN_LIECHTENSTEIN: return "de_LI"; } return "de"; case LANG_GREEK: switch (sub) { case SUBLANG_GREEK_GREECE: return "el_GR"; } return "el"; case LANG_GREENLANDIC: switch (sub) { case SUBLANG_GREENLANDIC_GREENLAND: return "kl_GL"; } return "kl"; case LANG_GUARANI: switch (sub) { case SUBLANG_DEFAULT: return "gn_PY"; } return "gn"; case LANG_GUJARATI: switch (sub) { case SUBLANG_GUJARATI_INDIA: return "gu_IN"; } return "gu"; case LANG_HAUSA: switch (sub) { case 0x1f: return "ha"; case SUBLANG_HAUSA_NIGERIA_LATIN: return "ha_NG"; } return "ha"; case LANG_HAWAIIAN: /* FIXME: Do they mean Hawaiian ("haw_US", 1000 speakers) or Hawaii Creole English ("cpe_US", 600000 speakers)? */ switch (sub) { case SUBLANG_DEFAULT: return "cpe_US"; } return "cpe"; case LANG_HEBREW: switch (sub) { case SUBLANG_HEBREW_ISRAEL: return "he_IL"; } return "he"; case LANG_HINDI: switch (sub) { case SUBLANG_HINDI_INDIA: return "hi_IN"; } return "hi"; case LANG_HUNGARIAN: switch (sub) { case SUBLANG_HUNGARIAN_HUNGARY: return "hu_HU"; } return "hu"; case LANG_IBIBIO: switch (sub) { case SUBLANG_DEFAULT: return "nic_NG"; } return "nic"; case LANG_ICELANDIC: switch (sub) { case SUBLANG_ICELANDIC_ICELAND: return "is_IS"; } return "is"; case LANG_IGBO: switch (sub) { case SUBLANG_IGBO_NIGERIA: return "ig_NG"; } return "ig"; case LANG_INDONESIAN: switch (sub) { case SUBLANG_INDONESIAN_INDONESIA: return "id_ID"; } return "id"; case LANG_INUKTITUT: switch (sub) { case 0x1e: return "iu"; /* syllabic */ case SUBLANG_INUKTITUT_CANADA: return "iu_CA"; /* syllabic */ case 0x1f: return "iu@latin"; case SUBLANG_INUKTITUT_CANADA_LATIN: return "iu_CA@latin"; } return "iu"; case LANG_ITALIAN: switch (sub) { case SUBLANG_ITALIAN: return "it_IT"; case SUBLANG_ITALIAN_SWISS: return "it_CH"; } return "it"; case LANG_JAPANESE: switch (sub) { case SUBLANG_JAPANESE_JAPAN: return "ja_JP"; } return "ja"; case LANG_KANNADA: switch (sub) { case SUBLANG_KANNADA_INDIA: return "kn_IN"; } return "kn"; case LANG_KANURI: switch (sub) { case SUBLANG_DEFAULT: return "kr_NG"; } return "kr"; case LANG_KASHMIRI: switch (sub) { case SUBLANG_DEFAULT: return "ks_PK"; case SUBLANG_KASHMIRI_INDIA: return "ks_IN"; } return "ks"; case LANG_KAZAK: switch (sub) { case SUBLANG_KAZAK_KAZAKHSTAN: return "kk_KZ"; } return "kk"; case LANG_KICHE: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_KICHE_GUATEMALA: return "qut_GT"; } return "qut"; case LANG_KINYARWANDA: switch (sub) { case SUBLANG_KINYARWANDA_RWANDA: return "rw_RW"; } return "rw"; case LANG_KONKANI: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_KONKANI_INDIA: return "kok_IN"; } return "kok"; case LANG_KOREAN: switch (sub) { case SUBLANG_DEFAULT: return "ko_KR"; } return "ko"; case LANG_KYRGYZ: switch (sub) { case SUBLANG_KYRGYZ_KYRGYZSTAN: return "ky_KG"; } return "ky"; case LANG_LAO: switch (sub) { case SUBLANG_LAO_LAOS: return "lo_LA"; } return "lo"; case LANG_LATIN: switch (sub) { case SUBLANG_DEFAULT: return "la_VA"; } return "la"; case LANG_LATVIAN: switch (sub) { case SUBLANG_LATVIAN_LATVIA: return "lv_LV"; } return "lv"; case LANG_LITHUANIAN: switch (sub) { case SUBLANG_LITHUANIAN_LITHUANIA: return "lt_LT"; } return "lt"; case LANG_LUXEMBOURGISH: switch (sub) { case SUBLANG_LUXEMBOURGISH_LUXEMBOURG: return "lb_LU"; } return "lb"; case LANG_MACEDONIAN: switch (sub) { case SUBLANG_MACEDONIAN_MACEDONIA: return "mk_MK"; } return "mk"; case LANG_MALAY: switch (sub) { case SUBLANG_MALAY_MALAYSIA: return "ms_MY"; case SUBLANG_MALAY_BRUNEI_DARUSSALAM: return "ms_BN"; } return "ms"; case LANG_MALAYALAM: switch (sub) { case SUBLANG_MALAYALAM_INDIA: return "ml_IN"; } return "ml"; case LANG_MALTESE: switch (sub) { case SUBLANG_MALTESE_MALTA: return "mt_MT"; } return "mt"; case LANG_MANIPURI: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { case SUBLANG_DEFAULT: return "mni_IN"; } return "mni"; case LANG_MAORI: switch (sub) { case SUBLANG_MAORI_NEW_ZEALAND: return "mi_NZ"; } return "mi"; case LANG_MAPUDUNGUN: switch (sub) { case SUBLANG_MAPUDUNGUN_CHILE: return "arn_CL"; } return "arn"; case LANG_MARATHI: switch (sub) { case SUBLANG_MARATHI_INDIA: return "mr_IN"; } return "mr"; case LANG_MOHAWK: switch (sub) { case SUBLANG_MOHAWK_CANADA: return "moh_CA"; } return "moh"; case LANG_MONGOLIAN: switch (sub) { case SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA: case 0x1e: return "mn_MN"; case SUBLANG_MONGOLIAN_PRC: case 0x1f: return "mn_CN"; } return "mn"; /* Ambiguous: could be "mn_CN" or "mn_MN". */ case LANG_NEPALI: switch (sub) { case SUBLANG_NEPALI_NEPAL: return "ne_NP"; case SUBLANG_NEPALI_INDIA: return "ne_IN"; } return "ne"; case LANG_NORWEGIAN: switch (sub) { case 0x1f: return "nb"; case SUBLANG_NORWEGIAN_BOKMAL: return "nb_NO"; case 0x1e: return "nn"; case SUBLANG_NORWEGIAN_NYNORSK: return "nn_NO"; } return "no"; case LANG_OCCITAN: switch (sub) { case SUBLANG_OCCITAN_FRANCE: return "oc_FR"; } return "oc"; case LANG_ORIYA: switch (sub) { case SUBLANG_ORIYA_INDIA: return "or_IN"; } return "or"; case LANG_OROMO: switch (sub) { case SUBLANG_DEFAULT: return "om_ET"; } return "om"; case LANG_PAPIAMENTU: switch (sub) { case SUBLANG_DEFAULT: return "pap_AN"; } return "pap"; case LANG_PASHTO: switch (sub) { case SUBLANG_PASHTO_AFGHANISTAN: return "ps_AF"; } return "ps"; /* Ambiguous: could be "ps_PK" or "ps_AF". */ case LANG_POLISH: switch (sub) { case SUBLANG_POLISH_POLAND: return "pl_PL"; } return "pl"; case LANG_PORTUGUESE: switch (sub) { /* Hmm. SUBLANG_PORTUGUESE_BRAZILIAN == SUBLANG_DEFAULT. Same phenomenon as SUBLANG_ENGLISH_US == SUBLANG_DEFAULT. */ case SUBLANG_PORTUGUESE_BRAZILIAN: return "pt_BR"; case SUBLANG_PORTUGUESE: return "pt_PT"; } return "pt"; case LANG_PUNJABI: switch (sub) { case SUBLANG_PUNJABI_INDIA: return "pa_IN"; /* Gurmukhi script */ case SUBLANG_PUNJABI_PAKISTAN: return "pa_PK"; /* Arabic script */ } return "pa"; case LANG_QUECHUA: /* Note: Microsoft uses the non-ISO language code "quz". */ switch (sub) { case SUBLANG_QUECHUA_BOLIVIA: return "qu_BO"; case SUBLANG_QUECHUA_ECUADOR: return "qu_EC"; case SUBLANG_QUECHUA_PERU: return "qu_PE"; } return "qu"; case LANG_ROMANIAN: switch (sub) { case SUBLANG_ROMANIAN_ROMANIA: return "ro_RO"; case SUBLANG_ROMANIAN_MOLDOVA: return "ro_MD"; } return "ro"; case LANG_ROMANSH: switch (sub) { case SUBLANG_ROMANSH_SWITZERLAND: return "rm_CH"; } return "rm"; case LANG_RUSSIAN: switch (sub) { case SUBLANG_RUSSIAN_RUSSIA: return "ru_RU"; case SUBLANG_RUSSIAN_MOLDAVIA: return "ru_MD"; } return "ru"; /* Ambiguous: could be "ru_RU" or "ru_UA" or "ru_MD". */ case LANG_SAMI: switch (sub) { /* Northern Sami */ case 0x00: return "se"; case SUBLANG_SAMI_NORTHERN_NORWAY: return "se_NO"; case SUBLANG_SAMI_NORTHERN_SWEDEN: return "se_SE"; case SUBLANG_SAMI_NORTHERN_FINLAND: return "se_FI"; /* Lule Sami */ case 0x1f: return "smj"; case SUBLANG_SAMI_LULE_NORWAY: return "smj_NO"; case SUBLANG_SAMI_LULE_SWEDEN: return "smj_SE"; /* Southern Sami */ case 0x1e: return "sma"; case SUBLANG_SAMI_SOUTHERN_NORWAY: return "sma_NO"; case SUBLANG_SAMI_SOUTHERN_SWEDEN: return "sma_SE"; /* Skolt Sami */ case 0x1d: return "sms"; case SUBLANG_SAMI_SKOLT_FINLAND: return "sms_FI"; /* Inari Sami */ case 0x1c: return "smn"; case SUBLANG_SAMI_INARI_FINLAND: return "smn_FI"; } return "se"; /* or "smi"? */ case LANG_SANSKRIT: switch (sub) { case SUBLANG_SANSKRIT_INDIA: return "sa_IN"; } return "sa"; case LANG_SCOTTISH_GAELIC: switch (sub) { case SUBLANG_DEFAULT: return "gd_GB"; } return "gd"; case LANG_SINDHI: switch (sub) { case SUBLANG_SINDHI_INDIA: return "sd_IN"; case SUBLANG_SINDHI_PAKISTAN: return "sd_PK"; /*case SUBLANG_SINDHI_AFGHANISTAN: return "sd_AF";*/ } return "sd"; case LANG_SINHALESE: switch (sub) { case SUBLANG_SINHALESE_SRI_LANKA: return "si_LK"; } return "si"; case LANG_SLOVAK: switch (sub) { case SUBLANG_SLOVAK_SLOVAKIA: return "sk_SK"; } return "sk"; case LANG_SLOVENIAN: switch (sub) { case SUBLANG_SLOVENIAN_SLOVENIA: return "sl_SI"; } return "sl"; case LANG_SOMALI: switch (sub) { case SUBLANG_DEFAULT: return "so_SO"; } return "so"; case LANG_SORBIAN: /* FIXME: Adjust this when such locales appear on Unix. */ switch (sub) { /* Upper Sorbian */ case 0x00: return "hsb"; case SUBLANG_UPPER_SORBIAN_GERMANY: return "hsb_DE"; /* Lower Sorbian */ case 0x1f: return "dsb"; case SUBLANG_LOWER_SORBIAN_GERMANY: return "dsb_DE"; } return "wen"; case LANG_SOTHO: /* calls it "Sepedi"; according to it's the same as Northern Sotho. */ switch (sub) { case SUBLANG_SOTHO_SOUTH_AFRICA: return "nso_ZA"; } return "nso"; case LANG_SPANISH: switch (sub) { case SUBLANG_SPANISH: return "es_ES"; case SUBLANG_SPANISH_MEXICAN: return "es_MX"; case SUBLANG_SPANISH_MODERN: return "es_ES@modern"; /* not seen on Unix */ case SUBLANG_SPANISH_GUATEMALA: return "es_GT"; case SUBLANG_SPANISH_COSTA_RICA: return "es_CR"; case SUBLANG_SPANISH_PANAMA: return "es_PA"; case SUBLANG_SPANISH_DOMINICAN_REPUBLIC: return "es_DO"; case SUBLANG_SPANISH_VENEZUELA: return "es_VE"; case SUBLANG_SPANISH_COLOMBIA: return "es_CO"; case SUBLANG_SPANISH_PERU: return "es_PE"; case SUBLANG_SPANISH_ARGENTINA: return "es_AR"; case SUBLANG_SPANISH_ECUADOR: return "es_EC"; case SUBLANG_SPANISH_CHILE: return "es_CL"; case SUBLANG_SPANISH_URUGUAY: return "es_UY"; case SUBLANG_SPANISH_PARAGUAY: return "es_PY"; case SUBLANG_SPANISH_BOLIVIA: return "es_BO"; case SUBLANG_SPANISH_EL_SALVADOR: return "es_SV"; case SUBLANG_SPANISH_HONDURAS: return "es_HN"; case SUBLANG_SPANISH_NICARAGUA: return "es_NI"; case SUBLANG_SPANISH_PUERTO_RICO: return "es_PR"; case SUBLANG_SPANISH_US: return "es_US"; } return "es"; case LANG_SUTU: switch (sub) { case SUBLANG_DEFAULT: return "bnt_TZ"; /* or "st_LS" or "nso_ZA"? */ } return "bnt"; case LANG_SWAHILI: switch (sub) { case SUBLANG_SWAHILI_KENYA: return "sw_KE"; } return "sw"; case LANG_SWEDISH: switch (sub) { case SUBLANG_SWEDISH_SWEDEN: return "sv_SE"; case SUBLANG_SWEDISH_FINLAND: return "sv_FI"; } return "sv"; case LANG_SYRIAC: switch (sub) { case SUBLANG_SYRIAC_SYRIA: return "syr_SY"; /* An extinct language. */ } return "syr"; case LANG_TAGALOG: switch (sub) { case SUBLANG_TAGALOG_PHILIPPINES: return "tl_PH"; /* or "fil_PH"? */ } return "tl"; /* or "fil"? */ case LANG_TAJIK: switch (sub) { case 0x1f: return "tg"; case SUBLANG_TAJIK_TAJIKISTAN: return "tg_TJ"; } return "tg"; case LANG_TAMAZIGHT: /* Note: Microsoft uses the non-ISO language code "tmz". */ switch (sub) { /* FIXME: Adjust this when Tamazight locales appear on Unix. */ case SUBLANG_TAMAZIGHT_ARABIC: return "ber_MA@arabic"; case 0x1f: return "ber@latin"; case SUBLANG_TAMAZIGHT_ALGERIA_LATIN: return "ber_DZ@latin"; } return "ber"; case LANG_TAMIL: switch (sub) { case SUBLANG_TAMIL_INDIA: return "ta_IN"; } return "ta"; /* Ambiguous: could be "ta_IN" or "ta_LK" or "ta_SG". */ case LANG_TATAR: switch (sub) { case SUBLANG_TATAR_RUSSIA: return "tt_RU"; } return "tt"; case LANG_TELUGU: switch (sub) { case SUBLANG_TELUGU_INDIA: return "te_IN"; } return "te"; case LANG_THAI: switch (sub) { case SUBLANG_THAI_THAILAND: return "th_TH"; } return "th"; case LANG_TIBETAN: switch (sub) { case SUBLANG_TIBETAN_PRC: /* Most Tibetans would not like "bo_CN". But Tibet does not yet have a country code of its own. */ return "bo"; case SUBLANG_TIBETAN_BHUTAN: return "bo_BT"; } return "bo"; case LANG_TIGRINYA: switch (sub) { case SUBLANG_TIGRINYA_ETHIOPIA: return "ti_ET"; case SUBLANG_TIGRINYA_ERITREA: return "ti_ER"; } return "ti"; case LANG_TSONGA: switch (sub) { case SUBLANG_DEFAULT: return "ts_ZA"; } return "ts"; case LANG_TSWANA: /* Spoken in South Africa, Botswana. */ switch (sub) { case SUBLANG_TSWANA_SOUTH_AFRICA: return "tn_ZA"; } return "tn"; case LANG_TURKISH: switch (sub) { case SUBLANG_TURKISH_TURKEY: return "tr_TR"; } return "tr"; case LANG_TURKMEN: switch (sub) { case SUBLANG_TURKMEN_TURKMENISTAN: return "tk_TM"; } return "tk"; case LANG_UIGHUR: switch (sub) { case SUBLANG_UIGHUR_PRC: return "ug_CN"; } return "ug"; case LANG_UKRAINIAN: switch (sub) { case SUBLANG_UKRAINIAN_UKRAINE: return "uk_UA"; } return "uk"; case LANG_URDU: switch (sub) { case SUBLANG_URDU_PAKISTAN: return "ur_PK"; case SUBLANG_URDU_INDIA: return "ur_IN"; } return "ur"; case LANG_UZBEK: switch (sub) { case 0x1f: return "uz"; case SUBLANG_UZBEK_LATIN: return "uz_UZ"; case 0x1e: return "uz@cyrillic"; case SUBLANG_UZBEK_CYRILLIC: return "uz_UZ@cyrillic"; } return "uz"; case LANG_VENDA: switch (sub) { case SUBLANG_DEFAULT: return "ve_ZA"; } return "ve"; case LANG_VIETNAMESE: switch (sub) { case SUBLANG_VIETNAMESE_VIETNAM: return "vi_VN"; } return "vi"; case LANG_WELSH: switch (sub) { case SUBLANG_WELSH_UNITED_KINGDOM: return "cy_GB"; } return "cy"; case LANG_WOLOF: switch (sub) { case SUBLANG_WOLOF_SENEGAL: return "wo_SN"; } return "wo"; case LANG_XHOSA: switch (sub) { case SUBLANG_XHOSA_SOUTH_AFRICA: return "xh_ZA"; } return "xh"; case LANG_YAKUT: switch (sub) { case SUBLANG_YAKUT_RUSSIA: return "sah_RU"; } return "sah"; case LANG_YI: switch (sub) { case SUBLANG_YI_PRC: return "ii_CN"; } return "ii"; case LANG_YIDDISH: switch (sub) { case SUBLANG_DEFAULT: return "yi_IL"; } return "yi"; case LANG_YORUBA: switch (sub) { case SUBLANG_YORUBA_NIGERIA: return "yo_NG"; } return "yo"; case LANG_ZULU: switch (sub) { case SUBLANG_ZULU_SOUTH_AFRICA: return "zu_ZA"; } return "zu"; default: return "C"; } } } # if !defined IN_LIBINTL static # endif const char * gl_locale_name_from_win32_LCID (LCID lcid) { LANGID langid; /* Strip off the sorting rules, keep only the language part. */ langid = LANGIDFROMLCID (lcid); return gl_locale_name_from_win32_LANGID (langid); } #endif #if HAVE_USELOCALE /* glibc or Mac OS X */ /* Simple hash set of strings. We don't want to drag in lots of hash table code here. */ # define SIZE_BITS (sizeof (size_t) * CHAR_BIT) /* A hash function for NUL-terminated char* strings using the method described by Bruno Haible. See http://www.haible.de/bruno/hashfunc.html. */ static size_t string_hash (const void *x) { const char *s = (const char *) x; size_t h = 0; for (; *s; s++) h = *s + ((h << 9) | (h >> (SIZE_BITS - 9))); return h; } /* A hash table of fixed size. Multiple threads can access it read-only simultaneously, but only one thread can insert into it at the same time. */ /* A node in a hash bucket collision list. */ struct hash_node { struct hash_node * volatile next; char contents[100]; /* has variable size */ }; # define HASH_TABLE_SIZE 257 static struct hash_node * volatile struniq_hash_table[HASH_TABLE_SIZE] /* = { NULL, ..., NULL } */; /* This lock protects the struniq_hash_table against multiple simultaneous insertions. */ gl_lock_define_initialized(static, struniq_lock) /* Store a copy of the given string in a string pool with indefinite extent. Return a pointer to this copy. */ static const char * struniq (const char *string) { size_t hashcode = string_hash (string); size_t slot = hashcode % HASH_TABLE_SIZE; size_t size; struct hash_node *new_node; struct hash_node *p; for (p = struniq_hash_table[slot]; p != NULL; p = p->next) if (strcmp (p->contents, string) == 0) return p->contents; size = strlen (string) + 1; new_node = (struct hash_node *) malloc (offsetof (struct hash_node, contents[0]) + size); if (new_node == NULL) /* Out of memory. Return a statically allocated string. */ return "C"; memcpy (new_node->contents, string, size); /* Lock while inserting new_node. */ gl_lock_lock (struniq_lock); /* Check whether another thread already added the string while we were waiting on the lock. */ for (p = struniq_hash_table[slot]; p != NULL; p = p->next) if (strcmp (p->contents, string) == 0) { free (new_node); new_node = p; goto done; } /* Really insert new_node into the hash table. Fill new_node entirely first, because other threads may be iterating over the linked list. */ new_node->next = struniq_hash_table[slot]; struniq_hash_table[slot] = new_node; done: /* Unlock after new_node is inserted. */ gl_lock_unlock (struniq_lock); return new_node->contents; } #endif #if defined IN_LIBINTL || HAVE_USELOCALE /* Like gl_locale_name_thread, except that the result is not in storage of indefinite extent. */ # if !defined IN_LIBINTL static # endif const char * gl_locale_name_thread_unsafe (int category, const char *categoryname) { # if HAVE_USELOCALE { locale_t thread_locale = uselocale (NULL); if (thread_locale != LC_GLOBAL_LOCALE) { # if __GLIBC__ >= 2 && !defined __UCLIBC__ /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in glibc < 2.12. See . */ const char *name = nl_langinfo (_NL_ITEM ((category), _NL_ITEM_INDEX (-1))); if (name[0] == '\0') /* Fallback code for glibc < 2.4, which did not implement nl_langinfo (_NL_LOCALE_NAME (category)). */ name = thread_locale->__names[category]; return name; # elif defined __FreeBSD__ || (defined __APPLE__ && defined __MACH__) /* FreeBSD, Mac OS X */ int mask; switch (category) { case LC_CTYPE: mask = LC_CTYPE_MASK; break; case LC_NUMERIC: mask = LC_NUMERIC_MASK; break; case LC_TIME: mask = LC_TIME_MASK; break; case LC_COLLATE: mask = LC_COLLATE_MASK; break; case LC_MONETARY: mask = LC_MONETARY_MASK; break; case LC_MESSAGES: mask = LC_MESSAGES_MASK; break; default: /* We shouldn't get here. */ return ""; } return querylocale (mask, thread_locale); # endif } } # endif return NULL; } #endif const char * gl_locale_name_thread (int category, const char *categoryname) { #if HAVE_USELOCALE const char *name = gl_locale_name_thread_unsafe (category, categoryname); if (name != NULL) return struniq (name); #endif return NULL; } /* XPG3 defines the result of 'setlocale (category, NULL)' as: "Directs 'setlocale()' to query 'category' and return the current setting of 'local'." However it does not specify the exact format. Neither do SUSV2 and ISO C 99. So we can use this feature only on selected systems (e.g. those using GNU C Library). */ #if defined _LIBC || ((defined __GLIBC__ && __GLIBC__ >= 2) && !defined __UCLIBC__) # define HAVE_LOCALE_NULL #endif const char * gl_locale_name_posix (int category, const char *categoryname) { /* Use the POSIX methods of looking to 'LC_ALL', 'LC_xxx', and 'LANG'. On some systems this can be done by the 'setlocale' function itself. */ #if defined HAVE_SETLOCALE && defined HAVE_LC_MESSAGES && defined HAVE_LOCALE_NULL return setlocale (category, NULL); #else /* On other systems we ignore what setlocale reports and instead look at the environment variables directly. This is necessary 1. on systems which have a facility for customizing the default locale (Mac OS X, native Windows, Cygwin) and where the system's setlocale() function ignores this default locale (Mac OS X, Cygwin), in two cases: a. when the user missed to use the setlocale() override from libintl (for example by not including ), b. when setlocale supports only the "C" locale, such as on Cygwin 1.5.x. In this case even the override from libintl cannot help. 2. on all systems where setlocale supports only the "C" locale. */ /* Strictly speaking, it is a POSIX violation to look at the environment variables regardless whether setlocale has been called or not. POSIX says: "For C-language programs, the POSIX locale shall be the default locale when the setlocale() function is not called." But we assume that all programs that use internationalized APIs call setlocale (LC_ALL, ""). */ return gl_locale_name_environ (category, categoryname); #endif } const char * gl_locale_name_environ (int category, const char *categoryname) { const char *retval; /* Setting of LC_ALL overrides all other. */ retval = getenv ("LC_ALL"); if (retval != NULL && retval[0] != '\0') return retval; /* Next comes the name of the desired category. */ retval = getenv (categoryname); if (retval != NULL && retval[0] != '\0') return retval; /* Last possibility is the LANG environment variable. */ retval = getenv ("LANG"); if (retval != NULL && retval[0] != '\0') { #if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer. Ignore invalid LANG value set by the Terminal application. */ if (strcmp (retval, "UTF-8") != 0) #endif #if defined __CYGWIN__ /* Cygwin. Ignore dummy LANG value set by ~/.profile. */ if (strcmp (retval, "C.UTF-8") != 0) #endif return retval; } return NULL; } const char * gl_locale_name_default (void) { /* POSIX:2001 says: "All implementations shall define a locale as the default locale, to be invoked when no environment variables are set, or set to the empty string. This default locale can be the POSIX locale or any other implementation-defined locale. Some implementations may provide facilities for local installation administrators to set the default locale, customizing it for each location. POSIX:2001 does not require such a facility. The systems with such a facility are Mac OS X and Windows: They provide a GUI that allows the user to choose a locale. - On Mac OS X, by default, none of LC_* or LANG are set. Starting with Mac OS X 10.4 or 10.5, LANG is set for processes launched by the 'Terminal' application (but sometimes to an incorrect value "UTF-8"). When no environment variable is set, setlocale (LC_ALL, "") uses the "C" locale. - On native Windows, by default, none of LC_* or LANG are set. When no environment variable is set, setlocale (LC_ALL, "") uses the locale chosen by the user. - On Cygwin 1.5.x, by default, none of LC_* or LANG are set. When no environment variable is set, setlocale (LC_ALL, "") uses the "C" locale. - On Cygwin 1.7, by default, LANG is set to "C.UTF-8" when the default ~/.profile is executed. When no environment variable is set, setlocale (LC_ALL, "") uses the "C.UTF-8" locale, which operates in the same way as the "C" locale. */ #if !(HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE || defined WINDOWS_NATIVE || defined __CYGWIN__) /* The system does not have a way of setting the locale, other than the POSIX specified environment variables. We use C as default locale. */ return "C"; #else /* Return an XPG style locale name language[_territory][@modifier]. Don't even bother determining the codeset; it's not useful in this context, because message catalogs are not specific to a single codeset. */ # if HAVE_CFLOCALECOPYCURRENT || HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer */ { /* Cache the locale name, since CoreFoundation calls are expensive. */ static const char *cached_localename; if (cached_localename == NULL) { char namebuf[256]; # if HAVE_CFLOCALECOPYCURRENT /* Mac OS X 10.3 or newer */ CFLocaleRef locale = CFLocaleCopyCurrent (); CFStringRef name = CFLocaleGetIdentifier (locale); if (CFStringGetCString (name, namebuf, sizeof (namebuf), kCFStringEncodingASCII)) { gl_locale_name_canonicalize (namebuf); cached_localename = strdup (namebuf); } CFRelease (locale); # elif HAVE_CFPREFERENCESCOPYAPPVALUE /* Mac OS X 10.2 or newer */ CFTypeRef value = CFPreferencesCopyAppValue (CFSTR ("AppleLocale"), kCFPreferencesCurrentApplication); if (value != NULL && CFGetTypeID (value) == CFStringGetTypeID () && CFStringGetCString ((CFStringRef)value, namebuf, sizeof (namebuf), kCFStringEncodingASCII)) { gl_locale_name_canonicalize (namebuf); cached_localename = strdup (namebuf); } # endif if (cached_localename == NULL) cached_localename = "C"; } return cached_localename; } # endif # if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Native Windows or Cygwin */ { LCID lcid; /* Use native Windows API locale ID. */ lcid = GetThreadLocale (); return gl_locale_name_from_win32_LCID (lcid); } # endif #endif } /* Determine the current locale's name, and canonicalize it into XPG syntax language[_territory][.codeset][@modifier] The codeset part in the result is not reliable; the locale_charset() should be used for codeset information instead. The result must not be freed; it is statically allocated. */ const char * gl_locale_name (int category, const char *categoryname) { const char *retval; retval = gl_locale_name_thread (category, categoryname); if (retval != NULL) return retval; retval = gl_locale_name_posix (category, categoryname); if (retval != NULL) return retval; return gl_locale_name_default (); } libidn-1.28/lib/gltests/test-stdint.c0000644000000000000000000002617612153706107014473 00000000000000/* Test of substitute. Copyright (C) 2006-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2006. */ #include /* Whether to enable pedantic checks. */ #define DO_PEDANTIC 0 #include #include "verify.h" #include "intprops.h" #if __GNUC__ >= 2 && DO_PEDANTIC # define verify_same_types(expr1,expr2) \ extern void _verify_func(__LINE__) (__typeof__ (expr1) *); \ extern void _verify_func(__LINE__) (__typeof__ (expr2) *); # define _verify_func(line) _verify_func2(line) # define _verify_func2(line) verify_func_ ## line #else # define verify_same_types(expr1,expr2) extern void verify_func (int) #endif /* 7.18.1.1. Exact-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ int8_t a1[3] = { INT8_C (17), INT8_MIN, INT8_MAX }; verify (TYPE_MINIMUM (int8_t) == INT8_MIN); verify (TYPE_MAXIMUM (int8_t) == INT8_MAX); verify_same_types (INT8_MIN, (int8_t) 0 + 0); verify_same_types (INT8_MAX, (int8_t) 0 + 0); int16_t a2[3] = { INT16_C (17), INT16_MIN, INT16_MAX }; verify (TYPE_MINIMUM (int16_t) == INT16_MIN); verify (TYPE_MAXIMUM (int16_t) == INT16_MAX); verify_same_types (INT16_MIN, (int16_t) 0 + 0); verify_same_types (INT16_MAX, (int16_t) 0 + 0); int32_t a3[3] = { INT32_C (17), INT32_MIN, INT32_MAX }; verify (TYPE_MINIMUM (int32_t) == INT32_MIN); verify (TYPE_MAXIMUM (int32_t) == INT32_MAX); verify_same_types (INT32_MIN, (int32_t) 0 + 0); verify_same_types (INT32_MAX, (int32_t) 0 + 0); #ifdef INT64_MAX int64_t a4[3] = { INT64_C (17), INT64_MIN, INT64_MAX }; verify (TYPE_MINIMUM (int64_t) == INT64_MIN); verify (TYPE_MAXIMUM (int64_t) == INT64_MAX); verify_same_types (INT64_MIN, (int64_t) 0 + 0); verify_same_types (INT64_MAX, (int64_t) 0 + 0); #endif uint8_t b1[2] = { UINT8_C (17), UINT8_MAX }; verify (TYPE_MAXIMUM (uint8_t) == UINT8_MAX); verify_same_types (UINT8_MAX, (uint8_t) 0 + 0); uint16_t b2[2] = { UINT16_C (17), UINT16_MAX }; verify (TYPE_MAXIMUM (uint16_t) == UINT16_MAX); verify_same_types (UINT16_MAX, (uint16_t) 0 + 0); uint32_t b3[2] = { UINT32_C (17), UINT32_MAX }; verify (TYPE_MAXIMUM (uint32_t) == UINT32_MAX); verify_same_types (UINT32_MAX, (uint32_t) 0 + 0); #ifdef UINT64_MAX uint64_t b4[2] = { UINT64_C (17), UINT64_MAX }; verify (TYPE_MAXIMUM (uint64_t) == UINT64_MAX); verify_same_types (UINT64_MAX, (uint64_t) 0 + 0); #endif #if INT8_MIN && INT8_MAX && INT16_MIN && INT16_MAX && INT32_MIN && INT32_MAX /* ok */ #else err or; #endif #if UINT8_MAX && UINT16_MAX && UINT32_MAX /* ok */ #else err or; #endif /* 7.18.1.2. Minimum-width integer types */ /* 7.18.2.2. Limits of minimum-width integer types */ int_least8_t c1[3] = { 17, INT_LEAST8_MIN, INT_LEAST8_MAX }; verify (TYPE_MINIMUM (int_least8_t) == INT_LEAST8_MIN); verify (TYPE_MAXIMUM (int_least8_t) == INT_LEAST8_MAX); verify_same_types (INT_LEAST8_MIN, (int_least8_t) 0 + 0); verify_same_types (INT_LEAST8_MAX, (int_least8_t) 0 + 0); int_least16_t c2[3] = { 17, INT_LEAST16_MIN, INT_LEAST16_MAX }; verify (TYPE_MINIMUM (int_least16_t) == INT_LEAST16_MIN); verify (TYPE_MAXIMUM (int_least16_t) == INT_LEAST16_MAX); verify_same_types (INT_LEAST16_MIN, (int_least16_t) 0 + 0); verify_same_types (INT_LEAST16_MAX, (int_least16_t) 0 + 0); int_least32_t c3[3] = { 17, INT_LEAST32_MIN, INT_LEAST32_MAX }; verify (TYPE_MINIMUM (int_least32_t) == INT_LEAST32_MIN); verify (TYPE_MAXIMUM (int_least32_t) == INT_LEAST32_MAX); verify_same_types (INT_LEAST32_MIN, (int_least32_t) 0 + 0); verify_same_types (INT_LEAST32_MAX, (int_least32_t) 0 + 0); #ifdef INT_LEAST64_MAX int_least64_t c4[3] = { 17, INT_LEAST64_MIN, INT_LEAST64_MAX }; verify (TYPE_MINIMUM (int_least64_t) == INT_LEAST64_MIN); verify (TYPE_MAXIMUM (int_least64_t) == INT_LEAST64_MAX); verify_same_types (INT_LEAST64_MIN, (int_least64_t) 0 + 0); verify_same_types (INT_LEAST64_MAX, (int_least64_t) 0 + 0); #endif uint_least8_t d1[2] = { 17, UINT_LEAST8_MAX }; verify (TYPE_MAXIMUM (uint_least8_t) == UINT_LEAST8_MAX); verify_same_types (UINT_LEAST8_MAX, (uint_least8_t) 0 + 0); uint_least16_t d2[2] = { 17, UINT_LEAST16_MAX }; verify (TYPE_MAXIMUM (uint_least16_t) == UINT_LEAST16_MAX); verify_same_types (UINT_LEAST16_MAX, (uint_least16_t) 0 + 0); uint_least32_t d3[2] = { 17, UINT_LEAST32_MAX }; verify (TYPE_MAXIMUM (uint_least32_t) == UINT_LEAST32_MAX); verify_same_types (UINT_LEAST32_MAX, (uint_least32_t) 0 + 0); #ifdef UINT_LEAST64_MAX uint_least64_t d4[2] = { 17, UINT_LEAST64_MAX }; verify (TYPE_MAXIMUM (uint_least64_t) == UINT_LEAST64_MAX); verify_same_types (UINT_LEAST64_MAX, (uint_least64_t) 0 + 0); #endif #if INT_LEAST8_MIN && INT_LEAST8_MAX && INT_LEAST16_MIN && INT_LEAST16_MAX && INT_LEAST32_MIN && INT_LEAST32_MAX /* ok */ #else err or; #endif #if UINT_LEAST8_MAX && UINT_LEAST16_MAX && UINT_LEAST32_MAX /* ok */ #else err or; #endif /* 7.18.1.3. Fastest minimum-width integer types */ /* 7.18.2.3. Limits of fastest minimum-width integer types */ int_fast8_t e1[3] = { 17, INT_FAST8_MIN, INT_FAST8_MAX }; verify (TYPE_MINIMUM (int_fast8_t) == INT_FAST8_MIN); verify (TYPE_MAXIMUM (int_fast8_t) == INT_FAST8_MAX); verify_same_types (INT_FAST8_MIN, (int_fast8_t) 0 + 0); verify_same_types (INT_FAST8_MAX, (int_fast8_t) 0 + 0); int_fast16_t e2[3] = { 17, INT_FAST16_MIN, INT_FAST16_MAX }; verify (TYPE_MINIMUM (int_fast16_t) == INT_FAST16_MIN); verify (TYPE_MAXIMUM (int_fast16_t) == INT_FAST16_MAX); verify_same_types (INT_FAST16_MIN, (int_fast16_t) 0 + 0); verify_same_types (INT_FAST16_MAX, (int_fast16_t) 0 + 0); int_fast32_t e3[3] = { 17, INT_FAST32_MIN, INT_FAST32_MAX }; verify (TYPE_MINIMUM (int_fast32_t) == INT_FAST32_MIN); verify (TYPE_MAXIMUM (int_fast32_t) == INT_FAST32_MAX); verify_same_types (INT_FAST32_MIN, (int_fast32_t) 0 + 0); verify_same_types (INT_FAST32_MAX, (int_fast32_t) 0 + 0); #ifdef INT_FAST64_MAX int_fast64_t e4[3] = { 17, INT_FAST64_MIN, INT_FAST64_MAX }; verify (TYPE_MINIMUM (int_fast64_t) == INT_FAST64_MIN); verify (TYPE_MAXIMUM (int_fast64_t) == INT_FAST64_MAX); verify_same_types (INT_FAST64_MIN, (int_fast64_t) 0 + 0); verify_same_types (INT_FAST64_MAX, (int_fast64_t) 0 + 0); #endif uint_fast8_t f1[2] = { 17, UINT_FAST8_MAX }; verify (TYPE_MAXIMUM (uint_fast8_t) == UINT_FAST8_MAX); verify_same_types (UINT_FAST8_MAX, (uint_fast8_t) 0 + 0); uint_fast16_t f2[2] = { 17, UINT_FAST16_MAX }; verify (TYPE_MAXIMUM (uint_fast16_t) == UINT_FAST16_MAX); verify_same_types (UINT_FAST16_MAX, (uint_fast16_t) 0 + 0); uint_fast32_t f3[2] = { 17, UINT_FAST32_MAX }; verify (TYPE_MAXIMUM (uint_fast32_t) == UINT_FAST32_MAX); verify_same_types (UINT_FAST32_MAX, (uint_fast32_t) 0 + 0); #ifdef UINT_FAST64_MAX uint_fast64_t f4[2] = { 17, UINT_FAST64_MAX }; verify (TYPE_MAXIMUM (uint_fast64_t) == UINT_FAST64_MAX); verify_same_types (UINT_FAST64_MAX, (uint_fast64_t) 0 + 0); #endif #if INT_FAST8_MIN && INT_FAST8_MAX && INT_FAST16_MIN && INT_FAST16_MAX && INT_FAST32_MIN && INT_FAST32_MAX /* ok */ #else err or; #endif #if UINT_FAST8_MAX && UINT_FAST16_MAX && UINT_FAST32_MAX /* ok */ #else err or; #endif /* 7.18.1.4. Integer types capable of holding object pointers */ /* 7.18.2.4. Limits of integer types capable of holding object pointers */ intptr_t g[3] = { 17, INTPTR_MIN, INTPTR_MAX }; verify (TYPE_MINIMUM (intptr_t) == INTPTR_MIN); verify (TYPE_MAXIMUM (intptr_t) == INTPTR_MAX); verify_same_types (INTPTR_MIN, (intptr_t) 0 + 0); verify_same_types (INTPTR_MAX, (intptr_t) 0 + 0); uintptr_t h[2] = { 17, UINTPTR_MAX }; verify (TYPE_MAXIMUM (uintptr_t) == UINTPTR_MAX); verify_same_types (UINTPTR_MAX, (uintptr_t) 0 + 0); #if INTPTR_MIN && INTPTR_MAX && UINTPTR_MAX /* ok */ #else err or; #endif /* 7.18.1.5. Greatest-width integer types */ /* 7.18.2.5. Limits of greatest-width integer types */ intmax_t i[3] = { INTMAX_C (17), INTMAX_MIN, INTMAX_MAX }; verify (TYPE_MINIMUM (intmax_t) == INTMAX_MIN); verify (TYPE_MAXIMUM (intmax_t) == INTMAX_MAX); verify_same_types (INTMAX_MIN, (intmax_t) 0 + 0); verify_same_types (INTMAX_MAX, (intmax_t) 0 + 0); uintmax_t j[2] = { UINTMAX_C (17), UINTMAX_MAX }; verify (TYPE_MAXIMUM (uintmax_t) == UINTMAX_MAX); verify_same_types (UINTMAX_MAX, (uintmax_t) 0 + 0); /* As of 2007, Sun C and HP-UX 10.20 cc don't support 'long long' constants in the preprocessor. */ #if !(defined __SUNPRO_C || (defined __hpux && !defined __GNUC__)) #if INTMAX_MIN && INTMAX_MAX && UINTMAX_MAX /* ok */ #else err or; #endif #endif /* 7.18.3. Limits of other integer types */ #include verify (TYPE_MINIMUM (ptrdiff_t) == PTRDIFF_MIN); verify (TYPE_MAXIMUM (ptrdiff_t) == PTRDIFF_MAX); verify_same_types (PTRDIFF_MIN, (ptrdiff_t) 0 + 0); verify_same_types (PTRDIFF_MAX, (ptrdiff_t) 0 + 0); #if PTRDIFF_MIN && PTRDIFF_MAX /* ok */ #else err or; #endif #include verify (TYPE_MINIMUM (sig_atomic_t) == SIG_ATOMIC_MIN); verify (TYPE_MAXIMUM (sig_atomic_t) == SIG_ATOMIC_MAX); verify_same_types (SIG_ATOMIC_MIN, (sig_atomic_t) 0 + 0); verify_same_types (SIG_ATOMIC_MAX, (sig_atomic_t) 0 + 0); #if SIG_ATOMIC_MIN != 17 && SIG_ATOMIC_MAX /* ok */ #else err or; #endif verify (TYPE_MAXIMUM (size_t) == SIZE_MAX); verify_same_types (SIZE_MAX, (size_t) 0 + 0); #if SIZE_MAX /* ok */ #else err or; #endif #if HAVE_WCHAR_T verify (TYPE_MINIMUM (wchar_t) == WCHAR_MIN); verify (TYPE_MAXIMUM (wchar_t) == WCHAR_MAX); verify_same_types (WCHAR_MIN, (wchar_t) 0 + 0); verify_same_types (WCHAR_MAX, (wchar_t) 0 + 0); # if WCHAR_MIN != 17 && WCHAR_MAX /* ok */ # else err or; # endif #endif #if HAVE_WINT_T # include verify (TYPE_MINIMUM (wint_t) == WINT_MIN); verify (TYPE_MAXIMUM (wint_t) == WINT_MAX); verify_same_types (WINT_MIN, (wint_t) 0 + 0); verify_same_types (WINT_MAX, (wint_t) 0 + 0); # if WINT_MIN != 17 && WINT_MAX /* ok */ # else err or; # endif #endif /* 7.18.4. Macros for integer constants */ verify (INT8_C (17) == 17); verify_same_types (INT8_C (17), (int_least8_t)0 + 0); verify (UINT8_C (17) == 17); verify_same_types (UINT8_C (17), (uint_least8_t)0 + 0); verify (INT16_C (17) == 17); verify_same_types (INT16_C (17), (int_least16_t)0 + 0); verify (UINT16_C (17) == 17); verify_same_types (UINT16_C (17), (uint_least16_t)0 + 0); verify (INT32_C (17) == 17); verify_same_types (INT32_C (17), (int_least32_t)0 + 0); verify (UINT32_C (17) == 17); verify_same_types (UINT32_C (17), (uint_least32_t)0 + 0); #ifdef INT64_C verify (INT64_C (17) == 17); verify_same_types (INT64_C (17), (int_least64_t)0 + 0); #endif #ifdef UINT64_C verify (UINT64_C (17) == 17); verify_same_types (UINT64_C (17), (uint_least64_t)0 + 0); #endif verify (INTMAX_C (17) == 17); verify_same_types (INTMAX_C (17), (intmax_t)0 + 0); verify (UINTMAX_C (17) == 17); verify_same_types (UINTMAX_C (17), (uintmax_t)0 + 0); int main (void) { return 0; } libidn-1.28/lib/gltests/unsetenv.c0000644000000000000000000000547212153706107014054 00000000000000/* Copyright (C) 1992, 1995-2002, 2005-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Don't use __attribute__ __nonnull__ in this compilation unit. Otherwise gcc optimizes away the name == NULL test below. */ #define _GL_ARG_NONNULL(params) #include /* Specification. */ #include #include #if !_LIBC # define __set_errno(ev) ((errno) = (ev)) #endif #include #include #if !_LIBC # define __environ environ #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif /* In the GNU C library we must keep the namespace clean. */ #ifdef _LIBC # define unsetenv __unsetenv #endif #if _LIBC || !HAVE_UNSETENV int unsetenv (const char *name) { size_t len; char **ep; if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } len = strlen (name); LOCK; ep = __environ; while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { /* Found it. Remove this pointer by moving later ones back. */ char **dp = ep; do dp[0] = dp[1]; while (*dp++); /* Continue the loop in case NAME appears again. */ } else ++ep; UNLOCK; return 0; } #ifdef _LIBC # undef unsetenv weak_alias (__unsetenv, unsetenv) #endif #else /* HAVE_UNSETENV */ # undef unsetenv # if !HAVE_DECL_UNSETENV # if VOID_UNSETENV extern void unsetenv (const char *); # else extern int unsetenv (const char *); # endif # endif /* Call the underlying unsetenv, in case there is hidden bookkeeping that needs updating beyond just modifying environ. */ int rpl_unsetenv (const char *name) { int result = 0; if (!name || !*name || strchr (name, '=')) { errno = EINVAL; return -1; } while (getenv (name)) # if !VOID_UNSETENV result = # endif unsetenv (name); return result; } #endif /* HAVE_UNSETENV */ libidn-1.28/lib/gltests/test-thread_create.c0000644000000000000000000000412312153706107015744 00000000000000/* Test of gl_thread_create () macro. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2011. */ #include #include "glthread/thread.h" #include #include #include "macros.h" static gl_thread_t main_thread_before; static gl_thread_t main_thread_after; static gl_thread_t worker_thread; static int dummy; static volatile int work_done; static void * worker_thread_func (void *arg) { work_done = 1; return &dummy; } int main () { main_thread_before = gl_thread_self (); if (glthread_create (&worker_thread, worker_thread_func, NULL) == 0) { void *ret; /* Check that gl_thread_self () has the same value before than after the first call to gl_thread_create (). */ main_thread_after = gl_thread_self (); ASSERT (memcmp (&main_thread_before, &main_thread_after, sizeof (gl_thread_t)) == 0); gl_thread_join (worker_thread, &ret); /* Check the return value of the thread. */ ASSERT (ret == &dummy); /* Check that worker_thread_func () has finished executing. */ ASSERT (work_done); return 0; } else { #if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS fputs ("glthread_create failed\n", stderr); return 1; #else fputs ("Skipping test: multithreading not enabled\n", stderr); return 77; #endif } } libidn-1.28/lib/gltests/alloca.in.h0000644000000000000000000000372412153706107014050 00000000000000/* Memory allocation on the stack. Copyright (C) 1995, 1999, 2001-2004, 2006-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H means there is a real alloca function. */ #ifndef _GL_ALLOCA_H #define _GL_ALLOCA_H /* alloca (N) returns a pointer to N bytes of memory allocated on the stack, which will last until the function returns. Use of alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns, - for huge N (say, N >= 65536) - you never know how large (or small) the stack is, and when the stack cannot fulfill the memory allocation request, the program just crashes. */ #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _AIX # define alloca __alloca # elif defined _MSC_VER # include # define alloca _alloca # elif defined __DECC && defined __VMS # define alloca __ALLOCA # elif defined __TANDEM && defined _TNS_E_TARGET # ifdef __cplusplus extern "C" # endif void *_alloca (unsigned short); # pragma intrinsic (_alloca) # define alloca _alloca # else # include # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif #endif /* _GL_ALLOCA_H */ libidn-1.28/lib/gltests/test-setenv.c0000644000000000000000000000310612153706107014456 00000000000000/* Tests of setenv. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "signature.h" SIGNATURE_CHECK (setenv, int, (char const *, char const *, int)); #include #include #include #include "macros.h" int main (void) { /* Test overwriting. */ ASSERT (setenv ("a", "==", -1) == 0); ASSERT (setenv ("a", "2", 0) == 0); ASSERT (strcmp (getenv ("a"), "==") == 0); /* Required to fail with EINVAL. */ errno = 0; ASSERT (setenv ("", "", 1) == -1); ASSERT (errno == EINVAL); errno = 0; ASSERT (setenv ("a=b", "", 0) == -1); ASSERT (errno == EINVAL); #if 0 /* glibc and gnulib's implementation guarantee this, but POSIX no longer requires it: http://austingroupbugs.net/view.php?id=185 */ errno = 0; ASSERT (setenv (NULL, "", 0) == -1); ASSERT (errno == EINVAL); #endif return 0; } libidn-1.28/lib/gltests/test-striconv.c0000644000000000000000000001421412153706107015023 00000000000000/* Test of character set conversion. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #include "striconv.h" #if HAVE_ICONV # include #endif #include #include #include #include "macros.h" int main () { #if HAVE_ICONV /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1, and UTF-8. */ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); iconv_t cd_utf8_to_88591 = iconv_open ("ISO-8859-1", "UTF-8"); ASSERT (cd_88591_to_utf8 != (iconv_t)(-1)); ASSERT (cd_utf8_to_88591 != (iconv_t)(-1)); /* ------------------------- Test mem_cd_iconv() ------------------------- */ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */ { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; char *result = NULL; size_t length = 0; int retval = mem_cd_iconv (input, strlen (input), cd_88591_to_utf8, &result, &length); ASSERT (retval == 0); ASSERT (length == strlen (expected)); ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0); free (result); } /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */ { static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char *result = NULL; size_t length = 0; int retval = mem_cd_iconv (input, strlen (input), cd_utf8_to_88591, &result, &length); ASSERT (retval == 0); ASSERT (length == strlen (expected)); ASSERT (result != NULL && memcmp (result, expected, strlen (expected)) == 0); free (result); } /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */ { static const char input[] = "\342\202\254"; /* EURO SIGN */ char *result = NULL; size_t length = 0; int retval = mem_cd_iconv (input, strlen (input), cd_utf8_to_88591, &result, &length); ASSERT (retval == -1 && errno == EILSEQ); ASSERT (result == NULL); } /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */ { static const char input[] = "\342"; char *result = NULL; size_t length = 0; int retval = mem_cd_iconv (input, strlen (input), cd_utf8_to_88591, &result, &length); ASSERT (retval == 0); ASSERT (length == 0); free (result); } /* ------------------------- Test str_cd_iconv() ------------------------- */ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */ { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; char *result = str_cd_iconv (input, cd_88591_to_utf8); ASSERT (result != NULL); ASSERT (strcmp (result, expected) == 0); free (result); } /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */ { static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char *result = str_cd_iconv (input, cd_utf8_to_88591); ASSERT (result != NULL); ASSERT (strcmp (result, expected) == 0); free (result); } /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */ { static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */ char *result = str_cd_iconv (input, cd_utf8_to_88591); ASSERT (result == NULL && errno == EILSEQ); } /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */ { static const char input[] = "\342"; char *result = str_cd_iconv (input, cd_utf8_to_88591); ASSERT (result != NULL); ASSERT (strcmp (result, "") == 0); free (result); } iconv_close (cd_88591_to_utf8); iconv_close (cd_utf8_to_88591); /* -------------------------- Test str_iconv() -------------------------- */ /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */ { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; char *result = str_iconv (input, "ISO-8859-1", "UTF-8"); ASSERT (result != NULL); ASSERT (strcmp (result, expected) == 0); free (result); } /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */ { static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char *result = str_iconv (input, "UTF-8", "ISO-8859-1"); ASSERT (result != NULL); ASSERT (strcmp (result, expected) == 0); free (result); } /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */ { static const char input[] = "Costs: 27 \342\202\254"; /* EURO SIGN */ char *result = str_iconv (input, "UTF-8", "ISO-8859-1"); ASSERT (result == NULL && errno == EILSEQ); } /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */ { static const char input[] = "\342"; char *result = str_iconv (input, "UTF-8", "ISO-8859-1"); ASSERT (result != NULL); ASSERT (strcmp (result, "") == 0); free (result); } #endif return 0; } libidn-1.28/lib/gltests/test-stddef.c0000644000000000000000000000316412153706107014427 00000000000000/* Test of substitute. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Eric Blake , 2009. */ #include #include #include "verify.h" /* Check that appropriate types are defined. */ wchar_t a = 'c'; ptrdiff_t b = 1; size_t c = 2; /* Check that NULL can be passed through varargs as a pointer type, per POSIX 2008. */ verify (sizeof NULL == sizeof (void *)); /* Check that offsetof produces integer constants with correct type. */ struct d { char e; char f; }; /* Solaris 10 has a bug where offsetof is under-parenthesized, and cannot be used as an arbitrary expression. However, since it is unlikely to bite real code, we ignore that short-coming. */ /* verify (sizeof offsetof (struct d, e) == sizeof (size_t)); */ verify (sizeof (offsetof (struct d, e)) == sizeof (size_t)); verify (offsetof (struct d, e) < -1); /* Must be unsigned. */ verify (offsetof (struct d, f) == 1); int main (void) { return 0; } libidn-1.28/lib/gltests/intprops.h0000644000000000000000000003504112153706107014063 00000000000000/* intprops.h -- properties of integer types Copyright (C) 2001-2005, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Paul Eggert. */ #ifndef _GL_INTPROPS_H #define _GL_INTPROPS_H #include /* Return an integer value, converted to the same type as the integer expression E after integer type promotion. V is the unconverted value. */ #define _GL_INT_CONVERT(e, v) (0 * (e) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see . */ #define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ /* True if the arithmetic type T is an integer type. bool counts as an integer. */ #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) /* True if negative values of the signed integer type T use two's complement, ones' complement, or signed magnitude representation, respectively. Much GNU code assumes two's complement, but some people like to be portable to all possible C hosts. */ #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) #define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) #define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) /* True if the signed integer expression E uses two's complement. */ #define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1) /* True if the arithmetic type T is signed. */ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the integer expression E, after integer promotion, has a signed type. */ #define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. These macros have undefined behavior if T is signed and has padding bits. If this is a problem for you, please let us know how to fix it for your host. */ /* The maximum and minimum values for the integer type T. */ #define TYPE_MINIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) 0 \ : TYPE_SIGNED_MAGNITUDE (t) \ ? ~ (t) 0 \ : ~ TYPE_MAXIMUM (t))) #define TYPE_MAXIMUM(t) \ ((t) (! TYPE_SIGNED (t) \ ? (t) -1 \ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) /* The maximum and minimum values for the type of the expression E, after integer promotion. E should not have side effects. */ #define _GL_INT_MINIMUM(e) \ (_GL_INT_SIGNED (e) \ ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_CONVERT (e, 0)) #define _GL_INT_MAXIMUM(e) \ (_GL_INT_SIGNED (e) \ ? _GL_SIGNED_INT_MAXIMUM (e) \ : _GL_INT_NEGATE_CONVERT (e, 1)) #define _GL_SIGNED_INT_MAXIMUM(e) \ (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1) /* Return 1 if the __typeof__ keyword works. This could be done by 'configure', but for now it's easier to do it by hand. */ #if 2 <= __GNUC__ || defined __IBM__TYPEOF__ || 0x5110 <= __SUNPRO_C # define _GL_HAVE___TYPEOF__ 1 #else # define _GL_HAVE___TYPEOF__ 0 #endif /* Return 1 if the integer type or expression T might be signed. Return 0 if it is definitely unsigned. This macro does not evaluate its argument, and expands to an integer constant expression. */ #if _GL_HAVE___TYPEOF__ # define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t)) #else # define _GL_SIGNED_TYPE_OR_EXPR(t) 1 #endif /* Bound on length of the string representing an unsigned integer value representable in B bits. log10 (2.0) < 146/485. The smallest value of B where this bound is not tight is 2621. */ #define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485) /* Bound on length of the string representing an integer type or expression T. Subtract 1 for the sign bit if T is signed, and then add 1 more for a minus sign if needed. Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is signed, this macro may overestimate the true bound by one byte when applied to unsigned types of size 2, 4, 16, ... bytes. */ #define INT_STRLEN_BOUND(t) \ (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \ - _GL_SIGNED_TYPE_OR_EXPR (t)) \ + _GL_SIGNED_TYPE_OR_EXPR (t)) /* Bound on buffer size needed to represent an integer type or expression T, including the terminating null. */ #define INT_BUFSIZE_BOUND(t) (INT_STRLEN_BOUND (t) + 1) /* Range overflow checks. The INT__RANGE_OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They do not rely on undefined or implementation-defined behavior. Their implementations are simple and straightforward, but they are a bit harder to use than the INT__OVERFLOW macros described below. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); Restrictions on *_RANGE_OVERFLOW macros: These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. The arithmetic arguments (including the MIN and MAX arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value MIN and maximum MAX. Unsigned types should use a zero MIN of the proper type. These macros are tuned for constant MIN and MAX. For commutative operations such as A + B, they are also tuned for constant B. */ /* Return 1 if A + B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (a) < (min) - (b) \ : (max) - (b) < (a)) /* Return 1 if A - B would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? (max) + (b) < (a) \ : (a) < (min) + (b)) /* Return 1 if - A would overflow in [MIN,MAX] arithmetic. See above for restrictions. */ #define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \ ((min) < 0 \ ? (a) < - (max) \ : 0 < (a)) /* Return 1 if A * B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Avoid && and || as they tickle bugs in Sun C 5.11 2010/08/13 and other compilers; see . */ #define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \ ((b) < 0 \ ? ((a) < 0 \ ? (a) < (max) / (b) \ : (b) == -1 \ ? 0 \ : (min) / (b) < (a)) \ : (b) == 0 \ ? 0 \ : ((a) < 0 \ ? (a) < (min) / (b) \ : (max) / (b) < (a))) /* Return 1 if A / B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. */ #define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \ ((min) < 0 && (b) == -1 && (a) < - (max)) /* Return 1 if A % B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Do not check for division by zero. Mathematically, % should never overflow, but on x86-like hosts INT_MIN % -1 traps, and the C standard permits this, so treat this as an overflow too. */ #define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max) /* Return 1 if A << B would overflow in [MIN,MAX] arithmetic. See above for restrictions. Here, MIN and MAX are for A only, and B need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0 <= B < wordwidth, and that when A is negative then A << B has undefined behavior and A >> B has implementation-defined behavior, but do not check these other restrictions. */ #define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \ ((a) < 0 \ ? (a) < (min) >> (b) \ : (max) >> (b) < (a)) /* The _GL*_OVERFLOW macros have the same restrictions as the *_RANGE_OVERFLOW macros, except that they do not assume that operands (e.g., A and B) have the same type as MIN and MAX. Instead, they assume that the result (e.g., A + B) has that type. */ #define _GL_ADD_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? (b) <= (a) + (b) \ : (b) < 0 ? (a) <= (a) + (b) \ : (a) + (b) < (b)) #define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \ : (a) < 0 ? 1 \ : (b) < 0 ? (a) - (b) <= (a) \ : (a) < (b)) #define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)) #define _GL_DIVIDE_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (b) <= (a) + (b) - 1 \ : (b) < 0 && (a) + (b) <= (a)) #define _GL_REMAINDER_OVERFLOW(a, b, min, max) \ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max)) /* Return a nonzero value if A is a mathematical multiple of B, where A is unsigned, B is negative, and MAX is the maximum value of A's type. A's type must be the same as (A % B)'s type. Normally (A % -B == 0) suffices, but things get tricky if -B would overflow. */ #define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \ ? (a) \ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \ : (a) % - (b)) \ == 0) /* Integer overflow checks. The INT__OVERFLOW macros return 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. Example usage: long int i = ...; long int j = ...; if (INT_MULTIPLY_OVERFLOW (i, j)) printf ("multiply would overflow"); else printf ("product is %ld", i * j); These macros do not check for all possible numerical problems or undefined or unspecified behavior: they do not check for division by zero, for bad shift counts, or for shifting negative numbers. These macros may evaluate their arguments zero or multiple times, so the arguments should not have side effects. These macros are tuned for their last argument being a constant. Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B, A % B, and A << B would overflow, respectively. */ #define INT_ADD_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW) #define INT_SUBTRACT_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW) #define INT_NEGATE_OVERFLOW(a) \ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) #define INT_MULTIPLY_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW) #define INT_DIVIDE_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW) #define INT_REMAINDER_OVERFLOW(a, b) \ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW) #define INT_LEFT_SHIFT_OVERFLOW(a, b) \ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a)) /* Return 1 if the expression A B would overflow, where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test, assuming MIN and MAX are the minimum and maximum for the result type. Arguments should be free of side effects. */ #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \ op_result_overflow (a, b, \ _GL_INT_MINIMUM (0 * (b) + (a)), \ _GL_INT_MAXIMUM (0 * (b) + (a))) #endif /* _GL_INTPROPS_H */ libidn-1.28/lib/gltests/unistd.in.h0000644000000000000000000014535012153706107014125 00000000000000/* Substitute for and wrapper around . Copyright (C) 2003-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_UNISTD_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #if @HAVE_UNISTD_H@ # @INCLUDE_NEXT@ @NEXT_UNISTD_H@ #endif /* Get all possible declarations of gethostname(). */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \ && !defined _GL_INCLUDING_WINSOCK2_H # define _GL_INCLUDING_WINSOCK2_H # include # undef _GL_INCLUDING_WINSOCK2_H #endif #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H #define _@GUARD_PREFIX@_UNISTD_H /* NetBSD 5.0 mis-defines NULL. Also get size_t. */ #include /* mingw doesn't define the SEEK_* or *_FILENO macros in . */ /* Cygwin 1.7.1 declares symlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ # include #endif /* Cygwin 1.7.1 declares unlinkat in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) && defined __CYGWIN__ \ && ! defined __GLIBC__ # include #endif /* mingw fails to declare _exit in . */ /* mingw, MSVC, BeOS, Haiku declare environ in , not in . */ /* Solaris declares getcwd not only in but also in . */ /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system is included here. */ /* But avoid namespace pollution on glibc systems. */ #if !defined __GLIBC__ && !defined __osf__ # define __need_system_stdlib_h # include # undef __need_system_stdlib_h #endif /* Native Windows platforms declare chdir, getcwd, rmdir in and/or , not in . They also declare access(), chmod(), close(), dup(), dup2(), isatty(), lseek(), read(), unlink(), write() in . */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) # include /* mingw32, mingw64 */ # include /* mingw64, MSVC 9 */ #elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \ || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \ || defined GNULIB_POSIXCHECK) \ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif /* AIX and OSF/1 5.1 declare getdomainname in , not in . NonStop Kernel declares gethostname in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \ && !defined __GLIBC__ # include #endif /* MSVC defines off_t in . May also define off_t to a 64-bit type on native Windows. */ #if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@ /* Get off_t. */ # include #endif #if (@GNULIB_READ@ || @GNULIB_WRITE@ \ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK) /* Get ssize_t. */ # include #endif /* Get getopt(), optarg, optind, opterr, optopt. But avoid namespace pollution on glibc systems. */ #if @GNULIB_UNISTD_H_GETOPT@ && !defined __GLIBC__ && !defined _GL_SYSTEM_GETOPT # define __need_getopt # include #endif _GL_INLINE_HEADER_BEGIN #ifndef _GL_UNISTD_INLINE # define _GL_UNISTD_INLINE _GL_INLINE #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Hide some function declarations from . */ #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef socket # define socket socket_used_without_including_sys_socket_h # undef connect # define connect connect_used_without_including_sys_socket_h # undef accept # define accept accept_used_without_including_sys_socket_h # undef bind # define bind bind_used_without_including_sys_socket_h # undef getpeername # define getpeername getpeername_used_without_including_sys_socket_h # undef getsockname # define getsockname getsockname_used_without_including_sys_socket_h # undef getsockopt # define getsockopt getsockopt_used_without_including_sys_socket_h # undef listen # define listen listen_used_without_including_sys_socket_h # undef recv # define recv recv_used_without_including_sys_socket_h # undef send # define send send_used_without_including_sys_socket_h # undef recvfrom # define recvfrom recvfrom_used_without_including_sys_socket_h # undef sendto # define sendto sendto_used_without_including_sys_socket_h # undef setsockopt # define setsockopt setsockopt_used_without_including_sys_socket_h # undef shutdown # define shutdown shutdown_used_without_including_sys_socket_h # else _GL_WARN_ON_USE (socket, "socket() used without including "); _GL_WARN_ON_USE (connect, "connect() used without including "); _GL_WARN_ON_USE (accept, "accept() used without including "); _GL_WARN_ON_USE (bind, "bind() used without including "); _GL_WARN_ON_USE (getpeername, "getpeername() used without including "); _GL_WARN_ON_USE (getsockname, "getsockname() used without including "); _GL_WARN_ON_USE (getsockopt, "getsockopt() used without including "); _GL_WARN_ON_USE (listen, "listen() used without including "); _GL_WARN_ON_USE (recv, "recv() used without including "); _GL_WARN_ON_USE (send, "send() used without including "); _GL_WARN_ON_USE (recvfrom, "recvfrom() used without including "); _GL_WARN_ON_USE (sendto, "sendto() used without including "); _GL_WARN_ON_USE (setsockopt, "setsockopt() used without including "); _GL_WARN_ON_USE (shutdown, "shutdown() used without including "); # endif # endif # if !defined _@GUARD_PREFIX@_SYS_SELECT_H # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef select # define select select_used_without_including_sys_select_h # else _GL_WARN_ON_USE (select, "select() used without including "); # endif # endif #endif /* OS/2 EMX lacks these macros. */ #ifndef STDIN_FILENO # define STDIN_FILENO 0 #endif #ifndef STDOUT_FILENO # define STDOUT_FILENO 1 #endif #ifndef STDERR_FILENO # define STDERR_FILENO 2 #endif /* Ensure *_OK macros exist. */ #ifndef F_OK # define F_OK 0 # define X_OK 1 # define W_OK 2 # define R_OK 4 #endif /* Declare overridden functions. */ #if defined GNULIB_POSIXCHECK /* The access() function is a security risk. */ _GL_WARN_ON_USE (access, "the access function is a security risk - " "use the gnulib module faccessat instead"); #endif #if @GNULIB_CHDIR@ _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIASWARN (chdir); #elif defined GNULIB_POSIXCHECK # undef chdir # if HAVE_RAW_DECL_CHDIR _GL_WARN_ON_USE (chown, "chdir is not always in - " "use gnulib module chdir for portability"); # endif #endif #if @GNULIB_CHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_DUP2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup2 rpl_dup2 # endif _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd)); _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd)); # else # if !@HAVE_DUP2@ _GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd)); # endif _GL_CXXALIASWARN (dup2); #elif defined GNULIB_POSIXCHECK # undef dup2 # if HAVE_RAW_DECL_DUP2 _GL_WARN_ON_USE (dup2, "dup2 is unportable - " "use gnulib module dup2 for portability"); # endif #endif #if @GNULIB_DUP3@ /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the specified flags. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Close NEWFD first if it is open. Return newfd if successful, otherwise -1 and errno set. See the Linux man page at . */ # if @HAVE_DUP3@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define dup3 rpl_dup3 # endif _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags)); # else _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags)); _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags)); # endif _GL_CXXALIASWARN (dup3); #elif defined GNULIB_POSIXCHECK # undef dup3 # if HAVE_RAW_DECL_DUP3 _GL_WARN_ON_USE (dup3, "dup3 is unportable - " "use gnulib module dup3 for portability"); # endif #endif #if @GNULIB_ENVIRON@ # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ # if defined __APPLE__ && defined __MACH__ # include # define environ (*_NSGetEnviron ()) # else # ifdef __cplusplus extern "C" { # endif extern char **environ; # ifdef __cplusplus } # endif # endif # endif #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** rpl_environ (void) { return &environ; } _GL_WARN_ON_USE (rpl_environ, "environ is unportable - " "use gnulib module environ for portability"); # undef environ # define environ (*rpl_environ ()) # endif #endif #if @GNULIB_EUIDACCESS@ /* Like access(), except that it uses the effective user id and group id of the current process. */ # if !@HAVE_EUIDACCESS@ _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode)); _GL_CXXALIASWARN (euidaccess); # if defined GNULIB_POSIXCHECK /* Like access(), this function is a security risk. */ _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - " "use the gnulib module faccessat instead"); # endif #elif defined GNULIB_POSIXCHECK # undef euidaccess # if HAVE_RAW_DECL_EUIDACCESS _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - " "use gnulib module euidaccess for portability"); # endif #endif #if @GNULIB_FACCESSAT@ # if !@HAVE_FACCESSAT@ _GL_FUNCDECL_SYS (faccessat, int, (int fd, char const *file, int mode, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (faccessat, int, (int fd, char const *file, int mode, int flag)); _GL_CXXALIASWARN (faccessat); #elif defined GNULIB_POSIXCHECK # undef faccessat # if HAVE_RAW_DECL_FACCESSAT _GL_WARN_ON_USE (faccessat, "faccessat is not portable - " "use gnulib module faccessat for portability"); # endif #endif #if @GNULIB_FCHDIR@ /* Change the process' current working directory to the directory on which the given file descriptor is open. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if ! @HAVE_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); /* Gnulib internal hooks needed to maintain the fchdir metadata. */ _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename) _GL_ARG_NONNULL ((2)); _GL_EXTERN_C void _gl_unregister_fd (int fd); _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd); _GL_EXTERN_C const char *_gl_directory_name (int fd); # else # if !@HAVE_DECL_FCHDIR@ _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/)); # endif # endif _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/)); _GL_CXXALIASWARN (fchdir); #elif defined GNULIB_POSIXCHECK # undef fchdir # if HAVE_RAW_DECL_FCHDIR _GL_WARN_ON_USE (fchdir, "fchdir is unportable - " "use gnulib module fchdir for portability"); # endif #endif #if @GNULIB_FCHOWNAT@ # if @REPLACE_FCHOWNAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef fchownat # define fchownat rpl_fchownat # endif _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # else # if !@HAVE_FCHOWNAT@ _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file, uid_t owner, gid_t group, int flag)); # endif _GL_CXXALIASWARN (fchownat); #elif defined GNULIB_POSIXCHECK # undef fchownat # if HAVE_RAW_DECL_FCHOWNAT _GL_WARN_ON_USE (fchownat, "fchownat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_FDATASYNC@ /* Synchronize changes to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@ _GL_FUNCDECL_SYS (fdatasync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fdatasync, int, (int fd)); _GL_CXXALIASWARN (fdatasync); #elif defined GNULIB_POSIXCHECK # undef fdatasync # if HAVE_RAW_DECL_FDATASYNC _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - " "use gnulib module fdatasync for portability"); # endif #endif #if @GNULIB_FSYNC@ /* Synchronize changes, including metadata, to a file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if !@HAVE_FSYNC@ _GL_FUNCDECL_SYS (fsync, int, (int fd)); # endif _GL_CXXALIAS_SYS (fsync, int, (int fd)); _GL_CXXALIASWARN (fsync); #elif defined GNULIB_POSIXCHECK # undef fsync # if HAVE_RAW_DECL_FSYNC _GL_WARN_ON_USE (fsync, "fsync is unportable - " "use gnulib module fsync for portability"); # endif #endif #if @GNULIB_FTRUNCATE@ /* Change the size of the file to which FD is opened to become equal to LENGTH. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_FTRUNCATE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ftruncate # define ftruncate rpl_ftruncate # endif _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length)); _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length)); # else # if !@HAVE_FTRUNCATE@ _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length)); # endif _GL_CXXALIASWARN (ftruncate); #elif defined GNULIB_POSIXCHECK # undef ftruncate # if HAVE_RAW_DECL_FTRUNCATE _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - " "use gnulib module ftruncate for portability"); # endif #endif #if @GNULIB_GETCWD@ /* Get the name of the current working directory, and put it in SIZE bytes of BUF. Return BUF if successful, or NULL if the directory couldn't be determined or SIZE was too small. See the POSIX:2008 specification . Additionally, the gnulib module 'getcwd' guarantees the following GNU extension: If BUF is NULL, an array is allocated with 'malloc'; the array is SIZE bytes long, unless SIZE == 0, in which case it is as big as necessary. */ # if @REPLACE_GETCWD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getcwd rpl_getcwd # endif _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size)); _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size)); # else /* Need to cast, because on mingw, the second parameter is int size. */ _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size)); # endif _GL_CXXALIASWARN (getcwd); #elif defined GNULIB_POSIXCHECK # undef getcwd # if HAVE_RAW_DECL_GETCWD _GL_WARN_ON_USE (getcwd, "getcwd is unportable - " "use gnulib module getcwd for portability"); # endif #endif #if @GNULIB_GETDOMAINNAME@ /* Return the NIS domain name of the machine. WARNING! The NIS domain name is unrelated to the fully qualified host name of the machine. It is also unrelated to email addresses. WARNING! The NIS domain name is usually the empty string or "(none)" when not using NIS. Put up to LEN bytes of the NIS domain name into NAME. Null terminate it if the name is shorter than LEN. If the NIS domain name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @REPLACE_GETDOMAINNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getdomainname # define getdomainname rpl_getdomainname # endif _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len)); # else # if !@HAVE_DECL_GETDOMAINNAME@ _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (getdomainname); #elif defined GNULIB_POSIXCHECK # undef getdomainname # if HAVE_RAW_DECL_GETDOMAINNAME _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - " "use gnulib module getdomainname for portability"); # endif #endif #if @GNULIB_GETDTABLESIZE@ /* Return the maximum number of file descriptors in the current process. In POSIX, this is same as sysconf (_SC_OPEN_MAX). */ # if !@HAVE_GETDTABLESIZE@ _GL_FUNCDECL_SYS (getdtablesize, int, (void)); # endif _GL_CXXALIAS_SYS (getdtablesize, int, (void)); _GL_CXXALIASWARN (getdtablesize); #elif defined GNULIB_POSIXCHECK # undef getdtablesize # if HAVE_RAW_DECL_GETDTABLESIZE _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - " "use gnulib module getdtablesize for portability"); # endif #endif #if @GNULIB_GETGROUPS@ /* Return the supplemental groups that the current process belongs to. It is unspecified whether the effective group id is in the list. If N is 0, return the group count; otherwise, N describes how many entries are available in GROUPS. Return -1 and set errno if N is not 0 and not large enough. Fails with ENOSYS on some systems. */ # if @REPLACE_GETGROUPS@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef getgroups # define getgroups rpl_getgroups # endif _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups)); _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups)); # else # if !@HAVE_GETGROUPS@ _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups)); # endif _GL_CXXALIASWARN (getgroups); #elif defined GNULIB_POSIXCHECK # undef getgroups # if HAVE_RAW_DECL_GETGROUPS _GL_WARN_ON_USE (getgroups, "getgroups is unportable - " "use gnulib module getgroups for portability"); # endif #endif #if @GNULIB_GETHOSTNAME@ /* Return the standard host name of the machine. WARNING! The host name may or may not be fully qualified. Put up to LEN bytes of the host name into NAME. Null terminate it if the name is shorter than LEN. If the host name is longer than LEN, set errno = EINVAL and return -1. Return 0 if successful, otherwise set errno and return -1. */ # if @UNISTD_H_HAVE_WINSOCK2_H@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef gethostname # define gethostname rpl_gethostname # endif _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len)); # else # if !@HAVE_GETHOSTNAME@ _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second parameter is int len. */ _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len)); # endif _GL_CXXALIASWARN (gethostname); #elif @UNISTD_H_HAVE_WINSOCK2_H@ # undef gethostname # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname #elif defined GNULIB_POSIXCHECK # undef gethostname # if HAVE_RAW_DECL_GETHOSTNAME _GL_WARN_ON_USE (gethostname, "gethostname is unportable - " "use gnulib module gethostname for portability"); # endif #endif #if @GNULIB_GETLOGIN@ /* Returns the user's login name, or NULL if it cannot be found. Upon error, returns NULL with errno set. See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if !@HAVE_GETLOGIN@ _GL_FUNCDECL_SYS (getlogin, char *, (void)); # endif _GL_CXXALIAS_SYS (getlogin, char *, (void)); _GL_CXXALIASWARN (getlogin); #elif defined GNULIB_POSIXCHECK # undef getlogin # if HAVE_RAW_DECL_GETLOGIN _GL_WARN_ON_USE (getlogin, "getlogin is unportable - " "use gnulib module getlogin for portability"); # endif #endif #if @GNULIB_GETLOGIN_R@ /* Copies the user's login name to NAME. The array pointed to by NAME has room for SIZE bytes. Returns 0 if successful. Upon error, an error number is returned, or -1 in the case that the login name cannot be found but no specific error is provided (this case is hopefully rare but is left open by the POSIX spec). See . Most programs don't need to use this function, because the information is available through environment variables: ${LOGNAME-$USER} on Unix platforms, $USERNAME on native Windows platforms. */ # if @REPLACE_GETLOGIN_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getlogin_r rpl_getlogin_r # endif _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size)); # else # if !@HAVE_DECL_GETLOGIN_R@ _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 10 systems, the second argument is int size. */ _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size)); # endif _GL_CXXALIASWARN (getlogin_r); #elif defined GNULIB_POSIXCHECK # undef getlogin_r # if HAVE_RAW_DECL_GETLOGIN_R _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - " "use gnulib module getlogin_r for portability"); # endif #endif #if @GNULIB_GETPAGESIZE@ # if @REPLACE_GETPAGESIZE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize rpl_getpagesize # endif _GL_FUNCDECL_RPL (getpagesize, int, (void)); _GL_CXXALIAS_RPL (getpagesize, int, (void)); # else # if !@HAVE_GETPAGESIZE@ # if !defined getpagesize /* This is for POSIX systems. */ # if !defined _gl_getpagesize && defined _SC_PAGESIZE # if ! (defined __VMS && __VMS_VER < 70000000) # define _gl_getpagesize() sysconf (_SC_PAGESIZE) # endif # endif /* This is for older VMS. */ # if !defined _gl_getpagesize && defined __VMS # ifdef __ALPHA # define _gl_getpagesize() 8192 # else # define _gl_getpagesize() 512 # endif # endif /* This is for BeOS. */ # if !defined _gl_getpagesize && @HAVE_OS_H@ # include # if defined B_PAGE_SIZE # define _gl_getpagesize() B_PAGE_SIZE # endif # endif /* This is for AmigaOS4.0. */ # if !defined _gl_getpagesize && defined __amigaos4__ # define _gl_getpagesize() 2048 # endif /* This is for older Unix systems. */ # if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@ # include # ifdef EXEC_PAGESIZE # define _gl_getpagesize() EXEC_PAGESIZE # else # ifdef NBPG # ifndef CLSIZE # define CLSIZE 1 # endif # define _gl_getpagesize() (NBPG * CLSIZE) # else # ifdef NBPC # define _gl_getpagesize() NBPC # endif # endif # endif # endif # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define getpagesize() _gl_getpagesize () # else # if !GNULIB_defined_getpagesize_function _GL_UNISTD_INLINE int getpagesize () { return _gl_getpagesize (); } # define GNULIB_defined_getpagesize_function 1 # endif # endif # endif # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t. */ _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void)); # endif # if @HAVE_DECL_GETPAGESIZE@ _GL_CXXALIASWARN (getpagesize); # endif #elif defined GNULIB_POSIXCHECK # undef getpagesize # if HAVE_RAW_DECL_GETPAGESIZE _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " "use gnulib module getpagesize for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (getusershell, char *, (void)); # endif _GL_CXXALIAS_SYS (getusershell, char *, (void)); _GL_CXXALIASWARN (getusershell); #elif defined GNULIB_POSIXCHECK # undef getusershell # if HAVE_RAW_DECL_GETUSERSHELL _GL_WARN_ON_USE (getusershell, "getusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Rewind to pointer that is advanced at each getusershell() call. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (setusershell, void, (void)); # endif _GL_CXXALIAS_SYS (setusershell, void, (void)); _GL_CXXALIASWARN (setusershell); #elif defined GNULIB_POSIXCHECK # undef setusershell # if HAVE_RAW_DECL_SETUSERSHELL _GL_WARN_ON_USE (setusershell, "setusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GETUSERSHELL@ /* Free the pointer that is advanced at each getusershell() call and associated resources. */ # if !@HAVE_DECL_GETUSERSHELL@ _GL_FUNCDECL_SYS (endusershell, void, (void)); # endif _GL_CXXALIAS_SYS (endusershell, void, (void)); _GL_CXXALIASWARN (endusershell); #elif defined GNULIB_POSIXCHECK # undef endusershell # if HAVE_RAW_DECL_ENDUSERSHELL _GL_WARN_ON_USE (endusershell, "endusershell is unportable - " "use gnulib module getusershell for portability"); # endif #endif #if @GNULIB_GROUP_MEMBER@ /* Determine whether group id is in calling user's group list. */ # if !@HAVE_GROUP_MEMBER@ _GL_FUNCDECL_SYS (group_member, int, (gid_t gid)); # endif _GL_CXXALIAS_SYS (group_member, int, (gid_t gid)); _GL_CXXALIASWARN (group_member); #elif defined GNULIB_POSIXCHECK # undef group_member # if HAVE_RAW_DECL_GROUP_MEMBER _GL_WARN_ON_USE (group_member, "group_member is unportable - " "use gnulib module group-member for portability"); # endif #endif #if @GNULIB_ISATTY@ # if @REPLACE_ISATTY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef isatty # define isatty rpl_isatty # endif _GL_FUNCDECL_RPL (isatty, int, (int fd)); _GL_CXXALIAS_RPL (isatty, int, (int fd)); # else _GL_CXXALIAS_SYS (isatty, int, (int fd)); # endif _GL_CXXALIASWARN (isatty); #elif defined GNULIB_POSIXCHECK # undef isatty # if HAVE_RAW_DECL_ISATTY _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - " "use gnulib module isatty for portability"); # endif #endif #if @GNULIB_LCHOWN@ /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE to GID (if GID is not -1). Do not follow symbolic links. Return 0 if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LCHOWN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef lchown # define lchown rpl_lchown # endif _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)); # else # if !@HAVE_LCHOWN@ _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)); # endif _GL_CXXALIASWARN (lchown); #elif defined GNULIB_POSIXCHECK # undef lchown # if HAVE_RAW_DECL_LCHOWN _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - " "use gnulib module lchown for portability"); # endif #endif #if @GNULIB_LINK@ /* Create a new hard link for an existing file. Return 0 if successful, otherwise -1 and errno set. See POSIX:2008 specification . */ # if @REPLACE_LINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define link rpl_link # endif _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2)); # else # if !@HAVE_LINK@ _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2)); # endif _GL_CXXALIASWARN (link); #elif defined GNULIB_POSIXCHECK # undef link # if HAVE_RAW_DECL_LINK _GL_WARN_ON_USE (link, "link is unportable - " "use gnulib module link for portability"); # endif #endif #if @GNULIB_LINKAT@ /* Create a new hard link for an existing file, relative to two directories. FLAG controls whether symlinks are followed. Return 0 if successful, otherwise -1 and errno set. */ # if @REPLACE_LINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef linkat # define linkat rpl_linkat # endif _GL_FUNCDECL_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # else # if !@HAVE_LINKAT@ _GL_FUNCDECL_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (linkat, int, (int fd1, const char *path1, int fd2, const char *path2, int flag)); # endif _GL_CXXALIASWARN (linkat); #elif defined GNULIB_POSIXCHECK # undef linkat # if HAVE_RAW_DECL_LINKAT _GL_WARN_ON_USE (linkat, "linkat is unportable - " "use gnulib module linkat for portability"); # endif #endif #if @GNULIB_LSEEK@ /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END. Return the new offset if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_LSEEK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define lseek rpl_lseek # endif _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence)); _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence)); # else _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence)); # endif _GL_CXXALIASWARN (lseek); #elif defined GNULIB_POSIXCHECK # undef lseek # if HAVE_RAW_DECL_LSEEK _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some " "systems - use gnulib module lseek for portability"); # endif #endif #if @GNULIB_PIPE@ /* Create a pipe, defaulting to O_BINARY mode. Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. */ # if !@HAVE_PIPE@ _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (pipe, int, (int fd[2])); _GL_CXXALIASWARN (pipe); #elif defined GNULIB_POSIXCHECK # undef pipe # if HAVE_RAW_DECL_PIPE _GL_WARN_ON_USE (pipe, "pipe is unportable - " "use gnulib module pipe-posix for portability"); # endif #endif #if @GNULIB_PIPE2@ /* Create a pipe, applying the given flags when opening the read-end of the pipe and the write-end of the pipe. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). Store the read-end as fd[0] and the write-end as fd[1]. Return 0 upon success, or -1 with errno set upon failure. See also the Linux man page at . */ # if @HAVE_PIPE2@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define pipe2 rpl_pipe2 # endif _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags)); # else _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags)); # endif _GL_CXXALIASWARN (pipe2); #elif defined GNULIB_POSIXCHECK # undef pipe2 # if HAVE_RAW_DECL_PIPE2 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - " "use gnulib module pipe2 for portability"); # endif #endif #if @GNULIB_PREAD@ /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET. Return the number of bytes placed into BUF if successful, otherwise set errno and return -1. 0 indicates EOF. See the POSIX:2008 specification . */ # if @REPLACE_PREAD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pread # define pread rpl_pread # endif _GL_FUNCDECL_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PREAD@ _GL_FUNCDECL_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pread, ssize_t, (int fd, void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pread); #elif defined GNULIB_POSIXCHECK # undef pread # if HAVE_RAW_DECL_PREAD _GL_WARN_ON_USE (pread, "pread is unportable - " "use gnulib module pread for portability"); # endif #endif #if @GNULIB_PWRITE@ /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET. Return the number of bytes written if successful, otherwise set errno and return -1. 0 indicates nothing written. See the POSIX:2008 specification . */ # if @REPLACE_PWRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef pwrite # define pwrite rpl_pwrite # endif _GL_FUNCDECL_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # else # if !@HAVE_PWRITE@ _GL_FUNCDECL_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (pwrite, ssize_t, (int fd, const void *buf, size_t bufsize, off_t offset)); # endif _GL_CXXALIASWARN (pwrite); #elif defined GNULIB_POSIXCHECK # undef pwrite # if HAVE_RAW_DECL_PWRITE _GL_WARN_ON_USE (pwrite, "pwrite is unportable - " "use gnulib module pwrite for portability"); # endif #endif #if @GNULIB_READ@ /* Read up to COUNT bytes from file descriptor FD into the buffer starting at BUF. See the POSIX:2008 specification . */ # if @REPLACE_READ@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef read # define read rpl_read # endif _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count)); # endif _GL_CXXALIASWARN (read); #endif #if @GNULIB_READLINK@ /* Read the contents of the symbolic link FILE and place the first BUFSIZE bytes of it into BUF. Return the number of bytes placed into BUF if successful, otherwise -1 and errno set. See the POSIX:2008 specification . */ # if @REPLACE_READLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define readlink rpl_readlink # endif _GL_FUNCDECL_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # else # if !@HAVE_READLINK@ _GL_FUNCDECL_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (readlink, ssize_t, (const char *file, char *buf, size_t bufsize)); # endif _GL_CXXALIASWARN (readlink); #elif defined GNULIB_POSIXCHECK # undef readlink # if HAVE_RAW_DECL_READLINK _GL_WARN_ON_USE (readlink, "readlink is unportable - " "use gnulib module readlink for portability"); # endif #endif #if @GNULIB_READLINKAT@ # if !@HAVE_READLINKAT@ _GL_FUNCDECL_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (readlinkat, ssize_t, (int fd, char const *file, char *buf, size_t len)); _GL_CXXALIASWARN (readlinkat); #elif defined GNULIB_POSIXCHECK # undef readlinkat # if HAVE_RAW_DECL_READLINKAT _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - " "use gnulib module readlinkat for portability"); # endif #endif #if @GNULIB_RMDIR@ /* Remove the directory DIR. */ # if @REPLACE_RMDIR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define rmdir rpl_rmdir # endif _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (rmdir, int, (char const *name)); # else _GL_CXXALIAS_SYS (rmdir, int, (char const *name)); # endif _GL_CXXALIASWARN (rmdir); #elif defined GNULIB_POSIXCHECK # undef rmdir # if HAVE_RAW_DECL_RMDIR _GL_WARN_ON_USE (rmdir, "rmdir is unportable - " "use gnulib module rmdir for portability"); # endif #endif #if @GNULIB_SETHOSTNAME@ /* Set the host name of the machine. The host name may or may not be fully qualified. Put LEN bytes of NAME into the host name. Return 0 if successful, otherwise, set errno and return -1. Platforms with no ability to set the hostname return -1 and set errno = ENOSYS. */ # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@ _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len) _GL_ARG_NONNULL ((1))); # endif /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5 and FreeBSD 6.4 the second parameter is int. On Solaris 11 2011-10, the first parameter is not const. */ _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len)); _GL_CXXALIASWARN (sethostname); #elif defined GNULIB_POSIXCHECK # undef sethostname # if HAVE_RAW_DECL_SETHOSTNAME _GL_WARN_ON_USE (sethostname, "sethostname is unportable - " "use gnulib module sethostname for portability"); # endif #endif #if @GNULIB_SLEEP@ /* Pause the execution of the current thread for N seconds. Returns the number of seconds left to sleep. See the POSIX:2008 specification . */ # if @REPLACE_SLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef sleep # define sleep rpl_sleep # endif _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n)); _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n)); # else # if !@HAVE_SLEEP@ _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n)); # endif _GL_CXXALIASWARN (sleep); #elif defined GNULIB_POSIXCHECK # undef sleep # if HAVE_RAW_DECL_SLEEP _GL_WARN_ON_USE (sleep, "sleep is unportable - " "use gnulib module sleep for portability"); # endif #endif #if @GNULIB_SYMLINK@ # if @REPLACE_SYMLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef symlink # define symlink rpl_symlink # endif _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file)); # else # if !@HAVE_SYMLINK@ _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file)); # endif _GL_CXXALIASWARN (symlink); #elif defined GNULIB_POSIXCHECK # undef symlink # if HAVE_RAW_DECL_SYMLINK _GL_WARN_ON_USE (symlink, "symlink is not portable - " "use gnulib module symlink for portability"); # endif #endif #if @GNULIB_SYMLINKAT@ # if !@HAVE_SYMLINKAT@ _GL_FUNCDECL_SYS (symlinkat, int, (char const *contents, int fd, char const *file) _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (symlinkat, int, (char const *contents, int fd, char const *file)); _GL_CXXALIASWARN (symlinkat); #elif defined GNULIB_POSIXCHECK # undef symlinkat # if HAVE_RAW_DECL_SYMLINKAT _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - " "use gnulib module symlinkat for portability"); # endif #endif #if @GNULIB_TTYNAME_R@ /* Store at most BUFLEN characters of the pathname of the terminal FD is open on in BUF. Return 0 on success, otherwise an error number. */ # if @REPLACE_TTYNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ttyname_r # define ttyname_r rpl_ttyname_r # endif _GL_FUNCDECL_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (ttyname_r, int, (int fd, char *buf, size_t buflen)); # else # if !@HAVE_DECL_TTYNAME_R@ _GL_FUNCDECL_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (ttyname_r, int, (int fd, char *buf, size_t buflen)); # endif _GL_CXXALIASWARN (ttyname_r); #elif defined GNULIB_POSIXCHECK # undef ttyname_r # if HAVE_RAW_DECL_TTYNAME_R _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - " "use gnulib module ttyname_r for portability"); # endif #endif #if @GNULIB_UNLINK@ # if @REPLACE_UNLINK@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlink # define unlink rpl_unlink # endif _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unlink, int, (char const *file)); # else _GL_CXXALIAS_SYS (unlink, int, (char const *file)); # endif _GL_CXXALIASWARN (unlink); #elif defined GNULIB_POSIXCHECK # undef unlink # if HAVE_RAW_DECL_UNLINK _GL_WARN_ON_USE (unlink, "unlink is not portable - " "use gnulib module unlink for portability"); # endif #endif #if @GNULIB_UNLINKAT@ # if @REPLACE_UNLINKAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unlinkat # define unlinkat rpl_unlinkat # endif _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag)); # else # if !@HAVE_UNLINKAT@ _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag)); # endif _GL_CXXALIASWARN (unlinkat); #elif defined GNULIB_POSIXCHECK # undef unlinkat # if HAVE_RAW_DECL_UNLINKAT _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - " "use gnulib module openat for portability"); # endif #endif #if @GNULIB_USLEEP@ /* Pause the execution of the current thread for N microseconds. Returns 0 on completion, or -1 on range error. See the POSIX:2001 specification . */ # if @REPLACE_USLEEP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef usleep # define usleep rpl_usleep # endif _GL_FUNCDECL_RPL (usleep, int, (useconds_t n)); _GL_CXXALIAS_RPL (usleep, int, (useconds_t n)); # else # if !@HAVE_USLEEP@ _GL_FUNCDECL_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIAS_SYS (usleep, int, (useconds_t n)); # endif _GL_CXXALIASWARN (usleep); #elif defined GNULIB_POSIXCHECK # undef usleep # if HAVE_RAW_DECL_USLEEP _GL_WARN_ON_USE (usleep, "usleep is unportable - " "use gnulib module usleep for portability"); # endif #endif #if @GNULIB_WRITE@ /* Write up to COUNT bytes starting at BUF to file descriptor FD. See the POSIX:2008 specification . */ # if @REPLACE_WRITE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef write # define write rpl_write # endif _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count)); # else /* Need to cast, because on mingw, the third parameter is unsigned int count and the return type is 'int'. */ _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count)); # endif _GL_CXXALIASWARN (write); #endif _GL_INLINE_HEADER_END #endif /* _@GUARD_PREFIX@_UNISTD_H */ #endif /* _@GUARD_PREFIX@_UNISTD_H */ libidn-1.28/lib/gltests/test-stdbool.c0000644000000000000000000000666012153706107014630 00000000000000/* Test of substitute. Copyright (C) 2002-2007, 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ /* We want this test to succeed even when using gcc's -Werror; but to do that requires a pragma that didn't exist before 4.3.0. */ #ifndef __GNUC__ # define ADDRESS_CHECK_OKAY #elif __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) /* No way to silence -Waddress. */ #else # pragma GCC diagnostic ignored "-Waddress" # define ADDRESS_CHECK_OKAY #endif #include #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif /* Several tests cannot be guaranteed with gnulib's , at least, not for all compilers and compiler options. */ #if HAVE_STDBOOL_H || 3 <= __GNUC__ struct s { _Bool s: 1; _Bool t; } s; #endif char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ char d[(bool) 0.5 == true ? 1 : -1]; # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning. */ /* C99 may plausibly be interpreted as not requiring support for a cast from a variable's address to bool in a static initializer. So treat it like a GCC extension. */ # ifdef __GNUC__ bool e = &s; # endif # endif char f[(_Bool) 0.0 == false ? 1 : -1]; #endif char g[true]; char h[sizeof (_Bool)]; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ char i[sizeof s.t]; #endif enum { j = false, k = true, l = false * true, m = true * 256 }; _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { int error = 0; #if HAVE_STDBOOL_H || 3 <= __GNUC__ /* See above. */ # ifdef ADDRESS_CHECK_OKAY /* Avoid gcc warning. */ /* A cast from a variable's address to bool is valid in expressions. */ { bool e1 = &s; if (!e1) error = 1; } # endif #endif /* Catch a bug in IBM AIX xlc compiler version 6.0.0.0 reported by James Lemley on 2005-10-05; see http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html This is a runtime test, since a corresponding compile-time test would rely on initializer extensions. */ { char digs[] = "0123456789"; if (&(digs + 5)[-2 + (bool) 1] != &digs[4]) error = 1; } return error; } libidn-1.28/lib/gltests/test-init.sh0000755000000000000000000000450212153706107014311 00000000000000#!/bin/sh # Unit tests for init.sh # Copyright (C) 2011-2013 Free Software Foundation, Inc. # This file is part of the GNUlib Library. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ : ${srcdir=.} . "$srcdir/init.sh"; path_prepend_ . fail=0 test_compare() { touch empty || fail=1 echo xyz > in || fail=1 compare /dev/null /dev/null >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" # "err" should be empty, too, but has "set -x" output when VERBOSE=yes case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare /dev/null empty >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare in in >out 2>err || fail=1 test -s out && fail_ "out not empty: $(cat out)" case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare /dev/null in >out 2>err && fail=1 cat <<\EOF > exp diff -u /dev/null in --- /dev/null 1970-01-01 +++ in 1970-01-01 +xyz EOF compare exp out || fail=1 case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac compare empty in >out 2>err && fail=1 # Compare against expected output only if compare is using diff -u. if grep @ out >/dev/null; then # Remove the TAB-date suffix on each --- and +++ line, # for both the expected and the actual output files. # Also remove the @@ line, since Solaris 5.10 and GNU diff formats differ: # -@@ -0,0 +1 @@ # +@@ -1,0 +1,1 @@ sed 's/ .*//;/^@@/d' out > k && mv k out cat <<\EOF > exp --- empty +++ in +xyz EOF compare exp out || fail=1 fi case $- in *x*) ;; *) test -s err && fail_ "err not empty: $(cat err)";; esac } test_compare Exit $fail libidn-1.28/lib/gltests/locale.in.h0000644000000000000000000001600212153706107014045 00000000000000/* A POSIX . Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifdef _GL_ALREADY_INCLUDING_LOCALE_H /* Special invocation conventions to handle Solaris header files (through Solaris 10) when combined with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_LOCALE_H #define _GL_ALREADY_INCLUDING_LOCALE_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ #undef _GL_ALREADY_INCLUDING_LOCALE_H #ifndef _@GUARD_PREFIX@_LOCALE_H #define _@GUARD_PREFIX@_LOCALE_H /* NetBSD 5.0 mis-defines NULL. */ #include /* Mac OS X 10.5 defines the locale_t type in . */ #if @HAVE_XLOCALE_H@ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* The LC_MESSAGES locale category is specified in POSIX, but not in ISO C. On systems that don't define it, use the same value as GNU libintl. */ #if !defined LC_MESSAGES # define LC_MESSAGES 1729 #endif /* Bionic libc's 'struct lconv' is just a dummy. */ #if @REPLACE_STRUCT_LCONV@ # define lconv rpl_lconv struct lconv { /* All 'char *' are actually 'const char *'. */ /* Members that depend on the LC_NUMERIC category of the locale. See */ /* Symbol used as decimal point. */ char *decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *grouping; /* Members that depend on the LC_MONETARY category of the locale. See */ /* Symbol used as decimal point. */ char *mon_decimal_point; /* Symbol used to separate groups of digits to the left of the decimal point. */ char *mon_thousands_sep; /* Definition of the size of groups of digits to the left of the decimal point. */ char *mon_grouping; /* Sign used to indicate a value >= 0. */ char *positive_sign; /* Sign used to indicate a value < 0. */ char *negative_sign; /* For formatting local currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *currency_symbol; /* Number of digits after the decimal point. */ char frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char p_cs_precedes; /* For values >= 0: Position of the sign. */ char p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char n_cs_precedes; /* For values < 0: Position of the sign. */ char n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char n_sep_by_space; /* For formatting international currency. */ /* Currency symbol (3 characters) followed by separator (1 character). */ char *int_curr_symbol; /* Number of digits after the decimal point. */ char int_frac_digits; /* For values >= 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_p_cs_precedes; /* For values >= 0: Position of the sign. */ char int_p_sign_posn; /* For values >= 0: Placement of spaces between currency symbol, sign, and number. */ char int_p_sep_by_space; /* For values < 0: 1 if the currency symbol precedes the number, 0 if it comes after the number. */ char int_n_cs_precedes; /* For values < 0: Position of the sign. */ char int_n_sign_posn; /* For values < 0: Placement of spaces between currency symbol, sign, and number. */ char int_n_sep_by_space; }; #endif #if @GNULIB_LOCALECONV@ # if @REPLACE_LOCALECONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef localeconv # define localeconv rpl_localeconv # endif _GL_FUNCDECL_RPL (localeconv, struct lconv *, (void)); _GL_CXXALIAS_RPL (localeconv, struct lconv *, (void)); # else _GL_CXXALIAS_SYS (localeconv, struct lconv *, (void)); # endif _GL_CXXALIASWARN (localeconv); #elif @REPLACE_STRUCT_LCONV@ # undef localeconv # define localeconv localeconv_used_without_requesting_gnulib_module_localeconv #elif defined GNULIB_POSIXCHECK # undef localeconv # if HAVE_RAW_DECL_LOCALECONV _GL_WARN_ON_USE (localeconv, "localeconv returns too few information on some platforms - " "use gnulib module localeconv for portability"); # endif #endif #if @GNULIB_SETLOCALE@ # if @REPLACE_SETLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setlocale # define setlocale rpl_setlocale # define GNULIB_defined_setlocale 1 # endif _GL_FUNCDECL_RPL (setlocale, char *, (int category, const char *locale)); _GL_CXXALIAS_RPL (setlocale, char *, (int category, const char *locale)); # else _GL_CXXALIAS_SYS (setlocale, char *, (int category, const char *locale)); # endif _GL_CXXALIASWARN (setlocale); #elif defined GNULIB_POSIXCHECK # undef setlocale # if HAVE_RAW_DECL_SETLOCALE _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " "use gnulib module setlocale for portability"); # endif #endif #if @GNULIB_DUPLOCALE@ # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); # else # if @HAVE_DUPLOCALE@ _GL_CXXALIAS_SYS (duplocale, locale_t, (locale_t locale)); # endif # endif # if @HAVE_DUPLOCALE@ _GL_CXXALIASWARN (duplocale); # endif #elif defined GNULIB_POSIXCHECK # undef duplocale # if HAVE_RAW_DECL_DUPLOCALE _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " "use gnulib module duplocale for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_LOCALE_H */ #endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ libidn-1.28/lib/gltests/test-c-strcase.sh0000775000000000000000000000114311746453142015237 00000000000000#!/bin/sh # Test in the C locale. ./test-c-strcasecmp${EXEEXT} || exit 1 ./test-c-strncasecmp${EXEEXT} || exit 1 # Test in an ISO-8859-1 or ISO-8859-15 locale. : ${LOCALE_FR=fr_FR} if test $LOCALE_FR != none; then LC_ALL=$LOCALE_FR ./test-c-strcasecmp${EXEEXT} locale || exit 1 LC_ALL=$LOCALE_FR ./test-c-strncasecmp${EXEEXT} locale || exit 1 fi # Test in a Turkish UTF-8 locale. : ${LOCALE_TR_UTF8=tr_TR.UTF-8} if test $LOCALE_TR_UTF8 != none; then LC_ALL=$LOCALE_TR_UTF8 ./test-c-strcasecmp${EXEEXT} locale || exit 1 LC_ALL=$LOCALE_TR_UTF8 ./test-c-strncasecmp${EXEEXT} locale || exit 1 fi exit 0 libidn-1.28/lib/gltests/test-sys_types.c0000644000000000000000000000172112153706107015215 00000000000000/* Test of substitute. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2011. */ #include #include /* Check that the types are all defined. */ pid_t t1; size_t t2; ssize_t t3; off_t t4; mode_t t5; int main (void) { return 0; } libidn-1.28/lib/gltests/unistr/0000755000000000000000000000000012167253754013447 500000000000000libidn-1.28/lib/gltests/unistr/test-u8-uctomb.c0000644000000000000000000000740212153706107016324 00000000000000/* Test of u8_uctomb() function. Copyright (C) 2010-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ #include #include "unistr.h" #include "macros.h" #define MAGIC 0xBA int main () { /* Test ISO 646 character, in particular the NUL character. */ { ucs4_t uc; for (uc = 0; uc < 0x80; uc++) { uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC }; int ret; ret = u8_uctomb (buf, uc, 0); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ret = u8_uctomb (buf, uc, 1); ASSERT (ret == 1); ASSERT (buf[0] == uc); ASSERT (buf[1] == MAGIC); } } /* Test 2-byte character. */ { ucs4_t uc = 0x00D7; uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC }; int ret; ret = u8_uctomb (buf, uc, 0); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ret = u8_uctomb (buf, uc, 1); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ret = u8_uctomb (buf, uc, 2); ASSERT (ret == 2); ASSERT (buf[0] == 0xC3); ASSERT (buf[1] == 0x97); ASSERT (buf[2] == MAGIC); } /* Test 3-byte character. */ { ucs4_t uc = 0x20AC; uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC }; int ret; ret = u8_uctomb (buf, uc, 0); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ret = u8_uctomb (buf, uc, 1); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ret = u8_uctomb (buf, uc, 2); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ASSERT (buf[1] == MAGIC); ret = u8_uctomb (buf, uc, 3); ASSERT (ret == 3); ASSERT (buf[0] == 0xE2); ASSERT (buf[1] == 0x82); ASSERT (buf[2] == 0xAC); ASSERT (buf[3] == MAGIC); } /* Test 4-byte character. */ { ucs4_t uc = 0x10FFFD; uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC }; int ret; ret = u8_uctomb (buf, uc, 0); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ret = u8_uctomb (buf, uc, 1); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ret = u8_uctomb (buf, uc, 2); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ASSERT (buf[1] == MAGIC); ret = u8_uctomb (buf, uc, 3); ASSERT (ret == -2); ASSERT (buf[0] == MAGIC); ASSERT (buf[1] == MAGIC); ASSERT (buf[2] == MAGIC); ret = u8_uctomb (buf, uc, 4); ASSERT (ret == 4); ASSERT (buf[0] == 0xF4); ASSERT (buf[1] == 0x8F); ASSERT (buf[2] == 0xBF); ASSERT (buf[3] == 0xBD); ASSERT (buf[4] == MAGIC); } /* Test invalid characters. */ { ucs4_t invalid[] = { 0x110000, 0xD800, 0xDBFF, 0xDC00, 0xDFFF }; uint8_t buf[5] = { MAGIC, MAGIC, MAGIC, MAGIC, MAGIC }; size_t i; for (i = 0; i < SIZEOF (invalid); i++) { ucs4_t uc = invalid[i]; int n; for (n = 0; n <= 4; n++) { int ret = u8_uctomb (buf, uc, n); ASSERT (ret == -1); ASSERT (buf[0] == MAGIC); ASSERT (buf[1] == MAGIC); ASSERT (buf[2] == MAGIC); ASSERT (buf[3] == MAGIC); ASSERT (buf[4] == MAGIC); } } } return 0; } libidn-1.28/lib/gltests/unistr/test-u8-mbtoucr.c0000644000000000000000000001057612153706107016514 00000000000000/* Test of u8_mbtoucr() function. Copyright (C) 2010-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2010. */ #include #include "unistr.h" #include "macros.h" int main () { ucs4_t uc; int ret; /* Test NUL unit input. */ { static const uint8_t input[] = ""; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 1); ASSERT (ret == 1); ASSERT (uc == 0); } /* Test ISO 646 unit input. */ { ucs4_t c; uint8_t buf[1]; for (c = 0; c < 0x80; c++) { buf[0] = c; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, buf, 1); ASSERT (ret == 1); ASSERT (uc == c); } } /* Test 2-byte character input. */ { static const uint8_t input[] = { 0xC3, 0x97 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 2); ASSERT (ret == 2); ASSERT (uc == 0x00D7); } /* Test 3-byte character input. */ { static const uint8_t input[] = { 0xE2, 0x82, 0xAC }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 3); ASSERT (ret == 3); ASSERT (uc == 0x20AC); } /* Test 4-byte character input. */ { static const uint8_t input[] = { 0xF4, 0x8F, 0xBF, 0xBD }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 4); ASSERT (ret == 4); ASSERT (uc == 0x10FFFD); } /* Test incomplete/invalid 1-byte input. */ { static const uint8_t input[] = { 0xC1 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 1); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xC3 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 1); ASSERT (ret == -2); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xE2 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 1); ASSERT (ret == -2); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xF4 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 1); ASSERT (ret == -2); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xFE }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 1); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } /* Test incomplete/invalid 2-byte input. */ { static const uint8_t input[] = { 0xE0, 0x9F }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 2); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xE2, 0x82 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 2); ASSERT (ret == -2); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xE2, 0xD0 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 2); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xF0, 0x8F }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 2); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xF3, 0x8F }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 2); ASSERT (ret == -2); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xF3, 0xD0 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 2); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } /* Test incomplete/invalid 3-byte input. */ { static const uint8_t input[] = { 0xF3, 0x8F, 0xBF }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 3); ASSERT (ret == -2); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xF3, 0xD0, 0xBF }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 3); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } { static const uint8_t input[] = { 0xF3, 0x8F, 0xD0 }; uc = 0xBADFACE; ret = u8_mbtoucr (&uc, input, 3); ASSERT (ret == -1); ASSERT (uc == 0xFFFD); } return 0; } libidn-1.28/lib/gltests/putenv.c0000644000000000000000000001176312153706107013526 00000000000000/* Copyright (C) 1991, 1994, 1997-1998, 2000, 2003-2013 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. 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 3 of the License, or any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include /* Specification. */ #include #include /* Include errno.h *after* sys/types.h to work around header problems on AIX 3.2.5. */ #include #ifndef __set_errno # define __set_errno(ev) ((errno) = (ev)) #endif #include #include #if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include #endif #if _LIBC # if HAVE_GNU_LD # define environ __environ # else extern char **environ; # endif #endif #if _LIBC /* This lock protects against simultaneous modifications of 'environ'. */ # include __libc_lock_define_initialized (static, envlock) # define LOCK __libc_lock_lock (envlock) # define UNLOCK __libc_lock_unlock (envlock) #else # define LOCK # define UNLOCK #endif static int _unsetenv (const char *name) { size_t len; #if !HAVE_DECL__PUTENV char **ep; #endif if (name == NULL || *name == '\0' || strchr (name, '=') != NULL) { __set_errno (EINVAL); return -1; } len = strlen (name); #if HAVE_DECL__PUTENV { int putenv_result, putenv_errno; char *name_ = malloc (len + 2); memcpy (name_, name, len); name_[len] = '='; name_[len + 1] = 0; putenv_result = _putenv (name_); putenv_errno = errno; free (name_); __set_errno (putenv_errno); return putenv_result; } #else LOCK; ep = environ; while (*ep != NULL) if (!strncmp (*ep, name, len) && (*ep)[len] == '=') { /* Found it. Remove this pointer by moving later ones back. */ char **dp = ep; do dp[0] = dp[1]; while (*dp++); /* Continue the loop in case NAME appears again. */ } else ++ep; UNLOCK; return 0; #endif } /* Put STRING, which is of the form "NAME=VALUE", in the environment. If STRING contains no '=', then remove STRING from the environment. */ int putenv (char *string) { const char *name_end = strchr (string, '='); char **ep; if (name_end == NULL) { /* Remove the variable from the environment. */ return _unsetenv (string); } #if HAVE_DECL__PUTENV /* Rely on _putenv to allocate the new environment. If other parts of the application use _putenv, the !HAVE_DECL__PUTENV code would fight over who owns the environ vector, causing a crash. */ if (name_end[1]) return _putenv (string); else { /* _putenv ("NAME=") unsets NAME, so invoke _putenv ("NAME= ") to allocate the environ vector and then replace the new entry with "NAME=". */ int putenv_result, putenv_errno; char *name_x = malloc (name_end - string + sizeof "= "); if (!name_x) return -1; memcpy (name_x, string, name_end - string + 1); name_x[name_end - string + 1] = ' '; name_x[name_end - string + 2] = 0; putenv_result = _putenv (name_x); putenv_errno = errno; for (ep = environ; *ep; ep++) if (strcmp (*ep, name_x) == 0) { *ep = string; break; } # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ if (putenv_result == 0) { /* _putenv propagated "NAME= " into the subprocess environment; fix that by calling SetEnvironmentVariable directly. */ name_x[name_end - string] = 0; putenv_result = SetEnvironmentVariable (name_x, "") ? 0 : -1; putenv_errno = ENOMEM; /* ENOMEM is the only way to fail. */ } # endif free (name_x); __set_errno (putenv_errno); return putenv_result; } #else for (ep = environ; *ep; ep++) if (strncmp (*ep, string, name_end - string) == 0 && (*ep)[name_end - string] == '=') break; if (*ep) *ep = string; else { static char **last_environ = NULL; size_t size = ep - environ; char **new_environ = malloc ((size + 2) * sizeof *new_environ); if (! new_environ) return -1; new_environ[0] = string; memcpy (new_environ + 1, environ, (size + 1) * sizeof *new_environ); free (last_environ); last_environ = new_environ; environ = new_environ; } return 0; #endif } libidn-1.28/lib/gltests/malloca.c0000644000000000000000000001157612153706107013617 00000000000000/* Safe automatic memory allocation. Copyright (C) 2003, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2003. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Specification. */ #include "malloca.h" #include #include "verify.h" /* The speed critical point in this file is freea() applied to an alloca() result: it must be fast, to match the speed of alloca(). The speed of mmalloca() and freea() in the other case are not critical, because they are only invoked for big memory sizes. */ #if HAVE_ALLOCA /* Store the mmalloca() results in a hash table. This is needed to reliably distinguish a mmalloca() result and an alloca() result. Although it is possible that the same pointer is returned by alloca() and by mmalloca() at different times in the same application, it does not lead to a bug in freea(), because: - Before a pointer returned by alloca() can point into malloc()ed memory, the function must return, and once this has happened the programmer must not call freea() on it anyway. - Before a pointer returned by mmalloca() can point into the stack, it must be freed. The only function that can free it is freea(), and when freea() frees it, it also removes it from the hash table. */ #define MAGIC_NUMBER 0x1415fb4a #define MAGIC_SIZE sizeof (int) /* This is how the header info would look like without any alignment considerations. */ struct preliminary_header { void *next; int magic; }; /* But the header's size must be a multiple of sa_alignment_max. */ #define HEADER_SIZE \ (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max) union header { void *next; struct { char room[HEADER_SIZE - MAGIC_SIZE]; int word; } magic; }; verify (HEADER_SIZE == sizeof (union header)); /* We make the hash table quite big, so that during lookups the probability of empty hash buckets is quite high. There is no need to make the hash table resizable, because when the hash table gets filled so much that the lookup becomes slow, it means that the application has memory leaks. */ #define HASH_TABLE_SIZE 257 static void * mmalloca_results[HASH_TABLE_SIZE]; #endif void * mmalloca (size_t n) { #if HAVE_ALLOCA /* Allocate one more word, that serves as an indicator for malloc()ed memory, so that freea() of an alloca() result is fast. */ size_t nplus = n + HEADER_SIZE; if (nplus >= n) { void *p = malloc (nplus); if (p != NULL) { size_t slot; union header *h = p; p = h + 1; /* Put a magic number into the indicator word. */ h->magic.word = MAGIC_NUMBER; /* Enter p into the hash table. */ slot = (uintptr_t) p % HASH_TABLE_SIZE; h->next = mmalloca_results[slot]; mmalloca_results[slot] = p; return p; } } /* Out of memory. */ return NULL; #else # if !MALLOC_0_IS_NONNULL if (n == 0) n = 1; # endif return malloc (n); #endif } #if HAVE_ALLOCA void freea (void *p) { /* mmalloca() may have returned NULL. */ if (p != NULL) { /* Attempt to quickly distinguish the mmalloca() result - which has a magic indicator word - and the alloca() result - which has an uninitialized indicator word. It is for this test that sa_increment additional bytes are allocated in the alloca() case. */ if (((int *) p)[-1] == MAGIC_NUMBER) { /* Looks like a mmalloca() result. To see whether it really is one, perform a lookup in the hash table. */ size_t slot = (uintptr_t) p % HASH_TABLE_SIZE; void **chain = &mmalloca_results[slot]; for (; *chain != NULL;) { union header *h = p; if (*chain == p) { /* Found it. Remove it from the hash table and free it. */ union header *p_begin = h - 1; *chain = p_begin->next; free (p_begin); return; } h = *chain; chain = &h[-1].next; } } /* At this point, we know it was not a mmalloca() result. */ } } #endif libidn-1.28/lib/gltests/Makefile.am0000644000000000000000000011274212153706116014074 00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects SUBDIRS = . TESTS = XFAIL_TESTS = TESTS_ENVIRONMENT = noinst_PROGRAMS = check_PROGRAMS = noinst_HEADERS = noinst_LIBRARIES = check_LIBRARIES = libtests.a EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = \ -D@lgltests_WITNESS@=1 \ -I. -I$(srcdir) \ -I../.. -I$(srcdir)/../.. \ -I../../lib/gl -I$(srcdir)/../../lib/gl LDADD = libtests.a ../../lib/gl/libgnu.la libtests.a $(LIBTESTS_LIBDEPS) libtests_a_SOURCES = libtests_a_LIBADD = $(lgltests_LIBOBJS) libtests_a_DEPENDENCIES = $(lgltests_LIBOBJS) EXTRA_libtests_a_SOURCES = AM_LIBTOOLFLAGS = --preserve-dup-deps TESTS_ENVIRONMENT += EXEEXT='@EXEEXT@' srcdir='$(srcdir)' ## begin gnulib module alloca-opt BUILT_SOURCES += $(ALLOCA_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ALLOCA_H alloca.h: alloca.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/alloca.in.h; \ } > $@-t && \ mv -f $@-t $@ else alloca.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += alloca.h alloca.h-t EXTRA_DIST += alloca.in.h ## end gnulib module alloca-opt ## begin gnulib module alloca-opt-tests TESTS += test-alloca-opt check_PROGRAMS += test-alloca-opt EXTRA_DIST += test-alloca-opt.c ## end gnulib module alloca-opt-tests ## begin gnulib module c-ctype-tests TESTS += test-c-ctype check_PROGRAMS += test-c-ctype EXTRA_DIST += test-c-ctype.c macros.h ## end gnulib module c-ctype-tests ## begin gnulib module c-strcase-tests TESTS += test-c-strcase.sh TESTS_ENVIRONMENT += LOCALE_FR='@LOCALE_FR@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' check_PROGRAMS += test-c-strcasecmp test-c-strncasecmp EXTRA_DIST += test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c macros.h ## end gnulib module c-strcase-tests ## begin gnulib module environ-tests TESTS += test-environ check_PROGRAMS += test-environ EXTRA_DIST += test-environ.c ## end gnulib module environ-tests ## begin gnulib module iconv-tests TESTS += test-iconv check_PROGRAMS += test-iconv test_iconv_LDADD = $(LDADD) @LIBICONV@ EXTRA_DIST += test-iconv.c signature.h macros.h ## end gnulib module iconv-tests ## begin gnulib module intprops EXTRA_DIST += intprops.h ## end gnulib module intprops ## begin gnulib module intprops-tests TESTS += test-intprops check_PROGRAMS += test-intprops EXTRA_DIST += test-intprops.c macros.h ## end gnulib module intprops-tests ## begin gnulib module inttypes-incomplete BUILT_SOURCES += inttypes.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += inttypes.h inttypes.h-t EXTRA_DIST += inttypes.in.h ## end gnulib module inttypes-incomplete ## begin gnulib module inttypes-tests TESTS += test-inttypes check_PROGRAMS += test-inttypes EXTRA_DIST += test-inttypes.c ## end gnulib module inttypes-tests ## begin gnulib module locale BUILT_SOURCES += locale.h # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += locale.h locale.h-t EXTRA_DIST += locale.in.h ## end gnulib module locale ## begin gnulib module locale-tests TESTS += test-locale check_PROGRAMS += test-locale EXTRA_DIST += test-locale.c ## end gnulib module locale-tests ## begin gnulib module localename libtests_a_SOURCES += localename.c EXTRA_DIST += localename.h ## end gnulib module localename ## begin gnulib module localename-tests TESTS += test-localename check_PROGRAMS += test-localename test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@ $(LIBTHREAD) EXTRA_DIST += test-localename.c macros.h ## end gnulib module localename-tests ## begin gnulib module lock libtests_a_SOURCES += glthread/lock.h glthread/lock.c ## end gnulib module lock ## begin gnulib module lock-tests TESTS += test-lock check_PROGRAMS += test-lock test_lock_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ EXTRA_DIST += test-lock.c ## end gnulib module lock-tests ## begin gnulib module malloc-posix EXTRA_DIST += malloc.c EXTRA_libtests_a_SOURCES += malloc.c ## end gnulib module malloc-posix ## begin gnulib module malloca libtests_a_SOURCES += malloca.c EXTRA_DIST += malloca.h malloca.valgrind ## end gnulib module malloca ## begin gnulib module malloca-tests TESTS += test-malloca check_PROGRAMS += test-malloca EXTRA_DIST += test-malloca.c ## end gnulib module malloca-tests ## begin gnulib module putenv EXTRA_DIST += putenv.c EXTRA_libtests_a_SOURCES += putenv.c ## end gnulib module putenv ## begin gnulib module setenv EXTRA_DIST += setenv.c EXTRA_libtests_a_SOURCES += setenv.c ## end gnulib module setenv ## begin gnulib module setenv-tests TESTS += test-setenv check_PROGRAMS += test-setenv EXTRA_DIST += test-setenv.c signature.h macros.h ## end gnulib module setenv-tests ## begin gnulib module setlocale EXTRA_DIST += setlocale.c EXTRA_libtests_a_SOURCES += setlocale.c ## end gnulib module setlocale ## begin gnulib module setlocale-tests TESTS += test-setlocale1.sh test-setlocale2.sh TESTS_ENVIRONMENT += \ LOCALE_FR='@LOCALE_FR@' \ LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_JA='@LOCALE_JA@' \ LOCALE_ZH_CN='@LOCALE_ZH_CN@' check_PROGRAMS += test-setlocale1 test-setlocale2 EXTRA_DIST += test-setlocale1.sh test-setlocale1.c test-setlocale2.sh test-setlocale2.c signature.h macros.h ## end gnulib module setlocale-tests ## begin gnulib module snippet/_Noreturn # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h ## end gnulib module snippet/_Noreturn ## begin gnulib module snippet/arg-nonnull # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += arg-nonnull.h # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t ARG_NONNULL_H=arg-nonnull.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += c++defs.h # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += c++defs.h c++defs.h-t CXXDEFS_H=c++defs.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/unused-parameter # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += unused-parameter.h # The unused-parameter.h that gets inserted into generated .h files is the same # as build-aux/snippet/unused-parameter.h, except that it has the copyright # header cut off. unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t UNUSED_PARAMETER_H=unused-parameter.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/unused-parameter.h ## end gnulib module snippet/unused-parameter ## begin gnulib module snippet/warn-on-use BUILT_SOURCES += warn-on-use.h # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t WARN_ON_USE_H=warn-on-use.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module stdbool-tests TESTS += test-stdbool check_PROGRAMS += test-stdbool EXTRA_DIST += test-stdbool.c ## end gnulib module stdbool-tests ## begin gnulib module stddef-tests TESTS += test-stddef check_PROGRAMS += test-stddef EXTRA_DIST += test-stddef.c ## end gnulib module stddef-tests ## begin gnulib module stdint-tests TESTS += test-stdint check_PROGRAMS += test-stdint EXTRA_DIST += test-stdint.c ## end gnulib module stdint-tests ## begin gnulib module stdlib BUILT_SOURCES += stdlib.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += stdlib.h stdlib.h-t EXTRA_DIST += stdlib.in.h ## end gnulib module stdlib ## begin gnulib module stdlib-tests TESTS += test-stdlib check_PROGRAMS += test-stdlib EXTRA_DIST += test-stdlib.c test-sys_wait.h ## end gnulib module stdlib-tests ## begin gnulib module striconv-tests TESTS += test-striconv check_PROGRAMS += test-striconv test_striconv_LDADD = $(LDADD) @LIBICONV@ EXTRA_DIST += test-striconv.c macros.h ## end gnulib module striconv-tests ## begin gnulib module strverscmp-tests TESTS += test-strverscmp check_PROGRAMS += test-strverscmp EXTRA_DIST += test-strverscmp.c signature.h macros.h ## end gnulib module strverscmp-tests ## begin gnulib module sys_types BUILT_SOURCES += sys/types.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += sys/types.h sys/types.h-t EXTRA_DIST += sys_types.in.h ## end gnulib module sys_types ## begin gnulib module sys_types-tests TESTS += test-sys_types check_PROGRAMS += test-sys_types EXTRA_DIST += test-sys_types.c ## end gnulib module sys_types-tests ## begin gnulib module test-framework-sh-tests TESTS += test-init.sh EXTRA_DIST += init.sh EXTRA_DIST += test-init.sh ## end gnulib module test-framework-sh-tests ## begin gnulib module thread libtests_a_SOURCES += glthread/thread.h glthread/thread.c ## end gnulib module thread ## begin gnulib module thread-tests TESTS += test-thread_self test-thread_create check_PROGRAMS += test-thread_self test-thread_create test_thread_self_LDADD = $(LDADD) @LIBTHREAD@ test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@ EXTRA_DIST += test-thread_self.c test-thread_create.c macros.h ## end gnulib module thread-tests ## begin gnulib module threadlib libtests_a_SOURCES += glthread/threadlib.c EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module threadlib ## begin gnulib module unistd BUILT_SOURCES += unistd.h libtests_a_SOURCES += unistd.c # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_LGL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unistd.h unistd.h-t EXTRA_DIST += unistd.in.h ## end gnulib module unistd ## begin gnulib module unistd-tests TESTS += test-unistd check_PROGRAMS += test-unistd EXTRA_DIST += test-unistd.c ## end gnulib module unistd-tests ## begin gnulib module unistr/u8-mbtoucr-tests TESTS += test-u8-mbtoucr check_PROGRAMS += test-u8-mbtoucr test_u8_mbtoucr_SOURCES = unistr/test-u8-mbtoucr.c test_u8_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING) EXTRA_DIST += unistr/test-u8-mbtoucr.c macros.h ## end gnulib module unistr/u8-mbtoucr-tests ## begin gnulib module unistr/u8-uctomb-tests TESTS += test-u8-uctomb check_PROGRAMS += test-u8-uctomb test_u8_uctomb_SOURCES = unistr/test-u8-uctomb.c test_u8_uctomb_LDADD = $(LDADD) $(LIBUNISTRING) EXTRA_DIST += unistr/test-u8-uctomb.c macros.h ## end gnulib module unistr/u8-uctomb-tests ## begin gnulib module unsetenv EXTRA_DIST += unsetenv.c EXTRA_libtests_a_SOURCES += unsetenv.c ## end gnulib module unsetenv ## begin gnulib module unsetenv-tests TESTS += test-unsetenv check_PROGRAMS += test-unsetenv EXTRA_DIST += test-unsetenv.c signature.h macros.h ## end gnulib module unsetenv-tests ## begin gnulib module verify EXTRA_DIST += verify.h ## end gnulib module verify ## begin gnulib module verify-tests TESTS_ENVIRONMENT += MAKE='$(MAKE)' TESTS += test-verify test-verify.sh check_PROGRAMS += test-verify EXTRA_DIST += test-verify.c test-verify.sh ## end gnulib module verify-tests ## begin gnulib module wchar BUILT_SOURCES += wchar.h # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += wchar.h wchar.h-t EXTRA_DIST += wchar.in.h ## end gnulib module wchar ## begin gnulib module yield libtests_a_SOURCES += glthread/yield.h ## end gnulib module yield # Clean up after Solaris cc. clean-local: rm -rf SunWS_cache mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : libidn-1.28/lib/gltests/test-thread_self.c0000644000000000000000000000215012153706107015430 00000000000000/* Test of gl_thread_self () macro. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2011. */ #include #include "glthread/thread.h" gl_thread_t main_thread; int main () { /* Check that gl_thread_self () can be used with just $(LIBTHREAD), not $(LIBMULTITHREAD), i.e. in libraries that are multithread-safe but don't create threads themselves. */ main_thread = gl_thread_self (); return 0; } libidn-1.28/lib/gltests/test-c-ctype.c0000644000000000000000000002605312153706107014524 00000000000000/* Test of character handling in C locale. Copyright (C) 2005, 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2005. */ #include #include "c-ctype.h" #include #include "macros.h" static void test_all (void) { int c; for (c = -0x80; c < 0x100; c++) { ASSERT (c_isascii (c) == (c >= 0 && c < 0x80)); switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': ASSERT (c_isalnum (c) == 1); break; default: ASSERT (c_isalnum (c) == 0); break; } switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': ASSERT (c_isalpha (c) == 1); break; default: ASSERT (c_isalpha (c) == 0); break; } switch (c) { case '\t': case ' ': ASSERT (c_isblank (c) == 1); break; default: ASSERT (c_isblank (c) == 0); break; } ASSERT (c_iscntrl (c) == ((c >= 0 && c < 0x20) || c == 0x7f)); switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': ASSERT (c_isdigit (c) == 1); break; default: ASSERT (c_isdigit (c) == 0); break; } switch (c) { case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': ASSERT (c_islower (c) == 1); break; default: ASSERT (c_islower (c) == 0); break; } ASSERT (c_isgraph (c) == ((c >= 0x20 && c < 0x7f) && c != ' ')); ASSERT (c_isprint (c) == (c >= 0x20 && c < 0x7f)); ASSERT (c_ispunct (c) == (c_isgraph (c) && !c_isalnum (c))); switch (c) { case ' ': case '\t': case '\n': case '\v': case '\f': case '\r': ASSERT (c_isspace (c) == 1); break; default: ASSERT (c_isspace (c) == 0); break; } switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': ASSERT (c_isupper (c) == 1); break; default: ASSERT (c_isupper (c) == 0); break; } switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': ASSERT (c_isxdigit (c) == 1); break; default: ASSERT (c_isxdigit (c) == 0); break; } switch (c) { case 'A': ASSERT (c_tolower (c) == 'a'); ASSERT (c_toupper (c) == c); break; case 'B': ASSERT (c_tolower (c) == 'b'); ASSERT (c_toupper (c) == c); break; case 'C': ASSERT (c_tolower (c) == 'c'); ASSERT (c_toupper (c) == c); break; case 'D': ASSERT (c_tolower (c) == 'd'); ASSERT (c_toupper (c) == c); break; case 'E': ASSERT (c_tolower (c) == 'e'); ASSERT (c_toupper (c) == c); break; case 'F': ASSERT (c_tolower (c) == 'f'); ASSERT (c_toupper (c) == c); break; case 'G': ASSERT (c_tolower (c) == 'g'); ASSERT (c_toupper (c) == c); break; case 'H': ASSERT (c_tolower (c) == 'h'); ASSERT (c_toupper (c) == c); break; case 'I': ASSERT (c_tolower (c) == 'i'); ASSERT (c_toupper (c) == c); break; case 'J': ASSERT (c_tolower (c) == 'j'); ASSERT (c_toupper (c) == c); break; case 'K': ASSERT (c_tolower (c) == 'k'); ASSERT (c_toupper (c) == c); break; case 'L': ASSERT (c_tolower (c) == 'l'); ASSERT (c_toupper (c) == c); break; case 'M': ASSERT (c_tolower (c) == 'm'); ASSERT (c_toupper (c) == c); break; case 'N': ASSERT (c_tolower (c) == 'n'); ASSERT (c_toupper (c) == c); break; case 'O': ASSERT (c_tolower (c) == 'o'); ASSERT (c_toupper (c) == c); break; case 'P': ASSERT (c_tolower (c) == 'p'); ASSERT (c_toupper (c) == c); break; case 'Q': ASSERT (c_tolower (c) == 'q'); ASSERT (c_toupper (c) == c); break; case 'R': ASSERT (c_tolower (c) == 'r'); ASSERT (c_toupper (c) == c); break; case 'S': ASSERT (c_tolower (c) == 's'); ASSERT (c_toupper (c) == c); break; case 'T': ASSERT (c_tolower (c) == 't'); ASSERT (c_toupper (c) == c); break; case 'U': ASSERT (c_tolower (c) == 'u'); ASSERT (c_toupper (c) == c); break; case 'V': ASSERT (c_tolower (c) == 'v'); ASSERT (c_toupper (c) == c); break; case 'W': ASSERT (c_tolower (c) == 'w'); ASSERT (c_toupper (c) == c); break; case 'X': ASSERT (c_tolower (c) == 'x'); ASSERT (c_toupper (c) == c); break; case 'Y': ASSERT (c_tolower (c) == 'y'); ASSERT (c_toupper (c) == c); break; case 'Z': ASSERT (c_tolower (c) == 'z'); ASSERT (c_toupper (c) == c); break; case 'a': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'A'); break; case 'b': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'B'); break; case 'c': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'C'); break; case 'd': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'D'); break; case 'e': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'E'); break; case 'f': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'F'); break; case 'g': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'G'); break; case 'h': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'H'); break; case 'i': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'I'); break; case 'j': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'J'); break; case 'k': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'K'); break; case 'l': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'L'); break; case 'm': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'M'); break; case 'n': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'N'); break; case 'o': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'O'); break; case 'p': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'P'); break; case 'q': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'Q'); break; case 'r': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'R'); break; case 's': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'S'); break; case 't': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'T'); break; case 'u': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'U'); break; case 'v': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'V'); break; case 'w': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'W'); break; case 'x': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'X'); break; case 'y': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'Y'); break; case 'z': ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == 'Z'); break; default: ASSERT (c_tolower (c) == c); ASSERT (c_toupper (c) == c); break; } } } int main () { test_all (); setlocale (LC_ALL, "de_DE"); test_all (); setlocale (LC_ALL, "ja_JP.EUC-JP"); test_all (); return 0; } libidn-1.28/lib/gltests/stdlib.in.h0000644000000000000000000010045612153706107014076 00000000000000/* A GNU-like . Copyright (C) 1995, 2001-2004, 2006-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_system_stdlib_h || defined __need_malloc_and_calloc /* Special invocation conventions inside some gnulib header files, and inside some glibc header files, respectively. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #else /* Normal invocation convention. */ #ifndef _@GUARD_PREFIX@_STDLIB_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STDLIB_H@ #ifndef _@GUARD_PREFIX@_STDLIB_H #define _@GUARD_PREFIX@_STDLIB_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD 10 defines WEXITSTATUS in , not in . */ #if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS # include #endif /* Solaris declares getloadavg() in . */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ # include #endif /* Native Windows platforms declare mktemp() in . */ #if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) # include #endif #if @GNULIB_RANDOM_R@ /* OSF/1 5.1 declares 'struct random_data' in , which is included from if _REENTRANT is defined. Include it whenever we need 'struct random_data'. */ # if @HAVE_RANDOM_H@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@ # include # endif # if !@HAVE_STRUCT_RANDOM_DATA@ /* Define 'struct random_data'. But allow multiple gnulib generated replacements to coexist. */ # if !GNULIB_defined_struct_random_data struct random_data { int32_t *fptr; /* Front pointer. */ int32_t *rptr; /* Rear pointer. */ int32_t *state; /* Array of state values. */ int rand_type; /* Type of random number generator. */ int rand_deg; /* Degree of random number generator. */ int rand_sep; /* Distance between front and rear. */ int32_t *end_ptr; /* Pointer behind state table. */ }; # define GNULIB_defined_struct_random_data 1 # endif # endif #endif #if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) /* On Mac OS X 10.3, only declares mkstemp. */ /* On Mac OS X 10.5, only declares mkstemps. */ /* On Cygwin 1.7.1, only declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* The definition of _Noreturn is copied here. */ /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Some systems do not define EXIT_*, despite otherwise supporting C89. */ #ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 #endif /* Tandem/NSK and other platforms that define EXIT_FAILURE as -1 interfere with proper operation of xargs. */ #ifndef EXIT_FAILURE # define EXIT_FAILURE 1 #elif EXIT_FAILURE != 1 # undef EXIT_FAILURE # define EXIT_FAILURE 1 #endif #if @GNULIB__EXIT@ /* Terminate the current process with the given return code, without running the 'atexit' handlers. */ # if !@HAVE__EXIT@ _GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status)); # endif _GL_CXXALIAS_SYS (_Exit, void, (int status)); _GL_CXXALIASWARN (_Exit); #elif defined GNULIB_POSIXCHECK # undef _Exit # if HAVE_RAW_DECL__EXIT _GL_WARN_ON_USE (_Exit, "_Exit is unportable - " "use gnulib module _Exit for portability"); # endif #endif #if @GNULIB_ATOLL@ /* Parse a signed decimal integer. Returns the value of the integer. Errors are not detected. */ # if !@HAVE_ATOLL@ _GL_FUNCDECL_SYS (atoll, long long, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (atoll, long long, (const char *string)); _GL_CXXALIASWARN (atoll); #elif defined GNULIB_POSIXCHECK # undef atoll # if HAVE_RAW_DECL_ATOLL _GL_WARN_ON_USE (atoll, "atoll is unportable - " "use gnulib module atoll for portability"); # endif #endif #if @GNULIB_CALLOC_POSIX@ # if @REPLACE_CALLOC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef calloc # define calloc rpl_calloc # endif _GL_FUNCDECL_RPL (calloc, void *, (size_t nmemb, size_t size)); _GL_CXXALIAS_RPL (calloc, void *, (size_t nmemb, size_t size)); # else _GL_CXXALIAS_SYS (calloc, void *, (size_t nmemb, size_t size)); # endif _GL_CXXALIASWARN (calloc); #elif defined GNULIB_POSIXCHECK # undef calloc /* Assume calloc is always declared. */ _GL_WARN_ON_USE (calloc, "calloc is not POSIX compliant everywhere - " "use gnulib module calloc-posix for portability"); #endif #if @GNULIB_CANONICALIZE_FILE_NAME@ # if @REPLACE_CANONICALIZE_FILE_NAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define canonicalize_file_name rpl_canonicalize_file_name # endif _GL_FUNCDECL_RPL (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (canonicalize_file_name, char *, (const char *name)); # else # if !@HAVE_CANONICALIZE_FILE_NAME@ _GL_FUNCDECL_SYS (canonicalize_file_name, char *, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (canonicalize_file_name, char *, (const char *name)); # endif _GL_CXXALIASWARN (canonicalize_file_name); #elif defined GNULIB_POSIXCHECK # undef canonicalize_file_name # if HAVE_RAW_DECL_CANONICALIZE_FILE_NAME _GL_WARN_ON_USE (canonicalize_file_name, "canonicalize_file_name is unportable - " "use gnulib module canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_GETLOADAVG@ /* Store max(NELEM,3) load average numbers in LOADAVG[]. The three numbers are the load average of the last 1 minute, the last 5 minutes, and the last 15 minutes, respectively. LOADAVG is an array of NELEM numbers. */ # if !@HAVE_DECL_GETLOADAVG@ _GL_FUNCDECL_SYS (getloadavg, int, (double loadavg[], int nelem) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (getloadavg, int, (double loadavg[], int nelem)); _GL_CXXALIASWARN (getloadavg); #elif defined GNULIB_POSIXCHECK # undef getloadavg # if HAVE_RAW_DECL_GETLOADAVG _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " "use gnulib module getloadavg for portability"); # endif #endif #if @GNULIB_GETSUBOPT@ /* Assuming *OPTIONP is a comma separated list of elements of the form "token" or "token=value", getsubopt parses the first of these elements. If the first element refers to a "token" that is member of the given NULL-terminated array of tokens: - It replaces the comma with a NUL byte, updates *OPTIONP to point past the first option and the comma, sets *VALUEP to the value of the element (or NULL if it doesn't contain an "=" sign), - It returns the index of the "token" in the given array of tokens. Otherwise it returns -1, and *OPTIONP and *VALUEP are undefined. For more details see the POSIX:2001 specification. http://www.opengroup.org/susv3xsh/getsubopt.html */ # if !@HAVE_GETSUBOPT@ _GL_FUNCDECL_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep) _GL_ARG_NONNULL ((1, 2, 3))); # endif _GL_CXXALIAS_SYS (getsubopt, int, (char **optionp, char *const *tokens, char **valuep)); _GL_CXXALIASWARN (getsubopt); #elif defined GNULIB_POSIXCHECK # undef getsubopt # if HAVE_RAW_DECL_GETSUBOPT _GL_WARN_ON_USE (getsubopt, "getsubopt is unportable - " "use gnulib module getsubopt for portability"); # endif #endif #if @GNULIB_GRANTPT@ /* Change the ownership and access permission of the slave side of the pseudo-terminal whose master side is specified by FD. */ # if !@HAVE_GRANTPT@ _GL_FUNCDECL_SYS (grantpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (grantpt, int, (int fd)); _GL_CXXALIASWARN (grantpt); #elif defined GNULIB_POSIXCHECK # undef grantpt # if HAVE_RAW_DECL_GRANTPT _GL_WARN_ON_USE (grantpt, "grantpt is not portable - " "use gnulib module grantpt for portability"); # endif #endif /* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not rely on GNU or POSIX semantics for malloc and realloc (for example, by never specifying a zero size), so it does not need malloc or realloc to be redefined. */ #if @GNULIB_MALLOC_POSIX@ # if @REPLACE_MALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef malloc # define malloc rpl_malloc # endif _GL_FUNCDECL_RPL (malloc, void *, (size_t size)); _GL_CXXALIAS_RPL (malloc, void *, (size_t size)); # else _GL_CXXALIAS_SYS (malloc, void *, (size_t size)); # endif _GL_CXXALIASWARN (malloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef malloc /* Assume malloc is always declared. */ _GL_WARN_ON_USE (malloc, "malloc is not POSIX compliant everywhere - " "use gnulib module malloc-posix for portability"); #endif /* Convert a multibyte character to a wide character. */ #if @GNULIB_MBTOWC@ # if @REPLACE_MBTOWC@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef mbtowc # define mbtowc rpl_mbtowc # endif _GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); _GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # else _GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n)); # endif _GL_CXXALIASWARN (mbtowc); #endif #if @GNULIB_MKDTEMP@ /* Create a unique temporary directory from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the directory name unique. Returns TEMPLATE, or a null pointer if it cannot get a unique name. The directory is created mode 700. */ # if !@HAVE_MKDTEMP@ _GL_FUNCDECL_SYS (mkdtemp, char *, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkdtemp, char *, (char * /*template*/)); _GL_CXXALIASWARN (mkdtemp); #elif defined GNULIB_POSIXCHECK # undef mkdtemp # if HAVE_RAW_DECL_MKDTEMP _GL_WARN_ON_USE (mkdtemp, "mkdtemp is unportable - " "use gnulib module mkdtemp for portability"); # endif #endif #if @GNULIB_MKOSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMP@ _GL_FUNCDECL_SYS (mkostemp, int, (char * /*template*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemp, int, (char * /*template*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemp); #elif defined GNULIB_POSIXCHECK # undef mkostemp # if HAVE_RAW_DECL_MKOSTEMP _GL_WARN_ON_USE (mkostemp, "mkostemp is unportable - " "use gnulib module mkostemp for portability"); # endif #endif #if @GNULIB_MKOSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE before a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The flags are a bitmask, possibly including O_CLOEXEC (defined in ) and O_TEXT, O_BINARY (defined in "binary-io.h"). The file is then created, with the specified flags, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKOSTEMPS@ _GL_FUNCDECL_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkostemps, int, (char * /*template*/, int /*suffixlen*/, int /*flags*/)); _GL_CXXALIASWARN (mkostemps); #elif defined GNULIB_POSIXCHECK # undef mkostemps # if HAVE_RAW_DECL_MKOSTEMPS _GL_WARN_ON_USE (mkostemps, "mkostemps is unportable - " "use gnulib module mkostemps for portability"); # endif #endif #if @GNULIB_MKSTEMP@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if @REPLACE_MKSTEMP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mkstemp rpl_mkstemp # endif _GL_FUNCDECL_RPL (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mkstemp, int, (char * /*template*/)); # else # if ! @HAVE_MKSTEMP@ _GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemp, int, (char * /*template*/)); # endif _GL_CXXALIASWARN (mkstemp); #elif defined GNULIB_POSIXCHECK # undef mkstemp # if HAVE_RAW_DECL_MKSTEMP _GL_WARN_ON_USE (mkstemp, "mkstemp is unportable - " "use gnulib module mkstemp for portability"); # endif #endif #if @GNULIB_MKSTEMPS@ /* Create a unique temporary file from TEMPLATE. The last six characters of TEMPLATE prior to a suffix of length SUFFIXLEN must be "XXXXXX"; they are replaced with a string that makes the file name unique. The file is then created, ensuring it didn't exist before. The file is created read-write (mask at least 0600 & ~umask), but it may be world-readable and world-writable (mask 0666 & ~umask), depending on the implementation. Returns the open file descriptor if successful, otherwise -1 and errno set. */ # if !@HAVE_MKSTEMPS@ _GL_FUNCDECL_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (mkstemps, int, (char * /*template*/, int /*suffixlen*/)); _GL_CXXALIASWARN (mkstemps); #elif defined GNULIB_POSIXCHECK # undef mkstemps # if HAVE_RAW_DECL_MKSTEMPS _GL_WARN_ON_USE (mkstemps, "mkstemps is unportable - " "use gnulib module mkstemps for portability"); # endif #endif #if @GNULIB_POSIX_OPENPT@ /* Return an FD open to the master side of a pseudo-terminal. Flags should include O_RDWR, and may also include O_NOCTTY. */ # if !@HAVE_POSIX_OPENPT@ _GL_FUNCDECL_SYS (posix_openpt, int, (int flags)); # endif _GL_CXXALIAS_SYS (posix_openpt, int, (int flags)); _GL_CXXALIASWARN (posix_openpt); #elif defined GNULIB_POSIXCHECK # undef posix_openpt # if HAVE_RAW_DECL_POSIX_OPENPT _GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - " "use gnulib module posix_openpt for portability"); # endif #endif #if @GNULIB_PTSNAME@ /* Return the pathname of the pseudo-terminal slave associated with the master FD is open on, or NULL on errors. */ # if @REPLACE_PTSNAME@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname # define ptsname rpl_ptsname # endif _GL_FUNCDECL_RPL (ptsname, char *, (int fd)); _GL_CXXALIAS_RPL (ptsname, char *, (int fd)); # else # if !@HAVE_PTSNAME@ _GL_FUNCDECL_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIAS_SYS (ptsname, char *, (int fd)); # endif _GL_CXXALIASWARN (ptsname); #elif defined GNULIB_POSIXCHECK # undef ptsname # if HAVE_RAW_DECL_PTSNAME _GL_WARN_ON_USE (ptsname, "ptsname is not portable - " "use gnulib module ptsname for portability"); # endif #endif #if @GNULIB_PTSNAME_R@ /* Set the pathname of the pseudo-terminal slave associated with the master FD is open on and return 0, or set errno and return non-zero on errors. */ # if @REPLACE_PTSNAME_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef ptsname_r # define ptsname_r rpl_ptsname_r # endif _GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); _GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len)); # else # if !@HAVE_PTSNAME_R@ _GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len)); # endif _GL_CXXALIASWARN (ptsname_r); #elif defined GNULIB_POSIXCHECK # undef ptsname_r # if HAVE_RAW_DECL_PTSNAME_R _GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - " "use gnulib module ptsname_r for portability"); # endif #endif #if @GNULIB_PUTENV@ # if @REPLACE_PUTENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef putenv # define putenv rpl_putenv # endif _GL_FUNCDECL_RPL (putenv, int, (char *string) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (putenv, int, (char *string)); # else _GL_CXXALIAS_SYS (putenv, int, (char *string)); # endif _GL_CXXALIASWARN (putenv); #endif #if @GNULIB_RANDOM_R@ # if !@HAVE_RANDOM_R@ # ifndef RAND_MAX # define RAND_MAX 2147483647 # endif # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (random, long, (void)); # endif _GL_CXXALIAS_SYS (random, long, (void)); _GL_CXXALIASWARN (random); #elif defined GNULIB_POSIXCHECK # undef random # if HAVE_RAW_DECL_RANDOM _GL_WARN_ON_USE (random, "random is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (srandom, void, (unsigned int seed)); # endif _GL_CXXALIAS_SYS (srandom, void, (unsigned int seed)); _GL_CXXALIASWARN (srandom); #elif defined GNULIB_POSIXCHECK # undef srandom # if HAVE_RAW_DECL_SRANDOM _GL_WARN_ON_USE (srandom, "srandom is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (initstate, char *, (unsigned int seed, char *buf, size_t buf_size)); _GL_CXXALIASWARN (initstate); #elif defined GNULIB_POSIXCHECK # undef initstate # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate, "initstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM@ # if !@HAVE_RANDOM@ _GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setstate, char *, (char *arg_state)); _GL_CXXALIASWARN (setstate); #elif defined GNULIB_POSIXCHECK # undef setstate # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate, "setstate is unportable - " "use gnulib module random for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef random_r # define random_r rpl_random_r # endif _GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (random_r, int, (struct random_data *buf, int32_t *result) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (random_r, int, (struct random_data *buf, int32_t *result)); # endif _GL_CXXALIASWARN (random_r); #elif defined GNULIB_POSIXCHECK # undef random_r # if HAVE_RAW_DECL_RANDOM_R _GL_WARN_ON_USE (random_r, "random_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef srandom_r # define srandom_r rpl_srandom_r # endif _GL_FUNCDECL_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (srandom_r, int, (unsigned int seed, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (srandom_r); #elif defined GNULIB_POSIXCHECK # undef srandom_r # if HAVE_RAW_DECL_SRANDOM_R _GL_WARN_ON_USE (srandom_r, "srandom_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef initstate_r # define initstate_r rpl_initstate_r # endif _GL_FUNCDECL_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); _GL_CXXALIAS_RPL (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state) _GL_ARG_NONNULL ((2, 4))); # endif _GL_CXXALIAS_SYS (initstate_r, int, (unsigned int seed, char *buf, size_t buf_size, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (initstate_r); #elif defined GNULIB_POSIXCHECK # undef initstate_r # if HAVE_RAW_DECL_INITSTATE_R _GL_WARN_ON_USE (initstate_r, "initstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_RANDOM_R@ # if @REPLACE_RANDOM_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setstate_r # define setstate_r rpl_setstate_r # endif _GL_FUNCDECL_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # else # if !@HAVE_RANDOM_R@ _GL_FUNCDECL_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (setstate_r, int, (char *arg_state, struct random_data *rand_state)); # endif _GL_CXXALIASWARN (setstate_r); #elif defined GNULIB_POSIXCHECK # undef setstate_r # if HAVE_RAW_DECL_SETSTATE_R _GL_WARN_ON_USE (setstate_r, "setstate_r is unportable - " "use gnulib module random_r for portability"); # endif #endif #if @GNULIB_REALLOC_POSIX@ # if @REPLACE_REALLOC@ # if !((defined __cplusplus && defined GNULIB_NAMESPACE) \ || _GL_USE_STDLIB_ALLOC) # undef realloc # define realloc rpl_realloc # endif _GL_FUNCDECL_RPL (realloc, void *, (void *ptr, size_t size)); _GL_CXXALIAS_RPL (realloc, void *, (void *ptr, size_t size)); # else _GL_CXXALIAS_SYS (realloc, void *, (void *ptr, size_t size)); # endif _GL_CXXALIASWARN (realloc); #elif defined GNULIB_POSIXCHECK && !_GL_USE_STDLIB_ALLOC # undef realloc /* Assume realloc is always declared. */ _GL_WARN_ON_USE (realloc, "realloc is not POSIX compliant everywhere - " "use gnulib module realloc-posix for portability"); #endif #if @GNULIB_REALPATH@ # if @REPLACE_REALPATH@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define realpath rpl_realpath # endif _GL_FUNCDECL_RPL (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (realpath, char *, (const char *name, char *resolved)); # else # if !@HAVE_REALPATH@ _GL_FUNCDECL_SYS (realpath, char *, (const char *name, char *resolved) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (realpath, char *, (const char *name, char *resolved)); # endif _GL_CXXALIASWARN (realpath); #elif defined GNULIB_POSIXCHECK # undef realpath # if HAVE_RAW_DECL_REALPATH _GL_WARN_ON_USE (realpath, "realpath is unportable - use gnulib module " "canonicalize or canonicalize-lgpl for portability"); # endif #endif #if @GNULIB_RPMATCH@ /* Test a user response to a question. Return 1 if it is affirmative, 0 if it is negative, or -1 if not clear. */ # if !@HAVE_RPMATCH@ _GL_FUNCDECL_SYS (rpmatch, int, (const char *response) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (rpmatch, int, (const char *response)); _GL_CXXALIASWARN (rpmatch); #elif defined GNULIB_POSIXCHECK # undef rpmatch # if HAVE_RAW_DECL_RPMATCH _GL_WARN_ON_USE (rpmatch, "rpmatch is unportable - " "use gnulib module rpmatch for portability"); # endif #endif #if @GNULIB_SECURE_GETENV@ /* Look up NAME in the environment, returning 0 in insecure situations. */ # if !@HAVE_SECURE_GETENV@ _GL_FUNCDECL_SYS (secure_getenv, char *, (char const *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (secure_getenv, char *, (char const *name)); _GL_CXXALIASWARN (secure_getenv); #elif defined GNULIB_POSIXCHECK # undef secure_getenv # if HAVE_RAW_DECL_SECURE_GETENV _GL_WARN_ON_USE (secure_getenv, "secure_getenv is unportable - " "use gnulib module secure_getenv for portability"); # endif #endif #if @GNULIB_SETENV@ /* Set NAME to VALUE in the environment. If REPLACE is nonzero, overwrite an existing value. */ # if @REPLACE_SETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef setenv # define setenv rpl_setenv # endif _GL_FUNCDECL_RPL (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (setenv, int, (const char *name, const char *value, int replace)); # else # if !@HAVE_DECL_SETENV@ _GL_FUNCDECL_SYS (setenv, int, (const char *name, const char *value, int replace) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (setenv, int, (const char *name, const char *value, int replace)); # endif # if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@) _GL_CXXALIASWARN (setenv); # endif #elif defined GNULIB_POSIXCHECK # undef setenv # if HAVE_RAW_DECL_SETENV _GL_WARN_ON_USE (setenv, "setenv is unportable - " "use gnulib module setenv for portability"); # endif #endif #if @GNULIB_STRTOD@ /* Parse a double from STRING, updating ENDP if appropriate. */ # if @REPLACE_STRTOD@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strtod rpl_strtod # endif _GL_FUNCDECL_RPL (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strtod, double, (const char *str, char **endp)); # else # if !@HAVE_STRTOD@ _GL_FUNCDECL_SYS (strtod, double, (const char *str, char **endp) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtod, double, (const char *str, char **endp)); # endif _GL_CXXALIASWARN (strtod); #elif defined GNULIB_POSIXCHECK # undef strtod # if HAVE_RAW_DECL_STRTOD _GL_WARN_ON_USE (strtod, "strtod is unportable - " "use gnulib module strtod for portability"); # endif #endif #if @GNULIB_STRTOLL@ /* Parse a signed integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is LLONG_MAX or LLONG_MIN, and errno is set to ERANGE. */ # if !@HAVE_STRTOLL@ _GL_FUNCDECL_SYS (strtoll, long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoll, long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoll); #elif defined GNULIB_POSIXCHECK # undef strtoll # if HAVE_RAW_DECL_STRTOLL _GL_WARN_ON_USE (strtoll, "strtoll is unportable - " "use gnulib module strtoll for portability"); # endif #endif #if @GNULIB_STRTOULL@ /* Parse an unsigned integer whose textual representation starts at STRING. The integer is expected to be in base BASE (2 <= BASE <= 36); if BASE == 0, it may be decimal or octal (with prefix "0") or hexadecimal (with prefix "0x"). If ENDPTR is not NULL, the address of the first byte after the integer is stored in *ENDPTR. Upon overflow, the return value is ULLONG_MAX, and errno is set to ERANGE. */ # if !@HAVE_STRTOULL@ _GL_FUNCDECL_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strtoull, unsigned long long, (const char *string, char **endptr, int base)); _GL_CXXALIASWARN (strtoull); #elif defined GNULIB_POSIXCHECK # undef strtoull # if HAVE_RAW_DECL_STRTOULL _GL_WARN_ON_USE (strtoull, "strtoull is unportable - " "use gnulib module strtoull for portability"); # endif #endif #if @GNULIB_UNLOCKPT@ /* Unlock the slave side of the pseudo-terminal whose master side is specified by FD, so that it can be opened. */ # if !@HAVE_UNLOCKPT@ _GL_FUNCDECL_SYS (unlockpt, int, (int fd)); # endif _GL_CXXALIAS_SYS (unlockpt, int, (int fd)); _GL_CXXALIASWARN (unlockpt); #elif defined GNULIB_POSIXCHECK # undef unlockpt # if HAVE_RAW_DECL_UNLOCKPT _GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - " "use gnulib module unlockpt for portability"); # endif #endif #if @GNULIB_UNSETENV@ /* Remove the variable NAME from the environment. */ # if @REPLACE_UNSETENV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef unsetenv # define unsetenv rpl_unsetenv # endif _GL_FUNCDECL_RPL (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (unsetenv, int, (const char *name)); # else # if !@HAVE_DECL_UNSETENV@ _GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (unsetenv, int, (const char *name)); # endif # if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@) _GL_CXXALIASWARN (unsetenv); # endif #elif defined GNULIB_POSIXCHECK # undef unsetenv # if HAVE_RAW_DECL_UNSETENV _GL_WARN_ON_USE (unsetenv, "unsetenv is unportable - " "use gnulib module unsetenv for portability"); # endif #endif /* Convert a wide character to a multibyte character. */ #if @GNULIB_WCTOMB@ # if @REPLACE_WCTOMB@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef wctomb # define wctomb rpl_wctomb # endif _GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc)); _GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc)); # else _GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc)); # endif _GL_CXXALIASWARN (wctomb); #endif #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif /* _@GUARD_PREFIX@_STDLIB_H */ #endif libidn-1.28/lib/gltests/signature.h0000644000000000000000000000367612153706107014217 00000000000000/* Macro for checking that a function declaration is compliant. Copyright (C) 2009-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef SIGNATURE_CHECK /* Check that the function FN takes the specified arguments ARGS with a return type of RET. This header is designed to be included after and the one system header that is supposed to contain the function being checked, but prior to any other system headers that are necessary for the unit test. Therefore, this file does not include any system headers, nor reference anything outside of the macro arguments. For an example, if foo.h should provide: extern int foo (char, float); then the unit test named test-foo.c would start out with: #include #include #include "signature.h" SIGNATURE_CHECK (foo, int, (char, float)); #include ... */ # define SIGNATURE_CHECK(fn, ret, args) \ SIGNATURE_CHECK1 (fn, ret, args, __LINE__) /* Necessary to allow multiple SIGNATURE_CHECK lines in a unit test. Note that the checks must not occupy the same line. */ # define SIGNATURE_CHECK1(fn, ret, args, id) \ SIGNATURE_CHECK2 (fn, ret, args, id) /* macroexpand line */ # define SIGNATURE_CHECK2(fn, ret, args, id) \ static ret (* _GL_UNUSED signature_check ## id) args = fn #endif /* SIGNATURE_CHECK */ libidn-1.28/lib/gltests/malloc.c0000644000000000000000000000273212153706107013450 00000000000000/* malloc() function that is glibc compatible. Copyright (C) 1997-1998, 2006-2007, 2009-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* written by Jim Meyering and Bruno Haible */ #define _GL_USE_STDLIB_ALLOC 1 #include /* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */ #ifdef malloc # define NEED_MALLOC_GNU 1 # undef malloc /* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */ #elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU # define NEED_MALLOC_GNU 1 #endif #include #include /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ void * rpl_malloc (size_t n) { void *result; #if NEED_MALLOC_GNU if (n == 0) n = 1; #endif result = malloc (n); #if !HAVE_MALLOC_POSIX if (result == NULL) errno = ENOMEM; #endif return result; } libidn-1.28/lib/gltests/malloca.h0000644000000000000000000001107312153706107013614 00000000000000/* Safe automatic memory allocation. Copyright (C) 2003-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2003. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #ifndef _MALLOCA_H #define _MALLOCA_H #include #include #include #ifdef __cplusplus extern "C" { #endif /* safe_alloca(N) is equivalent to alloca(N) when it is safe to call alloca(N); otherwise it returns NULL. It either returns N bytes of memory allocated on the stack, that lasts until the function returns, or NULL. Use of safe_alloca should be avoided: - inside arguments of function calls - undefined behaviour, - in inline functions - the allocation may actually last until the calling function returns. */ #if HAVE_ALLOCA /* The OS usually guarantees only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely allocate anything larger than 4096 bytes. Also care for the possibility of a few compiler-allocated temporary stack slots. This must be a macro, not a function. */ # define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL) #else # define safe_alloca(N) ((void) (N), NULL) #endif /* malloca(N) is a safe variant of alloca(N). It allocates N bytes of memory allocated on the stack, that must be freed using freea() before the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ ((N) < 4032 - sa_increment \ ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \ : mmalloca (N)) #else # define malloca(N) \ mmalloca (N) #endif extern void * mmalloca (size_t n); /* Free a block of memory allocated through malloca(). */ #if HAVE_ALLOCA extern void freea (void *p); #else # define freea free #endif /* nmalloca(N,S) is an overflow-safe variant of malloca (N * S). It allocates an array of N objects, each with S bytes of memory, on the stack. S must be positive and N must be nonnegative. The array must be freed using freea() before the function returns. */ #if 1 /* Cf. the definition of xalloc_oversized. */ # define nmalloca(n, s) \ ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \ ? NULL \ : malloca ((n) * (s))) #else extern void * nmalloca (size_t n, size_t s); #endif #ifdef __cplusplus } #endif /* ------------------- Auxiliary, non-public definitions ------------------- */ /* Determine the alignment of a type at compile time. */ #if defined __GNUC__ || defined __IBM__ALIGNOF__ # define sa_alignof __alignof__ #elif defined __cplusplus template struct sa_alignof_helper { char __slot1; type __slot2; }; # define sa_alignof(type) offsetof (sa_alignof_helper, __slot2) #elif defined __hpux /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #elif defined _AIX /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof values. */ # define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8) #else # define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2) #endif enum { /* The desired alignment of memory allocations is the maximum alignment among all elementary types. */ sa_alignment_long = sa_alignof (long), sa_alignment_double = sa_alignof (double), #if HAVE_LONG_LONG_INT sa_alignment_longlong = sa_alignof (long long), #endif sa_alignment_longdouble = sa_alignof (long double), sa_alignment_max = ((sa_alignment_long - 1) | (sa_alignment_double - 1) #if HAVE_LONG_LONG_INT | (sa_alignment_longlong - 1) #endif | (sa_alignment_longdouble - 1) ) + 1, /* The increment that guarantees room for a magic word must be >= sizeof (int) and a multiple of sa_alignment_max. */ sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max }; #endif /* _MALLOCA_H */ libidn-1.28/lib/gltests/sys_types.in.h0000644000000000000000000000317512153706107014657 00000000000000/* Provide a more complete sys/types.h. Copyright (C) 2011-2013 Free Software Foundation, Inc. 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 3, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program; if not, see . */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ #ifndef _@GUARD_PREFIX@_SYS_TYPES_H #define _@GUARD_PREFIX@_SYS_TYPES_H /* Override off_t if Large File Support is requested on native Windows. */ #if @WINDOWS_64_BIT_OFF_T@ /* Same as int64_t in . */ # if defined _MSC_VER # define off_t __int64 # else # define off_t long long int # endif /* Indicator, for gnulib internal purposes. */ # define _GL_WINDOWS_64_BIT_OFF_T 1 #endif /* MSVC 9 defines size_t in , not in . */ /* But avoid namespace pollution on glibc systems. */ #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ libidn-1.28/lib/gltests/init.sh0000644000000000000000000004525512153706107013343 00000000000000# source this file; set up for tests # Copyright (C) 2009-2013 Free Software Foundation, Inc. # 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 3 of the License, or # (at your option) any later version. # 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. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Using this file in a test # ========================= # # The typical skeleton of a test looks like this: # # #!/bin/sh # . "${srcdir=.}/init.sh"; path_prepend_ . # Execute some commands. # Note that these commands are executed in a subdirectory, therefore you # need to prepend "../" to relative filenames in the build directory. # Note that the "path_prepend_ ." is useful only if the body of your # test invokes programs residing in the initial directory. # For example, if the programs you want to test are in src/, and this test # script is named tests/test-1, then you would use "path_prepend_ ../src", # or perhaps export PATH='$(abs_top_builddir)/src$(PATH_SEPARATOR)'"$$PATH" # to all tests via automake's TESTS_ENVIRONMENT. # Set the exit code 0 for success, 77 for skipped, or 1 or other for failure. # Use the skip_ and fail_ functions to print a diagnostic and then exit # with the corresponding exit code. # Exit $? # Executing a test that uses this file # ==================================== # # Running a single test: # $ make check TESTS=test-foo.sh # # Running a single test, with verbose output: # $ make check TESTS=test-foo.sh VERBOSE=yes # # Running a single test, with single-stepping: # 1. Go into a sub-shell: # $ bash # 2. Set relevant environment variables from TESTS_ENVIRONMENT in the # Makefile: # $ export srcdir=../../tests # this is an example # 3. Execute the commands from the test, copy&pasting them one by one: # $ . "$srcdir/init.sh"; path_prepend_ . # ... # 4. Finally # $ exit ME_=`expr "./$0" : '.*/\(.*\)$'` # We use a trap below for cleanup. This requires us to go through # hoops to get the right exit status transported through the handler. # So use 'Exit STATUS' instead of 'exit STATUS' inside of the tests. # Turn off errexit here so that we don't trip the bug with OSF1/Tru64 # sh inside this function. Exit () { set +e; (exit $1); exit $1; } # Print warnings (e.g., about skipped and failed tests) to this file number. # Override by defining to say, 9, in init.cfg, and putting say, # export ...ENVVAR_SETTINGS...; $(SHELL) 9>&2 # in the definition of TESTS_ENVIRONMENT in your tests/Makefile.am file. # This is useful when using automake's parallel tests mode, to print # the reason for skip/failure to console, rather than to the .log files. : ${stderr_fileno_=2} # Note that correct expansion of "$*" depends on IFS starting with ' '. # Always write the full diagnostic to stderr. # When stderr_fileno_ is not 2, also emit the first line of the # diagnostic to that file descriptor. warn_ () { # If IFS does not start with ' ', set it and emit the warning in a subshell. case $IFS in ' '*) printf '%s\n' "$*" >&2 test $stderr_fileno_ = 2 \ || { printf '%s\n' "$*" | sed 1q >&$stderr_fileno_ ; } ;; *) (IFS=' '; warn_ "$@");; esac } fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; } skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; } fatal_ () { warn_ "$ME_: hard error: $@"; Exit 99; } framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; } # Sanitize this shell to POSIX mode, if possible. DUALCASE=1; export DUALCASE if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # We require $(...) support unconditionally. # We require a few additional shell features only when $EXEEXT is nonempty, # in order to support automatic $EXEEXT emulation: # - hyphen-containing alias names # - we prefer to use ${var#...} substitution, rather than having # to work around lack of support for that feature. # The following code attempts to find a shell with support for these features. # If the current shell passes the test, we're done. Otherwise, test other # shells until we find one that passes. If one is found, re-exec it. # If no acceptable shell is found, skip the current test. # # The "...set -x; P=1 true 2>err..." test is to disqualify any shell that # emits "P=1" into err, as /bin/sh from SunOS 5.11 and OpenBSD 4.7 do. # # Use "9" to indicate success (rather than 0), in case some shell acts # like Solaris 10's /bin/sh but exits successfully instead of with status 2. # Eval this code in a subshell to determine a shell's suitability. # 10 - passes all tests; ok to use # 9 - ok, but enabling "set -x" corrupts app stderr; prefer higher score # ? - not ok gl_shell_test_script_=' test $(echo y) = y || exit 1 score_=10 if test "$VERBOSE" = yes; then test -n "$( (exec 3>&1; set -x; P=1 true 2>&3) 2> /dev/null)" && score_=9 fi test -z "$EXEEXT" && exit $score_ shopt -s expand_aliases alias a-b="echo zoo" v=abx test ${v%x} = ab \ && test ${v#a} = bx \ && test $(a-b) = zoo \ && exit $score_ ' if test "x$1" = "x--no-reexec"; then shift else # Assume a working shell. Export to subshells (setup_ needs this). gl_set_x_corrupts_stderr_=false export gl_set_x_corrupts_stderr_ # Record the first marginally acceptable shell. marginal_= # Search for a shell that meets our requirements. for re_shell_ in __current__ "${CONFIG_SHELL:-no_shell}" \ /bin/sh bash dash zsh pdksh fail do test "$re_shell_" = no_shell && continue # If we've made it all the way to the sentinel, "fail" without # finding even a marginal shell, skip this test. if test "$re_shell_" = fail; then test -z "$marginal_" && skip_ failed to find an adequate shell re_shell_=$marginal_ break fi # When testing the current shell, simply "eval" the test code. # Otherwise, run it via $re_shell_ -c ... if test "$re_shell_" = __current__; then # 'eval'ing this code makes Solaris 10's /bin/sh exit with # $? set to 2. It does not evaluate any of the code after the # "unexpected" first '('. Thus, we must run it in a subshell. ( eval "$gl_shell_test_script_" ) > /dev/null 2>&1 else "$re_shell_" -c "$gl_shell_test_script_" 2>/dev/null fi st_=$? # $re_shell_ works just fine. Use it. if test $st_ = 10; then gl_set_x_corrupts_stderr_=false break fi # If this is our first marginally acceptable shell, remember it. if test "$st_:$marginal_" = 9: ; then marginal_="$re_shell_" gl_set_x_corrupts_stderr_=true fi done if test "$re_shell_" != __current__; then # Found a usable shell. Preserve -v and -x. case $- in *v*x* | *x*v*) opts_=-vx ;; *v*) opts_=-v ;; *x*) opts_=-x ;; *) opts_= ;; esac exec "$re_shell_" $opts_ "$0" --no-reexec "$@" echo "$ME_: exec failed" 1>&2 exit 127 fi fi # If this is bash, turn off all aliases. test -n "$BASH_VERSION" && unalias -a # Note that when supporting $EXEEXT (transparently mapping from PROG_NAME to # PROG_NAME.exe), we want to support hyphen-containing names like test-acos. # That is part of the shell-selection test above. Why use aliases rather # than functions? Because support for hyphen-containing aliases is more # widespread than that for hyphen-containing function names. test -n "$EXEEXT" && shopt -s expand_aliases # Enable glibc's malloc-perturbing option. # This is useful for exposing code that depends on the fact that # malloc-related functions often return memory that is mostly zeroed. # If you have the time and cycles, use valgrind to do an even better job. : ${MALLOC_PERTURB_=87} export MALLOC_PERTURB_ # This is a stub function that is run upon trap (upon regular exit and # interrupt). Override it with a per-test function, e.g., to unmount # a partition, or to undo any other global state changes. cleanup_ () { :; } # Emit a header similar to that from diff -u; Print the simulated "diff" # command so that the order of arguments is clear. Don't bother with @@ lines. emit_diff_u_header_ () { printf '%s\n' "diff -u $*" \ "--- $1 1970-01-01" \ "+++ $2 1970-01-01" } # Arrange not to let diff or cmp operate on /dev/null, # since on some systems (at least OSF/1 5.1), that doesn't work. # When there are not two arguments, or no argument is /dev/null, return 2. # When one argument is /dev/null and the other is not empty, # cat the nonempty file to stderr and return 1. # Otherwise, return 0. compare_dev_null_ () { test $# = 2 || return 2 if test "x$1" = x/dev/null; then test -s "$2" || return 0 emit_diff_u_header_ "$@"; sed 's/^/+/' "$2" return 1 fi if test "x$2" = x/dev/null; then test -s "$1" || return 0 emit_diff_u_header_ "$@"; sed 's/^/-/' "$1" return 1 fi return 2 } if diff_out_=`exec 2>/dev/null; diff -u "$0" "$0" < /dev/null` \ && diff -u Makefile "$0" 2>/dev/null | grep '^[+]#!' >/dev/null; then # diff accepts the -u option and does not (like AIX 7 'diff') produce an # extra space on column 1 of every content line. if test -z "$diff_out_"; then compare_ () { diff -u "$@"; } else compare_ () { if diff -u "$@" > diff.out; then # No differences were found, but Solaris 'diff' produces output # "No differences encountered". Hide this output. rm -f diff.out true else cat diff.out rm -f diff.out false fi } fi elif diff_out_=`exec 2>/dev/null; diff -c "$0" "$0" < /dev/null`; then if test -z "$diff_out_"; then compare_ () { diff -c "$@"; } else compare_ () { if diff -c "$@" > diff.out; then # No differences were found, but AIX and HP-UX 'diff' produce output # "No differences encountered" or "There are no differences between the # files.". Hide this output. rm -f diff.out true else cat diff.out rm -f diff.out false fi } fi elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then compare_ () { cmp -s "$@"; } else compare_ () { cmp "$@"; } fi # Usage: compare EXPECTED ACTUAL # # Given compare_dev_null_'s preprocessing, defer to compare_ if 2 or more. # Otherwise, propagate $? to caller: any diffs have already been printed. compare () { # This looks like it can be factored to use a simple "case $?" # after unchecked compare_dev_null_ invocation, but that would # fail in a "set -e" environment. if compare_dev_null_ "$@"; then return 0 else case $? in 1) return 1;; *) compare_ "$@";; esac fi } # An arbitrary prefix to help distinguish test directories. testdir_prefix_ () { printf gt; } # Run the user-overridable cleanup_ function, remove the temporary # directory and exit with the incoming value of $?. remove_tmp_ () { __st=$? cleanup_ # cd out of the directory we're about to remove cd "$initial_cwd_" || cd / || cd /tmp chmod -R u+rwx "$test_dir_" # If removal fails and exit status was to be 0, then change it to 1. rm -rf "$test_dir_" || { test $__st = 0 && __st=1; } exit $__st } # Given a directory name, DIR, if every entry in it that matches *.exe # contains only the specified bytes (see the case stmt below), then print # a space-separated list of those names and return 0. Otherwise, don't # print anything and return 1. Naming constraints apply also to DIR. find_exe_basenames_ () { feb_dir_=$1 feb_fail_=0 feb_result_= feb_sp_= for feb_file_ in $feb_dir_/*.exe; do # If there was no *.exe file, or there existed a file named "*.exe" that # was deleted between the above glob expansion and the existence test # below, just skip it. test "x$feb_file_" = "x$feb_dir_/*.exe" && test ! -f "$feb_file_" \ && continue # Exempt [.exe, since we can't create a function by that name, yet # we can't invoke [ by PATH search anyways due to shell builtins. test "x$feb_file_" = "x$feb_dir_/[.exe" && continue case $feb_file_ in *[!-a-zA-Z/0-9_.+]*) feb_fail_=1; break;; *) # Remove leading file name components as well as the .exe suffix. feb_file_=${feb_file_##*/} feb_file_=${feb_file_%.exe} feb_result_="$feb_result_$feb_sp_$feb_file_";; esac feb_sp_=' ' done test $feb_fail_ = 0 && printf %s "$feb_result_" return $feb_fail_ } # Consider the files in directory, $1. # For each file name of the form PROG.exe, create an alias named # PROG that simply invokes PROG.exe, then return 0. If any selected # file name or the directory name, $1, contains an unexpected character, # define no alias and return 1. create_exe_shims_ () { case $EXEEXT in '') return 0 ;; .exe) ;; *) echo "$0: unexpected \$EXEEXT value: $EXEEXT" 1>&2; return 1 ;; esac base_names_=`find_exe_basenames_ $1` \ || { echo "$0 (exe_shim): skipping directory: $1" 1>&2; return 0; } if test -n "$base_names_"; then for base_ in $base_names_; do alias "$base_"="$base_$EXEEXT" done fi return 0 } # Use this function to prepend to PATH an absolute name for each # specified, possibly-$initial_cwd_-relative, directory. path_prepend_ () { while test $# != 0; do path_dir_=$1 case $path_dir_ in '') fail_ "invalid path dir: '$1'";; /*) abs_path_dir_=$path_dir_;; *) abs_path_dir_=$initial_cwd_/$path_dir_;; esac case $abs_path_dir_ in *:*) fail_ "invalid path dir: '$abs_path_dir_'";; esac PATH="$abs_path_dir_:$PATH" # Create an alias, FOO, for each FOO.exe in this directory. create_exe_shims_ "$abs_path_dir_" \ || fail_ "something failed (above): $abs_path_dir_" shift done export PATH } setup_ () { if test "$VERBOSE" = yes; then # Test whether set -x may cause the selected shell to corrupt an # application's stderr. Many do, including zsh-4.3.10 and the /bin/sh # from SunOS 5.11, OpenBSD 4.7 and Irix 5.x and 6.5. # If enabling verbose output this way would cause trouble, simply # issue a warning and refrain. if $gl_set_x_corrupts_stderr_; then warn_ "using SHELL=$SHELL with 'set -x' corrupts stderr" else set -x fi fi initial_cwd_=$PWD fail=0 pfx_=`testdir_prefix_` test_dir_=`mktempd_ "$initial_cwd_" "$pfx_-$ME_.XXXX"` \ || fail_ "failed to create temporary directory in $initial_cwd_" cd "$test_dir_" || fail_ "failed to cd to temporary directory" # As autoconf-generated configure scripts do, ensure that IFS # is defined initially, so that saving and restoring $IFS works. gl_init_sh_nl_=' ' IFS=" "" $gl_init_sh_nl_" # This trap statement, along with a trap on 0 below, ensure that the # temporary directory, $test_dir_, is removed upon exit as well as # upon receipt of any of the listed signals. for sig_ in 1 2 3 13 15; do eval "trap 'Exit $(expr $sig_ + 128)' $sig_" done } # Create a temporary directory, much like mktemp -d does. # Written by Jim Meyering. # # Usage: mktempd_ /tmp phoey.XXXXXXXXXX # # First, try to use the mktemp program. # Failing that, we'll roll our own mktemp-like function: # - try to get random bytes from /dev/urandom # - failing that, generate output from a combination of quickly-varying # sources and gzip. Ignore non-varying gzip header, and extract # "random" bits from there. # - given those bits, map to file-name bytes using tr, and try to create # the desired directory. # - make only $MAX_TRIES_ attempts # Helper function. Print $N pseudo-random bytes from a-zA-Z0-9. rand_bytes_ () { n_=$1 # Maybe try openssl rand -base64 $n_prime_|tr '+/=\012' abcd first? # But if they have openssl, they probably have mktemp, too. chars_=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 dev_rand_=/dev/urandom if test -r "$dev_rand_"; then # Note: 256-length($chars_) == 194; 3 copies of $chars_ is 186 + 8 = 194. dd ibs=$n_ count=1 if=$dev_rand_ 2>/dev/null \ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_ return fi n_plus_50_=`expr $n_ + 50` cmds_='date; date +%N; free; who -a; w; ps auxww; ps ef; netstat -n' data_=` (eval "$cmds_") 2>&1 | gzip ` # Ensure that $data_ has length at least 50+$n_ while :; do len_=`echo "$data_"|wc -c` test $n_plus_50_ -le $len_ && break; data_=` (echo "$data_"; eval "$cmds_") 2>&1 | gzip ` done echo "$data_" \ | dd bs=1 skip=50 count=$n_ 2>/dev/null \ | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_ } mktempd_ () { case $# in 2);; *) fail_ "Usage: mktempd_ DIR TEMPLATE";; esac destdir_=$1 template_=$2 MAX_TRIES_=4 # Disallow any trailing slash on specified destdir: # it would subvert the post-mktemp "case"-based destdir test. case $destdir_ in /) ;; */) fail_ "invalid destination dir: remove trailing slash(es)";; esac case $template_ in *XXXX) ;; *) fail_ \ "invalid template: $template_ (must have a suffix of at least 4 X's)";; esac # First, try to use mktemp. d=`unset TMPDIR; { mktemp -d -t -p "$destdir_" "$template_"; } 2>/dev/null` \ || fail=1 # The resulting name must be in the specified directory. case $d in "$destdir_"*);; *) fail=1;; esac # It must have created the directory. test -d "$d" || fail=1 # It must have 0700 permissions. Handle sticky "S" bits. perms=`ls -dgo "$d" 2>/dev/null|tr S -` || fail=1 case $perms in drwx------*) ;; *) fail=1;; esac test $fail = 0 && { echo "$d" return } # If we reach this point, we'll have to create a directory manually. # Get a copy of the template without its suffix of X's. base_template_=`echo "$template_"|sed 's/XX*$//'` # Calculate how many X's we've just removed. template_length_=`echo "$template_" | wc -c` nx_=`echo "$base_template_" | wc -c` nx_=`expr $template_length_ - $nx_` err_= i_=1 while :; do X_=`rand_bytes_ $nx_` candidate_dir_="$destdir_/$base_template_$X_" err_=`mkdir -m 0700 "$candidate_dir_" 2>&1` \ && { echo "$candidate_dir_"; return; } test $MAX_TRIES_ -le $i_ && break; i_=`expr $i_ + 1` done fail_ "$err_" } # If you want to override the testdir_prefix_ function, # or to add more utility functions, use this file. test -f "$srcdir/init.cfg" \ && . "$srcdir/init.cfg" setup_ "$@" # This trap is here, rather than in the setup_ function, because some # shells run the exit trap at shell function exit, rather than script exit. trap remove_tmp_ 0 libidn-1.28/lib/gltests/test-lock.c0000644000000000000000000003630012153706107014104 00000000000000/* Test of locking in multithreaded situations. Copyright (C) 2005, 2008-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2005. */ #include #if USE_POSIX_THREADS || USE_SOLARIS_THREADS || USE_PTH_THREADS || USE_WINDOWS_THREADS #if USE_POSIX_THREADS # define TEST_POSIX_THREADS 1 #endif #if USE_SOLARIS_THREADS # define TEST_SOLARIS_THREADS 1 #endif #if USE_PTH_THREADS # define TEST_PTH_THREADS 1 #endif #if USE_WINDOWS_THREADS # define TEST_WINDOWS_THREADS 1 #endif /* Whether to enable locking. Uncomment this to get a test program without locking, to verify that it crashes. */ #define ENABLE_LOCKING 1 /* Which tests to perform. Uncomment some of these, to verify that all tests crash if no locking is enabled. */ #define DO_TEST_LOCK 1 #define DO_TEST_RWLOCK 1 #define DO_TEST_RECURSIVE_LOCK 1 #define DO_TEST_ONCE 1 /* Whether to help the scheduler through explicit yield(). Uncomment this to see if the operating system has a fair scheduler. */ #define EXPLICIT_YIELD 1 /* Whether to print debugging messages. */ #define ENABLE_DEBUGGING 0 /* Number of simultaneous threads. */ #define THREAD_COUNT 10 /* Number of operations performed in each thread. This is quite high, because with a smaller count, say 5000, we often get an "OK" result even without ENABLE_LOCKING (on Linux/x86). */ #define REPEAT_COUNT 50000 #include #include #include #if !ENABLE_LOCKING # undef USE_POSIX_THREADS # undef USE_SOLARIS_THREADS # undef USE_PTH_THREADS # undef USE_WINDOWS_THREADS #endif #include "glthread/lock.h" #if !ENABLE_LOCKING # if TEST_POSIX_THREADS # define USE_POSIX_THREADS 1 # endif # if TEST_SOLARIS_THREADS # define USE_SOLARIS_THREADS 1 # endif # if TEST_PTH_THREADS # define USE_PTH_THREADS 1 # endif # if TEST_WINDOWS_THREADS # define USE_WINDOWS_THREADS 1 # endif #endif #include "glthread/thread.h" #include "glthread/yield.h" #if ENABLE_DEBUGGING # define dbgprintf printf #else # define dbgprintf if (0) printf #endif #if EXPLICIT_YIELD # define yield() gl_thread_yield () #else # define yield() #endif #define ACCOUNT_COUNT 4 static int account[ACCOUNT_COUNT]; static int random_account (void) { return ((unsigned int) rand () >> 3) % ACCOUNT_COUNT; } static void check_accounts (void) { int i, sum; sum = 0; for (i = 0; i < ACCOUNT_COUNT; i++) sum += account[i]; if (sum != ACCOUNT_COUNT * 1000) abort (); } /* ------------------- Test normal (non-recursive) locks ------------------- */ /* Test normal locks by having several bank accounts and several threads which shuffle around money between the accounts and another thread checking that all the money is still there. */ gl_lock_define_initialized(static, my_lock) static void * lock_mutator_thread (void *arg) { int repeat; for (repeat = REPEAT_COUNT; repeat > 0; repeat--) { int i1, i2, value; dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ()); gl_lock_lock (my_lock); dbgprintf ("Mutator %p after lock\n", gl_thread_self_pointer ()); i1 = random_account (); i2 = random_account (); value = ((unsigned int) rand () >> 3) % 10; account[i1] += value; account[i2] -= value; dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ()); gl_lock_unlock (my_lock); dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ()); dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ()); gl_lock_lock (my_lock); check_accounts (); gl_lock_unlock (my_lock); dbgprintf ("Mutator %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ()); return NULL; } static volatile int lock_checker_done; static void * lock_checker_thread (void *arg) { while (!lock_checker_done) { dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ()); gl_lock_lock (my_lock); check_accounts (); gl_lock_unlock (my_lock); dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ()); return NULL; } static void test_lock (void) { int i; gl_thread_t checkerthread; gl_thread_t threads[THREAD_COUNT]; /* Initialization. */ for (i = 0; i < ACCOUNT_COUNT; i++) account[i] = 1000; lock_checker_done = 0; /* Spawn the threads. */ checkerthread = gl_thread_create (lock_checker_thread, NULL); for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (lock_mutator_thread, NULL); /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); lock_checker_done = 1; gl_thread_join (checkerthread, NULL); check_accounts (); } /* ----------------- Test read-write (non-recursive) locks ----------------- */ /* Test read-write locks by having several bank accounts and several threads which shuffle around money between the accounts and several other threads that check that all the money is still there. */ gl_rwlock_define_initialized(static, my_rwlock) static void * rwlock_mutator_thread (void *arg) { int repeat; for (repeat = REPEAT_COUNT; repeat > 0; repeat--) { int i1, i2, value; dbgprintf ("Mutator %p before wrlock\n", gl_thread_self_pointer ()); gl_rwlock_wrlock (my_rwlock); dbgprintf ("Mutator %p after wrlock\n", gl_thread_self_pointer ()); i1 = random_account (); i2 = random_account (); value = ((unsigned int) rand () >> 3) % 10; account[i1] += value; account[i2] -= value; dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ()); gl_rwlock_unlock (my_rwlock); dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ()); return NULL; } static volatile int rwlock_checker_done; static void * rwlock_checker_thread (void *arg) { while (!rwlock_checker_done) { dbgprintf ("Checker %p before check rdlock\n", gl_thread_self_pointer ()); gl_rwlock_rdlock (my_rwlock); check_accounts (); gl_rwlock_unlock (my_rwlock); dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ()); return NULL; } static void test_rwlock (void) { int i; gl_thread_t checkerthreads[THREAD_COUNT]; gl_thread_t threads[THREAD_COUNT]; /* Initialization. */ for (i = 0; i < ACCOUNT_COUNT; i++) account[i] = 1000; rwlock_checker_done = 0; /* Spawn the threads. */ for (i = 0; i < THREAD_COUNT; i++) checkerthreads[i] = gl_thread_create (rwlock_checker_thread, NULL); for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (rwlock_mutator_thread, NULL); /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); rwlock_checker_done = 1; for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (checkerthreads[i], NULL); check_accounts (); } /* -------------------------- Test recursive locks -------------------------- */ /* Test recursive locks by having several bank accounts and several threads which shuffle around money between the accounts (recursively) and another thread checking that all the money is still there. */ gl_recursive_lock_define_initialized(static, my_reclock) static void recshuffle (void) { int i1, i2, value; dbgprintf ("Mutator %p before lock\n", gl_thread_self_pointer ()); gl_recursive_lock_lock (my_reclock); dbgprintf ("Mutator %p after lock\n", gl_thread_self_pointer ()); i1 = random_account (); i2 = random_account (); value = ((unsigned int) rand () >> 3) % 10; account[i1] += value; account[i2] -= value; /* Recursive with probability 0.5. */ if (((unsigned int) rand () >> 3) % 2) recshuffle (); dbgprintf ("Mutator %p before unlock\n", gl_thread_self_pointer ()); gl_recursive_lock_unlock (my_reclock); dbgprintf ("Mutator %p after unlock\n", gl_thread_self_pointer ()); } static void * reclock_mutator_thread (void *arg) { int repeat; for (repeat = REPEAT_COUNT; repeat > 0; repeat--) { recshuffle (); dbgprintf ("Mutator %p before check lock\n", gl_thread_self_pointer ()); gl_recursive_lock_lock (my_reclock); check_accounts (); gl_recursive_lock_unlock (my_reclock); dbgprintf ("Mutator %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Mutator %p dying.\n", gl_thread_self_pointer ()); return NULL; } static volatile int reclock_checker_done; static void * reclock_checker_thread (void *arg) { while (!reclock_checker_done) { dbgprintf ("Checker %p before check lock\n", gl_thread_self_pointer ()); gl_recursive_lock_lock (my_reclock); check_accounts (); gl_recursive_lock_unlock (my_reclock); dbgprintf ("Checker %p after check unlock\n", gl_thread_self_pointer ()); yield (); } dbgprintf ("Checker %p dying.\n", gl_thread_self_pointer ()); return NULL; } static void test_recursive_lock (void) { int i; gl_thread_t checkerthread; gl_thread_t threads[THREAD_COUNT]; /* Initialization. */ for (i = 0; i < ACCOUNT_COUNT; i++) account[i] = 1000; reclock_checker_done = 0; /* Spawn the threads. */ checkerthread = gl_thread_create (reclock_checker_thread, NULL); for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (reclock_mutator_thread, NULL); /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); reclock_checker_done = 1; gl_thread_join (checkerthread, NULL); check_accounts (); } /* ------------------------ Test once-only execution ------------------------ */ /* Test once-only execution by having several threads attempt to grab a once-only task simultaneously (triggered by releasing a read-write lock). */ gl_once_define(static, fresh_once) static int ready[THREAD_COUNT]; static gl_lock_t ready_lock[THREAD_COUNT]; #if ENABLE_LOCKING static gl_rwlock_t fire_signal[REPEAT_COUNT]; #else static volatile int fire_signal_state; #endif static gl_once_t once_control; static int performed; gl_lock_define_initialized(static, performed_lock) static void once_execute (void) { gl_lock_lock (performed_lock); performed++; gl_lock_unlock (performed_lock); } static void * once_contender_thread (void *arg) { int id = (int) (long) arg; int repeat; for (repeat = 0; repeat <= REPEAT_COUNT; repeat++) { /* Tell the main thread that we're ready. */ gl_lock_lock (ready_lock[id]); ready[id] = 1; gl_lock_unlock (ready_lock[id]); if (repeat == REPEAT_COUNT) break; dbgprintf ("Contender %p waiting for signal for round %d\n", gl_thread_self_pointer (), repeat); #if ENABLE_LOCKING /* Wait for the signal to go. */ gl_rwlock_rdlock (fire_signal[repeat]); /* And don't hinder the others (if the scheduler is unfair). */ gl_rwlock_unlock (fire_signal[repeat]); #else /* Wait for the signal to go. */ while (fire_signal_state <= repeat) yield (); #endif dbgprintf ("Contender %p got the signal for round %d\n", gl_thread_self_pointer (), repeat); /* Contend for execution. */ gl_once (once_control, once_execute); } return NULL; } static void test_once (void) { int i, repeat; gl_thread_t threads[THREAD_COUNT]; /* Initialize all variables. */ for (i = 0; i < THREAD_COUNT; i++) { ready[i] = 0; gl_lock_init (ready_lock[i]); } #if ENABLE_LOCKING for (i = 0; i < REPEAT_COUNT; i++) gl_rwlock_init (fire_signal[i]); #else fire_signal_state = 0; #endif /* Block all fire_signals. */ for (i = REPEAT_COUNT-1; i >= 0; i--) gl_rwlock_wrlock (fire_signal[i]); /* Spawn the threads. */ for (i = 0; i < THREAD_COUNT; i++) threads[i] = gl_thread_create (once_contender_thread, (void *) (long) i); for (repeat = 0; repeat <= REPEAT_COUNT; repeat++) { /* Wait until every thread is ready. */ dbgprintf ("Main thread before synchronizing for round %d\n", repeat); for (;;) { int ready_count = 0; for (i = 0; i < THREAD_COUNT; i++) { gl_lock_lock (ready_lock[i]); ready_count += ready[i]; gl_lock_unlock (ready_lock[i]); } if (ready_count == THREAD_COUNT) break; yield (); } dbgprintf ("Main thread after synchronizing for round %d\n", repeat); if (repeat > 0) { /* Check that exactly one thread executed the once_execute() function. */ if (performed != 1) abort (); } if (repeat == REPEAT_COUNT) break; /* Preparation for the next round: Initialize once_control. */ memcpy (&once_control, &fresh_once, sizeof (gl_once_t)); /* Preparation for the next round: Reset the performed counter. */ performed = 0; /* Preparation for the next round: Reset the ready flags. */ for (i = 0; i < THREAD_COUNT; i++) { gl_lock_lock (ready_lock[i]); ready[i] = 0; gl_lock_unlock (ready_lock[i]); } /* Signal all threads simultaneously. */ dbgprintf ("Main thread giving signal for round %d\n", repeat); #if ENABLE_LOCKING gl_rwlock_unlock (fire_signal[repeat]); #else fire_signal_state = repeat + 1; #endif } /* Wait for the threads to terminate. */ for (i = 0; i < THREAD_COUNT; i++) gl_thread_join (threads[i], NULL); } /* -------------------------------------------------------------------------- */ int main () { #if TEST_PTH_THREADS if (!pth_init ()) abort (); #endif #if DO_TEST_LOCK printf ("Starting test_lock ..."); fflush (stdout); test_lock (); printf (" OK\n"); fflush (stdout); #endif #if DO_TEST_RWLOCK printf ("Starting test_rwlock ..."); fflush (stdout); test_rwlock (); printf (" OK\n"); fflush (stdout); #endif #if DO_TEST_RECURSIVE_LOCK printf ("Starting test_recursive_lock ..."); fflush (stdout); test_recursive_lock (); printf (" OK\n"); fflush (stdout); #endif #if DO_TEST_ONCE printf ("Starting test_once ..."); fflush (stdout); test_once (); printf (" OK\n"); fflush (stdout); #endif return 0; } #else /* No multithreading available. */ #include int main () { fputs ("Skipping test: multithreading not enabled\n", stderr); return 77; } #endif libidn-1.28/lib/gltests/test-iconv.c0000644000000000000000000001157512153706107014301 00000000000000/* Test of character set conversion. Copyright (C) 2007-2013 Free Software Foundation, Inc. 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 3 of the License, or (at your option) any later version. 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. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* Written by Bruno Haible , 2007. */ #include #if HAVE_ICONV # include # ifndef ICONV_CONST # define ICONV_CONST /* empty */ # endif #include "signature.h" SIGNATURE_CHECK (iconv, size_t, (iconv_t, ICONV_CONST char **, size_t *, char **, size_t *)); SIGNATURE_CHECK (iconv_close, int, (iconv_t x)); SIGNATURE_CHECK (iconv_open, iconv_t, (char const *, char const *)); #endif #include #include #include "macros.h" int main () { #if HAVE_ICONV /* Assume that iconv() supports at least the encodings ASCII, ISO-8859-1, and UTF-8. */ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); iconv_t cd_utf8_to_88591 = iconv_open ("ISO-8859-1", "UTF-8"); ASSERT (cd_88591_to_utf8 != (iconv_t)(-1)); ASSERT (cd_utf8_to_88591 != (iconv_t)(-1)); /* Test conversion from ISO-8859-1 to UTF-8 with no errors. */ { static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; static const char expected[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_88591_to_utf8, (ICONV_CONST char **) &inptr, &inbytesleft, &outptr, &outbytesleft); ASSERT (res == 0 && inbytesleft == 0); ASSERT (outptr == buf + strlen (expected)); ASSERT (memcmp (buf, expected, strlen (expected)) == 0); } /* Test conversion from ISO-8859-1 to UTF-8 with E2BIG. */ { static const char input[] = "\304"; static char buf[2] = { (char)0xDE, (char)0xAD }; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = 1; size_t res = iconv (cd_88591_to_utf8, (ICONV_CONST char **) &inptr, &inbytesleft, &outptr, &outbytesleft); ASSERT (res == (size_t)(-1) && errno == E2BIG); ASSERT (inbytesleft == 1); ASSERT (outbytesleft == 1); ASSERT ((unsigned char) buf[1] == 0xAD); ASSERT ((unsigned char) buf[0] == 0xDE); } /* Test conversion from UTF-8 to ISO-8859-1 with no errors. */ { static const char input[] = "\303\204rger mit b\303\266sen B\303\274bchen ohne Augenma\303\237"; static const char expected[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; char buf[50]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (ICONV_CONST char **) &inptr, &inbytesleft, &outptr, &outbytesleft); ASSERT (res == 0 && inbytesleft == 0); ASSERT (outptr == buf + strlen (expected)); ASSERT (memcmp (buf, expected, strlen (expected)) == 0); } /* Test conversion from UTF-8 to ISO-8859-1 with EILSEQ. */ { static const char input[] = "\342\202\254"; /* EURO SIGN */ char buf[10]; const char *inptr = input; size_t inbytesleft = strlen (input); char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (ICONV_CONST char **) &inptr, &inbytesleft, &outptr, &outbytesleft); if (res == (size_t)(-1)) { ASSERT (errno == EILSEQ); ASSERT (inbytesleft == strlen (input) && outptr == buf); } else { ASSERT (res == 1); ASSERT (inbytesleft == 0); } } /* Test conversion from UTF-8 to ISO-8859-1 with EINVAL. */ { static const char input[] = "\342"; char buf[10]; const char *inptr = input; size_t inbytesleft = 1; char *outptr = buf; size_t outbytesleft = sizeof (buf); size_t res = iconv (cd_utf8_to_88591, (ICONV_CONST char **) &inptr, &inbytesleft, &outptr, &outbytesleft); ASSERT (res == (size_t)(-1) && errno == EINVAL); ASSERT (inbytesleft == 1 && outptr == buf); } iconv_close (cd_88591_to_utf8); iconv_close (cd_utf8_to_88591); #endif return 0; } libidn-1.28/lib/gltests/Makefile.in0000644000000000000000000036552312167244662014124 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ TESTS = test-alloca-opt$(EXEEXT) test-c-ctype$(EXEEXT) \ test-c-strcase.sh test-environ$(EXEEXT) test-iconv$(EXEEXT) \ test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \ test-locale$(EXEEXT) test-localename$(EXEEXT) \ test-lock$(EXEEXT) test-malloca$(EXEEXT) test-setenv$(EXEEXT) \ test-setlocale1.sh test-setlocale2.sh test-stdbool$(EXEEXT) \ test-stddef$(EXEEXT) test-stdint$(EXEEXT) test-stdlib$(EXEEXT) \ test-striconv$(EXEEXT) test-strverscmp$(EXEEXT) \ test-sys_types$(EXEEXT) test-init.sh test-thread_self$(EXEEXT) \ test-thread_create$(EXEEXT) test-unistd$(EXEEXT) \ test-u8-mbtoucr$(EXEEXT) test-u8-uctomb$(EXEEXT) \ test-unsetenv$(EXEEXT) test-verify$(EXEEXT) test-verify.sh XFAIL_TESTS = noinst_PROGRAMS = check_PROGRAMS = test-alloca-opt$(EXEEXT) test-c-ctype$(EXEEXT) \ test-c-strcasecmp$(EXEEXT) test-c-strncasecmp$(EXEEXT) \ test-environ$(EXEEXT) test-iconv$(EXEEXT) \ test-intprops$(EXEEXT) test-inttypes$(EXEEXT) \ test-locale$(EXEEXT) test-localename$(EXEEXT) \ test-lock$(EXEEXT) test-malloca$(EXEEXT) test-setenv$(EXEEXT) \ test-setlocale1$(EXEEXT) test-setlocale2$(EXEEXT) \ test-stdbool$(EXEEXT) test-stddef$(EXEEXT) \ test-stdint$(EXEEXT) test-stdlib$(EXEEXT) \ test-striconv$(EXEEXT) test-strverscmp$(EXEEXT) \ test-sys_types$(EXEEXT) test-thread_self$(EXEEXT) \ test-thread_create$(EXEEXT) test-unistd$(EXEEXT) \ test-u8-mbtoucr$(EXEEXT) test-u8-uctomb$(EXEEXT) \ test-unsetenv$(EXEEXT) test-verify$(EXEEXT) subdir = lib/gltests DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) \ $(top_srcdir)/build-aux/test-driver ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) AM_V_AR = $(am__v_AR_@AM_V@) am__v_AR_ = $(am__v_AR_@AM_DEFAULT_V@) am__v_AR_0 = @echo " AR " $@; am__v_AR_1 = libtests_a_AR = $(AR) $(ARFLAGS) am__DEPENDENCIES_1 = am__dirstamp = $(am__leading_dot)dirstamp am_libtests_a_OBJECTS = localename.$(OBJEXT) glthread/lock.$(OBJEXT) \ malloca.$(OBJEXT) glthread/thread.$(OBJEXT) \ glthread/threadlib.$(OBJEXT) unistd.$(OBJEXT) libtests_a_OBJECTS = $(am_libtests_a_OBJECTS) PROGRAMS = $(noinst_PROGRAMS) test_alloca_opt_SOURCES = test-alloca-opt.c test_alloca_opt_OBJECTS = test-alloca-opt.$(OBJEXT) test_alloca_opt_LDADD = $(LDADD) test_alloca_opt_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = test_c_ctype_SOURCES = test-c-ctype.c test_c_ctype_OBJECTS = test-c-ctype.$(OBJEXT) test_c_ctype_LDADD = $(LDADD) test_c_ctype_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_c_strcasecmp_SOURCES = test-c-strcasecmp.c test_c_strcasecmp_OBJECTS = test-c-strcasecmp.$(OBJEXT) test_c_strcasecmp_LDADD = $(LDADD) test_c_strcasecmp_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_c_strncasecmp_SOURCES = test-c-strncasecmp.c test_c_strncasecmp_OBJECTS = test-c-strncasecmp.$(OBJEXT) test_c_strncasecmp_LDADD = $(LDADD) test_c_strncasecmp_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_environ_SOURCES = test-environ.c test_environ_OBJECTS = test-environ.$(OBJEXT) test_environ_LDADD = $(LDADD) test_environ_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_iconv_SOURCES = test-iconv.c test_iconv_OBJECTS = test-iconv.$(OBJEXT) am__DEPENDENCIES_2 = libtests.a ../../lib/gl/libgnu.la libtests.a \ $(am__DEPENDENCIES_1) test_iconv_DEPENDENCIES = $(am__DEPENDENCIES_2) test_intprops_SOURCES = test-intprops.c test_intprops_OBJECTS = test-intprops.$(OBJEXT) test_intprops_LDADD = $(LDADD) test_intprops_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_inttypes_SOURCES = test-inttypes.c test_inttypes_OBJECTS = test-inttypes.$(OBJEXT) test_inttypes_LDADD = $(LDADD) test_inttypes_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_locale_SOURCES = test-locale.c test_locale_OBJECTS = test-locale.$(OBJEXT) test_locale_LDADD = $(LDADD) test_locale_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_localename_SOURCES = test-localename.c test_localename_OBJECTS = test-localename.$(OBJEXT) test_localename_DEPENDENCIES = $(am__DEPENDENCIES_2) \ $(am__DEPENDENCIES_1) test_lock_SOURCES = test-lock.c test_lock_OBJECTS = test-lock.$(OBJEXT) test_lock_DEPENDENCIES = $(am__DEPENDENCIES_2) test_malloca_SOURCES = test-malloca.c test_malloca_OBJECTS = test-malloca.$(OBJEXT) test_malloca_LDADD = $(LDADD) test_malloca_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_setenv_SOURCES = test-setenv.c test_setenv_OBJECTS = test-setenv.$(OBJEXT) test_setenv_LDADD = $(LDADD) test_setenv_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_setlocale1_SOURCES = test-setlocale1.c test_setlocale1_OBJECTS = test-setlocale1.$(OBJEXT) test_setlocale1_LDADD = $(LDADD) test_setlocale1_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_setlocale2_SOURCES = test-setlocale2.c test_setlocale2_OBJECTS = test-setlocale2.$(OBJEXT) test_setlocale2_LDADD = $(LDADD) test_setlocale2_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_stdbool_SOURCES = test-stdbool.c test_stdbool_OBJECTS = test-stdbool.$(OBJEXT) test_stdbool_LDADD = $(LDADD) test_stdbool_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_stddef_SOURCES = test-stddef.c test_stddef_OBJECTS = test-stddef.$(OBJEXT) test_stddef_LDADD = $(LDADD) test_stddef_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_stdint_SOURCES = test-stdint.c test_stdint_OBJECTS = test-stdint.$(OBJEXT) test_stdint_LDADD = $(LDADD) test_stdint_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_stdlib_SOURCES = test-stdlib.c test_stdlib_OBJECTS = test-stdlib.$(OBJEXT) test_stdlib_LDADD = $(LDADD) test_stdlib_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_striconv_SOURCES = test-striconv.c test_striconv_OBJECTS = test-striconv.$(OBJEXT) test_striconv_DEPENDENCIES = $(am__DEPENDENCIES_2) test_strverscmp_SOURCES = test-strverscmp.c test_strverscmp_OBJECTS = test-strverscmp.$(OBJEXT) test_strverscmp_LDADD = $(LDADD) test_strverscmp_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_sys_types_SOURCES = test-sys_types.c test_sys_types_OBJECTS = test-sys_types.$(OBJEXT) test_sys_types_LDADD = $(LDADD) test_sys_types_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_thread_create_SOURCES = test-thread_create.c test_thread_create_OBJECTS = test-thread_create.$(OBJEXT) test_thread_create_DEPENDENCIES = $(am__DEPENDENCIES_2) test_thread_self_SOURCES = test-thread_self.c test_thread_self_OBJECTS = test-thread_self.$(OBJEXT) test_thread_self_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_u8_mbtoucr_OBJECTS = unistr/test-u8-mbtoucr.$(OBJEXT) test_u8_mbtoucr_OBJECTS = $(am_test_u8_mbtoucr_OBJECTS) test_u8_mbtoucr_DEPENDENCIES = $(am__DEPENDENCIES_2) am_test_u8_uctomb_OBJECTS = unistr/test-u8-uctomb.$(OBJEXT) test_u8_uctomb_OBJECTS = $(am_test_u8_uctomb_OBJECTS) test_u8_uctomb_DEPENDENCIES = $(am__DEPENDENCIES_2) test_unistd_SOURCES = test-unistd.c test_unistd_OBJECTS = test-unistd.$(OBJEXT) test_unistd_LDADD = $(LDADD) test_unistd_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_unsetenv_SOURCES = test-unsetenv.c test_unsetenv_OBJECTS = test-unsetenv.$(OBJEXT) test_unsetenv_LDADD = $(LDADD) test_unsetenv_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) test_verify_SOURCES = test-verify.c test_verify_OBJECTS = test-verify.$(OBJEXT) test_verify_LDADD = $(LDADD) test_verify_DEPENDENCIES = libtests.a ../../lib/gl/libgnu.la \ libtests.a $(am__DEPENDENCIES_1) AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \ test-alloca-opt.c test-c-ctype.c test-c-strcasecmp.c \ test-c-strncasecmp.c test-environ.c test-iconv.c \ test-intprops.c test-inttypes.c test-locale.c \ test-localename.c test-lock.c test-malloca.c test-setenv.c \ test-setlocale1.c test-setlocale2.c test-stdbool.c \ test-stddef.c test-stdint.c test-stdlib.c test-striconv.c \ test-strverscmp.c test-sys_types.c test-thread_create.c \ test-thread_self.c $(test_u8_mbtoucr_SOURCES) \ $(test_u8_uctomb_SOURCES) test-unistd.c test-unsetenv.c \ test-verify.c DIST_SOURCES = $(libtests_a_SOURCES) $(EXTRA_libtests_a_SOURCES) \ test-alloca-opt.c test-c-ctype.c test-c-strcasecmp.c \ test-c-strncasecmp.c test-environ.c test-iconv.c \ test-intprops.c test-inttypes.c test-locale.c \ test-localename.c test-lock.c test-malloca.c test-setenv.c \ test-setlocale1.c test-setlocale2.c test-stdbool.c \ test-stddef.c test-stdint.c test-stdlib.c test-striconv.c \ test-strverscmp.c test-sys_types.c test-thread_create.c \ test-thread_self.c $(test_u8_mbtoucr_SOURCES) \ $(test_u8_uctomb_SOURCES) test-unistd.c test-unsetenv.c \ test-verify.c RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ check recheck distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags am__tty_colors_dummy = \ mgn= red= grn= lgn= blu= brg= std=; \ am__color_tests=no am__tty_colors = { \ $(am__tty_colors_dummy); \ if test "X$(AM_COLOR_TESTS)" = Xno; then \ am__color_tests=no; \ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \ am__color_tests=yes; \ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \ am__color_tests=yes; \ fi; \ if test $$am__color_tests = yes; then \ red=''; \ grn=''; \ lgn=''; \ blu=''; \ mgn=''; \ brg=''; \ std=''; \ fi; \ } am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__recheck_rx = ^[ ]*:recheck:[ ]* am__global_test_result_rx = ^[ ]*:global-test-result:[ ]* am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]* # A command that, given a newline-separated list of test names on the # standard input, print the name of the tests that are to be re-run # upon "make recheck". am__list_recheck_tests = $(AWK) '{ \ recheck = 1; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ { \ if ((getline line2 < ($$0 ".log")) < 0) \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \ { \ recheck = 0; \ break; \ } \ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \ { \ break; \ } \ }; \ if (recheck) \ print $$0; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # A command that, given a newline-separated list of test names on the # standard input, create the global log from their .trs and .log files. am__create_global_log = $(AWK) ' \ function fatal(msg) \ { \ print "fatal: making $@: " msg | "cat >&2"; \ exit 1; \ } \ function rst_section(header) \ { \ print header; \ len = length(header); \ for (i = 1; i <= len; i = i + 1) \ printf "="; \ printf "\n\n"; \ } \ { \ copy_in_global_log = 1; \ global_test_result = "RUN"; \ while ((rc = (getline line < ($$0 ".trs"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".trs"); \ if (line ~ /$(am__global_test_result_rx)/) \ { \ sub("$(am__global_test_result_rx)", "", line); \ sub("[ ]*$$", "", line); \ global_test_result = line; \ } \ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \ copy_in_global_log = 0; \ }; \ if (copy_in_global_log) \ { \ rst_section(global_test_result ": " $$0); \ while ((rc = (getline line < ($$0 ".log"))) != 0) \ { \ if (rc < 0) \ fatal("failed to read from " $$0 ".log"); \ print line; \ }; \ printf "\n"; \ }; \ close ($$0 ".trs"); \ close ($$0 ".log"); \ }' # Restructured Text title. am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; } # Solaris 10 'make', and several other traditional 'make' implementations, # pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it # by disabling -e (using the XSI extension "set +e") if it's set. am__sh_e_setup = case $$- in *e*) set +e;; esac # Default flags passed to test drivers. am__common_driver_flags = \ --color-tests "$$am__color_tests" \ --enable-hard-errors "$$am__enable_hard_errors" \ --expect-failure "$$am__expect_failure" # To be inserted before the command running the test. Creates the # directory for the log if needed. Stores in $dir the directory # containing $f, in $tst the test, in $log the log. Executes the # developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and # passes TESTS_ENVIRONMENT. Set up options for the wrapper that # will run the test scripts (or their associated LOG_COMPILER, if # thy have one). am__check_pre = \ $(am__sh_e_setup); \ $(am__vpath_adj_setup) $(am__vpath_adj) \ $(am__tty_colors); \ srcdir=$(srcdir); export srcdir; \ case "$@" in \ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \ *) am__odir=.;; \ esac; \ test "x$$am__odir" = x"." || test -d "$$am__odir" \ || $(MKDIR_P) "$$am__odir" || exit $$?; \ if test -f "./$$f"; then dir=./; \ elif test -f "$$f"; then dir=; \ else dir="$(srcdir)/"; fi; \ tst=$$dir$$f; log='$@'; \ if test -n '$(DISABLE_HARD_ERRORS)'; then \ am__enable_hard_errors=no; \ else \ am__enable_hard_errors=yes; \ fi; \ case " $(XFAIL_TESTS) " in \ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \ am__expect_failure=yes;; \ *) \ am__expect_failure=no;; \ esac; \ $(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT) # A shell command to get the names of the tests scripts with any registered # extension removed (i.e., equivalently, the names of the test logs, with # the '.log' extension removed). The result is saved in the shell variable # '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly, # we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)", # since that might cause problem with VPATH rewrites for suffix-less tests. # See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'. am__set_TESTS_bases = \ bases='$(TEST_LOGS)'; \ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \ bases=`echo $$bases` RECHECK_LOGS = $(TEST_LOGS) TEST_SUITE_LOG = test-suite.log TEST_EXTENSIONS = @EXEEXT@ .test LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS) am__set_b = \ case '$@' in \ */*) \ case '$*' in \ */*) b='$*';; \ *) b=`echo '$@' | sed 's/\.log$$//'`; \ esac;; \ *) \ b='$*';; \ esac am__test_logs1 = $(TESTS:=.log) am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log) TEST_LOGS = $(am__test_logs2:.test.log=.log) TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/build-aux/test-driver TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \ $(TEST_LOG_FLAGS) DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.9.6 foreign subdir-objects SUBDIRS = . TESTS_ENVIRONMENT = EXEEXT='@EXEEXT@' srcdir='$(srcdir)' \ LOCALE_FR='@LOCALE_FR@' LOCALE_TR_UTF8='@LOCALE_TR_UTF8@' \ LOCALE_FR='@LOCALE_FR@' LOCALE_FR_UTF8='@LOCALE_FR_UTF8@' \ LOCALE_JA='@LOCALE_JA@' LOCALE_ZH_CN='@LOCALE_ZH_CN@' \ MAKE='$(MAKE)' noinst_HEADERS = noinst_LIBRARIES = check_LIBRARIES = libtests.a EXTRA_DIST = alloca.in.h test-alloca-opt.c test-c-ctype.c macros.h \ test-c-strcase.sh test-c-strcasecmp.c test-c-strncasecmp.c \ macros.h test-environ.c test-iconv.c signature.h macros.h \ intprops.h test-intprops.c macros.h inttypes.in.h \ test-inttypes.c locale.in.h test-locale.c localename.h \ test-localename.c macros.h test-lock.c malloc.c malloca.h \ malloca.valgrind test-malloca.c putenv.c setenv.c \ test-setenv.c signature.h macros.h setlocale.c \ test-setlocale1.sh test-setlocale1.c test-setlocale2.sh \ test-setlocale2.c signature.h macros.h \ $(top_srcdir)/build-aux/snippet/_Noreturn.h \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ $(top_srcdir)/build-aux/snippet/unused-parameter.h \ $(top_srcdir)/build-aux/snippet/warn-on-use.h test-stdbool.c \ test-stddef.c test-stdint.c stdlib.in.h test-stdlib.c \ test-sys_wait.h test-striconv.c macros.h test-strverscmp.c \ signature.h macros.h sys_types.in.h test-sys_types.c init.sh \ test-init.sh test-thread_self.c test-thread_create.c macros.h \ $(top_srcdir)/build-aux/config.rpath unistd.in.h test-unistd.c \ unistr/test-u8-mbtoucr.c macros.h unistr/test-u8-uctomb.c \ macros.h unsetenv.c test-unsetenv.c signature.h macros.h \ verify.h test-verify.c test-verify.sh wchar.in.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES = $(ALLOCA_H) inttypes.h locale.h arg-nonnull.h \ c++defs.h unused-parameter.h warn-on-use.h stdlib.h \ sys/types.h unistd.h wchar.h SUFFIXES = MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t inttypes.h \ inttypes.h-t locale.h locale.h-t arg-nonnull.h arg-nonnull.h-t \ c++defs.h c++defs.h-t unused-parameter.h unused-parameter.h-t \ warn-on-use.h warn-on-use.h-t stdlib.h stdlib.h-t sys/types.h \ sys/types.h-t unistd.h unistd.h-t wchar.h wchar.h-t MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = AM_CPPFLAGS = \ -D@lgltests_WITNESS@=1 \ -I. -I$(srcdir) \ -I../.. -I$(srcdir)/../.. \ -I../../lib/gl -I$(srcdir)/../../lib/gl LDADD = libtests.a ../../lib/gl/libgnu.la libtests.a $(LIBTESTS_LIBDEPS) libtests_a_SOURCES = localename.c glthread/lock.h glthread/lock.c \ malloca.c glthread/thread.h glthread/thread.c \ glthread/threadlib.c unistd.c glthread/yield.h libtests_a_LIBADD = $(lgltests_LIBOBJS) libtests_a_DEPENDENCIES = $(lgltests_LIBOBJS) EXTRA_libtests_a_SOURCES = malloc.c putenv.c setenv.c setlocale.c \ unsetenv.c AM_LIBTOOLFLAGS = --preserve-dup-deps test_iconv_LDADD = $(LDADD) @LIBICONV@ test_localename_LDADD = $(LDADD) @INTL_MACOSX_LIBS@ $(LIBTHREAD) test_lock_LDADD = $(LDADD) @LIBMULTITHREAD@ @YIELD_LIB@ # Because this Makefile snippet defines a variable used by other # gnulib Makefile snippets, it must be present in all Makefile.am that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h ARG_NONNULL_H = arg-nonnull.h CXXDEFS_H = c++defs.h UNUSED_PARAMETER_H = unused-parameter.h WARN_ON_USE_H = warn-on-use.h test_striconv_LDADD = $(LDADD) @LIBICONV@ test_thread_self_LDADD = $(LDADD) @LIBTHREAD@ test_thread_create_LDADD = $(LDADD) @LIBMULTITHREAD@ test_u8_mbtoucr_SOURCES = unistr/test-u8-mbtoucr.c test_u8_mbtoucr_LDADD = $(LDADD) $(LIBUNISTRING) test_u8_uctomb_SOURCES = unistr/test-u8-uctomb.c test_u8_uctomb_LDADD = $(LDADD) $(LIBUNISTRING) all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign lib/gltests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign lib/gltests/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-checkLIBRARIES: -test -z "$(check_LIBRARIES)" || rm -f $(check_LIBRARIES) clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) glthread/$(am__dirstamp): @$(MKDIR_P) glthread @: > glthread/$(am__dirstamp) glthread/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) glthread/$(DEPDIR) @: > glthread/$(DEPDIR)/$(am__dirstamp) glthread/lock.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/thread.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) glthread/threadlib.$(OBJEXT): glthread/$(am__dirstamp) \ glthread/$(DEPDIR)/$(am__dirstamp) libtests.a: $(libtests_a_OBJECTS) $(libtests_a_DEPENDENCIES) $(EXTRA_libtests_a_DEPENDENCIES) $(AM_V_at)-rm -f libtests.a $(AM_V_AR)$(libtests_a_AR) libtests.a $(libtests_a_OBJECTS) $(libtests_a_LIBADD) $(AM_V_at)$(RANLIB) libtests.a clean-checkPROGRAMS: @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list clean-noinstPROGRAMS: @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ echo " rm -f" $$list; \ rm -f $$list || exit $$?; \ test -n "$(EXEEXT)" || exit 0; \ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ echo " rm -f" $$list; \ rm -f $$list test-alloca-opt$(EXEEXT): $(test_alloca_opt_OBJECTS) $(test_alloca_opt_DEPENDENCIES) $(EXTRA_test_alloca_opt_DEPENDENCIES) @rm -f test-alloca-opt$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_alloca_opt_OBJECTS) $(test_alloca_opt_LDADD) $(LIBS) test-c-ctype$(EXEEXT): $(test_c_ctype_OBJECTS) $(test_c_ctype_DEPENDENCIES) $(EXTRA_test_c_ctype_DEPENDENCIES) @rm -f test-c-ctype$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_c_ctype_OBJECTS) $(test_c_ctype_LDADD) $(LIBS) test-c-strcasecmp$(EXEEXT): $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_DEPENDENCIES) $(EXTRA_test_c_strcasecmp_DEPENDENCIES) @rm -f test-c-strcasecmp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_c_strcasecmp_OBJECTS) $(test_c_strcasecmp_LDADD) $(LIBS) test-c-strncasecmp$(EXEEXT): $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_DEPENDENCIES) $(EXTRA_test_c_strncasecmp_DEPENDENCIES) @rm -f test-c-strncasecmp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_c_strncasecmp_OBJECTS) $(test_c_strncasecmp_LDADD) $(LIBS) test-environ$(EXEEXT): $(test_environ_OBJECTS) $(test_environ_DEPENDENCIES) $(EXTRA_test_environ_DEPENDENCIES) @rm -f test-environ$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_environ_OBJECTS) $(test_environ_LDADD) $(LIBS) test-iconv$(EXEEXT): $(test_iconv_OBJECTS) $(test_iconv_DEPENDENCIES) $(EXTRA_test_iconv_DEPENDENCIES) @rm -f test-iconv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_iconv_OBJECTS) $(test_iconv_LDADD) $(LIBS) test-intprops$(EXEEXT): $(test_intprops_OBJECTS) $(test_intprops_DEPENDENCIES) $(EXTRA_test_intprops_DEPENDENCIES) @rm -f test-intprops$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_intprops_OBJECTS) $(test_intprops_LDADD) $(LIBS) test-inttypes$(EXEEXT): $(test_inttypes_OBJECTS) $(test_inttypes_DEPENDENCIES) $(EXTRA_test_inttypes_DEPENDENCIES) @rm -f test-inttypes$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_inttypes_OBJECTS) $(test_inttypes_LDADD) $(LIBS) test-locale$(EXEEXT): $(test_locale_OBJECTS) $(test_locale_DEPENDENCIES) $(EXTRA_test_locale_DEPENDENCIES) @rm -f test-locale$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_locale_OBJECTS) $(test_locale_LDADD) $(LIBS) test-localename$(EXEEXT): $(test_localename_OBJECTS) $(test_localename_DEPENDENCIES) $(EXTRA_test_localename_DEPENDENCIES) @rm -f test-localename$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_localename_OBJECTS) $(test_localename_LDADD) $(LIBS) test-lock$(EXEEXT): $(test_lock_OBJECTS) $(test_lock_DEPENDENCIES) $(EXTRA_test_lock_DEPENDENCIES) @rm -f test-lock$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_lock_OBJECTS) $(test_lock_LDADD) $(LIBS) test-malloca$(EXEEXT): $(test_malloca_OBJECTS) $(test_malloca_DEPENDENCIES) $(EXTRA_test_malloca_DEPENDENCIES) @rm -f test-malloca$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_malloca_OBJECTS) $(test_malloca_LDADD) $(LIBS) test-setenv$(EXEEXT): $(test_setenv_OBJECTS) $(test_setenv_DEPENDENCIES) $(EXTRA_test_setenv_DEPENDENCIES) @rm -f test-setenv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setenv_OBJECTS) $(test_setenv_LDADD) $(LIBS) test-setlocale1$(EXEEXT): $(test_setlocale1_OBJECTS) $(test_setlocale1_DEPENDENCIES) $(EXTRA_test_setlocale1_DEPENDENCIES) @rm -f test-setlocale1$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setlocale1_OBJECTS) $(test_setlocale1_LDADD) $(LIBS) test-setlocale2$(EXEEXT): $(test_setlocale2_OBJECTS) $(test_setlocale2_DEPENDENCIES) $(EXTRA_test_setlocale2_DEPENDENCIES) @rm -f test-setlocale2$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_setlocale2_OBJECTS) $(test_setlocale2_LDADD) $(LIBS) test-stdbool$(EXEEXT): $(test_stdbool_OBJECTS) $(test_stdbool_DEPENDENCIES) $(EXTRA_test_stdbool_DEPENDENCIES) @rm -f test-stdbool$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdbool_OBJECTS) $(test_stdbool_LDADD) $(LIBS) test-stddef$(EXEEXT): $(test_stddef_OBJECTS) $(test_stddef_DEPENDENCIES) $(EXTRA_test_stddef_DEPENDENCIES) @rm -f test-stddef$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stddef_OBJECTS) $(test_stddef_LDADD) $(LIBS) test-stdint$(EXEEXT): $(test_stdint_OBJECTS) $(test_stdint_DEPENDENCIES) $(EXTRA_test_stdint_DEPENDENCIES) @rm -f test-stdint$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdint_OBJECTS) $(test_stdint_LDADD) $(LIBS) test-stdlib$(EXEEXT): $(test_stdlib_OBJECTS) $(test_stdlib_DEPENDENCIES) $(EXTRA_test_stdlib_DEPENDENCIES) @rm -f test-stdlib$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_stdlib_OBJECTS) $(test_stdlib_LDADD) $(LIBS) test-striconv$(EXEEXT): $(test_striconv_OBJECTS) $(test_striconv_DEPENDENCIES) $(EXTRA_test_striconv_DEPENDENCIES) @rm -f test-striconv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_striconv_OBJECTS) $(test_striconv_LDADD) $(LIBS) test-strverscmp$(EXEEXT): $(test_strverscmp_OBJECTS) $(test_strverscmp_DEPENDENCIES) $(EXTRA_test_strverscmp_DEPENDENCIES) @rm -f test-strverscmp$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_strverscmp_OBJECTS) $(test_strverscmp_LDADD) $(LIBS) test-sys_types$(EXEEXT): $(test_sys_types_OBJECTS) $(test_sys_types_DEPENDENCIES) $(EXTRA_test_sys_types_DEPENDENCIES) @rm -f test-sys_types$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_sys_types_OBJECTS) $(test_sys_types_LDADD) $(LIBS) test-thread_create$(EXEEXT): $(test_thread_create_OBJECTS) $(test_thread_create_DEPENDENCIES) $(EXTRA_test_thread_create_DEPENDENCIES) @rm -f test-thread_create$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_thread_create_OBJECTS) $(test_thread_create_LDADD) $(LIBS) test-thread_self$(EXEEXT): $(test_thread_self_OBJECTS) $(test_thread_self_DEPENDENCIES) $(EXTRA_test_thread_self_DEPENDENCIES) @rm -f test-thread_self$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_thread_self_OBJECTS) $(test_thread_self_LDADD) $(LIBS) unistr/$(am__dirstamp): @$(MKDIR_P) unistr @: > unistr/$(am__dirstamp) unistr/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unistr/$(DEPDIR) @: > unistr/$(DEPDIR)/$(am__dirstamp) unistr/test-u8-mbtoucr.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) test-u8-mbtoucr$(EXEEXT): $(test_u8_mbtoucr_OBJECTS) $(test_u8_mbtoucr_DEPENDENCIES) $(EXTRA_test_u8_mbtoucr_DEPENDENCIES) @rm -f test-u8-mbtoucr$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_u8_mbtoucr_OBJECTS) $(test_u8_mbtoucr_LDADD) $(LIBS) unistr/test-u8-uctomb.$(OBJEXT): unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) test-u8-uctomb$(EXEEXT): $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_DEPENDENCIES) $(EXTRA_test_u8_uctomb_DEPENDENCIES) @rm -f test-u8-uctomb$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_u8_uctomb_OBJECTS) $(test_u8_uctomb_LDADD) $(LIBS) test-unistd$(EXEEXT): $(test_unistd_OBJECTS) $(test_unistd_DEPENDENCIES) $(EXTRA_test_unistd_DEPENDENCIES) @rm -f test-unistd$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_unistd_OBJECTS) $(test_unistd_LDADD) $(LIBS) test-unsetenv$(EXEEXT): $(test_unsetenv_OBJECTS) $(test_unsetenv_DEPENDENCIES) $(EXTRA_test_unsetenv_DEPENDENCIES) @rm -f test-unsetenv$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_unsetenv_OBJECTS) $(test_unsetenv_LDADD) $(LIBS) test-verify$(EXEEXT): $(test_verify_OBJECTS) $(test_verify_DEPENDENCIES) $(EXTRA_test_verify_DEPENDENCIES) @rm -f test-verify$(EXEEXT) $(AM_V_CCLD)$(LINK) $(test_verify_OBJECTS) $(test_verify_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f glthread/*.$(OBJEXT) -rm -f unistr/*.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/localename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloc.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/malloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/putenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/setlocale.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-alloca-opt.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-ctype.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strcasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-c-strncasecmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-environ.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-iconv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-intprops.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-inttypes.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-locale.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-localename.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-lock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-malloca.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale1.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-setlocale2.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdbool.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stddef.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdint.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-stdlib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-striconv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-strverscmp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-sys_types.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_create.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-thread_self.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unistd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-unsetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test-verify.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unistd.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unsetenv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/lock.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/thread.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@glthread/$(DEPDIR)/threadlib.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-mbtoucr.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/test-u8-uctomb.Po@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags # Recover from deleted '.trs' file; this should ensure that # "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create # both 'foo.log' and 'foo.trs'. Break the recipe in two subshells # to avoid problems with "make -n". .log.trs: rm -f $< $@ $(MAKE) $(AM_MAKEFLAGS) $< # Leading 'am--fnord' is there to ensure the list of targets does not # expand to empty, as could happen e.g. with make check TESTS=''. am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck) am--force-recheck: @: $(TEST_SUITE_LOG): $(TEST_LOGS) @$(am__set_TESTS_bases); \ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \ redo_bases=`for i in $$bases; do \ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \ done`; \ if test -n "$$redo_bases"; then \ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \ if $(am__make_dryrun); then :; else \ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \ fi; \ fi; \ if test -n "$$am__remaking_logs"; then \ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \ "recursion detected" >&2; \ else \ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \ fi; \ if $(am__make_dryrun); then :; else \ st=0; \ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \ for i in $$redo_bases; do \ test -f $$i.trs && test -r $$i.trs \ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \ test -f $$i.log && test -r $$i.log \ || { echo "$$errmsg $$i.log" >&2; st=1; }; \ done; \ test $$st -eq 0 || exit 1; \ fi @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \ ws='[ ]'; \ results=`for b in $$bases; do echo $$b.trs; done`; \ test -n "$$results" || results=/dev/null; \ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \ if test `expr $$fail + $$xpass + $$error` -eq 0; then \ success=true; \ else \ success=false; \ fi; \ br='==================='; br=$$br$$br$$br$$br; \ result_count () \ { \ if test x"$$1" = x"--maybe-color"; then \ maybe_colorize=yes; \ elif test x"$$1" = x"--no-color"; then \ maybe_colorize=no; \ else \ echo "$@: invalid 'result_count' usage" >&2; exit 4; \ fi; \ shift; \ desc=$$1 count=$$2; \ if test $$maybe_colorize = yes && test $$count -gt 0; then \ color_start=$$3 color_end=$$std; \ else \ color_start= color_end=; \ fi; \ echo "$${color_start}# $$desc $$count$${color_end}"; \ }; \ create_testsuite_report () \ { \ result_count $$1 "TOTAL:" $$all "$$brg"; \ result_count $$1 "PASS: " $$pass "$$grn"; \ result_count $$1 "SKIP: " $$skip "$$blu"; \ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \ result_count $$1 "FAIL: " $$fail "$$red"; \ result_count $$1 "XPASS:" $$xpass "$$red"; \ result_count $$1 "ERROR:" $$error "$$mgn"; \ }; \ { \ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \ $(am__rst_title); \ create_testsuite_report --no-color; \ echo; \ echo ".. contents:: :depth: 2"; \ echo; \ for b in $$bases; do echo $$b; done \ | $(am__create_global_log); \ } >$(TEST_SUITE_LOG).tmp || exit 1; \ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \ if $$success; then \ col="$$grn"; \ else \ col="$$red"; \ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \ fi; \ echo "$${col}$$br$${std}"; \ echo "$${col}Testsuite summary for $(PACKAGE_STRING)$${std}"; \ echo "$${col}$$br$${std}"; \ create_testsuite_report --maybe-color; \ echo "$$col$$br$$std"; \ if $$success; then :; else \ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \ if test -n "$(PACKAGE_BUGREPORT)"; then \ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \ fi; \ echo "$$col$$br$$std"; \ fi; \ $$success || exit 1 check-TESTS: @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ log_list=`for i in $$bases; do echo $$i.log; done`; \ trs_list=`for i in $$bases; do echo $$i.trs; done`; \ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \ exit $$?; recheck: all $(check_LIBRARIES) $(check_PROGRAMS) @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) @set +e; $(am__set_TESTS_bases); \ bases=`for i in $$bases; do echo $$i; done \ | $(am__list_recheck_tests)` || exit 1; \ log_list=`for i in $$bases; do echo $$i.log; done`; \ log_list=`echo $$log_list`; \ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \ am__force_recheck=am--force-recheck \ TEST_LOGS="$$log_list"; \ exit $$? test-alloca-opt.log: test-alloca-opt$(EXEEXT) @p='test-alloca-opt$(EXEEXT)'; \ b='test-alloca-opt'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-c-ctype.log: test-c-ctype$(EXEEXT) @p='test-c-ctype$(EXEEXT)'; \ b='test-c-ctype'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-c-strcase.sh.log: test-c-strcase.sh @p='test-c-strcase.sh'; \ b='test-c-strcase.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-environ.log: test-environ$(EXEEXT) @p='test-environ$(EXEEXT)'; \ b='test-environ'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-iconv.log: test-iconv$(EXEEXT) @p='test-iconv$(EXEEXT)'; \ b='test-iconv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-intprops.log: test-intprops$(EXEEXT) @p='test-intprops$(EXEEXT)'; \ b='test-intprops'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-inttypes.log: test-inttypes$(EXEEXT) @p='test-inttypes$(EXEEXT)'; \ b='test-inttypes'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-locale.log: test-locale$(EXEEXT) @p='test-locale$(EXEEXT)'; \ b='test-locale'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-localename.log: test-localename$(EXEEXT) @p='test-localename$(EXEEXT)'; \ b='test-localename'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-lock.log: test-lock$(EXEEXT) @p='test-lock$(EXEEXT)'; \ b='test-lock'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-malloca.log: test-malloca$(EXEEXT) @p='test-malloca$(EXEEXT)'; \ b='test-malloca'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setenv.log: test-setenv$(EXEEXT) @p='test-setenv$(EXEEXT)'; \ b='test-setenv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setlocale1.sh.log: test-setlocale1.sh @p='test-setlocale1.sh'; \ b='test-setlocale1.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-setlocale2.sh.log: test-setlocale2.sh @p='test-setlocale2.sh'; \ b='test-setlocale2.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdbool.log: test-stdbool$(EXEEXT) @p='test-stdbool$(EXEEXT)'; \ b='test-stdbool'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stddef.log: test-stddef$(EXEEXT) @p='test-stddef$(EXEEXT)'; \ b='test-stddef'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdint.log: test-stdint$(EXEEXT) @p='test-stdint$(EXEEXT)'; \ b='test-stdint'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-stdlib.log: test-stdlib$(EXEEXT) @p='test-stdlib$(EXEEXT)'; \ b='test-stdlib'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-striconv.log: test-striconv$(EXEEXT) @p='test-striconv$(EXEEXT)'; \ b='test-striconv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-strverscmp.log: test-strverscmp$(EXEEXT) @p='test-strverscmp$(EXEEXT)'; \ b='test-strverscmp'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-sys_types.log: test-sys_types$(EXEEXT) @p='test-sys_types$(EXEEXT)'; \ b='test-sys_types'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-init.sh.log: test-init.sh @p='test-init.sh'; \ b='test-init.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-thread_self.log: test-thread_self$(EXEEXT) @p='test-thread_self$(EXEEXT)'; \ b='test-thread_self'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-thread_create.log: test-thread_create$(EXEEXT) @p='test-thread_create$(EXEEXT)'; \ b='test-thread_create'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-unistd.log: test-unistd$(EXEEXT) @p='test-unistd$(EXEEXT)'; \ b='test-unistd'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-u8-mbtoucr.log: test-u8-mbtoucr$(EXEEXT) @p='test-u8-mbtoucr$(EXEEXT)'; \ b='test-u8-mbtoucr'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-u8-uctomb.log: test-u8-uctomb$(EXEEXT) @p='test-u8-uctomb$(EXEEXT)'; \ b='test-u8-uctomb'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-unsetenv.log: test-unsetenv$(EXEEXT) @p='test-unsetenv$(EXEEXT)'; \ b='test-unsetenv'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-verify.log: test-verify$(EXEEXT) @p='test-verify$(EXEEXT)'; \ b='test-verify'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) test-verify.sh.log: test-verify.sh @p='test-verify.sh'; \ b='test-verify.sh'; \ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) .test.log: @p='$<'; \ $(am__set_b); \ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ --log-file $$b.log --trs-file $$b.trs \ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ "$$tst" $(AM_TESTS_FD_REDIRECT) @am__EXEEXT_TRUE@.test$(EXEEXT).log: @am__EXEEXT_TRUE@ @p='$<'; \ @am__EXEEXT_TRUE@ $(am__set_b); \ @am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \ @am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \ @am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \ @am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT) distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am $(MAKE) $(AM_MAKEFLAGS) $(check_LIBRARIES) $(check_PROGRAMS) $(MAKE) $(AM_MAKEFLAGS) check-TESTS check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS) -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs) -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f glthread/$(DEPDIR)/$(am__dirstamp) -rm -f glthread/$(am__dirstamp) -rm -f unistr/$(DEPDIR)/$(am__dirstamp) -rm -f unistr/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-checkLIBRARIES clean-checkPROGRAMS clean-generic \ clean-libtool clean-local clean-noinstLIBRARIES \ clean-noinstPROGRAMS mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) glthread/$(DEPDIR) unistr/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) glthread/$(DEPDIR) unistr/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check check-am install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-TESTS check-am clean clean-checkLIBRARIES \ clean-checkPROGRAMS clean-generic clean-libtool clean-local \ clean-noinstLIBRARIES clean-noinstPROGRAMS cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am recheck tags tags-am uninstall uninstall-am # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \ @GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \ @GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@ @GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status @GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_INTTYPES_H''@|$(NEXT_INTTYPES_H)|g' \ -e 's/@''PRI_MACROS_BROKEN''@/$(PRI_MACROS_BROKEN)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''PRIPTR_PREFIX''@/$(PRIPTR_PREFIX)/g' \ -e 's/@''GNULIB_IMAXABS''@/$(GNULIB_IMAXABS)/g' \ -e 's/@''GNULIB_IMAXDIV''@/$(GNULIB_IMAXDIV)/g' \ -e 's/@''GNULIB_STRTOIMAX''@/$(GNULIB_STRTOIMAX)/g' \ -e 's/@''GNULIB_STRTOUMAX''@/$(GNULIB_STRTOUMAX)/g' \ -e 's/@''HAVE_DECL_IMAXABS''@/$(HAVE_DECL_IMAXABS)/g' \ -e 's/@''HAVE_DECL_IMAXDIV''@/$(HAVE_DECL_IMAXDIV)/g' \ -e 's/@''HAVE_DECL_STRTOIMAX''@/$(HAVE_DECL_STRTOIMAX)/g' \ -e 's/@''HAVE_DECL_STRTOUMAX''@/$(HAVE_DECL_STRTOUMAX)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ -e 's/@''INT64_MAX_EQ_LONG_MAX''@/$(INT64_MAX_EQ_LONG_MAX)/g' \ -e 's/@''UINT32_MAX_LT_UINTMAX_MAX''@/$(UINT32_MAX_LT_UINTMAX_MAX)/g' \ -e 's/@''UINT64_MAX_EQ_ULONG_MAX''@/$(UINT64_MAX_EQ_ULONG_MAX)/g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/inttypes.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that provides all definitions. locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_LOCALE_H''@|$(NEXT_LOCALE_H)|g' \ -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ -e 's|@''HAVE_XLOCALE_H''@|$(HAVE_XLOCALE_H)|g' \ -e 's|@''REPLACE_LOCALECONV''@|$(REPLACE_LOCALECONV)|g' \ -e 's|@''REPLACE_SETLOCALE''@|$(REPLACE_SETLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ -e 's|@''REPLACE_STRUCT_LCONV''@|$(REPLACE_STRUCT_LCONV)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/locale.in.h; \ } > $@-t && \ mv $@-t $@ # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ # The unused-parameter.h that gets inserted into generated .h files is the same # as build-aux/snippet/unused-parameter.h, except that it has the copyright # header cut off. unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ > $@-t && \ mv $@-t $@ # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/g' \ -e 's/@''GNULIB_ATOLL''@/$(GNULIB_ATOLL)/g' \ -e 's/@''GNULIB_CALLOC_POSIX''@/$(GNULIB_CALLOC_POSIX)/g' \ -e 's/@''GNULIB_CANONICALIZE_FILE_NAME''@/$(GNULIB_CANONICALIZE_FILE_NAME)/g' \ -e 's/@''GNULIB_GETLOADAVG''@/$(GNULIB_GETLOADAVG)/g' \ -e 's/@''GNULIB_GETSUBOPT''@/$(GNULIB_GETSUBOPT)/g' \ -e 's/@''GNULIB_GRANTPT''@/$(GNULIB_GRANTPT)/g' \ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/g' \ -e 's/@''GNULIB_MKDTEMP''@/$(GNULIB_MKDTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMP''@/$(GNULIB_MKOSTEMP)/g' \ -e 's/@''GNULIB_MKOSTEMPS''@/$(GNULIB_MKOSTEMPS)/g' \ -e 's/@''GNULIB_MKSTEMP''@/$(GNULIB_MKSTEMP)/g' \ -e 's/@''GNULIB_MKSTEMPS''@/$(GNULIB_MKSTEMPS)/g' \ -e 's/@''GNULIB_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/g' \ -e 's/@''GNULIB_RANDOM_R''@/$(GNULIB_RANDOM_R)/g' \ -e 's/@''GNULIB_REALLOC_POSIX''@/$(GNULIB_REALLOC_POSIX)/g' \ -e 's/@''GNULIB_REALPATH''@/$(GNULIB_REALPATH)/g' \ -e 's/@''GNULIB_RPMATCH''@/$(GNULIB_RPMATCH)/g' \ -e 's/@''GNULIB_SECURE_GETENV''@/$(GNULIB_SECURE_GETENV)/g' \ -e 's/@''GNULIB_SETENV''@/$(GNULIB_SETENV)/g' \ -e 's/@''GNULIB_STRTOD''@/$(GNULIB_STRTOD)/g' \ -e 's/@''GNULIB_STRTOLL''@/$(GNULIB_STRTOLL)/g' \ -e 's/@''GNULIB_STRTOULL''@/$(GNULIB_STRTOULL)/g' \ -e 's/@''GNULIB_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \ < $(srcdir)/stdlib.in.h | \ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|g' \ -e 's|@''HAVE_CANONICALIZE_FILE_NAME''@|$(HAVE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -e 's|@''HAVE_MKDTEMP''@|$(HAVE_MKDTEMP)|g' \ -e 's|@''HAVE_MKOSTEMP''@|$(HAVE_MKOSTEMP)|g' \ -e 's|@''HAVE_MKOSTEMPS''@|$(HAVE_MKOSTEMPS)|g' \ -e 's|@''HAVE_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \ -e 's|@''HAVE_SECURE_GETENV''@|$(HAVE_SECURE_GETENV)|g' \ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_SETENV)|g' \ -e 's|@''HAVE_STRTOD''@|$(HAVE_STRTOD)|g' \ -e 's|@''HAVE_STRTOLL''@|$(HAVE_STRTOLL)|g' \ -e 's|@''HAVE_STRTOULL''@|$(HAVE_STRTOULL)|g' \ -e 's|@''HAVE_STRUCT_RANDOM_DATA''@|$(HAVE_STRUCT_RANDOM_DATA)|g' \ -e 's|@''HAVE_SYS_LOADAVG_H''@|$(HAVE_SYS_LOADAVG_H)|g' \ -e 's|@''HAVE_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \ -e 's|@''REPLACE_PTSNAME''@|$(REPLACE_PTSNAME)|g' \ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|g' \ -e 's|@''REPLACE_REALPATH''@|$(REPLACE_REALPATH)|g' \ -e 's|@''REPLACE_SETENV''@|$(REPLACE_SETENV)|g' \ -e 's|@''REPLACE_STRTOD''@|$(REPLACE_STRTOD)|g' \ -e 's|@''REPLACE_UNSETENV''@|$(REPLACE_UNSETENV)|g' \ -e 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _Noreturn/r $(_NORETURN_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. sys/types.h: sys_types.in.h $(top_builddir)/config.status $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ < $(srcdir)/sys_types.in.h; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create an empty placeholder for # when the system doesn't have one. unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''HAVE_UNISTD_H''@|$(HAVE_UNISTD_H)|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \ -e 's|@''WINDOWS_64_BIT_OFF_T''@|$(WINDOWS_64_BIT_OFF_T)|g' \ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/g' \ -e 's/@''GNULIB_DUP2''@/$(GNULIB_DUP2)/g' \ -e 's/@''GNULIB_DUP3''@/$(GNULIB_DUP3)/g' \ -e 's/@''GNULIB_ENVIRON''@/$(GNULIB_ENVIRON)/g' \ -e 's/@''GNULIB_EUIDACCESS''@/$(GNULIB_EUIDACCESS)/g' \ -e 's/@''GNULIB_FACCESSAT''@/$(GNULIB_FACCESSAT)/g' \ -e 's/@''GNULIB_FCHDIR''@/$(GNULIB_FCHDIR)/g' \ -e 's/@''GNULIB_FCHOWNAT''@/$(GNULIB_FCHOWNAT)/g' \ -e 's/@''GNULIB_FDATASYNC''@/$(GNULIB_FDATASYNC)/g' \ -e 's/@''GNULIB_FSYNC''@/$(GNULIB_FSYNC)/g' \ -e 's/@''GNULIB_FTRUNCATE''@/$(GNULIB_FTRUNCATE)/g' \ -e 's/@''GNULIB_GETCWD''@/$(GNULIB_GETCWD)/g' \ -e 's/@''GNULIB_GETDOMAINNAME''@/$(GNULIB_GETDOMAINNAME)/g' \ -e 's/@''GNULIB_GETDTABLESIZE''@/$(GNULIB_GETDTABLESIZE)/g' \ -e 's/@''GNULIB_GETGROUPS''@/$(GNULIB_GETGROUPS)/g' \ -e 's/@''GNULIB_GETHOSTNAME''@/$(GNULIB_GETHOSTNAME)/g' \ -e 's/@''GNULIB_GETLOGIN''@/$(GNULIB_GETLOGIN)/g' \ -e 's/@''GNULIB_GETLOGIN_R''@/$(GNULIB_GETLOGIN_R)/g' \ -e 's/@''GNULIB_GETPAGESIZE''@/$(GNULIB_GETPAGESIZE)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ -e 's/@''GNULIB_LCHOWN''@/$(GNULIB_LCHOWN)/g' \ -e 's/@''GNULIB_LINK''@/$(GNULIB_LINK)/g' \ -e 's/@''GNULIB_LINKAT''@/$(GNULIB_LINKAT)/g' \ -e 's/@''GNULIB_LSEEK''@/$(GNULIB_LSEEK)/g' \ -e 's/@''GNULIB_PIPE''@/$(GNULIB_PIPE)/g' \ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/g' \ -e 's/@''GNULIB_READLINK''@/$(GNULIB_READLINK)/g' \ -e 's/@''GNULIB_READLINKAT''@/$(GNULIB_READLINKAT)/g' \ -e 's/@''GNULIB_RMDIR''@/$(GNULIB_RMDIR)/g' \ -e 's/@''GNULIB_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/g' \ -e 's/@''GNULIB_SLEEP''@/$(GNULIB_SLEEP)/g' \ -e 's/@''GNULIB_SYMLINK''@/$(GNULIB_SYMLINK)/g' \ -e 's/@''GNULIB_SYMLINKAT''@/$(GNULIB_SYMLINKAT)/g' \ -e 's/@''GNULIB_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_LGL_UNISTD_H_GETOPT)/g' \ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/g' \ -e 's/@''GNULIB_UNISTD_H_SIGPIPE''@/$(GNULIB_UNISTD_H_SIGPIPE)/g' \ -e 's/@''GNULIB_UNLINK''@/$(GNULIB_UNLINK)/g' \ -e 's/@''GNULIB_UNLINKAT''@/$(GNULIB_UNLINKAT)/g' \ -e 's/@''GNULIB_USLEEP''@/$(GNULIB_USLEEP)/g' \ -e 's/@''GNULIB_WRITE''@/$(GNULIB_WRITE)/g' \ < $(srcdir)/unistd.in.h | \ sed -e 's|@''HAVE_CHOWN''@|$(HAVE_CHOWN)|g' \ -e 's|@''HAVE_DUP2''@|$(HAVE_DUP2)|g' \ -e 's|@''HAVE_DUP3''@|$(HAVE_DUP3)|g' \ -e 's|@''HAVE_EUIDACCESS''@|$(HAVE_EUIDACCESS)|g' \ -e 's|@''HAVE_FACCESSAT''@|$(HAVE_FACCESSAT)|g' \ -e 's|@''HAVE_FCHDIR''@|$(HAVE_FCHDIR)|g' \ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \ -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \ -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETLOGIN''@|$(HAVE_GETLOGIN)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ -e 's|@''HAVE_LINKAT''@|$(HAVE_LINKAT)|g' \ -e 's|@''HAVE_PIPE''@|$(HAVE_PIPE)|g' \ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|g' \ -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ -e 's|@''HAVE_DECL_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \ | \ sed -e 's|@''REPLACE_CHOWN''@|$(REPLACE_CHOWN)|g' \ -e 's|@''REPLACE_CLOSE''@|$(REPLACE_CLOSE)|g' \ -e 's|@''REPLACE_DUP''@|$(REPLACE_DUP)|g' \ -e 's|@''REPLACE_DUP2''@|$(REPLACE_DUP2)|g' \ -e 's|@''REPLACE_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \ -e 's|@''REPLACE_FTRUNCATE''@|$(REPLACE_FTRUNCATE)|g' \ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ -e 's|@''REPLACE_LINKAT''@|$(REPLACE_LINKAT)|g' \ -e 's|@''REPLACE_LSEEK''@|$(REPLACE_LSEEK)|g' \ -e 's|@''REPLACE_PREAD''@|$(REPLACE_PREAD)|g' \ -e 's|@''REPLACE_PWRITE''@|$(REPLACE_PWRITE)|g' \ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|g' \ -e 's|@''REPLACE_READLINK''@|$(REPLACE_READLINK)|g' \ -e 's|@''REPLACE_RMDIR''@|$(REPLACE_RMDIR)|g' \ -e 's|@''REPLACE_SLEEP''@|$(REPLACE_SLEEP)|g' \ -e 's|@''REPLACE_SYMLINK''@|$(REPLACE_SYMLINK)|g' \ -e 's|@''REPLACE_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|g' \ -e 's|@''REPLACE_UNLINK''@|$(REPLACE_UNLINK)|g' \ -e 's|@''REPLACE_UNLINKAT''@|$(REPLACE_UNLINKAT)|g' \ -e 's|@''REPLACE_USLEEP''@|$(REPLACE_USLEEP)|g' \ -e 's|@''REPLACE_WRITE''@|$(REPLACE_WRITE)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H''@|$(UNISTD_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # version does not work standalone. wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|g' \ -e 's|@''NEXT_WCHAR_H''@|$(NEXT_WCHAR_H)|g' \ -e 's|@''HAVE_WCHAR_H''@|$(HAVE_WCHAR_H)|g' \ -e 's/@''GNULIB_BTOWC''@/$(GNULIB_BTOWC)/g' \ -e 's/@''GNULIB_WCTOB''@/$(GNULIB_WCTOB)/g' \ -e 's/@''GNULIB_MBSINIT''@/$(GNULIB_MBSINIT)/g' \ -e 's/@''GNULIB_MBRTOWC''@/$(GNULIB_MBRTOWC)/g' \ -e 's/@''GNULIB_MBRLEN''@/$(GNULIB_MBRLEN)/g' \ -e 's/@''GNULIB_MBSRTOWCS''@/$(GNULIB_MBSRTOWCS)/g' \ -e 's/@''GNULIB_MBSNRTOWCS''@/$(GNULIB_MBSNRTOWCS)/g' \ -e 's/@''GNULIB_WCRTOMB''@/$(GNULIB_WCRTOMB)/g' \ -e 's/@''GNULIB_WCSRTOMBS''@/$(GNULIB_WCSRTOMBS)/g' \ -e 's/@''GNULIB_WCSNRTOMBS''@/$(GNULIB_WCSNRTOMBS)/g' \ -e 's/@''GNULIB_WCWIDTH''@/$(GNULIB_WCWIDTH)/g' \ -e 's/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \ < $(srcdir)/wchar.in.h | \ sed -e 's|@''HAVE_WINT_T''@|$(HAVE_WINT_T)|g' \ -e 's|@''HAVE_BTOWC''@|$(HAVE_BTOWC)|g' \ -e 's|@''HAVE_MBSINIT''@|$(HAVE_MBSINIT)|g' \ -e 's|@''HAVE_MBRTOWC''@|$(HAVE_MBRTOWC)|g' \ -e 's|@''HAVE_MBRLEN''@|$(HAVE_MBRLEN)|g' \ -e 's|@''HAVE_MBSRTOWCS''@|$(HAVE_MBSRTOWCS)|g' \ -e 's|@''HAVE_MBSNRTOWCS''@|$(HAVE_MBSNRTOWCS)|g' \ -e 's|@''HAVE_WCRTOMB''@|$(HAVE_WCRTOMB)|g' \ -e 's|@''HAVE_WCSRTOMBS''@|$(HAVE_WCSRTOMBS)|g' \ -e 's|@''HAVE_WCSNRTOMBS''@|$(HAVE_WCSNRTOMBS)|g' \ -e 's|@''HAVE_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \ | \ sed -e 's|@''REPLACE_MBSTATE_T''@|$(REPLACE_MBSTATE_T)|g' \ -e 's|@''REPLACE_BTOWC''@|$(REPLACE_BTOWC)|g' \ -e 's|@''REPLACE_WCTOB''@|$(REPLACE_WCTOB)|g' \ -e 's|@''REPLACE_MBSINIT''@|$(REPLACE_MBSINIT)|g' \ -e 's|@''REPLACE_MBRTOWC''@|$(REPLACE_MBRTOWC)|g' \ -e 's|@''REPLACE_MBRLEN''@|$(REPLACE_MBRLEN)|g' \ -e 's|@''REPLACE_MBSRTOWCS''@|$(REPLACE_MBSRTOWCS)|g' \ -e 's|@''REPLACE_MBSNRTOWCS''@|$(REPLACE_MBSNRTOWCS)|g' \ -e 's|@''REPLACE_WCRTOMB''@|$(REPLACE_WCRTOMB)|g' \ -e 's|@''REPLACE_WCSRTOMBS''@|$(REPLACE_WCSRTOMBS)|g' \ -e 's|@''REPLACE_WCSNRTOMBS''@|$(REPLACE_WCSNRTOMBS)|g' \ -e 's|@''REPLACE_WCWIDTH''@|$(REPLACE_WCWIDTH)|g' \ -e 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ } > $@-t && \ mv $@-t $@ # Clean up after Solaris cc. clean-local: rm -rf SunWS_cache mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/lib/gltests/test-setlocale1.sh0000775000000000000000000000150611746453142015412 00000000000000#!/bin/sh : ${LOCALE_FR=fr_FR} : ${LOCALE_FR_UTF8=fr_FR.UTF-8} : ${LOCALE_JA=ja_JP} : ${LOCALE_ZH_CN=zh_CN.GB18030} if test $LOCALE_FR = none && test $LOCALE_FR_UTF8 = none \ && test $LOCALE_JA = none && test $LOCALE_ZH_CN = none; then if test -f /usr/bin/localedef; then echo "Skipping test: no locale for testing is installed" else echo "Skipping test: no locale for testing is supported" fi exit 77 fi if test $LOCALE_FR != none; then LC_ALL=$LOCALE_FR ./test-setlocale1${EXEEXT} || exit 1 fi if test $LOCALE_FR_UTF8 != none; then LC_ALL=$LOCALE_FR_UTF8 ./test-setlocale1${EXEEXT} || exit 1 fi if test $LOCALE_JA != none; then LC_ALL=$LOCALE_JA ./test-setlocale1${EXEEXT} || exit 1 fi if test $LOCALE_ZH_CN != none; then LC_ALL=$LOCALE_ZH_CN ./test-setlocale1${EXEEXT} || exit 1 fi exit 0 libidn-1.28/lib/gltests/malloca.valgrind0000664000000000000000000000025711746453142015204 00000000000000# Suppress a valgrind message about use of uninitialized memory in freea(). # This use is OK because it provides only a speedup. { freea Memcheck:Cond fun:freea } libidn-1.28/lib/nfkc.c0000644000000000000000000007060612153706572011450 00000000000000/* nfkc.c --- Unicode normalization utilities. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include "stringprep.h" /* Hacks to make syncing with GLIB code easier. */ #define gboolean int #define gchar char #define guchar unsigned char #define glong long #define gint int #define guint unsigned int #define gushort unsigned short #define gint16 int16_t #define guint16 uint16_t #define gunichar uint32_t #define gsize size_t #define gssize ssize_t #define g_malloc malloc #define g_free free #define g_return_val_if_fail(expr,val) { \ if (!(expr)) \ return (val); \ } /* Code from GLIB gmacros.h starts here. */ /* GLIB - Library of useful routines for C programming * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef FALSE #define FALSE (0) #endif #ifndef TRUE #define TRUE (!FALSE) #endif #define G_N_ELEMENTS(arr) (sizeof (arr) / sizeof ((arr)[0])) #define G_UNLIKELY(expr) (expr) /* Code from GLIB gunicode.h starts here. */ /* gunicode.h - Unicode manipulation functions * * Copyright (C) 1999, 2000 Tom Tromey * Copyright 2000, 2005 Red Hat, Inc. * * The Gnome Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * The Gnome Library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ typedef enum { G_NORMALIZE_DEFAULT, G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT, G_NORMALIZE_DEFAULT_COMPOSE, G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE, G_NORMALIZE_ALL, G_NORMALIZE_NFKD = G_NORMALIZE_ALL, G_NORMALIZE_ALL_COMPOSE, G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE } GNormalizeMode; #define g_utf8_next_char(p) ((p) + g_utf8_skip[*(const guchar *)(p)]) /* Code from GLIB gutf8.c starts here. */ /* gutf8.c - Operations on UTF-8 strings. * * Copyright (C) 1999 Tom Tromey * Copyright (C) 2000 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #define UTF8_COMPUTE(Char, Mask, Len) \ if (Char < 128) \ { \ Len = 1; \ Mask = 0x7f; \ } \ else if ((Char & 0xe0) == 0xc0) \ { \ Len = 2; \ Mask = 0x1f; \ } \ else if ((Char & 0xf0) == 0xe0) \ { \ Len = 3; \ Mask = 0x0f; \ } \ else if ((Char & 0xf8) == 0xf0) \ { \ Len = 4; \ Mask = 0x07; \ } \ else if ((Char & 0xfc) == 0xf8) \ { \ Len = 5; \ Mask = 0x03; \ } \ else if ((Char & 0xfe) == 0xfc) \ { \ Len = 6; \ Mask = 0x01; \ } \ else \ Len = -1; #define UTF8_LENGTH(Char) \ ((Char) < 0x80 ? 1 : \ ((Char) < 0x800 ? 2 : \ ((Char) < 0x10000 ? 3 : \ ((Char) < 0x200000 ? 4 : \ ((Char) < 0x4000000 ? 5 : 6))))) #define UTF8_GET(Result, Chars, Count, Mask, Len) \ (Result) = (Chars)[0] & (Mask); \ for ((Count) = 1; (Count) < (Len); ++(Count)) \ { \ if (((Chars)[(Count)] & 0xc0) != 0x80) \ { \ (Result) = -1; \ break; \ } \ (Result) <<= 6; \ (Result) |= ((Chars)[(Count)] & 0x3f); \ } static const gchar utf8_skip_data[256] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 1, 1 }; const gchar *const g_utf8_skip = utf8_skip_data; /* * g_utf8_strlen: * @p: pointer to the start of a UTF-8 encoded string * @max: the maximum number of bytes to examine. If @max * is less than 0, then the string is assumed to be * nul-terminated. If @max is 0, @p will not be examined and * may be %NULL. * * Computes the length of the string in characters, not including * the terminating nul character. * * Return value: the length of the string in characters **/ static glong g_utf8_strlen (const gchar * p, gssize max) { glong len = 0; const gchar *start = p; g_return_val_if_fail (p != NULL || max == 0, 0); if (max < 0) { while (*p) { p = g_utf8_next_char (p); ++len; } } else { if (max == 0 || !*p) return 0; p = g_utf8_next_char (p); while (p - start < max && *p) { ++len; p = g_utf8_next_char (p); } /* only do the last len increment if we got a complete * char (don't count partial chars) */ if (p - start <= max) ++len; } return len; } /* * g_utf8_get_char: * @p: a pointer to Unicode character encoded as UTF-8 * * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. * If @p does not point to a valid UTF-8 encoded character, results are * undefined. If you are not sure that the bytes are complete * valid Unicode characters, you should use g_utf8_get_char_validated() * instead. * * Return value: the resulting character **/ static gunichar g_utf8_get_char (const gchar * p) { int i, mask = 0, len; gunichar result; unsigned char c = (unsigned char) *p; UTF8_COMPUTE (c, mask, len); if (len == -1) return (gunichar) - 1; UTF8_GET (result, p, i, mask, len); return result; } /* * g_unichar_to_utf8: * @c: a Unicode character code * @outbuf: output buffer, must have at least 6 bytes of space. * If %NULL, the length will be computed and returned * and nothing will be written to @outbuf. * * Converts a single character to UTF-8. * * Return value: number of bytes written **/ static int g_unichar_to_utf8 (gunichar c, gchar * outbuf) { /* If this gets modified, also update the copy in g_string_insert_unichar() */ guint len = 0; int first; int i; if (c < 0x80) { first = 0; len = 1; } else if (c < 0x800) { first = 0xc0; len = 2; } else if (c < 0x10000) { first = 0xe0; len = 3; } else if (c < 0x200000) { first = 0xf0; len = 4; } else if (c < 0x4000000) { first = 0xf8; len = 5; } else { first = 0xfc; len = 6; } if (outbuf) { for (i = len - 1; i > 0; --i) { outbuf[i] = (c & 0x3f) | 0x80; c >>= 6; } outbuf[0] = c | first; } return len; } /* * g_utf8_to_ucs4_fast: * @str: a UTF-8 encoded string * @len: the maximum length of @str to use, in bytes. If @len < 0, * then the string is nul-terminated. * @items_written: location to store the number of characters in the * result, or %NULL. * * Convert a string from UTF-8 to a 32-bit fixed width * representation as UCS-4, assuming valid UTF-8 input. * This function is roughly twice as fast as g_utf8_to_ucs4() * but does no error checking on the input. A trailing 0 character * will be added to the string after the converted text. * * Return value: a pointer to a newly allocated UCS-4 string. * This value must be freed with g_free(). **/ static gunichar * g_utf8_to_ucs4_fast (const gchar * str, glong len, glong * items_written) { gunichar *result; gsize n_chars, i; const gchar *p; g_return_val_if_fail (str != NULL, NULL); p = str; n_chars = 0; if (len < 0) { while (*p) { p = g_utf8_next_char (p); ++n_chars; } } else { while (p < str + len && *p) { p = g_utf8_next_char (p); ++n_chars; } } result = g_malloc (sizeof (gunichar) * (n_chars + 1)); if (!result) return NULL; p = str; for (i = 0; i < n_chars; i++) { gunichar wc = (guchar) * p++; if (wc < 0x80) { result[i] = wc; } else { gunichar mask = 0x40; if (G_UNLIKELY ((wc & mask) == 0)) { /* It's an out-of-sequence 10xxxxxxx byte. * Rather than making an ugly hash of this and the next byte * and overrunning the buffer, it's more useful to treat it * with a replacement character */ result[i] = 0xfffd; continue; } do { wc <<= 6; wc |= (guchar) (*p++) & 0x3f; mask <<= 5; } while ((wc & mask) != 0); wc &= mask - 1; result[i] = wc; } } result[i] = 0; if (items_written) *items_written = i; return result; } /* * g_ucs4_to_utf8: * @str: a UCS-4 encoded string * @len: the maximum length (number of characters) of @str to use. * If @len < 0, then the string is nul-terminated. * @items_read: location to store number of characters read, or %NULL. * @items_written: location to store number of bytes written or %NULL. * The value here stored does not include the trailing 0 * byte. * @error: location to store the error occurring, or %NULL to ignore * errors. Any of the errors in #GConvertError other than * %G_CONVERT_ERROR_NO_CONVERSION may occur. * * Convert a string from a 32-bit fixed width representation as UCS-4. * to UTF-8. The result will be terminated with a 0 byte. * * Return value: a pointer to a newly allocated UTF-8 string. * This value must be freed with g_free(). If an * error occurs, %NULL will be returned and * @error set. In that case, @items_read will be * set to the position of the first invalid input * character. **/ static gchar * g_ucs4_to_utf8 (const gunichar * str, glong len, glong * items_read, glong * items_written) { gint result_length; gchar *result = NULL; gchar *p; gint i; result_length = 0; for (i = 0; len < 0 || i < len; i++) { if (!str[i]) break; if (str[i] >= 0x80000000) goto err_out; result_length += UTF8_LENGTH (str[i]); } result = g_malloc (result_length + 1); if (!result) return NULL; p = result; i = 0; while (p < result + result_length) p += g_unichar_to_utf8 (str[i++], p); *p = '\0'; if (items_written) *items_written = p - result; err_out: if (items_read) *items_read = i; return result; } /* Code from GLIB gunidecomp.c starts here. */ /* decomp.c - Character decomposition. * * Copyright (C) 1999, 2000 Tom Tromey * Copyright 2000 Red Hat, Inc. * * The Gnome Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * The Gnome Library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with the Gnome Library; see the file COPYING.LIB. If not, * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */ #include "gunidecomp.h" #include "gunicomp.h" #define CC_PART1(Page, Char) \ ((combining_class_table_part1[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ ? (combining_class_table_part1[Page] - G_UNICODE_MAX_TABLE_INDEX) \ : (cclass_data[combining_class_table_part1[Page]][Char])) #define CC_PART2(Page, Char) \ ((combining_class_table_part2[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ ? (combining_class_table_part2[Page] - G_UNICODE_MAX_TABLE_INDEX) \ : (cclass_data[combining_class_table_part2[Page]][Char])) #define COMBINING_CLASS(Char) \ (((Char) <= G_UNICODE_LAST_CHAR_PART1) \ ? CC_PART1 ((Char) >> 8, (Char) & 0xff) \ : (((Char) >= 0xe0000 && (Char) <= G_UNICODE_LAST_CHAR) \ ? CC_PART2 (((Char) - 0xe0000) >> 8, (Char) & 0xff) \ : 0)) /* constants for hangul syllable [de]composition */ #define SBase 0xAC00 #define LBase 0x1100 #define VBase 0x1161 #define TBase 0x11A7 #define LCount 19 #define VCount 21 #define TCount 28 #define NCount (VCount * TCount) #define SCount (LCount * NCount) /* * g_unicode_canonical_ordering: * @string: a UCS-4 encoded string. * @len: the maximum length of @string to use. * * Computes the canonical ordering of a string in-place. * This rearranges decomposed characters in the string * according to their combining classes. See the Unicode * manual for more information. **/ static void g_unicode_canonical_ordering (gunichar * string, gsize len) { gsize i; int swap = 1; while (swap) { int last; swap = 0; last = COMBINING_CLASS (string[0]); for (i = 0; i < len - 1; ++i) { int next = COMBINING_CLASS (string[i + 1]); if (next != 0 && last > next) { gsize j; /* Percolate item leftward through string. */ for (j = i + 1; j > 0; --j) { gunichar t; if (COMBINING_CLASS (string[j - 1]) <= next) break; t = string[j]; string[j] = string[j - 1]; string[j - 1] = t; swap = 1; } /* We're re-entering the loop looking at the old character again. */ next = last; } last = next; } } } /* http://www.unicode.org/unicode/reports/tr15/#Hangul * r should be null or have sufficient space. Calling with r == NULL will * only calculate the result_len; however, a buffer with space for three * characters will always be big enough. */ static void decompose_hangul (gunichar s, gunichar * r, gsize * result_len) { gint SIndex = s - SBase; gint TIndex = SIndex % TCount; if (r) { r[0] = LBase + SIndex / NCount; r[1] = VBase + (SIndex % NCount) / TCount; } if (TIndex) { if (r) r[2] = TBase + TIndex; *result_len = 3; } else *result_len = 2; } /* returns a pointer to a null-terminated UTF-8 string */ static const gchar * find_decomposition (gunichar ch, gboolean compat) { int start = 0; int end = G_N_ELEMENTS (decomp_table); if (ch >= decomp_table[start].ch && ch <= decomp_table[end - 1].ch) { while (TRUE) { int half = (start + end) / 2; if (ch == decomp_table[half].ch) { int offset; if (compat) { offset = decomp_table[half].compat_offset; if (offset == G_UNICODE_NOT_PRESENT_OFFSET) offset = decomp_table[half].canon_offset; } else { offset = decomp_table[half].canon_offset; if (offset == G_UNICODE_NOT_PRESENT_OFFSET) return NULL; } return &(decomp_expansion_string[offset]); } else if (half == start) break; else if (ch > decomp_table[half].ch) start = half; else end = half; } } return NULL; } /* L,V => LV and LV,T => LVT */ static gboolean combine_hangul (gunichar a, gunichar b, gunichar * result) { gint LIndex = a - LBase; gint SIndex = a - SBase; gint VIndex = b - VBase; gint TIndex = b - TBase; if (0 <= LIndex && LIndex < LCount && 0 <= VIndex && VIndex < VCount) { *result = SBase + (LIndex * VCount + VIndex) * TCount; return TRUE; } else if (0 <= SIndex && SIndex < SCount && (SIndex % TCount) == 0 && 0 < TIndex && TIndex < TCount) { *result = a + TIndex; return TRUE; } return FALSE; } #define CI(Page, Char) \ ((compose_table[Page] >= G_UNICODE_MAX_TABLE_INDEX) \ ? (compose_table[Page] - G_UNICODE_MAX_TABLE_INDEX) \ : (compose_data[compose_table[Page]][Char])) #define COMPOSE_INDEX(Char) \ (((Char >> 8) > (COMPOSE_TABLE_LAST)) ? 0 : CI((Char) >> 8, (Char) & 0xff)) static gboolean combine (gunichar a, gunichar b, gunichar * result) { gushort index_a, index_b; if (combine_hangul (a, b, result)) return TRUE; index_a = COMPOSE_INDEX (a); if (index_a >= COMPOSE_FIRST_SINGLE_START && index_a < COMPOSE_SECOND_START) { if (b == compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][0]) { *result = compose_first_single[index_a - COMPOSE_FIRST_SINGLE_START][1]; return TRUE; } else return FALSE; } index_b = COMPOSE_INDEX (b); if (index_b >= COMPOSE_SECOND_SINGLE_START) { if (a == compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][0]) { *result = compose_second_single[index_b - COMPOSE_SECOND_SINGLE_START][1]; return TRUE; } else return FALSE; } if (index_a >= COMPOSE_FIRST_START && index_a < COMPOSE_FIRST_SINGLE_START && index_b >= COMPOSE_SECOND_START && index_b < COMPOSE_SECOND_SINGLE_START) { gunichar res = compose_array[index_a - COMPOSE_FIRST_START][index_b - COMPOSE_SECOND_START]; if (res) { *result = res; return TRUE; } } return FALSE; } static gunichar * _g_utf8_normalize_wc (const gchar * str, gssize max_len, GNormalizeMode mode) { gsize n_wc; gunichar *wc_buffer; const char *p; gsize last_start; gboolean do_compat = (mode == G_NORMALIZE_NFKC || mode == G_NORMALIZE_NFKD); gboolean do_compose = (mode == G_NORMALIZE_NFC || mode == G_NORMALIZE_NFKC); n_wc = 0; p = str; while ((max_len < 0 || p < str + max_len) && *p) { const gchar *decomp; gunichar wc = g_utf8_get_char (p); if (wc >= SBase && wc < SBase + SCount) { gsize result_len; decompose_hangul (wc, NULL, &result_len); n_wc += result_len; } else { decomp = find_decomposition (wc, do_compat); if (decomp) n_wc += g_utf8_strlen (decomp, -1); else n_wc++; } p = g_utf8_next_char (p); } wc_buffer = g_malloc (sizeof (gunichar) * (n_wc + 1)); if (!wc_buffer) return NULL; last_start = 0; n_wc = 0; p = str; while ((max_len < 0 || p < str + max_len) && *p) { gunichar wc = g_utf8_get_char (p); const gchar *decomp; int cc; gsize old_n_wc = n_wc; if (wc >= SBase && wc < SBase + SCount) { gsize result_len; decompose_hangul (wc, wc_buffer + n_wc, &result_len); n_wc += result_len; } else { decomp = find_decomposition (wc, do_compat); if (decomp) { const char *pd; for (pd = decomp; *pd != '\0'; pd = g_utf8_next_char (pd)) wc_buffer[n_wc++] = g_utf8_get_char (pd); } else wc_buffer[n_wc++] = wc; } if (n_wc > 0) { cc = COMBINING_CLASS (wc_buffer[old_n_wc]); if (cc == 0) { g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); last_start = old_n_wc; } } p = g_utf8_next_char (p); } if (n_wc > 0) { g_unicode_canonical_ordering (wc_buffer + last_start, n_wc - last_start); // dead assignment: last_start = n_wc; } wc_buffer[n_wc] = 0; /* All decomposed and reordered */ if (do_compose && n_wc > 0) { gsize i, j; int last_cc = 0; last_start = 0; for (i = 0; i < n_wc; i++) { int cc = COMBINING_CLASS (wc_buffer[i]); if (i > 0 && (last_cc == 0 || last_cc != cc) && combine (wc_buffer[last_start], wc_buffer[i], &wc_buffer[last_start])) { for (j = i + 1; j < n_wc; j++) wc_buffer[j - 1] = wc_buffer[j]; n_wc--; i--; if (i == last_start) last_cc = 0; else last_cc = COMBINING_CLASS (wc_buffer[i - 1]); continue; } if (cc == 0) last_start = i; last_cc = cc; } } wc_buffer[n_wc] = 0; return wc_buffer; } /* * g_utf8_normalize: * @str: a UTF-8 encoded string. * @len: length of @str, in bytes, or -1 if @str is nul-terminated. * @mode: the type of normalization to perform. * * Converts a string into canonical form, standardizing * such issues as whether a character with an accent * is represented as a base character and combining * accent or as a single precomposed character. The * string has to be valid UTF-8, otherwise %NULL is * returned. You should generally call g_utf8_normalize() * before comparing two Unicode strings. * * The normalization mode %G_NORMALIZE_DEFAULT only * standardizes differences that do not affect the * text content, such as the above-mentioned accent * representation. %G_NORMALIZE_ALL also standardizes * the "compatibility" characters in Unicode, such * as SUPERSCRIPT THREE to the standard forms * (in this case DIGIT THREE). Formatting information * may be lost but for most text operations such * characters should be considered the same. * * %G_NORMALIZE_DEFAULT_COMPOSE and %G_NORMALIZE_ALL_COMPOSE * are like %G_NORMALIZE_DEFAULT and %G_NORMALIZE_ALL, * but returned a result with composed forms rather * than a maximally decomposed form. This is often * useful if you intend to convert the string to * a legacy encoding or pass it to a system with * less capable Unicode handling. * * Return value: a newly allocated string, that is the * normalized form of @str, or %NULL if @str is not * valid UTF-8. **/ static gchar * g_utf8_normalize (const gchar * str, gssize len, GNormalizeMode mode) { gunichar *result_wc = _g_utf8_normalize_wc (str, len, mode); gchar *result; result = g_ucs4_to_utf8 (result_wc, -1, NULL, NULL); g_free (result_wc); return result; } /* Public Libidn API starts here. */ /** * stringprep_utf8_to_unichar: * @p: a pointer to Unicode character encoded as UTF-8 * * Converts a sequence of bytes encoded as UTF-8 to a Unicode character. * If @p does not point to a valid UTF-8 encoded character, results are * undefined. * * Return value: the resulting character. **/ uint32_t stringprep_utf8_to_unichar (const char *p) { return g_utf8_get_char (p); } /** * stringprep_unichar_to_utf8: * @c: a ISO10646 character code * @outbuf: output buffer, must have at least 6 bytes of space. * If %NULL, the length will be computed and returned * and nothing will be written to @outbuf. * * Converts a single character to UTF-8. * * Return value: number of bytes written. **/ int stringprep_unichar_to_utf8 (uint32_t c, char *outbuf) { return g_unichar_to_utf8 (c, outbuf); } /** * stringprep_utf8_to_ucs4: * @str: a UTF-8 encoded string * @len: the maximum length of @str to use. If @len < 0, then * the string is nul-terminated. * @items_written: location to store the number of characters in the * result, or %NULL. * * Convert a string from UTF-8 to a 32-bit fixed width * representation as UCS-4, assuming valid UTF-8 input. * This function does no error checking on the input. * * Return value: a pointer to a newly allocated UCS-4 string. * This value must be deallocated by the caller. **/ uint32_t * stringprep_utf8_to_ucs4 (const char *str, ssize_t len, size_t * items_written) { return g_utf8_to_ucs4_fast (str, (glong) len, (glong *) items_written); } /** * stringprep_ucs4_to_utf8: * @str: a UCS-4 encoded string * @len: the maximum length of @str to use. If @len < 0, then * the string is terminated with a 0 character. * @items_read: location to store number of characters read read, or %NULL. * @items_written: location to store number of bytes written or %NULL. * The value here stored does not include the trailing 0 * byte. * * Convert a string from a 32-bit fixed width representation as UCS-4. * to UTF-8. The result will be terminated with a 0 byte. * * Return value: a pointer to a newly allocated UTF-8 string. * This value must be deallocated by the caller. * If an error occurs, %NULL will be returned. **/ char * stringprep_ucs4_to_utf8 (const uint32_t * str, ssize_t len, size_t * items_read, size_t * items_written) { return g_ucs4_to_utf8 (str, len, (glong *) items_read, (glong *) items_written); } /** * stringprep_utf8_nfkc_normalize: * @str: a UTF-8 encoded string. * @len: length of @str, in bytes, or -1 if @str is nul-terminated. * * Converts a string into canonical form, standardizing * such issues as whether a character with an accent * is represented as a base character and combining * accent or as a single precomposed character. * * The normalization mode is NFKC (ALL COMPOSE). It standardizes * differences that do not affect the text content, such as the * above-mentioned accent representation. It standardizes the * "compatibility" characters in Unicode, such as SUPERSCRIPT THREE to * the standard forms (in this case DIGIT THREE). Formatting * information may be lost but for most text operations such * characters should be considered the same. It returns a result with * composed forms rather than a maximally decomposed form. * * Return value: a newly allocated string, that is the * NFKC normalized form of @str. **/ char * stringprep_utf8_nfkc_normalize (const char *str, ssize_t len) { return g_utf8_normalize (str, len, G_NORMALIZE_NFKC); } /** * stringprep_ucs4_nfkc_normalize: * @str: a Unicode string. * @len: length of @str array, or -1 if @str is nul-terminated. * * Converts a UCS4 string into canonical form, see * stringprep_utf8_nfkc_normalize() for more information. * * Return value: a newly allocated Unicode string, that is the NFKC * normalized form of @str. **/ uint32_t * stringprep_ucs4_nfkc_normalize (const uint32_t * str, ssize_t len) { char *p; uint32_t *result_wc; p = stringprep_ucs4_to_utf8 (str, len, 0, 0); result_wc = _g_utf8_normalize_wc (p, -1, G_NORMALIZE_NFKC); free (p); return result_wc; } libidn-1.28/lib/gunidecomp.h0000664000000000000000000161774011746453142012676 00000000000000/* This file is automatically generated. DO NOT EDIT! Instead, edit gen-unicode-tables.pl and re-run. Note that gen-unicode-tables.pl doesn't work with Perl 5.10 or later.. */ #ifndef DECOMP_H #define DECOMP_H #define G_UNICODE_LAST_CHAR 0x10ffff #define G_UNICODE_MAX_TABLE_INDEX (0x110000 / 256) #define G_UNICODE_LAST_CHAR_PART1 0x2FAFF #define G_UNICODE_LAST_PAGE_PART1 762 #define G_UNICODE_NOT_PRESENT_OFFSET 65535 static const guchar cclass_data[][256] = { { /* page 3, index 0 */ 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 4, index 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 5, index 2 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, 230, 230, 0, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, 0, 24, 25, 0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 6, index 3 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 7, index 4 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 9, index 5 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 10, index 6 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 11, index 7 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 12, index 8 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 13, index 9 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 14, index 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 15, index 11 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 16, index 12 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 23, index 13 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 24, index 14 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 32, index 15 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 48, index 16 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 251, index 17 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 254, index 18 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { /* page 465, index 19 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, 0, 0, 226, 216, 216, 216, 216, 216, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220, 220, 220, 220, 0, 0, 230, 230, 230, 230, 230, 220, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }; static const gint16 combining_class_table_part1[763] = { 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 /* page 3 */, 1 /* page 4 */, 2 /* page 5 */, 3 /* page 6 */, 4 /* page 7 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 5 /* page 9 */, 6 /* page 10 */, 7 /* page 11 */, 8 /* page 12 */, 9 /* page 13 */, 10 /* page 14 */, 11 /* page 15 */, 12 /* page 16 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 13 /* page 23 */, 14 /* page 24 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 15 /* page 32 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 16 /* page 48 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 17 /* page 251 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 18 /* page 254 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 19 /* page 465 */, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX }; static const gint16 combining_class_table_part2[768] = { 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX, 0 + G_UNICODE_MAX_TABLE_INDEX }; typedef struct { gunichar ch; guint16 canon_offset; guint16 compat_offset; } decomposition; static const decomposition decomp_table[] = { { 0x00a0, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x00a8, G_UNICODE_NOT_PRESENT_OFFSET, 2 }, { 0x00aa, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x00af, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, { 0x00b2, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x00b3, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x00b4, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, { 0x00b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x00b8, G_UNICODE_NOT_PRESENT_OFFSET, 23 }, { 0x00b9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x00ba, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x00bc, G_UNICODE_NOT_PRESENT_OFFSET, 31 }, { 0x00bd, G_UNICODE_NOT_PRESENT_OFFSET, 37 }, { 0x00be, G_UNICODE_NOT_PRESENT_OFFSET, 43 }, { 0x00c0, 49, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c1, 53, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c2, 57, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c3, 61, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c4, 65, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c5, 69, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c7, 73, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c8, 77, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00c9, 81, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ca, 85, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cb, 89, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cc, 93, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cd, 97, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ce, 101, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00cf, 105, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d1, 109, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d2, 113, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d3, 117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d4, 121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d5, 125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d6, 129, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00d9, 133, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00da, 137, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00db, 141, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00dc, 145, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00dd, 149, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e0, 153, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e1, 157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e2, 161, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e3, 165, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e4, 169, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e5, 173, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e7, 177, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e8, 181, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00e9, 185, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ea, 189, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00eb, 193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ec, 197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ed, 201, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ee, 205, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ef, 209, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f1, 213, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f2, 217, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f3, 221, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f4, 225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f5, 229, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f6, 233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00f9, 237, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fa, 241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fb, 245, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fc, 249, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00fd, 253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x00ff, 257, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0100, 261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0101, 265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0102, 269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0103, 273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0104, 277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0105, 281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0106, 285, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0107, 289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0108, 293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0109, 297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010a, 301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010b, 305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010c, 309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010d, 313, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010e, 317, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x010f, 321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0112, 325, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0113, 329, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0114, 333, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0115, 337, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0116, 341, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0117, 345, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0118, 349, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0119, 353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011a, 357, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011b, 361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011c, 365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011d, 369, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011e, 373, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x011f, 377, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0120, 381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0121, 385, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0122, 389, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0123, 393, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0124, 397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0125, 401, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0128, 405, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0129, 409, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012a, 413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012b, 417, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012c, 421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012d, 425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012e, 429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x012f, 433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0130, 437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0132, G_UNICODE_NOT_PRESENT_OFFSET, 441 }, { 0x0133, G_UNICODE_NOT_PRESENT_OFFSET, 444 }, { 0x0134, 447, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0135, 451, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0136, 455, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0137, 459, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0139, 463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013a, 467, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013b, 471, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013c, 475, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013d, 479, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013e, 483, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x013f, G_UNICODE_NOT_PRESENT_OFFSET, 487 }, { 0x0140, G_UNICODE_NOT_PRESENT_OFFSET, 491 }, { 0x0143, 495, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0144, 499, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0145, 503, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0146, 507, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0147, 511, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0148, 515, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0149, G_UNICODE_NOT_PRESENT_OFFSET, 519 }, { 0x014c, 523, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x014d, 527, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x014e, 531, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x014f, 535, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0150, 539, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0151, 543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0154, 547, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0155, 551, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0156, 555, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0157, 559, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0158, 563, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0159, 567, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015a, 571, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015b, 575, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015c, 579, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015d, 583, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015e, 587, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x015f, 591, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0160, 595, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0161, 599, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0162, 603, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0163, 607, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0164, 611, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0165, 615, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0168, 619, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0169, 623, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016a, 627, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016b, 631, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016c, 635, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016d, 639, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016e, 643, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x016f, 647, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0170, 651, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0171, 655, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0172, 659, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0173, 663, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0174, 667, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0175, 671, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0176, 675, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0177, 679, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0178, 683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0179, 687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017a, 691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017b, 695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017c, 699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017d, 703, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017e, 707, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x017f, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x01a0, 713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01a1, 717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01af, 721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01b0, 725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01c4, G_UNICODE_NOT_PRESENT_OFFSET, 729 }, { 0x01c5, G_UNICODE_NOT_PRESENT_OFFSET, 734 }, { 0x01c6, G_UNICODE_NOT_PRESENT_OFFSET, 739 }, { 0x01c7, G_UNICODE_NOT_PRESENT_OFFSET, 744 }, { 0x01c8, G_UNICODE_NOT_PRESENT_OFFSET, 747 }, { 0x01c9, G_UNICODE_NOT_PRESENT_OFFSET, 750 }, { 0x01ca, G_UNICODE_NOT_PRESENT_OFFSET, 753 }, { 0x01cb, G_UNICODE_NOT_PRESENT_OFFSET, 756 }, { 0x01cc, G_UNICODE_NOT_PRESENT_OFFSET, 759 }, { 0x01cd, 762, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ce, 766, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01cf, 770, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d0, 774, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d1, 778, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d2, 782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d3, 786, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d4, 790, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d5, 794, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d6, 800, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d7, 806, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d8, 812, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01d9, 818, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01da, 824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01db, 830, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01dc, 836, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01de, 842, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01df, 848, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e0, 854, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e1, 860, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e2, 866, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e3, 871, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e6, 876, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e7, 880, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e8, 884, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01e9, 888, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ea, 892, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01eb, 896, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ec, 900, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ed, 906, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ee, 912, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ef, 917, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f0, 922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f1, G_UNICODE_NOT_PRESENT_OFFSET, 926 }, { 0x01f2, G_UNICODE_NOT_PRESENT_OFFSET, 929 }, { 0x01f3, G_UNICODE_NOT_PRESENT_OFFSET, 932 }, { 0x01f4, 935, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f5, 939, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f8, 943, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01f9, 947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fa, 951, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fb, 957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fc, 963, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fd, 968, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01fe, 973, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x01ff, 978, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0200, 983, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0201, 987, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0202, 991, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0203, 995, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0204, 999, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0205, 1003, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0206, 1007, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0207, 1011, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0208, 1015, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0209, 1019, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020a, 1023, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020b, 1027, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020c, 1031, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020d, 1035, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020e, 1039, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x020f, 1043, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0210, 1047, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0211, 1051, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0212, 1055, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0213, 1059, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0214, 1063, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0215, 1067, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0216, 1071, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0217, 1075, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0218, 1079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0219, 1083, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021a, 1087, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021b, 1091, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021e, 1095, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x021f, 1099, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0226, 1103, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0227, 1107, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0228, 1111, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0229, 1115, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022a, 1119, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022b, 1125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022c, 1131, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022d, 1137, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022e, 1143, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x022f, 1147, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0230, 1151, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0231, 1157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0232, 1163, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0233, 1167, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x02b0, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x02b1, G_UNICODE_NOT_PRESENT_OFFSET, 1173 }, { 0x02b2, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x02b3, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x02b4, G_UNICODE_NOT_PRESENT_OFFSET, 1180 }, { 0x02b5, G_UNICODE_NOT_PRESENT_OFFSET, 1183 }, { 0x02b6, G_UNICODE_NOT_PRESENT_OFFSET, 1186 }, { 0x02b7, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x02b8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x02d8, G_UNICODE_NOT_PRESENT_OFFSET, 1193 }, { 0x02d9, G_UNICODE_NOT_PRESENT_OFFSET, 1197 }, { 0x02da, G_UNICODE_NOT_PRESENT_OFFSET, 1201 }, { 0x02db, G_UNICODE_NOT_PRESENT_OFFSET, 1205 }, { 0x02dc, G_UNICODE_NOT_PRESENT_OFFSET, 1209 }, { 0x02dd, G_UNICODE_NOT_PRESENT_OFFSET, 1213 }, { 0x02e0, G_UNICODE_NOT_PRESENT_OFFSET, 1217 }, { 0x02e1, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x02e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x02e3, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x02e4, G_UNICODE_NOT_PRESENT_OFFSET, 1224 }, { 0x0340, 1227, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0341, 1230, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0343, 1233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0344, 1236, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0374, 1241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x037a, G_UNICODE_NOT_PRESENT_OFFSET, 1244 }, { 0x037e, 1248, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0384, G_UNICODE_NOT_PRESENT_OFFSET, 16 }, { 0x0385, 1250, 1255 }, { 0x0386, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0387, 1266, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0388, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0389, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038a, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038c, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038e, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x038f, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0390, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03aa, 1306, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ab, 1311, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ac, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ad, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ae, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03af, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03b0, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ca, 1343, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03cb, 1348, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03cc, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03cd, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03ce, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x03d0, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x03d1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x03d2, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x03d3, 1377, 1289 }, { 0x03d4, 1382, 1311 }, { 0x03d5, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x03d6, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x03f0, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x03f1, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x03f2, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x03f4, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x03f5, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x0400, 1408, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0401, 1413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0403, 1418, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0407, 1423, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x040c, 1428, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x040d, 1433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x040e, 1438, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0419, 1443, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0439, 1448, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0450, 1453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0451, 1458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0453, 1463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0457, 1468, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x045c, 1473, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x045d, 1478, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x045e, 1483, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0476, 1488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0477, 1493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04c1, 1498, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04c2, 1503, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d0, 1508, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d1, 1513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d2, 1518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d3, 1523, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d6, 1528, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04d7, 1533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04da, 1538, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04db, 1543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04dc, 1548, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04dd, 1553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04de, 1558, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04df, 1563, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e2, 1568, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e3, 1573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e4, 1578, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e5, 1583, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e6, 1588, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04e7, 1593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ea, 1598, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04eb, 1603, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ec, 1608, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ed, 1613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ee, 1618, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04ef, 1623, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f0, 1628, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f1, 1633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f2, 1638, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f3, 1643, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f4, 1648, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f5, 1653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f8, 1658, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x04f9, 1663, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0587, G_UNICODE_NOT_PRESENT_OFFSET, 1668 }, { 0x0622, 1673, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0623, 1678, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0624, 1683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0625, 1688, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0626, 1693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0675, G_UNICODE_NOT_PRESENT_OFFSET, 1698 }, { 0x0676, G_UNICODE_NOT_PRESENT_OFFSET, 1703 }, { 0x0677, G_UNICODE_NOT_PRESENT_OFFSET, 1708 }, { 0x0678, G_UNICODE_NOT_PRESENT_OFFSET, 1713 }, { 0x06c0, 1718, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x06c2, 1723, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x06d3, 1728, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0929, 1733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0931, 1740, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0934, 1747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0958, 1754, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0959, 1761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095a, 1768, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095b, 1775, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095c, 1782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095d, 1789, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095e, 1796, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x095f, 1803, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09cb, 1810, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09cc, 1817, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09dc, 1824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09dd, 1831, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x09df, 1838, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a33, 1845, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a36, 1852, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a59, 1859, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a5a, 1866, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a5b, 1873, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0a5e, 1880, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b48, 1887, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b4b, 1894, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b4c, 1901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b5c, 1908, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b5d, 1915, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0b94, 1922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0bca, 1929, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0bcb, 1936, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0bcc, 1943, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0c48, 1950, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cc0, 1957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cc7, 1964, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cc8, 1971, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0cca, 1978, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0ccb, 1985, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0d4a, 1995, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0d4b, 2002, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0d4c, 2009, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0dda, 2016, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0ddc, 2023, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0ddd, 2030, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0dde, 2040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0e33, G_UNICODE_NOT_PRESENT_OFFSET, 2047 }, { 0x0eb3, G_UNICODE_NOT_PRESENT_OFFSET, 2054 }, { 0x0edc, G_UNICODE_NOT_PRESENT_OFFSET, 2061 }, { 0x0edd, G_UNICODE_NOT_PRESENT_OFFSET, 2068 }, { 0x0f0c, G_UNICODE_NOT_PRESENT_OFFSET, 2075 }, { 0x0f43, 2079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f4d, 2086, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f52, 2093, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f57, 2100, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f5c, 2107, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f69, 2114, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f73, 2121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f75, 2128, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f76, 2135, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f77, G_UNICODE_NOT_PRESENT_OFFSET, 2142 }, { 0x0f78, 2152, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f79, G_UNICODE_NOT_PRESENT_OFFSET, 2159 }, { 0x0f81, 2169, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f93, 2176, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0f9d, 2183, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fa2, 2190, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fa7, 2197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fac, 2204, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x0fb9, 2211, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1026, 2218, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e00, 2225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e01, 2229, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e02, 2233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e03, 2237, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e04, 2241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e05, 2245, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e06, 2249, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e07, 2253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e08, 2257, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e09, 2263, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0a, 2269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0b, 2273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0c, 2277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0d, 2281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0e, 2285, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e0f, 2289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e10, 2293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e11, 2297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e12, 2301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e13, 2305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e14, 2309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e15, 2315, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e16, 2321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e17, 2327, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e18, 2333, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e19, 2337, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1a, 2341, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1b, 2345, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1c, 2349, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1d, 2355, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1e, 2361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e1f, 2365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e20, 2369, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e21, 2373, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e22, 2377, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e23, 2381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e24, 2385, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e25, 2389, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e26, 2393, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e27, 2397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e28, 2401, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e29, 2405, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2a, 2409, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2b, 2413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2c, 2417, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2d, 2421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2e, 2425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e2f, 2431, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e30, 2437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e31, 2441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e32, 2445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e33, 2449, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e34, 2453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e35, 2457, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e36, 2461, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e37, 2465, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e38, 2469, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e39, 2475, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3a, 2481, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3b, 2485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3c, 2489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3d, 2493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3e, 2497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e3f, 2501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e40, 2505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e41, 2509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e42, 2513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e43, 2517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e44, 2521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e45, 2525, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e46, 2529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e47, 2533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e48, 2537, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e49, 2541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4a, 2545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4b, 2549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4c, 2553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4d, 2559, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4e, 2565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e4f, 2571, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e50, 2577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e51, 2583, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e52, 2589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e53, 2595, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e54, 2601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e55, 2605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e56, 2609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e57, 2613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e58, 2617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e59, 2621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5a, 2625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5b, 2629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5c, 2633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5d, 2639, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5e, 2645, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e5f, 2649, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e60, 2653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e61, 2657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e62, 2661, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e63, 2665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e64, 2669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e65, 2675, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e66, 2681, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e67, 2687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e68, 2693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e69, 2699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6a, 2705, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6b, 2709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6c, 2713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6d, 2717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6e, 2721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e6f, 2725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e70, 2729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e71, 2733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e72, 2737, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e73, 2741, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e74, 2745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e75, 2749, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e76, 2753, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e77, 2757, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e78, 2761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e79, 2767, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7a, 2773, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7b, 2779, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7c, 2785, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7d, 2789, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7e, 2793, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e7f, 2797, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e80, 2801, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e81, 2805, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e82, 2809, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e83, 2813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e84, 2817, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e85, 2821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e86, 2825, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e87, 2829, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e88, 2833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e89, 2837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8a, 2841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8b, 2845, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8c, 2849, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8d, 2853, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8e, 2857, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e8f, 2861, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e90, 2865, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e91, 2869, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e92, 2873, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e93, 2877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e94, 2881, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e95, 2885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e96, 2889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e97, 2893, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e98, 2897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e99, 2901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1e9a, G_UNICODE_NOT_PRESENT_OFFSET, 2905 }, { 0x1e9b, 2909, 2657 }, { 0x1ea0, 2914, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea1, 2918, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea2, 2922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea3, 2926, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea4, 2930, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea5, 2936, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea6, 2942, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea7, 2948, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea8, 2954, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ea9, 2960, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eaa, 2966, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eab, 2972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eac, 2978, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ead, 2984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eae, 2990, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eaf, 2996, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb0, 3002, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb1, 3008, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb2, 3014, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb3, 3020, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb4, 3026, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb5, 3032, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb6, 3038, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb7, 3044, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb8, 3050, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eb9, 3054, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eba, 3058, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebb, 3062, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebc, 3066, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebd, 3070, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebe, 3074, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ebf, 3080, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec0, 3086, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec1, 3092, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec2, 3098, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec3, 3104, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec4, 3110, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec5, 3116, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec6, 3122, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec7, 3128, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec8, 3134, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ec9, 3138, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eca, 3142, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecb, 3146, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecc, 3150, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecd, 3154, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ece, 3158, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ecf, 3162, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed0, 3166, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed1, 3172, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed2, 3178, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed3, 3184, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed4, 3190, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed5, 3196, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed6, 3202, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed7, 3208, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed8, 3214, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ed9, 3220, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eda, 3226, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edb, 3232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edc, 3238, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edd, 3244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ede, 3250, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1edf, 3256, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee0, 3262, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee1, 3268, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee2, 3274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee3, 3280, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee4, 3286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee5, 3290, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee6, 3294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee7, 3298, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee8, 3302, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ee9, 3308, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eea, 3314, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eeb, 3320, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eec, 3326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eed, 3332, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eee, 3338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1eef, 3344, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef0, 3350, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef1, 3356, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef2, 3362, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef3, 3366, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef4, 3370, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef5, 3374, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef6, 3378, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef7, 3382, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef8, 3386, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ef9, 3390, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f00, 3394, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f01, 3399, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f02, 3404, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f03, 3411, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f04, 3418, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f05, 3425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f06, 3432, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f07, 3439, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f08, 3446, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f09, 3451, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0a, 3456, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0b, 3463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0c, 3470, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0d, 3477, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0e, 3484, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f0f, 3491, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f10, 3498, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f11, 3503, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f12, 3508, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f13, 3515, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f14, 3522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f15, 3529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f18, 3536, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f19, 3541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1a, 3546, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1b, 3553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1c, 3560, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f1d, 3567, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f20, 3574, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f21, 3579, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f22, 3584, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f23, 3591, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f24, 3598, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f25, 3605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f26, 3612, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f27, 3619, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f28, 3626, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f29, 3631, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2a, 3636, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2b, 3643, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2c, 3650, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2d, 3657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2e, 3664, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f2f, 3671, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f30, 3678, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f31, 3683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f32, 3688, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f33, 3695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f34, 3702, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f35, 3709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f36, 3716, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f37, 3723, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f38, 3730, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f39, 3735, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3a, 3740, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3b, 3747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3c, 3754, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3d, 3761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3e, 3768, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f3f, 3775, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f40, 3782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f41, 3787, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f42, 3792, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f43, 3799, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f44, 3806, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f45, 3813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f48, 3820, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f49, 3825, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4a, 3830, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4b, 3837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4c, 3844, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f4d, 3851, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f50, 3858, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f51, 3863, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f52, 3868, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f53, 3875, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f54, 3882, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f55, 3889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f56, 3896, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f57, 3903, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f59, 3910, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f5b, 3915, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f5d, 3922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f5f, 3929, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f60, 3936, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f61, 3941, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f62, 3946, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f63, 3953, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f64, 3960, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f65, 3967, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f66, 3974, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f67, 3981, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f68, 3988, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f69, 3993, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6a, 3998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6b, 4005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6c, 4012, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6d, 4019, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6e, 4026, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f6f, 4033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f70, 4040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f71, 1316, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f72, 4045, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f73, 1321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f74, 4050, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f75, 1326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f76, 4055, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f77, 1331, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f78, 4060, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f79, 1353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7a, 4065, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7b, 1358, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7c, 4070, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f7d, 1363, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f80, 4075, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f81, 4082, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f82, 4089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f83, 4098, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f84, 4107, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f85, 4116, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f86, 4125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f87, 4134, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f88, 4143, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f89, 4150, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8a, 4157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8b, 4166, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8c, 4175, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8d, 4184, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8e, 4193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f8f, 4202, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f90, 4211, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f91, 4218, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f92, 4225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f93, 4234, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f94, 4243, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f95, 4252, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f96, 4261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f97, 4270, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f98, 4279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f99, 4286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9a, 4293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9b, 4302, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9c, 4311, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9d, 4320, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9e, 4329, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1f9f, 4338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa0, 4347, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa1, 4354, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa2, 4361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa3, 4370, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa4, 4379, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa5, 4388, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa6, 4397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa7, 4406, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa8, 4415, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fa9, 4422, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1faa, 4429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fab, 4438, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fac, 4447, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fad, 4456, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fae, 4465, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1faf, 4474, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb0, 4483, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb1, 4488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb2, 4493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb3, 4500, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb4, 4505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb6, 4512, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb7, 4517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb8, 4524, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fb9, 4529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fba, 4534, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbb, 1261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbc, 4539, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbd, G_UNICODE_NOT_PRESENT_OFFSET, 4544 }, { 0x1fbe, 4548, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fbf, G_UNICODE_NOT_PRESENT_OFFSET, 4544 }, { 0x1fc0, G_UNICODE_NOT_PRESENT_OFFSET, 4551 }, { 0x1fc1, 4555, 4560 }, { 0x1fc2, 4566, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc3, 4573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc4, 4578, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc6, 4585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc7, 4590, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc8, 4597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fc9, 1269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fca, 4602, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fcb, 1274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fcc, 4607, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fcd, 4612, 4618 }, { 0x1fce, 4624, 4630 }, { 0x1fcf, 4636, 4642 }, { 0x1fd0, 4648, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd1, 4653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd2, 4658, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd3, 1299, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd6, 4665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd7, 4670, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd8, 4677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fd9, 4682, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fda, 4687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fdb, 1279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fdd, 4692, 4698 }, { 0x1fde, 4704, 4710 }, { 0x1fdf, 4716, 4722 }, { 0x1fe0, 4728, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe1, 4733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe2, 4738, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe3, 1336, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe4, 4745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe5, 4750, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe6, 4755, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe7, 4760, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe8, 4767, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fe9, 4772, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fea, 4777, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1feb, 1289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fec, 4782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1fed, 4787, 4792 }, { 0x1fee, 1250, 1255 }, { 0x1fef, 4798, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff2, 4800, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff3, 4807, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff4, 4812, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff6, 4819, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff7, 4824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff8, 4831, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ff9, 1284, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffa, 4836, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffb, 1294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffc, 4841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1ffd, 4846, 16 }, { 0x1ffe, G_UNICODE_NOT_PRESENT_OFFSET, 4849 }, { 0x2000, 4853, 0 }, { 0x2001, 4857, 0 }, { 0x2002, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2003, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2004, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2005, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2006, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2007, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2008, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2009, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x200a, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2011, G_UNICODE_NOT_PRESENT_OFFSET, 4861 }, { 0x2017, G_UNICODE_NOT_PRESENT_OFFSET, 4865 }, { 0x2024, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, { 0x2025, G_UNICODE_NOT_PRESENT_OFFSET, 4871 }, { 0x2026, G_UNICODE_NOT_PRESENT_OFFSET, 4874 }, { 0x202f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2033, G_UNICODE_NOT_PRESENT_OFFSET, 4878 }, { 0x2034, G_UNICODE_NOT_PRESENT_OFFSET, 4885 }, { 0x2036, G_UNICODE_NOT_PRESENT_OFFSET, 4895 }, { 0x2037, G_UNICODE_NOT_PRESENT_OFFSET, 4902 }, { 0x203c, G_UNICODE_NOT_PRESENT_OFFSET, 4912 }, { 0x203e, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0x2047, G_UNICODE_NOT_PRESENT_OFFSET, 4919 }, { 0x2048, G_UNICODE_NOT_PRESENT_OFFSET, 4922 }, { 0x2049, G_UNICODE_NOT_PRESENT_OFFSET, 4925 }, { 0x2057, G_UNICODE_NOT_PRESENT_OFFSET, 4928 }, { 0x205f, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x2070, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x2071, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x2074, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x2075, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x2076, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x2077, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x2078, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x2079, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x207a, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0x207b, G_UNICODE_NOT_PRESENT_OFFSET, 4959 }, { 0x207c, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0x207d, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0x207e, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0x207f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x2080, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x2081, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x2082, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x2083, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x2084, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x2085, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x2086, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x2087, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x2088, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x2089, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x208a, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0x208b, G_UNICODE_NOT_PRESENT_OFFSET, 4959 }, { 0x208c, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0x208d, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0x208e, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0x20a8, G_UNICODE_NOT_PRESENT_OFFSET, 4971 }, { 0x2100, G_UNICODE_NOT_PRESENT_OFFSET, 4974 }, { 0x2101, G_UNICODE_NOT_PRESENT_OFFSET, 4978 }, { 0x2102, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x2103, G_UNICODE_NOT_PRESENT_OFFSET, 4984 }, { 0x2105, G_UNICODE_NOT_PRESENT_OFFSET, 4988 }, { 0x2106, G_UNICODE_NOT_PRESENT_OFFSET, 4992 }, { 0x2107, G_UNICODE_NOT_PRESENT_OFFSET, 4996 }, { 0x2109, G_UNICODE_NOT_PRESENT_OFFSET, 4999 }, { 0x210a, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x210b, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x210c, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x210d, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x210e, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x210f, G_UNICODE_NOT_PRESENT_OFFSET, 5007 }, { 0x2110, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x2111, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x2112, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x2113, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x2115, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x2116, G_UNICODE_NOT_PRESENT_OFFSET, 5016 }, { 0x2119, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x211a, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x211b, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x211c, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x211d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x2120, G_UNICODE_NOT_PRESENT_OFFSET, 5025 }, { 0x2121, G_UNICODE_NOT_PRESENT_OFFSET, 5028 }, { 0x2122, G_UNICODE_NOT_PRESENT_OFFSET, 5032 }, { 0x2124, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x2126, 5037, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2128, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x212a, 5040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x212b, 69, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x212c, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x212d, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x212f, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x2130, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x2131, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x2133, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x2134, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x2135, G_UNICODE_NOT_PRESENT_OFFSET, 5052 }, { 0x2136, G_UNICODE_NOT_PRESENT_OFFSET, 5055 }, { 0x2137, G_UNICODE_NOT_PRESENT_OFFSET, 5058 }, { 0x2138, G_UNICODE_NOT_PRESENT_OFFSET, 5061 }, { 0x2139, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x213d, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x213e, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x213f, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x2140, G_UNICODE_NOT_PRESENT_OFFSET, 5073 }, { 0x2145, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x2146, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x2147, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x2148, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x2149, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x2153, G_UNICODE_NOT_PRESENT_OFFSET, 5081 }, { 0x2154, G_UNICODE_NOT_PRESENT_OFFSET, 5087 }, { 0x2155, G_UNICODE_NOT_PRESENT_OFFSET, 5093 }, { 0x2156, G_UNICODE_NOT_PRESENT_OFFSET, 5099 }, { 0x2157, G_UNICODE_NOT_PRESENT_OFFSET, 5105 }, { 0x2158, G_UNICODE_NOT_PRESENT_OFFSET, 5111 }, { 0x2159, G_UNICODE_NOT_PRESENT_OFFSET, 5117 }, { 0x215a, G_UNICODE_NOT_PRESENT_OFFSET, 5123 }, { 0x215b, G_UNICODE_NOT_PRESENT_OFFSET, 5129 }, { 0x215c, G_UNICODE_NOT_PRESENT_OFFSET, 5135 }, { 0x215d, G_UNICODE_NOT_PRESENT_OFFSET, 5141 }, { 0x215e, G_UNICODE_NOT_PRESENT_OFFSET, 5147 }, { 0x215f, G_UNICODE_NOT_PRESENT_OFFSET, 5153 }, { 0x2160, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x2161, G_UNICODE_NOT_PRESENT_OFFSET, 5158 }, { 0x2162, G_UNICODE_NOT_PRESENT_OFFSET, 5161 }, { 0x2163, G_UNICODE_NOT_PRESENT_OFFSET, 5165 }, { 0x2164, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x2165, G_UNICODE_NOT_PRESENT_OFFSET, 5170 }, { 0x2166, G_UNICODE_NOT_PRESENT_OFFSET, 5173 }, { 0x2167, G_UNICODE_NOT_PRESENT_OFFSET, 5177 }, { 0x2168, G_UNICODE_NOT_PRESENT_OFFSET, 5182 }, { 0x2169, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x216a, G_UNICODE_NOT_PRESENT_OFFSET, 5187 }, { 0x216b, G_UNICODE_NOT_PRESENT_OFFSET, 5190 }, { 0x216c, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x216d, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x216e, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x216f, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x2170, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x2171, G_UNICODE_NOT_PRESENT_OFFSET, 5194 }, { 0x2172, G_UNICODE_NOT_PRESENT_OFFSET, 5197 }, { 0x2173, G_UNICODE_NOT_PRESENT_OFFSET, 5201 }, { 0x2174, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x2175, G_UNICODE_NOT_PRESENT_OFFSET, 5206 }, { 0x2176, G_UNICODE_NOT_PRESENT_OFFSET, 5209 }, { 0x2177, G_UNICODE_NOT_PRESENT_OFFSET, 5213 }, { 0x2178, G_UNICODE_NOT_PRESENT_OFFSET, 5218 }, { 0x2179, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x217a, G_UNICODE_NOT_PRESENT_OFFSET, 5221 }, { 0x217b, G_UNICODE_NOT_PRESENT_OFFSET, 5224 }, { 0x217c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x217d, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x217e, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x217f, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x219a, 5232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x219b, 5238, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21ae, 5244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21cd, 5250, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21ce, 5256, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x21cf, 5262, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2204, 5268, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2209, 5274, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x220c, 5280, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2224, 5286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2226, 5292, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x222c, G_UNICODE_NOT_PRESENT_OFFSET, 5298 }, { 0x222d, G_UNICODE_NOT_PRESENT_OFFSET, 5305 }, { 0x222f, G_UNICODE_NOT_PRESENT_OFFSET, 5315 }, { 0x2230, G_UNICODE_NOT_PRESENT_OFFSET, 5322 }, { 0x2241, 5332, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2244, 5338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2247, 5344, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2249, 5350, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2260, 5356, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2262, 5360, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x226d, 5366, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x226e, 5372, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x226f, 5376, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2270, 5380, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2271, 5386, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2274, 5392, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2275, 5398, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2278, 5404, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2279, 5410, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2280, 5416, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2281, 5422, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2284, 5428, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2285, 5434, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2288, 5440, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2289, 5446, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ac, 5452, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ad, 5458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ae, 5464, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22af, 5470, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e0, 5476, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e1, 5482, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e2, 5488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22e3, 5494, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ea, 5500, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22eb, 5506, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ec, 5512, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x22ed, 5518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2329, 5524, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x232a, 5528, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2460, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x2461, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x2462, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x2463, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x2464, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x2465, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x2466, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x2467, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x2468, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x2469, G_UNICODE_NOT_PRESENT_OFFSET, 5532 }, { 0x246a, G_UNICODE_NOT_PRESENT_OFFSET, 5535 }, { 0x246b, G_UNICODE_NOT_PRESENT_OFFSET, 5538 }, { 0x246c, G_UNICODE_NOT_PRESENT_OFFSET, 5541 }, { 0x246d, G_UNICODE_NOT_PRESENT_OFFSET, 5544 }, { 0x246e, G_UNICODE_NOT_PRESENT_OFFSET, 5547 }, { 0x246f, G_UNICODE_NOT_PRESENT_OFFSET, 5550 }, { 0x2470, G_UNICODE_NOT_PRESENT_OFFSET, 5553 }, { 0x2471, G_UNICODE_NOT_PRESENT_OFFSET, 5556 }, { 0x2472, G_UNICODE_NOT_PRESENT_OFFSET, 5559 }, { 0x2473, G_UNICODE_NOT_PRESENT_OFFSET, 5562 }, { 0x2474, G_UNICODE_NOT_PRESENT_OFFSET, 5565 }, { 0x2475, G_UNICODE_NOT_PRESENT_OFFSET, 5569 }, { 0x2476, G_UNICODE_NOT_PRESENT_OFFSET, 5573 }, { 0x2477, G_UNICODE_NOT_PRESENT_OFFSET, 5577 }, { 0x2478, G_UNICODE_NOT_PRESENT_OFFSET, 5581 }, { 0x2479, G_UNICODE_NOT_PRESENT_OFFSET, 5585 }, { 0x247a, G_UNICODE_NOT_PRESENT_OFFSET, 5589 }, { 0x247b, G_UNICODE_NOT_PRESENT_OFFSET, 5593 }, { 0x247c, G_UNICODE_NOT_PRESENT_OFFSET, 5597 }, { 0x247d, G_UNICODE_NOT_PRESENT_OFFSET, 5601 }, { 0x247e, G_UNICODE_NOT_PRESENT_OFFSET, 5606 }, { 0x247f, G_UNICODE_NOT_PRESENT_OFFSET, 5611 }, { 0x2480, G_UNICODE_NOT_PRESENT_OFFSET, 5616 }, { 0x2481, G_UNICODE_NOT_PRESENT_OFFSET, 5621 }, { 0x2482, G_UNICODE_NOT_PRESENT_OFFSET, 5626 }, { 0x2483, G_UNICODE_NOT_PRESENT_OFFSET, 5631 }, { 0x2484, G_UNICODE_NOT_PRESENT_OFFSET, 5636 }, { 0x2485, G_UNICODE_NOT_PRESENT_OFFSET, 5641 }, { 0x2486, G_UNICODE_NOT_PRESENT_OFFSET, 5646 }, { 0x2487, G_UNICODE_NOT_PRESENT_OFFSET, 5651 }, { 0x2488, G_UNICODE_NOT_PRESENT_OFFSET, 5656 }, { 0x2489, G_UNICODE_NOT_PRESENT_OFFSET, 5659 }, { 0x248a, G_UNICODE_NOT_PRESENT_OFFSET, 5662 }, { 0x248b, G_UNICODE_NOT_PRESENT_OFFSET, 5665 }, { 0x248c, G_UNICODE_NOT_PRESENT_OFFSET, 5668 }, { 0x248d, G_UNICODE_NOT_PRESENT_OFFSET, 5671 }, { 0x248e, G_UNICODE_NOT_PRESENT_OFFSET, 5674 }, { 0x248f, G_UNICODE_NOT_PRESENT_OFFSET, 5677 }, { 0x2490, G_UNICODE_NOT_PRESENT_OFFSET, 5680 }, { 0x2491, G_UNICODE_NOT_PRESENT_OFFSET, 5683 }, { 0x2492, G_UNICODE_NOT_PRESENT_OFFSET, 5687 }, { 0x2493, G_UNICODE_NOT_PRESENT_OFFSET, 5691 }, { 0x2494, G_UNICODE_NOT_PRESENT_OFFSET, 5695 }, { 0x2495, G_UNICODE_NOT_PRESENT_OFFSET, 5699 }, { 0x2496, G_UNICODE_NOT_PRESENT_OFFSET, 5703 }, { 0x2497, G_UNICODE_NOT_PRESENT_OFFSET, 5707 }, { 0x2498, G_UNICODE_NOT_PRESENT_OFFSET, 5711 }, { 0x2499, G_UNICODE_NOT_PRESENT_OFFSET, 5715 }, { 0x249a, G_UNICODE_NOT_PRESENT_OFFSET, 5719 }, { 0x249b, G_UNICODE_NOT_PRESENT_OFFSET, 5723 }, { 0x249c, G_UNICODE_NOT_PRESENT_OFFSET, 5727 }, { 0x249d, G_UNICODE_NOT_PRESENT_OFFSET, 5731 }, { 0x249e, G_UNICODE_NOT_PRESENT_OFFSET, 5735 }, { 0x249f, G_UNICODE_NOT_PRESENT_OFFSET, 5739 }, { 0x24a0, G_UNICODE_NOT_PRESENT_OFFSET, 5743 }, { 0x24a1, G_UNICODE_NOT_PRESENT_OFFSET, 5747 }, { 0x24a2, G_UNICODE_NOT_PRESENT_OFFSET, 5751 }, { 0x24a3, G_UNICODE_NOT_PRESENT_OFFSET, 5755 }, { 0x24a4, G_UNICODE_NOT_PRESENT_OFFSET, 5759 }, { 0x24a5, G_UNICODE_NOT_PRESENT_OFFSET, 5763 }, { 0x24a6, G_UNICODE_NOT_PRESENT_OFFSET, 5767 }, { 0x24a7, G_UNICODE_NOT_PRESENT_OFFSET, 5771 }, { 0x24a8, G_UNICODE_NOT_PRESENT_OFFSET, 5775 }, { 0x24a9, G_UNICODE_NOT_PRESENT_OFFSET, 5779 }, { 0x24aa, G_UNICODE_NOT_PRESENT_OFFSET, 5783 }, { 0x24ab, G_UNICODE_NOT_PRESENT_OFFSET, 5787 }, { 0x24ac, G_UNICODE_NOT_PRESENT_OFFSET, 5791 }, { 0x24ad, G_UNICODE_NOT_PRESENT_OFFSET, 5795 }, { 0x24ae, G_UNICODE_NOT_PRESENT_OFFSET, 5799 }, { 0x24af, G_UNICODE_NOT_PRESENT_OFFSET, 5803 }, { 0x24b0, G_UNICODE_NOT_PRESENT_OFFSET, 5807 }, { 0x24b1, G_UNICODE_NOT_PRESENT_OFFSET, 5811 }, { 0x24b2, G_UNICODE_NOT_PRESENT_OFFSET, 5815 }, { 0x24b3, G_UNICODE_NOT_PRESENT_OFFSET, 5819 }, { 0x24b4, G_UNICODE_NOT_PRESENT_OFFSET, 5823 }, { 0x24b5, G_UNICODE_NOT_PRESENT_OFFSET, 5827 }, { 0x24b6, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x24b7, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x24b8, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x24b9, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x24ba, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x24bb, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x24bc, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x24bd, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x24be, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x24bf, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x24c0, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x24c1, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x24c2, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x24c3, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x24c4, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x24c5, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x24c6, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x24c7, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x24c8, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x24c9, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x24ca, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x24cb, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x24cc, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x24cd, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x24ce, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x24cf, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x24d0, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x24d1, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x24d2, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x24d3, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x24d4, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x24d5, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x24d6, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x24d7, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x24d8, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x24d9, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x24da, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x24db, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x24dc, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x24dd, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x24de, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x24df, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x24e0, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x24e1, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x24e2, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x24e3, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x24e4, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x24e5, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x24e6, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x24e7, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x24e8, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x24e9, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x24ea, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x2a0c, G_UNICODE_NOT_PRESENT_OFFSET, 5865 }, { 0x2a74, G_UNICODE_NOT_PRESENT_OFFSET, 5878 }, { 0x2a75, G_UNICODE_NOT_PRESENT_OFFSET, 5882 }, { 0x2a76, G_UNICODE_NOT_PRESENT_OFFSET, 5885 }, { 0x2adc, 5889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2e9f, G_UNICODE_NOT_PRESENT_OFFSET, 5895 }, { 0x2ef3, G_UNICODE_NOT_PRESENT_OFFSET, 5899 }, { 0x2f00, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, { 0x2f01, G_UNICODE_NOT_PRESENT_OFFSET, 5907 }, { 0x2f02, G_UNICODE_NOT_PRESENT_OFFSET, 5911 }, { 0x2f03, G_UNICODE_NOT_PRESENT_OFFSET, 5915 }, { 0x2f04, G_UNICODE_NOT_PRESENT_OFFSET, 5919 }, { 0x2f05, G_UNICODE_NOT_PRESENT_OFFSET, 5923 }, { 0x2f06, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, { 0x2f07, G_UNICODE_NOT_PRESENT_OFFSET, 5931 }, { 0x2f08, G_UNICODE_NOT_PRESENT_OFFSET, 5935 }, { 0x2f09, G_UNICODE_NOT_PRESENT_OFFSET, 5939 }, { 0x2f0a, G_UNICODE_NOT_PRESENT_OFFSET, 5943 }, { 0x2f0b, G_UNICODE_NOT_PRESENT_OFFSET, 5947 }, { 0x2f0c, G_UNICODE_NOT_PRESENT_OFFSET, 5951 }, { 0x2f0d, G_UNICODE_NOT_PRESENT_OFFSET, 5955 }, { 0x2f0e, G_UNICODE_NOT_PRESENT_OFFSET, 5959 }, { 0x2f0f, G_UNICODE_NOT_PRESENT_OFFSET, 5963 }, { 0x2f10, G_UNICODE_NOT_PRESENT_OFFSET, 5967 }, { 0x2f11, G_UNICODE_NOT_PRESENT_OFFSET, 5971 }, { 0x2f12, G_UNICODE_NOT_PRESENT_OFFSET, 5975 }, { 0x2f13, G_UNICODE_NOT_PRESENT_OFFSET, 5979 }, { 0x2f14, G_UNICODE_NOT_PRESENT_OFFSET, 5983 }, { 0x2f15, G_UNICODE_NOT_PRESENT_OFFSET, 5987 }, { 0x2f16, G_UNICODE_NOT_PRESENT_OFFSET, 5991 }, { 0x2f17, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, { 0x2f18, G_UNICODE_NOT_PRESENT_OFFSET, 5999 }, { 0x2f19, G_UNICODE_NOT_PRESENT_OFFSET, 6003 }, { 0x2f1a, G_UNICODE_NOT_PRESENT_OFFSET, 6007 }, { 0x2f1b, G_UNICODE_NOT_PRESENT_OFFSET, 6011 }, { 0x2f1c, G_UNICODE_NOT_PRESENT_OFFSET, 6015 }, { 0x2f1d, G_UNICODE_NOT_PRESENT_OFFSET, 6019 }, { 0x2f1e, G_UNICODE_NOT_PRESENT_OFFSET, 6023 }, { 0x2f1f, G_UNICODE_NOT_PRESENT_OFFSET, 6027 }, { 0x2f20, G_UNICODE_NOT_PRESENT_OFFSET, 6031 }, { 0x2f21, G_UNICODE_NOT_PRESENT_OFFSET, 6035 }, { 0x2f22, G_UNICODE_NOT_PRESENT_OFFSET, 6039 }, { 0x2f23, G_UNICODE_NOT_PRESENT_OFFSET, 6043 }, { 0x2f24, G_UNICODE_NOT_PRESENT_OFFSET, 6047 }, { 0x2f25, G_UNICODE_NOT_PRESENT_OFFSET, 6051 }, { 0x2f26, G_UNICODE_NOT_PRESENT_OFFSET, 6055 }, { 0x2f27, G_UNICODE_NOT_PRESENT_OFFSET, 6059 }, { 0x2f28, G_UNICODE_NOT_PRESENT_OFFSET, 6063 }, { 0x2f29, G_UNICODE_NOT_PRESENT_OFFSET, 6067 }, { 0x2f2a, G_UNICODE_NOT_PRESENT_OFFSET, 6071 }, { 0x2f2b, G_UNICODE_NOT_PRESENT_OFFSET, 6075 }, { 0x2f2c, G_UNICODE_NOT_PRESENT_OFFSET, 6079 }, { 0x2f2d, G_UNICODE_NOT_PRESENT_OFFSET, 6083 }, { 0x2f2e, G_UNICODE_NOT_PRESENT_OFFSET, 6087 }, { 0x2f2f, G_UNICODE_NOT_PRESENT_OFFSET, 6091 }, { 0x2f30, G_UNICODE_NOT_PRESENT_OFFSET, 6095 }, { 0x2f31, G_UNICODE_NOT_PRESENT_OFFSET, 6099 }, { 0x2f32, G_UNICODE_NOT_PRESENT_OFFSET, 6103 }, { 0x2f33, G_UNICODE_NOT_PRESENT_OFFSET, 6107 }, { 0x2f34, G_UNICODE_NOT_PRESENT_OFFSET, 6111 }, { 0x2f35, G_UNICODE_NOT_PRESENT_OFFSET, 6115 }, { 0x2f36, G_UNICODE_NOT_PRESENT_OFFSET, 6119 }, { 0x2f37, G_UNICODE_NOT_PRESENT_OFFSET, 6123 }, { 0x2f38, G_UNICODE_NOT_PRESENT_OFFSET, 6127 }, { 0x2f39, G_UNICODE_NOT_PRESENT_OFFSET, 6131 }, { 0x2f3a, G_UNICODE_NOT_PRESENT_OFFSET, 6135 }, { 0x2f3b, G_UNICODE_NOT_PRESENT_OFFSET, 6139 }, { 0x2f3c, G_UNICODE_NOT_PRESENT_OFFSET, 6143 }, { 0x2f3d, G_UNICODE_NOT_PRESENT_OFFSET, 6147 }, { 0x2f3e, G_UNICODE_NOT_PRESENT_OFFSET, 6151 }, { 0x2f3f, G_UNICODE_NOT_PRESENT_OFFSET, 6155 }, { 0x2f40, G_UNICODE_NOT_PRESENT_OFFSET, 6159 }, { 0x2f41, G_UNICODE_NOT_PRESENT_OFFSET, 6163 }, { 0x2f42, G_UNICODE_NOT_PRESENT_OFFSET, 6167 }, { 0x2f43, G_UNICODE_NOT_PRESENT_OFFSET, 6171 }, { 0x2f44, G_UNICODE_NOT_PRESENT_OFFSET, 6175 }, { 0x2f45, G_UNICODE_NOT_PRESENT_OFFSET, 6179 }, { 0x2f46, G_UNICODE_NOT_PRESENT_OFFSET, 6183 }, { 0x2f47, G_UNICODE_NOT_PRESENT_OFFSET, 6187 }, { 0x2f48, G_UNICODE_NOT_PRESENT_OFFSET, 6191 }, { 0x2f49, G_UNICODE_NOT_PRESENT_OFFSET, 6195 }, { 0x2f4a, G_UNICODE_NOT_PRESENT_OFFSET, 6199 }, { 0x2f4b, G_UNICODE_NOT_PRESENT_OFFSET, 6203 }, { 0x2f4c, G_UNICODE_NOT_PRESENT_OFFSET, 6207 }, { 0x2f4d, G_UNICODE_NOT_PRESENT_OFFSET, 6211 }, { 0x2f4e, G_UNICODE_NOT_PRESENT_OFFSET, 6215 }, { 0x2f4f, G_UNICODE_NOT_PRESENT_OFFSET, 6219 }, { 0x2f50, G_UNICODE_NOT_PRESENT_OFFSET, 6223 }, { 0x2f51, G_UNICODE_NOT_PRESENT_OFFSET, 6227 }, { 0x2f52, G_UNICODE_NOT_PRESENT_OFFSET, 6231 }, { 0x2f53, G_UNICODE_NOT_PRESENT_OFFSET, 6235 }, { 0x2f54, G_UNICODE_NOT_PRESENT_OFFSET, 6239 }, { 0x2f55, G_UNICODE_NOT_PRESENT_OFFSET, 6243 }, { 0x2f56, G_UNICODE_NOT_PRESENT_OFFSET, 6247 }, { 0x2f57, G_UNICODE_NOT_PRESENT_OFFSET, 6251 }, { 0x2f58, G_UNICODE_NOT_PRESENT_OFFSET, 6255 }, { 0x2f59, G_UNICODE_NOT_PRESENT_OFFSET, 6259 }, { 0x2f5a, G_UNICODE_NOT_PRESENT_OFFSET, 6263 }, { 0x2f5b, G_UNICODE_NOT_PRESENT_OFFSET, 6267 }, { 0x2f5c, G_UNICODE_NOT_PRESENT_OFFSET, 6271 }, { 0x2f5d, G_UNICODE_NOT_PRESENT_OFFSET, 6275 }, { 0x2f5e, G_UNICODE_NOT_PRESENT_OFFSET, 6279 }, { 0x2f5f, G_UNICODE_NOT_PRESENT_OFFSET, 6283 }, { 0x2f60, G_UNICODE_NOT_PRESENT_OFFSET, 6287 }, { 0x2f61, G_UNICODE_NOT_PRESENT_OFFSET, 6291 }, { 0x2f62, G_UNICODE_NOT_PRESENT_OFFSET, 6295 }, { 0x2f63, G_UNICODE_NOT_PRESENT_OFFSET, 6299 }, { 0x2f64, G_UNICODE_NOT_PRESENT_OFFSET, 6303 }, { 0x2f65, G_UNICODE_NOT_PRESENT_OFFSET, 6307 }, { 0x2f66, G_UNICODE_NOT_PRESENT_OFFSET, 6311 }, { 0x2f67, G_UNICODE_NOT_PRESENT_OFFSET, 6315 }, { 0x2f68, G_UNICODE_NOT_PRESENT_OFFSET, 6319 }, { 0x2f69, G_UNICODE_NOT_PRESENT_OFFSET, 6323 }, { 0x2f6a, G_UNICODE_NOT_PRESENT_OFFSET, 6327 }, { 0x2f6b, G_UNICODE_NOT_PRESENT_OFFSET, 6331 }, { 0x2f6c, G_UNICODE_NOT_PRESENT_OFFSET, 6335 }, { 0x2f6d, G_UNICODE_NOT_PRESENT_OFFSET, 6339 }, { 0x2f6e, G_UNICODE_NOT_PRESENT_OFFSET, 6343 }, { 0x2f6f, G_UNICODE_NOT_PRESENT_OFFSET, 6347 }, { 0x2f70, G_UNICODE_NOT_PRESENT_OFFSET, 6351 }, { 0x2f71, G_UNICODE_NOT_PRESENT_OFFSET, 6355 }, { 0x2f72, G_UNICODE_NOT_PRESENT_OFFSET, 6359 }, { 0x2f73, G_UNICODE_NOT_PRESENT_OFFSET, 6363 }, { 0x2f74, G_UNICODE_NOT_PRESENT_OFFSET, 6367 }, { 0x2f75, G_UNICODE_NOT_PRESENT_OFFSET, 6371 }, { 0x2f76, G_UNICODE_NOT_PRESENT_OFFSET, 6375 }, { 0x2f77, G_UNICODE_NOT_PRESENT_OFFSET, 6379 }, { 0x2f78, G_UNICODE_NOT_PRESENT_OFFSET, 6383 }, { 0x2f79, G_UNICODE_NOT_PRESENT_OFFSET, 6387 }, { 0x2f7a, G_UNICODE_NOT_PRESENT_OFFSET, 6391 }, { 0x2f7b, G_UNICODE_NOT_PRESENT_OFFSET, 6395 }, { 0x2f7c, G_UNICODE_NOT_PRESENT_OFFSET, 6399 }, { 0x2f7d, G_UNICODE_NOT_PRESENT_OFFSET, 6403 }, { 0x2f7e, G_UNICODE_NOT_PRESENT_OFFSET, 6407 }, { 0x2f7f, G_UNICODE_NOT_PRESENT_OFFSET, 6411 }, { 0x2f80, G_UNICODE_NOT_PRESENT_OFFSET, 6415 }, { 0x2f81, G_UNICODE_NOT_PRESENT_OFFSET, 6419 }, { 0x2f82, G_UNICODE_NOT_PRESENT_OFFSET, 6423 }, { 0x2f83, G_UNICODE_NOT_PRESENT_OFFSET, 6427 }, { 0x2f84, G_UNICODE_NOT_PRESENT_OFFSET, 6431 }, { 0x2f85, G_UNICODE_NOT_PRESENT_OFFSET, 6435 }, { 0x2f86, G_UNICODE_NOT_PRESENT_OFFSET, 6439 }, { 0x2f87, G_UNICODE_NOT_PRESENT_OFFSET, 6443 }, { 0x2f88, G_UNICODE_NOT_PRESENT_OFFSET, 6447 }, { 0x2f89, G_UNICODE_NOT_PRESENT_OFFSET, 6451 }, { 0x2f8a, G_UNICODE_NOT_PRESENT_OFFSET, 6455 }, { 0x2f8b, G_UNICODE_NOT_PRESENT_OFFSET, 6459 }, { 0x2f8c, G_UNICODE_NOT_PRESENT_OFFSET, 6463 }, { 0x2f8d, G_UNICODE_NOT_PRESENT_OFFSET, 6467 }, { 0x2f8e, G_UNICODE_NOT_PRESENT_OFFSET, 6471 }, { 0x2f8f, G_UNICODE_NOT_PRESENT_OFFSET, 6475 }, { 0x2f90, G_UNICODE_NOT_PRESENT_OFFSET, 6479 }, { 0x2f91, G_UNICODE_NOT_PRESENT_OFFSET, 6483 }, { 0x2f92, G_UNICODE_NOT_PRESENT_OFFSET, 6487 }, { 0x2f93, G_UNICODE_NOT_PRESENT_OFFSET, 6491 }, { 0x2f94, G_UNICODE_NOT_PRESENT_OFFSET, 6495 }, { 0x2f95, G_UNICODE_NOT_PRESENT_OFFSET, 6499 }, { 0x2f96, G_UNICODE_NOT_PRESENT_OFFSET, 6503 }, { 0x2f97, G_UNICODE_NOT_PRESENT_OFFSET, 6507 }, { 0x2f98, G_UNICODE_NOT_PRESENT_OFFSET, 6511 }, { 0x2f99, G_UNICODE_NOT_PRESENT_OFFSET, 6515 }, { 0x2f9a, G_UNICODE_NOT_PRESENT_OFFSET, 6519 }, { 0x2f9b, G_UNICODE_NOT_PRESENT_OFFSET, 6523 }, { 0x2f9c, G_UNICODE_NOT_PRESENT_OFFSET, 6527 }, { 0x2f9d, G_UNICODE_NOT_PRESENT_OFFSET, 6531 }, { 0x2f9e, G_UNICODE_NOT_PRESENT_OFFSET, 6535 }, { 0x2f9f, G_UNICODE_NOT_PRESENT_OFFSET, 6539 }, { 0x2fa0, G_UNICODE_NOT_PRESENT_OFFSET, 6543 }, { 0x2fa1, G_UNICODE_NOT_PRESENT_OFFSET, 6547 }, { 0x2fa2, G_UNICODE_NOT_PRESENT_OFFSET, 6551 }, { 0x2fa3, G_UNICODE_NOT_PRESENT_OFFSET, 6555 }, { 0x2fa4, G_UNICODE_NOT_PRESENT_OFFSET, 6559 }, { 0x2fa5, G_UNICODE_NOT_PRESENT_OFFSET, 6563 }, { 0x2fa6, G_UNICODE_NOT_PRESENT_OFFSET, 6567 }, { 0x2fa7, G_UNICODE_NOT_PRESENT_OFFSET, 6571 }, { 0x2fa8, G_UNICODE_NOT_PRESENT_OFFSET, 6575 }, { 0x2fa9, G_UNICODE_NOT_PRESENT_OFFSET, 6579 }, { 0x2faa, G_UNICODE_NOT_PRESENT_OFFSET, 6583 }, { 0x2fab, G_UNICODE_NOT_PRESENT_OFFSET, 6587 }, { 0x2fac, G_UNICODE_NOT_PRESENT_OFFSET, 6591 }, { 0x2fad, G_UNICODE_NOT_PRESENT_OFFSET, 6595 }, { 0x2fae, G_UNICODE_NOT_PRESENT_OFFSET, 6599 }, { 0x2faf, G_UNICODE_NOT_PRESENT_OFFSET, 6603 }, { 0x2fb0, G_UNICODE_NOT_PRESENT_OFFSET, 6607 }, { 0x2fb1, G_UNICODE_NOT_PRESENT_OFFSET, 6611 }, { 0x2fb2, G_UNICODE_NOT_PRESENT_OFFSET, 6615 }, { 0x2fb3, G_UNICODE_NOT_PRESENT_OFFSET, 6619 }, { 0x2fb4, G_UNICODE_NOT_PRESENT_OFFSET, 6623 }, { 0x2fb5, G_UNICODE_NOT_PRESENT_OFFSET, 6627 }, { 0x2fb6, G_UNICODE_NOT_PRESENT_OFFSET, 6631 }, { 0x2fb7, G_UNICODE_NOT_PRESENT_OFFSET, 6635 }, { 0x2fb8, G_UNICODE_NOT_PRESENT_OFFSET, 6639 }, { 0x2fb9, G_UNICODE_NOT_PRESENT_OFFSET, 6643 }, { 0x2fba, G_UNICODE_NOT_PRESENT_OFFSET, 6647 }, { 0x2fbb, G_UNICODE_NOT_PRESENT_OFFSET, 6651 }, { 0x2fbc, G_UNICODE_NOT_PRESENT_OFFSET, 6655 }, { 0x2fbd, G_UNICODE_NOT_PRESENT_OFFSET, 6659 }, { 0x2fbe, G_UNICODE_NOT_PRESENT_OFFSET, 6663 }, { 0x2fbf, G_UNICODE_NOT_PRESENT_OFFSET, 6667 }, { 0x2fc0, G_UNICODE_NOT_PRESENT_OFFSET, 6671 }, { 0x2fc1, G_UNICODE_NOT_PRESENT_OFFSET, 6675 }, { 0x2fc2, G_UNICODE_NOT_PRESENT_OFFSET, 6679 }, { 0x2fc3, G_UNICODE_NOT_PRESENT_OFFSET, 6683 }, { 0x2fc4, G_UNICODE_NOT_PRESENT_OFFSET, 6687 }, { 0x2fc5, G_UNICODE_NOT_PRESENT_OFFSET, 6691 }, { 0x2fc6, G_UNICODE_NOT_PRESENT_OFFSET, 6695 }, { 0x2fc7, G_UNICODE_NOT_PRESENT_OFFSET, 6699 }, { 0x2fc8, G_UNICODE_NOT_PRESENT_OFFSET, 6703 }, { 0x2fc9, G_UNICODE_NOT_PRESENT_OFFSET, 6707 }, { 0x2fca, G_UNICODE_NOT_PRESENT_OFFSET, 6711 }, { 0x2fcb, G_UNICODE_NOT_PRESENT_OFFSET, 6715 }, { 0x2fcc, G_UNICODE_NOT_PRESENT_OFFSET, 6719 }, { 0x2fcd, G_UNICODE_NOT_PRESENT_OFFSET, 6723 }, { 0x2fce, G_UNICODE_NOT_PRESENT_OFFSET, 6727 }, { 0x2fcf, G_UNICODE_NOT_PRESENT_OFFSET, 6731 }, { 0x2fd0, G_UNICODE_NOT_PRESENT_OFFSET, 6735 }, { 0x2fd1, G_UNICODE_NOT_PRESENT_OFFSET, 6739 }, { 0x2fd2, G_UNICODE_NOT_PRESENT_OFFSET, 6743 }, { 0x2fd3, G_UNICODE_NOT_PRESENT_OFFSET, 6747 }, { 0x2fd4, G_UNICODE_NOT_PRESENT_OFFSET, 6751 }, { 0x2fd5, G_UNICODE_NOT_PRESENT_OFFSET, 6755 }, { 0x3000, G_UNICODE_NOT_PRESENT_OFFSET, 0 }, { 0x3036, G_UNICODE_NOT_PRESENT_OFFSET, 6759 }, { 0x3038, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, { 0x3039, G_UNICODE_NOT_PRESENT_OFFSET, 6763 }, { 0x303a, G_UNICODE_NOT_PRESENT_OFFSET, 6767 }, { 0x304c, 6771, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x304e, 6778, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3050, 6785, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3052, 6792, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3054, 6799, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3056, 6806, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3058, 6813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x305a, 6820, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x305c, 6827, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x305e, 6834, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3060, 6841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3062, 6848, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3065, 6855, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3067, 6862, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3069, 6869, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3070, 6876, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3071, 6883, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3073, 6890, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3074, 6897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3076, 6904, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3077, 6911, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3079, 6918, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x307a, 6925, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x307c, 6932, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x307d, 6939, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x3094, 6946, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x309b, G_UNICODE_NOT_PRESENT_OFFSET, 6953 }, { 0x309c, G_UNICODE_NOT_PRESENT_OFFSET, 6958 }, { 0x309e, 6963, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x309f, G_UNICODE_NOT_PRESENT_OFFSET, 6970 }, { 0x30ac, 6977, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30ae, 6984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b0, 6991, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b2, 6998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b4, 7005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b6, 7012, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30b8, 7019, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30ba, 7026, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30bc, 7033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30be, 7040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c0, 7047, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c2, 7054, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c5, 7061, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c7, 7068, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30c9, 7075, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d0, 7082, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d1, 7089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d3, 7096, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d4, 7103, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d6, 7110, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d7, 7117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30d9, 7124, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30da, 7131, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30dc, 7138, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30dd, 7145, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f4, 7152, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f7, 7159, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f8, 7166, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30f9, 7173, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30fa, 7180, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30fe, 7187, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x30ff, G_UNICODE_NOT_PRESENT_OFFSET, 7194 }, { 0x3131, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, { 0x3132, G_UNICODE_NOT_PRESENT_OFFSET, 7205 }, { 0x3133, G_UNICODE_NOT_PRESENT_OFFSET, 7209 }, { 0x3134, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, { 0x3135, G_UNICODE_NOT_PRESENT_OFFSET, 7217 }, { 0x3136, G_UNICODE_NOT_PRESENT_OFFSET, 7221 }, { 0x3137, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, { 0x3138, G_UNICODE_NOT_PRESENT_OFFSET, 7229 }, { 0x3139, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, { 0x313a, G_UNICODE_NOT_PRESENT_OFFSET, 7237 }, { 0x313b, G_UNICODE_NOT_PRESENT_OFFSET, 7241 }, { 0x313c, G_UNICODE_NOT_PRESENT_OFFSET, 7245 }, { 0x313d, G_UNICODE_NOT_PRESENT_OFFSET, 7249 }, { 0x313e, G_UNICODE_NOT_PRESENT_OFFSET, 7253 }, { 0x313f, G_UNICODE_NOT_PRESENT_OFFSET, 7257 }, { 0x3140, G_UNICODE_NOT_PRESENT_OFFSET, 7261 }, { 0x3141, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, { 0x3142, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, { 0x3143, G_UNICODE_NOT_PRESENT_OFFSET, 7273 }, { 0x3144, G_UNICODE_NOT_PRESENT_OFFSET, 7277 }, { 0x3145, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, { 0x3146, G_UNICODE_NOT_PRESENT_OFFSET, 7285 }, { 0x3147, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, { 0x3148, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, { 0x3149, G_UNICODE_NOT_PRESENT_OFFSET, 7297 }, { 0x314a, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, { 0x314b, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, { 0x314c, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, { 0x314d, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, { 0x314e, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, { 0x314f, G_UNICODE_NOT_PRESENT_OFFSET, 7321 }, { 0x3150, G_UNICODE_NOT_PRESENT_OFFSET, 7325 }, { 0x3151, G_UNICODE_NOT_PRESENT_OFFSET, 7329 }, { 0x3152, G_UNICODE_NOT_PRESENT_OFFSET, 7333 }, { 0x3153, G_UNICODE_NOT_PRESENT_OFFSET, 7337 }, { 0x3154, G_UNICODE_NOT_PRESENT_OFFSET, 7341 }, { 0x3155, G_UNICODE_NOT_PRESENT_OFFSET, 7345 }, { 0x3156, G_UNICODE_NOT_PRESENT_OFFSET, 7349 }, { 0x3157, G_UNICODE_NOT_PRESENT_OFFSET, 7353 }, { 0x3158, G_UNICODE_NOT_PRESENT_OFFSET, 7357 }, { 0x3159, G_UNICODE_NOT_PRESENT_OFFSET, 7361 }, { 0x315a, G_UNICODE_NOT_PRESENT_OFFSET, 7365 }, { 0x315b, G_UNICODE_NOT_PRESENT_OFFSET, 7369 }, { 0x315c, G_UNICODE_NOT_PRESENT_OFFSET, 7373 }, { 0x315d, G_UNICODE_NOT_PRESENT_OFFSET, 7377 }, { 0x315e, G_UNICODE_NOT_PRESENT_OFFSET, 7381 }, { 0x315f, G_UNICODE_NOT_PRESENT_OFFSET, 7385 }, { 0x3160, G_UNICODE_NOT_PRESENT_OFFSET, 7389 }, { 0x3161, G_UNICODE_NOT_PRESENT_OFFSET, 7393 }, { 0x3162, G_UNICODE_NOT_PRESENT_OFFSET, 7397 }, { 0x3163, G_UNICODE_NOT_PRESENT_OFFSET, 7401 }, { 0x3164, G_UNICODE_NOT_PRESENT_OFFSET, 7405 }, { 0x3165, G_UNICODE_NOT_PRESENT_OFFSET, 7409 }, { 0x3166, G_UNICODE_NOT_PRESENT_OFFSET, 7413 }, { 0x3167, G_UNICODE_NOT_PRESENT_OFFSET, 7417 }, { 0x3168, G_UNICODE_NOT_PRESENT_OFFSET, 7421 }, { 0x3169, G_UNICODE_NOT_PRESENT_OFFSET, 7425 }, { 0x316a, G_UNICODE_NOT_PRESENT_OFFSET, 7429 }, { 0x316b, G_UNICODE_NOT_PRESENT_OFFSET, 7433 }, { 0x316c, G_UNICODE_NOT_PRESENT_OFFSET, 7437 }, { 0x316d, G_UNICODE_NOT_PRESENT_OFFSET, 7441 }, { 0x316e, G_UNICODE_NOT_PRESENT_OFFSET, 7445 }, { 0x316f, G_UNICODE_NOT_PRESENT_OFFSET, 7449 }, { 0x3170, G_UNICODE_NOT_PRESENT_OFFSET, 7453 }, { 0x3171, G_UNICODE_NOT_PRESENT_OFFSET, 7457 }, { 0x3172, G_UNICODE_NOT_PRESENT_OFFSET, 7461 }, { 0x3173, G_UNICODE_NOT_PRESENT_OFFSET, 7465 }, { 0x3174, G_UNICODE_NOT_PRESENT_OFFSET, 7469 }, { 0x3175, G_UNICODE_NOT_PRESENT_OFFSET, 7473 }, { 0x3176, G_UNICODE_NOT_PRESENT_OFFSET, 7477 }, { 0x3177, G_UNICODE_NOT_PRESENT_OFFSET, 7481 }, { 0x3178, G_UNICODE_NOT_PRESENT_OFFSET, 7485 }, { 0x3179, G_UNICODE_NOT_PRESENT_OFFSET, 7489 }, { 0x317a, G_UNICODE_NOT_PRESENT_OFFSET, 7493 }, { 0x317b, G_UNICODE_NOT_PRESENT_OFFSET, 7497 }, { 0x317c, G_UNICODE_NOT_PRESENT_OFFSET, 7501 }, { 0x317d, G_UNICODE_NOT_PRESENT_OFFSET, 7505 }, { 0x317e, G_UNICODE_NOT_PRESENT_OFFSET, 7509 }, { 0x317f, G_UNICODE_NOT_PRESENT_OFFSET, 7513 }, { 0x3180, G_UNICODE_NOT_PRESENT_OFFSET, 7517 }, { 0x3181, G_UNICODE_NOT_PRESENT_OFFSET, 7521 }, { 0x3182, G_UNICODE_NOT_PRESENT_OFFSET, 7525 }, { 0x3183, G_UNICODE_NOT_PRESENT_OFFSET, 7529 }, { 0x3184, G_UNICODE_NOT_PRESENT_OFFSET, 7533 }, { 0x3185, G_UNICODE_NOT_PRESENT_OFFSET, 7537 }, { 0x3186, G_UNICODE_NOT_PRESENT_OFFSET, 7541 }, { 0x3187, G_UNICODE_NOT_PRESENT_OFFSET, 7545 }, { 0x3188, G_UNICODE_NOT_PRESENT_OFFSET, 7549 }, { 0x3189, G_UNICODE_NOT_PRESENT_OFFSET, 7553 }, { 0x318a, G_UNICODE_NOT_PRESENT_OFFSET, 7557 }, { 0x318b, G_UNICODE_NOT_PRESENT_OFFSET, 7561 }, { 0x318c, G_UNICODE_NOT_PRESENT_OFFSET, 7565 }, { 0x318d, G_UNICODE_NOT_PRESENT_OFFSET, 7569 }, { 0x318e, G_UNICODE_NOT_PRESENT_OFFSET, 7573 }, { 0x3192, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, { 0x3193, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, { 0x3194, G_UNICODE_NOT_PRESENT_OFFSET, 7577 }, { 0x3195, G_UNICODE_NOT_PRESENT_OFFSET, 7581 }, { 0x3196, G_UNICODE_NOT_PRESENT_OFFSET, 7585 }, { 0x3197, G_UNICODE_NOT_PRESENT_OFFSET, 7589 }, { 0x3198, G_UNICODE_NOT_PRESENT_OFFSET, 7593 }, { 0x3199, G_UNICODE_NOT_PRESENT_OFFSET, 7597 }, { 0x319a, G_UNICODE_NOT_PRESENT_OFFSET, 5919 }, { 0x319b, G_UNICODE_NOT_PRESENT_OFFSET, 7601 }, { 0x319c, G_UNICODE_NOT_PRESENT_OFFSET, 7605 }, { 0x319d, G_UNICODE_NOT_PRESENT_OFFSET, 7609 }, { 0x319e, G_UNICODE_NOT_PRESENT_OFFSET, 7613 }, { 0x319f, G_UNICODE_NOT_PRESENT_OFFSET, 5935 }, { 0x3200, G_UNICODE_NOT_PRESENT_OFFSET, 7617 }, { 0x3201, G_UNICODE_NOT_PRESENT_OFFSET, 7623 }, { 0x3202, G_UNICODE_NOT_PRESENT_OFFSET, 7629 }, { 0x3203, G_UNICODE_NOT_PRESENT_OFFSET, 7635 }, { 0x3204, G_UNICODE_NOT_PRESENT_OFFSET, 7641 }, { 0x3205, G_UNICODE_NOT_PRESENT_OFFSET, 7647 }, { 0x3206, G_UNICODE_NOT_PRESENT_OFFSET, 7653 }, { 0x3207, G_UNICODE_NOT_PRESENT_OFFSET, 7659 }, { 0x3208, G_UNICODE_NOT_PRESENT_OFFSET, 7665 }, { 0x3209, G_UNICODE_NOT_PRESENT_OFFSET, 7671 }, { 0x320a, G_UNICODE_NOT_PRESENT_OFFSET, 7677 }, { 0x320b, G_UNICODE_NOT_PRESENT_OFFSET, 7683 }, { 0x320c, G_UNICODE_NOT_PRESENT_OFFSET, 7689 }, { 0x320d, G_UNICODE_NOT_PRESENT_OFFSET, 7695 }, { 0x320e, G_UNICODE_NOT_PRESENT_OFFSET, 7701 }, { 0x320f, G_UNICODE_NOT_PRESENT_OFFSET, 7710 }, { 0x3210, G_UNICODE_NOT_PRESENT_OFFSET, 7719 }, { 0x3211, G_UNICODE_NOT_PRESENT_OFFSET, 7728 }, { 0x3212, G_UNICODE_NOT_PRESENT_OFFSET, 7737 }, { 0x3213, G_UNICODE_NOT_PRESENT_OFFSET, 7746 }, { 0x3214, G_UNICODE_NOT_PRESENT_OFFSET, 7755 }, { 0x3215, G_UNICODE_NOT_PRESENT_OFFSET, 7764 }, { 0x3216, G_UNICODE_NOT_PRESENT_OFFSET, 7773 }, { 0x3217, G_UNICODE_NOT_PRESENT_OFFSET, 7782 }, { 0x3218, G_UNICODE_NOT_PRESENT_OFFSET, 7791 }, { 0x3219, G_UNICODE_NOT_PRESENT_OFFSET, 7800 }, { 0x321a, G_UNICODE_NOT_PRESENT_OFFSET, 7809 }, { 0x321b, G_UNICODE_NOT_PRESENT_OFFSET, 7818 }, { 0x321c, G_UNICODE_NOT_PRESENT_OFFSET, 7827 }, { 0x3220, G_UNICODE_NOT_PRESENT_OFFSET, 7836 }, { 0x3221, G_UNICODE_NOT_PRESENT_OFFSET, 7842 }, { 0x3222, G_UNICODE_NOT_PRESENT_OFFSET, 7848 }, { 0x3223, G_UNICODE_NOT_PRESENT_OFFSET, 7854 }, { 0x3224, G_UNICODE_NOT_PRESENT_OFFSET, 7860 }, { 0x3225, G_UNICODE_NOT_PRESENT_OFFSET, 7866 }, { 0x3226, G_UNICODE_NOT_PRESENT_OFFSET, 7872 }, { 0x3227, G_UNICODE_NOT_PRESENT_OFFSET, 7878 }, { 0x3228, G_UNICODE_NOT_PRESENT_OFFSET, 7884 }, { 0x3229, G_UNICODE_NOT_PRESENT_OFFSET, 7890 }, { 0x322a, G_UNICODE_NOT_PRESENT_OFFSET, 7896 }, { 0x322b, G_UNICODE_NOT_PRESENT_OFFSET, 7902 }, { 0x322c, G_UNICODE_NOT_PRESENT_OFFSET, 7908 }, { 0x322d, G_UNICODE_NOT_PRESENT_OFFSET, 7914 }, { 0x322e, G_UNICODE_NOT_PRESENT_OFFSET, 7920 }, { 0x322f, G_UNICODE_NOT_PRESENT_OFFSET, 7926 }, { 0x3230, G_UNICODE_NOT_PRESENT_OFFSET, 7932 }, { 0x3231, G_UNICODE_NOT_PRESENT_OFFSET, 7938 }, { 0x3232, G_UNICODE_NOT_PRESENT_OFFSET, 7944 }, { 0x3233, G_UNICODE_NOT_PRESENT_OFFSET, 7950 }, { 0x3234, G_UNICODE_NOT_PRESENT_OFFSET, 7956 }, { 0x3235, G_UNICODE_NOT_PRESENT_OFFSET, 7962 }, { 0x3236, G_UNICODE_NOT_PRESENT_OFFSET, 7968 }, { 0x3237, G_UNICODE_NOT_PRESENT_OFFSET, 7974 }, { 0x3238, G_UNICODE_NOT_PRESENT_OFFSET, 7980 }, { 0x3239, G_UNICODE_NOT_PRESENT_OFFSET, 7986 }, { 0x323a, G_UNICODE_NOT_PRESENT_OFFSET, 7992 }, { 0x323b, G_UNICODE_NOT_PRESENT_OFFSET, 7998 }, { 0x323c, G_UNICODE_NOT_PRESENT_OFFSET, 8004 }, { 0x323d, G_UNICODE_NOT_PRESENT_OFFSET, 8010 }, { 0x323e, G_UNICODE_NOT_PRESENT_OFFSET, 8016 }, { 0x323f, G_UNICODE_NOT_PRESENT_OFFSET, 8022 }, { 0x3240, G_UNICODE_NOT_PRESENT_OFFSET, 8028 }, { 0x3241, G_UNICODE_NOT_PRESENT_OFFSET, 8034 }, { 0x3242, G_UNICODE_NOT_PRESENT_OFFSET, 8040 }, { 0x3243, G_UNICODE_NOT_PRESENT_OFFSET, 8046 }, { 0x3251, G_UNICODE_NOT_PRESENT_OFFSET, 8052 }, { 0x3252, G_UNICODE_NOT_PRESENT_OFFSET, 8055 }, { 0x3253, G_UNICODE_NOT_PRESENT_OFFSET, 8058 }, { 0x3254, G_UNICODE_NOT_PRESENT_OFFSET, 8061 }, { 0x3255, G_UNICODE_NOT_PRESENT_OFFSET, 8064 }, { 0x3256, G_UNICODE_NOT_PRESENT_OFFSET, 8067 }, { 0x3257, G_UNICODE_NOT_PRESENT_OFFSET, 8070 }, { 0x3258, G_UNICODE_NOT_PRESENT_OFFSET, 8073 }, { 0x3259, G_UNICODE_NOT_PRESENT_OFFSET, 8076 }, { 0x325a, G_UNICODE_NOT_PRESENT_OFFSET, 8079 }, { 0x325b, G_UNICODE_NOT_PRESENT_OFFSET, 8082 }, { 0x325c, G_UNICODE_NOT_PRESENT_OFFSET, 8085 }, { 0x325d, G_UNICODE_NOT_PRESENT_OFFSET, 8088 }, { 0x325e, G_UNICODE_NOT_PRESENT_OFFSET, 8091 }, { 0x325f, G_UNICODE_NOT_PRESENT_OFFSET, 8094 }, { 0x3260, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, { 0x3261, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, { 0x3262, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, { 0x3263, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, { 0x3264, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, { 0x3265, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, { 0x3266, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, { 0x3267, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, { 0x3268, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, { 0x3269, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, { 0x326a, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, { 0x326b, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, { 0x326c, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, { 0x326d, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, { 0x326e, G_UNICODE_NOT_PRESENT_OFFSET, 8097 }, { 0x326f, G_UNICODE_NOT_PRESENT_OFFSET, 8104 }, { 0x3270, G_UNICODE_NOT_PRESENT_OFFSET, 8111 }, { 0x3271, G_UNICODE_NOT_PRESENT_OFFSET, 8118 }, { 0x3272, G_UNICODE_NOT_PRESENT_OFFSET, 8125 }, { 0x3273, G_UNICODE_NOT_PRESENT_OFFSET, 8132 }, { 0x3274, G_UNICODE_NOT_PRESENT_OFFSET, 8139 }, { 0x3275, G_UNICODE_NOT_PRESENT_OFFSET, 8146 }, { 0x3276, G_UNICODE_NOT_PRESENT_OFFSET, 8153 }, { 0x3277, G_UNICODE_NOT_PRESENT_OFFSET, 8160 }, { 0x3278, G_UNICODE_NOT_PRESENT_OFFSET, 8167 }, { 0x3279, G_UNICODE_NOT_PRESENT_OFFSET, 8174 }, { 0x327a, G_UNICODE_NOT_PRESENT_OFFSET, 8181 }, { 0x327b, G_UNICODE_NOT_PRESENT_OFFSET, 8188 }, { 0x3280, G_UNICODE_NOT_PRESENT_OFFSET, 5903 }, { 0x3281, G_UNICODE_NOT_PRESENT_OFFSET, 5927 }, { 0x3282, G_UNICODE_NOT_PRESENT_OFFSET, 7577 }, { 0x3283, G_UNICODE_NOT_PRESENT_OFFSET, 7581 }, { 0x3284, G_UNICODE_NOT_PRESENT_OFFSET, 8195 }, { 0x3285, G_UNICODE_NOT_PRESENT_OFFSET, 8199 }, { 0x3286, G_UNICODE_NOT_PRESENT_OFFSET, 8203 }, { 0x3287, G_UNICODE_NOT_PRESENT_OFFSET, 5947 }, { 0x3288, G_UNICODE_NOT_PRESENT_OFFSET, 8207 }, { 0x3289, G_UNICODE_NOT_PRESENT_OFFSET, 5995 }, { 0x328a, G_UNICODE_NOT_PRESENT_OFFSET, 6195 }, { 0x328b, G_UNICODE_NOT_PRESENT_OFFSET, 6243 }, { 0x328c, G_UNICODE_NOT_PRESENT_OFFSET, 6239 }, { 0x328d, G_UNICODE_NOT_PRESENT_OFFSET, 6199 }, { 0x328e, G_UNICODE_NOT_PRESENT_OFFSET, 6567 }, { 0x328f, G_UNICODE_NOT_PRESENT_OFFSET, 6027 }, { 0x3290, G_UNICODE_NOT_PRESENT_OFFSET, 6187 }, { 0x3291, G_UNICODE_NOT_PRESENT_OFFSET, 8211 }, { 0x3292, G_UNICODE_NOT_PRESENT_OFFSET, 8215 }, { 0x3293, G_UNICODE_NOT_PRESENT_OFFSET, 8219 }, { 0x3294, G_UNICODE_NOT_PRESENT_OFFSET, 8223 }, { 0x3295, G_UNICODE_NOT_PRESENT_OFFSET, 8227 }, { 0x3296, G_UNICODE_NOT_PRESENT_OFFSET, 8231 }, { 0x3297, G_UNICODE_NOT_PRESENT_OFFSET, 8235 }, { 0x3298, G_UNICODE_NOT_PRESENT_OFFSET, 8239 }, { 0x3299, G_UNICODE_NOT_PRESENT_OFFSET, 8243 }, { 0x329a, G_UNICODE_NOT_PRESENT_OFFSET, 8247 }, { 0x329b, G_UNICODE_NOT_PRESENT_OFFSET, 6051 }, { 0x329c, G_UNICODE_NOT_PRESENT_OFFSET, 8251 }, { 0x329d, G_UNICODE_NOT_PRESENT_OFFSET, 8255 }, { 0x329e, G_UNICODE_NOT_PRESENT_OFFSET, 8259 }, { 0x329f, G_UNICODE_NOT_PRESENT_OFFSET, 8263 }, { 0x32a0, G_UNICODE_NOT_PRESENT_OFFSET, 8267 }, { 0x32a1, G_UNICODE_NOT_PRESENT_OFFSET, 8271 }, { 0x32a2, G_UNICODE_NOT_PRESENT_OFFSET, 8275 }, { 0x32a3, G_UNICODE_NOT_PRESENT_OFFSET, 8279 }, { 0x32a4, G_UNICODE_NOT_PRESENT_OFFSET, 7585 }, { 0x32a5, G_UNICODE_NOT_PRESENT_OFFSET, 7589 }, { 0x32a6, G_UNICODE_NOT_PRESENT_OFFSET, 7593 }, { 0x32a7, G_UNICODE_NOT_PRESENT_OFFSET, 8283 }, { 0x32a8, G_UNICODE_NOT_PRESENT_OFFSET, 8287 }, { 0x32a9, G_UNICODE_NOT_PRESENT_OFFSET, 8291 }, { 0x32aa, G_UNICODE_NOT_PRESENT_OFFSET, 8295 }, { 0x32ab, G_UNICODE_NOT_PRESENT_OFFSET, 8299 }, { 0x32ac, G_UNICODE_NOT_PRESENT_OFFSET, 8303 }, { 0x32ad, G_UNICODE_NOT_PRESENT_OFFSET, 8307 }, { 0x32ae, G_UNICODE_NOT_PRESENT_OFFSET, 8311 }, { 0x32af, G_UNICODE_NOT_PRESENT_OFFSET, 8315 }, { 0x32b0, G_UNICODE_NOT_PRESENT_OFFSET, 8319 }, { 0x32b1, G_UNICODE_NOT_PRESENT_OFFSET, 8323 }, { 0x32b2, G_UNICODE_NOT_PRESENT_OFFSET, 8326 }, { 0x32b3, G_UNICODE_NOT_PRESENT_OFFSET, 8329 }, { 0x32b4, G_UNICODE_NOT_PRESENT_OFFSET, 8332 }, { 0x32b5, G_UNICODE_NOT_PRESENT_OFFSET, 8335 }, { 0x32b6, G_UNICODE_NOT_PRESENT_OFFSET, 8338 }, { 0x32b7, G_UNICODE_NOT_PRESENT_OFFSET, 8341 }, { 0x32b8, G_UNICODE_NOT_PRESENT_OFFSET, 8344 }, { 0x32b9, G_UNICODE_NOT_PRESENT_OFFSET, 8347 }, { 0x32ba, G_UNICODE_NOT_PRESENT_OFFSET, 8350 }, { 0x32bb, G_UNICODE_NOT_PRESENT_OFFSET, 8353 }, { 0x32bc, G_UNICODE_NOT_PRESENT_OFFSET, 8356 }, { 0x32bd, G_UNICODE_NOT_PRESENT_OFFSET, 8359 }, { 0x32be, G_UNICODE_NOT_PRESENT_OFFSET, 8362 }, { 0x32bf, G_UNICODE_NOT_PRESENT_OFFSET, 8365 }, { 0x32c0, G_UNICODE_NOT_PRESENT_OFFSET, 8368 }, { 0x32c1, G_UNICODE_NOT_PRESENT_OFFSET, 8373 }, { 0x32c2, G_UNICODE_NOT_PRESENT_OFFSET, 8378 }, { 0x32c3, G_UNICODE_NOT_PRESENT_OFFSET, 8383 }, { 0x32c4, G_UNICODE_NOT_PRESENT_OFFSET, 8388 }, { 0x32c5, G_UNICODE_NOT_PRESENT_OFFSET, 8393 }, { 0x32c6, G_UNICODE_NOT_PRESENT_OFFSET, 8398 }, { 0x32c7, G_UNICODE_NOT_PRESENT_OFFSET, 8403 }, { 0x32c8, G_UNICODE_NOT_PRESENT_OFFSET, 8408 }, { 0x32c9, G_UNICODE_NOT_PRESENT_OFFSET, 8413 }, { 0x32ca, G_UNICODE_NOT_PRESENT_OFFSET, 8419 }, { 0x32cb, G_UNICODE_NOT_PRESENT_OFFSET, 8425 }, { 0x32d0, G_UNICODE_NOT_PRESENT_OFFSET, 8431 }, { 0x32d1, G_UNICODE_NOT_PRESENT_OFFSET, 8435 }, { 0x32d2, G_UNICODE_NOT_PRESENT_OFFSET, 8439 }, { 0x32d3, G_UNICODE_NOT_PRESENT_OFFSET, 8443 }, { 0x32d4, G_UNICODE_NOT_PRESENT_OFFSET, 8447 }, { 0x32d5, G_UNICODE_NOT_PRESENT_OFFSET, 8451 }, { 0x32d6, G_UNICODE_NOT_PRESENT_OFFSET, 8455 }, { 0x32d7, G_UNICODE_NOT_PRESENT_OFFSET, 8459 }, { 0x32d8, G_UNICODE_NOT_PRESENT_OFFSET, 8463 }, { 0x32d9, G_UNICODE_NOT_PRESENT_OFFSET, 8467 }, { 0x32da, G_UNICODE_NOT_PRESENT_OFFSET, 8471 }, { 0x32db, G_UNICODE_NOT_PRESENT_OFFSET, 8475 }, { 0x32dc, G_UNICODE_NOT_PRESENT_OFFSET, 8479 }, { 0x32dd, G_UNICODE_NOT_PRESENT_OFFSET, 8483 }, { 0x32de, G_UNICODE_NOT_PRESENT_OFFSET, 8487 }, { 0x32df, G_UNICODE_NOT_PRESENT_OFFSET, 8491 }, { 0x32e0, G_UNICODE_NOT_PRESENT_OFFSET, 8495 }, { 0x32e1, G_UNICODE_NOT_PRESENT_OFFSET, 8499 }, { 0x32e2, G_UNICODE_NOT_PRESENT_OFFSET, 8503 }, { 0x32e3, G_UNICODE_NOT_PRESENT_OFFSET, 8507 }, { 0x32e4, G_UNICODE_NOT_PRESENT_OFFSET, 8511 }, { 0x32e5, G_UNICODE_NOT_PRESENT_OFFSET, 8515 }, { 0x32e6, G_UNICODE_NOT_PRESENT_OFFSET, 8519 }, { 0x32e7, G_UNICODE_NOT_PRESENT_OFFSET, 8523 }, { 0x32e8, G_UNICODE_NOT_PRESENT_OFFSET, 8527 }, { 0x32e9, G_UNICODE_NOT_PRESENT_OFFSET, 8531 }, { 0x32ea, G_UNICODE_NOT_PRESENT_OFFSET, 8535 }, { 0x32eb, G_UNICODE_NOT_PRESENT_OFFSET, 8539 }, { 0x32ec, G_UNICODE_NOT_PRESENT_OFFSET, 8543 }, { 0x32ed, G_UNICODE_NOT_PRESENT_OFFSET, 8547 }, { 0x32ee, G_UNICODE_NOT_PRESENT_OFFSET, 8551 }, { 0x32ef, G_UNICODE_NOT_PRESENT_OFFSET, 8555 }, { 0x32f0, G_UNICODE_NOT_PRESENT_OFFSET, 8559 }, { 0x32f1, G_UNICODE_NOT_PRESENT_OFFSET, 8563 }, { 0x32f2, G_UNICODE_NOT_PRESENT_OFFSET, 8567 }, { 0x32f3, G_UNICODE_NOT_PRESENT_OFFSET, 8571 }, { 0x32f4, G_UNICODE_NOT_PRESENT_OFFSET, 8575 }, { 0x32f5, G_UNICODE_NOT_PRESENT_OFFSET, 8579 }, { 0x32f6, G_UNICODE_NOT_PRESENT_OFFSET, 8583 }, { 0x32f7, G_UNICODE_NOT_PRESENT_OFFSET, 8587 }, { 0x32f8, G_UNICODE_NOT_PRESENT_OFFSET, 8591 }, { 0x32f9, G_UNICODE_NOT_PRESENT_OFFSET, 8595 }, { 0x32fa, G_UNICODE_NOT_PRESENT_OFFSET, 8599 }, { 0x32fb, G_UNICODE_NOT_PRESENT_OFFSET, 8603 }, { 0x32fc, G_UNICODE_NOT_PRESENT_OFFSET, 8607 }, { 0x32fd, G_UNICODE_NOT_PRESENT_OFFSET, 8611 }, { 0x32fe, G_UNICODE_NOT_PRESENT_OFFSET, 8615 }, { 0x3300, G_UNICODE_NOT_PRESENT_OFFSET, 8619 }, { 0x3301, G_UNICODE_NOT_PRESENT_OFFSET, 8635 }, { 0x3302, G_UNICODE_NOT_PRESENT_OFFSET, 8648 }, { 0x3303, G_UNICODE_NOT_PRESENT_OFFSET, 8664 }, { 0x3304, G_UNICODE_NOT_PRESENT_OFFSET, 8674 }, { 0x3305, G_UNICODE_NOT_PRESENT_OFFSET, 8690 }, { 0x3306, G_UNICODE_NOT_PRESENT_OFFSET, 8700 }, { 0x3307, G_UNICODE_NOT_PRESENT_OFFSET, 8710 }, { 0x3308, G_UNICODE_NOT_PRESENT_OFFSET, 8729 }, { 0x3309, G_UNICODE_NOT_PRESENT_OFFSET, 8742 }, { 0x330a, G_UNICODE_NOT_PRESENT_OFFSET, 8752 }, { 0x330b, G_UNICODE_NOT_PRESENT_OFFSET, 8762 }, { 0x330c, G_UNICODE_NOT_PRESENT_OFFSET, 8772 }, { 0x330d, G_UNICODE_NOT_PRESENT_OFFSET, 8785 }, { 0x330e, G_UNICODE_NOT_PRESENT_OFFSET, 8798 }, { 0x330f, G_UNICODE_NOT_PRESENT_OFFSET, 8811 }, { 0x3310, G_UNICODE_NOT_PRESENT_OFFSET, 8824 }, { 0x3311, G_UNICODE_NOT_PRESENT_OFFSET, 8837 }, { 0x3312, G_UNICODE_NOT_PRESENT_OFFSET, 8850 }, { 0x3313, G_UNICODE_NOT_PRESENT_OFFSET, 8863 }, { 0x3314, G_UNICODE_NOT_PRESENT_OFFSET, 8882 }, { 0x3315, G_UNICODE_NOT_PRESENT_OFFSET, 8889 }, { 0x3316, G_UNICODE_NOT_PRESENT_OFFSET, 8908 }, { 0x3317, G_UNICODE_NOT_PRESENT_OFFSET, 8927 }, { 0x3318, G_UNICODE_NOT_PRESENT_OFFSET, 8943 }, { 0x3319, G_UNICODE_NOT_PRESENT_OFFSET, 8956 }, { 0x331a, G_UNICODE_NOT_PRESENT_OFFSET, 8975 }, { 0x331b, G_UNICODE_NOT_PRESENT_OFFSET, 8994 }, { 0x331c, G_UNICODE_NOT_PRESENT_OFFSET, 9007 }, { 0x331d, G_UNICODE_NOT_PRESENT_OFFSET, 9017 }, { 0x331e, G_UNICODE_NOT_PRESENT_OFFSET, 9027 }, { 0x331f, G_UNICODE_NOT_PRESENT_OFFSET, 9040 }, { 0x3320, G_UNICODE_NOT_PRESENT_OFFSET, 9053 }, { 0x3321, G_UNICODE_NOT_PRESENT_OFFSET, 9069 }, { 0x3322, G_UNICODE_NOT_PRESENT_OFFSET, 9085 }, { 0x3323, G_UNICODE_NOT_PRESENT_OFFSET, 9095 }, { 0x3324, G_UNICODE_NOT_PRESENT_OFFSET, 9105 }, { 0x3325, G_UNICODE_NOT_PRESENT_OFFSET, 9118 }, { 0x3326, G_UNICODE_NOT_PRESENT_OFFSET, 9128 }, { 0x3327, G_UNICODE_NOT_PRESENT_OFFSET, 9138 }, { 0x3328, G_UNICODE_NOT_PRESENT_OFFSET, 9145 }, { 0x3329, G_UNICODE_NOT_PRESENT_OFFSET, 9152 }, { 0x332a, G_UNICODE_NOT_PRESENT_OFFSET, 9162 }, { 0x332b, G_UNICODE_NOT_PRESENT_OFFSET, 9172 }, { 0x332c, G_UNICODE_NOT_PRESENT_OFFSET, 9191 }, { 0x332d, G_UNICODE_NOT_PRESENT_OFFSET, 9204 }, { 0x332e, G_UNICODE_NOT_PRESENT_OFFSET, 9220 }, { 0x332f, G_UNICODE_NOT_PRESENT_OFFSET, 9239 }, { 0x3330, G_UNICODE_NOT_PRESENT_OFFSET, 9252 }, { 0x3331, G_UNICODE_NOT_PRESENT_OFFSET, 9262 }, { 0x3332, G_UNICODE_NOT_PRESENT_OFFSET, 9272 }, { 0x3333, G_UNICODE_NOT_PRESENT_OFFSET, 9291 }, { 0x3334, G_UNICODE_NOT_PRESENT_OFFSET, 9304 }, { 0x3335, G_UNICODE_NOT_PRESENT_OFFSET, 9323 }, { 0x3336, G_UNICODE_NOT_PRESENT_OFFSET, 9333 }, { 0x3337, G_UNICODE_NOT_PRESENT_OFFSET, 9349 }, { 0x3338, G_UNICODE_NOT_PRESENT_OFFSET, 9359 }, { 0x3339, G_UNICODE_NOT_PRESENT_OFFSET, 9372 }, { 0x333a, G_UNICODE_NOT_PRESENT_OFFSET, 9382 }, { 0x333b, G_UNICODE_NOT_PRESENT_OFFSET, 9395 }, { 0x333c, G_UNICODE_NOT_PRESENT_OFFSET, 9411 }, { 0x333d, G_UNICODE_NOT_PRESENT_OFFSET, 9424 }, { 0x333e, G_UNICODE_NOT_PRESENT_OFFSET, 9440 }, { 0x333f, G_UNICODE_NOT_PRESENT_OFFSET, 9453 }, { 0x3340, G_UNICODE_NOT_PRESENT_OFFSET, 9460 }, { 0x3341, G_UNICODE_NOT_PRESENT_OFFSET, 9476 }, { 0x3342, G_UNICODE_NOT_PRESENT_OFFSET, 9486 }, { 0x3343, G_UNICODE_NOT_PRESENT_OFFSET, 9496 }, { 0x3344, G_UNICODE_NOT_PRESENT_OFFSET, 9509 }, { 0x3345, G_UNICODE_NOT_PRESENT_OFFSET, 9519 }, { 0x3346, G_UNICODE_NOT_PRESENT_OFFSET, 9529 }, { 0x3347, G_UNICODE_NOT_PRESENT_OFFSET, 9539 }, { 0x3348, G_UNICODE_NOT_PRESENT_OFFSET, 9555 }, { 0x3349, G_UNICODE_NOT_PRESENT_OFFSET, 9568 }, { 0x334a, G_UNICODE_NOT_PRESENT_OFFSET, 9575 }, { 0x334b, G_UNICODE_NOT_PRESENT_OFFSET, 9594 }, { 0x334c, G_UNICODE_NOT_PRESENT_OFFSET, 9604 }, { 0x334d, G_UNICODE_NOT_PRESENT_OFFSET, 9620 }, { 0x334e, G_UNICODE_NOT_PRESENT_OFFSET, 9633 }, { 0x334f, G_UNICODE_NOT_PRESENT_OFFSET, 9646 }, { 0x3350, G_UNICODE_NOT_PRESENT_OFFSET, 9656 }, { 0x3351, G_UNICODE_NOT_PRESENT_OFFSET, 9666 }, { 0x3352, G_UNICODE_NOT_PRESENT_OFFSET, 9679 }, { 0x3353, G_UNICODE_NOT_PRESENT_OFFSET, 9686 }, { 0x3354, G_UNICODE_NOT_PRESENT_OFFSET, 9699 }, { 0x3355, G_UNICODE_NOT_PRESENT_OFFSET, 9715 }, { 0x3356, G_UNICODE_NOT_PRESENT_OFFSET, 9722 }, { 0x3357, G_UNICODE_NOT_PRESENT_OFFSET, 9741 }, { 0x3358, G_UNICODE_NOT_PRESENT_OFFSET, 9751 }, { 0x3359, G_UNICODE_NOT_PRESENT_OFFSET, 9756 }, { 0x335a, G_UNICODE_NOT_PRESENT_OFFSET, 9761 }, { 0x335b, G_UNICODE_NOT_PRESENT_OFFSET, 9766 }, { 0x335c, G_UNICODE_NOT_PRESENT_OFFSET, 9771 }, { 0x335d, G_UNICODE_NOT_PRESENT_OFFSET, 9776 }, { 0x335e, G_UNICODE_NOT_PRESENT_OFFSET, 9781 }, { 0x335f, G_UNICODE_NOT_PRESENT_OFFSET, 9786 }, { 0x3360, G_UNICODE_NOT_PRESENT_OFFSET, 9791 }, { 0x3361, G_UNICODE_NOT_PRESENT_OFFSET, 9796 }, { 0x3362, G_UNICODE_NOT_PRESENT_OFFSET, 9801 }, { 0x3363, G_UNICODE_NOT_PRESENT_OFFSET, 9807 }, { 0x3364, G_UNICODE_NOT_PRESENT_OFFSET, 9813 }, { 0x3365, G_UNICODE_NOT_PRESENT_OFFSET, 9819 }, { 0x3366, G_UNICODE_NOT_PRESENT_OFFSET, 9825 }, { 0x3367, G_UNICODE_NOT_PRESENT_OFFSET, 9831 }, { 0x3368, G_UNICODE_NOT_PRESENT_OFFSET, 9837 }, { 0x3369, G_UNICODE_NOT_PRESENT_OFFSET, 9843 }, { 0x336a, G_UNICODE_NOT_PRESENT_OFFSET, 9849 }, { 0x336b, G_UNICODE_NOT_PRESENT_OFFSET, 9855 }, { 0x336c, G_UNICODE_NOT_PRESENT_OFFSET, 9861 }, { 0x336d, G_UNICODE_NOT_PRESENT_OFFSET, 9867 }, { 0x336e, G_UNICODE_NOT_PRESENT_OFFSET, 9873 }, { 0x336f, G_UNICODE_NOT_PRESENT_OFFSET, 9879 }, { 0x3370, G_UNICODE_NOT_PRESENT_OFFSET, 9885 }, { 0x3371, G_UNICODE_NOT_PRESENT_OFFSET, 9891 }, { 0x3372, G_UNICODE_NOT_PRESENT_OFFSET, 9895 }, { 0x3373, G_UNICODE_NOT_PRESENT_OFFSET, 9898 }, { 0x3374, G_UNICODE_NOT_PRESENT_OFFSET, 9901 }, { 0x3375, G_UNICODE_NOT_PRESENT_OFFSET, 9905 }, { 0x3376, G_UNICODE_NOT_PRESENT_OFFSET, 9908 }, { 0x337b, G_UNICODE_NOT_PRESENT_OFFSET, 9911 }, { 0x337c, G_UNICODE_NOT_PRESENT_OFFSET, 9918 }, { 0x337d, G_UNICODE_NOT_PRESENT_OFFSET, 9925 }, { 0x337e, G_UNICODE_NOT_PRESENT_OFFSET, 9932 }, { 0x337f, G_UNICODE_NOT_PRESENT_OFFSET, 9939 }, { 0x3380, G_UNICODE_NOT_PRESENT_OFFSET, 9952 }, { 0x3381, G_UNICODE_NOT_PRESENT_OFFSET, 9955 }, { 0x3382, G_UNICODE_NOT_PRESENT_OFFSET, 9958 }, { 0x3383, G_UNICODE_NOT_PRESENT_OFFSET, 9962 }, { 0x3384, G_UNICODE_NOT_PRESENT_OFFSET, 9965 }, { 0x3385, G_UNICODE_NOT_PRESENT_OFFSET, 9968 }, { 0x3386, G_UNICODE_NOT_PRESENT_OFFSET, 9971 }, { 0x3387, G_UNICODE_NOT_PRESENT_OFFSET, 9974 }, { 0x3388, G_UNICODE_NOT_PRESENT_OFFSET, 9977 }, { 0x3389, G_UNICODE_NOT_PRESENT_OFFSET, 9981 }, { 0x338a, G_UNICODE_NOT_PRESENT_OFFSET, 9986 }, { 0x338b, G_UNICODE_NOT_PRESENT_OFFSET, 9989 }, { 0x338c, G_UNICODE_NOT_PRESENT_OFFSET, 9992 }, { 0x338d, G_UNICODE_NOT_PRESENT_OFFSET, 9996 }, { 0x338e, G_UNICODE_NOT_PRESENT_OFFSET, 10000 }, { 0x338f, G_UNICODE_NOT_PRESENT_OFFSET, 10003 }, { 0x3390, G_UNICODE_NOT_PRESENT_OFFSET, 10006 }, { 0x3391, G_UNICODE_NOT_PRESENT_OFFSET, 10009 }, { 0x3392, G_UNICODE_NOT_PRESENT_OFFSET, 10013 }, { 0x3393, G_UNICODE_NOT_PRESENT_OFFSET, 10017 }, { 0x3394, G_UNICODE_NOT_PRESENT_OFFSET, 10021 }, { 0x3395, G_UNICODE_NOT_PRESENT_OFFSET, 10025 }, { 0x3396, G_UNICODE_NOT_PRESENT_OFFSET, 10029 }, { 0x3397, G_UNICODE_NOT_PRESENT_OFFSET, 10032 }, { 0x3398, G_UNICODE_NOT_PRESENT_OFFSET, 10035 }, { 0x3399, G_UNICODE_NOT_PRESENT_OFFSET, 10038 }, { 0x339a, G_UNICODE_NOT_PRESENT_OFFSET, 10041 }, { 0x339b, G_UNICODE_NOT_PRESENT_OFFSET, 10044 }, { 0x339c, G_UNICODE_NOT_PRESENT_OFFSET, 10048 }, { 0x339d, G_UNICODE_NOT_PRESENT_OFFSET, 10051 }, { 0x339e, G_UNICODE_NOT_PRESENT_OFFSET, 10054 }, { 0x339f, G_UNICODE_NOT_PRESENT_OFFSET, 10057 }, { 0x33a0, G_UNICODE_NOT_PRESENT_OFFSET, 10061 }, { 0x33a1, G_UNICODE_NOT_PRESENT_OFFSET, 10065 }, { 0x33a2, G_UNICODE_NOT_PRESENT_OFFSET, 10068 }, { 0x33a3, G_UNICODE_NOT_PRESENT_OFFSET, 10072 }, { 0x33a4, G_UNICODE_NOT_PRESENT_OFFSET, 10076 }, { 0x33a5, G_UNICODE_NOT_PRESENT_OFFSET, 10080 }, { 0x33a6, G_UNICODE_NOT_PRESENT_OFFSET, 10083 }, { 0x33a7, G_UNICODE_NOT_PRESENT_OFFSET, 10087 }, { 0x33a8, G_UNICODE_NOT_PRESENT_OFFSET, 10093 }, { 0x33a9, G_UNICODE_NOT_PRESENT_OFFSET, 10100 }, { 0x33aa, G_UNICODE_NOT_PRESENT_OFFSET, 10103 }, { 0x33ab, G_UNICODE_NOT_PRESENT_OFFSET, 10107 }, { 0x33ac, G_UNICODE_NOT_PRESENT_OFFSET, 10111 }, { 0x33ad, G_UNICODE_NOT_PRESENT_OFFSET, 10115 }, { 0x33ae, G_UNICODE_NOT_PRESENT_OFFSET, 10119 }, { 0x33af, G_UNICODE_NOT_PRESENT_OFFSET, 10127 }, { 0x33b0, G_UNICODE_NOT_PRESENT_OFFSET, 10136 }, { 0x33b1, G_UNICODE_NOT_PRESENT_OFFSET, 10139 }, { 0x33b2, G_UNICODE_NOT_PRESENT_OFFSET, 10142 }, { 0x33b3, G_UNICODE_NOT_PRESENT_OFFSET, 10146 }, { 0x33b4, G_UNICODE_NOT_PRESENT_OFFSET, 10149 }, { 0x33b5, G_UNICODE_NOT_PRESENT_OFFSET, 10152 }, { 0x33b6, G_UNICODE_NOT_PRESENT_OFFSET, 10155 }, { 0x33b7, G_UNICODE_NOT_PRESENT_OFFSET, 10159 }, { 0x33b8, G_UNICODE_NOT_PRESENT_OFFSET, 10162 }, { 0x33b9, G_UNICODE_NOT_PRESENT_OFFSET, 10165 }, { 0x33ba, G_UNICODE_NOT_PRESENT_OFFSET, 10168 }, { 0x33bb, G_UNICODE_NOT_PRESENT_OFFSET, 10171 }, { 0x33bc, G_UNICODE_NOT_PRESENT_OFFSET, 10174 }, { 0x33bd, G_UNICODE_NOT_PRESENT_OFFSET, 10178 }, { 0x33be, G_UNICODE_NOT_PRESENT_OFFSET, 10181 }, { 0x33bf, G_UNICODE_NOT_PRESENT_OFFSET, 10184 }, { 0x33c0, G_UNICODE_NOT_PRESENT_OFFSET, 10187 }, { 0x33c1, G_UNICODE_NOT_PRESENT_OFFSET, 10191 }, { 0x33c2, G_UNICODE_NOT_PRESENT_OFFSET, 10195 }, { 0x33c3, G_UNICODE_NOT_PRESENT_OFFSET, 10200 }, { 0x33c4, G_UNICODE_NOT_PRESENT_OFFSET, 10203 }, { 0x33c5, G_UNICODE_NOT_PRESENT_OFFSET, 10206 }, { 0x33c6, G_UNICODE_NOT_PRESENT_OFFSET, 10209 }, { 0x33c7, G_UNICODE_NOT_PRESENT_OFFSET, 10216 }, { 0x33c8, G_UNICODE_NOT_PRESENT_OFFSET, 10220 }, { 0x33c9, G_UNICODE_NOT_PRESENT_OFFSET, 10223 }, { 0x33ca, G_UNICODE_NOT_PRESENT_OFFSET, 10226 }, { 0x33cb, G_UNICODE_NOT_PRESENT_OFFSET, 10229 }, { 0x33cc, G_UNICODE_NOT_PRESENT_OFFSET, 10232 }, { 0x33cd, G_UNICODE_NOT_PRESENT_OFFSET, 10235 }, { 0x33ce, G_UNICODE_NOT_PRESENT_OFFSET, 10238 }, { 0x33cf, G_UNICODE_NOT_PRESENT_OFFSET, 10241 }, { 0x33d0, G_UNICODE_NOT_PRESENT_OFFSET, 10244 }, { 0x33d1, G_UNICODE_NOT_PRESENT_OFFSET, 10247 }, { 0x33d2, G_UNICODE_NOT_PRESENT_OFFSET, 10250 }, { 0x33d3, G_UNICODE_NOT_PRESENT_OFFSET, 10254 }, { 0x33d4, G_UNICODE_NOT_PRESENT_OFFSET, 10257 }, { 0x33d5, G_UNICODE_NOT_PRESENT_OFFSET, 10260 }, { 0x33d6, G_UNICODE_NOT_PRESENT_OFFSET, 10264 }, { 0x33d7, G_UNICODE_NOT_PRESENT_OFFSET, 10268 }, { 0x33d8, G_UNICODE_NOT_PRESENT_OFFSET, 10271 }, { 0x33d9, G_UNICODE_NOT_PRESENT_OFFSET, 10276 }, { 0x33da, G_UNICODE_NOT_PRESENT_OFFSET, 10280 }, { 0x33db, G_UNICODE_NOT_PRESENT_OFFSET, 10283 }, { 0x33dc, G_UNICODE_NOT_PRESENT_OFFSET, 10286 }, { 0x33dd, G_UNICODE_NOT_PRESENT_OFFSET, 10289 }, { 0x33e0, G_UNICODE_NOT_PRESENT_OFFSET, 10292 }, { 0x33e1, G_UNICODE_NOT_PRESENT_OFFSET, 10297 }, { 0x33e2, G_UNICODE_NOT_PRESENT_OFFSET, 10302 }, { 0x33e3, G_UNICODE_NOT_PRESENT_OFFSET, 10307 }, { 0x33e4, G_UNICODE_NOT_PRESENT_OFFSET, 10312 }, { 0x33e5, G_UNICODE_NOT_PRESENT_OFFSET, 10317 }, { 0x33e6, G_UNICODE_NOT_PRESENT_OFFSET, 10322 }, { 0x33e7, G_UNICODE_NOT_PRESENT_OFFSET, 10327 }, { 0x33e8, G_UNICODE_NOT_PRESENT_OFFSET, 10332 }, { 0x33e9, G_UNICODE_NOT_PRESENT_OFFSET, 10337 }, { 0x33ea, G_UNICODE_NOT_PRESENT_OFFSET, 10343 }, { 0x33eb, G_UNICODE_NOT_PRESENT_OFFSET, 10349 }, { 0x33ec, G_UNICODE_NOT_PRESENT_OFFSET, 10355 }, { 0x33ed, G_UNICODE_NOT_PRESENT_OFFSET, 10361 }, { 0x33ee, G_UNICODE_NOT_PRESENT_OFFSET, 10367 }, { 0x33ef, G_UNICODE_NOT_PRESENT_OFFSET, 10373 }, { 0x33f0, G_UNICODE_NOT_PRESENT_OFFSET, 10379 }, { 0x33f1, G_UNICODE_NOT_PRESENT_OFFSET, 10385 }, { 0x33f2, G_UNICODE_NOT_PRESENT_OFFSET, 10391 }, { 0x33f3, G_UNICODE_NOT_PRESENT_OFFSET, 10397 }, { 0x33f4, G_UNICODE_NOT_PRESENT_OFFSET, 10403 }, { 0x33f5, G_UNICODE_NOT_PRESENT_OFFSET, 10409 }, { 0x33f6, G_UNICODE_NOT_PRESENT_OFFSET, 10415 }, { 0x33f7, G_UNICODE_NOT_PRESENT_OFFSET, 10421 }, { 0x33f8, G_UNICODE_NOT_PRESENT_OFFSET, 10427 }, { 0x33f9, G_UNICODE_NOT_PRESENT_OFFSET, 10433 }, { 0x33fa, G_UNICODE_NOT_PRESENT_OFFSET, 10439 }, { 0x33fb, G_UNICODE_NOT_PRESENT_OFFSET, 10445 }, { 0x33fc, G_UNICODE_NOT_PRESENT_OFFSET, 10451 }, { 0x33fd, G_UNICODE_NOT_PRESENT_OFFSET, 10457 }, { 0x33fe, G_UNICODE_NOT_PRESENT_OFFSET, 10463 }, { 0xf900, 10469, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf901, 10473, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf902, 6535, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf903, 10477, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf904, 10481, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf905, 10485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf906, 10489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf907, 6751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf908, 6751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf909, 10493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90a, 6567, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90b, 10497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90c, 10501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90d, 10505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90e, 10509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf90f, 10513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf910, 10517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf911, 10521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf912, 10525, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf913, 10529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf914, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf915, 10537, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf916, 10541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf917, 10545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf918, 10549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf919, 10553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91a, 10557, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91b, 10561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91c, 10565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91d, 10569, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91e, 10573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf91f, 10577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf920, 10581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf921, 10585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf922, 10589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf923, 10593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf924, 10597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf925, 10601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf926, 10605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf927, 10609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf928, 10613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf929, 10617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92a, 10621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92b, 10625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92c, 10629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92d, 10633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92e, 10637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf92f, 10641, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf930, 10645, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf931, 10649, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf932, 10653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf933, 10657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf934, 6399, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf935, 10661, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf936, 10665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf937, 10669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf938, 10673, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf939, 10677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93a, 10681, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93b, 10685, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93c, 10689, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93d, 10693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93e, 10697, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf93f, 10701, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf940, 6691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf941, 10705, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf942, 10709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf943, 10713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf944, 10717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf945, 10721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf946, 10725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf947, 10729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf948, 10733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf949, 10737, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94a, 10741, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94b, 10745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94c, 10749, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94d, 10753, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94e, 10757, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf94f, 10761, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf950, 10765, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf951, 10769, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf952, 10773, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf953, 10777, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf954, 10781, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf955, 10785, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf956, 10789, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf957, 10793, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf958, 10797, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf959, 10801, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95a, 10805, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95b, 10809, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95c, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95d, 10813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95e, 10817, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf95f, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf960, 10825, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf961, 10829, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf962, 10833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf963, 10837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf964, 10841, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf965, 10845, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf966, 10849, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf967, 10853, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf968, 10857, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf969, 10861, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96a, 10865, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96b, 10869, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96c, 10873, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96d, 10877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96e, 10881, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf96f, 10885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf970, 10889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf971, 6543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf972, 10893, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf973, 10897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf974, 10901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf975, 10905, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf976, 10909, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf977, 10913, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf978, 10917, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf979, 10921, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97a, 10925, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97b, 10929, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97c, 10933, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97d, 10937, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97e, 10941, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf97f, 10945, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf980, 10949, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf981, 6051, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf982, 10953, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf983, 10957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf984, 10961, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf985, 10965, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf986, 10969, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf987, 10973, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf988, 10977, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf989, 10981, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98a, 5975, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98b, 10985, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98c, 10989, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98d, 10993, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98e, 10997, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf98f, 11001, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf990, 11005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf991, 11009, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf992, 11013, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf993, 11017, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf994, 11021, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf995, 11025, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf996, 11029, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf997, 11033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf998, 11037, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf999, 11041, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99a, 11045, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99b, 11049, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99c, 11053, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99d, 11057, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99e, 11061, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf99f, 11065, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a0, 11069, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a1, 10885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a2, 11073, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a3, 11077, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a4, 11081, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a5, 11085, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a6, 11089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a7, 11093, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a8, 11097, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9a9, 11101, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9aa, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ab, 11105, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ac, 11109, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ad, 11113, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ae, 11117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9af, 11121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b0, 11125, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b1, 11129, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b2, 11133, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b3, 11137, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b4, 11141, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b5, 11145, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b6, 11149, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b7, 11153, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b8, 11157, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9b9, 11161, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ba, 11165, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bb, 11169, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bc, 11173, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bd, 11177, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9be, 11181, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9bf, 10533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c0, 11185, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c1, 11189, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c2, 11193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c3, 11197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c4, 6747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c5, 11201, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c6, 11205, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c7, 11209, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c8, 11213, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9c9, 11217, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ca, 11221, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cb, 11225, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cc, 11229, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cd, 11233, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ce, 11237, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9cf, 11241, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d0, 11245, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d1, 8199, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d2, 11249, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d3, 11253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d4, 11257, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d5, 11261, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d6, 11265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d7, 11269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d8, 11273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9d9, 11277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9da, 11281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9db, 10829, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9dc, 11285, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9dd, 11289, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9de, 11293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9df, 11297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e0, 11301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e1, 11305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e2, 11309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e3, 11313, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e4, 11317, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e5, 11321, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e6, 11325, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e7, 11329, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e8, 11333, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9e9, 6563, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ea, 11337, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9eb, 11341, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ec, 11345, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ed, 11349, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ee, 11353, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ef, 11357, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f0, 11361, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f1, 11365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f2, 11369, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f3, 11373, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f4, 11377, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f5, 11381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f6, 11385, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f7, 6367, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f8, 11389, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9f9, 11393, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fa, 11397, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fb, 11401, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fc, 11405, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fd, 11409, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9fe, 11413, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xf9ff, 11417, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa00, 11421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa01, 11425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa02, 11429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa03, 11433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa04, 11437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa05, 11441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa06, 11445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa07, 11449, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa08, 6475, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa09, 11453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0a, 6487, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0b, 11457, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0c, 11461, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa0d, 11465, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa10, 11469, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa12, 11473, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa15, 11477, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa16, 11481, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa17, 11485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa18, 11489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa19, 11493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1a, 11497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1b, 11501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1c, 11505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1d, 11509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa1e, 6395, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa20, 11513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa22, 11517, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa25, 11521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa26, 11525, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2a, 11529, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2b, 11533, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2c, 11537, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa2d, 11541, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa30, 11545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa31, 11549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa32, 11553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa33, 11557, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa34, 11561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa35, 11565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa36, 11569, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa37, 11573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa38, 11577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa39, 11581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3a, 11585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3b, 11589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3c, 6079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3d, 11593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3e, 11597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa3f, 11601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa40, 11605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa41, 11609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa42, 11613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa43, 11617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa44, 11621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa45, 11625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa46, 11629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa47, 11633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa48, 11637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa49, 11641, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4a, 11645, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4b, 11649, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4c, 8219, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4d, 11653, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4e, 11657, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa4f, 11661, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa50, 11665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa51, 8235, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa52, 11669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa53, 11673, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa54, 11677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa55, 11681, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa56, 11685, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa57, 11029, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa58, 11689, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa59, 11693, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5a, 11697, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5b, 11701, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5c, 11705, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5d, 11709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5e, 11709, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa5f, 11713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa60, 11717, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa61, 11721, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa62, 11725, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa63, 11729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa64, 11733, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa65, 11737, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa66, 11741, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa67, 11521, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa68, 11745, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa69, 11749, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfa6a, 11753, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb00, G_UNICODE_NOT_PRESENT_OFFSET, 11757 }, { 0xfb01, G_UNICODE_NOT_PRESENT_OFFSET, 11760 }, { 0xfb02, G_UNICODE_NOT_PRESENT_OFFSET, 11763 }, { 0xfb03, G_UNICODE_NOT_PRESENT_OFFSET, 11766 }, { 0xfb04, G_UNICODE_NOT_PRESENT_OFFSET, 11770 }, { 0xfb05, G_UNICODE_NOT_PRESENT_OFFSET, 11774 }, { 0xfb06, G_UNICODE_NOT_PRESENT_OFFSET, 11774 }, { 0xfb13, G_UNICODE_NOT_PRESENT_OFFSET, 11777 }, { 0xfb14, G_UNICODE_NOT_PRESENT_OFFSET, 11782 }, { 0xfb15, G_UNICODE_NOT_PRESENT_OFFSET, 11787 }, { 0xfb16, G_UNICODE_NOT_PRESENT_OFFSET, 11792 }, { 0xfb17, G_UNICODE_NOT_PRESENT_OFFSET, 11797 }, { 0xfb1d, 11802, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb1f, 11807, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb20, G_UNICODE_NOT_PRESENT_OFFSET, 11812 }, { 0xfb21, G_UNICODE_NOT_PRESENT_OFFSET, 5052 }, { 0xfb22, G_UNICODE_NOT_PRESENT_OFFSET, 5061 }, { 0xfb23, G_UNICODE_NOT_PRESENT_OFFSET, 11815 }, { 0xfb24, G_UNICODE_NOT_PRESENT_OFFSET, 11818 }, { 0xfb25, G_UNICODE_NOT_PRESENT_OFFSET, 11821 }, { 0xfb26, G_UNICODE_NOT_PRESENT_OFFSET, 11824 }, { 0xfb27, G_UNICODE_NOT_PRESENT_OFFSET, 11827 }, { 0xfb28, G_UNICODE_NOT_PRESENT_OFFSET, 11830 }, { 0xfb29, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0xfb2a, 11833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2b, 11838, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2c, 11843, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2d, 11850, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2e, 11857, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb2f, 11862, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb30, 11867, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb31, 11872, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb32, 11877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb33, 11882, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb34, 11887, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb35, 11892, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb36, 11897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb38, 11902, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb39, 11907, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3a, 11912, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3b, 11917, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3c, 11922, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb3e, 11927, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb40, 11932, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb41, 11937, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb43, 11942, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb44, 11947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb46, 11952, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb47, 11957, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb48, 11962, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb49, 11967, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4a, 11972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4b, 11977, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4c, 11982, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4d, 11987, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4e, 11992, G_UNICODE_NOT_PRESENT_OFFSET }, { 0xfb4f, G_UNICODE_NOT_PRESENT_OFFSET, 11997 }, { 0xfb50, G_UNICODE_NOT_PRESENT_OFFSET, 12002 }, { 0xfb51, G_UNICODE_NOT_PRESENT_OFFSET, 12002 }, { 0xfb52, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb53, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb54, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb55, G_UNICODE_NOT_PRESENT_OFFSET, 12005 }, { 0xfb56, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb57, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb58, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb59, G_UNICODE_NOT_PRESENT_OFFSET, 12008 }, { 0xfb5a, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5b, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5c, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5d, G_UNICODE_NOT_PRESENT_OFFSET, 12011 }, { 0xfb5e, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb5f, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb60, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb61, G_UNICODE_NOT_PRESENT_OFFSET, 12014 }, { 0xfb62, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb63, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb64, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb65, G_UNICODE_NOT_PRESENT_OFFSET, 12017 }, { 0xfb66, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb67, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb68, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb69, G_UNICODE_NOT_PRESENT_OFFSET, 12020 }, { 0xfb6a, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6b, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6c, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6d, G_UNICODE_NOT_PRESENT_OFFSET, 12023 }, { 0xfb6e, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb6f, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb70, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb71, G_UNICODE_NOT_PRESENT_OFFSET, 12026 }, { 0xfb72, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb73, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb74, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb75, G_UNICODE_NOT_PRESENT_OFFSET, 12029 }, { 0xfb76, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb77, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb78, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb79, G_UNICODE_NOT_PRESENT_OFFSET, 12032 }, { 0xfb7a, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7b, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7c, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7d, G_UNICODE_NOT_PRESENT_OFFSET, 12035 }, { 0xfb7e, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb7f, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb80, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb81, G_UNICODE_NOT_PRESENT_OFFSET, 12038 }, { 0xfb82, G_UNICODE_NOT_PRESENT_OFFSET, 12041 }, { 0xfb83, G_UNICODE_NOT_PRESENT_OFFSET, 12041 }, { 0xfb84, G_UNICODE_NOT_PRESENT_OFFSET, 12044 }, { 0xfb85, G_UNICODE_NOT_PRESENT_OFFSET, 12044 }, { 0xfb86, G_UNICODE_NOT_PRESENT_OFFSET, 12047 }, { 0xfb87, G_UNICODE_NOT_PRESENT_OFFSET, 12047 }, { 0xfb88, G_UNICODE_NOT_PRESENT_OFFSET, 12050 }, { 0xfb89, G_UNICODE_NOT_PRESENT_OFFSET, 12050 }, { 0xfb8a, G_UNICODE_NOT_PRESENT_OFFSET, 12053 }, { 0xfb8b, G_UNICODE_NOT_PRESENT_OFFSET, 12053 }, { 0xfb8c, G_UNICODE_NOT_PRESENT_OFFSET, 12056 }, { 0xfb8d, G_UNICODE_NOT_PRESENT_OFFSET, 12056 }, { 0xfb8e, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb8f, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb90, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb91, G_UNICODE_NOT_PRESENT_OFFSET, 12059 }, { 0xfb92, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb93, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb94, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb95, G_UNICODE_NOT_PRESENT_OFFSET, 12062 }, { 0xfb96, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb97, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb98, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb99, G_UNICODE_NOT_PRESENT_OFFSET, 12065 }, { 0xfb9a, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9b, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9c, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9d, G_UNICODE_NOT_PRESENT_OFFSET, 12068 }, { 0xfb9e, G_UNICODE_NOT_PRESENT_OFFSET, 12071 }, { 0xfb9f, G_UNICODE_NOT_PRESENT_OFFSET, 12071 }, { 0xfba0, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba1, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba2, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba3, G_UNICODE_NOT_PRESENT_OFFSET, 12074 }, { 0xfba4, G_UNICODE_NOT_PRESENT_OFFSET, 1718 }, { 0xfba5, G_UNICODE_NOT_PRESENT_OFFSET, 1718 }, { 0xfba6, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfba7, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfba8, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfba9, G_UNICODE_NOT_PRESENT_OFFSET, 12077 }, { 0xfbaa, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbab, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbac, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbad, G_UNICODE_NOT_PRESENT_OFFSET, 12080 }, { 0xfbae, G_UNICODE_NOT_PRESENT_OFFSET, 12083 }, { 0xfbaf, G_UNICODE_NOT_PRESENT_OFFSET, 12083 }, { 0xfbb0, G_UNICODE_NOT_PRESENT_OFFSET, 1728 }, { 0xfbb1, G_UNICODE_NOT_PRESENT_OFFSET, 1728 }, { 0xfbd3, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd4, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd5, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd6, G_UNICODE_NOT_PRESENT_OFFSET, 12086 }, { 0xfbd7, G_UNICODE_NOT_PRESENT_OFFSET, 12089 }, { 0xfbd8, G_UNICODE_NOT_PRESENT_OFFSET, 12089 }, { 0xfbd9, G_UNICODE_NOT_PRESENT_OFFSET, 12092 }, { 0xfbda, G_UNICODE_NOT_PRESENT_OFFSET, 12092 }, { 0xfbdb, G_UNICODE_NOT_PRESENT_OFFSET, 12095 }, { 0xfbdc, G_UNICODE_NOT_PRESENT_OFFSET, 12095 }, { 0xfbdd, G_UNICODE_NOT_PRESENT_OFFSET, 1708 }, { 0xfbde, G_UNICODE_NOT_PRESENT_OFFSET, 12098 }, { 0xfbdf, G_UNICODE_NOT_PRESENT_OFFSET, 12098 }, { 0xfbe0, G_UNICODE_NOT_PRESENT_OFFSET, 12101 }, { 0xfbe1, G_UNICODE_NOT_PRESENT_OFFSET, 12101 }, { 0xfbe2, G_UNICODE_NOT_PRESENT_OFFSET, 12104 }, { 0xfbe3, G_UNICODE_NOT_PRESENT_OFFSET, 12104 }, { 0xfbe4, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe5, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe6, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe7, G_UNICODE_NOT_PRESENT_OFFSET, 12107 }, { 0xfbe8, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfbe9, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfbea, G_UNICODE_NOT_PRESENT_OFFSET, 12113 }, { 0xfbeb, G_UNICODE_NOT_PRESENT_OFFSET, 12113 }, { 0xfbec, G_UNICODE_NOT_PRESENT_OFFSET, 12120 }, { 0xfbed, G_UNICODE_NOT_PRESENT_OFFSET, 12120 }, { 0xfbee, G_UNICODE_NOT_PRESENT_OFFSET, 12127 }, { 0xfbef, G_UNICODE_NOT_PRESENT_OFFSET, 12127 }, { 0xfbf0, G_UNICODE_NOT_PRESENT_OFFSET, 12134 }, { 0xfbf1, G_UNICODE_NOT_PRESENT_OFFSET, 12134 }, { 0xfbf2, G_UNICODE_NOT_PRESENT_OFFSET, 12141 }, { 0xfbf3, G_UNICODE_NOT_PRESENT_OFFSET, 12141 }, { 0xfbf4, G_UNICODE_NOT_PRESENT_OFFSET, 12148 }, { 0xfbf5, G_UNICODE_NOT_PRESENT_OFFSET, 12148 }, { 0xfbf6, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, { 0xfbf7, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, { 0xfbf8, G_UNICODE_NOT_PRESENT_OFFSET, 12155 }, { 0xfbf9, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfbfa, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfbfb, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfbfc, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfbfd, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfbfe, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfbff, G_UNICODE_NOT_PRESENT_OFFSET, 12169 }, { 0xfc00, G_UNICODE_NOT_PRESENT_OFFSET, 12172 }, { 0xfc01, G_UNICODE_NOT_PRESENT_OFFSET, 12179 }, { 0xfc02, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfc03, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfc04, G_UNICODE_NOT_PRESENT_OFFSET, 12193 }, { 0xfc05, G_UNICODE_NOT_PRESENT_OFFSET, 12200 }, { 0xfc06, G_UNICODE_NOT_PRESENT_OFFSET, 12205 }, { 0xfc07, G_UNICODE_NOT_PRESENT_OFFSET, 12210 }, { 0xfc08, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfc09, G_UNICODE_NOT_PRESENT_OFFSET, 12220 }, { 0xfc0a, G_UNICODE_NOT_PRESENT_OFFSET, 12225 }, { 0xfc0b, G_UNICODE_NOT_PRESENT_OFFSET, 12230 }, { 0xfc0c, G_UNICODE_NOT_PRESENT_OFFSET, 12235 }, { 0xfc0d, G_UNICODE_NOT_PRESENT_OFFSET, 12240 }, { 0xfc0e, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfc0f, G_UNICODE_NOT_PRESENT_OFFSET, 12250 }, { 0xfc10, G_UNICODE_NOT_PRESENT_OFFSET, 12255 }, { 0xfc11, G_UNICODE_NOT_PRESENT_OFFSET, 12260 }, { 0xfc12, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfc13, G_UNICODE_NOT_PRESENT_OFFSET, 12270 }, { 0xfc14, G_UNICODE_NOT_PRESENT_OFFSET, 12275 }, { 0xfc15, G_UNICODE_NOT_PRESENT_OFFSET, 12280 }, { 0xfc16, G_UNICODE_NOT_PRESENT_OFFSET, 12285 }, { 0xfc17, G_UNICODE_NOT_PRESENT_OFFSET, 12290 }, { 0xfc18, G_UNICODE_NOT_PRESENT_OFFSET, 12295 }, { 0xfc19, G_UNICODE_NOT_PRESENT_OFFSET, 12300 }, { 0xfc1a, G_UNICODE_NOT_PRESENT_OFFSET, 12305 }, { 0xfc1b, G_UNICODE_NOT_PRESENT_OFFSET, 12310 }, { 0xfc1c, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, { 0xfc1d, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, { 0xfc1e, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, { 0xfc1f, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, { 0xfc20, G_UNICODE_NOT_PRESENT_OFFSET, 12335 }, { 0xfc21, G_UNICODE_NOT_PRESENT_OFFSET, 12340 }, { 0xfc22, G_UNICODE_NOT_PRESENT_OFFSET, 12345 }, { 0xfc23, G_UNICODE_NOT_PRESENT_OFFSET, 12350 }, { 0xfc24, G_UNICODE_NOT_PRESENT_OFFSET, 12355 }, { 0xfc25, G_UNICODE_NOT_PRESENT_OFFSET, 12360 }, { 0xfc26, G_UNICODE_NOT_PRESENT_OFFSET, 12365 }, { 0xfc27, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, { 0xfc28, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, { 0xfc29, G_UNICODE_NOT_PRESENT_OFFSET, 12380 }, { 0xfc2a, G_UNICODE_NOT_PRESENT_OFFSET, 12385 }, { 0xfc2b, G_UNICODE_NOT_PRESENT_OFFSET, 12390 }, { 0xfc2c, G_UNICODE_NOT_PRESENT_OFFSET, 12395 }, { 0xfc2d, G_UNICODE_NOT_PRESENT_OFFSET, 12400 }, { 0xfc2e, G_UNICODE_NOT_PRESENT_OFFSET, 12405 }, { 0xfc2f, G_UNICODE_NOT_PRESENT_OFFSET, 12410 }, { 0xfc30, G_UNICODE_NOT_PRESENT_OFFSET, 12415 }, { 0xfc31, G_UNICODE_NOT_PRESENT_OFFSET, 12420 }, { 0xfc32, G_UNICODE_NOT_PRESENT_OFFSET, 12425 }, { 0xfc33, G_UNICODE_NOT_PRESENT_OFFSET, 12430 }, { 0xfc34, G_UNICODE_NOT_PRESENT_OFFSET, 12435 }, { 0xfc35, G_UNICODE_NOT_PRESENT_OFFSET, 12440 }, { 0xfc36, G_UNICODE_NOT_PRESENT_OFFSET, 12445 }, { 0xfc37, G_UNICODE_NOT_PRESENT_OFFSET, 12450 }, { 0xfc38, G_UNICODE_NOT_PRESENT_OFFSET, 12455 }, { 0xfc39, G_UNICODE_NOT_PRESENT_OFFSET, 12460 }, { 0xfc3a, G_UNICODE_NOT_PRESENT_OFFSET, 12465 }, { 0xfc3b, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfc3c, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfc3d, G_UNICODE_NOT_PRESENT_OFFSET, 12480 }, { 0xfc3e, G_UNICODE_NOT_PRESENT_OFFSET, 12485 }, { 0xfc3f, G_UNICODE_NOT_PRESENT_OFFSET, 12490 }, { 0xfc40, G_UNICODE_NOT_PRESENT_OFFSET, 12495 }, { 0xfc41, G_UNICODE_NOT_PRESENT_OFFSET, 12500 }, { 0xfc42, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfc43, G_UNICODE_NOT_PRESENT_OFFSET, 12510 }, { 0xfc44, G_UNICODE_NOT_PRESENT_OFFSET, 12515 }, { 0xfc45, G_UNICODE_NOT_PRESENT_OFFSET, 12520 }, { 0xfc46, G_UNICODE_NOT_PRESENT_OFFSET, 12525 }, { 0xfc47, G_UNICODE_NOT_PRESENT_OFFSET, 12530 }, { 0xfc48, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, { 0xfc49, G_UNICODE_NOT_PRESENT_OFFSET, 12540 }, { 0xfc4a, G_UNICODE_NOT_PRESENT_OFFSET, 12545 }, { 0xfc4b, G_UNICODE_NOT_PRESENT_OFFSET, 12550 }, { 0xfc4c, G_UNICODE_NOT_PRESENT_OFFSET, 12555 }, { 0xfc4d, G_UNICODE_NOT_PRESENT_OFFSET, 12560 }, { 0xfc4e, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfc4f, G_UNICODE_NOT_PRESENT_OFFSET, 12570 }, { 0xfc50, G_UNICODE_NOT_PRESENT_OFFSET, 12575 }, { 0xfc51, G_UNICODE_NOT_PRESENT_OFFSET, 12580 }, { 0xfc52, G_UNICODE_NOT_PRESENT_OFFSET, 12585 }, { 0xfc53, G_UNICODE_NOT_PRESENT_OFFSET, 12590 }, { 0xfc54, G_UNICODE_NOT_PRESENT_OFFSET, 12595 }, { 0xfc55, G_UNICODE_NOT_PRESENT_OFFSET, 12600 }, { 0xfc56, G_UNICODE_NOT_PRESENT_OFFSET, 12605 }, { 0xfc57, G_UNICODE_NOT_PRESENT_OFFSET, 12610 }, { 0xfc58, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfc59, G_UNICODE_NOT_PRESENT_OFFSET, 12620 }, { 0xfc5a, G_UNICODE_NOT_PRESENT_OFFSET, 12625 }, { 0xfc5b, G_UNICODE_NOT_PRESENT_OFFSET, 12630 }, { 0xfc5c, G_UNICODE_NOT_PRESENT_OFFSET, 12635 }, { 0xfc5d, G_UNICODE_NOT_PRESENT_OFFSET, 12640 }, { 0xfc5e, G_UNICODE_NOT_PRESENT_OFFSET, 12645 }, { 0xfc5f, G_UNICODE_NOT_PRESENT_OFFSET, 12651 }, { 0xfc60, G_UNICODE_NOT_PRESENT_OFFSET, 12657 }, { 0xfc61, G_UNICODE_NOT_PRESENT_OFFSET, 12663 }, { 0xfc62, G_UNICODE_NOT_PRESENT_OFFSET, 12669 }, { 0xfc63, G_UNICODE_NOT_PRESENT_OFFSET, 12675 }, { 0xfc64, G_UNICODE_NOT_PRESENT_OFFSET, 12681 }, { 0xfc65, G_UNICODE_NOT_PRESENT_OFFSET, 12688 }, { 0xfc66, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfc67, G_UNICODE_NOT_PRESENT_OFFSET, 12695 }, { 0xfc68, G_UNICODE_NOT_PRESENT_OFFSET, 12162 }, { 0xfc69, G_UNICODE_NOT_PRESENT_OFFSET, 12193 }, { 0xfc6a, G_UNICODE_NOT_PRESENT_OFFSET, 12702 }, { 0xfc6b, G_UNICODE_NOT_PRESENT_OFFSET, 12707 }, { 0xfc6c, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfc6d, G_UNICODE_NOT_PRESENT_OFFSET, 12712 }, { 0xfc6e, G_UNICODE_NOT_PRESENT_OFFSET, 12220 }, { 0xfc6f, G_UNICODE_NOT_PRESENT_OFFSET, 12225 }, { 0xfc70, G_UNICODE_NOT_PRESENT_OFFSET, 12717 }, { 0xfc71, G_UNICODE_NOT_PRESENT_OFFSET, 12722 }, { 0xfc72, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfc73, G_UNICODE_NOT_PRESENT_OFFSET, 12727 }, { 0xfc74, G_UNICODE_NOT_PRESENT_OFFSET, 12250 }, { 0xfc75, G_UNICODE_NOT_PRESENT_OFFSET, 12255 }, { 0xfc76, G_UNICODE_NOT_PRESENT_OFFSET, 12732 }, { 0xfc77, G_UNICODE_NOT_PRESENT_OFFSET, 12737 }, { 0xfc78, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfc79, G_UNICODE_NOT_PRESENT_OFFSET, 12742 }, { 0xfc7a, G_UNICODE_NOT_PRESENT_OFFSET, 12270 }, { 0xfc7b, G_UNICODE_NOT_PRESENT_OFFSET, 12275 }, { 0xfc7c, G_UNICODE_NOT_PRESENT_OFFSET, 12420 }, { 0xfc7d, G_UNICODE_NOT_PRESENT_OFFSET, 12425 }, { 0xfc7e, G_UNICODE_NOT_PRESENT_OFFSET, 12440 }, { 0xfc7f, G_UNICODE_NOT_PRESENT_OFFSET, 12445 }, { 0xfc80, G_UNICODE_NOT_PRESENT_OFFSET, 12450 }, { 0xfc81, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfc82, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfc83, G_UNICODE_NOT_PRESENT_OFFSET, 12480 }, { 0xfc84, G_UNICODE_NOT_PRESENT_OFFSET, 12485 }, { 0xfc85, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfc86, G_UNICODE_NOT_PRESENT_OFFSET, 12510 }, { 0xfc87, G_UNICODE_NOT_PRESENT_OFFSET, 12515 }, { 0xfc88, G_UNICODE_NOT_PRESENT_OFFSET, 12747 }, { 0xfc89, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, { 0xfc8a, G_UNICODE_NOT_PRESENT_OFFSET, 12752 }, { 0xfc8b, G_UNICODE_NOT_PRESENT_OFFSET, 12757 }, { 0xfc8c, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfc8d, G_UNICODE_NOT_PRESENT_OFFSET, 12762 }, { 0xfc8e, G_UNICODE_NOT_PRESENT_OFFSET, 12570 }, { 0xfc8f, G_UNICODE_NOT_PRESENT_OFFSET, 12575 }, { 0xfc90, G_UNICODE_NOT_PRESENT_OFFSET, 12640 }, { 0xfc91, G_UNICODE_NOT_PRESENT_OFFSET, 12767 }, { 0xfc92, G_UNICODE_NOT_PRESENT_OFFSET, 12772 }, { 0xfc93, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfc94, G_UNICODE_NOT_PRESENT_OFFSET, 12777 }, { 0xfc95, G_UNICODE_NOT_PRESENT_OFFSET, 12620 }, { 0xfc96, G_UNICODE_NOT_PRESENT_OFFSET, 12625 }, { 0xfc97, G_UNICODE_NOT_PRESENT_OFFSET, 12172 }, { 0xfc98, G_UNICODE_NOT_PRESENT_OFFSET, 12179 }, { 0xfc99, G_UNICODE_NOT_PRESENT_OFFSET, 12782 }, { 0xfc9a, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfc9b, G_UNICODE_NOT_PRESENT_OFFSET, 12789 }, { 0xfc9c, G_UNICODE_NOT_PRESENT_OFFSET, 12200 }, { 0xfc9d, G_UNICODE_NOT_PRESENT_OFFSET, 12205 }, { 0xfc9e, G_UNICODE_NOT_PRESENT_OFFSET, 12210 }, { 0xfc9f, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfca0, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, { 0xfca1, G_UNICODE_NOT_PRESENT_OFFSET, 12230 }, { 0xfca2, G_UNICODE_NOT_PRESENT_OFFSET, 12235 }, { 0xfca3, G_UNICODE_NOT_PRESENT_OFFSET, 12240 }, { 0xfca4, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfca5, G_UNICODE_NOT_PRESENT_OFFSET, 12801 }, { 0xfca6, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfca7, G_UNICODE_NOT_PRESENT_OFFSET, 12280 }, { 0xfca8, G_UNICODE_NOT_PRESENT_OFFSET, 12285 }, { 0xfca9, G_UNICODE_NOT_PRESENT_OFFSET, 12290 }, { 0xfcaa, G_UNICODE_NOT_PRESENT_OFFSET, 12295 }, { 0xfcab, G_UNICODE_NOT_PRESENT_OFFSET, 12300 }, { 0xfcac, G_UNICODE_NOT_PRESENT_OFFSET, 12310 }, { 0xfcad, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, { 0xfcae, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, { 0xfcaf, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, { 0xfcb0, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, { 0xfcb1, G_UNICODE_NOT_PRESENT_OFFSET, 12335 }, { 0xfcb2, G_UNICODE_NOT_PRESENT_OFFSET, 12806 }, { 0xfcb3, G_UNICODE_NOT_PRESENT_OFFSET, 12340 }, { 0xfcb4, G_UNICODE_NOT_PRESENT_OFFSET, 12345 }, { 0xfcb5, G_UNICODE_NOT_PRESENT_OFFSET, 12350 }, { 0xfcb6, G_UNICODE_NOT_PRESENT_OFFSET, 12355 }, { 0xfcb7, G_UNICODE_NOT_PRESENT_OFFSET, 12360 }, { 0xfcb8, G_UNICODE_NOT_PRESENT_OFFSET, 12365 }, { 0xfcb9, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, { 0xfcba, G_UNICODE_NOT_PRESENT_OFFSET, 12380 }, { 0xfcbb, G_UNICODE_NOT_PRESENT_OFFSET, 12385 }, { 0xfcbc, G_UNICODE_NOT_PRESENT_OFFSET, 12390 }, { 0xfcbd, G_UNICODE_NOT_PRESENT_OFFSET, 12395 }, { 0xfcbe, G_UNICODE_NOT_PRESENT_OFFSET, 12400 }, { 0xfcbf, G_UNICODE_NOT_PRESENT_OFFSET, 12405 }, { 0xfcc0, G_UNICODE_NOT_PRESENT_OFFSET, 12410 }, { 0xfcc1, G_UNICODE_NOT_PRESENT_OFFSET, 12415 }, { 0xfcc2, G_UNICODE_NOT_PRESENT_OFFSET, 12430 }, { 0xfcc3, G_UNICODE_NOT_PRESENT_OFFSET, 12435 }, { 0xfcc4, G_UNICODE_NOT_PRESENT_OFFSET, 12455 }, { 0xfcc5, G_UNICODE_NOT_PRESENT_OFFSET, 12460 }, { 0xfcc6, G_UNICODE_NOT_PRESENT_OFFSET, 12465 }, { 0xfcc7, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfcc8, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfcc9, G_UNICODE_NOT_PRESENT_OFFSET, 12490 }, { 0xfcca, G_UNICODE_NOT_PRESENT_OFFSET, 12495 }, { 0xfccb, G_UNICODE_NOT_PRESENT_OFFSET, 12500 }, { 0xfccc, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfccd, G_UNICODE_NOT_PRESENT_OFFSET, 12811 }, { 0xfcce, G_UNICODE_NOT_PRESENT_OFFSET, 12520 }, { 0xfccf, G_UNICODE_NOT_PRESENT_OFFSET, 12525 }, { 0xfcd0, G_UNICODE_NOT_PRESENT_OFFSET, 12530 }, { 0xfcd1, G_UNICODE_NOT_PRESENT_OFFSET, 12535 }, { 0xfcd2, G_UNICODE_NOT_PRESENT_OFFSET, 12550 }, { 0xfcd3, G_UNICODE_NOT_PRESENT_OFFSET, 12555 }, { 0xfcd4, G_UNICODE_NOT_PRESENT_OFFSET, 12560 }, { 0xfcd5, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfcd6, G_UNICODE_NOT_PRESENT_OFFSET, 12816 }, { 0xfcd7, G_UNICODE_NOT_PRESENT_OFFSET, 12580 }, { 0xfcd8, G_UNICODE_NOT_PRESENT_OFFSET, 12585 }, { 0xfcd9, G_UNICODE_NOT_PRESENT_OFFSET, 12821 }, { 0xfcda, G_UNICODE_NOT_PRESENT_OFFSET, 12600 }, { 0xfcdb, G_UNICODE_NOT_PRESENT_OFFSET, 12605 }, { 0xfcdc, G_UNICODE_NOT_PRESENT_OFFSET, 12610 }, { 0xfcdd, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfcde, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, { 0xfcdf, G_UNICODE_NOT_PRESENT_OFFSET, 12186 }, { 0xfce0, G_UNICODE_NOT_PRESENT_OFFSET, 12789 }, { 0xfce1, G_UNICODE_NOT_PRESENT_OFFSET, 12215 }, { 0xfce2, G_UNICODE_NOT_PRESENT_OFFSET, 12796 }, { 0xfce3, G_UNICODE_NOT_PRESENT_OFFSET, 12245 }, { 0xfce4, G_UNICODE_NOT_PRESENT_OFFSET, 12801 }, { 0xfce5, G_UNICODE_NOT_PRESENT_OFFSET, 12265 }, { 0xfce6, G_UNICODE_NOT_PRESENT_OFFSET, 12831 }, { 0xfce7, G_UNICODE_NOT_PRESENT_OFFSET, 12330 }, { 0xfce8, G_UNICODE_NOT_PRESENT_OFFSET, 12836 }, { 0xfce9, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfcea, G_UNICODE_NOT_PRESENT_OFFSET, 12846 }, { 0xfceb, G_UNICODE_NOT_PRESENT_OFFSET, 12470 }, { 0xfcec, G_UNICODE_NOT_PRESENT_OFFSET, 12475 }, { 0xfced, G_UNICODE_NOT_PRESENT_OFFSET, 12505 }, { 0xfcee, G_UNICODE_NOT_PRESENT_OFFSET, 12565 }, { 0xfcef, G_UNICODE_NOT_PRESENT_OFFSET, 12816 }, { 0xfcf0, G_UNICODE_NOT_PRESENT_OFFSET, 12615 }, { 0xfcf1, G_UNICODE_NOT_PRESENT_OFFSET, 12826 }, { 0xfcf2, G_UNICODE_NOT_PRESENT_OFFSET, 12851 }, { 0xfcf3, G_UNICODE_NOT_PRESENT_OFFSET, 12858 }, { 0xfcf4, G_UNICODE_NOT_PRESENT_OFFSET, 12865 }, { 0xfcf5, G_UNICODE_NOT_PRESENT_OFFSET, 12872 }, { 0xfcf6, G_UNICODE_NOT_PRESENT_OFFSET, 12877 }, { 0xfcf7, G_UNICODE_NOT_PRESENT_OFFSET, 12882 }, { 0xfcf8, G_UNICODE_NOT_PRESENT_OFFSET, 12887 }, { 0xfcf9, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, { 0xfcfa, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, { 0xfcfb, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, { 0xfcfc, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, { 0xfcfd, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, { 0xfcfe, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, { 0xfcff, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, { 0xfd00, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, { 0xfd01, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, { 0xfd02, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, { 0xfd03, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, { 0xfd04, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, { 0xfd05, G_UNICODE_NOT_PRESENT_OFFSET, 12952 }, { 0xfd06, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, { 0xfd07, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, { 0xfd08, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, { 0xfd09, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd0a, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd0b, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd0c, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfd0d, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, { 0xfd0e, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, { 0xfd0f, G_UNICODE_NOT_PRESENT_OFFSET, 12997 }, { 0xfd10, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, { 0xfd11, G_UNICODE_NOT_PRESENT_OFFSET, 12872 }, { 0xfd12, G_UNICODE_NOT_PRESENT_OFFSET, 12877 }, { 0xfd13, G_UNICODE_NOT_PRESENT_OFFSET, 12882 }, { 0xfd14, G_UNICODE_NOT_PRESENT_OFFSET, 12887 }, { 0xfd15, G_UNICODE_NOT_PRESENT_OFFSET, 12892 }, { 0xfd16, G_UNICODE_NOT_PRESENT_OFFSET, 12897 }, { 0xfd17, G_UNICODE_NOT_PRESENT_OFFSET, 12902 }, { 0xfd18, G_UNICODE_NOT_PRESENT_OFFSET, 12907 }, { 0xfd19, G_UNICODE_NOT_PRESENT_OFFSET, 12912 }, { 0xfd1a, G_UNICODE_NOT_PRESENT_OFFSET, 12917 }, { 0xfd1b, G_UNICODE_NOT_PRESENT_OFFSET, 12922 }, { 0xfd1c, G_UNICODE_NOT_PRESENT_OFFSET, 12927 }, { 0xfd1d, G_UNICODE_NOT_PRESENT_OFFSET, 12932 }, { 0xfd1e, G_UNICODE_NOT_PRESENT_OFFSET, 12937 }, { 0xfd1f, G_UNICODE_NOT_PRESENT_OFFSET, 12942 }, { 0xfd20, G_UNICODE_NOT_PRESENT_OFFSET, 12947 }, { 0xfd21, G_UNICODE_NOT_PRESENT_OFFSET, 12952 }, { 0xfd22, G_UNICODE_NOT_PRESENT_OFFSET, 12957 }, { 0xfd23, G_UNICODE_NOT_PRESENT_OFFSET, 12962 }, { 0xfd24, G_UNICODE_NOT_PRESENT_OFFSET, 12967 }, { 0xfd25, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd26, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd27, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd28, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfd29, G_UNICODE_NOT_PRESENT_OFFSET, 12987 }, { 0xfd2a, G_UNICODE_NOT_PRESENT_OFFSET, 12992 }, { 0xfd2b, G_UNICODE_NOT_PRESENT_OFFSET, 12997 }, { 0xfd2c, G_UNICODE_NOT_PRESENT_OFFSET, 13002 }, { 0xfd2d, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd2e, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd2f, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd30, G_UNICODE_NOT_PRESENT_OFFSET, 12841 }, { 0xfd31, G_UNICODE_NOT_PRESENT_OFFSET, 12836 }, { 0xfd32, G_UNICODE_NOT_PRESENT_OFFSET, 12846 }, { 0xfd33, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, { 0xfd34, G_UNICODE_NOT_PRESENT_OFFSET, 12315 }, { 0xfd35, G_UNICODE_NOT_PRESENT_OFFSET, 12320 }, { 0xfd36, G_UNICODE_NOT_PRESENT_OFFSET, 12325 }, { 0xfd37, G_UNICODE_NOT_PRESENT_OFFSET, 12972 }, { 0xfd38, G_UNICODE_NOT_PRESENT_OFFSET, 12977 }, { 0xfd39, G_UNICODE_NOT_PRESENT_OFFSET, 12982 }, { 0xfd3a, G_UNICODE_NOT_PRESENT_OFFSET, 12370 }, { 0xfd3b, G_UNICODE_NOT_PRESENT_OFFSET, 12375 }, { 0xfd3c, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, { 0xfd3d, G_UNICODE_NOT_PRESENT_OFFSET, 13007 }, { 0xfd50, G_UNICODE_NOT_PRESENT_OFFSET, 13012 }, { 0xfd51, G_UNICODE_NOT_PRESENT_OFFSET, 13019 }, { 0xfd52, G_UNICODE_NOT_PRESENT_OFFSET, 13019 }, { 0xfd53, G_UNICODE_NOT_PRESENT_OFFSET, 13026 }, { 0xfd54, G_UNICODE_NOT_PRESENT_OFFSET, 13033 }, { 0xfd55, G_UNICODE_NOT_PRESENT_OFFSET, 13040 }, { 0xfd56, G_UNICODE_NOT_PRESENT_OFFSET, 13047 }, { 0xfd57, G_UNICODE_NOT_PRESENT_OFFSET, 13054 }, { 0xfd58, G_UNICODE_NOT_PRESENT_OFFSET, 13061 }, { 0xfd59, G_UNICODE_NOT_PRESENT_OFFSET, 13061 }, { 0xfd5a, G_UNICODE_NOT_PRESENT_OFFSET, 13068 }, { 0xfd5b, G_UNICODE_NOT_PRESENT_OFFSET, 13075 }, { 0xfd5c, G_UNICODE_NOT_PRESENT_OFFSET, 13082 }, { 0xfd5d, G_UNICODE_NOT_PRESENT_OFFSET, 13089 }, { 0xfd5e, G_UNICODE_NOT_PRESENT_OFFSET, 13096 }, { 0xfd5f, G_UNICODE_NOT_PRESENT_OFFSET, 13103 }, { 0xfd60, G_UNICODE_NOT_PRESENT_OFFSET, 13103 }, { 0xfd61, G_UNICODE_NOT_PRESENT_OFFSET, 13110 }, { 0xfd62, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, { 0xfd63, G_UNICODE_NOT_PRESENT_OFFSET, 13117 }, { 0xfd64, G_UNICODE_NOT_PRESENT_OFFSET, 13124 }, { 0xfd65, G_UNICODE_NOT_PRESENT_OFFSET, 13124 }, { 0xfd66, G_UNICODE_NOT_PRESENT_OFFSET, 13131 }, { 0xfd67, G_UNICODE_NOT_PRESENT_OFFSET, 13138 }, { 0xfd68, G_UNICODE_NOT_PRESENT_OFFSET, 13138 }, { 0xfd69, G_UNICODE_NOT_PRESENT_OFFSET, 13145 }, { 0xfd6a, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, { 0xfd6b, G_UNICODE_NOT_PRESENT_OFFSET, 13152 }, { 0xfd6c, G_UNICODE_NOT_PRESENT_OFFSET, 13159 }, { 0xfd6d, G_UNICODE_NOT_PRESENT_OFFSET, 13159 }, { 0xfd6e, G_UNICODE_NOT_PRESENT_OFFSET, 13166 }, { 0xfd6f, G_UNICODE_NOT_PRESENT_OFFSET, 13173 }, { 0xfd70, G_UNICODE_NOT_PRESENT_OFFSET, 13173 }, { 0xfd71, G_UNICODE_NOT_PRESENT_OFFSET, 13180 }, { 0xfd72, G_UNICODE_NOT_PRESENT_OFFSET, 13180 }, { 0xfd73, G_UNICODE_NOT_PRESENT_OFFSET, 13187 }, { 0xfd74, G_UNICODE_NOT_PRESENT_OFFSET, 13194 }, { 0xfd75, G_UNICODE_NOT_PRESENT_OFFSET, 13201 }, { 0xfd76, G_UNICODE_NOT_PRESENT_OFFSET, 13208 }, { 0xfd77, G_UNICODE_NOT_PRESENT_OFFSET, 13208 }, { 0xfd78, G_UNICODE_NOT_PRESENT_OFFSET, 13215 }, { 0xfd79, G_UNICODE_NOT_PRESENT_OFFSET, 13222 }, { 0xfd7a, G_UNICODE_NOT_PRESENT_OFFSET, 13229 }, { 0xfd7b, G_UNICODE_NOT_PRESENT_OFFSET, 13236 }, { 0xfd7c, G_UNICODE_NOT_PRESENT_OFFSET, 13243 }, { 0xfd7d, G_UNICODE_NOT_PRESENT_OFFSET, 13243 }, { 0xfd7e, G_UNICODE_NOT_PRESENT_OFFSET, 13250 }, { 0xfd7f, G_UNICODE_NOT_PRESENT_OFFSET, 13257 }, { 0xfd80, G_UNICODE_NOT_PRESENT_OFFSET, 13264 }, { 0xfd81, G_UNICODE_NOT_PRESENT_OFFSET, 13271 }, { 0xfd82, G_UNICODE_NOT_PRESENT_OFFSET, 13278 }, { 0xfd83, G_UNICODE_NOT_PRESENT_OFFSET, 13285 }, { 0xfd84, G_UNICODE_NOT_PRESENT_OFFSET, 13285 }, { 0xfd85, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, { 0xfd86, G_UNICODE_NOT_PRESENT_OFFSET, 13292 }, { 0xfd87, G_UNICODE_NOT_PRESENT_OFFSET, 13299 }, { 0xfd88, G_UNICODE_NOT_PRESENT_OFFSET, 13299 }, { 0xfd89, G_UNICODE_NOT_PRESENT_OFFSET, 13306 }, { 0xfd8a, G_UNICODE_NOT_PRESENT_OFFSET, 13313 }, { 0xfd8b, G_UNICODE_NOT_PRESENT_OFFSET, 13320 }, { 0xfd8c, G_UNICODE_NOT_PRESENT_OFFSET, 13327 }, { 0xfd8d, G_UNICODE_NOT_PRESENT_OFFSET, 13334 }, { 0xfd8e, G_UNICODE_NOT_PRESENT_OFFSET, 13341 }, { 0xfd8f, G_UNICODE_NOT_PRESENT_OFFSET, 13348 }, { 0xfd92, G_UNICODE_NOT_PRESENT_OFFSET, 13355 }, { 0xfd93, G_UNICODE_NOT_PRESENT_OFFSET, 13362 }, { 0xfd94, G_UNICODE_NOT_PRESENT_OFFSET, 13369 }, { 0xfd95, G_UNICODE_NOT_PRESENT_OFFSET, 13376 }, { 0xfd96, G_UNICODE_NOT_PRESENT_OFFSET, 13383 }, { 0xfd97, G_UNICODE_NOT_PRESENT_OFFSET, 13390 }, { 0xfd98, G_UNICODE_NOT_PRESENT_OFFSET, 13390 }, { 0xfd99, G_UNICODE_NOT_PRESENT_OFFSET, 13397 }, { 0xfd9a, G_UNICODE_NOT_PRESENT_OFFSET, 13404 }, { 0xfd9b, G_UNICODE_NOT_PRESENT_OFFSET, 13411 }, { 0xfd9c, G_UNICODE_NOT_PRESENT_OFFSET, 13418 }, { 0xfd9d, G_UNICODE_NOT_PRESENT_OFFSET, 13418 }, { 0xfd9e, G_UNICODE_NOT_PRESENT_OFFSET, 13425 }, { 0xfd9f, G_UNICODE_NOT_PRESENT_OFFSET, 13432 }, { 0xfda0, G_UNICODE_NOT_PRESENT_OFFSET, 13439 }, { 0xfda1, G_UNICODE_NOT_PRESENT_OFFSET, 13446 }, { 0xfda2, G_UNICODE_NOT_PRESENT_OFFSET, 13453 }, { 0xfda3, G_UNICODE_NOT_PRESENT_OFFSET, 13460 }, { 0xfda4, G_UNICODE_NOT_PRESENT_OFFSET, 13467 }, { 0xfda5, G_UNICODE_NOT_PRESENT_OFFSET, 13474 }, { 0xfda6, G_UNICODE_NOT_PRESENT_OFFSET, 13481 }, { 0xfda7, G_UNICODE_NOT_PRESENT_OFFSET, 13488 }, { 0xfda8, G_UNICODE_NOT_PRESENT_OFFSET, 13495 }, { 0xfda9, G_UNICODE_NOT_PRESENT_OFFSET, 13502 }, { 0xfdaa, G_UNICODE_NOT_PRESENT_OFFSET, 13509 }, { 0xfdab, G_UNICODE_NOT_PRESENT_OFFSET, 13516 }, { 0xfdac, G_UNICODE_NOT_PRESENT_OFFSET, 13523 }, { 0xfdad, G_UNICODE_NOT_PRESENT_OFFSET, 13530 }, { 0xfdae, G_UNICODE_NOT_PRESENT_OFFSET, 13537 }, { 0xfdaf, G_UNICODE_NOT_PRESENT_OFFSET, 13544 }, { 0xfdb0, G_UNICODE_NOT_PRESENT_OFFSET, 13551 }, { 0xfdb1, G_UNICODE_NOT_PRESENT_OFFSET, 13558 }, { 0xfdb2, G_UNICODE_NOT_PRESENT_OFFSET, 13565 }, { 0xfdb3, G_UNICODE_NOT_PRESENT_OFFSET, 13572 }, { 0xfdb4, G_UNICODE_NOT_PRESENT_OFFSET, 13250 }, { 0xfdb5, G_UNICODE_NOT_PRESENT_OFFSET, 13264 }, { 0xfdb6, G_UNICODE_NOT_PRESENT_OFFSET, 13579 }, { 0xfdb7, G_UNICODE_NOT_PRESENT_OFFSET, 13586 }, { 0xfdb8, G_UNICODE_NOT_PRESENT_OFFSET, 13593 }, { 0xfdb9, G_UNICODE_NOT_PRESENT_OFFSET, 13600 }, { 0xfdba, G_UNICODE_NOT_PRESENT_OFFSET, 13607 }, { 0xfdbb, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, { 0xfdbc, G_UNICODE_NOT_PRESENT_OFFSET, 13607 }, { 0xfdbd, G_UNICODE_NOT_PRESENT_OFFSET, 13593 }, { 0xfdbe, G_UNICODE_NOT_PRESENT_OFFSET, 13621 }, { 0xfdbf, G_UNICODE_NOT_PRESENT_OFFSET, 13628 }, { 0xfdc0, G_UNICODE_NOT_PRESENT_OFFSET, 13635 }, { 0xfdc1, G_UNICODE_NOT_PRESENT_OFFSET, 13642 }, { 0xfdc2, G_UNICODE_NOT_PRESENT_OFFSET, 13649 }, { 0xfdc3, G_UNICODE_NOT_PRESENT_OFFSET, 13614 }, { 0xfdc4, G_UNICODE_NOT_PRESENT_OFFSET, 13201 }, { 0xfdc5, G_UNICODE_NOT_PRESENT_OFFSET, 13131 }, { 0xfdc6, G_UNICODE_NOT_PRESENT_OFFSET, 13656 }, { 0xfdc7, G_UNICODE_NOT_PRESENT_OFFSET, 13663 }, { 0xfdf0, G_UNICODE_NOT_PRESENT_OFFSET, 13670 }, { 0xfdf1, G_UNICODE_NOT_PRESENT_OFFSET, 13677 }, { 0xfdf2, G_UNICODE_NOT_PRESENT_OFFSET, 13684 }, { 0xfdf3, G_UNICODE_NOT_PRESENT_OFFSET, 13693 }, { 0xfdf4, G_UNICODE_NOT_PRESENT_OFFSET, 13702 }, { 0xfdf5, G_UNICODE_NOT_PRESENT_OFFSET, 13711 }, { 0xfdf6, G_UNICODE_NOT_PRESENT_OFFSET, 13720 }, { 0xfdf7, G_UNICODE_NOT_PRESENT_OFFSET, 13729 }, { 0xfdf8, G_UNICODE_NOT_PRESENT_OFFSET, 13738 }, { 0xfdf9, G_UNICODE_NOT_PRESENT_OFFSET, 13747 }, { 0xfdfa, G_UNICODE_NOT_PRESENT_OFFSET, 13754 }, { 0xfdfb, G_UNICODE_NOT_PRESENT_OFFSET, 13788 }, { 0xfdfc, G_UNICODE_NOT_PRESENT_OFFSET, 13804 }, { 0xfe30, G_UNICODE_NOT_PRESENT_OFFSET, 4871 }, { 0xfe31, G_UNICODE_NOT_PRESENT_OFFSET, 13813 }, { 0xfe32, G_UNICODE_NOT_PRESENT_OFFSET, 13817 }, { 0xfe33, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe34, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe35, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0xfe36, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0xfe37, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, { 0xfe38, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, { 0xfe39, G_UNICODE_NOT_PRESENT_OFFSET, 13827 }, { 0xfe3a, G_UNICODE_NOT_PRESENT_OFFSET, 13831 }, { 0xfe3b, G_UNICODE_NOT_PRESENT_OFFSET, 13835 }, { 0xfe3c, G_UNICODE_NOT_PRESENT_OFFSET, 13839 }, { 0xfe3d, G_UNICODE_NOT_PRESENT_OFFSET, 13843 }, { 0xfe3e, G_UNICODE_NOT_PRESENT_OFFSET, 13847 }, { 0xfe3f, G_UNICODE_NOT_PRESENT_OFFSET, 5524 }, { 0xfe40, G_UNICODE_NOT_PRESENT_OFFSET, 5528 }, { 0xfe41, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, { 0xfe42, G_UNICODE_NOT_PRESENT_OFFSET, 13855 }, { 0xfe43, G_UNICODE_NOT_PRESENT_OFFSET, 13859 }, { 0xfe44, G_UNICODE_NOT_PRESENT_OFFSET, 13863 }, { 0xfe49, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4a, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4b, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4c, G_UNICODE_NOT_PRESENT_OFFSET, 4915 }, { 0xfe4d, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe4e, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe4f, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xfe50, G_UNICODE_NOT_PRESENT_OFFSET, 13867 }, { 0xfe51, G_UNICODE_NOT_PRESENT_OFFSET, 13869 }, { 0xfe52, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, { 0xfe54, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, { 0xfe55, G_UNICODE_NOT_PRESENT_OFFSET, 13873 }, { 0xfe56, G_UNICODE_NOT_PRESENT_OFFSET, 13875 }, { 0xfe57, G_UNICODE_NOT_PRESENT_OFFSET, 13877 }, { 0xfe58, G_UNICODE_NOT_PRESENT_OFFSET, 13813 }, { 0xfe59, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0xfe5a, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0xfe5b, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, { 0xfe5c, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, { 0xfe5d, G_UNICODE_NOT_PRESENT_OFFSET, 13827 }, { 0xfe5e, G_UNICODE_NOT_PRESENT_OFFSET, 13831 }, { 0xfe5f, G_UNICODE_NOT_PRESENT_OFFSET, 13879 }, { 0xfe60, G_UNICODE_NOT_PRESENT_OFFSET, 13881 }, { 0xfe61, G_UNICODE_NOT_PRESENT_OFFSET, 13883 }, { 0xfe62, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0xfe63, G_UNICODE_NOT_PRESENT_OFFSET, 13885 }, { 0xfe64, G_UNICODE_NOT_PRESENT_OFFSET, 13887 }, { 0xfe65, G_UNICODE_NOT_PRESENT_OFFSET, 13889 }, { 0xfe66, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0xfe68, G_UNICODE_NOT_PRESENT_OFFSET, 13891 }, { 0xfe69, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, { 0xfe6a, G_UNICODE_NOT_PRESENT_OFFSET, 13895 }, { 0xfe6b, G_UNICODE_NOT_PRESENT_OFFSET, 13897 }, { 0xfe70, G_UNICODE_NOT_PRESENT_OFFSET, 13899 }, { 0xfe71, G_UNICODE_NOT_PRESENT_OFFSET, 13903 }, { 0xfe72, G_UNICODE_NOT_PRESENT_OFFSET, 13908 }, { 0xfe74, G_UNICODE_NOT_PRESENT_OFFSET, 13912 }, { 0xfe76, G_UNICODE_NOT_PRESENT_OFFSET, 13916 }, { 0xfe77, G_UNICODE_NOT_PRESENT_OFFSET, 13920 }, { 0xfe78, G_UNICODE_NOT_PRESENT_OFFSET, 13925 }, { 0xfe79, G_UNICODE_NOT_PRESENT_OFFSET, 13929 }, { 0xfe7a, G_UNICODE_NOT_PRESENT_OFFSET, 13934 }, { 0xfe7b, G_UNICODE_NOT_PRESENT_OFFSET, 13938 }, { 0xfe7c, G_UNICODE_NOT_PRESENT_OFFSET, 13943 }, { 0xfe7d, G_UNICODE_NOT_PRESENT_OFFSET, 13947 }, { 0xfe7e, G_UNICODE_NOT_PRESENT_OFFSET, 13952 }, { 0xfe7f, G_UNICODE_NOT_PRESENT_OFFSET, 13956 }, { 0xfe80, G_UNICODE_NOT_PRESENT_OFFSET, 13961 }, { 0xfe81, G_UNICODE_NOT_PRESENT_OFFSET, 1673 }, { 0xfe82, G_UNICODE_NOT_PRESENT_OFFSET, 1673 }, { 0xfe83, G_UNICODE_NOT_PRESENT_OFFSET, 1678 }, { 0xfe84, G_UNICODE_NOT_PRESENT_OFFSET, 1678 }, { 0xfe85, G_UNICODE_NOT_PRESENT_OFFSET, 1683 }, { 0xfe86, G_UNICODE_NOT_PRESENT_OFFSET, 1683 }, { 0xfe87, G_UNICODE_NOT_PRESENT_OFFSET, 1688 }, { 0xfe88, G_UNICODE_NOT_PRESENT_OFFSET, 1688 }, { 0xfe89, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8a, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8b, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8c, G_UNICODE_NOT_PRESENT_OFFSET, 1693 }, { 0xfe8d, G_UNICODE_NOT_PRESENT_OFFSET, 13964 }, { 0xfe8e, G_UNICODE_NOT_PRESENT_OFFSET, 13964 }, { 0xfe8f, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe90, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe91, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe92, G_UNICODE_NOT_PRESENT_OFFSET, 13967 }, { 0xfe93, G_UNICODE_NOT_PRESENT_OFFSET, 13970 }, { 0xfe94, G_UNICODE_NOT_PRESENT_OFFSET, 13970 }, { 0xfe95, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe96, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe97, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe98, G_UNICODE_NOT_PRESENT_OFFSET, 13973 }, { 0xfe99, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9a, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9b, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9c, G_UNICODE_NOT_PRESENT_OFFSET, 13976 }, { 0xfe9d, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfe9e, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfe9f, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfea0, G_UNICODE_NOT_PRESENT_OFFSET, 13979 }, { 0xfea1, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea2, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea3, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea4, G_UNICODE_NOT_PRESENT_OFFSET, 13982 }, { 0xfea5, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea6, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea7, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea8, G_UNICODE_NOT_PRESENT_OFFSET, 13985 }, { 0xfea9, G_UNICODE_NOT_PRESENT_OFFSET, 13988 }, { 0xfeaa, G_UNICODE_NOT_PRESENT_OFFSET, 13988 }, { 0xfeab, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, { 0xfeac, G_UNICODE_NOT_PRESENT_OFFSET, 13991 }, { 0xfead, G_UNICODE_NOT_PRESENT_OFFSET, 13994 }, { 0xfeae, G_UNICODE_NOT_PRESENT_OFFSET, 13994 }, { 0xfeaf, G_UNICODE_NOT_PRESENT_OFFSET, 13997 }, { 0xfeb0, G_UNICODE_NOT_PRESENT_OFFSET, 13997 }, { 0xfeb1, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb2, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb3, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb4, G_UNICODE_NOT_PRESENT_OFFSET, 14000 }, { 0xfeb5, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb6, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb7, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb8, G_UNICODE_NOT_PRESENT_OFFSET, 14003 }, { 0xfeb9, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfeba, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfebb, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfebc, G_UNICODE_NOT_PRESENT_OFFSET, 14006 }, { 0xfebd, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfebe, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfebf, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfec0, G_UNICODE_NOT_PRESENT_OFFSET, 14009 }, { 0xfec1, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec2, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec3, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec4, G_UNICODE_NOT_PRESENT_OFFSET, 14012 }, { 0xfec5, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec6, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec7, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec8, G_UNICODE_NOT_PRESENT_OFFSET, 14015 }, { 0xfec9, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfeca, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfecb, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfecc, G_UNICODE_NOT_PRESENT_OFFSET, 14018 }, { 0xfecd, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfece, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfecf, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfed0, G_UNICODE_NOT_PRESENT_OFFSET, 14021 }, { 0xfed1, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed2, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed3, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed4, G_UNICODE_NOT_PRESENT_OFFSET, 14024 }, { 0xfed5, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed6, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed7, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed8, G_UNICODE_NOT_PRESENT_OFFSET, 14027 }, { 0xfed9, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfeda, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfedb, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfedc, G_UNICODE_NOT_PRESENT_OFFSET, 14030 }, { 0xfedd, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfede, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfedf, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfee0, G_UNICODE_NOT_PRESENT_OFFSET, 14033 }, { 0xfee1, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee2, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee3, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee4, G_UNICODE_NOT_PRESENT_OFFSET, 14036 }, { 0xfee5, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee6, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee7, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee8, G_UNICODE_NOT_PRESENT_OFFSET, 14039 }, { 0xfee9, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeea, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeeb, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeec, G_UNICODE_NOT_PRESENT_OFFSET, 14042 }, { 0xfeed, G_UNICODE_NOT_PRESENT_OFFSET, 14045 }, { 0xfeee, G_UNICODE_NOT_PRESENT_OFFSET, 14045 }, { 0xfeef, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfef0, G_UNICODE_NOT_PRESENT_OFFSET, 12110 }, { 0xfef1, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef2, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef3, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef4, G_UNICODE_NOT_PRESENT_OFFSET, 14048 }, { 0xfef5, G_UNICODE_NOT_PRESENT_OFFSET, 14051 }, { 0xfef6, G_UNICODE_NOT_PRESENT_OFFSET, 14051 }, { 0xfef7, G_UNICODE_NOT_PRESENT_OFFSET, 14058 }, { 0xfef8, G_UNICODE_NOT_PRESENT_OFFSET, 14058 }, { 0xfef9, G_UNICODE_NOT_PRESENT_OFFSET, 14065 }, { 0xfefa, G_UNICODE_NOT_PRESENT_OFFSET, 14065 }, { 0xfefb, G_UNICODE_NOT_PRESENT_OFFSET, 14072 }, { 0xfefc, G_UNICODE_NOT_PRESENT_OFFSET, 14072 }, { 0xff01, G_UNICODE_NOT_PRESENT_OFFSET, 13877 }, { 0xff02, G_UNICODE_NOT_PRESENT_OFFSET, 14077 }, { 0xff03, G_UNICODE_NOT_PRESENT_OFFSET, 13879 }, { 0xff04, G_UNICODE_NOT_PRESENT_OFFSET, 13893 }, { 0xff05, G_UNICODE_NOT_PRESENT_OFFSET, 13895 }, { 0xff06, G_UNICODE_NOT_PRESENT_OFFSET, 13881 }, { 0xff07, G_UNICODE_NOT_PRESENT_OFFSET, 14079 }, { 0xff08, G_UNICODE_NOT_PRESENT_OFFSET, 4965 }, { 0xff09, G_UNICODE_NOT_PRESENT_OFFSET, 4967 }, { 0xff0a, G_UNICODE_NOT_PRESENT_OFFSET, 13883 }, { 0xff0b, G_UNICODE_NOT_PRESENT_OFFSET, 4957 }, { 0xff0c, G_UNICODE_NOT_PRESENT_OFFSET, 13867 }, { 0xff0d, G_UNICODE_NOT_PRESENT_OFFSET, 13885 }, { 0xff0e, G_UNICODE_NOT_PRESENT_OFFSET, 4869 }, { 0xff0f, G_UNICODE_NOT_PRESENT_OFFSET, 14081 }, { 0xff10, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0xff11, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0xff12, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0xff13, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0xff14, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0xff15, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0xff16, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0xff17, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0xff18, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0xff19, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0xff1a, G_UNICODE_NOT_PRESENT_OFFSET, 13873 }, { 0xff1b, G_UNICODE_NOT_PRESENT_OFFSET, 1248 }, { 0xff1c, G_UNICODE_NOT_PRESENT_OFFSET, 13887 }, { 0xff1d, G_UNICODE_NOT_PRESENT_OFFSET, 4963 }, { 0xff1e, G_UNICODE_NOT_PRESENT_OFFSET, 13889 }, { 0xff1f, G_UNICODE_NOT_PRESENT_OFFSET, 13875 }, { 0xff20, G_UNICODE_NOT_PRESENT_OFFSET, 13897 }, { 0xff21, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0xff22, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0xff23, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0xff24, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0xff25, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0xff26, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0xff27, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0xff28, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0xff29, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0xff2a, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0xff2b, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0xff2c, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0xff2d, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0xff2e, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0xff2f, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0xff30, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0xff31, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0xff32, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0xff33, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0xff34, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0xff35, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0xff36, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0xff37, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0xff38, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0xff39, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0xff3a, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0xff3b, G_UNICODE_NOT_PRESENT_OFFSET, 14083 }, { 0xff3c, G_UNICODE_NOT_PRESENT_OFFSET, 13891 }, { 0xff3d, G_UNICODE_NOT_PRESENT_OFFSET, 14085 }, { 0xff3e, G_UNICODE_NOT_PRESENT_OFFSET, 14087 }, { 0xff3f, G_UNICODE_NOT_PRESENT_OFFSET, 13821 }, { 0xff40, G_UNICODE_NOT_PRESENT_OFFSET, 4798 }, { 0xff41, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0xff42, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0xff43, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0xff44, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0xff45, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0xff46, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0xff47, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0xff48, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0xff49, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0xff4a, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0xff4b, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0xff4c, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0xff4d, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0xff4e, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0xff4f, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0xff50, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0xff51, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0xff52, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0xff53, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0xff54, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0xff55, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0xff56, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0xff57, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0xff58, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0xff59, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0xff5a, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0xff5b, G_UNICODE_NOT_PRESENT_OFFSET, 13823 }, { 0xff5c, G_UNICODE_NOT_PRESENT_OFFSET, 14089 }, { 0xff5d, G_UNICODE_NOT_PRESENT_OFFSET, 13825 }, { 0xff5e, G_UNICODE_NOT_PRESENT_OFFSET, 14091 }, { 0xff5f, G_UNICODE_NOT_PRESENT_OFFSET, 14093 }, { 0xff60, G_UNICODE_NOT_PRESENT_OFFSET, 14097 }, { 0xff61, G_UNICODE_NOT_PRESENT_OFFSET, 14101 }, { 0xff62, G_UNICODE_NOT_PRESENT_OFFSET, 13851 }, { 0xff63, G_UNICODE_NOT_PRESENT_OFFSET, 13855 }, { 0xff64, G_UNICODE_NOT_PRESENT_OFFSET, 13869 }, { 0xff65, G_UNICODE_NOT_PRESENT_OFFSET, 14105 }, { 0xff66, G_UNICODE_NOT_PRESENT_OFFSET, 8615 }, { 0xff67, G_UNICODE_NOT_PRESENT_OFFSET, 14109 }, { 0xff68, G_UNICODE_NOT_PRESENT_OFFSET, 14113 }, { 0xff69, G_UNICODE_NOT_PRESENT_OFFSET, 14117 }, { 0xff6a, G_UNICODE_NOT_PRESENT_OFFSET, 14121 }, { 0xff6b, G_UNICODE_NOT_PRESENT_OFFSET, 14125 }, { 0xff6c, G_UNICODE_NOT_PRESENT_OFFSET, 14129 }, { 0xff6d, G_UNICODE_NOT_PRESENT_OFFSET, 14133 }, { 0xff6e, G_UNICODE_NOT_PRESENT_OFFSET, 14137 }, { 0xff6f, G_UNICODE_NOT_PRESENT_OFFSET, 14141 }, { 0xff70, G_UNICODE_NOT_PRESENT_OFFSET, 14145 }, { 0xff71, G_UNICODE_NOT_PRESENT_OFFSET, 8431 }, { 0xff72, G_UNICODE_NOT_PRESENT_OFFSET, 8435 }, { 0xff73, G_UNICODE_NOT_PRESENT_OFFSET, 8439 }, { 0xff74, G_UNICODE_NOT_PRESENT_OFFSET, 8443 }, { 0xff75, G_UNICODE_NOT_PRESENT_OFFSET, 8447 }, { 0xff76, G_UNICODE_NOT_PRESENT_OFFSET, 8451 }, { 0xff77, G_UNICODE_NOT_PRESENT_OFFSET, 8455 }, { 0xff78, G_UNICODE_NOT_PRESENT_OFFSET, 8459 }, { 0xff79, G_UNICODE_NOT_PRESENT_OFFSET, 8463 }, { 0xff7a, G_UNICODE_NOT_PRESENT_OFFSET, 8467 }, { 0xff7b, G_UNICODE_NOT_PRESENT_OFFSET, 8471 }, { 0xff7c, G_UNICODE_NOT_PRESENT_OFFSET, 8475 }, { 0xff7d, G_UNICODE_NOT_PRESENT_OFFSET, 8479 }, { 0xff7e, G_UNICODE_NOT_PRESENT_OFFSET, 8483 }, { 0xff7f, G_UNICODE_NOT_PRESENT_OFFSET, 8487 }, { 0xff80, G_UNICODE_NOT_PRESENT_OFFSET, 8491 }, { 0xff81, G_UNICODE_NOT_PRESENT_OFFSET, 8495 }, { 0xff82, G_UNICODE_NOT_PRESENT_OFFSET, 8499 }, { 0xff83, G_UNICODE_NOT_PRESENT_OFFSET, 8503 }, { 0xff84, G_UNICODE_NOT_PRESENT_OFFSET, 8507 }, { 0xff85, G_UNICODE_NOT_PRESENT_OFFSET, 8511 }, { 0xff86, G_UNICODE_NOT_PRESENT_OFFSET, 8515 }, { 0xff87, G_UNICODE_NOT_PRESENT_OFFSET, 8519 }, { 0xff88, G_UNICODE_NOT_PRESENT_OFFSET, 8523 }, { 0xff89, G_UNICODE_NOT_PRESENT_OFFSET, 8527 }, { 0xff8a, G_UNICODE_NOT_PRESENT_OFFSET, 8531 }, { 0xff8b, G_UNICODE_NOT_PRESENT_OFFSET, 8535 }, { 0xff8c, G_UNICODE_NOT_PRESENT_OFFSET, 8539 }, { 0xff8d, G_UNICODE_NOT_PRESENT_OFFSET, 8543 }, { 0xff8e, G_UNICODE_NOT_PRESENT_OFFSET, 8547 }, { 0xff8f, G_UNICODE_NOT_PRESENT_OFFSET, 8551 }, { 0xff90, G_UNICODE_NOT_PRESENT_OFFSET, 8555 }, { 0xff91, G_UNICODE_NOT_PRESENT_OFFSET, 8559 }, { 0xff92, G_UNICODE_NOT_PRESENT_OFFSET, 8563 }, { 0xff93, G_UNICODE_NOT_PRESENT_OFFSET, 8567 }, { 0xff94, G_UNICODE_NOT_PRESENT_OFFSET, 8571 }, { 0xff95, G_UNICODE_NOT_PRESENT_OFFSET, 8575 }, { 0xff96, G_UNICODE_NOT_PRESENT_OFFSET, 8579 }, { 0xff97, G_UNICODE_NOT_PRESENT_OFFSET, 8583 }, { 0xff98, G_UNICODE_NOT_PRESENT_OFFSET, 8587 }, { 0xff99, G_UNICODE_NOT_PRESENT_OFFSET, 8591 }, { 0xff9a, G_UNICODE_NOT_PRESENT_OFFSET, 8595 }, { 0xff9b, G_UNICODE_NOT_PRESENT_OFFSET, 8599 }, { 0xff9c, G_UNICODE_NOT_PRESENT_OFFSET, 8603 }, { 0xff9d, G_UNICODE_NOT_PRESENT_OFFSET, 14149 }, { 0xff9e, G_UNICODE_NOT_PRESENT_OFFSET, 14153 }, { 0xff9f, G_UNICODE_NOT_PRESENT_OFFSET, 14157 }, { 0xffa0, G_UNICODE_NOT_PRESENT_OFFSET, 7405 }, { 0xffa1, G_UNICODE_NOT_PRESENT_OFFSET, 7201 }, { 0xffa2, G_UNICODE_NOT_PRESENT_OFFSET, 7205 }, { 0xffa3, G_UNICODE_NOT_PRESENT_OFFSET, 7209 }, { 0xffa4, G_UNICODE_NOT_PRESENT_OFFSET, 7213 }, { 0xffa5, G_UNICODE_NOT_PRESENT_OFFSET, 7217 }, { 0xffa6, G_UNICODE_NOT_PRESENT_OFFSET, 7221 }, { 0xffa7, G_UNICODE_NOT_PRESENT_OFFSET, 7225 }, { 0xffa8, G_UNICODE_NOT_PRESENT_OFFSET, 7229 }, { 0xffa9, G_UNICODE_NOT_PRESENT_OFFSET, 7233 }, { 0xffaa, G_UNICODE_NOT_PRESENT_OFFSET, 7237 }, { 0xffab, G_UNICODE_NOT_PRESENT_OFFSET, 7241 }, { 0xffac, G_UNICODE_NOT_PRESENT_OFFSET, 7245 }, { 0xffad, G_UNICODE_NOT_PRESENT_OFFSET, 7249 }, { 0xffae, G_UNICODE_NOT_PRESENT_OFFSET, 7253 }, { 0xffaf, G_UNICODE_NOT_PRESENT_OFFSET, 7257 }, { 0xffb0, G_UNICODE_NOT_PRESENT_OFFSET, 7261 }, { 0xffb1, G_UNICODE_NOT_PRESENT_OFFSET, 7265 }, { 0xffb2, G_UNICODE_NOT_PRESENT_OFFSET, 7269 }, { 0xffb3, G_UNICODE_NOT_PRESENT_OFFSET, 7273 }, { 0xffb4, G_UNICODE_NOT_PRESENT_OFFSET, 7277 }, { 0xffb5, G_UNICODE_NOT_PRESENT_OFFSET, 7281 }, { 0xffb6, G_UNICODE_NOT_PRESENT_OFFSET, 7285 }, { 0xffb7, G_UNICODE_NOT_PRESENT_OFFSET, 7289 }, { 0xffb8, G_UNICODE_NOT_PRESENT_OFFSET, 7293 }, { 0xffb9, G_UNICODE_NOT_PRESENT_OFFSET, 7297 }, { 0xffba, G_UNICODE_NOT_PRESENT_OFFSET, 7301 }, { 0xffbb, G_UNICODE_NOT_PRESENT_OFFSET, 7305 }, { 0xffbc, G_UNICODE_NOT_PRESENT_OFFSET, 7309 }, { 0xffbd, G_UNICODE_NOT_PRESENT_OFFSET, 7313 }, { 0xffbe, G_UNICODE_NOT_PRESENT_OFFSET, 7317 }, { 0xffc2, G_UNICODE_NOT_PRESENT_OFFSET, 7321 }, { 0xffc3, G_UNICODE_NOT_PRESENT_OFFSET, 7325 }, { 0xffc4, G_UNICODE_NOT_PRESENT_OFFSET, 7329 }, { 0xffc5, G_UNICODE_NOT_PRESENT_OFFSET, 7333 }, { 0xffc6, G_UNICODE_NOT_PRESENT_OFFSET, 7337 }, { 0xffc7, G_UNICODE_NOT_PRESENT_OFFSET, 7341 }, { 0xffca, G_UNICODE_NOT_PRESENT_OFFSET, 7345 }, { 0xffcb, G_UNICODE_NOT_PRESENT_OFFSET, 7349 }, { 0xffcc, G_UNICODE_NOT_PRESENT_OFFSET, 7353 }, { 0xffcd, G_UNICODE_NOT_PRESENT_OFFSET, 7357 }, { 0xffce, G_UNICODE_NOT_PRESENT_OFFSET, 7361 }, { 0xffcf, G_UNICODE_NOT_PRESENT_OFFSET, 7365 }, { 0xffd2, G_UNICODE_NOT_PRESENT_OFFSET, 7369 }, { 0xffd3, G_UNICODE_NOT_PRESENT_OFFSET, 7373 }, { 0xffd4, G_UNICODE_NOT_PRESENT_OFFSET, 7377 }, { 0xffd5, G_UNICODE_NOT_PRESENT_OFFSET, 7381 }, { 0xffd6, G_UNICODE_NOT_PRESENT_OFFSET, 7385 }, { 0xffd7, G_UNICODE_NOT_PRESENT_OFFSET, 7389 }, { 0xffda, G_UNICODE_NOT_PRESENT_OFFSET, 7393 }, { 0xffdb, G_UNICODE_NOT_PRESENT_OFFSET, 7397 }, { 0xffdc, G_UNICODE_NOT_PRESENT_OFFSET, 7401 }, { 0xffe0, G_UNICODE_NOT_PRESENT_OFFSET, 14161 }, { 0xffe1, G_UNICODE_NOT_PRESENT_OFFSET, 14164 }, { 0xffe2, G_UNICODE_NOT_PRESENT_OFFSET, 14167 }, { 0xffe3, G_UNICODE_NOT_PRESENT_OFFSET, 8 }, { 0xffe4, G_UNICODE_NOT_PRESENT_OFFSET, 14170 }, { 0xffe5, G_UNICODE_NOT_PRESENT_OFFSET, 14173 }, { 0xffe6, G_UNICODE_NOT_PRESENT_OFFSET, 14176 }, { 0xffe8, G_UNICODE_NOT_PRESENT_OFFSET, 14180 }, { 0xffe9, G_UNICODE_NOT_PRESENT_OFFSET, 14184 }, { 0xffea, G_UNICODE_NOT_PRESENT_OFFSET, 14188 }, { 0xffeb, G_UNICODE_NOT_PRESENT_OFFSET, 14192 }, { 0xffec, G_UNICODE_NOT_PRESENT_OFFSET, 14196 }, { 0xffed, G_UNICODE_NOT_PRESENT_OFFSET, 14200 }, { 0xffee, G_UNICODE_NOT_PRESENT_OFFSET, 14204 }, { 0x1d15e, 14208, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d15f, 14217, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d160, 14226, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d161, 14239, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d162, 14252, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d163, 14265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d164, 14278, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bb, 14291, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bc, 14300, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bd, 14309, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1be, 14322, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1bf, 14335, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d1c0, 14348, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x1d400, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d401, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d402, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d403, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d404, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d405, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d406, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d407, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d408, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d409, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d40a, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d40b, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d40c, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d40d, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d40e, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d40f, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d410, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d411, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d412, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d413, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d414, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d415, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d416, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d417, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d418, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d419, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d41a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d41b, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d41c, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d41d, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d41e, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d41f, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d420, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d421, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d422, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d423, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d424, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d425, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d426, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d427, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d428, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d429, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d42a, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d42b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d42c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d42d, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d42e, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d42f, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d430, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d431, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d432, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d433, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d434, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d435, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d436, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d437, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d438, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d439, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d43a, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d43b, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d43c, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d43d, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d43e, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d43f, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d440, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d441, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d442, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d443, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d444, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d445, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d446, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d447, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d448, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d449, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d44a, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d44b, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d44c, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d44d, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d44e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d44f, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d450, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d451, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d452, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d453, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d454, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d456, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d457, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d458, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d459, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d45a, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d45b, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d45c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d45d, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d45e, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d45f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d460, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d461, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d462, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d463, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d464, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d465, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d466, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d467, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d468, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d469, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d46a, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d46b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d46c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d46d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d46e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d46f, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d470, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d471, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d472, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d473, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d474, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d475, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d476, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d477, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d478, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d479, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d47a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d47b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d47c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d47d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d47e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d47f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d480, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d481, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d482, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d483, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d484, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d485, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d486, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d487, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d488, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d489, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d48a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d48b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d48c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d48d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d48e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d48f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d490, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d491, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d492, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d493, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d494, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d495, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d496, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d497, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d498, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d499, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d49a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d49b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d49c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d49e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d49f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d4a2, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d4a5, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d4a6, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d4a9, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d4aa, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d4ab, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d4ac, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d4ae, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d4af, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d4b0, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d4b1, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d4b2, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d4b3, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d4b4, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d4b5, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d4b6, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d4b7, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d4b8, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d4b9, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d4bb, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d4bd, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d4be, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d4bf, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d4c0, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d4c2, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d4c3, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d4c5, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d4c6, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d4c7, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d4c8, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d4c9, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d4ca, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d4cb, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d4cc, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d4cd, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d4ce, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d4cf, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d4d0, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d4d1, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d4d2, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d4d3, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d4d4, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d4d5, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d4d6, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d4d7, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d4d8, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d4d9, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d4da, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d4db, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d4dc, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d4dd, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d4de, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d4df, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d4e0, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d4e1, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d4e2, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d4e3, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d4e4, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d4e5, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d4e6, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d4e7, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d4e8, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d4e9, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d4ea, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d4eb, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d4ec, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d4ed, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d4ee, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d4ef, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d4f0, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d4f1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d4f2, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d4f3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d4f4, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d4f5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d4f6, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d4f7, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d4f8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d4f9, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d4fa, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d4fb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d4fc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d4fd, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d4fe, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d4ff, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d500, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d501, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d502, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d503, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d504, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d505, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d507, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d508, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d509, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d50a, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d50d, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d50e, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d50f, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d510, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d511, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d512, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d513, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d514, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d516, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d517, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d518, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d519, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d51a, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d51b, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d51c, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d51e, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d51f, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d520, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d521, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d522, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d523, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d524, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d525, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d526, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d527, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d528, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d529, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d52a, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d52b, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d52c, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d52d, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d52e, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d52f, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d530, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d531, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d532, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d533, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d534, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d535, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d536, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d537, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d538, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d539, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d53b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d53c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d53d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d53e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d540, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d541, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d542, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d543, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d544, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d546, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d54a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d54b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d54c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d54d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d54e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d54f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d550, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d552, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d553, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d554, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d555, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d556, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d557, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d558, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d559, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d55a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d55b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d55c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d55d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d55e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d55f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d560, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d561, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d562, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d563, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d564, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d565, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d566, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d567, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d568, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d569, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d56a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d56b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d56c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d56d, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d56e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d56f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d570, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d571, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d572, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d573, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d574, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d575, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d576, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d577, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d578, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d579, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d57a, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d57b, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d57c, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d57d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d57e, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d57f, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d580, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d581, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d582, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d583, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d584, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d585, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d586, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d587, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d588, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d589, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d58a, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d58b, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d58c, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d58d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d58e, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d58f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d590, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d591, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d592, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d593, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d594, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d595, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d596, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d597, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d598, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d599, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d59a, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d59b, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d59c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d59d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d59e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d59f, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d5a0, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d5a1, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d5a2, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d5a3, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d5a4, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d5a5, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d5a6, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d5a7, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d5a8, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d5a9, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d5aa, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d5ab, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d5ac, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d5ad, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d5ae, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d5af, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d5b0, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d5b1, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d5b2, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d5b3, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d5b4, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d5b5, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d5b6, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d5b7, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d5b8, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d5b9, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d5ba, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d5bb, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d5bc, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d5bd, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d5be, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d5bf, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d5c0, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d5c1, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d5c2, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d5c3, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d5c4, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d5c5, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d5c6, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d5c7, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d5c8, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d5c9, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d5ca, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d5cb, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d5cc, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d5cd, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d5ce, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d5cf, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d5d0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d5d1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d5d2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d5d3, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d5d4, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d5d5, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d5d6, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d5d7, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d5d8, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d5d9, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d5da, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d5db, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d5dc, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d5dd, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d5de, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d5df, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d5e0, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d5e1, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d5e2, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d5e3, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d5e4, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d5e5, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d5e6, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d5e7, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d5e8, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d5e9, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d5ea, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d5eb, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d5ec, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d5ed, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d5ee, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d5ef, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d5f0, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d5f1, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d5f2, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d5f3, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d5f4, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d5f5, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d5f6, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d5f7, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d5f8, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d5f9, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d5fa, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d5fb, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d5fc, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d5fd, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d5fe, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d5ff, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d600, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d601, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d602, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d603, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d604, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d605, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d606, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d607, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d608, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d609, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d60a, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d60b, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d60c, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d60d, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d60e, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d60f, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d610, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d611, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d612, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d613, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d614, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d615, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d616, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d617, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d618, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d619, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d61a, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d61b, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d61c, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d61d, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d61e, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d61f, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d620, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d621, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d622, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d623, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d624, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d625, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d626, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d627, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d628, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d629, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d62a, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d62b, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d62c, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d62d, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d62e, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d62f, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d630, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d631, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d632, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d633, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d634, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d635, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d636, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d637, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d638, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d639, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d63a, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d63b, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d63c, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d63d, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d63e, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d63f, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d640, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d641, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d642, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d643, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d644, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d645, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d646, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d647, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d648, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d649, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d64a, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d64b, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d64c, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d64d, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d64e, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d64f, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d650, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d651, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d652, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d653, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d654, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d655, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d656, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d657, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d658, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d659, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d65a, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d65b, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d65c, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d65d, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d65e, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d65f, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d660, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d661, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d662, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d663, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d664, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d665, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d666, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d667, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d668, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d669, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d66a, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d66b, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d66c, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d66d, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d66e, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d66f, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d670, G_UNICODE_NOT_PRESENT_OFFSET, 5831 }, { 0x1d671, G_UNICODE_NOT_PRESENT_OFFSET, 5042 }, { 0x1d672, G_UNICODE_NOT_PRESENT_OFFSET, 4982 }, { 0x1d673, G_UNICODE_NOT_PRESENT_OFFSET, 5077 }, { 0x1d674, G_UNICODE_NOT_PRESENT_OFFSET, 5046 }, { 0x1d675, G_UNICODE_NOT_PRESENT_OFFSET, 5048 }, { 0x1d676, G_UNICODE_NOT_PRESENT_OFFSET, 5833 }, { 0x1d677, G_UNICODE_NOT_PRESENT_OFFSET, 5005 }, { 0x1d678, G_UNICODE_NOT_PRESENT_OFFSET, 5010 }, { 0x1d679, G_UNICODE_NOT_PRESENT_OFFSET, 5835 }, { 0x1d67a, G_UNICODE_NOT_PRESENT_OFFSET, 5040 }, { 0x1d67b, G_UNICODE_NOT_PRESENT_OFFSET, 5012 }, { 0x1d67c, G_UNICODE_NOT_PRESENT_OFFSET, 5050 }, { 0x1d67d, G_UNICODE_NOT_PRESENT_OFFSET, 5014 }, { 0x1d67e, G_UNICODE_NOT_PRESENT_OFFSET, 5837 }, { 0x1d67f, G_UNICODE_NOT_PRESENT_OFFSET, 5019 }, { 0x1d680, G_UNICODE_NOT_PRESENT_OFFSET, 5021 }, { 0x1d681, G_UNICODE_NOT_PRESENT_OFFSET, 5023 }, { 0x1d682, G_UNICODE_NOT_PRESENT_OFFSET, 5839 }, { 0x1d683, G_UNICODE_NOT_PRESENT_OFFSET, 5841 }, { 0x1d684, G_UNICODE_NOT_PRESENT_OFFSET, 5843 }, { 0x1d685, G_UNICODE_NOT_PRESENT_OFFSET, 5168 }, { 0x1d686, G_UNICODE_NOT_PRESENT_OFFSET, 5845 }, { 0x1d687, G_UNICODE_NOT_PRESENT_OFFSET, 5185 }, { 0x1d688, G_UNICODE_NOT_PRESENT_OFFSET, 5847 }, { 0x1d689, G_UNICODE_NOT_PRESENT_OFFSET, 5035 }, { 0x1d68a, G_UNICODE_NOT_PRESENT_OFFSET, 6 }, { 0x1d68b, G_UNICODE_NOT_PRESENT_OFFSET, 5849 }, { 0x1d68c, G_UNICODE_NOT_PRESENT_OFFSET, 5228 }, { 0x1d68d, G_UNICODE_NOT_PRESENT_OFFSET, 5079 }, { 0x1d68e, G_UNICODE_NOT_PRESENT_OFFSET, 5044 }, { 0x1d68f, G_UNICODE_NOT_PRESENT_OFFSET, 5851 }, { 0x1d690, G_UNICODE_NOT_PRESENT_OFFSET, 5003 }, { 0x1d691, G_UNICODE_NOT_PRESENT_OFFSET, 1171 }, { 0x1d692, G_UNICODE_NOT_PRESENT_OFFSET, 4943 }, { 0x1d693, G_UNICODE_NOT_PRESENT_OFFSET, 1176 }, { 0x1d694, G_UNICODE_NOT_PRESENT_OFFSET, 5853 }, { 0x1d695, G_UNICODE_NOT_PRESENT_OFFSET, 1220 }, { 0x1d696, G_UNICODE_NOT_PRESENT_OFFSET, 5230 }, { 0x1d697, G_UNICODE_NOT_PRESENT_OFFSET, 4969 }, { 0x1d698, G_UNICODE_NOT_PRESENT_OFFSET, 29 }, { 0x1d699, G_UNICODE_NOT_PRESENT_OFFSET, 5855 }, { 0x1d69a, G_UNICODE_NOT_PRESENT_OFFSET, 5857 }, { 0x1d69b, G_UNICODE_NOT_PRESENT_OFFSET, 1178 }, { 0x1d69c, G_UNICODE_NOT_PRESENT_OFFSET, 711 }, { 0x1d69d, G_UNICODE_NOT_PRESENT_OFFSET, 5859 }, { 0x1d69e, G_UNICODE_NOT_PRESENT_OFFSET, 5861 }, { 0x1d69f, G_UNICODE_NOT_PRESENT_OFFSET, 5204 }, { 0x1d6a0, G_UNICODE_NOT_PRESENT_OFFSET, 1189 }, { 0x1d6a1, G_UNICODE_NOT_PRESENT_OFFSET, 1222 }, { 0x1d6a2, G_UNICODE_NOT_PRESENT_OFFSET, 1191 }, { 0x1d6a3, G_UNICODE_NOT_PRESENT_OFFSET, 5863 }, { 0x1d6a8, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d6a9, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d6aa, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d6ab, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d6ac, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d6ad, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d6ae, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d6af, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6b0, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d6b1, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d6b2, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d6b3, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d6b4, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d6b5, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d6b6, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d6b7, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d6b8, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d6b9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6ba, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d6bb, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d6bc, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d6bd, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d6be, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d6bf, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d6c0, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d6c1, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d6c2, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d6c3, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d6c4, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d6c5, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d6c6, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d6c7, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d6c8, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d6c9, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d6ca, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d6cb, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d6cc, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d6cd, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d6ce, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d6cf, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d6d0, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d6d1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d6d2, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d6d3, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d6d4, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d6d5, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d6d6, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d6d7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d6d8, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d6d9, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d6da, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d6db, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d6dc, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d6dd, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d6de, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d6df, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d6e0, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d6e1, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d6e2, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d6e3, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d6e4, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d6e5, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d6e6, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d6e7, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d6e8, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d6e9, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6ea, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d6eb, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d6ec, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d6ed, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d6ee, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d6ef, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d6f0, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d6f1, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d6f2, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d6f3, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d6f4, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d6f5, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d6f6, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d6f7, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d6f8, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d6f9, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d6fa, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d6fb, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d6fc, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d6fd, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d6fe, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d6ff, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d700, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d701, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d702, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d703, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d704, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d705, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d706, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d707, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d708, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d709, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d70a, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d70b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d70c, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d70d, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d70e, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d70f, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d710, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d711, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d712, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d713, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d714, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d715, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d716, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d717, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d718, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d719, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d71a, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d71b, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d71c, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d71d, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d71e, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d71f, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d720, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d721, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d722, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d723, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d724, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d725, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d726, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d727, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d728, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d729, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d72a, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d72b, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d72c, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d72d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d72e, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d72f, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d730, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d731, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d732, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d733, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d734, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d735, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d736, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d737, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d738, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d739, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d73a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d73b, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d73c, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d73d, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d73e, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d73f, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d740, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d741, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d742, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d743, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d744, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d745, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d746, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d747, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d748, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d749, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d74a, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d74b, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d74c, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d74d, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d74e, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d74f, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d750, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d751, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d752, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d753, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d754, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d755, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d756, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d757, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d758, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d759, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d75a, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d75b, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d75c, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d75d, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d75e, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d75f, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d760, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d761, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d762, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d763, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d764, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d765, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d766, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d767, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d768, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d769, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d76a, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d76b, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d76c, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d76d, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d76e, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d76f, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d770, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d771, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d772, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d773, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d774, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d775, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d776, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d777, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d778, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d779, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d77a, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d77b, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d77c, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d77d, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d77e, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d77f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d780, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d781, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d782, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d783, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d784, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d785, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d786, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d787, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d788, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d789, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d78a, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d78b, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d78c, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d78d, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d78e, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d78f, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d790, G_UNICODE_NOT_PRESENT_OFFSET, 14361 }, { 0x1d791, G_UNICODE_NOT_PRESENT_OFFSET, 14364 }, { 0x1d792, G_UNICODE_NOT_PRESENT_OFFSET, 5067 }, { 0x1d793, G_UNICODE_NOT_PRESENT_OFFSET, 14367 }, { 0x1d794, G_UNICODE_NOT_PRESENT_OFFSET, 14370 }, { 0x1d795, G_UNICODE_NOT_PRESENT_OFFSET, 14373 }, { 0x1d796, G_UNICODE_NOT_PRESENT_OFFSET, 14376 }, { 0x1d797, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d798, G_UNICODE_NOT_PRESENT_OFFSET, 14379 }, { 0x1d799, G_UNICODE_NOT_PRESENT_OFFSET, 14382 }, { 0x1d79a, G_UNICODE_NOT_PRESENT_OFFSET, 14385 }, { 0x1d79b, G_UNICODE_NOT_PRESENT_OFFSET, 14388 }, { 0x1d79c, G_UNICODE_NOT_PRESENT_OFFSET, 14391 }, { 0x1d79d, G_UNICODE_NOT_PRESENT_OFFSET, 14394 }, { 0x1d79e, G_UNICODE_NOT_PRESENT_OFFSET, 14397 }, { 0x1d79f, G_UNICODE_NOT_PRESENT_OFFSET, 5070 }, { 0x1d7a0, G_UNICODE_NOT_PRESENT_OFFSET, 14400 }, { 0x1d7a1, G_UNICODE_NOT_PRESENT_OFFSET, 1402 }, { 0x1d7a2, G_UNICODE_NOT_PRESENT_OFFSET, 14403 }, { 0x1d7a3, G_UNICODE_NOT_PRESENT_OFFSET, 14406 }, { 0x1d7a4, G_UNICODE_NOT_PRESENT_OFFSET, 1374 }, { 0x1d7a5, G_UNICODE_NOT_PRESENT_OFFSET, 14409 }, { 0x1d7a6, G_UNICODE_NOT_PRESENT_OFFSET, 14412 }, { 0x1d7a7, G_UNICODE_NOT_PRESENT_OFFSET, 14415 }, { 0x1d7a8, G_UNICODE_NOT_PRESENT_OFFSET, 5037 }, { 0x1d7a9, G_UNICODE_NOT_PRESENT_OFFSET, 14418 }, { 0x1d7aa, G_UNICODE_NOT_PRESENT_OFFSET, 14422 }, { 0x1d7ab, G_UNICODE_NOT_PRESENT_OFFSET, 1368 }, { 0x1d7ac, G_UNICODE_NOT_PRESENT_OFFSET, 5064 }, { 0x1d7ad, G_UNICODE_NOT_PRESENT_OFFSET, 14425 }, { 0x1d7ae, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d7af, G_UNICODE_NOT_PRESENT_OFFSET, 14428 }, { 0x1d7b0, G_UNICODE_NOT_PRESENT_OFFSET, 14431 }, { 0x1d7b1, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d7b2, G_UNICODE_NOT_PRESENT_OFFSET, 4548 }, { 0x1d7b3, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d7b4, G_UNICODE_NOT_PRESENT_OFFSET, 14434 }, { 0x1d7b5, G_UNICODE_NOT_PRESENT_OFFSET, 20 }, { 0x1d7b6, G_UNICODE_NOT_PRESENT_OFFSET, 14437 }, { 0x1d7b7, G_UNICODE_NOT_PRESENT_OFFSET, 14440 }, { 0x1d7b8, G_UNICODE_NOT_PRESENT_OFFSET, 14443 }, { 0x1d7b9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d7ba, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d7bb, G_UNICODE_NOT_PRESENT_OFFSET, 1399 }, { 0x1d7bc, G_UNICODE_NOT_PRESENT_OFFSET, 14446 }, { 0x1d7bd, G_UNICODE_NOT_PRESENT_OFFSET, 14449 }, { 0x1d7be, G_UNICODE_NOT_PRESENT_OFFSET, 14452 }, { 0x1d7bf, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d7c0, G_UNICODE_NOT_PRESENT_OFFSET, 14455 }, { 0x1d7c1, G_UNICODE_NOT_PRESENT_OFFSET, 14458 }, { 0x1d7c2, G_UNICODE_NOT_PRESENT_OFFSET, 14461 }, { 0x1d7c3, G_UNICODE_NOT_PRESENT_OFFSET, 14464 }, { 0x1d7c4, G_UNICODE_NOT_PRESENT_OFFSET, 1405 }, { 0x1d7c5, G_UNICODE_NOT_PRESENT_OFFSET, 1371 }, { 0x1d7c6, G_UNICODE_NOT_PRESENT_OFFSET, 1393 }, { 0x1d7c7, G_UNICODE_NOT_PRESENT_OFFSET, 1387 }, { 0x1d7c8, G_UNICODE_NOT_PRESENT_OFFSET, 1396 }, { 0x1d7c9, G_UNICODE_NOT_PRESENT_OFFSET, 1390 }, { 0x1d7ce, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7cf, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7d0, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7d1, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7d2, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7d3, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7d4, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7d5, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7d6, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7d7, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7d8, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7d9, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7da, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7db, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7dc, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7dd, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7de, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7df, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7e0, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7e1, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7e2, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7e3, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7e4, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7e5, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7e6, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7e7, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7e8, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7e9, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7ea, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7eb, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7ec, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7ed, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7ee, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7ef, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7f0, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7f1, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7f2, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7f3, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7f4, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7f5, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x1d7f6, G_UNICODE_NOT_PRESENT_OFFSET, 4941 }, { 0x1d7f7, G_UNICODE_NOT_PRESENT_OFFSET, 27 }, { 0x1d7f8, G_UNICODE_NOT_PRESENT_OFFSET, 12 }, { 0x1d7f9, G_UNICODE_NOT_PRESENT_OFFSET, 14 }, { 0x1d7fa, G_UNICODE_NOT_PRESENT_OFFSET, 4945 }, { 0x1d7fb, G_UNICODE_NOT_PRESENT_OFFSET, 4947 }, { 0x1d7fc, G_UNICODE_NOT_PRESENT_OFFSET, 4949 }, { 0x1d7fd, G_UNICODE_NOT_PRESENT_OFFSET, 4951 }, { 0x1d7fe, G_UNICODE_NOT_PRESENT_OFFSET, 4953 }, { 0x1d7ff, G_UNICODE_NOT_PRESENT_OFFSET, 4955 }, { 0x2f800, 14468, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f801, 14472, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f802, 14476, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f803, 14480, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f804, 14485, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f805, 11545, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f806, 14489, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f807, 14493, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f808, 14497, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f809, 14501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80a, 11549, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80b, 14505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80c, 14509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80d, 14513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80e, 11553, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f80f, 14518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f810, 14522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f811, 14526, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f812, 14530, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f813, 14535, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f814, 14539, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f815, 14543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f816, 14547, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f817, 14552, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f818, 14556, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f819, 14560, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81a, 14564, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81b, 14568, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81c, 14572, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81d, 5967, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81e, 14577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f81f, 14581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f820, 14585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f821, 14589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f822, 14593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f823, 14597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f824, 14601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f825, 14605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f826, 11557, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f827, 11561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f828, 14609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f829, 14613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82a, 14617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82b, 10837, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82c, 14621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82d, 11565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82e, 14625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f82f, 14629, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f830, 14633, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f831, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f832, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f833, 14637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f834, 14641, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f835, 14646, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f836, 14650, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f837, 14654, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f838, 14658, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f839, 14663, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83a, 14667, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83b, 14671, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83c, 14675, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83d, 14679, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83e, 14683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f83f, 14687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f840, 14691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f841, 14695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f842, 14699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f843, 14703, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f844, 14707, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f845, 14711, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f846, 14711, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f847, 14715, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f848, 14719, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f849, 14723, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84a, 14727, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84b, 14731, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84c, 11573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84d, 14735, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84e, 14739, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f84f, 14743, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f850, 11421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f851, 14747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f852, 14751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f853, 14755, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f854, 14759, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f855, 14763, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f856, 14767, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f857, 14771, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f858, 14775, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f859, 14779, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85a, 14784, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85b, 14788, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85c, 14792, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85d, 14796, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85e, 14800, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f85f, 14804, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f860, 14808, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f861, 14813, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f862, 14818, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f863, 14822, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f864, 14826, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f865, 14830, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f866, 14834, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f867, 14838, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f868, 14842, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f869, 14847, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86a, 14851, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86b, 14851, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86c, 14855, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86d, 14860, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86e, 14864, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f86f, 10821, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f870, 14868, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f871, 14872, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f872, 14877, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f873, 14881, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f874, 14885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f875, 6071, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f876, 14889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f877, 14893, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f878, 6079, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f879, 14897, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87a, 14901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87b, 14905, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87c, 14910, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87d, 14914, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87e, 14919, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f87f, 14923, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f880, 14927, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f881, 14931, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f882, 14935, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f883, 14939, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f884, 14943, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f885, 14947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f886, 14951, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f887, 14955, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f888, 14959, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f889, 14963, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88a, 14968, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88b, 14972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88c, 14976, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88d, 14980, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88e, 10613, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f88f, 14984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f890, 6119, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f891, 14989, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f892, 14989, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f893, 14994, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f894, 14998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f895, 14998, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f896, 15002, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f897, 15006, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f898, 15011, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f899, 15016, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89a, 15020, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89b, 15024, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89c, 15028, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89d, 15032, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89e, 15036, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f89f, 15040, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a0, 15044, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a1, 15048, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a2, 15052, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a3, 11593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a4, 15056, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a5, 15061, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a6, 15065, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a7, 15069, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a8, 15073, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8a9, 15069, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8aa, 15077, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ab, 11601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ac, 15081, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ad, 15085, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ae, 15089, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8af, 15093, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b0, 11605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b1, 10505, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b2, 15097, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b3, 15101, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b4, 15105, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b5, 15109, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b6, 15113, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b7, 15117, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b8, 15121, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8b9, 15126, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ba, 15130, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bb, 15134, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bc, 15138, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bd, 15142, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8be, 15146, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8bf, 15151, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c0, 15155, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c1, 15159, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c2, 15163, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c3, 15167, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c4, 15171, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c5, 15175, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c6, 15179, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c7, 15183, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c8, 11609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8c9, 15187, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ca, 15191, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cb, 15196, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cc, 15200, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cd, 15204, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ce, 15208, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8cf, 11617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d0, 15212, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d1, 15216, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d2, 15220, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d3, 15224, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d4, 15228, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d5, 15232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d6, 15236, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d7, 15240, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d8, 10617, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8d9, 15244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8da, 15248, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8db, 15252, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8dc, 15256, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8dd, 15260, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8de, 15265, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8df, 15269, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e0, 15273, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e1, 15277, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e2, 11621, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e3, 15281, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e4, 15286, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e5, 15290, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e6, 15294, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e7, 15298, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e8, 15302, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8e9, 15306, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ea, 15310, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8eb, 15314, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ec, 15318, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ed, 15323, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ee, 15327, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ef, 15331, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f0, 15335, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f1, 15340, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f2, 15344, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f3, 15348, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f4, 15352, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f5, 10889, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f6, 15356, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f7, 15360, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f8, 15365, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8f9, 15370, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fa, 15375, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fb, 15379, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fc, 15384, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fd, 15388, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8fe, 15392, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f8ff, 15396, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f900, 15400, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f901, 11625, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f902, 11221, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f903, 15404, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f904, 15408, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f905, 15412, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f906, 15416, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f907, 15421, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f908, 15425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f909, 15429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90a, 15433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90b, 15437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90c, 15441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90d, 15445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90e, 15450, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f90f, 15454, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f910, 15458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f911, 15463, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f912, 15468, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f913, 15472, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f914, 15476, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f915, 15480, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f916, 15484, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f917, 15488, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f918, 15492, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f919, 15496, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91a, 15500, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91b, 15504, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91c, 15509, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91d, 15513, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91e, 15518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f91f, 15522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f920, 15526, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f921, 15530, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f922, 15534, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f923, 15538, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f924, 15543, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f925, 15547, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f926, 15551, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f927, 15556, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f928, 15561, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f929, 15565, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92a, 15569, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92b, 15573, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92c, 15577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92d, 15577, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92e, 15581, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f92f, 15585, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f930, 15589, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f931, 15593, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f932, 15597, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f933, 15601, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f934, 15605, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f935, 15609, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f936, 15614, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f937, 15618, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f938, 10833, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f939, 15623, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93a, 15628, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93b, 15632, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93c, 15637, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93d, 15642, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93e, 15647, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f93f, 15651, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f940, 15655, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f941, 15659, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f942, 15664, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f943, 15669, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f944, 15674, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f945, 15679, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f946, 15683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f947, 15683, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f948, 15687, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f949, 15691, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94a, 15695, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94b, 15699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94c, 15703, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94d, 15707, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94e, 15712, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f94f, 10685, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f950, 15716, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f951, 15720, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f952, 15724, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f953, 11665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f954, 15729, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f955, 15734, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f956, 11501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f957, 15739, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f958, 15743, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f959, 11677, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95a, 15747, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95b, 15751, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95c, 15755, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95d, 15760, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95e, 15760, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f95f, 15765, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f960, 15769, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f961, 15773, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f962, 15778, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f963, 15782, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f964, 15786, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f965, 15790, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f966, 15795, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f967, 15799, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f968, 15803, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f969, 15807, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96a, 15811, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96b, 15815, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96c, 15820, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96d, 15824, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96e, 15828, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f96f, 15832, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f970, 15836, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f971, 15840, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f972, 15844, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f973, 15849, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f974, 15854, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f975, 15858, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f976, 15863, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f977, 15867, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f978, 15872, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f979, 15876, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97a, 11701, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97b, 15880, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97c, 15885, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97d, 15890, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97e, 15894, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f97f, 15899, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f980, 15903, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f981, 15908, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f982, 15912, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f983, 15916, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f984, 15920, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f985, 15924, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f986, 15928, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f987, 15932, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f988, 15937, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f989, 15942, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98a, 15947, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98b, 14994, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98c, 15952, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98d, 15956, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98e, 15960, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f98f, 15964, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f990, 15968, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f991, 15972, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f992, 15976, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f993, 15980, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f994, 15984, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f995, 15988, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f996, 15992, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f997, 15996, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f998, 10901, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f999, 16001, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99a, 16005, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99b, 16009, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99c, 16013, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99d, 16017, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99e, 16021, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f99f, 11713, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a0, 16025, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a1, 16029, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a2, 16033, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a3, 16037, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a4, 16041, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a5, 16046, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a6, 16051, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a7, 16056, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a8, 16060, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9a9, 16064, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9aa, 16068, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ab, 16072, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ac, 16077, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ad, 16081, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ae, 16086, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9af, 16090, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b0, 16094, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b1, 16099, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b2, 16104, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b3, 16108, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b4, 10665, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b5, 16112, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b6, 16116, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b7, 16120, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b8, 16124, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9b9, 16128, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ba, 16132, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bb, 16136, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bc, 16140, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bd, 16144, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9be, 16148, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9bf, 16152, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c0, 16156, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c1, 16160, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c2, 16164, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c3, 16168, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c4, 6479, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c5, 16172, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c6, 16177, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c7, 16181, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c8, 16185, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9c9, 16189, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ca, 16193, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cb, 16197, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cc, 16202, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cd, 16207, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ce, 16211, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9cf, 16215, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d0, 16219, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d1, 16223, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d2, 6507, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d3, 16227, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d4, 16232, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d5, 16236, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d6, 16240, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d7, 16244, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d8, 16248, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9d9, 16253, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9da, 16258, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9db, 16262, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9dc, 16266, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9dd, 16270, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9de, 16275, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9df, 16279, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e0, 16283, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e1, 16288, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e2, 16293, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e3, 16297, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e4, 16301, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e5, 16305, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e6, 16310, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e7, 16314, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e8, 16318, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9e9, 16322, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ea, 16326, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9eb, 16330, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ec, 16334, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ed, 16338, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ee, 16343, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ef, 16347, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f0, 16351, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f1, 16355, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f2, 16360, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f3, 16364, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f4, 16368, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f5, 16372, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f6, 16376, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f7, 16381, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f8, 16386, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9f9, 16390, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fa, 16394, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fb, 16398, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fc, 16403, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fd, 16407, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9fe, 16412, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2f9ff, 16412, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa00, 16416, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa01, 16420, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa02, 16425, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa03, 16429, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa04, 16433, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa05, 16437, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa06, 16441, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa07, 16445, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa08, 16449, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa09, 16453, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0a, 16458, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0b, 16462, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0c, 16466, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0d, 16470, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0e, 16474, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa0f, 16478, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa10, 16482, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa11, 16487, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa12, 16491, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa13, 16496, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa14, 16501, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa15, 6699, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa16, 16506, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa17, 6715, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa18, 16510, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa19, 16514, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1a, 16518, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1b, 16522, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1c, 6735, G_UNICODE_NOT_PRESENT_OFFSET }, { 0x2fa1d, 16526, G_UNICODE_NOT_PRESENT_OFFSET } }; static const gchar decomp_expansion_string[] = "\x20\0" /* offset 0 */ "\x20\xcc\x88\0" /* offset 2 */ "\x61\0" /* offset 6 */ "\x20\xcc\x84\0" /* offset 8 */ "\x32\0" /* offset 12 */ "\x33\0" /* offset 14 */ "\x20\xcc\x81\0" /* offset 16 */ "\xce\xbc\0" /* offset 20 */ "\x20\xcc\xa7\0" /* offset 23 */ "\x31\0" /* offset 27 */ "\x6f\0" /* offset 29 */ "\x31\xe2\x81\x84\x34\0" /* offset 31 */ "\x31\xe2\x81\x84\x32\0" /* offset 37 */ "\x33\xe2\x81\x84\x34\0" /* offset 43 */ "\x41\xcc\x80\0" /* offset 49 */ "\x41\xcc\x81\0" /* offset 53 */ "\x41\xcc\x82\0" /* offset 57 */ "\x41\xcc\x83\0" /* offset 61 */ "\x41\xcc\x88\0" /* offset 65 */ "\x41\xcc\x8a\0" /* offset 69 */ "\x43\xcc\xa7\0" /* offset 73 */ "\x45\xcc\x80\0" /* offset 77 */ "\x45\xcc\x81\0" /* offset 81 */ "\x45\xcc\x82\0" /* offset 85 */ "\x45\xcc\x88\0" /* offset 89 */ "\x49\xcc\x80\0" /* offset 93 */ "\x49\xcc\x81\0" /* offset 97 */ "\x49\xcc\x82\0" /* offset 101 */ "\x49\xcc\x88\0" /* offset 105 */ "\x4e\xcc\x83\0" /* offset 109 */ "\x4f\xcc\x80\0" /* offset 113 */ "\x4f\xcc\x81\0" /* offset 117 */ "\x4f\xcc\x82\0" /* offset 121 */ "\x4f\xcc\x83\0" /* offset 125 */ "\x4f\xcc\x88\0" /* offset 129 */ "\x55\xcc\x80\0" /* offset 133 */ "\x55\xcc\x81\0" /* offset 137 */ "\x55\xcc\x82\0" /* offset 141 */ "\x55\xcc\x88\0" /* offset 145 */ "\x59\xcc\x81\0" /* offset 149 */ "\x61\xcc\x80\0" /* offset 153 */ "\x61\xcc\x81\0" /* offset 157 */ "\x61\xcc\x82\0" /* offset 161 */ "\x61\xcc\x83\0" /* offset 165 */ "\x61\xcc\x88\0" /* offset 169 */ "\x61\xcc\x8a\0" /* offset 173 */ "\x63\xcc\xa7\0" /* offset 177 */ "\x65\xcc\x80\0" /* offset 181 */ "\x65\xcc\x81\0" /* offset 185 */ "\x65\xcc\x82\0" /* offset 189 */ "\x65\xcc\x88\0" /* offset 193 */ "\x69\xcc\x80\0" /* offset 197 */ "\x69\xcc\x81\0" /* offset 201 */ "\x69\xcc\x82\0" /* offset 205 */ "\x69\xcc\x88\0" /* offset 209 */ "\x6e\xcc\x83\0" /* offset 213 */ "\x6f\xcc\x80\0" /* offset 217 */ "\x6f\xcc\x81\0" /* offset 221 */ "\x6f\xcc\x82\0" /* offset 225 */ "\x6f\xcc\x83\0" /* offset 229 */ "\x6f\xcc\x88\0" /* offset 233 */ "\x75\xcc\x80\0" /* offset 237 */ "\x75\xcc\x81\0" /* offset 241 */ "\x75\xcc\x82\0" /* offset 245 */ "\x75\xcc\x88\0" /* offset 249 */ "\x79\xcc\x81\0" /* offset 253 */ "\x79\xcc\x88\0" /* offset 257 */ "\x41\xcc\x84\0" /* offset 261 */ "\x61\xcc\x84\0" /* offset 265 */ "\x41\xcc\x86\0" /* offset 269 */ "\x61\xcc\x86\0" /* offset 273 */ "\x41\xcc\xa8\0" /* offset 277 */ "\x61\xcc\xa8\0" /* offset 281 */ "\x43\xcc\x81\0" /* offset 285 */ "\x63\xcc\x81\0" /* offset 289 */ "\x43\xcc\x82\0" /* offset 293 */ "\x63\xcc\x82\0" /* offset 297 */ "\x43\xcc\x87\0" /* offset 301 */ "\x63\xcc\x87\0" /* offset 305 */ "\x43\xcc\x8c\0" /* offset 309 */ "\x63\xcc\x8c\0" /* offset 313 */ "\x44\xcc\x8c\0" /* offset 317 */ "\x64\xcc\x8c\0" /* offset 321 */ "\x45\xcc\x84\0" /* offset 325 */ "\x65\xcc\x84\0" /* offset 329 */ "\x45\xcc\x86\0" /* offset 333 */ "\x65\xcc\x86\0" /* offset 337 */ "\x45\xcc\x87\0" /* offset 341 */ "\x65\xcc\x87\0" /* offset 345 */ "\x45\xcc\xa8\0" /* offset 349 */ "\x65\xcc\xa8\0" /* offset 353 */ "\x45\xcc\x8c\0" /* offset 357 */ "\x65\xcc\x8c\0" /* offset 361 */ "\x47\xcc\x82\0" /* offset 365 */ "\x67\xcc\x82\0" /* offset 369 */ "\x47\xcc\x86\0" /* offset 373 */ "\x67\xcc\x86\0" /* offset 377 */ "\x47\xcc\x87\0" /* offset 381 */ "\x67\xcc\x87\0" /* offset 385 */ "\x47\xcc\xa7\0" /* offset 389 */ "\x67\xcc\xa7\0" /* offset 393 */ "\x48\xcc\x82\0" /* offset 397 */ "\x68\xcc\x82\0" /* offset 401 */ "\x49\xcc\x83\0" /* offset 405 */ "\x69\xcc\x83\0" /* offset 409 */ "\x49\xcc\x84\0" /* offset 413 */ "\x69\xcc\x84\0" /* offset 417 */ "\x49\xcc\x86\0" /* offset 421 */ "\x69\xcc\x86\0" /* offset 425 */ "\x49\xcc\xa8\0" /* offset 429 */ "\x69\xcc\xa8\0" /* offset 433 */ "\x49\xcc\x87\0" /* offset 437 */ "\x49\x4a\0" /* offset 441 */ "\x69\x6a\0" /* offset 444 */ "\x4a\xcc\x82\0" /* offset 447 */ "\x6a\xcc\x82\0" /* offset 451 */ "\x4b\xcc\xa7\0" /* offset 455 */ "\x6b\xcc\xa7\0" /* offset 459 */ "\x4c\xcc\x81\0" /* offset 463 */ "\x6c\xcc\x81\0" /* offset 467 */ "\x4c\xcc\xa7\0" /* offset 471 */ "\x6c\xcc\xa7\0" /* offset 475 */ "\x4c\xcc\x8c\0" /* offset 479 */ "\x6c\xcc\x8c\0" /* offset 483 */ "\x4c\xc2\xb7\0" /* offset 487 */ "\x6c\xc2\xb7\0" /* offset 491 */ "\x4e\xcc\x81\0" /* offset 495 */ "\x6e\xcc\x81\0" /* offset 499 */ "\x4e\xcc\xa7\0" /* offset 503 */ "\x6e\xcc\xa7\0" /* offset 507 */ "\x4e\xcc\x8c\0" /* offset 511 */ "\x6e\xcc\x8c\0" /* offset 515 */ "\xca\xbc\x6e\0" /* offset 519 */ "\x4f\xcc\x84\0" /* offset 523 */ "\x6f\xcc\x84\0" /* offset 527 */ "\x4f\xcc\x86\0" /* offset 531 */ "\x6f\xcc\x86\0" /* offset 535 */ "\x4f\xcc\x8b\0" /* offset 539 */ "\x6f\xcc\x8b\0" /* offset 543 */ "\x52\xcc\x81\0" /* offset 547 */ "\x72\xcc\x81\0" /* offset 551 */ "\x52\xcc\xa7\0" /* offset 555 */ "\x72\xcc\xa7\0" /* offset 559 */ "\x52\xcc\x8c\0" /* offset 563 */ "\x72\xcc\x8c\0" /* offset 567 */ "\x53\xcc\x81\0" /* offset 571 */ "\x73\xcc\x81\0" /* offset 575 */ "\x53\xcc\x82\0" /* offset 579 */ "\x73\xcc\x82\0" /* offset 583 */ "\x53\xcc\xa7\0" /* offset 587 */ "\x73\xcc\xa7\0" /* offset 591 */ "\x53\xcc\x8c\0" /* offset 595 */ "\x73\xcc\x8c\0" /* offset 599 */ "\x54\xcc\xa7\0" /* offset 603 */ "\x74\xcc\xa7\0" /* offset 607 */ "\x54\xcc\x8c\0" /* offset 611 */ "\x74\xcc\x8c\0" /* offset 615 */ "\x55\xcc\x83\0" /* offset 619 */ "\x75\xcc\x83\0" /* offset 623 */ "\x55\xcc\x84\0" /* offset 627 */ "\x75\xcc\x84\0" /* offset 631 */ "\x55\xcc\x86\0" /* offset 635 */ "\x75\xcc\x86\0" /* offset 639 */ "\x55\xcc\x8a\0" /* offset 643 */ "\x75\xcc\x8a\0" /* offset 647 */ "\x55\xcc\x8b\0" /* offset 651 */ "\x75\xcc\x8b\0" /* offset 655 */ "\x55\xcc\xa8\0" /* offset 659 */ "\x75\xcc\xa8\0" /* offset 663 */ "\x57\xcc\x82\0" /* offset 667 */ "\x77\xcc\x82\0" /* offset 671 */ "\x59\xcc\x82\0" /* offset 675 */ "\x79\xcc\x82\0" /* offset 679 */ "\x59\xcc\x88\0" /* offset 683 */ "\x5a\xcc\x81\0" /* offset 687 */ "\x7a\xcc\x81\0" /* offset 691 */ "\x5a\xcc\x87\0" /* offset 695 */ "\x7a\xcc\x87\0" /* offset 699 */ "\x5a\xcc\x8c\0" /* offset 703 */ "\x7a\xcc\x8c\0" /* offset 707 */ "\x73\0" /* offset 711 */ "\x4f\xcc\x9b\0" /* offset 713 */ "\x6f\xcc\x9b\0" /* offset 717 */ "\x55\xcc\x9b\0" /* offset 721 */ "\x75\xcc\x9b\0" /* offset 725 */ "\x44\x5a\xcc\x8c\0" /* offset 729 */ "\x44\x7a\xcc\x8c\0" /* offset 734 */ "\x64\x7a\xcc\x8c\0" /* offset 739 */ "\x4c\x4a\0" /* offset 744 */ "\x4c\x6a\0" /* offset 747 */ "\x6c\x6a\0" /* offset 750 */ "\x4e\x4a\0" /* offset 753 */ "\x4e\x6a\0" /* offset 756 */ "\x6e\x6a\0" /* offset 759 */ "\x41\xcc\x8c\0" /* offset 762 */ "\x61\xcc\x8c\0" /* offset 766 */ "\x49\xcc\x8c\0" /* offset 770 */ "\x69\xcc\x8c\0" /* offset 774 */ "\x4f\xcc\x8c\0" /* offset 778 */ "\x6f\xcc\x8c\0" /* offset 782 */ "\x55\xcc\x8c\0" /* offset 786 */ "\x75\xcc\x8c\0" /* offset 790 */ "\x55\xcc\x88\xcc\x84\0" /* offset 794 */ "\x75\xcc\x88\xcc\x84\0" /* offset 800 */ "\x55\xcc\x88\xcc\x81\0" /* offset 806 */ "\x75\xcc\x88\xcc\x81\0" /* offset 812 */ "\x55\xcc\x88\xcc\x8c\0" /* offset 818 */ "\x75\xcc\x88\xcc\x8c\0" /* offset 824 */ "\x55\xcc\x88\xcc\x80\0" /* offset 830 */ "\x75\xcc\x88\xcc\x80\0" /* offset 836 */ "\x41\xcc\x88\xcc\x84\0" /* offset 842 */ "\x61\xcc\x88\xcc\x84\0" /* offset 848 */ "\x41\xcc\x87\xcc\x84\0" /* offset 854 */ "\x61\xcc\x87\xcc\x84\0" /* offset 860 */ "\xc3\x86\xcc\x84\0" /* offset 866 */ "\xc3\xa6\xcc\x84\0" /* offset 871 */ "\x47\xcc\x8c\0" /* offset 876 */ "\x67\xcc\x8c\0" /* offset 880 */ "\x4b\xcc\x8c\0" /* offset 884 */ "\x6b\xcc\x8c\0" /* offset 888 */ "\x4f\xcc\xa8\0" /* offset 892 */ "\x6f\xcc\xa8\0" /* offset 896 */ "\x4f\xcc\xa8\xcc\x84\0" /* offset 900 */ "\x6f\xcc\xa8\xcc\x84\0" /* offset 906 */ "\xc6\xb7\xcc\x8c\0" /* offset 912 */ "\xca\x92\xcc\x8c\0" /* offset 917 */ "\x6a\xcc\x8c\0" /* offset 922 */ "\x44\x5a\0" /* offset 926 */ "\x44\x7a\0" /* offset 929 */ "\x64\x7a\0" /* offset 932 */ "\x47\xcc\x81\0" /* offset 935 */ "\x67\xcc\x81\0" /* offset 939 */ "\x4e\xcc\x80\0" /* offset 943 */ "\x6e\xcc\x80\0" /* offset 947 */ "\x41\xcc\x8a\xcc\x81\0" /* offset 951 */ "\x61\xcc\x8a\xcc\x81\0" /* offset 957 */ "\xc3\x86\xcc\x81\0" /* offset 963 */ "\xc3\xa6\xcc\x81\0" /* offset 968 */ "\xc3\x98\xcc\x81\0" /* offset 973 */ "\xc3\xb8\xcc\x81\0" /* offset 978 */ "\x41\xcc\x8f\0" /* offset 983 */ "\x61\xcc\x8f\0" /* offset 987 */ "\x41\xcc\x91\0" /* offset 991 */ "\x61\xcc\x91\0" /* offset 995 */ "\x45\xcc\x8f\0" /* offset 999 */ "\x65\xcc\x8f\0" /* offset 1003 */ "\x45\xcc\x91\0" /* offset 1007 */ "\x65\xcc\x91\0" /* offset 1011 */ "\x49\xcc\x8f\0" /* offset 1015 */ "\x69\xcc\x8f\0" /* offset 1019 */ "\x49\xcc\x91\0" /* offset 1023 */ "\x69\xcc\x91\0" /* offset 1027 */ "\x4f\xcc\x8f\0" /* offset 1031 */ "\x6f\xcc\x8f\0" /* offset 1035 */ "\x4f\xcc\x91\0" /* offset 1039 */ "\x6f\xcc\x91\0" /* offset 1043 */ "\x52\xcc\x8f\0" /* offset 1047 */ "\x72\xcc\x8f\0" /* offset 1051 */ "\x52\xcc\x91\0" /* offset 1055 */ "\x72\xcc\x91\0" /* offset 1059 */ "\x55\xcc\x8f\0" /* offset 1063 */ "\x75\xcc\x8f\0" /* offset 1067 */ "\x55\xcc\x91\0" /* offset 1071 */ "\x75\xcc\x91\0" /* offset 1075 */ "\x53\xcc\xa6\0" /* offset 1079 */ "\x73\xcc\xa6\0" /* offset 1083 */ "\x54\xcc\xa6\0" /* offset 1087 */ "\x74\xcc\xa6\0" /* offset 1091 */ "\x48\xcc\x8c\0" /* offset 1095 */ "\x68\xcc\x8c\0" /* offset 1099 */ "\x41\xcc\x87\0" /* offset 1103 */ "\x61\xcc\x87\0" /* offset 1107 */ "\x45\xcc\xa7\0" /* offset 1111 */ "\x65\xcc\xa7\0" /* offset 1115 */ "\x4f\xcc\x88\xcc\x84\0" /* offset 1119 */ "\x6f\xcc\x88\xcc\x84\0" /* offset 1125 */ "\x4f\xcc\x83\xcc\x84\0" /* offset 1131 */ "\x6f\xcc\x83\xcc\x84\0" /* offset 1137 */ "\x4f\xcc\x87\0" /* offset 1143 */ "\x6f\xcc\x87\0" /* offset 1147 */ "\x4f\xcc\x87\xcc\x84\0" /* offset 1151 */ "\x6f\xcc\x87\xcc\x84\0" /* offset 1157 */ "\x59\xcc\x84\0" /* offset 1163 */ "\x79\xcc\x84\0" /* offset 1167 */ "\x68\0" /* offset 1171 */ "\xc9\xa6\0" /* offset 1173 */ "\x6a\0" /* offset 1176 */ "\x72\0" /* offset 1178 */ "\xc9\xb9\0" /* offset 1180 */ "\xc9\xbb\0" /* offset 1183 */ "\xca\x81\0" /* offset 1186 */ "\x77\0" /* offset 1189 */ "\x79\0" /* offset 1191 */ "\x20\xcc\x86\0" /* offset 1193 */ "\x20\xcc\x87\0" /* offset 1197 */ "\x20\xcc\x8a\0" /* offset 1201 */ "\x20\xcc\xa8\0" /* offset 1205 */ "\x20\xcc\x83\0" /* offset 1209 */ "\x20\xcc\x8b\0" /* offset 1213 */ "\xc9\xa3\0" /* offset 1217 */ "\x6c\0" /* offset 1220 */ "\x78\0" /* offset 1222 */ "\xca\x95\0" /* offset 1224 */ "\xcc\x80\0" /* offset 1227 */ "\xcc\x81\0" /* offset 1230 */ "\xcc\x93\0" /* offset 1233 */ "\xcc\x88\xcc\x81\0" /* offset 1236 */ "\xca\xb9\0" /* offset 1241 */ "\x20\xcd\x85\0" /* offset 1244 */ "\x3b\0" /* offset 1248 */ "\xc2\xa8\xcc\x81\0" /* offset 1250 */ "\x20\xcc\x88\xcc\x81\0" /* offset 1255 */ "\xce\x91\xcc\x81\0" /* offset 1261 */ "\xc2\xb7\0" /* offset 1266 */ "\xce\x95\xcc\x81\0" /* offset 1269 */ "\xce\x97\xcc\x81\0" /* offset 1274 */ "\xce\x99\xcc\x81\0" /* offset 1279 */ "\xce\x9f\xcc\x81\0" /* offset 1284 */ "\xce\xa5\xcc\x81\0" /* offset 1289 */ "\xce\xa9\xcc\x81\0" /* offset 1294 */ "\xce\xb9\xcc\x88\xcc\x81\0" /* offset 1299 */ "\xce\x99\xcc\x88\0" /* offset 1306 */ "\xce\xa5\xcc\x88\0" /* offset 1311 */ "\xce\xb1\xcc\x81\0" /* offset 1316 */ "\xce\xb5\xcc\x81\0" /* offset 1321 */ "\xce\xb7\xcc\x81\0" /* offset 1326 */ "\xce\xb9\xcc\x81\0" /* offset 1331 */ "\xcf\x85\xcc\x88\xcc\x81\0" /* offset 1336 */ "\xce\xb9\xcc\x88\0" /* offset 1343 */ "\xcf\x85\xcc\x88\0" /* offset 1348 */ "\xce\xbf\xcc\x81\0" /* offset 1353 */ "\xcf\x85\xcc\x81\0" /* offset 1358 */ "\xcf\x89\xcc\x81\0" /* offset 1363 */ "\xce\xb2\0" /* offset 1368 */ "\xce\xb8\0" /* offset 1371 */ "\xce\xa5\0" /* offset 1374 */ "\xcf\x92\xcc\x81\0" /* offset 1377 */ "\xcf\x92\xcc\x88\0" /* offset 1382 */ "\xcf\x86\0" /* offset 1387 */ "\xcf\x80\0" /* offset 1390 */ "\xce\xba\0" /* offset 1393 */ "\xcf\x81\0" /* offset 1396 */ "\xcf\x82\0" /* offset 1399 */ "\xce\x98\0" /* offset 1402 */ "\xce\xb5\0" /* offset 1405 */ "\xd0\x95\xcc\x80\0" /* offset 1408 */ "\xd0\x95\xcc\x88\0" /* offset 1413 */ "\xd0\x93\xcc\x81\0" /* offset 1418 */ "\xd0\x86\xcc\x88\0" /* offset 1423 */ "\xd0\x9a\xcc\x81\0" /* offset 1428 */ "\xd0\x98\xcc\x80\0" /* offset 1433 */ "\xd0\xa3\xcc\x86\0" /* offset 1438 */ "\xd0\x98\xcc\x86\0" /* offset 1443 */ "\xd0\xb8\xcc\x86\0" /* offset 1448 */ "\xd0\xb5\xcc\x80\0" /* offset 1453 */ "\xd0\xb5\xcc\x88\0" /* offset 1458 */ "\xd0\xb3\xcc\x81\0" /* offset 1463 */ "\xd1\x96\xcc\x88\0" /* offset 1468 */ "\xd0\xba\xcc\x81\0" /* offset 1473 */ "\xd0\xb8\xcc\x80\0" /* offset 1478 */ "\xd1\x83\xcc\x86\0" /* offset 1483 */ "\xd1\xb4\xcc\x8f\0" /* offset 1488 */ "\xd1\xb5\xcc\x8f\0" /* offset 1493 */ "\xd0\x96\xcc\x86\0" /* offset 1498 */ "\xd0\xb6\xcc\x86\0" /* offset 1503 */ "\xd0\x90\xcc\x86\0" /* offset 1508 */ "\xd0\xb0\xcc\x86\0" /* offset 1513 */ "\xd0\x90\xcc\x88\0" /* offset 1518 */ "\xd0\xb0\xcc\x88\0" /* offset 1523 */ "\xd0\x95\xcc\x86\0" /* offset 1528 */ "\xd0\xb5\xcc\x86\0" /* offset 1533 */ "\xd3\x98\xcc\x88\0" /* offset 1538 */ "\xd3\x99\xcc\x88\0" /* offset 1543 */ "\xd0\x96\xcc\x88\0" /* offset 1548 */ "\xd0\xb6\xcc\x88\0" /* offset 1553 */ "\xd0\x97\xcc\x88\0" /* offset 1558 */ "\xd0\xb7\xcc\x88\0" /* offset 1563 */ "\xd0\x98\xcc\x84\0" /* offset 1568 */ "\xd0\xb8\xcc\x84\0" /* offset 1573 */ "\xd0\x98\xcc\x88\0" /* offset 1578 */ "\xd0\xb8\xcc\x88\0" /* offset 1583 */ "\xd0\x9e\xcc\x88\0" /* offset 1588 */ "\xd0\xbe\xcc\x88\0" /* offset 1593 */ "\xd3\xa8\xcc\x88\0" /* offset 1598 */ "\xd3\xa9\xcc\x88\0" /* offset 1603 */ "\xd0\xad\xcc\x88\0" /* offset 1608 */ "\xd1\x8d\xcc\x88\0" /* offset 1613 */ "\xd0\xa3\xcc\x84\0" /* offset 1618 */ "\xd1\x83\xcc\x84\0" /* offset 1623 */ "\xd0\xa3\xcc\x88\0" /* offset 1628 */ "\xd1\x83\xcc\x88\0" /* offset 1633 */ "\xd0\xa3\xcc\x8b\0" /* offset 1638 */ "\xd1\x83\xcc\x8b\0" /* offset 1643 */ "\xd0\xa7\xcc\x88\0" /* offset 1648 */ "\xd1\x87\xcc\x88\0" /* offset 1653 */ "\xd0\xab\xcc\x88\0" /* offset 1658 */ "\xd1\x8b\xcc\x88\0" /* offset 1663 */ "\xd5\xa5\xd6\x82\0" /* offset 1668 */ "\xd8\xa7\xd9\x93\0" /* offset 1673 */ "\xd8\xa7\xd9\x94\0" /* offset 1678 */ "\xd9\x88\xd9\x94\0" /* offset 1683 */ "\xd8\xa7\xd9\x95\0" /* offset 1688 */ "\xd9\x8a\xd9\x94\0" /* offset 1693 */ "\xd8\xa7\xd9\xb4\0" /* offset 1698 */ "\xd9\x88\xd9\xb4\0" /* offset 1703 */ "\xdb\x87\xd9\xb4\0" /* offset 1708 */ "\xd9\x8a\xd9\xb4\0" /* offset 1713 */ "\xdb\x95\xd9\x94\0" /* offset 1718 */ "\xdb\x81\xd9\x94\0" /* offset 1723 */ "\xdb\x92\xd9\x94\0" /* offset 1728 */ "\xe0\xa4\xa8\xe0\xa4\xbc\0" /* offset 1733 */ "\xe0\xa4\xb0\xe0\xa4\xbc\0" /* offset 1740 */ "\xe0\xa4\xb3\xe0\xa4\xbc\0" /* offset 1747 */ "\xe0\xa4\x95\xe0\xa4\xbc\0" /* offset 1754 */ "\xe0\xa4\x96\xe0\xa4\xbc\0" /* offset 1761 */ "\xe0\xa4\x97\xe0\xa4\xbc\0" /* offset 1768 */ "\xe0\xa4\x9c\xe0\xa4\xbc\0" /* offset 1775 */ "\xe0\xa4\xa1\xe0\xa4\xbc\0" /* offset 1782 */ "\xe0\xa4\xa2\xe0\xa4\xbc\0" /* offset 1789 */ "\xe0\xa4\xab\xe0\xa4\xbc\0" /* offset 1796 */ "\xe0\xa4\xaf\xe0\xa4\xbc\0" /* offset 1803 */ "\xe0\xa7\x87\xe0\xa6\xbe\0" /* offset 1810 */ "\xe0\xa7\x87\xe0\xa7\x97\0" /* offset 1817 */ "\xe0\xa6\xa1\xe0\xa6\xbc\0" /* offset 1824 */ "\xe0\xa6\xa2\xe0\xa6\xbc\0" /* offset 1831 */ "\xe0\xa6\xaf\xe0\xa6\xbc\0" /* offset 1838 */ "\xe0\xa8\xb2\xe0\xa8\xbc\0" /* offset 1845 */ "\xe0\xa8\xb8\xe0\xa8\xbc\0" /* offset 1852 */ "\xe0\xa8\x96\xe0\xa8\xbc\0" /* offset 1859 */ "\xe0\xa8\x97\xe0\xa8\xbc\0" /* offset 1866 */ "\xe0\xa8\x9c\xe0\xa8\xbc\0" /* offset 1873 */ "\xe0\xa8\xab\xe0\xa8\xbc\0" /* offset 1880 */ "\xe0\xad\x87\xe0\xad\x96\0" /* offset 1887 */ "\xe0\xad\x87\xe0\xac\xbe\0" /* offset 1894 */ "\xe0\xad\x87\xe0\xad\x97\0" /* offset 1901 */ "\xe0\xac\xa1\xe0\xac\xbc\0" /* offset 1908 */ "\xe0\xac\xa2\xe0\xac\xbc\0" /* offset 1915 */ "\xe0\xae\x92\xe0\xaf\x97\0" /* offset 1922 */ "\xe0\xaf\x86\xe0\xae\xbe\0" /* offset 1929 */ "\xe0\xaf\x87\xe0\xae\xbe\0" /* offset 1936 */ "\xe0\xaf\x86\xe0\xaf\x97\0" /* offset 1943 */ "\xe0\xb1\x86\xe0\xb1\x96\0" /* offset 1950 */ "\xe0\xb2\xbf\xe0\xb3\x95\0" /* offset 1957 */ "\xe0\xb3\x86\xe0\xb3\x95\0" /* offset 1964 */ "\xe0\xb3\x86\xe0\xb3\x96\0" /* offset 1971 */ "\xe0\xb3\x86\xe0\xb3\x82\0" /* offset 1978 */ "\xe0\xb3\x86\xe0\xb3\x82\xe0\xb3\x95\0" /* offset 1985 */ "\xe0\xb5\x86\xe0\xb4\xbe\0" /* offset 1995 */ "\xe0\xb5\x87\xe0\xb4\xbe\0" /* offset 2002 */ "\xe0\xb5\x86\xe0\xb5\x97\0" /* offset 2009 */ "\xe0\xb7\x99\xe0\xb7\x8a\0" /* offset 2016 */ "\xe0\xb7\x99\xe0\xb7\x8f\0" /* offset 2023 */ "\xe0\xb7\x99\xe0\xb7\x8f\xe0\xb7\x8a\0" /* offset 2030 */ "\xe0\xb7\x99\xe0\xb7\x9f\0" /* offset 2040 */ "\xe0\xb9\x8d\xe0\xb8\xb2\0" /* offset 2047 */ "\xe0\xbb\x8d\xe0\xba\xb2\0" /* offset 2054 */ "\xe0\xba\xab\xe0\xba\x99\0" /* offset 2061 */ "\xe0\xba\xab\xe0\xba\xa1\0" /* offset 2068 */ "\xe0\xbc\x8b\0" /* offset 2075 */ "\xe0\xbd\x82\xe0\xbe\xb7\0" /* offset 2079 */ "\xe0\xbd\x8c\xe0\xbe\xb7\0" /* offset 2086 */ "\xe0\xbd\x91\xe0\xbe\xb7\0" /* offset 2093 */ "\xe0\xbd\x96\xe0\xbe\xb7\0" /* offset 2100 */ "\xe0\xbd\x9b\xe0\xbe\xb7\0" /* offset 2107 */ "\xe0\xbd\x80\xe0\xbe\xb5\0" /* offset 2114 */ "\xe0\xbd\xb1\xe0\xbd\xb2\0" /* offset 2121 */ "\xe0\xbd\xb1\xe0\xbd\xb4\0" /* offset 2128 */ "\xe0\xbe\xb2\xe0\xbe\x80\0" /* offset 2135 */ "\xe0\xbe\xb2\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2142 */ "\xe0\xbe\xb3\xe0\xbe\x80\0" /* offset 2152 */ "\xe0\xbe\xb3\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2159 */ "\xe0\xbd\xb1\xe0\xbe\x80\0" /* offset 2169 */ "\xe0\xbe\x92\xe0\xbe\xb7\0" /* offset 2176 */ "\xe0\xbe\x9c\xe0\xbe\xb7\0" /* offset 2183 */ "\xe0\xbe\xa1\xe0\xbe\xb7\0" /* offset 2190 */ "\xe0\xbe\xa6\xe0\xbe\xb7\0" /* offset 2197 */ "\xe0\xbe\xab\xe0\xbe\xb7\0" /* offset 2204 */ "\xe0\xbe\x90\xe0\xbe\xb5\0" /* offset 2211 */ "\xe1\x80\xa5\xe1\x80\xae\0" /* offset 2218 */ "\x41\xcc\xa5\0" /* offset 2225 */ "\x61\xcc\xa5\0" /* offset 2229 */ "\x42\xcc\x87\0" /* offset 2233 */ "\x62\xcc\x87\0" /* offset 2237 */ "\x42\xcc\xa3\0" /* offset 2241 */ "\x62\xcc\xa3\0" /* offset 2245 */ "\x42\xcc\xb1\0" /* offset 2249 */ "\x62\xcc\xb1\0" /* offset 2253 */ "\x43\xcc\xa7\xcc\x81\0" /* offset 2257 */ "\x63\xcc\xa7\xcc\x81\0" /* offset 2263 */ "\x44\xcc\x87\0" /* offset 2269 */ "\x64\xcc\x87\0" /* offset 2273 */ "\x44\xcc\xa3\0" /* offset 2277 */ "\x64\xcc\xa3\0" /* offset 2281 */ "\x44\xcc\xb1\0" /* offset 2285 */ "\x64\xcc\xb1\0" /* offset 2289 */ "\x44\xcc\xa7\0" /* offset 2293 */ "\x64\xcc\xa7\0" /* offset 2297 */ "\x44\xcc\xad\0" /* offset 2301 */ "\x64\xcc\xad\0" /* offset 2305 */ "\x45\xcc\x84\xcc\x80\0" /* offset 2309 */ "\x65\xcc\x84\xcc\x80\0" /* offset 2315 */ "\x45\xcc\x84\xcc\x81\0" /* offset 2321 */ "\x65\xcc\x84\xcc\x81\0" /* offset 2327 */ "\x45\xcc\xad\0" /* offset 2333 */ "\x65\xcc\xad\0" /* offset 2337 */ "\x45\xcc\xb0\0" /* offset 2341 */ "\x65\xcc\xb0\0" /* offset 2345 */ "\x45\xcc\xa7\xcc\x86\0" /* offset 2349 */ "\x65\xcc\xa7\xcc\x86\0" /* offset 2355 */ "\x46\xcc\x87\0" /* offset 2361 */ "\x66\xcc\x87\0" /* offset 2365 */ "\x47\xcc\x84\0" /* offset 2369 */ "\x67\xcc\x84\0" /* offset 2373 */ "\x48\xcc\x87\0" /* offset 2377 */ "\x68\xcc\x87\0" /* offset 2381 */ "\x48\xcc\xa3\0" /* offset 2385 */ "\x68\xcc\xa3\0" /* offset 2389 */ "\x48\xcc\x88\0" /* offset 2393 */ "\x68\xcc\x88\0" /* offset 2397 */ "\x48\xcc\xa7\0" /* offset 2401 */ "\x68\xcc\xa7\0" /* offset 2405 */ "\x48\xcc\xae\0" /* offset 2409 */ "\x68\xcc\xae\0" /* offset 2413 */ "\x49\xcc\xb0\0" /* offset 2417 */ "\x69\xcc\xb0\0" /* offset 2421 */ "\x49\xcc\x88\xcc\x81\0" /* offset 2425 */ "\x69\xcc\x88\xcc\x81\0" /* offset 2431 */ "\x4b\xcc\x81\0" /* offset 2437 */ "\x6b\xcc\x81\0" /* offset 2441 */ "\x4b\xcc\xa3\0" /* offset 2445 */ "\x6b\xcc\xa3\0" /* offset 2449 */ "\x4b\xcc\xb1\0" /* offset 2453 */ "\x6b\xcc\xb1\0" /* offset 2457 */ "\x4c\xcc\xa3\0" /* offset 2461 */ "\x6c\xcc\xa3\0" /* offset 2465 */ "\x4c\xcc\xa3\xcc\x84\0" /* offset 2469 */ "\x6c\xcc\xa3\xcc\x84\0" /* offset 2475 */ "\x4c\xcc\xb1\0" /* offset 2481 */ "\x6c\xcc\xb1\0" /* offset 2485 */ "\x4c\xcc\xad\0" /* offset 2489 */ "\x6c\xcc\xad\0" /* offset 2493 */ "\x4d\xcc\x81\0" /* offset 2497 */ "\x6d\xcc\x81\0" /* offset 2501 */ "\x4d\xcc\x87\0" /* offset 2505 */ "\x6d\xcc\x87\0" /* offset 2509 */ "\x4d\xcc\xa3\0" /* offset 2513 */ "\x6d\xcc\xa3\0" /* offset 2517 */ "\x4e\xcc\x87\0" /* offset 2521 */ "\x6e\xcc\x87\0" /* offset 2525 */ "\x4e\xcc\xa3\0" /* offset 2529 */ "\x6e\xcc\xa3\0" /* offset 2533 */ "\x4e\xcc\xb1\0" /* offset 2537 */ "\x6e\xcc\xb1\0" /* offset 2541 */ "\x4e\xcc\xad\0" /* offset 2545 */ "\x6e\xcc\xad\0" /* offset 2549 */ "\x4f\xcc\x83\xcc\x81\0" /* offset 2553 */ "\x6f\xcc\x83\xcc\x81\0" /* offset 2559 */ "\x4f\xcc\x83\xcc\x88\0" /* offset 2565 */ "\x6f\xcc\x83\xcc\x88\0" /* offset 2571 */ "\x4f\xcc\x84\xcc\x80\0" /* offset 2577 */ "\x6f\xcc\x84\xcc\x80\0" /* offset 2583 */ "\x4f\xcc\x84\xcc\x81\0" /* offset 2589 */ "\x6f\xcc\x84\xcc\x81\0" /* offset 2595 */ "\x50\xcc\x81\0" /* offset 2601 */ "\x70\xcc\x81\0" /* offset 2605 */ "\x50\xcc\x87\0" /* offset 2609 */ "\x70\xcc\x87\0" /* offset 2613 */ "\x52\xcc\x87\0" /* offset 2617 */ "\x72\xcc\x87\0" /* offset 2621 */ "\x52\xcc\xa3\0" /* offset 2625 */ "\x72\xcc\xa3\0" /* offset 2629 */ "\x52\xcc\xa3\xcc\x84\0" /* offset 2633 */ "\x72\xcc\xa3\xcc\x84\0" /* offset 2639 */ "\x52\xcc\xb1\0" /* offset 2645 */ "\x72\xcc\xb1\0" /* offset 2649 */ "\x53\xcc\x87\0" /* offset 2653 */ "\x73\xcc\x87\0" /* offset 2657 */ "\x53\xcc\xa3\0" /* offset 2661 */ "\x73\xcc\xa3\0" /* offset 2665 */ "\x53\xcc\x81\xcc\x87\0" /* offset 2669 */ "\x73\xcc\x81\xcc\x87\0" /* offset 2675 */ "\x53\xcc\x8c\xcc\x87\0" /* offset 2681 */ "\x73\xcc\x8c\xcc\x87\0" /* offset 2687 */ "\x53\xcc\xa3\xcc\x87\0" /* offset 2693 */ "\x73\xcc\xa3\xcc\x87\0" /* offset 2699 */ "\x54\xcc\x87\0" /* offset 2705 */ "\x74\xcc\x87\0" /* offset 2709 */ "\x54\xcc\xa3\0" /* offset 2713 */ "\x74\xcc\xa3\0" /* offset 2717 */ "\x54\xcc\xb1\0" /* offset 2721 */ "\x74\xcc\xb1\0" /* offset 2725 */ "\x54\xcc\xad\0" /* offset 2729 */ "\x74\xcc\xad\0" /* offset 2733 */ "\x55\xcc\xa4\0" /* offset 2737 */ "\x75\xcc\xa4\0" /* offset 2741 */ "\x55\xcc\xb0\0" /* offset 2745 */ "\x75\xcc\xb0\0" /* offset 2749 */ "\x55\xcc\xad\0" /* offset 2753 */ "\x75\xcc\xad\0" /* offset 2757 */ "\x55\xcc\x83\xcc\x81\0" /* offset 2761 */ "\x75\xcc\x83\xcc\x81\0" /* offset 2767 */ "\x55\xcc\x84\xcc\x88\0" /* offset 2773 */ "\x75\xcc\x84\xcc\x88\0" /* offset 2779 */ "\x56\xcc\x83\0" /* offset 2785 */ "\x76\xcc\x83\0" /* offset 2789 */ "\x56\xcc\xa3\0" /* offset 2793 */ "\x76\xcc\xa3\0" /* offset 2797 */ "\x57\xcc\x80\0" /* offset 2801 */ "\x77\xcc\x80\0" /* offset 2805 */ "\x57\xcc\x81\0" /* offset 2809 */ "\x77\xcc\x81\0" /* offset 2813 */ "\x57\xcc\x88\0" /* offset 2817 */ "\x77\xcc\x88\0" /* offset 2821 */ "\x57\xcc\x87\0" /* offset 2825 */ "\x77\xcc\x87\0" /* offset 2829 */ "\x57\xcc\xa3\0" /* offset 2833 */ "\x77\xcc\xa3\0" /* offset 2837 */ "\x58\xcc\x87\0" /* offset 2841 */ "\x78\xcc\x87\0" /* offset 2845 */ "\x58\xcc\x88\0" /* offset 2849 */ "\x78\xcc\x88\0" /* offset 2853 */ "\x59\xcc\x87\0" /* offset 2857 */ "\x79\xcc\x87\0" /* offset 2861 */ "\x5a\xcc\x82\0" /* offset 2865 */ "\x7a\xcc\x82\0" /* offset 2869 */ "\x5a\xcc\xa3\0" /* offset 2873 */ "\x7a\xcc\xa3\0" /* offset 2877 */ "\x5a\xcc\xb1\0" /* offset 2881 */ "\x7a\xcc\xb1\0" /* offset 2885 */ "\x68\xcc\xb1\0" /* offset 2889 */ "\x74\xcc\x88\0" /* offset 2893 */ "\x77\xcc\x8a\0" /* offset 2897 */ "\x79\xcc\x8a\0" /* offset 2901 */ "\x61\xca\xbe\0" /* offset 2905 */ "\xc5\xbf\xcc\x87\0" /* offset 2909 */ "\x41\xcc\xa3\0" /* offset 2914 */ "\x61\xcc\xa3\0" /* offset 2918 */ "\x41\xcc\x89\0" /* offset 2922 */ "\x61\xcc\x89\0" /* offset 2926 */ "\x41\xcc\x82\xcc\x81\0" /* offset 2930 */ "\x61\xcc\x82\xcc\x81\0" /* offset 2936 */ "\x41\xcc\x82\xcc\x80\0" /* offset 2942 */ "\x61\xcc\x82\xcc\x80\0" /* offset 2948 */ "\x41\xcc\x82\xcc\x89\0" /* offset 2954 */ "\x61\xcc\x82\xcc\x89\0" /* offset 2960 */ "\x41\xcc\x82\xcc\x83\0" /* offset 2966 */ "\x61\xcc\x82\xcc\x83\0" /* offset 2972 */ "\x41\xcc\xa3\xcc\x82\0" /* offset 2978 */ "\x61\xcc\xa3\xcc\x82\0" /* offset 2984 */ "\x41\xcc\x86\xcc\x81\0" /* offset 2990 */ "\x61\xcc\x86\xcc\x81\0" /* offset 2996 */ "\x41\xcc\x86\xcc\x80\0" /* offset 3002 */ "\x61\xcc\x86\xcc\x80\0" /* offset 3008 */ "\x41\xcc\x86\xcc\x89\0" /* offset 3014 */ "\x61\xcc\x86\xcc\x89\0" /* offset 3020 */ "\x41\xcc\x86\xcc\x83\0" /* offset 3026 */ "\x61\xcc\x86\xcc\x83\0" /* offset 3032 */ "\x41\xcc\xa3\xcc\x86\0" /* offset 3038 */ "\x61\xcc\xa3\xcc\x86\0" /* offset 3044 */ "\x45\xcc\xa3\0" /* offset 3050 */ "\x65\xcc\xa3\0" /* offset 3054 */ "\x45\xcc\x89\0" /* offset 3058 */ "\x65\xcc\x89\0" /* offset 3062 */ "\x45\xcc\x83\0" /* offset 3066 */ "\x65\xcc\x83\0" /* offset 3070 */ "\x45\xcc\x82\xcc\x81\0" /* offset 3074 */ "\x65\xcc\x82\xcc\x81\0" /* offset 3080 */ "\x45\xcc\x82\xcc\x80\0" /* offset 3086 */ "\x65\xcc\x82\xcc\x80\0" /* offset 3092 */ "\x45\xcc\x82\xcc\x89\0" /* offset 3098 */ "\x65\xcc\x82\xcc\x89\0" /* offset 3104 */ "\x45\xcc\x82\xcc\x83\0" /* offset 3110 */ "\x65\xcc\x82\xcc\x83\0" /* offset 3116 */ "\x45\xcc\xa3\xcc\x82\0" /* offset 3122 */ "\x65\xcc\xa3\xcc\x82\0" /* offset 3128 */ "\x49\xcc\x89\0" /* offset 3134 */ "\x69\xcc\x89\0" /* offset 3138 */ "\x49\xcc\xa3\0" /* offset 3142 */ "\x69\xcc\xa3\0" /* offset 3146 */ "\x4f\xcc\xa3\0" /* offset 3150 */ "\x6f\xcc\xa3\0" /* offset 3154 */ "\x4f\xcc\x89\0" /* offset 3158 */ "\x6f\xcc\x89\0" /* offset 3162 */ "\x4f\xcc\x82\xcc\x81\0" /* offset 3166 */ "\x6f\xcc\x82\xcc\x81\0" /* offset 3172 */ "\x4f\xcc\x82\xcc\x80\0" /* offset 3178 */ "\x6f\xcc\x82\xcc\x80\0" /* offset 3184 */ "\x4f\xcc\x82\xcc\x89\0" /* offset 3190 */ "\x6f\xcc\x82\xcc\x89\0" /* offset 3196 */ "\x4f\xcc\x82\xcc\x83\0" /* offset 3202 */ "\x6f\xcc\x82\xcc\x83\0" /* offset 3208 */ "\x4f\xcc\xa3\xcc\x82\0" /* offset 3214 */ "\x6f\xcc\xa3\xcc\x82\0" /* offset 3220 */ "\x4f\xcc\x9b\xcc\x81\0" /* offset 3226 */ "\x6f\xcc\x9b\xcc\x81\0" /* offset 3232 */ "\x4f\xcc\x9b\xcc\x80\0" /* offset 3238 */ "\x6f\xcc\x9b\xcc\x80\0" /* offset 3244 */ "\x4f\xcc\x9b\xcc\x89\0" /* offset 3250 */ "\x6f\xcc\x9b\xcc\x89\0" /* offset 3256 */ "\x4f\xcc\x9b\xcc\x83\0" /* offset 3262 */ "\x6f\xcc\x9b\xcc\x83\0" /* offset 3268 */ "\x4f\xcc\x9b\xcc\xa3\0" /* offset 3274 */ "\x6f\xcc\x9b\xcc\xa3\0" /* offset 3280 */ "\x55\xcc\xa3\0" /* offset 3286 */ "\x75\xcc\xa3\0" /* offset 3290 */ "\x55\xcc\x89\0" /* offset 3294 */ "\x75\xcc\x89\0" /* offset 3298 */ "\x55\xcc\x9b\xcc\x81\0" /* offset 3302 */ "\x75\xcc\x9b\xcc\x81\0" /* offset 3308 */ "\x55\xcc\x9b\xcc\x80\0" /* offset 3314 */ "\x75\xcc\x9b\xcc\x80\0" /* offset 3320 */ "\x55\xcc\x9b\xcc\x89\0" /* offset 3326 */ "\x75\xcc\x9b\xcc\x89\0" /* offset 3332 */ "\x55\xcc\x9b\xcc\x83\0" /* offset 3338 */ "\x75\xcc\x9b\xcc\x83\0" /* offset 3344 */ "\x55\xcc\x9b\xcc\xa3\0" /* offset 3350 */ "\x75\xcc\x9b\xcc\xa3\0" /* offset 3356 */ "\x59\xcc\x80\0" /* offset 3362 */ "\x79\xcc\x80\0" /* offset 3366 */ "\x59\xcc\xa3\0" /* offset 3370 */ "\x79\xcc\xa3\0" /* offset 3374 */ "\x59\xcc\x89\0" /* offset 3378 */ "\x79\xcc\x89\0" /* offset 3382 */ "\x59\xcc\x83\0" /* offset 3386 */ "\x79\xcc\x83\0" /* offset 3390 */ "\xce\xb1\xcc\x93\0" /* offset 3394 */ "\xce\xb1\xcc\x94\0" /* offset 3399 */ "\xce\xb1\xcc\x93\xcc\x80\0" /* offset 3404 */ "\xce\xb1\xcc\x94\xcc\x80\0" /* offset 3411 */ "\xce\xb1\xcc\x93\xcc\x81\0" /* offset 3418 */ "\xce\xb1\xcc\x94\xcc\x81\0" /* offset 3425 */ "\xce\xb1\xcc\x93\xcd\x82\0" /* offset 3432 */ "\xce\xb1\xcc\x94\xcd\x82\0" /* offset 3439 */ "\xce\x91\xcc\x93\0" /* offset 3446 */ "\xce\x91\xcc\x94\0" /* offset 3451 */ "\xce\x91\xcc\x93\xcc\x80\0" /* offset 3456 */ "\xce\x91\xcc\x94\xcc\x80\0" /* offset 3463 */ "\xce\x91\xcc\x93\xcc\x81\0" /* offset 3470 */ "\xce\x91\xcc\x94\xcc\x81\0" /* offset 3477 */ "\xce\x91\xcc\x93\xcd\x82\0" /* offset 3484 */ "\xce\x91\xcc\x94\xcd\x82\0" /* offset 3491 */ "\xce\xb5\xcc\x93\0" /* offset 3498 */ "\xce\xb5\xcc\x94\0" /* offset 3503 */ "\xce\xb5\xcc\x93\xcc\x80\0" /* offset 3508 */ "\xce\xb5\xcc\x94\xcc\x80\0" /* offset 3515 */ "\xce\xb5\xcc\x93\xcc\x81\0" /* offset 3522 */ "\xce\xb5\xcc\x94\xcc\x81\0" /* offset 3529 */ "\xce\x95\xcc\x93\0" /* offset 3536 */ "\xce\x95\xcc\x94\0" /* offset 3541 */ "\xce\x95\xcc\x93\xcc\x80\0" /* offset 3546 */ "\xce\x95\xcc\x94\xcc\x80\0" /* offset 3553 */ "\xce\x95\xcc\x93\xcc\x81\0" /* offset 3560 */ "\xce\x95\xcc\x94\xcc\x81\0" /* offset 3567 */ "\xce\xb7\xcc\x93\0" /* offset 3574 */ "\xce\xb7\xcc\x94\0" /* offset 3579 */ "\xce\xb7\xcc\x93\xcc\x80\0" /* offset 3584 */ "\xce\xb7\xcc\x94\xcc\x80\0" /* offset 3591 */ "\xce\xb7\xcc\x93\xcc\x81\0" /* offset 3598 */ "\xce\xb7\xcc\x94\xcc\x81\0" /* offset 3605 */ "\xce\xb7\xcc\x93\xcd\x82\0" /* offset 3612 */ "\xce\xb7\xcc\x94\xcd\x82\0" /* offset 3619 */ "\xce\x97\xcc\x93\0" /* offset 3626 */ "\xce\x97\xcc\x94\0" /* offset 3631 */ "\xce\x97\xcc\x93\xcc\x80\0" /* offset 3636 */ "\xce\x97\xcc\x94\xcc\x80\0" /* offset 3643 */ "\xce\x97\xcc\x93\xcc\x81\0" /* offset 3650 */ "\xce\x97\xcc\x94\xcc\x81\0" /* offset 3657 */ "\xce\x97\xcc\x93\xcd\x82\0" /* offset 3664 */ "\xce\x97\xcc\x94\xcd\x82\0" /* offset 3671 */ "\xce\xb9\xcc\x93\0" /* offset 3678 */ "\xce\xb9\xcc\x94\0" /* offset 3683 */ "\xce\xb9\xcc\x93\xcc\x80\0" /* offset 3688 */ "\xce\xb9\xcc\x94\xcc\x80\0" /* offset 3695 */ "\xce\xb9\xcc\x93\xcc\x81\0" /* offset 3702 */ "\xce\xb9\xcc\x94\xcc\x81\0" /* offset 3709 */ "\xce\xb9\xcc\x93\xcd\x82\0" /* offset 3716 */ "\xce\xb9\xcc\x94\xcd\x82\0" /* offset 3723 */ "\xce\x99\xcc\x93\0" /* offset 3730 */ "\xce\x99\xcc\x94\0" /* offset 3735 */ "\xce\x99\xcc\x93\xcc\x80\0" /* offset 3740 */ "\xce\x99\xcc\x94\xcc\x80\0" /* offset 3747 */ "\xce\x99\xcc\x93\xcc\x81\0" /* offset 3754 */ "\xce\x99\xcc\x94\xcc\x81\0" /* offset 3761 */ "\xce\x99\xcc\x93\xcd\x82\0" /* offset 3768 */ "\xce\x99\xcc\x94\xcd\x82\0" /* offset 3775 */ "\xce\xbf\xcc\x93\0" /* offset 3782 */ "\xce\xbf\xcc\x94\0" /* offset 3787 */ "\xce\xbf\xcc\x93\xcc\x80\0" /* offset 3792 */ "\xce\xbf\xcc\x94\xcc\x80\0" /* offset 3799 */ "\xce\xbf\xcc\x93\xcc\x81\0" /* offset 3806 */ "\xce\xbf\xcc\x94\xcc\x81\0" /* offset 3813 */ "\xce\x9f\xcc\x93\0" /* offset 3820 */ "\xce\x9f\xcc\x94\0" /* offset 3825 */ "\xce\x9f\xcc\x93\xcc\x80\0" /* offset 3830 */ "\xce\x9f\xcc\x94\xcc\x80\0" /* offset 3837 */ "\xce\x9f\xcc\x93\xcc\x81\0" /* offset 3844 */ "\xce\x9f\xcc\x94\xcc\x81\0" /* offset 3851 */ "\xcf\x85\xcc\x93\0" /* offset 3858 */ "\xcf\x85\xcc\x94\0" /* offset 3863 */ "\xcf\x85\xcc\x93\xcc\x80\0" /* offset 3868 */ "\xcf\x85\xcc\x94\xcc\x80\0" /* offset 3875 */ "\xcf\x85\xcc\x93\xcc\x81\0" /* offset 3882 */ "\xcf\x85\xcc\x94\xcc\x81\0" /* offset 3889 */ "\xcf\x85\xcc\x93\xcd\x82\0" /* offset 3896 */ "\xcf\x85\xcc\x94\xcd\x82\0" /* offset 3903 */ "\xce\xa5\xcc\x94\0" /* offset 3910 */ "\xce\xa5\xcc\x94\xcc\x80\0" /* offset 3915 */ "\xce\xa5\xcc\x94\xcc\x81\0" /* offset 3922 */ "\xce\xa5\xcc\x94\xcd\x82\0" /* offset 3929 */ "\xcf\x89\xcc\x93\0" /* offset 3936 */ "\xcf\x89\xcc\x94\0" /* offset 3941 */ "\xcf\x89\xcc\x93\xcc\x80\0" /* offset 3946 */ "\xcf\x89\xcc\x94\xcc\x80\0" /* offset 3953 */ "\xcf\x89\xcc\x93\xcc\x81\0" /* offset 3960 */ "\xcf\x89\xcc\x94\xcc\x81\0" /* offset 3967 */ "\xcf\x89\xcc\x93\xcd\x82\0" /* offset 3974 */ "\xcf\x89\xcc\x94\xcd\x82\0" /* offset 3981 */ "\xce\xa9\xcc\x93\0" /* offset 3988 */ "\xce\xa9\xcc\x94\0" /* offset 3993 */ "\xce\xa9\xcc\x93\xcc\x80\0" /* offset 3998 */ "\xce\xa9\xcc\x94\xcc\x80\0" /* offset 4005 */ "\xce\xa9\xcc\x93\xcc\x81\0" /* offset 4012 */ "\xce\xa9\xcc\x94\xcc\x81\0" /* offset 4019 */ "\xce\xa9\xcc\x93\xcd\x82\0" /* offset 4026 */ "\xce\xa9\xcc\x94\xcd\x82\0" /* offset 4033 */ "\xce\xb1\xcc\x80\0" /* offset 4040 */ "\xce\xb5\xcc\x80\0" /* offset 4045 */ "\xce\xb7\xcc\x80\0" /* offset 4050 */ "\xce\xb9\xcc\x80\0" /* offset 4055 */ "\xce\xbf\xcc\x80\0" /* offset 4060 */ "\xcf\x85\xcc\x80\0" /* offset 4065 */ "\xcf\x89\xcc\x80\0" /* offset 4070 */ "\xce\xb1\xcc\x93\xcd\x85\0" /* offset 4075 */ "\xce\xb1\xcc\x94\xcd\x85\0" /* offset 4082 */ "\xce\xb1\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4089 */ "\xce\xb1\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4098 */ "\xce\xb1\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4107 */ "\xce\xb1\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4116 */ "\xce\xb1\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4125 */ "\xce\xb1\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4134 */ "\xce\x91\xcc\x93\xcd\x85\0" /* offset 4143 */ "\xce\x91\xcc\x94\xcd\x85\0" /* offset 4150 */ "\xce\x91\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4157 */ "\xce\x91\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4166 */ "\xce\x91\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4175 */ "\xce\x91\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4184 */ "\xce\x91\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4193 */ "\xce\x91\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4202 */ "\xce\xb7\xcc\x93\xcd\x85\0" /* offset 4211 */ "\xce\xb7\xcc\x94\xcd\x85\0" /* offset 4218 */ "\xce\xb7\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4225 */ "\xce\xb7\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4234 */ "\xce\xb7\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4243 */ "\xce\xb7\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4252 */ "\xce\xb7\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4261 */ "\xce\xb7\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4270 */ "\xce\x97\xcc\x93\xcd\x85\0" /* offset 4279 */ "\xce\x97\xcc\x94\xcd\x85\0" /* offset 4286 */ "\xce\x97\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4293 */ "\xce\x97\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4302 */ "\xce\x97\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4311 */ "\xce\x97\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4320 */ "\xce\x97\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4329 */ "\xce\x97\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4338 */ "\xcf\x89\xcc\x93\xcd\x85\0" /* offset 4347 */ "\xcf\x89\xcc\x94\xcd\x85\0" /* offset 4354 */ "\xcf\x89\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4361 */ "\xcf\x89\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4370 */ "\xcf\x89\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4379 */ "\xcf\x89\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4388 */ "\xcf\x89\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4397 */ "\xcf\x89\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4406 */ "\xce\xa9\xcc\x93\xcd\x85\0" /* offset 4415 */ "\xce\xa9\xcc\x94\xcd\x85\0" /* offset 4422 */ "\xce\xa9\xcc\x93\xcc\x80\xcd\x85\0" /* offset 4429 */ "\xce\xa9\xcc\x94\xcc\x80\xcd\x85\0" /* offset 4438 */ "\xce\xa9\xcc\x93\xcc\x81\xcd\x85\0" /* offset 4447 */ "\xce\xa9\xcc\x94\xcc\x81\xcd\x85\0" /* offset 4456 */ "\xce\xa9\xcc\x93\xcd\x82\xcd\x85\0" /* offset 4465 */ "\xce\xa9\xcc\x94\xcd\x82\xcd\x85\0" /* offset 4474 */ "\xce\xb1\xcc\x86\0" /* offset 4483 */ "\xce\xb1\xcc\x84\0" /* offset 4488 */ "\xce\xb1\xcc\x80\xcd\x85\0" /* offset 4493 */ "\xce\xb1\xcd\x85\0" /* offset 4500 */ "\xce\xb1\xcc\x81\xcd\x85\0" /* offset 4505 */ "\xce\xb1\xcd\x82\0" /* offset 4512 */ "\xce\xb1\xcd\x82\xcd\x85\0" /* offset 4517 */ "\xce\x91\xcc\x86\0" /* offset 4524 */ "\xce\x91\xcc\x84\0" /* offset 4529 */ "\xce\x91\xcc\x80\0" /* offset 4534 */ "\xce\x91\xcd\x85\0" /* offset 4539 */ "\x20\xcc\x93\0" /* offset 4544 */ "\xce\xb9\0" /* offset 4548 */ "\x20\xcd\x82\0" /* offset 4551 */ "\xc2\xa8\xcd\x82\0" /* offset 4555 */ "\x20\xcc\x88\xcd\x82\0" /* offset 4560 */ "\xce\xb7\xcc\x80\xcd\x85\0" /* offset 4566 */ "\xce\xb7\xcd\x85\0" /* offset 4573 */ "\xce\xb7\xcc\x81\xcd\x85\0" /* offset 4578 */ "\xce\xb7\xcd\x82\0" /* offset 4585 */ "\xce\xb7\xcd\x82\xcd\x85\0" /* offset 4590 */ "\xce\x95\xcc\x80\0" /* offset 4597 */ "\xce\x97\xcc\x80\0" /* offset 4602 */ "\xce\x97\xcd\x85\0" /* offset 4607 */ "\xe1\xbe\xbf\xcc\x80\0" /* offset 4612 */ "\x20\xcc\x93\xcc\x80\0" /* offset 4618 */ "\xe1\xbe\xbf\xcc\x81\0" /* offset 4624 */ "\x20\xcc\x93\xcc\x81\0" /* offset 4630 */ "\xe1\xbe\xbf\xcd\x82\0" /* offset 4636 */ "\x20\xcc\x93\xcd\x82\0" /* offset 4642 */ "\xce\xb9\xcc\x86\0" /* offset 4648 */ "\xce\xb9\xcc\x84\0" /* offset 4653 */ "\xce\xb9\xcc\x88\xcc\x80\0" /* offset 4658 */ "\xce\xb9\xcd\x82\0" /* offset 4665 */ "\xce\xb9\xcc\x88\xcd\x82\0" /* offset 4670 */ "\xce\x99\xcc\x86\0" /* offset 4677 */ "\xce\x99\xcc\x84\0" /* offset 4682 */ "\xce\x99\xcc\x80\0" /* offset 4687 */ "\xe1\xbf\xbe\xcc\x80\0" /* offset 4692 */ "\x20\xcc\x94\xcc\x80\0" /* offset 4698 */ "\xe1\xbf\xbe\xcc\x81\0" /* offset 4704 */ "\x20\xcc\x94\xcc\x81\0" /* offset 4710 */ "\xe1\xbf\xbe\xcd\x82\0" /* offset 4716 */ "\x20\xcc\x94\xcd\x82\0" /* offset 4722 */ "\xcf\x85\xcc\x86\0" /* offset 4728 */ "\xcf\x85\xcc\x84\0" /* offset 4733 */ "\xcf\x85\xcc\x88\xcc\x80\0" /* offset 4738 */ "\xcf\x81\xcc\x93\0" /* offset 4745 */ "\xcf\x81\xcc\x94\0" /* offset 4750 */ "\xcf\x85\xcd\x82\0" /* offset 4755 */ "\xcf\x85\xcc\x88\xcd\x82\0" /* offset 4760 */ "\xce\xa5\xcc\x86\0" /* offset 4767 */ "\xce\xa5\xcc\x84\0" /* offset 4772 */ "\xce\xa5\xcc\x80\0" /* offset 4777 */ "\xce\xa1\xcc\x94\0" /* offset 4782 */ "\xc2\xa8\xcc\x80\0" /* offset 4787 */ "\x20\xcc\x88\xcc\x80\0" /* offset 4792 */ "\x60\0" /* offset 4798 */ "\xcf\x89\xcc\x80\xcd\x85\0" /* offset 4800 */ "\xcf\x89\xcd\x85\0" /* offset 4807 */ "\xcf\x89\xcc\x81\xcd\x85\0" /* offset 4812 */ "\xcf\x89\xcd\x82\0" /* offset 4819 */ "\xcf\x89\xcd\x82\xcd\x85\0" /* offset 4824 */ "\xce\x9f\xcc\x80\0" /* offset 4831 */ "\xce\xa9\xcc\x80\0" /* offset 4836 */ "\xce\xa9\xcd\x85\0" /* offset 4841 */ "\xc2\xb4\0" /* offset 4846 */ "\x20\xcc\x94\0" /* offset 4849 */ "\xe2\x80\x82\0" /* offset 4853 */ "\xe2\x80\x83\0" /* offset 4857 */ "\xe2\x80\x90\0" /* offset 4861 */ "\x20\xcc\xb3\0" /* offset 4865 */ "\x2e\0" /* offset 4869 */ "\x2e\x2e\0" /* offset 4871 */ "\x2e\x2e\x2e\0" /* offset 4874 */ "\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4878 */ "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4885 */ "\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 4895 */ "\xe2\x80\xb5\xe2\x80\xb5\xe2\x80\xb5\0" /* offset 4902 */ "\x21\x21\0" /* offset 4912 */ "\x20\xcc\x85\0" /* offset 4915 */ "\x3f\x3f\0" /* offset 4919 */ "\x3f\x21\0" /* offset 4922 */ "\x21\x3f\0" /* offset 4925 */ "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\0" /* offset 4928 */ "\x30\0" /* offset 4941 */ "\x69\0" /* offset 4943 */ "\x34\0" /* offset 4945 */ "\x35\0" /* offset 4947 */ "\x36\0" /* offset 4949 */ "\x37\0" /* offset 4951 */ "\x38\0" /* offset 4953 */ "\x39\0" /* offset 4955 */ "\x2b\0" /* offset 4957 */ "\xe2\x88\x92\0" /* offset 4959 */ "\x3d\0" /* offset 4963 */ "\x28\0" /* offset 4965 */ "\x29\0" /* offset 4967 */ "\x6e\0" /* offset 4969 */ "\x52\x73\0" /* offset 4971 */ "\x61\x2f\x63\0" /* offset 4974 */ "\x61\x2f\x73\0" /* offset 4978 */ "\x43\0" /* offset 4982 */ "\xc2\xb0\x43\0" /* offset 4984 */ "\x63\x2f\x6f\0" /* offset 4988 */ "\x63\x2f\x75\0" /* offset 4992 */ "\xc6\x90\0" /* offset 4996 */ "\xc2\xb0\x46\0" /* offset 4999 */ "\x67\0" /* offset 5003 */ "\x48\0" /* offset 5005 */ "\xc4\xa7\0" /* offset 5007 */ "\x49\0" /* offset 5010 */ "\x4c\0" /* offset 5012 */ "\x4e\0" /* offset 5014 */ "\x4e\x6f\0" /* offset 5016 */ "\x50\0" /* offset 5019 */ "\x51\0" /* offset 5021 */ "\x52\0" /* offset 5023 */ "\x53\x4d\0" /* offset 5025 */ "\x54\x45\x4c\0" /* offset 5028 */ "\x54\x4d\0" /* offset 5032 */ "\x5a\0" /* offset 5035 */ "\xce\xa9\0" /* offset 5037 */ "\x4b\0" /* offset 5040 */ "\x42\0" /* offset 5042 */ "\x65\0" /* offset 5044 */ "\x45\0" /* offset 5046 */ "\x46\0" /* offset 5048 */ "\x4d\0" /* offset 5050 */ "\xd7\x90\0" /* offset 5052 */ "\xd7\x91\0" /* offset 5055 */ "\xd7\x92\0" /* offset 5058 */ "\xd7\x93\0" /* offset 5061 */ "\xce\xb3\0" /* offset 5064 */ "\xce\x93\0" /* offset 5067 */ "\xce\xa0\0" /* offset 5070 */ "\xe2\x88\x91\0" /* offset 5073 */ "\x44\0" /* offset 5077 */ "\x64\0" /* offset 5079 */ "\x31\xe2\x81\x84\x33\0" /* offset 5081 */ "\x32\xe2\x81\x84\x33\0" /* offset 5087 */ "\x31\xe2\x81\x84\x35\0" /* offset 5093 */ "\x32\xe2\x81\x84\x35\0" /* offset 5099 */ "\x33\xe2\x81\x84\x35\0" /* offset 5105 */ "\x34\xe2\x81\x84\x35\0" /* offset 5111 */ "\x31\xe2\x81\x84\x36\0" /* offset 5117 */ "\x35\xe2\x81\x84\x36\0" /* offset 5123 */ "\x31\xe2\x81\x84\x38\0" /* offset 5129 */ "\x33\xe2\x81\x84\x38\0" /* offset 5135 */ "\x35\xe2\x81\x84\x38\0" /* offset 5141 */ "\x37\xe2\x81\x84\x38\0" /* offset 5147 */ "\x31\xe2\x81\x84\0" /* offset 5153 */ "\x49\x49\0" /* offset 5158 */ "\x49\x49\x49\0" /* offset 5161 */ "\x49\x56\0" /* offset 5165 */ "\x56\0" /* offset 5168 */ "\x56\x49\0" /* offset 5170 */ "\x56\x49\x49\0" /* offset 5173 */ "\x56\x49\x49\x49\0" /* offset 5177 */ "\x49\x58\0" /* offset 5182 */ "\x58\0" /* offset 5185 */ "\x58\x49\0" /* offset 5187 */ "\x58\x49\x49\0" /* offset 5190 */ "\x69\x69\0" /* offset 5194 */ "\x69\x69\x69\0" /* offset 5197 */ "\x69\x76\0" /* offset 5201 */ "\x76\0" /* offset 5204 */ "\x76\x69\0" /* offset 5206 */ "\x76\x69\x69\0" /* offset 5209 */ "\x76\x69\x69\x69\0" /* offset 5213 */ "\x69\x78\0" /* offset 5218 */ "\x78\x69\0" /* offset 5221 */ "\x78\x69\x69\0" /* offset 5224 */ "\x63\0" /* offset 5228 */ "\x6d\0" /* offset 5230 */ "\xe2\x86\x90\xcc\xb8\0" /* offset 5232 */ "\xe2\x86\x92\xcc\xb8\0" /* offset 5238 */ "\xe2\x86\x94\xcc\xb8\0" /* offset 5244 */ "\xe2\x87\x90\xcc\xb8\0" /* offset 5250 */ "\xe2\x87\x94\xcc\xb8\0" /* offset 5256 */ "\xe2\x87\x92\xcc\xb8\0" /* offset 5262 */ "\xe2\x88\x83\xcc\xb8\0" /* offset 5268 */ "\xe2\x88\x88\xcc\xb8\0" /* offset 5274 */ "\xe2\x88\x8b\xcc\xb8\0" /* offset 5280 */ "\xe2\x88\xa3\xcc\xb8\0" /* offset 5286 */ "\xe2\x88\xa5\xcc\xb8\0" /* offset 5292 */ "\xe2\x88\xab\xe2\x88\xab\0" /* offset 5298 */ "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 5305 */ "\xe2\x88\xae\xe2\x88\xae\0" /* offset 5315 */ "\xe2\x88\xae\xe2\x88\xae\xe2\x88\xae\0" /* offset 5322 */ "\xe2\x88\xbc\xcc\xb8\0" /* offset 5332 */ "\xe2\x89\x83\xcc\xb8\0" /* offset 5338 */ "\xe2\x89\x85\xcc\xb8\0" /* offset 5344 */ "\xe2\x89\x88\xcc\xb8\0" /* offset 5350 */ "\x3d\xcc\xb8\0" /* offset 5356 */ "\xe2\x89\xa1\xcc\xb8\0" /* offset 5360 */ "\xe2\x89\x8d\xcc\xb8\0" /* offset 5366 */ "\x3c\xcc\xb8\0" /* offset 5372 */ "\x3e\xcc\xb8\0" /* offset 5376 */ "\xe2\x89\xa4\xcc\xb8\0" /* offset 5380 */ "\xe2\x89\xa5\xcc\xb8\0" /* offset 5386 */ "\xe2\x89\xb2\xcc\xb8\0" /* offset 5392 */ "\xe2\x89\xb3\xcc\xb8\0" /* offset 5398 */ "\xe2\x89\xb6\xcc\xb8\0" /* offset 5404 */ "\xe2\x89\xb7\xcc\xb8\0" /* offset 5410 */ "\xe2\x89\xba\xcc\xb8\0" /* offset 5416 */ "\xe2\x89\xbb\xcc\xb8\0" /* offset 5422 */ "\xe2\x8a\x82\xcc\xb8\0" /* offset 5428 */ "\xe2\x8a\x83\xcc\xb8\0" /* offset 5434 */ "\xe2\x8a\x86\xcc\xb8\0" /* offset 5440 */ "\xe2\x8a\x87\xcc\xb8\0" /* offset 5446 */ "\xe2\x8a\xa2\xcc\xb8\0" /* offset 5452 */ "\xe2\x8a\xa8\xcc\xb8\0" /* offset 5458 */ "\xe2\x8a\xa9\xcc\xb8\0" /* offset 5464 */ "\xe2\x8a\xab\xcc\xb8\0" /* offset 5470 */ "\xe2\x89\xbc\xcc\xb8\0" /* offset 5476 */ "\xe2\x89\xbd\xcc\xb8\0" /* offset 5482 */ "\xe2\x8a\x91\xcc\xb8\0" /* offset 5488 */ "\xe2\x8a\x92\xcc\xb8\0" /* offset 5494 */ "\xe2\x8a\xb2\xcc\xb8\0" /* offset 5500 */ "\xe2\x8a\xb3\xcc\xb8\0" /* offset 5506 */ "\xe2\x8a\xb4\xcc\xb8\0" /* offset 5512 */ "\xe2\x8a\xb5\xcc\xb8\0" /* offset 5518 */ "\xe3\x80\x88\0" /* offset 5524 */ "\xe3\x80\x89\0" /* offset 5528 */ "\x31\x30\0" /* offset 5532 */ "\x31\x31\0" /* offset 5535 */ "\x31\x32\0" /* offset 5538 */ "\x31\x33\0" /* offset 5541 */ "\x31\x34\0" /* offset 5544 */ "\x31\x35\0" /* offset 5547 */ "\x31\x36\0" /* offset 5550 */ "\x31\x37\0" /* offset 5553 */ "\x31\x38\0" /* offset 5556 */ "\x31\x39\0" /* offset 5559 */ "\x32\x30\0" /* offset 5562 */ "\x28\x31\x29\0" /* offset 5565 */ "\x28\x32\x29\0" /* offset 5569 */ "\x28\x33\x29\0" /* offset 5573 */ "\x28\x34\x29\0" /* offset 5577 */ "\x28\x35\x29\0" /* offset 5581 */ "\x28\x36\x29\0" /* offset 5585 */ "\x28\x37\x29\0" /* offset 5589 */ "\x28\x38\x29\0" /* offset 5593 */ "\x28\x39\x29\0" /* offset 5597 */ "\x28\x31\x30\x29\0" /* offset 5601 */ "\x28\x31\x31\x29\0" /* offset 5606 */ "\x28\x31\x32\x29\0" /* offset 5611 */ "\x28\x31\x33\x29\0" /* offset 5616 */ "\x28\x31\x34\x29\0" /* offset 5621 */ "\x28\x31\x35\x29\0" /* offset 5626 */ "\x28\x31\x36\x29\0" /* offset 5631 */ "\x28\x31\x37\x29\0" /* offset 5636 */ "\x28\x31\x38\x29\0" /* offset 5641 */ "\x28\x31\x39\x29\0" /* offset 5646 */ "\x28\x32\x30\x29\0" /* offset 5651 */ "\x31\x2e\0" /* offset 5656 */ "\x32\x2e\0" /* offset 5659 */ "\x33\x2e\0" /* offset 5662 */ "\x34\x2e\0" /* offset 5665 */ "\x35\x2e\0" /* offset 5668 */ "\x36\x2e\0" /* offset 5671 */ "\x37\x2e\0" /* offset 5674 */ "\x38\x2e\0" /* offset 5677 */ "\x39\x2e\0" /* offset 5680 */ "\x31\x30\x2e\0" /* offset 5683 */ "\x31\x31\x2e\0" /* offset 5687 */ "\x31\x32\x2e\0" /* offset 5691 */ "\x31\x33\x2e\0" /* offset 5695 */ "\x31\x34\x2e\0" /* offset 5699 */ "\x31\x35\x2e\0" /* offset 5703 */ "\x31\x36\x2e\0" /* offset 5707 */ "\x31\x37\x2e\0" /* offset 5711 */ "\x31\x38\x2e\0" /* offset 5715 */ "\x31\x39\x2e\0" /* offset 5719 */ "\x32\x30\x2e\0" /* offset 5723 */ "\x28\x61\x29\0" /* offset 5727 */ "\x28\x62\x29\0" /* offset 5731 */ "\x28\x63\x29\0" /* offset 5735 */ "\x28\x64\x29\0" /* offset 5739 */ "\x28\x65\x29\0" /* offset 5743 */ "\x28\x66\x29\0" /* offset 5747 */ "\x28\x67\x29\0" /* offset 5751 */ "\x28\x68\x29\0" /* offset 5755 */ "\x28\x69\x29\0" /* offset 5759 */ "\x28\x6a\x29\0" /* offset 5763 */ "\x28\x6b\x29\0" /* offset 5767 */ "\x28\x6c\x29\0" /* offset 5771 */ "\x28\x6d\x29\0" /* offset 5775 */ "\x28\x6e\x29\0" /* offset 5779 */ "\x28\x6f\x29\0" /* offset 5783 */ "\x28\x70\x29\0" /* offset 5787 */ "\x28\x71\x29\0" /* offset 5791 */ "\x28\x72\x29\0" /* offset 5795 */ "\x28\x73\x29\0" /* offset 5799 */ "\x28\x74\x29\0" /* offset 5803 */ "\x28\x75\x29\0" /* offset 5807 */ "\x28\x76\x29\0" /* offset 5811 */ "\x28\x77\x29\0" /* offset 5815 */ "\x28\x78\x29\0" /* offset 5819 */ "\x28\x79\x29\0" /* offset 5823 */ "\x28\x7a\x29\0" /* offset 5827 */ "\x41\0" /* offset 5831 */ "\x47\0" /* offset 5833 */ "\x4a\0" /* offset 5835 */ "\x4f\0" /* offset 5837 */ "\x53\0" /* offset 5839 */ "\x54\0" /* offset 5841 */ "\x55\0" /* offset 5843 */ "\x57\0" /* offset 5845 */ "\x59\0" /* offset 5847 */ "\x62\0" /* offset 5849 */ "\x66\0" /* offset 5851 */ "\x6b\0" /* offset 5853 */ "\x70\0" /* offset 5855 */ "\x71\0" /* offset 5857 */ "\x74\0" /* offset 5859 */ "\x75\0" /* offset 5861 */ "\x7a\0" /* offset 5863 */ "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\0" /* offset 5865 */ "\x3a\x3a\x3d\0" /* offset 5878 */ "\x3d\x3d\0" /* offset 5882 */ "\x3d\x3d\x3d\0" /* offset 5885 */ "\xe2\xab\x9d\xcc\xb8\0" /* offset 5889 */ "\xe6\xaf\x8d\0" /* offset 5895 */ "\xe9\xbe\x9f\0" /* offset 5899 */ "\xe4\xb8\x80\0" /* offset 5903 */ "\xe4\xb8\xa8\0" /* offset 5907 */ "\xe4\xb8\xb6\0" /* offset 5911 */ "\xe4\xb8\xbf\0" /* offset 5915 */ "\xe4\xb9\x99\0" /* offset 5919 */ "\xe4\xba\x85\0" /* offset 5923 */ "\xe4\xba\x8c\0" /* offset 5927 */ "\xe4\xba\xa0\0" /* offset 5931 */ "\xe4\xba\xba\0" /* offset 5935 */ "\xe5\x84\xbf\0" /* offset 5939 */ "\xe5\x85\xa5\0" /* offset 5943 */ "\xe5\x85\xab\0" /* offset 5947 */ "\xe5\x86\x82\0" /* offset 5951 */ "\xe5\x86\x96\0" /* offset 5955 */ "\xe5\x86\xab\0" /* offset 5959 */ "\xe5\x87\xa0\0" /* offset 5963 */ "\xe5\x87\xb5\0" /* offset 5967 */ "\xe5\x88\x80\0" /* offset 5971 */ "\xe5\x8a\x9b\0" /* offset 5975 */ "\xe5\x8b\xb9\0" /* offset 5979 */ "\xe5\x8c\x95\0" /* offset 5983 */ "\xe5\x8c\x9a\0" /* offset 5987 */ "\xe5\x8c\xb8\0" /* offset 5991 */ "\xe5\x8d\x81\0" /* offset 5995 */ "\xe5\x8d\x9c\0" /* offset 5999 */ "\xe5\x8d\xa9\0" /* offset 6003 */ "\xe5\x8e\x82\0" /* offset 6007 */ "\xe5\x8e\xb6\0" /* offset 6011 */ "\xe5\x8f\x88\0" /* offset 6015 */ "\xe5\x8f\xa3\0" /* offset 6019 */ "\xe5\x9b\x97\0" /* offset 6023 */ "\xe5\x9c\x9f\0" /* offset 6027 */ "\xe5\xa3\xab\0" /* offset 6031 */ "\xe5\xa4\x82\0" /* offset 6035 */ "\xe5\xa4\x8a\0" /* offset 6039 */ "\xe5\xa4\x95\0" /* offset 6043 */ "\xe5\xa4\xa7\0" /* offset 6047 */ "\xe5\xa5\xb3\0" /* offset 6051 */ "\xe5\xad\x90\0" /* offset 6055 */ "\xe5\xae\x80\0" /* offset 6059 */ "\xe5\xaf\xb8\0" /* offset 6063 */ "\xe5\xb0\x8f\0" /* offset 6067 */ "\xe5\xb0\xa2\0" /* offset 6071 */ "\xe5\xb0\xb8\0" /* offset 6075 */ "\xe5\xb1\xae\0" /* offset 6079 */ "\xe5\xb1\xb1\0" /* offset 6083 */ "\xe5\xb7\x9b\0" /* offset 6087 */ "\xe5\xb7\xa5\0" /* offset 6091 */ "\xe5\xb7\xb1\0" /* offset 6095 */ "\xe5\xb7\xbe\0" /* offset 6099 */ "\xe5\xb9\xb2\0" /* offset 6103 */ "\xe5\xb9\xba\0" /* offset 6107 */ "\xe5\xb9\xbf\0" /* offset 6111 */ "\xe5\xbb\xb4\0" /* offset 6115 */ "\xe5\xbb\xbe\0" /* offset 6119 */ "\xe5\xbc\x8b\0" /* offset 6123 */ "\xe5\xbc\x93\0" /* offset 6127 */ "\xe5\xbd\x90\0" /* offset 6131 */ "\xe5\xbd\xa1\0" /* offset 6135 */ "\xe5\xbd\xb3\0" /* offset 6139 */ "\xe5\xbf\x83\0" /* offset 6143 */ "\xe6\x88\x88\0" /* offset 6147 */ "\xe6\x88\xb6\0" /* offset 6151 */ "\xe6\x89\x8b\0" /* offset 6155 */ "\xe6\x94\xaf\0" /* offset 6159 */ "\xe6\x94\xb4\0" /* offset 6163 */ "\xe6\x96\x87\0" /* offset 6167 */ "\xe6\x96\x97\0" /* offset 6171 */ "\xe6\x96\xa4\0" /* offset 6175 */ "\xe6\x96\xb9\0" /* offset 6179 */ "\xe6\x97\xa0\0" /* offset 6183 */ "\xe6\x97\xa5\0" /* offset 6187 */ "\xe6\x9b\xb0\0" /* offset 6191 */ "\xe6\x9c\x88\0" /* offset 6195 */ "\xe6\x9c\xa8\0" /* offset 6199 */ "\xe6\xac\xa0\0" /* offset 6203 */ "\xe6\xad\xa2\0" /* offset 6207 */ "\xe6\xad\xb9\0" /* offset 6211 */ "\xe6\xae\xb3\0" /* offset 6215 */ "\xe6\xaf\x8b\0" /* offset 6219 */ "\xe6\xaf\x94\0" /* offset 6223 */ "\xe6\xaf\x9b\0" /* offset 6227 */ "\xe6\xb0\x8f\0" /* offset 6231 */ "\xe6\xb0\x94\0" /* offset 6235 */ "\xe6\xb0\xb4\0" /* offset 6239 */ "\xe7\x81\xab\0" /* offset 6243 */ "\xe7\x88\xaa\0" /* offset 6247 */ "\xe7\x88\xb6\0" /* offset 6251 */ "\xe7\x88\xbb\0" /* offset 6255 */ "\xe7\x88\xbf\0" /* offset 6259 */ "\xe7\x89\x87\0" /* offset 6263 */ "\xe7\x89\x99\0" /* offset 6267 */ "\xe7\x89\x9b\0" /* offset 6271 */ "\xe7\x8a\xac\0" /* offset 6275 */ "\xe7\x8e\x84\0" /* offset 6279 */ "\xe7\x8e\x89\0" /* offset 6283 */ "\xe7\x93\x9c\0" /* offset 6287 */ "\xe7\x93\xa6\0" /* offset 6291 */ "\xe7\x94\x98\0" /* offset 6295 */ "\xe7\x94\x9f\0" /* offset 6299 */ "\xe7\x94\xa8\0" /* offset 6303 */ "\xe7\x94\xb0\0" /* offset 6307 */ "\xe7\x96\x8b\0" /* offset 6311 */ "\xe7\x96\x92\0" /* offset 6315 */ "\xe7\x99\xb6\0" /* offset 6319 */ "\xe7\x99\xbd\0" /* offset 6323 */ "\xe7\x9a\xae\0" /* offset 6327 */ "\xe7\x9a\xbf\0" /* offset 6331 */ "\xe7\x9b\xae\0" /* offset 6335 */ "\xe7\x9f\x9b\0" /* offset 6339 */ "\xe7\x9f\xa2\0" /* offset 6343 */ "\xe7\x9f\xb3\0" /* offset 6347 */ "\xe7\xa4\xba\0" /* offset 6351 */ "\xe7\xa6\xb8\0" /* offset 6355 */ "\xe7\xa6\xbe\0" /* offset 6359 */ "\xe7\xa9\xb4\0" /* offset 6363 */ "\xe7\xab\x8b\0" /* offset 6367 */ "\xe7\xab\xb9\0" /* offset 6371 */ "\xe7\xb1\xb3\0" /* offset 6375 */ "\xe7\xb3\xb8\0" /* offset 6379 */ "\xe7\xbc\xb6\0" /* offset 6383 */ "\xe7\xbd\x91\0" /* offset 6387 */ "\xe7\xbe\x8a\0" /* offset 6391 */ "\xe7\xbe\xbd\0" /* offset 6395 */ "\xe8\x80\x81\0" /* offset 6399 */ "\xe8\x80\x8c\0" /* offset 6403 */ "\xe8\x80\x92\0" /* offset 6407 */ "\xe8\x80\xb3\0" /* offset 6411 */ "\xe8\x81\xbf\0" /* offset 6415 */ "\xe8\x82\x89\0" /* offset 6419 */ "\xe8\x87\xa3\0" /* offset 6423 */ "\xe8\x87\xaa\0" /* offset 6427 */ "\xe8\x87\xb3\0" /* offset 6431 */ "\xe8\x87\xbc\0" /* offset 6435 */ "\xe8\x88\x8c\0" /* offset 6439 */ "\xe8\x88\x9b\0" /* offset 6443 */ "\xe8\x88\x9f\0" /* offset 6447 */ "\xe8\x89\xae\0" /* offset 6451 */ "\xe8\x89\xb2\0" /* offset 6455 */ "\xe8\x89\xb8\0" /* offset 6459 */ "\xe8\x99\x8d\0" /* offset 6463 */ "\xe8\x99\xab\0" /* offset 6467 */ "\xe8\xa1\x80\0" /* offset 6471 */ "\xe8\xa1\x8c\0" /* offset 6475 */ "\xe8\xa1\xa3\0" /* offset 6479 */ "\xe8\xa5\xbe\0" /* offset 6483 */ "\xe8\xa6\x8b\0" /* offset 6487 */ "\xe8\xa7\x92\0" /* offset 6491 */ "\xe8\xa8\x80\0" /* offset 6495 */ "\xe8\xb0\xb7\0" /* offset 6499 */ "\xe8\xb1\x86\0" /* offset 6503 */ "\xe8\xb1\x95\0" /* offset 6507 */ "\xe8\xb1\xb8\0" /* offset 6511 */ "\xe8\xb2\x9d\0" /* offset 6515 */ "\xe8\xb5\xa4\0" /* offset 6519 */ "\xe8\xb5\xb0\0" /* offset 6523 */ "\xe8\xb6\xb3\0" /* offset 6527 */ "\xe8\xba\xab\0" /* offset 6531 */ "\xe8\xbb\x8a\0" /* offset 6535 */ "\xe8\xbe\x9b\0" /* offset 6539 */ "\xe8\xbe\xb0\0" /* offset 6543 */ "\xe8\xbe\xb5\0" /* offset 6547 */ "\xe9\x82\x91\0" /* offset 6551 */ "\xe9\x85\x89\0" /* offset 6555 */ "\xe9\x87\x86\0" /* offset 6559 */ "\xe9\x87\x8c\0" /* offset 6563 */ "\xe9\x87\x91\0" /* offset 6567 */ "\xe9\x95\xb7\0" /* offset 6571 */ "\xe9\x96\x80\0" /* offset 6575 */ "\xe9\x98\x9c\0" /* offset 6579 */ "\xe9\x9a\xb6\0" /* offset 6583 */ "\xe9\x9a\xb9\0" /* offset 6587 */ "\xe9\x9b\xa8\0" /* offset 6591 */ "\xe9\x9d\x91\0" /* offset 6595 */ "\xe9\x9d\x9e\0" /* offset 6599 */ "\xe9\x9d\xa2\0" /* offset 6603 */ "\xe9\x9d\xa9\0" /* offset 6607 */ "\xe9\x9f\x8b\0" /* offset 6611 */ "\xe9\x9f\xad\0" /* offset 6615 */ "\xe9\x9f\xb3\0" /* offset 6619 */ "\xe9\xa0\x81\0" /* offset 6623 */ "\xe9\xa2\xa8\0" /* offset 6627 */ "\xe9\xa3\x9b\0" /* offset 6631 */ "\xe9\xa3\x9f\0" /* offset 6635 */ "\xe9\xa6\x96\0" /* offset 6639 */ "\xe9\xa6\x99\0" /* offset 6643 */ "\xe9\xa6\xac\0" /* offset 6647 */ "\xe9\xaa\xa8\0" /* offset 6651 */ "\xe9\xab\x98\0" /* offset 6655 */ "\xe9\xab\x9f\0" /* offset 6659 */ "\xe9\xac\xa5\0" /* offset 6663 */ "\xe9\xac\xaf\0" /* offset 6667 */ "\xe9\xac\xb2\0" /* offset 6671 */ "\xe9\xac\xbc\0" /* offset 6675 */ "\xe9\xad\x9a\0" /* offset 6679 */ "\xe9\xb3\xa5\0" /* offset 6683 */ "\xe9\xb9\xb5\0" /* offset 6687 */ "\xe9\xb9\xbf\0" /* offset 6691 */ "\xe9\xba\xa5\0" /* offset 6695 */ "\xe9\xba\xbb\0" /* offset 6699 */ "\xe9\xbb\x83\0" /* offset 6703 */ "\xe9\xbb\x8d\0" /* offset 6707 */ "\xe9\xbb\x91\0" /* offset 6711 */ "\xe9\xbb\xb9\0" /* offset 6715 */ "\xe9\xbb\xbd\0" /* offset 6719 */ "\xe9\xbc\x8e\0" /* offset 6723 */ "\xe9\xbc\x93\0" /* offset 6727 */ "\xe9\xbc\xa0\0" /* offset 6731 */ "\xe9\xbc\xbb\0" /* offset 6735 */ "\xe9\xbd\x8a\0" /* offset 6739 */ "\xe9\xbd\x92\0" /* offset 6743 */ "\xe9\xbe\x8d\0" /* offset 6747 */ "\xe9\xbe\x9c\0" /* offset 6751 */ "\xe9\xbe\xa0\0" /* offset 6755 */ "\xe3\x80\x92\0" /* offset 6759 */ "\xe5\x8d\x84\0" /* offset 6763 */ "\xe5\x8d\x85\0" /* offset 6767 */ "\xe3\x81\x8b\xe3\x82\x99\0" /* offset 6771 */ "\xe3\x81\x8d\xe3\x82\x99\0" /* offset 6778 */ "\xe3\x81\x8f\xe3\x82\x99\0" /* offset 6785 */ "\xe3\x81\x91\xe3\x82\x99\0" /* offset 6792 */ "\xe3\x81\x93\xe3\x82\x99\0" /* offset 6799 */ "\xe3\x81\x95\xe3\x82\x99\0" /* offset 6806 */ "\xe3\x81\x97\xe3\x82\x99\0" /* offset 6813 */ "\xe3\x81\x99\xe3\x82\x99\0" /* offset 6820 */ "\xe3\x81\x9b\xe3\x82\x99\0" /* offset 6827 */ "\xe3\x81\x9d\xe3\x82\x99\0" /* offset 6834 */ "\xe3\x81\x9f\xe3\x82\x99\0" /* offset 6841 */ "\xe3\x81\xa1\xe3\x82\x99\0" /* offset 6848 */ "\xe3\x81\xa4\xe3\x82\x99\0" /* offset 6855 */ "\xe3\x81\xa6\xe3\x82\x99\0" /* offset 6862 */ "\xe3\x81\xa8\xe3\x82\x99\0" /* offset 6869 */ "\xe3\x81\xaf\xe3\x82\x99\0" /* offset 6876 */ "\xe3\x81\xaf\xe3\x82\x9a\0" /* offset 6883 */ "\xe3\x81\xb2\xe3\x82\x99\0" /* offset 6890 */ "\xe3\x81\xb2\xe3\x82\x9a\0" /* offset 6897 */ "\xe3\x81\xb5\xe3\x82\x99\0" /* offset 6904 */ "\xe3\x81\xb5\xe3\x82\x9a\0" /* offset 6911 */ "\xe3\x81\xb8\xe3\x82\x99\0" /* offset 6918 */ "\xe3\x81\xb8\xe3\x82\x9a\0" /* offset 6925 */ "\xe3\x81\xbb\xe3\x82\x99\0" /* offset 6932 */ "\xe3\x81\xbb\xe3\x82\x9a\0" /* offset 6939 */ "\xe3\x81\x86\xe3\x82\x99\0" /* offset 6946 */ "\x20\xe3\x82\x99\0" /* offset 6953 */ "\x20\xe3\x82\x9a\0" /* offset 6958 */ "\xe3\x82\x9d\xe3\x82\x99\0" /* offset 6963 */ "\xe3\x82\x88\xe3\x82\x8a\0" /* offset 6970 */ "\xe3\x82\xab\xe3\x82\x99\0" /* offset 6977 */ "\xe3\x82\xad\xe3\x82\x99\0" /* offset 6984 */ "\xe3\x82\xaf\xe3\x82\x99\0" /* offset 6991 */ "\xe3\x82\xb1\xe3\x82\x99\0" /* offset 6998 */ "\xe3\x82\xb3\xe3\x82\x99\0" /* offset 7005 */ "\xe3\x82\xb5\xe3\x82\x99\0" /* offset 7012 */ "\xe3\x82\xb7\xe3\x82\x99\0" /* offset 7019 */ "\xe3\x82\xb9\xe3\x82\x99\0" /* offset 7026 */ "\xe3\x82\xbb\xe3\x82\x99\0" /* offset 7033 */ "\xe3\x82\xbd\xe3\x82\x99\0" /* offset 7040 */ "\xe3\x82\xbf\xe3\x82\x99\0" /* offset 7047 */ "\xe3\x83\x81\xe3\x82\x99\0" /* offset 7054 */ "\xe3\x83\x84\xe3\x82\x99\0" /* offset 7061 */ "\xe3\x83\x86\xe3\x82\x99\0" /* offset 7068 */ "\xe3\x83\x88\xe3\x82\x99\0" /* offset 7075 */ "\xe3\x83\x8f\xe3\x82\x99\0" /* offset 7082 */ "\xe3\x83\x8f\xe3\x82\x9a\0" /* offset 7089 */ "\xe3\x83\x92\xe3\x82\x99\0" /* offset 7096 */ "\xe3\x83\x92\xe3\x82\x9a\0" /* offset 7103 */ "\xe3\x83\x95\xe3\x82\x99\0" /* offset 7110 */ "\xe3\x83\x95\xe3\x82\x9a\0" /* offset 7117 */ "\xe3\x83\x98\xe3\x82\x99\0" /* offset 7124 */ "\xe3\x83\x98\xe3\x82\x9a\0" /* offset 7131 */ "\xe3\x83\x9b\xe3\x82\x99\0" /* offset 7138 */ "\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 7145 */ "\xe3\x82\xa6\xe3\x82\x99\0" /* offset 7152 */ "\xe3\x83\xaf\xe3\x82\x99\0" /* offset 7159 */ "\xe3\x83\xb0\xe3\x82\x99\0" /* offset 7166 */ "\xe3\x83\xb1\xe3\x82\x99\0" /* offset 7173 */ "\xe3\x83\xb2\xe3\x82\x99\0" /* offset 7180 */ "\xe3\x83\xbd\xe3\x82\x99\0" /* offset 7187 */ "\xe3\x82\xb3\xe3\x83\x88\0" /* offset 7194 */ "\xe1\x84\x80\0" /* offset 7201 */ "\xe1\x84\x81\0" /* offset 7205 */ "\xe1\x86\xaa\0" /* offset 7209 */ "\xe1\x84\x82\0" /* offset 7213 */ "\xe1\x86\xac\0" /* offset 7217 */ "\xe1\x86\xad\0" /* offset 7221 */ "\xe1\x84\x83\0" /* offset 7225 */ "\xe1\x84\x84\0" /* offset 7229 */ "\xe1\x84\x85\0" /* offset 7233 */ "\xe1\x86\xb0\0" /* offset 7237 */ "\xe1\x86\xb1\0" /* offset 7241 */ "\xe1\x86\xb2\0" /* offset 7245 */ "\xe1\x86\xb3\0" /* offset 7249 */ "\xe1\x86\xb4\0" /* offset 7253 */ "\xe1\x86\xb5\0" /* offset 7257 */ "\xe1\x84\x9a\0" /* offset 7261 */ "\xe1\x84\x86\0" /* offset 7265 */ "\xe1\x84\x87\0" /* offset 7269 */ "\xe1\x84\x88\0" /* offset 7273 */ "\xe1\x84\xa1\0" /* offset 7277 */ "\xe1\x84\x89\0" /* offset 7281 */ "\xe1\x84\x8a\0" /* offset 7285 */ "\xe1\x84\x8b\0" /* offset 7289 */ "\xe1\x84\x8c\0" /* offset 7293 */ "\xe1\x84\x8d\0" /* offset 7297 */ "\xe1\x84\x8e\0" /* offset 7301 */ "\xe1\x84\x8f\0" /* offset 7305 */ "\xe1\x84\x90\0" /* offset 7309 */ "\xe1\x84\x91\0" /* offset 7313 */ "\xe1\x84\x92\0" /* offset 7317 */ "\xe1\x85\xa1\0" /* offset 7321 */ "\xe1\x85\xa2\0" /* offset 7325 */ "\xe1\x85\xa3\0" /* offset 7329 */ "\xe1\x85\xa4\0" /* offset 7333 */ "\xe1\x85\xa5\0" /* offset 7337 */ "\xe1\x85\xa6\0" /* offset 7341 */ "\xe1\x85\xa7\0" /* offset 7345 */ "\xe1\x85\xa8\0" /* offset 7349 */ "\xe1\x85\xa9\0" /* offset 7353 */ "\xe1\x85\xaa\0" /* offset 7357 */ "\xe1\x85\xab\0" /* offset 7361 */ "\xe1\x85\xac\0" /* offset 7365 */ "\xe1\x85\xad\0" /* offset 7369 */ "\xe1\x85\xae\0" /* offset 7373 */ "\xe1\x85\xaf\0" /* offset 7377 */ "\xe1\x85\xb0\0" /* offset 7381 */ "\xe1\x85\xb1\0" /* offset 7385 */ "\xe1\x85\xb2\0" /* offset 7389 */ "\xe1\x85\xb3\0" /* offset 7393 */ "\xe1\x85\xb4\0" /* offset 7397 */ "\xe1\x85\xb5\0" /* offset 7401 */ "\xe1\x85\xa0\0" /* offset 7405 */ "\xe1\x84\x94\0" /* offset 7409 */ "\xe1\x84\x95\0" /* offset 7413 */ "\xe1\x87\x87\0" /* offset 7417 */ "\xe1\x87\x88\0" /* offset 7421 */ "\xe1\x87\x8c\0" /* offset 7425 */ "\xe1\x87\x8e\0" /* offset 7429 */ "\xe1\x87\x93\0" /* offset 7433 */ "\xe1\x87\x97\0" /* offset 7437 */ "\xe1\x87\x99\0" /* offset 7441 */ "\xe1\x84\x9c\0" /* offset 7445 */ "\xe1\x87\x9d\0" /* offset 7449 */ "\xe1\x87\x9f\0" /* offset 7453 */ "\xe1\x84\x9d\0" /* offset 7457 */ "\xe1\x84\x9e\0" /* offset 7461 */ "\xe1\x84\xa0\0" /* offset 7465 */ "\xe1\x84\xa2\0" /* offset 7469 */ "\xe1\x84\xa3\0" /* offset 7473 */ "\xe1\x84\xa7\0" /* offset 7477 */ "\xe1\x84\xa9\0" /* offset 7481 */ "\xe1\x84\xab\0" /* offset 7485 */ "\xe1\x84\xac\0" /* offset 7489 */ "\xe1\x84\xad\0" /* offset 7493 */ "\xe1\x84\xae\0" /* offset 7497 */ "\xe1\x84\xaf\0" /* offset 7501 */ "\xe1\x84\xb2\0" /* offset 7505 */ "\xe1\x84\xb6\0" /* offset 7509 */ "\xe1\x85\x80\0" /* offset 7513 */ "\xe1\x85\x87\0" /* offset 7517 */ "\xe1\x85\x8c\0" /* offset 7521 */ "\xe1\x87\xb1\0" /* offset 7525 */ "\xe1\x87\xb2\0" /* offset 7529 */ "\xe1\x85\x97\0" /* offset 7533 */ "\xe1\x85\x98\0" /* offset 7537 */ "\xe1\x85\x99\0" /* offset 7541 */ "\xe1\x86\x84\0" /* offset 7545 */ "\xe1\x86\x85\0" /* offset 7549 */ "\xe1\x86\x88\0" /* offset 7553 */ "\xe1\x86\x91\0" /* offset 7557 */ "\xe1\x86\x92\0" /* offset 7561 */ "\xe1\x86\x94\0" /* offset 7565 */ "\xe1\x86\x9e\0" /* offset 7569 */ "\xe1\x86\xa1\0" /* offset 7573 */ "\xe4\xb8\x89\0" /* offset 7577 */ "\xe5\x9b\x9b\0" /* offset 7581 */ "\xe4\xb8\x8a\0" /* offset 7585 */ "\xe4\xb8\xad\0" /* offset 7589 */ "\xe4\xb8\x8b\0" /* offset 7593 */ "\xe7\x94\xb2\0" /* offset 7597 */ "\xe4\xb8\x99\0" /* offset 7601 */ "\xe4\xb8\x81\0" /* offset 7605 */ "\xe5\xa4\xa9\0" /* offset 7609 */ "\xe5\x9c\xb0\0" /* offset 7613 */ "\x28\xe1\x84\x80\x29\0" /* offset 7617 */ "\x28\xe1\x84\x82\x29\0" /* offset 7623 */ "\x28\xe1\x84\x83\x29\0" /* offset 7629 */ "\x28\xe1\x84\x85\x29\0" /* offset 7635 */ "\x28\xe1\x84\x86\x29\0" /* offset 7641 */ "\x28\xe1\x84\x87\x29\0" /* offset 7647 */ "\x28\xe1\x84\x89\x29\0" /* offset 7653 */ "\x28\xe1\x84\x8b\x29\0" /* offset 7659 */ "\x28\xe1\x84\x8c\x29\0" /* offset 7665 */ "\x28\xe1\x84\x8e\x29\0" /* offset 7671 */ "\x28\xe1\x84\x8f\x29\0" /* offset 7677 */ "\x28\xe1\x84\x90\x29\0" /* offset 7683 */ "\x28\xe1\x84\x91\x29\0" /* offset 7689 */ "\x28\xe1\x84\x92\x29\0" /* offset 7695 */ "\x28\xe1\x84\x80\xe1\x85\xa1\x29\0" /* offset 7701 */ "\x28\xe1\x84\x82\xe1\x85\xa1\x29\0" /* offset 7710 */ "\x28\xe1\x84\x83\xe1\x85\xa1\x29\0" /* offset 7719 */ "\x28\xe1\x84\x85\xe1\x85\xa1\x29\0" /* offset 7728 */ "\x28\xe1\x84\x86\xe1\x85\xa1\x29\0" /* offset 7737 */ "\x28\xe1\x84\x87\xe1\x85\xa1\x29\0" /* offset 7746 */ "\x28\xe1\x84\x89\xe1\x85\xa1\x29\0" /* offset 7755 */ "\x28\xe1\x84\x8b\xe1\x85\xa1\x29\0" /* offset 7764 */ "\x28\xe1\x84\x8c\xe1\x85\xa1\x29\0" /* offset 7773 */ "\x28\xe1\x84\x8e\xe1\x85\xa1\x29\0" /* offset 7782 */ "\x28\xe1\x84\x8f\xe1\x85\xa1\x29\0" /* offset 7791 */ "\x28\xe1\x84\x90\xe1\x85\xa1\x29\0" /* offset 7800 */ "\x28\xe1\x84\x91\xe1\x85\xa1\x29\0" /* offset 7809 */ "\x28\xe1\x84\x92\xe1\x85\xa1\x29\0" /* offset 7818 */ "\x28\xe1\x84\x8c\xe1\x85\xae\x29\0" /* offset 7827 */ "\x28\xe4\xb8\x80\x29\0" /* offset 7836 */ "\x28\xe4\xba\x8c\x29\0" /* offset 7842 */ "\x28\xe4\xb8\x89\x29\0" /* offset 7848 */ "\x28\xe5\x9b\x9b\x29\0" /* offset 7854 */ "\x28\xe4\xba\x94\x29\0" /* offset 7860 */ "\x28\xe5\x85\xad\x29\0" /* offset 7866 */ "\x28\xe4\xb8\x83\x29\0" /* offset 7872 */ "\x28\xe5\x85\xab\x29\0" /* offset 7878 */ "\x28\xe4\xb9\x9d\x29\0" /* offset 7884 */ "\x28\xe5\x8d\x81\x29\0" /* offset 7890 */ "\x28\xe6\x9c\x88\x29\0" /* offset 7896 */ "\x28\xe7\x81\xab\x29\0" /* offset 7902 */ "\x28\xe6\xb0\xb4\x29\0" /* offset 7908 */ "\x28\xe6\x9c\xa8\x29\0" /* offset 7914 */ "\x28\xe9\x87\x91\x29\0" /* offset 7920 */ "\x28\xe5\x9c\x9f\x29\0" /* offset 7926 */ "\x28\xe6\x97\xa5\x29\0" /* offset 7932 */ "\x28\xe6\xa0\xaa\x29\0" /* offset 7938 */ "\x28\xe6\x9c\x89\x29\0" /* offset 7944 */ "\x28\xe7\xa4\xbe\x29\0" /* offset 7950 */ "\x28\xe5\x90\x8d\x29\0" /* offset 7956 */ "\x28\xe7\x89\xb9\x29\0" /* offset 7962 */ "\x28\xe8\xb2\xa1\x29\0" /* offset 7968 */ "\x28\xe7\xa5\x9d\x29\0" /* offset 7974 */ "\x28\xe5\x8a\xb4\x29\0" /* offset 7980 */ "\x28\xe4\xbb\xa3\x29\0" /* offset 7986 */ "\x28\xe5\x91\xbc\x29\0" /* offset 7992 */ "\x28\xe5\xad\xa6\x29\0" /* offset 7998 */ "\x28\xe7\x9b\xa3\x29\0" /* offset 8004 */ "\x28\xe4\xbc\x81\x29\0" /* offset 8010 */ "\x28\xe8\xb3\x87\x29\0" /* offset 8016 */ "\x28\xe5\x8d\x94\x29\0" /* offset 8022 */ "\x28\xe7\xa5\xad\x29\0" /* offset 8028 */ "\x28\xe4\xbc\x91\x29\0" /* offset 8034 */ "\x28\xe8\x87\xaa\x29\0" /* offset 8040 */ "\x28\xe8\x87\xb3\x29\0" /* offset 8046 */ "\x32\x31\0" /* offset 8052 */ "\x32\x32\0" /* offset 8055 */ "\x32\x33\0" /* offset 8058 */ "\x32\x34\0" /* offset 8061 */ "\x32\x35\0" /* offset 8064 */ "\x32\x36\0" /* offset 8067 */ "\x32\x37\0" /* offset 8070 */ "\x32\x38\0" /* offset 8073 */ "\x32\x39\0" /* offset 8076 */ "\x33\x30\0" /* offset 8079 */ "\x33\x31\0" /* offset 8082 */ "\x33\x32\0" /* offset 8085 */ "\x33\x33\0" /* offset 8088 */ "\x33\x34\0" /* offset 8091 */ "\x33\x35\0" /* offset 8094 */ "\xe1\x84\x80\xe1\x85\xa1\0" /* offset 8097 */ "\xe1\x84\x82\xe1\x85\xa1\0" /* offset 8104 */ "\xe1\x84\x83\xe1\x85\xa1\0" /* offset 8111 */ "\xe1\x84\x85\xe1\x85\xa1\0" /* offset 8118 */ "\xe1\x84\x86\xe1\x85\xa1\0" /* offset 8125 */ "\xe1\x84\x87\xe1\x85\xa1\0" /* offset 8132 */ "\xe1\x84\x89\xe1\x85\xa1\0" /* offset 8139 */ "\xe1\x84\x8b\xe1\x85\xa1\0" /* offset 8146 */ "\xe1\x84\x8c\xe1\x85\xa1\0" /* offset 8153 */ "\xe1\x84\x8e\xe1\x85\xa1\0" /* offset 8160 */ "\xe1\x84\x8f\xe1\x85\xa1\0" /* offset 8167 */ "\xe1\x84\x90\xe1\x85\xa1\0" /* offset 8174 */ "\xe1\x84\x91\xe1\x85\xa1\0" /* offset 8181 */ "\xe1\x84\x92\xe1\x85\xa1\0" /* offset 8188 */ "\xe4\xba\x94\0" /* offset 8195 */ "\xe5\x85\xad\0" /* offset 8199 */ "\xe4\xb8\x83\0" /* offset 8203 */ "\xe4\xb9\x9d\0" /* offset 8207 */ "\xe6\xa0\xaa\0" /* offset 8211 */ "\xe6\x9c\x89\0" /* offset 8215 */ "\xe7\xa4\xbe\0" /* offset 8219 */ "\xe5\x90\x8d\0" /* offset 8223 */ "\xe7\x89\xb9\0" /* offset 8227 */ "\xe8\xb2\xa1\0" /* offset 8231 */ "\xe7\xa5\x9d\0" /* offset 8235 */ "\xe5\x8a\xb4\0" /* offset 8239 */ "\xe7\xa7\x98\0" /* offset 8243 */ "\xe7\x94\xb7\0" /* offset 8247 */ "\xe9\x81\xa9\0" /* offset 8251 */ "\xe5\x84\xaa\0" /* offset 8255 */ "\xe5\x8d\xb0\0" /* offset 8259 */ "\xe6\xb3\xa8\0" /* offset 8263 */ "\xe9\xa0\x85\0" /* offset 8267 */ "\xe4\xbc\x91\0" /* offset 8271 */ "\xe5\x86\x99\0" /* offset 8275 */ "\xe6\xad\xa3\0" /* offset 8279 */ "\xe5\xb7\xa6\0" /* offset 8283 */ "\xe5\x8f\xb3\0" /* offset 8287 */ "\xe5\x8c\xbb\0" /* offset 8291 */ "\xe5\xae\x97\0" /* offset 8295 */ "\xe5\xad\xa6\0" /* offset 8299 */ "\xe7\x9b\xa3\0" /* offset 8303 */ "\xe4\xbc\x81\0" /* offset 8307 */ "\xe8\xb3\x87\0" /* offset 8311 */ "\xe5\x8d\x94\0" /* offset 8315 */ "\xe5\xa4\x9c\0" /* offset 8319 */ "\x33\x36\0" /* offset 8323 */ "\x33\x37\0" /* offset 8326 */ "\x33\x38\0" /* offset 8329 */ "\x33\x39\0" /* offset 8332 */ "\x34\x30\0" /* offset 8335 */ "\x34\x31\0" /* offset 8338 */ "\x34\x32\0" /* offset 8341 */ "\x34\x33\0" /* offset 8344 */ "\x34\x34\0" /* offset 8347 */ "\x34\x35\0" /* offset 8350 */ "\x34\x36\0" /* offset 8353 */ "\x34\x37\0" /* offset 8356 */ "\x34\x38\0" /* offset 8359 */ "\x34\x39\0" /* offset 8362 */ "\x35\x30\0" /* offset 8365 */ "\x31\xe6\x9c\x88\0" /* offset 8368 */ "\x32\xe6\x9c\x88\0" /* offset 8373 */ "\x33\xe6\x9c\x88\0" /* offset 8378 */ "\x34\xe6\x9c\x88\0" /* offset 8383 */ "\x35\xe6\x9c\x88\0" /* offset 8388 */ "\x36\xe6\x9c\x88\0" /* offset 8393 */ "\x37\xe6\x9c\x88\0" /* offset 8398 */ "\x38\xe6\x9c\x88\0" /* offset 8403 */ "\x39\xe6\x9c\x88\0" /* offset 8408 */ "\x31\x30\xe6\x9c\x88\0" /* offset 8413 */ "\x31\x31\xe6\x9c\x88\0" /* offset 8419 */ "\x31\x32\xe6\x9c\x88\0" /* offset 8425 */ "\xe3\x82\xa2\0" /* offset 8431 */ "\xe3\x82\xa4\0" /* offset 8435 */ "\xe3\x82\xa6\0" /* offset 8439 */ "\xe3\x82\xa8\0" /* offset 8443 */ "\xe3\x82\xaa\0" /* offset 8447 */ "\xe3\x82\xab\0" /* offset 8451 */ "\xe3\x82\xad\0" /* offset 8455 */ "\xe3\x82\xaf\0" /* offset 8459 */ "\xe3\x82\xb1\0" /* offset 8463 */ "\xe3\x82\xb3\0" /* offset 8467 */ "\xe3\x82\xb5\0" /* offset 8471 */ "\xe3\x82\xb7\0" /* offset 8475 */ "\xe3\x82\xb9\0" /* offset 8479 */ "\xe3\x82\xbb\0" /* offset 8483 */ "\xe3\x82\xbd\0" /* offset 8487 */ "\xe3\x82\xbf\0" /* offset 8491 */ "\xe3\x83\x81\0" /* offset 8495 */ "\xe3\x83\x84\0" /* offset 8499 */ "\xe3\x83\x86\0" /* offset 8503 */ "\xe3\x83\x88\0" /* offset 8507 */ "\xe3\x83\x8a\0" /* offset 8511 */ "\xe3\x83\x8b\0" /* offset 8515 */ "\xe3\x83\x8c\0" /* offset 8519 */ "\xe3\x83\x8d\0" /* offset 8523 */ "\xe3\x83\x8e\0" /* offset 8527 */ "\xe3\x83\x8f\0" /* offset 8531 */ "\xe3\x83\x92\0" /* offset 8535 */ "\xe3\x83\x95\0" /* offset 8539 */ "\xe3\x83\x98\0" /* offset 8543 */ "\xe3\x83\x9b\0" /* offset 8547 */ "\xe3\x83\x9e\0" /* offset 8551 */ "\xe3\x83\x9f\0" /* offset 8555 */ "\xe3\x83\xa0\0" /* offset 8559 */ "\xe3\x83\xa1\0" /* offset 8563 */ "\xe3\x83\xa2\0" /* offset 8567 */ "\xe3\x83\xa4\0" /* offset 8571 */ "\xe3\x83\xa6\0" /* offset 8575 */ "\xe3\x83\xa8\0" /* offset 8579 */ "\xe3\x83\xa9\0" /* offset 8583 */ "\xe3\x83\xaa\0" /* offset 8587 */ "\xe3\x83\xab\0" /* offset 8591 */ "\xe3\x83\xac\0" /* offset 8595 */ "\xe3\x83\xad\0" /* offset 8599 */ "\xe3\x83\xaf\0" /* offset 8603 */ "\xe3\x83\xb0\0" /* offset 8607 */ "\xe3\x83\xb1\0" /* offset 8611 */ "\xe3\x83\xb2\0" /* offset 8615 */ "\xe3\x82\xa2\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x88\0" /* offset 8619 */ "\xe3\x82\xa2\xe3\x83\xab\xe3\x83\x95\xe3\x82\xa1\0" /* offset 8635 */ "\xe3\x82\xa2\xe3\x83\xb3\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xa2\0" /* offset 8648 */ "\xe3\x82\xa2\xe3\x83\xbc\xe3\x83\xab\0" /* offset 8664 */ "\xe3\x82\xa4\xe3\x83\x8b\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 8674 */ "\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x81\0" /* offset 8690 */ "\xe3\x82\xa6\xe3\x82\xa9\xe3\x83\xb3\0" /* offset 8700 */ "\xe3\x82\xa8\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 8710 */ "\xe3\x82\xa8\xe3\x83\xbc\xe3\x82\xab\xe3\x83\xbc\0" /* offset 8729 */ "\xe3\x82\xaa\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 8742 */ "\xe3\x82\xaa\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 8752 */ "\xe3\x82\xab\xe3\x82\xa4\xe3\x83\xaa\0" /* offset 8762 */ "\xe3\x82\xab\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\0" /* offset 8772 */ "\xe3\x82\xab\xe3\x83\xad\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 8785 */ "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xad\xe3\x83\xb3\0" /* offset 8798 */ "\xe3\x82\xab\xe3\x82\x99\xe3\x83\xb3\xe3\x83\x9e\0" /* offset 8811 */ "\xe3\x82\xad\xe3\x82\x99\xe3\x82\xab\xe3\x82\x99\0" /* offset 8824 */ "\xe3\x82\xad\xe3\x82\x99\xe3\x83\x8b\xe3\x83\xbc\0" /* offset 8837 */ "\xe3\x82\xad\xe3\x83\xa5\xe3\x83\xaa\xe3\x83\xbc\0" /* offset 8850 */ "\xe3\x82\xad\xe3\x82\x99\xe3\x83\xab\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\0" /* offset 8863 */ "\xe3\x82\xad\xe3\x83\xad\0" /* offset 8882 */ "\xe3\x82\xad\xe3\x83\xad\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 8889 */ "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 8908 */ "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 8927 */ "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\0" /* offset 8943 */ "\xe3\x82\xaf\xe3\x82\x99\xe3\x83\xa9\xe3\x83\xa0\xe3\x83\x88\xe3\x83\xb3\0" /* offset 8956 */ "\xe3\x82\xaf\xe3\x83\xab\xe3\x82\xbb\xe3\x82\x99\xe3\x82\xa4\xe3\x83\xad\0" /* offset 8975 */ "\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xbc\xe3\x83\x8d\0" /* offset 8994 */ "\xe3\x82\xb1\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9007 */ "\xe3\x82\xb3\xe3\x83\xab\xe3\x83\x8a\0" /* offset 9017 */ "\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x9b\xe3\x82\x9a\0" /* offset 9027 */ "\xe3\x82\xb5\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9040 */ "\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x81\xe3\x83\xbc\xe3\x83\xa0\0" /* offset 9053 */ "\xe3\x82\xb7\xe3\x83\xaa\xe3\x83\xb3\xe3\x82\xaf\xe3\x82\x99\0" /* offset 9069 */ "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x81\0" /* offset 9085 */ "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9095 */ "\xe3\x82\xbf\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xb9\0" /* offset 9105 */ "\xe3\x83\x86\xe3\x82\x99\xe3\x82\xb7\0" /* offset 9118 */ "\xe3\x83\x88\xe3\x82\x99\xe3\x83\xab\0" /* offset 9128 */ "\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9138 */ "\xe3\x83\x8a\xe3\x83\x8e\0" /* offset 9145 */ "\xe3\x83\x8e\xe3\x83\x83\xe3\x83\x88\0" /* offset 9152 */ "\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84\0" /* offset 9162 */ "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9172 */ "\xe3\x83\x8f\xe3\x82\x9a\xe3\x83\xbc\xe3\x83\x84\0" /* offset 9191 */ "\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xac\xe3\x83\xab\0" /* offset 9204 */ "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xa2\xe3\x82\xb9\xe3\x83\x88\xe3\x83\xab\0" /* offset 9220 */ "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xaf\xe3\x83\xab\0" /* offset 9239 */ "\xe3\x83\x92\xe3\x82\x9a\xe3\x82\xb3\0" /* offset 9252 */ "\xe3\x83\x92\xe3\x82\x99\xe3\x83\xab\0" /* offset 9262 */ "\xe3\x83\x95\xe3\x82\xa1\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88\xe3\x82\x99\0" /* offset 9272 */ "\xe3\x83\x95\xe3\x82\xa3\xe3\x83\xbc\xe3\x83\x88\0" /* offset 9291 */ "\xe3\x83\x95\xe3\x82\x99\xe3\x83\x83\xe3\x82\xb7\xe3\x82\xa7\xe3\x83\xab\0" /* offset 9304 */ "\xe3\x83\x95\xe3\x83\xa9\xe3\x83\xb3\0" /* offset 9323 */ "\xe3\x83\x98\xe3\x82\xaf\xe3\x82\xbf\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9333 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x82\xbd\0" /* offset 9349 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\x8b\xe3\x83\x92\0" /* offset 9359 */ "\xe3\x83\x98\xe3\x83\xab\xe3\x83\x84\0" /* offset 9372 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xb3\xe3\x82\xb9\0" /* offset 9382 */ "\xe3\x83\x98\xe3\x82\x9a\xe3\x83\xbc\xe3\x82\xb7\xe3\x82\x99\0" /* offset 9395 */ "\xe3\x83\x98\xe3\x82\x99\xe3\x83\xbc\xe3\x82\xbf\0" /* offset 9411 */ "\xe3\x83\x9b\xe3\x82\x9a\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x88\0" /* offset 9424 */ "\xe3\x83\x9b\xe3\x82\x99\xe3\x83\xab\xe3\x83\x88\0" /* offset 9440 */ "\xe3\x83\x9b\xe3\x83\xb3\0" /* offset 9453 */ "\xe3\x83\x9b\xe3\x82\x9a\xe3\x83\xb3\xe3\x83\x88\xe3\x82\x99\0" /* offset 9460 */ "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9476 */ "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xb3\0" /* offset 9486 */ "\xe3\x83\x9e\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xad\0" /* offset 9496 */ "\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xab\0" /* offset 9509 */ "\xe3\x83\x9e\xe3\x83\x83\xe3\x83\x8f\0" /* offset 9519 */ "\xe3\x83\x9e\xe3\x83\xab\xe3\x82\xaf\0" /* offset 9529 */ "\xe3\x83\x9e\xe3\x83\xb3\xe3\x82\xb7\xe3\x83\xa7\xe3\x83\xb3\0" /* offset 9539 */ "\xe3\x83\x9f\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xb3\0" /* offset 9555 */ "\xe3\x83\x9f\xe3\x83\xaa\0" /* offset 9568 */ "\xe3\x83\x9f\xe3\x83\xaa\xe3\x83\x8f\xe3\x82\x99\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9575 */ "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\0" /* offset 9594 */ "\xe3\x83\xa1\xe3\x82\xab\xe3\x82\x99\xe3\x83\x88\xe3\x83\xb3\0" /* offset 9604 */ "\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab\0" /* offset 9620 */ "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\x88\xe3\x82\x99\0" /* offset 9633 */ "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\xab\0" /* offset 9646 */ "\xe3\x83\xa6\xe3\x82\xa2\xe3\x83\xb3\0" /* offset 9656 */ "\xe3\x83\xaa\xe3\x83\x83\xe3\x83\x88\xe3\x83\xab\0" /* offset 9666 */ "\xe3\x83\xaa\xe3\x83\xa9\0" /* offset 9679 */ "\xe3\x83\xab\xe3\x83\x92\xe3\x82\x9a\xe3\x83\xbc\0" /* offset 9686 */ "\xe3\x83\xab\xe3\x83\xbc\xe3\x83\x95\xe3\x82\x99\xe3\x83\xab\0" /* offset 9699 */ "\xe3\x83\xac\xe3\x83\xa0\0" /* offset 9715 */ "\xe3\x83\xac\xe3\x83\xb3\xe3\x83\x88\xe3\x82\xb1\xe3\x82\x99\xe3\x83\xb3\0" /* offset 9722 */ "\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88\0" /* offset 9741 */ "\x30\xe7\x82\xb9\0" /* offset 9751 */ "\x31\xe7\x82\xb9\0" /* offset 9756 */ "\x32\xe7\x82\xb9\0" /* offset 9761 */ "\x33\xe7\x82\xb9\0" /* offset 9766 */ "\x34\xe7\x82\xb9\0" /* offset 9771 */ "\x35\xe7\x82\xb9\0" /* offset 9776 */ "\x36\xe7\x82\xb9\0" /* offset 9781 */ "\x37\xe7\x82\xb9\0" /* offset 9786 */ "\x38\xe7\x82\xb9\0" /* offset 9791 */ "\x39\xe7\x82\xb9\0" /* offset 9796 */ "\x31\x30\xe7\x82\xb9\0" /* offset 9801 */ "\x31\x31\xe7\x82\xb9\0" /* offset 9807 */ "\x31\x32\xe7\x82\xb9\0" /* offset 9813 */ "\x31\x33\xe7\x82\xb9\0" /* offset 9819 */ "\x31\x34\xe7\x82\xb9\0" /* offset 9825 */ "\x31\x35\xe7\x82\xb9\0" /* offset 9831 */ "\x31\x36\xe7\x82\xb9\0" /* offset 9837 */ "\x31\x37\xe7\x82\xb9\0" /* offset 9843 */ "\x31\x38\xe7\x82\xb9\0" /* offset 9849 */ "\x31\x39\xe7\x82\xb9\0" /* offset 9855 */ "\x32\x30\xe7\x82\xb9\0" /* offset 9861 */ "\x32\x31\xe7\x82\xb9\0" /* offset 9867 */ "\x32\x32\xe7\x82\xb9\0" /* offset 9873 */ "\x32\x33\xe7\x82\xb9\0" /* offset 9879 */ "\x32\x34\xe7\x82\xb9\0" /* offset 9885 */ "\x68\x50\x61\0" /* offset 9891 */ "\x64\x61\0" /* offset 9895 */ "\x41\x55\0" /* offset 9898 */ "\x62\x61\x72\0" /* offset 9901 */ "\x6f\x56\0" /* offset 9905 */ "\x70\x63\0" /* offset 9908 */ "\xe5\xb9\xb3\xe6\x88\x90\0" /* offset 9911 */ "\xe6\x98\xad\xe5\x92\x8c\0" /* offset 9918 */ "\xe5\xa4\xa7\xe6\xad\xa3\0" /* offset 9925 */ "\xe6\x98\x8e\xe6\xb2\xbb\0" /* offset 9932 */ "\xe6\xa0\xaa\xe5\xbc\x8f\xe4\xbc\x9a\xe7\xa4\xbe\0" /* offset 9939 */ "\x70\x41\0" /* offset 9952 */ "\x6e\x41\0" /* offset 9955 */ "\xce\xbc\x41\0" /* offset 9958 */ "\x6d\x41\0" /* offset 9962 */ "\x6b\x41\0" /* offset 9965 */ "\x4b\x42\0" /* offset 9968 */ "\x4d\x42\0" /* offset 9971 */ "\x47\x42\0" /* offset 9974 */ "\x63\x61\x6c\0" /* offset 9977 */ "\x6b\x63\x61\x6c\0" /* offset 9981 */ "\x70\x46\0" /* offset 9986 */ "\x6e\x46\0" /* offset 9989 */ "\xce\xbc\x46\0" /* offset 9992 */ "\xce\xbc\x67\0" /* offset 9996 */ "\x6d\x67\0" /* offset 10000 */ "\x6b\x67\0" /* offset 10003 */ "\x48\x7a\0" /* offset 10006 */ "\x6b\x48\x7a\0" /* offset 10009 */ "\x4d\x48\x7a\0" /* offset 10013 */ "\x47\x48\x7a\0" /* offset 10017 */ "\x54\x48\x7a\0" /* offset 10021 */ "\xce\xbc\x6c\0" /* offset 10025 */ "\x6d\x6c\0" /* offset 10029 */ "\x64\x6c\0" /* offset 10032 */ "\x6b\x6c\0" /* offset 10035 */ "\x66\x6d\0" /* offset 10038 */ "\x6e\x6d\0" /* offset 10041 */ "\xce\xbc\x6d\0" /* offset 10044 */ "\x6d\x6d\0" /* offset 10048 */ "\x63\x6d\0" /* offset 10051 */ "\x6b\x6d\0" /* offset 10054 */ "\x6d\x6d\x32\0" /* offset 10057 */ "\x63\x6d\x32\0" /* offset 10061 */ "\x6d\x32\0" /* offset 10065 */ "\x6b\x6d\x32\0" /* offset 10068 */ "\x6d\x6d\x33\0" /* offset 10072 */ "\x63\x6d\x33\0" /* offset 10076 */ "\x6d\x33\0" /* offset 10080 */ "\x6b\x6d\x33\0" /* offset 10083 */ "\x6d\xe2\x88\x95\x73\0" /* offset 10087 */ "\x6d\xe2\x88\x95\x73\x32\0" /* offset 10093 */ "\x50\x61\0" /* offset 10100 */ "\x6b\x50\x61\0" /* offset 10103 */ "\x4d\x50\x61\0" /* offset 10107 */ "\x47\x50\x61\0" /* offset 10111 */ "\x72\x61\x64\0" /* offset 10115 */ "\x72\x61\x64\xe2\x88\x95\x73\0" /* offset 10119 */ "\x72\x61\x64\xe2\x88\x95\x73\x32\0" /* offset 10127 */ "\x70\x73\0" /* offset 10136 */ "\x6e\x73\0" /* offset 10139 */ "\xce\xbc\x73\0" /* offset 10142 */ "\x6d\x73\0" /* offset 10146 */ "\x70\x56\0" /* offset 10149 */ "\x6e\x56\0" /* offset 10152 */ "\xce\xbc\x56\0" /* offset 10155 */ "\x6d\x56\0" /* offset 10159 */ "\x6b\x56\0" /* offset 10162 */ "\x4d\x56\0" /* offset 10165 */ "\x70\x57\0" /* offset 10168 */ "\x6e\x57\0" /* offset 10171 */ "\xce\xbc\x57\0" /* offset 10174 */ "\x6d\x57\0" /* offset 10178 */ "\x6b\x57\0" /* offset 10181 */ "\x4d\x57\0" /* offset 10184 */ "\x6b\xce\xa9\0" /* offset 10187 */ "\x4d\xce\xa9\0" /* offset 10191 */ "\x61\x2e\x6d\x2e\0" /* offset 10195 */ "\x42\x71\0" /* offset 10200 */ "\x63\x63\0" /* offset 10203 */ "\x63\x64\0" /* offset 10206 */ "\x43\xe2\x88\x95\x6b\x67\0" /* offset 10209 */ "\x43\x6f\x2e\0" /* offset 10216 */ "\x64\x42\0" /* offset 10220 */ "\x47\x79\0" /* offset 10223 */ "\x68\x61\0" /* offset 10226 */ "\x48\x50\0" /* offset 10229 */ "\x69\x6e\0" /* offset 10232 */ "\x4b\x4b\0" /* offset 10235 */ "\x4b\x4d\0" /* offset 10238 */ "\x6b\x74\0" /* offset 10241 */ "\x6c\x6d\0" /* offset 10244 */ "\x6c\x6e\0" /* offset 10247 */ "\x6c\x6f\x67\0" /* offset 10250 */ "\x6c\x78\0" /* offset 10254 */ "\x6d\x62\0" /* offset 10257 */ "\x6d\x69\x6c\0" /* offset 10260 */ "\x6d\x6f\x6c\0" /* offset 10264 */ "\x50\x48\0" /* offset 10268 */ "\x70\x2e\x6d\x2e\0" /* offset 10271 */ "\x50\x50\x4d\0" /* offset 10276 */ "\x50\x52\0" /* offset 10280 */ "\x73\x72\0" /* offset 10283 */ "\x53\x76\0" /* offset 10286 */ "\x57\x62\0" /* offset 10289 */ "\x31\xe6\x97\xa5\0" /* offset 10292 */ "\x32\xe6\x97\xa5\0" /* offset 10297 */ "\x33\xe6\x97\xa5\0" /* offset 10302 */ "\x34\xe6\x97\xa5\0" /* offset 10307 */ "\x35\xe6\x97\xa5\0" /* offset 10312 */ "\x36\xe6\x97\xa5\0" /* offset 10317 */ "\x37\xe6\x97\xa5\0" /* offset 10322 */ "\x38\xe6\x97\xa5\0" /* offset 10327 */ "\x39\xe6\x97\xa5\0" /* offset 10332 */ "\x31\x30\xe6\x97\xa5\0" /* offset 10337 */ "\x31\x31\xe6\x97\xa5\0" /* offset 10343 */ "\x31\x32\xe6\x97\xa5\0" /* offset 10349 */ "\x31\x33\xe6\x97\xa5\0" /* offset 10355 */ "\x31\x34\xe6\x97\xa5\0" /* offset 10361 */ "\x31\x35\xe6\x97\xa5\0" /* offset 10367 */ "\x31\x36\xe6\x97\xa5\0" /* offset 10373 */ "\x31\x37\xe6\x97\xa5\0" /* offset 10379 */ "\x31\x38\xe6\x97\xa5\0" /* offset 10385 */ "\x31\x39\xe6\x97\xa5\0" /* offset 10391 */ "\x32\x30\xe6\x97\xa5\0" /* offset 10397 */ "\x32\x31\xe6\x97\xa5\0" /* offset 10403 */ "\x32\x32\xe6\x97\xa5\0" /* offset 10409 */ "\x32\x33\xe6\x97\xa5\0" /* offset 10415 */ "\x32\x34\xe6\x97\xa5\0" /* offset 10421 */ "\x32\x35\xe6\x97\xa5\0" /* offset 10427 */ "\x32\x36\xe6\x97\xa5\0" /* offset 10433 */ "\x32\x37\xe6\x97\xa5\0" /* offset 10439 */ "\x32\x38\xe6\x97\xa5\0" /* offset 10445 */ "\x32\x39\xe6\x97\xa5\0" /* offset 10451 */ "\x33\x30\xe6\x97\xa5\0" /* offset 10457 */ "\x33\x31\xe6\x97\xa5\0" /* offset 10463 */ "\xe8\xb1\x88\0" /* offset 10469 */ "\xe6\x9b\xb4\0" /* offset 10473 */ "\xe8\xb3\x88\0" /* offset 10477 */ "\xe6\xbb\x91\0" /* offset 10481 */ "\xe4\xb8\xb2\0" /* offset 10485 */ "\xe5\x8f\xa5\0" /* offset 10489 */ "\xe5\xa5\x91\0" /* offset 10493 */ "\xe5\x96\x87\0" /* offset 10497 */ "\xe5\xa5\x88\0" /* offset 10501 */ "\xe6\x87\xb6\0" /* offset 10505 */ "\xe7\x99\xa9\0" /* offset 10509 */ "\xe7\xbe\x85\0" /* offset 10513 */ "\xe8\x98\xbf\0" /* offset 10517 */ "\xe8\x9e\xba\0" /* offset 10521 */ "\xe8\xa3\xb8\0" /* offset 10525 */ "\xe9\x82\x8f\0" /* offset 10529 */ "\xe6\xa8\x82\0" /* offset 10533 */ "\xe6\xb4\x9b\0" /* offset 10537 */ "\xe7\x83\x99\0" /* offset 10541 */ "\xe7\x8f\x9e\0" /* offset 10545 */ "\xe8\x90\xbd\0" /* offset 10549 */ "\xe9\x85\xaa\0" /* offset 10553 */ "\xe9\xa7\xb1\0" /* offset 10557 */ "\xe4\xba\x82\0" /* offset 10561 */ "\xe5\x8d\xb5\0" /* offset 10565 */ "\xe6\xac\x84\0" /* offset 10569 */ "\xe7\x88\x9b\0" /* offset 10573 */ "\xe8\x98\xad\0" /* offset 10577 */ "\xe9\xb8\x9e\0" /* offset 10581 */ "\xe5\xb5\x90\0" /* offset 10585 */ "\xe6\xbf\xab\0" /* offset 10589 */ "\xe8\x97\x8d\0" /* offset 10593 */ "\xe8\xa5\xa4\0" /* offset 10597 */ "\xe6\x8b\x89\0" /* offset 10601 */ "\xe8\x87\x98\0" /* offset 10605 */ "\xe8\xa0\x9f\0" /* offset 10609 */ "\xe5\xbb\x8a\0" /* offset 10613 */ "\xe6\x9c\x97\0" /* offset 10617 */ "\xe6\xb5\xaa\0" /* offset 10621 */ "\xe7\x8b\xbc\0" /* offset 10625 */ "\xe9\x83\x8e\0" /* offset 10629 */ "\xe4\xbe\x86\0" /* offset 10633 */ "\xe5\x86\xb7\0" /* offset 10637 */ "\xe5\x8b\x9e\0" /* offset 10641 */ "\xe6\x93\x84\0" /* offset 10645 */ "\xe6\xab\x93\0" /* offset 10649 */ "\xe7\x88\x90\0" /* offset 10653 */ "\xe7\x9b\xa7\0" /* offset 10657 */ "\xe8\x98\x86\0" /* offset 10661 */ "\xe8\x99\x9c\0" /* offset 10665 */ "\xe8\xb7\xaf\0" /* offset 10669 */ "\xe9\x9c\xb2\0" /* offset 10673 */ "\xe9\xad\xaf\0" /* offset 10677 */ "\xe9\xb7\xba\0" /* offset 10681 */ "\xe7\xa2\x8c\0" /* offset 10685 */ "\xe7\xa5\xbf\0" /* offset 10689 */ "\xe7\xb6\xa0\0" /* offset 10693 */ "\xe8\x8f\x89\0" /* offset 10697 */ "\xe9\x8c\x84\0" /* offset 10701 */ "\xe8\xab\x96\0" /* offset 10705 */ "\xe5\xa3\x9f\0" /* offset 10709 */ "\xe5\xbc\x84\0" /* offset 10713 */ "\xe7\xb1\xa0\0" /* offset 10717 */ "\xe8\x81\xbe\0" /* offset 10721 */ "\xe7\x89\xa2\0" /* offset 10725 */ "\xe7\xa3\x8a\0" /* offset 10729 */ "\xe8\xb3\x82\0" /* offset 10733 */ "\xe9\x9b\xb7\0" /* offset 10737 */ "\xe5\xa3\x98\0" /* offset 10741 */ "\xe5\xb1\xa2\0" /* offset 10745 */ "\xe6\xa8\x93\0" /* offset 10749 */ "\xe6\xb7\x9a\0" /* offset 10753 */ "\xe6\xbc\x8f\0" /* offset 10757 */ "\xe7\xb4\xaf\0" /* offset 10761 */ "\xe7\xb8\xb7\0" /* offset 10765 */ "\xe9\x99\x8b\0" /* offset 10769 */ "\xe5\x8b\x92\0" /* offset 10773 */ "\xe8\x82\x8b\0" /* offset 10777 */ "\xe5\x87\x9c\0" /* offset 10781 */ "\xe5\x87\x8c\0" /* offset 10785 */ "\xe7\xa8\x9c\0" /* offset 10789 */ "\xe7\xb6\xbe\0" /* offset 10793 */ "\xe8\x8f\xb1\0" /* offset 10797 */ "\xe9\x99\xb5\0" /* offset 10801 */ "\xe8\xae\x80\0" /* offset 10805 */ "\xe6\x8b\x8f\0" /* offset 10809 */ "\xe8\xab\xbe\0" /* offset 10813 */ "\xe4\xb8\xb9\0" /* offset 10817 */ "\xe5\xaf\xa7\0" /* offset 10821 */ "\xe6\x80\x92\0" /* offset 10825 */ "\xe7\x8e\x87\0" /* offset 10829 */ "\xe7\x95\xb0\0" /* offset 10833 */ "\xe5\x8c\x97\0" /* offset 10837 */ "\xe7\xa3\xbb\0" /* offset 10841 */ "\xe4\xbe\xbf\0" /* offset 10845 */ "\xe5\xbe\xa9\0" /* offset 10849 */ "\xe4\xb8\x8d\0" /* offset 10853 */ "\xe6\xb3\x8c\0" /* offset 10857 */ "\xe6\x95\xb8\0" /* offset 10861 */ "\xe7\xb4\xa2\0" /* offset 10865 */ "\xe5\x8f\x83\0" /* offset 10869 */ "\xe5\xa1\x9e\0" /* offset 10873 */ "\xe7\x9c\x81\0" /* offset 10877 */ "\xe8\x91\x89\0" /* offset 10881 */ "\xe8\xaa\xaa\0" /* offset 10885 */ "\xe6\xae\xba\0" /* offset 10889 */ "\xe6\xb2\x88\0" /* offset 10893 */ "\xe6\x8b\xbe\0" /* offset 10897 */ "\xe8\x8b\xa5\0" /* offset 10901 */ "\xe6\x8e\xa0\0" /* offset 10905 */ "\xe7\x95\xa5\0" /* offset 10909 */ "\xe4\xba\xae\0" /* offset 10913 */ "\xe5\x85\xa9\0" /* offset 10917 */ "\xe5\x87\x89\0" /* offset 10921 */ "\xe6\xa2\x81\0" /* offset 10925 */ "\xe7\xb3\xa7\0" /* offset 10929 */ "\xe8\x89\xaf\0" /* offset 10933 */ "\xe8\xab\x92\0" /* offset 10937 */ "\xe9\x87\x8f\0" /* offset 10941 */ "\xe5\x8b\xb5\0" /* offset 10945 */ "\xe5\x91\x82\0" /* offset 10949 */ "\xe5\xbb\xac\0" /* offset 10953 */ "\xe6\x97\x85\0" /* offset 10957 */ "\xe6\xbf\xbe\0" /* offset 10961 */ "\xe7\xa4\xaa\0" /* offset 10965 */ "\xe9\x96\xad\0" /* offset 10969 */ "\xe9\xa9\xaa\0" /* offset 10973 */ "\xe9\xba\x97\0" /* offset 10977 */ "\xe9\xbb\x8e\0" /* offset 10981 */ "\xe6\x9b\x86\0" /* offset 10985 */ "\xe6\xad\xb7\0" /* offset 10989 */ "\xe8\xbd\xa2\0" /* offset 10993 */ "\xe5\xb9\xb4\0" /* offset 10997 */ "\xe6\x86\x90\0" /* offset 11001 */ "\xe6\x88\x80\0" /* offset 11005 */ "\xe6\x92\x9a\0" /* offset 11009 */ "\xe6\xbc\xa3\0" /* offset 11013 */ "\xe7\x85\x89\0" /* offset 11017 */ "\xe7\x92\x89\0" /* offset 11021 */ "\xe7\xa7\x8a\0" /* offset 11025 */ "\xe7\xb7\xb4\0" /* offset 11029 */ "\xe8\x81\xaf\0" /* offset 11033 */ "\xe8\xbc\xa6\0" /* offset 11037 */ "\xe8\x93\xae\0" /* offset 11041 */ "\xe9\x80\xa3\0" /* offset 11045 */ "\xe9\x8d\x8a\0" /* offset 11049 */ "\xe5\x88\x97\0" /* offset 11053 */ "\xe5\x8a\xa3\0" /* offset 11057 */ "\xe5\x92\xbd\0" /* offset 11061 */ "\xe7\x83\x88\0" /* offset 11065 */ "\xe8\xa3\x82\0" /* offset 11069 */ "\xe5\xbb\x89\0" /* offset 11073 */ "\xe5\xbf\xb5\0" /* offset 11077 */ "\xe6\x8d\xbb\0" /* offset 11081 */ "\xe6\xae\xae\0" /* offset 11085 */ "\xe7\xb0\xbe\0" /* offset 11089 */ "\xe7\x8d\xb5\0" /* offset 11093 */ "\xe4\xbb\xa4\0" /* offset 11097 */ "\xe5\x9b\xb9\0" /* offset 11101 */ "\xe5\xb6\xba\0" /* offset 11105 */ "\xe6\x80\x9c\0" /* offset 11109 */ "\xe7\x8e\xb2\0" /* offset 11113 */ "\xe7\x91\xa9\0" /* offset 11117 */ "\xe7\xbe\x9a\0" /* offset 11121 */ "\xe8\x81\x86\0" /* offset 11125 */ "\xe9\x88\xb4\0" /* offset 11129 */ "\xe9\x9b\xb6\0" /* offset 11133 */ "\xe9\x9d\x88\0" /* offset 11137 */ "\xe9\xa0\x98\0" /* offset 11141 */ "\xe4\xbe\x8b\0" /* offset 11145 */ "\xe7\xa6\xae\0" /* offset 11149 */ "\xe9\x86\xb4\0" /* offset 11153 */ "\xe9\x9a\xb8\0" /* offset 11157 */ "\xe6\x83\xa1\0" /* offset 11161 */ "\xe4\xba\x86\0" /* offset 11165 */ "\xe5\x83\x9a\0" /* offset 11169 */ "\xe5\xaf\xae\0" /* offset 11173 */ "\xe5\xb0\xbf\0" /* offset 11177 */ "\xe6\x96\x99\0" /* offset 11181 */ "\xe7\x87\x8e\0" /* offset 11185 */ "\xe7\x99\x82\0" /* offset 11189 */ "\xe8\x93\xbc\0" /* offset 11193 */ "\xe9\x81\xbc\0" /* offset 11197 */ "\xe6\x9a\x88\0" /* offset 11201 */ "\xe9\x98\xae\0" /* offset 11205 */ "\xe5\x8a\x89\0" /* offset 11209 */ "\xe6\x9d\xbb\0" /* offset 11213 */ "\xe6\x9f\xb3\0" /* offset 11217 */ "\xe6\xb5\x81\0" /* offset 11221 */ "\xe6\xba\x9c\0" /* offset 11225 */ "\xe7\x90\x89\0" /* offset 11229 */ "\xe7\x95\x99\0" /* offset 11233 */ "\xe7\xa1\xab\0" /* offset 11237 */ "\xe7\xb4\x90\0" /* offset 11241 */ "\xe9\xa1\x9e\0" /* offset 11245 */ "\xe6\x88\xae\0" /* offset 11249 */ "\xe9\x99\xb8\0" /* offset 11253 */ "\xe5\x80\xab\0" /* offset 11257 */ "\xe5\xb4\x99\0" /* offset 11261 */ "\xe6\xb7\xaa\0" /* offset 11265 */ "\xe8\xbc\xaa\0" /* offset 11269 */ "\xe5\xbe\x8b\0" /* offset 11273 */ "\xe6\x85\x84\0" /* offset 11277 */ "\xe6\xa0\x97\0" /* offset 11281 */ "\xe9\x9a\x86\0" /* offset 11285 */ "\xe5\x88\xa9\0" /* offset 11289 */ "\xe5\x90\x8f\0" /* offset 11293 */ "\xe5\xb1\xa5\0" /* offset 11297 */ "\xe6\x98\x93\0" /* offset 11301 */ "\xe6\x9d\x8e\0" /* offset 11305 */ "\xe6\xa2\xa8\0" /* offset 11309 */ "\xe6\xb3\xa5\0" /* offset 11313 */ "\xe7\x90\x86\0" /* offset 11317 */ "\xe7\x97\xa2\0" /* offset 11321 */ "\xe7\xbd\xb9\0" /* offset 11325 */ "\xe8\xa3\x8f\0" /* offset 11329 */ "\xe8\xa3\xa1\0" /* offset 11333 */ "\xe9\x9b\xa2\0" /* offset 11337 */ "\xe5\x8c\xbf\0" /* offset 11341 */ "\xe6\xba\xba\0" /* offset 11345 */ "\xe5\x90\x9d\0" /* offset 11349 */ "\xe7\x87\x90\0" /* offset 11353 */ "\xe7\x92\x98\0" /* offset 11357 */ "\xe8\x97\xba\0" /* offset 11361 */ "\xe9\x9a\xa3\0" /* offset 11365 */ "\xe9\xb1\x97\0" /* offset 11369 */ "\xe9\xba\x9f\0" /* offset 11373 */ "\xe6\x9e\x97\0" /* offset 11377 */ "\xe6\xb7\x8b\0" /* offset 11381 */ "\xe8\x87\xa8\0" /* offset 11385 */ "\xe7\xac\xa0\0" /* offset 11389 */ "\xe7\xb2\x92\0" /* offset 11393 */ "\xe7\x8b\x80\0" /* offset 11397 */ "\xe7\x82\x99\0" /* offset 11401 */ "\xe8\xad\x98\0" /* offset 11405 */ "\xe4\xbb\x80\0" /* offset 11409 */ "\xe8\x8c\xb6\0" /* offset 11413 */ "\xe5\x88\xba\0" /* offset 11417 */ "\xe5\x88\x87\0" /* offset 11421 */ "\xe5\xba\xa6\0" /* offset 11425 */ "\xe6\x8b\x93\0" /* offset 11429 */ "\xe7\xb3\x96\0" /* offset 11433 */ "\xe5\xae\x85\0" /* offset 11437 */ "\xe6\xb4\x9e\0" /* offset 11441 */ "\xe6\x9a\xb4\0" /* offset 11445 */ "\xe8\xbc\xbb\0" /* offset 11449 */ "\xe9\x99\x8d\0" /* offset 11453 */ "\xe5\xbb\x93\0" /* offset 11457 */ "\xe5\x85\x80\0" /* offset 11461 */ "\xe5\x97\x80\0" /* offset 11465 */ "\xe5\xa1\x9a\0" /* offset 11469 */ "\xe6\x99\xb4\0" /* offset 11473 */ "\xe5\x87\x9e\0" /* offset 11477 */ "\xe7\x8c\xaa\0" /* offset 11481 */ "\xe7\x9b\x8a\0" /* offset 11485 */ "\xe7\xa4\xbc\0" /* offset 11489 */ "\xe7\xa5\x9e\0" /* offset 11493 */ "\xe7\xa5\xa5\0" /* offset 11497 */ "\xe7\xa6\x8f\0" /* offset 11501 */ "\xe9\x9d\x96\0" /* offset 11505 */ "\xe7\xb2\xbe\0" /* offset 11509 */ "\xe8\x98\x92\0" /* offset 11513 */ "\xe8\xab\xb8\0" /* offset 11517 */ "\xe9\x80\xb8\0" /* offset 11521 */ "\xe9\x83\xbd\0" /* offset 11525 */ "\xe9\xa3\xaf\0" /* offset 11529 */ "\xe9\xa3\xbc\0" /* offset 11533 */ "\xe9\xa4\xa8\0" /* offset 11537 */ "\xe9\xb6\xb4\0" /* offset 11541 */ "\xe4\xbe\xae\0" /* offset 11545 */ "\xe5\x83\xa7\0" /* offset 11549 */ "\xe5\x85\x8d\0" /* offset 11553 */ "\xe5\x8b\x89\0" /* offset 11557 */ "\xe5\x8b\xa4\0" /* offset 11561 */ "\xe5\x8d\x91\0" /* offset 11565 */ "\xe5\x96\x9d\0" /* offset 11569 */ "\xe5\x98\x86\0" /* offset 11573 */ "\xe5\x99\xa8\0" /* offset 11577 */ "\xe5\xa1\x80\0" /* offset 11581 */ "\xe5\xa2\xa8\0" /* offset 11585 */ "\xe5\xb1\xa4\0" /* offset 11589 */ "\xe6\x82\x94\0" /* offset 11593 */ "\xe6\x85\xa8\0" /* offset 11597 */ "\xe6\x86\x8e\0" /* offset 11601 */ "\xe6\x87\xb2\0" /* offset 11605 */ "\xe6\x95\x8f\0" /* offset 11609 */ "\xe6\x97\xa2\0" /* offset 11613 */ "\xe6\x9a\x91\0" /* offset 11617 */ "\xe6\xa2\x85\0" /* offset 11621 */ "\xe6\xb5\xb7\0" /* offset 11625 */ "\xe6\xb8\x9a\0" /* offset 11629 */ "\xe6\xbc\xa2\0" /* offset 11633 */ "\xe7\x85\xae\0" /* offset 11637 */ "\xe7\x88\xab\0" /* offset 11641 */ "\xe7\x90\xa2\0" /* offset 11645 */ "\xe7\xa2\x91\0" /* offset 11649 */ "\xe7\xa5\x89\0" /* offset 11653 */ "\xe7\xa5\x88\0" /* offset 11657 */ "\xe7\xa5\x90\0" /* offset 11661 */ "\xe7\xa5\x96\0" /* offset 11665 */ "\xe7\xa6\x8d\0" /* offset 11669 */ "\xe7\xa6\x8e\0" /* offset 11673 */ "\xe7\xa9\x80\0" /* offset 11677 */ "\xe7\xaa\x81\0" /* offset 11681 */ "\xe7\xaf\x80\0" /* offset 11685 */ "\xe7\xb8\x89\0" /* offset 11689 */ "\xe7\xb9\x81\0" /* offset 11693 */ "\xe7\xbd\xb2\0" /* offset 11697 */ "\xe8\x80\x85\0" /* offset 11701 */ "\xe8\x87\xad\0" /* offset 11705 */ "\xe8\x89\xb9\0" /* offset 11709 */ "\xe8\x91\x97\0" /* offset 11713 */ "\xe8\xa4\x90\0" /* offset 11717 */ "\xe8\xa6\x96\0" /* offset 11721 */ "\xe8\xac\x81\0" /* offset 11725 */ "\xe8\xac\xb9\0" /* offset 11729 */ "\xe8\xb3\x93\0" /* offset 11733 */ "\xe8\xb4\x88\0" /* offset 11737 */ "\xe8\xbe\xb6\0" /* offset 11741 */ "\xe9\x9b\xa3\0" /* offset 11745 */ "\xe9\x9f\xbf\0" /* offset 11749 */ "\xe9\xa0\xbb\0" /* offset 11753 */ "\x66\x66\0" /* offset 11757 */ "\x66\x69\0" /* offset 11760 */ "\x66\x6c\0" /* offset 11763 */ "\x66\x66\x69\0" /* offset 11766 */ "\x66\x66\x6c\0" /* offset 11770 */ "\x73\x74\0" /* offset 11774 */ "\xd5\xb4\xd5\xb6\0" /* offset 11777 */ "\xd5\xb4\xd5\xa5\0" /* offset 11782 */ "\xd5\xb4\xd5\xab\0" /* offset 11787 */ "\xd5\xbe\xd5\xb6\0" /* offset 11792 */ "\xd5\xb4\xd5\xad\0" /* offset 11797 */ "\xd7\x99\xd6\xb4\0" /* offset 11802 */ "\xd7\xb2\xd6\xb7\0" /* offset 11807 */ "\xd7\xa2\0" /* offset 11812 */ "\xd7\x94\0" /* offset 11815 */ "\xd7\x9b\0" /* offset 11818 */ "\xd7\x9c\0" /* offset 11821 */ "\xd7\x9d\0" /* offset 11824 */ "\xd7\xa8\0" /* offset 11827 */ "\xd7\xaa\0" /* offset 11830 */ "\xd7\xa9\xd7\x81\0" /* offset 11833 */ "\xd7\xa9\xd7\x82\0" /* offset 11838 */ "\xd7\xa9\xd6\xbc\xd7\x81\0" /* offset 11843 */ "\xd7\xa9\xd6\xbc\xd7\x82\0" /* offset 11850 */ "\xd7\x90\xd6\xb7\0" /* offset 11857 */ "\xd7\x90\xd6\xb8\0" /* offset 11862 */ "\xd7\x90\xd6\xbc\0" /* offset 11867 */ "\xd7\x91\xd6\xbc\0" /* offset 11872 */ "\xd7\x92\xd6\xbc\0" /* offset 11877 */ "\xd7\x93\xd6\xbc\0" /* offset 11882 */ "\xd7\x94\xd6\xbc\0" /* offset 11887 */ "\xd7\x95\xd6\xbc\0" /* offset 11892 */ "\xd7\x96\xd6\xbc\0" /* offset 11897 */ "\xd7\x98\xd6\xbc\0" /* offset 11902 */ "\xd7\x99\xd6\xbc\0" /* offset 11907 */ "\xd7\x9a\xd6\xbc\0" /* offset 11912 */ "\xd7\x9b\xd6\xbc\0" /* offset 11917 */ "\xd7\x9c\xd6\xbc\0" /* offset 11922 */ "\xd7\x9e\xd6\xbc\0" /* offset 11927 */ "\xd7\xa0\xd6\xbc\0" /* offset 11932 */ "\xd7\xa1\xd6\xbc\0" /* offset 11937 */ "\xd7\xa3\xd6\xbc\0" /* offset 11942 */ "\xd7\xa4\xd6\xbc\0" /* offset 11947 */ "\xd7\xa6\xd6\xbc\0" /* offset 11952 */ "\xd7\xa7\xd6\xbc\0" /* offset 11957 */ "\xd7\xa8\xd6\xbc\0" /* offset 11962 */ "\xd7\xa9\xd6\xbc\0" /* offset 11967 */ "\xd7\xaa\xd6\xbc\0" /* offset 11972 */ "\xd7\x95\xd6\xb9\0" /* offset 11977 */ "\xd7\x91\xd6\xbf\0" /* offset 11982 */ "\xd7\x9b\xd6\xbf\0" /* offset 11987 */ "\xd7\xa4\xd6\xbf\0" /* offset 11992 */ "\xd7\x90\xd7\x9c\0" /* offset 11997 */ "\xd9\xb1\0" /* offset 12002 */ "\xd9\xbb\0" /* offset 12005 */ "\xd9\xbe\0" /* offset 12008 */ "\xda\x80\0" /* offset 12011 */ "\xd9\xba\0" /* offset 12014 */ "\xd9\xbf\0" /* offset 12017 */ "\xd9\xb9\0" /* offset 12020 */ "\xda\xa4\0" /* offset 12023 */ "\xda\xa6\0" /* offset 12026 */ "\xda\x84\0" /* offset 12029 */ "\xda\x83\0" /* offset 12032 */ "\xda\x86\0" /* offset 12035 */ "\xda\x87\0" /* offset 12038 */ "\xda\x8d\0" /* offset 12041 */ "\xda\x8c\0" /* offset 12044 */ "\xda\x8e\0" /* offset 12047 */ "\xda\x88\0" /* offset 12050 */ "\xda\x98\0" /* offset 12053 */ "\xda\x91\0" /* offset 12056 */ "\xda\xa9\0" /* offset 12059 */ "\xda\xaf\0" /* offset 12062 */ "\xda\xb3\0" /* offset 12065 */ "\xda\xb1\0" /* offset 12068 */ "\xda\xba\0" /* offset 12071 */ "\xda\xbb\0" /* offset 12074 */ "\xdb\x81\0" /* offset 12077 */ "\xda\xbe\0" /* offset 12080 */ "\xdb\x92\0" /* offset 12083 */ "\xda\xad\0" /* offset 12086 */ "\xdb\x87\0" /* offset 12089 */ "\xdb\x86\0" /* offset 12092 */ "\xdb\x88\0" /* offset 12095 */ "\xdb\x8b\0" /* offset 12098 */ "\xdb\x85\0" /* offset 12101 */ "\xdb\x89\0" /* offset 12104 */ "\xdb\x90\0" /* offset 12107 */ "\xd9\x89\0" /* offset 12110 */ "\xd9\x8a\xd9\x94\xd8\xa7\0" /* offset 12113 */ "\xd9\x8a\xd9\x94\xdb\x95\0" /* offset 12120 */ "\xd9\x8a\xd9\x94\xd9\x88\0" /* offset 12127 */ "\xd9\x8a\xd9\x94\xdb\x87\0" /* offset 12134 */ "\xd9\x8a\xd9\x94\xdb\x86\0" /* offset 12141 */ "\xd9\x8a\xd9\x94\xdb\x88\0" /* offset 12148 */ "\xd9\x8a\xd9\x94\xdb\x90\0" /* offset 12155 */ "\xd9\x8a\xd9\x94\xd9\x89\0" /* offset 12162 */ "\xdb\x8c\0" /* offset 12169 */ "\xd9\x8a\xd9\x94\xd8\xac\0" /* offset 12172 */ "\xd9\x8a\xd9\x94\xd8\xad\0" /* offset 12179 */ "\xd9\x8a\xd9\x94\xd9\x85\0" /* offset 12186 */ "\xd9\x8a\xd9\x94\xd9\x8a\0" /* offset 12193 */ "\xd8\xa8\xd8\xac\0" /* offset 12200 */ "\xd8\xa8\xd8\xad\0" /* offset 12205 */ "\xd8\xa8\xd8\xae\0" /* offset 12210 */ "\xd8\xa8\xd9\x85\0" /* offset 12215 */ "\xd8\xa8\xd9\x89\0" /* offset 12220 */ "\xd8\xa8\xd9\x8a\0" /* offset 12225 */ "\xd8\xaa\xd8\xac\0" /* offset 12230 */ "\xd8\xaa\xd8\xad\0" /* offset 12235 */ "\xd8\xaa\xd8\xae\0" /* offset 12240 */ "\xd8\xaa\xd9\x85\0" /* offset 12245 */ "\xd8\xaa\xd9\x89\0" /* offset 12250 */ "\xd8\xaa\xd9\x8a\0" /* offset 12255 */ "\xd8\xab\xd8\xac\0" /* offset 12260 */ "\xd8\xab\xd9\x85\0" /* offset 12265 */ "\xd8\xab\xd9\x89\0" /* offset 12270 */ "\xd8\xab\xd9\x8a\0" /* offset 12275 */ "\xd8\xac\xd8\xad\0" /* offset 12280 */ "\xd8\xac\xd9\x85\0" /* offset 12285 */ "\xd8\xad\xd8\xac\0" /* offset 12290 */ "\xd8\xad\xd9\x85\0" /* offset 12295 */ "\xd8\xae\xd8\xac\0" /* offset 12300 */ "\xd8\xae\xd8\xad\0" /* offset 12305 */ "\xd8\xae\xd9\x85\0" /* offset 12310 */ "\xd8\xb3\xd8\xac\0" /* offset 12315 */ "\xd8\xb3\xd8\xad\0" /* offset 12320 */ "\xd8\xb3\xd8\xae\0" /* offset 12325 */ "\xd8\xb3\xd9\x85\0" /* offset 12330 */ "\xd8\xb5\xd8\xad\0" /* offset 12335 */ "\xd8\xb5\xd9\x85\0" /* offset 12340 */ "\xd8\xb6\xd8\xac\0" /* offset 12345 */ "\xd8\xb6\xd8\xad\0" /* offset 12350 */ "\xd8\xb6\xd8\xae\0" /* offset 12355 */ "\xd8\xb6\xd9\x85\0" /* offset 12360 */ "\xd8\xb7\xd8\xad\0" /* offset 12365 */ "\xd8\xb7\xd9\x85\0" /* offset 12370 */ "\xd8\xb8\xd9\x85\0" /* offset 12375 */ "\xd8\xb9\xd8\xac\0" /* offset 12380 */ "\xd8\xb9\xd9\x85\0" /* offset 12385 */ "\xd8\xba\xd8\xac\0" /* offset 12390 */ "\xd8\xba\xd9\x85\0" /* offset 12395 */ "\xd9\x81\xd8\xac\0" /* offset 12400 */ "\xd9\x81\xd8\xad\0" /* offset 12405 */ "\xd9\x81\xd8\xae\0" /* offset 12410 */ "\xd9\x81\xd9\x85\0" /* offset 12415 */ "\xd9\x81\xd9\x89\0" /* offset 12420 */ "\xd9\x81\xd9\x8a\0" /* offset 12425 */ "\xd9\x82\xd8\xad\0" /* offset 12430 */ "\xd9\x82\xd9\x85\0" /* offset 12435 */ "\xd9\x82\xd9\x89\0" /* offset 12440 */ "\xd9\x82\xd9\x8a\0" /* offset 12445 */ "\xd9\x83\xd8\xa7\0" /* offset 12450 */ "\xd9\x83\xd8\xac\0" /* offset 12455 */ "\xd9\x83\xd8\xad\0" /* offset 12460 */ "\xd9\x83\xd8\xae\0" /* offset 12465 */ "\xd9\x83\xd9\x84\0" /* offset 12470 */ "\xd9\x83\xd9\x85\0" /* offset 12475 */ "\xd9\x83\xd9\x89\0" /* offset 12480 */ "\xd9\x83\xd9\x8a\0" /* offset 12485 */ "\xd9\x84\xd8\xac\0" /* offset 12490 */ "\xd9\x84\xd8\xad\0" /* offset 12495 */ "\xd9\x84\xd8\xae\0" /* offset 12500 */ "\xd9\x84\xd9\x85\0" /* offset 12505 */ "\xd9\x84\xd9\x89\0" /* offset 12510 */ "\xd9\x84\xd9\x8a\0" /* offset 12515 */ "\xd9\x85\xd8\xac\0" /* offset 12520 */ "\xd9\x85\xd8\xad\0" /* offset 12525 */ "\xd9\x85\xd8\xae\0" /* offset 12530 */ "\xd9\x85\xd9\x85\0" /* offset 12535 */ "\xd9\x85\xd9\x89\0" /* offset 12540 */ "\xd9\x85\xd9\x8a\0" /* offset 12545 */ "\xd9\x86\xd8\xac\0" /* offset 12550 */ "\xd9\x86\xd8\xad\0" /* offset 12555 */ "\xd9\x86\xd8\xae\0" /* offset 12560 */ "\xd9\x86\xd9\x85\0" /* offset 12565 */ "\xd9\x86\xd9\x89\0" /* offset 12570 */ "\xd9\x86\xd9\x8a\0" /* offset 12575 */ "\xd9\x87\xd8\xac\0" /* offset 12580 */ "\xd9\x87\xd9\x85\0" /* offset 12585 */ "\xd9\x87\xd9\x89\0" /* offset 12590 */ "\xd9\x87\xd9\x8a\0" /* offset 12595 */ "\xd9\x8a\xd8\xac\0" /* offset 12600 */ "\xd9\x8a\xd8\xad\0" /* offset 12605 */ "\xd9\x8a\xd8\xae\0" /* offset 12610 */ "\xd9\x8a\xd9\x85\0" /* offset 12615 */ "\xd9\x8a\xd9\x89\0" /* offset 12620 */ "\xd9\x8a\xd9\x8a\0" /* offset 12625 */ "\xd8\xb0\xd9\xb0\0" /* offset 12630 */ "\xd8\xb1\xd9\xb0\0" /* offset 12635 */ "\xd9\x89\xd9\xb0\0" /* offset 12640 */ "\x20\xd9\x8c\xd9\x91\0" /* offset 12645 */ "\x20\xd9\x8d\xd9\x91\0" /* offset 12651 */ "\x20\xd9\x8e\xd9\x91\0" /* offset 12657 */ "\x20\xd9\x8f\xd9\x91\0" /* offset 12663 */ "\x20\xd9\x90\xd9\x91\0" /* offset 12669 */ "\x20\xd9\x91\xd9\xb0\0" /* offset 12675 */ "\xd9\x8a\xd9\x94\xd8\xb1\0" /* offset 12681 */ "\xd9\x8a\xd9\x94\xd8\xb2\0" /* offset 12688 */ "\xd9\x8a\xd9\x94\xd9\x86\0" /* offset 12695 */ "\xd8\xa8\xd8\xb1\0" /* offset 12702 */ "\xd8\xa8\xd8\xb2\0" /* offset 12707 */ "\xd8\xa8\xd9\x86\0" /* offset 12712 */ "\xd8\xaa\xd8\xb1\0" /* offset 12717 */ "\xd8\xaa\xd8\xb2\0" /* offset 12722 */ "\xd8\xaa\xd9\x86\0" /* offset 12727 */ "\xd8\xab\xd8\xb1\0" /* offset 12732 */ "\xd8\xab\xd8\xb2\0" /* offset 12737 */ "\xd8\xab\xd9\x86\0" /* offset 12742 */ "\xd9\x85\xd8\xa7\0" /* offset 12747 */ "\xd9\x86\xd8\xb1\0" /* offset 12752 */ "\xd9\x86\xd8\xb2\0" /* offset 12757 */ "\xd9\x86\xd9\x86\0" /* offset 12762 */ "\xd9\x8a\xd8\xb1\0" /* offset 12767 */ "\xd9\x8a\xd8\xb2\0" /* offset 12772 */ "\xd9\x8a\xd9\x86\0" /* offset 12777 */ "\xd9\x8a\xd9\x94\xd8\xae\0" /* offset 12782 */ "\xd9\x8a\xd9\x94\xd9\x87\0" /* offset 12789 */ "\xd8\xa8\xd9\x87\0" /* offset 12796 */ "\xd8\xaa\xd9\x87\0" /* offset 12801 */ "\xd8\xb5\xd8\xae\0" /* offset 12806 */ "\xd9\x84\xd9\x87\0" /* offset 12811 */ "\xd9\x86\xd9\x87\0" /* offset 12816 */ "\xd9\x87\xd9\xb0\0" /* offset 12821 */ "\xd9\x8a\xd9\x87\0" /* offset 12826 */ "\xd8\xab\xd9\x87\0" /* offset 12831 */ "\xd8\xb3\xd9\x87\0" /* offset 12836 */ "\xd8\xb4\xd9\x85\0" /* offset 12841 */ "\xd8\xb4\xd9\x87\0" /* offset 12846 */ "\xd9\x80\xd9\x8e\xd9\x91\0" /* offset 12851 */ "\xd9\x80\xd9\x8f\xd9\x91\0" /* offset 12858 */ "\xd9\x80\xd9\x90\xd9\x91\0" /* offset 12865 */ "\xd8\xb7\xd9\x89\0" /* offset 12872 */ "\xd8\xb7\xd9\x8a\0" /* offset 12877 */ "\xd8\xb9\xd9\x89\0" /* offset 12882 */ "\xd8\xb9\xd9\x8a\0" /* offset 12887 */ "\xd8\xba\xd9\x89\0" /* offset 12892 */ "\xd8\xba\xd9\x8a\0" /* offset 12897 */ "\xd8\xb3\xd9\x89\0" /* offset 12902 */ "\xd8\xb3\xd9\x8a\0" /* offset 12907 */ "\xd8\xb4\xd9\x89\0" /* offset 12912 */ "\xd8\xb4\xd9\x8a\0" /* offset 12917 */ "\xd8\xad\xd9\x89\0" /* offset 12922 */ "\xd8\xad\xd9\x8a\0" /* offset 12927 */ "\xd8\xac\xd9\x89\0" /* offset 12932 */ "\xd8\xac\xd9\x8a\0" /* offset 12937 */ "\xd8\xae\xd9\x89\0" /* offset 12942 */ "\xd8\xae\xd9\x8a\0" /* offset 12947 */ "\xd8\xb5\xd9\x89\0" /* offset 12952 */ "\xd8\xb5\xd9\x8a\0" /* offset 12957 */ "\xd8\xb6\xd9\x89\0" /* offset 12962 */ "\xd8\xb6\xd9\x8a\0" /* offset 12967 */ "\xd8\xb4\xd8\xac\0" /* offset 12972 */ "\xd8\xb4\xd8\xad\0" /* offset 12977 */ "\xd8\xb4\xd8\xae\0" /* offset 12982 */ "\xd8\xb4\xd8\xb1\0" /* offset 12987 */ "\xd8\xb3\xd8\xb1\0" /* offset 12992 */ "\xd8\xb5\xd8\xb1\0" /* offset 12997 */ "\xd8\xb6\xd8\xb1\0" /* offset 13002 */ "\xd8\xa7\xd9\x8b\0" /* offset 13007 */ "\xd8\xaa\xd8\xac\xd9\x85\0" /* offset 13012 */ "\xd8\xaa\xd8\xad\xd8\xac\0" /* offset 13019 */ "\xd8\xaa\xd8\xad\xd9\x85\0" /* offset 13026 */ "\xd8\xaa\xd8\xae\xd9\x85\0" /* offset 13033 */ "\xd8\xaa\xd9\x85\xd8\xac\0" /* offset 13040 */ "\xd8\xaa\xd9\x85\xd8\xad\0" /* offset 13047 */ "\xd8\xaa\xd9\x85\xd8\xae\0" /* offset 13054 */ "\xd8\xac\xd9\x85\xd8\xad\0" /* offset 13061 */ "\xd8\xad\xd9\x85\xd9\x8a\0" /* offset 13068 */ "\xd8\xad\xd9\x85\xd9\x89\0" /* offset 13075 */ "\xd8\xb3\xd8\xad\xd8\xac\0" /* offset 13082 */ "\xd8\xb3\xd8\xac\xd8\xad\0" /* offset 13089 */ "\xd8\xb3\xd8\xac\xd9\x89\0" /* offset 13096 */ "\xd8\xb3\xd9\x85\xd8\xad\0" /* offset 13103 */ "\xd8\xb3\xd9\x85\xd8\xac\0" /* offset 13110 */ "\xd8\xb3\xd9\x85\xd9\x85\0" /* offset 13117 */ "\xd8\xb5\xd8\xad\xd8\xad\0" /* offset 13124 */ "\xd8\xb5\xd9\x85\xd9\x85\0" /* offset 13131 */ "\xd8\xb4\xd8\xad\xd9\x85\0" /* offset 13138 */ "\xd8\xb4\xd8\xac\xd9\x8a\0" /* offset 13145 */ "\xd8\xb4\xd9\x85\xd8\xae\0" /* offset 13152 */ "\xd8\xb4\xd9\x85\xd9\x85\0" /* offset 13159 */ "\xd8\xb6\xd8\xad\xd9\x89\0" /* offset 13166 */ "\xd8\xb6\xd8\xae\xd9\x85\0" /* offset 13173 */ "\xd8\xb7\xd9\x85\xd8\xad\0" /* offset 13180 */ "\xd8\xb7\xd9\x85\xd9\x85\0" /* offset 13187 */ "\xd8\xb7\xd9\x85\xd9\x8a\0" /* offset 13194 */ "\xd8\xb9\xd8\xac\xd9\x85\0" /* offset 13201 */ "\xd8\xb9\xd9\x85\xd9\x85\0" /* offset 13208 */ "\xd8\xb9\xd9\x85\xd9\x89\0" /* offset 13215 */ "\xd8\xba\xd9\x85\xd9\x85\0" /* offset 13222 */ "\xd8\xba\xd9\x85\xd9\x8a\0" /* offset 13229 */ "\xd8\xba\xd9\x85\xd9\x89\0" /* offset 13236 */ "\xd9\x81\xd8\xae\xd9\x85\0" /* offset 13243 */ "\xd9\x82\xd9\x85\xd8\xad\0" /* offset 13250 */ "\xd9\x82\xd9\x85\xd9\x85\0" /* offset 13257 */ "\xd9\x84\xd8\xad\xd9\x85\0" /* offset 13264 */ "\xd9\x84\xd8\xad\xd9\x8a\0" /* offset 13271 */ "\xd9\x84\xd8\xad\xd9\x89\0" /* offset 13278 */ "\xd9\x84\xd8\xac\xd8\xac\0" /* offset 13285 */ "\xd9\x84\xd8\xae\xd9\x85\0" /* offset 13292 */ "\xd9\x84\xd9\x85\xd8\xad\0" /* offset 13299 */ "\xd9\x85\xd8\xad\xd8\xac\0" /* offset 13306 */ "\xd9\x85\xd8\xad\xd9\x85\0" /* offset 13313 */ "\xd9\x85\xd8\xad\xd9\x8a\0" /* offset 13320 */ "\xd9\x85\xd8\xac\xd8\xad\0" /* offset 13327 */ "\xd9\x85\xd8\xac\xd9\x85\0" /* offset 13334 */ "\xd9\x85\xd8\xae\xd8\xac\0" /* offset 13341 */ "\xd9\x85\xd8\xae\xd9\x85\0" /* offset 13348 */ "\xd9\x85\xd8\xac\xd8\xae\0" /* offset 13355 */ "\xd9\x87\xd9\x85\xd8\xac\0" /* offset 13362 */ "\xd9\x87\xd9\x85\xd9\x85\0" /* offset 13369 */ "\xd9\x86\xd8\xad\xd9\x85\0" /* offset 13376 */ "\xd9\x86\xd8\xad\xd9\x89\0" /* offset 13383 */ "\xd9\x86\xd8\xac\xd9\x85\0" /* offset 13390 */ "\xd9\x86\xd8\xac\xd9\x89\0" /* offset 13397 */ "\xd9\x86\xd9\x85\xd9\x8a\0" /* offset 13404 */ "\xd9\x86\xd9\x85\xd9\x89\0" /* offset 13411 */ "\xd9\x8a\xd9\x85\xd9\x85\0" /* offset 13418 */ "\xd8\xa8\xd8\xae\xd9\x8a\0" /* offset 13425 */ "\xd8\xaa\xd8\xac\xd9\x8a\0" /* offset 13432 */ "\xd8\xaa\xd8\xac\xd9\x89\0" /* offset 13439 */ "\xd8\xaa\xd8\xae\xd9\x8a\0" /* offset 13446 */ "\xd8\xaa\xd8\xae\xd9\x89\0" /* offset 13453 */ "\xd8\xaa\xd9\x85\xd9\x8a\0" /* offset 13460 */ "\xd8\xaa\xd9\x85\xd9\x89\0" /* offset 13467 */ "\xd8\xac\xd9\x85\xd9\x8a\0" /* offset 13474 */ "\xd8\xac\xd8\xad\xd9\x89\0" /* offset 13481 */ "\xd8\xac\xd9\x85\xd9\x89\0" /* offset 13488 */ "\xd8\xb3\xd8\xae\xd9\x89\0" /* offset 13495 */ "\xd8\xb5\xd8\xad\xd9\x8a\0" /* offset 13502 */ "\xd8\xb4\xd8\xad\xd9\x8a\0" /* offset 13509 */ "\xd8\xb6\xd8\xad\xd9\x8a\0" /* offset 13516 */ "\xd9\x84\xd8\xac\xd9\x8a\0" /* offset 13523 */ "\xd9\x84\xd9\x85\xd9\x8a\0" /* offset 13530 */ "\xd9\x8a\xd8\xad\xd9\x8a\0" /* offset 13537 */ "\xd9\x8a\xd8\xac\xd9\x8a\0" /* offset 13544 */ "\xd9\x8a\xd9\x85\xd9\x8a\0" /* offset 13551 */ "\xd9\x85\xd9\x85\xd9\x8a\0" /* offset 13558 */ "\xd9\x82\xd9\x85\xd9\x8a\0" /* offset 13565 */ "\xd9\x86\xd8\xad\xd9\x8a\0" /* offset 13572 */ "\xd8\xb9\xd9\x85\xd9\x8a\0" /* offset 13579 */ "\xd9\x83\xd9\x85\xd9\x8a\0" /* offset 13586 */ "\xd9\x86\xd8\xac\xd8\xad\0" /* offset 13593 */ "\xd9\x85\xd8\xae\xd9\x8a\0" /* offset 13600 */ "\xd9\x84\xd8\xac\xd9\x85\0" /* offset 13607 */ "\xd9\x83\xd9\x85\xd9\x85\0" /* offset 13614 */ "\xd8\xac\xd8\xad\xd9\x8a\0" /* offset 13621 */ "\xd8\xad\xd8\xac\xd9\x8a\0" /* offset 13628 */ "\xd9\x85\xd8\xac\xd9\x8a\0" /* offset 13635 */ "\xd9\x81\xd9\x85\xd9\x8a\0" /* offset 13642 */ "\xd8\xa8\xd8\xad\xd9\x8a\0" /* offset 13649 */ "\xd8\xb3\xd8\xae\xd9\x8a\0" /* offset 13656 */ "\xd9\x86\xd8\xac\xd9\x8a\0" /* offset 13663 */ "\xd8\xb5\xd9\x84\xdb\x92\0" /* offset 13670 */ "\xd9\x82\xd9\x84\xdb\x92\0" /* offset 13677 */ "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\0" /* offset 13684 */ "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1\0" /* offset 13693 */ "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf\0" /* offset 13702 */ "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85\0" /* offset 13711 */ "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84\0" /* offset 13720 */ "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\0" /* offset 13729 */ "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 13738 */ "\xd8\xb5\xd9\x84\xd9\x89\0" /* offset 13747 */ "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85\0" /* offset 13754 */ "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87\0" /* offset 13788 */ "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84\0" /* offset 13804 */ "\xe2\x80\x94\0" /* offset 13813 */ "\xe2\x80\x93\0" /* offset 13817 */ "\x5f\0" /* offset 13821 */ "\x7b\0" /* offset 13823 */ "\x7d\0" /* offset 13825 */ "\xe3\x80\x94\0" /* offset 13827 */ "\xe3\x80\x95\0" /* offset 13831 */ "\xe3\x80\x90\0" /* offset 13835 */ "\xe3\x80\x91\0" /* offset 13839 */ "\xe3\x80\x8a\0" /* offset 13843 */ "\xe3\x80\x8b\0" /* offset 13847 */ "\xe3\x80\x8c\0" /* offset 13851 */ "\xe3\x80\x8d\0" /* offset 13855 */ "\xe3\x80\x8e\0" /* offset 13859 */ "\xe3\x80\x8f\0" /* offset 13863 */ "\x2c\0" /* offset 13867 */ "\xe3\x80\x81\0" /* offset 13869 */ "\x3a\0" /* offset 13873 */ "\x3f\0" /* offset 13875 */ "\x21\0" /* offset 13877 */ "\x23\0" /* offset 13879 */ "\x26\0" /* offset 13881 */ "\x2a\0" /* offset 13883 */ "\x2d\0" /* offset 13885 */ "\x3c\0" /* offset 13887 */ "\x3e\0" /* offset 13889 */ "\x5c\0" /* offset 13891 */ "\x24\0" /* offset 13893 */ "\x25\0" /* offset 13895 */ "\x40\0" /* offset 13897 */ "\x20\xd9\x8b\0" /* offset 13899 */ "\xd9\x80\xd9\x8b\0" /* offset 13903 */ "\x20\xd9\x8c\0" /* offset 13908 */ "\x20\xd9\x8d\0" /* offset 13912 */ "\x20\xd9\x8e\0" /* offset 13916 */ "\xd9\x80\xd9\x8e\0" /* offset 13920 */ "\x20\xd9\x8f\0" /* offset 13925 */ "\xd9\x80\xd9\x8f\0" /* offset 13929 */ "\x20\xd9\x90\0" /* offset 13934 */ "\xd9\x80\xd9\x90\0" /* offset 13938 */ "\x20\xd9\x91\0" /* offset 13943 */ "\xd9\x80\xd9\x91\0" /* offset 13947 */ "\x20\xd9\x92\0" /* offset 13952 */ "\xd9\x80\xd9\x92\0" /* offset 13956 */ "\xd8\xa1\0" /* offset 13961 */ "\xd8\xa7\0" /* offset 13964 */ "\xd8\xa8\0" /* offset 13967 */ "\xd8\xa9\0" /* offset 13970 */ "\xd8\xaa\0" /* offset 13973 */ "\xd8\xab\0" /* offset 13976 */ "\xd8\xac\0" /* offset 13979 */ "\xd8\xad\0" /* offset 13982 */ "\xd8\xae\0" /* offset 13985 */ "\xd8\xaf\0" /* offset 13988 */ "\xd8\xb0\0" /* offset 13991 */ "\xd8\xb1\0" /* offset 13994 */ "\xd8\xb2\0" /* offset 13997 */ "\xd8\xb3\0" /* offset 14000 */ "\xd8\xb4\0" /* offset 14003 */ "\xd8\xb5\0" /* offset 14006 */ "\xd8\xb6\0" /* offset 14009 */ "\xd8\xb7\0" /* offset 14012 */ "\xd8\xb8\0" /* offset 14015 */ "\xd8\xb9\0" /* offset 14018 */ "\xd8\xba\0" /* offset 14021 */ "\xd9\x81\0" /* offset 14024 */ "\xd9\x82\0" /* offset 14027 */ "\xd9\x83\0" /* offset 14030 */ "\xd9\x84\0" /* offset 14033 */ "\xd9\x85\0" /* offset 14036 */ "\xd9\x86\0" /* offset 14039 */ "\xd9\x87\0" /* offset 14042 */ "\xd9\x88\0" /* offset 14045 */ "\xd9\x8a\0" /* offset 14048 */ "\xd9\x84\xd8\xa7\xd9\x93\0" /* offset 14051 */ "\xd9\x84\xd8\xa7\xd9\x94\0" /* offset 14058 */ "\xd9\x84\xd8\xa7\xd9\x95\0" /* offset 14065 */ "\xd9\x84\xd8\xa7\0" /* offset 14072 */ "\x22\0" /* offset 14077 */ "\x27\0" /* offset 14079 */ "\x2f\0" /* offset 14081 */ "\x5b\0" /* offset 14083 */ "\x5d\0" /* offset 14085 */ "\x5e\0" /* offset 14087 */ "\x7c\0" /* offset 14089 */ "\x7e\0" /* offset 14091 */ "\xe2\xa6\x85\0" /* offset 14093 */ "\xe2\xa6\x86\0" /* offset 14097 */ "\xe3\x80\x82\0" /* offset 14101 */ "\xe3\x83\xbb\0" /* offset 14105 */ "\xe3\x82\xa1\0" /* offset 14109 */ "\xe3\x82\xa3\0" /* offset 14113 */ "\xe3\x82\xa5\0" /* offset 14117 */ "\xe3\x82\xa7\0" /* offset 14121 */ "\xe3\x82\xa9\0" /* offset 14125 */ "\xe3\x83\xa3\0" /* offset 14129 */ "\xe3\x83\xa5\0" /* offset 14133 */ "\xe3\x83\xa7\0" /* offset 14137 */ "\xe3\x83\x83\0" /* offset 14141 */ "\xe3\x83\xbc\0" /* offset 14145 */ "\xe3\x83\xb3\0" /* offset 14149 */ "\xe3\x82\x99\0" /* offset 14153 */ "\xe3\x82\x9a\0" /* offset 14157 */ "\xc2\xa2\0" /* offset 14161 */ "\xc2\xa3\0" /* offset 14164 */ "\xc2\xac\0" /* offset 14167 */ "\xc2\xa6\0" /* offset 14170 */ "\xc2\xa5\0" /* offset 14173 */ "\xe2\x82\xa9\0" /* offset 14176 */ "\xe2\x94\x82\0" /* offset 14180 */ "\xe2\x86\x90\0" /* offset 14184 */ "\xe2\x86\x91\0" /* offset 14188 */ "\xe2\x86\x92\0" /* offset 14192 */ "\xe2\x86\x93\0" /* offset 14196 */ "\xe2\x96\xa0\0" /* offset 14200 */ "\xe2\x97\x8b\0" /* offset 14204 */ "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5\0" /* offset 14208 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\0" /* offset 14217 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14226 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14239 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0\0" /* offset 14252 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1\0" /* offset 14265 */ "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2\0" /* offset 14278 */ "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\0" /* offset 14291 */ "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\0" /* offset 14300 */ "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14309 */ "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae\0" /* offset 14322 */ "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14335 */ "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf\0" /* offset 14348 */ "\xce\x91\0" /* offset 14361 */ "\xce\x92\0" /* offset 14364 */ "\xce\x94\0" /* offset 14367 */ "\xce\x95\0" /* offset 14370 */ "\xce\x96\0" /* offset 14373 */ "\xce\x97\0" /* offset 14376 */ "\xce\x99\0" /* offset 14379 */ "\xce\x9a\0" /* offset 14382 */ "\xce\x9b\0" /* offset 14385 */ "\xce\x9c\0" /* offset 14388 */ "\xce\x9d\0" /* offset 14391 */ "\xce\x9e\0" /* offset 14394 */ "\xce\x9f\0" /* offset 14397 */ "\xce\xa1\0" /* offset 14400 */ "\xce\xa3\0" /* offset 14403 */ "\xce\xa4\0" /* offset 14406 */ "\xce\xa6\0" /* offset 14409 */ "\xce\xa7\0" /* offset 14412 */ "\xce\xa8\0" /* offset 14415 */ "\xe2\x88\x87\0" /* offset 14418 */ "\xce\xb1\0" /* offset 14422 */ "\xce\xb4\0" /* offset 14425 */ "\xce\xb6\0" /* offset 14428 */ "\xce\xb7\0" /* offset 14431 */ "\xce\xbb\0" /* offset 14434 */ "\xce\xbd\0" /* offset 14437 */ "\xce\xbe\0" /* offset 14440 */ "\xce\xbf\0" /* offset 14443 */ "\xcf\x83\0" /* offset 14446 */ "\xcf\x84\0" /* offset 14449 */ "\xcf\x85\0" /* offset 14452 */ "\xcf\x87\0" /* offset 14455 */ "\xcf\x88\0" /* offset 14458 */ "\xcf\x89\0" /* offset 14461 */ "\xe2\x88\x82\0" /* offset 14464 */ "\xe4\xb8\xbd\0" /* offset 14468 */ "\xe4\xb8\xb8\0" /* offset 14472 */ "\xe4\xb9\x81\0" /* offset 14476 */ "\xf0\xa0\x84\xa2\0" /* offset 14480 */ "\xe4\xbd\xa0\0" /* offset 14485 */ "\xe4\xbe\xbb\0" /* offset 14489 */ "\xe5\x80\x82\0" /* offset 14493 */ "\xe5\x81\xba\0" /* offset 14497 */ "\xe5\x82\x99\0" /* offset 14501 */ "\xe5\x83\x8f\0" /* offset 14505 */ "\xe3\x92\x9e\0" /* offset 14509 */ "\xf0\xa0\x98\xba\0" /* offset 14513 */ "\xe5\x85\x94\0" /* offset 14518 */ "\xe5\x85\xa4\0" /* offset 14522 */ "\xe5\x85\xb7\0" /* offset 14526 */ "\xf0\xa0\x94\x9c\0" /* offset 14530 */ "\xe3\x92\xb9\0" /* offset 14535 */ "\xe5\x85\xa7\0" /* offset 14539 */ "\xe5\x86\x8d\0" /* offset 14543 */ "\xf0\xa0\x95\x8b\0" /* offset 14547 */ "\xe5\x86\x97\0" /* offset 14552 */ "\xe5\x86\xa4\0" /* offset 14556 */ "\xe4\xbb\x8c\0" /* offset 14560 */ "\xe5\x86\xac\0" /* offset 14564 */ "\xe5\x86\xb5\0" /* offset 14568 */ "\xf0\xa9\x87\x9f\0" /* offset 14572 */ "\xe5\x88\x83\0" /* offset 14577 */ "\xe3\x93\x9f\0" /* offset 14581 */ "\xe5\x88\xbb\0" /* offset 14585 */ "\xe5\x89\x86\0" /* offset 14589 */ "\xe5\x89\xb2\0" /* offset 14593 */ "\xe5\x89\xb7\0" /* offset 14597 */ "\xe3\x94\x95\0" /* offset 14601 */ "\xe5\x8b\x87\0" /* offset 14605 */ "\xe5\x8b\xba\0" /* offset 14609 */ "\xe5\x8c\x85\0" /* offset 14613 */ "\xe5\x8c\x86\0" /* offset 14617 */ "\xe5\x8d\x89\0" /* offset 14621 */ "\xe5\x8d\x9a\0" /* offset 14625 */ "\xe5\x8d\xb3\0" /* offset 14629 */ "\xe5\x8d\xbd\0" /* offset 14633 */ "\xe5\x8d\xbf\0" /* offset 14637 */ "\xf0\xa0\xa8\xac\0" /* offset 14641 */ "\xe7\x81\xb0\0" /* offset 14646 */ "\xe5\x8f\x8a\0" /* offset 14650 */ "\xe5\x8f\x9f\0" /* offset 14654 */ "\xf0\xa0\xad\xa3\0" /* offset 14658 */ "\xe5\x8f\xab\0" /* offset 14663 */ "\xe5\x8f\xb1\0" /* offset 14667 */ "\xe5\x90\x86\0" /* offset 14671 */ "\xe5\x92\x9e\0" /* offset 14675 */ "\xe5\x90\xb8\0" /* offset 14679 */ "\xe5\x91\x88\0" /* offset 14683 */ "\xe5\x91\xa8\0" /* offset 14687 */ "\xe5\x92\xa2\0" /* offset 14691 */ "\xe5\x93\xb6\0" /* offset 14695 */ "\xe5\x94\x90\0" /* offset 14699 */ "\xe5\x95\x93\0" /* offset 14703 */ "\xe5\x95\xa3\0" /* offset 14707 */ "\xe5\x96\x84\0" /* offset 14711 */ "\xe5\x96\x99\0" /* offset 14715 */ "\xe5\x96\xab\0" /* offset 14719 */ "\xe5\x96\xb3\0" /* offset 14723 */ "\xe5\x97\x82\0" /* offset 14727 */ "\xe5\x9c\x96\0" /* offset 14731 */ "\xe5\x9c\x97\0" /* offset 14735 */ "\xe5\x99\x91\0" /* offset 14739 */ "\xe5\x99\xb4\0" /* offset 14743 */ "\xe5\xa3\xae\0" /* offset 14747 */ "\xe5\x9f\x8e\0" /* offset 14751 */ "\xe5\x9f\xb4\0" /* offset 14755 */ "\xe5\xa0\x8d\0" /* offset 14759 */ "\xe5\x9e\x8b\0" /* offset 14763 */ "\xe5\xa0\xb2\0" /* offset 14767 */ "\xe5\xa0\xb1\0" /* offset 14771 */ "\xe5\xa2\xac\0" /* offset 14775 */ "\xf0\xa1\x93\xa4\0" /* offset 14779 */ "\xe5\xa3\xb2\0" /* offset 14784 */ "\xe5\xa3\xb7\0" /* offset 14788 */ "\xe5\xa4\x86\0" /* offset 14792 */ "\xe5\xa4\x9a\0" /* offset 14796 */ "\xe5\xa4\xa2\0" /* offset 14800 */ "\xe5\xa5\xa2\0" /* offset 14804 */ "\xf0\xa1\x9a\xa8\0" /* offset 14808 */ "\xf0\xa1\x9b\xaa\0" /* offset 14813 */ "\xe5\xa7\xac\0" /* offset 14818 */ "\xe5\xa8\x9b\0" /* offset 14822 */ "\xe5\xa8\xa7\0" /* offset 14826 */ "\xe5\xa7\x98\0" /* offset 14830 */ "\xe5\xa9\xa6\0" /* offset 14834 */ "\xe3\x9b\xae\0" /* offset 14838 */ "\xf0\xa1\x8d\xaa\0" /* offset 14842 */ "\xe5\xac\x88\0" /* offset 14847 */ "\xe5\xac\xbe\0" /* offset 14851 */ "\xf0\xa1\xa7\x88\0" /* offset 14855 */ "\xe5\xaf\x83\0" /* offset 14860 */ "\xe5\xaf\x98\0" /* offset 14864 */ "\xe5\xaf\xb3\0" /* offset 14868 */ "\xf0\xa1\xac\x98\0" /* offset 14872 */ "\xe5\xaf\xbf\0" /* offset 14877 */ "\xe5\xb0\x86\0" /* offset 14881 */ "\xe5\xbc\xb3\0" /* offset 14885 */ "\xe3\x9e\x81\0" /* offset 14889 */ "\xe5\xb1\xa0\0" /* offset 14893 */ "\xe5\xb3\x80\0" /* offset 14897 */ "\xe5\xb2\x8d\0" /* offset 14901 */ "\xf0\xa1\xb7\xa4\0" /* offset 14905 */ "\xe5\xb5\x83\0" /* offset 14910 */ "\xf0\xa1\xb7\xa6\0" /* offset 14914 */ "\xe5\xb5\xae\0" /* offset 14919 */ "\xe5\xb5\xab\0" /* offset 14923 */ "\xe5\xb5\xbc\0" /* offset 14927 */ "\xe5\xb7\xa1\0" /* offset 14931 */ "\xe5\xb7\xa2\0" /* offset 14935 */ "\xe3\xa0\xaf\0" /* offset 14939 */ "\xe5\xb7\xbd\0" /* offset 14943 */ "\xe5\xb8\xa8\0" /* offset 14947 */ "\xe5\xb8\xbd\0" /* offset 14951 */ "\xe5\xb9\xa9\0" /* offset 14955 */ "\xe3\xa1\xa2\0" /* offset 14959 */ "\xf0\xa2\x86\x83\0" /* offset 14963 */ "\xe3\xa1\xbc\0" /* offset 14968 */ "\xe5\xba\xb0\0" /* offset 14972 */ "\xe5\xba\xb3\0" /* offset 14976 */ "\xe5\xba\xb6\0" /* offset 14980 */ "\xf0\xaa\x8e\x92\0" /* offset 14984 */ "\xf0\xa2\x8c\xb1\0" /* offset 14989 */ "\xe8\x88\x81\0" /* offset 14994 */ "\xe5\xbc\xa2\0" /* offset 14998 */ "\xe3\xa3\x87\0" /* offset 15002 */ "\xf0\xa3\x8a\xb8\0" /* offset 15006 */ "\xf0\xa6\x87\x9a\0" /* offset 15011 */ "\xe5\xbd\xa2\0" /* offset 15016 */ "\xe5\xbd\xab\0" /* offset 15020 */ "\xe3\xa3\xa3\0" /* offset 15024 */ "\xe5\xbe\x9a\0" /* offset 15028 */ "\xe5\xbf\x8d\0" /* offset 15032 */ "\xe5\xbf\x97\0" /* offset 15036 */ "\xe5\xbf\xb9\0" /* offset 15040 */ "\xe6\x82\x81\0" /* offset 15044 */ "\xe3\xa4\xba\0" /* offset 15048 */ "\xe3\xa4\x9c\0" /* offset 15052 */ "\xf0\xa2\x9b\x94\0" /* offset 15056 */ "\xe6\x83\x87\0" /* offset 15061 */ "\xe6\x85\x88\0" /* offset 15065 */ "\xe6\x85\x8c\0" /* offset 15069 */ "\xe6\x85\x8e\0" /* offset 15073 */ "\xe6\x85\xba\0" /* offset 15077 */ "\xe6\x86\xb2\0" /* offset 15081 */ "\xe6\x86\xa4\0" /* offset 15085 */ "\xe6\x86\xaf\0" /* offset 15089 */ "\xe6\x87\x9e\0" /* offset 15093 */ "\xe6\x88\x90\0" /* offset 15097 */ "\xe6\x88\x9b\0" /* offset 15101 */ "\xe6\x89\x9d\0" /* offset 15105 */ "\xe6\x8a\xb1\0" /* offset 15109 */ "\xe6\x8b\x94\0" /* offset 15113 */ "\xe6\x8d\x90\0" /* offset 15117 */ "\xf0\xa2\xac\x8c\0" /* offset 15121 */ "\xe6\x8c\xbd\0" /* offset 15126 */ "\xe6\x8b\xbc\0" /* offset 15130 */ "\xe6\x8d\xa8\0" /* offset 15134 */ "\xe6\x8e\x83\0" /* offset 15138 */ "\xe6\x8f\xa4\0" /* offset 15142 */ "\xf0\xa2\xaf\xb1\0" /* offset 15146 */ "\xe6\x90\xa2\0" /* offset 15151 */ "\xe6\x8f\x85\0" /* offset 15155 */ "\xe6\x8e\xa9\0" /* offset 15159 */ "\xe3\xa8\xae\0" /* offset 15163 */ "\xe6\x91\xa9\0" /* offset 15167 */ "\xe6\x91\xbe\0" /* offset 15171 */ "\xe6\x92\x9d\0" /* offset 15175 */ "\xe6\x91\xb7\0" /* offset 15179 */ "\xe3\xa9\xac\0" /* offset 15183 */ "\xe6\x95\xac\0" /* offset 15187 */ "\xf0\xa3\x80\x8a\0" /* offset 15191 */ "\xe6\x97\xa3\0" /* offset 15196 */ "\xe6\x9b\xb8\0" /* offset 15200 */ "\xe6\x99\x89\0" /* offset 15204 */ "\xe3\xac\x99\0" /* offset 15208 */ "\xe3\xac\x88\0" /* offset 15212 */ "\xe3\xab\xa4\0" /* offset 15216 */ "\xe5\x86\x92\0" /* offset 15220 */ "\xe5\x86\x95\0" /* offset 15224 */ "\xe6\x9c\x80\0" /* offset 15228 */ "\xe6\x9a\x9c\0" /* offset 15232 */ "\xe8\x82\xad\0" /* offset 15236 */ "\xe4\x8f\x99\0" /* offset 15240 */ "\xe6\x9c\x9b\0" /* offset 15244 */ "\xe6\x9c\xa1\0" /* offset 15248 */ "\xe6\x9d\x9e\0" /* offset 15252 */ "\xe6\x9d\x93\0" /* offset 15256 */ "\xf0\xa3\x8f\x83\0" /* offset 15260 */ "\xe3\xad\x89\0" /* offset 15265 */ "\xe6\x9f\xba\0" /* offset 15269 */ "\xe6\x9e\x85\0" /* offset 15273 */ "\xe6\xa1\x92\0" /* offset 15277 */ "\xf0\xa3\x91\xad\0" /* offset 15281 */ "\xe6\xa2\x8e\0" /* offset 15286 */ "\xe6\xa0\x9f\0" /* offset 15290 */ "\xe6\xa4\x94\0" /* offset 15294 */ "\xe3\xae\x9d\0" /* offset 15298 */ "\xe6\xa5\x82\0" /* offset 15302 */ "\xe6\xa6\xa3\0" /* offset 15306 */ "\xe6\xa7\xaa\0" /* offset 15310 */ "\xe6\xaa\xa8\0" /* offset 15314 */ "\xf0\xa3\x9a\xa3\0" /* offset 15318 */ "\xe6\xab\x9b\0" /* offset 15323 */ "\xe3\xb0\x98\0" /* offset 15327 */ "\xe6\xac\xa1\0" /* offset 15331 */ "\xf0\xa3\xa2\xa7\0" /* offset 15335 */ "\xe6\xad\x94\0" /* offset 15340 */ "\xe3\xb1\x8e\0" /* offset 15344 */ "\xe6\xad\xb2\0" /* offset 15348 */ "\xe6\xae\x9f\0" /* offset 15352 */ "\xe6\xae\xbb\0" /* offset 15356 */ "\xf0\xa3\xaa\x8d\0" /* offset 15360 */ "\xf0\xa1\xb4\x8b\0" /* offset 15365 */ "\xf0\xa3\xab\xba\0" /* offset 15370 */ "\xe6\xb1\x8e\0" /* offset 15375 */ "\xf0\xa3\xb2\xbc\0" /* offset 15379 */ "\xe6\xb2\xbf\0" /* offset 15384 */ "\xe6\xb3\x8d\0" /* offset 15388 */ "\xe6\xb1\xa7\0" /* offset 15392 */ "\xe6\xb4\x96\0" /* offset 15396 */ "\xe6\xb4\xbe\0" /* offset 15400 */ "\xe6\xb5\xa9\0" /* offset 15404 */ "\xe6\xb5\xb8\0" /* offset 15408 */ "\xe6\xb6\x85\0" /* offset 15412 */ "\xf0\xa3\xb4\x9e\0" /* offset 15416 */ "\xe6\xb4\xb4\0" /* offset 15421 */ "\xe6\xb8\xaf\0" /* offset 15425 */ "\xe6\xb9\xae\0" /* offset 15429 */ "\xe3\xb4\xb3\0" /* offset 15433 */ "\xe6\xbb\x8b\0" /* offset 15437 */ "\xe6\xbb\x87\0" /* offset 15441 */ "\xf0\xa3\xbb\x91\0" /* offset 15445 */ "\xe6\xb7\xb9\0" /* offset 15450 */ "\xe6\xbd\xae\0" /* offset 15454 */ "\xf0\xa3\xbd\x9e\0" /* offset 15458 */ "\xf0\xa3\xbe\x8e\0" /* offset 15463 */ "\xe6\xbf\x86\0" /* offset 15468 */ "\xe7\x80\xb9\0" /* offset 15472 */ "\xe7\x80\x9e\0" /* offset 15476 */ "\xe7\x80\x9b\0" /* offset 15480 */ "\xe3\xb6\x96\0" /* offset 15484 */ "\xe7\x81\x8a\0" /* offset 15488 */ "\xe7\x81\xbd\0" /* offset 15492 */ "\xe7\x81\xb7\0" /* offset 15496 */ "\xe7\x82\xad\0" /* offset 15500 */ "\xf0\xa0\x94\xa5\0" /* offset 15504 */ "\xe7\x85\x85\0" /* offset 15509 */ "\xf0\xa4\x89\xa3\0" /* offset 15513 */ "\xe7\x86\x9c\0" /* offset 15518 */ "\xe4\x8e\xab\0" /* offset 15522 */ "\xe7\x88\xa8\0" /* offset 15526 */ "\xe7\x88\xb5\0" /* offset 15530 */ "\xe7\x89\x90\0" /* offset 15534 */ "\xf0\xa4\x98\x88\0" /* offset 15538 */ "\xe7\x8a\x80\0" /* offset 15543 */ "\xe7\x8a\x95\0" /* offset 15547 */ "\xf0\xa4\x9c\xb5\0" /* offset 15551 */ "\xf0\xa4\xa0\x94\0" /* offset 15556 */ "\xe7\x8d\xba\0" /* offset 15561 */ "\xe7\x8e\x8b\0" /* offset 15565 */ "\xe3\xba\xac\0" /* offset 15569 */ "\xe7\x8e\xa5\0" /* offset 15573 */ "\xe3\xba\xb8\0" /* offset 15577 */ "\xe7\x91\x87\0" /* offset 15581 */ "\xe7\x91\x9c\0" /* offset 15585 */ "\xe7\x91\xb1\0" /* offset 15589 */ "\xe7\x92\x85\0" /* offset 15593 */ "\xe7\x93\x8a\0" /* offset 15597 */ "\xe3\xbc\x9b\0" /* offset 15601 */ "\xe7\x94\xa4\0" /* offset 15605 */ "\xf0\xa4\xb0\xb6\0" /* offset 15609 */ "\xe7\x94\xbe\0" /* offset 15614 */ "\xf0\xa4\xb2\x92\0" /* offset 15618 */ "\xf0\xa2\x86\x9f\0" /* offset 15623 */ "\xe7\x98\x90\0" /* offset 15628 */ "\xf0\xa4\xbe\xa1\0" /* offset 15632 */ "\xf0\xa4\xbe\xb8\0" /* offset 15637 */ "\xf0\xa5\x81\x84\0" /* offset 15642 */ "\xe3\xbf\xbc\0" /* offset 15647 */ "\xe4\x80\x88\0" /* offset 15651 */ "\xe7\x9b\xb4\0" /* offset 15655 */ "\xf0\xa5\x83\xb3\0" /* offset 15659 */ "\xf0\xa5\x83\xb2\0" /* offset 15664 */ "\xf0\xa5\x84\x99\0" /* offset 15669 */ "\xf0\xa5\x84\xb3\0" /* offset 15674 */ "\xe7\x9c\x9e\0" /* offset 15679 */ "\xe7\x9c\x9f\0" /* offset 15683 */ "\xe7\x9d\x8a\0" /* offset 15687 */ "\xe4\x80\xb9\0" /* offset 15691 */ "\xe7\x9e\x8b\0" /* offset 15695 */ "\xe4\x81\x86\0" /* offset 15699 */ "\xe4\x82\x96\0" /* offset 15703 */ "\xf0\xa5\x90\x9d\0" /* offset 15707 */ "\xe7\xa1\x8e\0" /* offset 15712 */ "\xe7\xa3\x8c\0" /* offset 15716 */ "\xe4\x83\xa3\0" /* offset 15720 */ "\xf0\xa5\x98\xa6\0" /* offset 15724 */ "\xf0\xa5\x9a\x9a\0" /* offset 15729 */ "\xf0\xa5\x9b\x85\0" /* offset 15734 */ "\xe7\xa7\xab\0" /* offset 15739 */ "\xe4\x84\xaf\0" /* offset 15743 */ "\xe7\xa9\x8a\0" /* offset 15747 */ "\xe7\xa9\x8f\0" /* offset 15751 */ "\xf0\xa5\xa5\xbc\0" /* offset 15755 */ "\xf0\xa5\xaa\xa7\0" /* offset 15760 */ "\xe7\xaa\xae\0" /* offset 15765 */ "\xe4\x88\x82\0" /* offset 15769 */ "\xf0\xa5\xae\xab\0" /* offset 15773 */ "\xe7\xaf\x86\0" /* offset 15778 */ "\xe7\xaf\x89\0" /* offset 15782 */ "\xe4\x88\xa7\0" /* offset 15786 */ "\xf0\xa5\xb2\x80\0" /* offset 15790 */ "\xe7\xb3\x92\0" /* offset 15795 */ "\xe4\x8a\xa0\0" /* offset 15799 */ "\xe7\xb3\xa8\0" /* offset 15803 */ "\xe7\xb3\xa3\0" /* offset 15807 */ "\xe7\xb4\x80\0" /* offset 15811 */ "\xf0\xa5\xbe\x86\0" /* offset 15815 */ "\xe7\xb5\xa3\0" /* offset 15820 */ "\xe4\x8c\x81\0" /* offset 15824 */ "\xe7\xb7\x87\0" /* offset 15828 */ "\xe7\xb8\x82\0" /* offset 15832 */ "\xe7\xb9\x85\0" /* offset 15836 */ "\xe4\x8c\xb4\0" /* offset 15840 */ "\xf0\xa6\x88\xa8\0" /* offset 15844 */ "\xf0\xa6\x89\x87\0" /* offset 15849 */ "\xe4\x8d\x99\0" /* offset 15854 */ "\xf0\xa6\x8b\x99\0" /* offset 15858 */ "\xe7\xbd\xba\0" /* offset 15863 */ "\xf0\xa6\x8c\xbe\0" /* offset 15867 */ "\xe7\xbe\x95\0" /* offset 15872 */ "\xe7\xbf\xba\0" /* offset 15876 */ "\xf0\xa6\x93\x9a\0" /* offset 15880 */ "\xf0\xa6\x94\xa3\0" /* offset 15885 */ "\xe8\x81\xa0\0" /* offset 15890 */ "\xf0\xa6\x96\xa8\0" /* offset 15894 */ "\xe8\x81\xb0\0" /* offset 15899 */ "\xf0\xa3\x8d\x9f\0" /* offset 15903 */ "\xe4\x8f\x95\0" /* offset 15908 */ "\xe8\x82\xb2\0" /* offset 15912 */ "\xe8\x84\x83\0" /* offset 15916 */ "\xe4\x90\x8b\0" /* offset 15920 */ "\xe8\x84\xbe\0" /* offset 15924 */ "\xe5\xaa\xb5\0" /* offset 15928 */ "\xf0\xa6\x9e\xa7\0" /* offset 15932 */ "\xf0\xa6\x9e\xb5\0" /* offset 15937 */ "\xf0\xa3\x8e\x93\0" /* offset 15942 */ "\xf0\xa3\x8e\x9c\0" /* offset 15947 */ "\xe8\x88\x84\0" /* offset 15952 */ "\xe8\xbe\x9e\0" /* offset 15956 */ "\xe4\x91\xab\0" /* offset 15960 */ "\xe8\x8a\x91\0" /* offset 15964 */ "\xe8\x8a\x8b\0" /* offset 15968 */ "\xe8\x8a\x9d\0" /* offset 15972 */ "\xe5\x8a\xb3\0" /* offset 15976 */ "\xe8\x8a\xb1\0" /* offset 15980 */ "\xe8\x8a\xb3\0" /* offset 15984 */ "\xe8\x8a\xbd\0" /* offset 15988 */ "\xe8\x8b\xa6\0" /* offset 15992 */ "\xf0\xa6\xac\xbc\0" /* offset 15996 */ "\xe8\x8c\x9d\0" /* offset 16001 */ "\xe8\x8d\xa3\0" /* offset 16005 */ "\xe8\x8e\xad\0" /* offset 16009 */ "\xe8\x8c\xa3\0" /* offset 16013 */ "\xe8\x8e\xbd\0" /* offset 16017 */ "\xe8\x8f\xa7\0" /* offset 16021 */ "\xe8\x8d\x93\0" /* offset 16025 */ "\xe8\x8f\x8a\0" /* offset 16029 */ "\xe8\x8f\x8c\0" /* offset 16033 */ "\xe8\x8f\x9c\0" /* offset 16037 */ "\xf0\xa6\xb0\xb6\0" /* offset 16041 */ "\xf0\xa6\xb5\xab\0" /* offset 16046 */ "\xf0\xa6\xb3\x95\0" /* offset 16051 */ "\xe4\x94\xab\0" /* offset 16056 */ "\xe8\x93\xb1\0" /* offset 16060 */ "\xe8\x93\xb3\0" /* offset 16064 */ "\xe8\x94\x96\0" /* offset 16068 */ "\xf0\xa7\x8f\x8a\0" /* offset 16072 */ "\xe8\x95\xa4\0" /* offset 16077 */ "\xf0\xa6\xbc\xac\0" /* offset 16081 */ "\xe4\x95\x9d\0" /* offset 16086 */ "\xe4\x95\xa1\0" /* offset 16090 */ "\xf0\xa6\xbe\xb1\0" /* offset 16094 */ "\xf0\xa7\x83\x92\0" /* offset 16099 */ "\xe4\x95\xab\0" /* offset 16104 */ "\xe8\x99\x90\0" /* offset 16108 */ "\xe8\x99\xa7\0" /* offset 16112 */ "\xe8\x99\xa9\0" /* offset 16116 */ "\xe8\x9a\xa9\0" /* offset 16120 */ "\xe8\x9a\x88\0" /* offset 16124 */ "\xe8\x9c\x8e\0" /* offset 16128 */ "\xe8\x9b\xa2\0" /* offset 16132 */ "\xe8\x9d\xb9\0" /* offset 16136 */ "\xe8\x9c\xa8\0" /* offset 16140 */ "\xe8\x9d\xab\0" /* offset 16144 */ "\xe8\x9e\x86\0" /* offset 16148 */ "\xe4\xb5\x97\0" /* offset 16152 */ "\xe8\x9f\xa1\0" /* offset 16156 */ "\xe8\xa0\x81\0" /* offset 16160 */ "\xe4\x97\xb9\0" /* offset 16164 */ "\xe8\xa1\xa0\0" /* offset 16168 */ "\xf0\xa7\x99\xa7\0" /* offset 16172 */ "\xe8\xa3\x97\0" /* offset 16177 */ "\xe8\xa3\x9e\0" /* offset 16181 */ "\xe4\x98\xb5\0" /* offset 16185 */ "\xe8\xa3\xba\0" /* offset 16189 */ "\xe3\x92\xbb\0" /* offset 16193 */ "\xf0\xa7\xa2\xae\0" /* offset 16197 */ "\xf0\xa7\xa5\xa6\0" /* offset 16202 */ "\xe4\x9a\xbe\0" /* offset 16207 */ "\xe4\x9b\x87\0" /* offset 16211 */ "\xe8\xaa\xa0\0" /* offset 16215 */ "\xe8\xab\xad\0" /* offset 16219 */ "\xe8\xae\x8a\0" /* offset 16223 */ "\xf0\xa7\xb2\xa8\0" /* offset 16227 */ "\xe8\xb2\xab\0" /* offset 16232 */ "\xe8\xb3\x81\0" /* offset 16236 */ "\xe8\xb4\x9b\0" /* offset 16240 */ "\xe8\xb5\xb7\0" /* offset 16244 */ "\xf0\xa7\xbc\xaf\0" /* offset 16248 */ "\xf0\xa0\xa0\x84\0" /* offset 16253 */ "\xe8\xb7\x8b\0" /* offset 16258 */ "\xe8\xb6\xbc\0" /* offset 16262 */ "\xe8\xb7\xb0\0" /* offset 16266 */ "\xf0\xa0\xa3\x9e\0" /* offset 16270 */ "\xe8\xbb\x94\0" /* offset 16275 */ "\xe8\xbc\xb8\0" /* offset 16279 */ "\xf0\xa8\x97\x92\0" /* offset 16283 */ "\xf0\xa8\x97\xad\0" /* offset 16288 */ "\xe9\x82\x94\0" /* offset 16293 */ "\xe9\x83\xb1\0" /* offset 16297 */ "\xe9\x84\x91\0" /* offset 16301 */ "\xf0\xa8\x9c\xae\0" /* offset 16305 */ "\xe9\x84\x9b\0" /* offset 16310 */ "\xe9\x88\xb8\0" /* offset 16314 */ "\xe9\x8b\x97\0" /* offset 16318 */ "\xe9\x8b\x98\0" /* offset 16322 */ "\xe9\x89\xbc\0" /* offset 16326 */ "\xe9\x8f\xb9\0" /* offset 16330 */ "\xe9\x90\x95\0" /* offset 16334 */ "\xf0\xa8\xaf\xba\0" /* offset 16338 */ "\xe9\x96\x8b\0" /* offset 16343 */ "\xe4\xa6\x95\0" /* offset 16347 */ "\xe9\x96\xb7\0" /* offset 16351 */ "\xf0\xa8\xb5\xb7\0" /* offset 16355 */ "\xe4\xa7\xa6\0" /* offset 16360 */ "\xe9\x9b\x83\0" /* offset 16364 */ "\xe5\xb6\xb2\0" /* offset 16368 */ "\xe9\x9c\xa3\0" /* offset 16372 */ "\xf0\xa9\x85\x85\0" /* offset 16376 */ "\xf0\xa9\x88\x9a\0" /* offset 16381 */ "\xe4\xa9\xae\0" /* offset 16386 */ "\xe4\xa9\xb6\0" /* offset 16390 */ "\xe9\x9f\xa0\0" /* offset 16394 */ "\xf0\xa9\x90\x8a\0" /* offset 16398 */ "\xe4\xaa\xb2\0" /* offset 16403 */ "\xf0\xa9\x92\x96\0" /* offset 16407 */ "\xe9\xa0\x8b\0" /* offset 16412 */ "\xe9\xa0\xa9\0" /* offset 16416 */ "\xf0\xa9\x96\xb6\0" /* offset 16420 */ "\xe9\xa3\xa2\0" /* offset 16425 */ "\xe4\xac\xb3\0" /* offset 16429 */ "\xe9\xa4\xa9\0" /* offset 16433 */ "\xe9\xa6\xa7\0" /* offset 16437 */ "\xe9\xa7\x82\0" /* offset 16441 */ "\xe9\xa7\xbe\0" /* offset 16445 */ "\xe4\xaf\x8e\0" /* offset 16449 */ "\xf0\xa9\xac\xb0\0" /* offset 16453 */ "\xe9\xac\x92\0" /* offset 16458 */ "\xe9\xb1\x80\0" /* offset 16462 */ "\xe9\xb3\xbd\0" /* offset 16466 */ "\xe4\xb3\x8e\0" /* offset 16470 */ "\xe4\xb3\xad\0" /* offset 16474 */ "\xe9\xb5\xa7\0" /* offset 16478 */ "\xf0\xaa\x83\x8e\0" /* offset 16482 */ "\xe4\xb3\xb8\0" /* offset 16487 */ "\xf0\xaa\x84\x85\0" /* offset 16491 */ "\xf0\xaa\x88\x8e\0" /* offset 16496 */ "\xf0\xaa\x8a\x91\0" /* offset 16501 */ "\xe4\xb5\x96\0" /* offset 16506 */ "\xe9\xbb\xbe\0" /* offset 16510 */ "\xe9\xbc\x85\0" /* offset 16514 */ "\xe9\xbc\x8f\0" /* offset 16518 */ "\xe9\xbc\x96\0" /* offset 16522 */ "\xf0\xaa\x98\x80\0" /* offset 16526 */; #endif /* DECOMP_H */ libidn-1.28/lib/stringprep.h0000644000000000000000000002000112154036754012710 00000000000000/* stringprep.h --- Header file for stringprep functions. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef STRINGPREP_H # define STRINGPREP_H # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # include /* size_t */ # include /* ssize_t */ # include /* uint32_t */ # ifdef __cplusplus extern "C" { # endif # define STRINGPREP_VERSION "1.28" /* Error codes. */ typedef enum { STRINGPREP_OK = 0, /* Stringprep errors. */ STRINGPREP_CONTAINS_UNASSIGNED = 1, STRINGPREP_CONTAINS_PROHIBITED = 2, STRINGPREP_BIDI_BOTH_L_AND_RAL = 3, STRINGPREP_BIDI_LEADTRAIL_NOT_RAL = 4, STRINGPREP_BIDI_CONTAINS_PROHIBITED = 5, /* Error in calling application. */ STRINGPREP_TOO_SMALL_BUFFER = 100, STRINGPREP_PROFILE_ERROR = 101, STRINGPREP_FLAG_ERROR = 102, STRINGPREP_UNKNOWN_PROFILE = 103, /* Internal errors. */ STRINGPREP_NFKC_FAILED = 200, STRINGPREP_MALLOC_ERROR = 201 } Stringprep_rc; /* Flags used when calling stringprep(). */ typedef enum { STRINGPREP_NO_NFKC = 1, STRINGPREP_NO_BIDI = 2, STRINGPREP_NO_UNASSIGNED = 4 } Stringprep_profile_flags; /* Steps in a stringprep profile. */ typedef enum { STRINGPREP_NFKC = 1, STRINGPREP_BIDI = 2, STRINGPREP_MAP_TABLE = 3, STRINGPREP_UNASSIGNED_TABLE = 4, STRINGPREP_PROHIBIT_TABLE = 5, STRINGPREP_BIDI_PROHIBIT_TABLE = 6, STRINGPREP_BIDI_RAL_TABLE = 7, STRINGPREP_BIDI_L_TABLE = 8 } Stringprep_profile_steps; # define STRINGPREP_MAX_MAP_CHARS 4 struct Stringprep_table_element { uint32_t start; uint32_t end; /* 0 if only one character */ uint32_t map[STRINGPREP_MAX_MAP_CHARS]; /* NULL if end is not 0 */ }; typedef struct Stringprep_table_element Stringprep_table_element; struct Stringprep_table { Stringprep_profile_steps operation; Stringprep_profile_flags flags; const Stringprep_table_element *table; }; typedef struct Stringprep_table Stringprep_profile; struct Stringprep_profiles { const char *name; const Stringprep_profile *tables; }; typedef struct Stringprep_profiles Stringprep_profiles; extern IDNAPI const Stringprep_profiles stringprep_profiles[]; /* Profiles */ extern IDNAPI const Stringprep_table_element stringprep_rfc3454_A_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_2[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_B_3[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_1_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_1_2[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_2_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_2_2[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_3[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_4[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_5[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_6[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_7[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_8[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_C_9[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_D_1[]; extern IDNAPI const Stringprep_table_element stringprep_rfc3454_D_2[]; /* Nameprep */ extern IDNAPI const Stringprep_profile stringprep_nameprep[]; # define stringprep_nameprep(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_nameprep) # define stringprep_nameprep_no_unassigned(in, maxlen) \ stringprep(in, maxlen, STRINGPREP_NO_UNASSIGNED, stringprep_nameprep) /* SASL */ extern IDNAPI const Stringprep_profile stringprep_saslprep[]; extern IDNAPI const Stringprep_table_element stringprep_saslprep_space_map[]; extern IDNAPI const Stringprep_profile stringprep_plain[]; extern IDNAPI const Stringprep_profile stringprep_trace[]; # define stringprep_plain(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_plain) /* Kerberos */ extern IDNAPI const Stringprep_profile stringprep_kerberos5[]; # define stringprep_kerberos5(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_kerberos5) /* XMPP */ extern IDNAPI const Stringprep_profile stringprep_xmpp_nodeprep[]; extern IDNAPI const Stringprep_profile stringprep_xmpp_resourceprep[]; extern IDNAPI const Stringprep_table_element stringprep_xmpp_nodeprep_prohibit[]; # define stringprep_xmpp_nodeprep(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_xmpp_nodeprep) # define stringprep_xmpp_resourceprep(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_xmpp_resourceprep) /* iSCSI */ extern IDNAPI const Stringprep_profile stringprep_iscsi[]; extern IDNAPI const Stringprep_table_element stringprep_iscsi_prohibit[]; # define stringprep_iscsi(in, maxlen) \ stringprep(in, maxlen, 0, stringprep_iscsi) /* API */ extern IDNAPI int stringprep_4i (uint32_t * ucs4, size_t * len, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile); extern IDNAPI int stringprep_4zi (uint32_t * ucs4, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile); extern IDNAPI int stringprep (char *in, size_t maxlen, Stringprep_profile_flags flags, const Stringprep_profile * profile); extern IDNAPI int stringprep_profile (const char *in, char **out, const char *profile, Stringprep_profile_flags flags); extern IDNAPI const char *stringprep_strerror (Stringprep_rc rc); extern IDNAPI const char *stringprep_check_version (const char *req_version); /* Utility */ extern IDNAPI int stringprep_unichar_to_utf8 (uint32_t c, char *outbuf); extern IDNAPI uint32_t stringprep_utf8_to_unichar (const char *p); extern IDNAPI uint32_t *stringprep_utf8_to_ucs4 (const char *str, ssize_t len, size_t * items_written); extern IDNAPI char *stringprep_ucs4_to_utf8 (const uint32_t * str, ssize_t len, size_t * items_read, size_t * items_written); extern IDNAPI char *stringprep_utf8_nfkc_normalize (const char *str, ssize_t len); extern IDNAPI uint32_t *stringprep_ucs4_nfkc_normalize (const uint32_t * str, ssize_t len); extern IDNAPI const char *stringprep_locale_charset (void); extern IDNAPI char *stringprep_convert (const char *str, const char *to_codeset, const char *from_codeset); extern IDNAPI char *stringprep_locale_to_utf8 (const char *str); extern IDNAPI char *stringprep_utf8_to_locale (const char *str); # ifdef __cplusplus } # endif #endif /* STRINGPREP_H */ libidn-1.28/lib/toutf8.c0000644000000000000000000001063212153706572011751 00000000000000/* toutf8.c --- Convert strings from system locale into UTF-8. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif /* Get prototypes. */ #include "stringprep.h" /* Get fprintf. */ #include /* Get getenv. */ #include /* Get strlen. */ #include /* Get iconv_string. */ #include "striconv.h" #ifdef _LIBC # define HAVE_ICONV 1 # define HAVE_LOCALE_H 1 # define HAVE_LANGINFO_CODESET 1 #endif #include #ifdef HAVE_LANGINFO_CODESET # include #endif #ifdef _LIBC # define stringprep_locale_charset() nl_langinfo (CODESET) #else /** * stringprep_locale_charset: * * Find out current locale charset. The function respect the CHARSET * environment variable, but typically uses nl_langinfo(CODESET) when * it is supported. It fall back on "ASCII" if CHARSET isn't set and * nl_langinfo isn't supported or return anything. * * Note that this function return the application's locale's preferred * charset (or thread's locale's preffered charset, if your system * support thread-specific locales). It does not return what the * system may be using. Thus, if you receive data from external * sources you cannot in general use this function to guess what * charset it is encoded in. Use stringprep_convert from the external * representation into the charset returned by this function, to have * data in the locale encoding. * * Return value: Return the character set used by the current locale. * It will never return NULL, but use "ASCII" as a fallback. **/ const char * stringprep_locale_charset (void) { const char *charset = getenv ("CHARSET"); /* flawfinder: ignore */ if (charset && *charset) return charset; # ifdef HAVE_LANGINFO_CODESET charset = nl_langinfo (CODESET); if (charset && *charset) return charset; # endif return "ASCII"; } #endif /** * stringprep_convert: * @str: input zero-terminated string. * @to_codeset: name of destination character set. * @from_codeset: name of origin character set, as used by @str. * * Convert the string from one character set to another using the * system's iconv() function. * * Return value: Returns newly allocated zero-terminated string which * is @str transcoded into to_codeset. **/ char * stringprep_convert (const char *str, const char *to_codeset, const char *from_codeset) { #if HAVE_ICONV return str_iconv (str, from_codeset, to_codeset); #else char *p; fprintf (stderr, "libidn: warning: libiconv not installed, cannot " "convert data to UTF-8\n"); p = malloc (strlen (str) + 1); if (!p) return NULL; return strcpy (p, str); #endif } /** * stringprep_locale_to_utf8: * @str: input zero terminated string. * * Convert string encoded in the locale's character set into UTF-8 by * using stringprep_convert(). * * Return value: Returns newly allocated zero-terminated string which * is @str transcoded into UTF-8. **/ char * stringprep_locale_to_utf8 (const char *str) { return stringprep_convert (str, "UTF-8", stringprep_locale_charset ()); } /** * stringprep_utf8_to_locale: * @str: input zero terminated string. * * Convert string encoded in UTF-8 into the locale's character set by * using stringprep_convert(). * * Return value: Returns newly allocated zero-terminated string which * is @str transcoded into the locale's character set. **/ char * stringprep_utf8_to_locale (const char *str) { return stringprep_convert (str, stringprep_locale_charset (), "UTF-8"); } libidn-1.28/lib/strerror-idna.c0000644000000000000000000000764112153706572013321 00000000000000/* strerror-idna.c --- Convert IDNA errors into text. Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "idna.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * idna_strerror: * @rc: an #Idna_rc return code. * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * IDNA_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * IDNA_STRINGPREP_ERROR: Error during string preparation. * IDNA_PUNYCODE_ERROR: Error during punycode operation. * IDNA_CONTAINS_NON_LDH: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains non-LDH ASCII characters. * IDNA_CONTAINS_MINUS: For IDNA_USE_STD3_ASCII_RULES, indicate that * the string contains a leading or trailing hyphen-minus (U+002D). * IDNA_INVALID_LENGTH: The final output string is not within the * (inclusive) range 1 to 63 characters. * IDNA_NO_ACE_PREFIX: The string does not contain the ACE prefix * (for ToUnicode). * IDNA_ROUNDTRIP_VERIFY_ERROR: The ToASCII operation on output * string does not equal the input. * IDNA_CONTAINS_ACE_PREFIX: The input contains the ACE prefix (for * ToASCII). * IDNA_ICONV_ERROR: Could not convert string in locale encoding. * IDNA_MALLOC_ERROR: Could not allocate buffer (this is typically a * fatal error). * IDNA_DLOPEN_ERROR: Could not dlopen the libcidn DSO (only used * internally in libc). * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * idna_strerror (Idna_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case IDNA_SUCCESS: p = _("Success"); break; case IDNA_STRINGPREP_ERROR: p = _("String preparation failed"); break; case IDNA_PUNYCODE_ERROR: p = _("Punycode failed"); break; case IDNA_CONTAINS_NON_LDH: p = _("Non-digit/letter/hyphen in input"); break; case IDNA_CONTAINS_MINUS: p = _("Forbidden leading or trailing minus sign (`-')"); break; case IDNA_INVALID_LENGTH: p = _("Output would be too large or too small"); break; case IDNA_NO_ACE_PREFIX: p = _("Input does not start with ACE prefix (`xn--')"); break; case IDNA_ROUNDTRIP_VERIFY_ERROR: p = _("String not idempotent under ToASCII"); break; case IDNA_CONTAINS_ACE_PREFIX: p = _("Input already contain ACE prefix (`xn--')"); break; case IDNA_ICONV_ERROR: p = _("System iconv failed"); break; case IDNA_MALLOC_ERROR: p = _("Cannot allocate memory"); break; case IDNA_DLOPEN_ERROR: p = _("System dlopen failed"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.28/lib/pr29.c0000644000000000000000000013047312153706572011322 00000000000000/* pr29.h --- Detect strings that are non-idempotent under NFKC in Unicode 3.2. Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include #include "pr29.h" /* Get stringprep_utf8_to_ucs4. */ #include /* * The tables used in this file was extracted by Simon Josefsson from * pr-29.html and DerivedCombiningClass-3.2.0.txt, as published by * Unicode Inc., for the GNU Libidn project. * */ /* These are the characters with non-zero combination class, extracted from DerivedCombiningClass-3.2.0.txt. */ static uint32_t nzcc[] = { /* 1 # Mn [5] COMBINING TILDE OVERLAY.. * ..COMBINING LONG SOLIDUS OVERLAY */ 0x0334, 0x0335, 0x0336, 0x0337, 0x0338, /* 1 # Mn [2] COMBINING LONG VERTICAL LINE OVERLAY.. * ..COMBINING SHORT VERTICAL LINE OVERLAY */ 0x20D2, 0x20D3, /* 1 # Mn [3] COMBINING RING OVERLAY.. * ..COMBINING ANTICLOCKWISE RING OVERLAY */ 0x20D8, 0x20D9, 0x20DA, /* 1 # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY.. * ..COMBINING DOUBLE VERTICAL STROKE OVERLAY */ 0x20E5, 0x20E6, /* 1 # Mn COMBINING LEFTWARDS ARROW OVERLAY */ 0x20EA, /* 1 # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1.. * ..MUSICAL SYMBOL COMBINING TREMOLO-3 */ 0x1D167, 0x1D168, 0x1D169, /* 7 # Mn DEVANAGARI SIGN NUKTA */ 0x093C, /* 7 # Mn BENGALI SIGN NUKTA */ 0x09BC, /* 7 # Mn GURMUKHI SIGN NUKTA */ 0x0A3C, /* 7 # Mn GUJARATI SIGN NUKTA */ 0x0ABC, /* 7 # Mn ORIYA SIGN NUKTA */ 0x0B3C, /* 7 # Mn MYANMAR SIGN DOT BELOW */ 0x1037, /* 8 # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK.. * ..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ 0x3099, 0x309A, /* 9 # Mn DEVANAGARI SIGN VIRAMA */ 0x094D, /* 9 # Mn BENGALI SIGN VIRAMA */ 0x09CD, /* 9 # Mn GURMUKHI SIGN VIRAMA */ 0x0A4D, /* 9 # Mn GUJARATI SIGN VIRAMA */ 0x0ACD, /* 9 # Mn ORIYA SIGN VIRAMA */ 0x0B4D, /* 9 # Mn TAMIL SIGN VIRAMA */ 0x0BCD, /* 9 # Mn TELUGU SIGN VIRAMA */ 0x0C4D, /* 9 # Mn KANNADA SIGN VIRAMA */ 0x0CCD, /* 9 # Mn MALAYALAM SIGN VIRAMA */ 0x0D4D, /* 9 # Mn SINHALA SIGN AL-LAKUNA */ 0x0DCA, /* 9 # Mn THAI CHARACTER PHINTHU */ 0x0E3A, /* 9 # Mn TIBETAN MARK HALANTA */ 0x0F84, /* 9 # Mn MYANMAR SIGN VIRAMA */ 0x1039, /* 9 # Mn TAGALOG SIGN VIRAMA */ 0x1714, /* 9 # Mn HANUNOO SIGN PAMUDPOD */ 0x1734, /* 9 # Mn KHMER SIGN COENG */ 0x17D2, /* 10 # Mn HEBREW POINT SHEVA */ 0x05B0, /* 11 # Mn HEBREW POINT HATAF SEGOL */ 0x05B1, /* 12 # Mn HEBREW POINT HATAF PATAH */ 0x05B2, /* 13 # Mn HEBREW POINT HATAF QAMATS */ 0x05B3, /* 14 # Mn HEBREW POINT HIRIQ */ 0x05B4, /* 15 # Mn HEBREW POINT TSERE */ 0x05B5, /* 16 # Mn HEBREW POINT SEGOL */ 0x05B6, /* 17 # Mn HEBREW POINT PATAH */ 0x05B7, /* 18 # Mn HEBREW POINT QAMATS */ 0x05B8, /* 19 # Mn HEBREW POINT HOLAM */ 0x05B9, /* 20 # Mn HEBREW POINT QUBUTS */ 0x05BB, /* 21 # Mn HEBREW POINT DAGESH OR MAPIQ */ 0x05BC, /* 22 # Mn HEBREW POINT METEG */ 0x05BD, /* 23 # Mn HEBREW POINT RAFE */ 0x05BF, /* 24 # Mn HEBREW POINT SHIN DOT */ 0x05C1, /* 25 # Mn HEBREW POINT SIN DOT */ 0x05C2, /* 26 # Mn HEBREW POINT JUDEO-SPANISH VARIKA */ 0xFB1E, /* 27 # Mn ARABIC FATHATAN */ 0x064B, /* 28 # Mn ARABIC DAMMATAN */ 0x064C, /* 29 # Mn ARABIC KASRATAN */ 0x064D, /* 30 # Mn ARABIC FATHA */ 0x064E, /* 31 # Mn ARABIC DAMMA */ 0x064F, /* 32 # Mn ARABIC KASRA */ 0x0650, /* 33 # Mn ARABIC SHADDA */ 0x0651, /* 34 # Mn ARABIC SUKUN */ 0x0652, /* 35 # Mn ARABIC LETTER SUPERSCRIPT ALEF */ 0x0670, /* 36 # Mn SYRIAC LETTER SUPERSCRIPT ALAPH */ 0x0711, /* 84 # Mn TELUGU LENGTH MARK */ 0x0C55, /* 91 # Mn TELUGU AI LENGTH MARK */ 0x0C56, /* 103 # Mn [2] THAI CHARACTER SARA U.. * ..THAI CHARACTER SARA UU */ 0x0E38, 0x0E39, /* 107 # Mn [4] THAI CHARACTER MAI EK.. * ..THAI CHARACTER MAI CHATTAWA */ 0x0E48, 0x0E49, 0x0E4A, 0x04EB, /* 118 # Mn [2] LAO VOWEL SIGN U.. * ..LAO VOWEL SIGN UU */ 0x0EB8, 0x0EB9, /* 122 # Mn [4] LAO TONE MAI EK.. * ..LAO TONE MAI CATAWA */ 0x0EC8, 0x0EC9, 0x0ECA, 0x0ECB, /* 129 # Mn TIBETAN VOWEL SIGN AA */ 0x0F71, /* 130 # Mn TIBETAN VOWEL SIGN I */ 0x0F72, /* 130 # Mn [4] TIBETAN VOWEL SIGN E.. * ..TIBETAN VOWEL SIGN OO */ 0x0F7A, 0x0F7B, 0x0F7C, 0x0F7D, /* 130 # Mn TIBETAN VOWEL SIGN REVERSED I */ 0x0F80, /* 132 # Mn TIBETAN VOWEL SIGN U */ 0x0F74, /* 202 # Mn [2] COMBINING PALATALIZED HOOK BELOW.. * ..COMBINING RETROFLEX HOOK BELOW */ 0x0321, 0x0322, /* 202 # Mn [2] COMBINING CEDILLA.. * ..COMBINING OGONEK */ 0x0327, 0x0328, /* 216 # Mn COMBINING HORN */ 0x031B, /* 216 # Mn TIBETAN MARK TSA -PHRU */ 0x0F39, /* 216 # Mc [2] MUSICAL SYMBOL COMBINING STEM.. * ..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM */ 0x1D165, 0x1D166, /* 216 # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1.. * ..MUSICAL SYMBOL COMBINING FLAG-5 */ 0x1D16E, 0x1D16F, 0x1D170, 0x1D171, 0x1D172, /* 218 # Mn IDEOGRAPHIC LEVEL TONE MARK */ 0x302A, /* 220 # Mn [4] COMBINING GRAVE ACCENT BELOW.. * ..COMBINING RIGHT TACK BELOW */ 0x0316, 0x0317, 0x0318, 0x0319, /* 220 # Mn [5] COMBINING LEFT HALF RING BELOW.. * ..COMBINING MINUS SIGN BELOW */ 0x031C, 0x031D, 0x031E, 0x031F, 0x0320, /* 220 # Mn [4] COMBINING DOT BELOW.. * ..COMBINING COMMA BELOW */ 0x0323, 0x0324, 0x0325, 0x0326, /* 220 # Mn [11] COMBINING VERTICAL LINE BELOW.. * ..COMBINING DOUBLE LOW LINE */ 0x0329, 0x032A, 0x032B, 0x032C, 0x032D, 0x032E, 0x032F, 0x0330, 0x0331, 0x0332, 0x0333, /* 220 # Mn [4] COMBINING RIGHT HALF RING BELOW.. * ..COMBINING SEAGULL BELOW */ 0x0339, 0x033A, 0x033B, 0x033C, /* 220 # Mn [3] COMBINING EQUALS SIGN BELOW.. * ..COMBINING LEFT ANGLE BELOW */ 0x0347, 0x0348, 0x0349, /* 220 # Mn [2] COMBINING LEFT RIGHT ARROW BELOW.. * ..COMBINING UPWARDS ARROW BELOW */ 0x034D, 0x034E, /* 220 # Mn HEBREW ACCENT ETNAHTA */ 0x0591, /* 220 # Mn HEBREW ACCENT TIPEHA */ 0x0596, /* 220 # Mn HEBREW ACCENT TEVIR */ 0x059B, /* 220 # Mn [5] HEBREW ACCENT MUNAH.. * ..HEBREW ACCENT DARGA */ 0x05A3, 0x05A4, 0x05A5, 0x05A6, 0x05A7, /* 220 # Mn HEBREW ACCENT YERAH BEN YOMO */ 0x05AA, /* 220 # Mn ARABIC HAMZA BELOW */ 0x0655, /* 220 # Mn ARABIC SMALL LOW SEEN */ 0x06E3, /* 220 # Mn ARABIC EMPTY CENTRE LOW STOP */ 0x06EA, /* 220 # Mn ARABIC SMALL LOW MEEM */ 0x06ED, /* 220 # Mn SYRIAC PTHAHA BELOW */ 0x0731, /* 220 # Mn SYRIAC ZQAPHA BELOW */ 0x0734, /* 220 # Mn [3] SYRIAC RBASA BELOW.. * ..SYRIAC DOTTED ZLAMA ANGULAR */ 0x0737, 0x0738, 0x0739, /* 220 # Mn [2] SYRIAC HBASA BELOW.. * ..SYRIAC HBASA-ESASA DOTTED */ 0x073B, 0x073C, /* 220 # Mn SYRIAC ESASA BELOW */ 0x073E, /* 220 # Mn SYRIAC RUKKAKHA */ 0x0742, /* 220 # Mn SYRIAC TWO VERTICAL DOTS BELOW */ 0x0744, /* 220 # Mn SYRIAC THREE DOTS BELOW */ 0x0746, /* 220 # Mn SYRIAC OBLIQUE LINE BELOW */ 0x0748, /* 220 # Mn DEVANAGARI STRESS SIGN ANUDATTA */ 0x0952, /* 220 # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA.. * ..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS */ 0x0F18, 0x0F19, /* 220 # Mn TIBETAN MARK NGAS BZUNG NYI ZLA */ 0x0F35, /* 220 # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS */ 0x0F37, /* 220 # Mn TIBETAN SYMBOL PADMA GDAN */ 0x0FC6, /* 220 # Mn COMBINING TRIPLE UNDERDOT */ 0x20E8, /* 220 # Mn [8] MUSICAL SYMBOL COMBINING ACCENT.. * ..MUSICAL SYMBOL COMBINING LOURE */ 0x1D17B, 0x1D17C, 0x1D17D, 0x1D17E, 0x1D17F, 0x1D180, 0x1D181, 0x1D182, /* 220 # Mn [2] MUSICAL SYMBOL COMBINING DOUBLE TONGUE.. * ..MUSICAL SYMBOL COMBINING TRIPLE TONGUE */ 0x1D18A, 0x1D18B, /* 222 # Mn HEBREW ACCENT YETIV */ 0x059A, /* 222 # Mn HEBREW ACCENT DEHI */ 0x05AD, /* 222 # Mn IDEOGRAPHIC ENTERING TONE MARK */ 0x302D, /* 224 # Mn [2] HANGUL SINGLE DOT TONE MARK.. * ..HANGUL DOUBLE DOT TONE MARK */ 0x302E, 0x302F, /* 226 # Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT */ 0x1D16D, /* 228 # Mn HEBREW ACCENT ZINOR */ 0x05AE, /* 228 # Mn MONGOLIAN LETTER ALI GALI DAGALGA */ 0x18A9, /* 228 # Mn IDEOGRAPHIC RISING TONE MARK */ 0x302B, /* 230 # Mn [21] COMBINING GRAVE ACCENT.. * ..COMBINING REVERSED COMMA ABOVE */ 0x0300, 0x0301, 0x0302, 0x0303, 0x0304, 0x0305, 0x0306, 0x0307, 0x0308, 0x0309, 0x030A, 0x030B, 0x030C, 0x030D, 0x030E, 0x030F, 0x0310, 0x0311, 0x0312, 0x0313, 0x0314, /* 230 # Mn [8] COMBINING X ABOVE.. * ..COMBINING GREEK DIALYTIKA TONOS */ 0x033D, 0x033E, 0x033F, 0x0340, 0x0341, 0x0342, 0x0343, 0x0344, /* 230 # Mn COMBINING BRIDGE ABOVE */ 0x0346, /* 230 # Mn [3] COMBINING NOT TILDE ABOVE.. * ..COMBINING ALMOST EQUAL TO ABOVE */ 0x034A, 0x034B, 0x034C, /* 230 # Mn [13] COMBINING LATIN SMALL LETTER A.. * ..COMBINING LATIN SMALL LETTER X */ 0x0363, 0x0364, 0x0365, 0x0366, 0x0367, 0x0368, 0x0369, 0x036A, 0x036B, 0x036C, 0x036D, 0x036E, 0x036F, /* 230 # Mn [4] COMBINING CYRILLIC TITLO.. * ..COMBINING CYRILLIC PSILI PNEUMATA */ 0x0483, 0x0484, 0x0485, 0x0486, /* 230 # Mn [4] HEBREW ACCENT SEGOL.. * ..HEBREW ACCENT ZAQEF GADOL */ 0x0592, 0x0593, 0x0594, 0x0595, /* 230 # Mn [3] HEBREW ACCENT REVIA.. * ..HEBREW ACCENT PASHTA */ 0x0597, 0x0598, 0x0599, /* 230 # Mn [6] HEBREW ACCENT GERESH.. * ..HEBREW ACCENT PAZER */ 0x059C, 0x059D, 0x059E, 0x059F, 0x05A0, 0x05A1, /* 230 # Mn [2] HEBREW ACCENT QADMA.. * ..HEBREW ACCENT TELISHA QETANA */ 0x05A8, 0x05A9, /* 230 # Mn [2] HEBREW ACCENT OLE.. * ..HEBREW ACCENT ILUY */ 0x05AB, 0x05AC, /* 230 # Mn HEBREW MARK MASORA CIRCLE */ 0x05AF, /* 230 # Mn HEBREW MARK UPPER DOT */ 0x05C4, /* 230 # Mn [2] ARABIC MADDAH ABOVE.. * ..ARABIC HAMZA ABOVE */ 0x0653, 0x0654, /* 230 # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA.. * ..ARABIC SMALL HIGH SEEN */ 0x06D6, 0x06D7, 0x06D8, 0x06D9, 0x06DA, 0x06DB, 0x06DC, /* 230 # Mn [4] ARABIC SMALL HIGH ROUNDED ZERO.. * ..ARABIC SMALL HIGH MEEM ISOLATED FORM */ 0x06DF, 0x06E0, 0x06E1, 0x06E2, /* 230 # Mn ARABIC SMALL HIGH MADDA */ 0x06E4, /* 230 # Mn [2] ARABIC SMALL HIGH YEH.. * ..ARABIC SMALL HIGH NOON */ 0x06E7, 0x06E8, /* 230 # Mn [2] ARABIC EMPTY CENTRE HIGH STOP.. * ..ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE */ 0x06EB, 0x06EC, /* 230 # Mn SYRIAC PTHAHA ABOVE */ 0x0730, /* 230 # Mn [2] SYRIAC PTHAHA DOTTED.. * ..SYRIAC ZQAPHA ABOVE */ 0x0732, 0x0733, /* 230 # Mn [2] SYRIAC ZQAPHA DOTTED.. * ..SYRIAC RBASA ABOVE */ 0x0735, 0x0736, /* 230 # Mn SYRIAC HBASA ABOVE */ 0x073A, /* 230 # Mn SYRIAC ESASA ABOVE */ 0x073D, /* 230 # Mn [3] SYRIAC RWAHA.. * ..SYRIAC QUSHSHAYA */ 0x073F, 0x0740, 0x0741, /* 230 # Mn SYRIAC TWO VERTICAL DOTS ABOVE */ 0x0743, /* 230 # Mn SYRIAC THREE DOTS ABOVE */ 0x0745, /* 230 # Mn SYRIAC OBLIQUE LINE ABOVE */ 0x0747, /* 230 # Mn [2] SYRIAC MUSIC.. * ..SYRIAC BARREKH */ 0x0749, 0x074A, /* 230 # Mn DEVANAGARI STRESS SIGN UDATTA */ 0x0951, /* 230 # Mn [2] DEVANAGARI GRAVE ACCENT.. * ..DEVANAGARI ACUTE ACCENT */ 0x0953, 0x0954, /* 230 # Mn [2] TIBETAN SIGN NYI ZLA NAA DA.. * ..TIBETAN SIGN SNA LDAN */ 0x0F82, 0x0F83, /* 230 # Mn [2] TIBETAN SIGN LCI RTAGS.. * ..TIBETAN SIGN YANG RTAGS */ 0x0F86, 0x0F87, /* 230 # Mn [2] COMBINING LEFT HARPOON ABOVE.. * ..COMBINING RIGHT HARPOON ABOVE */ 0x20D0, 0x20D1, /* 230 # Mn [4] COMBINING ANTICLOCKWISE ARROW ABOVE.. * ..COMBINING RIGHT ARROW ABOVE */ 0x20D4, 0x20D5, 0x20D6, 0x20D7, /* 230 # Mn [2] COMBINING THREE DOTS ABOVE.. * ..COMBINING FOUR DOTS ABOVE */ 0x20DB, 0x20DC, /* 230 # Mn COMBINING LEFT RIGHT ARROW ABOVE */ 0x20E1, /* 230 # Mn COMBINING ANNUITY SYMBOL */ 0x20E7, /* 230 # Mn COMBINING WIDE BRIDGE ABOVE */ 0x20E9, /* 230 # Mn [4] COMBINING LIGATURE LEFT HALF.. * ..COMBINING DOUBLE TILDE RIGHT HALF */ 0xFE20, 0xFE21, 0xFE22, 0xFE23, /* 230 # Mn [5] MUSICAL SYMBOL COMBINING DOIT.. * ..MUSICAL SYMBOL COMBINING BEND */ 0x1D185, 0x1D186, 0x1D187, 0x1D188, 0x1D189, /* 230 # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW.. * ..MUSICAL SYMBOL COMBINING SNAP PIZZICATO */ 0x1D1AA, 0x1D1AB, 0x1D1AC, 0x1D1AD, /* 232 # Mn COMBINING COMMA ABOVE RIGHT */ 0x0315, /* 232 # Mn COMBINING LEFT ANGLE ABOVE */ 0x031A, /* 232 # Mn IDEOGRAPHIC DEPARTING TONE MARK */ 0x302C, /* 233 # Mn COMBINING DOUBLE RIGHTWARDS ARROW BELOW */ 0x0362, /* 234 # Mn [2] COMBINING DOUBLE TILDE.. * ..COMBINING DOUBLE INVERTED BREVE */ 0x0360, 0x0361, /* 240 # Mn COMBINING GREEK YPOGEGRAMMENI */ 0x0345, 0 }; /* * 09C7 BENGALI VOWEL SIGN E 09BE BENGALI VOWEL SIGN AA or * 09D7 BENGALI AU LENGTH MARK */ static const uint32_t pr29_1_1[] = { 0x09C7, 0 }; static const uint32_t pr29_1_2[] = { 0x09BE, 0x09D7, 0 }; /* * 0B47 ORIYA VOWEL SIGN E 0B3E ORIYA VOWEL SIGN AA or * 0B56 ORIYA AI LENGTH MARK or * 0B57 ORIYA AU LENGTH MARK */ static const uint32_t pr29_2_1[] = { 0x0B47, 0 }; static const uint32_t pr29_2_2[] = { 0x0B3E, 0x0B56, 0x0B57, 0 }; /* * 0BC6 TAMIL VOWEL SIGN E 0BBE TAMIL VOWEL SIGN AA or * 0BD7 TAMIL AU LENGTH MARK */ static const uint32_t pr29_3_1[] = { 0x0BC6, 0 }; static const uint32_t pr29_3_2[] = { 0x0BBE, 0x0BD7, 0 }; /* * 0BC7 TAMIL VOWEL SIGN EE 0BBE TAMIL VOWEL SIGN AA */ static const uint32_t pr29_4_1[] = { 0x0BC7, 0 }; static const uint32_t pr29_4_2[] = { 0x0BBE, 0 }; /* * 0B92 TAMIL LETTER O 0BD7 TAMIL AU LENGTH MARK */ static const uint32_t pr29_5_1[] = { 0x0B92, 0 }; static const uint32_t pr29_5_2[] = { 0x0BD7, 0 }; /* * 0CC6 KANNADA VOWEL SIGN E 0CC2 KANNADA VOWEL SIGN UU or * 0CD5 KANNADA LENGTH MARK or * 0CD6 KANNADA AI LENGTH MARK */ static const uint32_t pr29_6_1[] = { 0x0CC6, 0 }; static const uint32_t pr29_6_2[] = { 0x0CC2, 0xCD5, 0xCD6, 0 }; /* * 0CBF KANNADA VOWEL SIGN I or * 0CCA KANNADA VOWEL SIGN O 0CD5 KANNADA LENGTH MARK */ static const uint32_t pr29_7_1[] = { 0x0CBF, 0xCCA, 0 }; static const uint32_t pr29_7_2[] = { 0x0CD5, 0 }; /* * 0D47 MALAYALAM VOWEL SIGN EE 0D3E MALAYALAM VOWEL SIGN AA */ static const uint32_t pr29_8_1[] = { 0x0D47, 0 }; static const uint32_t pr29_8_2[] = { 0x0D3E, 0 }; /* * 0D46 MALAYALAM VOWEL SIGN E 0D3E MALAYALAM VOWEL SIGN AA or * 0D57 MALAYALAM AU LENGTH MARK */ static const uint32_t pr29_9_1[] = { 0x0D46, 0 }; static const uint32_t pr29_9_2[] = { 0x0D3E, 0x0D57, 0 }; /* * 1025 MYANMAR LETTER U 102E MYANMAR VOWEL SIGN II */ static const uint32_t pr29_10_1[] = { 0x1025, 0 }; static const uint32_t pr29_10_2[] = { 0x102E, 0 }; /* * 0DD9 SINHALA VOWEL SIGN KOMBUVA 0DCF SINHALA VOWEL SIGN AELA-PILLA or * 0DDF SINHALA VOWEL SIGN GAYANUKITTA */ static const uint32_t pr29_11_1[] = { 0x0DD9, 0 }; static const uint32_t pr29_11_2[] = { 0x0DCF, 0x0DDF, 0 }; /* * 1100..1112 HANGUL CHOSEONG KIYEOK..HIEUH [19 instances] * 1161..1175 HANGUL JUNGSEONG A..I [21 instances] */ static const uint32_t pr29_12_1[] = { 0x1100, 0x1101, 0x1102, 0x1103, 0x1104, 0x1105, 0x1106, 0x1107, 0x1108, 0x1109, 0x110A, 0x110B, 0x110C, 0x110D, 0x110E, 0x110F, 0x1110, 0x1111, 0x1112, 0 }; static const uint32_t pr29_12_2[] = { 0x1161, 0x1162, 0x1163, 0x1164, 0x1165, 0x1166, 0x1167, 0x1168, 0x1169, 0x116A, 0x116B, 0x116C, 0x116D, 0x116E, 0x116F, 0x1170, 0x1171, 0x1172, 0x1173, 0x1174, 0x1175, 0 }; /* * [:HangulSyllableType=LV:] * 11A8..11C2 HANGUL JONGSEONG KIYEOK..HIEUH [27 instances] */ static const uint32_t pr29_13_1[] = { 0xAC00, /* LV # Lo HANGUL SYLLABLE GA */ 0xAC1C, /* LV # Lo HANGUL SYLLABLE GAE */ 0xAC38, /* LV # Lo HANGUL SYLLABLE GYA */ 0xAC54, /* LV # Lo HANGUL SYLLABLE GYAE */ 0xAC70, /* LV # Lo HANGUL SYLLABLE GEO */ 0xAC8C, /* LV # Lo HANGUL SYLLABLE GE */ 0xACA8, /* LV # Lo HANGUL SYLLABLE GYEO */ 0xACC4, /* LV # Lo HANGUL SYLLABLE GYE */ 0xACE0, /* LV # Lo HANGUL SYLLABLE GO */ 0xACFC, /* LV # Lo HANGUL SYLLABLE GWA */ 0xAD18, /* LV # Lo HANGUL SYLLABLE GWAE */ 0xAD34, /* LV # Lo HANGUL SYLLABLE GOE */ 0xAD50, /* LV # Lo HANGUL SYLLABLE GYO */ 0xAD6C, /* LV # Lo HANGUL SYLLABLE GU */ 0xAD88, /* LV # Lo HANGUL SYLLABLE GWEO */ 0xADA4, /* LV # Lo HANGUL SYLLABLE GWE */ 0xADC0, /* LV # Lo HANGUL SYLLABLE GWI */ 0xADDC, /* LV # Lo HANGUL SYLLABLE GYU */ 0xADF8, /* LV # Lo HANGUL SYLLABLE GEU */ 0xAE14, /* LV # Lo HANGUL SYLLABLE GYI */ 0xAE30, /* LV # Lo HANGUL SYLLABLE GI */ 0xAE4C, /* LV # Lo HANGUL SYLLABLE GGA */ 0xAE68, /* LV # Lo HANGUL SYLLABLE GGAE */ 0xAE84, /* LV # Lo HANGUL SYLLABLE GGYA */ 0xAEA0, /* LV # Lo HANGUL SYLLABLE GGYAE */ 0xAEBC, /* LV # Lo HANGUL SYLLABLE GGEO */ 0xAED8, /* LV # Lo HANGUL SYLLABLE GGE */ 0xAEF4, /* LV # Lo HANGUL SYLLABLE GGYEO */ 0xAF10, /* LV # Lo HANGUL SYLLABLE GGYE */ 0xAF2C, /* LV # Lo HANGUL SYLLABLE GGO */ 0xAF48, /* LV # Lo HANGUL SYLLABLE GGWA */ 0xAF64, /* LV # Lo HANGUL SYLLABLE GGWAE */ 0xAF80, /* LV # Lo HANGUL SYLLABLE GGOE */ 0xAF9C, /* LV # Lo HANGUL SYLLABLE GGYO */ 0xAFB8, /* LV # Lo HANGUL SYLLABLE GGU */ 0xAFD4, /* LV # Lo HANGUL SYLLABLE GGWEO */ 0xAFF0, /* LV # Lo HANGUL SYLLABLE GGWE */ 0xB00C, /* LV # Lo HANGUL SYLLABLE GGWI */ 0xB028, /* LV # Lo HANGUL SYLLABLE GGYU */ 0xB044, /* LV # Lo HANGUL SYLLABLE GGEU */ 0xB060, /* LV # Lo HANGUL SYLLABLE GGYI */ 0xB07C, /* LV # Lo HANGUL SYLLABLE GGI */ 0xB098, /* LV # Lo HANGUL SYLLABLE NA */ 0xB0B4, /* LV # Lo HANGUL SYLLABLE NAE */ 0xB0D0, /* LV # Lo HANGUL SYLLABLE NYA */ 0xB0EC, /* LV # Lo HANGUL SYLLABLE NYAE */ 0xB108, /* LV # Lo HANGUL SYLLABLE NEO */ 0xB124, /* LV # Lo HANGUL SYLLABLE NE */ 0xB140, /* LV # Lo HANGUL SYLLABLE NYEO */ 0xB15C, /* LV # Lo HANGUL SYLLABLE NYE */ 0xB178, /* LV # Lo HANGUL SYLLABLE NO */ 0xB194, /* LV # Lo HANGUL SYLLABLE NWA */ 0xB1B0, /* LV # Lo HANGUL SYLLABLE NWAE */ 0xB1CC, /* LV # Lo HANGUL SYLLABLE NOE */ 0xB1E8, /* LV # Lo HANGUL SYLLABLE NYO */ 0xB204, /* LV # Lo HANGUL SYLLABLE NU */ 0xB220, /* LV # Lo HANGUL SYLLABLE NWEO */ 0xB23C, /* LV # Lo HANGUL SYLLABLE NWE */ 0xB258, /* LV # Lo HANGUL SYLLABLE NWI */ 0xB274, /* LV # Lo HANGUL SYLLABLE NYU */ 0xB290, /* LV # Lo HANGUL SYLLABLE NEU */ 0xB2AC, /* LV # Lo HANGUL SYLLABLE NYI */ 0xB2C8, /* LV # Lo HANGUL SYLLABLE NI */ 0xB2E4, /* LV # Lo HANGUL SYLLABLE DA */ 0xB300, /* LV # Lo HANGUL SYLLABLE DAE */ 0xB31C, /* LV # Lo HANGUL SYLLABLE DYA */ 0xB338, /* LV # Lo HANGUL SYLLABLE DYAE */ 0xB354, /* LV # Lo HANGUL SYLLABLE DEO */ 0xB370, /* LV # Lo HANGUL SYLLABLE DE */ 0xB38C, /* LV # Lo HANGUL SYLLABLE DYEO */ 0xB3A8, /* LV # Lo HANGUL SYLLABLE DYE */ 0xB3C4, /* LV # Lo HANGUL SYLLABLE DO */ 0xB3E0, /* LV # Lo HANGUL SYLLABLE DWA */ 0xB3FC, /* LV # Lo HANGUL SYLLABLE DWAE */ 0xB418, /* LV # Lo HANGUL SYLLABLE DOE */ 0xB434, /* LV # Lo HANGUL SYLLABLE DYO */ 0xB450, /* LV # Lo HANGUL SYLLABLE DU */ 0xB46C, /* LV # Lo HANGUL SYLLABLE DWEO */ 0xB488, /* LV # Lo HANGUL SYLLABLE DWE */ 0xB4A4, /* LV # Lo HANGUL SYLLABLE DWI */ 0xB4C0, /* LV # Lo HANGUL SYLLABLE DYU */ 0xB4DC, /* LV # Lo HANGUL SYLLABLE DEU */ 0xB4F8, /* LV # Lo HANGUL SYLLABLE DYI */ 0xB514, /* LV # Lo HANGUL SYLLABLE DI */ 0xB530, /* LV # Lo HANGUL SYLLABLE DDA */ 0xB54C, /* LV # Lo HANGUL SYLLABLE DDAE */ 0xB568, /* LV # Lo HANGUL SYLLABLE DDYA */ 0xB584, /* LV # Lo HANGUL SYLLABLE DDYAE */ 0xB5A0, /* LV # Lo HANGUL SYLLABLE DDEO */ 0xB5BC, /* LV # Lo HANGUL SYLLABLE DDE */ 0xB5D8, /* LV # Lo HANGUL SYLLABLE DDYEO */ 0xB5F4, /* LV # Lo HANGUL SYLLABLE DDYE */ 0xB610, /* LV # Lo HANGUL SYLLABLE DDO */ 0xB62C, /* LV # Lo HANGUL SYLLABLE DDWA */ 0xB648, /* LV # Lo HANGUL SYLLABLE DDWAE */ 0xB664, /* LV # Lo HANGUL SYLLABLE DDOE */ 0xB680, /* LV # Lo HANGUL SYLLABLE DDYO */ 0xB69C, /* LV # Lo HANGUL SYLLABLE DDU */ 0xB6B8, /* LV # Lo HANGUL SYLLABLE DDWEO */ 0xB6D4, /* LV # Lo HANGUL SYLLABLE DDWE */ 0xB6F0, /* LV # Lo HANGUL SYLLABLE DDWI */ 0xB70C, /* LV # Lo HANGUL SYLLABLE DDYU */ 0xB728, /* LV # Lo HANGUL SYLLABLE DDEU */ 0xB744, /* LV # Lo HANGUL SYLLABLE DDYI */ 0xB760, /* LV # Lo HANGUL SYLLABLE DDI */ 0xB77C, /* LV # Lo HANGUL SYLLABLE RA */ 0xB798, /* LV # Lo HANGUL SYLLABLE RAE */ 0xB7B4, /* LV # Lo HANGUL SYLLABLE RYA */ 0xB7D0, /* LV # Lo HANGUL SYLLABLE RYAE */ 0xB7EC, /* LV # Lo HANGUL SYLLABLE REO */ 0xB808, /* LV # Lo HANGUL SYLLABLE RE */ 0xB824, /* LV # Lo HANGUL SYLLABLE RYEO */ 0xB840, /* LV # Lo HANGUL SYLLABLE RYE */ 0xB85C, /* LV # Lo HANGUL SYLLABLE RO */ 0xB878, /* LV # Lo HANGUL SYLLABLE RWA */ 0xB894, /* LV # Lo HANGUL SYLLABLE RWAE */ 0xB8B0, /* LV # Lo HANGUL SYLLABLE ROE */ 0xB8CC, /* LV # Lo HANGUL SYLLABLE RYO */ 0xB8E8, /* LV # Lo HANGUL SYLLABLE RU */ 0xB904, /* LV # Lo HANGUL SYLLABLE RWEO */ 0xB920, /* LV # Lo HANGUL SYLLABLE RWE */ 0xB93C, /* LV # Lo HANGUL SYLLABLE RWI */ 0xB958, /* LV # Lo HANGUL SYLLABLE RYU */ 0xB974, /* LV # Lo HANGUL SYLLABLE REU */ 0xB990, /* LV # Lo HANGUL SYLLABLE RYI */ 0xB9AC, /* LV # Lo HANGUL SYLLABLE RI */ 0xB9C8, /* LV # Lo HANGUL SYLLABLE MA */ 0xB9E4, /* LV # Lo HANGUL SYLLABLE MAE */ 0xBA00, /* LV # Lo HANGUL SYLLABLE MYA */ 0xBA1C, /* LV # Lo HANGUL SYLLABLE MYAE */ 0xBA38, /* LV # Lo HANGUL SYLLABLE MEO */ 0xBA54, /* LV # Lo HANGUL SYLLABLE ME */ 0xBA70, /* LV # Lo HANGUL SYLLABLE MYEO */ 0xBA8C, /* LV # Lo HANGUL SYLLABLE MYE */ 0xBAA8, /* LV # Lo HANGUL SYLLABLE MO */ 0xBAC4, /* LV # Lo HANGUL SYLLABLE MWA */ 0xBAE0, /* LV # Lo HANGUL SYLLABLE MWAE */ 0xBAFC, /* LV # Lo HANGUL SYLLABLE MOE */ 0xBB18, /* LV # Lo HANGUL SYLLABLE MYO */ 0xBB34, /* LV # Lo HANGUL SYLLABLE MU */ 0xBB50, /* LV # Lo HANGUL SYLLABLE MWEO */ 0xBB6C, /* LV # Lo HANGUL SYLLABLE MWE */ 0xBB88, /* LV # Lo HANGUL SYLLABLE MWI */ 0xBBA4, /* LV # Lo HANGUL SYLLABLE MYU */ 0xBBC0, /* LV # Lo HANGUL SYLLABLE MEU */ 0xBBDC, /* LV # Lo HANGUL SYLLABLE MYI */ 0xBBF8, /* LV # Lo HANGUL SYLLABLE MI */ 0xBC14, /* LV # Lo HANGUL SYLLABLE BA */ 0xBC30, /* LV # Lo HANGUL SYLLABLE BAE */ 0xBC4C, /* LV # Lo HANGUL SYLLABLE BYA */ 0xBC68, /* LV # Lo HANGUL SYLLABLE BYAE */ 0xBC84, /* LV # Lo HANGUL SYLLABLE BEO */ 0xBCA0, /* LV # Lo HANGUL SYLLABLE BE */ 0xBCBC, /* LV # Lo HANGUL SYLLABLE BYEO */ 0xBCD8, /* LV # Lo HANGUL SYLLABLE BYE */ 0xBCF4, /* LV # Lo HANGUL SYLLABLE BO */ 0xBD10, /* LV # Lo HANGUL SYLLABLE BWA */ 0xBD2C, /* LV # Lo HANGUL SYLLABLE BWAE */ 0xBD48, /* LV # Lo HANGUL SYLLABLE BOE */ 0xBD64, /* LV # Lo HANGUL SYLLABLE BYO */ 0xBD80, /* LV # Lo HANGUL SYLLABLE BU */ 0xBD9C, /* LV # Lo HANGUL SYLLABLE BWEO */ 0xBDB8, /* LV # Lo HANGUL SYLLABLE BWE */ 0xBDD4, /* LV # Lo HANGUL SYLLABLE BWI */ 0xBDF0, /* LV # Lo HANGUL SYLLABLE BYU */ 0xBE0C, /* LV # Lo HANGUL SYLLABLE BEU */ 0xBE28, /* LV # Lo HANGUL SYLLABLE BYI */ 0xBE44, /* LV # Lo HANGUL SYLLABLE BI */ 0xBE60, /* LV # Lo HANGUL SYLLABLE BBA */ 0xBE7C, /* LV # Lo HANGUL SYLLABLE BBAE */ 0xBE98, /* LV # Lo HANGUL SYLLABLE BBYA */ 0xBEB4, /* LV # Lo HANGUL SYLLABLE BBYAE */ 0xBED0, /* LV # Lo HANGUL SYLLABLE BBEO */ 0xBEEC, /* LV # Lo HANGUL SYLLABLE BBE */ 0xBF08, /* LV # Lo HANGUL SYLLABLE BBYEO */ 0xBF24, /* LV # Lo HANGUL SYLLABLE BBYE */ 0xBF40, /* LV # Lo HANGUL SYLLABLE BBO */ 0xBF5C, /* LV # Lo HANGUL SYLLABLE BBWA */ 0xBF78, /* LV # Lo HANGUL SYLLABLE BBWAE */ 0xBF94, /* LV # Lo HANGUL SYLLABLE BBOE */ 0xBFB0, /* LV # Lo HANGUL SYLLABLE BBYO */ 0xBFCC, /* LV # Lo HANGUL SYLLABLE BBU */ 0xBFE8, /* LV # Lo HANGUL SYLLABLE BBWEO */ 0xC004, /* LV # Lo HANGUL SYLLABLE BBWE */ 0xC020, /* LV # Lo HANGUL SYLLABLE BBWI */ 0xC03C, /* LV # Lo HANGUL SYLLABLE BBYU */ 0xC058, /* LV # Lo HANGUL SYLLABLE BBEU */ 0xC074, /* LV # Lo HANGUL SYLLABLE BBYI */ 0xC090, /* LV # Lo HANGUL SYLLABLE BBI */ 0xC0AC, /* LV # Lo HANGUL SYLLABLE SA */ 0xC0C8, /* LV # Lo HANGUL SYLLABLE SAE */ 0xC0E4, /* LV # Lo HANGUL SYLLABLE SYA */ 0xC100, /* LV # Lo HANGUL SYLLABLE SYAE */ 0xC11C, /* LV # Lo HANGUL SYLLABLE SEO */ 0xC138, /* LV # Lo HANGUL SYLLABLE SE */ 0xC154, /* LV # Lo HANGUL SYLLABLE SYEO */ 0xC170, /* LV # Lo HANGUL SYLLABLE SYE */ 0xC18C, /* LV # Lo HANGUL SYLLABLE SO */ 0xC1A8, /* LV # Lo HANGUL SYLLABLE SWA */ 0xC1C4, /* LV # Lo HANGUL SYLLABLE SWAE */ 0xC1E0, /* LV # Lo HANGUL SYLLABLE SOE */ 0xC1FC, /* LV # Lo HANGUL SYLLABLE SYO */ 0xC218, /* LV # Lo HANGUL SYLLABLE SU */ 0xC234, /* LV # Lo HANGUL SYLLABLE SWEO */ 0xC250, /* LV # Lo HANGUL SYLLABLE SWE */ 0xC26C, /* LV # Lo HANGUL SYLLABLE SWI */ 0xC288, /* LV # Lo HANGUL SYLLABLE SYU */ 0xC2A4, /* LV # Lo HANGUL SYLLABLE SEU */ 0xC2C0, /* LV # Lo HANGUL SYLLABLE SYI */ 0xC2DC, /* LV # Lo HANGUL SYLLABLE SI */ 0xC2F8, /* LV # Lo HANGUL SYLLABLE SSA */ 0xC314, /* LV # Lo HANGUL SYLLABLE SSAE */ 0xC330, /* LV # Lo HANGUL SYLLABLE SSYA */ 0xC34C, /* LV # Lo HANGUL SYLLABLE SSYAE */ 0xC368, /* LV # Lo HANGUL SYLLABLE SSEO */ 0xC384, /* LV # Lo HANGUL SYLLABLE SSE */ 0xC3A0, /* LV # Lo HANGUL SYLLABLE SSYEO */ 0xC3BC, /* LV # Lo HANGUL SYLLABLE SSYE */ 0xC3D8, /* LV # Lo HANGUL SYLLABLE SSO */ 0xC3F4, /* LV # Lo HANGUL SYLLABLE SSWA */ 0xC410, /* LV # Lo HANGUL SYLLABLE SSWAE */ 0xC42C, /* LV # Lo HANGUL SYLLABLE SSOE */ 0xC448, /* LV # Lo HANGUL SYLLABLE SSYO */ 0xC464, /* LV # Lo HANGUL SYLLABLE SSU */ 0xC480, /* LV # Lo HANGUL SYLLABLE SSWEO */ 0xC49C, /* LV # Lo HANGUL SYLLABLE SSWE */ 0xC4B8, /* LV # Lo HANGUL SYLLABLE SSWI */ 0xC4D4, /* LV # Lo HANGUL SYLLABLE SSYU */ 0xC4F0, /* LV # Lo HANGUL SYLLABLE SSEU */ 0xC50C, /* LV # Lo HANGUL SYLLABLE SSYI */ 0xC528, /* LV # Lo HANGUL SYLLABLE SSI */ 0xC544, /* LV # Lo HANGUL SYLLABLE A */ 0xC560, /* LV # Lo HANGUL SYLLABLE AE */ 0xC57C, /* LV # Lo HANGUL SYLLABLE YA */ 0xC598, /* LV # Lo HANGUL SYLLABLE YAE */ 0xC5B4, /* LV # Lo HANGUL SYLLABLE EO */ 0xC5D0, /* LV # Lo HANGUL SYLLABLE E */ 0xC5EC, /* LV # Lo HANGUL SYLLABLE YEO */ 0xC608, /* LV # Lo HANGUL SYLLABLE YE */ 0xC624, /* LV # Lo HANGUL SYLLABLE O */ 0xC640, /* LV # Lo HANGUL SYLLABLE WA */ 0xC65C, /* LV # Lo HANGUL SYLLABLE WAE */ 0xC678, /* LV # Lo HANGUL SYLLABLE OE */ 0xC694, /* LV # Lo HANGUL SYLLABLE YO */ 0xC6B0, /* LV # Lo HANGUL SYLLABLE U */ 0xC6CC, /* LV # Lo HANGUL SYLLABLE WEO */ 0xC6E8, /* LV # Lo HANGUL SYLLABLE WE */ 0xC704, /* LV # Lo HANGUL SYLLABLE WI */ 0xC720, /* LV # Lo HANGUL SYLLABLE YU */ 0xC73C, /* LV # Lo HANGUL SYLLABLE EU */ 0xC758, /* LV # Lo HANGUL SYLLABLE YI */ 0xC774, /* LV # Lo HANGUL SYLLABLE I */ 0xC790, /* LV # Lo HANGUL SYLLABLE JA */ 0xC7AC, /* LV # Lo HANGUL SYLLABLE JAE */ 0xC7C8, /* LV # Lo HANGUL SYLLABLE JYA */ 0xC7E4, /* LV # Lo HANGUL SYLLABLE JYAE */ 0xC800, /* LV # Lo HANGUL SYLLABLE JEO */ 0xC81C, /* LV # Lo HANGUL SYLLABLE JE */ 0xC838, /* LV # Lo HANGUL SYLLABLE JYEO */ 0xC854, /* LV # Lo HANGUL SYLLABLE JYE */ 0xC870, /* LV # Lo HANGUL SYLLABLE JO */ 0xC88C, /* LV # Lo HANGUL SYLLABLE JWA */ 0xC8A8, /* LV # Lo HANGUL SYLLABLE JWAE */ 0xC8C4, /* LV # Lo HANGUL SYLLABLE JOE */ 0xC8E0, /* LV # Lo HANGUL SYLLABLE JYO */ 0xC8FC, /* LV # Lo HANGUL SYLLABLE JU */ 0xC918, /* LV # Lo HANGUL SYLLABLE JWEO */ 0xC934, /* LV # Lo HANGUL SYLLABLE JWE */ 0xC950, /* LV # Lo HANGUL SYLLABLE JWI */ 0xC96C, /* LV # Lo HANGUL SYLLABLE JYU */ 0xC988, /* LV # Lo HANGUL SYLLABLE JEU */ 0xC9A4, /* LV # Lo HANGUL SYLLABLE JYI */ 0xC9C0, /* LV # Lo HANGUL SYLLABLE JI */ 0xC9DC, /* LV # Lo HANGUL SYLLABLE JJA */ 0xC9F8, /* LV # Lo HANGUL SYLLABLE JJAE */ 0xCA14, /* LV # Lo HANGUL SYLLABLE JJYA */ 0xCA30, /* LV # Lo HANGUL SYLLABLE JJYAE */ 0xCA4C, /* LV # Lo HANGUL SYLLABLE JJEO */ 0xCA68, /* LV # Lo HANGUL SYLLABLE JJE */ 0xCA84, /* LV # Lo HANGUL SYLLABLE JJYEO */ 0xCAA0, /* LV # Lo HANGUL SYLLABLE JJYE */ 0xCABC, /* LV # Lo HANGUL SYLLABLE JJO */ 0xCAD8, /* LV # Lo HANGUL SYLLABLE JJWA */ 0xCAF4, /* LV # Lo HANGUL SYLLABLE JJWAE */ 0xCB10, /* LV # Lo HANGUL SYLLABLE JJOE */ 0xCB2C, /* LV # Lo HANGUL SYLLABLE JJYO */ 0xCB48, /* LV # Lo HANGUL SYLLABLE JJU */ 0xCB64, /* LV # Lo HANGUL SYLLABLE JJWEO */ 0xCB80, /* LV # Lo HANGUL SYLLABLE JJWE */ 0xCB9C, /* LV # Lo HANGUL SYLLABLE JJWI */ 0xCBB8, /* LV # Lo HANGUL SYLLABLE JJYU */ 0xCBD4, /* LV # Lo HANGUL SYLLABLE JJEU */ 0xCBF0, /* LV # Lo HANGUL SYLLABLE JJYI */ 0xCC0C, /* LV # Lo HANGUL SYLLABLE JJI */ 0xCC28, /* LV # Lo HANGUL SYLLABLE CA */ 0xCC44, /* LV # Lo HANGUL SYLLABLE CAE */ 0xCC60, /* LV # Lo HANGUL SYLLABLE CYA */ 0xCC7C, /* LV # Lo HANGUL SYLLABLE CYAE */ 0xCC98, /* LV # Lo HANGUL SYLLABLE CEO */ 0xCCB4, /* LV # Lo HANGUL SYLLABLE CE */ 0xCCD0, /* LV # Lo HANGUL SYLLABLE CYEO */ 0xCCEC, /* LV # Lo HANGUL SYLLABLE CYE */ 0xCD08, /* LV # Lo HANGUL SYLLABLE CO */ 0xCD24, /* LV # Lo HANGUL SYLLABLE CWA */ 0xCD40, /* LV # Lo HANGUL SYLLABLE CWAE */ 0xCD5C, /* LV # Lo HANGUL SYLLABLE COE */ 0xCD78, /* LV # Lo HANGUL SYLLABLE CYO */ 0xCD94, /* LV # Lo HANGUL SYLLABLE CU */ 0xCDB0, /* LV # Lo HANGUL SYLLABLE CWEO */ 0xCDCC, /* LV # Lo HANGUL SYLLABLE CWE */ 0xCDE8, /* LV # Lo HANGUL SYLLABLE CWI */ 0xCE04, /* LV # Lo HANGUL SYLLABLE CYU */ 0xCE20, /* LV # Lo HANGUL SYLLABLE CEU */ 0xCE3C, /* LV # Lo HANGUL SYLLABLE CYI */ 0xCE58, /* LV # Lo HANGUL SYLLABLE CI */ 0xCE74, /* LV # Lo HANGUL SYLLABLE KA */ 0xCE90, /* LV # Lo HANGUL SYLLABLE KAE */ 0xCEAC, /* LV # Lo HANGUL SYLLABLE KYA */ 0xCEC8, /* LV # Lo HANGUL SYLLABLE KYAE */ 0xCEE4, /* LV # Lo HANGUL SYLLABLE KEO */ 0xCF00, /* LV # Lo HANGUL SYLLABLE KE */ 0xCF1C, /* LV # Lo HANGUL SYLLABLE KYEO */ 0xCF38, /* LV # Lo HANGUL SYLLABLE KYE */ 0xCF54, /* LV # Lo HANGUL SYLLABLE KO */ 0xCF70, /* LV # Lo HANGUL SYLLABLE KWA */ 0xCF8C, /* LV # Lo HANGUL SYLLABLE KWAE */ 0xCFA8, /* LV # Lo HANGUL SYLLABLE KOE */ 0xCFC4, /* LV # Lo HANGUL SYLLABLE KYO */ 0xCFE0, /* LV # Lo HANGUL SYLLABLE KU */ 0xCFFC, /* LV # Lo HANGUL SYLLABLE KWEO */ 0xD018, /* LV # Lo HANGUL SYLLABLE KWE */ 0xD034, /* LV # Lo HANGUL SYLLABLE KWI */ 0xD050, /* LV # Lo HANGUL SYLLABLE KYU */ 0xD06C, /* LV # Lo HANGUL SYLLABLE KEU */ 0xD088, /* LV # Lo HANGUL SYLLABLE KYI */ 0xD0A4, /* LV # Lo HANGUL SYLLABLE KI */ 0xD0C0, /* LV # Lo HANGUL SYLLABLE TA */ 0xD0DC, /* LV # Lo HANGUL SYLLABLE TAE */ 0xD0F8, /* LV # Lo HANGUL SYLLABLE TYA */ 0xD114, /* LV # Lo HANGUL SYLLABLE TYAE */ 0xD130, /* LV # Lo HANGUL SYLLABLE TEO */ 0xD14C, /* LV # Lo HANGUL SYLLABLE TE */ 0xD168, /* LV # Lo HANGUL SYLLABLE TYEO */ 0xD184, /* LV # Lo HANGUL SYLLABLE TYE */ 0xD1A0, /* LV # Lo HANGUL SYLLABLE TO */ 0xD1BC, /* LV # Lo HANGUL SYLLABLE TWA */ 0xD1D8, /* LV # Lo HANGUL SYLLABLE TWAE */ 0xD1F4, /* LV # Lo HANGUL SYLLABLE TOE */ 0xD210, /* LV # Lo HANGUL SYLLABLE TYO */ 0xD22C, /* LV # Lo HANGUL SYLLABLE TU */ 0xD248, /* LV # Lo HANGUL SYLLABLE TWEO */ 0xD264, /* LV # Lo HANGUL SYLLABLE TWE */ 0xD280, /* LV # Lo HANGUL SYLLABLE TWI */ 0xD29C, /* LV # Lo HANGUL SYLLABLE TYU */ 0xD2B8, /* LV # Lo HANGUL SYLLABLE TEU */ 0xD2D4, /* LV # Lo HANGUL SYLLABLE TYI */ 0xD2F0, /* LV # Lo HANGUL SYLLABLE TI */ 0xD30C, /* LV # Lo HANGUL SYLLABLE PA */ 0xD328, /* LV # Lo HANGUL SYLLABLE PAE */ 0xD344, /* LV # Lo HANGUL SYLLABLE PYA */ 0xD360, /* LV # Lo HANGUL SYLLABLE PYAE */ 0xD37C, /* LV # Lo HANGUL SYLLABLE PEO */ 0xD398, /* LV # Lo HANGUL SYLLABLE PE */ 0xD3B4, /* LV # Lo HANGUL SYLLABLE PYEO */ 0xD3D0, /* LV # Lo HANGUL SYLLABLE PYE */ 0xD3EC, /* LV # Lo HANGUL SYLLABLE PO */ 0xD408, /* LV # Lo HANGUL SYLLABLE PWA */ 0xD424, /* LV # Lo HANGUL SYLLABLE PWAE */ 0xD440, /* LV # Lo HANGUL SYLLABLE POE */ 0xD45C, /* LV # Lo HANGUL SYLLABLE PYO */ 0xD478, /* LV # Lo HANGUL SYLLABLE PU */ 0xD494, /* LV # Lo HANGUL SYLLABLE PWEO */ 0xD4B0, /* LV # Lo HANGUL SYLLABLE PWE */ 0xD4CC, /* LV # Lo HANGUL SYLLABLE PWI */ 0xD4E8, /* LV # Lo HANGUL SYLLABLE PYU */ 0xD504, /* LV # Lo HANGUL SYLLABLE PEU */ 0xD520, /* LV # Lo HANGUL SYLLABLE PYI */ 0xD53C, /* LV # Lo HANGUL SYLLABLE PI */ 0xD558, /* LV # Lo HANGUL SYLLABLE HA */ 0xD574, /* LV # Lo HANGUL SYLLABLE HAE */ 0xD590, /* LV # Lo HANGUL SYLLABLE HYA */ 0xD5AC, /* LV # Lo HANGUL SYLLABLE HYAE */ 0xD5C8, /* LV # Lo HANGUL SYLLABLE HEO */ 0xD5E4, /* LV # Lo HANGUL SYLLABLE HE */ 0xD600, /* LV # Lo HANGUL SYLLABLE HYEO */ 0xD61C, /* LV # Lo HANGUL SYLLABLE HYE */ 0xD638, /* LV # Lo HANGUL SYLLABLE HO */ 0xD654, /* LV # Lo HANGUL SYLLABLE HWA */ 0xD670, /* LV # Lo HANGUL SYLLABLE HWAE */ 0xD68C, /* LV # Lo HANGUL SYLLABLE HOE */ 0xD6A8, /* LV # Lo HANGUL SYLLABLE HYO */ 0xD6C4, /* LV # Lo HANGUL SYLLABLE HU */ 0xD6E0, /* LV # Lo HANGUL SYLLABLE HWEO */ 0xD6FC, /* LV # Lo HANGUL SYLLABLE HWE */ 0xD718, /* LV # Lo HANGUL SYLLABLE HWI */ 0xD734, /* LV # Lo HANGUL SYLLABLE HYU */ 0xD750, /* LV # Lo HANGUL SYLLABLE HEU */ 0xD76C, /* LV # Lo HANGUL SYLLABLE HYI */ 0xD788, /* LV # Lo HANGUL SYLLABLE HI */ 0 }; static const uint32_t pr29_13_2[] = { 0x11A8, 0x11A9, 0x11AA, 0x11AB, 0x11AC, 0x11AD, 0x11AE, 0x11AF, 0x11B0, 0x11B1, 0x11B2, 0x11B3, 0x11B4, 0x11B5, 0x11B6, 0x11B7, 0x11B8, 0x11B9, 0x11BA, 0x11BB, 0x11BC, 0x11BD, 0x11BE, 0x11BF, 0x11C0, 0x11C1, 0x11C2, 0 }; typedef struct { const uint32_t *first; const uint32_t *last; } Pr29; static const Pr29 pr29[] = { {&pr29_1_1[0], &pr29_1_2[0]}, {&pr29_2_1[0], &pr29_2_2[0]}, {&pr29_3_1[0], &pr29_3_2[0]}, {&pr29_4_1[0], &pr29_4_2[0]}, {&pr29_5_1[0], &pr29_5_2[0]}, {&pr29_6_1[0], &pr29_6_2[0]}, {&pr29_7_1[0], &pr29_7_2[0]}, {&pr29_8_1[0], &pr29_8_2[0]}, {&pr29_9_1[0], &pr29_9_2[0]}, {&pr29_10_1[0], &pr29_10_2[0]}, {&pr29_11_1[0], &pr29_11_2[0]}, {&pr29_12_1[0], &pr29_12_2[0]}, {&pr29_13_1[0], &pr29_13_2[0]}, {NULL, NULL} }; static size_t first_column (uint32_t c) { size_t i, j; for (i = 0; pr29[i].first; i++) for (j = 0; pr29[i].first[j]; j++) if (c == pr29[i].first[j]) return i + 1; return 0; } static int in_last_column_row (uint32_t c, size_t row) { size_t i; for (i = 0; pr29[row - 1].last[i]; i++) if (c == pr29[row - 1].last[i]) return 1; return 0; } static size_t combinationclass (uint32_t c) { size_t i; for (i = 0; nzcc[i]; i++) if (c == nzcc[i]) return i + 1; return 0; } /** * pr29_4: * @in: input array with unicode code points. * @len: length of input array with unicode code points. * * Check the input to see if it may be normalized into different * strings by different NFKC implementations, due to an anomaly in the * NFKC specifications. * * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, * and %PR29_PROBLEM if the input sequence is a "problem sequence" * (i.e., may be normalized into different strings by different * implementations). **/ int pr29_4 (const uint32_t * in, size_t len) { size_t i, j, k, row; /* * The problem sequence are of the form: * * first_character intervening_character+ last_character * * where the first_character and last_character come from the same * row in the following table, and there is at least one * intervening_character with non-zero Canonical Combining * Class. (The '+' above means one or more occurrences.) * */ for (i = 0; i < len; i++) if ((row = first_column (in[i])) > 0) for (j = i + 1; j < len; j++) if (combinationclass (in[j])) for (k = j + 1; k < len; k++) if (in_last_column_row (in[k], row)) return PR29_PROBLEM; return PR29_SUCCESS; } /** * pr29_4z: * @in: zero terminated array of Unicode code points. * * Check the input to see if it may be normalized into different * strings by different NFKC implementations, due to an anomaly in the * NFKC specifications. * * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, * and %PR29_PROBLEM if the input sequence is a "problem sequence" * (i.e., may be normalized into different strings by different * implementations). **/ int pr29_4z (const uint32_t * in) { size_t len; for (len = 0; in[len]; len++) ; return pr29_4 (in, len); } /** * pr29_8z: * @in: zero terminated input UTF-8 string. * * Check the input to see if it may be normalized into different * strings by different NFKC implementations, due to an anomaly in the * NFKC specifications. * * Return value: Returns the #Pr29_rc value %PR29_SUCCESS on success, * and %PR29_PROBLEM if the input sequence is a "problem sequence" * (i.e., may be normalized into different strings by different * implementations), or %PR29_STRINGPREP_ERROR if there was a * problem converting the string from UTF-8 to UCS-4. **/ int pr29_8z (const char *in) { uint32_t *p; int rc; p = stringprep_utf8_to_ucs4 (in, -1, NULL); if (!p) return PR29_STRINGPREP_ERROR; rc = pr29_4z (p); free (p); return rc; } /** * Pr29_rc: * @PR29_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @PR29_PROBLEM: A problem sequence was encountered. * @PR29_STRINGPREP_ERROR: The character set conversion failed (only * for pr29_8z()). * * Enumerated return codes for pr29_4(), pr29_4z(), pr29_8z(). The * value 0 is guaranteed to always correspond to success. */ libidn-1.28/lib/pr29.h0000644000000000000000000000411312153706572011316 00000000000000/* pr29.h --- Detect strings which are non-idempotent under NFKC. Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef PR29_H # define PR29_H # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # ifdef __cplusplus extern "C" { # endif /* Get size_t. */ # include /* Get uint32_t. */ # include /* Error codes. */ typedef enum { PR29_SUCCESS = 0, PR29_PROBLEM = 1, /* String is a problem sequence. */ PR29_STRINGPREP_ERROR = 2 /* Charset conversion failed (p29_8*). */ } Pr29_rc; extern IDNAPI const char *pr29_strerror (Pr29_rc rc); extern IDNAPI int pr29_4 (const uint32_t * in, size_t len); extern IDNAPI int pr29_4z (const uint32_t * in); extern IDNAPI int pr29_8z (const char *in); # ifdef __cplusplus } # endif #endif /* PR29_H */ libidn-1.28/lib/stringprep.c0000644000000000000000000005274612153706572012731 00000000000000/* stringprep.c --- Core stringprep implementation. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include #include #include "stringprep.h" static ssize_t stringprep_find_character_in_table (uint32_t ucs4, const Stringprep_table_element * table) { ssize_t i; /* This is where typical uses of Libidn spends very close to all CPU time and causes most cache misses. One could easily do a binary search instead. Before rewriting this, I want hard evidence this slowness is at all relevant in typical applications. (I don't dispute optimization may improve matters significantly, I'm mostly interested in having someone give real-world benchmark on the impact of libidn.) */ for (i = 0; table[i].start || table[i].end; i++) if (ucs4 >= table[i].start && ucs4 <= (table[i].end ? table[i].end : table[i].start)) return i; return -1; } static ssize_t stringprep_find_string_in_table (uint32_t * ucs4, size_t ucs4len, size_t * tablepos, const Stringprep_table_element * table) { size_t j; ssize_t pos; for (j = 0; j < ucs4len; j++) if ((pos = stringprep_find_character_in_table (ucs4[j], table)) != -1) { if (tablepos) *tablepos = pos; return j; } return -1; } static int stringprep_apply_table_to_string (uint32_t * ucs4, size_t * ucs4len, size_t maxucs4len, const Stringprep_table_element * table) { ssize_t pos; size_t i, maplen; while ((pos = stringprep_find_string_in_table (ucs4, *ucs4len, &i, table)) != -1) { for (maplen = STRINGPREP_MAX_MAP_CHARS; maplen > 0 && table[i].map[maplen - 1] == 0; maplen--) ; if (*ucs4len - 1 + maplen >= maxucs4len) return STRINGPREP_TOO_SMALL_BUFFER; memmove (&ucs4[pos + maplen], &ucs4[pos + 1], sizeof (uint32_t) * (*ucs4len - pos - 1)); memcpy (&ucs4[pos], table[i].map, sizeof (uint32_t) * maplen); *ucs4len = *ucs4len - 1 + maplen; } return STRINGPREP_OK; } #define INVERTED(x) ((x) & ((~0UL) >> 1)) #define UNAPPLICAPLEFLAGS(flags, profileflags) \ ((!INVERTED(profileflags) && !(profileflags & flags) && profileflags) || \ ( INVERTED(profileflags) && (profileflags & flags))) /** * stringprep_4i: * @ucs4: input/output array with string to prepare. * @len: on input, length of input array with Unicode code points, * on exit, length of output array with Unicode code points. * @maxucs4len: maximum length of input/output array. * @flags: a #Stringprep_profile_flags value, or 0. * @profile: pointer to #Stringprep_profile to use. * * Prepare the input UCS-4 string according to the stringprep profile, * and write back the result to the input string. * * The input is not required to be zero terminated (@ucs4[@len] = 0). * The output will not be zero terminated unless @ucs4[@len] = 0. * Instead, see stringprep_4zi() if your input is zero terminated or * if you want the output to be. * * Since the stringprep operation can expand the string, @maxucs4len * indicate how large the buffer holding the string is. This function * will not read or write to code points outside that size. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile contain the #Stringprep_profile instructions to * perform. Your application can define new profiles, possibly * re-using the generic stringprep tables that always will be part of * the library, or use one of the currently supported profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an * #Stringprep_rc error code. **/ int stringprep_4i (uint32_t * ucs4, size_t * len, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile) { size_t i, j; ssize_t k; size_t ucs4len = *len; int rc; for (i = 0; profile[i].operation; i++) { switch (profile[i].operation) { case STRINGPREP_NFKC: { uint32_t *q = 0; if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) break; if (flags & STRINGPREP_NO_NFKC && !profile[i].flags) /* Profile requires NFKC, but callee asked for no NFKC. */ return STRINGPREP_FLAG_ERROR; q = stringprep_ucs4_nfkc_normalize (ucs4, ucs4len); if (!q) return STRINGPREP_NFKC_FAILED; for (ucs4len = 0; q[ucs4len]; ucs4len++) ; if (ucs4len >= maxucs4len) { free (q); return STRINGPREP_TOO_SMALL_BUFFER; } memcpy (ucs4, q, ucs4len * sizeof (ucs4[0])); free (q); } break; case STRINGPREP_PROHIBIT_TABLE: k = stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[i].table); if (k != -1) return STRINGPREP_CONTAINS_PROHIBITED; break; case STRINGPREP_UNASSIGNED_TABLE: if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) break; if (flags & STRINGPREP_NO_UNASSIGNED) { k = stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[i].table); if (k != -1) return STRINGPREP_CONTAINS_UNASSIGNED; } break; case STRINGPREP_MAP_TABLE: if (UNAPPLICAPLEFLAGS (flags, profile[i].flags)) break; rc = stringprep_apply_table_to_string (ucs4, &ucs4len, maxucs4len, profile[i].table); if (rc != STRINGPREP_OK) return rc; break; case STRINGPREP_BIDI_PROHIBIT_TABLE: case STRINGPREP_BIDI_RAL_TABLE: case STRINGPREP_BIDI_L_TABLE: break; case STRINGPREP_BIDI: { int done_prohibited = 0; int done_ral = 0; int done_l = 0; size_t contains_ral = SIZE_MAX; size_t contains_l = SIZE_MAX; for (j = 0; profile[j].operation; j++) if (profile[j].operation == STRINGPREP_BIDI_PROHIBIT_TABLE) { done_prohibited = 1; k = stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[j].table); if (k != -1) return STRINGPREP_BIDI_CONTAINS_PROHIBITED; } else if (profile[j].operation == STRINGPREP_BIDI_RAL_TABLE) { done_ral = 1; if (stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[j].table) != -1) contains_ral = j; } else if (profile[j].operation == STRINGPREP_BIDI_L_TABLE) { done_l = 1; if (stringprep_find_string_in_table (ucs4, ucs4len, NULL, profile[j].table) != -1) contains_l = j; } if (!done_prohibited || !done_ral || !done_l) return STRINGPREP_PROFILE_ERROR; if (contains_ral != SIZE_MAX && contains_l != SIZE_MAX) return STRINGPREP_BIDI_BOTH_L_AND_RAL; if (contains_ral != SIZE_MAX) { if (!(stringprep_find_character_in_table (ucs4[0], profile[contains_ral].table) != -1 && stringprep_find_character_in_table (ucs4[ucs4len - 1], profile[contains_ral].table) != -1)) return STRINGPREP_BIDI_LEADTRAIL_NOT_RAL; } } break; default: return STRINGPREP_PROFILE_ERROR; break; } } *len = ucs4len; return STRINGPREP_OK; } static int stringprep_4zi_1 (uint32_t * ucs4, size_t ucs4len, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile) { int rc; rc = stringprep_4i (ucs4, &ucs4len, maxucs4len, flags, profile); if (rc != STRINGPREP_OK) return rc; if (ucs4len >= maxucs4len) return STRINGPREP_TOO_SMALL_BUFFER; ucs4[ucs4len] = 0; return STRINGPREP_OK; } /** * stringprep_4zi: * @ucs4: input/output array with zero terminated string to prepare. * @maxucs4len: maximum length of input/output array. * @flags: a #Stringprep_profile_flags value, or 0. * @profile: pointer to #Stringprep_profile to use. * * Prepare the input zero terminated UCS-4 string according to the * stringprep profile, and write back the result to the input string. * * Since the stringprep operation can expand the string, @maxucs4len * indicate how large the buffer holding the string is. This function * will not read or write to code points outside that size. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile contain the #Stringprep_profile instructions to * perform. Your application can define new profiles, possibly * re-using the generic stringprep tables that always will be part of * the library, or use one of the currently supported profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an * #Stringprep_rc error code. **/ int stringprep_4zi (uint32_t * ucs4, size_t maxucs4len, Stringprep_profile_flags flags, const Stringprep_profile * profile) { size_t ucs4len; for (ucs4len = 0; ucs4len < maxucs4len && ucs4[ucs4len] != 0; ucs4len++) ; return stringprep_4zi_1 (ucs4, ucs4len, maxucs4len, flags, profile); } /** * stringprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * @flags: a #Stringprep_profile_flags value, or 0. * @profile: pointer to #Stringprep_profile to use. * * Prepare the input zero terminated UTF-8 string according to the * stringprep profile, and write back the result to the input string. * * Note that you must convert strings entered in the systems locale * into UTF-8 before using this function, see * stringprep_locale_to_utf8(). * * Since the stringprep operation can expand the string, @maxlen * indicate how large the buffer holding the string is. This function * will not read or write to characters outside that size. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile contain the #Stringprep_profile instructions to * perform. Your application can define new profiles, possibly * re-using the generic stringprep tables that always will be part of * the library, or use one of the currently supported profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an error code. **/ int stringprep (char *in, size_t maxlen, Stringprep_profile_flags flags, const Stringprep_profile * profile) { int rc; char *utf8 = NULL; uint32_t *ucs4 = NULL; size_t ucs4len, maxucs4len, adducs4len = 50; do { uint32_t *newp; free (ucs4); ucs4 = stringprep_utf8_to_ucs4 (in, -1, &ucs4len); maxucs4len = ucs4len + adducs4len; newp = realloc (ucs4, maxucs4len * sizeof (uint32_t)); if (!newp) { free (ucs4); return STRINGPREP_MALLOC_ERROR; } ucs4 = newp; rc = stringprep_4i (ucs4, &ucs4len, maxucs4len, flags, profile); adducs4len += 50; } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc != STRINGPREP_OK) { free (ucs4); return rc; } utf8 = stringprep_ucs4_to_utf8 (ucs4, ucs4len, 0, 0); free (ucs4); if (!utf8) return STRINGPREP_MALLOC_ERROR; if (strlen (utf8) >= maxlen) { free (utf8); return STRINGPREP_TOO_SMALL_BUFFER; } strcpy (in, utf8); /* flawfinder: ignore */ free (utf8); return STRINGPREP_OK; } /** * stringprep_profile: * @in: input array with UTF-8 string to prepare. * @out: output variable with pointer to newly allocate string. * @profile: name of stringprep profile to use. * @flags: a #Stringprep_profile_flags value, or 0. * * Prepare the input zero terminated UTF-8 string according to the * stringprep profile, and return the result in a newly allocated * variable. * * Note that you must convert strings entered in the systems locale * into UTF-8 before using this function, see * stringprep_locale_to_utf8(). * * The output @out variable must be deallocated by the caller. * * The @flags are one of #Stringprep_profile_flags values, or 0. * * The @profile specifies the name of the stringprep profile to use. * It must be one of the internally supported stringprep profiles. * * Return value: Returns %STRINGPREP_OK iff successful, or an error code. **/ int stringprep_profile (const char *in, char **out, const char *profile, Stringprep_profile_flags flags) { const Stringprep_profiles *p; char *str = NULL; size_t len = strlen (in) + 1; int rc; for (p = &stringprep_profiles[0]; p->name; p++) if (strcmp (p->name, profile) == 0) break; if (!p || !p->name || !p->tables) return STRINGPREP_UNKNOWN_PROFILE; do { free (str); str = (char *) malloc (len); if (str == NULL) return STRINGPREP_MALLOC_ERROR; strcpy (str, in); rc = stringprep (str, len, flags, p->tables); len += 50; } while (rc == STRINGPREP_TOO_SMALL_BUFFER); if (rc == STRINGPREP_OK) *out = str; else free (str); return rc; } /*! \mainpage GNU Internationalized Domain Name Library * * \section intro Introduction * * GNU Libidn is an implementation of the Stringprep, Punycode and IDNA * specifications defined by the IETF Internationalized Domain Names * (IDN) working group, used for internationalized domain names. The * package is available under the GNU Lesser General Public License. * * The library contains a generic Stringprep implementation that does * Unicode 3.2 NFKC normalization, mapping and prohibitation of * characters, and bidirectional character handling. Profiles for * Nameprep, iSCSI, SASL and XMPP are included. Punycode and ASCII * Compatible Encoding (ACE) via IDNA are supported. A mechanism to * define Top-Level Domain (TLD) specific validation tables, and to * compare strings against those tables, is included. Default tables * for some TLDs are also included. * * The Stringprep API consists of two main functions, one for * converting data from the system's native representation into UTF-8, * and one function to perform the Stringprep processing. Adding a * new Stringprep profile for your application within the API is * straightforward. The Punycode API consists of one encoding * function and one decoding function. The IDNA API consists of the * ToASCII and ToUnicode functions, as well as an high-level interface * for converting entire domain names to and from the ACE encoded * form. The TLD API consists of one set of functions to extract the * TLD name from a domain string, one set of functions to locate the * proper TLD table to use based on the TLD name, and core functions * to validate a string against a TLD table, and some utility wrappers * to perform all the steps in one call. * * The library is used by, e.g., GNU SASL and Shishi to process user * names and passwords. Libidn can be built into GNU Libc to enable a * new system-wide getaddrinfo() flag for IDN processing. * * Libidn is developed for the GNU/Linux system, but runs on over 20 Unix * platforms (including Solaris, IRIX, AIX, and Tru64) and Windows. * Libidn is written in C and (parts of) the API is accessible from C, * C++, Emacs Lisp, Python and Java. * * The project web page:\n * http://www.gnu.org/software/libidn/ * * The software archive:\n * ftp://alpha.gnu.org/pub/gnu/libidn/ * * For more information see:\n * http://www.ietf.org/html.charters/idn-charter.html\n * http://www.ietf.org/rfc/rfc3454.txt (stringprep specification)\n * http://www.ietf.org/rfc/rfc3490.txt (idna specification)\n * http://www.ietf.org/rfc/rfc3491.txt (nameprep specification)\n * http://www.ietf.org/rfc/rfc3492.txt (punycode specification)\n * http://www.ietf.org/internet-drafts/draft-ietf-ips-iscsi-string-prep-04.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-krb-wg-utf8-profile-01.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-sasl-anon-00.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-sasl-saslprep-00.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-nodeprep-01.txt\n * http://www.ietf.org/internet-drafts/draft-ietf-xmpp-resourceprep-01.txt\n * * Further information and paid contract development:\n * Simon Josefsson * * \section examples Examples * * \include example.c * \include example3.c * \include example4.c * \include example5.c */ /** * STRINGPREP_VERSION * * String defined via CPP denoting the header file version number. * Used together with stringprep_check_version() to verify header file * and run-time library consistency. */ /** * STRINGPREP_MAX_MAP_CHARS * * Maximum number of code points that can replace a single code point, * during stringprep mapping. */ /** * Stringprep_rc: * @STRINGPREP_OK: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * @STRINGPREP_CONTAINS_UNASSIGNED: String contain unassigned Unicode * code points, which is forbidden by the profile. * @STRINGPREP_CONTAINS_PROHIBITED: String contain code points * prohibited by the profile. * @STRINGPREP_BIDI_BOTH_L_AND_RAL: String contain code points with * conflicting bidirection category. * @STRINGPREP_BIDI_LEADTRAIL_NOT_RAL: Leading and trailing character * in string not of proper bidirectional category. * @STRINGPREP_BIDI_CONTAINS_PROHIBITED: Contains prohibited code * points detected by bidirectional code. * @STRINGPREP_TOO_SMALL_BUFFER: Buffer handed to function was too * small. This usually indicate a problem in the calling * application. * @STRINGPREP_PROFILE_ERROR: The stringprep profile was inconsistent. * This usually indicate an internal error in the library. * @STRINGPREP_FLAG_ERROR: The supplied flag conflicted with profile. * This usually indicate a problem in the calling application. * @STRINGPREP_UNKNOWN_PROFILE: The supplied profile name was not * known to the library. * @STRINGPREP_NFKC_FAILED: The Unicode NFKC operation failed. This * usually indicate an internal error in the library. * @STRINGPREP_MALLOC_ERROR: The malloc() was out of memory. This is * usually a fatal error. * * Enumerated return codes of stringprep(), stringprep_profile() * functions (and macros using those functions). The value 0 is * guaranteed to always correspond to success. */ /** * Stringprep_profile_flags: * @STRINGPREP_NO_NFKC: Disable the NFKC normalization, as well as * selecting the non-NFKC case folding tables. Usually the profile * specifies BIDI and NFKC settings, and applications should not * override it unless in special situations. * @STRINGPREP_NO_BIDI: Disable the BIDI step. Usually the profile * specifies BIDI and NFKC settings, and applications should not * override it unless in special situations. * @STRINGPREP_NO_UNASSIGNED: Make the library return with an error if * string contains unassigned characters according to profile. * * Stringprep profile flags. */ /** * Stringprep_profile_steps: * @STRINGPREP_NFKC: The NFKC step. * @STRINGPREP_BIDI: The BIDI step. * @STRINGPREP_MAP_TABLE: The MAP step. * @STRINGPREP_UNASSIGNED_TABLE: The Unassigned step. * @STRINGPREP_PROHIBIT_TABLE: The Prohibited step. * @STRINGPREP_BIDI_PROHIBIT_TABLE: The BIDI-Prohibited step. * @STRINGPREP_BIDI_RAL_TABLE: The BIDI-RAL step. * @STRINGPREP_BIDI_L_TABLE: The BIDI-L step. * * Various steps in the stringprep algorithm. You really want to * study the source code to understand this one. Only useful if you * want to add another profile. */ /** * stringprep_nameprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the nameprep profile. * The AllowUnassigned flag is true, use * stringprep_nameprep_no_unassigned() if you want a false * AllowUnassigned. Returns 0 iff successful, or an error code. **/ /** * stringprep_nameprep_no_unassigned: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the nameprep profile. * The AllowUnassigned flag is false, use stringprep_nameprep() for * true AllowUnassigned. Returns 0 iff successful, or an error code. **/ /** * stringprep_iscsi: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft iSCSI * stringprep profile. Returns 0 iff successful, or an error code. **/ /** * stringprep_plain: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft SASL * ANONYMOUS profile. Returns 0 iff successful, or an error code. **/ /** * stringprep_xmpp_nodeprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft XMPP node * identifier profile. Returns 0 iff successful, or an error code. **/ /** * stringprep_xmpp_resourceprep: * @in: input/ouput array with string to prepare. * @maxlen: maximum length of input/output array. * * Prepare the input UTF-8 string according to the draft XMPP resource * identifier profile. Returns 0 iff successful, or an error code. **/ libidn-1.28/lib/idn-free.c0000644000000000000000000000327012153706572012211 00000000000000/* idn-free.h --- Invoke the free function to release memory Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #include /* Get specification. */ #include "idn-free.h" /* Get free. */ #include /** * idn_free: * @ptr: memory region to deallocate, or %NULL. * * Deallocates memory region by calling free(). If @ptr is %NULL no * operation is performed. * * Normally applications de-allocate strings allocated by libidn by * calling free() directly. Under Windows, different parts of the * same application may use different heap memory, and then it is * important to deallocate memory allocated within the same module * that allocated it. This function makes that possible. **/ void idn_free (void *ptr) { free (ptr); } libidn-1.28/lib/idn-free.h0000644000000000000000000000465012153706572012221 00000000000000/* idn-free.h --- Invoke the free function to release memory Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef IDN_FREE_H # define IDN_FREE_H # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # ifdef __cplusplus extern "C" { # endif /* I don't recommend using this interface in general. Use `free'. * * I'm told Microsoft Windows may use one set of `malloc' and `free' * in a library, and another incompatible set in a statically compiled * application that link to the library, thus creating problems if the * application would invoke `free' on a pointer pointing to memory * allocated by the library. This motivated adding this function. * * The theory of isolating all memory allocations and de-allocations * within a code package (library) sounds good, to simplify hunting * down memory allocation related problems, but I'm not sure if it is * worth enough to motivate recommending this interface over calling * `free' directly, though. * * See the manual section 'Memory handling under Windows' for more * information. */ extern void IDNAPI idn_free (void *ptr); # ifdef __cplusplus } # endif #endif /* IDN_FREE_H */ libidn-1.28/lib/Makefile.am0000644000000000000000000000601712153706572012412 00000000000000## Process this file with automake to produce Makefile.in # Copyright (C) 2002-2013 Simon Josefsson. # Copyright (C) 2004, 2010-2013 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . EXTRA_DIST = gen-stringprep-tables.pl gen-unicode-tables.pl gen-tld-tables.pl AM_CPPFLAGS = -I$(srcdir)/gl -Igl -DLIBIDN_BUILDING AM_CPPFLAGS += -DLOCALEDIR=\"$(localedir)\" AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS) AM_CFLAGS += $(CFLAG_VISIBILITY) lib_LTLIBRARIES = libidn.la idn_int = idn-int.h BUILT_SOURCES = $(idn_int) gunibreak.h gunicomp.h gunidecomp.h rfc3454.c tlds.c DISTCLEANFILES = $(idn_int) include_HEADERS = stringprep.h idna.h punycode.h idn-free.h pr29.h if TLD include_HEADERS += tld.h endif nodist_include_HEADERS = $(idn_int) idn-int.h: if test -n "$(STDINT_H)"; then \ sed -e s/include_next/include/ gl/stdint.h > idn-int.h; \ else \ echo '#include ' > idn-int.h; \ fi libidn_la_SOURCES = libidn.map \ gunibreak.h gunicomp.h gunidecomp.h \ nfkc.c toutf8.c version.c \ stringprep.h stringprep.c rfc3454.c profiles.c \ punycode.h punycode.c \ idna.h idna.c \ pr29.h pr29.c \ idn-free.h idn-free.c \ strerror-idna.c strerror-pr29.c strerror-punycode.c \ strerror-stringprep.c strerror-tld.c if TLD libidn_la_SOURCES += tld.h tld.c tlds.c endif libidn_la_LIBADD = $(LTLIBICONV) $(LTLIBINTL) gl/libgnu.la libidn_la_LDFLAGS = \ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -no-undefined if HAVE_LD_VERSION_SCRIPT libidn_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libidn.map else libidn_la_LDFLAGS += -export-symbols-regex \ '^(idn|pr29_|punycode_|stringprep|tld_).*' endif if HAVE_LD_OUTPUT_DEF libidn_la_LDFLAGS += -Wl,--output-def,libidn-$(DLL_VERSION).def defexecdir = $(bindir) defexec_DATA = libidn-$(DLL_VERSION).def CLEANFILES = $(defexec_DATA) libidn-$(DLL_VERSION).def: libidn.la endif SPEC = $(top_srcdir)/doc/specifications #nfkc.c: gunibreak.h gunicomp.h gunidecomp.h #gunibreak.h gunicomp.h gunidecomp.h: gen-unicode-tables.pl $(SPEC)/UnicodeData-3.2.0.txt $(SPEC)/LineBreak-3.2.0.txt $(SPEC)/SpecialCasing-3.2.0.txt $(SPEC)/CaseFolding-3.2.0.txt $(SPEC)/CompositionExclusions-3.2.0.txt # $(PERL) $(srcdir)/gen-unicode-tables.pl -decomp 3.2 $(SPEC) rfc3454.c: gen-stringprep-tables.pl $(PERL) $(srcdir)/gen-stringprep-tables.pl $(SPEC)/rfc3454.txt tlds.c: gen-tld-tables.pl $(PERL) $(srcdir)/gen-tld-tables.pl $(top_srcdir)/doc/tld/*.tld > tlds.c libidn-1.28/lib/tld.h0000644000000000000000000001104412153706572011306 00000000000000/* tld.h --- Declarations for TLD restriction checking. Copyright (C) 2004-2013 Simon Josefsson. Copyright (C) 2003-2013 Free Software Foundation, Inc. Author: Thomas Jacob, Internet24.de This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifndef TLD_H # define TLD_H # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif # ifdef __cplusplus extern "C" { # endif /* Get size_t. */ # include /* Get uint32_t. */ # include /* Interval of valid code points in the TLD. */ struct Tld_table_element { uint32_t start; /* Start of range. */ uint32_t end; /* End of range, end == start if single. */ }; typedef struct Tld_table_element Tld_table_element; /* List valid code points in a TLD. */ struct Tld_table { const char *name; /* TLD name, e.g., "no". */ const char *version; /* Version string from TLD file. */ size_t nvalid; /* Number of entries in data. */ const Tld_table_element *valid; /* Sorted array of valid code points. */ }; typedef struct Tld_table Tld_table; /* Error codes. */ typedef enum { TLD_SUCCESS = 0, TLD_INVALID = 1, /* Invalid character found. */ TLD_NODATA = 2, /* Char, domain or inlen = 0. */ TLD_MALLOC_ERROR = 3, TLD_ICONV_ERROR = 4, TLD_NO_TLD = 5, /* Workaround typo in earlier versions. */ TLD_NOTLD = TLD_NO_TLD } Tld_rc; extern IDNAPI const char *tld_strerror (Tld_rc rc); /* Extract TLD, as ASCII string, of UCS4 domain name into "out". */ extern IDNAPI int tld_get_4 (const uint32_t * in, size_t inlen, char **out); extern IDNAPI int tld_get_4z (const uint32_t * in, char **out); extern IDNAPI int tld_get_z (const char *in, char **out); /* Return structure corresponding to the named TLD from specified * list of TLD tables, or return NULL if no matching TLD can be * found. */ extern IDNAPI const Tld_table *tld_get_table (const char *tld, const Tld_table ** tables); /* Return structure corresponding to the named TLD, first looking * thru overrides then thru built-in list, or return NULL if no * matching TLD can be found. */ extern IDNAPI const Tld_table * tld_default_table (const char *tld, const Tld_table ** overrides); /* Check NAMEPREPPED domain name for valid characters as defined by * the relevant registering body (plus [a-z0-9.-]). If error is * TLD_INVALID, set errpos to position of offending character. */ extern IDNAPI int tld_check_4t (const uint32_t * in, size_t inlen, size_t * errpos, const Tld_table * tld); extern IDNAPI int tld_check_4tz (const uint32_t * in, size_t * errpos, const Tld_table * tld); /* Utility interfaces that uses tld_get_4* to find TLD of string, then tld_default_table (with overrides) to find proper TLD table for the string, and then hands over to tld_check_4t*. */ extern IDNAPI int tld_check_4 (const uint32_t * in, size_t inlen, size_t * errpos, const Tld_table ** overrides); extern IDNAPI int tld_check_4z (const uint32_t * in, size_t * errpos, const Tld_table ** overrides); extern IDNAPI int tld_check_8z (const char *in, size_t * errpos, const Tld_table ** overrides); extern IDNAPI int tld_check_lz (const char *in, size_t * errpos, const Tld_table ** overrides); # ifdef __cplusplus } # endif #endif /* TLD_H */ libidn-1.28/lib/punycode.h0000644000000000000000000002255412153706572012361 00000000000000/* punycode.h --- Declarations for punycode functions. Copyright (C) 2002-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ /* * This file contains content derived from RFC 3492bis written by Adam * M. Costello. * * Disclaimer and license: Regarding this entire document or any * portion of it (including the pseudocode and C code), the author * makes no guarantees and is not responsible for any damage resulting * from its use. The author grants irrevocable permission to anyone * to use, modify, and distribute it in any way that does not diminish * the rights of anyone else to use, modify, and distribute it, * provided that redistributed derivative works do not contain * misleading author or version information. Derivative works need * not be licensed under similar terms. * * Copyright (C) The Internet Society (2003). All Rights Reserved. * * This document and translations of it may be copied and furnished to * others, and derivative works that comment on or otherwise explain it * or assist in its implementation may be prepared, copied, published * and distributed, in whole or in part, without restriction of any * kind, provided that the above copyright notice and this paragraph are * included on all such copies and derivative works. However, this * document itself may not be modified in any way, such as by removing * the copyright notice or references to the Internet Society or other * Internet organizations, except as needed for the purpose of * developing Internet standards in which case the procedures for * copyrights defined in the Internet Standards process must be * followed, or as required to translate it into languages other than * English. * * The limited permissions granted above are perpetual and will not be * revoked by the Internet Society or its successors or assigns. * * This document and the information contained herein is provided on an * "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING * TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef PUNYCODE_H # define PUNYCODE_H # ifndef IDNAPI # if defined LIBIDN_BUILDING && defined HAVE_VISIBILITY && HAVE_VISIBILITY # define IDNAPI __attribute__((__visibility__("default"))) # elif defined LIBIDN_BUILDING && defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllexport) # elif defined _MSC_VER && ! defined LIBIDN_STATIC # define IDNAPI __declspec(dllimport) # else # define IDNAPI # endif # endif #ifdef __cplusplus extern "C" { #endif #include /* size_t */ #include /* uint32_t */ enum punycode_status { punycode_success = 0, punycode_bad_input = 1, /* Input is invalid. */ punycode_big_output = 2, /* Output would exceed the space provided. */ punycode_overflow = 3 /* Wider integers needed to process input. */ }; typedef enum { PUNYCODE_SUCCESS = punycode_success, PUNYCODE_BAD_INPUT = punycode_bad_input, PUNYCODE_BIG_OUTPUT = punycode_big_output, PUNYCODE_OVERFLOW = punycode_overflow } Punycode_status; extern IDNAPI const char *punycode_strerror (Punycode_status rc); /* punycode_uint needs to be unsigned and needs to be */ /* at least 26 bits wide. */ typedef uint32_t punycode_uint; extern IDNAPI int punycode_encode (size_t input_length, const punycode_uint input[], const unsigned char case_flags[], size_t * output_length, char output[]); /* punycode_encode() converts a sequence of code points (presumed to be Unicode code points) to Punycode. Input arguments (to be supplied by the caller): input_length The number of code points in the input array and the number of flags in the case_flags array. input An array of code points. They are presumed to be Unicode code points, but that is not strictly REQUIRED. The array contains code points, not code units. UTF-16 uses code units D800 through DFFF to refer to code points 10000..10FFFF. The code points D800..DFFF do not occur in any valid Unicode string. The code points that can occur in Unicode strings (0..D7FF and E000..10FFFF) are also called Unicode scalar values. case_flags A null pointer or an array of boolean values parallel to the input array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase after being decoded (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are encoded literally, except that ASCII letters are forced to uppercase or lowercase according to the corresponding case flags. If case_flags is a null pointer then ASCII letters are left as they are, and other code points are treated as unflagged. Output arguments (to be filled in by the function): output An array of ASCII code points. It is *not* null-terminated; it will contain zeros if and only if the input contains zeros. (Of course the caller can leave room for a terminator and add one if needed.) Input/output arguments (to be supplied by the caller and overwritten by the function): output_length The caller passes in the maximum number of ASCII code points that it can receive. On successful return it will contain the number of ASCII code points actually output. Return value: Can be any of the punycode_status values defined above except punycode_bad_input. If not punycode_success, then output_size and output might contain garbage. */ extern IDNAPI int punycode_decode (size_t input_length, const char input[], size_t * output_length, punycode_uint output[], unsigned char case_flags[]); /* punycode_decode() converts Punycode to a sequence of code points (presumed to be Unicode code points). Input arguments (to be supplied by the caller): input_length The number of ASCII code points in the input array. input An array of ASCII code points (0..7F). Output arguments (to be filled in by the function): output An array of code points like the input argument of punycode_encode() (see above). case_flags A null pointer (if the flags are not needed by the caller) or an array of boolean values parallel to the output array. Nonzero (true, flagged) suggests that the corresponding Unicode character be forced to uppercase by the caller (if possible), and zero (false, unflagged) suggests that it be forced to lowercase (if possible). ASCII code points (0..7F) are output already in the proper case, but their flags will be set appropriately so that applying the flags would be harmless. Input/output arguments (to be supplied by the caller and overwritten by the function): output_length The caller passes in the maximum number of code points that it can receive into the output array (which is also the maximum number of flags that it can receive into the case_flags array, if case_flags is not a null pointer). On successful return it will contain the number of code points actually output (which is also the number of flags actually output, if case_flags is not a null pointer). The decoder will never need to output more code points than the number of ASCII code points in the input, because of the way the encoding is defined. The number of code points output cannot exceed the maximum possible value of a punycode_uint, even if the supplied output_length is greater than that. Return value: Can be any of the punycode_status values defined above. If not punycode_success, then output_length, output, and case_flags might contain garbage. */ #ifdef __cplusplus } #endif #endif /* PUNYCODE_H */ libidn-1.28/lib/gl/0000755000000000000000000000000012167253747011042 500000000000000libidn-1.28/lib/gl/stdint.in.h0000644000000000000000000004477712153706107013054 00000000000000/* Copyright (C) 2001-2002, 2004-2013 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* * ISO C 99 for platforms that lack it. * */ #ifndef _@GUARD_PREFIX@_STDINT_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* When including a system file that in turn includes , use the system , not our substitute. This avoids problems with (for example) VMS, whose includes . */ #define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* On Android (Bionic libc), includes this file before having defined 'time_t'. Therefore in this case avoid including other system header files; just include the system's . Ideally we should test __BIONIC__ here, but it is only defined after has been included; hence test __ANDROID__ instead. */ #if defined __ANDROID__ \ && defined _SYS_TYPES_H_ && !defined __need_size_t # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #else /* Get those types that are already defined in other system include files, so that we can "#define int8_t signed char" below without worrying about a later system include file containing a "typedef signed char int8_t;" that will get messed up by our macro. Our macros should all be consistent with the system versions, except for the "fast" types and macros, which we recommend against using in public interfaces due to compiler differences. */ #if @HAVE_STDINT_H@ # if defined __sgi && ! defined __c99 /* Bypass IRIX's if in C89 mode, since it merely annoys users with "This header file is to be used only for c99 mode compilations" diagnostics. */ # define __STDINT_H__ # endif /* Some pre-C++11 implementations need this. */ # ifdef __cplusplus # ifndef __STDC_CONSTANT_MACROS # define __STDC_CONSTANT_MACROS 1 # endif # ifndef __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS 1 # endif # endif /* Other systems may have an incomplete or buggy . Include it before , since any "#include " in would reinclude us, skipping our contents because _@GUARD_PREFIX@_STDINT_H is defined. The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDINT_H@ #endif #if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H #define _@GUARD_PREFIX@_STDINT_H /* defines some of the stdint.h types as well, on glibc, IRIX 6.5, and OpenBSD 3.8 (via ). AIX 5.2 isn't needed and causes troubles. Mac OS X 10.4.6 includes (which is us), but relies on the system definitions, so include after @NEXT_STDINT_H@. */ #if @HAVE_SYS_TYPES_H@ && ! defined _AIX # include #endif /* Get SCHAR_MIN, SCHAR_MAX, UCHAR_MAX, INT_MIN, INT_MAX, LONG_MIN, LONG_MAX, ULONG_MAX. */ #include #if @HAVE_INTTYPES_H@ /* In OpenBSD 3.8, includes , which defines int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__. also defines intptr_t and uintptr_t. */ # include #elif @HAVE_SYS_INTTYPES_H@ /* Solaris 7 has the types except the *_fast*_t types, and the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */ # include #endif #if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__ /* Linux libc4 >= 4.6.7 and libc5 have a that defines int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is included by . */ # include #endif #undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H /* Minimum and maximum values for an integer type under the usual assumption. Return an unspecified value if BITS == 0, adding a check to pacify picky compilers. */ #define _STDINT_MIN(signed, bits, zero) \ ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero)) #define _STDINT_MAX(signed, bits, zero) \ ((signed) \ ? ~ _STDINT_MIN (signed, bits, zero) \ : /* The expression for the unsigned case. The subtraction of (signed) \ is a nop in the unsigned case and avoids "signed integer overflow" \ warnings in the signed case. */ \ ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1) #if !GNULIB_defined_stdint_types /* 7.18.1.1. Exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ #undef int8_t #undef uint8_t typedef signed char gl_int8_t; typedef unsigned char gl_uint8_t; #define int8_t gl_int8_t #define uint8_t gl_uint8_t #undef int16_t #undef uint16_t typedef short int gl_int16_t; typedef unsigned short int gl_uint16_t; #define int16_t gl_int16_t #define uint16_t gl_uint16_t #undef int32_t #undef uint32_t typedef int gl_int32_t; typedef unsigned int gl_uint32_t; #define int32_t gl_int32_t #define uint32_t gl_uint32_t /* If the system defines INT64_MAX, assume int64_t works. That way, if the underlying platform defines int64_t to be a 64-bit long long int, the code below won't mistakenly define it to be a 64-bit long int, which would mess up C++ name mangling. We must use #ifdef rather than #if, to avoid an error with HP-UX 10.20 cc. */ #ifdef INT64_MAX # define GL_INT64_T #else /* Do not undefine int64_t if gnulib is not being used with 64-bit types, since otherwise it breaks platforms like Tandem/NSK. */ # if LONG_MAX >> 31 >> 31 == 1 # undef int64_t typedef long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif defined _MSC_VER # undef int64_t typedef __int64 gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # elif @HAVE_LONG_LONG_INT@ # undef int64_t typedef long long int gl_int64_t; # define int64_t gl_int64_t # define GL_INT64_T # endif #endif #ifdef UINT64_MAX # define GL_UINT64_T #else # if ULONG_MAX >> 31 >> 31 >> 1 == 1 # undef uint64_t typedef unsigned long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif defined _MSC_VER # undef uint64_t typedef unsigned __int64 gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # elif @HAVE_UNSIGNED_LONG_LONG_INT@ # undef uint64_t typedef unsigned long long int gl_uint64_t; # define uint64_t gl_uint64_t # define GL_UINT64_T # endif #endif /* Avoid collision with Solaris 2.5.1 etc. */ #define _UINT8_T #define _UINT32_T #define _UINT64_T /* 7.18.1.2. Minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ #undef int_least8_t #undef uint_least8_t #undef int_least16_t #undef uint_least16_t #undef int_least32_t #undef uint_least32_t #undef int_least64_t #undef uint_least64_t #define int_least8_t int8_t #define uint_least8_t uint8_t #define int_least16_t int16_t #define uint_least16_t uint16_t #define int_least32_t int32_t #define uint_least32_t uint32_t #ifdef GL_INT64_T # define int_least64_t int64_t #endif #ifdef GL_UINT64_T # define uint_least64_t uint64_t #endif /* 7.18.1.3. Fastest minimum-width integer types */ /* Note: Other substitutes may define these types differently. It is not recommended to use these types in public header files. */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. The following code normally uses types consistent with glibc, as that lessens the chance of incompatibility with older GNU hosts. */ #undef int_fast8_t #undef uint_fast8_t #undef int_fast16_t #undef uint_fast16_t #undef int_fast32_t #undef uint_fast32_t #undef int_fast64_t #undef uint_fast64_t typedef signed char gl_int_fast8_t; typedef unsigned char gl_uint_fast8_t; #ifdef __sun /* Define types compatible with SunOS 5.10, so that code compiled under earlier SunOS versions works with code compiled under SunOS 5.10. */ typedef int gl_int_fast32_t; typedef unsigned int gl_uint_fast32_t; #else typedef long int gl_int_fast32_t; typedef unsigned long int gl_uint_fast32_t; #endif typedef gl_int_fast32_t gl_int_fast16_t; typedef gl_uint_fast32_t gl_uint_fast16_t; #define int_fast8_t gl_int_fast8_t #define uint_fast8_t gl_uint_fast8_t #define int_fast16_t gl_int_fast16_t #define uint_fast16_t gl_uint_fast16_t #define int_fast32_t gl_int_fast32_t #define uint_fast32_t gl_uint_fast32_t #ifdef GL_INT64_T # define int_fast64_t int64_t #endif #ifdef GL_UINT64_T # define uint_fast64_t uint64_t #endif /* 7.18.1.4. Integer types capable of holding object pointers */ #undef intptr_t #undef uintptr_t typedef long int gl_intptr_t; typedef unsigned long int gl_uintptr_t; #define intptr_t gl_intptr_t #define uintptr_t gl_uintptr_t /* 7.18.1.5. Greatest-width integer types */ /* Note: These types are compiler dependent. It may be unwise to use them in public header files. */ /* If the system defines INTMAX_MAX, assume that intmax_t works, and similarly for UINTMAX_MAX and uintmax_t. This avoids problems with assuming one type where another is used by the system. */ #ifndef INTMAX_MAX # undef INTMAX_C # undef intmax_t # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 typedef long long int gl_intmax_t; # define intmax_t gl_intmax_t # elif defined GL_INT64_T # define intmax_t int64_t # else typedef long int gl_intmax_t; # define intmax_t gl_intmax_t # endif #endif #ifndef UINTMAX_MAX # undef UINTMAX_C # undef uintmax_t # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 typedef unsigned long long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # elif defined GL_UINT64_T # define uintmax_t uint64_t # else typedef unsigned long int gl_uintmax_t; # define uintmax_t gl_uintmax_t # endif #endif /* Verify that intmax_t and uintmax_t have the same size. Too much code breaks if this is not the case. If this check fails, the reason is likely to be found in the autoconf macros. */ typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t) ? 1 : -1]; #define GNULIB_defined_stdint_types 1 #endif /* !GNULIB_defined_stdint_types */ /* 7.18.2. Limits of specified-width integer types */ /* 7.18.2.1. Limits of exact-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. */ #undef INT8_MIN #undef INT8_MAX #undef UINT8_MAX #define INT8_MIN (~ INT8_MAX) #define INT8_MAX 127 #define UINT8_MAX 255 #undef INT16_MIN #undef INT16_MAX #undef UINT16_MAX #define INT16_MIN (~ INT16_MAX) #define INT16_MAX 32767 #define UINT16_MAX 65535 #undef INT32_MIN #undef INT32_MAX #undef UINT32_MAX #define INT32_MIN (~ INT32_MAX) #define INT32_MAX 2147483647 #define UINT32_MAX 4294967295U #if defined GL_INT64_T && ! defined INT64_MAX /* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0 evaluates the latter incorrectly in preprocessor expressions. */ # define INT64_MIN (- INTMAX_C (1) << 63) # define INT64_MAX INTMAX_C (9223372036854775807) #endif #if defined GL_UINT64_T && ! defined UINT64_MAX # define UINT64_MAX UINTMAX_C (18446744073709551615) #endif /* 7.18.2.2. Limits of minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types are the same as the corresponding N_t types. */ #undef INT_LEAST8_MIN #undef INT_LEAST8_MAX #undef UINT_LEAST8_MAX #define INT_LEAST8_MIN INT8_MIN #define INT_LEAST8_MAX INT8_MAX #define UINT_LEAST8_MAX UINT8_MAX #undef INT_LEAST16_MIN #undef INT_LEAST16_MAX #undef UINT_LEAST16_MAX #define INT_LEAST16_MIN INT16_MIN #define INT_LEAST16_MAX INT16_MAX #define UINT_LEAST16_MAX UINT16_MAX #undef INT_LEAST32_MIN #undef INT_LEAST32_MAX #undef UINT_LEAST32_MAX #define INT_LEAST32_MIN INT32_MIN #define INT_LEAST32_MAX INT32_MAX #define UINT_LEAST32_MAX UINT32_MAX #undef INT_LEAST64_MIN #undef INT_LEAST64_MAX #ifdef GL_INT64_T # define INT_LEAST64_MIN INT64_MIN # define INT_LEAST64_MAX INT64_MAX #endif #undef UINT_LEAST64_MAX #ifdef GL_UINT64_T # define UINT_LEAST64_MAX UINT64_MAX #endif /* 7.18.2.3. Limits of fastest minimum-width integer types */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types are taken from the same list of types. */ #undef INT_FAST8_MIN #undef INT_FAST8_MAX #undef UINT_FAST8_MAX #define INT_FAST8_MIN SCHAR_MIN #define INT_FAST8_MAX SCHAR_MAX #define UINT_FAST8_MAX UCHAR_MAX #undef INT_FAST16_MIN #undef INT_FAST16_MAX #undef UINT_FAST16_MAX #define INT_FAST16_MIN INT_FAST32_MIN #define INT_FAST16_MAX INT_FAST32_MAX #define UINT_FAST16_MAX UINT_FAST32_MAX #undef INT_FAST32_MIN #undef INT_FAST32_MAX #undef UINT_FAST32_MAX #ifdef __sun # define INT_FAST32_MIN INT_MIN # define INT_FAST32_MAX INT_MAX # define UINT_FAST32_MAX UINT_MAX #else # define INT_FAST32_MIN LONG_MIN # define INT_FAST32_MAX LONG_MAX # define UINT_FAST32_MAX ULONG_MAX #endif #undef INT_FAST64_MIN #undef INT_FAST64_MAX #ifdef GL_INT64_T # define INT_FAST64_MIN INT64_MIN # define INT_FAST64_MAX INT64_MAX #endif #undef UINT_FAST64_MAX #ifdef GL_UINT64_T # define UINT_FAST64_MAX UINT64_MAX #endif /* 7.18.2.4. Limits of integer types capable of holding object pointers */ #undef INTPTR_MIN #undef INTPTR_MAX #undef UINTPTR_MAX #define INTPTR_MIN LONG_MIN #define INTPTR_MAX LONG_MAX #define UINTPTR_MAX ULONG_MAX /* 7.18.2.5. Limits of greatest-width integer types */ #ifndef INTMAX_MAX # undef INTMAX_MIN # ifdef INT64_MAX # define INTMAX_MIN INT64_MIN # define INTMAX_MAX INT64_MAX # else # define INTMAX_MIN INT32_MIN # define INTMAX_MAX INT32_MAX # endif #endif #ifndef UINTMAX_MAX # ifdef UINT64_MAX # define UINTMAX_MAX UINT64_MAX # else # define UINTMAX_MAX UINT32_MAX # endif #endif /* 7.18.3. Limits of other integer types */ /* ptrdiff_t limits */ #undef PTRDIFF_MIN #undef PTRDIFF_MAX #if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l) # define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l) # else # define PTRDIFF_MIN _STDINT_MIN (1, 32, 0) # define PTRDIFF_MAX _STDINT_MAX (1, 32, 0) # endif #else # define PTRDIFF_MIN \ _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) # define PTRDIFF_MAX \ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@) #endif /* sig_atomic_t limits */ #undef SIG_ATOMIC_MIN #undef SIG_ATOMIC_MAX #define SIG_ATOMIC_MIN \ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) #define SIG_ATOMIC_MAX \ _STDINT_MAX (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \ 0@SIG_ATOMIC_T_SUFFIX@) /* size_t limit */ #undef SIZE_MAX #if @APPLE_UNIVERSAL_BUILD@ # ifdef _LP64 # define SIZE_MAX _STDINT_MAX (0, 64, 0ul) # else # define SIZE_MAX _STDINT_MAX (0, 32, 0ul) # endif #else # define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@) #endif /* wchar_t limits */ /* Get WCHAR_MIN, WCHAR_MAX. This include is not on the top, above, because on OSF/1 4.0 we have a sequence of nested includes -> -> -> , and the latter includes and assumes its types are already defined. */ #if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX) /* BSD/OS 4.0.1 has a bug: , and must be included before . */ # include # include # include # define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H /* We don't need WCHAR_* in libidn, so to avoid problems with missing wchar.h, don't include wchar.h here. */ # undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H #endif #undef WCHAR_MIN #undef WCHAR_MAX #define WCHAR_MIN \ _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) #define WCHAR_MAX \ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@) /* wint_t limits */ #undef WINT_MIN #undef WINT_MAX #define WINT_MIN \ _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) #define WINT_MAX \ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@) /* 7.18.4. Macros for integer constants */ /* 7.18.4.1. Macros for minimum-width integer constants */ /* According to ISO C 99 Technical Corrigendum 1 */ /* Here we assume a standard architecture where the hardware integer types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */ #undef INT8_C #undef UINT8_C #define INT8_C(x) x #define UINT8_C(x) x #undef INT16_C #undef UINT16_C #define INT16_C(x) x #define UINT16_C(x) x #undef INT32_C #undef UINT32_C #define INT32_C(x) x #define UINT32_C(x) x ## U #undef INT64_C #undef UINT64_C #if LONG_MAX >> 31 >> 31 == 1 # define INT64_C(x) x##L #elif defined _MSC_VER # define INT64_C(x) x##i64 #elif @HAVE_LONG_LONG_INT@ # define INT64_C(x) x##LL #endif #if ULONG_MAX >> 31 >> 31 >> 1 == 1 # define UINT64_C(x) x##UL #elif defined _MSC_VER # define UINT64_C(x) x##ui64 #elif @HAVE_UNSIGNED_LONG_LONG_INT@ # define UINT64_C(x) x##ULL #endif /* 7.18.4.2. Macros for greatest-width integer constants */ #ifndef INTMAX_C # if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1 # define INTMAX_C(x) x##LL # elif defined GL_INT64_T # define INTMAX_C(x) INT64_C(x) # else # define INTMAX_C(x) x##L # endif #endif #ifndef UINTMAX_C # if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1 # define UINTMAX_C(x) x##ULL # elif defined GL_UINT64_T # define UINTMAX_C(x) UINT64_C(x) # else # define UINTMAX_C(x) x##UL # endif #endif #endif /* _@GUARD_PREFIX@_STDINT_H */ #endif /* !(defined __ANDROID__ && ...) */ #endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */ libidn-1.28/lib/gl/iconv_open-hpux.h0000644000000000000000000002744112167245576014265 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-hpux.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-hpux.gperf" struct mapping { int standard_name; const char vendor_name[9 + 1]; }; #define TOTAL_KEYWORDS 44 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 49 /* maximum key range = 44, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 1, 2, 24, 43, 5, 10, 0, 13, 32, 3, 19, 18, 50, 50, 50, 50, 50, 50, 50, 50, 50, 5, 50, 50, 50, 50, 14, 5, 0, 50, 50, 0, 27, 50, 12, 14, 50, 50, 0, 5, 2, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50 }; return len + asso_values[(unsigned char)str[3]+4] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("CP1256")]; char stringpool_str7[sizeof("CP1250")]; char stringpool_str8[sizeof("CP1251")]; char stringpool_str9[sizeof("CP850")]; char stringpool_str10[sizeof("TIS-620")]; char stringpool_str11[sizeof("CP1254")]; char stringpool_str12[sizeof("ISO-8859-6")]; char stringpool_str13[sizeof("EUC-TW")]; char stringpool_str14[sizeof("ISO-8859-1")]; char stringpool_str15[sizeof("ISO-8859-9")]; char stringpool_str16[sizeof("CP1255")]; char stringpool_str17[sizeof("BIG5")]; char stringpool_str18[sizeof("CP855")]; char stringpool_str19[sizeof("CP1257")]; char stringpool_str20[sizeof("EUC-KR")]; char stringpool_str21[sizeof("CP857")]; char stringpool_str22[sizeof("ISO-8859-5")]; char stringpool_str23[sizeof("ISO-8859-15")]; char stringpool_str24[sizeof("CP866")]; char stringpool_str25[sizeof("ISO-8859-7")]; char stringpool_str26[sizeof("CP861")]; char stringpool_str27[sizeof("CP869")]; char stringpool_str28[sizeof("CP874")]; char stringpool_str29[sizeof("CP864")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("CP437")]; char stringpool_str32[sizeof("CP852")]; char stringpool_str33[sizeof("CP775")]; char stringpool_str34[sizeof("CP865")]; char stringpool_str35[sizeof("EUC-JP")]; char stringpool_str36[sizeof("ISO-8859-2")]; char stringpool_str37[sizeof("SHIFT_JIS")]; char stringpool_str38[sizeof("CP1258")]; char stringpool_str39[sizeof("UTF-8")]; char stringpool_str40[sizeof("HP-KANA8")]; char stringpool_str41[sizeof("HP-ROMAN8")]; char stringpool_str42[sizeof("HP-HEBREW8")]; char stringpool_str43[sizeof("GB2312")]; char stringpool_str44[sizeof("ISO-8859-8")]; char stringpool_str45[sizeof("HP-TURKISH8")]; char stringpool_str46[sizeof("HP-GREEK8")]; char stringpool_str47[sizeof("HP-ARABIC8")]; char stringpool_str48[sizeof("CP862")]; char stringpool_str49[sizeof("CP1253")]; }; static const struct stringpool_t stringpool_contents = { "CP1256", "CP1250", "CP1251", "CP850", "TIS-620", "CP1254", "ISO-8859-6", "EUC-TW", "ISO-8859-1", "ISO-8859-9", "CP1255", "BIG5", "CP855", "CP1257", "EUC-KR", "CP857", "ISO-8859-5", "ISO-8859-15", "CP866", "ISO-8859-7", "CP861", "CP869", "CP874", "CP864", "CP1252", "CP437", "CP852", "CP775", "CP865", "EUC-JP", "ISO-8859-2", "SHIFT_JIS", "CP1258", "UTF-8", "HP-KANA8", "HP-ROMAN8", "HP-HEBREW8", "GB2312", "ISO-8859-8", "HP-TURKISH8", "HP-GREEK8", "HP-ARABIC8", "CP862", "CP1253" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 40 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1256"}, #line 34 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp1250"}, #line 35 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1251"}, #line 23 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "cp850"}, #line 49 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "tis620"}, #line 38 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "cp1254"}, #line 16 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "iso88596"}, #line 53 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucTW"}, #line 13 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "iso88591"}, #line 19 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "iso88599"}, #line 39 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1255"}, #line 54 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "big5"}, #line 25 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp855"}, #line 41 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "cp1257"}, #line 52 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "eucKR"}, #line 26 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp857"}, #line 15 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "iso88595"}, #line 20 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "iso885915"}, #line 31 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "cp866"}, #line 17 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "iso88597"}, #line 27 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "cp861"}, #line 32 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "cp869"}, #line 33 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "cp874"}, #line 29 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp864"}, #line 36 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, #line 21 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp437"}, #line 24 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "cp852"}, #line 22 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp775"}, #line 30 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp865"}, #line 51 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "eucJP"}, #line 14 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "iso88592"}, #line 55 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "sjis"}, #line 42 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp1258"}, #line 56 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "utf8"}, #line 48 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "kana8"}, #line 43 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "roman8"}, #line 46 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "hebrew8"}, #line 50 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "hp15CN"}, #line 18 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "iso88598"}, #line 47 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str45, "turkish8"}, #line 45 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "greek8"}, #line 44 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "arabic8"}, #line 28 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str48, "cp862"}, #line 37 "./iconv_open-hpux.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str49, "cp1253"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.28/lib/gl/iconv.c0000644000000000000000000002632412153706106012236 00000000000000/* Character set conversion. Copyright (C) 1999-2001, 2007, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #if REPLACE_ICONV_UTF # include # include # include # include "unistr.h" # ifndef uintptr_t # define uintptr_t unsigned long # endif #endif #if REPLACE_ICONV_UTF /* UTF-{16,32}{BE,LE} converters taken from GNU libiconv 1.11. */ /* Return code if invalid. (xxx_mbtowc) */ # define RET_ILSEQ -1 /* Return code if no bytes were read. (xxx_mbtowc) */ # define RET_TOOFEW -2 /* Return code if invalid. (xxx_wctomb) */ # define RET_ILUNI -1 /* Return code if output buffer is too small. (xxx_wctomb, xxx_reset) */ # define RET_TOOSMALL -2 /* * UTF-16BE */ /* Specification: RFC 2781 */ static int utf16be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 2) { ucs4_t wc = (s[0] << 8) + s[1]; if (wc >= 0xd800 && wc < 0xdc00) { if (n >= 4) { ucs4_t wc2 = (s[2] << 8) + s[3]; if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ; *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); return 4; } } else if (wc >= 0xdc00 && wc < 0xe000) { return RET_ILSEQ; } else { *pwc = wc; return 2; } } return RET_TOOFEW; } static int utf16be_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (!(wc >= 0xd800 && wc < 0xe000)) { if (wc < 0x10000) { if (n >= 2) { r[0] = (unsigned char) (wc >> 8); r[1] = (unsigned char) wc; return 2; } else return RET_TOOSMALL; } else if (wc < 0x110000) { if (n >= 4) { ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); r[0] = (unsigned char) (wc1 >> 8); r[1] = (unsigned char) wc1; r[2] = (unsigned char) (wc2 >> 8); r[3] = (unsigned char) wc2; return 4; } else return RET_TOOSMALL; } } return RET_ILUNI; } /* * UTF-16LE */ /* Specification: RFC 2781 */ static int utf16le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 2) { ucs4_t wc = s[0] + (s[1] << 8); if (wc >= 0xd800 && wc < 0xdc00) { if (n >= 4) { ucs4_t wc2 = s[2] + (s[3] << 8); if (!(wc2 >= 0xdc00 && wc2 < 0xe000)) return RET_ILSEQ; *pwc = 0x10000 + ((wc - 0xd800) << 10) + (wc2 - 0xdc00); return 4; } } else if (wc >= 0xdc00 && wc < 0xe000) { return RET_ILSEQ; } else { *pwc = wc; return 2; } } return RET_TOOFEW; } static int utf16le_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (!(wc >= 0xd800 && wc < 0xe000)) { if (wc < 0x10000) { if (n >= 2) { r[0] = (unsigned char) wc; r[1] = (unsigned char) (wc >> 8); return 2; } else return RET_TOOSMALL; } else if (wc < 0x110000) { if (n >= 4) { ucs4_t wc1 = 0xd800 + ((wc - 0x10000) >> 10); ucs4_t wc2 = 0xdc00 + ((wc - 0x10000) & 0x3ff); r[0] = (unsigned char) wc1; r[1] = (unsigned char) (wc1 >> 8); r[2] = (unsigned char) wc2; r[3] = (unsigned char) (wc2 >> 8); return 4; } else return RET_TOOSMALL; } } return RET_ILUNI; } /* * UTF-32BE */ /* Specification: Unicode 3.1 Standard Annex #19 */ static int utf32be_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 4) { ucs4_t wc = (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + s[3]; if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { *pwc = wc; return 4; } else return RET_ILSEQ; } return RET_TOOFEW; } static int utf32be_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { if (n >= 4) { r[0] = 0; r[1] = (unsigned char) (wc >> 16); r[2] = (unsigned char) (wc >> 8); r[3] = (unsigned char) wc; return 4; } else return RET_TOOSMALL; } return RET_ILUNI; } /* * UTF-32LE */ /* Specification: Unicode 3.1 Standard Annex #19 */ static int utf32le_mbtowc (ucs4_t *pwc, const unsigned char *s, size_t n) { if (n >= 4) { ucs4_t wc = s[0] + (s[1] << 8) + (s[2] << 16) + (s[3] << 24); if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { *pwc = wc; return 4; } else return RET_ILSEQ; } return RET_TOOFEW; } static int utf32le_wctomb (unsigned char *r, ucs4_t wc, size_t n) { if (wc < 0x110000 && !(wc >= 0xd800 && wc < 0xe000)) { if (n >= 4) { r[0] = (unsigned char) wc; r[1] = (unsigned char) (wc >> 8); r[2] = (unsigned char) (wc >> 16); r[3] = 0; return 4; } else return RET_TOOSMALL; } return RET_ILUNI; } #endif size_t rpl_iconv (iconv_t cd, ICONV_CONST char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft) #undef iconv { #if REPLACE_ICONV_UTF switch ((uintptr_t) cd) { { int (*xxx_wctomb) (unsigned char *, ucs4_t, size_t); case (uintptr_t) _ICONV_UTF8_UTF16BE: xxx_wctomb = utf16be_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF16LE: xxx_wctomb = utf16le_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF32BE: xxx_wctomb = utf32be_wctomb; goto loop_from_utf8; case (uintptr_t) _ICONV_UTF8_UTF32LE: xxx_wctomb = utf32le_wctomb; goto loop_from_utf8; loop_from_utf8: if (inbuf == NULL || *inbuf == NULL) return 0; { ICONV_CONST char *inptr = *inbuf; size_t inleft = *inbytesleft; char *outptr = *outbuf; size_t outleft = *outbytesleft; size_t res = 0; while (inleft > 0) { ucs4_t uc; int m = u8_mbtoucr (&uc, (const uint8_t *) inptr, inleft); if (m <= 0) { if (m == -1) { errno = EILSEQ; res = (size_t)(-1); break; } if (m == -2) { errno = EINVAL; res = (size_t)(-1); break; } abort (); } else { int n = xxx_wctomb ((uint8_t *) outptr, uc, outleft); if (n < 0) { if (n == RET_ILUNI) { errno = EILSEQ; res = (size_t)(-1); break; } if (n == RET_TOOSMALL) { errno = E2BIG; res = (size_t)(-1); break; } abort (); } else { inptr += m; inleft -= m; outptr += n; outleft -= n; } } } *inbuf = inptr; *inbytesleft = inleft; *outbuf = outptr; *outbytesleft = outleft; return res; } } { int (*xxx_mbtowc) (ucs4_t *, const unsigned char *, size_t); case (uintptr_t) _ICONV_UTF16BE_UTF8: xxx_mbtowc = utf16be_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF16LE_UTF8: xxx_mbtowc = utf16le_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF32BE_UTF8: xxx_mbtowc = utf32be_mbtowc; goto loop_to_utf8; case (uintptr_t) _ICONV_UTF32LE_UTF8: xxx_mbtowc = utf32le_mbtowc; goto loop_to_utf8; loop_to_utf8: if (inbuf == NULL || *inbuf == NULL) return 0; { ICONV_CONST char *inptr = *inbuf; size_t inleft = *inbytesleft; char *outptr = *outbuf; size_t outleft = *outbytesleft; size_t res = 0; while (inleft > 0) { ucs4_t uc; int m = xxx_mbtowc (&uc, (const uint8_t *) inptr, inleft); if (m <= 0) { if (m == RET_ILSEQ) { errno = EILSEQ; res = (size_t)(-1); break; } if (m == RET_TOOFEW) { errno = EINVAL; res = (size_t)(-1); break; } abort (); } else { int n = u8_uctomb ((uint8_t *) outptr, uc, outleft); if (n < 0) { if (n == -1) { errno = EILSEQ; res = (size_t)(-1); break; } if (n == -2) { errno = E2BIG; res = (size_t)(-1); break; } abort (); } else { inptr += m; inleft -= m; outptr += n; outleft -= n; } } } *inbuf = inptr; *inbytesleft = inleft; *outbuf = outptr; *outbytesleft = outleft; return res; } } } #endif return iconv (cd, inbuf, inbytesleft, outbuf, outbytesleft); } libidn-1.28/lib/gl/iconv_open-solaris.h0000644000000000000000000001563412167245576014756 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-solaris.gperf */ /* Computed positions: -k'10' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-solaris.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 13 #define MIN_WORD_LENGTH 5 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 19 /* maximum key range = 15, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 9, 8, 7, 6, 5, 4, 3, 2, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20 }; register int hval = len; switch (hval) { default: hval += asso_values[(unsigned char)str[9]]; /*FALLTHROUGH*/ case 9: case 8: case 7: case 6: case 5: break; } return hval; } struct stringpool_t { char stringpool_str5[sizeof("ASCII")]; char stringpool_str6[sizeof("CP1251")]; char stringpool_str7[sizeof("$ abc")]; char stringpool_str10[sizeof("ISO-8859-1")]; char stringpool_str11[sizeof("ISO-8859-15")]; char stringpool_str12[sizeof("ISO-8859-9")]; char stringpool_str13[sizeof("ISO-8859-8")]; char stringpool_str14[sizeof("ISO-8859-7")]; char stringpool_str15[sizeof("ISO-8859-6")]; char stringpool_str16[sizeof("ISO-8859-5")]; char stringpool_str17[sizeof("ISO-8859-4")]; char stringpool_str18[sizeof("ISO-8859-3")]; char stringpool_str19[sizeof("ISO-8859-2")]; }; static const struct stringpool_t stringpool_contents = { "ASCII", "CP1251", "$ abc", "ISO-8859-1", "ISO-8859-15", "ISO-8859-9", "ISO-8859-8", "ISO-8859-7", "ISO-8859-6", "ISO-8859-5", "ISO-8859-4", "ISO-8859-3", "ISO-8859-2" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, #line 19 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "646"}, #line 30 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "ansi-1251"}, #line 18 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7}, {-1}, {-1}, #line 20 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-1"}, #line 29 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, #line 28 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-9"}, #line 27 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-8"}, #line 26 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "ISO8859-7"}, #line 25 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-6"}, #line 24 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "ISO8859-5"}, #line 23 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-4"}, #line 22 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-3"}, #line 21 "./iconv_open-solaris.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-2"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.28/lib/gl/iconv_open-irix.h0000644000000000000000000001727612167245576014261 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-irix.gperf */ /* Computed positions: -k'1,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-irix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 19 #define MIN_WORD_LENGTH 5 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 5 #define MAX_HASH_VALUE 23 /* maximum key range = 19, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 8, 2, 5, 12, 11, 0, 10, 9, 8, 7, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 24, 0, 24, 5, 24, 0, 24, 7, 24, 24, 24, 24, 7, 24, 1, 0, 8, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24 }; return len + asso_values[(unsigned char)str[len - 1]] + asso_values[(unsigned char)str[0]]; } struct stringpool_t { char stringpool_str5[sizeof("CP855")]; char stringpool_str6[sizeof("EUC-TW")]; char stringpool_str7[sizeof("EUC-KR")]; char stringpool_str8[sizeof("CP1251")]; char stringpool_str9[sizeof("SHIFT_JIS")]; char stringpool_str10[sizeof("ISO-8859-5")]; char stringpool_str11[sizeof("ISO-8859-15")]; char stringpool_str12[sizeof("ISO-8859-1")]; char stringpool_str13[sizeof("EUC-JP")]; char stringpool_str14[sizeof("KOI8-R")]; char stringpool_str15[sizeof("ISO-8859-2")]; char stringpool_str16[sizeof("GB2312")]; char stringpool_str17[sizeof("ISO-8859-9")]; char stringpool_str18[sizeof("ISO-8859-8")]; char stringpool_str19[sizeof("ISO-8859-7")]; char stringpool_str20[sizeof("ISO-8859-6")]; char stringpool_str21[sizeof("ISO-8859-4")]; char stringpool_str22[sizeof("ISO-8859-3")]; char stringpool_str23[sizeof("TIS-620")]; }; static const struct stringpool_t stringpool_contents = { "CP855", "EUC-TW", "EUC-KR", "CP1251", "SHIFT_JIS", "ISO-8859-5", "ISO-8859-15", "ISO-8859-1", "EUC-JP", "KOI8-R", "ISO-8859-2", "GB2312", "ISO-8859-9", "ISO-8859-8", "ISO-8859-7", "ISO-8859-6", "ISO-8859-4", "ISO-8859-3", "TIS-620" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, #line 24 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str5, "DOS855"}, #line 29 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "eucTW"}, #line 28 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "eucKR"}, #line 25 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "WIN1251"}, #line 30 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "sjis"}, #line 17 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-5"}, #line 22 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "ISO8859-15"}, #line 13 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-1"}, #line 27 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "eucJP"}, #line 23 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "KOI8"}, #line 14 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "ISO8859-2"}, #line 26 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "eucCN"}, #line 21 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "ISO8859-9"}, #line 20 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "ISO8859-8"}, #line 19 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-7"}, #line 18 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-6"}, #line 16 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-4"}, #line 15 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-3"}, #line 31 "./iconv_open-irix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "TIS620"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.28/lib/gl/iconv_open-hpux.gperf0000664000000000000000000000214211746453142015122 00000000000000struct mapping { int standard_name; const char vendor_name[9 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On HP-UX 11.11, look in /usr/lib/nls/iconv. ISO-8859-1, "iso88591" ISO-8859-2, "iso88592" ISO-8859-5, "iso88595" ISO-8859-6, "iso88596" ISO-8859-7, "iso88597" ISO-8859-8, "iso88598" ISO-8859-9, "iso88599" ISO-8859-15, "iso885915" CP437, "cp437" CP775, "cp775" CP850, "cp850" CP852, "cp852" CP855, "cp855" CP857, "cp857" CP861, "cp861" CP862, "cp862" CP864, "cp864" CP865, "cp865" CP866, "cp866" CP869, "cp869" CP874, "cp874" CP1250, "cp1250" CP1251, "cp1251" CP1252, "cp1252" CP1253, "cp1253" CP1254, "cp1254" CP1255, "cp1255" CP1256, "cp1256" CP1257, "cp1257" CP1258, "cp1258" HP-ROMAN8, "roman8" HP-ARABIC8, "arabic8" HP-GREEK8, "greek8" HP-HEBREW8, "hebrew8" HP-TURKISH8, "turkish8" HP-KANA8, "kana8" TIS-620, "tis620" GB2312, "hp15CN" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" BIG5, "big5" SHIFT_JIS, "sjis" UTF-8, "utf8" libidn-1.28/lib/gl/iconv_open-solaris.gperf0000664000000000000000000000154311746453142015616 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On Solaris 10, look in the "iconv -l" output. Some aliases are advertised but # not actually supported by the iconv() function and by the 'iconv' program. # For example: # $ echo abc | iconv -f 646 -t ISO-8859-1 # Not supported 646 to ISO-8859-1 # $ echo abc | iconv -f 646 -t ISO8859-1 $ abc ASCII, "646" ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP1251, "ansi-1251" libidn-1.28/lib/gl/m4/0000755000000000000000000000000012167253747011362 500000000000000libidn-1.28/lib/gl/m4/locale-zh.m40000644000000000000000000001222612153706106013410 00000000000000# locale-zh.m4 serial 12 dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a chinese locale with GB18030 encoding. AC_DEFUN([gt_LOCALE_ZH_CN], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; /* Check whether a typical GB18030 multibyte sequence is recognized as a single wide character. This excludes the GB2312 and GBK encodings. */ if (mblen ("\203\062\332\066", 5) != 4) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=Chinese_China.54936 else # None found. gt_cv_locale_zh_CN=none fi ;; solaris2.8) # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK. # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core. gt_cv_locale_zh_CN=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the locale name without encoding suffix. if (LC_ALL=zh_CN LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN else # Test for the locale name with explicit encoding suffix. if (LC_ALL=zh_CN.GB18030 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_zh_CN=zh_CN.GB18030 else # None found. gt_cv_locale_zh_CN=none fi fi ;; esac else # If there was a link error, due to mblen(), the system is so old that # it certainly doesn't have a chinese locale. gt_cv_locale_zh_CN=none fi rm -fr conftest* ]) LOCALE_ZH_CN=$gt_cv_locale_zh_CN AC_SUBST([LOCALE_ZH_CN]) ]) libidn-1.28/lib/gl/m4/locale_h.m40000644000000000000000000001040112153706106013271 00000000000000# locale_h.m4 serial 19 dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LOCALE_H], [ dnl Use AC_REQUIRE here, so that the default behavior below is expanded dnl once only, before all statements that occur in other macros. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) dnl Persuade glibc to define locale_t and the int_p_*, int_n_* dnl members of 'struct lconv'. AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) dnl If is replaced, then must also be replaced. AC_REQUIRE([gl_STDDEF_H]) dnl Solaris 11 2011-11 defines the int_p_*, int_n_* members of 'struct lconv' dnl only if _LCONV_C99 is defined. AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in solaris*) AC_DEFINE([_LCONV_C99], [1], [Define to 1 on Solaris.]) ;; esac AC_CACHE_CHECK([whether locale.h conforms to POSIX:2001], [gl_cv_header_locale_h_posix2001], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include int x = LC_MESSAGES; int y = sizeof (((struct lconv *) 0)->decimal_point);]], [[]])], [gl_cv_header_locale_h_posix2001=yes], [gl_cv_header_locale_h_posix2001=no])]) dnl Check for . AC_CHECK_HEADERS_ONCE([xlocale.h]) if test $ac_cv_header_xlocale_h = yes; then HAVE_XLOCALE_H=1 dnl Check whether use of locale_t requires inclusion of , dnl e.g. on Mac OS X 10.5. If does not define locale_t by dnl itself, we assume that will do so. AC_CACHE_CHECK([whether locale.h defines locale_t], [gl_cv_header_locale_has_locale_t], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include locale_t x;]], [[]])], [gl_cv_header_locale_has_locale_t=yes], [gl_cv_header_locale_has_locale_t=no]) ]) if test $gl_cv_header_locale_has_locale_t = yes; then gl_cv_header_locale_h_needs_xlocale_h=no else gl_cv_header_locale_h_needs_xlocale_h=yes fi else HAVE_XLOCALE_H=0 gl_cv_header_locale_h_needs_xlocale_h=no fi AC_SUBST([HAVE_XLOCALE_H]) dnl Check whether 'struct lconv' is complete. dnl Bionic libc's 'struct lconv' is just a dummy. dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members. AC_CACHE_CHECK([whether struct lconv is properly defined], [gl_cv_sys_struct_lconv_ok], [AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#include struct lconv l; int x = sizeof (l.decimal_point); int y = sizeof (l.int_p_cs_precedes);]], [[]])], [gl_cv_sys_struct_lconv_ok=yes], [gl_cv_sys_struct_lconv_ok=no]) ]) if test $gl_cv_sys_struct_lconv_ok = no; then REPLACE_STRUCT_LCONV=1 fi dnl is always overridden, because of GNULIB_POSIXCHECK. gl_NEXT_HEADERS([locale.h]) dnl Check for declarations of anything we want to poison if the dnl corresponding gnulib module is not in use. gl_WARN_ON_USE_PREPARE([[#include /* Some systems provide declarations in a non-standard header. */ #if HAVE_XLOCALE_H # include #endif ]], [setlocale duplocale]) ]) AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LOCALE_H_DEFAULTS], [ GNULIB_LOCALECONV=0; AC_SUBST([GNULIB_LOCALECONV]) GNULIB_SETLOCALE=0; AC_SUBST([GNULIB_SETLOCALE]) GNULIB_DUPLOCALE=0; AC_SUBST([GNULIB_DUPLOCALE]) dnl Assume proper GNU behavior unless another module says otherwise. HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) ]) libidn-1.28/lib/gl/m4/ld-version-script.m40000644000000000000000000000336412153706106015121 00000000000000# ld-version-script.m4 serial 3 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # FIXME: The test below returns a false positive for mingw # cross-compiles, 'local:' statements does not reduce number of # exported symbols in a DLL. Use --disable-ld-version-script to work # around the problem. # gl_LD_VERSION_SCRIPT # -------------------- # Check if LD supports linker scripts, and define automake conditional # HAVE_LD_VERSION_SCRIPT if so. AC_DEFUN([gl_LD_VERSION_SCRIPT], [ AC_ARG_ENABLE([ld-version-script], AS_HELP_STRING([--enable-ld-version-script], [enable linker version script (default is enabled when possible)]), [have_ld_version_script=$enableval], []) if test -z "$have_ld_version_script"; then AC_MSG_CHECKING([if LD -Wl,--version-script works]) save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map" cat > conftest.map < conftest.map <. # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the compiled summary of the specification in # gnulib-cache.m4. It lists the computed macro invocations that need # to be invoked from configure.ac. # In projects that use version control, this file can be treated like # other built files. # This macro should be invoked from ./configure.ac, in the section # "Checks for programs", right after AC_PROG_CC, and certainly before # any checks for libraries, header files, types and library functions. AC_DEFUN([lgl_EARLY], [ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace m4_pattern_allow([^gl_ES$])dnl a valid locale name m4_pattern_allow([^gl_LIBOBJS$])dnl a variable m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable AC_REQUIRE([gl_PROG_AR_RANLIB]) AC_REQUIRE([AM_PROG_CC_C_O]) # Code from module alloca-opt: # Code from module alloca-opt-tests: # Code from module c-ctype: # Code from module c-ctype-tests: # Code from module c-strcase: # Code from module c-strcase-tests: # Code from module environ: # Code from module environ-tests: # Code from module extensions: AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) # Code from module extern-inline: # Code from module gettext-h: # Code from module gperf: # Code from module havelib: # Code from module iconv: # Code from module iconv-h: # Code from module iconv-tests: # Code from module iconv_open: # Code from module include_next: # Code from module inline: # Code from module intprops: # Code from module intprops-tests: # Code from module inttypes: # Code from module inttypes-incomplete: # Code from module inttypes-tests: # Code from module lib-msvc-compat: # Code from module lib-symbol-versions: # Code from module lib-symbol-visibility: # Code from module locale: # Code from module locale-tests: # Code from module localename: # Code from module localename-tests: # Code from module lock: # Code from module lock-tests: # Code from module malloc-posix: # Code from module malloca: # Code from module malloca-tests: # Code from module multiarch: # Code from module putenv: # Code from module setenv: # Code from module setenv-tests: # Code from module setlocale: # Code from module setlocale-tests: # Code from module snippet/_Noreturn: # Code from module snippet/arg-nonnull: # Code from module snippet/c++defs: # Code from module snippet/unused-parameter: # Code from module snippet/warn-on-use: # Code from module ssize_t: # Code from module stdbool: # Code from module stdbool-tests: # Code from module stddef: # Code from module stddef-tests: # Code from module stdint: # Code from module stdint-tests: # Code from module stdlib: # Code from module stdlib-tests: # Code from module striconv: # Code from module striconv-tests: # Code from module string: # Code from module strverscmp: # Code from module strverscmp-tests: # Code from module sys_types: # Code from module sys_types-tests: # Code from module test-framework-sh: # Code from module test-framework-sh-tests: # Code from module thread: # Code from module thread-tests: # Code from module threadlib: gl_THREADLIB_EARLY # Code from module unistd: # Code from module unistd-tests: # Code from module unistr/base: # Code from module unistr/u8-mbtoucr: # Code from module unistr/u8-mbtoucr-tests: # Code from module unistr/u8-uctomb: # Code from module unistr/u8-uctomb-tests: # Code from module unitypes: # Code from module unsetenv: # Code from module unsetenv-tests: # Code from module verify: # Code from module verify-tests: # Code from module wchar: # Code from module yield: ]) # This macro should be invoked from ./configure.ac, in the section # "Check for header files, types and library functions". AC_DEFUN([lgl_INIT], [ AM_CONDITIONAL([GL_COND_LIBTOOL], [true]) gl_cond_libtool=true gl_m4_base='lib/gl/m4' m4_pushdef([AC_LIBOBJ], m4_defn([lgl_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([lgl_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([lgl_LIBSOURCES])) m4_pushdef([lgl_LIBSOURCES_LIST], []) m4_pushdef([lgl_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='lib/gl' AC_SUBST([LIBINTL]) AC_SUBST([LTLIBINTL]) AM_ICONV m4_ifdef([gl_ICONV_MODULE_INDICATOR], [gl_ICONV_MODULE_INDICATOR([iconv])]) gl_ICONV_H gl_FUNC_ICONV_OPEN if test $REPLACE_ICONV_OPEN = 1; then AC_LIBOBJ([iconv_open]) fi if test $REPLACE_ICONV = 1; then AC_LIBOBJ([iconv]) AC_LIBOBJ([iconv_close]) fi gl_INLINE gl_LD_OUTPUT_DEF gl_LD_VERSION_SCRIPT gl_VISIBILITY gl_MULTIARCH AM_STDBOOL_H gl_STDDEF_H gl_STDINT_H if test $gl_cond_libtool = false; then gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV" gl_libdeps="$gl_libdeps $LIBICONV" fi gl_HEADER_STRING_H gl_FUNC_STRVERSCMP if test $HAVE_STRVERSCMP = 0; then AC_LIBOBJ([strverscmp]) gl_PREREQ_STRVERSCMP fi gl_STRING_MODULE_INDICATOR([strverscmp]) gl_LIBUNISTRING_LIBHEADER([0.9.2], [unistr.h]) gl_MODULE_INDICATOR([unistr/u8-mbtoucr]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-mbtoucr]) gl_MODULE_INDICATOR([unistr/u8-uctomb]) gl_LIBUNISTRING_MODULE([0.9], [unistr/u8-uctomb]) gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h]) # End of code from modules m4_ifval(lgl_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([lgl_LIBSOURCES_DIR])[ || for gl_file in ]lgl_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([lgl_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([lgl_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([lgl_LIBSOURCES_DIR]) m4_popdef([lgl_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ lgl_libobjs= lgl_ltlibobjs= if test -n "$lgl_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgl_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgl_libobjs="$lgl_libobjs $i.$ac_objext" lgl_ltlibobjs="$lgl_ltlibobjs $i.lo" done fi AC_SUBST([lgl_LIBOBJS], [$lgl_libobjs]) AC_SUBST([lgl_LTLIBOBJS], [$lgl_ltlibobjs]) ]) gltests_libdeps= gltests_ltlibdeps= m4_pushdef([AC_LIBOBJ], m4_defn([lgltests_LIBOBJ])) m4_pushdef([AC_REPLACE_FUNCS], m4_defn([lgltests_REPLACE_FUNCS])) m4_pushdef([AC_LIBSOURCES], m4_defn([lgltests_LIBSOURCES])) m4_pushdef([lgltests_LIBSOURCES_LIST], []) m4_pushdef([lgltests_LIBSOURCES_DIR], []) gl_COMMON gl_source_base='lib/gltests' changequote(,)dnl lgltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS changequote([, ])dnl AC_SUBST([lgltests_WITNESS]) gl_module_indicator_condition=$lgltests_WITNESS m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition]) gl_FUNC_ALLOCA gt_LOCALE_FR gt_LOCALE_TR_UTF8 gl_ENVIRON gl_UNISTD_MODULE_INDICATOR([environ]) AC_REQUIRE([gl_EXTERN_INLINE]) gl_INTTYPES_H gl_INTTYPES_INCOMPLETE gl_LOCALE_H AC_CHECK_FUNCS_ONCE([newlocale]) gl_LOCALENAME AC_CHECK_FUNCS_ONCE([newlocale]) gl_LOCK gl_MODULE_INDICATOR([lock]) gl_FUNC_MALLOC_POSIX if test $REPLACE_MALLOC = 1; then AC_LIBOBJ([malloc]) fi gl_STDLIB_MODULE_INDICATOR([malloc-posix]) gl_MALLOCA gl_FUNC_PUTENV if test $REPLACE_PUTENV = 1; then AC_LIBOBJ([putenv]) gl_PREREQ_PUTENV fi gl_STDLIB_MODULE_INDICATOR([putenv]) gl_FUNC_SETENV if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then AC_LIBOBJ([setenv]) fi gl_STDLIB_MODULE_INDICATOR([setenv]) gl_FUNC_SETLOCALE if test $REPLACE_SETLOCALE = 1; then AC_LIBOBJ([setlocale]) gl_PREREQ_SETLOCALE fi gl_LOCALE_MODULE_INDICATOR([setlocale]) gt_LOCALE_FR gt_LOCALE_FR_UTF8 gt_LOCALE_JA gt_LOCALE_ZH_CN gt_TYPE_SSIZE_T AC_REQUIRE([gt_TYPE_WCHAR_T]) AC_REQUIRE([gt_TYPE_WINT_T]) gl_STDLIB_H gl_SYS_TYPES_H AC_PROG_MKDIR_P gl_THREAD gl_THREADLIB gl_UNISTD_H gl_FUNC_UNSETENV if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then AC_LIBOBJ([unsetenv]) gl_PREREQ_UNSETENV fi gl_STDLIB_MODULE_INDICATOR([unsetenv]) gl_WCHAR_H gl_YIELD m4_popdef([gl_MODULE_INDICATOR_CONDITION]) m4_ifval(lgltests_LIBSOURCES_LIST, [ m4_syscmd([test ! -d ]m4_defn([lgltests_LIBSOURCES_DIR])[ || for gl_file in ]lgltests_LIBSOURCES_LIST[ ; do if test ! -r ]m4_defn([lgltests_LIBSOURCES_DIR])[/$gl_file ; then echo "missing file ]m4_defn([lgltests_LIBSOURCES_DIR])[/$gl_file" >&2 exit 1 fi done])dnl m4_if(m4_sysval, [0], [], [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])]) ]) m4_popdef([lgltests_LIBSOURCES_DIR]) m4_popdef([lgltests_LIBSOURCES_LIST]) m4_popdef([AC_LIBSOURCES]) m4_popdef([AC_REPLACE_FUNCS]) m4_popdef([AC_LIBOBJ]) AC_CONFIG_COMMANDS_PRE([ lgltests_libobjs= lgltests_ltlibobjs= if test -n "$lgltests_LIBOBJS"; then # Remove the extension. sed_drop_objext='s/\.o$//;s/\.obj$//' for i in `for i in $lgltests_LIBOBJS; do echo "$i"; done | sed -e "$sed_drop_objext" | sort | uniq`; do lgltests_libobjs="$lgltests_libobjs $i.$ac_objext" lgltests_ltlibobjs="$lgltests_ltlibobjs $i.lo" done fi AC_SUBST([lgltests_LIBOBJS], [$lgltests_libobjs]) AC_SUBST([lgltests_LTLIBOBJS], [$lgltests_ltlibobjs]) ]) LIBTESTS_LIBDEPS="$gltests_libdeps" AC_SUBST([LIBTESTS_LIBDEPS]) ]) # Like AC_LIBOBJ, except that the module name goes # into lgl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgl_LIBOBJ], [ AS_LITERAL_IF([$1], [lgl_LIBSOURCES([$1.c])])dnl lgl_LIBOBJS="$lgl_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into lgl_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgl_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [lgl_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([lgl_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([lgl_LIBSOURCES_DIR], [lib/gl]) m4_append([lgl_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # Like AC_LIBOBJ, except that the module name goes # into lgltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgltests_LIBOBJ], [ AS_LITERAL_IF([$1], [lgltests_LIBSOURCES([$1.c])])dnl lgltests_LIBOBJS="$lgltests_LIBOBJS $1.$ac_objext" ]) # Like AC_REPLACE_FUNCS, except that the module name goes # into lgltests_LIBOBJS instead of into LIBOBJS. AC_DEFUN([lgltests_REPLACE_FUNCS], [ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl AC_CHECK_FUNCS([$1], , [lgltests_LIBOBJ($ac_func)]) ]) # Like AC_LIBSOURCES, except the directory where the source file is # expected is derived from the gnulib-tool parameterization, # and alloca is special cased (for the alloca-opt module). # We could also entirely rely on EXTRA_lib..._SOURCES. AC_DEFUN([lgltests_LIBSOURCES], [ m4_foreach([_gl_NAME], [$1], [ m4_if(_gl_NAME, [alloca.c], [], [ m4_define([lgltests_LIBSOURCES_DIR], [lib/gltests]) m4_append([lgltests_LIBSOURCES_LIST], _gl_NAME, [ ]) ]) ]) ]) # This macro records the list of files which have been installed by # gnulib-tool and may be removed by future gnulib-tool invocations. AC_DEFUN([lgl_FILE_LIST], [ build-aux/config.rpath build-aux/snippet/_Noreturn.h build-aux/snippet/arg-nonnull.h build-aux/snippet/c++defs.h build-aux/snippet/unused-parameter.h build-aux/snippet/warn-on-use.h lib/c-ctype.c lib/c-ctype.h lib/c-strcase.h lib/c-strcasecmp.c lib/c-strncasecmp.c lib/gettext.h lib/iconv.c lib/iconv.in.h lib/iconv_close.c lib/iconv_open-aix.gperf lib/iconv_open-hpux.gperf lib/iconv_open-irix.gperf lib/iconv_open-osf.gperf lib/iconv_open-solaris.gperf lib/iconv_open.c lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/striconv.c lib/striconv.h lib/string.in.h lib/strverscmp.c lib/unistr.in.h lib/unistr/u8-mbtoucr.c lib/unistr/u8-uctomb-aux.c lib/unistr/u8-uctomb.c lib/unitypes.in.h m4/00gnulib.m4 m4/alloca.m4 m4/codeset.m4 m4/eealloc.m4 m4/environ.m4 m4/extensions.m4 m4/extern-inline.m4 m4/gnulib-common.m4 m4/iconv.m4 m4/iconv_h.m4 m4/iconv_open.m4 m4/include_next.m4 m4/inline.m4 m4/intlmacosx.m4 m4/inttypes-pri.m4 m4/inttypes.m4 m4/lcmessage.m4 m4/ld-output-def.m4 m4/ld-version-script.m4 m4/lib-ld.m4 m4/lib-link.m4 m4/lib-prefix.m4 m4/libunistring-base.m4 m4/locale-fr.m4 m4/locale-ja.m4 m4/locale-tr.m4 m4/locale-zh.m4 m4/locale_h.m4 m4/localename.m4 m4/lock.m4 m4/longlong.m4 m4/malloc.m4 m4/malloca.m4 m4/multiarch.m4 m4/off_t.m4 m4/putenv.m4 m4/setenv.m4 m4/setlocale.m4 m4/ssize_t.m4 m4/stdbool.m4 m4/stddef_h.m4 m4/stdint.m4 m4/stdlib_h.m4 m4/string_h.m4 m4/strverscmp.m4 m4/sys_types_h.m4 m4/thread.m4 m4/threadlib.m4 m4/unistd_h.m4 m4/visibility.m4 m4/warn-on-use.m4 m4/wchar_h.m4 m4/wchar_t.m4 m4/wint_t.m4 m4/yield.m4 tests/init.sh tests/macros.h tests/signature.h tests/test-alloca-opt.c tests/test-c-ctype.c tests/test-c-strcase.sh tests/test-c-strcasecmp.c tests/test-c-strncasecmp.c tests/test-environ.c tests/test-iconv.c tests/test-init.sh tests/test-intprops.c tests/test-inttypes.c tests/test-locale.c tests/test-localename.c tests/test-lock.c tests/test-malloca.c tests/test-setenv.c tests/test-setlocale1.c tests/test-setlocale1.sh tests/test-setlocale2.c tests/test-setlocale2.sh tests/test-stdbool.c tests/test-stddef.c tests/test-stdint.c tests/test-stdlib.c tests/test-striconv.c tests/test-strverscmp.c tests/test-sys_types.c tests/test-sys_wait.h tests/test-thread_create.c tests/test-thread_self.c tests/test-unistd.c tests/test-unsetenv.c tests/test-verify.c tests/test-verify.sh tests/unistr/test-u8-mbtoucr.c tests/unistr/test-u8-uctomb.c tests=lib/alloca.in.h tests=lib/glthread/lock.c tests=lib/glthread/lock.h tests=lib/glthread/thread.c tests=lib/glthread/thread.h tests=lib/glthread/threadlib.c tests=lib/glthread/yield.h tests=lib/intprops.h tests=lib/inttypes.in.h tests=lib/locale.in.h tests=lib/localename.c tests=lib/localename.h tests=lib/malloc.c tests=lib/malloca.c tests=lib/malloca.h tests=lib/malloca.valgrind tests=lib/putenv.c tests=lib/setenv.c tests=lib/setlocale.c tests=lib/stdlib.in.h tests=lib/sys_types.in.h tests=lib/unistd.c tests=lib/unistd.in.h tests=lib/unsetenv.c tests=lib/verify.h tests=lib/wchar.in.h ]) libidn-1.28/lib/gl/m4/localename.m40000644000000000000000000000064212153706106013631 00000000000000# localename.m4 serial 2 dnl Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_LOCALENAME], [ AC_REQUIRE([gt_LC_MESSAGES]) AC_REQUIRE([gt_INTL_MACOSX]) AC_CHECK_FUNCS([setlocale uselocale]) ]) libidn-1.28/lib/gl/m4/locale-fr.m40000644000000000000000000002422512153706106013400 00000000000000# locale-fr.m4 serial 17 dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a french locale with traditional encoding. AC_DEFUN([gt_LOCALE_FR], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only one byte long. This excludes the UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 3 || buf[2] != 'v') return 1; #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the native Windows locale name. if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=French_France.1252 else # None found. gt_cv_locale_fr=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO-8859-1 else # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name. if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.ISO8859-1 else # Test for the HP-UX locale name. if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr_FR.iso88591 else # Test for the Solaris 7 locale name. if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr=fr else # None found. gt_cv_locale_fr=none fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR=$gt_cv_locale_fr AC_SUBST([LOCALE_FR]) ]) dnl Determine the name of a french locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_FR_UTF8], [ AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. */ #if !(defined __BEOS__ || defined __HAIKU__) /* Check whether the given locale name is recognized by the system. */ # if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; # else if (setlocale (LC_ALL, "") == NULL) return 1; # endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ # if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } # endif # ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; # endif /* Check whether in the abbreviation of the second month, the second character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v') return 1; #endif #if !defined __BIONIC__ /* Bionic libc's 'struct lconv' is just a dummy. */ /* Check whether the decimal separator is a comma. On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point are nl_langinfo(RADIXCHAR) are both ".". */ if (localeconv () ->decimal_point[0] != ',') return 1; #endif return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=French_France.65001 else # None found. gt_cv_locale_fr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr_FR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_fr_utf8=fr.UTF-8 else # None found. gt_cv_locale_fr_utf8=none fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8 AC_SUBST([LOCALE_FR_UTF8]) ]) libidn-1.28/lib/gl/m4/gnulib-cache.m40000644000000000000000000000434212153706111014047 00000000000000# Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # # This file represents the specification of how gnulib-tool is used. # It acts as a cache: It is written and read by gnulib-tool. # In projects that use version control, this file is meant to be put under # version control, like the configure.ac and various Makefile.am files. # Specification in the form of a command-line invocation: # gnulib-tool --import --dir=. --local-dir=lib/gl/override --lib=libgnu --source-base=lib/gl --m4-base=lib/gl/m4 --doc-base=doc --tests-base=lib/gltests --aux-dir=build-aux --with-tests --avoid=iconv-h-tests --avoid=string-tests --avoid=wchar-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=lgl --no-vc-files gettext-h lib-msvc-compat lib-symbol-versions lib-symbol-visibility stdint striconv strverscmp # Specification in the form of a few gnulib-tool.m4 macro invocations: gl_LOCAL_DIR([lib/gl/override]) gl_MODULES([ gettext-h lib-msvc-compat lib-symbol-versions lib-symbol-visibility stdint striconv strverscmp ]) gl_AVOID([iconv-h-tests string-tests wchar-tests]) gl_SOURCE_BASE([lib/gl]) gl_M4_BASE([lib/gl/m4]) gl_PO_BASE([]) gl_DOC_BASE([doc]) gl_TESTS_BASE([lib/gltests]) gl_WITH_TESTS gl_LIB([libgnu]) gl_LGPL([2]) gl_MAKEFILE_NAME([]) gl_LIBTOOL gl_MACRO_PREFIX([lgl]) gl_PO_DOMAIN([]) gl_WITNESS_C_MACRO([]) gl_VC_FILES([false]) libidn-1.28/lib/gl/m4/ld-output-def.m40000644000000000000000000000203612153706106014221 00000000000000# ld-output-def.m4 serial 2 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Simon Josefsson # gl_LD_OUTPUT_DEF() # ------------- # Check if linker supports -Wl,--output-def and define automake # conditional HAVE_LD_OUTPUT_DEF if it is. AC_DEFUN([gl_LD_OUTPUT_DEF], [ AC_CACHE_CHECK([if gcc/ld supports -Wl,--output-def], [gl_cv_ld_output_def], [if test "$enable_shared" = no; then gl_cv_ld_output_def="not needed, shared libraries are disabled" else gl_ldflags_save=$LDFLAGS LDFLAGS="-Wl,--output-def,conftest.def" AC_LINK_IFELSE([AC_LANG_PROGRAM([])], [gl_cv_ld_output_def=yes], [gl_cv_ld_output_def=no]) rm -f conftest.def LDFLAGS="$gl_ldflags_save" fi]) AM_CONDITIONAL([HAVE_LD_OUTPUT_DEF], test "x$gl_cv_ld_output_def" = "xyes") ]) libidn-1.28/lib/gl/m4/iconv_h.m40000644000000000000000000000254112153706106013156 00000000000000# iconv_h.m4 serial 8 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_ICONV_H], [ AC_REQUIRE([gl_ICONV_H_DEFAULTS]) dnl Execute this unconditionally, because ICONV_H may be set by other dnl modules, after this code is executed. gl_CHECK_NEXT_HEADERS([iconv.h]) ]) dnl Unconditionally enables the replacement of . AC_DEFUN([gl_REPLACE_ICONV_H], [ AC_REQUIRE([gl_ICONV_H_DEFAULTS]) ICONV_H='iconv.h' AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"]) ]) AC_DEFUN([gl_ICONV_MODULE_INDICATOR], [ dnl Use AC_REQUIRE here, so that the default settings are expanded once only. AC_REQUIRE([gl_ICONV_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) ]) AC_DEFUN([gl_ICONV_H_DEFAULTS], [ GNULIB_ICONV=0; AC_SUBST([GNULIB_ICONV]) dnl Assume proper GNU behavior unless another module says otherwise. ICONV_CONST=; AC_SUBST([ICONV_CONST]) REPLACE_ICONV=0; AC_SUBST([REPLACE_ICONV]) REPLACE_ICONV_OPEN=0; AC_SUBST([REPLACE_ICONV_OPEN]) REPLACE_ICONV_UTF=0; AC_SUBST([REPLACE_ICONV_UTF]) ICONV_H=''; AC_SUBST([ICONV_H]) AM_CONDITIONAL([GL_GENERATE_ICONV_H], [test -n "$ICONV_H"]) ]) libidn-1.28/lib/gl/m4/thread.m40000644000000000000000000000076112153706107013003 00000000000000# thread.m4 serial 3 dnl Copyright (C) 2008-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_THREAD], [ AC_REQUIRE([gl_THREADLIB]) if test $gl_threads_api = posix; then gl_save_LIBS="$LIBS" LIBS="$LIBS $LIBMULTITHREAD" AC_CHECK_FUNCS([pthread_atfork]) LIBS="$gl_save_LIBS" fi ]) libidn-1.28/lib/gl/m4/libunistring-base.m40000644000000000000000000001426012153706106015153 00000000000000# libunistring-base.m4 serial 5 dnl Copyright (C) 2010-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paolo Bonzini and Bruno Haible. dnl gl_LIBUNISTRING_MODULE([VERSION], [Module]) dnl Declares that the source files of Module should be compiled, unless we dnl are linking with libunistring and its version is >= the given VERSION. dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is dnl true if the source files of Module should be compiled. dnl This macro is to be used for public libunistring API, not for dnl undocumented API. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a change that affects the behaviour of the dnl functions defined in Module (even if the sources of Module itself do not dnl change). AC_DEFUN([gl_LIBUNISTRING_MODULE], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]), [gl_LIBUNISTRING_VERSION_CMP([$1])]) ]) dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile]) dnl Declares that HeaderFile should be created, unless we are linking dnl with libunistring and its version is >= the given VERSION. dnl HeaderFile should be relative to the lib directory and end in '.h'. dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty). dnl dnl When we are linking with the already installed libunistring and its version dnl is < VERSION, we create HeaderFile here, because we may compile functions dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed dnl version. dnl When we are linking with the already installed libunistring and its version dnl is > VERSION, we don't create HeaderFile here: it could cause compilation dnl errors in other libunistring header files if some types are missing. dnl dnl You have to bump the VERSION argument to the next projected version dnl number each time you make a non-comment change to the HeaderFile. AC_DEFUN([gl_LIBUNISTRING_LIBHEADER], [ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE]) dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from dnl gl_LIBUNISTRING_CORE if that macro has been run. if gl_LIBUNISTRING_VERSION_CMP([$1]); then LIBUNISTRING_[]AS_TR_CPP([$2])='$2' else LIBUNISTRING_[]AS_TR_CPP([$2])= fi AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2])) ]) dnl Miscellaneous preparations/initializations. AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE], [ dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point. m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])]) AC_REQUIRE([AC_PROG_AWK]) dnl Sed expressions to extract the parts of a version number. changequote(,) gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;} i\ 0 q ' changequote([,]) if test "$HAVE_LIBUNISTRING" = yes; then LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"` LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"` LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"` fi ]) dnl gl_LIBUNISTRING_VERSION_CMP([VERSION]) dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION dnl is less than the VERSION argument. AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP], [ { test "$HAVE_LIBUNISTRING" != yes \ || { dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least. AS_LITERAL_IF([$1], [dnl This is the optimized variant, that assumes the argument is a literal: m4_pushdef([requested_version_major], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])]) m4_pushdef([requested_version_minor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) m4_pushdef([requested_version_subminor], [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])]) test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor } } } m4_popdef([requested_version_subminor]) m4_popdef([requested_version_minor]) m4_popdef([requested_version_major]) ], [dnl This is the unoptimized variant: requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"` requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"` requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"` test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \ || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \ && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \ || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \ && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor } } } ]) } }]) dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the dnl same as ORIG, otherwise to 0. m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])]) libidn-1.28/lib/gl/m4/yield.m40000644000000000000000000000135712153706107012644 00000000000000# yield.m4 serial 2 dnl Copyright (C) 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_YIELD], [ AC_REQUIRE([gl_THREADLIB]) dnl On some systems, sched_yield is in librt, rather than in libpthread. YIELD_LIB= if test $gl_threads_api = posix; then dnl Solaris has sched_yield in librt, not in libpthread or libc. AC_CHECK_LIB([rt], [sched_yield], [YIELD_LIB=-lrt], [dnl Solaris 2.5.1, 2.6 has sched_yield in libposix4, not librt. AC_CHECK_LIB([posix4], [sched_yield], [YIELD_LIB=-lposix4])]) fi AC_SUBST([YIELD_LIB]) ]) libidn-1.28/lib/gl/m4/strverscmp.m40000644000000000000000000000120612153706106013736 00000000000000# strverscmp.m4 serial 8 dnl Copyright (C) 2002, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_STRVERSCMP], [ dnl Persuade glibc to declare strverscmp(). AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_CHECK_FUNCS([strverscmp]) if test $ac_cv_func_strverscmp = no; then HAVE_STRVERSCMP=0 fi ]) # Prerequisites of lib/strverscmp.c. AC_DEFUN([gl_PREREQ_STRVERSCMP], [ : ]) libidn-1.28/lib/gl/m4/locale-tr.m40000644000000000000000000001211112153706106013405 00000000000000# locale-tr.m4 serial 10 dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a turkish locale with UTF-8 encoding. AC_DEFUN([gt_LOCALE_TR_UTF8], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a turkish Unicode locale], [gt_cv_locale_tr_utf8], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { /* On BeOS, locales are not implemented in libc. Rather, libintl imitates locale dependent behaviour by looking at the environment variables, and all locales use the UTF-8 encoding. But BeOS does not implement the Turkish upper-/lowercase mappings. Therefore, let this program return 1 on BeOS. */ /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the tr_TR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether in the abbreviation of the eighth month, the second character (should be U+011F: LATIN SMALL LETTER G WITH BREVE) is two bytes long, with UTF-8 encoding. */ t.tm_year = 1992 - 1900; t.tm_mon = 8 - 1; t.tm_mday = 19; if (strftime (buf, sizeof (buf), "%b", &t) < 4 || buf[1] != (char) 0xc4 || buf[2] != (char) 0x9f) return 1; /* Check whether the upper-/lowercase mappings are as expected for Turkish. */ if (towupper ('i') != 0x0130 || towlower (0x0130) != 'i' || towupper(0x0131) != 'I' || towlower ('I') != 0x0131) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Test for the hypothetical native Windows locale name. if (LC_ALL=Turkish_Turkey.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=Turkish_Turkey.65001 else # None found. gt_cv_locale_tr_utf8=none fi ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the usual locale name. if (LC_ALL=tr_TR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR else # Test for the locale name with explicit encoding suffix. if (LC_ALL=tr_TR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr_TR.UTF-8 else # Test for the Solaris 7 locale name. if (LC_ALL=tr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_tr_utf8=tr.UTF-8 else # None found. gt_cv_locale_tr_utf8=none fi fi fi ;; esac else gt_cv_locale_tr_utf8=none fi rm -fr conftest* ]) LOCALE_TR_UTF8=$gt_cv_locale_tr_utf8 AC_SUBST([LOCALE_TR_UTF8]) ]) libidn-1.28/lib/gl/m4/setlocale.m40000644000000000000000000000154312153706106013505 00000000000000# setlocale.m4 serial 4 dnl Copyright (C) 2011-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_SETLOCALE], [ AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) case "$host_os" in dnl On native Windows systems, setlocale(category,NULL) does not look at dnl the environment variables LC_ALL, category, and LANG. mingw*) REPLACE_SETLOCALE=1 ;; dnl On Cygwin 1.5.x, setlocale always succeeds but setlocale(LC_CTYPE,NULL) dnl is then still "C". cygwin*) case `uname -r` in 1.5.*) REPLACE_SETLOCALE=1 ;; esac ;; esac ]) # Prerequisites of lib/setlocale.c. AC_DEFUN([gl_PREREQ_SETLOCALE], [ : ]) libidn-1.28/lib/gl/m4/locale-ja.m40000644000000000000000000001260312153706106013360 00000000000000# locale-ja.m4 serial 12 dnl Copyright (C) 2003, 2005-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. dnl Determine the name of a japanese locale with EUC-JP encoding. AC_DEFUN([gt_LOCALE_JA], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AM_LANGINFO_CODESET]) AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [ AC_LANG_CONFTEST([AC_LANG_SOURCE([ changequote(,)dnl #include #include #if HAVE_LANGINFO_CODESET # include #endif #include #include struct tm t; char buf[16]; int main () { const char *p; /* Check whether the given locale name is recognized by the system. */ #if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE category of the locale to "C". */ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0) return 1; #else if (setlocale (LC_ALL, "") == NULL) return 1; #endif /* Check whether nl_langinfo(CODESET) is nonempty and not "ASCII" or "646". On Mac OS X 10.3.5 (Darwin 7.5) in the fr_FR locale, nl_langinfo(CODESET) is empty, and the behaviour of Tcl 8.4 in this locale is not useful. On OpenBSD 4.0, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "646". In this situation, some unit tests fail. On MirBSD 10, when an unsupported locale is specified, setlocale() succeeds but then nl_langinfo(CODESET) is "UTF-8". */ #if HAVE_LANGINFO_CODESET { const char *cs = nl_langinfo (CODESET); if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0 || strcmp (cs, "UTF-8") == 0) return 1; } #endif #ifdef __CYGWIN__ /* On Cygwin, avoid locale names without encoding suffix, because the locale_charset() function relies on the encoding suffix. Note that LC_ALL is set on the command line. */ if (strchr (getenv ("LC_ALL"), '.') == NULL) return 1; #endif /* Check whether MB_CUR_MAX is > 1. This excludes the dysfunctional locales on Cygwin 1.5.x. */ if (MB_CUR_MAX == 1) return 1; /* Check whether in a month name, no byte in the range 0x80..0x9F occurs. This excludes the UTF-8 encoding (except on MirBSD). */ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4; if (strftime (buf, sizeof (buf), "%B", &t) < 2) return 1; for (p = buf; *p != '\0'; p++) if ((unsigned char) *p >= 0x80 && (unsigned char) *p < 0xa0) return 1; return 0; } changequote([,])dnl ])]) if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then case "$host_os" in # Handle native Windows specially, because there setlocale() interprets # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256", # "fr" or "fra" as "French" or "French_France.1252", # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252", # "ja" as "Japanese" or "Japanese_Japan.932", # and similar. mingw*) # Note that on native Windows, the Japanese locale is # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we # cannot use it here. gt_cv_locale_ja=none ;; *) # Setting LC_ALL is not enough. Need to set LC_TIME to empty, because # otherwise on Mac OS X 10.3.5 the LC_TIME=C from the beginning of the # configure script would override the LC_ALL setting. Likewise for # LC_CTYPE, which is also set at the beginning of the configure script. # Test for the AIX locale name. if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP else # Test for the locale name with explicit encoding suffix. if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC-JP else # Test for the HP-UX, OSF/1, NetBSD locale name. if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.eucJP else # Test for the IRIX, FreeBSD locale name. if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja_JP.EUC else # Test for the Solaris 7 locale name. if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then gt_cv_locale_ja=ja else # Special test for NetBSD 1.6. if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then gt_cv_locale_ja=ja_JP.eucJP else # None found. gt_cv_locale_ja=none fi fi fi fi fi fi ;; esac fi rm -fr conftest* ]) LOCALE_JA=$gt_cv_locale_ja AC_SUBST([LOCALE_JA]) ]) libidn-1.28/lib/gl/m4/inline.m40000644000000000000000000000315412153706106013010 00000000000000# inline.m4 serial 4 dnl Copyright (C) 2006, 2009-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Test for the 'inline' keyword or equivalent. dnl Define 'inline' to a supported equivalent, or to nothing if not supported, dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an dnl equivalent is effectively supported, i.e. if the compiler is likely to dnl drop unused 'static inline' functions. AC_DEFUN([gl_INLINE], [ AC_REQUIRE([AC_C_INLINE]) AC_CACHE_CHECK([whether the compiler generally respects inline], [gl_cv_c_inline_effective], [if test $ac_cv_c_inline = no; then gl_cv_c_inline_effective=no else dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is dnl specified. dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result dnl depends on optimization flags, which can be in CFLAGS. dnl (AC_EGREP_CPP looks only at the CPPFLAGS.) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM([[]], [[#ifdef __NO_INLINE__ #error "inline is not effective" #endif]])], [gl_cv_c_inline_effective=yes], [gl_cv_c_inline_effective=no]) fi ]) if test $gl_cv_c_inline_effective = yes; then AC_DEFINE([HAVE_INLINE], [1], [Define to 1 if the compiler supports one of the keywords 'inline', '__inline__', '__inline' and effectively inlines functions marked as such.]) fi ]) libidn-1.28/lib/gl/m4/iconv_open.m40000644000000000000000000000367112153706106013675 00000000000000# iconv_open.m4 serial 14 dnl Copyright (C) 2007-2013 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. AC_DEFUN([gl_FUNC_ICONV_OPEN], [ AC_REQUIRE([AM_ICONV]) AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_ICONV_H_DEFAULTS]) if test "$am_cv_func_iconv" = yes; then dnl Provide the override, for the sake of the C++ aliases. gl_REPLACE_ICONV_H dnl Test whether iconv_open accepts standardized encoding names. dnl We know that GNU libiconv and GNU libc do. AC_EGREP_CPP([gnu_iconv], [ #include #if defined _LIBICONV_VERSION || (defined __GLIBC__ && !defined __UCLIBC__) gnu_iconv #endif ], [gl_func_iconv_gnu=yes], [gl_func_iconv_gnu=no]) if test $gl_func_iconv_gnu = no; then iconv_flavor= case "$host_os" in aix*) iconv_flavor=ICONV_FLAVOR_AIX ;; irix*) iconv_flavor=ICONV_FLAVOR_IRIX ;; hpux*) iconv_flavor=ICONV_FLAVOR_HPUX ;; osf*) iconv_flavor=ICONV_FLAVOR_OSF ;; solaris*) iconv_flavor=ICONV_FLAVOR_SOLARIS ;; esac if test -n "$iconv_flavor"; then AC_DEFINE_UNQUOTED([ICONV_FLAVOR], [$iconv_flavor], [Define to a symbolic name denoting the flavor of iconv_open() implementation.]) gl_REPLACE_ICONV_OPEN fi fi m4_ifdef([gl_FUNC_ICONV_OPEN_UTF_SUPPORT], [ gl_FUNC_ICONV_OPEN_UTF_SUPPORT if test $gl_cv_func_iconv_supports_utf = no; then REPLACE_ICONV_UTF=1 AC_DEFINE([REPLACE_ICONV_UTF], [1], [Define if the iconv() functions are enhanced to handle the UTF-{16,32}{BE,LE} encodings.]) REPLACE_ICONV=1 gl_REPLACE_ICONV_OPEN fi ]) fi ]) AC_DEFUN([gl_REPLACE_ICONV_OPEN], [ gl_REPLACE_ICONV_H REPLACE_ICONV_OPEN=1 ]) libidn-1.28/lib/gl/iconv_open-osf.h0000644000000000000000000002544112167245576014066 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-osf.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-osf.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 38 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 47 /* maximum key range = 42, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 2, 29, 24, 34, 31, 0, 15, 14, 10, 13, 2, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 7, 48, 48, 48, 48, 48, 48, 11, 48, 2, 7, 48, 48, 48, 1, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48 }; return len + asso_values[(unsigned char)str[3]+3] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("CP1255")]; char stringpool_str7[sizeof("CP775")]; char stringpool_str8[sizeof("CP1250")]; char stringpool_str9[sizeof("EUC-TW")]; char stringpool_str10[sizeof("EUC-KR")]; char stringpool_str11[sizeof("TIS-620")]; char stringpool_str12[sizeof("ISO-8859-5")]; char stringpool_str13[sizeof("ISO-8859-15")]; char stringpool_str14[sizeof("BIG5")]; char stringpool_str15[sizeof("CP855")]; char stringpool_str16[sizeof("CP1258")]; char stringpool_str17[sizeof("CP850")]; char stringpool_str18[sizeof("CP865")]; char stringpool_str19[sizeof("EUC-JP")]; char stringpool_str20[sizeof("CP1257")]; char stringpool_str21[sizeof("CP1256")]; char stringpool_str22[sizeof("ISO-8859-8")]; char stringpool_str23[sizeof("SHIFT_JIS")]; char stringpool_str25[sizeof("ISO-8859-9")]; char stringpool_str26[sizeof("ISO-8859-7")]; char stringpool_str27[sizeof("ISO-8859-6")]; char stringpool_str29[sizeof("CP857")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("CP869")]; char stringpool_str32[sizeof("CP949")]; char stringpool_str33[sizeof("CP866")]; char stringpool_str34[sizeof("CP437")]; char stringpool_str35[sizeof("CP1251")]; char stringpool_str36[sizeof("ISO-8859-2")]; char stringpool_str37[sizeof("CP1254")]; char stringpool_str38[sizeof("CP874")]; char stringpool_str39[sizeof("CP852")]; char stringpool_str40[sizeof("CP1253")]; char stringpool_str41[sizeof("ISO-8859-1")]; char stringpool_str42[sizeof("CP862")]; char stringpool_str43[sizeof("ISO-8859-4")]; char stringpool_str46[sizeof("ISO-8859-3")]; char stringpool_str47[sizeof("CP861")]; }; static const struct stringpool_t stringpool_contents = { "CP1255", "CP775", "CP1250", "EUC-TW", "EUC-KR", "TIS-620", "ISO-8859-5", "ISO-8859-15", "BIG5", "CP855", "CP1258", "CP850", "CP865", "EUC-JP", "CP1257", "CP1256", "ISO-8859-8", "SHIFT_JIS", "ISO-8859-9", "ISO-8859-7", "ISO-8859-6", "CP857", "CP1252", "CP869", "CP949", "CP866", "CP437", "CP1251", "ISO-8859-2", "CP1254", "CP874", "CP852", "CP1253", "ISO-8859-1", "CP862", "ISO-8859-4", "ISO-8859-3", "CP861" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 41 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "cp1255"}, #line 24 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "cp775"}, #line 36 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "cp1250"}, #line 47 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "eucTW"}, #line 46 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "eucKR"}, #line 50 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "TACTIS"}, #line 17 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "ISO8859-5"}, #line 22 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-15"}, #line 48 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "big5"}, #line 27 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "cp855"}, #line 44 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "cp1258"}, #line 25 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "cp850"}, #line 31 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str18, "cp865"}, #line 45 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "eucJP"}, #line 43 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "cp1257"}, #line 42 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "cp1256"}, #line 20 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "ISO8859-8"}, #line 49 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "SJIS"}, {-1}, #line 21 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "ISO8859-9"}, #line 19 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "ISO8859-7"}, #line 18 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, {-1}, #line 28 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "cp857"}, #line 38 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "cp1252"}, #line 33 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "cp869"}, #line 35 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, "KSC5601"}, #line 32 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "cp866"}, #line 23 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "cp437"}, #line 37 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "cp1251"}, #line 14 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, "ISO8859-2"}, #line 40 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, "cp1254"}, #line 34 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "cp874"}, #line 26 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str39, "cp852"}, #line 39 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "cp1253"}, #line 13 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "ISO8859-1"}, #line 30 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, "cp862"}, #line 16 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, "ISO8859-4"}, {-1}, {-1}, #line 15 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, "ISO8859-3"}, #line 29 "./iconv_open-osf.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, "cp861"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.28/lib/gl/iconv_open-osf.gperf0000664000000000000000000000200211746453142014720 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On OSF/1 5.1, look in /usr/lib/nls/loc/iconv. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP437, "cp437" CP775, "cp775" CP850, "cp850" CP852, "cp852" CP855, "cp855" CP857, "cp857" CP861, "cp861" CP862, "cp862" CP865, "cp865" CP866, "cp866" CP869, "cp869" CP874, "cp874" CP949, "KSC5601" CP1250, "cp1250" CP1251, "cp1251" CP1252, "cp1252" CP1253, "cp1253" CP1254, "cp1254" CP1255, "cp1255" CP1256, "cp1256" CP1257, "cp1257" CP1258, "cp1258" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" BIG5, "big5" SHIFT_JIS, "SJIS" TIS-620, "TACTIS" libidn-1.28/lib/gl/string.in.h0000644000000000000000000011651012153706107013036 00000000000000/* A GNU-like . Copyright (C) 1995-1996, 2001-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_STRING_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_STRING_H@ #ifndef _@GUARD_PREFIX@_STRING_H #define _@GUARD_PREFIX@_STRING_H /* NetBSD 5.0 mis-defines NULL. */ #include /* MirBSD defines mbslen as a macro. */ #if @GNULIB_MBSLEN@ && defined __MirBSD__ # include #endif /* The __attribute__ feature is available in gcc versions 2.5 and later. The attribute __pure__ was added in gcc 2.96. */ #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__)) #else # define _GL_ATTRIBUTE_PURE /* empty */ #endif /* NetBSD 5.0 declares strsignal in , not in . */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \ && ! defined __GLIBC__ # include #endif /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSL@ # if !@HAVE_FFSL@ _GL_FUNCDECL_SYS (ffsl, int, (long int i)); # endif _GL_CXXALIAS_SYS (ffsl, int, (long int i)); _GL_CXXALIASWARN (ffsl); #elif defined GNULIB_POSIXCHECK # undef ffsl # if HAVE_RAW_DECL_FFSL _GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module"); # endif #endif /* Find the index of the least-significant set bit. */ #if @GNULIB_FFSLL@ # if !@HAVE_FFSLL@ _GL_FUNCDECL_SYS (ffsll, int, (long long int i)); # endif _GL_CXXALIAS_SYS (ffsll, int, (long long int i)); _GL_CXXALIASWARN (ffsll); #elif defined GNULIB_POSIXCHECK # undef ffsll # if HAVE_RAW_DECL_FFSLL _GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module"); # endif #endif /* Return the first instance of C within N bytes of S, or NULL. */ #if @GNULIB_MEMCHR@ # if @REPLACE_MEMCHR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memchr rpl_memchr # endif _GL_FUNCDECL_RPL (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n)); # else # if ! @HAVE_MEMCHR@ _GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const void * std::memchr (const void *, int, size_t); } extern "C++" { void * std::memchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memchr, void *, (void const *__s, int __c, size_t __n), void const *, (void const *__s, int __c, size_t __n)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n)); _GL_CXXALIASWARN1 (memchr, void const *, (void const *__s, int __c, size_t __n)); # else _GL_CXXALIASWARN (memchr); # endif #elif defined GNULIB_POSIXCHECK # undef memchr /* Assume memchr is always declared. */ _GL_WARN_ON_USE (memchr, "memchr has platform-specific bugs - " "use gnulib module memchr for portability" ); #endif /* Return the first occurrence of NEEDLE in HAYSTACK. */ #if @GNULIB_MEMMEM@ # if @REPLACE_MEMMEM@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define memmem rpl_memmem # endif _GL_FUNCDECL_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); _GL_CXXALIAS_RPL (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # else # if ! @HAVE_DECL_MEMMEM@ _GL_FUNCDECL_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 3))); # endif _GL_CXXALIAS_SYS (memmem, void *, (void const *__haystack, size_t __haystack_len, void const *__needle, size_t __needle_len)); # endif _GL_CXXALIASWARN (memmem); #elif defined GNULIB_POSIXCHECK # undef memmem # if HAVE_RAW_DECL_MEMMEM _GL_WARN_ON_USE (memmem, "memmem is unportable and often quadratic - " "use gnulib module memmem-simple for portability, " "and module memmem for speed" ); # endif #endif /* Copy N bytes of SRC to DEST, return pointer to bytes after the last written byte. */ #if @GNULIB_MEMPCPY@ # if ! @HAVE_MEMPCPY@ _GL_FUNCDECL_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (mempcpy, void *, (void *restrict __dest, void const *restrict __src, size_t __n)); _GL_CXXALIASWARN (mempcpy); #elif defined GNULIB_POSIXCHECK # undef mempcpy # if HAVE_RAW_DECL_MEMPCPY _GL_WARN_ON_USE (mempcpy, "mempcpy is unportable - " "use gnulib module mempcpy for portability"); # endif #endif /* Search backwards through a block for a byte (specified as an int). */ #if @GNULIB_MEMRCHR@ # if ! @HAVE_DECL_MEMRCHR@ _GL_FUNCDECL_SYS (memrchr, void *, (void const *, int, size_t) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::memrchr (const void *, int, size_t); } extern "C++" { void * std::memrchr (void *, int, size_t); } */ _GL_CXXALIAS_SYS_CAST2 (memrchr, void *, (void const *, int, size_t), void const *, (void const *, int, size_t)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t)); _GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t)); # else _GL_CXXALIASWARN (memrchr); # endif #elif defined GNULIB_POSIXCHECK # undef memrchr # if HAVE_RAW_DECL_MEMRCHR _GL_WARN_ON_USE (memrchr, "memrchr is unportable - " "use gnulib module memrchr for portability"); # endif #endif /* Find the first occurrence of C in S. More efficient than memchr(S,C,N), at the expense of undefined behavior if C does not occur within N bytes. */ #if @GNULIB_RAWMEMCHR@ # if ! @HAVE_RAWMEMCHR@ _GL_FUNCDECL_SYS (rawmemchr, void *, (void const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const void * std::rawmemchr (const void *, int); } extern "C++" { void * std::rawmemchr (void *, int); } */ _GL_CXXALIAS_SYS_CAST2 (rawmemchr, void *, (void const *__s, int __c_in), void const *, (void const *__s, int __c_in)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in)); _GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in)); # else _GL_CXXALIASWARN (rawmemchr); # endif #elif defined GNULIB_POSIXCHECK # undef rawmemchr # if HAVE_RAW_DECL_RAWMEMCHR _GL_WARN_ON_USE (rawmemchr, "rawmemchr is unportable - " "use gnulib module rawmemchr for portability"); # endif #endif /* Copy SRC to DST, returning the address of the terminating '\0' in DST. */ #if @GNULIB_STPCPY@ # if ! @HAVE_STPCPY@ _GL_FUNCDECL_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpcpy, char *, (char *restrict __dst, char const *restrict __src)); _GL_CXXALIASWARN (stpcpy); #elif defined GNULIB_POSIXCHECK # undef stpcpy # if HAVE_RAW_DECL_STPCPY _GL_WARN_ON_USE (stpcpy, "stpcpy is unportable - " "use gnulib module stpcpy for portability"); # endif #endif /* Copy no more than N bytes of SRC to DST, returning a pointer past the last non-NUL byte written into DST. */ #if @GNULIB_STPNCPY@ # if @REPLACE_STPNCPY@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef stpncpy # define stpncpy rpl_stpncpy # endif _GL_FUNCDECL_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # else # if ! @HAVE_STPNCPY@ _GL_FUNCDECL_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (stpncpy, char *, (char *restrict __dst, char const *restrict __src, size_t __n)); # endif _GL_CXXALIASWARN (stpncpy); #elif defined GNULIB_POSIXCHECK # undef stpncpy # if HAVE_RAW_DECL_STPNCPY _GL_WARN_ON_USE (stpncpy, "stpncpy is unportable - " "use gnulib module stpncpy for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strchr /* Assume strchr is always declared. */ _GL_WARN_ON_USE (strchr, "strchr cannot work correctly on character strings " "in some multibyte locales - " "use mbschr if you care about internationalization"); #endif /* Find the first occurrence of C in S or the final NUL byte. */ #if @GNULIB_STRCHRNUL@ # if @REPLACE_STRCHRNUL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strchrnul rpl_strchrnul # endif _GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strchrnul, char *, (const char *str, int ch)); # else # if ! @HAVE_STRCHRNUL@ _GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * std::strchrnul (const char *, int); } extern "C++" { char * std::strchrnul (char *, int); } */ _GL_CXXALIAS_SYS_CAST2 (strchrnul, char *, (char const *__s, int __c_in), char const *, (char const *__s, int __c_in)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in)); _GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in)); # else _GL_CXXALIASWARN (strchrnul); # endif #elif defined GNULIB_POSIXCHECK # undef strchrnul # if HAVE_RAW_DECL_STRCHRNUL _GL_WARN_ON_USE (strchrnul, "strchrnul is unportable - " "use gnulib module strchrnul for portability"); # endif #endif /* Duplicate S, returning an identical malloc'd string. */ #if @GNULIB_STRDUP@ # if @REPLACE_STRDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strdup # define strdup rpl_strdup # endif _GL_FUNCDECL_RPL (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strdup, char *, (char const *__s)); # else # if defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup /* strdup exists as a function and as a macro. Get rid of the macro. */ # undef strdup # endif # if !(@HAVE_DECL_STRDUP@ || defined strdup) _GL_FUNCDECL_SYS (strdup, char *, (char const *__s) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strdup, char *, (char const *__s)); # endif _GL_CXXALIASWARN (strdup); #elif defined GNULIB_POSIXCHECK # undef strdup # if HAVE_RAW_DECL_STRDUP _GL_WARN_ON_USE (strdup, "strdup is unportable - " "use gnulib module strdup for portability"); # endif #endif /* Append no more than N characters from SRC onto DEST. */ #if @GNULIB_STRNCAT@ # if @REPLACE_STRNCAT@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strncat # define strncat rpl_strncat # endif _GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n)); # else _GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n)); # endif _GL_CXXALIASWARN (strncat); #elif defined GNULIB_POSIXCHECK # undef strncat # if HAVE_RAW_DECL_STRNCAT _GL_WARN_ON_USE (strncat, "strncat is unportable - " "use gnulib module strncat for portability"); # endif #endif /* Return a newly allocated copy of at most N bytes of STRING. */ #if @GNULIB_STRNDUP@ # if @REPLACE_STRNDUP@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strndup # define strndup rpl_strndup # endif _GL_FUNCDECL_RPL (strndup, char *, (char const *__string, size_t __n) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strndup, char *, (char const *__string, size_t __n)); # else # if ! @HAVE_DECL_STRNDUP@ _GL_FUNCDECL_SYS (strndup, char *, (char const *__string, size_t __n) _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strndup, char *, (char const *__string, size_t __n)); # endif _GL_CXXALIASWARN (strndup); #elif defined GNULIB_POSIXCHECK # undef strndup # if HAVE_RAW_DECL_STRNDUP _GL_WARN_ON_USE (strndup, "strndup is unportable - " "use gnulib module strndup for portability"); # endif #endif /* Find the length (number of bytes) of STRING, but scan at most MAXLEN bytes. If no '\0' terminator is found in that many bytes, return MAXLEN. */ #if @GNULIB_STRNLEN@ # if @REPLACE_STRNLEN@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strnlen # define strnlen rpl_strnlen # endif _GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)); # else # if ! @HAVE_DECL_STRNLEN@ _GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); # endif _GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)); # endif _GL_CXXALIASWARN (strnlen); #elif defined GNULIB_POSIXCHECK # undef strnlen # if HAVE_RAW_DECL_STRNLEN _GL_WARN_ON_USE (strnlen, "strnlen is unportable - " "use gnulib module strnlen for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strcspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strcspn /* Assume strcspn is always declared. */ _GL_WARN_ON_USE (strcspn, "strcspn cannot work correctly on character strings " "in multibyte locales - " "use mbscspn if you care about internationalization"); #endif /* Find the first occurrence in S of any character in ACCEPT. */ #if @GNULIB_STRPBRK@ # if ! @HAVE_STRPBRK@ _GL_FUNCDECL_SYS (strpbrk, char *, (char const *__s, char const *__accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C" { const char * strpbrk (const char *, const char *); } extern "C++" { char * strpbrk (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strpbrk, char *, (char const *__s, char const *__accept), const char *, (char const *__s, char const *__accept)); # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept)); _GL_CXXALIASWARN1 (strpbrk, char const *, (char const *__s, char const *__accept)); # else _GL_CXXALIASWARN (strpbrk); # endif # if defined GNULIB_POSIXCHECK /* strpbrk() assumes the second argument is a list of single-byte characters. Even in this simple case, it does not work with multibyte strings if the locale encoding is GB18030 and one of the characters to be searched is a digit. */ # undef strpbrk _GL_WARN_ON_USE (strpbrk, "strpbrk cannot work correctly on character strings " "in multibyte locales - " "use mbspbrk if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strpbrk # if HAVE_RAW_DECL_STRPBRK _GL_WARN_ON_USE (strpbrk, "strpbrk is unportable - " "use gnulib module strpbrk for portability"); # endif #endif #if defined GNULIB_POSIXCHECK /* strspn() assumes the second argument is a list of single-byte characters. Even in this simple case, it cannot work with multibyte strings. */ # undef strspn /* Assume strspn is always declared. */ _GL_WARN_ON_USE (strspn, "strspn cannot work correctly on character strings " "in multibyte locales - " "use mbsspn if you care about internationalization"); #endif #if defined GNULIB_POSIXCHECK /* strrchr() does not work with multibyte strings if the locale encoding is GB18030 and the character to be searched is a digit. */ # undef strrchr /* Assume strrchr is always declared. */ _GL_WARN_ON_USE (strrchr, "strrchr cannot work correctly on character strings " "in some multibyte locales - " "use mbsrchr if you care about internationalization"); #endif /* Search the next delimiter (char listed in DELIM) starting at *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next char after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of strtok() that is multithread-safe and supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strtok_r(). */ #if @GNULIB_STRSEP@ # if ! @HAVE_STRSEP@ _GL_FUNCDECL_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim) _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strsep, char *, (char **restrict __stringp, char const *restrict __delim)); _GL_CXXALIASWARN (strsep); # if defined GNULIB_POSIXCHECK # undef strsep _GL_WARN_ON_USE (strsep, "strsep cannot work correctly on character strings " "in multibyte locales - " "use mbssep if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strsep # if HAVE_RAW_DECL_STRSEP _GL_WARN_ON_USE (strsep, "strsep is unportable - " "use gnulib module strsep for portability"); # endif #endif #if @GNULIB_STRSTR@ # if @REPLACE_STRSTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strstr rpl_strstr # endif _GL_FUNCDECL_RPL (strstr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle)); # else /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strstr (const char *, const char *); } extern "C++" { char * strstr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strstr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strstr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strstr); # endif #elif defined GNULIB_POSIXCHECK /* strstr() does not work with multibyte strings if the locale encoding is different from UTF-8: POSIX says that it operates on "strings", and "string" in POSIX is defined as a sequence of bytes, not of characters. */ # undef strstr /* Assume strstr is always declared. */ _GL_WARN_ON_USE (strstr, "strstr is quadratic on many systems, and cannot " "work correctly on character strings in most " "multibyte locales - " "use mbsstr if you care about internationalization, " "or use strstr if you care about speed"); #endif /* Find the first occurrence of NEEDLE in HAYSTACK, using case-insensitive comparison. */ #if @GNULIB_STRCASESTR@ # if @REPLACE_STRCASESTR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strcasestr rpl_strcasestr # endif _GL_FUNCDECL_RPL (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (strcasestr, char *, (const char *haystack, const char *needle)); # else # if ! @HAVE_STRCASESTR@ _GL_FUNCDECL_SYS (strcasestr, char *, (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif /* On some systems, this function is defined as an overloaded function: extern "C++" { const char * strcasestr (const char *, const char *); } extern "C++" { char * strcasestr (char *, const char *); } */ _GL_CXXALIAS_SYS_CAST2 (strcasestr, char *, (const char *haystack, const char *needle), const char *, (const char *haystack, const char *needle)); # endif # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) _GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle)); _GL_CXXALIASWARN1 (strcasestr, const char *, (const char *haystack, const char *needle)); # else _GL_CXXALIASWARN (strcasestr); # endif #elif defined GNULIB_POSIXCHECK /* strcasestr() does not work with multibyte strings: It is a glibc extension, and glibc implements it only for unibyte locales. */ # undef strcasestr # if HAVE_RAW_DECL_STRCASESTR _GL_WARN_ON_USE (strcasestr, "strcasestr does work correctly on character " "strings in multibyte locales - " "use mbscasestr if you care about " "internationalization, or use c-strcasestr if you want " "a locale independent function"); # endif #endif /* Parse S into tokens separated by characters in DELIM. If S is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = strtok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = strtok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = strtok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" This is a variant of strtok() that is multithread-safe. For the POSIX documentation for this function, see: http://www.opengroup.org/susv3xsh/strtok.html Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. Caveat: It doesn't work with multibyte strings unless all of the delimiter characters are ASCII characters < 0x30. See also strsep(). */ #if @GNULIB_STRTOK_R@ # if @REPLACE_STRTOK_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strtok_r # define strtok_r rpl_strtok_r # endif _GL_FUNCDECL_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); _GL_CXXALIAS_RPL (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # else # if @UNDEFINE_STRTOK_R@ || defined GNULIB_POSIXCHECK # undef strtok_r # endif # if ! @HAVE_DECL_STRTOK_R@ _GL_FUNCDECL_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr) _GL_ARG_NONNULL ((2, 3))); # endif _GL_CXXALIAS_SYS (strtok_r, char *, (char *restrict s, char const *restrict delim, char **restrict save_ptr)); # endif _GL_CXXALIASWARN (strtok_r); # if defined GNULIB_POSIXCHECK _GL_WARN_ON_USE (strtok_r, "strtok_r cannot work correctly on character " "strings in multibyte locales - " "use mbstok_r if you care about internationalization"); # endif #elif defined GNULIB_POSIXCHECK # undef strtok_r # if HAVE_RAW_DECL_STRTOK_R _GL_WARN_ON_USE (strtok_r, "strtok_r is unportable - " "use gnulib module strtok_r for portability"); # endif #endif /* The following functions are not specified by POSIX. They are gnulib extensions. */ #if @GNULIB_MBSLEN@ /* Return the number of multibyte characters in the character string STRING. This considers multibyte characters, unlike strlen, which counts bytes. */ # ifdef __MirBSD__ /* MirBSD defines mbslen as a macro. Override it. */ # undef mbslen # endif # if @HAVE_MBSLEN@ /* AIX, OSF/1, MirBSD define mbslen already in libc. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbslen rpl_mbslen # endif _GL_FUNCDECL_RPL (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbslen, size_t, (const char *string)); # else _GL_FUNCDECL_SYS (mbslen, size_t, (const char *string) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbslen, size_t, (const char *string)); # endif _GL_CXXALIASWARN (mbslen); #endif #if @GNULIB_MBSNLEN@ /* Return the number of multibyte characters in the character string starting at STRING and ending at STRING + LEN. */ _GL_EXTERN_C size_t mbsnlen (const char *string, size_t len) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1)); #endif #if @GNULIB_MBSCHR@ /* Locate the first single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbschr rpl_mbschr /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbschr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbschr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbschr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbschr); #endif #if @GNULIB_MBSRCHR@ /* Locate the last single-byte character C in the character string STRING, and return a pointer to it. Return NULL if C is not found in STRING. Unlike strrchr(), this function works correctly in multibyte locales with encodings such as GB18030. */ # if defined __hpux || defined __INTERIX # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbsrchr rpl_mbsrchr /* avoid collision with system function */ # endif _GL_FUNCDECL_RPL (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (mbsrchr, char *, (const char *string, int c)); # else _GL_FUNCDECL_SYS (mbsrchr, char *, (const char *string, int c) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_SYS (mbsrchr, char *, (const char *string, int c)); # endif _GL_CXXALIASWARN (mbsrchr); #endif #if @GNULIB_MBSSTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK. Return NULL if NEEDLE is not found in HAYSTACK. Unlike strstr(), this function works correctly in multibyte locales with encodings different from UTF-8. */ _GL_EXTERN_C char * mbsstr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASECMP@ /* Compare the character strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. Note: This function may, in multibyte locales, return 0 for strings of different lengths! Unlike strcasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C int mbscasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSNCASECMP@ /* Compare the initial segment of the character string S1 consisting of at most N characters with the initial segment of the character string S2 consisting of at most N characters, ignoring case, returning less than, equal to or greater than zero if the initial segment of S1 is lexicographically less than, equal to or greater than the initial segment of S2. Note: This function may, in multibyte locales, return 0 for initial segments of different lengths! Unlike strncasecmp(), this function works correctly in multibyte locales. But beware that N is not a byte count but a character count! */ _GL_EXTERN_C int mbsncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPCASECMP@ /* Compare the initial segment of the character string STRING consisting of at most mbslen (PREFIX) characters with the character string PREFIX, ignoring case. If the two match, return a pointer to the first byte after this prefix in STRING. Otherwise, return NULL. Note: This function may, in multibyte locales, return non-NULL if STRING is of smaller length than PREFIX! Unlike strncasecmp(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbspcasecmp (const char *string, const char *prefix) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCASESTR@ /* Find the first occurrence of the character string NEEDLE in the character string HAYSTACK, using case-insensitive comparison. Note: This function may, in multibyte locales, return success even if strlen (haystack) < strlen (needle) ! Unlike strcasestr(), this function works correctly in multibyte locales. */ _GL_EXTERN_C char * mbscasestr (const char *haystack, const char *needle) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSCSPN@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strcspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbscspn (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSPBRK@ /* Find the first occurrence in the character string STRING of any character in the character string ACCEPT. Return the pointer to it, or NULL if none exists. Unlike strpbrk(), this function works correctly in multibyte locales. */ # if defined __hpux # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define mbspbrk rpl_mbspbrk /* avoid collision with HP-UX function */ # endif _GL_FUNCDECL_RPL (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (mbspbrk, char *, (const char *string, const char *accept)); # else _GL_FUNCDECL_SYS (mbspbrk, char *, (const char *string, const char *accept) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_SYS (mbspbrk, char *, (const char *string, const char *accept)); # endif _GL_CXXALIASWARN (mbspbrk); #endif #if @GNULIB_MBSSPN@ /* Find the first occurrence in the character string STRING of any character not in the character string REJECT. Return the number of bytes from the beginning of the string to this occurrence, or to the end of the string if none exists. Unlike strspn(), this function works correctly in multibyte locales. */ _GL_EXTERN_C size_t mbsspn (const char *string, const char *reject) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSSEP@ /* Search the next delimiter (multibyte character listed in the character string DELIM) starting at the character string *STRINGP. If one is found, overwrite it with a NUL, and advance *STRINGP to point to the next multibyte character after it. Otherwise, set *STRINGP to NULL. If *STRINGP was already NULL, nothing happens. Return the old value of *STRINGP. This is a variant of mbstok_r() that supports empty fields. Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbstok_r(). */ _GL_EXTERN_C char * mbssep (char **stringp, const char *delim) _GL_ARG_NONNULL ((1, 2)); #endif #if @GNULIB_MBSTOK_R@ /* Parse the character string STRING into tokens separated by characters in the character string DELIM. If STRING is NULL, the saved pointer in SAVE_PTR is used as the next starting point. For example: char s[] = "-abc-=-def"; char *sp; x = mbstok_r(s, "-", &sp); // x = "abc", sp = "=-def" x = mbstok_r(NULL, "-=", &sp); // x = "def", sp = NULL x = mbstok_r(NULL, "=", &sp); // x = NULL // s = "abc\0-def\0" Caveat: It modifies the original string. Caveat: These functions cannot be used on constant strings. Caveat: The identity of the delimiting character is lost. See also mbssep(). */ _GL_EXTERN_C char * mbstok_r (char *string, const char *delim, char **save_ptr) _GL_ARG_NONNULL ((2, 3)); #endif /* Map any int, typically from errno, into an error message. */ #if @GNULIB_STRERROR@ # if @REPLACE_STRERROR@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror # define strerror rpl_strerror # endif _GL_FUNCDECL_RPL (strerror, char *, (int)); _GL_CXXALIAS_RPL (strerror, char *, (int)); # else _GL_CXXALIAS_SYS (strerror, char *, (int)); # endif _GL_CXXALIASWARN (strerror); #elif defined GNULIB_POSIXCHECK # undef strerror /* Assume strerror is always declared. */ _GL_WARN_ON_USE (strerror, "strerror is unportable - " "use gnulib module strerror to guarantee non-NULL result"); #endif /* Map any int, typically from errno, into an error message. Multithread-safe. Uses the POSIX declaration, not the glibc declaration. */ #if @GNULIB_STRERROR_R@ # if @REPLACE_STRERROR_R@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef strerror_r # define strerror_r rpl_strerror_r # endif _GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); _GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)); # else # if !@HAVE_DECL_STRERROR_R@ _GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen) _GL_ARG_NONNULL ((2))); # endif _GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)); # endif # if @HAVE_DECL_STRERROR_R@ _GL_CXXALIASWARN (strerror_r); # endif #elif defined GNULIB_POSIXCHECK # undef strerror_r # if HAVE_RAW_DECL_STRERROR_R _GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - " "use gnulib module strerror_r-posix for portability"); # endif #endif #if @GNULIB_STRSIGNAL@ # if @REPLACE_STRSIGNAL@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define strsignal rpl_strsignal # endif _GL_FUNCDECL_RPL (strsignal, char *, (int __sig)); _GL_CXXALIAS_RPL (strsignal, char *, (int __sig)); # else # if ! @HAVE_DECL_STRSIGNAL@ _GL_FUNCDECL_SYS (strsignal, char *, (int __sig)); # endif /* Need to cast, because on Cygwin 1.5.x systems, the return type is 'const char *'. */ _GL_CXXALIAS_SYS_CAST (strsignal, char *, (int __sig)); # endif _GL_CXXALIASWARN (strsignal); #elif defined GNULIB_POSIXCHECK # undef strsignal # if HAVE_RAW_DECL_STRSIGNAL _GL_WARN_ON_USE (strsignal, "strsignal is unportable - " "use gnulib module strsignal for portability"); # endif #endif #if @GNULIB_STRVERSCMP@ # if !@HAVE_STRVERSCMP@ _GL_FUNCDECL_SYS (strverscmp, int, (const char *, const char *) _GL_ATTRIBUTE_PURE _GL_ARG_NONNULL ((1, 2))); # endif _GL_CXXALIAS_SYS (strverscmp, int, (const char *, const char *)); _GL_CXXALIASWARN (strverscmp); #elif defined GNULIB_POSIXCHECK # undef strverscmp # if HAVE_RAW_DECL_STRVERSCMP _GL_WARN_ON_USE (strverscmp, "strverscmp is unportable - " "use gnulib module strverscmp for portability"); # endif #endif #endif /* _@GUARD_PREFIX@_STRING_H */ #endif /* _@GUARD_PREFIX@_STRING_H */ libidn-1.28/lib/gl/iconv_open.c0000644000000000000000000001272512153706106013257 00000000000000/* Character set conversion. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #include #include "c-ctype.h" #include "c-strcase.h" #define SIZEOF(a) (sizeof(a) / sizeof(a[0])) /* Namespace cleanliness. */ #define mapping_lookup rpl_iconv_open_mapping_lookup /* The macro ICONV_FLAVOR is defined to one of these or undefined. */ #define ICONV_FLAVOR_AIX "iconv_open-aix.h" #define ICONV_FLAVOR_HPUX "iconv_open-hpux.h" #define ICONV_FLAVOR_IRIX "iconv_open-irix.h" #define ICONV_FLAVOR_OSF "iconv_open-osf.h" #define ICONV_FLAVOR_SOLARIS "iconv_open-solaris.h" #ifdef ICONV_FLAVOR # include ICONV_FLAVOR #endif iconv_t rpl_iconv_open (const char *tocode, const char *fromcode) #undef iconv_open { char fromcode_upper[32]; char tocode_upper[32]; char *fromcode_upper_end; char *tocode_upper_end; #if REPLACE_ICONV_UTF /* Special handling of conversion between UTF-8 and UTF-{16,32}{BE,LE}. Do this here, before calling the real iconv_open(), because OSF/1 5.1 iconv() to these encoding inserts a BOM, which is wrong. We do not need to handle conversion between arbitrary encodings and UTF-{16,32}{BE,LE}, because the 'striconveh' module implements two-step conversion through UTF-8. The _ICONV_* constants are chosen to be disjoint from any iconv_t returned by the system's iconv_open() functions. Recall that iconv_t is a scalar type. */ if (c_toupper (fromcode[0]) == 'U' && c_toupper (fromcode[1]) == 'T' && c_toupper (fromcode[2]) == 'F' && fromcode[3] == '-') { if (c_toupper (tocode[0]) == 'U' && c_toupper (tocode[1]) == 'T' && c_toupper (tocode[2]) == 'F' && tocode[3] == '-') { if (strcmp (fromcode + 4, "8") == 0) { if (c_strcasecmp (tocode + 4, "16BE") == 0) return _ICONV_UTF8_UTF16BE; if (c_strcasecmp (tocode + 4, "16LE") == 0) return _ICONV_UTF8_UTF16LE; if (c_strcasecmp (tocode + 4, "32BE") == 0) return _ICONV_UTF8_UTF32BE; if (c_strcasecmp (tocode + 4, "32LE") == 0) return _ICONV_UTF8_UTF32LE; } else if (strcmp (tocode + 4, "8") == 0) { if (c_strcasecmp (fromcode + 4, "16BE") == 0) return _ICONV_UTF16BE_UTF8; if (c_strcasecmp (fromcode + 4, "16LE") == 0) return _ICONV_UTF16LE_UTF8; if (c_strcasecmp (fromcode + 4, "32BE") == 0) return _ICONV_UTF32BE_UTF8; if (c_strcasecmp (fromcode + 4, "32LE") == 0) return _ICONV_UTF32LE_UTF8; } } } #endif /* Do *not* add special support for 8-bit encodings like ASCII or ISO-8859-1 here. This would lead to programs that work in some locales (such as the "C" or "en_US" locales) but do not work in East Asian locales. It is better if programmers make their programs depend on GNU libiconv (except on glibc systems), e.g. by using the AM_ICONV macro and documenting the dependency in an INSTALL or DEPENDENCIES file. */ /* Try with the original names first. This covers the case when fromcode or tocode is a lowercase encoding name that is understood by the system's iconv_open but not listed in our mappings table. */ { iconv_t cd = iconv_open (tocode, fromcode); if (cd != (iconv_t)(-1)) return cd; } /* Convert the encodings to upper case, because 1. in the arguments of iconv_open() on AIX, HP-UX, and OSF/1 the case matters, 2. it makes searching in the table faster. */ { const char *p = fromcode; char *q = fromcode_upper; while ((*q = c_toupper (*p)) != '\0') { p++; q++; if (q == &fromcode_upper[SIZEOF (fromcode_upper)]) { errno = EINVAL; return (iconv_t)(-1); } } fromcode_upper_end = q; } { const char *p = tocode; char *q = tocode_upper; while ((*q = c_toupper (*p)) != '\0') { p++; q++; if (q == &tocode_upper[SIZEOF (tocode_upper)]) { errno = EINVAL; return (iconv_t)(-1); } } tocode_upper_end = q; } #ifdef ICONV_FLAVOR /* Apply the mappings. */ { const struct mapping *m = mapping_lookup (fromcode_upper, fromcode_upper_end - fromcode_upper); fromcode = (m != NULL ? m->vendor_name : fromcode_upper); } { const struct mapping *m = mapping_lookup (tocode_upper, tocode_upper_end - tocode_upper); tocode = (m != NULL ? m->vendor_name : tocode_upper); } #else fromcode = fromcode_upper; tocode = tocode_upper; #endif return iconv_open (tocode, fromcode); } libidn-1.28/lib/gl/stddef.in.h0000644000000000000000000000526112153706107013001 00000000000000/* A substitute for POSIX 2008 , for platforms that have issues. Copyright (C) 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ /* Written by Eric Blake. */ /* * POSIX 2008 for platforms that have issues. * */ #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ #if defined __need_wchar_t || defined __need_size_t \ || defined __need_ptrdiff_t || defined __need_NULL \ || defined __need_wint_t /* Special invocation convention inside gcc header files. In particular, gcc provides a version of that blindly redefines NULL even when __need_wint_t was defined, even though wint_t is not normally provided by . Hence, we must remember if special invocation has ever been used to obtain wint_t, in which case we need to clean up NULL yet again. */ # if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T) # ifdef __need_wint_t # undef _@GUARD_PREFIX@_STDDEF_H # define _GL_STDDEF_WINT_T # endif # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # endif #else /* Normal invocation convention. */ # ifndef _@GUARD_PREFIX@_STDDEF_H /* The include_next requires a split double-inclusion guard. */ # @INCLUDE_NEXT@ @NEXT_STDDEF_H@ # ifndef _@GUARD_PREFIX@_STDDEF_H # define _@GUARD_PREFIX@_STDDEF_H /* On NetBSD 5.0, the definition of NULL lacks proper parentheses. */ #if @REPLACE_NULL@ # undef NULL # ifdef __cplusplus /* ISO C++ says that the macro NULL must expand to an integer constant expression, hence '((void *) 0)' is not allowed in C++. */ # if __GNUG__ >= 3 /* GNU C++ has a __null macro that behaves like an integer ('int' or 'long') but has the same size as a pointer. Use that, to avoid warnings. */ # define NULL __null # else # define NULL 0L # endif # else # define NULL ((void *) 0) # endif #endif /* Some platforms lack wchar_t. */ #if !@HAVE_WCHAR_T@ # define wchar_t int #endif # endif /* _@GUARD_PREFIX@_STDDEF_H */ # endif /* _@GUARD_PREFIX@_STDDEF_H */ #endif /* __need_XXX */ libidn-1.28/lib/gl/iconv_open-irix.gperf0000664000000000000000000000136411746453142015116 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On IRIX 6.5, look in /usr/lib/iconv and /usr/lib/international/encodings. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" KOI8-R, "KOI8" CP855, "DOS855" CP1251, "WIN1251" GB2312, "eucCN" EUC-JP, "eucJP" EUC-KR, "eucKR" EUC-TW, "eucTW" SHIFT_JIS, "sjis" TIS-620, "TIS620" libidn-1.28/lib/gl/c-strcase.h0000644000000000000000000000404312153706106013003 00000000000000/* Case-insensitive string comparison functions in C locale. Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef C_STRCASE_H #define C_STRCASE_H #include /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. More precisely, one of the string arguments must be an ASCII string; the other one can also contain non-ASCII characters (but then the comparison result will be nonzero). */ #ifdef __cplusplus extern "C" { #endif /* Compare strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE; /* Compare no more than N characters of strings S1 and S2, ignoring case, returning less than, equal to or greater than zero if S1 is lexicographically less than, equal to or greater than S2. */ extern int c_strncasecmp (const char *s1, const char *s2, size_t n) _GL_ATTRIBUTE_PURE; #ifdef __cplusplus } #endif #endif /* C_STRCASE_H */ libidn-1.28/lib/gl/c-ctype.c0000644000000000000000000002537012153706106012464 00000000000000/* Character handling in C locale. Copyright 2000-2003, 2006, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #define NO_C_CTYPE_MACROS #include "c-ctype.h" /* The function isascii is not locale dependent. Its use in EBCDIC is questionable. */ bool c_isascii (int c) { return (c >= 0x00 && c <= 0x7f); } bool c_isalnum (int c) { #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII return ((c >= '0' && c <= '9') || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')); #else return ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); #endif #else switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': return 1; default: return 0; } #endif } bool c_isalpha (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'); #else return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')); #endif #else switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': return 1; default: return 0; } #endif } bool c_isblank (int c) { return (c == ' ' || c == '\t'); } bool c_iscntrl (int c) { #if C_CTYPE_ASCII return ((c & ~0x1f) == 0 || c == 0x7f); #else switch (c) { case ' ': case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case '`': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': return 0; default: return 1; } #endif } bool c_isdigit (int c) { #if C_CTYPE_CONSECUTIVE_DIGITS return (c >= '0' && c <= '9'); #else switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': return 1; default: return 0; } #endif } bool c_islower (int c) { #if C_CTYPE_CONSECUTIVE_LOWERCASE return (c >= 'a' && c <= 'z'); #else switch (c) { case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': return 1; default: return 0; } #endif } bool c_isgraph (int c) { #if C_CTYPE_ASCII return (c >= '!' && c <= '~'); #else switch (c) { case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case '`': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': return 1; default: return 0; } #endif } bool c_isprint (int c) { #if C_CTYPE_ASCII return (c >= ' ' && c <= '~'); #else switch (c) { case ' ': case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': case '[': case '\\': case ']': case '^': case '_': case '`': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g': case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u': case 'v': case 'w': case 'x': case 'y': case 'z': case '{': case '|': case '}': case '~': return 1; default: return 0; } #endif } bool c_ispunct (int c) { #if C_CTYPE_ASCII return ((c >= '!' && c <= '~') && !((c >= '0' && c <= '9') || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'))); #else switch (c) { case '!': case '"': case '#': case '$': case '%': case '&': case '\'': case '(': case ')': case '*': case '+': case ',': case '-': case '.': case '/': case ':': case ';': case '<': case '=': case '>': case '?': case '@': case '[': case '\\': case ']': case '^': case '_': case '`': case '{': case '|': case '}': case '~': return 1; default: return 0; } #endif } bool c_isspace (int c) { return (c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'); } bool c_isupper (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE return (c >= 'A' && c <= 'Z'); #else switch (c) { case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z': return 1; default: return 0; } #endif } bool c_isxdigit (int c) { #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII return ((c >= '0' && c <= '9') || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F')); #else return ((c >= '0' && c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f')); #endif #else switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': return 1; default: return 0; } #endif } int c_tolower (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c); #else switch (c) { case 'A': return 'a'; case 'B': return 'b'; case 'C': return 'c'; case 'D': return 'd'; case 'E': return 'e'; case 'F': return 'f'; case 'G': return 'g'; case 'H': return 'h'; case 'I': return 'i'; case 'J': return 'j'; case 'K': return 'k'; case 'L': return 'l'; case 'M': return 'm'; case 'N': return 'n'; case 'O': return 'o'; case 'P': return 'p'; case 'Q': return 'q'; case 'R': return 'r'; case 'S': return 's'; case 'T': return 't'; case 'U': return 'u'; case 'V': return 'v'; case 'W': return 'w'; case 'X': return 'x'; case 'Y': return 'y'; case 'Z': return 'z'; default: return c; } #endif } int c_toupper (int c) { #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c); #else switch (c) { case 'a': return 'A'; case 'b': return 'B'; case 'c': return 'C'; case 'd': return 'D'; case 'e': return 'E'; case 'f': return 'F'; case 'g': return 'G'; case 'h': return 'H'; case 'i': return 'I'; case 'j': return 'J'; case 'k': return 'K'; case 'l': return 'L'; case 'm': return 'M'; case 'n': return 'N'; case 'o': return 'O'; case 'p': return 'P'; case 'q': return 'Q'; case 'r': return 'R'; case 's': return 'S'; case 't': return 'T'; case 'u': return 'U'; case 'v': return 'V'; case 'w': return 'W'; case 'x': return 'X'; case 'y': return 'Y'; case 'z': return 'Z'; default: return c; } #endif } libidn-1.28/lib/gl/c-strcasecmp.c0000644000000000000000000000307312153706106013500 00000000000000/* c-strcasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strcasecmp (const char *s1, const char *s2) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } libidn-1.28/lib/gl/iconv.in.h0000644000000000000000000000677312153706106012656 00000000000000/* A GNU-like . Copyright (C) 2007-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _@GUARD_PREFIX@_ICONV_H #if __GNUC__ >= 3 @PRAGMA_SYSTEM_HEADER@ #endif @PRAGMA_COLUMNS@ /* The include_next requires a split double-inclusion guard. */ #@INCLUDE_NEXT@ @NEXT_ICONV_H@ #ifndef _@GUARD_PREFIX@_ICONV_H #define _@GUARD_PREFIX@_ICONV_H /* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ #if @GNULIB_ICONV@ # if @REPLACE_ICONV_OPEN@ /* An iconv_open wrapper that supports the IANA standardized encoding names ("ISO-8859-1" etc.) as far as possible. */ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv_open rpl_iconv_open # endif _GL_FUNCDECL_RPL (iconv_open, iconv_t, (const char *tocode, const char *fromcode) _GL_ARG_NONNULL ((1, 2))); _GL_CXXALIAS_RPL (iconv_open, iconv_t, (const char *tocode, const char *fromcode)); # else _GL_CXXALIAS_SYS (iconv_open, iconv_t, (const char *tocode, const char *fromcode)); # endif _GL_CXXALIASWARN (iconv_open); #endif #if @REPLACE_ICONV_UTF@ /* Special constants for supporting UTF-{16,32}{BE,LE} encodings. Not public. */ # define _ICONV_UTF8_UTF16BE (iconv_t)(-161) # define _ICONV_UTF8_UTF16LE (iconv_t)(-162) # define _ICONV_UTF8_UTF32BE (iconv_t)(-163) # define _ICONV_UTF8_UTF32LE (iconv_t)(-164) # define _ICONV_UTF16BE_UTF8 (iconv_t)(-165) # define _ICONV_UTF16LE_UTF8 (iconv_t)(-166) # define _ICONV_UTF32BE_UTF8 (iconv_t)(-167) # define _ICONV_UTF32LE_UTF8 (iconv_t)(-168) #endif #if @GNULIB_ICONV@ # if @REPLACE_ICONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv rpl_iconv # endif _GL_FUNCDECL_RPL (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)); _GL_CXXALIAS_RPL (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)); # else _GL_CXXALIAS_SYS (iconv, size_t, (iconv_t cd, @ICONV_CONST@ char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)); # endif _GL_CXXALIASWARN (iconv); # ifndef ICONV_CONST # define ICONV_CONST @ICONV_CONST@ # endif #endif #if @GNULIB_ICONV@ # if @REPLACE_ICONV@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # define iconv_close rpl_iconv_close # endif _GL_FUNCDECL_RPL (iconv_close, int, (iconv_t cd)); _GL_CXXALIAS_RPL (iconv_close, int, (iconv_t cd)); # else _GL_CXXALIAS_SYS (iconv_close, int, (iconv_t cd)); # endif _GL_CXXALIASWARN (iconv_close); #endif #endif /* _@GUARD_PREFIX@_ICONV_H */ #endif /* _@GUARD_PREFIX@_ICONV_H */ libidn-1.28/lib/gl/iconv_open-aix.gperf0000664000000000000000000000172411746453142014724 00000000000000struct mapping { int standard_name; const char vendor_name[10 + 1]; }; %struct-type %language=ANSI-C %define slot-name standard_name %define hash-function-name mapping_hash %define lookup-function-name mapping_lookup %readonly-tables %global-table %define word-array-name mappings %pic %% # On AIX 5.1, look in /usr/lib/nls/loc/uconvTable. ISO-8859-1, "ISO8859-1" ISO-8859-2, "ISO8859-2" ISO-8859-3, "ISO8859-3" ISO-8859-4, "ISO8859-4" ISO-8859-5, "ISO8859-5" ISO-8859-6, "ISO8859-6" ISO-8859-7, "ISO8859-7" ISO-8859-8, "ISO8859-8" ISO-8859-9, "ISO8859-9" ISO-8859-15, "ISO8859-15" CP437, "IBM-437" CP850, "IBM-850" CP852, "IBM-852" CP856, "IBM-856" CP857, "IBM-857" CP861, "IBM-861" CP865, "IBM-865" CP869, "IBM-869" ISO-8859-13, "IBM-921" CP922, "IBM-922" CP932, "IBM-932" CP943, "IBM-943" CP1046, "IBM-1046" CP1124, "IBM-1124" CP1125, "IBM-1125" CP1129, "IBM-1129" CP1252, "IBM-1252" GB2312, "IBM-eucCN" EUC-JP, "IBM-eucJP" EUC-KR, "IBM-eucKR" EUC-TW, "IBM-eucTW" BIG5, "big5" libidn-1.28/lib/gl/gettext.h0000644000000000000000000001036212153706106012604 00000000000000/* Convenience header for conditional use of GNU . Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _LIBGETTEXT_H #define _LIBGETTEXT_H 1 /* NLS can be disabled through the configure --disable-nls option. */ #if ENABLE_NLS /* Get declarations of GNU message catalog functions. */ # include /* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by the gettext() and ngettext() macros. This is an alternative to calling textdomain(), and is useful for libraries. */ # ifdef DEFAULT_TEXT_DOMAIN # undef gettext # define gettext(Msgid) \ dgettext (DEFAULT_TEXT_DOMAIN, Msgid) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N) # endif #else /* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. We don't include as well because people using "gettext.h" will not include , and also including would fail on SunOS 4, whereas is OK. */ #if defined(__sun) # include #endif /* Many header files from the libstdc++ coming with g++ 3.3 or newer include , which chokes if dcgettext is defined as a macro. So include it now, to make later inclusions of a NOP. */ #if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3) # include # if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H # include # endif #endif /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. On pre-ANSI systems without 'const', the config.h file is supposed to contain "#define const". */ # undef gettext # define gettext(Msgid) ((const char *) (Msgid)) # undef dgettext # define dgettext(Domainname, Msgid) ((void) (Domainname), gettext (Msgid)) # undef dcgettext # define dcgettext(Domainname, Msgid, Category) \ ((void) (Category), dgettext (Domainname, Msgid)) # undef ngettext # define ngettext(Msgid1, Msgid2, N) \ ((N) == 1 \ ? ((void) (Msgid2), (const char *) (Msgid1)) \ : ((void) (Msgid1), (const char *) (Msgid2))) # undef dngettext # define dngettext(Domainname, Msgid1, Msgid2, N) \ ((void) (Domainname), ngettext (Msgid1, Msgid2, N)) # undef dcngettext # define dcngettext(Domainname, Msgid1, Msgid2, N, Category) \ ((void) (Category), dngettext (Domainname, Msgid1, Msgid2, N)) # undef textdomain # define textdomain(Domainname) ((const char *) (Domainname)) # undef bindtextdomain # define bindtextdomain(Domainname, Dirname) \ ((void) (Domainname), (const char *) (Dirname)) # undef bind_textdomain_codeset # define bind_textdomain_codeset(Domainname, Codeset) \ ((void) (Domainname), (const char *) (Codeset)) #endif /* Prefer gnulib's setlocale override over libintl's setlocale override. */ #ifdef GNULIB_defined_setlocale # undef setlocale # define setlocale rpl_setlocale #endif /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. The argument, String, should be a literal string. Concatenated strings and other string expressions won't work. The macro's expansion is not parenthesized, so that it is suitable as initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String #endif /* _LIBGETTEXT_H */ libidn-1.28/lib/gl/c-strncasecmp.c0000644000000000000000000000313512153706106013655 00000000000000/* c-strncasecmp.c -- case insensitive string comparator in C locale Copyright (C) 1998-1999, 2005-2006, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include "c-strcase.h" #include #include "c-ctype.h" int c_strncasecmp (const char *s1, const char *s2, size_t n) { register const unsigned char *p1 = (const unsigned char *) s1; register const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; if (p1 == p2 || n == 0) return 0; do { c1 = c_tolower (*p1); c2 = c_tolower (*p2); if (--n == 0 || c1 == '\0') break; ++p1; ++p2; } while (c1 == c2); if (UCHAR_MAX <= INT_MAX) return c1 - c2; else /* On machines where 'char' and 'int' are types of the same size, the difference of two 'unsigned char' values - including the sign bit - doesn't fit in an 'int'. */ return (c1 > c2 ? 1 : c1 < c2 ? -1 : 0); } libidn-1.28/lib/gl/unitypes.in.h0000644000000000000000000000321212153706107013402 00000000000000/* Elementary types and macros for the GNU UniString library. Copyright (C) 2002, 2005-2006, 2009-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _UNITYPES_H #define _UNITYPES_H /* Get uint8_t, uint16_t, uint32_t. */ #include /* Type representing a Unicode character. */ typedef uint32_t ucs4_t; /* Attribute of a function whose result depends only on the arguments (not pointers!) and which has no side effects. */ #ifndef _UC_ATTRIBUTE_CONST # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) # define _UC_ATTRIBUTE_CONST __attribute__ ((__const__)) # else # define _UC_ATTRIBUTE_CONST # endif #endif /* Attribute of a function whose result depends only on the arguments (possibly pointers) and global memory, and which has no side effects. */ #ifndef _UC_ATTRIBUTE_PURE # if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96) # define _UC_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define _UC_ATTRIBUTE_PURE # endif #endif #endif /* _UNITYPES_H */ libidn-1.28/lib/gl/unistr/0000755000000000000000000000000012167253747012366 500000000000000libidn-1.28/lib/gl/unistr/u8-uctomb.c0000644000000000000000000000444312153706107014266 00000000000000/* Store a character in UTF-8 string. Copyright (C) 2002, 2005-2006, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include #if defined IN_LIBUNISTRING /* Tell unistr.h to declare u8_uctomb as 'extern', not 'static inline'. */ # include "unistring-notinline.h" #endif /* Specification. */ #include "unistr.h" #if !HAVE_INLINE int u8_uctomb (uint8_t *s, ucs4_t uc, int n) { if (uc < 0x80) { if (n > 0) { s[0] = uc; return 1; } /* else return -2, below. */ } else { int count; if (uc < 0x800) count = 2; else if (uc < 0x10000) { if (uc < 0xd800 || uc >= 0xe000) count = 3; else return -1; } #if 0 else if (uc < 0x200000) count = 4; else if (uc < 0x4000000) count = 5; else if (uc <= 0x7fffffff) count = 6; #else else if (uc < 0x110000) count = 4; #endif else return -1; if (n >= count) { switch (count) /* note: code falls through cases! */ { #if 0 case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000; case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000; #endif case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; /*case 1:*/ s[0] = uc; } return count; } } return -2; } #endif libidn-1.28/lib/gl/unistr/u8-mbtoucr.c0000644000000000000000000002437312153706107014454 00000000000000/* Look at first character in UTF-8 string, returning an error code. Copyright (C) 1999-2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "unistr.h" int u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else if (c >= 0xc2) { if (c < 0xe0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x1f) << 6) | (unsigned int) (s[1] ^ 0x80); return 2; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xf0) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xe1 || s[1] >= 0xa0) && (c != 0xed || s[1] < 0xa0)) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x0f) << 12) | ((unsigned int) (s[1] ^ 0x80) << 6) | (unsigned int) (s[2] ^ 0x80); return 3; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xf8) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xf1 || s[1] >= 0x90) #if 1 && (c < 0xf4 || (c == 0xf4 && s[1] < 0x90)) #endif ) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { if (n >= 4) { if ((s[3] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x07) << 18) | ((unsigned int) (s[1] ^ 0x80) << 12) | ((unsigned int) (s[2] ^ 0x80) << 6) | (unsigned int) (s[3] ^ 0x80); return 4; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } #if 0 else if (c < 0xfc) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xf9 || s[1] >= 0x88)) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { if (n >= 4) { if ((s[3] ^ 0x80) < 0x40) { if (n >= 5) { if ((s[4] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x03) << 24) | ((unsigned int) (s[1] ^ 0x80) << 18) | ((unsigned int) (s[2] ^ 0x80) << 12) | ((unsigned int) (s[3] ^ 0x80) << 6) | (unsigned int) (s[4] ^ 0x80); return 5; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } else if (c < 0xfe) { if (n >= 2) { if ((s[1] ^ 0x80) < 0x40 && (c >= 0xfd || s[1] >= 0x84)) { if (n >= 3) { if ((s[2] ^ 0x80) < 0x40) { if (n >= 4) { if ((s[3] ^ 0x80) < 0x40) { if (n >= 5) { if ((s[4] ^ 0x80) < 0x40) { if (n >= 6) { if ((s[5] ^ 0x80) < 0x40) { *puc = ((unsigned int) (c & 0x01) << 30) | ((unsigned int) (s[1] ^ 0x80) << 24) | ((unsigned int) (s[2] ^ 0x80) << 18) | ((unsigned int) (s[3] ^ 0x80) << 12) | ((unsigned int) (s[4] ^ 0x80) << 6) | (unsigned int) (s[5] ^ 0x80); return 6; } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } /* invalid multibyte character */ } else { /* incomplete multibyte character */ *puc = 0xfffd; return -2; } } #endif } /* invalid multibyte character */ *puc = 0xfffd; return -1; } libidn-1.28/lib/gl/unistr/u8-uctomb-aux.c0000644000000000000000000000357512153706107015066 00000000000000/* Conversion UCS-4 to UTF-8. Copyright (C) 2002, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2002. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #include /* Specification. */ #include "unistr.h" int u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n) { int count; if (uc < 0x80) /* The case n >= 1 is already handled by the caller. */ return -2; else if (uc < 0x800) count = 2; else if (uc < 0x10000) { if (uc < 0xd800 || uc >= 0xe000) count = 3; else return -1; } #if 0 else if (uc < 0x200000) count = 4; else if (uc < 0x4000000) count = 5; else if (uc <= 0x7fffffff) count = 6; #else else if (uc < 0x110000) count = 4; #endif else return -1; if (n < count) return -2; switch (count) /* note: code falls through cases! */ { #if 0 case 6: s[5] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x4000000; case 5: s[4] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x200000; #endif case 4: s[3] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x10000; case 3: s[2] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0x800; case 2: s[1] = 0x80 | (uc & 0x3f); uc = uc >> 6; uc |= 0xc0; /*case 1:*/ s[0] = uc; } return count; } libidn-1.28/lib/gl/iconv_close.c0000644000000000000000000000256012153706106013417 00000000000000/* Character set conversion. Copyright (C) 2007, 2009-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include #include #ifndef uintptr_t # define uintptr_t unsigned long #endif int rpl_iconv_close (iconv_t cd) #undef iconv_close { #if REPLACE_ICONV_UTF switch ((uintptr_t) cd) { case (uintptr_t) _ICONV_UTF8_UTF16BE: case (uintptr_t) _ICONV_UTF8_UTF16LE: case (uintptr_t) _ICONV_UTF8_UTF32BE: case (uintptr_t) _ICONV_UTF8_UTF32LE: case (uintptr_t) _ICONV_UTF16BE_UTF8: case (uintptr_t) _ICONV_UTF16LE_UTF8: case (uintptr_t) _ICONV_UTF32BE_UTF8: case (uintptr_t) _ICONV_UTF32LE_UTF8: return 0; } #endif return iconv_close (cd); } libidn-1.28/lib/gl/c-ctype.h0000644000000000000000000002212212153706106012461 00000000000000/* Character handling in C locale. These functions work like the corresponding functions in , except that they have the C (POSIX) locale hardwired, whereas the functions' behaviour depends on the current locale set via setlocale. Copyright (C) 2000-2003, 2006, 2008-2013 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef C_CTYPE_H #define C_CTYPE_H #include #ifdef __cplusplus extern "C" { #endif /* The functions defined in this file assume the "C" locale and a character set without diacritics (ASCII-US or EBCDIC-US or something like that). Even if the "C" locale on a particular system is an extension of the ASCII character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it is ISO-8859-1), the functions in this file recognize only the ASCII characters. */ /* Check whether the ASCII optimizations apply. */ /* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that '0', '1', ..., '9' have consecutive integer values. */ #define C_CTYPE_CONSECUTIVE_DIGITS 1 #if ('A' <= 'Z') \ && ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \ && ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \ && ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \ && ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \ && ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \ && ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \ && ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \ && ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \ && ('Y' + 1 == 'Z') #define C_CTYPE_CONSECUTIVE_UPPERCASE 1 #endif #if ('a' <= 'z') \ && ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \ && ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \ && ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \ && ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \ && ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \ && ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \ && ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \ && ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \ && ('y' + 1 == 'z') #define C_CTYPE_CONSECUTIVE_LOWERCASE 1 #endif #if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126) /* The character set is ASCII or one of its variants or extensions, not EBCDIC. Testing the value of '\n' and '\r' is not relevant. */ #define C_CTYPE_ASCII 1 #endif /* Function declarations. */ /* Unlike the functions in , which require an argument in the range of the 'unsigned char' type, the functions here operate on values that are in the 'unsigned char' range or in the 'char' range. In other words, when you have a 'char' value, you need to cast it before using it as argument to a function: const char *s = ...; if (isalpha ((unsigned char) *s)) ... but you don't need to cast it for the functions defined in this file: const char *s = ...; if (c_isalpha (*s)) ... */ extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */ extern bool c_isalnum (int c) _GL_ATTRIBUTE_CONST; extern bool c_isalpha (int c) _GL_ATTRIBUTE_CONST; extern bool c_isblank (int c) _GL_ATTRIBUTE_CONST; extern bool c_iscntrl (int c) _GL_ATTRIBUTE_CONST; extern bool c_isdigit (int c) _GL_ATTRIBUTE_CONST; extern bool c_islower (int c) _GL_ATTRIBUTE_CONST; extern bool c_isgraph (int c) _GL_ATTRIBUTE_CONST; extern bool c_isprint (int c) _GL_ATTRIBUTE_CONST; extern bool c_ispunct (int c) _GL_ATTRIBUTE_CONST; extern bool c_isspace (int c) _GL_ATTRIBUTE_CONST; extern bool c_isupper (int c) _GL_ATTRIBUTE_CONST; extern bool c_isxdigit (int c) _GL_ATTRIBUTE_CONST; extern int c_tolower (int c) _GL_ATTRIBUTE_CONST; extern int c_toupper (int c) _GL_ATTRIBUTE_CONST; #if (defined __GNUC__ && !defined __STRICT_ANSI__ && defined __OPTIMIZE__ \ && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS) /* ASCII optimizations. */ #undef c_isascii #define c_isascii(c) \ ({ int __c = (c); \ (__c >= 0x00 && __c <= 0x7f); \ }) #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII #undef c_isalnum #define c_isalnum(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \ }) #else #undef c_isalnum #define c_isalnum(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || (__c >= 'A' && __c <= 'Z') \ || (__c >= 'a' && __c <= 'z')); \ }) #endif #endif #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII #undef c_isalpha #define c_isalpha(c) \ ({ int __c = (c); \ ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \ }) #else #undef c_isalpha #define c_isalpha(c) \ ({ int __c = (c); \ ((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \ }) #endif #endif #undef c_isblank #define c_isblank(c) \ ({ int __c = (c); \ (__c == ' ' || __c == '\t'); \ }) #if C_CTYPE_ASCII #undef c_iscntrl #define c_iscntrl(c) \ ({ int __c = (c); \ ((__c & ~0x1f) == 0 || __c == 0x7f); \ }) #endif #if C_CTYPE_CONSECUTIVE_DIGITS #undef c_isdigit #define c_isdigit(c) \ ({ int __c = (c); \ (__c >= '0' && __c <= '9'); \ }) #endif #if C_CTYPE_CONSECUTIVE_LOWERCASE #undef c_islower #define c_islower(c) \ ({ int __c = (c); \ (__c >= 'a' && __c <= 'z'); \ }) #endif #if C_CTYPE_ASCII #undef c_isgraph #define c_isgraph(c) \ ({ int __c = (c); \ (__c >= '!' && __c <= '~'); \ }) #endif #if C_CTYPE_ASCII #undef c_isprint #define c_isprint(c) \ ({ int __c = (c); \ (__c >= ' ' && __c <= '~'); \ }) #endif #if C_CTYPE_ASCII #undef c_ispunct #define c_ispunct(c) \ ({ int _c = (c); \ (c_isgraph (_c) && ! c_isalnum (_c)); \ }) #endif #undef c_isspace #define c_isspace(c) \ ({ int __c = (c); \ (__c == ' ' || __c == '\t' \ || __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \ }) #if C_CTYPE_CONSECUTIVE_UPPERCASE #undef c_isupper #define c_isupper(c) \ ({ int __c = (c); \ (__c >= 'A' && __c <= 'Z'); \ }) #endif #if C_CTYPE_CONSECUTIVE_DIGITS \ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #if C_CTYPE_ASCII #undef c_isxdigit #define c_isxdigit(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \ }) #else #undef c_isxdigit #define c_isxdigit(c) \ ({ int __c = (c); \ ((__c >= '0' && __c <= '9') \ || (__c >= 'A' && __c <= 'F') \ || (__c >= 'a' && __c <= 'f')); \ }) #endif #endif #if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE #undef c_tolower #define c_tolower(c) \ ({ int __c = (c); \ (__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \ }) #undef c_toupper #define c_toupper(c) \ ({ int __c = (c); \ (__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \ }) #endif #endif /* optimizing for speed */ #ifdef __cplusplus } #endif #endif /* C_CTYPE_H */ libidn-1.28/lib/gl/Makefile.am0000644000000000000000000004723412153706111013007 00000000000000## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --dir=. --local-dir=lib/gl/override --lib=libgnu --source-base=lib/gl --m4-base=lib/gl/m4 --doc-base=doc --tests-base=lib/gltests --aux-dir=build-aux --with-tests --avoid=iconv-h-tests --avoid=string-tests --avoid=wchar-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=lgl --no-vc-files gettext-h lib-msvc-compat lib-symbol-versions lib-symbol-visibility stdint striconv strverscmp AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = EXTRA_DIST = BUILT_SOURCES = SUFFIXES = MOSTLYCLEANFILES = core *.stackdump MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = EXTRA_DIST += m4/gnulib-cache.m4 AM_CPPFLAGS = AM_CFLAGS = noinst_LTLIBRARIES += libgnu.la libgnu_la_SOURCES = libgnu_la_LIBADD = $(lgl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(lgl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = libgnu_la_LDFLAGS = $(AM_LDFLAGS) libgnu_la_LDFLAGS += -no-undefined libgnu_la_LDFLAGS += $(LTLIBICONV) libgnu_la_LDFLAGS += $(LTLIBINTL) ## begin gnulib module c-ctype libgnu_la_SOURCES += c-ctype.h c-ctype.c ## end gnulib module c-ctype ## begin gnulib module c-strcase libgnu_la_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c ## end gnulib module c-strcase ## begin gnulib module gettext-h libgnu_la_SOURCES += gettext.h ## end gnulib module gettext-h ## begin gnulib module gperf GPERF = gperf ## end gnulib module gperf ## begin gnulib module havelib EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath ## end gnulib module havelib ## begin gnulib module iconv-h BUILT_SOURCES += $(ICONV_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_ICONV_H iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \ -e 's/@''GNULIB_ICONV''@/$(GNULIB_ICONV)/g' \ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/iconv.in.h; \ } > $@-t && \ mv $@-t $@ else iconv.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += iconv.h iconv.h-t EXTRA_DIST += iconv.in.h ## end gnulib module iconv-h ## begin gnulib module iconv_open iconv_open-aix.h: iconv_open-aix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h iconv_open-hpux.h: iconv_open-hpux.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h iconv_open-irix.h: iconv_open-irix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h iconv_open-osf.h: iconv_open-osf.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h iconv_open-solaris.h: iconv_open-solaris.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h BUILT_SOURCES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h MOSTLYCLEANFILES += iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t iconv_open-osf.h-t iconv_open-solaris.h-t MAINTAINERCLEANFILES += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h EXTRA_DIST += iconv_open-aix.h iconv_open-hpux.h iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h EXTRA_DIST += iconv.c iconv_close.c iconv_open-aix.gperf iconv_open-hpux.gperf iconv_open-irix.gperf iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open.c EXTRA_libgnu_la_SOURCES += iconv.c iconv_close.c iconv_open.c ## end gnulib module iconv_open ## begin gnulib module lib-symbol-visibility # The value of $(CFLAG_VISIBILITY) needs to be added to the CFLAGS for the # compilation of all sources that make up the library. This line here does it # only for the gnulib part of it. The developer is responsible for adding # $(CFLAG_VISIBILITY) to the Makefile.ams of the other portions of the library. AM_CFLAGS += $(CFLAG_VISIBILITY) ## end gnulib module lib-symbol-visibility ## begin gnulib module snippet/arg-nonnull # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += arg-nonnull.h # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t ARG_NONNULL_H=arg-nonnull.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/arg-nonnull.h ## end gnulib module snippet/arg-nonnull ## begin gnulib module snippet/c++defs # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += c++defs.h # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += c++defs.h c++defs.h-t CXXDEFS_H=c++defs.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/c++defs.h ## end gnulib module snippet/c++defs ## begin gnulib module snippet/unused-parameter # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES += unused-parameter.h # The unused-parameter.h that gets inserted into generated .h files is the same # as build-aux/snippet/unused-parameter.h, except that it has the copyright # header cut off. unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t UNUSED_PARAMETER_H=unused-parameter.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/unused-parameter.h ## end gnulib module snippet/unused-parameter ## begin gnulib module snippet/warn-on-use BUILT_SOURCES += warn-on-use.h # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t WARN_ON_USE_H=warn-on-use.h EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h ## end gnulib module snippet/warn-on-use ## begin gnulib module stdbool BUILT_SOURCES += $(STDBOOL_H) # We need the following in order to create when the system # doesn't have one that works. if GL_GENERATE_STDBOOL_H stdbool.h: stdbool.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ } > $@-t && \ mv $@-t $@ else stdbool.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdbool.h stdbool.h-t EXTRA_DIST += stdbool.in.h ## end gnulib module stdbool ## begin gnulib module stddef BUILT_SOURCES += $(STDDEF_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDDEF_H stddef.h: stddef.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ < $(srcdir)/stddef.in.h; \ } > $@-t && \ mv $@-t $@ else stddef.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stddef.h stddef.h-t EXTRA_DIST += stddef.in.h ## end gnulib module stddef ## begin gnulib module stdint BUILT_SOURCES += $(STDINT_H) # We need the following in order to create when the system # doesn't have one that works with the given compiler. if GL_GENERATE_STDINT_H stdint.h: stdint.in.h $(top_builddir)/config.status $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ < $(srcdir)/stdint.in.h; \ } > $@-t && \ mv $@-t $@ else stdint.h: $(top_builddir)/config.status rm -f $@ endif MOSTLYCLEANFILES += stdint.h stdint.h-t EXTRA_DIST += stdint.in.h ## end gnulib module stdint ## begin gnulib module striconv libgnu_la_SOURCES += striconv.h striconv.c if GL_COND_LIBTOOL libgnu_la_LDFLAGS += $(LTLIBICONV) endif ## end gnulib module striconv ## begin gnulib module string BUILT_SOURCES += string.h # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ MOSTLYCLEANFILES += string.h string.h-t EXTRA_DIST += string.in.h ## end gnulib module string ## begin gnulib module strverscmp EXTRA_DIST += strverscmp.c EXTRA_libgnu_la_SOURCES += strverscmp.c ## end gnulib module strverscmp ## begin gnulib module unistr/base BUILT_SOURCES += $(LIBUNISTRING_UNISTR_H) unistr.h: unistr.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistr.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unistr.h unistr.h-t EXTRA_DIST += unistr.in.h ## end gnulib module unistr/base ## begin gnulib module unistr/u8-mbtoucr if LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR libgnu_la_SOURCES += unistr/u8-mbtoucr.c endif ## end gnulib module unistr/u8-mbtoucr ## begin gnulib module unistr/u8-uctomb if LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB libgnu_la_SOURCES += unistr/u8-uctomb.c unistr/u8-uctomb-aux.c endif ## end gnulib module unistr/u8-uctomb ## begin gnulib module unitypes BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H) unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-t $@ MOSTLYCLEANFILES += unitypes.h unitypes.h-t EXTRA_DIST += unitypes.in.h ## end gnulib module unitypes mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : libidn-1.28/lib/gl/stdbool.in.h0000644000000000000000000001202112153706107013166 00000000000000/* Copyright (C) 2001-2003, 2006-2013 Free Software Foundation, Inc. Written by Bruno Haible , 2001. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _GL_STDBOOL_H #define _GL_STDBOOL_H /* ISO C 99 for platforms that lack it. */ /* Usage suggestions: Programs that use should be aware of some limitations and standards compliance issues. Standards compliance: - must be #included before 'bool', 'false', 'true' can be used. - You cannot assume that sizeof (bool) == 1. - Programs should not undefine the macros bool, true, and false, as C99 lists that as an "obsolescent feature". Limitations of this substitute, when used in a C89 environment: - must be #included before the '_Bool' type can be used. - You cannot assume that _Bool is a typedef; it might be a macro. - Bit-fields of type 'bool' are not supported. Portable code should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'. - In C99, casts and automatic conversions to '_Bool' or 'bool' are performed in such a way that every nonzero value gets converted to 'true', and zero gets converted to 'false'. This doesn't work with this substitute. With this substitute, only the values 0 and 1 give the expected result when converted to _Bool' or 'bool'. - C99 allows the use of (_Bool)0.0 in constant expressions, but this substitute cannot always provide this property. Also, it is suggested that programs use 'bool' rather than '_Bool'; this isn't required, but 'bool' is more common. */ /* 7.16. Boolean type and values */ /* BeOS already #defines false 0, true 1. We use the same definitions below, but temporarily we have to #undef them. */ #if defined __BEOS__ && !defined __HAIKU__ # include /* defines bool but not _Bool */ # undef false # undef true #endif #ifdef __cplusplus # define _Bool bool # define bool bool #else # if defined __BEOS__ && !defined __HAIKU__ /* A compiler known to have 'bool'. */ /* If the compiler already has both 'bool' and '_Bool', we can assume they are the same types. */ # if !@HAVE__BOOL@ typedef bool _Bool; # endif # else # if !defined __GNUC__ /* If @HAVE__BOOL@: Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when the built-in _Bool type is used. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html Similar bugs are likely with other compilers as well; this file wouldn't be used if was working. So we override the _Bool type. If !@HAVE__BOOL@: Need to define _Bool ourselves. As 'signed char' or as an enum type? Use of a typedef, with SunPRO C, leads to a stupid "warning: _Bool is a keyword in ISO C99". Use of an enum type, with IRIX cc, leads to a stupid "warning(1185): enumerated type mixed with another type". Even the existence of an enum type, without a typedef, "Invalid enumerator. (badenum)" with HP-UX cc on Tru64. The only benefit of the enum, debuggability, is not important with these compilers. So use 'signed char' and no enum. */ # define _Bool signed char # else /* With this compiler, trust the _Bool type if the compiler has it. */ # if !@HAVE__BOOL@ /* For the sake of symbolic names in gdb, define true and false as enum constants, not only as macros. It is tempting to write typedef enum { false = 0, true = 1 } _Bool; so that gdb prints values of type 'bool' symbolically. But then values of type '_Bool' might promote to 'int' or 'unsigned int' (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int' (see ISO C 99 6.3.1.1.(2)). So add a negative value to the enum; this ensures that '_Bool' promotes to 'int'. */ typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool; # endif # endif # endif # define bool _Bool #endif /* The other macros must be usable in preprocessor directives. */ #ifdef __cplusplus # define false false # define true true #else # define false 0 # define true 1 #endif #define __bool_true_false_are_defined 1 #endif /* _GL_STDBOOL_H */ libidn-1.28/lib/gl/strverscmp.c0000644000000000000000000000750612153706107013332 00000000000000/* Compare strings while treating digits characters numerically. Copyright (C) 1997, 2000, 2002, 2004, 2006, 2009-2013 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Jean-François Bignolles , 1997. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #if !_LIBC # include #endif #include #include /* states: S_N: normal, S_I: comparing integral part, S_F: comparing fractional parts, S_Z: idem but with leading Zeroes only */ #define S_N 0x0 #define S_I 0x4 #define S_F 0x8 #define S_Z 0xC /* result_type: CMP: return diff; LEN: compare using len_diff/diff */ #define CMP 2 #define LEN 3 /* ISDIGIT differs from isdigit, as follows: - Its arg may be any int or unsigned int; it need not be an unsigned char or EOF. - It's typically faster. POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to isdigit unless it's important to use the locale's definition of "digit" even when the host does not conform to POSIX. */ #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9) #undef __strverscmp #undef strverscmp #ifndef weak_alias # define __strverscmp strverscmp #endif /* Compare S1 and S2 as strings holding indices/version numbers, returning less than, equal to or greater than zero if S1 is less than, equal to or greater than S2 (for more info, see the texinfo doc). */ int __strverscmp (const char *s1, const char *s2) { const unsigned char *p1 = (const unsigned char *) s1; const unsigned char *p2 = (const unsigned char *) s2; unsigned char c1, c2; int state; int diff; /* Symbol(s) 0 [1-9] others (padding) Transition (10) 0 (01) d (00) x (11) - */ static const unsigned int next_state[] = { /* state x d 0 - */ /* S_N */ S_N, S_I, S_Z, S_N, /* S_I */ S_N, S_I, S_I, S_I, /* S_F */ S_N, S_F, S_F, S_F, /* S_Z */ S_N, S_F, S_Z, S_Z }; static const int result_type[] = { /* state x/x x/d x/0 x/- d/x d/d d/0 d/- 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, /* S_I */ CMP, -1, -1, CMP, 1, LEN, LEN, CMP, 1, LEN, LEN, CMP, CMP, CMP, CMP, CMP, /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP, /* S_Z */ CMP, 1, 1, CMP, -1, CMP, CMP, CMP, -1, CMP, CMP, CMP }; if (p1 == p2) return 0; c1 = *p1++; c2 = *p2++; /* Hint: '0' is a digit too. */ state = S_N | ((c1 == '0') + (ISDIGIT (c1) != 0)); while ((diff = c1 - c2) == 0 && c1 != '\0') { state = next_state[state]; c1 = *p1++; c2 = *p2++; state |= (c1 == '0') + (ISDIGIT (c1) != 0); } state = result_type[state << 2 | ((c2 == '0') + (ISDIGIT (c2) != 0))]; switch (state) { case CMP: return diff; case LEN: while (ISDIGIT (*p1++)) if (!ISDIGIT (*p2++)) return 1; return ISDIGIT (*p2) ? -1 : diff; default: return state; } } #ifdef weak_alias weak_alias (__strverscmp, strverscmp) #endif libidn-1.28/lib/gl/iconv_open-aix.h0000644000000000000000000002360512167245576014060 00000000000000/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -m 10 ./iconv_open-aix.gperf */ /* Computed positions: -k'4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif #line 1 "./iconv_open-aix.gperf" struct mapping { int standard_name; const char vendor_name[10 + 1]; }; #define TOTAL_KEYWORDS 32 #define MIN_WORD_LENGTH 4 #define MAX_WORD_LENGTH 11 #define MIN_HASH_VALUE 6 #define MAX_HASH_VALUE 44 /* maximum key range = 39, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int mapping_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 4, 25, 0, 11, 24, 9, 17, 3, 14, 21, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 3, 45, 1, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45 }; return len + asso_values[(unsigned char)str[3]+2] + asso_values[(unsigned char)str[len - 1]]; } struct stringpool_t { char stringpool_str6[sizeof("EUC-TW")]; char stringpool_str7[sizeof("EUC-KR")]; char stringpool_str8[sizeof("CP852")]; char stringpool_str9[sizeof("EUC-JP")]; char stringpool_str10[sizeof("ISO-8859-2")]; char stringpool_str11[sizeof("CP857")]; char stringpool_str12[sizeof("CP850")]; char stringpool_str13[sizeof("ISO-8859-7")]; char stringpool_str14[sizeof("CP932")]; char stringpool_str15[sizeof("GB2312")]; char stringpool_str16[sizeof("BIG5")]; char stringpool_str17[sizeof("CP437")]; char stringpool_str19[sizeof("ISO-8859-5")]; char stringpool_str20[sizeof("ISO-8859-15")]; char stringpool_str21[sizeof("ISO-8859-3")]; char stringpool_str22[sizeof("ISO-8859-13")]; char stringpool_str23[sizeof("CP1046")]; char stringpool_str24[sizeof("ISO-8859-8")]; char stringpool_str25[sizeof("CP856")]; char stringpool_str26[sizeof("CP1125")]; char stringpool_str27[sizeof("ISO-8859-6")]; char stringpool_str28[sizeof("CP865")]; char stringpool_str29[sizeof("CP922")]; char stringpool_str30[sizeof("CP1252")]; char stringpool_str31[sizeof("ISO-8859-9")]; char stringpool_str33[sizeof("CP943")]; char stringpool_str34[sizeof("ISO-8859-4")]; char stringpool_str35[sizeof("ISO-8859-1")]; char stringpool_str38[sizeof("CP1129")]; char stringpool_str40[sizeof("CP869")]; char stringpool_str41[sizeof("CP1124")]; char stringpool_str44[sizeof("CP861")]; }; static const struct stringpool_t stringpool_contents = { "EUC-TW", "EUC-KR", "CP852", "EUC-JP", "ISO-8859-2", "CP857", "CP850", "ISO-8859-7", "CP932", "GB2312", "BIG5", "CP437", "ISO-8859-5", "ISO-8859-15", "ISO-8859-3", "ISO-8859-13", "CP1046", "ISO-8859-8", "CP856", "CP1125", "ISO-8859-6", "CP865", "CP922", "CP1252", "ISO-8859-9", "CP943", "ISO-8859-4", "ISO-8859-1", "CP1129", "CP869", "CP1124", "CP861" }; #define stringpool ((const char *) &stringpool_contents) static const struct mapping mappings[] = { {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, #line 43 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str6, "IBM-eucTW"}, #line 42 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, "IBM-eucKR"}, #line 25 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str8, "IBM-852"}, #line 41 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, "IBM-eucJP"}, #line 14 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, "ISO8859-2"}, #line 27 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, "IBM-857"}, #line 24 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, "IBM-850"}, #line 19 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, "ISO8859-7"}, #line 33 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, "IBM-932"}, #line 40 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, "IBM-eucCN"}, #line 44 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str16, "big5"}, #line 23 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, "IBM-437"}, {-1}, #line 17 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, "ISO8859-5"}, #line 22 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, "ISO8859-15"}, #line 15 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, "ISO8859-3"}, #line 31 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, "IBM-921"}, #line 35 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, "IBM-1046"}, #line 20 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, "ISO8859-8"}, #line 26 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, "IBM-856"}, #line 37 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, "IBM-1125"}, #line 18 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, "ISO8859-6"}, #line 29 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, "IBM-865"}, #line 32 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, "IBM-922"}, #line 39 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, "IBM-1252"}, #line 21 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, "ISO8859-9"}, {-1}, #line 34 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, "IBM-943"}, #line 16 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, "ISO8859-4"}, #line 13 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, "ISO8859-1"}, {-1}, {-1}, #line 38 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str38, "IBM-1129"}, {-1}, #line 30 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str40, "IBM-869"}, #line 36 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str41, "IBM-1124"}, {-1}, {-1}, #line 28 "./iconv_open-aix.gperf" {(int)(long)&((struct stringpool_t *)0)->stringpool_str44, "IBM-861"} }; #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__ ((__gnu_inline__)) #endif #endif const struct mapping * mapping_lookup (register const char *str, register unsigned int len) { if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { register int key = mapping_hash (str, len); if (key <= MAX_HASH_VALUE && key >= 0) { register int o = mappings[key].standard_name; if (o >= 0) { register const char *s = o + stringpool; if (*str == *s && !strcmp (str + 1, s + 1)) return &mappings[key]; } } } return 0; } libidn-1.28/lib/gl/striconv.h0000644000000000000000000000552712153706107012777 00000000000000/* Charset conversion. Copyright (C) 2001-2004, 2006-2007, 2009-2013 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #ifndef _STRICONV_H #define _STRICONV_H #include #if HAVE_ICONV #include #endif #ifdef __cplusplus extern "C" { #endif #if HAVE_ICONV /* Convert an entire string from one encoding to another, using iconv. The original string is at [SRC,...,SRC+SRCLEN-1]. The conversion descriptor is passed as CD. *RESULTP and *LENGTH should initially be a scratch buffer and its size, or *RESULTP can initially be NULL. May erase the contents of the memory at *RESULTP. Return value: 0 if successful, otherwise -1 and errno set. If successful: The resulting string is stored in *RESULTP and its length in *LENGTHP. *RESULTP is set to a freshly allocated memory block, or is unchanged if no dynamic memory allocation was necessary. */ extern int mem_cd_iconv (const char *src, size_t srclen, iconv_t cd, char **resultp, size_t *lengthp); /* Convert an entire string from one encoding to another, using iconv. The original string is the NUL-terminated string starting at SRC. The conversion descriptor is passed as CD. Both the "from" and the "to" encoding must use a single NUL byte at the end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). Allocate a malloced memory block for the result. Return value: the freshly allocated resulting NUL-terminated string if successful, otherwise NULL and errno set. */ extern char * str_cd_iconv (const char *src, iconv_t cd); #endif /* Convert an entire string from one encoding to another, using iconv. The original string is the NUL-terminated string starting at SRC. Both the "from" and the "to" encoding must use a single NUL byte at the end of the string (i.e. not UCS-2, UCS-4, UTF-16, UTF-32). Allocate a malloced memory block for the result. Return value: the freshly allocated resulting NUL-terminated string if successful, otherwise NULL and errno set. */ extern char * str_iconv (const char *src, const char *from_codeset, const char *to_codeset); #ifdef __cplusplus } #endif #endif /* _STRICONV_H */ libidn-1.28/lib/gl/unistr.in.h0000644000000000000000000005522412153706107013060 00000000000000/* Elementary Unicode string functions. Copyright (C) 2001-2002, 2005-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . */ #ifndef _UNISTR_H #define _UNISTR_H #include "unitypes.h" /* Get common macros for C. */ #include "unused-parameter.h" /* Get bool. */ #include /* Get size_t. */ #include #ifdef __cplusplus extern "C" { #endif /* Conventions: All functions prefixed with u8_ operate on UTF-8 encoded strings. Their unit is an uint8_t (1 byte). All functions prefixed with u16_ operate on UTF-16 encoded strings. Their unit is an uint16_t (a 2-byte word). All functions prefixed with u32_ operate on UCS-4 encoded strings. Their unit is an uint32_t (a 4-byte word). All argument pairs (s, n) denote a Unicode string s[0..n-1] with exactly n units. All arguments starting with "str" and the arguments of functions starting with u8_str/u16_str/u32_str denote a NUL terminated string, i.e. a string which terminates at the first NUL unit. This termination unit is considered part of the string for all memory allocation purposes, but is not considered part of the string for all other logical purposes. Functions returning a string result take a (resultbuf, lengthp) argument pair. If resultbuf is not NULL and the result fits into *lengthp units, it is put in resultbuf, and resultbuf is returned. Otherwise, a freshly allocated string is returned. In both cases, *lengthp is set to the length (number of units) of the returned string. In case of error, NULL is returned and errno is set. */ /* Elementary string checks. */ /* Check whether an UTF-8 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint8_t * u8_check (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Check whether an UTF-16 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint16_t * u16_check (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Check whether an UCS-4 string is well-formed. Return NULL if valid, or a pointer to the first invalid unit otherwise. */ extern const uint32_t * u32_check (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Elementary string conversions. */ /* Convert an UTF-8 string to an UTF-16 string. */ extern uint16_t * u8_to_u16 (const uint8_t *s, size_t n, uint16_t *resultbuf, size_t *lengthp); /* Convert an UTF-8 string to an UCS-4 string. */ extern uint32_t * u8_to_u32 (const uint8_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp); /* Convert an UTF-16 string to an UTF-8 string. */ extern uint8_t * u16_to_u8 (const uint16_t *s, size_t n, uint8_t *resultbuf, size_t *lengthp); /* Convert an UTF-16 string to an UCS-4 string. */ extern uint32_t * u16_to_u32 (const uint16_t *s, size_t n, uint32_t *resultbuf, size_t *lengthp); /* Convert an UCS-4 string to an UTF-8 string. */ extern uint8_t * u32_to_u8 (const uint32_t *s, size_t n, uint8_t *resultbuf, size_t *lengthp); /* Convert an UCS-4 string to an UTF-16 string. */ extern uint16_t * u32_to_u16 (const uint32_t *s, size_t n, uint16_t *resultbuf, size_t *lengthp); /* Elementary string functions. */ /* Return the length (number of units) of the first character in S, which is no longer than N. Return 0 if it is the NUL character. Return -1 upon failure. */ /* Similar to mblen(), except that s must not be NULL. */ extern int u8_mblen (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_mblen (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_mblen (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, and an appropriate number of units is returned. The number of available units, N, must be > 0. */ /* Similar to mbtowc(), except that puc and s must not be NULL, n must be > 0, and the NUL character is not treated specially. */ /* The variants with _safe suffix are safe, even if the library is compiled without --enable-safety. */ #if GNULIB_UNISTR_U8_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n); # else extern int u8_mbtouc_unsafe_aux (ucs4_t *puc, const uint8_t *s, size_t n); static inline int u8_mbtouc_unsafe (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else return u8_mbtouc_unsafe_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U16_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n); # else extern int u16_mbtouc_unsafe_aux (ucs4_t *puc, const uint16_t *s, size_t n); static inline int u16_mbtouc_unsafe (ucs4_t *puc, const uint16_t *s, size_t n) { uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) { *puc = c; return 1; } else return u16_mbtouc_unsafe_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U32_MBTOUC_UNSAFE || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n); # else static inline int u32_mbtouc_unsafe (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) { uint32_t c = *s; # if CONFIG_UNICODE_SAFETY if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) # endif *puc = c; # if CONFIG_UNICODE_SAFETY else /* invalid multibyte character */ *puc = 0xfffd; # endif return 1; } # endif #endif #if GNULIB_UNISTR_U8_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n); # else extern int u8_mbtouc_aux (ucs4_t *puc, const uint8_t *s, size_t n); static inline int u8_mbtouc (ucs4_t *puc, const uint8_t *s, size_t n) { uint8_t c = *s; if (c < 0x80) { *puc = c; return 1; } else return u8_mbtouc_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U16_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n); # else extern int u16_mbtouc_aux (ucs4_t *puc, const uint16_t *s, size_t n); static inline int u16_mbtouc (ucs4_t *puc, const uint16_t *s, size_t n) { uint16_t c = *s; if (c < 0xd800 || c >= 0xe000) { *puc = c; return 1; } else return u16_mbtouc_aux (puc, s, n); } # endif #endif #if GNULIB_UNISTR_U32_MBTOUC || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n); # else static inline int u32_mbtouc (ucs4_t *puc, const uint32_t *s, size_t n _GL_UNUSED_PARAMETER) { uint32_t c = *s; if (c < 0xd800 || (c >= 0xe000 && c < 0x110000)) *puc = c; else /* invalid multibyte character */ *puc = 0xfffd; return 1; } # endif #endif /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Upon failure, *PUC is set to 0xfffd, and -1 is returned for an invalid sequence of units, -2 is returned for an incomplete sequence of units. The number of available units, N, must be > 0. */ /* Similar to u*_mbtouc(), except that the return value gives more details about the failure, similar to mbrtowc(). */ #if GNULIB_UNISTR_U8_MBTOUCR || HAVE_LIBUNISTRING extern int u8_mbtoucr (ucs4_t *puc, const uint8_t *s, size_t n); #endif #if GNULIB_UNISTR_U16_MBTOUCR || HAVE_LIBUNISTRING extern int u16_mbtoucr (ucs4_t *puc, const uint16_t *s, size_t n); #endif #if GNULIB_UNISTR_U32_MBTOUCR || HAVE_LIBUNISTRING extern int u32_mbtoucr (ucs4_t *puc, const uint32_t *s, size_t n); #endif /* Put the multibyte character represented by UC in S, returning its length. Return -1 upon failure, -2 if the number of available units, N, is too small. The latter case cannot occur if N >= 6/2/1, respectively. */ /* Similar to wctomb(), except that s must not be NULL, and the argument n must be specified. */ #if GNULIB_UNISTR_U8_UCTOMB || HAVE_LIBUNISTRING /* Auxiliary function, also used by u8_chr, u8_strchr, u8_strrchr. */ extern int u8_uctomb_aux (uint8_t *s, ucs4_t uc, int n); # if !HAVE_INLINE extern int u8_uctomb (uint8_t *s, ucs4_t uc, int n); # else static inline int u8_uctomb (uint8_t *s, ucs4_t uc, int n) { if (uc < 0x80 && n > 0) { s[0] = uc; return 1; } else return u8_uctomb_aux (s, uc, n); } # endif #endif #if GNULIB_UNISTR_U16_UCTOMB || HAVE_LIBUNISTRING /* Auxiliary function, also used by u16_chr, u16_strchr, u16_strrchr. */ extern int u16_uctomb_aux (uint16_t *s, ucs4_t uc, int n); # if !HAVE_INLINE extern int u16_uctomb (uint16_t *s, ucs4_t uc, int n); # else static inline int u16_uctomb (uint16_t *s, ucs4_t uc, int n) { if (uc < 0xd800 && n > 0) { s[0] = uc; return 1; } else return u16_uctomb_aux (s, uc, n); } # endif #endif #if GNULIB_UNISTR_U32_UCTOMB || HAVE_LIBUNISTRING # if !HAVE_INLINE extern int u32_uctomb (uint32_t *s, ucs4_t uc, int n); # else static inline int u32_uctomb (uint32_t *s, ucs4_t uc, int n) { if (uc < 0xd800 || (uc >= 0xe000 && uc < 0x110000)) { if (n > 0) { *s = uc; return 1; } else return -2; } else return -1; } # endif #endif /* Copy N units from SRC to DEST. */ /* Similar to memcpy(). */ extern uint8_t * u8_cpy (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_cpy (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_cpy (uint32_t *dest, const uint32_t *src, size_t n); /* Copy N units from SRC to DEST, guaranteeing correct behavior for overlapping memory areas. */ /* Similar to memmove(). */ extern uint8_t * u8_move (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_move (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_move (uint32_t *dest, const uint32_t *src, size_t n); /* Set the first N characters of S to UC. UC should be a character that occupies only 1 unit. */ /* Similar to memset(). */ extern uint8_t * u8_set (uint8_t *s, ucs4_t uc, size_t n); extern uint16_t * u16_set (uint16_t *s, ucs4_t uc, size_t n); extern uint32_t * u32_set (uint32_t *s, ucs4_t uc, size_t n); /* Compare S1 and S2, each of length N. */ /* Similar to memcmp(). */ extern int u8_cmp (const uint8_t *s1, const uint8_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_cmp (const uint16_t *s1, const uint16_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_cmp (const uint32_t *s1, const uint32_t *s2, size_t n) _UC_ATTRIBUTE_PURE; /* Compare S1 and S2. */ /* Similar to the gnulib function memcmp2(). */ extern int u8_cmp2 (const uint8_t *s1, size_t n1, const uint8_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; extern int u16_cmp2 (const uint16_t *s1, size_t n1, const uint16_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; extern int u32_cmp2 (const uint32_t *s1, size_t n1, const uint32_t *s2, size_t n2) _UC_ATTRIBUTE_PURE; /* Search the string at S for UC. */ /* Similar to memchr(). */ extern uint8_t * u8_chr (const uint8_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_chr (const uint16_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_chr (const uint32_t *s, size_t n, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Count the number of Unicode characters in the N units from S. */ /* Similar to mbsnlen(). */ extern size_t u8_mbsnlen (const uint8_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern size_t u16_mbsnlen (const uint16_t *s, size_t n) _UC_ATTRIBUTE_PURE; extern size_t u32_mbsnlen (const uint32_t *s, size_t n) _UC_ATTRIBUTE_PURE; /* Elementary string functions with memory allocation. */ /* Make a freshly allocated copy of S, of length N. */ extern uint8_t * u8_cpy_alloc (const uint8_t *s, size_t n); extern uint16_t * u16_cpy_alloc (const uint16_t *s, size_t n); extern uint32_t * u32_cpy_alloc (const uint32_t *s, size_t n); /* Elementary string functions on NUL terminated strings. */ /* Return the length (number of units) of the first character in S. Return 0 if it is the NUL character. Return -1 upon failure. */ extern int u8_strmblen (const uint8_t *s) _UC_ATTRIBUTE_PURE; extern int u16_strmblen (const uint16_t *s) _UC_ATTRIBUTE_PURE; extern int u32_strmblen (const uint32_t *s) _UC_ATTRIBUTE_PURE; /* Return the length (number of units) of the first character in S, putting its 'ucs4_t' representation in *PUC. Return 0 if it is the NUL character. Return -1 upon failure. */ extern int u8_strmbtouc (ucs4_t *puc, const uint8_t *s); extern int u16_strmbtouc (ucs4_t *puc, const uint16_t *s); extern int u32_strmbtouc (ucs4_t *puc, const uint32_t *s); /* Forward iteration step. Advances the pointer past the next character, or returns NULL if the end of the string has been reached. Puts the character's 'ucs4_t' representation in *PUC. */ extern const uint8_t * u8_next (ucs4_t *puc, const uint8_t *s); extern const uint16_t * u16_next (ucs4_t *puc, const uint16_t *s); extern const uint32_t * u32_next (ucs4_t *puc, const uint32_t *s); /* Backward iteration step. Advances the pointer to point to the previous character, or returns NULL if the beginning of the string had been reached. Puts the character's 'ucs4_t' representation in *PUC. */ extern const uint8_t * u8_prev (ucs4_t *puc, const uint8_t *s, const uint8_t *start); extern const uint16_t * u16_prev (ucs4_t *puc, const uint16_t *s, const uint16_t *start); extern const uint32_t * u32_prev (ucs4_t *puc, const uint32_t *s, const uint32_t *start); /* Return the number of units in S. */ /* Similar to strlen(), wcslen(). */ extern size_t u8_strlen (const uint8_t *s) _UC_ATTRIBUTE_PURE; extern size_t u16_strlen (const uint16_t *s) _UC_ATTRIBUTE_PURE; extern size_t u32_strlen (const uint32_t *s) _UC_ATTRIBUTE_PURE; /* Return the number of units in S, but at most MAXLEN. */ /* Similar to strnlen(), wcsnlen(). */ extern size_t u8_strnlen (const uint8_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; extern size_t u16_strnlen (const uint16_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; extern size_t u32_strnlen (const uint32_t *s, size_t maxlen) _UC_ATTRIBUTE_PURE; /* Copy SRC to DEST. */ /* Similar to strcpy(), wcscpy(). */ extern uint8_t * u8_strcpy (uint8_t *dest, const uint8_t *src); extern uint16_t * u16_strcpy (uint16_t *dest, const uint16_t *src); extern uint32_t * u32_strcpy (uint32_t *dest, const uint32_t *src); /* Copy SRC to DEST, returning the address of the terminating NUL in DEST. */ /* Similar to stpcpy(). */ extern uint8_t * u8_stpcpy (uint8_t *dest, const uint8_t *src); extern uint16_t * u16_stpcpy (uint16_t *dest, const uint16_t *src); extern uint32_t * u32_stpcpy (uint32_t *dest, const uint32_t *src); /* Copy no more than N units of SRC to DEST. */ /* Similar to strncpy(), wcsncpy(). */ extern uint8_t * u8_strncpy (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_strncpy (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_strncpy (uint32_t *dest, const uint32_t *src, size_t n); /* Copy no more than N units of SRC to DEST. Return a pointer past the last non-NUL unit written into DEST. */ /* Similar to stpncpy(). */ extern uint8_t * u8_stpncpy (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_stpncpy (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_stpncpy (uint32_t *dest, const uint32_t *src, size_t n); /* Append SRC onto DEST. */ /* Similar to strcat(), wcscat(). */ extern uint8_t * u8_strcat (uint8_t *dest, const uint8_t *src); extern uint16_t * u16_strcat (uint16_t *dest, const uint16_t *src); extern uint32_t * u32_strcat (uint32_t *dest, const uint32_t *src); /* Append no more than N units of SRC onto DEST. */ /* Similar to strncat(), wcsncat(). */ extern uint8_t * u8_strncat (uint8_t *dest, const uint8_t *src, size_t n); extern uint16_t * u16_strncat (uint16_t *dest, const uint16_t *src, size_t n); extern uint32_t * u32_strncat (uint32_t *dest, const uint32_t *src, size_t n); /* Compare S1 and S2. */ /* Similar to strcmp(), wcscmp(). */ #ifdef __sun /* Avoid a collision with the u8_strcmp() function in Solaris 11 libc. */ extern int u8_strcmp_gnu (const uint8_t *s1, const uint8_t *s2) _UC_ATTRIBUTE_PURE; # define u8_strcmp u8_strcmp_gnu #else extern int u8_strcmp (const uint8_t *s1, const uint8_t *s2) _UC_ATTRIBUTE_PURE; #endif extern int u16_strcmp (const uint16_t *s1, const uint16_t *s2) _UC_ATTRIBUTE_PURE; extern int u32_strcmp (const uint32_t *s1, const uint32_t *s2) _UC_ATTRIBUTE_PURE; /* Compare S1 and S2 using the collation rules of the current locale. Return -1 if S1 < S2, 0 if S1 = S2, 1 if S1 > S2. Upon failure, set errno and return any value. */ /* Similar to strcoll(), wcscoll(). */ extern int u8_strcoll (const uint8_t *s1, const uint8_t *s2); extern int u16_strcoll (const uint16_t *s1, const uint16_t *s2); extern int u32_strcoll (const uint32_t *s1, const uint32_t *s2); /* Compare no more than N units of S1 and S2. */ /* Similar to strncmp(), wcsncmp(). */ extern int u8_strncmp (const uint8_t *s1, const uint8_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u16_strncmp (const uint16_t *s1, const uint16_t *s2, size_t n) _UC_ATTRIBUTE_PURE; extern int u32_strncmp (const uint32_t *s1, const uint32_t *s2, size_t n) _UC_ATTRIBUTE_PURE; /* Duplicate S, returning an identical malloc'd string. */ /* Similar to strdup(), wcsdup(). */ extern uint8_t * u8_strdup (const uint8_t *s); extern uint16_t * u16_strdup (const uint16_t *s); extern uint32_t * u32_strdup (const uint32_t *s); /* Find the first occurrence of UC in STR. */ /* Similar to strchr(), wcschr(). */ extern uint8_t * u8_strchr (const uint8_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strchr (const uint16_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strchr (const uint32_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Find the last occurrence of UC in STR. */ /* Similar to strrchr(), wcsrchr(). */ extern uint8_t * u8_strrchr (const uint8_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strrchr (const uint16_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strrchr (const uint32_t *str, ucs4_t uc) _UC_ATTRIBUTE_PURE; /* Return the length of the initial segment of STR which consists entirely of Unicode characters not in REJECT. */ /* Similar to strcspn(), wcscspn(). */ extern size_t u8_strcspn (const uint8_t *str, const uint8_t *reject) _UC_ATTRIBUTE_PURE; extern size_t u16_strcspn (const uint16_t *str, const uint16_t *reject) _UC_ATTRIBUTE_PURE; extern size_t u32_strcspn (const uint32_t *str, const uint32_t *reject) _UC_ATTRIBUTE_PURE; /* Return the length of the initial segment of STR which consists entirely of Unicode characters in ACCEPT. */ /* Similar to strspn(), wcsspn(). */ extern size_t u8_strspn (const uint8_t *str, const uint8_t *accept) _UC_ATTRIBUTE_PURE; extern size_t u16_strspn (const uint16_t *str, const uint16_t *accept) _UC_ATTRIBUTE_PURE; extern size_t u32_strspn (const uint32_t *str, const uint32_t *accept) _UC_ATTRIBUTE_PURE; /* Find the first occurrence in STR of any character in ACCEPT. */ /* Similar to strpbrk(), wcspbrk(). */ extern uint8_t * u8_strpbrk (const uint8_t *str, const uint8_t *accept) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strpbrk (const uint16_t *str, const uint16_t *accept) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strpbrk (const uint32_t *str, const uint32_t *accept) _UC_ATTRIBUTE_PURE; /* Find the first occurrence of NEEDLE in HAYSTACK. */ /* Similar to strstr(), wcsstr(). */ extern uint8_t * u8_strstr (const uint8_t *haystack, const uint8_t *needle) _UC_ATTRIBUTE_PURE; extern uint16_t * u16_strstr (const uint16_t *haystack, const uint16_t *needle) _UC_ATTRIBUTE_PURE; extern uint32_t * u32_strstr (const uint32_t *haystack, const uint32_t *needle) _UC_ATTRIBUTE_PURE; /* Test whether STR starts with PREFIX. */ extern bool u8_startswith (const uint8_t *str, const uint8_t *prefix) _UC_ATTRIBUTE_PURE; extern bool u16_startswith (const uint16_t *str, const uint16_t *prefix) _UC_ATTRIBUTE_PURE; extern bool u32_startswith (const uint32_t *str, const uint32_t *prefix) _UC_ATTRIBUTE_PURE; /* Test whether STR ends with SUFFIX. */ extern bool u8_endswith (const uint8_t *str, const uint8_t *suffix) _UC_ATTRIBUTE_PURE; extern bool u16_endswith (const uint16_t *str, const uint16_t *suffix) _UC_ATTRIBUTE_PURE; extern bool u32_endswith (const uint32_t *str, const uint32_t *suffix) _UC_ATTRIBUTE_PURE; /* Divide STR into tokens separated by characters in DELIM. This interface is actually more similar to wcstok than to strtok. */ /* Similar to strtok_r(), wcstok(). */ extern uint8_t * u8_strtok (uint8_t *str, const uint8_t *delim, uint8_t **ptr); extern uint16_t * u16_strtok (uint16_t *str, const uint16_t *delim, uint16_t **ptr); extern uint32_t * u32_strtok (uint32_t *str, const uint32_t *delim, uint32_t **ptr); #ifdef __cplusplus } #endif #endif /* _UNISTR_H */ libidn-1.28/lib/gl/striconv.c0000644000000000000000000003122612153706107012765 00000000000000/* Charset conversion. Copyright (C) 2001-2007, 2010-2013 Free Software Foundation, Inc. Written by Bruno Haible and Simon Josefsson. This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1, or (at your option) any later version. 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, see . */ #include /* Specification. */ #include "striconv.h" #include #include #include #if HAVE_ICONV # include /* Get MB_LEN_MAX, CHAR_BIT. */ # include #endif #include "c-strcase.h" #ifndef SIZE_MAX # define SIZE_MAX ((size_t) -1) #endif #if HAVE_ICONV int mem_cd_iconv (const char *src, size_t srclen, iconv_t cd, char **resultp, size_t *lengthp) { # define tmpbufsize 4096 size_t length; char *result; /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Set to the initial state. */ iconv (cd, NULL, NULL, NULL, NULL); # endif /* Determine the length we need. */ { size_t count = 0; /* The alignment is needed when converting e.g. to glibc's WCHAR_T or libiconv's UCS-4-INTERNAL encoding. */ union { unsigned int align; char buf[tmpbufsize]; } tmp; # define tmpbuf tmp.buf const char *inptr = src; size_t insize = srclen; while (insize > 0) { char *outptr = tmpbuf; size_t outsize = tmpbufsize; size_t res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize); if (res == (size_t)(-1)) { if (errno == E2BIG) ; else if (errno == EINVAL) break; else return -1; } # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. */ else if (res > 0) { errno = EILSEQ; return -1; } # endif count += outptr - tmpbuf; } /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) { char *outptr = tmpbuf; size_t outsize = tmpbufsize; size_t res = iconv (cd, NULL, NULL, &outptr, &outsize); if (res == (size_t)(-1)) return -1; count += outptr - tmpbuf; } # endif length = count; # undef tmpbuf } if (length == 0) { *lengthp = 0; return 0; } if (*resultp != NULL && *lengthp >= length) result = *resultp; else { result = (char *) malloc (length); if (result == NULL) { errno = ENOMEM; return -1; } } /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Return to the initial state. */ iconv (cd, NULL, NULL, NULL, NULL); # endif /* Do the conversion for real. */ { const char *inptr = src; size_t insize = srclen; char *outptr = result; size_t outsize = length; while (insize > 0) { size_t res = iconv (cd, (ICONV_CONST char **) &inptr, &insize, &outptr, &outsize); if (res == (size_t)(-1)) { if (errno == EINVAL) break; else goto fail; } # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. */ else if (res > 0) { errno = EILSEQ; goto fail; } # endif } /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) { size_t res = iconv (cd, NULL, NULL, &outptr, &outsize); if (res == (size_t)(-1)) goto fail; } # endif if (outsize != 0) abort (); } *resultp = result; *lengthp = length; return 0; fail: { if (result != *resultp) { int saved_errno = errno; free (result); errno = saved_errno; } return -1; } # undef tmpbufsize } char * str_cd_iconv (const char *src, iconv_t cd) { /* For most encodings, a trailing NUL byte in the input will be converted to a trailing NUL byte in the output. But not for UTF-7. So that this function is usable for UTF-7, we have to exclude the NUL byte from the conversion and add it by hand afterwards. */ # if !defined _LIBICONV_VERSION && !(defined __GLIBC__ && !defined __UCLIBC__) /* Irix iconv() inserts a NUL byte if it cannot convert. NetBSD iconv() inserts a question mark if it cannot convert. Only GNU libiconv and GNU libc are known to prefer to fail rather than doing a lossy conversion. For other iconv() implementations, we have to look at the number of irreversible conversions returned; but this information is lost when iconv() returns for an E2BIG reason. Therefore we cannot use the second, faster algorithm. */ char *result = NULL; size_t length = 0; int retval = mem_cd_iconv (src, strlen (src), cd, &result, &length); char *final_result; if (retval < 0) { if (result != NULL) abort (); return NULL; } /* Add the terminating NUL byte. */ final_result = (result != NULL ? realloc (result, length + 1) : malloc (length + 1)); if (final_result == NULL) { free (result); errno = ENOMEM; return NULL; } final_result[length] = '\0'; return final_result; # else /* This algorithm is likely faster than the one above. But it may produce iconv() returns for an E2BIG reason, when the output size guess is too small. Therefore it can only be used when we don't need the number of irreversible conversions performed. */ char *result; size_t result_size; size_t length; const char *inptr = src; size_t inbytes_remaining = strlen (src); /* Make a guess for the worst-case output size, in order to avoid a realloc. It's OK if the guess is wrong as long as it is not zero and doesn't lead to an integer overflow. */ result_size = inbytes_remaining; { size_t approx_sqrt_SIZE_MAX = SIZE_MAX >> (sizeof (size_t) * CHAR_BIT / 2); if (result_size <= approx_sqrt_SIZE_MAX / MB_LEN_MAX) result_size *= MB_LEN_MAX; } result_size += 1; /* for the terminating NUL */ result = (char *) malloc (result_size); if (result == NULL) { errno = ENOMEM; return NULL; } /* Avoid glibc-2.1 bug and Solaris 2.7-2.9 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) /* Set to the initial state. */ iconv (cd, NULL, NULL, NULL, NULL); # endif /* Do the conversion. */ { char *outptr = result; size_t outbytes_remaining = result_size - 1; for (;;) { /* Here inptr + inbytes_remaining = src + strlen (src), outptr + outbytes_remaining = result + result_size - 1. */ size_t res = iconv (cd, (ICONV_CONST char **) &inptr, &inbytes_remaining, &outptr, &outbytes_remaining); if (res == (size_t)(-1)) { if (errno == EINVAL) break; else if (errno == E2BIG) { size_t used = outptr - result; size_t newsize = result_size * 2; char *newresult; if (!(newsize > result_size)) { errno = ENOMEM; goto failed; } newresult = (char *) realloc (result, newsize); if (newresult == NULL) { errno = ENOMEM; goto failed; } result = newresult; result_size = newsize; outptr = result + used; outbytes_remaining = result_size - 1 - used; } else goto failed; } else break; } /* Avoid glibc-2.1 bug and Solaris 2.7 bug. */ # if defined _LIBICONV_VERSION \ || !(((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ || defined __sun) for (;;) { /* Here outptr + outbytes_remaining = result + result_size - 1. */ size_t res = iconv (cd, NULL, NULL, &outptr, &outbytes_remaining); if (res == (size_t)(-1)) { if (errno == E2BIG) { size_t used = outptr - result; size_t newsize = result_size * 2; char *newresult; if (!(newsize > result_size)) { errno = ENOMEM; goto failed; } newresult = (char *) realloc (result, newsize); if (newresult == NULL) { errno = ENOMEM; goto failed; } result = newresult; result_size = newsize; outptr = result + used; outbytes_remaining = result_size - 1 - used; } else goto failed; } else break; } # endif /* Add the terminating NUL byte. */ *outptr++ = '\0'; length = outptr - result; } /* Give away unused memory. */ if (length < result_size) { char *smaller_result = (char *) realloc (result, length); if (smaller_result != NULL) result = smaller_result; } return result; failed: { int saved_errno = errno; free (result); errno = saved_errno; return NULL; } # endif } #endif char * str_iconv (const char *src, const char *from_codeset, const char *to_codeset) { if (*src == '\0' || c_strcasecmp (from_codeset, to_codeset) == 0) { char *result = strdup (src); if (result == NULL) errno = ENOMEM; return result; } else { #if HAVE_ICONV iconv_t cd; char *result; /* Avoid glibc-2.1 bug with EUC-KR. */ # if ((__GLIBC__ == 2 && __GLIBC_MINOR__ <= 1) && !defined __UCLIBC__) \ && !defined _LIBICONV_VERSION if (c_strcasecmp (from_codeset, "EUC-KR") == 0 || c_strcasecmp (to_codeset, "EUC-KR") == 0) { errno = EINVAL; return NULL; } # endif cd = iconv_open (to_codeset, from_codeset); if (cd == (iconv_t) -1) return NULL; result = str_cd_iconv (src, cd); if (result == NULL) { /* Close cd, but preserve the errno from str_cd_iconv. */ int saved_errno = errno; iconv_close (cd); errno = saved_errno; } else { if (iconv_close (cd) < 0) { /* Return NULL, but free the allocated memory, and while doing that, preserve the errno from iconv_close. */ int saved_errno = errno; free (result); errno = saved_errno; return NULL; } } return result; #else /* This is a different error code than if iconv_open existed but didn't support from_codeset and to_codeset, so that the caller can emit an error message such as "iconv() is not supported. Installing GNU libiconv and then reinstalling this package would fix this." */ errno = ENOSYS; return NULL; #endif } } libidn-1.28/lib/gl/Makefile.in0000644000000000000000000021677712167244662013047 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Free Software Foundation, Inc. # # This file 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 3 of the License, or # (at your option) any later version. # # This file 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. # # You should have received a copy of the GNU General Public License # along with this file. If not, see . # # As a special exception to the GNU General Public License, # this file may be distributed as part of a program that # contains a configuration script generated by Autoconf, under # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. # Reproduce by: gnulib-tool --import --dir=. --local-dir=lib/gl/override --lib=libgnu --source-base=lib/gl --m4-base=lib/gl/m4 --doc-base=doc --tests-base=lib/gltests --aux-dir=build-aux --with-tests --avoid=iconv-h-tests --avoid=string-tests --avoid=wchar-tests --lgpl=2 --no-conditional-dependencies --libtool --macro-prefix=lgl --no-vc-files gettext-h lib-msvc-compat lib-symbol-versions lib-symbol-visibility stdint striconv strverscmp VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @GL_COND_LIBTOOL_TRUE@am__append_1 = $(LTLIBICONV) @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__append_2 = unistr/u8-mbtoucr.c @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__append_3 = unistr/u8-uctomb.c unistr/u8-uctomb-aux.c subdir = lib/gl DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = LIBRARIES = $(noinst_LIBRARIES) LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = am__libgnu_la_SOURCES_DIST = c-ctype.h c-ctype.c c-strcase.h \ c-strcasecmp.c c-strncasecmp.c gettext.h striconv.h striconv.c \ unistr/u8-mbtoucr.c unistr/u8-uctomb.c unistr/u8-uctomb-aux.c am__dirstamp = $(am__leading_dot)dirstamp @LIBUNISTRING_COMPILE_UNISTR_U8_MBTOUCR_TRUE@am__objects_1 = unistr/u8-mbtoucr.lo @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@am__objects_2 = unistr/u8-uctomb.lo \ @LIBUNISTRING_COMPILE_UNISTR_U8_UCTOMB_TRUE@ unistr/u8-uctomb-aux.lo am_libgnu_la_OBJECTS = c-ctype.lo c-strcasecmp.lo c-strncasecmp.lo \ striconv.lo $(am__objects_1) $(am__objects_2) libgnu_la_OBJECTS = $(am_libgnu_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libgnu_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgnu_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libgnu_la_SOURCES) $(EXTRA_libgnu_la_SOURCES) DIST_SOURCES = $(am__libgnu_la_SOURCES_DIST) \ $(EXTRA_libgnu_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac HEADERS = $(noinst_HEADERS) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ distdir am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = noinst_LTLIBRARIES = libgnu.la EXTRA_DIST = m4/gnulib-cache.m4 $(top_srcdir)/build-aux/config.rpath \ iconv.in.h iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \ iconv.c iconv_close.c iconv_open-aix.gperf \ iconv_open-hpux.gperf iconv_open-irix.gperf \ iconv_open-osf.gperf iconv_open-solaris.gperf iconv_open.c \ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ $(top_srcdir)/build-aux/snippet/c++defs.h \ $(top_srcdir)/build-aux/snippet/unused-parameter.h \ $(top_srcdir)/build-aux/snippet/warn-on-use.h stdbool.in.h \ stddef.in.h stdint.in.h string.in.h strverscmp.c unistr.in.h \ unitypes.in.h # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be # present in all Makefile.am that need it. This is ensured by the applicability # 'all' defined above. BUILT_SOURCES = $(ICONV_H) iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h \ arg-nonnull.h c++defs.h unused-parameter.h warn-on-use.h \ $(STDBOOL_H) $(STDDEF_H) $(STDINT_H) string.h \ $(LIBUNISTRING_UNISTR_H) $(LIBUNISTRING_UNITYPES_H) SUFFIXES = MOSTLYCLEANFILES = core *.stackdump iconv.h iconv.h-t \ iconv_open-aix.h-t iconv_open-hpux.h-t iconv_open-irix.h-t \ iconv_open-osf.h-t iconv_open-solaris.h-t arg-nonnull.h \ arg-nonnull.h-t c++defs.h c++defs.h-t unused-parameter.h \ unused-parameter.h-t warn-on-use.h warn-on-use.h-t stdbool.h \ stdbool.h-t stddef.h stddef.h-t stdint.h stdint.h-t string.h \ string.h-t unistr.h unistr.h-t unitypes.h unitypes.h-t MOSTLYCLEANDIRS = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = iconv_open-aix.h iconv_open-hpux.h \ iconv_open-irix.h iconv_open-osf.h iconv_open-solaris.h AM_CPPFLAGS = # The value of $(CFLAG_VISIBILITY) needs to be added to the CFLAGS for the # compilation of all sources that make up the library. This line here does it # only for the gnulib part of it. The developer is responsible for adding # $(CFLAG_VISIBILITY) to the Makefile.ams of the other portions of the library. AM_CFLAGS = $(CFLAG_VISIBILITY) libgnu_la_SOURCES = c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c \ c-strncasecmp.c gettext.h striconv.h striconv.c \ $(am__append_2) $(am__append_3) libgnu_la_LIBADD = $(lgl_LTLIBOBJS) libgnu_la_DEPENDENCIES = $(lgl_LTLIBOBJS) EXTRA_libgnu_la_SOURCES = iconv.c iconv_close.c iconv_open.c \ strverscmp.c libgnu_la_LDFLAGS = $(AM_LDFLAGS) -no-undefined $(LTLIBICONV) \ $(LTLIBINTL) $(am__append_1) GPERF = gperf ARG_NONNULL_H = arg-nonnull.h CXXDEFS_H = c++defs.h UNUSED_PARAMETER_H = unused-parameter.h WARN_ON_USE_H = warn-on-use.h all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/gl/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits lib/gl/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): clean-noinstLIBRARIES: -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) clean-noinstLTLIBRARIES: -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) @list='$(noinst_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } unistr/$(am__dirstamp): @$(MKDIR_P) unistr @: > unistr/$(am__dirstamp) unistr/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) unistr/$(DEPDIR) @: > unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-mbtoucr.lo: unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-uctomb.lo: unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) unistr/u8-uctomb-aux.lo: unistr/$(am__dirstamp) \ unistr/$(DEPDIR)/$(am__dirstamp) libgnu.la: $(libgnu_la_OBJECTS) $(libgnu_la_DEPENDENCIES) $(EXTRA_libgnu_la_DEPENDENCIES) $(AM_V_CCLD)$(libgnu_la_LINK) $(libgnu_la_OBJECTS) $(libgnu_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f unistr/*.$(OBJEXT) -rm -f unistr/*.lo distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-ctype.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strcasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_close.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iconv_open.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/striconv.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strverscmp.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-mbtoucr.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb-aux.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@unistr/$(DEPDIR)/u8-uctomb.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs -rm -rf unistr/.libs unistr/_libs # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f unistr/$(DEPDIR)/$(am__dirstamp) -rm -f unistr/$(am__dirstamp) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) clean: clean-recursive clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES mostlyclean-am distclean: distclean-recursive -rm -rf ./$(DEPDIR) unistr/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -rf ./$(DEPDIR) unistr/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool mostlyclean-local pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ check-am clean clean-generic clean-libtool \ clean-noinstLIBRARIES clean-noinstLTLIBRARIES cscopelist-am \ ctags ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-man install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \ pdf-am ps ps-am tags tags-am uninstall uninstall-am # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_ICONV_H_TRUE@iconv.h: iconv.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) @GL_GENERATE_ICONV_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_ICONV_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_ICONV_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''NEXT_ICONV_H''@|$(NEXT_ICONV_H)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's/@''GNULIB_ICONV''@/$(GNULIB_ICONV)/g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''ICONV_CONST''@|$(ICONV_CONST)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV''@|$(REPLACE_ICONV)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV_OPEN''@|$(REPLACE_ICONV_OPEN)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e 's|@''REPLACE_ICONV_UTF''@|$(REPLACE_ICONV_UTF)|g' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ @GL_GENERATE_ICONV_H_TRUE@ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ @GL_GENERATE_ICONV_H_TRUE@ < $(srcdir)/iconv.in.h; \ @GL_GENERATE_ICONV_H_TRUE@ } > $@-t && \ @GL_GENERATE_ICONV_H_TRUE@ mv $@-t $@ @GL_GENERATE_ICONV_H_FALSE@iconv.h: $(top_builddir)/config.status @GL_GENERATE_ICONV_H_FALSE@ rm -f $@ iconv_open-aix.h: iconv_open-aix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-aix.gperf > $(srcdir)/iconv_open-aix.h-t mv $(srcdir)/iconv_open-aix.h-t $(srcdir)/iconv_open-aix.h iconv_open-hpux.h: iconv_open-hpux.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-hpux.gperf > $(srcdir)/iconv_open-hpux.h-t mv $(srcdir)/iconv_open-hpux.h-t $(srcdir)/iconv_open-hpux.h iconv_open-irix.h: iconv_open-irix.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-irix.gperf > $(srcdir)/iconv_open-irix.h-t mv $(srcdir)/iconv_open-irix.h-t $(srcdir)/iconv_open-irix.h iconv_open-osf.h: iconv_open-osf.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-osf.gperf > $(srcdir)/iconv_open-osf.h-t mv $(srcdir)/iconv_open-osf.h-t $(srcdir)/iconv_open-osf.h iconv_open-solaris.h: iconv_open-solaris.gperf $(GPERF) -m 10 $(srcdir)/iconv_open-solaris.gperf > $(srcdir)/iconv_open-solaris.h-t mv $(srcdir)/iconv_open-solaris.h-t $(srcdir)/iconv_open-solaris.h # The arg-nonnull.h that gets inserted into generated .h files is the same as # build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut # off. arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_ARG_NONNULL/,$$p' \ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ > $@-t && \ mv $@-t $@ # The c++defs.h that gets inserted into generated .h files is the same as # build-aux/snippet/c++defs.h, except that it has the copyright header cut off. c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/_GL_CXXDEFS/,$$p' \ < $(top_srcdir)/build-aux/snippet/c++defs.h \ > $@-t && \ mv $@-t $@ # The unused-parameter.h that gets inserted into generated .h files is the same # as build-aux/snippet/unused-parameter.h, except that it has the copyright # header cut off. unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ > $@-t && \ mv $@-t $@ # The warn-on-use.h that gets inserted into generated .h files is the same as # build-aux/snippet/warn-on-use.h, except that it has the copyright header cut # off. warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h $(AM_V_GEN)rm -f $@-t $@ && \ sed -n -e '/^.ifndef/,$$p' \ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ > $@-t && \ mv $@-t $@ # We need the following in order to create when the system # doesn't have one that works. @GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \ @GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status @GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \ @GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \ @GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status @GL_GENERATE_STDDEF_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. @GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status @GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \ @GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \ @GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \ @GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \ @GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@ @GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status @GL_GENERATE_STDINT_H_FALSE@ rm -f $@ # We need the following in order to create when the system # doesn't have one that works with the given compiler. string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ sed -e 's|@''GUARD_PREFIX''@|GL_LGL|g' \ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/g' \ -e 's/@''GNULIB_MBSLEN''@/$(GNULIB_MBSLEN)/g' \ -e 's/@''GNULIB_MBSNLEN''@/$(GNULIB_MBSNLEN)/g' \ -e 's/@''GNULIB_MBSCHR''@/$(GNULIB_MBSCHR)/g' \ -e 's/@''GNULIB_MBSRCHR''@/$(GNULIB_MBSRCHR)/g' \ -e 's/@''GNULIB_MBSSTR''@/$(GNULIB_MBSSTR)/g' \ -e 's/@''GNULIB_MBSCASECMP''@/$(GNULIB_MBSCASECMP)/g' \ -e 's/@''GNULIB_MBSNCASECMP''@/$(GNULIB_MBSNCASECMP)/g' \ -e 's/@''GNULIB_MBSPCASECMP''@/$(GNULIB_MBSPCASECMP)/g' \ -e 's/@''GNULIB_MBSCASESTR''@/$(GNULIB_MBSCASESTR)/g' \ -e 's/@''GNULIB_MBSCSPN''@/$(GNULIB_MBSCSPN)/g' \ -e 's/@''GNULIB_MBSPBRK''@/$(GNULIB_MBSPBRK)/g' \ -e 's/@''GNULIB_MBSSPN''@/$(GNULIB_MBSSPN)/g' \ -e 's/@''GNULIB_MBSSEP''@/$(GNULIB_MBSSEP)/g' \ -e 's/@''GNULIB_MBSTOK_R''@/$(GNULIB_MBSTOK_R)/g' \ -e 's/@''GNULIB_MEMCHR''@/$(GNULIB_MEMCHR)/g' \ -e 's/@''GNULIB_MEMMEM''@/$(GNULIB_MEMMEM)/g' \ -e 's/@''GNULIB_MEMPCPY''@/$(GNULIB_MEMPCPY)/g' \ -e 's/@''GNULIB_MEMRCHR''@/$(GNULIB_MEMRCHR)/g' \ -e 's/@''GNULIB_RAWMEMCHR''@/$(GNULIB_RAWMEMCHR)/g' \ -e 's/@''GNULIB_STPCPY''@/$(GNULIB_STPCPY)/g' \ -e 's/@''GNULIB_STPNCPY''@/$(GNULIB_STPNCPY)/g' \ -e 's/@''GNULIB_STRCHRNUL''@/$(GNULIB_STRCHRNUL)/g' \ -e 's/@''GNULIB_STRDUP''@/$(GNULIB_STRDUP)/g' \ -e 's/@''GNULIB_STRNCAT''@/$(GNULIB_STRNCAT)/g' \ -e 's/@''GNULIB_STRNDUP''@/$(GNULIB_STRNDUP)/g' \ -e 's/@''GNULIB_STRNLEN''@/$(GNULIB_STRNLEN)/g' \ -e 's/@''GNULIB_STRPBRK''@/$(GNULIB_STRPBRK)/g' \ -e 's/@''GNULIB_STRSEP''@/$(GNULIB_STRSEP)/g' \ -e 's/@''GNULIB_STRSTR''@/$(GNULIB_STRSTR)/g' \ -e 's/@''GNULIB_STRCASESTR''@/$(GNULIB_STRCASESTR)/g' \ -e 's/@''GNULIB_STRTOK_R''@/$(GNULIB_STRTOK_R)/g' \ -e 's/@''GNULIB_STRERROR''@/$(GNULIB_STRERROR)/g' \ -e 's/@''GNULIB_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \ < $(srcdir)/string.in.h | \ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|g' \ -e 's|@''HAVE_DECL_MEMMEM''@|$(HAVE_DECL_MEMMEM)|g' \ -e 's|@''HAVE_MEMPCPY''@|$(HAVE_MEMPCPY)|g' \ -e 's|@''HAVE_DECL_MEMRCHR''@|$(HAVE_DECL_MEMRCHR)|g' \ -e 's|@''HAVE_RAWMEMCHR''@|$(HAVE_RAWMEMCHR)|g' \ -e 's|@''HAVE_STPCPY''@|$(HAVE_STPCPY)|g' \ -e 's|@''HAVE_STPNCPY''@|$(HAVE_STPNCPY)|g' \ -e 's|@''HAVE_STRCHRNUL''@|$(HAVE_STRCHRNUL)|g' \ -e 's|@''HAVE_DECL_STRDUP''@|$(HAVE_DECL_STRDUP)|g' \ -e 's|@''HAVE_DECL_STRNDUP''@|$(HAVE_DECL_STRNDUP)|g' \ -e 's|@''HAVE_DECL_STRNLEN''@|$(HAVE_DECL_STRNLEN)|g' \ -e 's|@''HAVE_STRPBRK''@|$(HAVE_STRPBRK)|g' \ -e 's|@''HAVE_STRSEP''@|$(HAVE_STRSEP)|g' \ -e 's|@''HAVE_STRCASESTR''@|$(HAVE_STRCASESTR)|g' \ -e 's|@''HAVE_DECL_STRTOK_R''@|$(HAVE_DECL_STRTOK_R)|g' \ -e 's|@''HAVE_DECL_STRERROR_R''@|$(HAVE_DECL_STRERROR_R)|g' \ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|g' \ -e 's|@''REPLACE_MEMCHR''@|$(REPLACE_MEMCHR)|g' \ -e 's|@''REPLACE_MEMMEM''@|$(REPLACE_MEMMEM)|g' \ -e 's|@''REPLACE_STRCASESTR''@|$(REPLACE_STRCASESTR)|g' \ -e 's|@''REPLACE_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|g' \ -e 's|@''REPLACE_STRDUP''@|$(REPLACE_STRDUP)|g' \ -e 's|@''REPLACE_STRSTR''@|$(REPLACE_STRSTR)|g' \ -e 's|@''REPLACE_STRERROR''@|$(REPLACE_STRERROR)|g' \ -e 's|@''REPLACE_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|g' \ -e 's|@''REPLACE_STRSIGNAL''@|$(REPLACE_STRSIGNAL)|g' \ -e 's|@''REPLACE_STRTOK_R''@|$(REPLACE_STRTOK_R)|g' \ -e 's|@''UNDEFINE_STRTOK_R''@|$(UNDEFINE_STRTOK_R)|g' \ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)'; \ < $(srcdir)/string.in.h; \ } > $@-t && \ mv $@-t $@ unistr.h: unistr.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unistr.in.h; \ } > $@-t && \ mv -f $@-t $@ unitypes.h: unitypes.in.h $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ cat $(srcdir)/unitypes.in.h; \ } > $@-t && \ mv -f $@-t $@ mostlyclean-local: mostlyclean-generic @for dir in '' $(MOSTLYCLEANDIRS); do \ if test -n "$$dir" && test -d $$dir; then \ echo "rmdir $$dir"; rmdir $$dir; \ fi; \ done; \ : # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/lib/libidn.map0000644000000000000000000000533412153706572012317 00000000000000# Copyright (C) 2009-2013 Simon Josefsson. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . LIBIDN_1.0 { global: idn_free; idna_strerror; idna_to_ascii_4i; idna_to_ascii_4z; idna_to_ascii_8z; idna_to_ascii_lz; idna_to_unicode_44i; idna_to_unicode_4z4z; idna_to_unicode_8z4z; idna_to_unicode_8z8z; idna_to_unicode_8zlz; idna_to_unicode_lzlz; pr29_4; pr29_4z; pr29_8z; pr29_strerror; punycode_decode; punycode_encode; punycode_strerror; stringprep; stringprep_4i; stringprep_4zi; stringprep_check_version; stringprep_convert; stringprep_iscsi; stringprep_kerberos5; stringprep_locale_charset; stringprep_locale_to_utf8; stringprep_nameprep; stringprep_plain; stringprep_profile; stringprep_profiles; stringprep_saslprep; stringprep_strerror; stringprep_trace; stringprep_ucs4_nfkc_normalize; stringprep_ucs4_to_utf8; stringprep_unichar_to_utf8; stringprep_utf8_nfkc_normalize; stringprep_utf8_to_locale; stringprep_utf8_to_ucs4; stringprep_utf8_to_unichar; stringprep_xmpp_nodeprep; stringprep_xmpp_nodeprep_prohibit; stringprep_xmpp_resourceprep; tld_check_4; tld_check_4t; tld_check_4tz; tld_check_4z; tld_check_8z; tld_check_lz; tld_default_table; tld_get_4; tld_get_4z; tld_get_table; tld_get_z; tld_strerror; # These symbols were intended to be exported from the beginning, but # by accident they never were. Version 1.17 exported them properly. stringprep_iscsi_prohibit; stringprep_rfc3454_A_1; stringprep_rfc3454_B_1; stringprep_rfc3454_B_2; stringprep_rfc3454_B_3; stringprep_rfc3454_C_1_1; stringprep_rfc3454_C_1_2; stringprep_rfc3454_C_2_1; stringprep_rfc3454_C_2_2; stringprep_rfc3454_C_3; stringprep_rfc3454_C_4; stringprep_rfc3454_C_5; stringprep_rfc3454_C_6; stringprep_rfc3454_C_7; stringprep_rfc3454_C_8; stringprep_rfc3454_C_9; stringprep_rfc3454_D_1; stringprep_rfc3454_D_2; stringprep_saslprep_space_map; local: *; }; libidn-1.28/lib/Makefile.in0000644000000000000000000016000112167244662012417 00000000000000# Makefile.in generated by automake 1.14 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2013 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # Copyright (C) 2002-2013 Simon Josefsson. # Copyright (C) 2004, 2010-2013 Free Software Foundation, Inc. # # This file is part of GNU Libidn. # # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @TLD_TRUE@am__append_1 = tld.h @TLD_TRUE@am__append_2 = tld.h tld.c tlds.c @HAVE_LD_VERSION_SCRIPT_TRUE@am__append_3 = -Wl,--version-script=$(srcdir)/libidn.map @HAVE_LD_VERSION_SCRIPT_FALSE@am__append_4 = -export-symbols-regex \ @HAVE_LD_VERSION_SCRIPT_FALSE@ '^(idn|pr29_|punycode_|stringprep|tld_).*' @HAVE_LD_OUTPUT_DEF_TRUE@am__append_5 = -Wl,--output-def,libidn-$(DLL_VERSION).def subdir = lib DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/depcomp $(am__include_HEADERS_DIST) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(defexecdir)" \ "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) am__DEPENDENCIES_1 = libidn_la_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ gl/libgnu.la am__libidn_la_SOURCES_DIST = libidn.map gunibreak.h gunicomp.h \ gunidecomp.h nfkc.c toutf8.c version.c stringprep.h \ stringprep.c rfc3454.c profiles.c punycode.h punycode.c idna.h \ idna.c pr29.h pr29.c idn-free.h idn-free.c strerror-idna.c \ strerror-pr29.c strerror-punycode.c strerror-stringprep.c \ strerror-tld.c tld.h tld.c tlds.c @TLD_TRUE@am__objects_1 = tld.lo tlds.lo am_libidn_la_OBJECTS = nfkc.lo toutf8.lo version.lo stringprep.lo \ rfc3454.lo profiles.lo punycode.lo idna.lo pr29.lo idn-free.lo \ strerror-idna.lo strerror-pr29.lo strerror-punycode.lo \ strerror-stringprep.lo strerror-tld.lo $(am__objects_1) libidn_la_OBJECTS = $(am_libidn_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libidn_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libidn_la_LDFLAGS) $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp am__depfiles_maybe = depfiles am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libidn_la_SOURCES) DIST_SOURCES = $(am__libidn_la_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(defexec_DATA) am__include_HEADERS_DIST = stringprep.h idna.h punycode.h idn-free.h \ pr29.h tld.h HEADERS = $(include_HEADERS) $(nodist_include_HEADERS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = gen-stringprep-tables.pl gen-unicode-tables.pl gen-tld-tables.pl AM_CPPFLAGS = -I$(srcdir)/gl -Igl -DLIBIDN_BUILDING \ -DLOCALEDIR=\"$(localedir)\" AM_CFLAGS = $(WERROR_CFLAGS) $(WSTACK_CFLAGS) $(WARN_CFLAGS) \ $(CFLAG_VISIBILITY) lib_LTLIBRARIES = libidn.la idn_int = idn-int.h BUILT_SOURCES = $(idn_int) gunibreak.h gunicomp.h gunidecomp.h rfc3454.c tlds.c DISTCLEANFILES = $(idn_int) include_HEADERS = stringprep.h idna.h punycode.h idn-free.h pr29.h \ $(am__append_1) nodist_include_HEADERS = $(idn_int) libidn_la_SOURCES = libidn.map gunibreak.h gunicomp.h gunidecomp.h \ nfkc.c toutf8.c version.c stringprep.h stringprep.c rfc3454.c \ profiles.c punycode.h punycode.c idna.h idna.c pr29.h pr29.c \ idn-free.h idn-free.c strerror-idna.c strerror-pr29.c \ strerror-punycode.c strerror-stringprep.c strerror-tld.c \ $(am__append_2) libidn_la_LIBADD = $(LTLIBICONV) $(LTLIBINTL) gl/libgnu.la libidn_la_LDFLAGS = -version-info \ $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) -no-undefined \ $(am__append_3) $(am__append_4) $(am__append_5) @HAVE_LD_OUTPUT_DEF_TRUE@defexecdir = $(bindir) @HAVE_LD_OUTPUT_DEF_TRUE@defexec_DATA = libidn-$(DLL_VERSION).def @HAVE_LD_OUTPUT_DEF_TRUE@CLEANFILES = $(defexec_DATA) SPEC = $(top_srcdir)/doc/specifications all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .c .lo .o .obj $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu lib/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ test -z "$$locs" || { \ echo rm -f $${locs}; \ rm -f $${locs}; \ } libidn.la: $(libidn_la_OBJECTS) $(libidn_la_DEPENDENCIES) $(EXTRA_libidn_la_DEPENDENCIES) $(AM_V_CCLD)$(libidn_la_LINK) -rpath $(libdir) $(libidn_la_OBJECTS) $(libidn_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idn-free.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/idna.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nfkc.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pr29.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/profiles.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/punycode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rfc3454.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-idna.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-pr29.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-punycode.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-stringprep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strerror-tld.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stringprep.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tld.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tlds.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/toutf8.Plo@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Plo@am__quote@ .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< .c.obj: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` .c.lo: @am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs install-defexecDATA: $(defexec_DATA) @$(NORMAL_INSTALL) @list='$(defexec_DATA)'; test -n "$(defexecdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(defexecdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(defexecdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defexecdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(defexecdir)" || exit $$?; \ done uninstall-defexecDATA: @$(NORMAL_UNINSTALL) @list='$(defexec_DATA)'; test -n "$(defexecdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(defexecdir)'; $(am__uninstall_files_from_dir) install-includeHEADERS: $(include_HEADERS) @$(NORMAL_INSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) install-nodist_includeHEADERS: $(nodist_include_HEADERS) @$(NORMAL_INSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ done uninstall-nodist_includeHEADERS: @$(NORMAL_UNINSTALL) @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-am TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-am CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscopelist: cscopelist-am cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags distdir: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) installdirs: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(defexecdir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-includeHEADERS install-nodist_includeHEADERS install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-defexecDATA install-libLTLIBRARIES install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -rf ./$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-defexecDATA uninstall-includeHEADERS \ uninstall-libLTLIBRARIES uninstall-nodist_includeHEADERS .MAKE: all check install install-am install-strip .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-defexecDATA install-dvi install-dvi-am \ install-exec install-exec-am install-html install-html-am \ install-includeHEADERS install-info install-info-am \ install-libLTLIBRARIES install-man \ install-nodist_includeHEADERS install-pdf install-pdf-am \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-compile \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags tags-am uninstall uninstall-am uninstall-defexecDATA \ uninstall-includeHEADERS uninstall-libLTLIBRARIES \ uninstall-nodist_includeHEADERS idn-int.h: if test -n "$(STDINT_H)"; then \ sed -e s/include_next/include/ gl/stdint.h > idn-int.h; \ else \ echo '#include ' > idn-int.h; \ fi @HAVE_LD_OUTPUT_DEF_TRUE@libidn-$(DLL_VERSION).def: libidn.la #nfkc.c: gunibreak.h gunicomp.h gunidecomp.h #gunibreak.h gunicomp.h gunidecomp.h: gen-unicode-tables.pl $(SPEC)/UnicodeData-3.2.0.txt $(SPEC)/LineBreak-3.2.0.txt $(SPEC)/SpecialCasing-3.2.0.txt $(SPEC)/CaseFolding-3.2.0.txt $(SPEC)/CompositionExclusions-3.2.0.txt # $(PERL) $(srcdir)/gen-unicode-tables.pl -decomp 3.2 $(SPEC) rfc3454.c: gen-stringprep-tables.pl $(PERL) $(srcdir)/gen-stringprep-tables.pl $(SPEC)/rfc3454.txt tlds.c: gen-tld-tables.pl $(PERL) $(srcdir)/gen-tld-tables.pl $(top_srcdir)/doc/tld/*.tld > tlds.c # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/lib/strerror-tld.c0000644000000000000000000000507012153706572013163 00000000000000/* strerror-tld.c --- Convert TLD errors into text. Copyright (C) 2004-2013 Simon Josefsson This file is part of GNU Libidn. GNU Libidn is free software: you can redistribute it and/or modify it under the terms of either: * the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. or * the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. or both in parallel, as here. GNU Libidn 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. You should have received copies of the GNU General Public License and the GNU Lesser General Public License along with this program. If not, see . */ #ifdef HAVE_CONFIG_H # include "config.h" #endif #include "tld.h" #include "gettext.h" #define _(String) dgettext (PACKAGE, String) /** * tld_strerror: * @rc: tld return code * * Convert a return code integer to a text string. This string can be * used to output a diagnostic message to the user. * * TLD_SUCCESS: Successful operation. This value is guaranteed to * always be zero, the remaining ones are only guaranteed to hold * non-zero values, for logical comparison purposes. * TLD_INVALID: Invalid character found. * TLD_NODATA: No input data was provided. * TLD_MALLOC_ERROR: Error during memory allocation. * TLD_ICONV_ERROR: Error during iconv string conversion. * TLD_NO_TLD: No top-level domain found in domain string. * * Return value: Returns a pointer to a statically allocated string * containing a description of the error with the return code @rc. **/ const char * tld_strerror (Tld_rc rc) { const char *p; bindtextdomain (PACKAGE, LOCALEDIR); switch (rc) { case TLD_SUCCESS: p = _("Success"); break; case TLD_INVALID: p = _("Code points prohibited by top-level domain"); break; case TLD_NODATA: p = _("Missing input"); break; case TLD_MALLOC_ERROR: p = _("Cannot allocate memory"); break; case TLD_ICONV_ERROR: p = _("System iconv failed"); break; case TLD_NO_TLD: p = _("No top-level domain found in input"); break; default: p = _("Unknown error"); break; } return p; } libidn-1.28/lib/gen-unicode-tables.pl0000755000000000000000000010275012153706572014364 00000000000000#! /usr/bin/perl -w # Copyright (C) 2004-2013 Simon Josefsson # Copyright (C) 1998, 1999 Tom Tromey # Copyright (C) 2001 Red Hat Software # 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 3 of the License, or # (at your option) any later version. # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # I consider the output of this program to be unrestricted. Use it as # you will. # Contributer(s): # Andrew Taylor # gen-unicode-tables.pl - Generate tables for libunicode from Unicode data. # See http://www.unicode.org/Public/UNIDATA/UnicodeCharacterDatabase.html # FIXME: # * For decomp table it might make sense to use a shift count other # than 8. We could easily compute the perfect shift count. # * This script no longer works with Perl 5.10. Sigh.. # we use some perl unicode features require 5.006; use vars qw($CODE $NAME $CATEGORY $COMBINING_CLASSES $BIDI_CATEGORY $DECOMPOSITION $DECIMAL_VALUE $DIGIT_VALUE $NUMERIC_VALUE $MIRRORED $OLD_NAME $COMMENT $UPPER $LOWER $TITLE $BREAK_CODE $BREAK_CATEGORY $BREAK_NAME $CASE_CODE $CASE_LOWER $CASE_TITLE $CASE_UPPER $CASE_CONDITION); # Names of fields in Unicode data table. $CODE = 0; $NAME = 1; $CATEGORY = 2; $COMBINING_CLASSES = 3; $BIDI_CATEGORY = 4; $DECOMPOSITION = 5; $DECIMAL_VALUE = 6; $DIGIT_VALUE = 7; $NUMERIC_VALUE = 8; $MIRRORED = 9; $OLD_NAME = 10; $COMMENT = 11; $UPPER = 12; $LOWER = 13; $TITLE = 14; # Names of fields in the line break table $BREAK_CODE = 0; $BREAK_PROPERTY = 1; # Names of fields in the SpecialCasing table $CASE_CODE = 0; $CASE_LOWER = 1; $CASE_TITLE = 2; $CASE_UPPER = 3; $CASE_CONDITION = 4; # Names of fields in the CaseFolding table $FOLDING_CODE = 0; $FOLDING_STATUS = 1; $FOLDING_MAPPING = 2; # Map general category code onto symbolic name. %mappings = ( # Normative. 'Lu' => "G_UNICODE_UPPERCASE_LETTER", 'Ll' => "G_UNICODE_LOWERCASE_LETTER", 'Lt' => "G_UNICODE_TITLECASE_LETTER", 'Mn' => "G_UNICODE_NON_SPACING_MARK", 'Mc' => "G_UNICODE_COMBINING_MARK", 'Me' => "G_UNICODE_ENCLOSING_MARK", 'Nd' => "G_UNICODE_DECIMAL_NUMBER", 'Nl' => "G_UNICODE_LETTER_NUMBER", 'No' => "G_UNICODE_OTHER_NUMBER", 'Zs' => "G_UNICODE_SPACE_SEPARATOR", 'Zl' => "G_UNICODE_LINE_SEPARATOR", 'Zp' => "G_UNICODE_PARAGRAPH_SEPARATOR", 'Cc' => "G_UNICODE_CONTROL", 'Cf' => "G_UNICODE_FORMAT", 'Cs' => "G_UNICODE_SURROGATE", 'Co' => "G_UNICODE_PRIVATE_USE", 'Cn' => "G_UNICODE_UNASSIGNED", # Informative. 'Lm' => "G_UNICODE_MODIFIER_LETTER", 'Lo' => "G_UNICODE_OTHER_LETTER", 'Pc' => "G_UNICODE_CONNECT_PUNCTUATION", 'Pd' => "G_UNICODE_DASH_PUNCTUATION", 'Ps' => "G_UNICODE_OPEN_PUNCTUATION", 'Pe' => "G_UNICODE_CLOSE_PUNCTUATION", 'Pi' => "G_UNICODE_INITIAL_PUNCTUATION", 'Pf' => "G_UNICODE_FINAL_PUNCTUATION", 'Po' => "G_UNICODE_OTHER_PUNCTUATION", 'Sm' => "G_UNICODE_MATH_SYMBOL", 'Sc' => "G_UNICODE_CURRENCY_SYMBOL", 'Sk' => "G_UNICODE_MODIFIER_SYMBOL", 'So' => "G_UNICODE_OTHER_SYMBOL" ); %break_mappings = ( 'BK' => "G_UNICODE_BREAK_MANDATORY", 'CR' => "G_UNICODE_BREAK_CARRIAGE_RETURN", 'LF' => "G_UNICODE_BREAK_LINE_FEED", 'CM' => "G_UNICODE_BREAK_COMBINING_MARK", 'SG' => "G_UNICODE_BREAK_SURROGATE", 'ZW' => "G_UNICODE_BREAK_ZERO_WIDTH_SPACE", 'IN' => "G_UNICODE_BREAK_INSEPARABLE", 'GL' => "G_UNICODE_BREAK_NON_BREAKING_GLUE", 'CB' => "G_UNICODE_BREAK_CONTINGENT", 'SP' => "G_UNICODE_BREAK_SPACE", 'BA' => "G_UNICODE_BREAK_AFTER", 'BB' => "G_UNICODE_BREAK_BEFORE", 'B2' => "G_UNICODE_BREAK_BEFORE_AND_AFTER", 'HY' => "G_UNICODE_BREAK_HYPHEN", 'NS' => "G_UNICODE_BREAK_NON_STARTER", 'OP' => "G_UNICODE_BREAK_OPEN_PUNCTUATION", 'CL' => "G_UNICODE_BREAK_CLOSE_PUNCTUATION", 'QU' => "G_UNICODE_BREAK_QUOTATION", 'EX' => "G_UNICODE_BREAK_EXCLAMATION", 'ID' => "G_UNICODE_BREAK_IDEOGRAPHIC", 'NU' => "G_UNICODE_BREAK_NUMERIC", 'IS' => "G_UNICODE_BREAK_INFIX_SEPARATOR", 'SY' => "G_UNICODE_BREAK_SYMBOL", 'AL' => "G_UNICODE_BREAK_ALPHABETIC", 'PR' => "G_UNICODE_BREAK_PREFIX", 'PO' => "G_UNICODE_BREAK_POSTFIX", 'SA' => "G_UNICODE_BREAK_COMPLEX_CONTEXT", 'AI' => "G_UNICODE_BREAK_AMBIGUOUS", 'NL' => "G_UNICODE_BREAK_NEXT_LINE", 'WJ' => "G_UNICODE_BREAK_WORD_JOINER", 'XX' => "G_UNICODE_BREAK_UNKNOWN" ); # Title case mappings. %title_to_lower = (); %title_to_upper = (); # Maximum length of special-case strings my @special_cases; my @special_case_offsets; my $special_case_offset = 0; $do_decomp = 0; $do_props = 1; if (@ARGV && $ARGV[0] eq '-decomp') { $do_decomp = 1; $do_props = 0; shift @ARGV; } elsif (@ARGV && $ARGV[0] eq '-both') { $do_decomp = 1; shift @ARGV; } if (@ARGV != 2) { $0 =~ s@.*/@@; die "\nUsage: $0 [-decomp | -both] UNICODE-VERSION DIRECTORY\n\n DIRECTORY should contain the following Unicode data files:\n UnicodeData.txt, LineBreak.txt, SpecialCasing.txt, CaseFolding.txt,\n CompositionExclusions.txt, BidiMirroring.txt\n\n"; } my ($unicodedatatxt, $linebreaktxt, $specialcasingtxt, $casefoldingtxt, $compositionexclusionstxt, $bidimirroringtxt); my $d = $ARGV[1]; opendir (my $dir, $d) or die "Cannot open Unicode data dir $d: $!\n"; for my $f (readdir ($dir)) { $unicodedatatxt = "$d/$f" if ($f =~ /UnicodeData.*\.txt/); $linebreaktxt = "$d/$f" if ($f =~ /LineBreak.*\.txt/); $specialcasingtxt = "$d/$f" if ($f =~ /SpecialCasing.*\.txt/); $casefoldingtxt = "$d/$f" if ($f =~ /CaseFolding.*\.txt/); $compositionexclusionstxt = "$d/$f" if ($f =~ /CompositionExclusions.*\.txt/); $bidimirroringtxt = "$d/$f" if ($f =~ /BidiMirroring.*\.txt/); } defined $unicodedatatxt or die "Did not find UnicodeData file"; defined $linebreaktxt or die "Did not find LineBreak file"; defined $specialcasingtxt or die "Did not find SpecialCasing file"; defined $casefoldingtxt or die "Did not find CaseFolding file"; defined $compositionexclusionstxt or die "Did not find CompositionExclusions file"; defined $bidimirroringtxt or die "Did not find BidiMirroring file"; print "Creating decomp table\n" if ($do_decomp); print "Creating property table\n" if ($do_props); print "Composition exlusions from $compositionexclusionstxt\n"; open (INPUT, "< $compositionexclusionstxt") || exit 1; while () { chop; next if /^#/; next if /^\s*$/; s/\s*#.*//; s/^\s*//; s/\s*$//; $composition_exclusions{hex($_)} = 1; } close INPUT; print "Unicode data from $unicodedatatxt\n"; open (INPUT, "< $unicodedatatxt") || exit 1; # we save memory by skipping the huge empty area before U+E0000 my $pages_before_e0000; $last_code = -1; while () { chop; @fields = split (';', $_, 30); if ($#fields != 14) { printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields); } $code = hex ($fields[$CODE]); if ($code >= 0xE0000 and $last_code < 0xE0000) { $pages_before_e0000 = ($last_code >> 8) + 1; } if ($code > $last_code + 1) { # Found a gap. if ($fields[$NAME] =~ /Last>/) { # Fill the gap with the last character read, # since this was a range specified in the char database @gfields = @fields; } else { # The gap represents undefined characters. Only the type # matters. @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', '', '', '', ''); } for (++$last_code; $last_code < $code; ++$last_code) { $gfields{$CODE} = sprintf ("%04x", $last_code); &process_one ($last_code, @gfields); } } &process_one ($code, @fields); $last_code = $code; } close INPUT; @gfields = ('', '', 'Cn', '0', '', '', '', '', '', '', '', '', '', '', ''); for (++$last_code; $last_code <= 0x10FFFF; ++$last_code) { $gfields{$CODE} = sprintf ("%04x", $last_code); &process_one ($last_code, @gfields); } --$last_code; # Want last to be 0x10FFFF. print "Creating line break table\n"; print "Line break data from $linebreaktxt\n"; open (INPUT, "< $linebreaktxt") || exit 1; $last_code = -1; while () { my ($start_code, $end_code); chop; next if /^#/; s/\s*#.*//; @fields = split (';', $_, 30); if ($#fields != 1) { printf STDERR ("Entry for $fields[$CODE] has wrong number of fields (%d)\n", $#fields); next; } if ($fields[$CODE] =~ /([A-F0-9]{4,6})\.\.([A-F0-9]{4,6})/) { $start_code = hex ($1); $end_code = hex ($2); } else { $start_code = $end_code = hex ($fields[$CODE]); } if ($start_code > $last_code + 1) { # The gap represents undefined characters. If assigned, # they are AL, if not assigned, XX for (++$last_code; $last_code < $start_code; ++$last_code) { if ($type[$last_code] eq 'Cn') { $break_props[$last_code] = 'XX'; } else { $break_props[$last_code] = 'AL'; } } } for ($last_code = $start_code; $last_code <= $end_code; $last_code++) { $break_props[$last_code] = $fields[$BREAK_PROPERTY]; } $last_code = $end_code; } close INPUT; for (++$last_code; $last_code <= 0x10FFFF; ++$last_code) { if ($type[$last_code] eq 'Cn') { $break_props[$last_code] = 'XX'; } else { $break_props[$last_code] = 'AL'; } } --$last_code; # Want last to be 0x10FFFF. print STDERR "Last code is not 0x10FFFF" if ($last_code != 0x10FFFF); print "Reading special-casing table for case conversion\n"; open (INPUT, "< $specialcasingtxt") || exit 1; while () { my $code; chop; next if /^#/; next if /^\s*$/; s/\s*#.*//; @fields = split ('\s*;\s*', $_, 30); $raw_code = $fields[$CASE_CODE]; $code = hex ($raw_code); if ($#fields != 4 && $#fields != 5) { printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields); next; } if (!defined $type[$code]) { printf STDERR "Special case for code point: $code, which has no defined type\n"; next; } if (defined $fields[5]) { # Ignore conditional special cases - we'll handle them in code next; } if ($type[$code] eq 'Lu') { (hex $fields[$CASE_UPPER] == $code) || die "$raw_code is Lu and UCD_Upper($raw_code) != $raw_code"; &add_special_case ($code, $value[$code], $fields[$CASE_LOWER], $fields[$CASE_TITLE]); } elsif ($type[$code] eq 'Lt') { (hex $fields[$CASE_TITLE] == $code) || die "$raw_code is Lt and UCD_Title($raw_code) != $raw_code"; &add_special_case ($code, undef, $fields[$CASE_LOWER], $fields[$CASE_UPPER]); } elsif ($type[$code] eq 'Ll') { (hex $fields[$CASE_LOWER] == $code) || die "$raw_code is Ll and UCD_Lower($raw_code) != $raw_code"; &add_special_case ($code, $value[$code], $fields[$CASE_UPPER], $fields[$CASE_TITLE]); } else { printf STDERR "Special case for non-alphabetic code point: $raw_code\n"; next; } } close INPUT; open (INPUT, "< $casefoldingtxt") || exit 1; my $casefoldlen = 0; my @casefold; while () { my $code; chop; next if /^#/; next if /^\s*$/; s/\s*#.*//; @fields = split ('\s*;\s*', $_, 30); $raw_code = $fields[$FOLDING_CODE]; $code = hex ($raw_code); if ($#fields != 3) { printf STDERR ("Entry for $raw_code has wrong number of fields (%d)\n", $#fields); next; } # we don't use Simple or Turkic rules here next if ($fields[$FOLDING_STATUS] =~ /^[ST]$/); @values = map { hex ($_) } split /\s+/, $fields[$FOLDING_MAPPING]; # Check simple case if (@values == 1 && !(defined $value[$code] && $value[$code] >= 0x1000000) && defined $type[$code]) { my $lower; if ($type[$code] eq 'Ll') { $lower = $code; } elsif ($type[$code] eq 'Lt') { $lower = $title_to_lower{$code}; } elsif ($type[$code] eq 'Lu') { $lower = $value[$code]; } else { $lower = $code; } if ($lower == $values[0]) { next; } } my $string = pack ("U*", @values); if (1 + &length_in_bytes ($string) > $casefoldlen) { $casefoldlen = 1 + &length_in_bytes ($string); } push @casefold, [ $code, &escape ($string) ]; } close INPUT; open (INPUT, "< $bidimirroringtxt") || exit 1; my @bidimirror; while () { chomp; next if /^#/; next if /^\s*$/; s/\s*#.*//; @fields = split ('\s*;\s*', $_, 30); push @bidimirror, [hex ($fields[0]), hex ($fields[1])]; } if ($do_props) { &print_tables ($last_code) } if ($do_decomp) { &print_decomp ($last_code); &output_composition_table; } &print_line_break ($last_code); exit 0; # perl "length" returns the length in characters sub length_in_bytes { my ($string) = @_; use bytes; return length $string; } # Process a single character. sub process_one { my ($code, @fields) = @_; $type[$code] = $fields[$CATEGORY]; if ($type[$code] eq 'Nd') { $value[$code] = int ($fields[$DECIMAL_VALUE]); } elsif ($type[$code] eq 'Ll') { $value[$code] = hex ($fields[$UPPER]); } elsif ($type[$code] eq 'Lu') { $value[$code] = hex ($fields[$LOWER]); } if ($type[$code] eq 'Lt') { $title_to_lower{$code} = hex ($fields[$LOWER]); $title_to_upper{$code} = hex ($fields[$UPPER]); } $cclass[$code] = $fields[$COMBINING_CLASSES]; # Handle decompositions. if ($fields[$DECOMPOSITION] ne '') { if ($fields[$DECOMPOSITION] =~ s/\<.*\>\s*//) { $decompose_compat[$code] = 1; } else { $decompose_compat[$code] = 0; if (!exists $composition_exclusions{$code}) { $compositions{$code} = $fields[$DECOMPOSITION]; } } $decompositions[$code] = $fields[$DECOMPOSITION]; } } sub print_tables { my ($last) = @_; my ($outfile) = "gunichartables.h"; local ($bytes_out) = 0; print "Writing $outfile...\n"; open (OUT, "> $outfile"); print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; print OUT "#ifndef CHARTABLES_H\n"; print OUT "#define CHARTABLES_H\n\n"; print OUT "#define G_UNICODE_DATA_VERSION \"$ARGV[0]\"\n\n"; printf OUT "#define G_UNICODE_LAST_CHAR 0x%04x\n\n", $last; printf OUT "#define G_UNICODE_MAX_TABLE_INDEX 10000\n\n"; my $last_part1 = ($pages_before_e0000 * 256) - 1; printf OUT "#define G_UNICODE_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; printf OUT "#define G_UNICODE_LAST_PAGE_PART1 %d\n\n", $pages_before_e0000 - 1; $table_index = 0; printf OUT "static const char type_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 1, \&fetch_type); } printf OUT "\n};\n\n"; printf OUT "/* U+0000 through U+%04X */\n", $last_part1; print OUT "static const gint16 type_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; printf OUT "/* U+E0000 through U+%04X */\n", $last; print OUT "static const gint16 type_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; # # Now print attribute table. # $table_index = 0; printf OUT "static const gunichar attr_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 4, \&fetch_attr); } printf OUT "\n};\n\n"; printf OUT "/* U+0000 through U+%04X */\n", $last_part1; print OUT "static const gint16 attr_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; printf OUT "/* U+E0000 through U+%04X */\n", $last; print OUT "static const gint16 attr_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; # # print title case table # print OUT "static const gunichar title_table[][3] = {\n"; my ($item); my ($first) = 1; foreach $item (sort keys %title_to_lower) { print OUT ",\n" unless $first; $first = 0; printf OUT " { 0x%04x, 0x%04x, 0x%04x }", $item, $title_to_upper{$item}, $title_to_lower{$item}; $bytes_out += 12; } print OUT "\n};\n\n"; # # And special case conversion table -- conversions that change length # &output_special_case_table (\*OUT); &output_casefold_table (\*OUT); print OUT "static const struct {\n"; print OUT " gunichar ch;\n"; print OUT " gunichar mirrored_ch;\n"; print OUT "} bidi_mirroring_table[] =\n"; print OUT "{\n"; $first = 1; foreach $item (@bidimirror) { print OUT ",\n" unless $first; $first = 0; printf OUT " { 0x%04x, 0x%04x }", $item->[0], $item->[1]; $bytes_out += 8; } print OUT "\n};\n\n"; print OUT "#endif /* CHARTABLES_H */\n"; close (OUT); printf STDERR "Generated %d bytes in tables\n", $bytes_out; } # A fetch function for the type table. sub fetch_type { my ($index) = @_; return $mappings{$type[$index]}; } # A fetch function for the attribute table. sub fetch_attr { my ($index) = @_; if (defined $value[$index]) { return sprintf ("0x%04x", $value[$index]); } else { return "0x0000"; } } sub print_row { my ($start, $typsize, $fetcher) = @_; my ($i); my (@values); my ($flag) = 1; my ($off); for ($off = 0; $off < 256; ++$off) { $values[$off] = $fetcher->($off + $start); if ($values[$off] ne $values[0]) { $flag = 0; } } if ($flag) { return $values[0] . " + G_UNICODE_MAX_TABLE_INDEX"; } printf OUT ",\n" if ($table_index != 0); printf OUT " { /* page %d, index %d */\n ", $start / 256, $table_index; my ($column) = 4; for ($i = $start; $i < $start + 256; ++$i) { print OUT ", " if $i > $start; my ($text) = $values[$i - $start]; if (length ($text) + $column + 2 > 78) { print OUT "\n "; $column = 4; } print OUT $text; $column += length ($text) + 2; } print OUT "\n }"; $bytes_out += 256 * $typsize; return sprintf "%d /* page %d */", $table_index++, $start / 256; } sub escape { my ($string) = @_; my $escaped = unpack("H*", $string); $escaped =~ s/(.{2})/\\x$1/g; return $escaped; } # Returns the offset of $decomp in the offset string. Updates the # referenced variables as appropriate. sub handle_decomp ($$$$) { my ($decomp, $decomp_offsets_ref, $decomp_string_ref, $decomp_string_offset_ref) = @_; my $offset = "G_UNICODE_NOT_PRESENT_OFFSET"; if (defined $decomp) { if (defined $decomp_offsets_ref->{$decomp}) { $offset = $decomp_offsets_ref->{$decomp}; } else { $offset = ${$decomp_string_offset_ref}; $decomp_offsets_ref->{$decomp} = $offset; ${$decomp_string_ref} .= "\n \"" . &escape ($decomp) . "\\0\" /* offset ${$decomp_string_offset_ref} */"; ${$decomp_string_offset_ref} += &length_in_bytes ($decomp) + 1; } } return $offset; } # Generate the character decomposition header. sub print_decomp { my ($last) = @_; my ($outfile) = "gunidecomp.h"; local ($bytes_out) = 0; print "Writing $outfile...\n"; open (OUT, "> $outfile") || exit 1; print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; print OUT "#ifndef DECOMP_H\n"; print OUT "#define DECOMP_H\n\n"; printf OUT "#define G_UNICODE_LAST_CHAR 0x%04x\n\n", $last; printf OUT "#define G_UNICODE_MAX_TABLE_INDEX (0x110000 / 256)\n\n"; my $last_part1 = ($pages_before_e0000 * 256) - 1; printf OUT "#define G_UNICODE_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; printf OUT "#define G_UNICODE_LAST_PAGE_PART1 %d\n\n", $pages_before_e0000 - 1; $NOT_PRESENT_OFFSET = 65535; print OUT "#define G_UNICODE_NOT_PRESENT_OFFSET $NOT_PRESENT_OFFSET\n\n"; my ($count, @row); $table_index = 0; printf OUT "static const guchar cclass_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 1, \&fetch_cclass); } printf OUT "\n};\n\n"; print OUT "static const gint16 combining_class_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; print OUT "static const gint16 combining_class_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; print OUT "typedef struct\n{\n"; print OUT " gunichar ch;\n"; print OUT " guint16 canon_offset;\n"; print OUT " guint16 compat_offset;\n"; print OUT "} decomposition;\n\n"; print OUT "static const decomposition decomp_table[] =\n{\n"; my ($iter); my ($first) = 1; my ($decomp_string) = ""; my ($decomp_string_offset) = 0; for ($count = 0; $count <= $last; ++$count) { if (defined $decompositions[$count]) { print OUT ",\n" if ! $first; $first = 0; my $canon_decomp; my $compat_decomp; if (!$decompose_compat[$count]) { $canon_decomp = make_decomp ($count, 0); } $compat_decomp = make_decomp ($count, 1); if (defined $canon_decomp && $compat_decomp eq $canon_decomp) { undef $compat_decomp; } my $canon_offset = handle_decomp ($canon_decomp, \%decomp_offsets, \$decomp_string, \$decomp_string_offset); my $compat_offset = handle_decomp ($compat_decomp, \%decomp_offsets, \$decomp_string, \$decomp_string_offset); die if $decomp_string_offset > $NOT_PRESENT_OFFSET; printf OUT qq( { 0x%04x, $canon_offset, $compat_offset }), $count; $bytes_out += 8; } } print OUT "\n};\n\n"; $bytes_out += $decomp_string_offset + 1; printf OUT "static const gchar decomp_expansion_string[] = %s;\n\n", $decomp_string; print OUT "#endif /* DECOMP_H */\n"; printf STDERR "Generated %d bytes in decomp tables\n", $bytes_out; } sub print_line_break { my ($last) = @_; my ($outfile) = "gunibreak.h"; local ($bytes_out) = 0; print "Writing $outfile...\n"; open (OUT, "> $outfile"); print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; print OUT "#ifndef BREAKTABLES_H\n"; print OUT "#define BREAKTABLES_H\n\n"; print OUT "#define G_UNICODE_DATA_VERSION \"$ARGV[0]\"\n\n"; printf OUT "#define G_UNICODE_LAST_CHAR 0x%04X\n\n", $last; printf OUT "#define G_UNICODE_MAX_TABLE_INDEX 10000\n\n"; my $last_part1 = ($pages_before_e0000 * 256) - 1; printf OUT "/* the last code point that should be looked up in break_property_table_part1 */\n"; printf OUT "#define G_UNICODE_LAST_CHAR_PART1 0x%04X\n\n", $last_part1; $table_index = 0; printf OUT "static const gint8 break_property_data[][256] = {\n"; for ($count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 1, \&fetch_break_type); } printf OUT "\n};\n\n"; printf OUT "/* U+0000 through U+%04X */\n", $last_part1; print OUT "static const gint16 break_property_table_part1[$pages_before_e0000] = {\n"; for ($count = 0; $count <= $last_part1; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; printf OUT "/* U+E0000 through U+%04X */\n", $last; print OUT "static const gint16 break_property_table_part2[768] = {\n"; for ($count = 0xE0000; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0xE0000; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; print OUT "#endif /* BREAKTABLES_H */\n"; close (OUT); printf STDERR "Generated %d bytes in break tables\n", $bytes_out; } # A fetch function for the break properties table. sub fetch_break_type { my ($index) = @_; return $break_mappings{$break_props[$index]}; } # Fetcher for combining class. sub fetch_cclass { my ($i) = @_; return $cclass[$i]; } # Expand a character decomposition recursively. sub expand_decomp { my ($code, $compat) = @_; my ($iter, $val); my (@result) = (); foreach $iter (split (' ', $decompositions[$code])) { $val = hex ($iter); if (defined $decompositions[$val] && ($compat || !$decompose_compat[$val])) { push (@result, &expand_decomp ($val, $compat)); } else { push (@result, $val); } } return @result; } sub make_decomp { my ($code, $compat) = @_; my $result = ""; foreach $iter (&expand_decomp ($code, $compat)) { $result .= pack ("U", $iter); # to utf-8 } $result; } # Generate special case data string from two fields sub add_special_case { my ($code, $single, $field1, $field2) = @_; @values = (defined $single ? $single : (), (map { hex ($_) } split /\s+/, $field1), 0, (map { hex ($_) } split /\s+/, $field2)); $result = ""; for $value (@values) { $result .= pack ("U", $value); # to utf-8 } push @special_case_offsets, $special_case_offset; # We encode special cases up in the 0x1000000 space $value[$code] = 0x1000000 + $special_case_offset; $special_case_offset += 1 + &length_in_bytes ($result); push @special_cases, &escape ($result); } sub output_special_case_table { my $out = shift; print $out < $b } keys %$array) { if ($array->{$code} == 1) { delete $array->{$code}; next; } $array->{$code} = $n++; } return $n; } sub output_composition_table { print STDERR "Generating composition table\n"; local ($bytes_out) = 0; my %first; my %second; # First we need to go through and remove decompositions # starting with a non-starter, and single-character # decompositions. At the same time, record # the first and second character of each decomposition for $code (keys %compositions) { @values = map { hex ($_) } split /\s+/, $compositions{$code}; # non-starters if ($cclass[$values[0]]) { delete $compositions{$code}; next; } # single-character decompositions if (@values == 1) { delete $compositions{$code}; next; } if (@values != 2) { die "$code has more than two elements in its decomposition!\n"; } if (exists $first{$values[0]}) { $first{$values[0]}++; } else { $first{$values[0]} = 1; } } # Assign integer indices, removing singletons my $n_first = enumerate_ordered (\%first); # Now record the second character of each (non-singleton) decomposition for $code (keys %compositions) { @values = map { hex ($_) } split /\s+/, $compositions{$code}; if (exists $first{$values[0]}) { if (exists $second{$values[1]}) { $second{$values[1]}++; } else { $second{$values[1]} = 1; } } } # Assign integer indices, removing duplicate my $n_second = enumerate_ordered (\%second); # Build reverse table my @first_singletons; my @second_singletons; my %reverse; for $code (keys %compositions) { @values = map { hex ($_) } split /\s+/, $compositions{$code}; my $first = $first{$values[0]}; my $second = $second{$values[1]}; if (defined $first && defined $second) { $reverse{"$first|$second"} = $code; } elsif (!defined $first) { push @first_singletons, [ $values[0], $values[1], $code ]; } else { push @second_singletons, [ $values[1], $values[0], $code ]; } } @first_singletons = sort { $a->[0] <=> $b->[0] } @first_singletons; @second_singletons = sort { $a->[0] <=> $b->[0] } @second_singletons; my %vals; open OUT, ">gunicomp.h" or die "Cannot open gunicomp.h: $!\n"; print OUT "/* This file is automatically generated. DO NOT EDIT!\n"; print OUT " Instead, edit gen-unicode-tables.pl and re-run. */\n\n"; # Assign values in lookup table for all code points involved my $total = 1; my $last = 0; printf OUT "#define COMPOSE_FIRST_START %d\n", $total; for $code (keys %first) { $vals{$code} = $first{$code} + $total; $last = $code if $code > $last; } $total += $n_first; $i = 0; printf OUT "#define COMPOSE_FIRST_SINGLE_START %d\n", $total; for $record (@first_singletons) { my $code = $record->[0]; $vals{$code} = $i++ + $total; $last = $code if $code > $last; } $total += @first_singletons; printf OUT "#define COMPOSE_SECOND_START %d\n", $total; for $code (keys %second) { $vals{$code} = $second{$code} + $total; $last = $code if $code > $last; } $total += $n_second; $i = 0; printf OUT "#define COMPOSE_SECOND_SINGLE_START %d\n\n", $total; for $record (@second_singletons) { my $code = $record->[0]; $vals{$code} = $i++ + $total; $last = $code if $code > $last; } printf OUT "#define COMPOSE_TABLE_LAST %d\n\n", $last / 256; # Output lookup table my @row; $table_index = 0; printf OUT "static const guint16 compose_data[][256] = {\n"; for (my $count = 0; $count <= $last; $count += 256) { $row[$count / 256] = &print_row ($count, 2, sub { exists $vals{$_[0]} ? $vals{$_[0]} : 0; }); } printf OUT "\n};\n\n"; print OUT "static const gint16 compose_table[COMPOSE_TABLE_LAST + 1] = {\n"; for (my $count = 0; $count <= $last; $count += 256) { print OUT ",\n" if $count > 0; print OUT " ", $row[$count / 256]; $bytes_out += 2; } print OUT "\n};\n\n"; # Output first singletons print OUT "static const guint16 compose_first_single[][2] = {\n"; $i = 0; for $record (@first_singletons) { if ($record->[1] > 0xFFFF or $record->[2] > 0xFFFF) { die "time to switch compose_first_single to gunichar" ; } print OUT ",\n" if $i++ > 0; printf OUT " { %#06x, %#06x }", $record->[1], $record->[2]; } print OUT "\n};\n"; $bytes_out += @first_singletons * 4; # Output second singletons print OUT "static const guint16 compose_second_single[][2] = {\n"; $i = 0; for $record (@second_singletons) { if ($record->[1] > 0xFFFF or $record->[2] > 0xFFFF) { die "time to switch compose_second_single to gunichar"; } print OUT ",\n" if $i++ > 0; printf OUT " { %#06x, %#06x }", $record->[1], $record->[2]; } print OUT "\n};\n"; $bytes_out += @second_singletons * 4; # Output array of composition pairs print OUT < 0xFFFF) { die "time to switch compose_array to gunichar" ; } printf OUT "0x%04x", $reverse{"$i|$j"}; } else { print OUT " 0"; } } print OUT " }"; } print OUT "\n"; print OUT <[0] <=> $b->[0] } @casefold; for $case (@casefold) { $code = $case->[0]; $string = $case->[1]; if ($code > 0xFFFF) { die "time to switch casefold_table to gunichar" ; } print $out sprintf(qq( { 0x%04x, "$string" },\n), $code); } print $out <. VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in $(top_srcdir)/build-aux/csharpcomp.sh.in \ $(top_srcdir)/build-aux/csharpexec.sh.in \ $(top_srcdir)/contrib/doxygen/Doxyfile.in \ $(srcdir)/libidn.pc.in ABOUT-NLS COPYING THANKS TODO \ build-aux/ar-lib build-aux/compile build-aux/config.guess \ build-aux/config.rpath build-aux/config.sub \ build-aux/install-sh build-aux/missing build-aux/ltmain.sh \ $(top_srcdir)/build-aux/ar-lib $(top_srcdir)/build-aux/compile \ $(top_srcdir)/build-aux/config.guess \ $(top_srcdir)/build-aux/config.rpath \ $(top_srcdir)/build-aux/config.sub \ $(top_srcdir)/build-aux/install-sh \ $(top_srcdir)/build-aux/ltmain.sh \ $(top_srcdir)/build-aux/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/lib/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/lib/gl/m4/iconv_h.m4 \ $(top_srcdir)/lib/gl/m4/iconv_open.m4 \ $(top_srcdir)/lib/gl/m4/inline.m4 \ $(top_srcdir)/lib/gl/m4/ld-output-def.m4 \ $(top_srcdir)/lib/gl/m4/ld-version-script.m4 \ $(top_srcdir)/lib/gl/m4/libunistring-base.m4 \ $(top_srcdir)/lib/gl/m4/locale-fr.m4 \ $(top_srcdir)/lib/gl/m4/locale-ja.m4 \ $(top_srcdir)/lib/gl/m4/locale-tr.m4 \ $(top_srcdir)/lib/gl/m4/locale-zh.m4 \ $(top_srcdir)/lib/gl/m4/locale_h.m4 \ $(top_srcdir)/lib/gl/m4/localename.m4 \ $(top_srcdir)/lib/gl/m4/setlocale.m4 \ $(top_srcdir)/lib/gl/m4/strverscmp.m4 \ $(top_srcdir)/lib/gl/m4/thread.m4 \ $(top_srcdir)/lib/gl/m4/yield.m4 \ $(top_srcdir)/gl/m4/00gnulib.m4 $(top_srcdir)/gl/m4/alloca.m4 \ $(top_srcdir)/gl/m4/autobuild.m4 $(top_srcdir)/gl/m4/close.m4 \ $(top_srcdir)/gl/m4/csharp.m4 \ $(top_srcdir)/gl/m4/csharpcomp.m4 \ $(top_srcdir)/gl/m4/csharpexec.m4 $(top_srcdir)/gl/m4/dup2.m4 \ $(top_srcdir)/gl/m4/eealloc.m4 $(top_srcdir)/gl/m4/environ.m4 \ $(top_srcdir)/gl/m4/errno_h.m4 $(top_srcdir)/gl/m4/error.m4 \ $(top_srcdir)/gl/m4/extensions.m4 \ $(top_srcdir)/gl/m4/extern-inline.m4 \ $(top_srcdir)/gl/m4/fcntl_h.m4 $(top_srcdir)/gl/m4/fdopen.m4 \ $(top_srcdir)/gl/m4/fstat.m4 $(top_srcdir)/gl/m4/getcwd.m4 \ $(top_srcdir)/gl/m4/getdtablesize.m4 \ $(top_srcdir)/gl/m4/getopt.m4 \ $(top_srcdir)/gl/m4/gnulib-common.m4 \ $(top_srcdir)/gl/m4/gnulib-comp.m4 \ $(top_srcdir)/gl/m4/include_next.m4 \ $(top_srcdir)/gl/m4/inttypes.m4 \ $(top_srcdir)/gl/m4/largefile.m4 $(top_srcdir)/gl/m4/lstat.m4 \ $(top_srcdir)/gl/m4/malloc.m4 $(top_srcdir)/gl/m4/malloca.m4 \ $(top_srcdir)/gl/m4/manywarnings.m4 \ $(top_srcdir)/gl/m4/mode_t.m4 \ $(top_srcdir)/gl/m4/msvc-inval.m4 \ $(top_srcdir)/gl/m4/msvc-nothrow.m4 \ $(top_srcdir)/gl/m4/multiarch.m4 \ $(top_srcdir)/gl/m4/nocrash.m4 $(top_srcdir)/gl/m4/off_t.m4 \ $(top_srcdir)/gl/m4/open.m4 $(top_srcdir)/gl/m4/pathmax.m4 \ $(top_srcdir)/gl/m4/putenv.m4 $(top_srcdir)/gl/m4/setenv.m4 \ $(top_srcdir)/gl/m4/ssize_t.m4 $(top_srcdir)/gl/m4/stat.m4 \ $(top_srcdir)/gl/m4/stdarg.m4 $(top_srcdir)/gl/m4/stdbool.m4 \ $(top_srcdir)/gl/m4/stddef_h.m4 $(top_srcdir)/gl/m4/stdint.m4 \ $(top_srcdir)/gl/m4/stdio_h.m4 $(top_srcdir)/gl/m4/stdlib_h.m4 \ $(top_srcdir)/gl/m4/strerror.m4 \ $(top_srcdir)/gl/m4/string_h.m4 $(top_srcdir)/gl/m4/symlink.m4 \ $(top_srcdir)/gl/m4/sys_socket_h.m4 \ $(top_srcdir)/gl/m4/sys_stat_h.m4 \ $(top_srcdir)/gl/m4/sys_types_h.m4 \ $(top_srcdir)/gl/m4/time_h.m4 $(top_srcdir)/gl/m4/unistd_h.m4 \ $(top_srcdir)/gl/m4/valgrind-tests.m4 \ $(top_srcdir)/gl/m4/version-etc.m4 \ $(top_srcdir)/gl/m4/warn-on-use.m4 \ $(top_srcdir)/gl/m4/warnings.m4 $(top_srcdir)/gl/m4/wchar_h.m4 \ $(top_srcdir)/m4/ac_prog_jar.m4 $(top_srcdir)/m4/codeset.m4 \ $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/gettext.m4 \ $(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \ $(top_srcdir)/m4/intlmacosx.m4 \ $(top_srcdir)/m4/inttypes-pri.m4 $(top_srcdir)/m4/lcmessage.m4 \ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/longlong.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/pkg.m4 \ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \ $(top_srcdir)/m4/threadlib.m4 \ $(top_srcdir)/m4/update-header-version.m4 \ $(top_srcdir)/m4/visibility.m4 $(top_srcdir)/m4/wchar_t.m4 \ $(top_srcdir)/m4/wint_t.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = csharpcomp.sh csharpexec.sh \ contrib/doxygen/Doxyfile libidn.pc CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } am__installdirs = "$(DESTDIR)$(pkgconfigdir)" DATA = $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ $(LISP)config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALLOCA_H = @ALLOCA_H@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@ AR = @AR@ ARFLAGS = @ARFLAGS@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ BITSIZEOF_PTRDIFF_T = @BITSIZEOF_PTRDIFF_T@ BITSIZEOF_SIG_ATOMIC_T = @BITSIZEOF_SIG_ATOMIC_T@ BITSIZEOF_SIZE_T = @BITSIZEOF_SIZE_T@ BITSIZEOF_WCHAR_T = @BITSIZEOF_WCHAR_T@ BITSIZEOF_WINT_T = @BITSIZEOF_WINT_T@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CFLAG_VISIBILITY = @CFLAG_VISIBILITY@ CLIX_PATH = @CLIX_PATH@ CLIX_PATH_VAR = @CLIX_PATH_VAR@ CONFIG_INCLUDE = @CONFIG_INCLUDE@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSHARPCOMPFLAGS = @CSHARPCOMPFLAGS@ CSHARP_CHOICE = @CSHARP_CHOICE@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DLL_VERSION = @DLL_VERSION@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EMACS = @EMACS@ EMACSLOADPATH = @EMACSLOADPATH@ EMULTIHOP_HIDDEN = @EMULTIHOP_HIDDEN@ EMULTIHOP_VALUE = @EMULTIHOP_VALUE@ ENOLINK_HIDDEN = @ENOLINK_HIDDEN@ ENOLINK_VALUE = @ENOLINK_VALUE@ EOVERFLOW_HIDDEN = @EOVERFLOW_HIDDEN@ EOVERFLOW_VALUE = @EOVERFLOW_VALUE@ ERRNO_H = @ERRNO_H@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ GCJ = @GCJ@ GCJDEPMODE = @GCJDEPMODE@ GCJFLAGS = @GCJFLAGS@ GETOPT_H = @GETOPT_H@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GJDOC = @GJDOC@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ GNULIB_ATOLL = @GNULIB_ATOLL@ GNULIB_BTOWC = @GNULIB_BTOWC@ GNULIB_CALLOC_POSIX = @GNULIB_CALLOC_POSIX@ GNULIB_CANONICALIZE_FILE_NAME = @GNULIB_CANONICALIZE_FILE_NAME@ GNULIB_CHDIR = @GNULIB_CHDIR@ GNULIB_CHOWN = @GNULIB_CHOWN@ GNULIB_CLOSE = @GNULIB_CLOSE@ GNULIB_DPRINTF = @GNULIB_DPRINTF@ GNULIB_DUP = @GNULIB_DUP@ GNULIB_DUP2 = @GNULIB_DUP2@ GNULIB_DUP3 = @GNULIB_DUP3@ GNULIB_DUPLOCALE = @GNULIB_DUPLOCALE@ GNULIB_ENVIRON = @GNULIB_ENVIRON@ GNULIB_EUIDACCESS = @GNULIB_EUIDACCESS@ GNULIB_FACCESSAT = @GNULIB_FACCESSAT@ GNULIB_FCHDIR = @GNULIB_FCHDIR@ GNULIB_FCHMODAT = @GNULIB_FCHMODAT@ GNULIB_FCHOWNAT = @GNULIB_FCHOWNAT@ GNULIB_FCLOSE = @GNULIB_FCLOSE@ GNULIB_FCNTL = @GNULIB_FCNTL@ GNULIB_FDATASYNC = @GNULIB_FDATASYNC@ GNULIB_FDOPEN = @GNULIB_FDOPEN@ GNULIB_FFLUSH = @GNULIB_FFLUSH@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ GNULIB_FPURGE = @GNULIB_FPURGE@ GNULIB_FPUTC = @GNULIB_FPUTC@ GNULIB_FPUTS = @GNULIB_FPUTS@ GNULIB_FREAD = @GNULIB_FREAD@ GNULIB_FREOPEN = @GNULIB_FREOPEN@ GNULIB_FSCANF = @GNULIB_FSCANF@ GNULIB_FSEEK = @GNULIB_FSEEK@ GNULIB_FSEEKO = @GNULIB_FSEEKO@ GNULIB_FSTAT = @GNULIB_FSTAT@ GNULIB_FSTATAT = @GNULIB_FSTATAT@ GNULIB_FSYNC = @GNULIB_FSYNC@ GNULIB_FTELL = @GNULIB_FTELL@ GNULIB_FTELLO = @GNULIB_FTELLO@ GNULIB_FTRUNCATE = @GNULIB_FTRUNCATE@ GNULIB_FUTIMENS = @GNULIB_FUTIMENS@ GNULIB_FWRITE = @GNULIB_FWRITE@ GNULIB_GETC = @GNULIB_GETC@ GNULIB_GETCHAR = @GNULIB_GETCHAR@ GNULIB_GETCWD = @GNULIB_GETCWD@ GNULIB_GETDELIM = @GNULIB_GETDELIM@ GNULIB_GETDOMAINNAME = @GNULIB_GETDOMAINNAME@ GNULIB_GETDTABLESIZE = @GNULIB_GETDTABLESIZE@ GNULIB_GETGROUPS = @GNULIB_GETGROUPS@ GNULIB_GETHOSTNAME = @GNULIB_GETHOSTNAME@ GNULIB_GETLINE = @GNULIB_GETLINE@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@ GNULIB_GRANTPT = @GNULIB_GRANTPT@ GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@ GNULIB_ICONV = @GNULIB_ICONV@ GNULIB_IMAXABS = @GNULIB_IMAXABS@ GNULIB_IMAXDIV = @GNULIB_IMAXDIV@ GNULIB_ISATTY = @GNULIB_ISATTY@ GNULIB_LCHMOD = @GNULIB_LCHMOD@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ GNULIB_MALLOC_POSIX = @GNULIB_MALLOC_POSIX@ GNULIB_MBRLEN = @GNULIB_MBRLEN@ GNULIB_MBRTOWC = @GNULIB_MBRTOWC@ GNULIB_MBSCASECMP = @GNULIB_MBSCASECMP@ GNULIB_MBSCASESTR = @GNULIB_MBSCASESTR@ GNULIB_MBSCHR = @GNULIB_MBSCHR@ GNULIB_MBSCSPN = @GNULIB_MBSCSPN@ GNULIB_MBSINIT = @GNULIB_MBSINIT@ GNULIB_MBSLEN = @GNULIB_MBSLEN@ GNULIB_MBSNCASECMP = @GNULIB_MBSNCASECMP@ GNULIB_MBSNLEN = @GNULIB_MBSNLEN@ GNULIB_MBSNRTOWCS = @GNULIB_MBSNRTOWCS@ GNULIB_MBSPBRK = @GNULIB_MBSPBRK@ GNULIB_MBSPCASECMP = @GNULIB_MBSPCASECMP@ GNULIB_MBSRCHR = @GNULIB_MBSRCHR@ GNULIB_MBSRTOWCS = @GNULIB_MBSRTOWCS@ GNULIB_MBSSEP = @GNULIB_MBSSEP@ GNULIB_MBSSPN = @GNULIB_MBSSPN@ GNULIB_MBSSTR = @GNULIB_MBSSTR@ GNULIB_MBSTOK_R = @GNULIB_MBSTOK_R@ GNULIB_MBTOWC = @GNULIB_MBTOWC@ GNULIB_MEMCHR = @GNULIB_MEMCHR@ GNULIB_MEMMEM = @GNULIB_MEMMEM@ GNULIB_MEMPCPY = @GNULIB_MEMPCPY@ GNULIB_MEMRCHR = @GNULIB_MEMRCHR@ GNULIB_MKDIRAT = @GNULIB_MKDIRAT@ GNULIB_MKDTEMP = @GNULIB_MKDTEMP@ GNULIB_MKFIFO = @GNULIB_MKFIFO@ GNULIB_MKFIFOAT = @GNULIB_MKFIFOAT@ GNULIB_MKNOD = @GNULIB_MKNOD@ GNULIB_MKNODAT = @GNULIB_MKNODAT@ GNULIB_MKOSTEMP = @GNULIB_MKOSTEMP@ GNULIB_MKOSTEMPS = @GNULIB_MKOSTEMPS@ GNULIB_MKSTEMP = @GNULIB_MKSTEMP@ GNULIB_MKSTEMPS = @GNULIB_MKSTEMPS@ GNULIB_MKTIME = @GNULIB_MKTIME@ GNULIB_NANOSLEEP = @GNULIB_NANOSLEEP@ GNULIB_NONBLOCKING = @GNULIB_NONBLOCKING@ GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@ GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@ GNULIB_OPEN = @GNULIB_OPEN@ GNULIB_OPENAT = @GNULIB_OPENAT@ GNULIB_PCLOSE = @GNULIB_PCLOSE@ GNULIB_PERROR = @GNULIB_PERROR@ GNULIB_PIPE = @GNULIB_PIPE@ GNULIB_PIPE2 = @GNULIB_PIPE2@ GNULIB_POPEN = @GNULIB_POPEN@ GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@ GNULIB_PREAD = @GNULIB_PREAD@ GNULIB_PRINTF = @GNULIB_PRINTF@ GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@ GNULIB_PTSNAME = @GNULIB_PTSNAME@ GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@ GNULIB_PUTC = @GNULIB_PUTC@ GNULIB_PUTCHAR = @GNULIB_PUTCHAR@ GNULIB_PUTENV = @GNULIB_PUTENV@ GNULIB_PUTS = @GNULIB_PUTS@ GNULIB_PWRITE = @GNULIB_PWRITE@ GNULIB_RANDOM = @GNULIB_RANDOM@ GNULIB_RANDOM_R = @GNULIB_RANDOM_R@ GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@ GNULIB_READ = @GNULIB_READ@ GNULIB_READLINK = @GNULIB_READLINK@ GNULIB_READLINKAT = @GNULIB_READLINKAT@ GNULIB_REALLOC_POSIX = @GNULIB_REALLOC_POSIX@ GNULIB_REALPATH = @GNULIB_REALPATH@ GNULIB_REMOVE = @GNULIB_REMOVE@ GNULIB_RENAME = @GNULIB_RENAME@ GNULIB_RENAMEAT = @GNULIB_RENAMEAT@ GNULIB_RMDIR = @GNULIB_RMDIR@ GNULIB_RPMATCH = @GNULIB_RPMATCH@ GNULIB_SCANF = @GNULIB_SCANF@ GNULIB_SECURE_GETENV = @GNULIB_SECURE_GETENV@ GNULIB_SETENV = @GNULIB_SETENV@ GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@ GNULIB_SETLOCALE = @GNULIB_SETLOCALE@ GNULIB_SLEEP = @GNULIB_SLEEP@ GNULIB_SNPRINTF = @GNULIB_SNPRINTF@ GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@ GNULIB_STAT = @GNULIB_STAT@ GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@ GNULIB_STDIO_H_SIGPIPE = @GNULIB_STDIO_H_SIGPIPE@ GNULIB_STPCPY = @GNULIB_STPCPY@ GNULIB_STPNCPY = @GNULIB_STPNCPY@ GNULIB_STRCASESTR = @GNULIB_STRCASESTR@ GNULIB_STRCHRNUL = @GNULIB_STRCHRNUL@ GNULIB_STRDUP = @GNULIB_STRDUP@ GNULIB_STRERROR = @GNULIB_STRERROR@ GNULIB_STRERROR_R = @GNULIB_STRERROR_R@ GNULIB_STRNCAT = @GNULIB_STRNCAT@ GNULIB_STRNDUP = @GNULIB_STRNDUP@ GNULIB_STRNLEN = @GNULIB_STRNLEN@ GNULIB_STRPBRK = @GNULIB_STRPBRK@ GNULIB_STRPTIME = @GNULIB_STRPTIME@ GNULIB_STRSEP = @GNULIB_STRSEP@ GNULIB_STRSIGNAL = @GNULIB_STRSIGNAL@ GNULIB_STRSTR = @GNULIB_STRSTR@ GNULIB_STRTOD = @GNULIB_STRTOD@ GNULIB_STRTOIMAX = @GNULIB_STRTOIMAX@ GNULIB_STRTOK_R = @GNULIB_STRTOK_R@ GNULIB_STRTOLL = @GNULIB_STRTOLL@ GNULIB_STRTOULL = @GNULIB_STRTOULL@ GNULIB_STRTOUMAX = @GNULIB_STRTOUMAX@ GNULIB_STRVERSCMP = @GNULIB_STRVERSCMP@ GNULIB_SYMLINK = @GNULIB_SYMLINK@ GNULIB_SYMLINKAT = @GNULIB_SYMLINKAT@ GNULIB_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@ GNULIB_TIMEGM = @GNULIB_TIMEGM@ GNULIB_TIME_R = @GNULIB_TIME_R@ GNULIB_TMPFILE = @GNULIB_TMPFILE@ GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@ GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@ GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@ GNULIB_UNLINK = @GNULIB_UNLINK@ GNULIB_UNLINKAT = @GNULIB_UNLINKAT@ GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@ GNULIB_UNSETENV = @GNULIB_UNSETENV@ GNULIB_USLEEP = @GNULIB_USLEEP@ GNULIB_UTIMENSAT = @GNULIB_UTIMENSAT@ GNULIB_VASPRINTF = @GNULIB_VASPRINTF@ GNULIB_VDPRINTF = @GNULIB_VDPRINTF@ GNULIB_VFPRINTF = @GNULIB_VFPRINTF@ GNULIB_VFPRINTF_POSIX = @GNULIB_VFPRINTF_POSIX@ GNULIB_VFSCANF = @GNULIB_VFSCANF@ GNULIB_VPRINTF = @GNULIB_VPRINTF@ GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@ GNULIB_VSCANF = @GNULIB_VSCANF@ GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@ GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@ GNULIB_WCPCPY = @GNULIB_WCPCPY@ GNULIB_WCPNCPY = @GNULIB_WCPNCPY@ GNULIB_WCRTOMB = @GNULIB_WCRTOMB@ GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@ GNULIB_WCSCAT = @GNULIB_WCSCAT@ GNULIB_WCSCHR = @GNULIB_WCSCHR@ GNULIB_WCSCMP = @GNULIB_WCSCMP@ GNULIB_WCSCOLL = @GNULIB_WCSCOLL@ GNULIB_WCSCPY = @GNULIB_WCSCPY@ GNULIB_WCSCSPN = @GNULIB_WCSCSPN@ GNULIB_WCSDUP = @GNULIB_WCSDUP@ GNULIB_WCSLEN = @GNULIB_WCSLEN@ GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@ GNULIB_WCSNCAT = @GNULIB_WCSNCAT@ GNULIB_WCSNCMP = @GNULIB_WCSNCMP@ GNULIB_WCSNCPY = @GNULIB_WCSNCPY@ GNULIB_WCSNLEN = @GNULIB_WCSNLEN@ GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@ GNULIB_WCSPBRK = @GNULIB_WCSPBRK@ GNULIB_WCSRCHR = @GNULIB_WCSRCHR@ GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@ GNULIB_WCSSPN = @GNULIB_WCSSPN@ GNULIB_WCSSTR = @GNULIB_WCSSTR@ GNULIB_WCSTOK = @GNULIB_WCSTOK@ GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@ GNULIB_WCSXFRM = @GNULIB_WCSXFRM@ GNULIB_WCTOB = @GNULIB_WCTOB@ GNULIB_WCTOMB = @GNULIB_WCTOMB@ GNULIB_WCWIDTH = @GNULIB_WCWIDTH@ GNULIB_WMEMCHR = @GNULIB_WMEMCHR@ GNULIB_WMEMCMP = @GNULIB_WMEMCMP@ GNULIB_WMEMCPY = @GNULIB_WMEMCPY@ GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@ GNULIB_WMEMSET = @GNULIB_WMEMSET@ GNULIB_WRITE = @GNULIB_WRITE@ GNULIB__EXIT = @GNULIB__EXIT@ GREP = @GREP@ GTKDOC_CHECK = @GTKDOC_CHECK@ GTKDOC_MKPDF = @GTKDOC_MKPDF@ GTKDOC_REBASE = @GTKDOC_REBASE@ HAVE_ATOLL = @HAVE_ATOLL@ HAVE_BTOWC = @HAVE_BTOWC@ HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@ HAVE_CHOWN = @HAVE_CHOWN@ HAVE_CLIX = @HAVE_CLIX@ HAVE_CLIX_IN_PATH = @HAVE_CLIX_IN_PATH@ HAVE_CSC = @HAVE_CSC@ HAVE_CSCC = @HAVE_CSCC@ HAVE_CSCC_IN_PATH = @HAVE_CSCC_IN_PATH@ HAVE_CSC_IN_PATH = @HAVE_CSC_IN_PATH@ HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@ HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@ HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@ HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@ HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@ HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@ HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@ HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@ HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@ HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@ HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@ HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@ HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@ HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@ HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@ HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@ HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@ HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@ HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@ HAVE_DECL_SETENV = @HAVE_DECL_SETENV@ HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@ HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@ HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@ HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@ HAVE_DECL_STRNDUP = @HAVE_DECL_STRNDUP@ HAVE_DECL_STRNLEN = @HAVE_DECL_STRNLEN@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@ HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@ HAVE_DPRINTF = @HAVE_DPRINTF@ HAVE_DUP2 = @HAVE_DUP2@ HAVE_DUP3 = @HAVE_DUP3@ HAVE_DUPLOCALE = @HAVE_DUPLOCALE@ HAVE_EUIDACCESS = @HAVE_EUIDACCESS@ HAVE_FACCESSAT = @HAVE_FACCESSAT@ HAVE_FCHDIR = @HAVE_FCHDIR@ HAVE_FCHMODAT = @HAVE_FCHMODAT@ HAVE_FCHOWNAT = @HAVE_FCHOWNAT@ HAVE_FCNTL = @HAVE_FCNTL@ HAVE_FDATASYNC = @HAVE_FDATASYNC@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ HAVE_FTELLO = @HAVE_FTELLO@ HAVE_FTRUNCATE = @HAVE_FTRUNCATE@ HAVE_FUTIMENS = @HAVE_FUTIMENS@ HAVE_GETDTABLESIZE = @HAVE_GETDTABLESIZE@ HAVE_GETGROUPS = @HAVE_GETGROUPS@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ HAVE_ILRUN = @HAVE_ILRUN@ HAVE_ILRUN_IN_PATH = @HAVE_ILRUN_IN_PATH@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_LCHMOD = @HAVE_LCHMOD@ HAVE_LCHOWN = @HAVE_LCHOWN@ HAVE_LINK = @HAVE_LINK@ HAVE_LINKAT = @HAVE_LINKAT@ HAVE_LONG_LONG_INT = @HAVE_LONG_LONG_INT@ HAVE_LSTAT = @HAVE_LSTAT@ HAVE_MBRLEN = @HAVE_MBRLEN@ HAVE_MBRTOWC = @HAVE_MBRTOWC@ HAVE_MBSINIT = @HAVE_MBSINIT@ HAVE_MBSLEN = @HAVE_MBSLEN@ HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@ HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@ HAVE_MCS = @HAVE_MCS@ HAVE_MCS_IN_PATH = @HAVE_MCS_IN_PATH@ HAVE_MEMCHR = @HAVE_MEMCHR@ HAVE_MEMPCPY = @HAVE_MEMPCPY@ HAVE_MKDIRAT = @HAVE_MKDIRAT@ HAVE_MKDTEMP = @HAVE_MKDTEMP@ HAVE_MKFIFO = @HAVE_MKFIFO@ HAVE_MKFIFOAT = @HAVE_MKFIFOAT@ HAVE_MKNOD = @HAVE_MKNOD@ HAVE_MKNODAT = @HAVE_MKNODAT@ HAVE_MKOSTEMP = @HAVE_MKOSTEMP@ HAVE_MKOSTEMPS = @HAVE_MKOSTEMPS@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MONO = @HAVE_MONO@ HAVE_MONO_IN_PATH = @HAVE_MONO_IN_PATH@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OS_H = @HAVE_OS_H@ HAVE_PCLOSE = @HAVE_PCLOSE@ HAVE_PIPE = @HAVE_PIPE@ HAVE_PIPE2 = @HAVE_PIPE2@ HAVE_POPEN = @HAVE_POPEN@ HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@ HAVE_PREAD = @HAVE_PREAD@ HAVE_PTSNAME = @HAVE_PTSNAME@ HAVE_PTSNAME_R = @HAVE_PTSNAME_R@ HAVE_PWRITE = @HAVE_PWRITE@ HAVE_RANDOM = @HAVE_RANDOM@ HAVE_RANDOM_H = @HAVE_RANDOM_H@ HAVE_RANDOM_R = @HAVE_RANDOM_R@ HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@ HAVE_READLINK = @HAVE_READLINK@ HAVE_READLINKAT = @HAVE_READLINKAT@ HAVE_REALPATH = @HAVE_REALPATH@ HAVE_RENAMEAT = @HAVE_RENAMEAT@ HAVE_RPMATCH = @HAVE_RPMATCH@ HAVE_SECURE_GETENV = @HAVE_SECURE_GETENV@ HAVE_SETENV = @HAVE_SETENV@ HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@ HAVE_SIGNED_SIG_ATOMIC_T = @HAVE_SIGNED_SIG_ATOMIC_T@ HAVE_SIGNED_WCHAR_T = @HAVE_SIGNED_WCHAR_T@ HAVE_SIGNED_WINT_T = @HAVE_SIGNED_WINT_T@ HAVE_SLEEP = @HAVE_SLEEP@ HAVE_STDINT_H = @HAVE_STDINT_H@ HAVE_STPCPY = @HAVE_STPCPY@ HAVE_STPNCPY = @HAVE_STPNCPY@ HAVE_STRCASESTR = @HAVE_STRCASESTR@ HAVE_STRCHRNUL = @HAVE_STRCHRNUL@ HAVE_STRPBRK = @HAVE_STRPBRK@ HAVE_STRPTIME = @HAVE_STRPTIME@ HAVE_STRSEP = @HAVE_STRSEP@ HAVE_STRTOD = @HAVE_STRTOD@ HAVE_STRTOLL = @HAVE_STRTOLL@ HAVE_STRTOULL = @HAVE_STRTOULL@ HAVE_STRUCT_RANDOM_DATA = @HAVE_STRUCT_RANDOM_DATA@ HAVE_STRVERSCMP = @HAVE_STRVERSCMP@ HAVE_SYMLINK = @HAVE_SYMLINK@ HAVE_SYMLINKAT = @HAVE_SYMLINKAT@ HAVE_SYS_BITYPES_H = @HAVE_SYS_BITYPES_H@ HAVE_SYS_INTTYPES_H = @HAVE_SYS_INTTYPES_H@ HAVE_SYS_LOADAVG_H = @HAVE_SYS_LOADAVG_H@ HAVE_SYS_PARAM_H = @HAVE_SYS_PARAM_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ HAVE_UNLINKAT = @HAVE_UNLINKAT@ HAVE_UNLOCKPT = @HAVE_UNLOCKPT@ HAVE_UNSIGNED_LONG_LONG_INT = @HAVE_UNSIGNED_LONG_LONG_INT@ HAVE_USLEEP = @HAVE_USLEEP@ HAVE_UTIMENSAT = @HAVE_UTIMENSAT@ HAVE_VASPRINTF = @HAVE_VASPRINTF@ HAVE_VDPRINTF = @HAVE_VDPRINTF@ HAVE_VISIBILITY = @HAVE_VISIBILITY@ HAVE_WCHAR_H = @HAVE_WCHAR_H@ HAVE_WCHAR_T = @HAVE_WCHAR_T@ HAVE_WCPCPY = @HAVE_WCPCPY@ HAVE_WCPNCPY = @HAVE_WCPNCPY@ HAVE_WCRTOMB = @HAVE_WCRTOMB@ HAVE_WCSCASECMP = @HAVE_WCSCASECMP@ HAVE_WCSCAT = @HAVE_WCSCAT@ HAVE_WCSCHR = @HAVE_WCSCHR@ HAVE_WCSCMP = @HAVE_WCSCMP@ HAVE_WCSCOLL = @HAVE_WCSCOLL@ HAVE_WCSCPY = @HAVE_WCSCPY@ HAVE_WCSCSPN = @HAVE_WCSCSPN@ HAVE_WCSDUP = @HAVE_WCSDUP@ HAVE_WCSLEN = @HAVE_WCSLEN@ HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@ HAVE_WCSNCAT = @HAVE_WCSNCAT@ HAVE_WCSNCMP = @HAVE_WCSNCMP@ HAVE_WCSNCPY = @HAVE_WCSNCPY@ HAVE_WCSNLEN = @HAVE_WCSNLEN@ HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@ HAVE_WCSPBRK = @HAVE_WCSPBRK@ HAVE_WCSRCHR = @HAVE_WCSRCHR@ HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@ HAVE_WCSSPN = @HAVE_WCSSPN@ HAVE_WCSSTR = @HAVE_WCSSTR@ HAVE_WCSTOK = @HAVE_WCSTOK@ HAVE_WCSWIDTH = @HAVE_WCSWIDTH@ HAVE_WCSXFRM = @HAVE_WCSXFRM@ HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@ HAVE_WINT_T = @HAVE_WINT_T@ HAVE_WMEMCHR = @HAVE_WMEMCHR@ HAVE_WMEMCMP = @HAVE_WMEMCMP@ HAVE_WMEMCPY = @HAVE_WMEMCPY@ HAVE_WMEMMOVE = @HAVE_WMEMMOVE@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ HELP2MAN = @HELP2MAN@ HTML_DIR = @HTML_DIR@ ICONV_CONST = @ICONV_CONST@ ICONV_H = @ICONV_H@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INT32_MAX_LT_INTMAX_MAX = @INT32_MAX_LT_INTMAX_MAX@ INT64_MAX_EQ_LONG_MAX = @INT64_MAX_EQ_LONG_MAX@ INTLLIBS = @INTLLIBS@ INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ JAR = @JAR@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ LIBMULTITHREAD = @LIBMULTITHREAD@ LIBOBJS = @LIBOBJS@ LIBPTH = @LIBPTH@ LIBPTH_PREFIX = @LIBPTH_PREFIX@ LIBS = @LIBS@ LIBTESTS_LIBDEPS = @LIBTESTS_LIBDEPS@ LIBTHREAD = @LIBTHREAD@ LIBTOOL = @LIBTOOL@ LIBUNISTRING_UNISTR_H = @LIBUNISTRING_UNISTR_H@ LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@ LIPO = @LIPO@ LN_S = @LN_S@ LOCALE_FR = @LOCALE_FR@ LOCALE_FR_UTF8 = @LOCALE_FR_UTF8@ LOCALE_JA = @LOCALE_JA@ LOCALE_TR_UTF8 = @LOCALE_TR_UTF8@ LOCALE_ZH_CN = @LOCALE_ZH_CN@ LTLIBICONV = @LTLIBICONV@ LTLIBINTL = @LTLIBINTL@ LTLIBMULTITHREAD = @LTLIBMULTITHREAD@ LTLIBOBJS = @LTLIBOBJS@ LTLIBPTH = @LTLIBPTH@ LTLIBTHREAD = @LTLIBTHREAD@ LT_AGE = @LT_AGE@ LT_CURRENT = @LT_CURRENT@ LT_REVISION = @LT_REVISION@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MONO_PATH = @MONO_PATH@ MONO_PATH_SEPARATOR = @MONO_PATH_SEPARATOR@ MSGFMT = @MSGFMT@ MSGFMT_015 = @MSGFMT_015@ MSGMERGE = @MSGMERGE@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_GETOPT_H = @NEXT_AS_FIRST_DIRECTIVE_GETOPT_H@ NEXT_AS_FIRST_DIRECTIVE_ICONV_H = @NEXT_AS_FIRST_DIRECTIVE_ICONV_H@ NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H = @NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H@ NEXT_AS_FIRST_DIRECTIVE_LOCALE_H = @NEXT_AS_FIRST_DIRECTIVE_LOCALE_H@ NEXT_AS_FIRST_DIRECTIVE_STDARG_H = @NEXT_AS_FIRST_DIRECTIVE_STDARG_H@ NEXT_AS_FIRST_DIRECTIVE_STDDEF_H = @NEXT_AS_FIRST_DIRECTIVE_STDDEF_H@ NEXT_AS_FIRST_DIRECTIVE_STDINT_H = @NEXT_AS_FIRST_DIRECTIVE_STDINT_H@ NEXT_AS_FIRST_DIRECTIVE_STDIO_H = @NEXT_AS_FIRST_DIRECTIVE_STDIO_H@ NEXT_AS_FIRST_DIRECTIVE_STDLIB_H = @NEXT_AS_FIRST_DIRECTIVE_STDLIB_H@ NEXT_AS_FIRST_DIRECTIVE_STRING_H = @NEXT_AS_FIRST_DIRECTIVE_STRING_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H@ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H@ NEXT_AS_FIRST_DIRECTIVE_TIME_H = @NEXT_AS_FIRST_DIRECTIVE_TIME_H@ NEXT_AS_FIRST_DIRECTIVE_UNISTD_H = @NEXT_AS_FIRST_DIRECTIVE_UNISTD_H@ NEXT_AS_FIRST_DIRECTIVE_WCHAR_H = @NEXT_AS_FIRST_DIRECTIVE_WCHAR_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_ICONV_H = @NEXT_ICONV_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LOCALE_H = @NEXT_LOCALE_H@ NEXT_STDARG_H = @NEXT_STDARG_H@ NEXT_STDDEF_H = @NEXT_STDDEF_H@ NEXT_STDINT_H = @NEXT_STDINT_H@ NEXT_STDIO_H = @NEXT_STDIO_H@ NEXT_STDLIB_H = @NEXT_STDLIB_H@ NEXT_STRING_H = @NEXT_STRING_H@ NEXT_SYS_STAT_H = @NEXT_SYS_STAT_H@ NEXT_SYS_TYPES_H = @NEXT_SYS_TYPES_H@ NEXT_TIME_H = @NEXT_TIME_H@ NEXT_UNISTD_H = @NEXT_UNISTD_H@ NEXT_WCHAR_H = @NEXT_WCHAR_H@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ PKG_CONFIG = @PKG_CONFIG@ PMCCABE = @PMCCABE@ POSUB = @POSUB@ PRAGMA_COLUMNS = @PRAGMA_COLUMNS@ PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@ PRIPTR_PREFIX = @PRIPTR_PREFIX@ PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@ PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@ PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@ RANLIB = @RANLIB@ REPLACE_BTOWC = @REPLACE_BTOWC@ REPLACE_CALLOC = @REPLACE_CALLOC@ REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@ REPLACE_CHOWN = @REPLACE_CHOWN@ REPLACE_CLOSE = @REPLACE_CLOSE@ REPLACE_DPRINTF = @REPLACE_DPRINTF@ REPLACE_DUP = @REPLACE_DUP@ REPLACE_DUP2 = @REPLACE_DUP2@ REPLACE_DUPLOCALE = @REPLACE_DUPLOCALE@ REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@ REPLACE_FCLOSE = @REPLACE_FCLOSE@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ REPLACE_FSTAT = @REPLACE_FSTAT@ REPLACE_FSTATAT = @REPLACE_FSTATAT@ REPLACE_FTELL = @REPLACE_FTELL@ REPLACE_FTELLO = @REPLACE_FTELLO@ REPLACE_FTRUNCATE = @REPLACE_FTRUNCATE@ REPLACE_FUTIMENS = @REPLACE_FUTIMENS@ REPLACE_GETCWD = @REPLACE_GETCWD@ REPLACE_GETDELIM = @REPLACE_GETDELIM@ REPLACE_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ REPLACE_ICONV = @REPLACE_ICONV@ REPLACE_ICONV_OPEN = @REPLACE_ICONV_OPEN@ REPLACE_ICONV_UTF = @REPLACE_ICONV_UTF@ REPLACE_ISATTY = @REPLACE_ISATTY@ REPLACE_LCHOWN = @REPLACE_LCHOWN@ REPLACE_LINK = @REPLACE_LINK@ REPLACE_LINKAT = @REPLACE_LINKAT@ REPLACE_LOCALECONV = @REPLACE_LOCALECONV@ REPLACE_LOCALTIME_R = @REPLACE_LOCALTIME_R@ REPLACE_LSEEK = @REPLACE_LSEEK@ REPLACE_LSTAT = @REPLACE_LSTAT@ REPLACE_MALLOC = @REPLACE_MALLOC@ REPLACE_MBRLEN = @REPLACE_MBRLEN@ REPLACE_MBRTOWC = @REPLACE_MBRTOWC@ REPLACE_MBSINIT = @REPLACE_MBSINIT@ REPLACE_MBSNRTOWCS = @REPLACE_MBSNRTOWCS@ REPLACE_MBSRTOWCS = @REPLACE_MBSRTOWCS@ REPLACE_MBSTATE_T = @REPLACE_MBSTATE_T@ REPLACE_MBTOWC = @REPLACE_MBTOWC@ REPLACE_MEMCHR = @REPLACE_MEMCHR@ REPLACE_MEMMEM = @REPLACE_MEMMEM@ REPLACE_MKDIR = @REPLACE_MKDIR@ REPLACE_MKFIFO = @REPLACE_MKFIFO@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ REPLACE_OPEN = @REPLACE_OPEN@ REPLACE_OPENAT = @REPLACE_OPENAT@ REPLACE_PERROR = @REPLACE_PERROR@ REPLACE_POPEN = @REPLACE_POPEN@ REPLACE_PREAD = @REPLACE_PREAD@ REPLACE_PRINTF = @REPLACE_PRINTF@ REPLACE_PTSNAME = @REPLACE_PTSNAME@ REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@ REPLACE_PUTENV = @REPLACE_PUTENV@ REPLACE_PWRITE = @REPLACE_PWRITE@ REPLACE_RANDOM_R = @REPLACE_RANDOM_R@ REPLACE_READ = @REPLACE_READ@ REPLACE_READLINK = @REPLACE_READLINK@ REPLACE_REALLOC = @REPLACE_REALLOC@ REPLACE_REALPATH = @REPLACE_REALPATH@ REPLACE_REMOVE = @REPLACE_REMOVE@ REPLACE_RENAME = @REPLACE_RENAME@ REPLACE_RENAMEAT = @REPLACE_RENAMEAT@ REPLACE_RMDIR = @REPLACE_RMDIR@ REPLACE_SETENV = @REPLACE_SETENV@ REPLACE_SETLOCALE = @REPLACE_SETLOCALE@ REPLACE_SLEEP = @REPLACE_SLEEP@ REPLACE_SNPRINTF = @REPLACE_SNPRINTF@ REPLACE_SPRINTF = @REPLACE_SPRINTF@ REPLACE_STAT = @REPLACE_STAT@ REPLACE_STDIO_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@ REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@ REPLACE_STPNCPY = @REPLACE_STPNCPY@ REPLACE_STRCASESTR = @REPLACE_STRCASESTR@ REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@ REPLACE_STRDUP = @REPLACE_STRDUP@ REPLACE_STRERROR = @REPLACE_STRERROR@ REPLACE_STRERROR_R = @REPLACE_STRERROR_R@ REPLACE_STRNCAT = @REPLACE_STRNCAT@ REPLACE_STRNDUP = @REPLACE_STRNDUP@ REPLACE_STRNLEN = @REPLACE_STRNLEN@ REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@ REPLACE_STRSTR = @REPLACE_STRSTR@ REPLACE_STRTOD = @REPLACE_STRTOD@ REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@ REPLACE_STRTOK_R = @REPLACE_STRTOK_R@ REPLACE_STRUCT_LCONV = @REPLACE_STRUCT_LCONV@ REPLACE_SYMLINK = @REPLACE_SYMLINK@ REPLACE_TIMEGM = @REPLACE_TIMEGM@ REPLACE_TMPFILE = @REPLACE_TMPFILE@ REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@ REPLACE_UNLINK = @REPLACE_UNLINK@ REPLACE_UNLINKAT = @REPLACE_UNLINKAT@ REPLACE_UNSETENV = @REPLACE_UNSETENV@ REPLACE_USLEEP = @REPLACE_USLEEP@ REPLACE_UTIMENSAT = @REPLACE_UTIMENSAT@ REPLACE_VASPRINTF = @REPLACE_VASPRINTF@ REPLACE_VDPRINTF = @REPLACE_VDPRINTF@ REPLACE_VFPRINTF = @REPLACE_VFPRINTF@ REPLACE_VPRINTF = @REPLACE_VPRINTF@ REPLACE_VSNPRINTF = @REPLACE_VSNPRINTF@ REPLACE_VSPRINTF = @REPLACE_VSPRINTF@ REPLACE_WCRTOMB = @REPLACE_WCRTOMB@ REPLACE_WCSNRTOMBS = @REPLACE_WCSNRTOMBS@ REPLACE_WCSRTOMBS = @REPLACE_WCSRTOMBS@ REPLACE_WCSWIDTH = @REPLACE_WCSWIDTH@ REPLACE_WCTOB = @REPLACE_WCTOB@ REPLACE_WCTOMB = @REPLACE_WCTOMB@ REPLACE_WCWIDTH = @REPLACE_WCWIDTH@ REPLACE_WRITE = @REPLACE_WRITE@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ SIG_ATOMIC_T_SUFFIX = @SIG_ATOMIC_T_SUFFIX@ SIZE_T_SUFFIX = @SIZE_T_SUFFIX@ STDARG_H = @STDARG_H@ STDBOOL_H = @STDBOOL_H@ STDDEF_H = @STDDEF_H@ STDINT_H = @STDINT_H@ STRIP = @STRIP@ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC = @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@ TIME_H_DEFINES_STRUCT_TIMESPEC = @TIME_H_DEFINES_STRUCT_TIMESPEC@ UINT32_MAX_LT_UINTMAX_MAX = @UINT32_MAX_LT_UINTMAX_MAX@ UINT64_MAX_EQ_ULONG_MAX = @UINT64_MAX_EQ_ULONG_MAX@ UNDEFINE_STRTOK_R = @UNDEFINE_STRTOK_R@ UNISTD_H_HAVE_WINSOCK2_H = @UNISTD_H_HAVE_WINSOCK2_H@ UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS = @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ USE_NLS = @USE_NLS@ VALGRIND = @VALGRIND@ VERSION = @VERSION@ WARN_CFLAGS = @WARN_CFLAGS@ WCHAR_T_SUFFIX = @WCHAR_T_SUFFIX@ WERROR_CFLAGS = @WERROR_CFLAGS@ WINDOWS_64_BIT_OFF_T = @WINDOWS_64_BIT_OFF_T@ WINDOWS_64_BIT_ST_SIZE = @WINDOWS_64_BIT_ST_SIZE@ WINT_T_SUFFIX = @WINT_T_SUFFIX@ WSTACK_CFLAGS = @WSTACK_CFLAGS@ XGETTEXT = @XGETTEXT@ XGETTEXT_015 = @XGETTEXT_015@ XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ YIELD_LIB = @YIELD_LIB@ abs_aux_dir = @abs_aux_dir@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_GCJ = @ac_ct_GCJ@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ gl_LIBOBJS = @gl_LIBOBJS@ gl_LTLIBOBJS = @gl_LTLIBOBJS@ gltests_LIBOBJS = @gltests_LIBOBJS@ gltests_LTLIBOBJS = @gltests_LTLIBOBJS@ gltests_WITNESS = @gltests_WITNESS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ lgl_LIBOBJS = @lgl_LIBOBJS@ lgl_LTLIBOBJS = @lgl_LTLIBOBJS@ lgltests_LIBOBJS = @lgltests_LIBOBJS@ lgltests_LTLIBOBJS = @lgltests_LTLIBOBJS@ lgltests_WITNESS = @lgltests_WITNESS@ libdir = @libdir@ libexecdir = @libexecdir@ lispdir = @lispdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ SUBDIRS = gl lib/gl lib po src doc gltests lib/gltests tests examples \ java csharp # Visual Studio project files. EXTRA_DIST = cfg.mk maint.mk .clcopying COPYING.LESSERv2 \ COPYING.LESSERv3 COPYINGv2 COPYINGv3 FAQ libc/README \ libc/getaddrinfo-idn.txt libc/example.c contrib/README \ contrib/idn-python/README contrib/idn-python/Makefile \ contrib/idn-python/idn.c contrib/idn-python/test.py \ contrib/web/idn.php contrib/java/README \ contrib/java/autogen.sh contrib/java/configure.ac \ contrib/java/Makefile.am contrib/java/ExampleIDNA.java \ contrib/java/IDNA.java contrib/java/IDNA.c \ contrib/doxygen/Doxyfile.in contrib/doxygen/Doxyfile.orig \ contrib/doxygen/gdoc2doxygen windows/libidn.sln \ windows/libidn.vcproj windows/include/unistd.h \ windows/include/idn-int.h windows/include/stdbool.h \ windows/include/ac-stdint.h windows/include/config.h \ windows/libidn4win.mk HACKING ACLOCAL_AMFLAGS = -I m4 -I gl/m4 -I lib/gl/m4 DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = libidn.pc all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status @rm -f stamp-h1 cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: $(am__configure_deps) ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) rm -f stamp-h1 touch $@ distclean-hdr: -rm -f config.h stamp-h1 csharpcomp.sh: $(top_builddir)/config.status $(top_srcdir)/build-aux/csharpcomp.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ csharpexec.sh: $(top_builddir)/config.status $(top_srcdir)/build-aux/csharpexec.sh.in cd $(top_builddir) && $(SHELL) ./config.status $@ contrib/doxygen/Doxyfile: $(top_builddir)/config.status $(top_srcdir)/contrib/doxygen/Doxyfile.in cd $(top_builddir) && $(SHELL) ./config.status $@ libidn.pc: $(top_builddir)/config.status $(srcdir)/libidn.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic distclean-hdr \ distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libtool cscope cscopelist-am ctags ctags-am dist \ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ dist-xz dist-zip distcheck distclean distclean-generic \ distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-pkgconfigDATA \ install-ps install-ps-am install-strip installcheck \ installcheck-am installdirs installdirs-am maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-pkgconfigDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: libidn-1.28/THANKS0000644000000000000000000000533412153723320010512 00000000000000Libidn THANKS -- Acknowledgements. Copyright (C) 2002-2013 Simon Josefsson See the end for copying conditions. The punycode code was taken from the IETF IDN Punycode specification, by Adam M. Costello. The TLD code was contributed by Thomas Jacob. The Java implementation was contributed by Oliver Hitz. The C# implementation was contributed by Alexander Gnauck. The Unicode tables were provided by Unicode, Inc. Functions for dealing with Unicode (see lib/nfkc.c) are borrowed from GLib downloaded from www.gtk.org. Gnulib is used to simplify portability and to improve readability of the code. Suggestions, bug reports, patches, translations, test vectors or other contributions were also received from or written by the people mentioned below. If you have contributed and aren't mentioned here, please let us know! Stephane Bortzmeyer Seungho Lee Waldo Bastian Travis Shirk Hugo Salgado H. Leonard Stiles Ryan M. Golbeck Joe Hildebrand Thiago Macieira Ienup Sung Wim Lewis Robert Norris Patrik Wallstrom Marcos Sanz Gerrit P. Haase Adam M. Costello Trond Haugen Marco d'Itri Arkadiusz Miskiewicz Noah Levitt Paul Hoffman / JDNA Oden Eriksson Kai Schaetzl Graydon Hoare Jan-Hendrik Heuing Chris Moore Niels Möller Thomas Jacob Ulrich Drepper Jakub Bogusz Aleksandar Jelenak Michel Robitaille Morten Bo Johansen Oliver Hitz Jørgen Thomsen Roland Illig Elros Cyriatan Martin Waitz Laurentiu Buzdugan Joe Orton Daniel Stenberg Gisle Vanem Robert Scheck Benjamin Reed Edmund GRIMLEY EVANS Stephan Kulow Andreas Schwab Eric S. Raymond Matt Tucker Marco Colombo Linus Nordberg Simon Walter Clytie Siddall Meng Jie Carsten Lohrke Wim Lewis Yaakov S Alexander Gnauck Bernard Leak Kirill Ponomarew Paul Howarth Stephane Mikaty Petteri Räty Petr Pisar Christian Ehrlicher Remko van der Vossen Erik van der Poel Mike Frysinger Adam Strzelecki Benno Schulenberg John McGowan Sisyphus Jens Rehsack Dagobert Michelsen Guus der Kinderen Guenter Knauf Stepan Golosunov "Andrew O. Shadoura" Roman Mamedov Waqas Hussain Guido Trentalancia Volker Grabsch Olga Limburg Bittner Ede René Berber Jon Nelson Bartosz Brachaczek Sarat Chandra Addepalli Jeffrey Frey ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. libidn-1.28/FAQ0000644000000000000000000000420612153706572010140 00000000000000Libidn FAQ -- Anticipated Frequently Asked Questions. Copyright (C) 2002-2013 Simon Josefsson See the end for copying conditions. Q#1: Why doesn't Libidn use a separate library for the Unicode operations? A#1: Separate libraries (Glib, QT, libiconv) seldom mark the Unicode tables with the corresponding Unicode version they implement, nor do they provide a interface where a specific version can be requested. This violates the stringprep specification which requires that a specific version must be used. Also, some of these third party libraries depend on non-portable behavior (e.g. threads). Q#2: Why do Libidn include several stringprep profiles? They waste space! A#2: The stringprep profiles included are usually derived from the generic stringprep tables, and doesn't waste more than say a few hundred bytes (see profiles.c). The Unicode normalization tables and the generic stringprep tables are roughly equivalent in size, although the latter tables can surely be compressed much further. They occupy about 100 kilobytes on typical platforms. However, if in the future several large Stringprep profiles are added, configure options will be added to help reduce size. Q#3: I thought GNU was encouraging libraries to be licensed under the GPL? A#3: The reasoning for this was for libraries that provide unique functionality to encourage more free programs. Since there are several IDN libraries out there, using the GPL for Libidn would only encourage people not to use Libidn which would not help the spread of free software. Q#4: How do I add a new stringprep profile? A#4: Add the profile definition to profiles.c, export the symbol and optionally add a CPP macro in stringprep.h (and document it in stringprep.c). If you want to add self tests, do it through tst_stringprep.c. Mention it in NEWS. ---------------------------------------------------------------------- Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.